aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-24 20:52:25 +0000
committer(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-24 20:52:25 +0000
commitf9adb6224a4ed4a10afbc055a703e47075f3a374 (patch)
treec84da92a82d4fd4c0aaef2a0abd2bb13ea5af283
parentc47eeef8b08faab19e213ec093ad6a58e19ce231 (diff)
This commit was manufactured by cvs2svn to create tagsubreg-byte-branchpoint
'subreg-byte-branchpoint'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tags/subreg-byte-branchpoint@36591 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--boehm-gc/BCC_MAKEFILE82
-rw-r--r--boehm-gc/ChangeLog593
-rw-r--r--boehm-gc/EMX_MAKEFILE141
-rw-r--r--boehm-gc/MacOS.c154
-rw-r--r--boehm-gc/MacProjects.sit.hqx886
-rw-r--r--boehm-gc/Mac_files/MacOS_Test_config.h91
-rw-r--r--boehm-gc/Mac_files/MacOS_config.h89
-rw-r--r--boehm-gc/Mac_files/dataend.c9
-rw-r--r--boehm-gc/Mac_files/datastart.c9
-rw-r--r--boehm-gc/Makefile.DLLs107
-rw-r--r--boehm-gc/Makefile.am138
-rw-r--r--boehm-gc/Makefile.dj436
-rw-r--r--boehm-gc/Makefile.in544
-rw-r--r--boehm-gc/Makefile.orig469
-rw-r--r--boehm-gc/NT_MAKEFILE59
-rw-r--r--boehm-gc/NT_THREADS_MAKEFILE2087
-rw-r--r--boehm-gc/OS2_MAKEFILE45
-rw-r--r--boehm-gc/PCR-Makefile68
-rw-r--r--boehm-gc/README1646
-rw-r--r--boehm-gc/README.Mac385
-rw-r--r--boehm-gc/README.OS26
-rw-r--r--boehm-gc/README.QUICK43
-rw-r--r--boehm-gc/README.alpha22
-rw-r--r--boehm-gc/README.amiga180
-rw-r--r--boehm-gc/README.debugging68
-rw-r--r--boehm-gc/README.dj12
-rw-r--r--boehm-gc/README.hp16
-rw-r--r--boehm-gc/README.linux68
-rw-r--r--boehm-gc/README.rs60009
-rw-r--r--boehm-gc/README.sgi41
-rw-r--r--boehm-gc/README.solaris262
-rw-r--r--boehm-gc/README.uts2
-rw-r--r--boehm-gc/README.win32149
-rw-r--r--boehm-gc/SCoptions.amiga16
-rw-r--r--boehm-gc/SMakefile.amiga48
-rw-r--r--boehm-gc/WCC_MAKEFILE196
-rw-r--r--boehm-gc/acinclude.m4163
-rw-r--r--boehm-gc/aclocal.m4301
-rw-r--r--boehm-gc/add_gc_prefix.c14
-rw-r--r--boehm-gc/allchblk.c743
-rw-r--r--boehm-gc/alloc.c909
-rw-r--r--boehm-gc/alpha_mach_dep.s63
-rw-r--r--boehm-gc/backptr.h63
-rw-r--r--boehm-gc/barrett_diagram106
-rw-r--r--boehm-gc/blacklst.c298
-rwxr-xr-xboehm-gc/callprocs4
-rw-r--r--boehm-gc/checksums.c201
-rwxr-xr-xboehm-gc/configure3131
-rw-r--r--boehm-gc/configure.host43
-rw-r--r--boehm-gc/configure.in235
-rw-r--r--boehm-gc/cord/README31
-rw-r--r--boehm-gc/cord/SCOPTIONS.amiga14
-rw-r--r--boehm-gc/cord/SMakefile.amiga20
-rw-r--r--boehm-gc/cord/cord.h327
-rw-r--r--boehm-gc/cord/cordbscs.c915
-rw-r--r--boehm-gc/cord/cordprnt.c390
-rw-r--r--boehm-gc/cord/cordtest.c228
-rw-r--r--boehm-gc/cord/cordxtra.c621
-rw-r--r--boehm-gc/cord/de.c603
-rw-r--r--boehm-gc/cord/de_cmds.h33
-rw-r--r--boehm-gc/cord/de_win.ICObin766 -> 0 bytes
-rw-r--r--boehm-gc/cord/de_win.RC78
-rw-r--r--boehm-gc/cord/de_win.c366
-rw-r--r--boehm-gc/cord/de_win.h103
-rw-r--r--boehm-gc/cord/ec.h70
-rw-r--r--boehm-gc/cord/gc.h804
-rw-r--r--boehm-gc/cord/private/cord_pos.h118
-rw-r--r--boehm-gc/dbg_mlc.c809
-rw-r--r--boehm-gc/dbg_mlc.h102
-rw-r--r--boehm-gc/dyn_load.c844
-rw-r--r--boehm-gc/finalize.c766
-rw-r--r--boehm-gc/gc.h804
-rw-r--r--boehm-gc/gc.mak2087
-rw-r--r--boehm-gc/gc.man80
-rw-r--r--boehm-gc/gc_alloc.h380
-rw-r--r--boehm-gc/gc_cpp.cc60
-rw-r--r--boehm-gc/gc_cpp.h299
-rw-r--r--boehm-gc/gc_hdrs.h303
-rw-r--r--boehm-gc/gc_mark.h346
-rw-r--r--boehm-gc/gc_priv.h1894
-rw-r--r--boehm-gc/gc_private.h1
-rw-r--r--boehm-gc/gc_typed.h93
-rw-r--r--boehm-gc/gcc_support.c516
-rw-r--r--boehm-gc/gcconfig.h1359
-rw-r--r--boehm-gc/gcj_mlc.c289
-rw-r--r--boehm-gc/headers.c358
-rw-r--r--boehm-gc/hpux_irix_threads.c746
-rw-r--r--boehm-gc/hpux_test_and_clear.s21
-rw-r--r--boehm-gc/if_mach.c25
-rw-r--r--boehm-gc/if_not_there.c26
-rw-r--r--boehm-gc/include/backptr.h63
-rw-r--r--boehm-gc/include/cord.h327
-rw-r--r--boehm-gc/include/ec.h70
-rw-r--r--boehm-gc/include/gc.h804
-rw-r--r--boehm-gc/include/gc_alloc.h380
-rw-r--r--boehm-gc/include/gc_copy_descr.h26
-rw-r--r--boehm-gc/include/gc_cpp.h299
-rw-r--r--boehm-gc/include/gc_gcj.h101
-rw-r--r--boehm-gc/include/gc_inl.h103
-rw-r--r--boehm-gc/include/gc_inline.h1
-rw-r--r--boehm-gc/include/gc_nursery.h90
-rw-r--r--boehm-gc/include/gc_typed.h93
-rw-r--r--boehm-gc/include/javaxfc.h41
-rw-r--r--boehm-gc/include/leak_detector.h7
-rw-r--r--boehm-gc/include/new_gc_alloc.h452
-rw-r--r--boehm-gc/include/private/cord_pos.h118
-rw-r--r--boehm-gc/include/private/gc_hdrs.h135
-rw-r--r--boehm-gc/include/private/gc_priv.h1884
-rw-r--r--boehm-gc/include/private/gcconfig.h1327
-rw-r--r--boehm-gc/include/weakpointer.h221
-rw-r--r--boehm-gc/linux_threads.c774
-rw-r--r--boehm-gc/mach_dep.c539
-rw-r--r--boehm-gc/makefile.depend0
-rw-r--r--boehm-gc/malloc.c447
-rw-r--r--boehm-gc/mallocx.c387
-rw-r--r--boehm-gc/mark.c1278
-rw-r--r--boehm-gc/mark_rts.c514
-rw-r--r--boehm-gc/mips_sgi_mach_dep.s41
-rw-r--r--boehm-gc/mips_ultrix_mach_dep.s26
-rw-r--r--boehm-gc/misc.c859
-rw-r--r--boehm-gc/new_hblk.c249
-rw-r--r--boehm-gc/nursery.c312
-rw-r--r--boehm-gc/obj_map.c142
-rw-r--r--boehm-gc/os_dep.c2681
-rw-r--r--boehm-gc/pc_excludes15
-rw-r--r--boehm-gc/pcr_interface.c173
-rw-r--r--boehm-gc/ptr_chck.c326
-rw-r--r--boehm-gc/real_malloc.c36
-rw-r--r--boehm-gc/reclaim.c923
-rw-r--r--boehm-gc/rs6000_mach_dep.s105
-rw-r--r--boehm-gc/setjmp_t.c115
-rw-r--r--boehm-gc/solaris_pthreads.c179
-rw-r--r--boehm-gc/solaris_threads.c941
-rw-r--r--boehm-gc/solaris_threads.h34
-rw-r--r--boehm-gc/sparc_mach_dep.s38
-rw-r--r--boehm-gc/sparc_sunos4_mach_dep.s38
-rw-r--r--boehm-gc/stubborn.c317
-rw-r--r--boehm-gc/test.c1390
-rw-r--r--boehm-gc/test_cpp.cc271
-rw-r--r--boehm-gc/threadlibs.c26
-rw-r--r--boehm-gc/typd_mlc.c817
-rw-r--r--boehm-gc/version.h11
-rw-r--r--boehm-gc/weakpointer.h221
-rw-r--r--boehm-gc/win32_threads.c211
-rw-r--r--gcc/c-gperf.h252
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb42.C19
-rw-r--r--libffi/ChangeLog227
-rw-r--r--libffi/ChangeLog.libgcj23
-rw-r--r--libffi/ChangeLog.v1764
-rw-r--r--libffi/LICENSE20
-rw-r--r--libffi/Makefile.am162
-rw-r--r--libffi/Makefile.in669
-rw-r--r--libffi/README502
-rw-r--r--libffi/acconfig.h12
-rw-r--r--libffi/acinclude.m48
-rw-r--r--libffi/aclocal.m4169
-rwxr-xr-xlibffi/configure3564
-rw-r--r--libffi/configure.in139
-rw-r--r--libffi/fficonfig.h.in70
-rw-r--r--libffi/include/Makefile.am9
-rw-r--r--libffi/include/Makefile.in212
-rw-r--r--libffi/include/ffi.h.in484
-rw-r--r--libffi/include/ffi_common.h91
-rw-r--r--libffi/include/ffi_mips.h143
-rw-r--r--libffi/src/alpha/ffi.c199
-rw-r--r--libffi/src/alpha/osf.S118
-rw-r--r--libffi/src/arm/ffi.c185
-rw-r--r--libffi/src/arm/sysv.S113
-rw-r--r--libffi/src/debug.c67
-rw-r--r--libffi/src/ffitest.c732
-rw-r--r--libffi/src/ia64/ffi.c670
-rw-r--r--libffi/src/ia64/ia64_flags.h62
-rw-r--r--libffi/src/ia64/unix.S301
-rw-r--r--libffi/src/java_raw_api.c271
-rw-r--r--libffi/src/m68k/ffi.c184
-rw-r--r--libffi/src/m68k/sysv.S96
-rw-r--r--libffi/src/mips/ffi.c471
-rw-r--r--libffi/src/mips/n32.S320
-rw-r--r--libffi/src/mips/n32.s14
-rw-r--r--libffi/src/mips/o32.S173
-rw-r--r--libffi/src/mips/o32.s2
-rw-r--r--libffi/src/powerpc/asm.h128
-rw-r--r--libffi/src/powerpc/ffi.c423
-rw-r--r--libffi/src/powerpc/sysv.S119
-rw-r--r--libffi/src/prep_cif.c148
-rw-r--r--libffi/src/raw_api.c242
-rw-r--r--libffi/src/sparc/ffi.c424
-rw-r--r--libffi/src/sparc/v8.S95
-rw-r--r--libffi/src/sparc/v9.S127
-rw-r--r--libffi/src/types.c115
-rw-r--r--libffi/src/x86/ffi.c510
-rw-r--r--libffi/src/x86/sysv.S168
-rw-r--r--libffi/stamp-h.in1
-rw-r--r--libjava/COPYING340
-rw-r--r--libjava/ChangeLog3590
-rw-r--r--libjava/ChangeLog-19997108
-rw-r--r--libjava/LIBGCJ_LICENSE16
-rw-r--r--libjava/Makefile.am1250
-rw-r--r--libjava/Makefile.in2277
-rw-r--r--libjava/NEWS34
-rw-r--r--libjava/README55
-rw-r--r--libjava/THANKS101
-rw-r--r--libjava/acconfig.h142
-rw-r--r--libjava/acinclude.m4102
-rw-r--r--libjava/aclocal.m4263
-rwxr-xr-xlibjava/addr2name.awk46
-rw-r--r--libjava/boehm.cc466
-rw-r--r--libjava/chartables.pl965
-rwxr-xr-xlibjava/configure6447
-rw-r--r--libjava/configure.host81
-rw-r--r--libjava/configure.in777
-rw-r--r--libjava/defineclass.cc1590
-rw-r--r--libjava/doc/cni.sgml971
-rw-r--r--libjava/exception.cc196
-rw-r--r--libjava/gcj/Makefile.am6
-rw-r--r--libjava/gcj/Makefile.in277
-rw-r--r--libjava/gcj/array.h125
-rw-r--r--libjava/gcj/cni.h133
-rw-r--r--libjava/gcj/field.h196
-rw-r--r--libjava/gcj/javaprims.h426
-rw-r--r--libjava/gcj/method.h42
-rw-r--r--libjava/gij.cc140
-rw-r--r--libjava/gnu/gcj/RawData.java17
-rw-r--r--libjava/gnu/gcj/awt/BitMaskExtent.java51
-rw-r--r--libjava/gnu/gcj/awt/Buffers.java168
-rw-r--r--libjava/gnu/gcj/awt/ComponentDataBlitOp.java123
-rw-r--r--libjava/gnu/gcj/awt/GLightweightPeer.java134
-rw-r--r--libjava/gnu/gcj/convert/BytesToUnicode.java123
-rw-r--r--libjava/gnu/gcj/convert/Convert.java151
-rw-r--r--libjava/gnu/gcj/convert/IOConverter.java52
-rw-r--r--libjava/gnu/gcj/convert/Input_8859_1.java38
-rw-r--r--libjava/gnu/gcj/convert/Input_EUCJIS.java25
-rw-r--r--libjava/gnu/gcj/convert/Input_JavaSrc.java89
-rw-r--r--libjava/gnu/gcj/convert/Input_SJIS.java24
-rw-r--r--libjava/gnu/gcj/convert/Input_UTF8.java114
-rw-r--r--libjava/gnu/gcj/convert/Input_iconv.java42
-rw-r--r--libjava/gnu/gcj/convert/JIS0201.h159
-rw-r--r--libjava/gnu/gcj/convert/JIS0208.h6880
-rw-r--r--libjava/gnu/gcj/convert/JIS0208_to_Unicode.cc7325
-rw-r--r--libjava/gnu/gcj/convert/JIS0212.h6068
-rw-r--r--libjava/gnu/gcj/convert/JIS0212_to_Unicode.cc6471
-rw-r--r--libjava/gnu/gcj/convert/Output_8859_1.java53
-rw-r--r--libjava/gnu/gcj/convert/Output_EUCJIS.java27
-rw-r--r--libjava/gnu/gcj/convert/Output_JavaSrc.java86
-rw-r--r--libjava/gnu/gcj/convert/Output_SJIS.java26
-rw-r--r--libjava/gnu/gcj/convert/Output_UTF8.java121
-rw-r--r--libjava/gnu/gcj/convert/Output_iconv.java42
-rw-r--r--libjava/gnu/gcj/convert/UnicodeToBytes.java125
-rw-r--r--libjava/gnu/gcj/convert/Unicode_to_JIS.cc23139
-rw-r--r--libjava/gnu/gcj/convert/gen-from-JIS.c171
-rw-r--r--libjava/gnu/gcj/convert/make-trie.c176
-rw-r--r--libjava/gnu/gcj/convert/natIconv.cc154
-rw-r--r--libjava/gnu/gcj/convert/natInput_EUCJIS.cc101
-rw-r--r--libjava/gnu/gcj/convert/natInput_SJIS.cc76
-rw-r--r--libjava/gnu/gcj/convert/natOutput_EUCJIS.cc102
-rw-r--r--libjava/gnu/gcj/convert/natOutput_SJIS.cc72
-rw-r--r--libjava/gnu/gcj/io/DefaultMimeTypes.java139
-rw-r--r--libjava/gnu/gcj/io/MimeTypes.java86
-rw-r--r--libjava/gnu/gcj/io/SimpleSHSStream.java66
-rw-r--r--libjava/gnu/gcj/io/natSimpleSHSStream.cc55
-rw-r--r--libjava/gnu/gcj/io/shs.cc280
-rw-r--r--libjava/gnu/gcj/io/shs.h51
-rw-r--r--libjava/gnu/gcj/jni/NativeThread.java29
-rw-r--r--libjava/gnu/gcj/jni/natNativeThread.cc30
-rw-r--r--libjava/gnu/gcj/math/MPN.java736
-rw-r--r--libjava/gnu/gcj/protocol/file/Connection.java169
-rw-r--r--libjava/gnu/gcj/protocol/file/Handler.java49
-rw-r--r--libjava/gnu/gcj/protocol/http/Connection.java288
-rw-r--r--libjava/gnu/gcj/protocol/http/Handler.java35
-rw-r--r--libjava/gnu/gcj/protocol/jar/Connection.java86
-rw-r--r--libjava/gnu/gcj/protocol/jar/Handler.java29
-rw-r--r--libjava/gnu/gcj/runtime/FileDeleter.java35
-rw-r--r--libjava/gnu/gcj/runtime/FirstThread.java77
-rw-r--r--libjava/gnu/gcj/runtime/VMClassLoader.java82
-rw-r--r--libjava/gnu/gcj/runtime/natFirstThread.cc147
-rw-r--r--libjava/gnu/gcj/text/BaseBreakIterator.java82
-rw-r--r--libjava/gnu/gcj/text/CharacterBreakIterator.java188
-rw-r--r--libjava/gnu/gcj/text/LineBreakIterator.java168
-rw-r--r--libjava/gnu/gcj/text/LocaleData_en.java81
-rw-r--r--libjava/gnu/gcj/text/LocaleData_en_US.java71
-rw-r--r--libjava/gnu/gcj/text/SentenceBreakIterator.java226
-rw-r--r--libjava/gnu/gcj/text/WordBreakIterator.java224
-rw-r--r--libjava/gnu/gcj/util/EnumerationChain.java52
-rw-r--r--libjava/gnu/java/beans/BeanInfoEmbryo.java146
-rw-r--r--libjava/gnu/java/beans/EmptyBeanInfo.java59
-rw-r--r--libjava/gnu/java/beans/ExplicitBeanInfo.java133
-rw-r--r--libjava/gnu/java/beans/IntrospectionIncubator.java344
-rw-r--r--libjava/gnu/java/beans/editors/ColorEditor.java89
-rw-r--r--libjava/gnu/java/beans/editors/FontEditor.java66
-rw-r--r--libjava/gnu/java/beans/editors/NativeBooleanEditor.java62
-rw-r--r--libjava/gnu/java/beans/editors/NativeByteEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/NativeDoubleEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/NativeFloatEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/NativeIntEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/NativeLongEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/NativeShortEditor.java50
-rw-r--r--libjava/gnu/java/beans/editors/StringEditor.java50
-rw-r--r--libjava/gnu/java/beans/info/ComponentBeanInfo.java63
-rw-r--r--libjava/gnu/java/io/ClassLoaderObjectInputStream.java59
-rw-r--r--libjava/gnu/java/io/NullOutputStream.java45
-rw-r--r--libjava/gnu/java/io/ObjectIdentityWrapper.java89
-rw-r--r--libjava/gnu/java/lang/ArrayHelper.java63
-rw-r--r--libjava/gnu/java/lang/ClassHelper.java232
-rw-r--r--libjava/gnu/java/lang/reflect/TypeSignature.java262
-rw-r--r--libjava/gnu/java/security/provider/Gnu.java79
-rw-r--r--libjava/gnu/java/security/provider/SHA.java231
-rw-r--r--libjava/gnu/java/security/provider/SHA1PRNG.java109
-rw-r--r--libjava/include/Makefile.am5
-rw-r--r--libjava/include/Makefile.in309
-rw-r--r--libjava/include/boehm-gc.h24
-rw-r--r--libjava/include/config.h.in364
-rw-r--r--libjava/include/default-signal.h54
-rw-r--r--libjava/include/i386-signal.h148
-rw-r--r--libjava/include/java-assert.h38
-rw-r--r--libjava/include/java-chardecomp.h3416
-rw-r--r--libjava/include/java-chartables.h82984
-rw-r--r--libjava/include/java-cpool.h133
-rw-r--r--libjava/include/java-insns.h248
-rw-r--r--libjava/include/java-interp.h216
-rw-r--r--libjava/include/java-props.h32
-rw-r--r--libjava/include/jni.h1505
-rw-r--r--libjava/include/jvm.h279
-rw-r--r--libjava/include/jvmpi.h227
-rw-r--r--libjava/include/name-finder.h73
-rw-r--r--libjava/include/no-gc.h17
-rw-r--r--libjava/include/no-threads.h141
-rw-r--r--libjava/include/posix-threads.h205
-rw-r--r--libjava/include/posix.h27
-rw-r--r--libjava/include/ppc-signal.h115
-rw-r--r--libjava/include/sparc-signal.h65
-rw-r--r--libjava/include/stamp-h.in1
-rw-r--r--libjava/include/win32-signal.h43
-rw-r--r--libjava/include/win32-threads.h140
-rw-r--r--libjava/interpret.cc2437
-rw-r--r--libjava/java/applet/Applet.java296
-rw-r--r--libjava/java/applet/AppletContext.java108
-rw-r--r--libjava/java/applet/AppletStub.java88
-rw-r--r--libjava/java/applet/AudioClip.java53
-rw-r--r--libjava/java/awt/AWTError.java25
-rw-r--r--libjava/java/awt/AWTEvent.java87
-rw-r--r--libjava/java/awt/AWTEventMulticaster.java463
-rw-r--r--libjava/java/awt/AWTException.java27
-rw-r--r--libjava/java/awt/ActiveEvent.java21
-rw-r--r--libjava/java/awt/Adjustable.java39
-rw-r--r--libjava/java/awt/BorderLayout.java254
-rw-r--r--libjava/java/awt/Button.java116
-rw-r--r--libjava/java/awt/Canvas.java52
-rw-r--r--libjava/java/awt/Checkbox.java15
-rw-r--r--libjava/java/awt/CheckboxGroup.java18
-rw-r--r--libjava/java/awt/CheckboxMenuItem.java15
-rw-r--r--libjava/java/awt/Choice.java15
-rw-r--r--libjava/java/awt/Color.java122
-rw-r--r--libjava/java/awt/Component.java1589
-rw-r--r--libjava/java/awt/ComponentOrientation.java84
-rw-r--r--libjava/java/awt/Container.java625
-rw-r--r--libjava/java/awt/Cursor.java87
-rw-r--r--libjava/java/awt/Dialog.java20
-rw-r--r--libjava/java/awt/Dimension.java78
-rw-r--r--libjava/java/awt/Event.java152
-rw-r--r--libjava/java/awt/EventDispatchThread.java45
-rw-r--r--libjava/java/awt/EventQueue.java255
-rw-r--r--libjava/java/awt/FileDialog.java20
-rw-r--r--libjava/java/awt/Font.java120
-rw-r--r--libjava/java/awt/FontMetrics.java146
-rw-r--r--libjava/java/awt/Frame.java150
-rw-r--r--libjava/java/awt/Graphics.java235
-rw-r--r--libjava/java/awt/Graphics2D.java133
-rw-r--r--libjava/java/awt/GraphicsConfiguration.java34
-rw-r--r--libjava/java/awt/IllegalComponentStateException.java30
-rw-r--r--libjava/java/awt/Image.java51
-rw-r--r--libjava/java/awt/Insets.java56
-rw-r--r--libjava/java/awt/ItemSelectable.java24
-rw-r--r--libjava/java/awt/Label.java87
-rw-r--r--libjava/java/awt/LayoutManager.java20
-rw-r--r--libjava/java/awt/LayoutManager2.java20
-rw-r--r--libjava/java/awt/List.java15
-rw-r--r--libjava/java/awt/Menu.java135
-rw-r--r--libjava/java/awt/MenuBar.java47
-rw-r--r--libjava/java/awt/MenuComponent.java118
-rw-r--r--libjava/java/awt/MenuContainer.java27
-rw-r--r--libjava/java/awt/MenuItem.java164
-rw-r--r--libjava/java/awt/MenuShortcut.java75
-rw-r--r--libjava/java/awt/Paint.java30
-rw-r--r--libjava/java/awt/PaintContext.java28
-rw-r--r--libjava/java/awt/Panel.java39
-rw-r--r--libjava/java/awt/Point.java65
-rw-r--r--libjava/java/awt/PopupMenu.java37
-rw-r--r--libjava/java/awt/Rectangle.java344
-rw-r--r--libjava/java/awt/RenderingHints.java299
-rw-r--r--libjava/java/awt/ScrollPane.java15
-rw-r--r--libjava/java/awt/Scrollbar.java234
-rw-r--r--libjava/java/awt/Shape.java33
-rw-r--r--libjava/java/awt/TextArea.java49
-rw-r--r--libjava/java/awt/TextComponent.java38
-rw-r--r--libjava/java/awt/TextField.java16
-rw-r--r--libjava/java/awt/Toolkit.java264
-rw-r--r--libjava/java/awt/Transparency.java29
-rw-r--r--libjava/java/awt/Window.java365
-rw-r--r--libjava/java/awt/color/ColorSpace.java111
-rw-r--r--libjava/java/awt/color/ICC_ColorSpace.java53
-rw-r--r--libjava/java/awt/color/ICC_Profile.java40
-rw-r--r--libjava/java/awt/datatransfer/Clipboard.java15
-rw-r--r--libjava/java/awt/event/AWTEventListener.java22
-rw-r--r--libjava/java/awt/event/ActionEvent.java66
-rw-r--r--libjava/java/awt/event/ActionListener.java21
-rw-r--r--libjava/java/awt/event/AdjustmentEvent.java95
-rw-r--r--libjava/java/awt/event/AdjustmentListener.java21
-rw-r--r--libjava/java/awt/event/ComponentAdapter.java35
-rw-r--r--libjava/java/awt/event/ComponentEvent.java61
-rw-r--r--libjava/java/awt/event/ComponentListener.java24
-rw-r--r--libjava/java/awt/event/ContainerAdapter.java27
-rw-r--r--libjava/java/awt/event/ContainerEvent.java64
-rw-r--r--libjava/java/awt/event/ContainerListener.java22
-rw-r--r--libjava/java/awt/event/FocusAdapter.java27
-rw-r--r--libjava/java/awt/event/FocusEvent.java63
-rw-r--r--libjava/java/awt/event/FocusListener.java22
-rw-r--r--libjava/java/awt/event/HierarchyBoundsAdapter.java27
-rw-r--r--libjava/java/awt/event/HierarchyBoundsListener.java22
-rw-r--r--libjava/java/awt/event/HierarchyEvent.java96
-rw-r--r--libjava/java/awt/event/HierarchyListener.java21
-rw-r--r--libjava/java/awt/event/InputEvent.java73
-rw-r--r--libjava/java/awt/event/InputMethodEvent.java68
-rw-r--r--libjava/java/awt/event/InputMethodListener.java22
-rw-r--r--libjava/java/awt/event/InvocationEvent.java96
-rw-r--r--libjava/java/awt/event/ItemEvent.java81
-rw-r--r--libjava/java/awt/event/ItemListener.java21
-rw-r--r--libjava/java/awt/event/KeyAdapter.java31
-rw-r--r--libjava/java/awt/event/KeyEvent.java275
-rw-r--r--libjava/java/awt/event/KeyListener.java23
-rw-r--r--libjava/java/awt/event/MouseAdapter.java39
-rw-r--r--libjava/java/awt/event/MouseEvent.java115
-rw-r--r--libjava/java/awt/event/MouseListener.java25
-rw-r--r--libjava/java/awt/event/MouseMotionAdapter.java27
-rw-r--r--libjava/java/awt/event/MouseMotionListener.java22
-rw-r--r--libjava/java/awt/event/PaintEvent.java63
-rw-r--r--libjava/java/awt/event/TextEvent.java29
-rw-r--r--libjava/java/awt/event/TextListener.java22
-rw-r--r--libjava/java/awt/event/WindowAdapter.java27
-rw-r--r--libjava/java/awt/event/WindowEvent.java65
-rw-r--r--libjava/java/awt/event/WindowListener.java27
-rw-r--r--libjava/java/awt/geom/AffineTransform.java652
-rw-r--r--libjava/java/awt/geom/Dimension2D.java40
-rw-r--r--libjava/java/awt/geom/Ellipse2D.java176
-rw-r--r--libjava/java/awt/geom/IllegalPathStateException.java27
-rw-r--r--libjava/java/awt/geom/NoninvertibleTransformException.java22
-rw-r--r--libjava/java/awt/geom/PathIterator.java31
-rw-r--r--libjava/java/awt/geom/Point2D.java151
-rw-r--r--libjava/java/awt/geom/Rectangle2D.java428
-rw-r--r--libjava/java/awt/geom/RectangularShape.java295
-rw-r--r--libjava/java/awt/image/BufferedImage.java543
-rw-r--r--libjava/java/awt/image/ColorModel.java575
-rw-r--r--libjava/java/awt/image/ComponentColorModel.java303
-rw-r--r--libjava/java/awt/image/ComponentSampleModel.java435
-rw-r--r--libjava/java/awt/image/DataBuffer.java177
-rw-r--r--libjava/java/awt/image/DataBufferByte.java103
-rw-r--r--libjava/java/awt/image/DataBufferInt.java103
-rw-r--r--libjava/java/awt/image/DataBufferUShort.java103
-rw-r--r--libjava/java/awt/image/DirectColorModel.java338
-rw-r--r--libjava/java/awt/image/ImageConsumer.java35
-rw-r--r--libjava/java/awt/image/ImageObserver.java28
-rw-r--r--libjava/java/awt/image/ImageProducer.java18
-rw-r--r--libjava/java/awt/image/IndexColorModel.java355
-rw-r--r--libjava/java/awt/image/PackedColorModel.java162
-rw-r--r--libjava/java/awt/image/Raster.java418
-rw-r--r--libjava/java/awt/image/RasterOp.java27
-rw-r--r--libjava/java/awt/image/SampleModel.java436
-rw-r--r--libjava/java/awt/image/SinglePixelPackedSampleModel.java245
-rw-r--r--libjava/java/awt/image/WritableRaster.java234
-rw-r--r--libjava/java/awt/peer/ButtonPeer.java15
-rw-r--r--libjava/java/awt/peer/CanvasPeer.java13
-rw-r--r--libjava/java/awt/peer/CheckboxMenuItemPeer.java15
-rw-r--r--libjava/java/awt/peer/CheckboxPeer.java16
-rw-r--r--libjava/java/awt/peer/ChoicePeer.java18
-rw-r--r--libjava/java/awt/peer/ComponentPeer.java55
-rw-r--r--libjava/java/awt/peer/ContainerPeer.java19
-rw-r--r--libjava/java/awt/peer/DialogPeer.java15
-rw-r--r--libjava/java/awt/peer/FileDialogPeer.java18
-rw-r--r--libjava/java/awt/peer/FontPeer.java13
-rw-r--r--libjava/java/awt/peer/FramePeer.java20
-rw-r--r--libjava/java/awt/peer/LabelPeer.java15
-rw-r--r--libjava/java/awt/peer/LightweightPeer.java13
-rw-r--r--libjava/java/awt/peer/ListPeer.java28
-rw-r--r--libjava/java/awt/peer/MenuBarPeer.java18
-rw-r--r--libjava/java/awt/peer/MenuComponentPeer.java14
-rw-r--r--libjava/java/awt/peer/MenuItemPeer.java17
-rw-r--r--libjava/java/awt/peer/MenuPeer.java18
-rw-r--r--libjava/java/awt/peer/PanelPeer.java13
-rw-r--r--libjava/java/awt/peer/PopupMenuPeer.java16
-rw-r--r--libjava/java/awt/peer/ScrollPanePeer.java21
-rw-r--r--libjava/java/awt/peer/ScrollbarPeer.java16
-rw-r--r--libjava/java/awt/peer/TextAreaPeer.java23
-rw-r--r--libjava/java/awt/peer/TextComponentPeer.java21
-rw-r--r--libjava/java/awt/peer/TextFieldPeer.java21
-rw-r--r--libjava/java/awt/peer/WindowPeer.java15
-rw-r--r--libjava/java/beans/BeanDescriptor.java72
-rw-r--r--libjava/java/beans/BeanInfo.java170
-rw-r--r--libjava/java/beans/Beans.java199
-rw-r--r--libjava/java/beans/Customizer.java75
-rw-r--r--libjava/java/beans/DesignMode.java82
-rw-r--r--libjava/java/beans/EventSetDescriptor.java429
-rw-r--r--libjava/java/beans/FeatureDescriptor.java155
-rw-r--r--libjava/java/beans/IndexedPropertyDescriptor.java296
-rw-r--r--libjava/java/beans/IntrospectionException.java46
-rw-r--r--libjava/java/beans/Introspector.java427
-rw-r--r--libjava/java/beans/MethodDescriptor.java77
-rw-r--r--libjava/java/beans/ParameterDescriptor.java41
-rw-r--r--libjava/java/beans/PropertyChangeEvent.java113
-rw-r--r--libjava/java/beans/PropertyChangeListener.java48
-rw-r--r--libjava/java/beans/PropertyChangeSupport.java203
-rw-r--r--libjava/java/beans/PropertyDescriptor.java333
-rw-r--r--libjava/java/beans/PropertyEditor.java198
-rw-r--r--libjava/java/beans/PropertyEditorManager.java150
-rw-r--r--libjava/java/beans/PropertyEditorSupport.java195
-rw-r--r--libjava/java/beans/PropertyVetoException.java57
-rw-r--r--libjava/java/beans/SimpleBeanInfo.java127
-rw-r--r--libjava/java/beans/VetoableChangeListener.java62
-rw-r--r--libjava/java/beans/VetoableChangeSupport.java245
-rw-r--r--libjava/java/beans/Visibility.java74
-rw-r--r--libjava/java/beans/beancontext/BeanContext.java261
-rw-r--r--libjava/java/beans/beancontext/BeanContextChild.java162
-rw-r--r--libjava/java/beans/beancontext/BeanContextChildComponentProxy.java49
-rw-r--r--libjava/java/beans/beancontext/BeanContextChildSupport.java356
-rw-r--r--libjava/java/beans/beancontext/BeanContextContainerProxy.java52
-rw-r--r--libjava/java/beans/beancontext/BeanContextEvent.java91
-rw-r--r--libjava/java/beans/beancontext/BeanContextMembershipEvent.java102
-rw-r--r--libjava/java/beans/beancontext/BeanContextMembershipListener.java59
-rw-r--r--libjava/java/beans/beancontext/BeanContextProxy.java54
-rw-r--r--libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.java84
-rw-r--r--libjava/java/beans/beancontext/BeanContextServiceProvider.java129
-rw-r--r--libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java49
-rw-r--r--libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.java99
-rw-r--r--libjava/java/beans/beancontext/BeanContextServiceRevokedListener.java51
-rw-r--r--libjava/java/beans/beancontext/BeanContextServices.java195
-rw-r--r--libjava/java/beans/beancontext/BeanContextServicesListener.java45
-rw-r--r--libjava/java/io/BlockDataException.java39
-rw-r--r--libjava/java/io/BufferedInputStream.java168
-rw-r--r--libjava/java/io/BufferedOutputStream.java222
-rw-r--r--libjava/java/io/BufferedReader.java373
-rw-r--r--libjava/java/io/BufferedWriter.java224
-rw-r--r--libjava/java/io/ByteArrayInputStream.java113
-rw-r--r--libjava/java/io/ByteArrayOutputStream.java257
-rw-r--r--libjava/java/io/CharArrayReader.java152
-rw-r--r--libjava/java/io/CharArrayWriter.java122
-rw-r--r--libjava/java/io/CharConversionException.java34
-rw-r--r--libjava/java/io/DataInput.java41
-rw-r--r--libjava/java/io/DataInputStream.java697
-rw-r--r--libjava/java/io/DataOutput.java44
-rw-r--r--libjava/java/io/DataOutputStream.java165
-rw-r--r--libjava/java/io/EOFException.java34
-rw-r--r--libjava/java/io/Externalizable.java98
-rw-r--r--libjava/java/io/File.java427
-rw-r--r--libjava/java/io/FileDescriptor.java89
-rw-r--r--libjava/java/io/FileInputStream.java96
-rw-r--r--libjava/java/io/FileNotFoundException.java34
-rw-r--r--libjava/java/io/FileOutputStream.java93
-rw-r--r--libjava/java/io/FileReader.java35
-rw-r--r--libjava/java/io/FileWriter.java44
-rw-r--r--libjava/java/io/FilenameFilter.java26
-rw-r--r--libjava/java/io/FilterInputStream.java75
-rw-r--r--libjava/java/io/FilterOutputStream.java62
-rw-r--r--libjava/java/io/FilterReader.java72
-rw-r--r--libjava/java/io/FilterWriter.java58
-rw-r--r--libjava/java/io/IOException.java34
-rw-r--r--libjava/java/io/InputStream.java104
-rw-r--r--libjava/java/io/InputStreamReader.java160
-rw-r--r--libjava/java/io/InterruptedIOException.java36
-rw-r--r--libjava/java/io/InvalidClassException.java110
-rw-r--r--libjava/java/io/InvalidObjectException.java57
-rw-r--r--libjava/java/io/LineNumberInputStream.java143
-rw-r--r--libjava/java/io/LineNumberReader.java245
-rw-r--r--libjava/java/io/NotActiveException.java68
-rw-r--r--libjava/java/io/NotSerializableException.java69
-rw-r--r--libjava/java/io/ObjectInput.java147
-rw-r--r--libjava/java/io/ObjectInputStream.java1474
-rw-r--r--libjava/java/io/ObjectInputValidation.java50
-rw-r--r--libjava/java/io/ObjectOutput.java116
-rw-r--r--libjava/java/io/ObjectOutputStream.java1337
-rw-r--r--libjava/java/io/ObjectStreamClass.java672
-rw-r--r--libjava/java/io/ObjectStreamConstants.java74
-rw-r--r--libjava/java/io/ObjectStreamException.java31
-rw-r--r--libjava/java/io/ObjectStreamField.java99
-rw-r--r--libjava/java/io/OptionalDataException.java39
-rw-r--r--libjava/java/io/OutputStream.java48
-rw-r--r--libjava/java/io/OutputStreamWriter.java162
-rw-r--r--libjava/java/io/PipedInputStream.java490
-rw-r--r--libjava/java/io/PipedOutputStream.java206
-rw-r--r--libjava/java/io/PipedReader.java502
-rw-r--r--libjava/java/io/PipedWriter.java217
-rw-r--r--libjava/java/io/PrintStream.java302
-rw-r--r--libjava/java/io/PrintWriter.java540
-rw-r--r--libjava/java/io/PushbackInputStream.java126
-rw-r--r--libjava/java/io/PushbackReader.java140
-rw-r--r--libjava/java/io/RandomAccessFile.java247
-rw-r--r--libjava/java/io/Reader.java87
-rw-r--r--libjava/java/io/Replaceable.java54
-rw-r--r--libjava/java/io/Resolvable.java52
-rw-r--r--libjava/java/io/SequenceInputStream.java110
-rw-r--r--libjava/java/io/Serializable.java21
-rw-r--r--libjava/java/io/SerializablePermission.java106
-rw-r--r--libjava/java/io/StreamCorruptedException.java31
-rw-r--r--libjava/java/io/StreamTokenizer.java665
-rw-r--r--libjava/java/io/StringBufferInputStream.java83
-rw-r--r--libjava/java/io/StringReader.java139
-rw-r--r--libjava/java/io/StringWriter.java80
-rw-r--r--libjava/java/io/SyncFailedException.java29
-rw-r--r--libjava/java/io/UTFDataFormatException.java34
-rw-r--r--libjava/java/io/UnsupportedEncodingException.java32
-rw-r--r--libjava/java/io/WriteAbortedException.java89
-rw-r--r--libjava/java/io/Writer.java67
-rw-r--r--libjava/java/io/natFile.cc268
-rw-r--r--libjava/java/io/natFileDescriptorEcos.cc132
-rw-r--r--libjava/java/io/natFileDescriptorPosix.cc318
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc250
-rw-r--r--libjava/java/io/natFileWin32.cc210
-rw-r--r--libjava/java/io/natObjectInputStream.cc78
-rw-r--r--libjava/java/io/natObjectOutputStream.cc33
-rw-r--r--libjava/java/lang/AbstractMethodError.java34
-rw-r--r--libjava/java/lang/ArithmeticException.java32
-rw-r--r--libjava/java/lang/ArrayIndexOutOfBoundsException.java37
-rw-r--r--libjava/java/lang/ArrayStoreException.java32
-rw-r--r--libjava/java/lang/Boolean.java100
-rw-r--r--libjava/java/lang/Byte.java146
-rw-r--r--libjava/java/lang/Character.java287
-rw-r--r--libjava/java/lang/Class.h339
-rw-r--r--libjava/java/lang/Class.java180
-rw-r--r--libjava/java/lang/ClassCastException.java32
-rw-r--r--libjava/java/lang/ClassCircularityError.java34
-rw-r--r--libjava/java/lang/ClassFormatError.java34
-rw-r--r--libjava/java/lang/ClassLoader.java377
-rw-r--r--libjava/java/lang/ClassNotFoundException.java61
-rw-r--r--libjava/java/lang/CloneNotSupportedException.java32
-rw-r--r--libjava/java/lang/Cloneable.java23
-rw-r--r--libjava/java/lang/Comparable.java22
-rw-r--r--libjava/java/lang/Compiler.java53
-rw-r--r--libjava/java/lang/Double.java151
-rw-r--r--libjava/java/lang/EcosProcess.java59
-rw-r--r--libjava/java/lang/Error.java34
-rw-r--r--libjava/java/lang/Exception.java32
-rw-r--r--libjava/java/lang/ExceptionInInitializerError.java50
-rw-r--r--libjava/java/lang/Float.java151
-rw-r--r--libjava/java/lang/IllegalAccessError.java34
-rw-r--r--libjava/java/lang/IllegalAccessException.java32
-rw-r--r--libjava/java/lang/IllegalArgumentException.java32
-rw-r--r--libjava/java/lang/IllegalMonitorStateException.java32
-rw-r--r--libjava/java/lang/IllegalStateException.java32
-rw-r--r--libjava/java/lang/IllegalThreadStateException.java32
-rw-r--r--libjava/java/lang/IncompatibleClassChangeError.java34
-rw-r--r--libjava/java/lang/IndexOutOfBoundsException.java32
-rw-r--r--libjava/java/lang/InstantiationError.java34
-rw-r--r--libjava/java/lang/InstantiationException.java32
-rw-r--r--libjava/java/lang/Integer.java352
-rw-r--r--libjava/java/lang/InternalError.java34
-rw-r--r--libjava/java/lang/InterruptedException.java32
-rw-r--r--libjava/java/lang/LinkageError.java34
-rw-r--r--libjava/java/lang/Long.java363
-rw-r--r--libjava/java/lang/Math.java118
-rw-r--r--libjava/java/lang/NegativeArraySizeException.java32
-rw-r--r--libjava/java/lang/NoClassDefFoundError.java34
-rw-r--r--libjava/java/lang/NoSuchFieldError.java34
-rw-r--r--libjava/java/lang/NoSuchFieldException.java32
-rw-r--r--libjava/java/lang/NoSuchMethodError.java34
-rw-r--r--libjava/java/lang/NoSuchMethodException.java32
-rw-r--r--libjava/java/lang/NullPointerException.java32
-rw-r--r--libjava/java/lang/Number.java41
-rw-r--r--libjava/java/lang/NumberFormatException.java32
-rw-r--r--libjava/java/lang/Object.h74
-rw-r--r--libjava/java/lang/Object.java71
-rw-r--r--libjava/java/lang/OutOfMemoryError.java34
-rw-r--r--libjava/java/lang/PosixProcess.java74
-rw-r--r--libjava/java/lang/Process.java30
-rw-r--r--libjava/java/lang/Runnable.java27
-rw-r--r--libjava/java/lang/Runtime.java143
-rw-r--r--libjava/java/lang/RuntimeException.java32
-rw-r--r--libjava/java/lang/SecurityException.java31
-rw-r--r--libjava/java/lang/SecurityManager.java268
-rw-r--r--libjava/java/lang/Short.java147
-rw-r--r--libjava/java/lang/StackOverflowError.java34
-rw-r--r--libjava/java/lang/String.java334
-rw-r--r--libjava/java/lang/StringBuffer.java684
-rw-r--r--libjava/java/lang/StringIndexOutOfBoundsException.java37
-rw-r--r--libjava/java/lang/System.java171
-rw-r--r--libjava/java/lang/Thread.java300
-rw-r--r--libjava/java/lang/ThreadDeath.java30
-rw-r--r--libjava/java/lang/ThreadGroup.java592
-rw-r--r--libjava/java/lang/Throwable.java169
-rw-r--r--libjava/java/lang/UnknownError.java34
-rw-r--r--libjava/java/lang/UnsatisfiedLinkError.java34
-rw-r--r--libjava/java/lang/UnsupportedOperationException.java32
-rw-r--r--libjava/java/lang/VerifyError.java34
-rw-r--r--libjava/java/lang/VirtualMachineError.java39
-rw-r--r--libjava/java/lang/Void.java30
-rw-r--r--libjava/java/lang/dtoa.c904
-rw-r--r--libjava/java/lang/e_acos.c111
-rw-r--r--libjava/java/lang/e_asin.c120
-rw-r--r--libjava/java/lang/e_atan2.c131
-rw-r--r--libjava/java/lang/e_exp.c167
-rw-r--r--libjava/java/lang/e_fmod.c140
-rw-r--r--libjava/java/lang/e_log.c152
-rw-r--r--libjava/java/lang/e_pow.c312
-rw-r--r--libjava/java/lang/e_rem_pio2.c185
-rw-r--r--libjava/java/lang/e_remainder.c80
-rw-r--r--libjava/java/lang/e_scalb.c55
-rw-r--r--libjava/java/lang/e_sqrt.c452
-rw-r--r--libjava/java/lang/fdlibm.h346
-rw-r--r--libjava/java/lang/ieeefp.h134
-rw-r--r--libjava/java/lang/k_cos.c96
-rw-r--r--libjava/java/lang/k_rem_pio2.c320
-rw-r--r--libjava/java/lang/k_sin.c79
-rw-r--r--libjava/java/lang/k_tan.c132
-rw-r--r--libjava/java/lang/mprec.c958
-rw-r--r--libjava/java/lang/mprec.h401
-rw-r--r--libjava/java/lang/natCharacter.cc284
-rw-r--r--libjava/java/lang/natClass.cc1399
-rw-r--r--libjava/java/lang/natClassLoader.cc640
-rw-r--r--libjava/java/lang/natDouble.cc178
-rw-r--r--libjava/java/lang/natEcosProcess.cc25
-rw-r--r--libjava/java/lang/natFloat.cc43
-rw-r--r--libjava/java/lang/natMath.cc263
-rw-r--r--libjava/java/lang/natObject.cc261
-rw-r--r--libjava/java/lang/natPosixProcess.cc292
-rw-r--r--libjava/java/lang/natRuntime.cc214
-rw-r--r--libjava/java/lang/natString.cc851
-rw-r--r--libjava/java/lang/natSystem.cc399
-rw-r--r--libjava/java/lang/natThread.cc333
-rw-r--r--libjava/java/lang/natThrowable.cc109
-rw-r--r--libjava/java/lang/reflect/AccessibleObject.java53
-rw-r--r--libjava/java/lang/reflect/Array.java78
-rw-r--r--libjava/java/lang/reflect/Constructor.java105
-rw-r--r--libjava/java/lang/reflect/Field.java267
-rw-r--r--libjava/java/lang/reflect/InvocationTargetException.java75
-rw-r--r--libjava/java/lang/reflect/Member.java26
-rw-r--r--libjava/java/lang/reflect/Method.java127
-rw-r--r--libjava/java/lang/reflect/Modifier.java141
-rw-r--r--libjava/java/lang/reflect/natArray.cc353
-rw-r--r--libjava/java/lang/reflect/natConstructor.cc54
-rw-r--r--libjava/java/lang/reflect/natField.cc439
-rw-r--r--libjava/java/lang/reflect/natMethod.cc556
-rw-r--r--libjava/java/lang/s_atan.c181
-rw-r--r--libjava/java/lang/s_ceil.c80
-rw-r--r--libjava/java/lang/s_copysign.c82
-rw-r--r--libjava/java/lang/s_cos.c82
-rw-r--r--libjava/java/lang/s_fabs.c73
-rw-r--r--libjava/java/lang/s_floor.c134
-rw-r--r--libjava/java/lang/s_rint.c87
-rw-r--r--libjava/java/lang/s_scalbn.c104
-rw-r--r--libjava/java/lang/s_sin.c132
-rw-r--r--libjava/java/lang/s_tan.c114
-rw-r--r--libjava/java/lang/sf_rint.c80
-rw-r--r--libjava/java/lang/strtod.c720
-rw-r--r--libjava/java/lang/w_acos.c118
-rw-r--r--libjava/java/lang/w_asin.c121
-rw-r--r--libjava/java/lang/w_atan2.c117
-rw-r--r--libjava/java/lang/w_exp.c136
-rw-r--r--libjava/java/lang/w_fmod.c107
-rw-r--r--libjava/java/lang/w_log.c115
-rw-r--r--libjava/java/lang/w_pow.c231
-rw-r--r--libjava/java/lang/w_remainder.c119
-rw-r--r--libjava/java/lang/w_sqrt.c93
-rw-r--r--libjava/java/math/BigDecimal.java348
-rw-r--r--libjava/java/math/BigInteger.java2204
-rw-r--r--libjava/java/net/BindException.java35
-rw-r--r--libjava/java/net/ConnectException.java35
-rw-r--r--libjava/java/net/ContentHandler.java29
-rw-r--r--libjava/java/net/ContentHandlerFactory.java27
-rw-r--r--libjava/java/net/DatagramPacket.java169
-rw-r--r--libjava/java/net/DatagramSocket.java202
-rw-r--r--libjava/java/net/DatagramSocketImpl.java62
-rw-r--r--libjava/java/net/FileNameMap.java27
-rw-r--r--libjava/java/net/HttpURLConnection.java182
-rw-r--r--libjava/java/net/InetAddress.java256
-rw-r--r--libjava/java/net/JarURLConnection.java303
-rw-r--r--libjava/java/net/MalformedURLException.java35
-rw-r--r--libjava/java/net/MulticastSocket.java126
-rw-r--r--libjava/java/net/NoRouteToHostException.java35
-rw-r--r--libjava/java/net/PlainDatagramSocketImpl.java112
-rw-r--r--libjava/java/net/PlainSocketImpl.java97
-rw-r--r--libjava/java/net/ProtocolException.java35
-rw-r--r--libjava/java/net/ServerSocket.java114
-rw-r--r--libjava/java/net/Socket.java263
-rw-r--r--libjava/java/net/SocketException.java33
-rw-r--r--libjava/java/net/SocketImpl.java76
-rw-r--r--libjava/java/net/SocketImplFactory.java25
-rw-r--r--libjava/java/net/SocketOptions.java40
-rw-r--r--libjava/java/net/URL.java411
-rw-r--r--libjava/java/net/URLClassLoader.java220
-rw-r--r--libjava/java/net/URLConnection.java454
-rw-r--r--libjava/java/net/URLDecoder.java48
-rw-r--r--libjava/java/net/URLEncoder.java71
-rw-r--r--libjava/java/net/URLStreamHandler.java156
-rw-r--r--libjava/java/net/URLStreamHandlerFactory.java27
-rw-r--r--libjava/java/net/UnknownHostException.java34
-rw-r--r--libjava/java/net/UnknownServiceException.java35
-rw-r--r--libjava/java/net/natInetAddress.cc335
-rw-r--r--libjava/java/net/natPlainDatagramSocketImpl.cc643
-rw-r--r--libjava/java/net/natPlainSocketImpl.cc485
-rw-r--r--libjava/java/security/AlgorithmParameterGeneratorSpi.java25
-rw-r--r--libjava/java/security/BasicPermission.java271
-rw-r--r--libjava/java/security/DigestException.java32
-rw-r--r--libjava/java/security/DigestOutputStream.java147
-rw-r--r--libjava/java/security/GeneralSecurityException.java33
-rw-r--r--libjava/java/security/Guard.java54
-rw-r--r--libjava/java/security/InvalidAlgorithmParameterException.java33
-rw-r--r--libjava/java/security/InvalidKeyException.java32
-rw-r--r--libjava/java/security/InvalidParameterException.java32
-rw-r--r--libjava/java/security/Key.java29
-rw-r--r--libjava/java/security/KeyException.java32
-rw-r--r--libjava/java/security/KeyPair.java41
-rw-r--r--libjava/java/security/KeyPairGenerator.java86
-rw-r--r--libjava/java/security/KeyPairGeneratorSpi.java26
-rw-r--r--libjava/java/security/MessageDigest.java144
-rw-r--r--libjava/java/security/NoSuchAlgorithmException.java22
-rw-r--r--libjava/java/security/NoSuchProviderException.java32
-rw-r--r--libjava/java/security/Permission.java191
-rw-r--r--libjava/java/security/PermissionCollection.java207
-rw-r--r--libjava/java/security/Principal.java85
-rw-r--r--libjava/java/security/PrivateKey.java24
-rw-r--r--libjava/java/security/Provider.java197
-rw-r--r--libjava/java/security/PublicKey.java24
-rw-r--r--libjava/java/security/SecureClassLoader.java24
-rw-r--r--libjava/java/security/SecureRandom.java25
-rw-r--r--libjava/java/security/Security.java107
-rw-r--r--libjava/java/security/Signature.java173
-rw-r--r--libjava/java/security/SignatureException.java32
-rw-r--r--libjava/java/security/cert/CRL.java87
-rw-r--r--libjava/java/security/cert/CRLException.java59
-rw-r--r--libjava/java/security/cert/Certificate.java237
-rw-r--r--libjava/java/security/cert/CertificateEncodingException.java58
-rw-r--r--libjava/java/security/cert/CertificateException.java59
-rw-r--r--libjava/java/security/cert/CertificateExpiredException.java58
-rw-r--r--libjava/java/security/cert/CertificateFactory.java259
-rw-r--r--libjava/java/security/cert/CertificateFactorySpi.java142
-rw-r--r--libjava/java/security/cert/CertificateNotYetValidException.java58
-rw-r--r--libjava/java/security/cert/CertificateParsingException.java58
-rw-r--r--libjava/java/security/cert/X509CRL.java370
-rw-r--r--libjava/java/security/cert/X509CRLEntry.java157
-rw-r--r--libjava/java/security/cert/X509Certificate.java444
-rw-r--r--libjava/java/security/cert/X509Extension.java102
-rw-r--r--libjava/java/security/interfaces/DSAKey.java23
-rw-r--r--libjava/java/security/interfaces/DSAParams.java26
-rw-r--r--libjava/java/security/interfaces/DSAPrivateKey.java28
-rw-r--r--libjava/java/security/interfaces/DSAPublicKey.java28
-rw-r--r--libjava/java/security/interfaces/RSAPrivateCrtKey.java30
-rw-r--r--libjava/java/security/interfaces/RSAPrivateKey.java27
-rw-r--r--libjava/java/security/interfaces/RSAPublicKey.java27
-rw-r--r--libjava/java/security/spec/AlgorithmParameterSpec.java25
-rw-r--r--libjava/java/security/spec/InvalidKeySpecException.java33
-rw-r--r--libjava/java/security/spec/InvalidParameterSpecException.java33
-rw-r--r--libjava/java/security/spec/KeySpec.java25
-rw-r--r--libjava/java/security/spec/RSAPrivateCrtKeySpec.java23
-rw-r--r--libjava/java/security/spec/RSAPrivateKeySpec.java23
-rw-r--r--libjava/java/security/spec/RSAPublicKeySpec.java23
-rw-r--r--libjava/java/sql/CallableStatement.java299
-rw-r--r--libjava/java/sql/Connection.java350
-rw-r--r--libjava/java/sql/DataTruncation.java185
-rw-r--r--libjava/java/sql/DatabaseMetaData.java2460
-rw-r--r--libjava/java/sql/Date.java133
-rw-r--r--libjava/java/sql/Driver.java137
-rw-r--r--libjava/java/sql/DriverManager.java336
-rw-r--r--libjava/java/sql/DriverPropertyInfo.java91
-rw-r--r--libjava/java/sql/PreparedStatement.java387
-rw-r--r--libjava/java/sql/ResultSet.java682
-rw-r--r--libjava/java/sql/ResultSetMetaData.java362
-rw-r--r--libjava/java/sql/SQLException.java199
-rw-r--r--libjava/java/sql/SQLWarning.java136
-rw-r--r--libjava/java/sql/Statement.java277
-rw-r--r--libjava/java/sql/Time.java137
-rw-r--r--libjava/java/sql/Timestamp.java285
-rw-r--r--libjava/java/sql/Types.java64
-rw-r--r--libjava/java/text/BreakIterator.java159
-rw-r--r--libjava/java/text/CharacterIterator.java36
-rw-r--r--libjava/java/text/ChoiceFormat.java310
-rw-r--r--libjava/java/text/CollationElementIterator.java79
-rw-r--r--libjava/java/text/CollationKey.java104
-rw-r--r--libjava/java/text/Collator.java134
-rw-r--r--libjava/java/text/DateFormat.java324
-rw-r--r--libjava/java/text/DateFormatSymbols.java283
-rw-r--r--libjava/java/text/DecimalFormat.java986
-rw-r--r--libjava/java/text/DecimalFormatSymbols.java293
-rw-r--r--libjava/java/text/FieldPosition.java65
-rw-r--r--libjava/java/text/Format.java56
-rw-r--r--libjava/java/text/MessageFormat.java544
-rw-r--r--libjava/java/text/NumberFormat.java261
-rw-r--r--libjava/java/text/ParseException.java34
-rw-r--r--libjava/java/text/ParsePosition.java59
-rw-r--r--libjava/java/text/RuleBasedCollator.java366
-rw-r--r--libjava/java/text/SimpleDateFormat.java528
-rw-r--r--libjava/java/text/StringCharacterIterator.java136
-rw-r--r--libjava/java/text/natCollator.cc74
-rw-r--r--libjava/java/util/AbstractCollection.java339
-rw-r--r--libjava/java/util/AbstractList.java558
-rw-r--r--libjava/java/util/AbstractMap.java283
-rw-r--r--libjava/java/util/AbstractSequentialList.java113
-rw-r--r--libjava/java/util/AbstractSet.java83
-rw-r--r--libjava/java/util/ArrayList.java497
-rw-r--r--libjava/java/util/Arrays.java1757
-rw-r--r--libjava/java/util/BasicMapEntry.java135
-rw-r--r--libjava/java/util/BitSet.java177
-rw-r--r--libjava/java/util/Bucket.java199
-rw-r--r--libjava/java/util/Calendar.java274
-rw-r--r--libjava/java/util/Collection.java37
-rw-r--r--libjava/java/util/Comparator.java24
-rw-r--r--libjava/java/util/ConcurrentModificationException.java33
-rw-r--r--libjava/java/util/Date.java483
-rw-r--r--libjava/java/util/Dictionary.java34
-rw-r--r--libjava/java/util/EmptyStackException.java27
-rw-r--r--libjava/java/util/Enumeration.java24
-rw-r--r--libjava/java/util/EventListener.java24
-rw-r--r--libjava/java/util/EventObject.java42
-rw-r--r--libjava/java/util/GregorianCalendar.java268
-rw-r--r--libjava/java/util/HashMap.java858
-rw-r--r--libjava/java/util/Hashtable.java1076
-rw-r--r--libjava/java/util/Iterator.java25
-rw-r--r--libjava/java/util/LinkedList.java584
-rw-r--r--libjava/java/util/List.java47
-rw-r--r--libjava/java/util/ListIterator.java31
-rw-r--r--libjava/java/util/ListResourceBundle.java52
-rw-r--r--libjava/java/util/Locale.java148
-rw-r--r--libjava/java/util/Map.java57
-rw-r--r--libjava/java/util/MissingResourceException.java43
-rw-r--r--libjava/java/util/NoSuchElementException.java32
-rw-r--r--libjava/java/util/Observable.java98
-rw-r--r--libjava/java/util/Observer.java24
-rw-r--r--libjava/java/util/Properties.java393
-rw-r--r--libjava/java/util/PropertyPermission.java238
-rw-r--r--libjava/java/util/PropertyResourceBundle.java47
-rw-r--r--libjava/java/util/Random.java150
-rw-r--r--libjava/java/util/ResourceBundle.java214
-rw-r--r--libjava/java/util/Set.java48
-rw-r--r--libjava/java/util/SimpleTimeZone.java208
-rw-r--r--libjava/java/util/SortedMap.java40
-rw-r--r--libjava/java/util/SortedSet.java41
-rw-r--r--libjava/java/util/Stack.java76
-rw-r--r--libjava/java/util/StringTokenizer.java185
-rw-r--r--libjava/java/util/TimeZone.java189
-rw-r--r--libjava/java/util/Timer.java525
-rw-r--r--libjava/java/util/TimerTask.java131
-rw-r--r--libjava/java/util/TooManyListenersException.java32
-rw-r--r--libjava/java/util/Vector.java463
-rw-r--r--libjava/java/util/jar/Attributes.java586
-rw-r--r--libjava/java/util/jar/JarEntry.java139
-rw-r--r--libjava/java/util/jar/JarException.java65
-rw-r--r--libjava/java/util/jar/JarFile.java277
-rw-r--r--libjava/java/util/jar/JarInputStream.java175
-rw-r--r--libjava/java/util/jar/JarOutputStream.java98
-rw-r--r--libjava/java/util/jar/Manifest.java406
-rw-r--r--libjava/java/util/natGregorianCalendar.cc114
-rw-r--r--libjava/java/util/zip/Adler32.java101
-rw-r--r--libjava/java/util/zip/CRC32.java70
-rw-r--r--libjava/java/util/zip/CheckedInputStream.java81
-rw-r--r--libjava/java/util/zip/CheckedOutputStream.java54
-rw-r--r--libjava/java/util/zip/Checksum.java31
-rw-r--r--libjava/java/util/zip/DataFormatException.java33
-rw-r--r--libjava/java/util/zip/Deflater.java129
-rw-r--r--libjava/java/util/zip/DeflaterOutputStream.java87
-rw-r--r--libjava/java/util/zip/GZIPInputStream.java154
-rw-r--r--libjava/java/util/zip/GZIPOutputStream.java93
-rw-r--r--libjava/java/util/zip/Inflater.java98
-rw-r--r--libjava/java/util/zip/InflaterInputStream.java112
-rw-r--r--libjava/java/util/zip/ZipConstants.java18
-rw-r--r--libjava/java/util/zip/ZipEntry.java177
-rw-r--r--libjava/java/util/zip/ZipException.java33
-rw-r--r--libjava/java/util/zip/ZipFile.java234
-rw-r--r--libjava/java/util/zip/ZipInputStream.java244
-rw-r--r--libjava/java/util/zip/ZipOutputStream.java276
-rw-r--r--libjava/java/util/zip/natDeflater.cc214
-rw-r--r--libjava/java/util/zip/natInflater.cc206
-rw-r--r--libjava/jni.cc2339
-rw-r--r--libjava/libgcj-test.spec.in7
-rw-r--r--libjava/libgcj.spec.in18
-rw-r--r--libjava/libgcjdata.c12
-rw-r--r--libjava/libltdl/.cvsignore13
-rw-r--r--libjava/libltdl/COPYING.LIB515
-rw-r--r--libjava/libltdl/ChangeLog13
-rw-r--r--libjava/libltdl/Makefile.am46
-rw-r--r--libjava/libltdl/Makefile.in469
-rw-r--r--libjava/libltdl/README9
-rw-r--r--libjava/libltdl/acconfig.h15
-rw-r--r--libjava/libltdl/acinclude.m41289
-rw-r--r--libjava/libltdl/aclocal.m41407
-rw-r--r--libjava/libltdl/config.h.in98
-rwxr-xr-xlibjava/libltdl/configure4118
-rw-r--r--libjava/libltdl/configure.in60
-rw-r--r--libjava/libltdl/ltdl.c1984
-rw-r--r--libjava/libltdl/ltdl.h250
-rw-r--r--libjava/libltdl/stamp-h.in1
-rw-r--r--libjava/libtool-version6
-rw-r--r--libjava/mauve-libgcj25
-rw-r--r--libjava/name-finder.cc184
-rw-r--r--libjava/no-threads.cc29
-rw-r--r--libjava/nogc.cc101
-rw-r--r--libjava/posix-threads.cc412
-rw-r--r--libjava/posix.cc104
-rw-r--r--libjava/prims.cc1074
-rw-r--r--libjava/resolve.cc1234
-rw-r--r--libjava/scripts/MakeDefaultMimeTypes.java93
-rw-r--r--libjava/scripts/classes.pl119
-rw-r--r--libjava/scripts/encodings.pl62
-rw-r--r--libjava/scripts/mime.types276
-rw-r--r--libjava/scripts/showval.java41
-rw-r--r--libjava/sysdep/ia64-frame.h282
-rw-r--r--libjava/sysdep/ia64.c81
-rw-r--r--libjava/testsuite/ChangeLog1006
-rw-r--r--libjava/testsuite/Makefile.am15
-rw-r--r--libjava/testsuite/Makefile.in274
-rw-r--r--libjava/testsuite/config/default.exp1
-rw-r--r--libjava/testsuite/lib/libjava.exp669
-rw-r--r--libjava/testsuite/libjava.compile/BlankFinal.java16
-rw-r--r--libjava/testsuite/libjava.compile/Case.java15
-rw-r--r--libjava/testsuite/libjava.compile/G19990210_1.java18
-rw-r--r--libjava/testsuite/libjava.compile/G19990210_2.java18
-rw-r--r--libjava/testsuite/libjava.compile/G19990210_3.java23
-rw-r--r--libjava/testsuite/libjava.compile/G19990217_01.java16
-rw-r--r--libjava/testsuite/libjava.compile/G19990217_02.java16
-rw-r--r--libjava/testsuite/libjava.compile/G19990217_02.no-link1
-rw-r--r--libjava/testsuite/libjava.compile/G19990225_01.java7
-rw-r--r--libjava/testsuite/libjava.compile/MethodFailure4.java40
-rw-r--r--libjava/testsuite/libjava.compile/MethodFailure4.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/N19990310_01.java18
-rw-r--r--libjava/testsuite/libjava.compile/N19990317.java23
-rw-r--r--libjava/testsuite/libjava.compile/OperatorBenchmark.java886
-rw-r--r--libjava/testsuite/libjava.compile/PR124.java9
-rw-r--r--libjava/testsuite/libjava.compile/PR124.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR127.java11
-rw-r--r--libjava/testsuite/libjava.compile/PR127.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR129_B.java9
-rw-r--r--libjava/testsuite/libjava.compile/PR140.java13
-rw-r--r--libjava/testsuite/libjava.compile/PR140.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR163.java8
-rw-r--r--libjava/testsuite/libjava.compile/PR163.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR164.java6
-rw-r--r--libjava/testsuite/libjava.compile/PR164.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR206.java7
-rw-r--r--libjava/testsuite/libjava.compile/PR207.java6
-rw-r--r--libjava/testsuite/libjava.compile/PR208.java16
-rw-r--r--libjava/testsuite/libjava.compile/PR209.java4
-rw-r--r--libjava/testsuite/libjava.compile/PR224.java16
-rw-r--r--libjava/testsuite/libjava.compile/PR224.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/PR232.java16
-rw-r--r--libjava/testsuite/libjava.compile/PR232B.java15
-rw-r--r--libjava/testsuite/libjava.compile/PR234.java24
-rw-r--r--libjava/testsuite/libjava.compile/PR235.java7
-rw-r--r--libjava/testsuite/libjava.compile/PR238.java9
-rw-r--r--libjava/testsuite/libjava.compile/PR295.java11
-rw-r--r--libjava/testsuite/libjava.compile/PR310.java9
-rw-r--r--libjava/testsuite/libjava.compile/PR310.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/Semi.java8
-rw-r--r--libjava/testsuite/libjava.compile/Statics.java7
-rw-r--r--libjava/testsuite/libjava.compile/Twice.java14
-rw-r--r--libjava/testsuite/libjava.compile/Where.java12
-rw-r--r--libjava/testsuite/libjava.compile/Where.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/abstr.java14
-rw-r--r--libjava/testsuite/libjava.compile/abstr.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/assignment.java19
-rw-r--r--libjava/testsuite/libjava.compile/assignment_2.java32
-rw-r--r--libjava/testsuite/libjava.compile/block.java14
-rw-r--r--libjava/testsuite/libjava.compile/block.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/comment.java7
-rw-r--r--libjava/testsuite/libjava.compile/compile.exp20
-rw-r--r--libjava/testsuite/libjava.compile/euc_comment1.java5
-rw-r--r--libjava/testsuite/libjava.compile/euc_comment2.java5
-rw-r--r--libjava/testsuite/libjava.compile/euc_comment3.java5
-rw-r--r--libjava/testsuite/libjava.compile/iface.java24
-rw-r--r--libjava/testsuite/libjava.compile/inner_1.java36
-rw-r--r--libjava/testsuite/libjava.compile/inner_data.java14
-rw-r--r--libjava/testsuite/libjava.compile/inner_inherit.java14
-rw-r--r--libjava/testsuite/libjava.compile/inner_priv.java11
-rw-r--r--libjava/testsuite/libjava.compile/inner_pub.java11
-rw-r--r--libjava/testsuite/libjava.compile/invokeinterface/A.java4
-rw-r--r--libjava/testsuite/libjava.compile/invokeinterface/B.java4
-rw-r--r--libjava/testsuite/libjava.compile/invokeinterface/Test.java19
-rw-r--r--libjava/testsuite/libjava.compile/not_a_redef.java6
-rw-r--r--libjava/testsuite/libjava.compile/perc.java9
-rw-r--r--libjava/testsuite/libjava.compile/plusplus.java10
-rw-r--r--libjava/testsuite/libjava.compile/pr172.java9
-rw-r--r--libjava/testsuite/libjava.compile/pr174.java15
-rw-r--r--libjava/testsuite/libjava.compile/pr176.java15
-rw-r--r--libjava/testsuite/libjava.compile/redef1.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef1.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/redef2.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef2.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/redef3.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef3.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/redef4.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef4.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/redef5.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef5.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/redef6.java6
-rw-r--r--libjava/testsuite/libjava.compile/redef6.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/sjis_comment1.java5
-rw-r--r--libjava/testsuite/libjava.compile/sjis_comment2.java5
-rw-r--r--libjava/testsuite/libjava.compile/sjis_comment3.java5
-rw-r--r--libjava/testsuite/libjava.compile/static_1.java12
-rw-r--r--libjava/testsuite/libjava.compile/static_1.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/static_2.java10
-rw-r--r--libjava/testsuite/libjava.compile/static_3.java5
-rw-r--r--libjava/testsuite/libjava.compile/static_init.java4
-rw-r--r--libjava/testsuite/libjava.compile/static_init.xfail1
-rw-r--r--libjava/testsuite/libjava.compile/static_init2.java9
-rw-r--r--libjava/testsuite/libjava.compile/static_inner.java19
-rw-r--r--libjava/testsuite/libjava.compile/support/Case.java6
-rw-r--r--libjava/testsuite/libjava.compile/support/PR129_A.java6
-rw-r--r--libjava/testsuite/libjava.compile/support/PR206_A.java8
-rw-r--r--libjava/testsuite/libjava.compile/support/PR207_A.java13
-rw-r--r--libjava/testsuite/libjava.compile/support/Waldo.java7
-rw-r--r--libjava/testsuite/libjava.jni/calls.c69
-rw-r--r--libjava/testsuite/libjava.jni/calls.java66
-rw-r--r--libjava/testsuite/libjava.jni/calls.out1
-rw-r--r--libjava/testsuite/libjava.jni/final_method.c7
-rw-r--r--libjava/testsuite/libjava.jni/final_method.java17
-rw-r--r--libjava/testsuite/libjava.jni/final_method.out1
-rw-r--r--libjava/testsuite/libjava.jni/findclass.c12
-rw-r--r--libjava/testsuite/libjava.jni/findclass.java16
-rw-r--r--libjava/testsuite/libjava.jni/findclass.out1
-rw-r--r--libjava/testsuite/libjava.jni/invoke.c7
-rw-r--r--libjava/testsuite/libjava.jni/invoke.java18
-rw-r--r--libjava/testsuite/libjava.jni/invoke.out3
-rw-r--r--libjava/testsuite/libjava.jni/noclass.c9
-rw-r--r--libjava/testsuite/libjava.jni/noclass.java25
-rw-r--r--libjava/testsuite/libjava.jni/noclass.out1
-rw-r--r--libjava/testsuite/libjava.jni/overload.c16
-rw-r--r--libjava/testsuite/libjava.jni/overload.java18
-rw-r--r--libjava/testsuite/libjava.jni/overload.out2
-rw-r--r--libjava/testsuite/libjava.jni/register.c32
-rw-r--r--libjava/testsuite/libjava.jni/register.java16
-rw-r--r--libjava/testsuite/libjava.jni/register.out1
-rw-r--r--libjava/testsuite/libjava.jni/simple_int.c7
-rw-r--r--libjava/testsuite/libjava.jni/simple_int.java16
-rw-r--r--libjava/testsuite/libjava.jni/simple_int.out1
-rw-r--r--libjava/testsuite/libjava.jni/throwit.c25
-rw-r--r--libjava/testsuite/libjava.jni/throwit.java33
-rw-r--r--libjava/testsuite/libjava.jni/throwit.out4
-rw-r--r--libjava/testsuite/libjava.jni/virtual.c7
-rw-r--r--libjava/testsuite/libjava.jni/virtual.java17
-rw-r--r--libjava/testsuite/libjava.jni/virtual.out1
-rw-r--r--libjava/testsuite/libjava.lang/Array_1.java18
-rw-r--r--libjava/testsuite/libjava.lang/Array_1.out4
-rw-r--r--libjava/testsuite/libjava.lang/Array_2.java14
-rw-r--r--libjava/testsuite/libjava.lang/Array_2.out2
-rw-r--r--libjava/testsuite/libjava.lang/Class_1.java49
-rw-r--r--libjava/testsuite/libjava.lang/Class_1.out21
-rw-r--r--libjava/testsuite/libjava.lang/Divide_1.java105
-rw-r--r--libjava/testsuite/libjava.lang/Divide_1.out11
-rw-r--r--libjava/testsuite/libjava.lang/Final.java20
-rw-r--r--libjava/testsuite/libjava.lang/Final.out1
-rw-r--r--libjava/testsuite/libjava.lang/Final.xfail1
-rw-r--r--libjava/testsuite/libjava.lang/Float_1.java52
-rw-r--r--libjava/testsuite/libjava.lang/Float_1.out1
-rw-r--r--libjava/testsuite/libjava.lang/G19990301_01.java12
-rw-r--r--libjava/testsuite/libjava.lang/G19990301_01.out2
-rw-r--r--libjava/testsuite/libjava.lang/G19990302_02.java15
-rw-r--r--libjava/testsuite/libjava.lang/G19990302_02.out3
-rw-r--r--libjava/testsuite/libjava.lang/G19990303_01.java19
-rw-r--r--libjava/testsuite/libjava.lang/G19990303_01.out3
-rw-r--r--libjava/testsuite/libjava.lang/G19990303_02.java19
-rw-r--r--libjava/testsuite/libjava.lang/G19990303_02.out3
-rw-r--r--libjava/testsuite/libjava.lang/G19990304_01.java18
-rw-r--r--libjava/testsuite/libjava.lang/G19990304_01.out3
-rw-r--r--libjava/testsuite/libjava.lang/G19990310_01.java21
-rw-r--r--libjava/testsuite/libjava.lang/G19990310_01.out3
-rw-r--r--libjava/testsuite/libjava.lang/InterfaceDispatch.java403
-rw-r--r--libjava/testsuite/libjava.lang/InterfaceDispatch.out27
-rw-r--r--libjava/testsuite/libjava.lang/Invoke_1.java27
-rw-r--r--libjava/testsuite/libjava.lang/Invoke_1.out1
-rw-r--r--libjava/testsuite/libjava.lang/Invoke_2.java20
-rw-r--r--libjava/testsuite/libjava.lang/Invoke_2.out1
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_02.java22
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_02.out1
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_3.java24
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_3.out1
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_4.java27
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_4.out1
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_5.java29
-rw-r--r--libjava/testsuite/libjava.lang/N19990310_5.out1
-rw-r--r--libjava/testsuite/libjava.lang/PR141.java41
-rw-r--r--libjava/testsuite/libjava.lang/PR141.out8
-rw-r--r--libjava/testsuite/libjava.lang/PR160.java34
-rw-r--r--libjava/testsuite/libjava.lang/PR160.out1
-rw-r--r--libjava/testsuite/libjava.lang/PR162.java29
-rw-r--r--libjava/testsuite/libjava.lang/PR162.out4
-rw-r--r--libjava/testsuite/libjava.lang/PR218.java28
-rw-r--r--libjava/testsuite/libjava.lang/PR218.out1
-rw-r--r--libjava/testsuite/libjava.lang/PR242.java36
-rw-r--r--libjava/testsuite/libjava.lang/PR242.out3
-rw-r--r--libjava/testsuite/libjava.lang/PR260.java15
-rw-r--r--libjava/testsuite/libjava.lang/PR260.out1
-rw-r--r--libjava/testsuite/libjava.lang/PR55.java9
-rw-r--r--libjava/testsuite/libjava.lang/PR55.out1
-rw-r--r--libjava/testsuite/libjava.lang/PR56.java8
-rw-r--r--libjava/testsuite/libjava.lang/PR56.out0
-rw-r--r--libjava/testsuite/libjava.lang/Primes.java213
-rw-r--r--libjava/testsuite/libjava.lang/Primes.out51
-rw-r--r--libjava/testsuite/libjava.lang/Shazam.java18
-rw-r--r--libjava/testsuite/libjava.lang/Shazam.out2
-rw-r--r--libjava/testsuite/libjava.lang/StringBuffer_1.java124
-rw-r--r--libjava/testsuite/libjava.lang/StringBuffer_1.out19
-rw-r--r--libjava/testsuite/libjava.lang/Synch.java17
-rw-r--r--libjava/testsuite/libjava.lang/Synch.out1
-rw-r--r--libjava/testsuite/libjava.lang/Thread_1.java184
-rw-r--r--libjava/testsuite/libjava.lang/Thread_1.out9
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Alive.java47
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Alive.out5
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Interrupt.java134
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Interrupt.out8
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Join.java68
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Join.out12
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Monitor.java65
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Monitor.out1
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Sleep.java24
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Sleep.out2
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait.java49
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait.out4
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait_2.java144
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait_2.out20
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java76
-rw-r--r--libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out5
-rw-r--r--libjava/testsuite/libjava.lang/Throw_1.java25
-rw-r--r--libjava/testsuite/libjava.lang/Throw_1.out0
-rw-r--r--libjava/testsuite/libjava.lang/anfi.java33
-rw-r--r--libjava/testsuite/libjava.lang/anfi.out3
-rw-r--r--libjava/testsuite/libjava.lang/anon.java52
-rw-r--r--libjava/testsuite/libjava.lang/anon.out5
-rw-r--r--libjava/testsuite/libjava.lang/anon2.java50
-rw-r--r--libjava/testsuite/libjava.lang/anon2.out5
-rw-r--r--libjava/testsuite/libjava.lang/anon3.java28
-rw-r--r--libjava/testsuite/libjava.lang/anon3.out2
-rw-r--r--libjava/testsuite/libjava.lang/anon4.java30
-rw-r--r--libjava/testsuite/libjava.lang/anon4.out2
-rw-r--r--libjava/testsuite/libjava.lang/anonarray.java22
-rw-r--r--libjava/testsuite/libjava.lang/anonarray.out4
-rw-r--r--libjava/testsuite/libjava.lang/anonarray2.java22
-rw-r--r--libjava/testsuite/libjava.lang/anonarray2.out4
-rw-r--r--libjava/testsuite/libjava.lang/anonarray3.java13
-rw-r--r--libjava/testsuite/libjava.lang/anonarray3.out1
-rw-r--r--libjava/testsuite/libjava.lang/direct_read.java27
-rw-r--r--libjava/testsuite/libjava.lang/direct_read.out2
-rw-r--r--libjava/testsuite/libjava.lang/direct_write.java27
-rw-r--r--libjava/testsuite/libjava.lang/direct_write.out2
-rw-r--r--libjava/testsuite/libjava.lang/err1.java25
-rw-r--r--libjava/testsuite/libjava.lang/err1.out1
-rw-r--r--libjava/testsuite/libjava.lang/err10.java23
-rw-r--r--libjava/testsuite/libjava.lang/err10.out1
-rw-r--r--libjava/testsuite/libjava.lang/err11.java30
-rw-r--r--libjava/testsuite/libjava.lang/err11.out1
-rw-r--r--libjava/testsuite/libjava.lang/err12.java27
-rw-r--r--libjava/testsuite/libjava.lang/err12.out1
-rw-r--r--libjava/testsuite/libjava.lang/err13.java21
-rw-r--r--libjava/testsuite/libjava.lang/err13.out1
-rw-r--r--libjava/testsuite/libjava.lang/err2.java28
-rw-r--r--libjava/testsuite/libjava.lang/err2.out1
-rw-r--r--libjava/testsuite/libjava.lang/err3.java34
-rw-r--r--libjava/testsuite/libjava.lang/err3.out2
-rw-r--r--libjava/testsuite/libjava.lang/err4.java34
-rw-r--r--libjava/testsuite/libjava.lang/err4.out2
-rw-r--r--libjava/testsuite/libjava.lang/err5.java35
-rw-r--r--libjava/testsuite/libjava.lang/err5.out1
-rw-r--r--libjava/testsuite/libjava.lang/err6.java26
-rw-r--r--libjava/testsuite/libjava.lang/err6.out1
-rw-r--r--libjava/testsuite/libjava.lang/err7.java23
-rw-r--r--libjava/testsuite/libjava.lang/err7.out1
-rw-r--r--libjava/testsuite/libjava.lang/err8.java23
-rw-r--r--libjava/testsuite/libjava.lang/err8.out1
-rw-r--r--libjava/testsuite/libjava.lang/err9.java32
-rw-r--r--libjava/testsuite/libjava.lang/err9.out1
-rw-r--r--libjava/testsuite/libjava.lang/final_inner.java19
-rw-r--r--libjava/testsuite/libjava.lang/final_inner.out2
-rw-r--r--libjava/testsuite/libjava.lang/final_int.java22
-rw-r--r--libjava/testsuite/libjava.lang/final_int.out2
-rw-r--r--libjava/testsuite/libjava.lang/final_static_and_friend.java17
-rw-r--r--libjava/testsuite/libjava.lang/final_static_and_friend.out1
-rw-r--r--libjava/testsuite/libjava.lang/indirect.java33
-rw-r--r--libjava/testsuite/libjava.lang/indirect.out3
-rw-r--r--libjava/testsuite/libjava.lang/indirect_read.java33
-rw-r--r--libjava/testsuite/libjava.lang/indirect_read.out2
-rw-r--r--libjava/testsuite/libjava.lang/indirect_write.java32
-rw-r--r--libjava/testsuite/libjava.lang/indirect_write.out2
-rw-r--r--libjava/testsuite/libjava.lang/inner1.java36
-rw-r--r--libjava/testsuite/libjava.lang/inner1.out2
-rw-r--r--libjava/testsuite/libjava.lang/inner2.java18
-rw-r--r--libjava/testsuite/libjava.lang/inner2.out2
-rw-r--r--libjava/testsuite/libjava.lang/inner3.java23
-rw-r--r--libjava/testsuite/libjava.lang/inner3.out2
-rw-r--r--libjava/testsuite/libjava.lang/inner4.java34
-rw-r--r--libjava/testsuite/libjava.lang/inner4.out4
-rw-r--r--libjava/testsuite/libjava.lang/inner_array.java30
-rw-r--r--libjava/testsuite/libjava.lang/inner_array.out3
-rw-r--r--libjava/testsuite/libjava.lang/inner_interface.java27
-rw-r--r--libjava/testsuite/libjava.lang/inner_interface.out2
-rw-r--r--libjava/testsuite/libjava.lang/instance.java48
-rw-r--r--libjava/testsuite/libjava.lang/instance.out21
-rw-r--r--libjava/testsuite/libjava.lang/instinit.java22
-rw-r--r--libjava/testsuite/libjava.lang/instinit.out4
-rw-r--r--libjava/testsuite/libjava.lang/instinit2.java31
-rw-r--r--libjava/testsuite/libjava.lang/instinit2.out4
-rw-r--r--libjava/testsuite/libjava.lang/klass.java10
-rw-r--r--libjava/testsuite/libjava.lang/klass.out1
-rw-r--r--libjava/testsuite/libjava.lang/lang.exp35
-rw-r--r--libjava/testsuite/libjava.lang/multiple_finit.java28
-rw-r--r--libjava/testsuite/libjava.lang/multiple_finit.out4
-rw-r--r--libjava/testsuite/libjava.lang/nested_with_ctor.java27
-rw-r--r--libjava/testsuite/libjava.lang/nested_with_ctor.out3
-rw-r--r--libjava/testsuite/libjava.lang/pr100.java13
-rw-r--r--libjava/testsuite/libjava.lang/pr100.xpo2
-rw-r--r--libjava/testsuite/libjava.lang/pr109.java29
-rw-r--r--libjava/testsuite/libjava.lang/pr109.out1
-rw-r--r--libjava/testsuite/libjava.lang/pr133.java34
-rw-r--r--libjava/testsuite/libjava.lang/pr133.out3
-rw-r--r--libjava/testsuite/libjava.lang/pr179.java61
-rw-r--r--libjava/testsuite/libjava.lang/pr179.out8
-rw-r--r--libjava/testsuite/libjava.lang/pr184.java22
-rw-r--r--libjava/testsuite/libjava.lang/pr184.out1
-rw-r--r--libjava/testsuite/libjava.lang/pr83.java39
-rw-r--r--libjava/testsuite/libjava.lang/pr83.out1
-rw-r--r--libjava/testsuite/libjava.lang/private_direct_read.java26
-rw-r--r--libjava/testsuite/libjava.lang/private_direct_read.out2
-rw-r--r--libjava/testsuite/libjava.lang/private_direct_write.java25
-rw-r--r--libjava/testsuite/libjava.lang/private_indirect_read.java32
-rw-r--r--libjava/testsuite/libjava.lang/private_indirect_write.java32
-rw-r--r--libjava/testsuite/libjava.lang/search_outer.java28
-rw-r--r--libjava/testsuite/libjava.lang/search_outer.out3
-rw-r--r--libjava/testsuite/libjava.lang/stringconst.java22
-rw-r--r--libjava/testsuite/libjava.lang/stringconst.out1
-rw-r--r--libjava/testsuite/libjava.lang/stringconst2.java21
-rw-r--r--libjava/testsuite/libjava.lang/stringconst2.out1
-rw-r--r--libjava/testsuite/libjava.lang/stub.java101
-rw-r--r--libjava/testsuite/libjava.lang/stub.out33
-rw-r--r--libjava/testsuite/libjava.lang/test_long.java13
-rw-r--r--libjava/testsuite/libjava.lang/test_long.out1
-rw-r--r--libjava/testsuite/libjava.lang/tmi.java43
-rw-r--r--libjava/testsuite/libjava.lang/tmi.out5
-rw-r--r--libjava/testsuite/libjava.lang/tp.java36
-rw-r--r--libjava/testsuite/libjava.lang/tp.out2
-rw-r--r--libjava/testsuite/libjava.lang/update_outer.java28
-rw-r--r--libjava/testsuite/libjava.lang/update_outer.out2
-rw-r--r--libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java31
-rw-r--r--libjava/testsuite/libjava.mauve/mauve.exp389
-rw-r--r--libjava/win32-threads.cc247
1336 files changed, 0 insertions, 374212 deletions
diff --git a/boehm-gc/BCC_MAKEFILE b/boehm-gc/BCC_MAKEFILE
deleted file mode 100644
index 225a1ed4998..00000000000
--- a/boehm-gc/BCC_MAKEFILE
+++ /dev/null
@@ -1,82 +0,0 @@
-# Makefile for Borland C++ 4.5 on NT
-# For Borland 5.0, replace bc45 by bc5.
-# If you have the Borland assembler, remove "-DUSE_GENERIC"
-#
-bc= c:\bc45
-bcbin= $(bc)\bin
-bclib= $(bc)\lib
-bcinclude= $(bc)\include
-
-cc= $(bcbin)\bcc32
-rc= $(bcbin)\brc32
-lib= $(bcbin)\tlib
-link= $(bcbin)\tlink32
-cflags= -R -v -vi -H -H=gc.csm -I$(bcinclude);cord -L$(bclib) \
- -w-pro -w-aus -w-par -w-ccc -w-rch -a4 -D__STDC__=0
-#defines= -DSILENT
-defines= -DSMALL_CONFIG -DSILENT -DALL_INTERIOR_POINTERS -DUSE_GENERIC
-
-.c.obj:
- $(cc) @&&|
- $(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.c
-|
-
-.cpp.obj:
- $(cc) @&&|
- $(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.cpp
-|
-
-.rc.res:
- $(rc) -i$(bcinclude) -r -fo$* $*.rc
-
-XXXOBJS= XXXalloc.obj XXXreclaim.obj XXXallchblk.obj XXXmisc.obj \
- XXXmach_dep.obj XXXos_dep.obj XXXmark_rts.obj XXXheaders.obj XXXmark.obj \
- XXXobj_map.obj XXXblacklst.obj XXXfinalize.obj XXXnew_hblk.obj \
- XXXdbg_mlc.obj XXXmalloc.obj XXXstubborn.obj XXXdyn_load.obj \
- XXXtypd_mlc.obj XXXptr_chck.obj XXXgc_cpp.obj XXXmallocx.obj
-
-OBJS= $(XXXOBJS:XXX=)
-
-all: gctest.exe cord\de.exe test_cpp.exe
-
-$(OBJS) test.obj: gc_priv.h gc_hdrs.h gc.h gcconfig.h MAKEFILE
-
-gc.lib: $(OBJS)
- -del gc.lib
- tlib $* @&&|
- $(XXXOBJS:XXX=+)
-|
-
-gctest.exe: test.obj gc.lib
- $(cc) @&&|
- $(cflags) -W -e$* test.obj gc.lib
-|
-
-cord\de.obj cord\de_win.obj: cord\cord.h cord\private\cord_pos.h cord\de_win.h \
- cord\de_cmds.h
-
-cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj \
- cord\de_win.res gc.lib
- $(cc) @&&|
- $(cflags) -W -e$* cord\cordbscs.obj cord\cordxtra.obj \
- cord\de.obj cord\de_win.obj gc.lib
-|
- $(rc) cord\de_win.res cord\de.exe
-
-gc_cpp.obj: gc_cpp.h gc.h
-
-gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
-
-test_cpp.cpp: test_cpp.cc
- copy test_cpp.cc test_cpp.cpp
-
-test_cpp.exe: test_cpp.obj gc_cpp.h gc.h gc.lib
- $(cc) @&&|
- $(cflags) -W -e$* test_cpp.obj gc.lib
-|
-
-scratch:
- -del *.obj *.res *.exe *.csm cord\*.obj cord\*.res cord\*.exe cord\*.csm
-
-
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
deleted file mode 100644
index 3d2b2e5c1af..00000000000
--- a/boehm-gc/ChangeLog
+++ /dev/null
@@ -1,593 +0,0 @@
-2000-09-10 Alexandre Oliva <aoliva@redhat.com>
-
- * acinclude.m4: Include libtool macros from the top level.
- * aclocal.m4, configure: Rebuilt.
-
-2000-09-04 Anthony Green <green@redhat.com>
-
- Fix for PR libgcj/230:
- * mark.c (GC_mark_from_mark_stack): Remove call to
- GC_debug_object_start.
- * gc_priv.h (GC_debug_object_start): Remove prototype.
-
-2000-08-16 Alexandre Oliva <aoliva@redhat.com>
-
- * gcconfig.h [OSF1] (_end): Declare as `int'.
-
-2000-08-02 Tom Tromey <tromey@cygnus.com>
-
- * gc_priv.h (GC_generic_malloc_inner): Prototype.
- (GC_generic_malloc): Likewise.
- (GC_add_to_black_list_normal): Likewise.
- (GC_find_header): Likewise.
- (GC_ADD_TO_BLACK_LIST_NORMAL): Cast bits argument to word.
- * gc_mark.h (GC_find_start): Prototype.
- (GC_signal_mark_stack_overflow): Likewise.
-
-2000-07-24 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (THREADS): Don't --enable-threads on IRIX <= 5.*.
- * configure: Rebuilt.
-
- * dyn_load.c (GC_scratch_last_end_ptr): Don't declare a #define.
-
-2000-06-20 Bryce McKinlay <bryce@albatross.co.nz>
-
- Imported version 5.1.
- * acinclude.m4: Push version to 5.1.
-
-2000-06-19 Andrew Haley <aph@cygnus.com>
-
- * os_dep.c (read): Pass two dummy args to syscall().
-
-2000-05-11 Bryce McKinlay <bryce@albatross.co.nz>
-
- Imported 5.0 release version.
- * acinclude.m4: Increment version to 5.0.
-
-2000-05-07 Bryce McKinlay <bryce@albatross.co.nz>
-
- Imported version 5.0alpha7.
- * acinclude.m4: Update version to 5.0a7.
-
-2000-04-26 Jakub Jelinek <jakub@redhat.com>
-
- * gcconfig.h (SPARC): Define ALIGNMENT to 8 for 64bit SPARC.
- (SPARC/LINUX): Use GC_SysVGetDataStart instead of LINUX_DATA_START
- - sparc glibc does not provide it.
- (SAVE_CALL_CHAIN, ASM_CLEAR_CODE): Define on sparc*-linux*.
- Make STACKBOTTOM depend on the wordsize.
- * os_dep.c (GC_SysVGetDataStart): Compile in on sparc*-linux*.
- (struct frame): Declare on sparc*-linux*.
- (GC_save_callers): Bias the frame pointers if needed (sparc64).
- * mach_dep.c (GC_save_regs_in_stack): Optimize on sparc32.
- Implement on sparc64.
- (GC_clear_stack_inner): Implement on sparc64.
- * gc_priv.h (GC_test_and_set): Implement for sparc.
- * linux_threads.c (GC_suspend_handler, GC_push_all_stacks): Use
- GC_save_regs_in_stack on sparc.
-
-2000-04-23 Tom Tromey <tromey@cygnus.com>
-
- * gcconfig.h (DYNAMIC_LOADING): Define for PPC Linux.
-
-2000-04-19 Bryce McKinlay <bryce@albatross.co.nz>
-
- Imported version version 5.0alpha6.
- * acinclude.m4: Bump version to 5.0a6.
- * configure.in: Don't use alpha_mach_dep.s.
- * include/private/config.h, irix_threads.c gc_watcom.asm: Delete
- obsolete files.
- * Makefile.am, Makefile.in: irix_threads.c is now
- hpux_irix_threads.c.
- * Makefile.orig: Updated from gc distribution Makefile.
-
-2000-03-26 Anthony Green <green@redhat.com>
-
- * misc.c (GC_enable): Always define GC_enable and GC_disable.
-
-2000-02-14 Tom Tromey <tromey@cygnus.com>
-
- * gc.h (dlopen): Define as GC_dlopen on Linux.
- (GC_dlopen): Declare on Linux.
- * dyn_load.c (GC_dlopen): Define for Linux.
-
-Fri Jan 28 17:13:20 2000 Anthony Green <green@cygnus.com>
-
- * gcconfig.h (DATASTART): Add missing extern declaration
- for data_start on powerpc.
-
-1999-12-22 Bryce McKinlay <bryce@albatross.co.nz>
-
- * linux_threads.c: Don't block SIGINT, SIGQUIT, SIGTERM in the
- NO_SIGNALS case.
-
-1999-12-19 Jeff Sturm <jsturm@sigma6.com>
-
- * gcconfig.h: Define DATASTART for Alpha Linux.
-
-1999-12-19 Anthony Green <green@cygnus.com>
-
- * gcconfig.h: Use libgcj hack for Alpha Linux.
- Undefine MPROTEXT_VDB (from Jeff Sturm).
- * os_dep.c: Remove Alpha Linux hacks.
- * misc.c: Ditto.
-
-1999-12-13 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4: Changed version to 5.0a4.
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcjgc_la_LDFLAGS): Changed version to 1:1:0.
-
-1999-12-12 Anthony Green <green@cygnus.com>
-
- * gcconfig.h (DATASTART): Define as (&data_start) for PowerPC
- Linux.
- (DYNAMIC_LOADING): Define for PowerPC Linux.
- * os_dep.c: Remove some special cases for PowerPC Linux.
- * misc.c (GC_init_inner): Don't call GC_init_linux_data_start
- for PowerPC Linux.
-
-1999-11-04 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcjgc_la_SOURCES): Removed quick_threads.c.
-
- * misc.c (GC_init_inner): Don't call GC_init_linuxppc().
- (GC_thr_init): Don't declare.
-
- * configure: Rebuilt.
- * configure.in: Removed qt threads case.
- * dyn_load.c: Don't mention QUICK_THREADS.
- * os_dep.c: Don't mention QUICK_THREADS.
- * misc.c: Don't mention QUICK_THREADS.
- * gcconfig.h: Don't mention QUICK_THREADS.
- * gc_priv.h: Removed QUICK_THREADS code.
- * quick_threads.c: Removed.
-
-1999-11-03 Tom Tromey <tromey@cygnus.com>
-
- * gcconfig.h: Merged in local changes from old config.h.
-
-1999-11-02 Bryce McKinlay <bryce@albatross.co.nz>
-
- * gcconfig.h: Don't define MPROTECT_VDB on Linux/i386.
-
-1999-11-02 Tom Tromey <tromey@cygnus.com>
-
- * quick_threads.c: Include gcconfig.h, not boehm-config.h.
-
- * configure: Rebuilt.
- * configure.in: Don't create boehm-config.h.
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcjgc_la_SOURCES): Reference gcconfig.h, not
- config.h.
- ($(all_objs)): Depend on gcconfig.h.
- * gc_priv.h: Reference GCCONFIG_H, not CONFIG_H.
- * gcconfig.h: Define GCCONFIG_H, not CONFIG_H.
- * config.h: Removed.
-
-1999-11-01 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (gctest_LDADD): Added THREADLIB.
- (TESTS): New macro.
- * configure: Rebuilt.
- * configure.in (INCLUDES): New subst.
-
-1999-09-29 Steve Chamberlain <sac@pobox.com>
-
- * config.h: Added picoJava target.
- * mach_dep.h (GC_push_regs): New code for picoJava.
-
-1999-09-28 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4 (LIB_AC_PROG_CC, LIB_AC_PROG_CXX): Provide
- appropriate AC_PROG_ symbol.
-
-Tue Aug 10 00:08:29 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * gc_priv.h: IRIX thread changes from
- include/private/gc_priv.h.
-
-Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
- builds.
-
- * configure: Rebuilt.
- * configure.in: Properly align --help output, fix capitalization
- and punctuation.
- * acinclude.m4: Likewise.
-
-1999-08-04 Tom Tromey <tromey@cygnus.com>
-
- * configure.in: Added missing `;;'. From Anthony Green.
-
-Mon Aug 2 23:09:41 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * configure.in (machdep): Use mips_ultrix_mach_dep.s on Ultrix V4.
-
-1999-08-03 Tom Tromey <tromey@cygnus.com>
-
- * gc_priv.h (GC_test_and_set): Implementation for Linux PPC from
- Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
-
-1999-08-02 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt for new libtool.
-
-1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * mips_sgi_mach_dep.s: Enable PIC option.
-
-1999-07-19 Tom Tromey <tromey@cygnus.com>
-
- * config.h (MPROTECT_VDB): Don't define on Linux.
-
-1999-07-19 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.am (.s.lo): Avoid `#line' directives.
- * Makefile.in: Rebuilt.
-
-1999-07-19 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.am (*-recursive, *-am, *-multi): Automake does not
- generate *-recursive for this Makefile, use *-am instead.
- * Makefile.in: Rebuilt.
-
-1999-06-30 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.am (.s.lo): Renamed from `.s.o'.
- * Makefile.in: Rebuilt.
-
-1999-06-21 Tom Tromey <tromey@cygnus.com>
-
- Alpha patch from Jeff Sturm:
- * os_dep.c (GC_init_linuxalpha): New function.
- * misc.c: Initialize for alpha linux.
- * gc_priv.h (GC_test_and_set): Define for alpha.
- * config.h: Don't assume __data_start on alpha.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcjgc_la_LDFLAGS): Use -version-info, not
- -release.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (toolexeclibdir): Define as libdir when
- appropriate.
- * configure: Rebuilt.
- * configure.in (USE_LIBDIR): New conditional.
-
- * configure: Rebuilt.
- * configure.in: Recognize all forms of alpha.
-
-1999-06-17 Anthony Green <green@cygnus.com>
-
- * mach_dep.c (GC_push_regs): FreeBSD-elf support (from
- Carlo Dapor <carlo@vis.ethz.ch>).
-
-1999-05-05 Gilles Zunino <Gilles.Zunino@hei.fr>
-
- * configure.in: Switch from irix threads to posix threads
- Defined IRIX_THREADS. Put mips_sgi_mach_dep.lo into machdep
- for mips architecture.
- * configure: Regenerate.
-
-1999-04-30 Tom Tromey <tromey@cygnus.com>
-
- * linux_threads.c: Don't reference __pthread_initial_thread_bos.
-
-1999-04-26 Tom Tromey <tromey@cygnus.com>
-
- * dyn_load.c (GC_FirstDLOpenedLinkMap): Declare _DYNAMIC as
- `weak'.
-
-1999-04-23 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in, configure: Rebuilt.
- * Makefile.am (EXTRA_LIBRARIES): Mention libgcjgc.la.
- (libgcjgc_la_SOURCES): Renamed.
- (libgcjgc_la_LIBADD): Likewise.
- (libgcjgc_la_DEPENDENCIES): Likewise.
- (EXTRA_libgcjgc_la_SOURCES): Likewise.
- (gctest_LDADD): Use libgcjgc.la.
- (all_objs): Mention libgcj_la_OBJECTS.
- (EXTRA_LTLIBRARIES): Renamed.
- (toollib_LTLIBRARIES): Likewise.
- (libgcjgc_la_LDFLAGS): New macro
- (toolexecdir): Renamed.
- (toolexeclibdir): Likewise.
- (toolexeclib_LTLIBRARIES): Likewise.
- (LTCOMPILE): Renamed; added libtool invocation.
- (LINK): Added libtool invocation.
- (.s.o): use LTCOMPILE.
- * configure.in: Call AM_PROG_LIBTOOL.
- (target_all): Set to libgcjgc.la.
- Mention `.lo' forms of object files.
-
-1999-04-21 Tom Tromey <tromey@cygnus.com>
-
- * misc.c (GC_init_inner): If QUICK_THREADS defined, compute
- GC_stackbottom.
-
- * os_dep.c: glibc 2.1 requires asm/sigcontext.h, not
- sigcontext.h. From Matthias Klose <doko@itso.de>.
-
-1999-04-16 Tom Tromey <tromey@cygnus.com>
-
- * config.h (__start): Declare as `int' in alpha/OSF1 case. From
- David Pettersson <dapet@mai.liu.se>
-
-1999-04-14 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Don't use sparc_mach_dep.o for Solaris. Reverts
- incorrect patch of 199-04-09.
-
- * configure: Rebuilt.
- * configure.in: Added support for alpha.
- From David Pettersson <dapet@mai.liu.se>.
-
-1999-04-13 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcjgc_a_SOURCES): Added solaris-threads.c and
- solaris-threads.h.
-
-1999-04-09 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Use sparc_mach_dep.s when building on Solaris.
-
-1999-02-23 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: For Linux, define _REENTRANT. For Solaris, define
- SOLARIS_THREADS and _SOLARIS_PTHREADS.
-
-1999-02-18 Tom Tromey <tromey@cygnus.com>
-
- * quick_threads.c (GC_push_all_stacks): Change order of arguments
- to GC_push_all_stacks depending on STACK_GROWS_DOWN define. Check
- for case where LO is NULL.
-
-1999-02-10 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure, Makefile.in: Rebuilt.
- * acinclude.m4: Updated to be used with automake 1.4.
- * configure.in: Renamed libgc to libgcjgc. Updated to be used
- with automake 1.4.
- * Makefile.am (EXTRA_LIBRARIES): Renamed libgc to libgcjgc.
- (libgcjgc_a_SOURCES): Likewise.
- (libgcjgc_a_LIBADD): Likewise.
- (libgcjgc_a_DEPENDENCIES): Likewise.
- (EXTRA_libgcjgc_a_SOURCES): Likewise.
- (gctest_LDADD): Likewise.
- (all_objs): Likewise.
-
-1999-01-08 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Define LINUX_THREADS if using POSIX threads on
- Linux.
-
- * gc_priv.h (GC_test_and_set): Put return type into definition.
-
-1998-11-24 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * Makefile.am: add support for eCos. In particular, add C++
- support for compiling the file ecos.cc.
- * ecos.cc: new file.
- * acinclude.m4: add C++ support.
- * aclocal.m4: likewise
- * config.h: add eCos support.
- * configure: likewise
- * configure.in: likewise
- * misc.c (GC_write): add eCos support.
- * os_dep.c (tiny_sbrk): add eCos support.
-
-Thu Dec 10 18:24:34 1998 Warren Levy <warrenl@cygnus.com>
-
- * misc.c (GC_init_inner): Moved STACKBASE code to os_dep.c.
- * os_dep.c (GC_get_stack_base): Moved STACKBASE code from misc.c.
-
-1998-11-23 Tom Tromey <tromey@cygnus.com>
-
- * configure.host (boehm_gc_cflags): Don't add `-O2'.
-
-1998-11-20 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * Makefile.am, Makefile.in, configure.host: tx39 build option
- "-G 0" added.
-
-1998-11-17 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Switch on host, not target.
-
-1998-11-16 Tom Tromey <tromey@cygnus.com>
-
- * gc_priv.h (GC_debug_object_start): Declare.
- * mark.c (GC_mark_from_mark_stack): Call GC_debug_object_start.
- * gc.h (GC_debug_register_finalizer_no_order,
- GC_register_finalizer_no_order): Declare.
- (GC_REGISTER_FINALIZER_NO_ORDER): New macro.
- * dbg_mlc.c (GC_debug_register_finalizer_no_order): New function.
- (GC_debug_generic_malloc): Likewise.
- (GC_debug_object_start): new function.
-
-1998-11-11 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Recognize --enable-java-gc, not --enable-gc.
-
-Tue Nov 3 18:01:12 1998 Tom Tromey <tromey@sanguine.cygnus.com>
-
- * dyn_load.c: Handle QUICK_THREADS case.
-
-1998-10-21 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Put cpp defines here, not in config.h. Recognize
- --enable-threads. Set INCLUDES. Create boehm-cflags file. Don't
- define PACKAGE or VERSION.
- * config.h (SILENT, NO_SIGNALS, NO_DEBUGGING, JAVA_FINALIZATION):
- Don't define.
-
- * os_dep.c (GC_default_push_other_roots): Define when
- QUICK_THREADS defined.
- * misc.c: Added QUICK_THREADS case.
- * gc_priv.h: Added QUICK_THREADS case to define LOCK and UNLOCK.
- * config.h (THREADS): Define if QUICK_THREADS defined.
- * Makefile.in: Rebuilt.
- * Makefile.am (libgc_a_SOURCES): Added linux_threads.c,
- quick_threads.c.
- * quick_threads.c: New file.
-
-1998-10-20 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4: Don't subst machine_dir or sys_dir.
- * configure.host: Removed unused code.
-
-Sun Oct 11 08:18:02 1998 Anthony Green <green@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Fix typo in previous patch.
-
-Sun Oct 11 08:06:11 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.in, aclocal.m4, configure: Rebuilt.
- * Makefile.am, acinclude.m4, configure.in: Add multilib support.
- * configure.host: Created.
-
-Tue Sep 1 10:58:15 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (lib_LIBRARIES): Use target_all.
- (EXTRA_LIBRARIES): New macro.
- * configure: Rebuilt.
- * configure.in: Recognize --enable-gc.
-
-Thu Aug 13 10:52:45 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (COMPILE): Define.
- (LINK): Likewise.
- (.s.o): Use MY_CFLAGS.
- * configure: Rebuilt.
- * configure.in (MY_CFLAGS): Define and subst.
-
-Wed Aug 12 11:41:43 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Added --with-cross-host argument. Use
- $with_cross_host to determine when cross-compiling.
-
- * config.h (SMALL_CONFIG): Don't define.
- * configure: Rebuilt.
- * configure.in: Define SMALL_CONFIG when cross-compiling.
-
-Tue Aug 11 11:41:25 1998 Tom Tromey <tromey@cygnus.com>
-
- * solaris_pthreads.c, misc.c, gc_priv.h, config.h, alloc.c,
- allchblk.c: Merged with 4.13a2 while preserving local changes.
-
- * Makefile.orig: Updated from Makefile in 4.13a2.
-
- * configure: Rebuilt.
- * configure.in: Updated version number to 4.13a2. On Solaris,
- don't build with -O when using gcc.
-
- Merged in version 4.13alpha2:
- * config.h (USE_MMAP): Re-enable on Solaris.
- * solaris_pthreads.c: Removed RCS Id line.
- * alpha_mach_dep.s: Removed RCS Id line.
-
-Wed Jul 22 15:38:12 1998 Tom Tromey <tromey@cygnus.com>
-
- * config.h (USE_MMAP): Don't define for Solaris.
-
-Wed Jun 10 12:51:41 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgc_a_SOURCES): Removed setjmp_t.c.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgc_a_SOURCES): Removed add_gc_prefix.c.
-
-Thu May 14 15:32:58 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(all_objs)): Depend on config.h.
-
- * config.h: [MIPS] If DATASTART_IS_ETEXT defined then define
- DATASTART as &_etext.
- * misc.c (GC_init_inner): If STACKBASE defined, then use it.
- * configure: Rebuilt.
- * configure.in: Define STACKBASE and DATASTART_IS_ETEXT for the
- tx39.
-
-Tue May 12 13:15:45 1998 Tom Tromey <tromey@cygnus.com>
-
- * alloc.c: Don't call GET_TIME if NO_CLOCK defined.
- (GC_maybe_gc): Likewise.
- * os_dep.c: If NO_SIGSET defined, then have empty
- GC_disable_signals and GC_enable_signals.
- * configure: Rebuilt.
- * configure.in: Added --with-target-subdir option. If
- cross-compiling, define NO_SIGSET and NO_CLOCK.
-
-Wed May 6 16:40:28 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (.s.o): Directly use CC -x assembler-with-cpp.
- (AS): Removed.
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4: New file.
- * configure.in: Don't run AM_EXEEXT. Use LIB_AC_PROG_CC.
-
-Thu Apr 30 14:51:12 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Link boehm-config.h to config.h.
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Removed.
- * config.h (SILENT, SMALL_CONFIG, NO_SIGNALS, NO_DEBUGGING,
- JAVA_FINALIZATION): Define
-
-Wed Apr 29 11:03:14 1998 Tom Tromey <tromey@cygnus.com>
-
- * Many files: Use GC_bool, not bool.
- * gc_priv.h: Define GC_bool, not bool.
-
- * misc.c (GC_dont_gc): Define as int.
- (GC_quiet): Likewise.
- * gc_priv.h (GC_never_stop_func): Declare as returning bool.
- * alloc.c (GC_dont_expand): Define as int.
- * gc_priv.h: For gcc, define bool as char.
-
-Tue Apr 28 22:44:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (check_PROGRAMS): New macro.
- (gctest_SOURCES): Likewise.
- (gctest_LDADD): Likewise.
-
-Mon Apr 27 23:53:24 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgc_a_SOURCES): Added dyn_load.c.
- * configure: Rebuilt.
- * configure.in: Define SUNOS53_SHARED_LIB on Solaris 2.3.
-
-Wed Apr 15 11:40:56 1998 Tom Tromey <tromey@sanguine.cygnus.com>
-
- * Makefile.am, Makefile.in, configure.in, configure, aclocal.m4:
- New files.
- * Makefile.orig: Renamed from Makefile.
-
diff --git a/boehm-gc/EMX_MAKEFILE b/boehm-gc/EMX_MAKEFILE
deleted file mode 100644
index 54a06ce3881..00000000000
--- a/boehm-gc/EMX_MAKEFILE
+++ /dev/null
@@ -1,141 +0,0 @@
-#
-# OS/2 specific Makefile for the EMX environment
-#
-# You need GNU Make 3.71, gcc 2.5.7, emx 0.8h and GNU fileutils 3.9
-# or similar tools. C++ interface and de.exe weren't tested.
-#
-# Rename this file "Makefile".
-#
-
-# Primary targets:
-# gc.a - builds basic library
-# c++ - adds C++ interface to library and include directory
-# cords - adds cords (heavyweight strings) to library and include directory
-# test - prints porting information, then builds basic version of gc.a, and runs
-# some tests of collector and cords. Does not add cords or c++ interface to gc.a
-# cord/de.exe - builds dumb editor based on cords.
-CC= gcc
-CXX=g++
-# Needed only for "make c++", which adds the c++ interface
-
-CFLAGS= -O -DALL_INTERIOR_POINTERS -DSILENT
-# Setjmp_test may yield overly optimistic results when compiled
-# without optimization.
-# -DSILENT disables statistics printing, and improves performance.
-# -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
-# altered stubborn objects, at substantial performance cost.
-# -DFIND_LEAK causes the collector to assume that all inaccessible
-# objects should have been explicitly deallocated, and reports exceptions
-# -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
-# (Clients should also define SOLARIS_THREADS and then include
-# gc.h before performing thr_ or GC_ operations.)
-# -DALL_INTERIOR_POINTERS allows all pointers to the interior
-# of objects to be recognized. (See gc_private.h for consequences.)
-# -DSMALL_CONFIG tries to tune the collector for small heap sizes,
-# usually causing it to use less space in such situations.
-# Incremental collection no longer works in this case.
-# -DDONT_ADD_BYTE_AT_END is meaningful only with
-# -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
-# causes all objects to be padded so that pointers just past the end of
-# an object can be recognized. This can be expensive. (The padding
-# is normally more than one byte due to alignment constraints.)
-# -DDONT_ADD_BYTE_AT_END disables the padding.
-
-AR= ar
-RANLIB= ar s
-
-# Redefining srcdir allows object code for the nonPCR version of the collector
-# to be generated in different directories
-srcdir = .
-VPATH = $(srcdir)
-
-OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dyn_load.o dbg_mlc.o malloc.o stubborn.o checksums.o typd_mlc.o ptr_chck.o mallocx.o
-
-CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o
-
-CORD_INCLUDE_FILES= $(srcdir)/gc.h $(srcdir)/cord/cord.h $(srcdir)/cord/ec.h \
- $(srcdir)/cord/cord_pos.h
-
-# Libraries needed for curses applications. Only needed for de.
-CURSES= -lcurses -ltermlib
-
-# The following is irrelevant on most systems. But a few
-# versions of make otherwise fork the shell specified in
-# the SHELL environment variable.
-SHELL= bash
-
-SPECIALCFLAGS =
-# Alternative flags to the C compiler for mach_dep.c.
-# Mach_dep.c often doesn't like optimization, and it's
-# not time-critical anyway.
-
-all: gc.a gctest.exe
-
-$(OBJS) test.o: $(srcdir)/gc_priv.h $(srcdir)/gc_hdrs.h $(srcdir)/gc.h \
- $(srcdir)/gcconfig.h $(srcdir)/gc_typed.h
-# The dependency on Makefile is needed. Changing
-# options such as -DSILENT affects the size of GC_arrays,
-# invalidating all .o files that rely on gc_priv.h
-
-mark.o typd_mlc.o finalize.o: $(srcdir)/gc_mark.h
-
-gc.a: $(OBJS)
- $(AR) ru gc.a $(OBJS)
- $(RANLIB) gc.a
-
-cords: $(CORD_OBJS) cord/cordtest.exe
- $(AR) ru gc.a $(CORD_OBJS)
- $(RANLIB) gc.a
- cp $(srcdir)/cord/cord.h include/cord.h
- cp $(srcdir)/cord/ec.h include/ec.h
- cp $(srcdir)/cord/cord_pos.h include/cord_pos.h
-
-gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/gc_cpp.h
- $(CXX) -c -O $(srcdir)/gc_cpp.cc
-
-c++: gc_cpp.o $(srcdir)/gc_cpp.h
- $(AR) ru gc.a gc_cpp.o
- $(RANLIB) gc.a
- cp $(srcdir)/gc_cpp.h include/gc_cpp.h
-
-mach_dep.o: $(srcdir)/mach_dep.c
- $(CC) -o mach_dep.o -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
-
-mark_rts.o: $(srcdir)/mark_rts.c
- $(CC) -o mark_rts.o -c $(CFLAGS) $(srcdir)/mark_rts.c
-
-cord/cordbscs.o: $(srcdir)/cord/cordbscs.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c $(srcdir)/cord/cordbscs.c -o cord/cordbscs.o
-
-cord/cordxtra.o: $(srcdir)/cord/cordxtra.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c $(srcdir)/cord/cordxtra.c -o cord/cordxtra.o
-
-cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c $(srcdir)/cord/cordprnt.c -o cord/cordprnt.o
-
-cord/cordtest.exe: $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a
- $(CC) $(CFLAGS) -o cord/cordtest.exe $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a
-
-cord/de.exe: $(srcdir)/cord/de.c $(srcdir)/cord/cordbscs.o $(srcdir)/cord/cordxtra.o gc.a
- $(CC) $(CFLAGS) -o cord/de.exe $(srcdir)/cord/de.c $(srcdir)/cord/cordbscs.o $(srcdir)/cord/cordxtra.o gc.a $(CURSES)
-
-clean:
- rm -f gc.a test.o gctest.exe output-local output-diff $(OBJS) \
- setjmp_test mon.out gmon.out a.out core \
- $(CORD_OBJS) cord/cordtest.exe cord/de.exe
- -rm -f *~
-
-gctest.exe: test.o gc.a
- $(CC) $(CFLAGS) -o gctest.exe test.o gc.a
-
-# If an optimized setjmp_test generates a segmentation fault,
-# odds are your compiler is broken. Gctest may still work.
-# Try compiling setjmp_t.c unoptimized.
-setjmp_test.exe: $(srcdir)/setjmp_t.c $(srcdir)/gc.h
- $(CC) $(CFLAGS) -o setjmp_test.exe $(srcdir)/setjmp_t.c
-
-test: setjmp_test.exe gctest.exe
- ./setjmp_test
- ./gctest
- make cord/cordtest.exe
- cord/cordtest
diff --git a/boehm-gc/MacOS.c b/boehm-gc/MacOS.c
deleted file mode 100644
index cc12cd15d98..00000000000
--- a/boehm-gc/MacOS.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- MacOS.c
-
- Some routines for the Macintosh OS port of the Hans-J. Boehm, Alan J. Demers
- garbage collector.
-
- <Revision History>
-
- 11/22/94 pcb StripAddress the temporary memory handle for 24-bit mode.
- 11/30/94 pcb Tracking all memory usage so we can deallocate it all at once.
- 02/10/96 pcb Added routine to perform a final collection when
-unloading shared library.
-
- by Patrick C. Beard.
- */
-/* Boehm, February 15, 1996 2:55 pm PST */
-
-#include <Resources.h>
-#include <Memory.h>
-#include <LowMem.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "gc.h"
-#include "gc_priv.h"
-
-// use 'CODE' resource 0 to get exact location of the beginning of global space.
-
-typedef struct {
- unsigned long aboveA5;
- unsigned long belowA5;
- unsigned long JTSize;
- unsigned long JTOffset;
-} *CodeZeroPtr, **CodeZeroHandle;
-
-void* GC_MacGetDataStart()
-{
- CodeZeroHandle code0 = (CodeZeroHandle)GetResource('CODE', 0);
- if (code0) {
- long belowA5Size = (**code0).belowA5;
- ReleaseResource((Handle)code0);
- return (LMGetCurrentA5() - belowA5Size);
- }
- fprintf(stderr, "Couldn't load the jump table.");
- exit(-1);
- return 0;
-}
-
-/* track the use of temporary memory so it can be freed all at once. */
-
-typedef struct TemporaryMemoryBlock TemporaryMemoryBlock, **TemporaryMemoryHandle;
-
-struct TemporaryMemoryBlock {
- TemporaryMemoryHandle nextBlock;
- char data[];
-};
-
-static TemporaryMemoryHandle theTemporaryMemory = NULL;
-static Boolean firstTime = true;
-
-void GC_MacFreeTemporaryMemory(void);
-
-Ptr GC_MacTemporaryNewPtr(size_t size, Boolean clearMemory)
-{
- static Boolean firstTime = true;
- OSErr result;
- TemporaryMemoryHandle tempMemBlock;
- Ptr tempPtr = nil;
-
- tempMemBlock = (TemporaryMemoryHandle)TempNewHandle(size + sizeof(TemporaryMemoryBlock), &result);
- if (tempMemBlock && result == noErr) {
- HLockHi((Handle)tempMemBlock);
- tempPtr = (**tempMemBlock).data;
- if (clearMemory) memset(tempPtr, 0, size);
- tempPtr = StripAddress(tempPtr);
-
- // keep track of the allocated blocks.
- (**tempMemBlock).nextBlock = theTemporaryMemory;
- theTemporaryMemory = tempMemBlock;
- }
-
-# if !defined(SHARED_LIBRARY_BUILD)
- // install an exit routine to clean up the memory used at the end.
- if (firstTime) {
- atexit(&GC_MacFreeTemporaryMemory);
- firstTime = false;
- }
-# endif
-
- return tempPtr;
-}
-
-extern word GC_fo_entries;
-
-static void perform_final_collection()
-{
- unsigned i;
- word last_fo_entries = 0;
-
- /* adjust the stack bottom, because CFM calls us from another stack
- location. */
- GC_stackbottom = (ptr_t)&i;
-
- /* try to collect and finalize everything in sight */
- for (i = 0; i < 2 || GC_fo_entries < last_fo_entries; i++) {
- last_fo_entries = GC_fo_entries;
- GC_gcollect();
- }
-}
-
-
-void GC_MacFreeTemporaryMemory()
-{
-# if defined(SHARED_LIBRARY_BUILD)
- /* if possible, collect all memory, and invoke all finalizers. */
- perform_final_collection();
-# endif
-
- if (theTemporaryMemory != NULL) {
- long totalMemoryUsed = 0;
- TemporaryMemoryHandle tempMemBlock = theTemporaryMemory;
- while (tempMemBlock != NULL) {
- TemporaryMemoryHandle nextBlock = (**tempMemBlock).nextBlock;
- totalMemoryUsed += GetHandleSize((Handle)tempMemBlock);
- DisposeHandle((Handle)tempMemBlock);
- tempMemBlock = nextBlock;
- }
- theTemporaryMemory = NULL;
-
-# if !defined(SILENT) && !defined(SHARED_LIBRARY_BUILD)
- fprintf(stdout, "[total memory used: %ld bytes.]\n",
- totalMemoryUsed);
- fprintf(stdout, "[total collections: %ld.]\n", GC_gc_no);
-# endif
- }
-}
-
-#if __option(far_data)
-
- void* GC_MacGetDataEnd()
- {
- CodeZeroHandle code0 = (CodeZeroHandle)GetResource('CODE', 0);
- if (code0) {
- long aboveA5Size = (**code0).aboveA5;
- ReleaseResource((Handle)code0);
- return (LMGetCurrentA5() + aboveA5Size);
- }
- fprintf(stderr, "Couldn't load the jump table.");
- exit(-1);
- return 0;
- }
-
-#endif /* __option(far_data) */
diff --git a/boehm-gc/MacProjects.sit.hqx b/boehm-gc/MacProjects.sit.hqx
deleted file mode 100644
index 99dff88b4cf..00000000000
--- a/boehm-gc/MacProjects.sit.hqx
+++ /dev/null
@@ -1,886 +0,0 @@
-(This file must be converted with BinHex 4.0)
-
-:$deKBe"bEfTPBh4c,R0TG!"6594%8dP8)3#3"&)e!!!"4UiT8dP8)3!(!!"50A*
-
--BA8#ZJ#3!aB"#3d0#'GM,MBi5bkjBf038%-ZZ3#3%)Zi!*!8"@`!N!6rN!4069"
-
-568e$3`%!UbqAD+X`19S!!!Ba!!!,*J!!!F%!!!-PfTmj1`#3"PET)d31)LTH6H4
-
-#*AqG5b5HI*)QjY$IIb00%ReTJSi6rG$jG(bZ,"Rc,9Umf[IRj)6FZ-j`GfGR)#!
-
-m-#qLqB#cj'G%46qffB3q8AppLXKc+P&*il4FMJMq3N32r[U,(PlSNdrQm-J(4!p
-
-jK)NHmKJSHY!,&chS$4)pk%8mL3I)B0'$AU6S3'q)k%%[5[5J&ffa#68)0ZM&#T!
-
-!*fHC-2dFZ3i83[Vr[4Xh'+DNQrm'J)rrpqe%ST`,FeVi6b,*qHH")4eQc28NFMN
-
-ZT*m,L"Y%-`pdAk6RLHDaeVV0a,,@P(4UUK66rUM'8bf91llS("lTh81)MBQ+4*q
-
-rfHENEhD)Ke#3!09'M%bL[P1+G88fa$3e)5Gpf0kARpBf*6eIH*0`ZBHR%ii"PbN
-
-+D&*)688M)Sm$Bm[cCdDjh2YIjmAc`(TVpi*Vka((A*&Yl@'LTSH1M*AMP#,2[A$
-
-(FHA@S"dL4dER#3b!EfBYem(C9P5iGH"a-bb-AL(F"bb-AL,F6)%a9pJUL,(hf%B
-
-TeQb["X5ib4DQXV!-fa6&mZf&3,(C&UDd-((SpeMBEIB`8Zc,BcZR3A5'X+jYj$'
-
-6)6HVV+R[!`#3!`X!(E@*MFQ%R4d"))`m[3JM[c)bBS54Tj'M(AP+MK&f%VD5SdG
-
-SANFB@3Rqc$Am83(+)`"G(D%A'9!bBQ6!b)b4Sq3SH8D1NDGNX$)bBi54!51--$*
-
-Kj0L!M"KKK"dC--,)-h+-6#KKC-$)-F)NamL!!Z06#X!!b&%bBUHp8RcN'%%6!b,
-
-i!!kV"`"DLHFaK*!!"Ym4K,,2i2X4c[,`c5!GIPf!ZcNi'8'VfJFpSfdpq+CY$8j
-
--V'f-DZr2[36#1(ael5hmfT@1cSU66D5pqDSA89pdTP-`Z[jj6T&!PmZBFZjal"&
-
-5iG6#blE$+&kLh#QZ118&(0T1J(hZ,9)5MJ9ic*qPI!ac'RJ96QMZjSbkMq()Ui6
-
-B+f,,#'N1icbM4N"aaBr1`3Z9U'8RY'XAiVXFKp#&k2D5Be%VCdh4%,+2QS'b"Q2
-
-%0PNT4rE#%kTUFqYDM56bVjfe!p8MqmL)1VmjVkJY`U[*$&*L3AMSpB@LCQ*U&l%
-
-T+3890rL,V9klFN*4@f0UTf8Z&&afN!"4GC6G8p3fN9$4+4[-@DAeK%lej"@eAAL
-
-eU@&4[Tm28%mqqUkS(F+VDa#lB&'rlRAllRP&l460Qc,)MHR$jMh@$8Y4Xc'e`cd
-
-ZE2AUUiH+fK96feb$epq&'RAQeLG&lCDjmP+"Kr8k9#qp'eI8RPf[6R$dS+$UcqI
-
-ELYSV[*ETFL&j[@lr803qd9I2A#bi4Vei3*d[+@Urk*!!&abe0HTVm%44"i4A6JN
-
-c(2I!kjRl6a9e813DK"A6p(LjRZZGaGH+1L5SiBT[(6ekd2*ILMSXU(l)#m3QMDB
-
-V+QTG!r*NG#RQai#DNh4,l0&!Ie`dYi98Y1%1A$5hKP4,`d9cHdKP'LkD@q4hYC*
-
-%dfdLeCCNN@i9UIBNLh5l5(8N68qhM&4R`d9cfdKP'bkD@dHU+qe&XRfNZSqc10j
-
-#8Me*&ZNfNZT0hSYd+dP&ri-FGM6G6P,p5D,rPNT0`dQLk5+6'NLb5"HDe'$L)Pe
-
-X8N2bj-Z'$r$6-$NZjLGC)1lB-"jQSff@[ak%LJ[rI#%p2ddAGREN(@"V+,S6CI!
-
-I!!!0$3KRBbj38%-ZZ@0M8&"$,VN!N"#$BJ#3%4B!!!d'!*!%rj!%68e38Ne33d-
-
-"!+X[PfqV-$P*!!!'-3!!&UB!!!(&!!!&C80(jji!N!BMM#0%$L)UANhN3L9rV@9
-
-B`f#c2p$XpAVVCc-[`k20Y5bJ+CTHPScj`Z'!lmr*#EPaRH(ZcR!J!!rqMKG"q)#
-
-cj'G%46qffB3q8Aqp4R6FA83PM6`KUjaYD&IlZ@jDrY"pk[b&AZrdH*kFbb9PM*S
-
-`4Kh$c8Lf0bVe+Y`Q$amM6mc%*C1(jF&1bFSdGIlLpc*04b#X&D8[&6R%+-#6HhJ
-
-kX"#A+Bp6%6RGkB&kM%'jh$ZLmam[1Irq,r82rGM"5H4bh1ZB+b"Z%&-pD)5CL9(
-
-AP(4UUK6$!(lkH+UPFXFARF-MIHHMXf!5Nd%SZYRQj'pfL)G3N!$94X#(q25G8U`
-
-VXL'QU3Njk8[phV2@0Q92J#d6rA2N1["[!%c(M4X-8p,0IcYJf2lRBmD2c)*RQEF
-
-68m'9jqq*MjHTji&GqDp$kh501r9fqVPJe4iQDRS)L!)ELqiX08i#@40jpP1+F@p
-
-iC&))L)Qq4Bk-cK-i*h`cDlN1cMBUbZA3+beKhX*-&UD`X%ME%F91fHB3BaCC''Y
-
-KNba-C@(,"-40Yl"l,#c8`YCDf%#"XGD%F4m3'*i'k"iah[Ddam+k"Xd3eV@02'B
-
-bj'D90I9p!!!-q)[jAU2HhQ[NiCQC&f(Ne`JR!hlN1''4Sjc`)hcL5IK+f(@8(q&
-
-(1&Nj2XreTBI[M!0dGB4'MK01#CFF2c,JK"*1MNZ1(q&(11@5ii5EKimF*ja``Np
-
-#bA(#bBL6BpQ6jq5imT-m2mQ!dq2N'H&2RT2M%Nii'6$J,PF!#N#jGS3IS9Uba%G
-
-'A-)*8[#%!j-9'#r3@EpUPQ9+NL6$ldj*kVS6INIK@`*q'q$hGRJCPb,`pUJm(fQ
-
-3!#mGrdQqe$Nm22hkJ2cerNp"i3$m4Z62S5YA40V([V`MbHF@)QPT2IN@3@$ceHm
-
-I&dT3GqF9K,'&&8[6LKMTbQ6@-*%bJE#4RM,b'FA*'VC5`0BBdTa"@aNXM#)mU'"
-
-N@d@XSIKMMiMh#RbbLSjLT49GG9"F84)Q8QfN&![N1hK"A'V5F,,dJIF@+`iNJEb
-
-H-(5Nar84j!"*Q54MH+j&08dYQc,(ipT9I+aFqIQc-XP313&803UUPPD4*+UAIlj
-
-$U+jMAP1QUSfEYV2Qp4HKfZ#TYQTCT)hEaCbp+ZXH0"m5USfHDV1HbL4cCT@41rr
-
-5+d+eL4&+'hR90)iLRp$LYcm)e5McQN@UMR#&$kKqr%eHU-DBejbUCC-k+P4N5r%
-
-Iha+Uc5aj)kVfm*'ej*8Dali5ULfHDLah-l$Zfer1#G9@6l8TTf*r,RKTZ2#Q8'h
-
-MA2&i%MYq(0aCicHKfPlfDYLeJ3*FFEG3l@"HmfJbqFrdHU&IU+jRHE95BmQFkJF
-
-29)qp)93hX!aCGLfYP0!jSEU4HF9)-e8M9rADGfC4U(BbVVC66+8XR2Hj2RAmGk'
-
-kLDNk8`@p0[6F"hrG,e3h`kmm(BhDMQjBm@`ejDH1pG)YbUXYM'Y'5aD`-H(VPZ)
-
-,*i6A,Nqe)D1Y'5@UV@HM3VAE)a3$3MT+9jAGa)HI#%*E@9ie+jmf-PA9dY#66`Z
-
-[fkMA!l&$eZ3)bP996crcal6`ZRdT$9NG0S#+V([`rRZ&eae,A%dMGB2V4H%9YPL
-
-LfZ3B194,NC[ik!QKZSYlaE"deVc1$3[9(XVeFJIG0T,9**@'AVXJZ2Db$%'!,$a
-
-e+d2+8SES`Z&RD1(C`m,VlM*Aj)cP#M@ZlJI#Djp(U28`fl)VL9dKY+IXeFM!HRJ
-
-MVc0#YCpj6@!,M0VrHYh,CMQN!FBjl1ZVEPhjaCK)``"6,6JiU@@ekMjdmEEPI@M
-
-3DpXKj3pi+f`LFFpIUPrF058)N4X)f4ZQ*P5c1[&!pGhC4i@Ue2BCE"bRL&haLRk
-
-Thb#ZUK&ZK-Kc9k4Z-[QKhdaf&1KhN!#*#IdZ-XfJhdPQ)I6l#![SYjD'HXp$hdA
-
-f$1LhNlN-r4DbV8$I8iS[RSEqj#URqY@$9b3dJG1XG))%khUHJMX,Vh896Z%"I%B
-
-PFK1MejpP2[@,$LpbTe[Q%h#[hhai0BBHF+r-MrTeL9G6k!!IKHa1rmf2qMf,9c6
-
-d)%I[5Hq$1hVVq60(`H@-9fb&cfkb$BBDc1-Ck@@#jrVH%0cXH$@cIK[C#F&2Q9X
-
-[qpl(HTpEQ9F`KqVA3&iYS3Pl6#ARpIXMVpCP6[+ma`PkbJPkbJPkbJPkbJPkbJP
-
-kbJPkbJPkbJPk1MHKTlbJTlbJpqGlF2RNe4CD`1XDTfUZEYjDHE@[F0T$,KbK"Vc
-
-mA!9AAPiGS3Qjm[HQi+l-LraVj'p1i3&mcNKce1@eZ4pFX(PY@1(66rD18)Im"eF
-
-YAJ1K#AYcK92peXpVBfM#AZAIKi*r&r$U$"h)dkhp2[JI!kp0S3GjhdZZV))A!43
-
-jH4kk(TLQKF4pTXhHI!ITRb%hcX3KfeN#**1EI54a"'@Z8(9Dm%D@b"Y#qhm!N!-
-
-0!!PRBfaTBLda,VPM8&"$,VN!N"#ah3#3%!9X!!!I``#3"2q3"&"56dT,38K-!3#
-
-TY1))Uc!eD!!!@F-!N!B563#3"2$I!*!)22J1`2KbNQaPEr+hGEX``Jk!Vpa0&eT
-
-RDl*eSGZ&%EEAc@iGG+hAYBDRapHZd6ETQH'lV2AbpMVJ4lN,ck0G4lMb)fcKAQi
-
-*AeLhm1)VRfPGM,"Zi8pBG1%a3VYZi@m,@rM#2'iAfhjHacE,K"[bJGYB,ZcNP&#
-
-"$cqJ[fRG`SmXR'aMC-H6r-)AXTaNHE+Fj"HkN!"0"R[G!H4jITB&`!(!dKX"PZ#
-
-Z+PX+S(dCS&YGZI3,cN3L+P4H)V5R@D3p,54$JD"3'!j')mhRcl%mUJ)9e2PVUaF
-
-j[6lNX)ll!4,jajb6UrZK!hSTX[caD`$ZIHl,pdeVm&EaLeKG-YjQB6AKT)84pF,
-
-kB$+55%ID`b-4QF0T19ckfSl,d['15$X-4cTr0"2!dIR5%1j[S4JQa0,J4lT!pkc
-
-"EjcQ2ZmmNDF36,1DH)X!8($N3ihbR+mcX1GC!E!0fi)+ra)rCUL`#HU&V9)ke`6
-
-IhTB!b&RK%B!&4fA8Ecr8+8IBcr)4Z8L+$bmVaA0$-Lr)$3+SMf0Xkh!%1L(hiM$
-
-H56i!P'Q(V3ZXrmCRE,f[6f'0N!"Z$E6%fl(AqCL20Ka-#kRdjh`qA&CRACe[!5i
-
-+PSiKjh)6PJM4H$#5%&U%HF#GqF0F$MM6fH)T68dFSQ!hQ*["e3hGME'TS#e`Fmq
-
-Sl`'0qRTZMfEcM@b8M`(hV,a,kqB4N8iZ[4Sh5b!9ddQpT9YP#5UK!NX`BDbr,"E
-
-!TME)X#08Bm,*$)fP2Ci@G1bTGUbETe@@q%4QL60h[2d5)BQGX-U5,*6)q)99'NX
-
-bP3a1pJZTH#BC&"!P%4'5XP`!Fm82LidDE@#h&eejC#m'cSQd"k1C&S(CD`*"Va"
-
-S%C+TmmkE6aJ*6S3kTd8)4GS&PNjQ"#DY1419T&!JQT+cV-0*5@'9$$5+K-58Y"%
-
-N8Ea'&)q3!*!!UeBZ'qd'!&14D",LQVJ'$qTI1DUU3$%0cAD!e9HMkl`KaGAASBj
-
-TJ#pMhSb5Rq0c+LJ3l3LJkD2dcrJM2Q%3Kh&mZL-JR(&m+L$L-)j29b,%B4br8)j
-
-X!Y$j4ZUh`)[eI!A!R(d!4AHG`LH[d[f@re6*b2mAI`)H5F0aI+2XYq2iC)+N`6M
-
-qC$b5"Z2ij,N%KHI*24K!$k@Plm*Hm'Rd8-bci0h@*rK6m%JDM[-[aZ1Nhq+IKNH
-
-UJA&mE-V&'KM(2a129!2Mq2,5(2qIrSHmNfTSR2rTH+3D'XHRfL81irM8FE,Ep4r
-
-eTUeM[5Ra8bilkJJ6f!)lF0e(0'p*Cke+2Nq9ccEjh#UIZq6c&[RmM(3ZV*!!cL0
-
-k&5l"Jp4$Ilc)-m$9BDMqeV0m$l6LhM(EAX9A,10lG,aR)2GNb6Sm29&b0@CfmMd
-
-&Mr!pHLh'hX&p"qiPVV#h)jIcaN(YAHVY!-im,lH&lp&Fc$pX!KD$+,qKqbMQh",
-
-@BjDAX[M-KFF0&bH!le%r'GC@E`LVXP9mKXdeG)3QcED[U18Vq4jY2c-fD8XFl$a
-
-Jb0pEdXPRCYXVR!e1c(f%qF`GKAUQcPT3T6E-YjCF2GYHhq#[aqa0'*p@XJl4r*8
-
-qM(Fa(e1(MAb2DUZDVTq-SD2mJ+kFAj*ldAQmX-KFQf"C5i,E1fA&P2jHj`!8*c4
-
-Cbq,eU+LUqmriLrQ-H$8"RJ(GXC,YKXYCKk(M!EcN!3MV-HG3b@DB@MEAd"P5,9[
-
-2CjDYplkH1ckr$1D5aNf'jH[,p0ehXaPCKe@(eI0#11SC',UQT)X9K3qD(G8hK#c
-
-C@GQUfADhU*AQPE#2X"A&i-9KaAUdDe$"bpQU)@mfJNfL,U61YQ4RBFiKFac+[hC
-
-Y@49Fi(Ye4UjKII9Fl[b`UM[(Ca+6ZhF[@mq`0Seer)R3*#Y$$IcK`pPc%EI6FKZ
-
-I`IV"'%bLZK'Mdl!5jqQ+3J!feU'k*f(FZf(EGY@@N!!CGAmMqd9@CrDD68d'jf(
-
-3TlQV6AYhAEJlGh4$epjV3bSqBiDXKA!BPjeTVUYp1pI,DPfESAK1"2eSD[B-elh
-
-H#"KCEIFl0K-Um0E-CFr[,$HC6Hhc`fDr-eb-HmN5*`iSE-8)!#TL+mfKpUV"jrc
-
-$X6fMXIlRYZ5'5$I94YXX-&C(`""L$Dkf)VmVe*%)GZr'mh(#3i3EqlYKNKblRf*
-
-'9fi`h"aV43`ejERI0DPfA"MDB``XX)HHa#bYS3h1c!hCcPlQ0+mDh0Yr`mEU8Hk
-
-YrAmUXCIMj8SFBkA%6iNVCjRI%C(IMj&E3@l3G[C&a#hGId-rBQbXrT)c0e6q'2p
-
-eC)89`[fJmPd62,qrh"5fBCA-$%rb1d1R5hbj`ddQ1G,60%Q1l'T#EqB1)110@)h
-
-%i!95M+ekEiM0HfqSHM1k9UQY&%V$jTQPB&VZFVm*4FmG"[Acbff$#qbZ,a3IKUr
-
-B"VZ2A1J-[B%elK$paa&k8Z63JaakNVNdL$c1fP%+A`QGIJ'bm6iH0ZklkX(0S"E
-
-8jP*3Mb,[3pbE@&fLD'2RS@ZY1`pG"kj1X1j#2R9*X*QX*TAMbYcVef*YX2)T6FA
-
-Q@D$Hf'AE5@VBGSP+2*elSqN#9T4Gc"`I)"SMr!P3K8hPL)Se--@E+!*#j8qBAdA
-
-F)f`H'*JMT!TSH@V*`'V2IZI1K@DpeEljYRXA2YJ9eU,IcfjLaVQJjXS%LTUELM'
-
-UNU1Q*M@HTVX(FV[-AA`QqadqFr3i9[JU81PlSB$r%d$A3iqhZfXV+KG!GjBeeU(
-
-[-cfI+9deX0(XqqDqeeCrEqGcqm6iUPf$i$#AQd`B@p0rSjJ6NR2d'hX'fX5-"MQ
-
-MU,pRS%(-F-NCDZeUk[$*BA*h$2XG9RaZHj-D6bq3!1YJC6AD61@QEFZ@lXi09,[
-
-#3r`40LMRE"V0'C!!FecYKJh1Q(D[`hN%90BLbX@@Y!c8C8j3QmY!ApD)[GhVGTJ
-
-**CcApF6MTA!ZjkemqUrh9AKG,PI[cVeVI+q#h6`$QIm$kKcXmZ"@c&ph+[pbaRf
-
-+-2[6I1-)JqV1YQR9UpZ-&Cd9Uc'6i5P6JCdV6"8c-TKV%$1eQ*@af2(L22GJCe"
-
-VaTDFcfaEffcXh1Pef-$Pm$Vic)0VQmqbL$(+mRVQJpGcr8kVcZZakIJ-9F5"VJ2
-
-A)XVacTfpDfd&ZhSY"9l2XleH6rpD3Epa6E1D10FlQJjH!G34SPGS&qM3*fC3Pe2
-
-L`2L%lVY,CV!*T39qcpXH[fHHVQRU'%UAhk2&Qk`VKaD[,i2ZHk`cX2[6K&iQRrQ
-
-lbPXmS@QX)1Y!&RH`da"Y"8BfPYDc4GPC#3lV4AhlG+E(2&HTGaMM!VD)&65CaPL
-
-Dr4lQB&J09`k9kE(,mhf[0f[T[[2#[mfpH2-6*6k4bk,U5Z`kcd%Ia$UcfEZ2Z!G
-
-1&'%PEF2B1aKl$'0hBH`R',X1BjX`pP1-h6AD-aHa8TJD0Z"T@[KdIJ$5L*0!R+1
-
-)NmCi#mDEj(J5i`fS4KaV[49[Y[ASjjGJCfSIkdaR)f+)e-#cLpMMH4iTJQFE+B$
-
-RFiN4RXfXNFpBZGXAc[3QM,G2Yh*CMh@3!(q8lFE6#ID-P'YZ"AefKT9M99N2Re%
-
-Z5UJ[cKd0UjR$Y@%N5eQr[bVdDANH1X3[2[#XjcJ0%Se1!jKa'U#f[M%BE`p&`TC
-
-@-mfEF*1J""c`J'Sc4b0!`0Q1cH9X!e(3aCl!)H`k4qIhpfYS1)*',+EMMLJR'JM
-
-*XAVRp4,L3*6EFHJLENI+bThcfZ@BBX$BV8U1Sr-@+@iljX&F'M+D6*J-'5#(%1k
-
-[1&EhlT'("@L3!%(&RA-a6V0,2#9X9%3D8*&8fT'k`V(k5V),NCZX$kh*MY@GDYV
-
-4Y-8%c[bAlh!l-U6&69c*e@N4Mj-C)C2d+XbiMLZjUSJ3--Aq8HQ-$[R0RcMaPa8
-
-e&lLqlpUj[TGS[iMVqri'VZr9AUl[KhZi[J-YA0r"GUl[d&eFhq'YA0rr0h*pEml
-
-RqYlHa2Ap"212)[Ba!pGh2-6e$Gc+p3dqbr80[FMe`hbZAjA&I4IA2aN0'##DQ-I
-
-F0B%8$M1bX*!!6V&dUi!$KD&N2-DNDAZFBic&F2BrKF2r6-!j%"D+4)8c'q,aD,f
-
-3!-3j51B9SJP@RdlLA(j+(8X++A@L25E3BD9ki@,HV9l@i1F0$6KDbP$RC(bL'2*
-
-%ikP8)(QCZL15MXe30%"dDAVbI)DMURqBCV&i5b4dfDrbrk!LN!!@@#SGL#9B+*j
-
-N3JH#Y3HLV#@5r"fhhq@IS5Jp9LM&BLQF6+PSMTk2cbS%9c)KQ@5a90K#Sf4N5PN
-
-S5M[3da4hiQK)k+XiA(ND$YpSYSe-m)LIZ,6N5rL%!p$M"e)Z2G@JJJ8FXU,((EM
-
-pQ)@$C4*&(*ZN6`SqKSGP)q02Q+F@[iqA@RaFJFBHbCM4qfMF%h!%89`D('LN6e`
-
-k'KDkIh4i5)XM8r4*4)JcM9hKZ+)%Kcj2Rl4%aj+pAcSALTmN,qQmF&6[3Z`$k*0
-
-%H%M18RJEF-b22R&0qM&+6,@P[&-a!BIik*1U!BGKe64B611lY)`iBNHI9"S+Ab9
-
-l)JjKd5HT3V25,H+!P%`9Z`rkT%9kNCS1THY!pHQ6Q&%@$8)T99L%Sfhd5H*hI$J
-
-64C28Y,C`Djl#m$6b!XGfTmrR*X8$d@L`Y6QkdK+%4i(E8[b59GP&,"cqQPC3ih4
-
-MlA''N6k&X1iVfl4IfC%6%hNG3kaD8[4Nmd+LGcpXR+[Xb-XNFZZYEkLS`Q4G+Yd
-
-5L413!'S-T`$1NR'U9P55`+R)+U%aM8!K9-"b-+[Xk$GR5FTkh)hN*rJB5@-L'EP
-
-%j(6IK+GdbSlH-e9"XT!!TkM$335*3-%BFqd`miD+#P4)M`VKJ,5STAS-5DFJ,A9
-
-lRF6mdQ"V)#Q+K-c,[YUNl&M9XNEZ@PkXmY(k8'eCj+P3G[5T%69*)e+cY5@CqV"
-
-#$%SP0969B)9`fR3N*L#-jAfF#50kqURL8%pU-)M3+FmipZBILqkTH!E9YJip)aj
-
-%`mKhi"GMeDhkeqSZq1IU*VIi[,SeRcM3"dM$M['C$j!!BhcZ!m11mCN2&2k,$aK
-
-qi32[Hr5%Rh[d,hX-I&T(k6&F2UIBBc4(!m'9d93k(d+2NBr*-djj`D*SpBJAZ,f
-
-9j!86F'3iZ$+9LDAqShqJf[jh,cLPbr2V[SPKZ8BUA*j'UT'@jR"M,2UIAFerUC*
-
-hbU&Hqqk24KaUB492qKV`$C4!&+Z"V#$rQ"GJ24rmKPrCa6X4KAZ0c$d@5+lmTal
-
-hVejS(qNI[*91V#iSP&p#b,2@2paR1A6E52mJe6FBBMJ1dGJL*2+9p3qIhj!![Bp
-
-M('C8fB"h)XK)5,I&%TpfThIZ`BHa&(9Vm2+9kL#QA,kQIZdYiIaLYrARRVV2f2q
-
-YNG[k'UGr%8DeBN-EK0EmEAlarTd(p5,rIHIa&j&hIpETLXk#R@jbC@-b,9jkj$[
-
-SG20dc3jaep#MG,*Rm*9,kClGd#jFfLM2Qq@TmibVrRcNcU2@95h1CX5Efl"&%5r
-
-8mURGV@U5ZdHGS,k4EYRemG4[EPCrFjZ4PqYQYFV$Li`LB4cI%5Ak4CIabTc4cV5
-
-Z`5pfTSPdXM(B'Xb,d*RQlCVl-6rbfNK(iUpddhemB9))4J14@"k%hM42efh'efl
-
-%*i192U1qBE',qSa81Y2F(%qfjbIV-mbRlM2Dk!QiiGN-X@CeBXhQjHJG2R%#l)P
-
-%*m$r!"'46R)DGS+2k[XNTp(qiGGq@r81$FI)IYZ`[)lZM!cTba)YbQKh2VHq(T'
-
-iYATPahXMf583L9i#-b!5'SA3JP$LMk5FV"eL5P&e,)!2AM(fqq[&rAqqJEX3ZJ0
-
-4GUAcq1#I[$MlrpXrj3jb$ZiY+2BkkdRM@qKR3r"mcb,mia%m2lM89dZ[Vqh!-,f
-
-QqNbpVjjZ29qJCq04M`2d!b+N'UT5MqGLqX832%q[Aej$mA2Gr%)2D,J,T!VQVUK
-
-`%6jhAB9V+HAI4,rjJHFl+Pb,m4eQEZZ5@KrPp5aF@N9GqC2+ql1S&YkPdTmG6Gr
-
-!qEV`09U+&4c&223NLQNk-DpALZNdR1mDqVXNM'QAB`crlBKL%mp(M*G"*FCZ`&J
-
-DZ&cZG*Ki-f,J@mmLMhX`*R29E-FB[Qe,XDNr4DlPFZc[1GrDKlkqQYkKeBBaYUl
-
-YEqK(@E3aM+N[HKM14ThU%2X*Hb(-`McNHXhpB"3j2BDaPJB6I!Ne%&qEaD`r`V`
-
-YU-G"k"3ar)MaKKaEKl'$NQC6hd1-Lq4B$Q0G-XB+e-BRajCJ,+'*V3bd4NrqAp,
-
-B[bJT[kddmXG*R(e#AIa5)9RRT[cr!`!!$3!*Cf0XD@)Y-LkjBe"33bkj!*!3qL)
-
-!N"!0"J!!,h3!N!6rN!438Np+5d&)6!%!UE6L#+X`0A!!!#*k!*!'$d%!N!43[J#
-
-3#1j"$F$iCXbcEQ9ffFS2dS@*jbZl63NYVcACZY$0##1XPDZ$V[@ke[$dmVQ6K5h
-
-FYGEmE+(Rmc@246PGf0D9hF)@VNAi`VhS`KGM(GQA+lmmdfiI)f`c`Tq`63P23V[
-
-Y`VEH`KHqX)9f(@(E*!Zrf-)@IZi)AhKXi3[E,M3j*432"&!HrHaD@&$M#f(,qq3
-
-@XL1hN!$"3Rk6AcKCb%+1%di@J&@""TeG+a&(42abSQ*m9@@VL(4[%29TUPEGj%S
-
-NfN09'd1a&"q0T8,*F(-`0#85E)pZZ-eZrEB+Z[80G6A,A6ir2'5jYd$i*mlPdrI
-
--@8-1XA6I6r6dUG[h&cAjUSAPI(dbhQEPDb0*+mqX6fN-*U1*9$3@'8GN$c0%(%0
-
-GelfTH&Fd4Q0)jLrR%MNc2aM&pcf8d``Y,Ak!B(cHb*GQH1E2Phb'JLQq0Yi5)P*
-
-IZ&DMccNrDX`mDiN1BLbSE&MC!)B+3p!!(FM4Z3"pmf##5,64Fd39&fA9Eck6N4(
-
-q-Kr+TK`qGQ`-&dGPAb51%'Q'J"dB3bK$iZYMHPIm%$'QJ`j8f2l6cq5j@TmTYD&
-
-8Dh0,2)CCjkGqG*&J+Y5CqU@IDmIQUUrh9q!`X*4GG$59b(1#DBYLrXT3Hc`B6B4
-
-D3NZ)Zr'(SNLFq4ETPX+0#01J@-c9Mci&E"ETe"lZK'B2D682F5pVpcl#6cM0`cF
-
-VIh2RdI%LA6N'$6l@jXi1I@kfp+LX3395@i-*Bq1p(FdBDS-m*N)0#&FB@QXXRJV
-
-TqHr&d$F[UDca!YiDjchaf-C3%T1`bTUFNM26%1V@@T1GbH#dKP"R2*d-KU#5L)D
-
-5FVQ)&NXr0"XEY)Prh,6j`NN!Fk+aB(Zk*F3lDTZ$[P"c5bMC1Arq8UD4i#5T15f
-
-KF$3@iP2*G)M2RB8&#LRFh0iTXfaMT'5S@aDD8))aK6DZ*"9[2BV(P+51c4hG,L+
-
-c53S*k44Xa8Acmd49U9R$Xk-p6,4P'e,Rh4bZH3"e6"(G$Pjab5Ikh&MNk*3JKBH
-
-am`[rd,p4KJ)IdrpGAkQ!SYrdArSB+K6p(4q-kaYR%DeiK@MHTTrT+airpFpf(!c
-
-C6D6hMrH[fSGq[SpSi@NLdj2ApC8!q05rrM0pH5A%p,FGr*AqP!RpYPrTjl,kIr)
-
-Mrc0p)kiXJcl9Cb(1%'6hP`BRQ0MP'EU4U`lF@CCrSLp0(%#3!"HAp98B52*lSGq
-
-&ZrfkrM3CD5@kEp'%2R+m!*ldPFM#f(9p0R-`C#rdT5&)cLr`#Kk#rMULrlIXZ[j
-
-d'6P$Y0N+!(Y!54rDdc&h'$"brDYqB3l4$[hhr$0$4PE$2eXNb2ieb2fErJLM)1T
-
-RZCa*(rQIH68r2Xk[*I+#iKreEj!!r52r-kc1XRmYjSpI3ai@B(RaKIqI,BSqG$#
-
-E'MkH69X[ckB'iJEe$Qi`RhhAFB-&cq&lKKZFKRc"-D9m50)#'Z6Fp%2+jFLffS0
-
-N5Tj%4@C5"GI&cC(ZFcD,h$e838lFZmM*m-eX'F$dP%A,,mqff[SF8$&N-KPiM91
-
-9NF2XSa0J@f1fH(J8"hGPCVYkTSRLJ,V55r6R486P'%J,"U5PdFrVi(p*UM20Z#1
-
-AjGIGE[0r"EdLeqdcjp[mNSplX,Y)hCYJ5aj0I@@G*jb-Gm65lHf-'iiR1d+aG!I
-
-M4Q-YACfKpTEfZ,40CpQLY-XkZ5B+lNFp6BS(cVppFXHLm)JE3biI%jRZ4TD29iR
-
-SY!R1P$QEBbjeBD*lqi'1GccMbIje'bEC1H@a56dI1a@*I@9pEqBF-qYcdaaAM`b
-
-5FjP9B(QLVT*e4Aa$'kXN*T*FX[j[jrbLXcJ8Me@X&Eh%AL-JTT!!Gd4B3#S&rjI
-
-6(0UBDSje*M'BT4+G-9BhC9*@-5jcH$[1@!XpJKl'$ZGDCHXmRb03ICB4reapCC!
-
-!(Mqj("6&rGSNfp+B@FQGKfZV'cfXb6ZLR8&V%2h"l5[mJ8hjJPR%eT0&kPUA"r-
-
-MPcHq*D-)FI[,GTp4[[$$5jiqJ&BGP+G#UkjaI6!H#dFM9NbNa28pDebXI1(,,(N
-
-ED'bUV!CChjPULFDCN!"U8NG00mXke@ZV@1Ge4VY$ke-3#PpeT"PAmJT`"+9)V,N
-
-pTl6IHLkVI,'RZ6PAIkpR2HXM[+GCRdK'0dVZpqGr6kpmXC'CT5KCd3'NL33K%LA
-
-eT(2pQ21Q5[3dR+GDX116UUkC9$)S5UXm2KGcINq`Y6NTP421bhiMS(ba5j&Vj+N
-
-6f#aTQ1JNeElPhNVPLj`GVbDV%DYQDdZbmeS[j5Xpee4GLelLG+PS4`JbeUXka[&
-
-k0V$H4$f6H2FMHFHjNP0bI"Sd(Fh4'2DERk5`R-%10TmaEFjrI`$I68b$mrG)kq6
-
-aHBBP*&LlQC0%8Xl9HQQfr9b!L@&XcMHPT*eJ*QI3,1Ibj`$iNqZ&q@YbPJ1Ha&!
-
-Tc3P+,rc(E-IjIaGE%9QEH@4l"'92bccba&FiN!#)&l6[jHikPAbI*GrYmVe9[[I
-
-)phhbr86Z2U8bGeIk!)'b%TGV)mAiNDCMGeGHc9GI%IUT&GqZ"BjUSA+ed+mA[-2
-
-LXC)(FAZaC"ZB'D&IrCc3Ep!"HarI&r!YF8GmAD,SLj2'YmVA4CaPLEK2k0IH*6a
-
-V*Vk$fS9GI4I"H5aL!-[(@%*ka9$HA3N5qMA()VUDA4&9YPT)mi[cZX*6&cM@eJP
-
-93VpZN!!h"R3P6RiqmI$[+mN)k3@15PH6#pcRH,qPD`T@&9NVUY3'[UeNf`)(%Um
-
-4l0h!LdSHK&T$P4pi$qrR04'Md+mkS'(0E3aI&)EejF*+mAAAd"56T5l"Ckd*lZ6
-
-dYG-("ec$9*M3CUehlN4&9Aer+0`PT+AR#H3GeRp3FMK[%pq9er8Y223JLKM!HEY
-
-N,mdU@jbA#DY@la65UhIkhK'(PTE4BPEM30kDR@@'[UIiiUc6TNIh["CTp`k2hPr
-
-5`jXLjbc1QSI$eZbmE28#KdHUPIB[)RkQV95-AKqV@,pZ+bUiLHmHp@@M''(eB8f
-
-f*6X2R,FYF5Vrc4ePeE6)rfDaf,5cCM&h@d69*`VTa,5qikYhmZK0Ble`+6c9aU-
-
-'$C(cf9ZKQl&q68LMIi$490Bh%PU%6PbL0f'aB1Hl9(X5aT1l$Kj@l3YE82GhXer
-
-JkbdqLcQ3!1Fk6iB8YmemmZL+iq,&A6dRGi493YT#@5[6iERXA%YphBr&!El1[CF
-
-+&dD44l1b0lLIpNA*b0Ie[@mhS`,[c9hpkT&bXm8F@aUa0,JLKIL@V(3KLJm!)8*
-
-&l+8LDUmD1G8`KVdmJ3fHfLH1XVUTHZhcb&J6TE``hq4Z-c@i`ef*B0pah)HB(K3
-
-H'HbMU6,f$BBChH*)C%0(+c3dM1IjL9Re`SV`bmEQ#NIi'&Lk[$Dk84behl,DCHN
-
-H16RiF'r0K2I@`Gr,ZCIaFJ8(9XVm+EKbPreGN!$mr6@mUF84qbhVQ,I8i-1$d1L
-
-YqD*,(#erAVJEVY!Kh&Y92c(6UfI+c4%lZQ4ZC'U$+c`cjjFl(c$,5(pJUS`F$5#
-
-EZE0`h)YZC!jHBaAMZcmFjCGm1&U$M9+Ne&j+T4(,h&)bVh&lrSC-Tmk6jY8epT%
-
-+KrZQ`[0dKhfNlm)+9rKGp,K6bKpRq*MNS4mHqT0LLL3I0lp35RH%Cbk#'pph)mE
-
-6[h0S,fP#'NXTD5D86d2hbhap`Y5EHAZ(lFME$j!!1d1fSr"6Rb5lf@C@BB2jcJl
-
-d"Pmq29"SQ8HDhKll%9B0qe'T%Lq*l`B@mDEXREcc)d9M9,K%USLj(+VSJHQqK)Q
-
-BUR$*mLCd,r",+)phKPA01S'YCFRQb(lRkmXX"TYMlpHHARDS*k*$hLm)m'`$`C@
-
-&''S*&!*9bDJjS-&YYQGB2'VT%G,Cl`MTLd2Sm'j5'3C),I`f)I@3!2%1,)HU+UJ
-
-[bkq[4qlc"L&GfMhFDr(rrZQrf[,p)kG15hMhd4&b@XV0CQ"E"aq41''CBqMY(fk
-
-6'%db`c6B2p`N-G`b3k2E`LC4PM$L%f0jKiiA$`FdZ,h'8JHGYGjZ,MFIA,hUZ$K
-
-Fiik-#KIi%CQcHi)c,(2FXEaGVJlG5DIV!UPX*XE&5&T'QM)AD5aPC#KEMpRZ(3F
-
-@d#@FcrhLGd[T9XjApG)IRkldZGhZJ5-RYrVI*)HP'-lr3A8KTMck#[J2AZG[`VV
-
-Jha3@r)a[((G3NfNVUYR5CUc-9'i"NmFYABR*P@C*M$5iH4*6"eEDLVfl+"l+"(8
-
-@M14#qZ$f$FE-%Cr66QkRcbQN$fhIF,09`KM,jee+2Zp$4fakRpHZ&p+X)mlfR0d
-
-"PD(-NB(YG[A4!D[DjheP`1FGh"ibp'lGS''H'jf"FrF4Q`L4&ES+2A+LQ%dj*8l
-
-JqAe2P46cqDAU"Zq2[3hH*IV!V%Q9RJD[$Y[IcD0hlLbM[MffBNarf[!E,'IqV1S
-
-aElL)9fHGF2%%2`0UDi(dPMEbbl2c%Kck4I2iE0i!RV[80kDaL&r1U`2Q5CH@"Lr
-
-[j0%0QdI,$*Mbr0mIb&Vl[VlL6mAA(hfaa#pj@9j6KDPc$R)3I@Chp&h`$&mbSC-
-
-1!RXIf22!RJ6fYm!H!,BEf0m"Hh*LCMEaT63VNSGE8@5Q-%`Tk#5JFa%k+H!Y`!-
-
-bRJ6HK'V%dHZYf,SBN!$R'c'C1LBRd`93$,0Ui1jQlR&I`LU#Zje9!2GEQ52F,Ia
-
-k)@hM(PmfejF`2MlEaQ@pYK(Kfraah#la*h*F5bXCXX8fMUr1HS@dXLKKFl&i-D,
-
-KRHjGikbVar'Y9la$l2RB6pmR,LdS'+0CVLaC,H`"dT@r%Z!F2cScr3P3LVMhU0$
-
-RDQ6lXmIBIJ6h2FZaT-(pd#Tr(GX$[`!BEfIS4+1rNEepHBe0*1LCXfaR!QFkYKh
-
-"[C!!E89`RpfiTTEKYhU%C9l5FSYb1eVZ[NShdqFHU(5[B[`[Xmd%lNp8ZZr%``V
-
-Z`-Sk2q2e,eY9c6DeamCH2MPq""hf),AJ0Z`'mAk4BHU,`2"fN@(D$$6B3eKJHLe
-
-ijh+BEJhfCmrNX"X@BR0iMP35pJI3b"!RLM2TKUm#`jj4mR%B@%X1Qrhh`&k8X3q
-
-"I82'4(M5h,f&[F[64H#l[1e2f"XKA3FdhPMh,0f#,XX(PR*-SARJ23cXC6*+rTj
-
-($GBeQHQ,U+Ad,JkXA`G[(hJpP*%d'S#PC1a"B'rNDPDX"RC'a[6!hT)eeX&I3XE
-
-f-%rDMYpUEQfrmLafmJQYmYTfr+%XjmL[Mpm65YCl'2rr!!d!#'GMG'9cG#kjZ@0
-
-38%-ZZ3#3%%0D!*!3(m-!!%+&!*!%rj!%8&*25NY"5%`"!+QdiJLV-$9B!!"5l3#
-
-3"K+K!*!%$I3!N!Me"!i!pCQCc1abX2*Ef-,&mj8EA@KjV4fRQfkf--,fZP@[Eld
-
-Z$dq2VmN'A5Bp-hbAY9lHAJFXfQdl+AG,Z2)ME*&GEJRrA-libQIDl@-,fic`*fc
-
-6K5HKhAEKE`YIq-)mEQiRK(pXXmb@iapGq-+kKCfFELT3q1c,IZ&ZXPf1@pl#b%)
-
-ffjdZC,)F@FK#&m,)B+r,!D4[CPq-FBbaqZ@-eH&@A,@%-I9,M(@V+THFE3i'I@,
-
-PFV%p`R[E)f,)lA5*'SmV)SBMaKm`"H(DkkSAQQdeb1%*lP8%I"Kcj(3rX&H6m0M
-
-IZTkaqjrj`UCT$PZ9X*!!V`m&fSamV5GNj#ReR!CAb"Z-H0XpDBqF`ePa(%eGaiT
-
-)S-2EcP+HcTr1B+bXmm9Kh'q$6Mf`X[$"KF4R$RhYV2*CXk3m49H%V`fdL)`T"cl
-
-J+-2j13Fpcq@-E8&E8'&IE%H%!Ne3,pZF#1HDf2Hf""Q,&l1('*Yr8%EphJ1GXSF
-
-r%JrNr)3rGBV*(aq@mf,a)FC8Kq$ER2+`6KCr)B9h0"r'+0,%0Xm[rQdqSqFB2cQ
-
-eBU69f4*S4krcbhc8LClZG$iIR'*cIAh0I"abUXM3iXkAEq$(ilQ,49r!j3f+,H)
-
-maNhp56c112ejNK@"P6JkPXIB&fjK8aKcR!drZX6iG+jqq&li[TdQiqM4U(!CR@&
-
-rGU+(,&FBA8QAdZJ+kKT@q*eSAPdm1Mm9!Sj'C"RE!a%aQhqm(IAaK-)B'-FE!ha
-
-jS(fj'%,(Uc#'FK,*f-@9@FC3113DEaI$J@M)*3)Pk"9$i'!+Qm`pccf[0,(*#J2
-
-h%ZcNS8*JE#k(6ij38,[0q$[cVaRB"FIjhRDA,pSLmUCDTmXQ1P[%8(M@V%X))mK
-
-*81HhL'j[ZmK(3P'46jb,ab@$h%jI@)iU6J@&a*8bd!J5%NZ'TC%NDKY",5%K9lA
-
-%%1kQ%f8Z9IE(4kQ5X*9Mq!UPK%dirih2+53-k[E(m!QELQ!-Rl#ccq$6B)6Z-I`
-
-FQ(52iC0Hd6f'2a&QlKPm`YDG`5GX%V)aI-*'%r+rq)3prJ`qB9260)C2f"21i"-
-
-feI!B2QRI@@I`#A[5'Ic*-1NH`dIV+GeMrFY8Q(52j8mG(mdXar#TGUKe(X1R`pq
-
-T1G'EYSlfTT4IFZ446jL-RfpLA2G!eYX*@kf3!1dTXPdLfkfbh5AE'fAlbB5G8j'
-
-`4rJkCZFXKT(SUhpj-0jKc0+KVIl1dd)2DmAG-GY8*93X&AUb"HYJr,'#0E!H,EJ
-
-1NCe#Mr)KS8HMKZmGh)rJ,V"iE"haZ#h!9,BPYJl''HE&0`Sp@9F+$qSClfFqB9h
-
-h3F6FlY%JbNC43[653pSVJdcS86hQ89H[mbKL98+8Rk[YF1I00PeH*e3+2HTqAYH
-
-N,LMMCc%HqGX+1SASE&1&f@&'l%0mMD%M4m1VBND`e)EiiS,VCTXD(2B'40m'rl5
-
-#08#c9pE!hmAAm#U26ZK4E&E48%VR2LJ-CTF+Lq-[Q!rPj"[UJRc-'14f6EKm3Rq
-
-[HC!!63aQaBb,eS*44IHY`T9#9"TN-1YJpRX&fl4AmahDMZpMp-1B4i1Br38Ef*5
-
-LZGT1Yf,T@L'kG+hYpILK5iVBA1+i5A[CfL*0plhmp&KCF6DUCir(CadF[VkJLmr
-
-hl$189GrN0XCQaUTQQmSPVV*HpY33GT)apN++X4le+M"i0Epbf"EcSZR0GUYL,E'
-
-CL0P[#,$5,pp39-AQe,`b2HjB@cfAZmLMk)i,dH$ilTe,er+S69fpF0LG9mb$!l[
-
-R31a#i(BDla#LU"ri@"l9MH5GKNUFPjh[CUb%le$F&p6Y@VGPQf+Mf`$HhiaG`0F
-
-EE!CpNpCmJ'NLh(AkA6XZh4NrZ+jVe`eZK4!eX*L4F(JZ0X03ArHcH#pICpR!*Pl
-
-XK4j0L8ffh'rc-KeIere1L4i-[$eMkE2E5r8'IIXP(S2Gl*Q)Zf#a'@X,Qq&K$)b
-
-8&-E"[@,S'A[+pp5)VrqCMI&KiNfa[Q3Qde9lQGE01baYqAD,Zb2SkYi*qa$K!H(
-
-QrQk@*rZq5ckG*6lNDIDh!N0&FHA[kK@2A1Tq5ZHFEh)rKLLeYSe0M3qAR,I8E&J
-
-jY+[rT[A9)lQhp[p4)R[CAjVd`eG)q5Ap59[1Ed$+lfq3!*Xb2P4bhK@8@k6rTRj
-
-JV+rq[$NqA2U`m"9NK3VKAUem9mqHIDj8lbP"PFc`j0R0lNQ*I,N$6AVCdp18*hY
-
-f0%'EZEh)H$fUN6,B3ica+pmIjZHp2ebp!DT9@&,)#Mf''B9-IjQPr#f@rm`"TRV
-
-fXT+Kq5E,f4-2X#q@$(82A'Tf[iND,j2dTmcpQ*4$$h,S#F8M6-VMR%F+f4IGNqB
-
-J'pZ22,VGhpLkJDP%PD'3!+P'N!"h!rF@[MkB[ljcr`h&frIIb#bGV(J(mUN2X4*
-
-pX9j4GNhmp4Y3'hcTK+D*KTP-YEkVC$Za8E*$BZ+*q*Y0FrMmf#+ql$LLcLXFCJU
-
-2[K5SU)%*YQ!q)e6KX1%9i!l`mjL@,h-VR'U"@M4@E)Vpm1i&"NfaDF-GpbrBfZ9
-
-43qpR0r'kZ8c&&BRN0640K&FKHr90+PMRPJr'GaLkK'MXKd,di#&8q%UQd23bTI"
-
-9"Y@$aT[+kbSUjl2Z'0pB$phR08+dF1AJHN20YhDrGZhcfjrC,IPAlKKLCBC5[4k
-
-q9Idh5c&Z18Dc[QH`6BT`b"(jr6f$$LR#)NHSe0H#a(a5Q2KG+Ee$aFHh0DPJl5(
-
-93@8ePZK,p9Z@,YNC(kbfH)D&!Aj)MVPY*'C3MV'dDpHCrHTGCHB"TLM1TeLdU%9
-
--9@4Q+N-4da3eSVGlhF4QX!,1CRRd4iAX3Xj@qF4Il+k`@5b@hZfl9Y@m`Nb'kFM
-
-m(e%[4TI(rJ6aDdl'AmecRb,-rM4HPmkJZV0Y@[@eEEU+cSTV%FR$LPDJFf96T)J
-
-SBV95T"T4851Qcr(ieNkAfS!@ABKZ@GfXkpaZ+bYKPM*EQ4$GZVVj(+2NSbLEp4*
-
-QXhjcHh'fc9U5,85T)[CflEd"+)FkYrHZ,P(Zk$8UEGDRHfh@rY@LC[fUCKAPh&$
-
-@Y1rVM$T#D)9kIMCdBMTe139Pm1GfheX`RFmY90UY2l2DVI1bQkD-SR6CVHVV',Y
-
-QH0(D)YCpAr&dG(pClTG)CrkkmRDVHaU[M*8KLl[iXi"f16cV#a[iKE'C33leSVV
-
-cA&k$1%ZK,B8aKer)+j[dSeNDl&DqM%FeA$0FT%'A9r0mEmcBIIHPIa9riGZ2&Y4
-
-)Z5bXVN6AH6jd%(9@BZSH+"mmR)p+fJ,I1r!p$0mpm2dGI$I#GaYmI`rI25-pFcj
-
-Ib+CiY,#QH5B*Jb`#R#"`$J)R!Rm,r%fb2`5r!f`%81ZYQ*CVS1I,dCQD4M[6f8"
-
-d%aZ`,C3pl(R%#1`5BJ$fKC34E!2I+%5,Z6XAc,!&GAHH@mc&V-9$`JriRE!1mdm
-
-QBJfY6"1EAXca96'V%%d15UJ[MKrdU2JbblTde+I(r2fRV)GU*0F[GKFZ'6FZ&@C
-
-!@&e$S`1V*BfZ3,[Ekc'f'QM#1TGaI6mfFAd[dRd&lTYa2mhe[DcQqPkGarAYVFD
-
-pRq[EGj!!kh[Gb2@pdFVerHebVZqYjlLqJ6bZladIehI`(Ul[(a4Fhf(J[@rMqRk
-
-qJHZ,jh2ph!,FAqIkPGrNqY@YA,rQDG`$A2piD5R$)dE#I+49a0+%1a6`miQp3Qa
-
-bq2hBFJaMcC%A-H[Lh9kI1084#2JDa"!f3ALEk![b$C%30K$$+Rp)$+Z#lAk4M'@
-
-U"BZ%FY95Keh3%Y-m5!m&aNNZUbm3$MY$+e3GhSKrHRQY-ib9%UaRb2XM&r&Bb[Q
-
-$#1m2Y(MG+riPr[FUR"'4$dHFrL$[$S4iX30Jl8iIhq)0r5khhm926M)p@LJ6T9)
-
-i'P,4l,[)jI1kP[&L+-6l`aiMMHaaP!k@(kR(!$5jIF64)2HV9c"fkm2Bb8M[NA,
-
-5*ahe$KKB9T9'TSPBKI4**`H4UR2Kk*+M&9J[`FHC*Q&NUD#pVUA83F[45Jadk'0
-
-F3Yf1$dpTM65,Hfl&AGM3!#1U'a&eQabGKF82I&eA%c-D$%HjjT%"U4TMFAb*[&A
-
-h)@)HETXFRBf&$h`V0NVHj1U3!,`K#cY(qL511H*j`3MI14L%iN0H')LU%pY@kEb
-
-e@+I!ap@!&jDr$K6[395bNR+a,%&ISM6!LST@Uj*V5MUX3Y#A)"$4+kM@NKY`il$
-
-S30pF$R`T#q@S*(BHeKMSieHp#Flf)`,0AQTaDcb@&2)PHQQ)5fb5Xdb1cXF+!Vj
-
-N8DB2,Ic5f4Kjid'T!M!XRlE0,$48%8&NcjVeLhiPLG[pfVbedR#BF'qX0CFl+(-
-
-SP#2N$)DCki1*FLTMEYAMF%qMfLlECUkT+5IZR$kIUlACYmcS)YhC12(&iZ3YB9'
-
-@5Q5*+ZHdkID)X$BCAmp+hXKTKT6AHm#U3r4C*hSQB(BrU*ZE[*&EJ[hH"NF&f1H
-
-b`j%@Ei"`&+-i5TRYhSDUbbZ*lE"hTGJB!9#%@0JA5pj3Yh-5l&V,'fQFRq0a03C
-
-$hZ956TYb(mp1hP#k+8NN)bQBbZ-#L*FT4c0ATc*h9&5!)3dB`XSCTF08SdMC5D3
-
-Pj6BcCAk9Up8CNNK#jN9IDNVH8!QCSr)k39+0G(N`aFD&eSVN$99-XdNF%CZY,D(
-
-`"a@L69D5SkS@&F+T)ekr#"MM-CcF0*pfUMM`5Hd-*A450pjlk`mPT8VU"Y9h0R3
-
-Mi#,4b)#J'D-9V[Mh#PIqZX**-8jAH0BrUp"aT*4UR0)#8Sh6@T!!8Se6@T!!maX
-
-Yd(kN"FGd1[HIG2TA[3DH,8Mf'TBDXp4V02ZFVQ8q2,U3!#'KemM%T"XRp@#KVcU
-
-Y"q@f5Y+$A#aMZCD&Srj`4S3qiL3hckljPY445pa8@+b09#FYcCj'[bpc@BGcr'Q
-
-!%69iq@)m[C*8URU(RG4!'ib%'PfYVS`*8j,-6"h[aReIXbG[D8k5c,e@cYh[$#h
-
-lT)pilFFr65[(JLU"+N',p`QF2Y40KM[Pq2-plHN1e&CT4R@a((P61@0C"rU4'Q`
-
-blVmMh8FNDTaTr9MRD@`4JjR-qSM6-pGM1,T84T8160L3!*%BDI-(2jh'hIh8YR5
-
-r8BZ42Y@"2cR5GhfQ,m$+0,B(FZ(*qFCchdR[JG5Dl3[K98[0EFBhc6Jf!k'Hj$p
-
-R)(rUIIG)ebZT#lVHd,,'8%3DJQ5UfdlEP"@LKiU5A8P9!ff@U2hH-(@biF`FQ[(
-
-KV+6++NJeiI9JS(a#A@K@FPTGe,p@Pj4QR&)AdSc6kT,5M&2U3T15dqU5QT4mULl
-
-T5FPrl#eaeipXJ`L95k4YN!"fmDV'M(FlXp`hrMJpBDZc9%XlCB(Q0M6#dJJhdpT
-
-%2bZdFd30'KTT[d-6#2rA22prCQFCZHEjar[pNj2C69PYp)K@DM)V+8'fT!3C%RU
-
-0$!Sc%%F&0K8NII&jQb@NScQPp1@%DKc0DD4,rDbV-ccd@PV(lCAPY$H4%a*G2UI
-
-ARl'MdM)(c3+5MpDF8)f1Rr4*kNc)faB*9I4DMcVDlZfJPej1UXfAEck8RMde1"C
-
-Ci0@')p(QjN#S(A*Mr%a[J*8"E)T3G!%pL5YhHBl+"RVj4bhpa)5,Y@G#d)*M[FH
-
-rp@3IGap(N9*kF+TlbrUSQrlA5IIaD[aidXeYj&CVNMH83&CM+!&9RaC+%&Q"[`%
-
-!PM5C'9(,)ph(*fUTr9!YMqT9DV2iP&iGfErj4+r'r8D[mMkHFibb02iMPNjf1PA
-
-[d("$VLh(CI8d(p1LX&VN*cJbP(8k[pfF2kE#ZPqTX(51-%LC%ZXU[a22)[*i8[E
-
-rZJ[cIcUGL4G#pHMBk,e2kCF0VX,2PP#E5Iik[#T1$qmHrqXJc[6'Fa2`XLUETTM
-
-$*YV-$D3cYp12%m#qEb(qhJ$feL8eGE5PqJMF0!YqXU&'QZAY39+9b(8[r8`"-MX
-
-Ah$6![T!!ITF!pTb'bfV*EbNA&PMaKL[H#UA+i@kTX"!qGeH&C3R&EkCI&X"$k6d
-
-9PN9@f#m[VUY"R%+aB%N90%@4PhahPUZj([c3IkY-$A%eUr''+[Q8"m(LQS3[kcE
-
-1G+!PiF[1j8b6mBiYqG4I![EZK'rFji"Ab"55leDmdYV+9*,[$[MHa&2kj,XIH(K
-
-90KkIa-Ep'I$!Tj5(&h&2b4cN`,G2pSf$$kqZ5Vi*m(hh+pHLCV(B#pqMEAp*2`L
-
-K$S-ce482X[1!F4&mDd`jE#EL`-(e-DD6q,X(FCd12IXm1+#IdU#-2SFi1q)HB*d
-
-54KI`ANVie'C`8jVJFZTNa%85A%ip'ebqP1"bkZr$jj-acJ0'8-Di!,i@'@-Q-2E
-
-*q68KTiMXZ`ja[9RqCFj@hp%rG"RpQjINMlqNrpQ&-qA@"ki53rAP&2rr!!!0$3p
-
-YGbpRBh4PFh3Z0MK,,VN!N""453#3%#pd!!"+8`#3"2q3"%e08&*0680$!3#V,jH
-
-ZUc!jB!!!"M%!!"R%!!!"V3!!"E(*MaZS!*!'[VXM4!iL+Pj0j%)PIdhl9fbRBC!
-
-!DR1(JAFp3hUJ2KNcZ@(k&LeHlIYc*cMM1X2GRCf"!*`N(81C&iAQNTm4&Ifii1"
-
-EpGII4h6#PiP+'R-jb[e$&IeM12rA3hh-XBk+D2XK9#@U!P9e!@eRU22XRT!!%ar
-
-%6jaP3[FjFKhiIjQ@hidE$&25cAm$`-IrIXai*1U*jZd88q%pXX1%F$M`RNJbAQS
-
-ih%%N0J*@A""6p[pE#%1,cL9X%K8j[Z%i38$F)*'R%8!QpTQQT&06TCMf4amme9+
-
-jii[1iC(HE43E%aa#QlrCjZ4[GSL(8*!!e8D-E"#r6LR@&GN3aF6F'028K*cdTGk
-
-aT$fkUhhK6F,P(Tj11!CFTLJ+QQSXDINp,M$RL-+Cm9q6j"VK+Hr'rhrjXB16b1@
-
-iec&AC&Z,)bAP)A[QZNkT`brFF9bj0@L(b*(4H3)$i*YCbh9`YK90aj%$0a!Gm&!
-
-,de[B3!XlC'%$"-Eme,D0'(Z229-8DlB`9Q$FC!Y6@9L'KA%@PQm[")V0YM#PKBP
-
-$[mI#m!L#i#MfjAH50i4eE512Q3bj@@90I4m!N!--!'XcXfpJlh2Ij$4lRaZHF-P
-
-a`Tr-D)4&@%FjIAiV9hi5rZ3i@3NqRhV5`hI'm8m[3MNjENHi%AjN`!NMR"`rbB$
-
-bTrc)FA,m$%r*F51Fm*03FTa`FTa`-Q#%%hlN'4R`Pa`RA(+FF+mMamRa)mq2m$2
-
-#bB!#GjN8B'@Y6-+0iUpN*rl)-F)*2m)*8[#%!j-9H"9SN!!()1QkKK#+`Hm@K$S
-
-HJ&m,rN[#E`hmIJLEJ,q0bk)PQTCS@&q4J@q@4d"9U,FU)md-(0Yrf-'kLSC3Ech
-
-QTZ6PDfM!,6kXTJh48"8c3%-B$Af2ZR8CG9Ip2$-35k-p#&9[4Zd)$4`EE%%G46!
-
-,R0"9-23T99CN34j4,-#2%@HJ4P(6T'aDQa#N[iMDX5G2a3J5j8hqU`G8AI)J-HU
-
-[2pc+8DXTel3Q5K1DDDe`rC'MeMLS#5QV5"2QC-jFKV@(Y,XiDUf$'TI6Q941+fY
-
-NIrEXmabeMLSdTZC&6Ae8m48krm8h(,@HFXdUSU`BRMk!q[lRHBlD3,RQ4#QENT@
-
-#"cXRI2X+4ie6jif)dMfM+mkEUadrc9%E(G5'h+TKlGFqRHHS#3He,LFDrPe`h($
-
-QCBlDa(3e*P+'jG["RP9riDM0,PI9V"`8d09SikJYP'YH1C5kHVfHlZ'SDkKIpI4
-
-i+LIkaJ28)bpbe,88e9!N694cCG6ZNqFjkMUUN!"T6DE6ZT(h&AViKGmikRVU"NX
-
-TAdR(H9q1FY4@bY@D,XL9SfF2rY6286HiPp,*+'9G,aJIFG50p#Uce14Gj3Y'd81
-
-Ek"h5cFV&)blrQ+1f8B8b8UTJU&0#eN-9cVh+8GXGe*U-j!-kU)P6p4b9*UB'dj*
-
-PCDb-E#IIrF$K4qBkCkfIRK)eFi@ZrFEXr4ae-h@$T1I(e%`C&K,!AUi3T&L#1U`
-
-I'P&bCG3h(rRp#Fje+d8&50fBrKHeFp&j@4Q5M3GV$pea1eGSfk+(0$9pa80R1GF
-
-ZCkfce*a5FDbGI1mKMRSpifUSq482fFRj!BlD6Id+#UPkaDr(MfcMU0YGVSSeRLY
-
-8Z0V[F05H43q4)19lk0aM"lL(GMKViS"LkT1'T(MH+rPeTkZ3!*U"!([&H8FjkLl
-
-+0@RS306mKfX[64ZJ+`31D"5@fGUaCaUiVRd8Y@!C+5NVP42Ef6h&a0E[S,D5e*Z
-
-k$e*4k[,4R"1qUq@S0cKV-k$Hk86c@fiEqT2V*rYSlLHcfePEppip1YM9Hl2Del9
-
-2!&`"@TQ,U#F1&[Z''jdelZ4b1(ZHmdimH"0(45eR)(&!*q9f)f6q6PCX0VTUBad
-
-IAd$pf!@`[ik1Br'KUlR)+fakrN"cHF(H36)2h%jb&H(+NrX0&jMF9VMIj$*$&L)
-
-T"p)0cLf`Yq1%"AXR6JQ`Yq'FKMf0GB,GdbRXPYLiZ+lq4#IBL8k`%jeJ*cV"6R5
-
-#RHJ%1p%*GU)6l%3Rf)P1h%qc#+[@Y15RS-eL8qhT&"fJcd&k4dVkK,dC'pb'AVi
-
-MRZjKXmB'HccD3(IrcJ8G(KYmfk)&p1R"5Hkrqa'fKQc`$Bdfm0&Ek'dF5*Cm&25
-
-6E"T+qQc(16M5i"iI4FpKHCCb3p#-XSR6I3[1YF$(e@dVrAm(hAhGA,f#1a4fVQ`
-
-D)a0bM1IcX19PNiJXd-QrQrjp$rTP0Nh4$ljDEE6C0*GdfSPEQNJ$[AaI"9dkQjE
-
-)"&rjZ5PSlpQXL6c)65I42'&jkHi((6HE659pGY(F%GhJrk#CBp-AQC!!QcfG`RF
-
-BE0C'2GbTm18(Qh@4"hI+cbI"'a-fkb-2I05,Qq*VI86`ZS90Dq6"IEUNPpZrZ6d
-
-IkmP@hp@`f9$5UmK,"LjZ2dGjKIdd'pTRSrf,Re6[[[HdcbYXX0R3aK[KcVI)#mr
-
-A-dm"R8jJFcLjAc2T0r!1Xr%Ph(NRKdhm"Y1PM9qd9#9(PFc#![X)[SNKr!e@jAm
-
-!N!-0$3pYGbpRBh4PFh3Z8&"$,VN!N"!4c!#3%%+&!*!)rj!%68e38Ne33d-"!+X
-
-[PkkV-$P&!!!'-3!!'Z!!!!'T!!!&bE5F%03!N!B"fL0%$L)UANhN3L9r6IYAE+G
-
-KN!"UFiH"Gce$HU!q'61jBIV#iB$[cjhJM1X-GhH'!`%ib6Q'-Lm+c58r)bVkFF(
-
-"YqU[[irS4$#9MENFjIkKL[iaR2rVS6lQ@%G&Y2d3UK*9JDUkJ,Bce(Pf6fJm&6R
-
-b2Z8HRJiXa'A+ir""h#2TreqK*11PKX-G4'@dI[MrP@fl(cXiL9b1Haec4BbeKmP
-
-aeJj"iNA$iL1d#Y1J+HR89#QQrG%86l98l[LLFhLNlhad)NaL2JK&0pZFr-d1m4!
-
-+XYS)fcSm[diTeKAC%-A8h"M6e)5Fp+AHXD3p1ZNm1FY%rabj$[`E!$0bi`E$P26
-
-rG@!p"$aQr-JXH*CjLX,-Um9UPGj1-5VH)fY@`*(4VHaDSf,&r6CPrlq&--R1K6X
-
-*#r!9a`Q#"HZ@0$hdcLR&Z$Fm-LN%a%6I)NG'j`NF&EkCY9`(CaX9iFL4(fpK!IC
-
-B8#c-*P,XP1dG-@D4KE%@0XR#9"C'PcdhhF,ZXE"3#eYVB3-&a[CDHNU"FB-@YXI
-
-#PPJD!bcX5f0T(aH0)DaV'hR-C-M0+Q[Uq``!Da0l'f3fmMSr"jhCCQZ%N3NRNdf
-
-14LJRP"rPR[a@3Sqr%8D1NjAJmk5Hp2#G-Ic6Le"1MJm)Pachb(2###I(6c*J%8k
-
-j%8k1RiHRj,J46[K*+$P11$P11"P3`JNrmS`-q)!-Z'6!D6eKj2L4C`f-F$+J`(8
-
-Q"D$m9QE4e,T1r"&qK,q%%k6J#3FQ+c!qS%%HJ+LU#N)S",rE%'S`i2Fjq"D$ha,
-
-iI4qf+2P[K53BJQi)Q['&0I#IjBQL)Y4CP"42pjcUHm,'ZSf'8'HBF--Ck@qdLS0
-
-b3K-d'HXH'L*+S#ZS9C93Dp(hThY##E32SH*'Y!@KRP2p0@MV!TJ"6QM*DZUi,'%
-
-T+JeJ!r"$PM03TD!SBLUKM%E&Qd60d0-c)3Z*mVDqK3&9&I13!!6eTfr[iUM&P'Y
-
-#%F4446G@Z(l(88YXe)LB`Z+S2TE@Pf(0!mTp(,A84Uf3!",*H&STD'4qmZcc(,@
-
--+M3XC`4&IJbl#Phql%Z1'UCF8eL3!,#@e`G3hrdd`e(,+GHd)+EL%XlQBDHLAlh
-
--85ZSm`B%mB'K&HG0PBjFj+L90QTjHXf`jUXI6h28L)eDPKBdpblBE[Mm*BjDaA6
-
-94Z1DiGV"R*4rj+M9$PGCAcdSS+ZfQD2@8+iCI$4qqhSpdmj4DkPIeF4)2#fiaJ2
-
-8Bbpbe(889F1L)XMT!QVVKFXFYBiUT"YMLB5UC9b&(RhKCikkRVV"`)8VDEQKZf-
-
-V4kfRA)f*V,4kp-cqUedFGB0c+Hf-8Y$eQ[B"4pe)Vc*,6IQVI%eEm0!QHSG8IIA
-
-L@5lrN!#MEUCQhhrr8(p,Ec3@kie#4,V"pIbK)a`9-T!!GBlk-`E@KJ84,f%LG'i
-
-f[T!!!'KLUKNie$XiPM(N0&lQH[KU'dGYS"j+L['X*Sp(8hPGSl0R1'UMM9U5&&e
-
-!'c8b%qDSN!"L,3rTKL6Ki3+b'A[l2CZI0G[Y06`a,LMk#PhcpFQ(1'S6pDZSCSE
-
-PC!&fUR[r&Uj3-eASS(Td!+F,U1H1r2)8jpT#83&5e5EZS1kBGej+JZb9Kc82h(-
-
-h9kKehN1+R,MPS8ZFDjZpPPPABF@aCZbG`abeRA(9j-b+KmcBG!p(lD"q"B9NGG@
-
-[CimeFp5G$PGXM+5cUec0YcMUVRN2@9(2pG$Xii2F3jhf'KR%ZMUQL6M[[CaIGcX
-
-+b8Q)f,HFGj+MGP'Z-8d&S[SrA2I32!5k3L5#cQ1CV4NkAXjer4pehS"JT*BMJmh
-
-eq+jHMVUAFXdD@Pa-LB8NHQRI3K)PI3p-0D6jHqhb!-,0lkJIrAq#kpTYIkZh1S$
-
-iJj!!%H0,"hSUqR8TjiTU6d$LH!3qd"l'QVp5(*Z0MQj%N5IR8$IK#2YVk#b4%AU
-
-KAhRjVG*[D*cA0T*HB1mJp`hf9R+*B@mR9a,f0R*MBGp1mJVX655"`0j)XK,X1mL
-
-pKlf"*+irG2*l,$B1E[#"6T2S$,#X@[56ejba+FlV&"bJcm2dMZ6dm6Xk0U4jAES
-
-MHGhp&Sp0DH#"lZkGmrT#0Q@"!rVX)TRXhr[K0j4X`S%(2RS$[3RXDKCpj(@KE-T
-
-cqZ`NL6E3i"kI4160319LE["D@$B9G'mQ#4Ai1,Ued1qGG(GeFr6blT!!hqqbU3a
-
--b$&jRrZ0-TY)B)&1lYedll[ACE1T#Rl`e9TlcUBkTp0ZdVF%-H4Z[lGR8a1Bi#X
-
-h0hN["GM8"KlNTJYSfQ*jrHjlI6UE66PpZQMZ#'l`[pH@XGNEQ*!!Qr-kq@mqf+`
-
-,HVK6rLX60R@""hI+c5IHHaBfk`-2I,5(G,jrpK(H5aSfpB%(pqQkANlrj[4mV#G
-
-EHm2$CN01V`9H%R"aqMR+bhpj`iDqe%&p8bAIR!qTj%[4$kpFY(MK'lcmYcPXk&Z
-
-H1lcmlTi0lIT[mPVbJIFUL!elGjRM4BM8c8"+#$@"@kr%qK5GrJGH8d5JeDSp%6Z
-
-S`aY94TZmpLQ+$H(Nh"cl%r`RK-KrL#Vr!3#3!aq$!!!"!*!$!43!N!-8!*!$-Tr
-
-lRLe!rr#`!,K[$#eZd!6rm2rdd"lm`FAKdkSV8FY+$deKBe"bEfTPBh4c,R0TG!)
-
-!N!06594%8dP8)3#3"P0*9%46593K!*!BUc!jI3!!8M8!!!&'"1"2l'mDG@6JrHc
-
-K@5U#NI*HN@GK!Z"2kQ`FG&2UN!"S!!,L@5[48(adA`CdC!EJ6qj[8hJS!!EJEHl
-
-LEe5!)D$!FJC1ANl!*IrX51FI-#D`jL63G!*&0K!+1Li!&Ri!)VX-S"lbUKQJ(Z`
-
-3!+SDI!$!#3ZT8,aIE!!!Q$!'8!6"aG!!N!-3!#X!"3%B!J#3"`-!N!-"!*!$!43
-
-!N!-8!*!$-J$j(l!@#J#3!a`!-J!!8f9dC`#3!`S!!2rr!*!&q@G%'@B:
-
diff --git a/boehm-gc/Mac_files/MacOS_Test_config.h b/boehm-gc/Mac_files/MacOS_Test_config.h
deleted file mode 100644
index c95f4bb2f3e..00000000000
--- a/boehm-gc/Mac_files/MacOS_Test_config.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- MacOS_Test_config.h
-
- Configuration flags for Macintosh development systems.
-
- Test version.
-
- <Revision History>
-
- 11/16/95 pcb Updated compilation flags to reflect latest 4.6 Makefile.
-
- by Patrick C. Beard.
- */
-/* Boehm, November 17, 1995 12:05 pm PST */
-
-#ifdef __MWERKS__
-
-// for CodeWarrior Pro with Metrowerks Standard Library (MSL).
-// #define MSL_USE_PRECOMPILED_HEADERS 0
-#include <ansi_prefix.mac.h>
-#ifndef __STDC__
-#define __STDC__ 0
-#endif
-
-#endif
-
-// these are defined again in gc_priv.h.
-#undef TRUE
-#undef FALSE
-
-#define ALL_INTERIOR_POINTERS // follows interior pointers.
-//#define SILENT // want collection messages.
-//#define DONT_ADD_BYTE_AT_END // no padding.
-//#define SMALL_CONFIG // whether to a smaller heap.
-#define NO_SIGNALS // signals aren't real on the Macintosh.
-#define USE_TEMPORARY_MEMORY // use Macintosh temporary memory.
-
-// CFLAGS= -O -DNO_SIGNALS -DALL_INTERIOR_POINTERS -DSILENT
-//
-//LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \
-// -DREDIRECT_MALLOC=GC_malloc_uncollectable \
-// -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS
-// Flags for building libgc.a -- the last two are required.
-//
-// Setjmp_test may yield overly optimistic results when compiled
-// without optimization.
-// -DSILENT disables statistics printing, and improves performance.
-// -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
-// altered stubborn objects, at substantial performance cost.
-// Use only for incremental collector debugging.
-// -DFIND_LEAK causes the collector to assume that all inaccessible
-// objects should have been explicitly deallocated, and reports exceptions.
-// Finalization and the test program are not usable in this mode.
-// -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
-// (Clients should also define SOLARIS_THREADS and then include
-// gc.h before performing thr_ or GC_ operations.)
-// This is broken on nonSPARC machines.
-// -DALL_INTERIOR_POINTERS allows all pointers to the interior
-// of objects to be recognized. (See gc_priv.h for consequences.)
-// -DSMALL_CONFIG tries to tune the collector for small heap sizes,
-// usually causing it to use less space in such situations.
-// Incremental collection no longer works in this case.
-// -DLARGE_CONFIG tunes the collector for unusually large heaps.
-// Necessary for heaps larger than about 500 MB on most machines.
-// Recommended for heaps larger than about 64 MB.
-// -DDONT_ADD_BYTE_AT_END is meaningful only with
-// -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
-// causes all objects to be padded so that pointers just past the end of
-// an object can be recognized. This can be expensive. (The padding
-// is normally more than one byte due to alignment constraints.)
-// -DDONT_ADD_BYTE_AT_END disables the padding.
-// -DNO_SIGNALS does not disable signals during critical parts of
-// the GC process. This is no less correct than many malloc
-// implementations, and it sometimes has a significant performance
-// impact. However, it is dangerous for many not-quite-ANSI C
-// programs that call things like printf in asynchronous signal handlers.
-// -DOPERATOR_NEW_ARRAY declares that the C++ compiler supports the
-// new syntax "operator new[]" for allocating and deleting arrays.
-// See gc_cpp.h for details. No effect on the C part of the collector.
-// This is defined implicitly in a few environments.
-// -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined
-// as aliases for X, GC_realloc, and GC_free, respectively.
-// Calloc is redefined in terms of the new malloc. X should
-// be either GC_malloc or GC_malloc_uncollectable.
-// The former is occasionally useful for working around leaks in code
-// you don't want to (or can't) look at. It may not work for
-// existing code, but it often does. Neither works on all platforms,
-// since some ports use malloc or calloc to obtain system memory.
-// (Probably works for UNIX, and win32.)
-// -DNO_DEBUG removes GC_dump and the debugging routines it calls.
-// Reduces code size slightly at the expense of debuggability.
diff --git a/boehm-gc/Mac_files/MacOS_config.h b/boehm-gc/Mac_files/MacOS_config.h
deleted file mode 100644
index 93c3c97a955..00000000000
--- a/boehm-gc/Mac_files/MacOS_config.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- MacOS_config.h
-
- Configuration flags for Macintosh development systems.
-
- <Revision History>
-
- 11/16/95 pcb Updated compilation flags to reflect latest 4.6 Makefile.
-
- by Patrick C. Beard.
- */
-/* Boehm, November 17, 1995 12:10 pm PST */
-
-#ifdef __MWERKS__
-
-// for CodeWarrior Pro with Metrowerks Standard Library (MSL).
-// #define MSL_USE_PRECOMPILED_HEADERS 0
-#include <ansi_prefix.mac.h>
-#ifndef __STDC__
-#define __STDC__ 0
-#endif
-
-#endif /* __MWERKS__ */
-
-// these are defined again in gc_priv.h.
-#undef TRUE
-#undef FALSE
-
-#define ALL_INTERIOR_POINTERS // follows interior pointers.
-#define SILENT // no collection messages.
-//#define DONT_ADD_BYTE_AT_END // no padding.
-//#define SMALL_CONFIG // whether to use a smaller heap.
-#define NO_SIGNALS // signals aren't real on the Macintosh.
-#define USE_TEMPORARY_MEMORY // use Macintosh temporary memory.
-
-// CFLAGS= -O -DNO_SIGNALS -DSILENT -DALL_INTERIOR_POINTERS
-//
-//LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \
-// -DREDIRECT_MALLOC=GC_malloc_uncollectable \
-// -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS
-// Flags for building libgc.a -- the last two are required.
-//
-// Setjmp_test may yield overly optimistic results when compiled
-// without optimization.
-// -DSILENT disables statistics printing, and improves performance.
-// -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
-// altered stubborn objects, at substantial performance cost.
-// Use only for incremental collector debugging.
-// -DFIND_LEAK causes the collector to assume that all inaccessible
-// objects should have been explicitly deallocated, and reports exceptions.
-// Finalization and the test program are not usable in this mode.
-// -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
-// (Clients should also define SOLARIS_THREADS and then include
-// gc.h before performing thr_ or GC_ operations.)
-// This is broken on nonSPARC machines.
-// -DALL_INTERIOR_POINTERS allows all pointers to the interior
-// of objects to be recognized. (See gc_priv.h for consequences.)
-// -DSMALL_CONFIG tries to tune the collector for small heap sizes,
-// usually causing it to use less space in such situations.
-// Incremental collection no longer works in this case.
-// -DLARGE_CONFIG tunes the collector for unusually large heaps.
-// Necessary for heaps larger than about 500 MB on most machines.
-// Recommended for heaps larger than about 64 MB.
-// -DDONT_ADD_BYTE_AT_END is meaningful only with
-// -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
-// causes all objects to be padded so that pointers just past the end of
-// an object can be recognized. This can be expensive. (The padding
-// is normally more than one byte due to alignment constraints.)
-// -DDONT_ADD_BYTE_AT_END disables the padding.
-// -DNO_SIGNALS does not disable signals during critical parts of
-// the GC process. This is no less correct than many malloc
-// implementations, and it sometimes has a significant performance
-// impact. However, it is dangerous for many not-quite-ANSI C
-// programs that call things like printf in asynchronous signal handlers.
-// -DOPERATOR_NEW_ARRAY declares that the C++ compiler supports the
-// new syntax "operator new[]" for allocating and deleting arrays.
-// See gc_cpp.h for details. No effect on the C part of the collector.
-// This is defined implicitly in a few environments.
-// -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined
-// as aliases for X, GC_realloc, and GC_free, respectively.
-// Calloc is redefined in terms of the new malloc. X should
-// be either GC_malloc or GC_malloc_uncollectable.
-// The former is occasionally useful for working around leaks in code
-// you don't want to (or can't) look at. It may not work for
-// existing code, but it often does. Neither works on all platforms,
-// since some ports use malloc or calloc to obtain system memory.
-// (Probably works for UNIX, and win32.)
-// -DNO_DEBUG removes GC_dump and the debugging routines it calls.
-// Reduces code size slightly at the expense of debuggability. \ No newline at end of file
diff --git a/boehm-gc/Mac_files/dataend.c b/boehm-gc/Mac_files/dataend.c
deleted file mode 100644
index a3e3fe8446f..00000000000
--- a/boehm-gc/Mac_files/dataend.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- dataend.c
-
- A hack to get the extent of global data for the Macintosh.
-
- by Patrick C. Beard.
- */
-
-long __dataend;
diff --git a/boehm-gc/Mac_files/datastart.c b/boehm-gc/Mac_files/datastart.c
deleted file mode 100644
index a9e0dd59410..00000000000
--- a/boehm-gc/Mac_files/datastart.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- datastart.c
-
- A hack to get the extent of global data for the Macintosh.
-
- by Patrick C. Beard.
- */
-
-long __datastart;
diff --git a/boehm-gc/Makefile.DLLs b/boehm-gc/Makefile.DLLs
deleted file mode 100644
index 011f49d3bcf..00000000000
--- a/boehm-gc/Makefile.DLLs
+++ /dev/null
@@ -1,107 +0,0 @@
-#-----------------------------------------------------------------------------#
-
-# Makefile.DLLs, version 0.4.
-
-# Contributed by Fergus Henderson.
-
-# This Makefile contains rules for creating DLLs on Windows using gnu-win32.
-
-#-----------------------------------------------------------------------------#
-
-# This rule creates a `.def' file, which lists the symbols that are exported
-# from the DLL. We use `nm' to get a list of all the exported text (`T')
-# symbols and data symbols -- including uninitialized data (`B'),
-# initialized data (`D'), read-only data (`R'), and common blocks (`C').
-%.def: %.a
- echo EXPORTS > $@
- nm $< | grep '^........ [BCDRT] _' | sed 's/[^_]*_//' >> $@
-
-# We need to use macros to access global data:
-# the user of the DLL must refer to `foo' as `(*__imp_foo)'.
-# This rule creates a `_globals.h' file, which contains macros
-# for doing this.
-
-SYM_PREFIX = $(firstword $(SYM_PREFIX-$*) $*)
-DLL_MACRO = $(SYM_PREFIX)_USE_DLL
-IMP_MACRO = $(SYM_PREFIX)_IMP
-GLOBAL_MACRO = $(SYM_PREFIX)_GLOBAL
-
-%_globals.h: %.a
- echo "/* automatically generated by Makefile.DLLs */" > $@
- echo "#if defined(__GNUC__) && defined(_WIN32) \\" >> $@
- echo " && defined($(DLL_MACRO))" >> $@
- echo "# define $(IMP_MACRO)(name) __imp_##name" >> $@
- echo "# define $(GLOBAL_MACRO)(name) (*$(IMP_MACRO)(name))" >> $@
- echo "#else" >> $@
- echo "# define $(GLOBAL_MACRO)(name) name" >> $@
- echo "#endif" >> $@
- echo "" >> $@
- for sym in `nm $< | grep '^........ [BCDR] _' | sed 's/[^_]*_//'`; do \
- echo "#define $$sym $(GLOBAL_MACRO)($$sym)" >> $@; \
- done
-
-# This rule creates the export object file (`foo.exp') which contains the
-# jump table array; this export object file becomes part of the DLL.
-# This rule also creates the import library (`foo_dll.a') which contains small
-# stubs for all the functions exported by the DLL which jump to them via the
-# jump table. Executables that will use the DLL must be linked against this
-# stub library.
-%.exp %_dll.a : %.def
- dlltool $(DLLTOOLFLAGS) $(DLLTOOLFLAGS-$*) \
- --def $< \
- --dllname $*.dll \
- --output-exp $*.exp \
- --output-lib $*_dll.a
-
-# The `sed' commands below are to convert DOS-style `C:\foo\bar'
-# pathnames into Unix-style `//c/foo/bar' pathnames.
-CYGWIN32_LIBS = $(shell echo \
- -L`dirname \`gcc -print-file-name=libgcc.a | \
- sed -e 's@^\\\\([A-Za-z]\\\\):@//\\\\1@g' -e 's@\\\\\\\\@/@g' \` ` \
- -L`dirname \`gcc -print-file-name=libcygwin.a | \
- sed -e 's@^\\\\([A-Za-z]\\\\):@//\\\\1@g' -e 's@\\\\\\\\@/@g' \` ` \
- -L`dirname \`gcc -print-file-name=libkernel32.a | \
- sed -e 's@^\\\\([A-Za-z]\\\\):@//\\\\1@g' -e 's@\\\\\\\\@/@g' \` ` \
- -lgcc -lcygwin -lkernel32 -lgcc)
-
-RELOCATABLE=yes
-
-ifeq "$(strip $(RELOCATABLE))" "yes"
-
-# to create relocatable DLLs, we need to do two passes
-%.dll: %.exp %.a dll_fixup.o dll_init.o
- $(LD) $(LDFLAGS) $(LDFLAGS-$*) --dll -o $*.base \
- -e _dll_entry@12 dll_init.o \
- dll_fixup.o $*.exp $*.a \
- $(LDLIBS) $(LDLIBS-$*) \
- $(CYGWIN32_LIBS)
- $(LD) $(LDFLAGS) $(LDFLAGS-$*) --dll --base-file $*.base -o $@ \
- -e _dll_entry@12 dll_init.o \
- dll_fixup.o $*.exp $*.a \
- $(LDLIBS) $(LDLIBS-$*) \
- $(CYGWIN32_LIBS)
- rm -f $*.base
-else
-
-%.dll: %.exp %.a dll_fixup.o dll_init.o
- $(LD) $(LDFLAGS) $(LDFLAGS-$*) --dll -o $@ \
- -e _dll_entry@12 dll_init.o \
- dll_fixup.o $*.exp $*.a \
- $(LDLIBS) $(LDLIBS-$*) \
- $(CYGWIN32_LIBS)
-
-endif
-
-# This black magic piece of assembler needs to be linked in in order to
-# properly terminate the list of imported DLLs.
-dll_fixup.s:
- echo '.section .idata$$3' > dll_fixup.s
- echo '.long 0,0,0,0, 0,0,0,0' >> dll_fixup.s
-
-# This bit is necessary to provide an initialization function for the DLL.
-dll_init.c:
- echo '__attribute__((stdcall))' > dll_init.c
- echo 'int dll_entry(int handle, int reason, void *ptr)' >> dll_init.c
- echo '{return 1; }' >> dll_init.c
-
-dont_throw_away: dll_fixup.o dll_init.o
diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
deleted file mode 100644
index f4839819bf4..00000000000
--- a/boehm-gc/Makefile.am
+++ /dev/null
@@ -1,138 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-## FIXME: `make dist' in this directory will not currently work. Many
-## files that should be in the distribution are not mentioned in this
-## Makefile.am.
-
-AUTOMAKE_OPTIONS = cygnus
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
-toolexeclib_LTLIBRARIES = $(target_all)
-EXTRA_LTLIBRARIES = libgcjgc.la
-libgcjgc_la_SOURCES = allchblk.c alloc.c blacklst.c checksums.c \
-gcconfig.h dbg_mlc.c dyn_load.c finalize.c gc.h gc_alloc.h gc_cpp.h \
-gc_hdrs.h gc_mark.h gc_priv.h gc_private.h gc_typed.h headers.c \
-hpux_irix_threads.c linux_threads.c malloc.c mallocx.c mark.c mark_rts.c \
-misc.c new_hblk.c obj_map.c os_dep.c pcr_interface.c ptr_chck.c \
-real_malloc.c reclaim.c solaris_pthreads.c solaris_threads.c \
-solaris_threads.h stubborn.c typd_mlc.c version.h weakpointer.h
-libgcjgc_la_LIBADD = @addobjs@
-libgcjgc_la_DEPENDENCIES = @addobjs@
-libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
-
-EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s mips_sgi_mach_dep.s \
-mips_ultrix_mach_dep.s rs6000_mach_dep.s sparc_mach_dep.s \
-sparc_sunos4_mach_dep.s mach_dep.c ecos.cc
-
-AM_CXXFLAGS = @BOEHM_GC_CFLAGS@
-AM_CFLAGS = @BOEHM_GC_CFLAGS@
-
-check_PROGRAMS = gctest
-gctest_SOURCES = test.c
-gctest_LDADD = ./libgcjgc.la $(THREADLIB)
-
-TESTS = gctest
-
-## FIXME: relies on internal code generated by automake.
-all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
-$(all_objs) : gcconfig.h gc_priv.h gc_hdrs.h gc.h gc_mark.h
-
-## FIXME: we shouldn't have to do this, but automake forces us to.
-.s.lo:
-## We use -Wp,-P to strip #line directives. Irix `as' chokes on
-## these.
- $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $<
-
-## We have our own definition of LTCOMPILE because we want to use our
-## CFLAGS, not those passed in from the top level make.
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(MY_CFLAGS) $(BOEHM_GC_CFLAGS)
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
-
-AM_CFLAGS = @BOEHM_GC_CFLAGS@
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "EXPECT=$(EXPECT)" \
- "RUNTEST=$(RUNTEST)" \
- "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "tooldir=$(tooldir)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-CONFIG_STATUS_DEPENDENCIES = $(boehm_gc_basedir)/configure.host
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-am: all-multi
-install-am: install-multi
-mostlyclean-am: mostlyclean-multi
-clean-am: clean-multi
-distclean-am: distclean-multi
-maintainer-clean-am: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-MAKEOVERRIDES=
diff --git a/boehm-gc/Makefile.dj b/boehm-gc/Makefile.dj
deleted file mode 100644
index 54f77db9f66..00000000000
--- a/boehm-gc/Makefile.dj
+++ /dev/null
@@ -1,436 +0,0 @@
-# Primary targets:
-# gc.a - builds basic library
-# libgc.a - builds library for use with g++ "-fgc-keyword" extension
-# c++ - adds C++ interface to library
-# cords - adds cords (heavyweight strings) to library
-# test - prints porting information, then builds basic version of gc.a,
-# and runs some tests of collector and cords. Does not add cords or
-# c++ interface to gc.a
-# cord/de$(EXE_SUFFIX) - builds dumb editor based on cords.
-ABI_FLAG=
-CC=gcc $(ABI_FLAG)
-CXX=gxx $(ABI_FLAG)
-AS=gcc -c -x assembler-with-cpp $(ABI_FLAG)
-# The above doesn't work with gas, which doesn't run cpp.
-# Define AS as `gcc -c -x assembler-with-cpp' instead.
-# Under Irix 6, you will have to specify the ABI (-o32, -n32, or -64)
-# if you use something other than the default ABI on your machine.
-
-# special defines for DJGPP
-CXXLD=gxx $(ABI_FLAG)
-EXE_SUFFIX=.exe
-
-CFLAGS= -O -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DALL_INTERIOR_POINTERS -DNO_EXECUTE_PERMISSION -DSILENT
-
-# For dynamic library builds, it may be necessary to add flags to generate
-# PIC code, e.g. -fPIC on Linux.
-
-# Setjmp_test may yield overly optimistic results when compiled
-# without optimization.
-# -DSILENT disables statistics printing, and improves performance.
-# -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
-# altered stubborn objects, at substantial performance cost.
-# Use only for incremental collector debugging.
-# -DFIND_LEAK causes the collector to assume that all inaccessible
-# objects should have been explicitly deallocated, and reports exceptions.
-# Finalization and the test program are not usable in this mode.
-# -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
-# (Clients should also define SOLARIS_THREADS and then include
-# gc.h before performing thr_ or dl* or GC_ operations.)
-# Must also define -D_REENTRANT.
-# -D_SOLARIS_PTHREADS enables support for Solaris pthreads.
-# Define SOLARIS_THREADS as well.
-# -DIRIX_THREADS enables support for Irix pthreads. See README.irix.
-# -DLINUX_THREADS enables support for Xavier Leroy's Linux threads.
-# see README.linux. -D_REENTRANT may also be required.
-# -DALL_INTERIOR_POINTERS allows all pointers to the interior
-# of objects to be recognized. (See gc_priv.h for consequences.)
-# -DSMALL_CONFIG tries to tune the collector for small heap sizes,
-# usually causing it to use less space in such situations.
-# Incremental collection no longer works in this case.
-# -DLARGE_CONFIG tunes the collector for unusually large heaps.
-# Necessary for heaps larger than about 500 MB on most machines.
-# Recommended for heaps larger than about 64 MB.
-# -DDONT_ADD_BYTE_AT_END is meaningful only with
-# -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
-# causes all objects to be padded so that pointers just past the end of
-# an object can be recognized. This can be expensive. (The padding
-# is normally more than one byte due to alignment constraints.)
-# -DDONT_ADD_BYTE_AT_END disables the padding.
-# -DNO_SIGNALS does not disable signals during critical parts of
-# the GC process. This is no less correct than many malloc
-# implementations, and it sometimes has a significant performance
-# impact. However, it is dangerous for many not-quite-ANSI C
-# programs that call things like printf in asynchronous signal handlers.
-# -DNO_EXECUTE_PERMISSION may cause some or all of the heap to not
-# have execute permission, i.e. it may be impossible to execute
-# code from the heap. Currently this only affects the incremental
-# collector on UNIX machines. It may greatly improve its performance,
-# since this may avoid some expensive cache synchronization.
-# -DOPERATOR_NEW_ARRAY declares that the C++ compiler supports the
-# new syntax "operator new[]" for allocating and deleting arrays.
-# See gc_cpp.h for details. No effect on the C part of the collector.
-# This is defined implicitly in a few environments.
-# -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined
-# as aliases for X, GC_realloc, and GC_free, respectively.
-# Calloc is redefined in terms of the new malloc. X should
-# be either GC_malloc or GC_malloc_uncollectable.
-# The former is occasionally useful for working around leaks in code
-# you don't want to (or can't) look at. It may not work for
-# existing code, but it often does. Neither works on all platforms,
-# since some ports use malloc or calloc to obtain system memory.
-# (Probably works for UNIX, and win32.)
-# -DIGNORE_FREE turns calls to free into a noop. Only useful with
-# -DREDIRECT_MALLOC.
-# -DNO_DEBUGGING removes GC_dump and the debugging routines it calls.
-# Reduces code size slightly at the expense of debuggability.
-# -DJAVA_FINALIZATION makes it somewhat safer to finalize objects out of
-# order by specifying a nonstandard finalization mark procedure (see
-# finalize.c). Objects reachable from finalizable objects will be marked
-# in a sepearte postpass, and hence their memory won't be reclaimed.
-# Not recommended unless you are implementing a language that specifies
-# these semantics.
-# -DFINALIZE_ON_DEMAND causes finalizers to be run only in response
-# to explicit GC_invoke_finalizers() calls.
-# -DATOMIC_UNCOLLECTABLE includes code for GC_malloc_atomic_uncollectable.
-# This is useful if either the vendor malloc implementation is poor,
-# or if REDIRECT_MALLOC is used.
-# -DHBLKSIZE=ddd, where ddd is a power of 2 between 512 and 16384, explicitly
-# sets the heap block size. Each heap block is devoted to a single size and
-# kind of object. For the incremental collector it makes sense to match
-# the most likely page size. Otherwise large values result in more
-# fragmentation, but generally better performance for large heaps.
-# -DUSE_MMAP use MMAP instead of sbrk to get new memory.
-# Works for Solaris and Irix.
-# -DMMAP_STACKS (for Solaris threads) Use mmap from /dev/zero rather than
-# GC_scratch_alloc() to get stack memory.
-# -DPRINT_BLACK_LIST Whenever a black list entry is added, i.e. whenever
-# the garbage collector detects a value that looks almost, but not quite,
-# like a pointer, print both the address containing the value, and the
-# value of the near-bogus-pointer. Can be used to identifiy regions of
-# memory that are likely to contribute misidentified pointers.
-# -DOLD_BLOCK_ALLOC Use the old, possibly faster, large block
-# allocation strategy. The new strategy tries harder to minimize
-# fragmentation, sometimes at the expense of spending more time in the
-# large block allocator and/or collecting more frequently.
-# If you expect the allocator to promtly use an explicitly expanded
-# heap, this is highly recommended.
-#
-
-
-
-LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \
- -DREDIRECT_MALLOC=GC_malloc_uncollectable \
- -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS
-# Flags for building libgc.a -- the last two are required.
-
-CXXFLAGS= $(CFLAGS) -DOPERATOR_NEW_ARRAY
-AR= ar
-RANLIB= ranlib
-
-
-# Redefining srcdir allows object code for the nonPCR version of the collector
-# to be generated in different directories. In this case, the destination directory
-# should contain a copy of the original include directory.
-srcdir = .
-VPATH = $(srcdir)
-
-OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o
-
-CSRCS= reclaim.c allchblk.c misc.c alloc.c mach_dep.c os_dep.c mark_rts.c headers.c mark.c obj_map.c pcr_interface.c blacklst.c finalize.c new_hblk.c real_malloc.c dyn_load.c dbg_mlc.c malloc.c stubborn.c checksums.c solaris_threads.c irix_threads.c linux_threads.c typd_mlc.c ptr_chck.c mallocx.c solaris_pthreads.c
-
-CORD_SRCS= cord/cordbscs.c cord/cordxtra.c cord/cordprnt.c cord/de.c cord/cordtest.c cord/cord.h cord/ec.h cord/private/cord_pos.h cord/de_win.c cord/de_win.h cord/de_cmds.h cord/de_win.ICO cord/de_win.RC cord/SCOPTIONS.amiga cord/SMakefile.amiga
-
-CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o
-
-SRCS= $(CSRCS) mips_sgi_mach_dep.s rs6000_mach_dep.s alpha_mach_dep.s \
- sparc_mach_dep.s gc.h gc_typed.h gc_hdrs.h gc_priv.h gc_private.h \
- gcconfig.h gc_mark.h include/gc_inl.h include/gc_inline.h gc.man \
- threadlibs.c if_mach.c if_not_there.c gc_cpp.cc gc_cpp.h weakpointer.h \
- gcc_support.c mips_ultrix_mach_dep.s include/gc_alloc.h gc_alloc.h \
- include/new_gc_alloc.h include/javaxfc.h sparc_sunos4_mach_dep.s \
- solaris_threads.h $(CORD_SRCS)
-
-OTHER_FILES= Makefile PCR-Makefile OS2_MAKEFILE NT_MAKEFILE BCC_MAKEFILE \
- README test.c test_cpp.cc setjmp_t.c SMakefile.amiga \
- SCoptions.amiga README.amiga README.win32 cord/README \
- cord/gc.h include/gc.h include/gc_typed.h include/cord.h \
- include/ec.h include/private/cord_pos.h include/private/gcconfig.h \
- include/private/gc_hdrs.h include/private/gc_priv.h \
- include/gc_cpp.h README.rs6000 \
- include/weakpointer.h README.QUICK callprocs pc_excludes \
- barrett_diagram README.OS2 README.Mac MacProjects.sit.hqx \
- MacOS.c EMX_MAKEFILE makefile.depend README.debugging \
- include/gc_cpp.h Mac_files/datastart.c Mac_files/dataend.c \
- Mac_files/MacOS_config.h Mac_files/MacOS_Test_config.h \
- add_gc_prefix.c README.solaris2 README.sgi README.hp README.uts \
- win32_threads.c NT_THREADS_MAKEFILE gc.mak README.dj Makefile.dj \
- README.alpha README.linux version.h Makefile.DLLs \
- WCC_MAKEFILE
-
-CORD_INCLUDE_FILES= $(srcdir)/gc.h $(srcdir)/cord/cord.h $(srcdir)/cord/ec.h \
- $(srcdir)/cord/private/cord_pos.h
-
-UTILS= if_mach$(EXE_SUFFIX) if_not_there$(EXE_SUFFIX)
-
-# Libraries needed for curses applications. Only needed for de.
-CURSES= -lcurses -ltermlib
-
-# The following is irrelevant on most systems. But a few
-# versions of make otherwise fork the shell specified in
-# the SHELL environment variable.
-SHELL= /bin/sh
-
-SPECIALCFLAGS =
-# Alternative flags to the C compiler for mach_dep.c.
-# Mach_dep.c often doesn't like optimization, and it's
-# not time-critical anyway.
-# Set SPECIALCFLAGS to -q nodirect_code on Encore.
-
-all: gc.a gctest$(EXE_SUFFIX)
-
-pcr: PCR-Makefile gc_private.h gc_hdrs.h gc.h gcconfig.h mach_dep.o $(SRCS)
- make -f PCR-Makefile depend
- make -f PCR-Makefile
-
-$(OBJS) test.o dyn_load.o dyn_load_sunos53.o: $(srcdir)/gc_priv.h $(srcdir)/gc_hdrs.h $(srcdir)/gc.h \
- $(srcdir)/gcconfig.h $(srcdir)/gc_typed.h Makefile
-# The dependency on Makefile is needed. Changing
-# options such as -DSILENT affects the size of GC_arrays,
-# invalidating all .o files that rely on gc_priv.h
-
-mark.o typd_mlc.o finalize.o: $(srcdir)/gc_mark.h
-
-base_lib gc.a: $(OBJS) dyn_load.o $(UTILS)
- echo > base_lib
- rm -f on_sparc_sunos5_1
- ./if_mach SPARC SUNOS5 touch on_sparc_sunos5_1
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a $(OBJS) dyn_load.o
- ./if_not_there on_sparc_sunos5_1 $(AR) ru gc.a $(OBJS) dyn_load.o
- -./if_not_there on_sparc_sunos5_1 $(RANLIB) gc.a
-# ignore ranlib failure; that usually means it doesn't exist, and isn't needed
-
-cords: $(CORD_OBJS) cord/cordtest$(EXE_SUFFIX) $(UTILS)
- rm -f on_sparc_sunos5_3
- ./if_mach SPARC SUNOS5 touch on_sparc_sunos5_3
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a $(CORD_OBJS)
- ./if_not_there on_sparc_sunos5_3 $(AR) ru gc.a $(CORD_OBJS)
- -./if_not_there on_sparc_sunos5_3 $(RANLIB) gc.a
-
-gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/gc_cpp.h $(srcdir)/gc.h Makefile
- $(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc
-
-test_cpp$(EXE_SUFFIX): $(srcdir)/test_cpp.cc $(srcdir)/gc_cpp.h gc_cpp.o $(srcdir)/gc.h \
-base_lib $(UTILS)
- rm -f test_cpp test_cpp$(EXE_SUFFIX)
- ./if_mach HP_PA "" $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a -ldld
- ./if_not_there test_cpp$(EXE_SUFFIX) $(CXXLD) $(CXXFLAGS) -o test_cpp$(EXE_SUFFIX) $(srcdir)/test_cpp.cc gc_cpp.o gc.a
- rm -f test_cpp
-
-c++: gc_cpp.o $(srcdir)/gc_cpp.h test_cpp$(EXE_SUFFIX)
- rm -f on_sparc_sunos5_4
- ./if_mach SPARC SUNOS5 touch on_sparc_sunos5_4
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a gc_cpp.o
- ./if_not_there on_sparc_sunos5_4 $(AR) ru gc.a gc_cpp.o
- -./if_not_there on_sparc_sunos5_4 $(RANLIB) gc.a
- ./test_cpp$(EXE_SUFFIX) 1
- echo > c++
-
-dyn_load_sunos53.o: dyn_load.c
- $(CC) $(CFLAGS) -DSUNOS53_SHARED_LIB -c $(srcdir)/dyn_load.c -o $@
-
-# SunOS5 shared library version of the collector
-sunos5gc.so: $(OBJS) dyn_load_sunos53.o
- $(CC) -G -o sunos5gc.so $(OBJS) dyn_load_sunos53.o -ldl
- ln sunos5gc.so libgc.so
-
-# Alpha/OSF shared library version of the collector
-libalphagc.so: $(OBJS)
- ld -shared -o libalphagc.so $(OBJS) dyn_load.o -lc
- ln libalphagc.so libgc.so
-
-# IRIX shared library version of the collector
-libirixgc.so: $(OBJS) dyn_load.o
- ld -shared $(ABI_FLAG) -o libirixgc.so $(OBJS) dyn_load.o -lc
- ln libirixgc.so libgc.so
-
-# Linux shared library version of the collector
-liblinuxgc.so: $(OBJS) dyn_load.o
- gcc -shared -o liblinuxgc.so $(OBJS) dyn_load.o -lo
- ln liblinuxgc.so libgc.so
-
-mach_dep.o: $(srcdir)/mach_dep.c $(srcdir)/mips_sgi_mach_dep.s $(srcdir)/mips_ultrix_mach_dep.s $(srcdir)/rs6000_mach_dep.s $(UTILS)
- rm -f mach_dep.o
- ./if_mach MIPS IRIX5 $(AS) -o mach_dep.o $(srcdir)/mips_sgi_mach_dep.s
- ./if_mach MIPS RISCOS $(AS) -o mach_dep.o $(srcdir)/mips_ultrix_mach_dep.s
- ./if_mach MIPS ULTRIX $(AS) -o mach_dep.o $(srcdir)/mips_ultrix_mach_dep.s
- ./if_mach RS6000 "" $(AS) -o mach_dep.o $(srcdir)/rs6000_mach_dep.s
- ./if_mach ALPHA "" $(AS) -o mach_dep.o $(srcdir)/alpha_mach_dep.s
- ./if_mach SPARC SUNOS5 $(AS) -o mach_dep.o $(srcdir)/sparc_mach_dep.s
- ./if_mach SPARC SUNOS4 $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
- ./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
-
-mark_rts.o: $(srcdir)/mark_rts.c if_mach if_not_there $(UTILS)
- rm -f mark_rts.o
- -./if_mach ALPHA OSF1 $(CC) -c $(CFLAGS) -Wo,-notail $(srcdir)/mark_rts.c
- ./if_not_there mark_rts.o $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
-# Work-around for DEC optimizer tail recursion elimination bug.
-# The ALPHA-specific line should be removed if gcc is used.
-
-alloc.o: version.h
-
-cord/cordbscs.o: $(srcdir)/cord/cordbscs.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordbscs.c
- mv cordbscs.o cord/cordbscs.o
-# not all compilers understand -o filename
-
-cord/cordxtra.o: $(srcdir)/cord/cordxtra.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordxtra.c
- mv cordxtra.o cord/cordxtra.o
-
-cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordprnt.c
- mv cordprnt.o cord/cordprnt.o
-
-cord/cordtest$(EXE_SUFFIX): $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a $(UTILS) /tmp
- rm -f cord/cordtest$(EXE_SUFFIX)
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/cordtest$(EXE_SUFFIX) $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a -lucb
- ./if_mach HP_PA "" $(CC) $(CFLAGS) -o cord/cordtest$(EXE_SUFFIX) $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a -ldld
- ./if_not_there cord/cordtest$(EXE_SUFFIX) $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a
- rm -f cord/cordtest cordtest
- -mv cordtest$(EXE_SUFFIX) cord/
-
-/tmp: $(UTILS)
- ./if_not_there /tmp mkdir /tmp
-
-cord/de$(EXE_SUFFIX): $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(UTILS)
- rm -f cord/de cord/de$(EXE_SUFFIX)
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) -lucb `./threadlibs`
- ./if_mach HP_PA "" $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) -ldld
- ./if_mach RS6000 "" $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
- ./if_mach I386 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
- ./if_mach ALPHA LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
- ./if_not_there cord/de$(EXE_SUFFIX) $(CC) $(CFLAGS) -o cord/de$(EXE_SUFFIX) $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES)
-
-if_mach$(EXE_SUFFIX): $(srcdir)/if_mach.c $(srcdir)/gcconfig.h
- rm -f if_mach if_mach$(EXE_SUFFIX)
- $(CC) $(CFLAGS) -o if_mach $(srcdir)/if_mach.c
- rm -f if_mach
-
-threadlibs$(EXE_SUFFIX): $(srcdir)/threadlibs.c $(srcdir)/gcconfig.h Makefile
- rm -f threadlibs threadlibs$(EXE_SUFFIX)
- $(CC) $(CFLAGS) -o threadlibs $(srcdir)/threadlibs.c
- rm -f threadlibs
-
-if_not_there$(EXE_SUFFIX): $(srcdir)/if_not_there.c
- rm -f if_not_there if_not_there$(EXE_SUFFIX)
- $(CC) $(CFLAGS) -o if_not_there $(srcdir)/if_not_there.c
- rm -f if_not_there
-
-# Clean removes *.o several times,
-# because as the first one doesn't seem to get them all!
-clean:
- rm -f gc.a *.o
- rm -f *.o
- rm -f *.o
- rm -f cord/*.o
- rm -f gctest gctest_dyn_link test_cpp
- rm -f setjmp_test mon.out gmon.out a.out core if_not_there if_mach
- rm -f threadlibs $(CORD_OBJS) cordtest cord/cordtest de cord/de
- rm -f gctest$(EXE_SUFFIX) gctest_dyn_link$(EXE_SUFFIX) test_cpp$(EXE_SUFFIX)
- rm -f setjmp_test$(EXE_SUFFIX) if_not_there$(EXE_SUFFIX) if_mach$(EXE_SUFFIX)
- rm -f threadlibs$(EXE_SUFFIX) cord/cordtest$(EXE_SUFFIX)
- -rm -f *~
-
-gctest$(EXE_SUFFIX): test.o gc.a if_mach$(EXE_SUFFIX) if_not_there$(EXE_SUFFIX)
- rm -f gctest gctest$(EXE_SUFFIX)
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o gctest test.o gc.a -lucb
- ./if_mach HP_PA "" $(CC) $(CFLAGS) -o gctest test.o gc.a -ldld
- ./if_not_there gctest$(EXE_SUFFIX) $(CC) $(CFLAGS) -o gctest$(EXE_SUFFIX) test.o gc.a
- rm -f gctest
-
-# If an optimized setjmp_test generates a segmentation fault,
-# odds are your compiler is broken. Gctest may still work.
-# Try compiling setjmp_t.c unoptimized.
-setjmp_test$(EXE_SUFFIX): $(srcdir)/setjmp_t.c $(srcdir)/gc.h \
- if_mach$(EXE_SUFFIX) if_not_there$(EXE_SUFFIX)
- rm -f setjmp_test$(EXE_SUFFIX)
- $(CC) $(CFLAGS) -o setjmp_test $(srcdir)/setjmp_t.c
- rm -f setjmp_test
-
-test: KandRtest cord/cordtest$(EXE_SUFFIX)
- ./cord/cordtest$(EXE_SUFFIX)
-
-# Those tests that work even with a K&R C compiler:
-KandRtest: setjmp_test$(EXE_SUFFIX) gctest$(EXE_SUFFIX)
- ./setjmp_test$(EXE_SUFFIX)
- ./gctest$(EXE_SUFFIX)
-
-add_gc_prefix$(EXE_SUFFIX): add_gc_prefix.c
- $(CC) -o add_gc_prefix$(EXE_SUFFIX) $(srcdir)/add_gc_prefix.c
- rm -f add_gc_prefix
-
-gc.tar: $(SRCS) $(OTHER_FILES) add_gc_prefix
- ./add_gc_prefix$(EXE_SUFFIX) $(SRCS) $(OTHER_FILES) > /tmp/gc.tar-files
- (cd $(srcdir)/.. ; tar cvfh - `cat /tmp/gc.tar-files`) > gc.tar
-
-pc_gc.tar: $(SRCS) $(OTHER_FILES)
- tar cvfX pc_gc.tar pc_excludes $(SRCS) $(OTHER_FILES)
-
-floppy: pc_gc.tar
- -mmd a:/cord
- -mmd a:/cord/private
- -mmd a:/include
- -mmd a:/include/private
- mkdir /tmp/pc_gc
- cat pc_gc.tar | (cd /tmp/pc_gc; tar xvf -)
- -mcopy -tmn /tmp/pc_gc/* a:
- -mcopy -tmn /tmp/pc_gc/cord/* a:/cord
- -mcopy -mn /tmp/pc_gc/cord/de_win.ICO a:/cord
- -mcopy -tmn /tmp/pc_gc/cord/private/* a:/cord/private
- -mcopy -tmn /tmp/pc_gc/include/* a:/include
- -mcopy -tmn /tmp/pc_gc/include/private/* a:/include/private
- rm -r /tmp/pc_gc
-
-gc.tar.Z: gc.tar
- compress gc.tar
-
-gc.tar.gz: gc.tar
- gzip gc.tar
-
-lint: $(CSRCS) test.c
- lint -DLINT $(CSRCS) test.c | egrep -v "possible pointer alignment problem|abort|exit|sbrk|mprotect|syscall"
-
-# BTL: added to test shared library version of collector.
-# Currently works only under SunOS5. Requires GC_INIT call from statically
-# loaded client code.
-ABSDIR = `pwd`
-gctest_dyn_link: test.o libgc.so
- $(CC) -L$(ABSDIR) -R$(ABSDIR) -o gctest_dyn_link test.o -lgc -ldl -lthread
-
-gctest_irix_dyn_link: test.o libirixgc.so
- $(CC) -L$(ABSDIR) -o gctest_irix_dyn_link test.o -lirixgc
-
-test_dll.o: test.c libgc_globals.h
- $(CC) $(CFLAGS) -DGC_USE_DLL -c test.c -o test_dll.o
-
-test_dll: test_dll.o libgc_dll.a libgc.dll
- $(CC) test_dll.o -L$(ABSDIR) -lgc_dll -o test_dll
-
-SYM_PREFIX-libgc=GC
-
-# Uncomment the following line to build a GNU win32 DLL
-# include Makefile.DLLs
-
-reserved_namespace: $(SRCS)
- for file in $(SRCS) test.c test_cpp.cc; do \
- sed s/GC_/_GC_/g < $$file > tmp; \
- cp tmp $$file; \
- done
-
-user_namespace: $(SRCS)
- for file in $(SRCS) test.c test_cpp.cc; do \
- sed s/_GC_/GC_/g < $$file > tmp; \
- cp tmp $$file; \
- done
-
diff --git a/boehm-gc/Makefile.in b/boehm-gc/Makefile.in
deleted file mode 100644
index 9ea3aa4523c..00000000000
--- a/boehm-gc/Makefile.in
+++ /dev/null
@@ -1,544 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AR = @AR@
-AS = @AS@
-BOEHM_GC_CFLAGS = @BOEHM_GC_CFLAGS@
-CC = @CC@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXINCLUDES = @CXXINCLUDES@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-INCLUDES = @INCLUDES@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MY_CFLAGS = @MY_CFLAGS@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-THREADLIB = @THREADLIB@
-VERSION = @VERSION@
-addobjs = @addobjs@
-boehm_gc_basedir = @boehm_gc_basedir@
-target_all = @target_all@
-
-AUTOMAKE_OPTIONS = cygnus
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-@USE_LIBDIR_TRUE@toolexeclibdir = \
-@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = \
-@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = \
-@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
-
-toolexeclib_LTLIBRARIES = $(target_all)
-EXTRA_LTLIBRARIES = libgcjgc.la
-libgcjgc_la_SOURCES = allchblk.c alloc.c blacklst.c checksums.c \
-gcconfig.h dbg_mlc.c dyn_load.c finalize.c gc.h gc_alloc.h gc_cpp.h \
-gc_hdrs.h gc_mark.h gc_priv.h gc_private.h gc_typed.h headers.c \
-hpux_irix_threads.c linux_threads.c malloc.c mallocx.c mark.c mark_rts.c \
-misc.c new_hblk.c obj_map.c os_dep.c pcr_interface.c ptr_chck.c \
-real_malloc.c reclaim.c solaris_pthreads.c solaris_threads.c \
-solaris_threads.h stubborn.c typd_mlc.c version.h weakpointer.h
-
-libgcjgc_la_LIBADD = @addobjs@
-libgcjgc_la_DEPENDENCIES = @addobjs@
-libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
-
-EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s mips_sgi_mach_dep.s \
-mips_ultrix_mach_dep.s rs6000_mach_dep.s sparc_mach_dep.s \
-sparc_sunos4_mach_dep.s mach_dep.c ecos.cc
-
-
-AM_CXXFLAGS = @BOEHM_GC_CFLAGS@
-
-AM_CFLAGS = @BOEHM_GC_CFLAGS@
-
-check_PROGRAMS = gctest
-gctest_SOURCES = test.c
-gctest_LDADD = ./libgcjgc.la $(THREADLIB)
-
-TESTS = gctest
-
-all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
-
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(MY_CFLAGS) $(BOEHM_GC_CFLAGS)
-
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "EXPECT=$(EXPECT)" \
- "RUNTEST=$(RUNTEST)" \
- "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "tooldir=$(tooldir)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-
-CONFIG_STATUS_DEPENDENCIES = $(boehm_gc_basedir)/configure.host
-
-MAKEOVERRIDES =
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \
-dbg_mlc.lo dyn_load.lo finalize.lo headers.lo hpux_irix_threads.lo \
-linux_threads.lo malloc.lo mallocx.lo mark.lo mark_rts.lo misc.lo \
-new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo ptr_chck.lo \
-real_malloc.lo reclaim.lo solaris_pthreads.lo solaris_threads.lo \
-stubborn.lo typd_mlc.lo
-check_PROGRAMS = gctest$(EXEEXT)
-gctest_OBJECTS = test.o
-gctest_DEPENDENCIES = ./libgcjgc.la
-gctest_LDFLAGS =
-CXXFLAGS = @CXXFLAGS@
-CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-DIST_COMMON = README ChangeLog Makefile.am Makefile.in acinclude.m4 \
-aclocal.m4 configure configure.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(gctest_SOURCES)
-OBJECTS = $(libgcjgc_la_OBJECTS) $(gctest_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .cc .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-mostlyclean-toolexeclibLTLIBRARIES:
-
-clean-toolexeclibLTLIBRARIES:
- -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
-
-distclean-toolexeclibLTLIBRARIES:
-
-maintainer-clean-toolexeclibLTLIBRARIES:
-
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-toolexeclibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
- done
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
- $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
-
-mostlyclean-checkPROGRAMS:
-
-clean-checkPROGRAMS:
- -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-distclean-checkPROGRAMS:
-
-maintainer-clean-checkPROGRAMS:
-
-gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
- @rm -f gctest$(EXEEXT)
- $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
-.cc.o:
- $(CXXCOMPILE) -c $<
-.cc.lo:
- $(LTCXXCOMPILE) -c $<
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-check-TESTS: $(TESTS)
- @failed=0; all=0; \
- srcdir=$(srcdir); export srcdir; \
- for tst in $(TESTS); do \
- if test -f $$tst; then dir=.; \
- else dir="$(srcdir)"; fi; \
- if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
- all=`expr $$all + 1`; \
- echo "PASS: $$tst"; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-install-exec-am: install-toolexeclibLTLIBRARIES
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-toolexeclibLTLIBRARIES
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-toolexeclibLTLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-checkPROGRAMS \
- mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-toolexeclibLTLIBRARIES clean-compile clean-libtool \
- clean-checkPROGRAMS clean-tags clean-generic \
- mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-toolexeclibLTLIBRARIES distclean-compile \
- distclean-libtool distclean-checkPROGRAMS \
- distclean-tags distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-toolexeclibLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-checkPROGRAMS maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
- -rm -f config.status
-
-.PHONY: mostlyclean-toolexeclibLTLIBRARIES \
-distclean-toolexeclibLTLIBRARIES clean-toolexeclibLTLIBRARIES \
-maintainer-clean-toolexeclibLTLIBRARIES \
-uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool mostlyclean-checkPROGRAMS \
-distclean-checkPROGRAMS clean-checkPROGRAMS \
-maintainer-clean-checkPROGRAMS tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir check-TESTS info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-$(all_objs) : gcconfig.h gc_priv.h gc_hdrs.h gc.h gc_mark.h
-
-.s.lo:
- $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $<
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-am: all-multi
-install-am: install-multi
-mostlyclean-am: mostlyclean-multi
-clean-am: clean-multi
-distclean-am: distclean-multi
-maintainer-clean-am: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/boehm-gc/Makefile.orig b/boehm-gc/Makefile.orig
deleted file mode 100644
index d3a3482d25b..00000000000
--- a/boehm-gc/Makefile.orig
+++ /dev/null
@@ -1,469 +0,0 @@
-# Primary targets:
-# gc.a - builds basic library
-# libgc.a - builds library for use with g++ "-fgc-keyword" extension
-# c++ - adds C++ interface to library
-# cords - adds cords (heavyweight strings) to library
-# test - prints porting information, then builds basic version of gc.a,
-# and runs some tests of collector and cords. Does not add cords or
-# c++ interface to gc.a
-# cord/de - builds dumb editor based on cords.
-ABI_FLAG=
-CC=cc $(ABI_FLAG)
-HOSTCC=$(CC)
-CXX=g++ $(ABI_FLAG)
-AS=as $(ABI_FLAG)
-# The above doesn't work with gas, which doesn't run cpp.
-# Define AS as `gcc -c -x assembler-with-cpp' instead.
-# Under Irix 6, you will have to specify the ABI (-o32, -n32, or -64)
-# if you use something other than the default ABI on your machine.
-
-CFLAGS= -O -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DALL_INTERIOR_POINTERS -DSILENT
-
-# For dynamic library builds, it may be necessary to add flags to generate
-# PIC code, e.g. -fPIC on Linux.
-
-# Setjmp_test may yield overly optimistic results when compiled
-# without optimization.
-# -DSILENT disables statistics printing, and improves performance.
-# -DFIND_LEAK causes GC_find_leak to be initially set.
-# This causes the collector to assume that all inaccessible
-# objects should have been explicitly deallocated, and reports exceptions.
-# Finalization and the test program are not usable in this mode.
-# -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
-# (Clients should also define SOLARIS_THREADS and then include
-# gc.h before performing thr_ or dl* or GC_ operations.)
-# Must also define -D_REENTRANT.
-# -D_SOLARIS_PTHREADS enables support for Solaris pthreads.
-# Define SOLARIS_THREADS as well.
-# -DIRIX_THREADS enables support for Irix pthreads. See README.irix.
-# -DHPUX_THREADS enables support for HP/UX 11 pthreads.
-# Also requires -D_REENTRANT. See README.hp.
-# -DLINUX_THREADS enables support for Xavier Leroy's Linux threads.
-# see README.linux. -D_REENTRANT may also be required.
-# -DALL_INTERIOR_POINTERS allows all pointers to the interior
-# of objects to be recognized. (See gc_priv.h for consequences.)
-# -DSMALL_CONFIG tries to tune the collector for small heap sizes,
-# usually causing it to use less space in such situations.
-# Incremental collection no longer works in this case.
-# -DLARGE_CONFIG tunes the collector for unusually large heaps.
-# Necessary for heaps larger than about 500 MB on most machines.
-# Recommended for heaps larger than about 64 MB.
-# -DDONT_ADD_BYTE_AT_END is meaningful only with
-# -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
-# causes all objects to be padded so that pointers just past the end of
-# an object can be recognized. This can be expensive. (The padding
-# is normally more than one byte due to alignment constraints.)
-# -DDONT_ADD_BYTE_AT_END disables the padding.
-# -DNO_SIGNALS does not disable signals during critical parts of
-# the GC process. This is no less correct than many malloc
-# implementations, and it sometimes has a significant performance
-# impact. However, it is dangerous for many not-quite-ANSI C
-# programs that call things like printf in asynchronous signal handlers.
-# This is on by default. Turning it off has not been extensively tested with
-# compilers that reorder stores. It should have been.
-# -DNO_EXECUTE_PERMISSION may cause some or all of the heap to not
-# have execute permission, i.e. it may be impossible to execute
-# code from the heap. Currently this only affects the incremental
-# collector on UNIX machines. It may greatly improve its performance,
-# since this may avoid some expensive cache synchronization.
-# -DOPERATOR_NEW_ARRAY declares that the C++ compiler supports the
-# new syntax "operator new[]" for allocating and deleting arrays.
-# See gc_cpp.h for details. No effect on the C part of the collector.
-# This is defined implicitly in a few environments.
-# -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined
-# as aliases for X, GC_realloc, and GC_free, respectively.
-# Calloc is redefined in terms of the new malloc. X should
-# be either GC_malloc or GC_malloc_uncollectable.
-# The former is occasionally useful for working around leaks in code
-# you don't want to (or can't) look at. It may not work for
-# existing code, but it often does. Neither works on all platforms,
-# since some ports use malloc or calloc to obtain system memory.
-# (Probably works for UNIX, and win32.)
-# -DIGNORE_FREE turns calls to free into a noop. Only useful with
-# -DREDIRECT_MALLOC.
-# -DNO_DEBUGGING removes GC_dump and the debugging routines it calls.
-# Reduces code size slightly at the expense of debuggability.
-# -DJAVA_FINALIZATION makes it somewhat safer to finalize objects out of
-# order by specifying a nonstandard finalization mark procedure (see
-# finalize.c). Objects reachable from finalizable objects will be marked
-# in a sepearte postpass, and hence their memory won't be reclaimed.
-# Not recommended unless you are implementing a language that specifies
-# these semantics. Since 5.0, determines only only the initial value
-# of GC_java_finalization variable.
-# -DFINALIZE_ON_DEMAND causes finalizers to be run only in response
-# to explicit GC_invoke_finalizers() calls.
-# In 5.0 this became runtime adjustable, and this only determines the
-# initial value of GC_finalize_on_demand.
-# -DATOMIC_UNCOLLECTABLE includes code for GC_malloc_atomic_uncollectable.
-# This is useful if either the vendor malloc implementation is poor,
-# or if REDIRECT_MALLOC is used.
-# -DHBLKSIZE=ddd, where ddd is a power of 2 between 512 and 16384, explicitly
-# sets the heap block size. Each heap block is devoted to a single size and
-# kind of object. For the incremental collector it makes sense to match
-# the most likely page size. Otherwise large values result in more
-# fragmentation, but generally better performance for large heaps.
-# -DUSE_MMAP use MMAP instead of sbrk to get new memory.
-# Works for Solaris and Irix.
-# -DUSE_MUNMAP causes memory to be returned to the OS under the right
-# circumstances. This currently disables VM-based incremental collection.
-# This is currently experimental, and works only under some Unix and
-# Linux versions.
-# -DMMAP_STACKS (for Solaris threads) Use mmap from /dev/zero rather than
-# GC_scratch_alloc() to get stack memory.
-# -DPRINT_BLACK_LIST Whenever a black list entry is added, i.e. whenever
-# the garbage collector detects a value that looks almost, but not quite,
-# like a pointer, print both the address containing the value, and the
-# value of the near-bogus-pointer. Can be used to identifiy regions of
-# memory that are likely to contribute misidentified pointers.
-# -DKEEP_BACK_PTRS Add code to save back pointers in debugging headers
-# for objects allocated with the debugging allocator. If all objects
-# through GC_MALLOC with GC_DEBUG defined, this allows the client
-# to determine how particular or randomly chosen objects are reachable
-# for debugging/profiling purposes. The backptr.h interface is
-# implemented only if this is defined.
-# -DGC_ASSERTIONS Enable some internal GC assertion checking. Currently
-# this facility is only used in a few places. It is intended primarily
-# for debugging of the garbage collector itself, but could also
-# occasionally be useful for debugging of client code. Slows down the
-# collector somewhat, but not drastically.
-# -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
-# altered stubborn objects, at substantial performance cost.
-# Use only for debugging of the incremental collector.
-# -DGC_GCJ_SUPPORT includes support for gcj (and possibly other systems
-# that include a pointer to a type descriptor in each allocated object).
-# Building this way requires an ANSI C compiler.
-# -DUSE_I686_PREFETCH causes the collector to issue Pentium III style
-# prefetch instructions. No effect except on X86 Linux platforms.
-# Assumes a very recent gcc-compatible compiler and assembler.
-# (Gas prefetcht0 support was added around May 1999.)
-# Empirically the code appears to still run correctly on Pentium II
-# processors, though with no performance benefit. May not run on other
-# X86 processors? In some cases this improves performance by
-# 15% or so.
-# -DUSE_3DNOW_PREFETCH causes the collector to issue AMD 3DNow style
-# prefetch instructions. Same restrictions as USE_I686_PREFETCH.
-# UNTESTED!!
-# -DUSE_LD_WRAP in combination with the gld flags listed in README.linux
-# causes the collector some system and pthread calls in a more transparent
-# fashion than the usual macro-based approach. Requires GNU ld, and
-# currently probably works only with Linux.
-#
-
-
-LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \
- -DREDIRECT_MALLOC=GC_malloc_uncollectable \
- -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS
-# Flags for building libgc.a -- the last two are required.
-
-CXXFLAGS= $(CFLAGS)
-AR= ar
-RANLIB= ranlib
-
-
-# Redefining srcdir allows object code for the nonPCR version of the collector
-# to be generated in different directories. In this case, the destination directory
-# should contain a copy of the original include directory.
-srcdir = .
-VPATH = $(srcdir)
-
-OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o hpux_irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o
-
-CSRCS= reclaim.c allchblk.c misc.c alloc.c mach_dep.c os_dep.c mark_rts.c headers.c mark.c obj_map.c pcr_interface.c blacklst.c finalize.c new_hblk.c real_malloc.c dyn_load.c dbg_mlc.c malloc.c stubborn.c checksums.c solaris_threads.c hpux_irix_threads.c linux_threads.c typd_mlc.c ptr_chck.c mallocx.c solaris_pthreads.c gcj_mlc.c
-
-CORD_SRCS= cord/cordbscs.c cord/cordxtra.c cord/cordprnt.c cord/de.c cord/cordtest.c cord/cord.h cord/ec.h cord/private/cord_pos.h cord/de_win.c cord/de_win.h cord/de_cmds.h cord/de_win.ICO cord/de_win.RC cord/SCOPTIONS.amiga cord/SMakefile.amiga
-
-CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o
-
-SRCS= $(CSRCS) mips_sgi_mach_dep.s rs6000_mach_dep.s alpha_mach_dep.s \
- sparc_mach_dep.s gc.h gc_typed.h gc_hdrs.h gc_priv.h gc_private.h \
- gcconfig.h gc_mark.h include/gc_inl.h include/gc_inline.h gc.man \
- threadlibs.c if_mach.c if_not_there.c gc_cpp.cc gc_cpp.h weakpointer.h \
- gcc_support.c mips_ultrix_mach_dep.s include/gc_alloc.h gc_alloc.h \
- include/new_gc_alloc.h include/javaxfc.h sparc_sunos4_mach_dep.s \
- solaris_threads.h backptr.h hpux_test_and_clear.s include/gc_gcj.h \
- dbg_mlc.h $(CORD_SRCS)
-
-OTHER_FILES= Makefile PCR-Makefile OS2_MAKEFILE NT_MAKEFILE BCC_MAKEFILE \
- README test.c test_cpp.cc setjmp_t.c SMakefile.amiga \
- SCoptions.amiga README.amiga README.win32 cord/README \
- cord/gc.h include/gc.h include/gc_typed.h include/cord.h \
- include/ec.h include/private/cord_pos.h include/private/gcconfig.h \
- include/private/gc_hdrs.h include/private/gc_priv.h \
- include/gc_cpp.h README.rs6000 include/backptr.h \
- include/weakpointer.h README.QUICK callprocs pc_excludes \
- barrett_diagram README.OS2 README.Mac MacProjects.sit.hqx \
- MacOS.c EMX_MAKEFILE makefile.depend README.debugging \
- include/gc_cpp.h Mac_files/datastart.c Mac_files/dataend.c \
- Mac_files/MacOS_config.h Mac_files/MacOS_Test_config.h \
- add_gc_prefix.c README.solaris2 README.sgi README.hp README.uts \
- win32_threads.c NT_THREADS_MAKEFILE gc.mak README.dj Makefile.dj \
- README.alpha README.linux version.h Makefile.DLLs \
- WCC_MAKEFILE nursery.c include/gc_nursery.h include/gc_copy_descr.h \
- include/leak_detector.h
-
-CORD_INCLUDE_FILES= $(srcdir)/gc.h $(srcdir)/cord/cord.h $(srcdir)/cord/ec.h \
- $(srcdir)/cord/private/cord_pos.h
-
-UTILS= if_mach if_not_there threadlibs
-
-# Libraries needed for curses applications. Only needed for de.
-CURSES= -lcurses -ltermlib
-
-# The following is irrelevant on most systems. But a few
-# versions of make otherwise fork the shell specified in
-# the SHELL environment variable.
-SHELL= /bin/sh
-
-SPECIALCFLAGS =
-# Alternative flags to the C compiler for mach_dep.c.
-# Mach_dep.c often doesn't like optimization, and it's
-# not time-critical anyway.
-# Set SPECIALCFLAGS to -q nodirect_code on Encore.
-
-all: gc.a gctest
-
-pcr: PCR-Makefile gc_private.h gc_hdrs.h gc.h gcconfig.h mach_dep.o $(SRCS)
- make -f PCR-Makefile depend
- make -f PCR-Makefile
-
-$(OBJS) test.o dyn_load.o dyn_load_sunos53.o: $(srcdir)/gc_priv.h $(srcdir)/gc_hdrs.h $(srcdir)/gc.h \
- $(srcdir)/gcconfig.h $(srcdir)/gc_typed.h Makefile
-# The dependency on Makefile is needed. Changing
-# options such as -DSILENT affects the size of GC_arrays,
-# invalidating all .o files that rely on gc_priv.h
-
-mark.o typd_mlc.o finalize.o: $(srcdir)/gc_mark.h
-
-base_lib gc.a: $(OBJS) dyn_load.o $(UTILS)
- echo > base_lib
- rm -f dont_ar_1
- ./if_mach SPARC SUNOS5 touch dont_ar_1
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a $(OBJS) dyn_load.o
- ./if_mach M68K AMIGA touch dont_ar_1
- ./if_mach M68K AMIGA $(AR) -vrus gc.a $(OBJS) dyn_load.o
- ./if_not_there dont_ar_1 $(AR) ru gc.a $(OBJS) dyn_load.o
- ./if_not_there dont_ar_1 $(RANLIB) gc.a || cat /dev/null
-# ignore ranlib failure; that usually means it doesn't exist, and isn't needed
-
-cords: $(CORD_OBJS) cord/cordtest $(UTILS)
- rm -f dont_ar_3
- ./if_mach SPARC SUNOS5 touch dont_ar_3
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a $(CORD_OBJS)
- ./if_mach M68K AMIGA touch dont_ar_3
- ./if_mach M68K AMIGA $(AR) -vrus gc.a $(CORD_OBJS)
- ./if_not_there dont_ar_3 $(AR) ru gc.a $(CORD_OBJS)
- ./if_not_there dont_ar_3 $(RANLIB) gc.a || cat /dev/null
-
-gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/gc_cpp.h $(srcdir)/gc.h Makefile
- $(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc
-
-test_cpp: $(srcdir)/test_cpp.cc $(srcdir)/gc_cpp.h gc_cpp.o $(srcdir)/gc.h \
-base_lib $(UTILS)
- rm -f test_cpp
- ./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a -ldld `./threadlibs`
- ./if_not_there test_cpp $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a `./threadlibs`
-
-c++: gc_cpp.o $(srcdir)/gc_cpp.h test_cpp
- rm -f dont_ar_4
- ./if_mach SPARC SUNOS5 touch dont_ar_4
- ./if_mach SPARC SUNOS5 $(AR) rus gc.a gc_cpp.o
- ./if_mach M68K AMIGA touch dont_ar_4
- ./if_mach M68K AMIGA $(AR) -vrus gc.a gc_cpp.o
- ./if_not_there dont_ar_4 $(AR) ru gc.a gc_cpp.o
- ./if_not_there dont_ar_4 $(RANLIB) gc.a || cat /dev/null
- ./test_cpp 1
- echo > c++
-
-dyn_load_sunos53.o: dyn_load.c
- $(CC) $(CFLAGS) -DSUNOS53_SHARED_LIB -c $(srcdir)/dyn_load.c -o $@
-
-# SunOS5 shared library version of the collector
-sunos5gc.so: $(OBJS) dyn_load_sunos53.o
- $(CC) -G -o sunos5gc.so $(OBJS) dyn_load_sunos53.o -ldl
- ln sunos5gc.so libgc.so
-
-# Alpha/OSF shared library version of the collector
-libalphagc.so: $(OBJS)
- ld -shared -o libalphagc.so $(OBJS) dyn_load.o -lc
- ln libalphagc.so libgc.so
-
-# IRIX shared library version of the collector
-libirixgc.so: $(OBJS) dyn_load.o
- ld -shared $(ABI_FLAG) -o libirixgc.so $(OBJS) dyn_load.o -lc
- ln libirixgc.so libgc.so
-
-# Linux shared library version of the collector
-liblinuxgc.so: $(OBJS) dyn_load.o
- gcc -shared -o liblinuxgc.so $(OBJS) dyn_load.o -lo
- ln liblinuxgc.so libgc.so
-
-# Alternative Linux rule. This is preferable, but is likely to break the
-# Makefile for some non-linux platforms.
-# LIBOBJS= $(patsubst %.o, %.lo, $(OBJS))
-#
-#.SUFFIXES: .lo $(SUFFIXES)
-#
-#.c.lo:
-# $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c $< -o $@
-#
-# liblinuxgc.so: $(LIBOBJS) dyn_load.lo
-# gcc -shared -Wl,-soname=libgc.so.0 -o libgc.so.0 $(LIBOBJS) dyn_load.lo
-# touch liblinuxgc.so
-
-mach_dep.o: $(srcdir)/mach_dep.c $(srcdir)/mips_sgi_mach_dep.s $(srcdir)/mips_ultrix_mach_dep.s $(srcdir)/rs6000_mach_dep.s $(UTILS)
- rm -f mach_dep.o
- ./if_mach MIPS IRIX5 $(AS) -o mach_dep.o $(srcdir)/mips_sgi_mach_dep.s
- ./if_mach MIPS RISCOS $(AS) -o mach_dep.o $(srcdir)/mips_ultrix_mach_dep.s
- ./if_mach MIPS ULTRIX $(AS) -o mach_dep.o $(srcdir)/mips_ultrix_mach_dep.s
- ./if_mach RS6000 "" $(AS) -o mach_dep.o $(srcdir)/rs6000_mach_dep.s
-# ./if_mach ALPHA "" $(AS) -o mach_dep.o $(srcdir)/alpha_mach_dep.s
-# alpha_mach_dep.s assumes that pointers are not saved in fp registers.
-# Gcc on a 21264 can spill pointers to fp registers. Oops.
- ./if_mach SPARC SUNOS5 $(AS) -o mach_dep.o $(srcdir)/sparc_mach_dep.s
- ./if_mach SPARC SUNOS4 $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
- ./if_mach SPARC OPENBSD $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
- ./if_mach HP_PA HPUX $(AS) -o hpux_test_and_clear.o $(srcdir)/hpux_test_and_clear.s
- ./if_mach HP_PA HPUX $(CC) -c -o md_tmp.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
- ./if_mach HP_PA HPUX ld -r -o mach_dep.o md_tmp.o hpux_test_and_clear.o
- ./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
-
-mark_rts.o: $(srcdir)/mark_rts.c $(UTILS)
- rm -f mark_rts.o
- -./if_mach ALPHA OSF1 $(CC) -c $(CFLAGS) -Wo,-notail $(srcdir)/mark_rts.c
- ./if_not_there mark_rts.o $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
-# Work-around for DEC optimizer tail recursion elimination bug.
-# The ALPHA-specific line should be removed if gcc is used.
-
-alloc.o: version.h
-
-cord/cordbscs.o: $(srcdir)/cord/cordbscs.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordbscs.c
- mv cordbscs.o cord/cordbscs.o
-# not all compilers understand -o filename
-
-cord/cordxtra.o: $(srcdir)/cord/cordxtra.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordxtra.c
- mv cordxtra.o cord/cordxtra.o
-
-cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES)
- $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordprnt.c
- mv cordprnt.o cord/cordprnt.o
-
-cord/cordtest: $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a $(UTILS)
- rm -f cord/cordtest
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a -lucb
- ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a -ldld `./threadlibs`
- ./if_not_there cord/cordtest $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/cordtest.c $(CORD_OBJS) gc.a `./threadlibs`
-
-cord/de: $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(UTILS)
- rm -f cord/de
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) -lucb `./threadlibs`
- ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) -ldld `./threadlibs`
- ./if_mach RS6000 "" $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
- ./if_mach I386 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
- ./if_mach ALPHA LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
- ./if_mach IA64 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
- ./if_mach M68K AMIGA $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
- ./if_not_there cord/de $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) `./threadlibs`
-
-if_mach: $(srcdir)/if_mach.c $(srcdir)/gcconfig.h
- $(HOSTCC) $(CFLAGS) -o if_mach $(srcdir)/if_mach.c
-
-threadlibs: $(srcdir)/threadlibs.c $(srcdir)/gcconfig.h Makefile
- $(HOSTCC) $(CFLAGS) -o threadlibs $(srcdir)/threadlibs.c
-
-if_not_there: $(srcdir)/if_not_there.c
- $(HOSTCC) $(CFLAGS) -o if_not_there $(srcdir)/if_not_there.c
-
-clean:
- rm -f gc.a *.o gctest gctest_dyn_link test_cpp \
- setjmp_test mon.out gmon.out a.out core if_not_there if_mach \
- threadlibs $(CORD_OBJS) cord/cordtest cord/de
- -rm -f *~
-
-gctest: test.o gc.a $(UTILS)
- rm -f gctest
- ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o gctest test.o gc.a -lucb
- ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o gctest test.o gc.a -ldld `./threadlibs`
- ./if_not_there gctest $(CC) $(CFLAGS) -o gctest test.o gc.a `./threadlibs`
-
-# If an optimized setjmp_test generates a segmentation fault,
-# odds are your compiler is broken. Gctest may still work.
-# Try compiling setjmp_t.c unoptimized.
-setjmp_test: $(srcdir)/setjmp_t.c $(srcdir)/gc.h $(UTILS)
- $(CC) $(CFLAGS) -o setjmp_test $(srcdir)/setjmp_t.c
-
-test: KandRtest cord/cordtest
- cord/cordtest
-
-# Those tests that work even with a K&R C compiler:
-KandRtest: setjmp_test gctest
- ./setjmp_test
- ./gctest
-
-add_gc_prefix: add_gc_prefix.c
- $(CC) -o add_gc_prefix $(srcdir)/add_gc_prefix.c
-
-gc.tar: $(SRCS) $(OTHER_FILES) add_gc_prefix
- ./add_gc_prefix $(SRCS) $(OTHER_FILES) > /tmp/gc.tar-files
- tar cvfh gc.tar `cat /tmp/gc.tar-files`
-
-pc_gc.tar: $(SRCS) $(OTHER_FILES)
- tar cvfX pc_gc.tar pc_excludes $(SRCS) $(OTHER_FILES)
-
-floppy: pc_gc.tar
- -mmd a:/cord
- -mmd a:/cord/private
- -mmd a:/include
- -mmd a:/include/private
- mkdir /tmp/pc_gc
- cat pc_gc.tar | (cd /tmp/pc_gc; tar xvf -)
- -mcopy -tmn /tmp/pc_gc/* a:
- -mcopy -tmn /tmp/pc_gc/cord/* a:/cord
- -mcopy -mn /tmp/pc_gc/cord/de_win.ICO a:/cord
- -mcopy -tmn /tmp/pc_gc/cord/private/* a:/cord/private
- -mcopy -tmn /tmp/pc_gc/include/* a:/include
- -mcopy -tmn /tmp/pc_gc/include/private/* a:/include/private
- rm -r /tmp/pc_gc
-
-gc.tar.Z: gc.tar
- compress gc.tar
-
-gc.tar.gz: gc.tar
- gzip gc.tar
-
-lint: $(CSRCS) test.c
- lint -DLINT $(CSRCS) test.c | egrep -v "possible pointer alignment problem|abort|exit|sbrk|mprotect|syscall|change in ANSI|improper alignment"
-
-# BTL: added to test shared library version of collector.
-# Currently works only under SunOS5. Requires GC_INIT call from statically
-# loaded client code.
-ABSDIR = `pwd`
-gctest_dyn_link: test.o libgc.so
- $(CC) -L$(ABSDIR) -R$(ABSDIR) -o gctest_dyn_link test.o -lgc -ldl -lthread
-
-gctest_irix_dyn_link: test.o libirixgc.so
- $(CC) -L$(ABSDIR) -o gctest_irix_dyn_link test.o -lirixgc
-
-test_dll.o: test.c libgc_globals.h
- $(CC) $(CFLAGS) -DGC_USE_DLL -c test.c -o test_dll.o
-
-test_dll: test_dll.o libgc_dll.a libgc.dll
- $(CC) test_dll.o -L$(ABSDIR) -lgc_dll -o test_dll
-
-SYM_PREFIX-libgc=GC
-
-# Uncomment the following line to build a GNU win32 DLL
-# include Makefile.DLLs
-
-reserved_namespace: $(SRCS)
- for file in $(SRCS) test.c test_cpp.cc; do \
- sed s/GC_/_GC_/g < $$file > tmp; \
- cp tmp $$file; \
- done
-
-user_namespace: $(SRCS)
- for file in $(SRCS) test.c test_cpp.cc; do \
- sed s/_GC_/GC_/g < $$file > tmp; \
- cp tmp $$file; \
- done
diff --git a/boehm-gc/NT_MAKEFILE b/boehm-gc/NT_MAKEFILE
deleted file mode 100644
index a642262a9ca..00000000000
--- a/boehm-gc/NT_MAKEFILE
+++ /dev/null
@@ -1,59 +0,0 @@
-# Makefile for Windows NT. Assumes Microsoft compiler, and a single thread.
-# DLLs are included in the root set under NT, but not under win32S.
-# Use "nmake nodebug=1 all" for optimized versions of library, gctest and editor.
-
-CPU= i386
-!include <ntwin32.mak>
-
-OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj
-
-all: gctest.exe cord\de.exe test_cpp.exe
-
-.c.obj:
- $(cc) $(cdebug) $(cflags) $(cvars) -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ $*.c /Fo$*.obj
-
-.cpp.obj:
- $(cc) $(cdebug) $(cflags) $(cvars) -DSILENT -DALL_INTERIOR_POINTERS $*.CPP /Fo$*.obj
-
-$(OBJS) test.obj: gc_priv.h gc_hdrs.h gc.h
-
-gc.lib: $(OBJS)
- lib /MACHINE:i386 /out:gc.lib $(OBJS)
-# The original NT SDK used lib32 instead of lib
-
-gctest.exe: test.obj gc.lib
-# The following works for win32 debugging. For win32s debugging use debugtype:coff
-# and add mapsympe line.
-# This produces a "GUI" applications that opens no windows and writes to the log file
-# "gc.log". This is done to make the result runnable under win32s.
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:131072 -out:$*.exe test.obj $(guilibs) gc.lib
-# mapsympe -n -o gctest.sym gctest.exe
-
-cord\de_win.rbj: cord\de_win.res
- cvtres -$(CPU) cord\de_win.res -o cord\de_win.rbj
-
-cord\de.obj cord\de_win.obj: cord\cord.h cord\private\cord_pos.h cord\de_win.h cord\de_cmds.h
-
-cord\de_win.res: cord\de_win.rc cord\de_win.h cord\de_cmds.h
- $(rc) $(rcvars) -r -fo cord\de_win.res $(cvars) cord\de_win.rc
-
-# Cord/de is a real win32 gui application.
-cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib $(guilibs)
-
-gc_cpp.obj: gc_cpp.h gc.h
-
-gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
-
-test_cpp.cpp: test_cpp.cc
- copy test_cpp.cc test_cpp.cpp
-
-# This generates the C++ test executable. The executable expects
-# a single numeric argument, which is the number of iterations.
-# The output appears in the file "gc.log".
-test_cpp.exe: test_cpp.obj gc_cpp.h gc.h gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
-
-
-
diff --git a/boehm-gc/NT_THREADS_MAKEFILE b/boehm-gc/NT_THREADS_MAKEFILE
deleted file mode 100644
index 0fd22b70d60..00000000000
--- a/boehm-gc/NT_THREADS_MAKEFILE
+++ /dev/null
@@ -1,2087 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=gctest - Win32 Release
-!MESSAGE No configuration specified. Defaulting to cord - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "gc - Win32 Release" && "$(CFG)" != "gc - Win32 Debug" &&\
- "$(CFG)" != "gctest - Win32 Release" && "$(CFG)" != "gctest - Win32 Debug" &&\
- "$(CFG)" != "cord - Win32 Release" && "$(CFG)" != "cord - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gc.mak" CFG="cord - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gctest - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "gctest - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE "cord - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "cord - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "gctest - Win32 Debug"
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : ".\Release\gc.dll" ".\Release\gc.bsc"
-
-CLEAN :
- -@erase ".\Release\allchblk.obj"
- -@erase ".\Release\allchblk.sbr"
- -@erase ".\Release\alloc.obj"
- -@erase ".\Release\alloc.sbr"
- -@erase ".\Release\blacklst.obj"
- -@erase ".\Release\blacklst.sbr"
- -@erase ".\Release\checksums.obj"
- -@erase ".\Release\checksums.sbr"
- -@erase ".\Release\dbg_mlc.obj"
- -@erase ".\Release\dbg_mlc.sbr"
- -@erase ".\Release\dyn_load.obj"
- -@erase ".\Release\dyn_load.sbr"
- -@erase ".\Release\finalize.obj"
- -@erase ".\Release\finalize.sbr"
- -@erase ".\Release\gc.bsc"
- -@erase ".\Release\gc.dll"
- -@erase ".\Release\gc.exp"
- -@erase ".\Release\gc.lib"
- -@erase ".\Release\headers.obj"
- -@erase ".\Release\headers.sbr"
- -@erase ".\Release\mach_dep.obj"
- -@erase ".\Release\mach_dep.sbr"
- -@erase ".\Release\malloc.obj"
- -@erase ".\Release\malloc.sbr"
- -@erase ".\Release\mallocx.obj"
- -@erase ".\Release\mallocx.sbr"
- -@erase ".\Release\mark.obj"
- -@erase ".\Release\mark.sbr"
- -@erase ".\Release\mark_rts.obj"
- -@erase ".\Release\mark_rts.sbr"
- -@erase ".\Release\misc.obj"
- -@erase ".\Release\misc.sbr"
- -@erase ".\Release\new_hblk.obj"
- -@erase ".\Release\new_hblk.sbr"
- -@erase ".\Release\obj_map.obj"
- -@erase ".\Release\obj_map.sbr"
- -@erase ".\Release\os_dep.obj"
- -@erase ".\Release\os_dep.sbr"
- -@erase ".\Release\ptr_chck.obj"
- -@erase ".\Release\ptr_chck.sbr"
- -@erase ".\Release\reclaim.obj"
- -@erase ".\Release\reclaim.sbr"
- -@erase ".\Release\stubborn.obj"
- -@erase ".\Release\stubborn.sbr"
- -@erase ".\Release\typd_mlc.obj"
- -@erase ".\Release\typd_mlc.sbr"
- -@erase ".\Release\win32_threads.obj"
- -@erase ".\Release\win32_threads.sbr"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "SILENT" /D "GC_BUILD" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "SILENT" /D "GC_BUILD" /D\
- "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D\
- "WIN32_THREADS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/gc.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\Release/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gc.bsc"
-BSC32_SBRS= \
- ".\Release\allchblk.sbr" \
- ".\Release\alloc.sbr" \
- ".\Release\blacklst.sbr" \
- ".\Release\checksums.sbr" \
- ".\Release\dbg_mlc.sbr" \
- ".\Release\dyn_load.sbr" \
- ".\Release\finalize.sbr" \
- ".\Release\headers.sbr" \
- ".\Release\mach_dep.sbr" \
- ".\Release\malloc.sbr" \
- ".\Release\mallocx.sbr" \
- ".\Release\mark.sbr" \
- ".\Release\mark_rts.sbr" \
- ".\Release\misc.sbr" \
- ".\Release\new_hblk.sbr" \
- ".\Release\obj_map.sbr" \
- ".\Release\os_dep.sbr" \
- ".\Release\ptr_chck.sbr" \
- ".\Release\reclaim.sbr" \
- ".\Release\stubborn.sbr" \
- ".\Release\typd_mlc.sbr" \
- ".\Release\win32_threads.sbr"
-
-".\Release\gc.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/gc.pdb" /machine:I386 /out:"$(OUTDIR)/gc.dll"\
- /implib:"$(OUTDIR)/gc.lib"
-LINK32_OBJS= \
- ".\Release\allchblk.obj" \
- ".\Release\alloc.obj" \
- ".\Release\blacklst.obj" \
- ".\Release\checksums.obj" \
- ".\Release\dbg_mlc.obj" \
- ".\Release\dyn_load.obj" \
- ".\Release\finalize.obj" \
- ".\Release\headers.obj" \
- ".\Release\mach_dep.obj" \
- ".\Release\malloc.obj" \
- ".\Release\mallocx.obj" \
- ".\Release\mark.obj" \
- ".\Release\mark_rts.obj" \
- ".\Release\misc.obj" \
- ".\Release\new_hblk.obj" \
- ".\Release\obj_map.obj" \
- ".\Release\os_dep.obj" \
- ".\Release\ptr_chck.obj" \
- ".\Release\reclaim.obj" \
- ".\Release\stubborn.obj" \
- ".\Release\typd_mlc.obj" \
- ".\Release\win32_threads.obj"
-
-".\Release\gc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\gc.dll" ".\Debug\gc.bsc"
-
-CLEAN :
- -@erase ".\Debug\allchblk.obj"
- -@erase ".\Debug\allchblk.sbr"
- -@erase ".\Debug\alloc.obj"
- -@erase ".\Debug\alloc.sbr"
- -@erase ".\Debug\blacklst.obj"
- -@erase ".\Debug\blacklst.sbr"
- -@erase ".\Debug\checksums.obj"
- -@erase ".\Debug\checksums.sbr"
- -@erase ".\Debug\dbg_mlc.obj"
- -@erase ".\Debug\dbg_mlc.sbr"
- -@erase ".\Debug\dyn_load.obj"
- -@erase ".\Debug\dyn_load.sbr"
- -@erase ".\Debug\finalize.obj"
- -@erase ".\Debug\finalize.sbr"
- -@erase ".\Debug\gc.bsc"
- -@erase ".\Debug\gc.dll"
- -@erase ".\Debug\gc.exp"
- -@erase ".\Debug\gc.lib"
- -@erase ".\Debug\gc.map"
- -@erase ".\Debug\gc.pdb"
- -@erase ".\Debug\headers.obj"
- -@erase ".\Debug\headers.sbr"
- -@erase ".\Debug\mach_dep.obj"
- -@erase ".\Debug\mach_dep.sbr"
- -@erase ".\Debug\malloc.obj"
- -@erase ".\Debug\malloc.sbr"
- -@erase ".\Debug\mallocx.obj"
- -@erase ".\Debug\mallocx.sbr"
- -@erase ".\Debug\mark.obj"
- -@erase ".\Debug\mark.sbr"
- -@erase ".\Debug\mark_rts.obj"
- -@erase ".\Debug\mark_rts.sbr"
- -@erase ".\Debug\misc.obj"
- -@erase ".\Debug\misc.sbr"
- -@erase ".\Debug\new_hblk.obj"
- -@erase ".\Debug\new_hblk.sbr"
- -@erase ".\Debug\obj_map.obj"
- -@erase ".\Debug\obj_map.sbr"
- -@erase ".\Debug\os_dep.obj"
- -@erase ".\Debug\os_dep.sbr"
- -@erase ".\Debug\ptr_chck.obj"
- -@erase ".\Debug\ptr_chck.sbr"
- -@erase ".\Debug\reclaim.obj"
- -@erase ".\Debug\reclaim.sbr"
- -@erase ".\Debug\stubborn.obj"
- -@erase ".\Debug\stubborn.sbr"
- -@erase ".\Debug\typd_mlc.obj"
- -@erase ".\Debug\typd_mlc.sbr"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
- -@erase ".\Debug\win32_threads.obj"
- -@erase ".\Debug\win32_threads.sbr"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "SILENT" /D "GC_BUILD" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "SILENT" /D "GC_BUILD"\
- /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D\
- "WIN32_THREADS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/gc.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\Debug/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gc.bsc"
-BSC32_SBRS= \
- ".\Debug\allchblk.sbr" \
- ".\Debug\alloc.sbr" \
- ".\Debug\blacklst.sbr" \
- ".\Debug\checksums.sbr" \
- ".\Debug\dbg_mlc.sbr" \
- ".\Debug\dyn_load.sbr" \
- ".\Debug\finalize.sbr" \
- ".\Debug\headers.sbr" \
- ".\Debug\mach_dep.sbr" \
- ".\Debug\malloc.sbr" \
- ".\Debug\mallocx.sbr" \
- ".\Debug\mark.sbr" \
- ".\Debug\mark_rts.sbr" \
- ".\Debug\misc.sbr" \
- ".\Debug\new_hblk.sbr" \
- ".\Debug\obj_map.sbr" \
- ".\Debug\os_dep.sbr" \
- ".\Debug\ptr_chck.sbr" \
- ".\Debug\reclaim.sbr" \
- ".\Debug\stubborn.sbr" \
- ".\Debug\typd_mlc.sbr" \
- ".\Debug\win32_threads.sbr"
-
-".\Debug\gc.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/gc.pdb" /map:"$(INTDIR)/gc.map" /debug /machine:I386\
- /out:"$(OUTDIR)/gc.dll" /implib:"$(OUTDIR)/gc.lib"
-LINK32_OBJS= \
- ".\Debug\allchblk.obj" \
- ".\Debug\alloc.obj" \
- ".\Debug\blacklst.obj" \
- ".\Debug\checksums.obj" \
- ".\Debug\dbg_mlc.obj" \
- ".\Debug\dyn_load.obj" \
- ".\Debug\finalize.obj" \
- ".\Debug\headers.obj" \
- ".\Debug\mach_dep.obj" \
- ".\Debug\malloc.obj" \
- ".\Debug\mallocx.obj" \
- ".\Debug\mark.obj" \
- ".\Debug\mark_rts.obj" \
- ".\Debug\misc.obj" \
- ".\Debug\new_hblk.obj" \
- ".\Debug\obj_map.obj" \
- ".\Debug\os_dep.obj" \
- ".\Debug\ptr_chck.obj" \
- ".\Debug\reclaim.obj" \
- ".\Debug\stubborn.obj" \
- ".\Debug\typd_mlc.obj" \
- ".\Debug\win32_threads.obj"
-
-".\Debug\gc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gctest\Release"
-# PROP BASE Intermediate_Dir "gctest\Release"
-# PROP BASE Target_Dir "gctest"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "gctest\Release"
-# PROP Intermediate_Dir "gctest\Release"
-# PROP Target_Dir "gctest"
-OUTDIR=.\gctest\Release
-INTDIR=.\gctest\Release
-
-ALL : "gc - Win32 Release" ".\Release\gctest.exe"
-
-CLEAN :
- -@erase ".\gctest\Release\test.obj"
- -@erase ".\Release\gctest.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
- "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS"\
- /Fp"$(INTDIR)/gctest.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\gctest\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gctest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/gctest.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no\
- /pdb:"$(OUTDIR)/gctest.pdb" /machine:I386 /out:"Release/gctest.exe"
-LINK32_OBJS= \
- ".\gctest\Release\test.obj" \
- ".\Release\gc.lib"
-
-".\Release\gctest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gctest\Debug"
-# PROP BASE Intermediate_Dir "gctest\Debug"
-# PROP BASE Target_Dir "gctest"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "gctest\Debug"
-# PROP Intermediate_Dir "gctest\Debug"
-# PROP Target_Dir "gctest"
-OUTDIR=.\gctest\Debug
-INTDIR=.\gctest\Debug
-
-ALL : "gc - Win32 Debug" ".\Debug\gctest.exe" ".\gctest\Debug\gctest.bsc"
-
-CLEAN :
- -@erase ".\Debug\gctest.exe"
- -@erase ".\gctest\Debug\gctest.bsc"
- -@erase ".\gctest\Debug\gctest.map"
- -@erase ".\gctest\Debug\gctest.pdb"
- -@erase ".\gctest\Debug\test.obj"
- -@erase ".\gctest\Debug\test.sbr"
- -@erase ".\gctest\Debug\vc40.idb"
- -@erase ".\gctest\Debug\vc40.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS"\
- /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR"$(INTDIR)/"\
- /Fp"$(INTDIR)/gctest.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\gctest\Debug/
-CPP_SBRS=.\gctest\Debug/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gctest.bsc"
-BSC32_SBRS= \
- ".\gctest\Debug\test.sbr"
-
-".\gctest\Debug\gctest.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /map /debug /machine:I386 /out:"Debug/gctest.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no\
- /pdb:"$(OUTDIR)/gctest.pdb" /map:"$(INTDIR)/gctest.map" /debug /machine:I386\
- /out:"Debug/gctest.exe"
-LINK32_OBJS= \
- ".\Debug\gc.lib" \
- ".\gctest\Debug\test.obj"
-
-".\Debug\gctest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "cord - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "cord\Release"
-# PROP BASE Intermediate_Dir "cord\Release"
-# PROP BASE Target_Dir "cord"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "cord\Release"
-# PROP Intermediate_Dir "cord\Release"
-# PROP Target_Dir "cord"
-OUTDIR=.\cord\Release
-INTDIR=.\cord\Release
-
-ALL : "gc - Win32 Release" ".\Release\de.exe"
-
-CLEAN :
- -@erase ".\cord\Release\cordbscs.obj"
- -@erase ".\cord\Release\cordxtra.obj"
- -@erase ".\cord\Release\de.obj"
- -@erase ".\cord\Release\de_win.obj"
- -@erase ".\cord\Release\de_win.res"
- -@erase ".\Release\de.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
- "ALL_INTERIOR_POINTERS" /Fp"$(INTDIR)/cord.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\cord\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-RSC_PROJ=/l 0x809 /fo"$(INTDIR)/de_win.res" /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/cord.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/de.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)/de.pdb"\
- /machine:I386 /out:"Release/de.exe"
-LINK32_OBJS= \
- ".\cord\Release\cordbscs.obj" \
- ".\cord\Release\cordxtra.obj" \
- ".\cord\Release\de.obj" \
- ".\cord\Release\de_win.obj" \
- ".\cord\Release\de_win.res" \
- ".\Release\gc.lib"
-
-".\Release\de.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "cord\Debug"
-# PROP BASE Intermediate_Dir "cord\Debug"
-# PROP BASE Target_Dir "cord"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "cord\Debug"
-# PROP Intermediate_Dir "cord\Debug"
-# PROP Target_Dir "cord"
-OUTDIR=.\cord\Debug
-INTDIR=.\cord\Debug
-
-ALL : "gc - Win32 Debug" ".\Debug\de.exe"
-
-CLEAN :
- -@erase ".\cord\Debug\cordbscs.obj"
- -@erase ".\cord\Debug\cordxtra.obj"
- -@erase ".\cord\Debug\de.obj"
- -@erase ".\cord\Debug\de.pdb"
- -@erase ".\cord\Debug\de_win.obj"
- -@erase ".\cord\Debug\de_win.res"
- -@erase ".\cord\Debug\vc40.idb"
- -@erase ".\cord\Debug\vc40.pdb"
- -@erase ".\Debug\de.exe"
- -@erase ".\Debug\de.ilk"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /D "_DEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /Fp"$(INTDIR)/cord.pch" /YX\
- /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\cord\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-RSC_PROJ=/l 0x809 /fo"$(INTDIR)/de_win.res" /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/cord.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Debug/de.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:yes\
- /pdb:"$(OUTDIR)/de.pdb" /debug /machine:I386 /out:"Debug/de.exe"
-LINK32_OBJS= \
- ".\cord\Debug\cordbscs.obj" \
- ".\cord\Debug\cordxtra.obj" \
- ".\cord\Debug\de.obj" \
- ".\cord\Debug\de_win.obj" \
- ".\cord\Debug\de_win.res" \
- ".\Debug\gc.lib"
-
-".\Debug\de.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "gc - Win32 Release"
-# Name "gc - Win32 Debug"
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\reclaim.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_RECLA=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_RECLA=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\reclaim.obj" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-".\Release\reclaim.sbr" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_RECLA=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_RECLA=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\reclaim.obj" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-".\Debug\reclaim.sbr" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\os_dep.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_OS_DE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OS_DE=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
- ".\vd\PCR_VD.h"\
-
-
-".\Release\os_dep.obj" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-".\Release\os_dep.sbr" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_OS_DE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OS_DE=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
- ".\vd\PCR_VD.h"\
-
-
-".\Debug\os_dep.obj" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-".\Debug\os_dep.sbr" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\misc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MISC_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MISC_=\
- ".\il\PCR_IL.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\misc.obj" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-".\Release\misc.sbr" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MISC_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MISC_=\
- ".\il\PCR_IL.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\misc.obj" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-".\Debug\misc.sbr" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mark_rts.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MARK_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mark_rts.obj" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-".\Release\mark_rts.sbr" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MARK_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mark_rts.obj" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-".\Debug\mark_rts.sbr" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mach_dep.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MACH_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MACH_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mach_dep.obj" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-".\Release\mach_dep.sbr" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MACH_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MACH_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mach_dep.obj" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-".\Debug\mach_dep.sbr" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\headers.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_HEADE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_HEADE=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\headers.obj" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-".\Release\headers.sbr" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_HEADE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_HEADE=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\headers.obj" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-".\Debug\headers.sbr" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\alloc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_ALLOC=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLOC=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\alloc.obj" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-".\Release\alloc.sbr" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_ALLOC=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLOC=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\alloc.obj" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-".\Debug\alloc.sbr" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\allchblk.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_ALLCH=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLCH=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\allchblk.obj" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-".\Release\allchblk.sbr" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_ALLCH=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLCH=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\allchblk.obj" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-".\Debug\allchblk.sbr" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\stubborn.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_STUBB=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_STUBB=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\stubborn.obj" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-".\Release\stubborn.sbr" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_STUBB=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_STUBB=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\stubborn.obj" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-".\Debug\stubborn.sbr" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\obj_map.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_OBJ_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OBJ_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\obj_map.obj" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-".\Release\obj_map.sbr" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_OBJ_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OBJ_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\obj_map.obj" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-".\Debug\obj_map.sbr" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\new_hblk.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_NEW_H=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_NEW_H=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\new_hblk.obj" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-".\Release\new_hblk.sbr" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_NEW_H=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_NEW_H=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\new_hblk.obj" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-".\Debug\new_hblk.sbr" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mark.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MARK_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mark.obj" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-".\Release\mark.sbr" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MARK_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mark.obj" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-".\Debug\mark.sbr" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\malloc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MALLO=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLO=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\malloc.obj" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-".\Release\malloc.sbr" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MALLO=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLO=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\malloc.obj" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-".\Debug\malloc.sbr" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mallocx.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MALLX=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLX=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mallocx.obj" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-".\Release\mallocx.sbr" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MALLX=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLX=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mallocx.obj" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-".\Debug\mallocx.sbr" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\finalize.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_FINAL=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_FINAL=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\finalize.obj" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-".\Release\finalize.sbr" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_FINAL=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_FINAL=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\finalize.obj" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-".\Debug\finalize.sbr" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\dbg_mlc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_DBG_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DBG_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\dbg_mlc.obj" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-".\Release\dbg_mlc.sbr" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_DBG_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DBG_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\dbg_mlc.obj" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-".\Debug\dbg_mlc.sbr" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\blacklst.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_BLACK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_BLACK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\blacklst.obj" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-".\Release\blacklst.sbr" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_BLACK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_BLACK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\blacklst.obj" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-".\Debug\blacklst.sbr" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\typd_mlc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_TYPD_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TYPD_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\typd_mlc.obj" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-".\Release\typd_mlc.sbr" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_TYPD_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TYPD_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\typd_mlc.obj" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-".\Debug\typd_mlc.sbr" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\ptr_chck.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_PTR_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_PTR_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\ptr_chck.obj" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-".\Release\ptr_chck.sbr" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_PTR_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_PTR_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\ptr_chck.obj" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-".\Debug\ptr_chck.sbr" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\dyn_load.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_DYN_L=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DYN_L=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\dyn_load.obj" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-".\Release\dyn_load.sbr" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_DYN_L=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DYN_L=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\dyn_load.obj" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-".\Debug\dyn_load.sbr" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\win32_threads.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_WIN32=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_WIN32=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\win32_threads.obj" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-".\Release\win32_threads.sbr" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_WIN32=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_WIN32=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\win32_threads.obj" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-".\Debug\win32_threads.sbr" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\checksums.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_CHECK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_CHECK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\checksums.obj" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-".\Release\checksums.sbr" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_CHECK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_CHECK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\checksums.obj" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-".\Debug\checksums.sbr" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "gctest - Win32 Release"
-# Name "gctest - Win32 Debug"
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "gc"
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-"gc - Win32 Release" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-"gc - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\test.c
-DEP_CPP_TEST_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TEST_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-
-".\gctest\Release\test.obj" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-
-".\gctest\Debug\test.obj" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-".\gctest\Debug\test.sbr" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "cord - Win32 Release"
-# Name "cord - Win32 Debug"
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "gc"
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-"gc - Win32 Release" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-"gc - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de_win.c
-DEP_CPP_DE_WI=\
- ".\cord\cord.h"\
- ".\cord\de_cmds.h"\
- ".\cord\de_win.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_DE_WI=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de_win.obj" : $(SOURCE) $(DEP_CPP_DE_WI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de_win.obj" : $(SOURCE) $(DEP_CPP_DE_WI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de.c
-DEP_CPP_DE_C2e=\
- ".\cord\cord.h"\
- ".\cord\de_cmds.h"\
- ".\cord\de_win.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_DE_C2e=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de.obj" : $(SOURCE) $(DEP_CPP_DE_C2e) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de.obj" : $(SOURCE) $(DEP_CPP_DE_C2e) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\cordxtra.c
-DEP_CPP_CORDX=\
- ".\cord\cord.h"\
- ".\cord\ec.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_CORDX=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\cordxtra.obj" : $(SOURCE) $(DEP_CPP_CORDX) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\cordxtra.obj" : $(SOURCE) $(DEP_CPP_CORDX) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\cordbscs.c
-DEP_CPP_CORDB=\
- ".\cord\cord.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_CORDB=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\cordbscs.obj" : $(SOURCE) $(DEP_CPP_CORDB) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\cordbscs.obj" : $(SOURCE) $(DEP_CPP_CORDB) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de_win.RC
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de_win.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) /l 0x809 /fo"$(INTDIR)/de_win.res" /i "cord" /d "NDEBUG" $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de_win.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) /l 0x809 /fo"$(INTDIR)/de_win.res" /i "cord" /d "_DEBUG" $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/boehm-gc/OS2_MAKEFILE b/boehm-gc/OS2_MAKEFILE
deleted file mode 100644
index 7b816218206..00000000000
--- a/boehm-gc/OS2_MAKEFILE
+++ /dev/null
@@ -1,45 +0,0 @@
-# Makefile for OS/2. Assumes IBM's compiler, static linking, and a single thread.
-# Adding dynamic linking support seems easy, but takes a little bit of work.
-# Adding thread support may be nontrivial, since we haven't yet figured out how to
-# look at another thread's registers.
-
-# Significantly revised for GC version 4.4 by Mark Boulter (Jan 1994).
-
-OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj malloc.obj stubborn.obj typd_mlc.obj ptr_chck.obj mallocx.obj
-
-CORDOBJS= cord\cordbscs.obj cord\cordxtra.obj cord\cordprnt.obj
-
-CC= icc
-CFLAGS= /O /Q /DSILENT /DSMALL_CONFIG /DALL_INTERIOR_POINTERS
-# Use /Ti instead of /O for debugging
-# Setjmp_test may yield overly optimistic results when compiled
-# without optimization.
-
-all: $(OBJS) gctest.exe cord\cordtest.exe
-
-$(OBJS) test.obj: gc_priv.h gc_hdrs.h gc.h
-
-## ERASE THE LIB FIRST - if it is already there then this command will fail
-## (make sure its there or erase will fail!)
-gc.lib: $(OBJS)
- echo . > gc.lib
- erase gc.lib
- LIB gc.lib $(OBJS), gc.lst
-
-mach_dep.obj: mach_dep.c
- $(CC) $(CFLAGS) /C mach_dep.c
-
-gctest.exe: test.obj gc.lib
- $(CC) $(CFLAGS) /B"/STACK:524288" /Fegctest test.obj gc.lib
-
-cord\cordbscs.obj: cord\cordbscs.c cord\cord.h cord\private\cord_pos.h
- $(CC) $(CFLAGS) /C /Focord\cordbscs cord\cordbscs.c
-
-cord\cordxtra.obj: cord\cordxtra.c cord\cord.h cord\private\cord_pos.h cord\ec.h
- $(CC) $(CFLAGS) /C /Focord\cordxtra cord\cordxtra.c
-
-cord\cordprnt.obj: cord\cordprnt.c cord\cord.h cord\private\cord_pos.h cord\ec.h
- $(CC) $(CFLAGS) /C /Focord\cordprnt cord\cordprnt.c
-
-cord\cordtest.exe: cord\cordtest.c cord\cord.h cord\private\cord_pos.h cord\ec.h $(CORDOBJS) gc.lib
- $(CC) $(CFLAGS) /B"/STACK:65536" /Fecord\cordtest cord\cordtest.c gc.lib $(CORDOBJS)
diff --git a/boehm-gc/PCR-Makefile b/boehm-gc/PCR-Makefile
deleted file mode 100644
index 1eae3672556..00000000000
--- a/boehm-gc/PCR-Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Default target
-#
-
-default: gc.o
-
-include ../config/common.mk
-
-#
-# compilation flags, etc.
-#
-
-
-CPPFLAGS = $(INCLUDE) $(CONFIG_CPPFLAGS) \
- -DPCR_NO_RENAME -DPCR_NO_HOSTDEP_ERR
-#CFLAGS = -DPCR -DSILENT $(CONFIG_CFLAGS)
-CFLAGS = -DPCR $(CONFIG_CFLAGS)
-SPECIALCFLAGS = # For code involving asm's
-
-ASPPFLAGS = $(INCLUDE) $(CONFIG_ASPPFLAGS) \
- -DPCR_NO_RENAME -DPCR_NO_HOSTDEP_ERR -DASM
-
-ASFLAGS = $(CONFIG_ASFLAGS)
-
-LDRFLAGS = $(CONFIG_LDRFLAGS)
-
-LDFLAGS = $(CONFIG_LDFLAGS)
-
-#
-#
-#
-#
-# BEGIN PACKAGE-SPECIFIC PART
-#
-#
-#
-#
-
-# Fix to point to local pcr installation directory.
-PCRDIR= ..
-
-COBJ= alloc.o reclaim.o allchblk.o misc.o os_dep.o mark_rts.o headers.o mark.o obj_map.o pcr_interface.o blacklst.o finalize.o new_hblk.o real_malloc.o dyn_load.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o typd_mlc.o ptr_chck.o mallocx.o
-
-CSRC= reclaim.c allchblk.c misc.c alloc.c mach_dep.c os_dep.c mark_rts.c headers.c mark.c obj_map.c pcr_interface.c blacklst.c finalize.c new_hblk.c real_malloc.c dyn_load.c dbg_mlc.c malloc.c stubborn.c checksums.c solaris_threads.c typd_mlc.c ptr_chck.c mallocx.c
-
-SHELL= /bin/sh
-
-default: gc.o
-
-gc.o: $(COBJ) mach_dep.o
- $(LDR) $(CONFIG_LDRFLAGS) -o gc.o $(COBJ) mach_dep.o
-
-
-mach_dep.o: mach_dep.c mips_mach_dep.s rs6000_mach_dep.s if_mach if_not_there
- rm -f mach_dep.o
- ./if_mach MIPS "" as -o mach_dep.o mips_mach_dep.s
- ./if_mach RS6000 "" as -o mach_dep.o rs6000_mach_dep.s
- ./if_mach ALPHA "" as -o mach_dep.o alpha_mach_dep.s
- ./if_mach SPARC SUNOS5 as -o mach_dep.o sparc_mach_dep.s
- ./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) mach_dep.c
-
-if_mach: if_mach.c gcconfig.h
- $(CC) $(CFLAGS) -o if_mach if_mach.c
-
-if_not_there: if_not_there.c
- $(CC) $(CFLAGS) -o if_not_there if_not_there.c
-
-
diff --git a/boehm-gc/README b/boehm-gc/README
deleted file mode 100644
index 7e333dbcf10..00000000000
--- a/boehm-gc/README
+++ /dev/null
@@ -1,1646 +0,0 @@
-Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
-Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved.
-Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
-Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
-
- [ This version of the collector modified for use in libgcj.
- See the file ChangeLog for details ]
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program
-for any purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is granted,
-provided the above notices are retained, and a notice that the code was
-modified is included with the above copyright notice.
-
-This is version 5.1 of a conservative garbage collector for C and C++.
-
-You might find a more recent version of this at
-
-http://www.hpl.hp.com/personal/Hans_Boehm/gc
-
-HISTORY -
-
- Early versions of this collector were developed as a part of research
-projects supported in part by the National Science Foundation
-and the Defense Advance Research Projects Agency.
-Much of the code was rewritten by Hans-J. Boehm (boehm@acm.org) at Xerox PARC,
-SGI, and HP Labs.
-
-Some other contributors:
-
-More recent contributors are mentioned in the modification history at the
-end of this file. My apologies for any omissions.
-
-The SPARC specific code was contributed by Mark Weiser
-(weiser@parc.xerox.com). The Encore Multimax modifications were supplied by
-Kevin Kenny (kenny@m.cs.uiuc.edu). The adaptation to the RT is largely due
-to Vernon Lee (scorpion@rice.edu), on machines made available by IBM.
-Much of the HP specific code and a number of good suggestions for improving the
-generic code are due to Walter Underwood (wunder@hp-ses.sde.hp.com).
-Robert Brazile (brazile@diamond.bbn.com) originally supplied the ULTRIX code.
-Al Dosser (dosser@src.dec.com) and Regis Cridlig (Regis.Cridlig@cl.cam.ac.uk)
-subsequently provided updates and information on variation between ULTRIX
-systems. Parag Patel (parag@netcom.com) supplied the A/UX code.
-Jesper Peterson(jep@mtiame.mtia.oz.au), Michel Schinz, and
-Martin Tauchmann (martintauchmann@bigfoot.com) supplied the Amiga port.
-Thomas Funke (thf@zelator.in-berlin.de(?)) and
-Brian D.Carlstrom (bdc@clark.lcs.mit.edu) supplied the NeXT ports.
-Douglas Steel (doug@wg.icl.co.uk) provided ICL DRS6000 code.
-Bill Janssen (janssen@parc.xerox.com) supplied the SunOS dynamic loader
-specific code. Manuel Serrano (serrano@cornas.inria.fr) supplied linux and
-Sony News specific code. Al Dosser provided Alpha/OSF/1 code. He and
-Dave Detlefs(detlefs@src.dec.com) also provided several generic bug fixes.
-Alistair G. Crooks(agc@uts.amdahl.com) supplied the NetBSD and 386BSD ports.
-Jeffrey Hsu (hsu@soda.berkeley.edu) provided the FreeBSD port.
-Brent Benson (brent@jade.ssd.csd.harris.com) ported the collector to
-a Motorola 88K processor running CX/UX (Harris NightHawk).
-Ari Huttunen (Ari.Huttunen@hut.fi) generalized the OS/2 port to
-nonIBM development environments (a nontrivial task).
-Patrick Beard (beard@cs.ucdavis.edu) provided the initial MacOS port.
-David Chase, then at Olivetti Research, suggested several improvements.
-Scott Schwartz (schwartz@groucho.cse.psu.edu) supplied some of the
-code to save and print call stacks for leak detection on a SPARC.
-Jesse Hull and John Ellis supplied the C++ interface code.
-Zhong Shao performed much of the experimentation that led to the
-current typed allocation facility. (His dynamic type inference code hasn't
-made it into the released version of the collector, yet.)
-(Blame for misinstallation of these modifications goes to the first author,
-however.)
-
-OVERVIEW
-
- This is intended to be a general purpose, garbage collecting storage
-allocator. The algorithms used are described in:
-
-Boehm, H., and M. Weiser, "Garbage Collection in an Uncooperative Environment",
-Software Practice & Experience, September 1988, pp. 807-820.
-
-Boehm, H., A. Demers, and S. Shenker, "Mostly Parallel Garbage Collection",
-Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design
-and Implementation, SIGPLAN Notices 26, 6 (June 1991), pp. 157-164.
-
-Boehm, H., "Space Efficient Conservative Garbage Collection", Proceedings
-of the ACM SIGPLAN '91 Conference on Programming Language Design and
-Implementation, SIGPLAN Notices 28, 6 (June 1993), pp. 197-206.
-
- Possible interactions between the collector and optimizing compilers are
-discussed in
-
-Boehm, H., and D. Chase, "A Proposal for GC-safe C Compilation",
-The Journal of C Language Translation 4, 2 (December 1992).
-
-and
-
-Boehm H., "Simple GC-safe Compilation", Proceedings
-of the ACM SIGPLAN '96 Conference on Programming Language Design and
-Implementation.
-
-(Both are also available from
-http://reality.sgi.com/boehm/papers/, among other places.)
-
- Unlike the collector described in the second reference, this collector
-operates either with the mutator stopped during the entire collection
-(default) or incrementally during allocations. (The latter is supported
-on only a few machines.) It does not rely on threads, but is intended
-to be thread-safe.
-
- Some of the ideas underlying the collector have previously been explored
-by others. (Doug McIlroy wrote a vaguely similar collector that is part of
-version 8 UNIX (tm).) However none of this work appears to have been widely
-disseminated.
-
- Rudimentary tools for use of the collector as a leak detector are included, as
-is a fairly sophisticated string package "cord" that makes use of the collector.
-(See cord/README.)
-
-
-GENERAL DESCRIPTION
-
- This is a garbage collecting storage allocator that is intended to be
-used as a plug-in replacement for C's malloc.
-
- Since the collector does not require pointers to be tagged, it does not
-attempt to ensure that all inaccessible storage is reclaimed. However,
-in our experience, it is typically more successful at reclaiming unused
-memory than most C programs using explicit deallocation. Unlike manually
-introduced leaks, the amount of unreclaimed memory typically stays
-bounded.
-
- In the following, an "object" is defined to be a region of memory allocated
-by the routines described below.
-
- Any objects not intended to be collected must be pointed to either
-from other such accessible objects, or from the registers,
-stack, data, or statically allocated bss segments. Pointers from
-the stack or registers may point to anywhere inside an object.
-The same is true for heap pointers if the collector is compiled with
- ALL_INTERIOR_POINTERS defined, as is now the default.
-
-Compiling without ALL_INTERIOR_POINTERS may reduce accidental retention
-of garbage objects, by requiring pointers from the heap to to the beginning
-of an object. But this no longer appears to be a significant
-issue for most programs.
-
-There are a number of routines which modify the pointer recognition
-algorithm. GC_register_displacement allows certain interior pointers
-to be recognized even if ALL_INTERIOR_POINTERS is nor defined.
-GC_malloc_ignore_off_page allows some pointers into the middle of large objects
-to be disregarded, greatly reducing the probablility of accidental
-retention of large objects. For most purposes it seems best to compile
-with ALL_INTERIOR_POINTERS and to use GC_malloc_ignore_off_page if
-you get collector warnings from allocations of very large objects.
-See README.debugging for details.
-
- Note that pointers inside memory allocated by the standard "malloc" are not
-seen by the garbage collector. Thus objects pointed to only from such a
-region may be prematurely deallocated. It is thus suggested that the
-standard "malloc" be used only for memory regions, such as I/O buffers, that
-are guaranteed not to contain pointers to garbage collectable memory.
-Pointers in C language automatic, static, or register variables,
-are correctly recognized. (Note that GC_malloc_uncollectable has semantics
-similar to standard malloc, but allocates objects that are traced by the
-collector.)
-
- The collector does not always know how to find pointers in data
-areas that are associated with dynamic libraries. This is easy to
-remedy IF you know how to find those data areas on your operating
-system (see GC_add_roots). Code for doing this under SunOS, IRIX 5.X and 6.X,
-HP/UX, Alpha OSF/1, Linux, and win32 is included and used by default. (See
-README.win32 for win32 details.) On other systems pointers from dynamic
-library data areas may not be considered by the collector.
-
- Note that the garbage collector does not need to be informed of shared
-read-only data. However if the shared library mechanism can introduce
-discontiguous data areas that may contain pointers, then the collector does
-need to be informed.
-
- Signal processing for most signals may be deferred during collection,
-and during uninterruptible parts of the allocation process. Unlike
-standard ANSI C mallocs, it can be safe to invoke malloc
-from a signal handler while another malloc is in progress, provided
-the original malloc is not restarted. (Empirically, many UNIX
-applications already assume this.) To obtain this level of signal
-safety, remove the definition of -DNO_SIGNALS in Makefile. This incurs
-a minor performance penalty, and hence is no longer the default.
-
- The allocator/collector can also be configured for thread-safe operation.
-(Full signal safety can also be achieved, but only at the cost of two system
-calls per malloc, which is usually unacceptable.)
-
-INSTALLATION AND PORTABILITY
-
- As distributed, the macro SILENT is defined in Makefile.
-In the event of problems, this can be removed to obtain a moderate
-amount of descriptive output for each collection.
-(The given statistics exhibit a few peculiarities.
-Things don't appear to add up for a variety of reasons, most notably
-fragmentation losses. These are probably much more significant for the
-contrived program "test.c" than for your application.)
-
- Note that typing "make test" will automatically build the collector
-and then run setjmp_test and gctest. Setjmp_test will give you information
-about configuring the collector, which is useful primarily if you have
-a machine that's not already supported. Gctest is a somewhat superficial
-test of collector functionality. Failure is indicated by a core dump or
-a message to the effect that the collector is broken. Gctest takes about
-35 seconds to run on a SPARCstation 2. On a slower machine,
-expect it to take a while. It may use up to 8 MB of memory. (The
-multi-threaded version will use more.) "Make test" will also, as
-its last step, attempt to build and test the "cord" string library.
-This will fail without an ANSI C compiler.
-
- The Makefile will generate a library gc.a which you should link against.
-Typing "make cords" will add the cord library to gc.a.
-Note that this requires an ANSI C compiler.
-
- It is suggested that if you need to replace a piece of the collector
-(e.g. GC_mark_rts.c) you simply list your version ahead of gc.a on the
- work.)
-ld command line, rather than replacing the one in gc.a. (This will
-generate numerous warnings under some versions of AIX, but it still
-works.)
-
- All include files that need to be used by clients will be put in the
-include subdirectory. (Normally this is just gc.h. "Make cords" adds
-"cord.h" and "ec.h".)
-
- The collector currently is designed to run essentially unmodified on
-machines that use a flat 32-bit or 64-bit address space.
-That includes the vast majority of Workstations and X86 (X >= 3) PCs.
-(The list here was deleted because it was getting too long and constantly
-out of date.)
- It does NOT run under plain 16-bit DOS or Windows 3.X. There are however
-various packages (e.g. win32s, djgpp) that allow flat 32-bit address
-applications to run under those systemsif the have at least an 80386 processor,
-and several of those are compatible with the collector.
-
- In a few cases (Amiga, OS/2, Win32, MacOS) a separate makefile
-or equivalent is supplied. Many of these have separate README.system
-files.
-
- Dynamic libraries are completely supported only under SunOS
-(and even that support is not functional on the last Sun 3 release),
-IRIX 5&6, HP-PA, Win32 (not Win32S) and OSF/1 on DEC AXP machines.
-On other machines we recommend that you do one of the following:
-
- 1) Add dynamic library support (and send us the code).
- 2) Use static versions of the libraries.
- 3) Arrange for dynamic libraries to use the standard malloc.
- This is still dangerous if the library stores a pointer to a
- garbage collected object. But nearly all standard interfaces
- prohibit this, because they deal correctly with pointers
- to stack allocated objects. (Strtok is an exception. Don't
- use it.)
-
- In all cases we assume that pointer alignment is consistent with that
-enforced by the standard C compilers. If you use a nonstandard compiler
-you may have to adjust the alignment parameters defined in gc_priv.h.
-
- A port to a machine that is not byte addressed, or does not use 32 bit
-or 64 bit addresses will require a major effort. A port to plain MSDOS
-or win16 is hard.
-
- For machines not already mentioned, or for nonstandard compilers, the
-following are likely to require change:
-
-1. The parameters in gcconfig.h.
- The parameters that will usually require adjustment are
- STACKBOTTOM, ALIGNMENT and DATASTART. Setjmp_test
- prints its guesses of the first two.
- DATASTART should be an expression for computing the
- address of the beginning of the data segment. This can often be
- &etext. But some memory management units require that there be
- some unmapped space between the text and the data segment. Thus
- it may be more complicated. On UNIX systems, this is rarely
- documented. But the adb "$m" command may be helpful. (Note
- that DATASTART will usually be a function of &etext. Thus a
- single experiment is usually insufficient.)
- STACKBOTTOM is used to initialize GC_stackbottom, which
- should be a sufficient approximation to the coldest stack address.
- On some machines, it is difficult to obtain such a value that is
- valid across a variety of MMUs, OS releases, etc. A number of
- alternatives exist for using the collector in spite of this. See the
- discussion in gcconfig.h immediately preceding the various
- definitions of STACKBOTTOM.
-
-2. mach_dep.c.
- The most important routine here is one to mark from registers.
- The distributed file includes a generic hack (based on setjmp) that
- happens to work on many machines, and may work on yours. Try
- compiling and running setjmp_t.c to see whether it has a chance of
- working. (This is not correct C, so don't blame your compiler if it
- doesn't work. Based on limited experience, register window machines
- are likely to cause trouble. If your version of setjmp claims that
- all accessible variables, including registers, have the value they
- had at the time of the longjmp, it also will not work. Vanilla 4.2 BSD
- on Vaxen makes such a claim. SunOS does not.)
- If your compiler does not allow in-line assembly code, or if you prefer
- not to use such a facility, mach_dep.c may be replaced by a .s file
- (as we did for the MIPS machine and the PC/RT).
- At this point enough architectures are supported by mach_dep.c
- that you will rarely need to do more than adjust for assembler
- syntax.
-
-3. os_dep.c (and gc_priv.h).
- Several kinds of operating system dependent routines reside here.
- Many are optional. Several are invoked only through corresponding
- macros in gc_priv.h, which may also be redefined as appropriate.
- The routine GC_register_data_segments is crucial. It registers static
- data areas that must be traversed by the collector. (User calls to
- GC_add_roots may sometimes be used for similar effect.)
- Routines to obtain memory from the OS also reside here.
- Alternatively this can be done entirely by the macro GET_MEM
- defined in gc_priv.h. Routines to disable and reenable signals
- also reside here if they are need by the macros DISABLE_SIGNALS
- and ENABLE_SIGNALS defined in gc_priv.h.
- In a multithreaded environment, the macros LOCK and UNLOCK
- in gc_priv.h will need to be suitably redefined.
- The incremental collector requires page dirty information, which
- is acquired through routines defined in os_dep.c. Unless directed
- otherwise by gcconfig.h, these are implemented as stubs that simply
- treat all pages as dirty. (This of course makes the incremental
- collector much less useful.)
-
-4. dyn_load.c
- This provides a routine that allows the collector to scan data
- segments associated with dynamic libraries. Often it is not
- necessary to provide this routine unless user-written dynamic
- libraries are used.
-
- For a different version of UN*X or different machines using the
-Motorola 68000, Vax, SPARC, 80386, NS 32000, PC/RT, or MIPS architecture,
-it should frequently suffice to change definitions in gcconfig.h.
-
-
-THE C INTERFACE TO THE ALLOCATOR
-
- The following routines are intended to be directly called by the user.
-Note that usually only GC_malloc is necessary. GC_clear_roots and GC_add_roots
-calls may be required if the collector has to trace from nonstandard places
-(e.g. from dynamic library data areas on a machine on which the
-collector doesn't already understand them.) On some machines, it may
-be desirable to set GC_stacktop to a good approximation of the stack base.
-(This enhances code portability on HP PA machines, since there is no
-good way for the collector to compute this value.) Client code may include
-"gc.h", which defines all of the following, plus many others.
-
-1) GC_malloc(nbytes)
- - allocate an object of size nbytes. Unlike malloc, the object is
- cleared before being returned to the user. Gc_malloc will
- invoke the garbage collector when it determines this to be appropriate.
- GC_malloc may return 0 if it is unable to acquire sufficient
- space from the operating system. This is the most probable
- consequence of running out of space. Other possible consequences
- are that a function call will fail due to lack of stack space,
- or that the collector will fail in other ways because it cannot
- maintain its internal data structures, or that a crucial system
- process will fail and take down the machine. Most of these
- possibilities are independent of the malloc implementation.
-
-2) GC_malloc_atomic(nbytes)
- - allocate an object of size nbytes that is guaranteed not to contain any
- pointers. The returned object is not guaranteed to be cleared.
- (Can always be replaced by GC_malloc, but results in faster collection
- times. The collector will probably run faster if large character
- arrays, etc. are allocated with GC_malloc_atomic than if they are
- statically allocated.)
-
-3) GC_realloc(object, new_size)
- - change the size of object to be new_size. Returns a pointer to the
- new object, which may, or may not, be the same as the pointer to
- the old object. The new object is taken to be atomic iff the old one
- was. If the new object is composite and larger than the original object,
- then the newly added bytes are cleared (we hope). This is very likely
- to allocate a new object, unless MERGE_SIZES is defined in gc_priv.h.
- Even then, it is likely to recycle the old object only if the object
- is grown in small additive increments (which, we claim, is generally bad
- coding practice.)
-
-4) GC_free(object)
- - explicitly deallocate an object returned by GC_malloc or
- GC_malloc_atomic. Not necessary, but can be used to minimize
- collections if performance is critical. Probably a performance
- loss for very small objects (<= 8 bytes).
-
-5) GC_expand_hp(bytes)
- - Explicitly increase the heap size. (This is normally done automatically
- if a garbage collection failed to GC_reclaim enough memory. Explicit
- calls to GC_expand_hp may prevent unnecessarily frequent collections at
- program startup.)
-
-6) GC_malloc_ignore_off_page(bytes)
- - identical to GC_malloc, but the client promises to keep a pointer to
- the somewhere within the first 256 bytes of the object while it is
- live. (This pointer should nortmally be declared volatile to prevent
- interference from compiler optimizations.) This is the recommended
- way to allocate anything that is likely to be larger than 100Kbytes
- or so. (GC_malloc may result in failure to reclaim such objects.)
-
-7) GC_set_warn_proc(proc)
- - Can be used to redirect warnings from the collector. Such warnings
- should be rare, and should not be ignored during code development.
-
-8) GC_enable_incremental()
- - Enables generational and incremental collection. Useful for large
- heaps on machines that provide access to page dirty information.
- Some dirty bit implementations may interfere with debugging
- (by catching address faults) and place restrictions on heap arguments
- to system calls (since write faults inside a system call may not be
- handled well).
-
-9) Several routines to allow for registration of finalization code.
- User supplied finalization code may be invoked when an object becomes
- unreachable. To call (*f)(obj, x) when obj becomes inaccessible, use
- GC_register_finalizer(obj, f, x, 0, 0);
- For more sophisticated uses, and for finalization ordering issues,
- see gc.h.
-
- The global variable GC_free_space_divisor may be adjusted up from its
-default value of 4 to use less space and more collection time, or down for
-the opposite effect. Setting it to 1 or 0 will effectively disable collections
-and cause all allocations to simply grow the heap.
-
- The variable GC_non_gc_bytes, which is normally 0, may be changed to reflect
-the amount of memory allocated by the above routines that should not be
-considered as a candidate for collection. Careless use may, of course, result
-in excessive memory consumption.
-
- Some additional tuning is possible through the parameters defined
-near the top of gc_priv.h.
-
- If only GC_malloc is intended to be used, it might be appropriate to define:
-
-#define malloc(n) GC_malloc(n)
-#define calloc(m,n) GC_malloc((m)*(n))
-
- For small pieces of VERY allocation intensive code, gc_inl.h
-includes some allocation macros that may be used in place of GC_malloc
-and friends.
-
- All externally visible names in the garbage collector start with "GC_".
-To avoid name conflicts, client code should avoid this prefix, except when
-accessing garbage collector routines or variables.
-
- There are provisions for allocation with explicit type information.
-This is rarely necessary. Details can be found in gc_typed.h.
-
-THE C++ INTERFACE TO THE ALLOCATOR:
-
- The Ellis-Hull C++ interface to the collector is included in
-the collector distribution. If you intend to use this, type
-"make c++" after the initial build of the collector is complete.
-See gc_cpp.h for the definition of the interface. This interface
-tries to approximate the Ellis-Detlefs C++ garbage collection
-proposal without compiler changes.
-
-Cautions:
-1. Arrays allocated without new placement syntax are
-allocated as uncollectable objects. They are traced by the
-collector, but will not be reclaimed.
-
-2. Failure to use "make c++" in combination with (1) will
-result in arrays allocated using the default new operator.
-This is likely to result in disaster without linker warnings.
-
-3. If your compiler supports an overloaded new[] operator,
-then gc_cpp.cc and gc_cpp.h should be suitably modified.
-
-4. Many current C++ compilers have deficiencies that
-break some of the functionality. See the comments in gc_cpp.h
-for suggested workarounds.
-
-USE AS LEAK DETECTOR:
-
- The collector may be used to track down leaks in C programs that are
-intended to run with malloc/free (e.g. code with extreme real-time or
-portability constraints). To do so define FIND_LEAK in Makefile
-This will cause the collector to invoke the report_leak
-routine defined near the top of reclaim.c whenever an inaccessible
-object is found that has not been explicitly freed. The collector will
-no longer reclaim inaccessible memory; in this form it is purely a
-debugging tool.
- Productive use of this facility normally involves redefining report_leak
-to do something more intelligent. This typically requires annotating
-objects with additional information (e.g. creation time stack trace) that
-identifies their origin. Such code is typically not very portable, and is
-not included here, except on SPARC machines.
- If all objects are allocated with GC_DEBUG_MALLOC (see next section),
-then the default version of report_leak will report the source file
-and line number at which the leaked object was allocated. This may
-sometimes be sufficient. (On SPARC/SUNOS4 machines, it will also report
-a cryptic stack trace. This can often be turned into a sympolic stack
-trace by invoking program "foo" with "callprocs foo". Callprocs is
-a short shell script that invokes adb to expand program counter values
-to symbolic addresses. It was largely supplied by Scott Schwartz.)
- Note that the debugging facilities described in the next section can
-sometimes be slightly LESS effective in leak finding mode, since in
-leak finding mode, GC_debug_free actually results in reuse of the object.
-(Otherwise the object is simply marked invalid.) Also note that the test
-program is not designed to run meaningfully in FIND_LEAK mode.
-Use "make gc.a" to build the collector.
-
-DEBUGGING FACILITIES:
-
- The routines GC_debug_malloc, GC_debug_malloc_atomic, GC_debug_realloc,
-and GC_debug_free provide an alternate interface to the collector, which
-provides some help with memory overwrite errors, and the like.
-Objects allocated in this way are annotated with additional
-information. Some of this information is checked during garbage
-collections, and detected inconsistencies are reported to stderr.
-
- Simple cases of writing past the end of an allocated object should
-be caught if the object is explicitly deallocated, or if the
-collector is invoked while the object is live. The first deallocation
-of an object will clear the debugging info associated with an
-object, so accidentally repeated calls to GC_debug_free will report the
-deallocation of an object without debugging information. Out of
-memory errors will be reported to stderr, in addition to returning
-NIL.
-
- GC_debug_malloc checking during garbage collection is enabled
-with the first call to GC_debug_malloc. This will result in some
-slowdown during collections. If frequent heap checks are desired,
-this can be achieved by explicitly invoking GC_gcollect, e.g. from
-the debugger.
-
- GC_debug_malloc allocated objects should not be passed to GC_realloc
-or GC_free, and conversely. It is however acceptable to allocate only
-some objects with GC_debug_malloc, and to use GC_malloc for other objects,
-provided the two pools are kept distinct. In this case, there is a very
-low probablility that GC_malloc allocated objects may be misidentified as
-having been overwritten. This should happen with probability at most
-one in 2**32. This probability is zero if GC_debug_malloc is never called.
-
- GC_debug_malloc, GC_malloc_atomic, and GC_debug_realloc take two
-additional trailing arguments, a string and an integer. These are not
-interpreted by the allocator. They are stored in the object (the string is
-not copied). If an error involving the object is detected, they are printed.
-
- The macros GC_MALLOC, GC_MALLOC_ATOMIC, GC_REALLOC, GC_FREE, and
-GC_REGISTER_FINALIZER are also provided. These require the same arguments
-as the corresponding (nondebugging) routines. If gc.h is included
-with GC_DEBUG defined, they call the debugging versions of these
-functions, passing the current file name and line number as the two
-extra arguments, where appropriate. If gc.h is included without GC_DEBUG
-defined, then all these macros will instead be defined to their nondebugging
-equivalents. (GC_REGISTER_FINALIZER is necessary, since pointers to
-objects with debugging information are really pointers to a displacement
-of 16 bytes form the object beginning, and some translation is necessary
-when finalization routines are invoked. For details, about what's stored
-in the header, see the definition of the type oh in debug_malloc.c)
-
-INCREMENTAL/GENERATIONAL COLLECTION:
-
-The collector normally interrupts client code for the duration of
-a garbage collection mark phase. This may be unacceptable if interactive
-response is needed for programs with large heaps. The collector
-can also run in a "generational" mode, in which it usually attempts to
-collect only objects allocated since the last garbage collection.
-Furthermore, in this mode, garbage collections run mostly incrementally,
-with a small amount of work performed in response to each of a large number of
-GC_malloc requests.
-
-This mode is enabled by a call to GC_enable_incremental().
-
-Incremental and generational collection is effective in reducing
-pause times only if the collector has some way to tell which objects
-or pages have been recently modified. The collector uses two sources
-of information:
-
-1. Information provided by the VM system. This may be provided in
-one of several forms. Under Solaris 2.X (and potentially under other
-similar systems) information on dirty pages can be read from the
-/proc file system. Under other systems (currently SunOS4.X) it is
-possible to write-protect the heap, and catch the resulting faults.
-On these systems we require that system calls writing to the heap
-(other than read) be handled specially by client code.
-See os_dep.c for details.
-
-2. Information supplied by the programmer. We define "stubborn"
-objects to be objects that are rarely changed. Such an object
-can be allocated (and enabled for writing) with GC_malloc_stubborn.
-Once it has been initialized, the collector should be informed with
-a call to GC_end_stubborn_change. Subsequent writes that store
-pointers into the object must be preceded by a call to
-GC_change_stubborn.
-
-This mechanism performs best for objects that are written only for
-initialization, and such that only one stubborn object is writable
-at once. It is typically not worth using for short-lived
-objects. Stubborn objects are treated less efficiently than pointerfree
-(atomic) objects.
-
-A rough rule of thumb is that, in the absence of VM information, garbage
-collection pauses are proportional to the amount of pointerful storage
-plus the amount of modified "stubborn" storage that is reachable during
-the collection.
-
-Initial allocation of stubborn objects takes longer than allocation
-of other objects, since other data structures need to be maintained.
-
-We recommend against random use of stubborn objects in client
-code, since bugs caused by inappropriate writes to stubborn objects
-are likely to be very infrequently observed and hard to trace.
-However, their use may be appropriate in a few carefully written
-library routines that do not make the objects themselves available
-for writing by client code.
-
-
-BUGS:
-
- Any memory that does not have a recognizable pointer to it will be
-reclaimed. Exclusive-or'ing forward and backward links in a list
-doesn't cut it.
- Some C optimizers may lose the last undisguised pointer to a memory
-object as a consequence of clever optimizations. This has almost
-never been observed in practice. Send mail to boehm@acm.org
-for suggestions on how to fix your compiler.
- This is not a real-time collector. In the standard configuration,
-percentage of time required for collection should be constant across
-heap sizes. But collection pauses will increase for larger heaps.
-(On SPARCstation 2s collection times will be on the order of 300 msecs
-per MB of accessible memory that needs to be scanned. Your mileage
-may vary.) The incremental/generational collection facility helps,
-but is portable only if "stubborn" allocation is used.
- Please address bug reports to boehm@acm.org. If you are
-contemplating a major addition, you might also send mail to ask whether
-it's already been done (or whether we tried and discarded it).
-
-RECENT VERSIONS:
-
- Version 1.3 and immediately preceding versions contained spurious
-assembly language assignments to TMP_SP. Only the assignment in the PC/RT
-code is necessary. On other machines, with certain compiler options,
-the assignments can lead to an unsaved register being overwritten.
-Known to cause problems under SunOS 3.5 WITHOUT the -O option. (With
--O the compiler recognizes it as dead code. It probably shouldn't,
-but that's another story.)
-
- Version 1.4 and earlier versions used compile time determined values
-for the stack base. This no longer works on Sun 3s, since Sun 3/80s use
-a different stack base. We now use a straightforward heuristic on all
-machines on which it is known to work (incl. Sun 3s) and compile-time
-determined values for the rest. There should really be library calls
-to determine such values.
-
- Version 1.5 and earlier did not ensure 8 byte alignment for objects
-allocated on a sparc based machine.
-
- Version 1.8 added ULTRIX support in gc_private.h.
-
- Version 1.9 fixed a major bug in gc_realloc.
-
- Version 2.0 introduced a consistent naming convention for collector
-routines and added support for registering dynamic library data segments
-in the standard mark_roots.c. Most of the data structures were revamped.
-The treatment of interior pointers was completely changed. Finalization
-was added. Support for locking was added. Object kinds were added.
-We added a black listing facility to avoid allocating at addresses known
-to occur as integers somewhere in the address space. Much of this
-was accomplished by adapting ideas and code from the PCR collector.
-The test program was changed and expanded.
-
- Version 2.1 was the first stable version since 1.9, and added support
-for PPCR.
-
- Version 2.2 added debugging allocation, and fixed various bugs. Among them:
-- GC_realloc could fail to extend the size of the object for certain large object sizes.
-- A blatant subscript range error in GC_printf, which unfortunately
- wasn't exercised on machines with sufficient stack alignment constraints.
-- GC_register_displacement did the wrong thing if it was called after
- any allocation had taken place.
-- The leak finding code would eventually break after 2048 byte
- byte objects leaked.
-- interface.c didn't compile.
-- The heap size remained much too small for large stacks.
-- The stack clearing code behaved badly for large stacks, and perhaps
- on HP/PA machines.
-
- Version 2.3 added ALL_INTERIOR_POINTERS and fixed the following bugs:
-- Missing declaration of etext in the A/UX version.
-- Some PCR root-finding problems.
-- Blacklisting was not 100% effective, because the plausible future
- heap bounds were being miscalculated.
-- GC_realloc didn't handle out-of-memory correctly.
-- GC_base could return a nonzero value for addresses inside free blocks.
-- test.c wasn't really thread safe, and could erroneously report failure
- in a multithreaded environment. (The locking primitives need to be
- replaced for other threads packages.)
-- GC_CONS was thoroughly broken.
-- On a SPARC with dynamic linking, signals stayed diabled while the
- client code was running.
- (Thanks to Manuel Serrano at INRIA for reporting the last two.)
-
- Version 2.4 added GC_free_space_divisor as a tuning knob, added
- support for OS/2 and linux, and fixed the following bugs:
-- On machines with unaligned pointers (e.g. Sun 3), every 128th word could
- fail to be considered for marking.
-- Dynamic_load.c erroneously added 4 bytes to the length of the data and
- bss sections of the dynamic library. This could result in a bad memory
- reference if the actual length was a multiple of a page. (Observed on
- Sun 3. Can probably also happen on a Sun 4.)
- (Thanks to Robert Brazile for pointing out that the Sun 3 version
- was broken. Dynamic library handling is still broken on Sun 3s
- under 4.1.1U1, but apparently not 4.1.1. If you have such a machine,
- use -Bstatic.)
-
- Version 2.5 fixed the following bugs:
-- Removed an explicit call to exit(1)
-- Fixed calls to GC_printf and GC_err_printf, so the correct number of
- arguments are always supplied. The OS/2 C compiler gets confused if
- the number of actuals and the number of formals differ. (ANSI C
- doesn't require this to work. The ANSI sanctioned way of doing things
- causes too many compatibility problems.)
-
- Version 3.0 added generational/incremental collection and stubborn
- objects.
-
- Version 3.1 added the following features:
-- A workaround for a SunOS 4.X SPARC C compiler
- misfeature that caused problems when the collector was turned into
- a dynamic library.
-- A fix for a bug in GC_base that could result in a memory fault.
-- A fix for a performance bug (and several other misfeatures) pointed
- out by Dave Detlefs and Al Dosser.
-- Use of dirty bit information for static data under Solaris 2.X.
-- DEC Alpha/OSF1 support (thanks to Al Dosser).
-- Incremental collection on more platforms.
-- A more refined heap expansion policy. Less space usage by default.
-- Various minor enhancements to reduce space usage, and to reduce
- the amount of memory scanned by the collector.
-- Uncollectable allocation without per object overhead.
-- More conscientious handling of out-of-memory conditions.
-- Fixed a bug in debugging stubborn allocation.
-- Fixed a bug that resulted in occasional erroneous reporting of smashed
- objects with debugging allocation.
-- Fixed bogus leak reports of size 4096 blocks with FIND_LEAK.
-
- Version 3.2 fixed a serious and not entirely repeatable bug in
- the incremental collector. It appeared only when dirty bit info
- on the roots was available, which is normally only under Solaris.
- It also added GC_general_register_disappearing_link, and some
- testing code. Interface.c disappeared.
-
- Version 3.3 fixes several bugs and adds new ports:
-- PCR-specific bugs.
-- Missing locking in GC_free, redundant FASTUNLOCK
- in GC_malloc_stubborn, and 2 bugs in
- GC_unregister_disappearing_link.
- All of the above were pointed out by Neil Sharman
- (neil@cs.mu.oz.au).
-- Common symbols allocated by the SunOS4.X dynamic loader
- were not included in the root set.
-- Bug in GC_finalize (reported by Brian Beuning and Al Dosser)
-- Merged Amiga port from Jesper Peterson (untested)
-- Merged NeXT port from Thomas Funke (significantly
- modified and untested)
-
- Version 3.4:
-- Fixed a performance bug in GC_realloc.
-- Updated the amiga port.
-- Added NetBSD and 386BSD ports.
-- Added cord library.
-- Added trivial performance enhancement for
- ALL_INTERIOR_POINTERS. (Don't scan last word.)
-
- Version 3.5
-- Minor collections now mark from roots only once, if that
- doesn't cause an excessive pause.
-- The stack clearing heuristic was refined to prevent anomalies
- with very heavily recursive programs and sparse stacks.
-- Fixed a bug that prevented mark stack growth in some cases.
- GC_objects_are_marked should be set to TRUE after a call
- to GC_push_roots and as part of GC_push_marked, since
- both can now set mark bits. I think this is only a performance
- bug, but I wouldn't bet on it. It's certainly very hard to argue
- that the old version was correct.
-- Fixed an incremental collection bug that prevented it from
- working at all when HBLKSIZE != getpagesize()
-- Changed dynamic_loading.c to include gc_priv.h before testing
- DYNAMIC_LOADING. SunOS dynamic library scanning
- must have been broken in 3.4.
-- Object size rounding now adapts to program behavior.
-- Added a workaround (provided by Manuel Serrano and
- colleagues) to a long-standing SunOS 4.X (and 3.X?) ld bug
- that I had incorrectly assumed to have been squished.
- The collector was broken if the text segment size was within
- 32 bytes of a multiple of 8K bytes, and if the beginning of
- the data segment contained interesting roots. The workaround
- assumes a demand-loadable executable. The original may have
- have "worked" in some other cases.
-- Added dynamic library support under IRIX5.
-- Added support for EMX under OS/2 (thanks to Ari Huttunen).
-
-Version 3.6:
-- fixed a bug in the mark stack growth code that was introduced
- in 3.4.
-- fixed Makefile to work around DEC AXP compiler tail recursion
- bug.
-
-Version 3.7:
-- Added a workaround for an HP/UX compiler bug.
-- Fixed another stack clearing performance bug. Reworked
- that code once more.
-
-Version 4.0:
-- Added support for Solaris threads (which was possible
- only by reimplementing some fraction of Solaris threads,
- since Sun doesn't currently make the thread debugging
- interface available).
-- Added non-threads win32 and win32S support.
-- (Grudgingly, with suitable muttering of obscenities) renamed
- files so that the collector distribution could live on a FAT
- file system. Files that are guaranteed to be useless on
- a PC still have long names. Gc_inline.h and gc_private.h
- still exist, but now just include gc_inl.h and gc_priv.h.
-- Fixed a really obscure bug in finalization that could cause
- undetected mark stack overflows. (I would be surprised if
- any real code ever tickled this one.)
-- Changed finalization code to dynamically resize the hash
- tables it maintains. (This probably does not matter for well-
- -written code. It no doubt does for C++ code that overuses
- destructors.)
-- Added typed allocation primitives. Rewrote the marker to
- accommodate them with more reasonable efficiency. This
- change should also speed up marking for GC_malloc allocated
- objects a little. See gc_typed.h for new primitives.
-- Improved debugging facilities slightly. Allocation time
- stack traces are now kept by default on SPARC/SUNOS4.
- (Thanks to Scott Schwartz.)
-- Added better support for small heap applications.
-- Significantly extended cord package. Fixed a bug in the
- implementation of lazily read files. Printf and friends now
- have cord variants. Cord traversals are a bit faster.
-- Made ALL_INTERIOR_POINTERS recognition the default.
-- Fixed de so that it can run in constant space, independent
- of file size. Added simple string searching to cords and de.
-- Added the Hull-Ellis C++ interface.
-- Added dynamic library support for OSF/1.
- (Thanks to Al Dosser and Tim Bingham at DEC.)
-- Changed argument to GC_expand_hp to be expressed
- in units of bytes instead of heap blocks. (Necessary
- since the heap block size now varies depending on
- configuration. The old version was never very clean.)
-- Added GC_get_heap_size(). The previous "equivalent"
- was broken.
-- Restructured the Makefile a bit.
-
-Since version 4.0:
-- Changed finalization implementation to guarantee that
- finalization procedures are called outside of the allocation
- lock, making direct use of the interface a little less dangerous.
- MAY BREAK EXISTING CLIENTS that assume finalizers
- are protected by a lock. Since there seem to be few multithreaded
- clients that use finalization, this is hopefully not much of
- a problem.
-- Fixed a gross bug in CORD_prev.
-- Fixed a bug in blacklst.c that could result in unbounded
- heap growth during startup on machines that do not clear
- memory obtained from the OS (e.g. win32S).
-- Ported de editor to win32/win32S. (This is now the only
- version with a mouse-sensitive UI.)
-- Added GC_malloc_ignore_off_page to allocate large arrays
- in the presence of ALL_INTERIOR_POINTERS.
-- Changed GC_call_with_alloc_lock to not disable signals in
- the single-threaded case.
-- Reduced retry count in GC_collect_or_expand for garbage
- collecting when out of memory.
-- Made uncollectable allocations bypass black-listing, as they
- should.
-- Fixed a bug in typed_test in test.c that could cause (legitimate)
- GC crashes.
-- Fixed some potential synchronization problems in finalize.c
-- Fixed a real locking problem in typd_mlc.c.
-- Worked around an AIX 3.2 compiler feature that results in
- out of bounds memory references.
-- Partially worked around an IRIX5.2 beta problem (which may
- or may not persist to the final release).
-- Fixed a bug in the heap integrity checking code that could
- result in explicitly deallocated objects being identified as
- smashed. Fixed a bug in the dbg_mlc stack saving code
- that caused old argument pointers to be considered live.
-- Fixed a bug in CORD_ncmp (and hence CORD_str).
-- Repaired the OS2 port, which had suffered from bit rot
- in 4.0. Worked around what appears to be CSet/2 V1.0
- optimizer bug.
-- Fixed a Makefile bug for target "c++".
-
-Since version 4.1:
-- Multiple bug fixes/workarounds in the Solaris threads version.
- (It occasionally failed to locate some register contents for
- marking. It also turns out that thr_suspend and friends are
- unreliable in Solaris 2.3. Dirty bit reads appear
- to be unreliable under some weird
- circumstances. My stack marking code
- contained a serious performance bug. The new code is
- extremely defensive, and has not failed in several cpu
- hours of testing. But no guarantees ...)
-- Added MacOS support (thanks to Patrick Beard.)
-- Fixed several syntactic bugs in gc_c++.h and friends. (These
- didn't bother g++, but did bother most other compilers.)
- Fixed gc_c++.h finalization interface. (It didn't.)
-- 64 bit alignment for allocated objects was not guaranteed in a
- few cases in which it should have been.
-- Added GC_malloc_atomic_ignore_off_page.
-- Added GC_collect_a_little.
-- Added some prototypes to gc.h.
-- Some other minor bug fixes (notably in Makefile).
-- Fixed OS/2 / EMX port (thanks to Ari Huttunen).
-- Fixed AmigaDOS port. (thanks to Michel Schinz).
-- Fixed the DATASTART definition under Solaris. There
- was a 1 in 16K chance of the collector missing the first
- 64K of static data (and thus crashing).
-- Fixed some blatant anachronisms in the README file.
-- Fixed PCR-Makefile for upcoming PPCR release.
-
-Since version 4.2:
-- Fixed SPARC alignment problem with GC_DEBUG.
-- Fixed Solaris threads /proc workaround. The real
- problem was an interaction with mprotect.
-- Incorporated fix from Patrick Beard for gc_c++.h (now gc_cpp.h).
-- Slightly improved allocator space utilization by
- fixing the GC_size_map mechanism.
-- Integrated some Sony News and MIPS RISCos 4.51
- patches. (Thanks to Nobuyuki Hikichi of
- Software Research Associates, Inc. Japan)
-- Fixed HP_PA alignment problem. (Thanks to
- xjam@cork.cs.berkeley.edu.)
-- Added GC_same_obj and friends. Changed GC_base
- to return 0 for pointers past the end of large objects.
- Improved GC_base performance with ALL_INTERIOR_POINTERS
- on machines with a slow integer mod operation.
- Added GC_PTR_ADD, GC_PTR_STORE, etc. to prepare
- for preprocessor.
-- changed the default on most UNIX machines to be that
- signals are not disabled during critical GC operations.
- This is still ANSI-conforming, though somewhat dangerous
- in the presence of signal handlers. But the performance
- cost of the alternative is sometimes problematic.
- Can be changed back with a minor Makefile edit.
-- renamed IS_STRING in gc.h, to CORD_IS_STRING, thus
- following my own naming convention. Added the function
- CORD_to_const_char_star.
-- Fixed a gross bug in GC_finalize. Symptom: occasional
- address faults in that function. (Thanks to Anselm
- Baird-Smith (Anselm.BairdSmith@inria.fr)
-- Added port to ICL DRS6000 running DRS/NX. Restructured
- things a bit to factor out common code, and remove obsolete
- code. Collector should now run under SUNOS5 with either
- mprotect or /proc dirty bits. (Thanks to Douglas Steel
- (doug@wg.icl.co.uk)).
-- More bug fixes and workarounds for Solaris 2.X. (These were
- mostly related to putting the collector in a dynamic library,
- which didn't really work before. Also SOLARIS_THREADS
- didn't interact well with dl_open.) Thanks to btlewis@eng.sun.com.
-- Fixed a serious performance bug on the DEC Alpha. The text
- segment was getting registered as part of the root set.
- (Amazingly, the result was still fast enough that the bug
- was not conspicuous.) The fix works on OSF/1, version 1.3.
- Hopefully it also works on other versions of OSF/1 ...
-- Fixed a bug in GC_clear_roots.
-- Fixed a bug in GC_generic_malloc_words_small that broke
- gc_inl.h. (Reported by Antoine de Maricourt. I broke it
- in trying to tweak the Mac port.)
-- Fixed some problems with cord/de under Linux.
-- Fixed some cord problems, notably with CORD_riter4.
-- Added DG/UX port.
- Thanks to Ben A. Mesander (ben@piglet.cr.usgs.gov)
-- Added finalization registration routines with weaker ordering
- constraints. (This is necessary for C++ finalization with
- multiple inheritance, since the compiler often adds self-cycles.)
-- Filled the holes in the SCO port. (Thanks to Michael Arnoldus
- <chime@proinf.dk>.)
-- John Ellis' additions to the C++ support: From John:
-
-* I completely rewrote the documentation in the interface gc_c++.h
-(later renamed gc_cpp.h). I've tried to make it both clearer and more
-precise.
-
-* The definition of accessibility now ignores pointers from an
-finalizable object (an object with a clean-up function) to itself.
-This allows objects with virtual base classes to be finalizable by the
-collector. Compilers typically implement virtual base classes using
-pointers from an object to itself, which under the old definition of
-accessibility prevented objects with virtual base classes from ever
-being collected or finalized.
-
-* gc_cleanup now includes gc as a virtual base. This was enabled by
-the change in the definition of accessibility.
-
-* I added support for operator new[]. Since most (all?) compilers
-don't yet support operator new[], it is conditionalized on
--DOPERATOR_NEW_ARRAY. The code is untested, but its trivial and looks
-correct.
-
-* The test program test_gc_c++ (later renamed test_cpp.cc)
-tries to test for the C++-specific functionality not tested by the
-other programs.
-- Added <unistd.h> include to misc.c. (Needed for ppcr.)
-- Added PowerMac port. (Thanks to Patrick Beard again.)
-- Fixed "srcdir"-related Makefile problems. Changed things so
- that all externally visible include files always appear in the
- include subdirectory of the source. Made gc.h directly
- includable from C++ code. (These were at Per
- Bothner's suggestion.)
-- Changed Intel code to also mark from ebp (Kevin Warne's
- suggestion).
-- Renamed C++ related files so they could live in a FAT
- file system. (Charles Fiterman's suggestion.)
-- Changed Windows NT Makefile to include C++ support in
- gc.lib. Added C++ test as Makefile target.
-
-Since version 4.3:
- - ASM_CLEAR_CODE was erroneously defined for HP
- PA machines, resulting in a compile error.
- - Fixed OS/2 Makefile to create a library. (Thanks to
- Mark Boulter (mboulter@vnet.ibm.com)).
- - Gc_cleanup objects didn't work if they were created on
- the stack. Fixed.
- - One copy of Gc_cpp.h in the distribution was out of
- synch, and failed to document some known compiler
- problems with explicit destructor invocation. Partially
- fixed. There are probably other compilers on which
- gc_cleanup is miscompiled.
- - Fixed Makefile to pass C compiler flags to C++ compiler.
- - Added Mac fixes.
- - Fixed os_dep.c to work around what appears to be
- a new and different VirtualQuery bug under newer
- versions of win32S.
- - GC_non_gc_bytes was not correctly maintained by
- GC_free. Fixed. Thanks to James Clark (jjc@jclark.com).
- - Added GC_set_max_heap_size.
- - Changed allocation code to ignore blacklisting if it is preventing
- use of a very large block of memory. This has the advantage
- that naive code allocating very large objects is much more
- likely to work. The downside is you might no
- longer find out that such code should really use
- GC_malloc_ignore_off_page.
- - Changed GC_printf under win32 to close and reopen the file
- between calls. FAT file systems otherwise make the log file
- useless for debugging.
- - Added GC_try_to_collect and GC_get_bytes_since_gc. These
- allow starting an abortable collection during idle times.
- This facility does not require special OS support. (Thanks to
- Michael Spertus of Geodesic Systems for suggesting this. It was
- actually an easy addition. Kumar Srikantan previously added a similar
- facility to a now ancient version of the collector. At the time
- this was much harder, and the result was less convincing.)
- - Added some support for the Borland development environment. (Thanks
- to John Ellis and Michael Spertus.)
- - Removed a misfeature from checksums.c that caused unexpected
- heap growth. (Thanks to Scott Schwartz.)
- - Changed finalize.c to call WARN if it encounters a finalization cycle.
- WARN is defined in gc_priv.h to write a message, usually to stdout.
- In many environments, this may be inappropriate.
- - Renamed NO_PARAMS in gc.h to GC_NO_PARAMS, thus adhering to my own
- naming convention.
- - Added GC_set_warn_proc to intercept warnings.
- - Fixed Amiga port. (Thanks to Michel Schinz (schinz@alphanet.ch).)
- - Fixed a bug in mark.c that could result in an access to unmapped
- memory from GC_mark_from_mark_stack on machines with unaligned
- pointers.
- - Fixed a win32 specific performance bug that could result in scanning of
- objects allocated with the system malloc.
- - Added REDIRECT_MALLOC.
-
-Since version 4.4:
- - Fixed many minor and one major README bugs. (Thanks to Franklin Chen
- (chen@adi.com) for pointing out many of them.)
- - Fixed ALPHA/OSF/1 dynamic library support. (Thanks to Jonathan Bachrach
- (jonathan@harlequin.com)).
- - Added incremental GC support (MPROTECT_VDB) for Linux (with some
- help from Bruno Haible).
- - Altered SPARC recognition tests in gc.h and config.h (mostly as
- suggested by Fergus Henderson).
- - Added basic incremental GC support for win32, as implemented by
- Windows NT and Windows 95. GC_enable_incremental is a noop
- under win32s, which doesn't implement enough of the VM interface.
- - Added -DLARGE_CONFIG.
- - Fixed GC_..._ignore_off_page to also function without
- -DALL_INTERIOR_POINTERS.
- - (Hopefully) fixed RS/6000 port. (Only the test was broken.)
- - Fixed a performance bug in the nonincremental collector running
- on machines supporting incremental collection with MPROTECT_VDB
- (e.g. SunOS 4, DEC AXP). This turned into a correctness bug under
- win32s with win32 incremental collection. (Not all memory protection
- was disabled.)
- - Fixed some ppcr related bit rot.
- - Caused dynamic libraries to be unregistered before reregistering.
- The old way turned out to be a performance bug on some machines.
- - GC_root_size was not properly maintained under MSWIN32.
- - Added -DNO_DEBUGGING and GC_dump.
- - Fixed a couple of bugs arising with SOLARIS_THREADS +
- REDIRECT_MALLOC.
- - Added NetBSD/M68K port. (Thanks to Peter Seebach
- <seebs@taniemarie.solon.com>.)
- - Fixed a serious realloc bug. For certain object sizes, the collector
- wouldn't scan the expanded part of the object. (Thanks to Clay Spence
- (cds@peanut.sarnoff.com) for noticing the problem, and helping me to
- track it down.)
-
-Since version 4.5:
- - Added Linux ELF support. (Thanks to Arrigo Triulzi <arrigo@ic.ac.uk>.)
- - GC_base crashed if it was called before any other GC_ routines.
- This could happen if a gc_cleanup object was allocated outside the heap
- before any heap allocation.
- - The heap expansion heuristic was not stable if all objects had finalization
- enabled. Fixed finalize.c to count memory in finalization queue and
- avoid explicit deallocation. Changed alloc.c to also consider this count.
- (This is still not recommended. It's expensive if nothing else.) Thanks
- to John Ellis for pointing this out.
- - GC_malloc_uncollectable(0) was broken. Thanks to Phong Vo for pointing
- this out.
- - The collector didn't compile under Linux 1.3.X. (Thanks to Fred Gilham for
- pointing this out.) The current workaround is ugly, but expected to be
- temporary.
- - Fixed a formatting problem for SPARC stack traces.
- - Fixed some '=='s in os_dep.c that should have been assignments.
- Fortunately these were in code that should never be executed anyway.
- (Thanks to Fergus Henderson.)
- - Fixed the heap block allocator to only drop blacklisted blocks in small
- chunks. Made BL_LIMIT self adjusting. (Both of these were in response
- to heap growth observed by Paul Graham.)
- - Fixed the Metrowerks/68K Mac code to also mark from a6. (Thanks
- to Patrick Beard.)
- - Significantly updated README.debugging.
- - Fixed some problems with longjmps out of signal handlers, especially under
- Solaris. Added a workaround for the fact that siglongjmp doesn't appear to
- do the right thing with -lthread under Solaris.
- - Added MSDOS/djgpp port. (Thanks to Mitch Harris (maharri@uiuc.edu).)
- - Added "make reserved_namespace" and "make user_namespace". The
- first renames ALL "GC_xxx" identifiers as "_GC_xxx". The second is the
- inverse transformation. Note that doing this is guaranteed to break all
- clients written for the other names.
- - descriptor field for kind NORMAL in GC_obj_kinds with ADD_BYTE_AT_END
- defined should be -ALIGNMENT not WORDS_TO_BYTES(-1). This is
- a serious bug on machines with pointer alignment of less than a word.
- - GC_ignore_self_finalize_mark_proc didn't handle pointers to very near the
- end of the object correctly. Caused failures of the C++ test on a DEC Alpha
- with g++.
- - gc_inl.h still had problems. Partially fixed. Added warnings at the
- beginning to hopefully specify the remaining dangers.
- - Added DATAEND definition to config.h.
- - Fixed some of the .h file organization. Fixed "make floppy".
-
-Since version 4.6:
- - Fixed some compilation problems with -DCHECKSUMS (thanks to Ian Searle)
- - Updated some Mac specific files to synchronize with Patrick Beard.
- - Fixed a serious bug for machines with non-word-aligned pointers.
- (Thanks to Patrick Beard for pointing out the problem. The collector
- should fail almost any conceivable test immediately on such machines.)
-
-Since version 4.7:
- - Changed a "comment" in a MacOS specific part of mach-dep.c that caused
- gcc to fail on other platforms.
-
-Since version 4.8
- - More README.debugging fixes.
- - Objects ready for finalization, but not finalized in the same GC
- cycle, could be prematurely collected. This occasionally happened
- in test_cpp.
- - Too little memory was obtained from the system for very large
- objects. That could cause a heap explosion if these objects were
- not contiguous (e.g. under PCR), and too much of them was blacklisted.
- - Due to an improper initialization, the collector was too hesitant to
- allocate blacklisted objects immediately after system startup.
- - Moved GC_arrays from the data into the bss segment by not explicitly
- initializing it to zero. This significantly
- reduces the size of executables, and probably avoids some disk accesses
- on program startup. It's conceivable that it might break a port that I
- didn't test.
- - Fixed EMX_MAKEFILE to reflect the gc_c++.h to gc_cpp.h renaming which
- occurred a while ago.
-
-Since 4.9:
- - Fixed a typo around a call to GC_collect_or_expand in alloc.c. It broke
- handling of out of memory. (Thanks to Patrick Beard for noticing.)
-
-Since 4.10:
- - Rationalized (hopefully) GC_try_to_collect in an incremental collection
- environment. It appeared to not handle a call while a collection was in
- progress, and was otherwise too conservative.
- - Merged GC_reclaim_or_delete_all into GC_reclaim_all to get rid of some
- code.
- - Added Patrick Beard's Mac fixes, with substantial completely untested
- modifications.
- - Fixed the MPROTECT_VDB code to deal with large pages and imprecise
- fault addresses (as on an UltraSPARC running Solaris 2.5). Note that this
- was not a problem in the default configuration, which uses PROC_VDB.
- - The DEC Alpha assembly code needed to restore $gp between calls.
- Thanks to Fergus Henderson for tracking this down and supplying a
- patch.
- - The write command for "de" was completely broken for large files.
- I used the easiest portable fix, which involved changing the semantics
- so that f.new is written instead of overwriting f. That's safer anyway.
- - Added README.solaris2 with a discussion of the possible problems of
- mixing the collector's sbrk allocation with malloc/realloc.
- - Changed the data segment starting address for SGI machines. The
- old code failed under IRIX6.
- - Required double word alignment for MIPS.
- - Various minor fixes to remove warnings.
- - Attempted to fix some Solaris threads problems reported by Zhiying Chen.
- In particular, the collector could try to fork a thread with the
- world stopped as part of GC_thr_init. It also failed to deal with
- the case in which the original thread terminated before the whole
- process did.
- - Added -DNO_EXECUTE_PERMISSION. This has a major performance impact
- on the incremental collector under Irix, and perhaps under other
- operating systems.
- - Added some code to support allocating the heap with mmap. This may
- be preferable under some circumstances.
- - Integrated dynamic library support for HP.
- (Thanks to Knut Tvedten <knuttv@ifi.uio.no>.)
- - Integrated James Clark's win32 threads support, and made a number
- of changes to it, many of which were suggested by Pontus Rydin.
- This is still not 100% solid.
- - Integrated Alistair Crooks' support for UTS4 running on an Amdahl
- 370-class machine.
- - Fixed a serious bug in explicitly typed allocation. Objects requiring
- large descriptors where handled in a way that usually resulted in
- a segmentation fault in the marker. (Thanks to Jeremy Fitzhardinge
- for helping to track this down.)
- - Added partial support for GNU win32 development. (Thanks to Fergus
- Henderson.)
- - Added optional support for Java-style finalization semantics. (Thanks
- to Patrick Bridges.) This is recommended only for Java implementations.
- - GC_malloc_uncollectable faulted instead of returning 0 when out of
- memory. (Thanks to dan@math.uiuc.edu for noticing.)
- - Calls to GC_base before the collector was initialized failed on a
- DEC Alpha. (Thanks to Matthew Flatt.)
- - Added base pointer checking to GC_REGISTER_FINALIZER in debugging
- mode, at the suggestion of Jeremy Fitzhardinge.
- - GC_debug_realloc failed for uncollectable objects. (Thanks to
- Jeremy Fitzhardinge.)
- - Explicitly typed allocation could crash if it ran out of memory.
- (Thanks to Jeremy Fitzhardinge.)
- - Added minimal support for a DEC Alpha running Linux.
- - Fixed a problem with allocation of objects whose size overflowed
- ptrdiff_t. (This now fails unconditionally, as it should.)
- - Added the beginning of Irix pthread support.
- - Integrated Xiaokun Zhu's fixes for djgpp 2.01.
- - Added SGI-style STL allocator support (gc_alloc.h).
- - Fixed a serious bug in README.solaris2. Multithreaded programs must include
- gc.h with SOLARIS_THREADS defined.
- - Changed GC_free so it actually deallocates uncollectable objects.
- (Thanks to Peter Chubb for pointing out the problem.)
- - Added Linux ELF support for dynamic libararies. (Thanks again to
- Patrick Bridges.)
- - Changed the Borland cc configuration so that the assembler is not
- required.
- - Fixed a bug in the C++ test that caused it to fail in 64-bit
- environments.
-
-Since 4.11:
- - Fixed ElfW definition in dyn_load.c. (Thanks to Fergus Henderson.)
- This prevented the dynamic library support from compiling on some
- older ELF Linux systems.
- - Fixed UTS4 port (which I apparently mangled during the integration)
- (Thanks to again to Alistair Crooks.)
- - "Make C++" failed on Suns with SC4.0, due to a problem with "bool".
- Fixed in gc_priv.h.
- - Added more pieces for GNU win32. (Thanks to Timothy N. Newsham.)
- The current state of things should suffice for at least some
- applications.
- - Changed the out of memory retry count handling as suggested by
- Kenjiro Taura. (This matters only if GC_max_retries > 0, which
- is no longer the default.)
- - If a /proc read failed repeatedly, GC_written_pages was not updated
- correctly. (Thanks to Peter Chubb for diagnosing this.)
- - Under unlikely circumstances, the allocator could infinite loop in
- an out of memory situation. (Thanks again to Kenjiro Taura for
- identifying the problem and supplying a fix.)
- - Fixed a syntactic error in the DJGPP code. (Thanks to Fergus
- Henderson for finding this by inspection.) Also fixed a test program
- problem with DJGPP (Thanks to Peter Monks.)
- - Atomic uncollectable objects were not treated correctly by the
- incremental collector. This resulted in weird log statistics and
- occasional performance problems. (Thanks to Peter Chubb for pointing
- this out.)
- - Fixed some problems resulting from compilers that dont define
- __STDC__. In this case void * and char * were used inconsistently
- in some cases. (Void * should not have been used at all. If
- you have an ANSI superset compiler that does not define __STDC__,
- please compile with -D__STDC__=0. Thanks to Manuel Serrano and others
- for pointing out the problem.)
- - Fixed a compilation problem on Irix with -n32 and -DIRIX_THREADS.
- Also fixed some other IRIX_THREADS problems which may or may not have
- had observable symptoms.
- - Fixed an HP PA compilation problem in dyn_load.c. (Thanks to
- Philippe Queinnec.)
- - SEGV fault handlers sometimes did not get reset correctly. (Thanks
- to David Pickens.)
- - Added a fix for SOLARIS_THREADS on Intel. (Thanks again to David
- Pickens.) This probably needs more work to become functional.
- - Fixed struct sigcontext_struct in os_dep.c for compilation under
- Linux 2.1.X. (Thanks to Fergus Henderson.)
- - Changed the DJGPP STACKBOTTOM and DATASTART values to those suggested
- by Kristian Kristensen. These may still not be right, but it is
- it is likely to work more often than what was there before. They may
- even be exactly right.
- - Added a #include <string.h> to test_cpp.cc. This appears to help
- with HP/UX and gcc. (Thanks to assar@sics.se.)
- - Version 4.11 failed to run in incremental mode on recent 64-bit Irix
- kernels. This was a problem related to page unaligned heap segments.
- Changed the code to page align heap sections on all platforms.
- (I had mistakenly identified this as a kernel problem earlier.
- It was not.)
- - Version 4.11 did not make allocated storage executable, except on
- one or two platforms, due to a bug in a #if test. (Thanks to Dave
- Grove for pointing this out.)
- - Added sparc_sunos4_mach_dep.s to support Sun's compilers under SunOS4.
- - Added GC_exclude_static_roots.
- - Fixed the object size mapping algorithm. This shouldn't matter,
- but the old code was ugly.
- - Heap checking code could die if one of the allocated objects was
- larger than its base address. (Unsigned underflow problem. Thanks
- to Clay Spence for isolating the problem.)
- - Added RS6000 (AIX) dynamic library support and fixed STACK_BOTTOM.
- (Thanks to Fred Stearns.)
- - Added Fergus Henderson's patches for improved robustness with large
- heaps and lots of blacklisting.
- - Added Peter Chubb's changes to support Solaris Pthreads, to support
- MMAP allocation in Solaris, to allow Solaris to find dynamic libraries
- through /proc, to add malloc_typed_ignore_off_page, and a few other
- minor features and bug fixes.
- - The Solaris 2 port should not use sbrk. I received confirmation from
- Sun that the use of sbrk and malloc in the same program is not
- supported. The collector now defines USE_MMAP by default on Solaris.
- - Replaced the djgpp makefile with Gary Leavens' version.
- - Fixed MSWIN32 detection test.
- - Added Fergus Henderson's patches to allow putting the collector into
- a DLL under GNU win32.
- - Added Ivan V. Demakov's port to Watcom C on X86.
- - Added Ian Piumarta's Linux/PowerPC port.
- - On Brian Burton's suggestion added PointerFreeGC to the placement
- options in gc_cpp.h. This is of course unsafe, and may be controversial.
- On the other hand, it seems to be needed often enough that it's worth
- adding as a standard facility.
-
-Since 4.12:
- - Fixed a crucial bug in the Watcom port. There was a redundant decl
- of GC_push_one in gc_priv.h.
- - Added FINALIZE_ON_DEMAND.
- - Fixed some pre-ANSI cc problems in test.c.
- - Removed getpagesize() use for Solaris. It seems to be missing in one
- or two versions.
- - Fixed bool handling for SPARCCompiler version 4.2.
- - Fixed some files in include that had gotten unlinked from the main
- copy.
- - Some RS/6000 fixes (missing casts). Thanks to Toralf Foerster.
- - Fixed several problems in GC_debug_realloc, affecting mostly the
- FIND_LEAK case.
- - GC_exclude_static_roots contained a buggy unsigned comparison to
- terminate a loop. (Thanks to Wilson Ho.)
- - CORD_str failed if the substring occurred at the last possible position.
- (Only affects cord users.)
- - Fixed Linux code to deal with RedHat 5.0 and integrated Peter Bigot's
- os_dep.c code for dealing with various Linux versions.
- - Added workaround for Irix pthreads sigaction bug and possible signal
- misdirection problems.
-Since alpha1:
- - Changed RS6000 STACKBOTTOM.
- - Integrated Patrick Beard's Mac changes.
- - Alpha1 didn't compile on Irix m.n, m < 6.
- - Replaced Makefile.dj with a new one from Gary Leavens.
- - Added Andrew Stitcher's changes to support SCO OpenServer.
- - Added PRINT_BLACK_LIST, to allow debugging of high densities of false
- pointers.
- - Added code to debug allocator to keep track of return address
- in GC_malloc caller, thus giving a bit more context.
- - Changed default behavior of large block allocator to more
- aggressively avoid fragmentation. This is likely to slow down the
- collector when it succeeds at reducing space cost.
- - Integrated Fergus Henderson's CYGWIN32 changes. They are untested,
- but needed for newer versions.
- - USE_MMAP had some serious bugs. This caused the collector to fail
- consistently on Solaris with -DSMALL_CONFIG.
- - Added Linux threads support, thanks largely to Fergus Henderson.
-Since alpha2:
- - Fixed more Linux threads problems.
- - Changed default GC_free_space_divisor to 3 with new large block allocation.
- (Thanks to Matthew Flatt for some measurements that suggest the old
- value sometimes favors space too much over time.)
- - More CYGWIN32 fixes.
- - Integrated Tyson-Dowd's Linux-M68K port.
- - Minor HP PA and DEC UNIX fixes from Fergus Henderson.
- - Integrated Christoffe Raffali's Linux-SPARC changes.
- - Allowed for one more GC fixup iteration after a full GC in incremental
- mode. Some quick measurements suggested that this significantly
- reduces pause times even with smaller GC_RATE values.
- - Moved some more GC data structures into GC_arrays. This decreases
- pause times and GC overhead, but makes debugging slightly less convenient.
- - Fixed namespace pollution problem ("excl_table").
- - Made GC_incremental a constant for -DSMALL_CONFIG, hopefully shrinking
- that slightly.
- - Added some win32 threads fixes.
- - Integrated Ivan Demakov and David Stes' Watcom fixes.
- - Various other minor fixes contributed by many people.
- - Renamed config.h to gcconfig.h, since config.h tends to be used for
- many other things.
- - Integrated Matthew Flatt's support for 68K MacOS "far globals".
- - Fixed up some of the dynamic library Makefile targets for consistency
- across platforms.
- - Fixed a USE_MMAP typo that caused out-of-memory handling to fail
- on Solaris.
- - Added code to test.c to test thread creation a bit more.
- - Integrated GC_win32_free_heap, as suggested by Ivan Demakov.
- - Fixed Solaris 2.7 stack base finding problem. (This may actually
- have been done in an earlier alpha release.)
-Since alpha3:
- - Fixed MSWIN32 recognition test, which interfered with cygwin.
- - Removed unnecessary gc_watcom.asm from distribution. Removed
- some obsolete README.win32 text.
- - Added Alpha Linux incremental GC support. (Thanks to Philipp Tomsich
- for code for retrieving the fault address in a signal handler.)
- Changed Linux signal handler context argument to be a pointer.
- - Took care of some new warnings generated by the 7.3 SGI compiler.
- - Integrated Phillip Musumeci's FreeBSD/ELF fixes.
- - -DIRIX_THREADS was broken with the -o32 ABI (typo in gc_priv.h>
-
-Since 4.13:
- - Fixed GC_print_source_ptr to not use a prototype.
- - generalized CYGWIN test.
- - gc::new did the wrong thing with PointerFreeGC placement.
- (Thanks to Rauli Ruohonen.)
- - In the ALL_INTERIOR_POINTERS (default) case, some callee-save register
- values could fail to be scanned if the register was saved and
- reused in a GC frame. This showed up in verbose mode with gctest
- compiled with an unreleased SGI compiler. I vaguely recall an old
- bug report that may have been related. The bug was probably quite old.
- (The problem was that the stack scanning could be deferred until
- after the relevant frame was overwritten, and the new save location
- might be outside the scanned area. Fixed by more eager stack scanning.)
- - PRINT_BLACK_LIST had some problems. A few source addresses were garbage.
- - Replaced Makefile.dj and added -I flags to cord make targets.
- (Thanks to Gary Leavens.)
- - GC_try_to_collect was broken with the nonincremental collector.
- - gc_cleanup destructors could pass the wrong address to
- GC_register_finalizer_ignore_self in the presence of multiple
- inheritance. (Thanks to Darrell Schiebel.)
- - Changed PowerPC Linux stack finding code.
-
-Since 4.14alpha1
- - -DSMALL_CONFIG did not work reliably with large (> 4K) pages.
- Recycling the mark stack during expansion could result in a size
- zero heap segment, which confused things. (This was probably also an
- issue with the normal config and huge pages.)
- - Did more work to make sure that callee-save registers were scanned
- completely, even with the setjmp-based code. Added USE_GENERIC_PUSH_REGS
- macro to facilitate testing on machines I have access to.
- - Added code to explicitly push register contents for win32 threads.
- This seems to be necessary. (Thanks to Pierre de Rop.)
-
-Since 4.14alpha2
- - changed STACKBOTTOM for DJGPP (Thanks to Salvador Eduardo Tropea).
-
-Since 4.14
- - Reworked large block allocator. Now uses multiple doubly linked free
- lists to approximate best fit.
- - Changed heap expansion heuristic. Entirely free blocks are no longer
- counted towards the heap size. This seems to have a major impact on
- heap size stability; the old version could expand the heap way too
- much in the presence of large block fragmentation.
- - added -DGC_ASSERTIONS and some simple assertions inside the collector.
- This is mainlyt for collector debugging.
- - added -DUSE_MUNMAP to allow the heap to shrink. Suupported on only
- a few UNIX-like platforms for now.
- - added GC_dump_regions() for debugging of fragmentation issues.
- - Changed PowerPC pointer alignment under Linux to 4. (This needs
- checking by someone who has one. The suggestions came to me via a
- rather circuitous path.)
- - Changed the Linux/Alpha port to walk the data segment backwards until
- it encounters a SIGSEGV. The old way to find the start of the data
- segment broke with a recent release.
- - cordxtra.c needed to call GC_REGISTER_FINALIZER instead of
- GC_register_finalizer, so that it would continue to work with GC_DEBUG.
- - allochblk sometimes cleared the wrong block for debugging purposes
- when it dropped blacklisted blocks. This could result in spurious
- error reports with GC_DEBUG.
- - added MACOS X Server support. (Thanks to Andrew Stone.)
- - Changed the Solaris threads code to ignore stack limits > 8 MB with
- a warning. Empirically, it is not safe to access arbitrary pages
- in such large stacks. And the dirty bit implementation does not
- guarantee that none of them will be accessed.
- - Integrated Martin Tauchmann's Amiga changes.
- - Integrated James Dominy's OpenBSD/SPARC port.
-
-Since 5.0alpha1
- - Fixed bugs introduced in alpha1 (OpenBSD & large block initialization).
- - Added -DKEEP_BACK_PTRS and backptr.h interface. (The implementation
- idea came from Al Demers.)
-
-Since 5.0alpha2
- - Added some highly incomplete code to support a copied young generation.
- Comments on nursery.h are appreciated.
- - Changed -DFIND_LEAK, -DJAVA_FINALIZATION, and -DFINALIZE_ON_DEMAND,
- so the same effect could be obtained with a runtime switch. This is
- a step towards standardizing on a single dynamic GC library.
- - Significantly changed the way leak detection is handled, as a consequence
- of the above.
-
-Since 5.0 alpha3
- - Added protection fault handling patch for Linux/M68K from Fergus
- Henderson and Roman Hodek.
- - Removed the tests for SGI_SOURCE in new_gc_alloc.h. This was causing that
- interface to fail on nonSGI platforms.
- - Changed the Linux stack finding code to use /proc, after changing it
- to use HEURISTIC1. (Thanks to David Mossberger for pointing out the
- /proc hook.)
- - Added HP/UX incremental GC support and HP/UX 11 thread support.
- Thread support is currently still flakey.
- - Added basic Linux/IA64 support.
- - Integrated Anthony Green's PicoJava support.
- - Integrated Scott Ananian's StrongARM/NetBSD support.
- - Fixed some fairly serious performance bugs in the incremental
- collector. These have probably been there essentially forever.
- (Mark bits were sometimes set before scanning dirty pages.
- The reclaim phase unnecessarily dirtied full small object pages.)
- - Changed the reclaim phase to ignore nearly full pages to avoid
- touching them.
- - Limited GC_black_list_spacing to roughly the heap growth increment.
- - Changed full collection triggering heuristic to decrease full GC
- frequency by default, but to explicitly trigger full GCs during
- heap growth. This doesn't always improve things, but on average it's
- probably a win.
- - GC_debug_free(0, ...) failed. Thanks to Fergus Henderson for the
- bug report and fix.
-
-Since 5.0 alpha4
- - GC_malloc_explicitly_typed and friends sometimes failed to
- initialize first word.
- - Added allocation routines and support in the marker for mark descriptors
- in a type structure referenced by the first word of an object. This was
- introduced to support gcj, but hopefully in a way that makes it
- generically useful.
- - Added GC_requested_heapsize, and inhibited collections in nonincremental
- mode if the actual used heap size is less than what was explicitly
- requested.
- - The Solaris pthreads version of GC_pthread_create didn't handle a NULL
- attribute pointer. Solaris thread support used the wrong default thread
- stack size. (Thanks to Melissa O'Neill for the patch.)
- - Changed PUSH_CONTENTS macro to no longer modify first parameter.
- This usually doesn't matter, but it was certainly an accident waiting
- to happen ...
- - Added GC_register_finalizer_no_order and friends to gc.h. They're
- needed by Java implementations.
- - Integrated a fix for a win32 deadlock resulting from clock() calling
- malloc. (Thanks to Chris Dodd.)
- - Integrated Hiroshi Kawashima's port to Linux/MIPS. This was designed
- for a handheld platform, and may or may not be sufficient for other
- machines.
- - Fixed a va_arg problem with the %c specifier in cordprnt.c. It appears
- that this was always broken, but recent versions of gcc are the first to
- report the (statically detectable) bug.
- - Added an attempt at a more general solution to dlopen races/deadlocks.
- GC_dlopen now temporarily disables collection. Still not ideal, but ...
- - Added -DUSE_I686_PREFETCH, -DUSE_3DNOW_PREFETCH, and support for IA64
- prefetch instructions. May improve performance measurably, but I'm not
- sure the code will run correctly on processors that don't support the
- instruction. Won't build except with very recent gcc.
- - Added caching for header lookups in the marker. This seems to result
- in a barely measurable performance gain. Added support for interleaved
- lookups of two pointers, but unconfigured that since the performance
- gain is currently near zero, and it adds to code size.
- - Changed Linux DATA_START definition to check both data_start and
- __data_start, since nothing else seems to be portable.
- - Added -DUSE_LD_WRAP to optionally take advantage of the GNU ld function
- wrapping mechanism. Probably currently useful only on Linux.
- - Moved some variables for the scratch allocator into GC_arrays, on
- Martin Hirzel's suggestion.
- - Fixed a win32 threads bug that caused the collector to not look for
- interior pointers from one of the thread stacks without
- ALL_INTERIOR_POINTERS. (Thanks to Jeff Sturm.)
- - Added Mingw32 support. (Thanks again to Jeff Sturm for the patch.)
- - Changed the alpha port to use the generic register scanning code instead
- of alpha_mach_dep.s. Alpha_mach_dep.s doesn't look for pointers in fp
- registers, but gcc sometimes spills pointers there. (Thanks to Manuel
- Serrano for helping me debug this by email.) Changed the IA64 code to
- do something similar for similar reasons.
-
-Since 5.0alpha6:
- - -DREDIRECT_MALLOC was broken in alpha6. Fixed.
- - Cleaned up gc_ccp.h slightly, thus also causing the HP C++ compiler to
- accept it.
- - Removed accidental reference to dbg_mlc.c, which caused dbg_mlc.o to be
- linked into every executable.
- - Added PREFETCH to bitmap marker. Changed it to use the header cache.
- - GC_push_marked sometimes pushed one object too many, resulting in a
- segmentation fault in GC_mark_from_mark_stack. This was probably an old
- bug. It finally showed up in gctest on win32.
- - Gc_priv.h erroneously #defined GC_incremental to be TRUE instead of FALSE
- when SMALL_CONFIG was defined. This was no doubt a major performance bug for
- the default win32 configuration.
- - Removed -DSMALL_CONFIG from NT_MAKEFILE. It seemed like an anchronism now
- that the average PC has 64MB or so.
- - Integrated Bryce McKinley's patches for linux threads and dynamic loading
- from the libgcj tree. Turned on dynamic loading support for Linux/PPC.
- - Changed the stack finding code to use environ on HP/UX. (Thanks
- to Gustavo Rodriguez-Rivera for the suggestion.) This should probably
- be done on other platforms, too. Since I can't test those, that'll
- wait until after 5.0.
-
-Since 5.0alpha7:
- - Fixed threadlibs.c for linux threads. -DUSE_LD_WRAP was broken and
- -ldl was omitted. Fixed Linux stack finding code to handle
- -DUSE_LD_WRAP correctly.
- - Added MSWIN32 exception handler around marker, so that the collector
- can recover from root segments that are unmapped during the collection.
- This caused occasional failures under Windows 98, and may also be
- an issue under Windows NT/2000.
-
-Since 5.0
- - Fixed a gc.h header bug which showed up under Irix. (Thanks to
- Dan Sullivan.)
- - Fixed a typo in GC_double_descr in typd_mlc.c not getting traced correctly.
- This probably could result in objects described by array descriptors not
- getting traced correctly. (Thanks to Ben Hutchings for pointing this out.)
- - The block nearly full tests in reclaim.c were not correct for 64 bit
- environments. This could result in unnecessary heap growth under unlikely
- conditions.
- - Removed use of CLEAR_DOUBLE from generic reclaim code, since odd sizes
- could occur.
-
-To do:
- - Integrate Linux/SPARC fixes.
- - Very large root set sizes (> 16 MB or so) could cause the collector
- to abort with an unexpected mark stack overflow. (Thanks again to
- Peter Chubb.) NOT YET FIXED. Workaround is to increase the initial
- size.
- - The SGI version of the collector marks from mmapped pages, even
- if they are not part of dynamic library static data areas. This
- causes performance problems with some SGI libraries that use mmap
- as a bitmap allocator. NOT YET FIXED. It may be possible to turn
- off DYNAMIC_LOADING in the collector as a workaround. It may also
- be possible to conditionally intercept mmap and use GC_exclude_static_roots.
- The real fix is to walk rld data structures, which looks possible.
- - Integrate MIT and DEC pthreads ports.
- - Incremental collector should handle large objects better. Currently,
- it looks like the whole object is treated as dirty if any part of it
- is.
- - Cord/cordprnt.c doesn't build on a few platforms (notably PowerPC), since
- we make some unwarranted assumptions about how varargs are handled. This
- currently makes the cord-aware versions of printf unusable on some platforms.
- Fixing this is unfortunately not trivial.
diff --git a/boehm-gc/README.Mac b/boehm-gc/README.Mac
deleted file mode 100644
index 04f468251a1..00000000000
--- a/boehm-gc/README.Mac
+++ /dev/null
@@ -1,385 +0,0 @@
-Patrick Beard's Notes for building GC v4.12 with CodeWarrior Pro 2:
-----------------------------------------------------------------------------
-The current build environment for the collector is CodeWarrior Pro 2.
-Projects for CodeWarrior Pro 2 (and for quite a few older versions)
-are distributed in the file Mac_projects.sit.hqx. The project file
-:Mac_projects:gc.prj builds static library versions of the collector.
-:Mac_projects:gctest.prj builds the GC test suite.
-
-Configuring the collector is still done by editing the files
-:Mac_files:MacOS_config.h and :Mac_files:MacOS_Test_config.h.
-
-Lars Farm's suggestions on building the collector:
-----------------------------------------------------------------------------
-Garbage Collection on MacOS - a manual 'MakeFile'
--------------------------------------------------
-
-Project files and IDE's are great on the Macintosh, but they do have
-problems when used as distribution media. This note tries to provide
-porting instructions in pure TEXT form to avoid those problems. A manual
-'makefile' if you like.
-
- GC version: 4.12a2
- Codewarrior: CWPro1
- date: 18 July 1997
-
-The notes may or may not apply to earlier or later versions of the
-GC/CWPro. Actually, they do apply to earlier versions of both except that
-until recently a project could only build one target so each target was a
-separate project. The notes will most likely apply to future versions too.
-Possibly with minor tweaks.
-
-This is just to record my experiences. These notes do not mean I now
-provide a supported port of the GC to MacOS. It works for me. If it works
-for you, great. If it doesn't, sorry, try again...;-) Still, if you find
-errors, please let me know.
-
- mailto: lars.farm@ite.mh.se
-
- address: Lars Farm
- Krönvägen 33b
- 856 44 Sundsvall
- Sweden
-
-Porting to MacOS is a bit more complex than it first seems. Which MacOS?
-68K/PowerPC? Which compiler? Each supports both 68K and PowerPC and offer a
-large number of (unique to each environment) compiler settings. Each
-combination of compiler/68K/PPC/settings require a unique combination of
-standard libraries. And the IDE's does not select them for you. They don't
-even check that the library is built with compatible setting and this is
-the major source of problems when porting the GC (and otherwise too).
-
-You will have to make choices when you configure the GC. I've made some
-choices here, but there are other combinations of settings and #defines
-that work too.
-
-As for target settings the major obstacles may be:
-- 68K Processor: check "4-byte Ints".
-- PPC Processor: uncheck "Store Static Data in TOC".
-
-What you need to do:
-===================
-
-1) Build the GC as a library
-2) Test that the library works with 'test.c'.
-3) Test that the C++ interface 'gc_cpp.cc/h' works with 'test_cpp.cc'.
-
-1) The Libraries:
-=================
-I made one project with four targets (68K/PPC tempmem or appheap). One target
-will suffice if you're able to decide which one you want. I wasn't...
-
-Codewarrior allows a large number of compiler/linker settings. I used these:
-
-Settings shared by all targets:
-------------------------------
-o Access Paths:
- - User Paths: the GC folder
- - System Paths: {Compiler}:Metrowerks Standard Library:
- {Compiler}:MacOS Support:Headers:
- {Compiler}:MacOS Support:MacHeaders:
-o C/C++ language:
- - inlining: normal
- - direct to SOM: off
- - enable/check: exceptions, RTTI, bool (and if you like pool strings)
-
-PowerPC target settings
------------------------
-o Target Settings:
- - name of target
- - MacOS PPC Linker
-o PPC Target
- - name of library
-o C/C++ language
- - prefix file as described below
-o PPC Processor
- - Struct Alignment: PowerPC
- - uncheck "Store Static Data in TOC" -- important!
- I don't think the others matter, I use full optimization and its ok
-o PPC Linker
- - Factory Settings (SYM file with full paths, faster linking, dead-strip
- static init, Main: __start)
-
-
-68K target settings
--------------------
-o Target Settings:
- - name of target
- - MacOS 68K Linker
-o 68K Target
- - name of library
- - A5 relative data
-o C/C++ language
- - prefix file as described below
-o 68K Processor
- - Code model: smart
- - Struct alignment: 68K
- - FP: SANE
- - enable 4-Byte Ints -- important!
- I don't think the others matter. I selected...
- - enable: 68020
- - enable: global register allocation
-o IR Optimizer
- - enable: Optimize Space, Optimize Speed
- I suppose the others would work too, but haven't tried...
-o 68K Linker
- - Factory Settings (New Style MacsBug,SYM file with full paths,
- A6 Frames, fast link, Merge compiler glue into segment 1,
- dead-strip static init)
-
-Prefix Files to configure the GC sources
-----------------------------------------
-The Codewarrior equivalent of commandline compilers -DNAME=X is to use
-prefix-files. A TEXT file that is automatically #included before the first byte
-of every source file. I used these:
-
----- ( cut here ) ---- gc_prefix_tempmem.h -- 68K and PPC -----
- #include "gc_prefix_common.h"
- #undef USE_TEMPORARY_MEMORY
- #define USE_TEMPORARY_MEMORY
----- ( cut here ) ---- gc_prefix_appmem.h -- 68K and PPC -----
- #include "gc_prefix_common.h"
- #undef USE_TEMPORARY_MEMORY
-// #define USE_TEMPORARY_MEMORY
-
----- ( cut here ) ---- gc_prefix_common.h --------------------
-// gc_prefix_common.h
-// ------------------
-// Codewarrior prefix file to configure the GC libraries
-//
-// prefix files are the Codewarrior equivalent of the
-// command line option -Dname=x frequently seen in makefiles
-
-#if !__MWERKS__
- #error only tried this with Codewarrior
-#endif
-
-#if macintosh
- #define MSL_USE_PRECOMPILED_HEADERS 0
- #include <ansi_prefix.mac.h>
- #ifndef __STDC__
- #define __STDC__ 0
- #endif
-
- // See list of #defines to configure the library in: 'MakeFile'
- // see also README
-
- #define SILENT // no collection messages. In case
- // of trouble you might want this off
- #define ALL_INTERIOR_POINTERS // follows interior pointers.
-//#define DONT_ADD_BYTE_AT_END // disables the padding if defined.
-//#define SMALL_CONFIG // whether to use a smaller heap.
- #define NO_SIGNALS // signals aren't real on the Macintosh.
- #define ATOMIC_UNCOLLECTABLE // GC_malloc_atomic_uncollectable()
-
- // define either or none as per personal preference
- // used in malloc.c
- #define REDIRECT_MALLOC GC_malloc
-//#define REDIRECT_MALLOC GC_malloc_uncollectable
- // if REDIRECT_MALLOC is #defined make sure that the GC library
- // is listed before the ANSI/ISO libs in the Codewarrior
- // 'Link order' panel
-//#define IGNORE_FREE
-
- // mac specific configs
-//#define USE_TEMPORARY_MEMORY // use Macintosh temporary memory.
-//#define SHARED_LIBRARY_BUILD // build for use in a shared library.
-
-#else
- // could build Win32 here too, or in the future
- // Rhapsody PPC-mach, Rhapsody PPC-MacOS,
- // Rhapsody Intel-mach, Rhapsody Intel-Win32,...
- // ... ugh this will get messy ...
-#endif
-
-// make sure ints are at least 32-bit
-// ( could be set to 16-bit by compiler settings (68K) )
-
-struct gc_private_assert_intsize_{ char x[ sizeof(int)>=4 ? 1 : 0 ]; };
-
-#if __powerc
- #if __option(toc_data)
- #error turn off "store static data in TOC" when using GC
- // ... or find a way to add TOC to the root set...(?)
- #endif
-#endif
----- ( cut here ) ---- end of gc_prefix_common.h -----------------
-
-Files to build the GC libraries:
---------------------------------
- allchblk.c
- alloc.c
- blacklst.c
- checksums.c
- dbg_mlc.c
- finalize.c
- headers.c
- mach_dep.c
- MacOS.c -- contains MacOS code
- malloc.c
- mallocx.c
- mark.c
- mark_rts.c
- misc.c
- new_hblk.c
- obj_map.c
- os_dep.c -- contains MacOS code
- ptr_chck.c
- reclaim.c
- stubborn.c
- typd_mlc.c
- gc++.cc -- this is 'gc_cpp.cc' with less 'inline' and
- -- throw std::bad_alloc when out of memory
- -- gc_cpp.cc works just fine too
-
-2) Test that the library works with 'test.c'.
-=============================================
-
-The test app is just an ordinary ANSI-C console app. Make sure settings
-match the library you're testing.
-
-Files
------
- test.c
- the GC library to test -- link order before ANSI libs
- suitable Mac+ANSI libraries
-
-prefix:
-------
----- ( cut here ) ---- gc_prefix_testlib.h -- all libs -----
-#define MSL_USE_PRECOMPILED_HEADERS 0
-#include <ansi_prefix.mac.h>
-#undef NDEBUG
-
-#define ALL_INTERIOR_POINTERS /* for GC_priv.h */
----- ( cut here ) ----
-
-3) Test that the C++ interface 'gc_cpp.cc/h' works with 'test_cpp.cc'.
-
-The test app is just an ordinary ANSI-C console app. Make sure settings match
-the library you're testing.
-
-Files
------
- test_cpp.cc
- the GC library to test -- link order before ANSI libs
- suitable Mac+ANSI libraries
-
-prefix:
-------
-same as for test.c
-
-For convenience I used one test-project with several targets so that all
-test apps are build at once. Two for each library to test: test.c and
-gc_app.cc. When I was satisfied that the libraries were ok. I put the
-libraries + gc.h + the c++ interface-file in a folder that I then put into
-the MSL hierarchy so that I don't have to alter access-paths in projects
-that use the GC.
-
-After that, just add the proper GC library to your project and the GC is in
-action! malloc will call GC_malloc and free GC_free, new/delete too. You
-don't have to call free or delete. You may have to be a bit cautious about
-delete if you're freeing other resources than RAM. See gc_cpp.h. You can
-also keep coding as always with delete/free. That works too. If you want,
-"include <gc.h> and tweak it's use a bit.
-
-Symantec SPM
-============
-It has been a while since I tried the GC in SPM, but I think that the above
-instructions should be sufficient to guide you through in SPM too. SPM
-needs to know where the global data is. Use the files 'datastart.c' and
-'dataend.c'. Put 'datastart.c' at the top of your project and 'dataend.c'
-at the bottom of your project so that all data is surrounded. This is not
-needed in Codewarrior because it provides intrinsic variables
-__datastart__, __data_end__ that wraps all globals.
-
-Source Changes (GC 4.12a2)
-==========================
-Very few. Just one tiny in the GC, not strictly needed.
-- MacOS.c line 131 in routine GC_MacFreeTemporaryMemory()
- change # if !defined(SHARED_LIBRARY_BUILD)
- to # if !defined(SILENT) && !defined(SHARED_LIBRARY_BUILD)
- To turn off a message when the application quits (actually, I faked
- this change by #defining SHARED_LIBRARY_BUILD in a statically linked
- library for more than a year without ill effects but perhaps this is
- better).
-
-- test_cpp.cc
- made the first lines of main() look like this:
- ------------
- int main( int argc, char* argv[] ) {
- #endif
- #if macintosh // MacOS
- char* argv_[] = {"test_cpp","10"}; // doesn't
- argv=argv_; // have a
- argc = sizeof(argv_)/sizeof(argv_[0]); // commandline
- #endif //
-
- int i, iters, n;
- # ifndef __GNUC__
- alloc dummy_to_fool_the_compiler_into_doing_things_it_currently_cant_handle;
- ------------
-
-- config.h [now gcconfig.h]
- __MWERKS__ does not have to mean MACOS. You can use Codewarrior to
- build a Win32 or BeOS library and soon a Rhapsody library. You may
- have to change that #if...
-
-
-
- It worked for me, hope it works for you.
-
- Lars Farm
- 18 July 1997
-----------------------------------------------------------------------------
-
-
-Patrick Beard's instructions (may be dated):
-
-v4.3 of the collector now runs under Symantec C++/THINK C v7.0.4, and
-Metrowerks C/C++ v4.5 both 68K and PowerPC. Project files are provided
-to build and test the collector under both development systems.
-
-Configuration
--------------
-
-To configure the collector, under both development systems, a prefix file
-is used to set preprocessor directives. This file is called "MacOS_config.h".
-Also to test the collector, "MacOS_Test_config.h" is provided.
-
-Testing
--------
-
-To test the collector (always a good idea), build one of the gctest projects,
-gctest.¹ (Symantec C++/THINK C), mw/gctest.68K.¹, or mw/gctest.PPC.¹. The
-test will ask you how many times to run; 1 should be sufficient.
-
-Building
---------
-
-For your convenience project files for the major Macintosh development
-systems are provided.
-
-For Symantec C++/THINK C, you must build the two projects gclib-1.¹ and
-gclib-2.¹. It has to be split up because the collector has more than 32k
-of static data and no library can have more than this in the Symantec
-environment. (Future versions will probably fix this.)
-
-For Metrowerks C/C++ 4.5 you build gc.68K.¹/gc.PPC.¹ and the result will
-be a library called gc.68K.lib/gc.PPC.lib.
-
-Using
------
-
-Under Symantec C++/THINK C, you can just add the gclib-1.¹ and gclib-2.¹
-projects to your own project. Under Metrowerks, you add gc.68K.lib or
-gc.PPC.lib and two additional files. You add the files called datastart.c
-and dataend.c to your project, bracketing all files that use the collector.
-See mw/gctest.¹ for an example.
-
-Include the projects/libraries you built above into your own project,
-#include "gc.h", and call GC_malloc. You don't have to call GC_free.
-
-
-Patrick C. Beard
-January 4, 1995
diff --git a/boehm-gc/README.OS2 b/boehm-gc/README.OS2
deleted file mode 100644
index 5345bbd0f65..00000000000
--- a/boehm-gc/README.OS2
+++ /dev/null
@@ -1,6 +0,0 @@
-The code assumes static linking, and a single thread. The editor de has
-not been ported. The cord test program has. The supplied OS2_MAKEFILE
-assumes the IBM C Set/2 environment, but the code shouldn't.
-
-Since we haven't figured out hoe to do perform partial links or to build static
-libraries, clients currently need to link against a long list of executables.
diff --git a/boehm-gc/README.QUICK b/boehm-gc/README.QUICK
deleted file mode 100644
index ddebf82ca50..00000000000
--- a/boehm-gc/README.QUICK
+++ /dev/null
@@ -1,43 +0,0 @@
-Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
-Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
-Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
-Copyright (c) 1999 by Hewlett-Packard. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program
-for any purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is granted,
-provided the above notices are retained, and a notice that the code was
-modified is included with the above copyright notice.
-
-
-For more details and the names of other contributors, see the
-README file and gc.h. This file describes typical use of
-the collector on a machine that is already supported.
-
-INSTALLATION:
-Under UN*X, type "make test". Under OS/2 or Windows NT, copy the
-appropriate makefile to MAKEFILE, read it, and type "nmake test".
-Read the machine specific README if one exists. The only way to
-develop code with the collector for Windows 3.1 is to develop under
-Windows NT, and then to use win32S.
-
-If you wish to use the cord (structured string) library type
-"make cords". (This requires an ANSI C compiler. You may need
-to redefine CC in the Makefile.)
-
-If you wish to use the collector from C++, type
-"make c++". These add further files to gc.a and to the include
-subdirectory. See cord/cord.h and gc_c++.h.
-
-TYPICAL USE:
-Include "gc.h" from this directory. Link against the appropriate library
-("gc.a" under UN*X). Replace calls to malloc by calls to GC_MALLOC,
-and calls to realloc by calls to GC_REALLOC. If the object is known
-to never contain pointers, use GC_MALLOC_ATOMIC instead of
-GC_MALLOC.
-
-Define GC_DEBUG before including gc.h for additional checking.
-
diff --git a/boehm-gc/README.alpha b/boehm-gc/README.alpha
deleted file mode 100644
index 213a13e3fef..00000000000
--- a/boehm-gc/README.alpha
+++ /dev/null
@@ -1,22 +0,0 @@
-Should work under OSF/1 and Linux. Currently no VMS or NT support, though
-the latter shouldn't be hard.
-
-Incremental gc not yet supported under Linux because signal handler
-for SIGSEGV can't get a hold of fault address. Dynamic library support
-is also missing from Linux/alpha, probably for no good reason.
-
-Currently there is no thread support in the standard distribution. There
-exists a separate port to DEC Unix pthreads. It should be possible to
-port the X86 Linux threads support to Alpha without much trouble.
-
-If you get asssembler errors, be sure to read the first few lines of the
-Makefile.
-
-From Philippe Queinnec:
-
-System: DEC/Alpha OSF1 v3.2, vendor cc
-Problem: can't link if libgc has been compiled with "cc -std1".
- It works if the library has been compiled with either gcc or "cc"
- alone. The problem is because the variable "end" is not defined if
- compiling in std1 mode (see man ld).
-Proposed fix: none. Don't use cc -std1 !
diff --git a/boehm-gc/README.amiga b/boehm-gc/README.amiga
deleted file mode 100644
index 47b15884354..00000000000
--- a/boehm-gc/README.amiga
+++ /dev/null
@@ -1,180 +0,0 @@
-===========================================================================
- Martin Tauchmann's notes (1-Apr-99)
-===========================================================================
-
-Works now, also with the GNU-C compiler V2.7.2.1. <ftp://ftp.unina.it/pub/amiga/geekgadgets/amiga/m68k/snapshots/971125/amiga-bin/>
-Modify the `Makefile`
-CC=cc $(ABI_FLAG)
-to
-CC=gcc $(ABI_FLAG)
-
-TECHNICAL NOTES
-
-- `GC_get_stack_base()`, `GC_register_data_segments()` works now with every
- C compiler; also Workbench.
-
-- Removed AMIGA_SKIP_SEG, but the Code-Segment must not be scanned by GC.
-
-
-PROBLEMS
-- When the Linker, does`t merge all Code-Segments to an single one. LD of GCC
- do it always.
-
-- With ixemul.library V47.3, when an GC program launched from another program
- (example: `Make` or `if_mach M68K AMIGA gctest`), `GC_register_data_segments()`
- found the Segment-List of the caller program.
- Can be fixed, if the run-time initialization code (for C programs, usually *crt0*)
- support `__data` and `__bss`.
-
-- PowerPC Amiga currently not supported.
-
-- Dynamic libraries (dyn_load.c) not supported.
-
-
-TESTED WITH SOFTWARE
-
-`Optimized Oberon 2 C` (oo2c) <http://cognac.informatik.uni-kl.de/download/index.html>
-
-
-TESTED WITH HARDWARE
-
-MC68030
-
-
-CONTACT
-
-Please, contact me at <martintauchmann@bigfoot.com>, when you change the
-Amiga port. <http://martintauchmann.home.pages.de>
-
-===========================================================================
- Michel Schinz's notes
-===========================================================================
-WHO DID WHAT
-
-The original Amiga port was made by Jesper Peterson. I (Michel Schinz)
-modified it slightly to reflect the changes made in the new official
-distributions, and to take advantage of the new SAS/C 6.x features. I also
-created a makefile to compile the "cord" package (see the cord
-subdirectory).
-
-TECHNICAL NOTES
-
-In addition to Jesper's notes, I have the following to say:
-
-- Starting with version 4.3, gctest checks to see if the code segment is
- added to the root set or not, and complains if it is. Previous versions
- of this Amiga port added the code segment to the root set, so I tried to
- fix that. The only problem is that, as far as I know, it is impossible to
- know which segments are code segments and which are data segments (there
- are indeed solutions to this problem, like scanning the program on disk
- or patch the LoadSeg functions, but they are rather complicated). The
- solution I have chosen (see os_dep.c) is to test whether the program
- counter is in the segment we are about to add to the root set, and if it
- is, to skip the segment. The problems are that this solution is rather
- awkward and that it works only for one code segment. This means that if
- your program has more than one code segment, all of them but one will be
- added to the root set. This isn't a big problem in fact, since the
- collector will continue to work correctly, but it may be slower.
-
- Anyway, the code which decides whether to skip a segment or not can be
- removed simply by not defining AMIGA_SKIP_SEG. But notice that if you do
- so, gctest will complain (it will say that "GC_is_visible produced wrong
- failure indication"). However, it may be useful if you happen to have
- pointers stored in a code segment (you really shouldn't).
-
- If anyone has a good solution to the problem of finding, when a program
- is loaded in memory, whether a segment is a code or a data segment,
- please let me know.
-
-PROBLEMS
-
-If you have any problem with this version, please contact me at
-schinz@alphanet.ch (but do *not* send long files, since we pay for
-every mail!).
-
-===========================================================================
- Jesper Peterson's notes
-===========================================================================
-
-ADDITIONAL NOTES FOR AMIGA PORT
-
-These notes assume some familiarity with Amiga internals.
-
-WHY I PORTED TO THE AMIGA
-
-The sole reason why I made this port was as a first step in getting
-the Sather(*) language on the Amiga. A port of this language will
-be done as soon as the Sather 1.0 sources are made available to me.
-Given this motivation, the garbage collection (GC) port is rather
-minimal.
-
-(*) For information on Sather read the comp.lang.sather newsgroup.
-
-LIMITATIONS
-
-This port assumes that the startup code linked with target programs
-is that supplied with SAS/C versions 6.0 or later. This allows
-assumptions to be made about where to find the stack base pointer
-and data segments when programs are run from WorkBench, as opposed
-to running from the CLI. The compiler dependent code is all in the
-GC_get_stack_base() and GC_register_data_segments() functions, but
-may spread as I add Amiga specific features.
-
-Given that SAS/C was assumed, the port is set up to be built with
-"smake" using the "SMakefile". Compiler options in "SCoptions" can
-be set with "scopts" program. Both "smake" and "scopts" are part of
-the SAS/C commercial development system.
-
-In keeping with the porting philosophy outlined above, this port
-will not behave well with Amiga specific code. Especially not inter-
-process comms via messages, and setting up public structures like
-Intuition objects or anything else in the system lists. For the
-time being the use of this library is limited to single threaded
-ANSI/POSIX compliant or near-complient code. (ie. Stick to stdio
-for now). Given this limitation there is currently no mechanism for
-allocating "CHIP" or "PUBLIC" memory under the garbage collector.
-I'll add this after giving it considerable thought. The major
-problem is the entire physical address space may have to me scanned,
-since there is no telling who we may have passed memory to.
-
-If you allocate your own stack in client code, you will have to
-assign the pointer plus stack size to GC_stackbottom.
-
-The initial stack size of the target program can be compiled in by
-setting the __stack symbol (see SAS documentaion). It can be over-
-ridden from the CLI by running the AmigaDOS "stack" program, or from
-the WorkBench by setting the stack size in the tool types window.
-
-SAS/C COMPILER OPTIONS (SCoptions)
-
-You may wish to check the "CPU" code option is appropriate for your
-intended target system.
-
-Under no circumstances set the "StackExtend" code option in either
-compiling the library or *ANY* client code.
-
-All benign compiler warnings have been suppressed. These mainly
-involve lack of prototypes in the code, and dead assignments
-detected by the optimizer.
-
-THE GOOD NEWS
-
-The library as it stands is compatible with the GigaMem commercial
-virtual memory software, and probably similar PD software.
-
-The performance of "gctest" on an Amiga 2630 (68030 @ 25Mhz)
-compares favourably with an HP9000 with similar architecture (a 325
-with a 68030 I think).
-
------------------------------------------------------------------------
-
-The Amiga port has been brought to you by:
-
-Jesper Peterson.
-
-jep@mtiame.mtia.oz.au (preferred, but 1 week turnaround)
-jep@orca1.vic.design.telecom.au (that's orca<one>, 1 day turnaround)
-
-At least one of these addresses should be around for a while, even
-though I don't work for either of the companies involved.
-
diff --git a/boehm-gc/README.debugging b/boehm-gc/README.debugging
deleted file mode 100644
index f4dd65676aa..00000000000
--- a/boehm-gc/README.debugging
+++ /dev/null
@@ -1,68 +0,0 @@
-Debugging suggestions:
-
-****If you get a segmentation fault or bus error while debugging with a debugger:
-If the fault occurred in GC_find_limit, or with incremental collection enabled, this is probably normal. The collector installs handlers to take care of these. You will not see these unless you are using a debugger. Your debugger should allow you to continue. It's preferable to tell the debugger to ignore SIGBUS and SIGSEGV ("handle" in gdb, "ignore" in most versions of dbx) and set a breakpoint in abort. The collector will call abort if the signal had another cause, and there was not other handler previously installed. I recommend debugging without incremental collection if possible. (This applies directly to UNIX systems. Debugging with incremental collection under win32 is worse. See README.win32.)
-
-****If you get warning messages informing you that the collector needed to allocate blacklisted blocks:
-
-0) Ignore these warnings while you are using GC_DEBUG. Some of the routines mentioned below don't have debugging equivalents. (Alternatively, write the missing routines and send them to me.)
-
-1) Replace allocator calls that request large blocks with calls to GC_malloc_ignore_off_page or GC_malloc_atomic_ignore_off_page. You may want to set a breakpoint in GC_default_warn_proc to help you identify such calls. Make sure that a pointer to somewhere near the beginning of the resulting block is maintained in a (preferably volatile) variable as long as the block is needed.
-
-2) If the large blocks are allocated with realloc, I suggest instead allocating them with something like the following. Note that the realloc size increment should be fairly large (e.g. a factor of 3/2) for this to exhibit reasonable performance. But we all know we should do that anyway.
-
-void * big_realloc(void *p, size_t new_size)
-{
- size_t old_size = GC_size(p);
- void * result;
-
- if (new_size <= 10000) return(GC_realloc(p, new_size));
- if (new_size <= old_size) return(p);
- result = GC_malloc_ignore_off_page(new_size);
- if (result == 0) return(0);
- memcpy(result,p,old_size);
- GC_free(p);
- return(result);
-}
-
-3) In the unlikely case that even relatively small object (<20KB) allocations are triggering these warnings, then your address space contains lots of "bogus pointers", i.e. values that appear to be pointers but aren't. Usually this can be solved by using GC_malloc_atomic or the routines in gc_typed.h to allocate large pointerfree regions of bitmaps, etc. Sometimes the problem can be solved with trivial changes of encoding in certain values. It is possible, though not pleasant, to identify the source of the bogus pointers by setting a breakpoint in GC_add_to_black_list_stack, and looking at the value of current_p in the GC_mark_from_mark_stack frame. Current_p contains the address of the bogus pointer.
-
-4) If you get only a fixed number of these warnings, you are probably only introducing a bounded leak by ignoring them. If the data structures being allocated are intended to be permanent, then it is also safe to ignore them. The warnings can be turned off by calling GC_set_warn_proc with a procedure that ignores these warnings (e.g. by doing absolutely nothing).
-
-
-****If the collector dies in GC_malloc while trying to remove a free list element:
-
-1) With > 99% probability, you wrote past the end of an allocated object. Try setting GC_DEBUG and using the debugging facilities in gc.h.
-
-
-****If the heap grows too much:
-
-1) Consider using GC_malloc_atomic for objects containing nonpointers. This is especially important for large arrays containg compressed data, pseudo-random numbers, and the like. (This isn't all that likely to solve your problem, but it's a useful and easy optimization anyway, and this is a good time to try it.) If you allocate large objects containg only one or two pointers at the beginning, either try the typed allocation primitives is gc.h, or separate out the pointerfree component.
-2) If you are using the collector in its default mode, with interior pointer recognition enabled, consider using GC_malloc_ignore_off_page to allocate large objects. (See gc.h and above for details. Large means > 100K in most environments.)
-3) GC_print_block_list() will print a list of all currently allocated heap blocks and what size objects they contain. GC_print_hblkfreelist() will print a list of free heap blocks, and whether they are blacklisted. GC_dump calls both of these, and also prints information about heap sections, and root segments.
-4) Build the collector with -DKEEP_BACK_PTRS, and use the backptr.h
-interface to determine why objects are being retained.
-
-
-****If the collector appears to be losing objects:
-
-1) Replace all calls to GC_malloc_atomic and typed allocation by GC_malloc calls. If this fixes the problem, gradually reinsert your optimizations.
-2) You may also want to try the safe(r) pointer manipulation primitives in gc.h. But those are hard to use until the preprocessor becomes available.
-3) Try using the GC_DEBUG facilities. This is less likely to be successful here than if the collector crashes.
-[The rest of these are primarily for wizards. You shouldn't need them unless you're doing something really strange, or debugging a collector port.]
-4) Don't turn on incremental collection. If that fixes the problem, suspect a bug in the dirty bit implementation. Try compiling with -DCHECKSUMS to check for modified, but supposedly clean, pages.
-5) On a SPARC, in a single-threaded environment, GC_print_callers(GC_arrays._last_stack) prints a cryptic stack trace as of the time of the last collection. (You will need a debugger to decipher the result.) The question to ask then is "why should this object have been accessible at the time of the last collection? Where was a pointer to it stored?". This facility should be easy to add for some other collector ports (namely if it's easy to traverse stack frames), but will be hard for others.
-6) "print *GC_find_header(p)" in dbx or gdb will print the garbage collector block header information associated with the object p (e.g. object size, etc.)
-7) GC_is_marked(p) determines whether p is the base address of a marked object. Note that objects allocated since the last collection should not be marked, and that unmarked objects are reclaimed incrementally. It's usually most interesting to set a breakpoint in GC_finish_collection and then to determine how much of the damaged data structure is marked at that point.
-8) Look at the tracing facility in mark.c. (Ignore this suggestion unless you are very familiar with collector internals.)
-9) [From Melissa O'Neill:]
-If you're using multiple threads, double check that all thread
-creation goes through the GC_ wrapper functions rather than
-calling the thread-creation functions themselves (e.g.,
-GC_pthread_create rather than pthread_create). The gc.h header
-file includes suitable preprocessor definitions to accomplish
-this mapping transparently -- the question is: are you including
-it in all the modules that create threads?
-
-
-
diff --git a/boehm-gc/README.dj b/boehm-gc/README.dj
deleted file mode 100644
index 613bc423cb1..00000000000
--- a/boehm-gc/README.dj
+++ /dev/null
@@ -1,12 +0,0 @@
-[Original version supplied by Xiaokun Zhu <xiaokun@aero.gla.ac.uk>]
-[This version came mostly from Gary Leavens. ]
-
-Look first at Makefile.dj, and possibly change the definitions of
-RM and MV if you don't have rm and mv installed.
-Then use Makefile.dj to compile the garbage collector.
-For example, you can do:
-
- make -f Makefile.dj test
-
-All the tests should work fine.
-
diff --git a/boehm-gc/README.hp b/boehm-gc/README.hp
deleted file mode 100644
index 072ba5386ac..00000000000
--- a/boehm-gc/README.hp
+++ /dev/null
@@ -1,16 +0,0 @@
-Dynamic loading support requires that executables be linked with -ldld.
-The alternative is to build the collector without defining DYNAMIC_LOADING
-in gcconfig.h and ensuring that all garbage collectable objects are
-accessible without considering statically allocated variables in dynamic
-libraries.
-
-The collector should compile with either plain cc or cc -Ae. CC -Aa
-fails to define _HPUX_SOURCE and thus will not configure the collector
-correctly.
-
-Incremental collection support was reccently added, and should now work.
-
-Thread support for HP/UX 11 Pthreads was also recently added. It is still
-flakey in this release. (It has only been tested on a uniprocessor. Even
-there some fraction of thread creation calls fail with a not-yet-understood
-error return from sem_wait.)
diff --git a/boehm-gc/README.linux b/boehm-gc/README.linux
deleted file mode 100644
index e35e712ef95..00000000000
--- a/boehm-gc/README.linux
+++ /dev/null
@@ -1,68 +0,0 @@
-See README.alpha for Linux on DEC AXP info.
-
-This file applies mostly to Linux/Intel IA32. Ports to Linux on an M68K
-and PowerPC are also integrated. They should behave similarly, except that
-the PowerPC port lacks incremental GC support, and it is unknown to what
-extent the Linux threads code is functional.
-
-Incremental GC is supported on Intel IA32 and M68K.
-
-Dynamic libraries are supported on an ELF system. A static executable
-should be linked with the gcc option "-Wl,-defsym,_DYNAMIC=0".
-
-The collector appears to work with Linux threads. We have seen
-intermittent hangs in sem_wait. So far we have been unable to reproduce
-these unless the process was being debugged or traced. Thus it's
-possible that the only real issue is that the debugger loses
-signals on rare occasions.
-
-The garbage collector uses SIGPWR and SIGXCPU if it is used with
-Linux threads. These should not be touched by the client program.
-
-To use threads, you need to abide by the following requirements:
-
-1) You need to use LinuxThreads (which are included in libc6).
-
- The collector relies on some implementation details of the LinuxThreads
- package. It is unlikely that this code will work on other
- pthread implementations (in particular it will *not* work with
- MIT pthreads).
-
-2) You must compile the collector with -DLINUX_THREADS and -D_REENTRANT
- specified in the Makefile.
-
-3a) Every file that makes thread calls should define LINUX_THREADS and
- _REENTRANT and then include gc.h. Gc.h redefines some of the
- pthread primitives as macros which also provide the collector with
- information it requires.
-
-3b) A new alternative to (3a) is to build the collector with
- -DUSE_LD_WRAP, and to link the final program with
-
- (for ld) --wrap read --wrap dlopen --wrap pthread_create \
- --wrap pthread_join --wrap pthread_sigmask
-
- (for gcc) -Wl,--wrap -Wl,read -Wl,--wrap -Wl,dlopen -Wl,--wrap \
- -Wl,pthread_create -Wl,--wrap -Wl,pthread_join -Wl,--wrap \
- -Wl,pthread_sigmask
-
- In any case, _REENTRANT should be defined during compilation.
-
-4) Dlopen() disables collection during its execution. (It can't run
- concurrently with the collector, since the collector looks at its
- data structures. It can't acquire the allocator lock, since arbitrary
- user startup code may run as part of dlopen().) Under unusual
- conditions, this may cause unexpected heap growth.
-
-5) The combination of LINUX_THREADS, REDIRECT_MALLOC, and incremental
- collection fails in seemingly random places. This hasn't been tracked
- down yet, but is perhaps not completely astonishing. The thread package
- uses malloc, and thus can presumably get SIGSEGVs while inside the
- package. There is no real guarantee that signals are handled properly
- at that point.
-
-6) Thread local storage may not be viewed as part of the root set by the
- collector. This probably depends on the linuxthreads version. For the
- time being, any collectable memory referenced by thread local storage should
- also be referenced from elsewhere, or be allocated as uncollectable.
- (This is really a bug that should be fixed somehow.)
diff --git a/boehm-gc/README.rs6000 b/boehm-gc/README.rs6000
deleted file mode 100644
index f5630b20a32..00000000000
--- a/boehm-gc/README.rs6000
+++ /dev/null
@@ -1,9 +0,0 @@
-We have so far failed to find a good way to determine the stack base.
-It is highly recommended that GC_stackbottom be set explicitly on program
-startup. The supplied value sometimes causes failure under AIX 4.1, though
-it appears to work under 3.X. HEURISTIC2 seems to work under 4.1, but
-involves a substantial performance penalty, and will fail if there is
-no limit on stack size.
-
-There is no thread support. (I assume recent versions of AIX provide
-pthreads? I no longer have access to a machine ...)
diff --git a/boehm-gc/README.sgi b/boehm-gc/README.sgi
deleted file mode 100644
index e67124b5544..00000000000
--- a/boehm-gc/README.sgi
+++ /dev/null
@@ -1,41 +0,0 @@
-Performance of the incremental collector can be greatly enhanced with
--DNO_EXECUTE_PERMISSION.
-
-The collector should run with all of the -32, -n32 and -64 ABIs. Remember to
-define the AS macro in the Makefile to be "as -64", or "as -n32".
-
-If you use -DREDIRECT_MALLOC=GC_malloc with C++ code, your code should make
-at least one explicit call to malloc instead of new to ensure that the proper
-version of malloc is linked in.
-
-Sproc threads are not supported in this version, though there may exist other
-ports.
-
-Pthreads support is provided. This requires that:
-
-1) You compile the collector with -DIRIX_THREADS specified in the Makefile.
-
-2) You have the latest pthreads patches installed.
-
-(Though the collector makes only documented pthread calls,
-it relies on signal/threads interactions working just right in ways
-that are not required by the standard. It is unlikely that this code
-will run on other pthreads platforms. But please tell me if it does.)
-
-3) Every file that makes thread calls should define IRIX_THREADS and then
-include gc.h. Gc.h redefines some of the pthread primitives as macros which
-also provide the collector with information it requires.
-
-4) pthread_cond_wait and pthread_cond_timed_wait should be prepared for
-premature wakeups. (I believe the pthreads and realted standards require this
-anyway. Irix pthreads often terminate a wait if a signal arrives.
-The garbage collector uses signals to stop threads.)
-
-5) It is expensive to stop a thread waiting in IO at the time the request is
-initiated. Applications with many such threads may not exhibit acceptable
-performance with the collector. (Increasing the heap size may help.)
-
-6) The collector should not be compiled with -DREDIRECT_MALLOC. This
-confuses some library calls made by the pthreads implementation, which
-expect the standard malloc.
-
diff --git a/boehm-gc/README.solaris2 b/boehm-gc/README.solaris2
deleted file mode 100644
index cb15e30a19c..00000000000
--- a/boehm-gc/README.solaris2
+++ /dev/null
@@ -1,62 +0,0 @@
-The collector supports both incremental collection and threads under
-Solaris 2. The incremental collector normally retrieves page dirty information
-through the appropriate /proc calls. But it can also be configured
-(by defining MPROTECT_VDB instead of PROC_VDB in gcconfig.h) to use mprotect
-and signals. This may result in shorter pause times, but it is no longer
-safe to issue arbitrary system calls that write to the heap.
-
-Under other UNIX versions,
-the collector normally obtains memory through sbrk. There is some reason
-to expect that this is not safe if the client program also calls the system
-malloc, or especially realloc. The sbrk man page strongly suggests this is
-not safe: "Many library routines use malloc() internally, so use brk()
-and sbrk() only when you know that malloc() definitely will not be used by
-any library routine." This doesn't make a lot of sense to me, since there
-seems to be no documentation as to which routines can transitively call malloc.
-Nonetheless, under Solaris2, the collector now (since 4.12) allocates
-memory using mmap by default. (It defines USE_MMAP in gcconfig.h.)
-You may want to reverse this decisions if you use -DREDIRECT_MALLOC=...
-
-
-SOLARIS THREADS:
-
-The collector must be compiled with -DSOLARIS_THREADS to be thread safe.
-It is also essential that gc.h be included in files that call thr_create,
-thr_join, thr_suspend, thr_continue, or dlopen. Gc.h macro defines
-these to also do GC bookkeeping, etc. Gc.h must be included with
-SOLARIS_THREADS defined, otherwise these replacements are not visible.
-A collector built in this way way only be used by programs that are
-linked with the threads library.
-
-If you are using the Pthreads interface, also define _SOLARIS_PTHREADS.
-
-In this mode, the collector contains various workarounds for older Solaris
-bugs. Mostly, these should not be noticeable unless you look at system
-call traces. However, it cannot protect a guard page at the end of
-a thread stack. If you know that you will only be running Solaris2.5
-or later, it should be possible to fix this by compiling the collector
-with -DSOLARIS23_MPROTECT_BUG_FIXED.
-
-Since 5.0 alpha5, dlopen disables collection temporarily,
-unless USE_PROC_FOR_LIBRARIES is defined. In some unlikely cases, this
-can result in unpleasant heap growth. But it seems better than the
-race/deadlock issues we had before.
-
-If solaris_threads are used on an X86 processor with malloc redirected to
-GC_malloc, it is necessary to call GC_thr_init explicitly before forking the
-first thread. (This avoids a deadlock arising from calling GC_thr_init
-with the allocation lock held.)
-
-It appears that there is a problem in using gc_cpp.h in conjunction with
-Solaris threads and Sun's C++ runtime. Apparently the overloaded new operator
-is invoked by some iostream initialization code before threads are correctly
-initialized. As a result, call to thr_self() in garbage collector
-initialization segfaults. Currently the only known workaround is to not
-invoke the garbage collector from a user defined global operator new, or to
-have it invoke the garbage-collector's allocators only after main has started.
-(Note that the latter requires a moderately expensive test in operator
-delete.)
-
-Hans-J. Boehm
-(The above contains my personal opinions, which are probably not shared
-by anyone else.)
diff --git a/boehm-gc/README.uts b/boehm-gc/README.uts
deleted file mode 100644
index 6be49667d7b..00000000000
--- a/boehm-gc/README.uts
+++ /dev/null
@@ -1,2 +0,0 @@
-Alistair Crooks supplied the port. He used Lexa C version 2.1.3 with
--Xa to compile.
diff --git a/boehm-gc/README.win32 b/boehm-gc/README.win32
deleted file mode 100644
index d78816b555d..00000000000
--- a/boehm-gc/README.win32
+++ /dev/null
@@ -1,149 +0,0 @@
-The collector has only been compiled under Windows NT, with the
-original Microsoft SDK, with Visual C++ 2.0 and later, with
-the GNU win32 environment, with Borland 4.5, and recently with
-Watcom C.
-
-It runs under both win32s and win32, but with different semantics.
-Under win32, all writable pages outside of the heaps and stack are
-scanned for roots. Thus the collector sees pointers in DLL data
-segments. Under win32s, only the main data segment is scanned.
-(The main data segment should always be scanned. Under some
-versions of win32s, other regions may also be scanned.)
-Thus all accessible objects should be accessible from local variables
-or variables in the main data segment. Alternatively, other data
-segments (e.g. in DLLs) may be registered with the collector by
-calling GC_init() and then GC_register_root_section(a), where
-a is the address of some variable inside the data segment. (Duplicate
-registrations are ignored, but not terribly quickly.)
-
-(There are two reasons for this. We didn't want to see many 16:16
-pointers. And the VirtualQuery call has different semantics under
-the two systems, and under different versions of win32s.)
-
-The collector test program "gctest" is linked as a GUI application,
-but does not open any windows. Its output appears in the file
-"gc.log". It may be started from the file manager. The hour glass
-cursor will appear as long as it's running. If it is started from the
-command line, it will usually run in the background. Wait a few
-minutes (a few seconds on a modern machine) before you check the output.
-You should see either a failure indication or a "Collector appears to
-work" message.
-
-The cord test program has not been ported (but should port
-easily). A toy editor (cord/de.exe) based on cords (heavyweight
-strings represented as trees) has been ported and is included.
-It runs fine under either win32 or win32S. It serves as an example
-of a true Windows application, except that it was written by a
-nonexpert Windows programmer. (There are some peculiarities
-in the way files are displayed. The <cr> is displayed explicitly
-for standard DOS text files. As in the UNIX version, control
-characters are displayed explicitly, but in this case as red text.
-This may be suboptimal for some tastes and/or sets of default
-window colors.)
-
-For Microsoft development tools, rename NT_MAKEFILE as
-MAKEFILE. (Make sure that the CPU environment variable is defined
-to be i386.)
-
-For GNU-win32, use the regular makefile, possibly after uncommenting
-the line "include Makefile.DLLs". The latter should be necessary only
-if you want to package the collector as a DLL. The GNU-win32 port is
-believed to work only for b18, not b19, probably dues to linker changes
-in b19. This is probably fixable with a different definition of
-DATASTART and DATAEND in gcconfig.h.
-
-For Borland tools, use BCC_MAKEFILE. Note that
-Borland's compiler defaults to 1 byte alignment in structures (-a1),
-whereas Visual C++ appears to default to 8 byte alignment (/Zp8).
-The garbage collector in its default configuration EXPECTS AT
-LEAST 4 BYTE ALIGNMENT. Thus the BORLAND DEFAULT MUST
-BE OVERRIDDEN. (In my opinion, it should usually be anyway.
-I expect that -a1 introduces major performance penalties on a
-486 or Pentium.) Note that this changes structure layouts. (As a last
-resort, gcconfig.h can be changed to allow 1 byte alignment. But
-this has significant negative performance implications.)
-The Makefile is set up to assume Borland 4.5. If you have another
-version, change the line near the top. By default, it does not
-require the assembler. If you do have the assembler, I recommend
-removing the -DUSE_GENERIC.
-
-Incremental collection support was recently added. This is
-currently pretty simpleminded. Pages are protected. Protection
-faults are caught by a handler installed at the bottom of the handler
-stack. This is both slow and interacts poorly with a debugger.
-Whenever possible, I recommend adding a call to
-GC_enable_incremental at the last possible moment, after most
-debugging is complete. Unlike the UNIX versions, no system
-calls are wrapped by the collector itself. It may be necessary
-to wrap ReadFile calls that use a buffer in the heap, so that the
-call does not encounter a protection fault while it's running.
-(As usual, none of this is an issue unless GC_enable_incremental
-is called.)
-
-Note that incremental collection is disabled with -DSMALL_CONFIG,
-which is the default for win32. If you need incremental collection,
-undefine SMALL_CONFIG.
-
-Incremental collection is not supported under win32s, and it may not
-be possible to do so. However, win32 applications that attempt to use
-incremental collection should continue to run, since the
-collector detects if it's running under win32s and turns calls to
-GC_enable_incremental() into noops.
-
-James Clark has contributed the necessary code to support win32 threads.
-This code is known to exhibit some problems with incremental collection
-enabled. Use NT_THREADS_MAKEFILE (a.k.a gc.mak) instead of NT_MAKEFILE
-to build this version. Note that this requires some files whose names
-are more than 8 + 3 characters long. Thus you should unpack the tar file
-so that long file names are preserved. To build the garbage collector
-test with VC++ from the command line, use
-
-nmake /F ".\gc.mak" CFG="gctest - Win32 Release"
-
-This requires that the subdirectory gctest\Release exist.
-The test program and DLL will reside in the Release directory.
-
-This version relies on the collector residing in a dll.
-
-This version currently supports incremental collection only if it is
-enabled before any additional threads are created.
-Version 4.13 attempts to fix some of the earlier problems, but there
-may be other issues. If you need solid support for win32 threads, you
-might check with Geodesic Systems. Their collector must be licensed,
-but they have invested far more time in win32-specific issues.
-
-Hans
-
-Ivan V. Demakov's README for the Watcom port:
-
-The collector has been compiled with Watcom C 10.6 and 11.0.
-It runs under win32, win32s, and even under msdos with dos4gw
-dos-extender. It should also run under OS/2, though this isn't
-tested. Under win32 the collector can be built either as dll
-or as static library.
-
-Note that all compilations were done under Windows 95 or NT.
-For unknown reason compiling under Windows 3.11 for NT (one
-attempt has been made) leads to broken executables.
-
-Incremental collection is not supported.
-
-cord is not ported.
-
-Before compiling you may need to edit WCC_MAKEFILE to set target
-platform, library type (dynamic or static), calling conventions, and
-optimization options.
-
-To compile the collector and testing programs use the command:
- wmake -f WCC_MAKEFILE
-
-All programs using gc should be compiled with 4-byte alignment.
-For further explanations on this see comments about Borland.
-
-If gc compiled as dll, the macro ``GC_DLL'' should be defined before
-including "gc.h" (for example, with -DGC_DLL compiler option). It's
-important, otherwise resulting programs will not run.
-
-Ivan Demakov (email: ivan@tgrad.nsk.su)
-
-
diff --git a/boehm-gc/SCoptions.amiga b/boehm-gc/SCoptions.amiga
deleted file mode 100644
index a61e0cb1f04..00000000000
--- a/boehm-gc/SCoptions.amiga
+++ /dev/null
@@ -1,16 +0,0 @@
-CPU=68030
-NOSTACKCHECK
-OPTIMIZE
-VERBOSE
-MAPHUNK
-NOVERSION
-NOICONS
-OPTIMIZERTIME
-DEFINE SILENT
-DEFINE AMIGA_SKIP_SEG
-IGNORE=85
-IGNORE=154
-IGNORE=161
-IGNORE=100
-OPTIMIZERCOMPLEXITY=4
-OPTIMIZERDEPTH=3
diff --git a/boehm-gc/SMakefile.amiga b/boehm-gc/SMakefile.amiga
deleted file mode 100644
index e9602c08cdc..00000000000
--- a/boehm-gc/SMakefile.amiga
+++ /dev/null
@@ -1,48 +0,0 @@
-OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o real_malloc.o dyn_load.o dbg_mlc.o malloc.o stubborn.o checksums.o typd_mlc.o ptr_chck.o
-
-INC= gc_private.h gc_hdrs.h gc.h gcconfig.h
-
-all: gctest setjmp_t
-
-alloc.o : alloc.c $(INC)
-reclaim.o : reclaim.c $(INC)
-allchblk.o : allchblk.c $(INC)
-misc.o : misc.c $(INC)
-os_dep.o : os_dep.c $(INC)
-mark_rts.o : mark_rts.c $(INC)
-headers.o : headers.c $(INC)
-mark.o : mark.c $(INC)
-obj_map.o : obj_map.c $(INC)
-blacklst.o : blacklst.c $(INC)
-finalize.o : finalize.c $(INC)
- sc noopt finalize.c # There seems to be a bug in the optimizer (V6.51).
- # gctest won't work if you remove this...
-new_hblk.o : new_hblk.c $(INC)
-real_malloc.o : real_malloc.c $(INC)
-dyn_load.o : dyn_load.c $(INC)
-dbg_mlc.o : dbg_mlc.c $(INC)
-malloc.o : malloc.c $(INC)
-mallocx.o : malloc.c $(INC)
-stubborn.o : stubborn.c $(INC)
-checksums.o : checksums.c $(INC)
-typd_mlc.o: typd_mlc.c $(INC)
-mach_dep.o : mach_dep.c $(INC)
-ptr_chck.o: ptr_chck.c $(INC)
-test.o : test.c $(INC)
-
-gc.lib: $(OBJS)
- oml gc.lib r $(OBJS)
-
-clean:
- delete gc.lib gctest setjmp_t \#?.o
-
-gctest: gc.lib test.o
- slink LIB:c.o test.o to $@ lib gc.lib LIB:sc.lib LIB:scm.lib
-
-setjmp_t: setjmp_t.c gc.h
- sc setjmp_t.c
- slink LIB:c.o $@.o to $@ lib LIB:sc.lib
-
-test: setjmp_t gctest
- setjmp_t
- gctest
diff --git a/boehm-gc/WCC_MAKEFILE b/boehm-gc/WCC_MAKEFILE
deleted file mode 100644
index 087ff6a31d8..00000000000
--- a/boehm-gc/WCC_MAKEFILE
+++ /dev/null
@@ -1,196 +0,0 @@
-# Makefile for Watcom C/C++ 10.5, 10.6, 11.0 on NT, OS2 and DOS4GW.
-# May work with Watcom 10.0.
-
-# Uncoment one of the lines below for cross compilation.
-SYSTEM=MSWIN32
-#SYSTEM=DOS4GW
-#SYSTEM=OS2
-
-# The collector can be built either as dynamic or as static library.
-# Select the library type you need.
-#MAKE_AS_DLL=1
-MAKE_AS_LIB=1
-
-# Select calling conventions.
-# Possible choices are r and s.
-CALLING=s
-
-# Select target CPU.
-# Possible choices are 3, 4, 5, and 6.
-# The last choice available only since version 11.0.
-CPU=5
-
-# Set optimization options.
-# Watcom before 11.0 does not support option "-oh".
-OPTIM=-oneatx -s
-#OPTIM=-ohneatx -s
-
-DEFS=-DALL_INTERIOR_POINTERS -DSILENT -DNO_SIGNALS #-DSMALL_CONFIG #-DGC_DEBUG
-
-
-#####
-
-!ifndef SYSTEM
-!ifdef __MSDOS__
-SYSTEM=DOS4GW
-!else ifdef __NT__
-SYSTEM=MSWIN32
-!else ifdef __OS2__
-SYSTEM=OS2
-!else
-SYSTEM=Unknown
-!endif
-!endif
-
-!define $(SYSTEM)
-
-!ifdef DOS4GW
-SYSFLAG=-DDOS4GW -bt=dos
-!else ifdef MSWIN32
-SYSFLAG=-DMSWIN32 -bt=nt
-!else ifdef OS2
-SYSFLAG=-DOS2 -bt=os2
-!else
-!error undefined or unsupported target platform: $(SYSTEM)
-!endif
-!ifdef MAKE_AS_DLL
-DLLFLAG=-bd -DGC_DLL
-TEST_DLLFLAG=-DGC_DLL
-!else ifdef MAKE_AS_LIB
-DLLFLAG=
-TEST_DLLFLAG=
-!else
-!error Either MAKE_AS_LIB or MAKE_AS_DLL should be defined
-!endif
-
-CC=wcc386
-CXX=wpp386
-
-# -DUSE_GENERIC is required !
-CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(DLLFLAG) -DGC_BUILD -DUSE_GENERIC $(DEFS)
-CXXFLAGS= $(CFLAGS)
-TEST_CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(TEST_DLLFLAG) $(DEFS)
-TEST_CXXFLAGS= $(TEST_CFLAGS)
-
-OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj &
- mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj &
- obj_map.obj blacklst.obj finalize.obj new_hblk.obj &
- dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj &
- typd_mlc.obj ptr_chck.obj mallocx.obj
-
-all: gc.lib gctest.exe test_cpp.exe
-
-!ifdef MAKE_AS_DLL
-
-gc.lib: gc.dll gc_cpp.obj
- *wlib -b -c -n -p=512 $@ +gc.dll +gc_cpp.obj
-
-gc.dll: $(OBJS) .AUTODEPEND
- @%create $*.lnk
-!ifdef DOS4GW
- @%append $*.lnk sys os2v2_dll
-!else ifdef MSWIN32
- @%append $*.lnk sys nt_dll
-!else ifdef OS2
- @%append $*.lnk sys os2v2_dll
-!endif
- @%append $*.lnk name $*
- @for %i in ($(OBJS)) do @%append $*.lnk file '%i'
-!ifeq CALLING s
- @%append $*.lnk export GC_is_marked
- @%append $*.lnk export GC_incr_words_allocd
- @%append $*.lnk export GC_incr_mem_freed
- @%append $*.lnk export GC_generic_malloc_words_small
-!else
- @%append $*.lnk export GC_is_marked_
- @%append $*.lnk export GC_incr_words_allocd_
- @%append $*.lnk export GC_incr_mem_freed_
- @%append $*.lnk export GC_generic_malloc_words_small_
-!endif
- *wlink @$*.lnk
-!else
-gc.lib: $(OBJS) gc_cpp.obj
- @%create $*.lb1
- @for %i in ($(OBJS)) do @%append $*.lb1 +'%i'
- @%append $*.lb1 +'gc_cpp.obj'
- *wlib -b -c -n -p=512 $@ @$*.lb1
-
-!endif
-
-
-gctest.exe: test.obj gc.lib
- %create $*.lnk
-!ifdef DOS4GW
- @%append $*.lnk sys dos4g
-!else ifdef MSWIN32
- @%append $*.lnk sys nt
-!else ifdef OS2
- @%append $*.lnk sys os2v2
-!endif
- @%append $*.lnk op case
- @%append $*.lnk op stack=256K
- @%append $*.lnk name $*
- @%append $*.lnk file test.obj
- @%append $*.lnk library gc.lib
-!ifdef MAKE_AS_DLL
-!ifeq CALLING s
- @%append $*.lnk import GC_is_marked gc
-!else
- @%append $*.lnk import GC_is_marked_ gc
-!endif
-!endif
- *wlink @$*.lnk
-test_cpp.exe: test_cpp.obj gc.lib
- %create $*.lnk
-!ifdef DOS4GW
- @%append $*.lnk sys dos4g
-!else ifdef MSWIN32
- @%append $*.lnk sys nt
-!else ifdef OS2
- @%append $*.lnk sys os2v2
-!endif
- @%append $*.lnk op case
- @%append $*.lnk op stack=256K
- @%append $*.lnk name $*
- @%append $*.lnk file test_cpp.obj
- @%append $*.lnk library gc.lib
-!ifdef MAKE_AS_DLL
-!ifeq CALLING s
- @%append $*.lnk import GC_incr_words_allocd gc
- @%append $*.lnk import GC_incr_mem_freed gc
- @%append $*.lnk import GC_generic_malloc_words_small gc
-!else
- @%append $*.lnk import GC_incr_words_allocd_ gc
- @%append $*.lnk import GC_incr_mem_freed_ gc
- @%append $*.lnk import GC_generic_malloc_words_small_ gc
-!endif
-!endif
- *wlink @$*.lnk
-
-gc_cpp.obj: gc_cpp.cc .AUTODEPEND
- $(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc
-test.obj: test.c .AUTODEPEND
- $(CC) $(TEST_CFLAGS) $*.c
-test_cpp.obj: test_cpp.cc .AUTODEPEND
- $(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc
-
-
-.c.obj: .AUTODEPEND
- $(CC) $(CFLAGS) $*.c
-
-.cc.obj: .AUTODEPEND
- $(CXX) $(CXXFLAGS) $*.cc
-
-clean : .SYMBOLIC
- @if exist *.obj del *.obj
- @if exist *.map del *.map
- @if exist *.lnk del *.lnk
- @if exist *.lb1 del *.lb1
- @if exist *.sym del *.sym
- @if exist *.err del *.err
- @if exist *.tmp del *.tmp
- @if exist *.lst del *.lst
- @if exist *.exe del *.exe
- @if exist *.log del *.log
- @if exist *.lib del *.lib
- @if exist *.dll del *.dll
diff --git a/boehm-gc/acinclude.m4 b/boehm-gc/acinclude.m4
deleted file mode 100644
index fc1e0e80156..00000000000
--- a/boehm-gc/acinclude.m4
+++ /dev/null
@@ -1,163 +0,0 @@
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-AC_DEFUN(BOEHM_CONFIGURE,
-[
-dnl Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
-dnl We may get other options which we don't document:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-
-if test "[$]{srcdir}" = "."; then
- if test "[$]{with_target_subdir}" != "."; then
- boehm_gc_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
- else
- boehm_gc_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
- fi
-else
- boehm_gc_basedir="[$]{srcdir}/$1"
-fi
-AC_SUBST(boehm_gc_basedir)
-
-AC_CANONICAL_HOST
-
-AM_INIT_AUTOMAKE(boehm-gc, 5.1, no-define)
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-AC_DEFUN(LIB_AC_PROG_CC,
-[AC_BEFORE([$0], [AC_PROG_CPP])dnl
-dnl Fool anybody using AC_PROG_CC.
-AC_PROVIDE([AC_PROG_CC])
-AC_CHECK_PROG(CC, gcc, gcc)
-if test -z "$CC"; then
- AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
- test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
-fi
-
-AC_PROG_CC_GNU
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-dnl Check whether -g works, even if CFLAGS is set, in case the package
-dnl plays around with CFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- AC_PROG_CC_G
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-])
-
-LIB_AC_PROG_CC
-
-# Likewise for AC_PROG_CXX.
-AC_DEFUN(LIB_AC_PROG_CXX,
-[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
-dnl Fool anybody using AC_PROG_CXX.
-AC_PROVIDE([AC_PROG_CXX])
-AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
-test -z "$CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
-
-AC_PROG_CXX_GNU
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-dnl Check whether -g works, even if CXXFLAGS is set, in case the package
-dnl plays around with CXXFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- AC_PROG_CXX_G
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-])
-
-LIB_AC_PROG_CXX
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
-# run it explicitly here, it will be run implicitly before
-# NEWLIB_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-AC_CANONICAL_BUILD
-
-AC_CHECK_TOOL(AS, as)
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-AC_PROG_INSTALL
-
-AM_MAINTAINER_MODE
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which can't create executables. So we include AC_EXEEXT to keep
-# automake happy, but we don't execute it, since we don't care about
-# the result.
-if false; then
- AC_EXEEXT
-fi
-
-. [$]{boehm_gc_basedir}/configure.host
-
-case [$]{boehm_gc_basedir} in
-/* | [A-Za-z]:[/\\]*) boehm_gc_flagbasedir=[$]{boehm_gc_basedir} ;;
-*) boehm_gc_flagbasedir='[$](top_builddir)/'[$]{boehm_gc_basedir} ;;
-esac
-
-boehm_gc_cflags="[$]{boehm_gc_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{boehm_gc_flagbasedir}/libc/include"
-case "${host}" in
- *-*-cygwin32*)
- boehm_gc_cflags="[$]{boehm_gc_cflags} -I[$]{boehm_gc_flagbasedir}/../winsup/include"
- ;;
-esac
-
-boehm_gc_cflags="[$]{boehm_gc_cflags} -fno-builtin"
-
-BOEHM_GC_CFLAGS=${boehm_gc_cflags}
-AC_SUBST(BOEHM_GC_CFLAGS)
-]))
-
-))))
-
-sinclude(../libtool.m4)
-dnl The line below arranges for aclocal not to bring a definition of
-dnl AM_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[AC_DEFUN([AM_PROG_LIBTOOL],[AC_SUBST(LIBTOOL)])])
diff --git a/boehm-gc/aclocal.m4 b/boehm-gc/aclocal.m4
deleted file mode 100644
index 15266a981da..00000000000
--- a/boehm-gc/aclocal.m4
+++ /dev/null
@@ -1,301 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-AC_DEFUN(BOEHM_CONFIGURE,
-[
-dnl Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
-dnl We may get other options which we don't document:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-
-if test "[$]{srcdir}" = "."; then
- if test "[$]{with_target_subdir}" != "."; then
- boehm_gc_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
- else
- boehm_gc_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
- fi
-else
- boehm_gc_basedir="[$]{srcdir}/$1"
-fi
-AC_SUBST(boehm_gc_basedir)
-
-AC_CANONICAL_HOST
-
-AM_INIT_AUTOMAKE(boehm-gc, 5.1, no-define)
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-AC_DEFUN(LIB_AC_PROG_CC,
-[AC_BEFORE([$0], [AC_PROG_CPP])dnl
-dnl Fool anybody using AC_PROG_CC.
-AC_PROVIDE([AC_PROG_CC])
-AC_CHECK_PROG(CC, gcc, gcc)
-if test -z "$CC"; then
- AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
- test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
-fi
-
-AC_PROG_CC_GNU
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-dnl Check whether -g works, even if CFLAGS is set, in case the package
-dnl plays around with CFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- AC_PROG_CC_G
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-])
-
-LIB_AC_PROG_CC
-
-# Likewise for AC_PROG_CXX.
-AC_DEFUN(LIB_AC_PROG_CXX,
-[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
-dnl Fool anybody using AC_PROG_CXX.
-AC_PROVIDE([AC_PROG_CXX])
-AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
-test -z "$CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
-
-AC_PROG_CXX_GNU
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-dnl Check whether -g works, even if CXXFLAGS is set, in case the package
-dnl plays around with CXXFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- AC_PROG_CXX_G
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-])
-
-LIB_AC_PROG_CXX
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
-# run it explicitly here, it will be run implicitly before
-# NEWLIB_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-AC_CANONICAL_BUILD
-
-AC_CHECK_TOOL(AS, as)
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-AC_PROG_INSTALL
-
-AM_MAINTAINER_MODE
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which can't create executables. So we include AC_EXEEXT to keep
-# automake happy, but we don't execute it, since we don't care about
-# the result.
-if false; then
- AC_EXEEXT
-fi
-
-. [$]{boehm_gc_basedir}/configure.host
-
-case [$]{boehm_gc_basedir} in
-/* | [A-Za-z]:[/\\]*) boehm_gc_flagbasedir=[$]{boehm_gc_basedir} ;;
-*) boehm_gc_flagbasedir='[$](top_builddir)/'[$]{boehm_gc_basedir} ;;
-esac
-
-boehm_gc_cflags="[$]{boehm_gc_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{boehm_gc_flagbasedir}/libc/include"
-case "${host}" in
- *-*-cygwin32*)
- boehm_gc_cflags="[$]{boehm_gc_cflags} -I[$]{boehm_gc_flagbasedir}/../winsup/include"
- ;;
-esac
-
-boehm_gc_cflags="[$]{boehm_gc_cflags} -fno-builtin"
-
-BOEHM_GC_CFLAGS=${boehm_gc_cflags}
-AC_SUBST(BOEHM_GC_CFLAGS)
-]))
-
-))))
-
-sinclude(../libtool.m4)
-dnl The line below arranges for aclocal not to bring a definition of
-dnl AM_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[AC_DEFUN([AM_PROG_LIBTOOL],[AC_SUBST(LIBTOOL)])])
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# serial 1
-
-AC_DEFUN(AM_MAINTAINER_MODE,
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi])
-
diff --git a/boehm-gc/add_gc_prefix.c b/boehm-gc/add_gc_prefix.c
deleted file mode 100644
index 0d1ab6d4d36..00000000000
--- a/boehm-gc/add_gc_prefix.c
+++ /dev/null
@@ -1,14 +0,0 @@
-# include <stdio.h>
-
-int main(argc, argv, envp)
-int argc;
-char ** argv;
-char ** envp;
-{
- int i;
-
- for (i = 1; i < argc; i++) {
- printf("gc/%s ", argv[i]);
- }
- return(0);
-}
diff --git a/boehm-gc/allchblk.c b/boehm-gc/allchblk.c
deleted file mode 100644
index 1505f8e2c71..00000000000
--- a/boehm-gc/allchblk.c
+++ /dev/null
@@ -1,743 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1998-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#define DEBUG
-#undef DEBUG
-#include <stdio.h>
-#include "gc_priv.h"
-
-GC_bool GC_use_entire_heap = 0;
-
-/*
- * Free heap blocks are kept on one of several free lists,
- * depending on the size of the block. Each free list is doubly linked.
- * Adjacent free blocks are coalesced.
- */
-
-
-# define MAX_BLACK_LIST_ALLOC (2*HBLKSIZE)
- /* largest block we will allocate starting on a black */
- /* listed block. Must be >= HBLKSIZE. */
-
-
-# define UNIQUE_THRESHOLD 32
- /* Sizes up to this many HBLKs each have their own free list */
-# define HUGE_THRESHOLD 256
- /* Sizes of at least this many heap blocks are mapped to a */
- /* single free list. */
-# define FL_COMPRESSION 8
- /* In between sizes map this many distinct sizes to a single */
- /* bin. */
-
-# define N_HBLK_FLS (HUGE_THRESHOLD - UNIQUE_THRESHOLD)/FL_COMPRESSION \
- + UNIQUE_THRESHOLD
-
-struct hblk * GC_hblkfreelist[N_HBLK_FLS+1] = { 0 };
-
-/* Map a number of blocks to the appropriate large block free list index. */
-int GC_hblk_fl_from_blocks(blocks_needed)
-word blocks_needed;
-{
- if (blocks_needed <= UNIQUE_THRESHOLD) return blocks_needed;
- if (blocks_needed >= HUGE_THRESHOLD) return N_HBLK_FLS;
- return (blocks_needed - UNIQUE_THRESHOLD)/FL_COMPRESSION
- + UNIQUE_THRESHOLD;
-
-}
-
-# define HBLK_IS_FREE(hdr) ((hdr) -> hb_map == GC_invalid_map)
-# define PHDR(hhdr) HDR(hhdr -> hb_prev)
-# define NHDR(hhdr) HDR(hhdr -> hb_next)
-
-# ifdef USE_MUNMAP
-# define IS_MAPPED(hhdr) (((hhdr) -> hb_flags & WAS_UNMAPPED) == 0)
-# else /* !USE_MMAP */
-# define IS_MAPPED(hhdr) 1
-# endif /* USE_MUNMAP */
-
-# if !defined(NO_DEBUGGING)
-void GC_print_hblkfreelist()
-{
- struct hblk * h;
- word total_free = 0;
- hdr * hhdr;
- word sz;
- int i;
-
- for (i = 0; i <= N_HBLK_FLS; ++i) {
- h = GC_hblkfreelist[i];
- if (0 != h) GC_printf1("Free list %ld:\n", (unsigned long)i);
- while (h != 0) {
- hhdr = HDR(h);
- sz = hhdr -> hb_sz;
- GC_printf2("\t0x%lx size %lu ", (unsigned long)h, (unsigned long)sz);
- total_free += sz;
- if (GC_is_black_listed(h, HBLKSIZE) != 0) {
- GC_printf0("start black listed\n");
- } else if (GC_is_black_listed(h, hhdr -> hb_sz) != 0) {
- GC_printf0("partially black listed\n");
- } else {
- GC_printf0("not black listed\n");
- }
- h = hhdr -> hb_next;
- }
- }
- if (total_free != GC_large_free_bytes) {
- GC_printf1("GC_large_free_bytes = %lu (INCONSISTENT!!)\n",
- (unsigned long) GC_large_free_bytes);
- }
- GC_printf1("Total of %lu bytes on free list\n", (unsigned long)total_free);
-}
-
-/* Return the free list index on which the block described by the header */
-/* appears, or -1 if it appears nowhere. */
-int free_list_index_of(wanted)
-hdr * wanted;
-{
- struct hblk * h;
- hdr * hhdr;
- int i;
-
- for (i = 0; i <= N_HBLK_FLS; ++i) {
- h = GC_hblkfreelist[i];
- while (h != 0) {
- hhdr = HDR(h);
- if (hhdr == wanted) return i;
- h = hhdr -> hb_next;
- }
- }
- return -1;
-}
-
-void GC_dump_regions()
-{
- unsigned i;
- ptr_t start, end;
- ptr_t p;
- size_t bytes;
- hdr *hhdr;
- for (i = 0; i < GC_n_heap_sects; ++i) {
- start = GC_heap_sects[i].hs_start;
- bytes = GC_heap_sects[i].hs_bytes;
- end = start + bytes;
- /* Merge in contiguous sections. */
- while (i+1 < GC_n_heap_sects && GC_heap_sects[i+1].hs_start == end) {
- ++i;
- end = GC_heap_sects[i].hs_start + GC_heap_sects[i].hs_bytes;
- }
- GC_printf2("***Section from 0x%lx to 0x%lx\n", start, end);
- for (p = start; p < end;) {
- hhdr = HDR(p);
- GC_printf1("\t0x%lx ", (unsigned long)p);
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- GC_printf1("Missing header!!\n", hhdr);
- p += HBLKSIZE;
- continue;
- }
- if (HBLK_IS_FREE(hhdr)) {
- int correct_index = GC_hblk_fl_from_blocks(
- divHBLKSZ(hhdr -> hb_sz));
- int actual_index;
-
- GC_printf1("\tfree block of size 0x%lx bytes",
- (unsigned long)(hhdr -> hb_sz));
- if (IS_MAPPED(hhdr)) {
- GC_printf0("\n");
- } else {
- GC_printf0("(unmapped)\n");
- }
- actual_index = free_list_index_of(hhdr);
- if (-1 == actual_index) {
- GC_printf1("\t\tBlock not on free list %ld!!\n",
- correct_index);
- } else if (correct_index != actual_index) {
- GC_printf2("\t\tBlock on list %ld, should be on %ld!!\n",
- actual_index, correct_index);
- }
- p += hhdr -> hb_sz;
- } else {
- GC_printf1("\tused for blocks of size 0x%lx bytes\n",
- (unsigned long)WORDS_TO_BYTES(hhdr -> hb_sz));
- p += HBLKSIZE * OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz);
- }
- }
- }
-}
-
-# endif /* NO_DEBUGGING */
-
-/* Initialize hdr for a block containing the indicated size and */
-/* kind of objects. */
-/* Return FALSE on failure. */
-static GC_bool setup_header(hhdr, sz, kind, flags)
-register hdr * hhdr;
-word sz; /* object size in words */
-int kind;
-unsigned char flags;
-{
- register word descr;
-
- /* Add description of valid object pointers */
- if (!GC_add_map_entry(sz)) return(FALSE);
- hhdr -> hb_map = GC_obj_map[sz > MAXOBJSZ? 0 : sz];
-
- /* Set size, kind and mark proc fields */
- hhdr -> hb_sz = sz;
- hhdr -> hb_obj_kind = kind;
- hhdr -> hb_flags = flags;
- descr = GC_obj_kinds[kind].ok_descriptor;
- if (GC_obj_kinds[kind].ok_relocate_descr) descr += WORDS_TO_BYTES(sz);
- hhdr -> hb_descr = descr;
-
- /* Clear mark bits */
- GC_clear_hdr_marks(hhdr);
-
- hhdr -> hb_last_reclaimed = (unsigned short)GC_gc_no;
- return(TRUE);
-}
-
-#define FL_UNKNOWN -1
-/*
- * Remove hhdr from the appropriate free list.
- * We assume it is on the nth free list, or on the size
- * appropriate free list if n is FL_UNKNOWN.
- */
-void GC_remove_from_fl(hhdr, n)
-hdr * hhdr;
-int n;
-{
- GC_ASSERT(((hhdr -> hb_sz) & (HBLKSIZE-1)) == 0);
- if (hhdr -> hb_prev == 0) {
- int index;
- if (FL_UNKNOWN == n) {
- index = GC_hblk_fl_from_blocks(divHBLKSZ(hhdr -> hb_sz));
- } else {
- index = n;
- }
- GC_ASSERT(HDR(GC_hblkfreelist[index]) == hhdr);
- GC_hblkfreelist[index] = hhdr -> hb_next;
- } else {
- hdr *phdr;
- GET_HDR(hhdr -> hb_prev, phdr);
- phdr -> hb_next = hhdr -> hb_next;
- }
- if (0 != hhdr -> hb_next) {
- hdr * nhdr;
- GC_ASSERT(!IS_FORWARDING_ADDR_OR_NIL(NHDR(hhdr)));
- GET_HDR(hhdr -> hb_next, nhdr);
- nhdr -> hb_prev = hhdr -> hb_prev;
- }
-}
-
-/*
- * Return a pointer to the free block ending just before h, if any.
- */
-struct hblk * GC_free_block_ending_at(h)
-struct hblk *h;
-{
- struct hblk * p = h - 1;
- hdr * phdr;
-
- GET_HDR(p, phdr);
- while (0 != phdr && IS_FORWARDING_ADDR_OR_NIL(phdr)) {
- p = FORWARDED_ADDR(p,phdr);
- phdr = HDR(p);
- }
- if (0 != phdr) {
- if(HBLK_IS_FREE(phdr)) {
- return p;
- } else {
- return 0;
- }
- }
- p = GC_prev_block(h - 1);
- if (0 != p) {
- phdr = HDR(p);
- if (HBLK_IS_FREE(phdr) && (ptr_t)p + phdr -> hb_sz == (ptr_t)h) {
- return p;
- }
- }
- return 0;
-}
-
-/*
- * Add hhdr to the appropriate free list.
- * We maintain individual free lists sorted by address.
- */
-void GC_add_to_fl(h, hhdr)
-struct hblk *h;
-hdr * hhdr;
-{
- int index = GC_hblk_fl_from_blocks(divHBLKSZ(hhdr -> hb_sz));
- struct hblk *second = GC_hblkfreelist[index];
- hdr * second_hdr;
-# ifdef GC_ASSERTIONS
- struct hblk *next = (struct hblk *)((word)h + hhdr -> hb_sz);
- hdr * nexthdr = HDR(next);
- struct hblk *prev = GC_free_block_ending_at(h);
- hdr * prevhdr = HDR(prev);
- GC_ASSERT(nexthdr == 0 || !HBLK_IS_FREE(nexthdr) || !IS_MAPPED(nexthdr));
- GC_ASSERT(prev == 0 || !HBLK_IS_FREE(prevhdr) || !IS_MAPPED(prevhdr));
-# endif
- GC_ASSERT(((hhdr -> hb_sz) & (HBLKSIZE-1)) == 0);
- GC_hblkfreelist[index] = h;
- hhdr -> hb_next = second;
- hhdr -> hb_prev = 0;
- if (0 != second) {
- GET_HDR(second, second_hdr);
- second_hdr -> hb_prev = h;
- }
- GC_invalidate_map(hhdr);
-}
-
-#ifdef USE_MUNMAP
-
-/* Unmap blocks that haven't been recently touched. This is the only way */
-/* way blocks are ever unmapped. */
-void GC_unmap_old(void)
-{
- struct hblk * h;
- hdr * hhdr;
- word sz;
- unsigned short last_rec, threshold;
- int i;
-# define UNMAP_THRESHOLD 6
-
- for (i = 0; i <= N_HBLK_FLS; ++i) {
- for (h = GC_hblkfreelist[i]; 0 != h; h = hhdr -> hb_next) {
- hhdr = HDR(h);
- if (!IS_MAPPED(hhdr)) continue;
- threshold = (unsigned short)(GC_gc_no - UNMAP_THRESHOLD);
- last_rec = hhdr -> hb_last_reclaimed;
- if (last_rec > GC_gc_no
- || last_rec < threshold && threshold < GC_gc_no
- /* not recently wrapped */) {
- sz = hhdr -> hb_sz;
- GC_unmap((ptr_t)h, sz);
- hhdr -> hb_flags |= WAS_UNMAPPED;
- }
- }
- }
-}
-
-/* Merge all unmapped blocks that are adjacent to other free */
-/* blocks. This may involve remapping, since all blocks are either */
-/* fully mapped or fully unmapped. */
-void GC_merge_unmapped(void)
-{
- struct hblk * h, *next;
- hdr * hhdr, *nexthdr;
- word size, nextsize;
- int i;
-
- for (i = 0; i <= N_HBLK_FLS; ++i) {
- h = GC_hblkfreelist[i];
- while (h != 0) {
- GET_HDR(h, hhdr);
- size = hhdr->hb_sz;
- next = (struct hblk *)((word)h + size);
- GET_HDR(next, nexthdr);
- /* Coalesce with successor, if possible */
- if (0 != nexthdr && HBLK_IS_FREE(nexthdr)) {
- nextsize = nexthdr -> hb_sz;
- if (IS_MAPPED(hhdr)) {
- GC_ASSERT(!IS_MAPPED(nexthdr));
- /* make both consistent, so that we can merge */
- if (size > nextsize) {
- GC_remap((ptr_t)next, nextsize);
- } else {
- GC_unmap((ptr_t)h, size);
- hhdr -> hb_flags |= WAS_UNMAPPED;
- }
- } else if (IS_MAPPED(nexthdr)) {
- GC_ASSERT(!IS_MAPPED(hhdr));
- if (size > nextsize) {
- GC_unmap((ptr_t)next, nextsize);
- } else {
- GC_remap((ptr_t)h, size);
- hhdr -> hb_flags &= ~WAS_UNMAPPED;
- }
- } else {
- /* Unmap any gap in the middle */
- GC_unmap_gap((ptr_t)h, size, (ptr_t)next, nexthdr -> hb_sz);
- }
- /* If they are both unmapped, we merge, but leave unmapped. */
- GC_remove_from_fl(hhdr, i);
- GC_remove_from_fl(nexthdr, FL_UNKNOWN);
- hhdr -> hb_sz += nexthdr -> hb_sz;
- GC_remove_header(next);
- GC_add_to_fl(h, hhdr);
- /* Start over at beginning of list */
- h = GC_hblkfreelist[i];
- } else /* not mergable with successor */ {
- h = hhdr -> hb_next;
- }
- } /* while (h != 0) ... */
- } /* for ... */
-}
-
-#endif /* USE_MUNMAP */
-
-/*
- * Return a pointer to a block starting at h of length bytes.
- * Memory for the block is mapped.
- * Remove the block from its free list, and return the remainder (if any)
- * to its appropriate free list.
- * May fail by returning 0.
- * The header for the returned block must be set up by the caller.
- * If the return value is not 0, then hhdr is the header for it.
- */
-struct hblk * GC_get_first_part(h, hhdr, bytes, index)
-struct hblk *h;
-hdr * hhdr;
-word bytes;
-int index;
-{
- word total_size = hhdr -> hb_sz;
- struct hblk * rest;
- hdr * rest_hdr;
-
- GC_ASSERT((total_size & (HBLKSIZE-1)) == 0);
- GC_remove_from_fl(hhdr, index);
- if (total_size == bytes) return h;
- rest = (struct hblk *)((word)h + bytes);
- rest_hdr = GC_install_header(rest);
- if (0 == rest_hdr) return(0);
- rest_hdr -> hb_sz = total_size - bytes;
- rest_hdr -> hb_flags = 0;
-# ifdef GC_ASSERTIONS
- // Mark h not free, to avoid assertion about adjacent free blocks.
- hhdr -> hb_map = 0;
-# endif
- GC_add_to_fl(rest, rest_hdr);
- return h;
-}
-
-/*
- * H is a free block. N points at an address inside it.
- * A new header for n has already been set up. Fix up h's header
- * to reflect the fact that it is being split, move it to the
- * appropriate free list.
- * N replaces h in the original free list.
- *
- * Nhdr is not completely filled in, since it is about to allocated.
- * It may in fact end up on the wrong free list for its size.
- * (Hence adding it to a free list is silly. But this path is hopefully
- * rare enough that it doesn't matter. The code is cleaner this way.)
- */
-void GC_split_block(h, hhdr, n, nhdr, index)
-struct hblk *h;
-hdr * hhdr;
-struct hblk *n;
-hdr * nhdr;
-int index; /* Index of free list */
-{
- word total_size = hhdr -> hb_sz;
- word h_size = (word)n - (word)h;
- struct hblk *prev = hhdr -> hb_prev;
- struct hblk *next = hhdr -> hb_next;
-
- /* Replace h with n on its freelist */
- nhdr -> hb_prev = prev;
- nhdr -> hb_next = next;
- nhdr -> hb_sz = total_size - h_size;
- nhdr -> hb_flags = 0;
- if (0 != prev) {
- HDR(prev) -> hb_next = n;
- } else {
- GC_hblkfreelist[index] = n;
- }
- if (0 != next) {
- HDR(next) -> hb_prev = n;
- }
-# ifdef GC_ASSERTIONS
- nhdr -> hb_map = 0; /* Don't fail test for consecutive */
- /* free blocks in GC_add_to_fl. */
-# endif
-# ifdef USE_MUNMAP
- hhdr -> hb_last_reclaimed = GC_gc_no;
-# endif
- hhdr -> hb_sz = h_size;
- GC_add_to_fl(h, hhdr);
- GC_invalidate_map(nhdr);
-}
-
-struct hblk * GC_allochblk_nth();
-
-/*
- * Allocate (and return pointer to) a heap block
- * for objects of size sz words, searching the nth free list.
- *
- * NOTE: We set obj_map field in header correctly.
- * Caller is responsible for building an object freelist in block.
- *
- * We clear the block if it is destined for large objects, and if
- * kind requires that newly allocated objects be cleared.
- */
-struct hblk *
-GC_allochblk(sz, kind, flags)
-word sz;
-int kind;
-unsigned char flags; /* IGNORE_OFF_PAGE or 0 */
-{
- int start_list = GC_hblk_fl_from_blocks(OBJ_SZ_TO_BLOCKS(sz));
- int i;
- for (i = start_list; i <= N_HBLK_FLS; ++i) {
- struct hblk * result = GC_allochblk_nth(sz, kind, flags, i);
- if (0 != result) return result;
- }
- return 0;
-}
-/*
- * The same, but with search restricted to nth free list.
- */
-struct hblk *
-GC_allochblk_nth(sz, kind, flags, n)
-word sz;
-int kind;
-unsigned char flags; /* IGNORE_OFF_PAGE or 0 */
-int n;
-{
- register struct hblk *hbp;
- register hdr * hhdr; /* Header corr. to hbp */
- register struct hblk *thishbp;
- register hdr * thishdr; /* Header corr. to hbp */
- signed_word size_needed; /* number of bytes in requested objects */
- signed_word size_avail; /* bytes available in this block */
-
- size_needed = HBLKSIZE * OBJ_SZ_TO_BLOCKS(sz);
-
- /* search for a big enough block in free list */
- hbp = GC_hblkfreelist[n];
- for(; 0 != hbp; hbp = hhdr -> hb_next) {
- GET_HDR(hbp, hhdr);
- size_avail = hhdr->hb_sz;
- if (size_avail < size_needed) continue;
- if (!GC_use_entire_heap) {
- if (size_avail != size_needed
- && USED_HEAP_SIZE >= GC_requested_heapsize
- && !GC_incremental && GC_should_collect()) {
- continue;
- }
- }
- /* If the next heap block is obviously better, go on. */
- /* This prevents us from disassembling a single large block */
- /* to get tiny blocks. */
- {
- signed_word next_size;
-
- thishbp = hhdr -> hb_next;
- if (thishbp != 0) {
- GET_HDR(thishbp, thishdr);
- next_size = (signed_word)(thishdr -> hb_sz);
- if (next_size < size_avail
- && next_size >= size_needed
- && !GC_is_black_listed(thishbp, (word)size_needed)) {
- continue;
- }
- }
- }
- if ( !IS_UNCOLLECTABLE(kind) &&
- (kind != PTRFREE || size_needed > MAX_BLACK_LIST_ALLOC)) {
- struct hblk * lasthbp = hbp;
- ptr_t search_end = (ptr_t)hbp + size_avail - size_needed;
- signed_word orig_avail = size_avail;
- signed_word eff_size_needed = ((flags & IGNORE_OFF_PAGE)?
- HBLKSIZE
- : size_needed);
-
-
- while ((ptr_t)lasthbp <= search_end
- && (thishbp = GC_is_black_listed(lasthbp,
- (word)eff_size_needed))) {
- lasthbp = thishbp;
- }
- size_avail -= (ptr_t)lasthbp - (ptr_t)hbp;
- thishbp = lasthbp;
- if (size_avail >= size_needed) {
- if (thishbp != hbp &&
- 0 != (thishdr = GC_install_header(thishbp))) {
- /* Make sure it's mapped before we mangle it. */
-# ifdef USE_MUNMAP
- if (!IS_MAPPED(hhdr)) {
- GC_remap((ptr_t)hbp, size_avail);
- hhdr -> hb_flags &= ~WAS_UNMAPPED;
- }
-# endif
- /* Split the block at thishbp */
- GC_split_block(hbp, hhdr, thishbp, thishdr, n);
- /* Advance to thishbp */
- hbp = thishbp;
- hhdr = thishdr;
- /* We must now allocate thishbp, since it may */
- /* be on the wrong free list. */
- }
- } else if (size_needed > (signed_word)BL_LIMIT
- && orig_avail - size_needed
- > (signed_word)BL_LIMIT) {
- /* Punt, since anything else risks unreasonable heap growth. */
- WARN("Needed to allocate blacklisted block at 0x%lx\n",
- (word)hbp);
- size_avail = orig_avail;
- } else if (size_avail == 0 && size_needed == HBLKSIZE
- && IS_MAPPED(hhdr)) {
- if (!GC_find_leak) {
- static unsigned count = 0;
-
- /* The block is completely blacklisted. We need */
- /* to drop some such blocks, since otherwise we spend */
- /* all our time traversing them if pointerfree */
- /* blocks are unpopular. */
- /* A dropped block will be reconsidered at next GC. */
- if ((++count & 3) == 0) {
- /* Allocate and drop the block in small chunks, to */
- /* maximize the chance that we will recover some */
- /* later. */
- word total_size = hhdr -> hb_sz;
- struct hblk * limit = hbp + divHBLKSZ(total_size);
- struct hblk * h;
- struct hblk * prev = hhdr -> hb_prev;
-
- GC_words_wasted += total_size;
- GC_large_free_bytes -= total_size;
- GC_remove_from_fl(hhdr, n);
- for (h = hbp; h < limit; h++) {
- if (h == hbp || 0 != (hhdr = GC_install_header(h))) {
- (void) setup_header(
- hhdr,
- BYTES_TO_WORDS(HBLKSIZE - HDR_BYTES),
- PTRFREE, 0); /* Cant fail */
- if (GC_debugging_started) {
- BZERO(h + HDR_BYTES, HBLKSIZE - HDR_BYTES);
- }
- }
- }
- /* Restore hbp to point at free block */
- hbp = prev;
- if (0 == hbp) {
- return GC_allochblk_nth(sz, kind, flags, n);
- }
- hhdr = HDR(hbp);
- }
- }
- }
- }
- if( size_avail >= size_needed ) {
-# ifdef USE_MUNMAP
- if (!IS_MAPPED(hhdr)) {
- GC_remap((ptr_t)hbp, size_avail);
- hhdr -> hb_flags &= ~WAS_UNMAPPED;
- }
-# endif
- /* hbp may be on the wrong freelist; the parameter n */
- /* is important. */
- hbp = GC_get_first_part(hbp, hhdr, size_needed, n);
- break;
- }
- }
-
- if (0 == hbp) return 0;
-
- /* Notify virtual dirty bit implementation that we are about to write. */
- GC_write_hint(hbp);
-
- /* Add it to map of valid blocks */
- if (!GC_install_counts(hbp, (word)size_needed)) return(0);
- /* This leaks memory under very rare conditions. */
-
- /* Set up header */
- if (!setup_header(hhdr, sz, kind, flags)) {
- GC_remove_counts(hbp, (word)size_needed);
- return(0); /* ditto */
- }
-
- /* Clear block if necessary */
- if (GC_debugging_started
- || sz > MAXOBJSZ && GC_obj_kinds[kind].ok_init) {
- BZERO(hbp + HDR_BYTES, size_needed - HDR_BYTES);
- }
-
- /* We just successfully allocated a block. Restart count of */
- /* consecutive failures. */
- {
- extern unsigned GC_fail_count;
-
- GC_fail_count = 0;
- }
-
- GC_large_free_bytes -= size_needed;
-
- GC_ASSERT(IS_MAPPED(hhdr));
- return( hbp );
-}
-
-struct hblk * GC_freehblk_ptr = 0; /* Search position hint for GC_freehblk */
-
-/*
- * Free a heap block.
- *
- * Coalesce the block with its neighbors if possible.
- *
- * All mark words are assumed to be cleared.
- */
-void
-GC_freehblk(hbp)
-struct hblk *hbp;
-{
-struct hblk *next, *prev;
-hdr *hhdr, *prevhdr, *nexthdr;
-signed_word size;
-
-
- GET_HDR(hbp, hhdr);
- size = hhdr->hb_sz;
- size = HBLKSIZE * OBJ_SZ_TO_BLOCKS(size);
- GC_remove_counts(hbp, (word)size);
- hhdr->hb_sz = size;
-
- /* Check for duplicate deallocation in the easy case */
- if (HBLK_IS_FREE(hhdr)) {
- GC_printf1("Duplicate large block deallocation of 0x%lx\n",
- (unsigned long) hbp);
- }
-
- GC_ASSERT(IS_MAPPED(hhdr));
- GC_invalidate_map(hhdr);
- next = (struct hblk *)((word)hbp + size);
- GET_HDR(next, nexthdr);
- prev = GC_free_block_ending_at(hbp);
- /* Coalesce with successor, if possible */
- if(0 != nexthdr && HBLK_IS_FREE(nexthdr) && IS_MAPPED(nexthdr)) {
- GC_remove_from_fl(nexthdr, FL_UNKNOWN);
- hhdr -> hb_sz += nexthdr -> hb_sz;
- GC_remove_header(next);
- }
- /* Coalesce with predecessor, if possible. */
- if (0 != prev) {
- prevhdr = HDR(prev);
- if (IS_MAPPED(prevhdr)) {
- GC_remove_from_fl(prevhdr, FL_UNKNOWN);
- prevhdr -> hb_sz += hhdr -> hb_sz;
- GC_remove_header(hbp);
- hbp = prev;
- hhdr = prevhdr;
- }
- }
-
- GC_large_free_bytes += size;
- GC_add_to_fl(hbp, hhdr);
-}
-
diff --git a/boehm-gc/alloc.c b/boehm-gc/alloc.c
deleted file mode 100644
index 7b923885b96..00000000000
--- a/boehm-gc/alloc.c
+++ /dev/null
@@ -1,909 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1998 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-
-# include "gc_priv.h"
-
-# include <stdio.h>
-# ifndef MACOS
-# include <signal.h>
-# include <sys/types.h>
-# endif
-
-/*
- * Separate free lists are maintained for different sized objects
- * up to MAXOBJSZ.
- * The call GC_allocobj(i,k) ensures that the freelist for
- * kind k objects of size i points to a non-empty
- * free list. It returns a pointer to the first entry on the free list.
- * In a single-threaded world, GC_allocobj may be called to allocate
- * an object of (small) size i as follows:
- *
- * opp = &(GC_objfreelist[i]);
- * if (*opp == 0) GC_allocobj(i, NORMAL);
- * ptr = *opp;
- * *opp = obj_link(ptr);
- *
- * Note that this is very fast if the free list is non-empty; it should
- * only involve the execution of 4 or 5 simple instructions.
- * All composite objects on freelists are cleared, except for
- * their first word.
- */
-
-/*
- * The allocator uses GC_allochblk to allocate large chunks of objects.
- * These chunks all start on addresses which are multiples of
- * HBLKSZ. Each allocated chunk has an associated header,
- * which can be located quickly based on the address of the chunk.
- * (See headers.c for details.)
- * This makes it possible to check quickly whether an
- * arbitrary address corresponds to an object administered by the
- * allocator.
- */
-
-word GC_non_gc_bytes = 0; /* Number of bytes not intended to be collected */
-
-word GC_gc_no = 0;
-
-#ifndef SMALL_CONFIG
- int GC_incremental = 0; /* By default, stop the world. */
-#endif
-
-int GC_full_freq = 19; /* Every 20th collection is a full */
- /* collection, whether we need it */
- /* or not. */
-
-GC_bool GC_need_full_gc = FALSE;
- /* Need full GC do to heap growth. */
-
-word GC_used_heap_size_after_full = 0;
-
-char * GC_copyright[] =
-{"Copyright 1988,1989 Hans-J. Boehm and Alan J. Demers ",
-"Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved. ",
-"Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. ",
-"THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY",
-" EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.",
-"See source code for details." };
-
-# include "version.h"
-
-/* some more variables */
-
-extern signed_word GC_mem_found; /* Number of reclaimed longwords */
- /* after garbage collection */
-
-GC_bool GC_dont_expand = 0;
-
-word GC_free_space_divisor = 3;
-
-extern GC_bool GC_collection_in_progress();
- /* Collection is in progress, or was abandoned. */
-
-int GC_never_stop_func GC_PROTO((void)) { return(0); }
-
-CLOCK_TYPE GC_start_time; /* Time at which we stopped world. */
- /* used only in GC_timeout_stop_func. */
-
-int GC_n_attempts = 0; /* Number of attempts at finishing */
- /* collection within TIME_LIMIT */
-
-#ifdef SMALL_CONFIG
-# define GC_timeout_stop_func GC_never_stop_func
-#else
- int GC_timeout_stop_func GC_PROTO((void))
- {
- CLOCK_TYPE current_time;
- static unsigned count = 0;
- unsigned long time_diff;
-
- if ((count++ & 3) != 0) return(0);
-#ifndef NO_CLOCK
- GET_TIME(current_time);
- time_diff = MS_TIME_DIFF(current_time,GC_start_time);
- if (time_diff >= TIME_LIMIT) {
-# ifdef PRINTSTATS
- GC_printf0("Abandoning stopped marking after ");
- GC_printf1("%lu msecs", (unsigned long)time_diff);
- GC_printf1("(attempt %d)\n", (unsigned long) GC_n_attempts);
-# endif
- return(1);
- }
-#endif
- return(0);
- }
-#endif /* !SMALL_CONFIG */
-
-/* Return the minimum number of words that must be allocated between */
-/* collections to amortize the collection cost. */
-static word min_words_allocd()
-{
-# ifdef THREADS
- /* We punt, for now. */
- register signed_word stack_size = 10000;
-# else
- int dummy;
- register signed_word stack_size = (ptr_t)(&dummy) - GC_stackbottom;
-# endif
- word total_root_size; /* includes double stack size, */
- /* since the stack is expensive */
- /* to scan. */
- word scan_size; /* Estimate of memory to be scanned */
- /* during normal GC. */
-
- if (stack_size < 0) stack_size = -stack_size;
- total_root_size = 2 * stack_size + GC_root_size;
- scan_size = BYTES_TO_WORDS(GC_heapsize - GC_large_free_bytes
- + (GC_large_free_bytes >> 2)
- /* use a bit more of large empty heap */
- + total_root_size);
- if (GC_incremental) {
- return scan_size / (2 * GC_free_space_divisor);
- } else {
- return scan_size / GC_free_space_divisor;
- }
-}
-
-/* Return the number of words allocated, adjusted for explicit storage */
-/* management, etc.. This number is used in deciding when to trigger */
-/* collections. */
-word GC_adj_words_allocd()
-{
- register signed_word result;
- register signed_word expl_managed =
- BYTES_TO_WORDS((long)GC_non_gc_bytes
- - (long)GC_non_gc_bytes_at_gc);
-
- /* Don't count what was explicitly freed, or newly allocated for */
- /* explicit management. Note that deallocating an explicitly */
- /* managed object should not alter result, assuming the client */
- /* is playing by the rules. */
- result = (signed_word)GC_words_allocd
- - (signed_word)GC_mem_freed - expl_managed;
- if (result > (signed_word)GC_words_allocd) {
- result = GC_words_allocd;
- /* probably client bug or unfortunate scheduling */
- }
- result += GC_words_finalized;
- /* We count objects enqueued for finalization as though they */
- /* had been reallocated this round. Finalization is user */
- /* visible progress. And if we don't count this, we have */
- /* stability problems for programs that finalize all objects. */
- result += GC_words_wasted;
- /* This doesn't reflect useful work. But if there is lots of */
- /* new fragmentation, the same is probably true of the heap, */
- /* and the collection will be correspondingly cheaper. */
- if (result < (signed_word)(GC_words_allocd >> 3)) {
- /* Always count at least 1/8 of the allocations. We don't want */
- /* to collect too infrequently, since that would inhibit */
- /* coalescing of free storage blocks. */
- /* This also makes us partially robust against client bugs. */
- return(GC_words_allocd >> 3);
- } else {
- return(result);
- }
-}
-
-
-/* Clear up a few frames worth of garbage left at the top of the stack. */
-/* This is used to prevent us from accidentally treating garbade left */
-/* on the stack by other parts of the collector as roots. This */
-/* differs from the code in misc.c, which actually tries to keep the */
-/* stack clear of long-lived, client-generated garbage. */
-void GC_clear_a_few_frames()
-{
-# define NWORDS 64
- word frames[NWORDS];
- register int i;
-
- for (i = 0; i < NWORDS; i++) frames[i] = 0;
-}
-
-/* Have we allocated enough to amortize a collection? */
-GC_bool GC_should_collect()
-{
- return(GC_adj_words_allocd() >= min_words_allocd());
-}
-
-
-void GC_notify_full_gc()
-{
- if (GC_start_call_back != (void (*)())0) {
- (*GC_start_call_back)();
- }
-}
-
-GC_bool GC_is_full_gc = FALSE;
-
-/*
- * Initiate a garbage collection if appropriate.
- * Choose judiciously
- * between partial, full, and stop-world collections.
- * Assumes lock held, signals disabled.
- */
-void GC_maybe_gc()
-{
- static int n_partial_gcs = 0;
-
- if (GC_should_collect()) {
- if (!GC_incremental) {
- GC_notify_full_gc();
- GC_gcollect_inner();
- n_partial_gcs = 0;
- return;
- } else if (GC_need_full_gc || n_partial_gcs >= GC_full_freq) {
-# ifdef PRINTSTATS
- GC_printf2(
- "***>Full mark for collection %lu after %ld allocd bytes\n",
- (unsigned long) GC_gc_no+1,
- (long)WORDS_TO_BYTES(GC_words_allocd));
-# endif
- GC_promote_black_lists();
- (void)GC_reclaim_all((GC_stop_func)0, TRUE);
- GC_clear_marks();
- n_partial_gcs = 0;
- GC_notify_full_gc();
- GC_is_full_gc = TRUE;
- } else {
- n_partial_gcs++;
- }
- /* We try to mark with the world stopped. */
- /* If we run out of time, this turns into */
- /* incremental marking. */
-#ifndef NO_CLOCK
- GET_TIME(GC_start_time);
-#endif
- if (GC_stopped_mark(GC_timeout_stop_func)) {
-# ifdef SAVE_CALL_CHAIN
- GC_save_callers(GC_last_stack);
-# endif
- GC_finish_collection();
- } else {
- if (!GC_is_full_gc) {
- /* Count this as the first attempt */
- GC_n_attempts++;
- }
- }
- }
-}
-
-
-/*
- * Stop the world garbage collection. Assumes lock held, signals disabled.
- * If stop_func is not GC_never_stop_func, then abort if stop_func returns TRUE.
- */
-GC_bool GC_try_to_collect_inner(stop_func)
-GC_stop_func stop_func;
-{
- if (GC_incremental && GC_collection_in_progress()) {
-# ifdef PRINTSTATS
- GC_printf0(
- "GC_try_to_collect_inner: finishing collection in progress\n");
-# endif /* PRINTSTATS */
- /* Just finish collection already in progress. */
- while(GC_collection_in_progress()) {
- if (stop_func()) return(FALSE);
- GC_collect_a_little_inner(1);
- }
- }
-# ifdef PRINTSTATS
- GC_printf2(
- "Initiating full world-stop collection %lu after %ld allocd bytes\n",
- (unsigned long) GC_gc_no+1,
- (long)WORDS_TO_BYTES(GC_words_allocd));
-# endif
- GC_promote_black_lists();
- /* Make sure all blocks have been reclaimed, so sweep routines */
- /* don't see cleared mark bits. */
- /* If we're guaranteed to finish, then this is unnecessary. */
- if (stop_func != GC_never_stop_func
- && !GC_reclaim_all(stop_func, FALSE)) {
- /* Aborted. So far everything is still consistent. */
- return(FALSE);
- }
- GC_invalidate_mark_state(); /* Flush mark stack. */
- GC_clear_marks();
-# ifdef SAVE_CALL_CHAIN
- GC_save_callers(GC_last_stack);
-# endif
- GC_is_full_gc = TRUE;
- if (!GC_stopped_mark(stop_func)) {
- if (!GC_incremental) {
- /* We're partially done and have no way to complete or use */
- /* current work. Reestablish invariants as cheaply as */
- /* possible. */
- GC_invalidate_mark_state();
- GC_unpromote_black_lists();
- } /* else we claim the world is already still consistent. We'll */
- /* finish incrementally. */
- return(FALSE);
- }
- GC_finish_collection();
- return(TRUE);
-}
-
-
-
-/*
- * Perform n units of garbage collection work. A unit is intended to touch
- * roughly GC_RATE pages. Every once in a while, we do more than that.
- * This needa to be a fairly large number with our current incremental
- * GC strategy, since otherwise we allocate too much during GC, and the
- * cleanup gets expensive.
- */
-# define GC_RATE 10
-# define MAX_PRIOR_ATTEMPTS 1
- /* Maximum number of prior attempts at world stop marking */
- /* A value of 1 means that we finish the seconf time, no matter */
- /* how long it takes. Doesn't count the initial root scan */
- /* for a full GC. */
-
-int GC_deficit = 0; /* The number of extra calls to GC_mark_some */
- /* that we have made. */
-
-void GC_collect_a_little_inner(n)
-int n;
-{
- register int i;
-
- if (GC_incremental && GC_collection_in_progress()) {
- for (i = GC_deficit; i < GC_RATE*n; i++) {
- if (GC_mark_some((ptr_t)0)) {
- /* Need to finish a collection */
-# ifdef SAVE_CALL_CHAIN
- GC_save_callers(GC_last_stack);
-# endif
- if (GC_n_attempts < MAX_PRIOR_ATTEMPTS) {
- GET_TIME(GC_start_time);
- if (!GC_stopped_mark(GC_timeout_stop_func)) {
- GC_n_attempts++;
- break;
- }
- } else {
- (void)GC_stopped_mark(GC_never_stop_func);
- }
- GC_finish_collection();
- break;
- }
- }
- if (GC_deficit > 0) GC_deficit -= GC_RATE*n;
- if (GC_deficit < 0) GC_deficit = 0;
- } else {
- GC_maybe_gc();
- }
-}
-
-int GC_collect_a_little GC_PROTO(())
-{
- int result;
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_collect_a_little_inner(1);
- result = (int)GC_collection_in_progress();
- UNLOCK();
- ENABLE_SIGNALS();
- return(result);
-}
-
-/*
- * Assumes lock is held, signals are disabled.
- * We stop the world.
- * If stop_func() ever returns TRUE, we may fail and return FALSE.
- * Increment GC_gc_no if we succeed.
- */
-GC_bool GC_stopped_mark(stop_func)
-GC_stop_func stop_func;
-{
- register int i;
- int dummy;
-# ifdef PRINTSTATS
- CLOCK_TYPE start_time, current_time;
-# endif
-
- STOP_WORLD();
-# ifdef PRINTSTATS
- GET_TIME(start_time);
- GC_printf1("--> Marking for collection %lu ",
- (unsigned long) GC_gc_no + 1);
- GC_printf2("after %lu allocd bytes + %lu wasted bytes\n",
- (unsigned long) WORDS_TO_BYTES(GC_words_allocd),
- (unsigned long) WORDS_TO_BYTES(GC_words_wasted));
-# endif
-
- /* Mark from all roots. */
- /* Minimize junk left in my registers and on the stack */
- GC_clear_a_few_frames();
- GC_noop(0,0,0,0,0,0);
- GC_initiate_gc();
- for(i = 0;;i++) {
- if ((*stop_func)()) {
-# ifdef PRINTSTATS
- GC_printf0("Abandoned stopped marking after ");
- GC_printf1("%lu iterations\n",
- (unsigned long)i);
-# endif
- GC_deficit = i; /* Give the mutator a chance. */
- START_WORLD();
- return(FALSE);
- }
- if (GC_mark_some((ptr_t)(&dummy))) break;
- }
-
- GC_gc_no++;
-# ifdef PRINTSTATS
- GC_printf2("Collection %lu reclaimed %ld bytes",
- (unsigned long) GC_gc_no - 1,
- (long)WORDS_TO_BYTES(GC_mem_found));
- GC_printf1(" ---> heapsize = %lu bytes\n",
- (unsigned long) GC_heapsize);
- /* Printf arguments may be pushed in funny places. Clear the */
- /* space. */
- GC_printf0("");
-# endif
-
- /* Check all debugged objects for consistency */
- if (GC_debugging_started) {
- (*GC_check_heap)();
- }
-
-# ifdef PRINTTIMES
- GET_TIME(current_time);
- GC_printf1("World-stopped marking took %lu msecs\n",
- MS_TIME_DIFF(current_time,start_time));
-# endif
- START_WORLD();
- return(TRUE);
-}
-
-
-/* Finish up a collection. Assumes lock is held, signals are disabled, */
-/* but the world is otherwise running. */
-void GC_finish_collection()
-{
-# ifdef PRINTTIMES
- CLOCK_TYPE start_time;
- CLOCK_TYPE finalize_time;
- CLOCK_TYPE done_time;
-
- GET_TIME(start_time);
- finalize_time = start_time;
-# endif
-
-# ifdef GATHERSTATS
- GC_mem_found = 0;
-# endif
- if (GC_find_leak) {
- /* Mark all objects on the free list. All objects should be */
- /* marked when we're done. */
- {
- register word size; /* current object size */
- register ptr_t p; /* pointer to current object */
- register struct hblk * h; /* pointer to block containing *p */
- register hdr * hhdr;
- register int word_no; /* "index" of *p in *q */
- int kind;
-
- for (kind = 0; kind < GC_n_kinds; kind++) {
- for (size = 1; size <= MAXOBJSZ; size++) {
- for (p= GC_obj_kinds[kind].ok_freelist[size];
- p != 0; p=obj_link(p)){
- h = HBLKPTR(p);
- hhdr = HDR(h);
- word_no = (((word *)p) - ((word *)h));
- set_mark_bit_from_hdr(hhdr, word_no);
- }
- }
- }
- }
- GC_start_reclaim(TRUE);
- /* The above just checks; it doesn't really reclaim anything. */
- }
-
- GC_finalize();
-# ifdef STUBBORN_ALLOC
- GC_clean_changing_list();
-# endif
-
-# ifdef PRINTTIMES
- GET_TIME(finalize_time);
-# endif
-
- /* Clear free list mark bits, in case they got accidentally marked */
- /* Note: HBLKPTR(p) == pointer to head of block containing *p */
- /* (or GC_find_leak is set and they were intentionally marked.) */
- /* Also subtract memory remaining from GC_mem_found count. */
- /* Note that composite objects on free list are cleared. */
- /* Thus accidentally marking a free list is not a problem; only */
- /* objects on the list itself will be marked, and that's fixed here. */
- {
- register word size; /* current object size */
- register ptr_t p; /* pointer to current object */
- register struct hblk * h; /* pointer to block containing *p */
- register hdr * hhdr;
- register int word_no; /* "index" of *p in *q */
- int kind;
-
- for (kind = 0; kind < GC_n_kinds; kind++) {
- for (size = 1; size <= MAXOBJSZ; size++) {
- for (p= GC_obj_kinds[kind].ok_freelist[size];
- p != 0; p=obj_link(p)){
- h = HBLKPTR(p);
- hhdr = HDR(h);
- word_no = (((word *)p) - ((word *)h));
- clear_mark_bit_from_hdr(hhdr, word_no);
-# ifdef GATHERSTATS
- GC_mem_found -= size;
-# endif
- }
- }
- }
- }
-
-
-# ifdef PRINTSTATS
- GC_printf1("Bytes recovered before sweep - f.l. count = %ld\n",
- (long)WORDS_TO_BYTES(GC_mem_found));
-# endif
- /* Reconstruct free lists to contain everything not marked */
- GC_start_reclaim(FALSE);
- if (GC_is_full_gc) {
- GC_used_heap_size_after_full = USED_HEAP_SIZE;
- GC_need_full_gc = FALSE;
- } else {
- GC_need_full_gc =
- BYTES_TO_WORDS(USED_HEAP_SIZE - GC_used_heap_size_after_full)
- > min_words_allocd();
- }
-
-# ifdef PRINTSTATS
- GC_printf2(
- "Immediately reclaimed %ld bytes in heap of size %lu bytes",
- (long)WORDS_TO_BYTES(GC_mem_found),
- (unsigned long)GC_heapsize);
-# ifdef USE_MUNMAP
- GC_printf1("(%lu unmapped)", GC_unmapped_bytes);
-# endif
- GC_printf2(
- "\n%lu (atomic) + %lu (composite) collectable bytes in use\n",
- (unsigned long)WORDS_TO_BYTES(GC_atomic_in_use),
- (unsigned long)WORDS_TO_BYTES(GC_composite_in_use));
-# endif
-
- GC_n_attempts = 0;
- GC_is_full_gc = FALSE;
- /* Reset or increment counters for next cycle */
- GC_words_allocd_before_gc += GC_words_allocd;
- GC_non_gc_bytes_at_gc = GC_non_gc_bytes;
- GC_words_allocd = 0;
- GC_words_wasted = 0;
- GC_mem_freed = 0;
-
-# ifdef USE_MUNMAP
- GC_unmap_old();
-# endif
-# ifdef PRINTTIMES
- GET_TIME(done_time);
- GC_printf2("Finalize + initiate sweep took %lu + %lu msecs\n",
- MS_TIME_DIFF(finalize_time,start_time),
- MS_TIME_DIFF(done_time,finalize_time));
-# endif
-}
-
-/* Externally callable routine to invoke full, stop-world collection */
-# if defined(__STDC__) || defined(__cplusplus)
- int GC_try_to_collect(GC_stop_func stop_func)
-# else
- int GC_try_to_collect(stop_func)
- GC_stop_func stop_func;
-# endif
-{
- int result;
- DCL_LOCK_STATE;
-
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- ENTER_GC();
- if (!GC_is_initialized) GC_init_inner();
- /* Minimize junk left in my registers */
- GC_noop(0,0,0,0,0,0);
- result = (int)GC_try_to_collect_inner(stop_func);
- EXIT_GC();
- UNLOCK();
- ENABLE_SIGNALS();
- if(result) GC_INVOKE_FINALIZERS();
- return(result);
-}
-
-void GC_gcollect GC_PROTO(())
-{
- GC_notify_full_gc();
- (void)GC_try_to_collect(GC_never_stop_func);
-}
-
-word GC_n_heap_sects = 0; /* Number of sections currently in heap. */
-
-/*
- * Use the chunk of memory starting at p of size bytes as part of the heap.
- * Assumes p is HBLKSIZE aligned, and bytes is a multiple of HBLKSIZE.
- */
-void GC_add_to_heap(p, bytes)
-struct hblk *p;
-word bytes;
-{
- word words;
- hdr * phdr;
-
- if (GC_n_heap_sects >= MAX_HEAP_SECTS) {
- ABORT("Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS");
- }
- phdr = GC_install_header(p);
- if (0 == phdr) {
- /* This is extremely unlikely. Can't add it. This will */
- /* almost certainly result in a 0 return from the allocator, */
- /* which is entirely appropriate. */
- return;
- }
- GC_heap_sects[GC_n_heap_sects].hs_start = (ptr_t)p;
- GC_heap_sects[GC_n_heap_sects].hs_bytes = bytes;
- GC_n_heap_sects++;
- words = BYTES_TO_WORDS(bytes - HDR_BYTES);
- phdr -> hb_sz = words;
- phdr -> hb_map = (char *)1; /* A value != GC_invalid_map */
- phdr -> hb_flags = 0;
- GC_freehblk(p);
- GC_heapsize += bytes;
- if ((ptr_t)p <= GC_least_plausible_heap_addr
- || GC_least_plausible_heap_addr == 0) {
- GC_least_plausible_heap_addr = (ptr_t)p - sizeof(word);
- /* Making it a little smaller than necessary prevents */
- /* us from getting a false hit from the variable */
- /* itself. There's some unintentional reflection */
- /* here. */
- }
- if ((ptr_t)p + bytes >= GC_greatest_plausible_heap_addr) {
- GC_greatest_plausible_heap_addr = (ptr_t)p + bytes;
- }
-}
-
-# if !defined(NO_DEBUGGING)
-void GC_print_heap_sects()
-{
- register unsigned i;
-
- GC_printf1("Total heap size: %lu\n", (unsigned long) GC_heapsize);
- for (i = 0; i < GC_n_heap_sects; i++) {
- unsigned long start = (unsigned long) GC_heap_sects[i].hs_start;
- unsigned long len = (unsigned long) GC_heap_sects[i].hs_bytes;
- struct hblk *h;
- unsigned nbl = 0;
-
- GC_printf3("Section %ld from 0x%lx to 0x%lx ", (unsigned long)i,
- start, (unsigned long)(start + len));
- for (h = (struct hblk *)start; h < (struct hblk *)(start + len); h++) {
- if (GC_is_black_listed(h, HBLKSIZE)) nbl++;
- }
- GC_printf2("%lu/%lu blacklisted\n", (unsigned long)nbl,
- (unsigned long)(len/HBLKSIZE));
- }
-}
-# endif
-
-ptr_t GC_least_plausible_heap_addr = (ptr_t)ONES;
-ptr_t GC_greatest_plausible_heap_addr = 0;
-
-ptr_t GC_max(x,y)
-ptr_t x, y;
-{
- return(x > y? x : y);
-}
-
-ptr_t GC_min(x,y)
-ptr_t x, y;
-{
- return(x < y? x : y);
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- void GC_set_max_heap_size(GC_word n)
-# else
- void GC_set_max_heap_size(n)
- GC_word n;
-# endif
-{
- GC_max_heapsize = n;
-}
-
-GC_word GC_max_retries = 0;
-
-/*
- * this explicitly increases the size of the heap. It is used
- * internally, but may also be invoked from GC_expand_hp by the user.
- * The argument is in units of HBLKSIZE.
- * Tiny values of n are rounded up.
- * Returns FALSE on failure.
- */
-GC_bool GC_expand_hp_inner(n)
-word n;
-{
- word bytes;
- struct hblk * space;
- word expansion_slop; /* Number of bytes by which we expect the */
- /* heap to expand soon. */
-
- if (n < MINHINCR) n = MINHINCR;
- bytes = n * HBLKSIZE;
- /* Make sure bytes is a multiple of GC_page_size */
- {
- word mask = GC_page_size - 1;
- bytes += mask;
- bytes &= ~mask;
- }
-
- if (GC_max_heapsize != 0 && GC_heapsize + bytes > GC_max_heapsize) {
- /* Exceeded self-imposed limit */
- return(FALSE);
- }
- space = GET_MEM(bytes);
- if( space == 0 ) {
- return(FALSE);
- }
-# ifdef PRINTSTATS
- GC_printf2("Increasing heap size by %lu after %lu allocated bytes\n",
- (unsigned long)bytes,
- (unsigned long)WORDS_TO_BYTES(GC_words_allocd));
-# ifdef UNDEFINED
- GC_printf1("Root size = %lu\n", GC_root_size);
- GC_print_block_list(); GC_print_hblkfreelist();
- GC_printf0("\n");
-# endif
-# endif
- expansion_slop = 8 * WORDS_TO_BYTES(min_words_allocd());
- if (5 * HBLKSIZE * MAXHINCR > expansion_slop) {
- expansion_slop = 5 * HBLKSIZE * MAXHINCR;
- }
- if (GC_last_heap_addr == 0 && !((word)space & SIGNB)
- || GC_last_heap_addr != 0 && GC_last_heap_addr < (ptr_t)space) {
- /* Assume the heap is growing up */
- GC_greatest_plausible_heap_addr =
- GC_max(GC_greatest_plausible_heap_addr,
- (ptr_t)space + bytes + expansion_slop);
- } else {
- /* Heap is growing down */
- GC_least_plausible_heap_addr =
- GC_min(GC_least_plausible_heap_addr,
- (ptr_t)space - expansion_slop);
- }
- GC_prev_heap_addr = GC_last_heap_addr;
- GC_last_heap_addr = (ptr_t)space;
- GC_add_to_heap(space, bytes);
- return(TRUE);
-}
-
-/* Really returns a bool, but it's externally visible, so that's clumsy. */
-/* Arguments is in bytes. */
-# if defined(__STDC__) || defined(__cplusplus)
- int GC_expand_hp(size_t bytes)
-# else
- int GC_expand_hp(bytes)
- size_t bytes;
-# endif
-{
- int result;
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- if (!GC_is_initialized) GC_init_inner();
- result = (int)GC_expand_hp_inner(divHBLKSZ((word)bytes));
- if (result) GC_requested_heapsize += bytes;
- UNLOCK();
- ENABLE_SIGNALS();
- return(result);
-}
-
-unsigned GC_fail_count = 0;
- /* How many consecutive GC/expansion failures? */
- /* Reset by GC_allochblk. */
-
-GC_bool GC_collect_or_expand(needed_blocks, ignore_off_page)
-word needed_blocks;
-GC_bool ignore_off_page;
-{
- if (!GC_incremental && !GC_dont_gc &&
- (GC_dont_expand && GC_words_allocd > 0 || GC_should_collect())) {
- GC_notify_full_gc();
- GC_gcollect_inner();
- } else {
- word blocks_to_get = GC_heapsize/(HBLKSIZE*GC_free_space_divisor)
- + needed_blocks;
-
- if (blocks_to_get > MAXHINCR) {
- word slop;
-
- if (ignore_off_page) {
- slop = 4;
- } else {
- slop = 2*divHBLKSZ(BL_LIMIT);
- if (slop > needed_blocks) slop = needed_blocks;
- }
- if (needed_blocks + slop > MAXHINCR) {
- blocks_to_get = needed_blocks + slop;
- } else {
- blocks_to_get = MAXHINCR;
- }
- }
- if (!GC_expand_hp_inner(blocks_to_get)
- && !GC_expand_hp_inner(needed_blocks)) {
- if (GC_fail_count++ < GC_max_retries) {
- WARN("Out of Memory! Trying to continue ...\n", 0);
- GC_notify_full_gc();
- GC_gcollect_inner();
- } else {
- WARN("Out of Memory! Returning NIL!\n", 0);
- return(FALSE);
- }
- } else {
-# ifdef PRINTSTATS
- if (GC_fail_count) {
- GC_printf0("Memory available again ...\n");
- }
-# endif
- }
- }
- return(TRUE);
-}
-
-/*
- * Make sure the object free list for sz is not empty.
- * Return a pointer to the first object on the free list.
- * The object MUST BE REMOVED FROM THE FREE LIST BY THE CALLER.
- * Assumes we hold the allocator lock and signals are disabled.
- *
- */
-ptr_t GC_allocobj(sz, kind)
-word sz;
-int kind;
-{
- register ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
-
- if (sz == 0) return(0);
-
- while (*flh == 0) {
- ENTER_GC();
- /* Do our share of marking work */
- if(GC_incremental && !GC_dont_gc) GC_collect_a_little_inner(1);
- /* Sweep blocks for objects of this size */
- GC_continue_reclaim(sz, kind);
- EXIT_GC();
- if (*flh == 0) {
- GC_new_hblk(sz, kind);
- }
- if (*flh == 0) {
- ENTER_GC();
- if (!GC_collect_or_expand((word)1,FALSE)) {
- EXIT_GC();
- return(0);
- }
- EXIT_GC();
- }
- }
-
- return(*flh);
-}
diff --git a/boehm-gc/alpha_mach_dep.s b/boehm-gc/alpha_mach_dep.s
deleted file mode 100644
index 124de696601..00000000000
--- a/boehm-gc/alpha_mach_dep.s
+++ /dev/null
@@ -1,63 +0,0 @@
-
-# This is BROKEN on a 21264 running gcc, and probably in other cases.
-# The compiler may spill pointers to fp registers, and this code doesn't
-# scan those.
-
-# define call_push(x) \
- lda $16, 0(x); /* copy x to first argument register */ \
- jsr $26, GC_push_one; /* call GC_push_one, ret addr in $26 */ \
- ldgp $gp, 0($26) /* restore $gp register from $ra */
-
- .text
- .align 4
- .globl GC_push_regs
- .ent GC_push_regs 2
-GC_push_regs:
- ldgp $gp, 0($27) # set gp from the procedure value reg
- lda $sp, -32($sp) # make stack frame
- stq $26, 8($sp) # save return address
- .mask 0x04000000, -8
- .frame $sp, 16, $26, 0
-
- # call_push($0) # expression eval and int func result
-
- # call_push($1) # temp regs - not preserved cross calls
- # call_push($2)
- # call_push($3)
- # call_push($4)
- # call_push($5)
- # call_push($6)
- # call_push($7)
- # call_push($8)
-
- call_push($9) # Saved regs
- call_push($10)
- call_push($11)
- call_push($12)
- call_push($13)
- call_push($14)
-
- call_push($15) # frame ptr or saved reg
-
- # call_push($16) # argument regs - not preserved cross calls
- # call_push($17)
- # call_push($18)
- # call_push($19)
- # call_push($20)
- # call_push($21)
-
- # call_push($22) # temp regs - not preserved cross calls
- # call_push($23)
- # call_push($24)
- # call_push($25)
-
- # call_push($26) # return address - expression eval
- # call_push($27) # procedure value or temporary reg
- # call_push($28) # assembler temp - not presrved
- call_push($29) # Global Pointer
- # call_push($30) # Stack Pointer
-
- ldq $26, 8($sp) # restore return address
- lda $sp, 32($sp) # pop stack frame
- ret $31, ($26), 1 # return ($31 == hardwired zero)
- .end GC_push_regs
diff --git a/boehm-gc/backptr.h b/boehm-gc/backptr.h
deleted file mode 100644
index f5b7c5aa2b9..00000000000
--- a/boehm-gc/backptr.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * This is a simple API to implement pointer back tracing, i.e.
- * to answer questions such as "who is pointing to this" or
- * "why is this object being retained by the collector"
- *
- * This API assumes that we have an ANSI C compiler.
- *
- * Most of these calls yield useful information on only after
- * a garbage collection. Usually the client will first force
- * a full collection and then gather information, preferably
- * before much intervening allocation.
- *
- * The implementation of the interface is only about 99.9999%
- * correct. It is intended to be good enough for profiling,
- * but is not intended to be used with production code.
- *
- * Results are likely to be much more useful if all allocation is
- * accomplished through the debugging allocators.
- *
- * The implementation idea is due to A. Demers.
- */
-
-/* Store information about the object referencing dest in *base_p */
-/* and *offset_p. */
-/* If multiple objects or roots point to dest, the one reported */
-/* will be the last on used by the garbage collector to trace the */
-/* object. */
-/* source is root ==> *base_p = address, *offset_p = 0 */
-/* source is heap object ==> *base_p != 0, *offset_p = offset */
-/* Returns 1 on success, 0 if source couldn't be determined. */
-/* Dest can be any address within a heap object. */
-typedef enum { GC_UNREFERENCED, /* No reference info available. */
- GC_NO_SPACE, /* Dest not allocated with debug alloc */
- GC_REFD_FROM_ROOT, /* Referenced directly by root *base_p */
- GC_REFD_FROM_REG, /* Referenced from a register, i.e. */
- /* a root without an address. */
- GC_REFD_FROM_HEAP, /* Referenced from another heap obj. */
- GC_FINALIZER_REFD /* Finalizable and hence accessible. */
-} GC_ref_kind;
-
-GC_ref_kind GC_get_back_ptr_info(void *dest, void **base_p, size_t *offset_p);
-
-/* Generate a random heap address. */
-/* The resulting address is in the heap, but */
-/* not necessarily inside a valid object. */
-void * GC_generate_random_heap_address(void);
-
-/* Generate a random address inside a valid marked heap object. */
-void * GC_generate_random_valid_address(void);
-
-/* Force a garbage collection and generate a backtrace from a */
-/* random heap address. */
-/* This uses the GC logging mechanism (GC_printf) to produce */
-/* output. It can often be called from a debugger. The */
-/* source in dbg_mlc.c also serves as a sample client. */
-void GC_generate_random_backtrace(void);
-
-/* Print a backtrace from a specific address. Used by the */
-/* above. The client should call GC_gcollect() immediately */
-/* before invocation. */
-void GC_print_backtrace(void *);
-
-
diff --git a/boehm-gc/barrett_diagram b/boehm-gc/barrett_diagram
deleted file mode 100644
index 27e80dc15cd..00000000000
--- a/boehm-gc/barrett_diagram
+++ /dev/null
@@ -1,106 +0,0 @@
-This is an ASCII diagram of the data structure used to check pointer
-validity. It was provided by Dave Barrett <barrett@asgard.cs.colorado.edu>,
-and should be of use to others attempting to understand the code.
-The data structure in GC4.X is essentially the same. -HB
-
-
-
-
- Data Structure used by GC_base in gc3.7:
- 21-Apr-94
-
-
-
-
- 63 LOG_TOP_SZ[11] LOG_BOTTOM_SZ[10] LOG_HBLKSIZE[13]
- +------------------+----------------+------------------+------------------+
- p:| | TL_HASH(hi) | | HBLKDISPL(p) |
- +------------------+----------------+------------------+------------------+
- \-----------------------HBLKPTR(p)-------------------/
- \------------hi-------------------/
- \______ ________/ \________ _______/ \________ _______/
- V V V
- | | |
- GC_top_index[] | | |
- --- +--------------+ | | |
- ^ | | | | |
- | | | | | |
- TOP +--------------+<--+ | |
- _SZ +-<| [] | * | |
-(items)| +--------------+ if 0 < bi< HBLKSIZE | |
- | | | | then large object | |
- | | | | starts at the bi'th | |
- v | | | HBLK before p. | i |
- --- | +--------------+ | (word- |
- v | aligned) |
- bi= |GET_BI(p){->hash_link}->key==hi | |
- v | |
- | (bottom_index) \ scratch_alloc'd | |
- | ( struct bi ) / by get_index() | |
- --- +->+--------------+ | |
- ^ | | | |
- ^ | | | |
- BOTTOM | | ha=GET_HDR_ADDR(p) | |
-_SZ(items)+--------------+<----------------------+ +-------+
- | +--<| index[] | |
- | | +--------------+ GC_obj_map: v
- | | | | from / +-+-+-----+-+-+-+-+ ---
- v | | | GC_add < 0| | | | | | | | ^
- --- | +--------------+ _map_entry \ +-+-+-----+-+-+-+-+ |
- | | asc_link | +-+-+-----+-+-+-+-+ MAXOBJSZ
- | +--------------+ +-->| | | j | | | | | +1
- | | key | | +-+-+-----+-+-+-+-+ |
- | +--------------+ | +-+-+-----+-+-+-+-+ |
- | | hash_link | | | | | | | | | | v
- | +--------------+ | +-+-+-----+-+-+-+-+ ---
- | | |<--MAX_OFFSET--->|
- | | (bytes)
-HDR(p)| GC_find_header(p) | |<--MAP_ENTRIES-->|
- | \ from | =HBLKSIZE/WORDSZ
- | (hdr) (struct hblkhdr) / alloc_hdr() | (1024 on Alpha)
- +-->+----------------------+ | (8/16 bits each)
-GET_HDR(p)| word hb_sz (words) | |
- +----------------------+ |
- | struct hblk *hb_next | |
- +----------------------+ |
- |mark_proc hb_mark_proc| |
- +----------------------+ |
- | char * hb_map |>-------------+
- +----------------------+
- | ushort hb_obj_kind |
- +----------------------+
- | hb_last_reclaimed |
- --- +----------------------+
- ^ | |
- MARK_BITS| hb_marks[] | *if hdr is free, hb_sz + DISCARD_WORDS
-_SZ(words)| | is the size of a heap chunk (struct hblk)
- v | | of at least MININCR*HBLKSIZE bytes (below),
- --- +----------------------+ otherwise, size of each object in chunk.
-
-Dynamic data structures above are interleaved throughout the heap in blocks of
-size MININCR * HBLKSIZE bytes as done by gc_scratch_alloc which cannot be
-freed; free lists are used (e.g. alloc_hdr). HBLKs's below are collected.
-
- (struct hblk)
- --- +----------------------+ < HBLKSIZE --- --- DISCARD_
- ^ |garbage[DISCARD_WORDS]| aligned ^ ^ HDR_BYTES WORDS
- | | | | v (bytes) (words)
- | +-----hb_body----------+ < WORDSZ | --- ---
- | | | aligned | ^ ^
- | | Object 0 | | hb_sz |
- | | | i |(word- (words)|
- | | | (bytes)|aligned) v |
- | + - - - - - - - - - - -+ --- | --- |
- | | | ^ | ^ |
- n * | | j (words) | hb_sz BODY_SZ
- HBLKSIZE | Object 1 | v v | (words)
- (bytes) | |--------------- v MAX_OFFSET
- | + - - - - - - - - - - -+ --- (bytes)
- | | | !All_INTERIOR_PTRS ^ |
- | | | sets j only for hb_sz |
- | | Object N | valid object offsets. | |
- v | | All objects WORDSZ v v
- --- +----------------------+ aligned. --- ---
-
-DISCARD_WORDS is normally zero. Indeed the collector has not been tested
-with another value in ages.
diff --git a/boehm-gc/blacklst.c b/boehm-gc/blacklst.c
deleted file mode 100644
index e5a3a26a8cf..00000000000
--- a/boehm-gc/blacklst.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, August 9, 1995 6:09 pm PDT */
-# include "gc_priv.h"
-
-/*
- * We maintain several hash tables of hblks that have had false hits.
- * Each contains one bit per hash bucket; If any page in the bucket
- * has had a false hit, we assume that all of them have.
- * See the definition of page_hash_table in gc_private.h.
- * False hits from the stack(s) are much more dangerous than false hits
- * from elsewhere, since the former can pin a large object that spans the
- * block, eventhough it does not start on the dangerous block.
- */
-
-/*
- * Externally callable routines are:
-
- * GC_add_to_black_list_normal
- * GC_add_to_black_list_stack
- * GC_promote_black_lists
- * GC_is_black_listed
- *
- * All require that the allocator lock is held.
- */
-
-/* Pointers to individual tables. We replace one table by another by */
-/* switching these pointers. */
-word * GC_old_normal_bl;
- /* Nonstack false references seen at last full */
- /* collection. */
-word * GC_incomplete_normal_bl;
- /* Nonstack false references seen since last */
- /* full collection. */
-word * GC_old_stack_bl;
-word * GC_incomplete_stack_bl;
-
-word GC_total_stack_black_listed;
-
-word GC_black_list_spacing = MINHINCR*HBLKSIZE; /* Initial rough guess */
-
-void GC_clear_bl();
-
-void GC_default_print_heap_obj_proc(p)
-ptr_t p;
-{
- ptr_t base = GC_base(p);
-
- GC_err_printf2("start: 0x%lx, appr. length: %ld", base, GC_size(base));
-}
-
-void (*GC_print_heap_obj)(/* char * s, ptr_t p */) =
- GC_default_print_heap_obj_proc;
-
-void GC_print_source_ptr(p)
-ptr_t p;
-{
- ptr_t base = GC_base(p);
- if (0 == base) {
- if (0 == p) {
- GC_err_printf0("in register");
- } else {
- GC_err_printf0("in root set");
- }
- } else {
- GC_err_printf0("in object at ");
- (*GC_print_heap_obj)(base);
- }
-}
-
-void GC_bl_init()
-{
-# ifndef ALL_INTERIOR_POINTERS
- GC_old_normal_bl = (word *)
- GC_scratch_alloc((word)(sizeof (page_hash_table)));
- GC_incomplete_normal_bl = (word *)GC_scratch_alloc
- ((word)(sizeof(page_hash_table)));
- if (GC_old_normal_bl == 0 || GC_incomplete_normal_bl == 0) {
- GC_err_printf0("Insufficient memory for black list\n");
- EXIT();
- }
- GC_clear_bl(GC_old_normal_bl);
- GC_clear_bl(GC_incomplete_normal_bl);
-# endif
- GC_old_stack_bl = (word *)GC_scratch_alloc((word)(sizeof(page_hash_table)));
- GC_incomplete_stack_bl = (word *)GC_scratch_alloc
- ((word)(sizeof(page_hash_table)));
- if (GC_old_stack_bl == 0 || GC_incomplete_stack_bl == 0) {
- GC_err_printf0("Insufficient memory for black list\n");
- EXIT();
- }
- GC_clear_bl(GC_old_stack_bl);
- GC_clear_bl(GC_incomplete_stack_bl);
-}
-
-void GC_clear_bl(doomed)
-word *doomed;
-{
- BZERO(doomed, sizeof(page_hash_table));
-}
-
-void GC_copy_bl(old, new)
-word *new, *old;
-{
- BCOPY(old, new, sizeof(page_hash_table));
-}
-
-static word total_stack_black_listed();
-
-/* Signal the completion of a collection. Turn the incomplete black */
-/* lists into new black lists, etc. */
-void GC_promote_black_lists()
-{
- word * very_old_normal_bl = GC_old_normal_bl;
- word * very_old_stack_bl = GC_old_stack_bl;
-
- GC_old_normal_bl = GC_incomplete_normal_bl;
- GC_old_stack_bl = GC_incomplete_stack_bl;
-# ifndef ALL_INTERIOR_POINTERS
- GC_clear_bl(very_old_normal_bl);
-# endif
- GC_clear_bl(very_old_stack_bl);
- GC_incomplete_normal_bl = very_old_normal_bl;
- GC_incomplete_stack_bl = very_old_stack_bl;
- GC_total_stack_black_listed = total_stack_black_listed();
-# ifdef PRINTSTATS
- GC_printf1("%ld bytes in heap blacklisted for interior pointers\n",
- (unsigned long)GC_total_stack_black_listed);
-# endif
- if (GC_total_stack_black_listed != 0) {
- GC_black_list_spacing =
- HBLKSIZE*(GC_heapsize/GC_total_stack_black_listed);
- }
- if (GC_black_list_spacing < 3 * HBLKSIZE) {
- GC_black_list_spacing = 3 * HBLKSIZE;
- }
- if (GC_black_list_spacing > MAXHINCR * HBLKSIZE) {
- GC_black_list_spacing = MAXHINCR * HBLKSIZE;
- /* Makes it easier to allocate really huge blocks, which otherwise */
- /* may have problems with nonuniform blacklist distributions. */
- /* This way we should always succeed immediately after growing the */
- /* heap. */
- }
-}
-
-void GC_unpromote_black_lists()
-{
-# ifndef ALL_INTERIOR_POINTERS
- GC_copy_bl(GC_old_normal_bl, GC_incomplete_normal_bl);
-# endif
- GC_copy_bl(GC_old_stack_bl, GC_incomplete_stack_bl);
-}
-
-# ifndef ALL_INTERIOR_POINTERS
-/* P is not a valid pointer reference, but it falls inside */
-/* the plausible heap bounds. */
-/* Add it to the normal incomplete black list if appropriate. */
-#ifdef PRINT_BLACK_LIST
- void GC_add_to_black_list_normal(p, source)
- ptr_t source;
-#else
- void GC_add_to_black_list_normal(p)
-#endif
-word p;
-{
- if (!(GC_modws_valid_offsets[p & (sizeof(word)-1)])) return;
- {
- register int index = PHT_HASH(p);
-
- if (HDR(p) == 0 || get_pht_entry_from_index(GC_old_normal_bl, index)) {
-# ifdef PRINT_BLACK_LIST
- if (!get_pht_entry_from_index(GC_incomplete_normal_bl, index)) {
- GC_err_printf2(
- "Black listing (normal) 0x%lx referenced from 0x%lx ",
- (unsigned long) p, (unsigned long) source);
- GC_print_source_ptr(source);
- GC_err_puts("\n");
- }
-# endif
- set_pht_entry_from_index(GC_incomplete_normal_bl, index);
- } /* else this is probably just an interior pointer to an allocated */
- /* object, and isn't worth black listing. */
- }
-}
-# endif
-
-/* And the same for false pointers from the stack. */
-#ifdef PRINT_BLACK_LIST
- void GC_add_to_black_list_stack(p, source)
- ptr_t source;
-#else
- void GC_add_to_black_list_stack(p)
-#endif
-word p;
-{
- register int index = PHT_HASH(p);
-
- if (HDR(p) == 0 || get_pht_entry_from_index(GC_old_stack_bl, index)) {
-# ifdef PRINT_BLACK_LIST
- if (!get_pht_entry_from_index(GC_incomplete_stack_bl, index)) {
- GC_err_printf2(
- "Black listing (stack) 0x%lx referenced from 0x%lx ",
- (unsigned long)p, (unsigned long)source);
- GC_print_source_ptr(source);
- GC_err_puts("\n");
- }
-# endif
- set_pht_entry_from_index(GC_incomplete_stack_bl, index);
- }
-}
-
-/*
- * Is the block starting at h of size len bytes black listed? If so,
- * return the address of the next plausible r such that (r, len) might not
- * be black listed. (R may not actually be in the heap. We guarantee only
- * that every smaller value of r after h is also black listed.)
- * If (h,len) is not black listed, return 0.
- * Knows about the structure of the black list hash tables.
- */
-struct hblk * GC_is_black_listed(h, len)
-struct hblk * h;
-word len;
-{
- register int index = PHT_HASH((word)h);
- register word i;
- word nblocks = divHBLKSZ(len);
-
-# ifndef ALL_INTERIOR_POINTERS
- if (get_pht_entry_from_index(GC_old_normal_bl, index)
- || get_pht_entry_from_index(GC_incomplete_normal_bl, index)) {
- return(h+1);
- }
-# endif
-
- for (i = 0; ; ) {
- if (GC_old_stack_bl[divWORDSZ(index)] == 0
- && GC_incomplete_stack_bl[divWORDSZ(index)] == 0) {
- /* An easy case */
- i += WORDSZ - modWORDSZ(index);
- } else {
- if (get_pht_entry_from_index(GC_old_stack_bl, index)
- || get_pht_entry_from_index(GC_incomplete_stack_bl, index)) {
- return(h+i+1);
- }
- i++;
- }
- if (i >= nblocks) break;
- index = PHT_HASH((word)(h+i));
- }
- return(0);
-}
-
-
-/* Return the number of blacklisted blocks in a given range. */
-/* Used only for statistical purposes. */
-/* Looks only at the GC_incomplete_stack_bl. */
-word GC_number_stack_black_listed(start, endp1)
-struct hblk *start, *endp1;
-{
- register struct hblk * h;
- word result = 0;
-
- for (h = start; h < endp1; h++) {
- register int index = PHT_HASH((word)h);
-
- if (get_pht_entry_from_index(GC_old_stack_bl, index)) result++;
- }
- return(result);
-}
-
-
-/* Return the total number of (stack) black-listed bytes. */
-static word total_stack_black_listed()
-{
- register unsigned i;
- word total = 0;
-
- for (i = 0; i < GC_n_heap_sects; i++) {
- struct hblk * start = (struct hblk *) GC_heap_sects[i].hs_start;
- word len = (word) GC_heap_sects[i].hs_bytes;
- struct hblk * endp1 = start + len/HBLKSIZE;
-
- total += GC_number_stack_black_listed(start, endp1);
- }
- return(total * HBLKSIZE);
-}
-
diff --git a/boehm-gc/callprocs b/boehm-gc/callprocs
deleted file mode 100755
index a8793f0b728..00000000000
--- a/boehm-gc/callprocs
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-GC_DEBUG=1
-export GC_DEBUG
-$* 2>&1 | awk '{print "0x3e=c\""$0"\""};/^\t##PC##=/ {if ($2 != 0) {print $2"?i"}}' | adb $1 | sed "s/^ >/>/"
diff --git a/boehm-gc/checksums.c b/boehm-gc/checksums.c
deleted file mode 100644
index 212655f4cd4..00000000000
--- a/boehm-gc/checksums.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 1992-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, March 29, 1995 12:51 pm PST */
-# ifdef CHECKSUMS
-
-# include "gc_priv.h"
-
-/* This is debugging code intended to verify the results of dirty bit */
-/* computations. Works only in a single threaded environment. */
-/* We assume that stubborn objects are changed only when they are */
-/* enabled for writing. (Certain kinds of writing are actually */
-/* safe under other conditions.) */
-# define NSUMS 2000
-
-# define OFFSET 0x10000
-
-typedef struct {
- GC_bool new_valid;
- word old_sum;
- word new_sum;
- struct hblk * block; /* Block to which this refers + OFFSET */
- /* to hide it from colector. */
-} page_entry;
-
-page_entry GC_sums [NSUMS];
-
-word GC_checksum(h)
-struct hblk *h;
-{
- register word *p = (word *)h;
- register word *lim = (word *)(h+1);
- register word result = 0;
-
- while (p < lim) {
- result += *p++;
- }
- return(result | 0x80000000 /* doesn't look like pointer */);
-}
-
-# ifdef STUBBORN_ALLOC
-/* Check whether a stubborn object from the given block appears on */
-/* the appropriate free list. */
-GC_bool GC_on_free_list(h)
-struct hblk *h;
-{
- register hdr * hhdr = HDR(h);
- register int sz = hhdr -> hb_sz;
- ptr_t p;
-
- if (sz > MAXOBJSZ) return(FALSE);
- for (p = GC_sobjfreelist[sz]; p != 0; p = obj_link(p)) {
- if (HBLKPTR(p) == h) return(TRUE);
- }
- return(FALSE);
-}
-# endif
-
-int GC_n_dirty_errors;
-int GC_n_changed_errors;
-int GC_n_clean;
-int GC_n_dirty;
-
-void GC_update_check_page(h, index)
-struct hblk *h;
-int index;
-{
- page_entry *pe = GC_sums + index;
- register hdr * hhdr = HDR(h);
-
- if (pe -> block != 0 && pe -> block != h + OFFSET) ABORT("goofed");
- pe -> old_sum = pe -> new_sum;
- pe -> new_sum = GC_checksum(h);
-# ifndef MSWIN32
- if (pe -> new_sum != 0 && !GC_page_was_ever_dirty(h)) {
- GC_printf1("GC_page_was_ever_dirty(0x%lx) is wrong\n",
- (unsigned long)h);
- }
-# endif
- if (GC_page_was_dirty(h)) {
- GC_n_dirty++;
- } else {
- GC_n_clean++;
- }
- if (pe -> new_valid && pe -> old_sum != pe -> new_sum) {
- if (!GC_page_was_dirty(h) || !GC_page_was_ever_dirty(h)) {
- /* Set breakpoint here */GC_n_dirty_errors++;
- }
-# ifdef STUBBORN_ALLOC
- if (!IS_FORWARDING_ADDR_OR_NIL(hhdr)
- && hhdr -> hb_map != GC_invalid_map
- && hhdr -> hb_obj_kind == STUBBORN
- && !GC_page_was_changed(h)
- && !GC_on_free_list(h)) {
- /* if GC_on_free_list(h) then reclaim may have touched it */
- /* without any allocations taking place. */
- /* Set breakpoint here */GC_n_changed_errors++;
- }
-# endif
- }
- pe -> new_valid = TRUE;
- pe -> block = h + OFFSET;
-}
-
-word GC_bytes_in_used_blocks;
-
-void GC_add_block(h, dummy)
-struct hblk *h;
-word dummy;
-{
- register hdr * hhdr = HDR(h);
- register bytes = WORDS_TO_BYTES(hhdr -> hb_sz);
-
- bytes += HDR_BYTES + HBLKSIZE-1;
- bytes &= ~(HBLKSIZE-1);
- GC_bytes_in_used_blocks += bytes;
-}
-
-void GC_check_blocks()
-{
- word bytes_in_free_blocks = 0;
- struct hblk * h = GC_hblkfreelist;
- hdr * hhdr = HDR(h);
- word sz;
-
- GC_bytes_in_used_blocks = 0;
- GC_apply_to_all_blocks(GC_add_block, (word)0);
- while (h != 0) {
- sz = hhdr -> hb_sz;
- bytes_in_free_blocks += sz;
- h = hhdr -> hb_next;
- hhdr = HDR(h);
- }
- GC_printf2("GC_bytes_in_used_blocks = %ld, bytes_in_free_blocks = %ld ",
- GC_bytes_in_used_blocks, bytes_in_free_blocks);
- GC_printf1("GC_heapsize = %ld\n", GC_heapsize);
- if (GC_bytes_in_used_blocks + bytes_in_free_blocks != GC_heapsize) {
- GC_printf0("LOST SOME BLOCKS!!\n");
- }
-}
-
-/* Should be called immediately after GC_read_dirty and GC_read_changed. */
-void GC_check_dirty()
-{
- register int index;
- register unsigned i;
- register struct hblk *h;
- register ptr_t start;
-
- GC_check_blocks();
-
- GC_n_dirty_errors = 0;
- GC_n_changed_errors = 0;
- GC_n_clean = 0;
- GC_n_dirty = 0;
-
- index = 0;
- for (i = 0; i < GC_n_heap_sects; i++) {
- start = GC_heap_sects[i].hs_start;
- for (h = (struct hblk *)start;
- h < (struct hblk *)(start + GC_heap_sects[i].hs_bytes);
- h++) {
- GC_update_check_page(h, index);
- index++;
- if (index >= NSUMS) goto out;
- }
- }
-out:
- GC_printf2("Checked %lu clean and %lu dirty pages\n",
- (unsigned long) GC_n_clean, (unsigned long) GC_n_dirty);
- if (GC_n_dirty_errors > 0) {
- GC_printf1("Found %lu dirty bit errors\n",
- (unsigned long)GC_n_dirty_errors);
- }
- if (GC_n_changed_errors > 0) {
- GC_printf1("Found %lu changed bit errors\n",
- (unsigned long)GC_n_changed_errors);
- GC_printf0("These may be benign (provoked by nonpointer changes)\n");
-# ifdef THREADS
- GC_printf0(
- "Also expect 1 per thread currently allocating a stubborn obj.\n");
-# endif
- }
-}
-
-# else
-
-extern int GC_quiet;
- /* ANSI C doesn't allow translation units to be empty. */
- /* So we guarantee this one is nonempty. */
-
-# endif /* CHECKSUMS */
diff --git a/boehm-gc/configure b/boehm-gc/configure
deleted file mode 100755
index 6451bac8ae0..00000000000
--- a/boehm-gc/configure
+++ /dev/null
@@ -1,3131 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- --enable-multilib build many library versions (default)"
-ac_help="$ac_help
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer"
-ac_help="$ac_help
- --enable-shared[=PKGS] build shared libraries [default=yes]"
-ac_help="$ac_help
- --enable-static[=PKGS] build static libraries [default=yes]"
-ac_help="$ac_help
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
-ac_help="$ac_help
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
- --disable-libtool-lock avoid locking (might break parallel builds)"
-ac_help="$ac_help
- --with-pic try to use only PIC/non-PIC objects [default=use both]"
-ac_help="$ac_help
- --with-target-subdir=SUBDIR
- configuring with a cross compiler"
-ac_help="$ac_help
- --with-cross-host=HOST configuring with a cross compiler"
-ac_help="$ac_help
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer"
-ac_help="$ac_help
- --enable-threads=TYPE choose threading package"
-ac_help="$ac_help
- --enable-java-gc=TYPE choose garbage collector [boehm]"
-ac_help="$ac_help
- --with-ecos enable runtime eCos target support"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=gc_mark.h
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-ac_aux_dir=
-for ac_dir in .. $srcdir/..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in .. $srcdir/.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-# same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-# as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:605: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:626: checking target system type" >&5
-
-target_alias=$target
-case "$target_alias" in
-NONE)
- case $nonopt in
- NONE) target_alias=$host_alias ;;
- *) target_alias=$nonopt ;;
- esac ;;
-esac
-
-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:644: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:679: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:732: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:789: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test $host != $build; then
- ac_tool_prefix=${host_alias}-
-else
- ac_tool_prefix=
-fi
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:822: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 827 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cygwin=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:855: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 860 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_mingw32=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-# Check whether --enable-multilib or --disable-multilib was given.
-if test "${enable_multilib+set}" = set; then
- enableval="$enable_multilib"
- case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;;
- esac
-else
- multilib=yes
-fi
-
-
-if test "${srcdir}" = "."; then
- if test "${with_target_subdir}" != "."; then
- boehm_gc_basedir="${srcdir}/${with_multisrctop}../."
- else
- boehm_gc_basedir="${srcdir}/${with_multisrctop}."
- fi
-else
- boehm_gc_basedir="${srcdir}/."
-fi
-
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:915: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-
-
-PACKAGE=boehm-gc
-
-VERSION=5.1
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:949: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:962: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:975: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:988: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1001: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1027: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1057: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1106: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1115: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1130: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
-
-# Likewise for AC_PROG_CXX.
-
-
-
-for ac_prog in $CCC c++ g++ gcc CC cxx cc++
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1167: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CXX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CXX="$ac_cv_prog_CXX"
-if test -n "$CXX"; then
- echo "$ac_t""$CXX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX" && break
-done
-test -n "$CXX" || CXX="gcc"
-
-test -z "$CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1200: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1224: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
-# run it explicitly here, it will be run implicitly before
-# NEWLIB_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1257: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-
-# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1278: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as"
-fi
-fi
-AS="$ac_cv_prog_AS"
-if test -n "$AS"; then
- echo "$ac_t""$AS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1310: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-fi
-fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
- echo "$ac_t""$AR" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1342: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1374: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1419: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1473: checking whether to enable maintainer-specific portions of Makefiles" >&5
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which can't create executables. So we include AC_EXEEXT to keep
-# automake happy, but we don't execute it, since we don't care about
-# the result.
-if false; then
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1507: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:1517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-fi
-
-. ${boehm_gc_basedir}/configure.host
-
-case ${boehm_gc_basedir} in
-/* | A-Za-z:/\\*) boehm_gc_flagbasedir=${boehm_gc_basedir} ;;
-*) boehm_gc_flagbasedir='$(top_builddir)/'${boehm_gc_basedir} ;;
-esac
-
-boehm_gc_cflags="${boehm_gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${boehm_gc_flagbasedir}/libc/include"
-case "${host}" in
- *-*-cygwin32*)
- boehm_gc_cflags="${boehm_gc_cflags} -I${boehm_gc_flagbasedir}/../winsup/include"
- ;;
-esac
-
-boehm_gc_cflags="${boehm_gc_cflags} -fno-builtin"
-
-BOEHM_GC_CFLAGS=${boehm_gc_cflags}
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1640: checking for ld used by GCC" >&5
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1670: checking for GNU ld" >&5
-else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1673: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1708: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-with_gnu_ld=$ac_cv_prog_gnu_ld
-
-
-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1725: checking for $LD option to reload object files" >&5
-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-
-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1737: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1775: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1796: checking how to recognise dependant libraries" >&5
-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s0-90-90-9|PA-RISC0-9.0-9) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-
-fi
-
-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1939: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:1969: checking for ${ac_tool_prefix}file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:2031: checking for file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- else
- MAGIC=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2102: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2134: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2169: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_STRIP"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2201: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- STRIP=":"
-fi
-fi
-
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
- :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 2268 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2290: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
- cat > conftest.$ac_ext <<EOF
-#line 2303 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_needs_belf=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-
-esac
-
-echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2340: checking how to run the C++ preprocessor" >&5
-if test -z "$CXXCPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
- CXXCPP="${CXX-g++} -E"
- cat > conftest.$ac_ext <<EOF
-#line 2353 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CXXCPP=/lib/cpp
-fi
-rm -f conftest*
- ac_cv_prog_CXXCPP="$CXXCPP"
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-fi
-fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
-|| { echo "configure: error: libtool tag configuration failed" 1>&2; exit 1; }
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-
-
-
-# Check whether --with-target-subdir or --without-target-subdir was given.
-if test "${with_target_subdir+set}" = set; then
- withval="$with_target_subdir"
- :
-fi
-
-# Check whether --with-cross-host or --without-cross-host was given.
-if test "${with_cross_host+set}" = set; then
- withval="$with_cross_host"
- :
-fi
-
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:2506: checking whether to enable maintainer-specific portions of Makefiles" >&5
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-# automake wants to see AC_EXEEXT. But we don't need it. And having
-# it is actually a problem, because the compiler we're passed can't
-# necessarily do a full link. So we fool automake here.
-if test "x" = "y"; then
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:2535: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:2545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-fi
-
-echo $ac_n "checking for threads package to use""... $ac_c" 1>&6
-echo "configure:2568: checking for threads package to use" >&5
-# Check whether --enable-threads or --disable-threads was given.
-if test "${enable_threads+set}" = set; then
- enableval="$enable_threads"
- THREADS=$enableval
-else
- THREADS=no
-fi
-
-
-if test "$THREADS" = yes; then
- case "$host" in
- *-*-vxworks*)
- THREADS=vxworks
- ;;
- *-*-linux*)
- # FIXME: this isn't correct in all cases.
- THREADS=posix
- ;;
- *-*-win*)
- THREADS=win32
- ;;
- *-*-irix[1-5].*)
- # No built-in threads library on IRIX 5.* and older.
- THREADS=none
- ;;
- *-*-irix*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose irix threads.
- THREADS=posix
- ;;
- *-*-solaris*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose solaris threads.
- THREADS=posix
- ;;
- *)
- # For now.
- THREADS=none
- ;;
- esac
-fi
-
-INCLUDES=
-THREADLIB=
-case "$THREADS" in
- no | none | single)
- THREADS=none
- ;;
- posix | pthreads)
- THREADS=posix
- case "$host" in
- *-*-linux*)
- cat >> confdefs.h <<\EOF
-#define LINUX_THREADS 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define _REENTRANT 1
-EOF
-
- ;;
- *-*-solaris*)
- cat >> confdefs.h <<\EOF
-#define SOLARIS_THREADS 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define _SOLARIS_PTHREADS 1
-EOF
-
- ;;
- *-*-irix*)
- cat >> confdefs.h <<\EOF
-#define IRIX_THREADS 1
-EOF
-
- ;;
- esac
- THREADLIB=-lpthread
- ;;
- decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
- { echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
- ;;
- *)
- { echo "configure: error: $THREADS is an unknown thread package" 1>&2; exit 1; }
- ;;
-esac
-echo "$ac_t""$THREADS" 1>&6
-
-
-# Check whether --enable-java-gc or --disable-java-gc was given.
-if test "${enable_java_gc+set}" = set; then
- enableval="$enable_java_gc"
-
- GC=$enableval
-else
- GC=boehm
-fi
-
-target_all=
-if test "$GC" = "boehm"; then
- target_all=libgcjgc.la
-fi
-
-
-TARGET_ECOS="no"
-# Check whether --with-ecos or --without-ecos was given.
-if test "${with_ecos+set}" = set; then
- withval="$with_ecos"
- TARGET_ECOS="$with_ecos"
-
-fi
-
-
-addobjs=
-CXXINCLUDES=
-case "$TARGET_ECOS" in
- no)
- ;;
- *)
- cat >> confdefs.h <<\EOF
-#define ECOS 1
-EOF
-
- CXXINCLUDES="-I${TARGET_ECOS}/include"
- addobjs="$addobjs ecos.lo"
- ;;
-esac
-
-
-
-
-
-machdep=
-case "$host" in
-# alpha_mach_dep.s assumes that pointers are not saved in fp registers.
-# Gcc on a 21264 can spill pointers to fp registers. Oops.
-# alpha*-*-*)
-# machdep="alpha_mach_dep.lo"
-# ;;
- mipstx39-*-elf*)
- machdep="mips_ultrix_mach_dep.lo"
- cat >> confdefs.h <<\EOF
-#define STACKBASE __stackbase
-EOF
-
- cat >> confdefs.h <<\EOF
-#define DATASTART_IS_ETEXT 1
-EOF
-
- ;;
- mips-dec-ultrix*)
- machdep="mips_ultrix_mach-dep.lo"
- ;;
- mips-*-*)
- machdep="mips_sgi_mach_dep.lo"
- cat >> confdefs.h <<\EOF
-#define NO_EXECUTE_PERMISSION 1
-EOF
-
- ;;
- sparc-sun-solaris2.3*)
- cat >> confdefs.h <<\EOF
-#define SUNOS53_SHARED_LIB 1
-EOF
-
- ;;
-esac
-if test x"$machdep" = x; then
- machdep="mach_dep.lo"
-fi
-addobjs="$addobjs $machdep"
-
-
-case "$host" in
- sparc-sun-solaris2*)
- if test "$GCC" = yes; then
- new_CFLAGS=
- for i in $CFLAGS; do
- case "$i" in
- -O*)
- ;;
- *)
- new_CFLAGS="$new_CFLAGS $i"
- ;;
- esac
- done
- CFLAGS="$new_CFLAGS"
- fi
- ;;
-esac
-
-MY_CFLAGS="$CFLAGS"
-
-
-cat >> confdefs.h <<\EOF
-#define SILENT 1
-EOF
-
-cat >> confdefs.h <<\EOF
-#define NO_SIGNALS 1
-EOF
-
-cat >> confdefs.h <<\EOF
-#define NO_DEBUGGING 1
-EOF
-
-cat >> confdefs.h <<\EOF
-#define JAVA_FINALIZATION 1
-EOF
-
-
-if test -n "${with_cross_host}"; then
- cat >> confdefs.h <<\EOF
-#define NO_SIGSET 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define NO_CLOCK 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SMALL_CONFIG 1
-EOF
-
-fi
-
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
-else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
-fi
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
-
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@boehm_gc_basedir@%$boehm_gc_basedir%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@CXX@%$CXX%g
-s%@AS@%$AS%g
-s%@AR@%$AR%g
-s%@RANLIB@%$RANLIB%g
-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-s%@MAINT@%$MAINT%g
-s%@EXEEXT@%$EXEEXT%g
-s%@BOEHM_GC_CFLAGS@%$BOEHM_GC_CFLAGS%g
-s%@LN_S@%$LN_S%g
-s%@OBJEXT@%$OBJEXT%g
-s%@STRIP@%$STRIP%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@CXXCPP@%$CXXCPP%g
-s%@THREADLIB@%$THREADLIB%g
-s%@target_all@%$target_all%g
-s%@INCLUDES@%$INCLUDES%g
-s%@CXXINCLUDES@%$CXXINCLUDES%g
-s%@addobjs@%$addobjs%g
-s%@MY_CFLAGS@%$MY_CFLAGS%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-boehm_gc_basedir=${boehm_gc_basedir}
-CC="${CC}"
-DEFS="$DEFS"
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-echo "$DEFS" > boehm-cflags
-
-if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${boehm_gc_basedir}/../config-ml.in
-fi
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host
deleted file mode 100644
index 1903242fec4..00000000000
--- a/boehm-gc/configure.host
+++ /dev/null
@@ -1,43 +0,0 @@
-# configure.host
-
-# This shell script handles all host based configuration for boehm_gc.
-# It sets various shell variables based on the the host and the
-# configuration options. You can modify this shell script without
-# needing to rerun autoconf.
-
-# This shell script should be invoked as
-# . configure.host
-# If it encounters an error, it will exit with a message.
-
-# It uses the following shell variables:
-# host The configuration host
-# host_cpu The configuration host CPU
-# target_optspace --enable-target-optspace ("yes", "no", "")
-
-# It sets the following shell variables:
-# boehm_gc_cflags Special CFLAGS to use when building
-
-boehm_gc_cflags=
-
-case "${target_optspace}:${host}" in
- yes:*)
- boehm_gc_cflags="${boehm_gc_cflags} -Os"
- ;;
- :m32r-* | :d10v-* | :d30v-*)
- boehm_gc_cflags="${boehm_gc_cflags} -Os"
- ;;
- no:* | :*)
- # Nothing.
- ;;
-esac
-
-# Set any host dependent compiler flags.
-# THIS TABLE IS SORTED. KEEP IT THAT WAY.
-
-case "${host}" in
- mips-tx39-*|mipstx39-unknown-*)
- boehm_gc_cflags="${boehm_gc_cflags} -G 0"
- ;;
- *)
- ;;
-esac
diff --git a/boehm-gc/configure.in b/boehm-gc/configure.in
deleted file mode 100644
index f11cec8a33a..00000000000
--- a/boehm-gc/configure.in
+++ /dev/null
@@ -1,235 +0,0 @@
-dnl Process this file with autoconf to produce configure.
-
-AC_INIT(gc_mark.h)
-
-dnl Can't be done in BOEHM_CONFIGURE because that confuses automake.
-AC_CONFIG_AUX_DIR(..)
-
-AC_CANONICAL_SYSTEM
-
-BOEHM_CONFIGURE(.)
-
-AM_PROG_LIBTOOL
-
-dnl We use these options to decide which functions to include.
-AC_ARG_WITH(target-subdir,
-[ --with-target-subdir=SUBDIR
- configuring with a cross compiler])
-AC_ARG_WITH(cross-host,
-[ --with-cross-host=HOST configuring with a cross compiler])
-
-AM_MAINTAINER_MODE
-# automake wants to see AC_EXEEXT. But we don't need it. And having
-# it is actually a problem, because the compiler we're passed can't
-# necessarily do a full link. So we fool automake here.
-if test "x" = "y"; then
- AC_EXEEXT
-fi
-
-AC_MSG_CHECKING([for threads package to use])
-AC_ARG_ENABLE(threads, [ --enable-threads=TYPE choose threading package],
- THREADS=$enableval,
- dnl FIXME: figure out native threads to use here.
- THREADS=no)
-
-if test "$THREADS" = yes; then
- case "$host" in
- *-*-vxworks*)
- THREADS=vxworks
- ;;
- *-*-linux*)
- # FIXME: this isn't correct in all cases.
- THREADS=posix
- ;;
- *-*-win*)
- THREADS=win32
- ;;
- *-*-irix[[1-5]].*)
- # No built-in threads library on IRIX 5.* and older.
- THREADS=none
- ;;
- *-*-irix*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose irix threads.
- THREADS=posix
- ;;
- *-*-solaris*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose solaris threads.
- THREADS=posix
- ;;
- *)
- # For now.
- THREADS=none
- ;;
- esac
-fi
-
-INCLUDES=
-THREADLIB=
-case "$THREADS" in
- no | none | single)
- THREADS=none
- ;;
- posix | pthreads)
- THREADS=posix
- case "$host" in
- *-*-linux*)
- AC_DEFINE(LINUX_THREADS)
- AC_DEFINE(_REENTRANT)
- ;;
- *-*-solaris*)
- AC_DEFINE(SOLARIS_THREADS)
- AC_DEFINE(_SOLARIS_PTHREADS)
- ;;
- *-*-irix*)
- AC_DEFINE(IRIX_THREADS)
- ;;
- esac
- THREADLIB=-lpthread
- ;;
- decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
- AC_MSG_ERROR(thread package $THREADS not yet supported)
- ;;
- *)
- AC_MSG_ERROR($THREADS is an unknown thread package)
- ;;
-esac
-AC_MSG_RESULT($THREADS)
-AC_SUBST(THREADLIB)
-
-AC_ARG_ENABLE(java-gc,
-changequote(<<,>>)dnl
-<< --enable-java-gc=TYPE choose garbage collector [boehm]>>,
-changequote([,])
- GC=$enableval,
- GC=boehm)
-target_all=
-if test "$GC" = "boehm"; then
- target_all=libgcjgc.la
-fi
-AC_SUBST(target_all)
-
-dnl If the target is an eCos system, use the appropriate eCos
-dnl I/O routines.
-dnl FIXME: this should not be a local option but a global target
-dnl system; at present there is no eCos target.
-TARGET_ECOS="no"
-AC_ARG_WITH(ecos,
-[ --with-ecos enable runtime eCos target support],
-TARGET_ECOS="$with_ecos"
-)
-
-addobjs=
-CXXINCLUDES=
-case "$TARGET_ECOS" in
- no)
- ;;
- *)
- AC_DEFINE(ECOS)
- CXXINCLUDES="-I${TARGET_ECOS}/include"
- addobjs="$addobjs ecos.lo"
- ;;
-esac
-AC_SUBST(CXX)
-
-AC_SUBST(INCLUDES)
-AC_SUBST(CXXINCLUDES)
-
-machdep=
-case "$host" in
-# alpha_mach_dep.s assumes that pointers are not saved in fp registers.
-# Gcc on a 21264 can spill pointers to fp registers. Oops.
-# alpha*-*-*)
-# machdep="alpha_mach_dep.lo"
-# ;;
- mipstx39-*-elf*)
- machdep="mips_ultrix_mach_dep.lo"
- AC_DEFINE(STACKBASE, __stackbase)
- AC_DEFINE(DATASTART_IS_ETEXT)
- ;;
- mips-dec-ultrix*)
- machdep="mips_ultrix_mach-dep.lo"
- ;;
- mips-*-*)
- machdep="mips_sgi_mach_dep.lo"
- AC_DEFINE(NO_EXECUTE_PERMISSION)
- ;;
- sparc-sun-solaris2.3*)
- AC_DEFINE(SUNOS53_SHARED_LIB)
- ;;
-esac
-if test x"$machdep" = x; then
- machdep="mach_dep.lo"
-fi
-addobjs="$addobjs $machdep"
-AC_SUBST(addobjs)
-
-dnl As of 4.13a2, the collector will not properly work on Solaris when
-dnl built with gcc and -O. So we remove -O in the appropriate case.
-case "$host" in
- sparc-sun-solaris2*)
- if test "$GCC" = yes; then
- new_CFLAGS=
- for i in $CFLAGS; do
- case "$i" in
- -O*)
- ;;
- *)
- new_CFLAGS="$new_CFLAGS $i"
- ;;
- esac
- done
- CFLAGS="$new_CFLAGS"
- fi
- ;;
-esac
-
-dnl We need to override the top-level CFLAGS. This is how we do it.
-MY_CFLAGS="$CFLAGS"
-AC_SUBST(MY_CFLAGS)
-
-dnl Define a few things to retarget the library towards
-dnl embedded Java.
-AC_DEFINE(SILENT)
-AC_DEFINE(NO_SIGNALS)
-AC_DEFINE(NO_DEBUGGING)
-AC_DEFINE(JAVA_FINALIZATION)
-
-dnl This is something of a hack. When cross-compiling we turn off
-dnl some functionality. We also enable the "small" configuration.
-dnl These is only correct when targetting an embedded system. FIXME.
-if test -n "${with_cross_host}"; then
- AC_DEFINE(NO_SIGSET)
- AC_DEFINE(NO_CLOCK)
- AC_DEFINE(SMALL_CONFIG)
-fi
-
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-AC_OUTPUT(Makefile,
-[
-dnl Put all the -D options in a file. These are required before
-dnl boehm-config.h can be included. This is a huge hack brought
-dnl about by overall poor structuring of this entire library.
-echo "$DEFS" > boehm-cflags
-
-if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${boehm_gc_basedir}/../config-ml.in
-fi],
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-boehm_gc_basedir=${boehm_gc_basedir}
-CC="${CC}"
-DEFS="$DEFS"
-)
diff --git a/boehm-gc/cord/README b/boehm-gc/cord/README
deleted file mode 100644
index 62101452313..00000000000
--- a/boehm-gc/cord/README
+++ /dev/null
@@ -1,31 +0,0 @@
-Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program
-for any purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is granted,
-provided the above notices are retained, and a notice that the code was
-modified is included with the above copyright notice.
-
-Please send bug reports to Hans-J. Boehm (boehm@sgi.com).
-
-This is a string packages that uses a tree-based representation.
-See cord.h for a description of the functions provided. Ec.h describes
-"extensible cords", which are essentially output streams that write
-to a cord. These allow for efficient construction of cords without
-requiring a bound on the size of a cord.
-
-de.c is a very dumb text editor that illustrates the use of cords.
-It maintains a list of file versions. Each version is simply a
-cord representing the file contents. Nonetheless, standard
-editing operations are efficient, even on very large files.
-(Its 3 line "user manual" can be obtained by invoking it without
-arguments. Note that ^R^N and ^R^P move the cursor by
-almost a screen. It does not understand tabs, which will show
-up as highlighred "I"s. Use the UNIX "expand" program first.)
-To build the editor, type "make cord/de" in the gc directory.
-
-This package assumes an ANSI C compiler such as gcc. It will
-not compile with an old-style K&R compiler.
diff --git a/boehm-gc/cord/SCOPTIONS.amiga b/boehm-gc/cord/SCOPTIONS.amiga
deleted file mode 100644
index 2a091970b8b..00000000000
--- a/boehm-gc/cord/SCOPTIONS.amiga
+++ /dev/null
@@ -1,14 +0,0 @@
-MATH=STANDARD
-CPU=68030
-NOSTACKCHECK
-OPTIMIZE
-VERBOSE
-NOVERSION
-NOICONS
-OPTIMIZERTIME
-INCLUDEDIR=/
-DEFINE AMIGA
-LIBRARY=cord.lib
-LIBRARY=/gc.lib
-IGNORE=100
-IGNORE=161
diff --git a/boehm-gc/cord/SMakefile.amiga b/boehm-gc/cord/SMakefile.amiga
deleted file mode 100644
index 5aef131e606..00000000000
--- a/boehm-gc/cord/SMakefile.amiga
+++ /dev/null
@@ -1,20 +0,0 @@
-# Makefile for cord.lib
-# Michel Schinz 1994/07/20
-
-OBJS = cordbscs.o cordprnt.o cordxtra.o
-
-all: cord.lib cordtest
-
-cordbscs.o: cordbscs.c
-cordprnt.o: cordprnt.c
-cordxtra.o: cordxtra.c
-cordtest.o: cordtest.c
-
-cord.lib: $(OBJS)
- oml cord.lib r $(OBJS)
-
-cordtest: cordtest.o cord.lib
- sc cordtest.o link
-
-clean:
- delete cord.lib cordtest \#?.o \#?.lnk
diff --git a/boehm-gc/cord/cord.h b/boehm-gc/cord/cord.h
deleted file mode 100644
index 926089e86fb..00000000000
--- a/boehm-gc/cord/cord.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Author: Hans-J. Boehm (boehm@parc.xerox.com)
- */
-/* Boehm, October 5, 1995 4:20 pm PDT */
-
-/*
- * Cords are immutable character strings. A number of operations
- * on long cords are much more efficient than their strings.h counterpart.
- * In particular, concatenation takes constant time independent of the length
- * of the arguments. (Cords are represented as trees, with internal
- * nodes representing concatenation and leaves consisting of either C
- * strings or a functional description of the string.)
- *
- * The following are reasonable applications of cords. They would perform
- * unacceptably if C strings were used:
- * - A compiler that produces assembly language output by repeatedly
- * concatenating instructions onto a cord representing the output file.
- * - A text editor that converts the input file to a cord, and then
- * performs editing operations by producing a new cord representing
- * the file after echa character change (and keeping the old ones in an
- * edit history)
- *
- * For optimal performance, cords should be built by
- * concatenating short sections.
- * This interface is designed for maximum compatibility with C strings.
- * ASCII NUL characters may be embedded in cords using CORD_from_fn.
- * This is handled correctly, but CORD_to_char_star will produce a string
- * with embedded NULs when given such a cord.
- *
- * This interface is fairly big, largely for performance reasons.
- * The most basic constants and functions:
- *
- * CORD - the type of a cord;
- * CORD_EMPTY - empty cord;
- * CORD_len(cord) - length of a cord;
- * CORD_cat(cord1,cord2) - concatenation of two cords;
- * CORD_substr(cord, start, len) - substring (or subcord);
- * CORD_pos i; CORD_FOR(i, cord) { ... CORD_pos_fetch(i) ... } -
- * examine each character in a cord. CORD_pos_fetch(i) is the char.
- * CORD_fetch(int i) - Retrieve i'th character (slowly).
- * CORD_cmp(cord1, cord2) - compare two cords.
- * CORD_from_file(FILE * f) - turn a read-only file into a cord.
- * CORD_to_char_star(cord) - convert to C string.
- * (Non-NULL C constant strings are cords.)
- * CORD_printf (etc.) - cord version of printf. Use %r for cords.
- */
-# ifndef CORD_H
-
-# define CORD_H
-# include <stddef.h>
-# include <stdio.h>
-/* Cords have type const char *. This is cheating quite a bit, and not */
-/* 100% portable. But it means that nonempty character string */
-/* constants may be used as cords directly, provided the string is */
-/* never modified in place. The empty cord is represented by, and */
-/* can be written as, 0. */
-
-typedef const char * CORD;
-
-/* An empty cord is always represented as nil */
-# define CORD_EMPTY 0
-
-/* Is a nonempty cord represented as a C string? */
-#define CORD_IS_STRING(s) (*(s) != '\0')
-
-/* Concatenate two cords. If the arguments are C strings, they may */
-/* not be subsequently altered. */
-CORD CORD_cat(CORD x, CORD y);
-
-/* Concatenate a cord and a C string with known length. Except for the */
-/* empty string case, this is a special case of CORD_cat. Since the */
-/* length is known, it can be faster. */
-/* The string y is shared with the resulting CORD. Hence it should */
-/* not be altered by the caller. */
-CORD CORD_cat_char_star(CORD x, const char * y, size_t leny);
-
-/* Compute the length of a cord */
-size_t CORD_len(CORD x);
-
-/* Cords may be represented by functions defining the ith character */
-typedef char (* CORD_fn)(size_t i, void * client_data);
-
-/* Turn a functional description into a cord. */
-CORD CORD_from_fn(CORD_fn fn, void * client_data, size_t len);
-
-/* Return the substring (subcord really) of x with length at most n, */
-/* starting at position i. (The initial character has position 0.) */
-CORD CORD_substr(CORD x, size_t i, size_t n);
-
-/* Return the argument, but rebalanced to allow more efficient */
-/* character retrieval, substring operations, and comparisons. */
-/* This is useful only for cords that were built using repeated */
-/* concatenation. Guarantees log time access to the result, unless */
-/* x was obtained through a large number of repeated substring ops */
-/* or the embedded functional descriptions take longer to evaluate. */
-/* May reallocate significant parts of the cord. The argument is not */
-/* modified; only the result is balanced. */
-CORD CORD_balance(CORD x);
-
-/* The following traverse a cord by applying a function to each */
-/* character. This is occasionally appropriate, especially where */
-/* speed is crucial. But, since C doesn't have nested functions, */
-/* clients of this sort of traversal are clumsy to write. Consider */
-/* the functions that operate on cord positions instead. */
-
-/* Function to iteratively apply to individual characters in cord. */
-typedef int (* CORD_iter_fn)(char c, void * client_data);
-
-/* Function to apply to substrings of a cord. Each substring is a */
-/* a C character string, not a general cord. */
-typedef int (* CORD_batched_iter_fn)(const char * s, void * client_data);
-# define CORD_NO_FN ((CORD_batched_iter_fn)0)
-
-/* Apply f1 to each character in the cord, in ascending order, */
-/* starting at position i. If */
-/* f2 is not CORD_NO_FN, then multiple calls to f1 may be replaced by */
-/* a single call to f2. The parameter f2 is provided only to allow */
-/* some optimization by the client. This terminates when the right */
-/* end of this string is reached, or when f1 or f2 return != 0. In the */
-/* latter case CORD_iter returns != 0. Otherwise it returns 0. */
-/* The specified value of i must be < CORD_len(x). */
-int CORD_iter5(CORD x, size_t i, CORD_iter_fn f1,
- CORD_batched_iter_fn f2, void * client_data);
-
-/* A simpler version that starts at 0, and without f2: */
-int CORD_iter(CORD x, CORD_iter_fn f1, void * client_data);
-# define CORD_iter(x, f1, cd) CORD_iter5(x, 0, f1, CORD_NO_FN, cd)
-
-/* Similar to CORD_iter5, but end-to-beginning. No provisions for */
-/* CORD_batched_iter_fn. */
-int CORD_riter4(CORD x, size_t i, CORD_iter_fn f1, void * client_data);
-
-/* A simpler version that starts at the end: */
-int CORD_riter(CORD x, CORD_iter_fn f1, void * client_data);
-
-/* Functions that operate on cord positions. The easy way to traverse */
-/* cords. A cord position is logically a pair consisting of a cord */
-/* and an index into that cord. But it is much faster to retrieve a */
-/* charcter based on a position than on an index. Unfortunately, */
-/* positions are big (order of a few 100 bytes), so allocate them with */
-/* caution. */
-/* Things in cord_pos.h should be treated as opaque, except as */
-/* described below. Also note that */
-/* CORD_pos_fetch, CORD_next and CORD_prev have both macro and function */
-/* definitions. The former may evaluate their argument more than once. */
-# include "private/cord_pos.h"
-
-/*
- Visible definitions from above:
-
- typedef <OPAQUE but fairly big> CORD_pos[1];
-
- * Extract the cord from a position:
- CORD CORD_pos_to_cord(CORD_pos p);
-
- * Extract the current index from a position:
- size_t CORD_pos_to_index(CORD_pos p);
-
- * Fetch the character located at the given position:
- char CORD_pos_fetch(CORD_pos p);
-
- * Initialize the position to refer to the given cord and index.
- * Note that this is the most expensive function on positions:
- void CORD_set_pos(CORD_pos p, CORD x, size_t i);
-
- * Advance the position to the next character.
- * P must be initialized and valid.
- * Invalidates p if past end:
- void CORD_next(CORD_pos p);
-
- * Move the position to the preceding character.
- * P must be initialized and valid.
- * Invalidates p if past beginning:
- void CORD_prev(CORD_pos p);
-
- * Is the position valid, i.e. inside the cord?
- int CORD_pos_valid(CORD_pos p);
-*/
-# define CORD_FOR(pos, cord) \
- for (CORD_set_pos(pos, cord, 0); CORD_pos_valid(pos); CORD_next(pos))
-
-
-/* An out of memory handler to call. May be supplied by client. */
-/* Must not return. */
-extern void (* CORD_oom_fn)(void);
-
-/* Dump the representation of x to stdout in an implementation defined */
-/* manner. Intended for debugging only. */
-void CORD_dump(CORD x);
-
-/* The following could easily be implemented by the client. They are */
-/* provided in cordxtra.c for convenience. */
-
-/* Concatenate a character to the end of a cord. */
-CORD CORD_cat_char(CORD x, char c);
-
-/* Concatenate n cords. */
-CORD CORD_catn(int n, /* CORD */ ...);
-
-/* Return the character in CORD_substr(x, i, 1) */
-char CORD_fetch(CORD x, size_t i);
-
-/* Return < 0, 0, or > 0, depending on whether x < y, x = y, x > y */
-int CORD_cmp(CORD x, CORD y);
-
-/* A generalization that takes both starting positions for the */
-/* comparison, and a limit on the number of characters to be compared. */
-int CORD_ncmp(CORD x, size_t x_start, CORD y, size_t y_start, size_t len);
-
-/* Find the first occurrence of s in x at position start or later. */
-/* Return the position of the first character of s in x, or */
-/* CORD_NOT_FOUND if there is none. */
-size_t CORD_str(CORD x, size_t start, CORD s);
-
-/* Return a cord consisting of i copies of (possibly NUL) c. Dangerous */
-/* in conjunction with CORD_to_char_star. */
-/* The resulting representation takes constant space, independent of i. */
-CORD CORD_chars(char c, size_t i);
-# define CORD_nul(i) CORD_chars('\0', (i))
-
-/* Turn a file into cord. The file must be seekable. Its contents */
-/* must remain constant. The file may be accessed as an immediate */
-/* result of this call and/or as a result of subsequent accesses to */
-/* the cord. Short files are likely to be immediately read, but */
-/* long files are likely to be read on demand, possibly relying on */
-/* stdio for buffering. */
-/* We must have exclusive access to the descriptor f, i.e. we may */
-/* read it at any time, and expect the file pointer to be */
-/* where we left it. Normally this should be invoked as */
-/* CORD_from_file(fopen(...)) */
-/* CORD_from_file arranges to close the file descriptor when it is no */
-/* longer needed (e.g. when the result becomes inaccessible). */
-/* The file f must be such that ftell reflects the actual character */
-/* position in the file, i.e. the number of characters that can be */
-/* or were read with fread. On UNIX systems this is always true. On */
-/* MS Windows systems, f must be opened in binary mode. */
-CORD CORD_from_file(FILE * f);
-
-/* Equivalent to the above, except that the entire file will be read */
-/* and the file pointer will be closed immediately. */
-/* The binary mode restriction from above does not apply. */
-CORD CORD_from_file_eager(FILE * f);
-
-/* Equivalent to the above, except that the file will be read on demand.*/
-/* The binary mode restriction applies. */
-CORD CORD_from_file_lazy(FILE * f);
-
-/* Turn a cord into a C string. The result shares no structure with */
-/* x, and is thus modifiable. */
-char * CORD_to_char_star(CORD x);
-
-/* Turn a C string into a CORD. The C string is copied, and so may */
-/* subsequently be modified. */
-CORD CORD_from_char_star(const char *s);
-
-/* Identical to the above, but the result may share structure with */
-/* the argument and is thus not modifiable. */
-const char * CORD_to_const_char_star(CORD x);
-
-/* Write a cord to a file, starting at the current position. No */
-/* trailing NULs are newlines are added. */
-/* Returns EOF if a write error occurs, 1 otherwise. */
-int CORD_put(CORD x, FILE * f);
-
-/* "Not found" result for the following two functions. */
-# define CORD_NOT_FOUND ((size_t)(-1))
-
-/* A vague analog of strchr. Returns the position (an integer, not */
-/* a pointer) of the first occurrence of (char) c inside x at position */
-/* i or later. The value i must be < CORD_len(x). */
-size_t CORD_chr(CORD x, size_t i, int c);
-
-/* A vague analog of strrchr. Returns index of the last occurrence */
-/* of (char) c inside x at position i or earlier. The value i */
-/* must be < CORD_len(x). */
-size_t CORD_rchr(CORD x, size_t i, int c);
-
-
-/* The following are also not primitive, but are implemented in */
-/* cordprnt.c. They provide functionality similar to the ANSI C */
-/* functions with corresponding names, but with the following */
-/* additions and changes: */
-/* 1. A %r conversion specification specifies a CORD argument. Field */
-/* width, precision, etc. have the same semantics as for %s. */
-/* (Note that %c,%C, and %S were already taken.) */
-/* 2. The format string is represented as a CORD. */
-/* 3. CORD_sprintf and CORD_vsprintf assign the result through the 1st */ /* argument. Unlike their ANSI C versions, there is no need to guess */
-/* the correct buffer size. */
-/* 4. Most of the conversions are implement through the native */
-/* vsprintf. Hence they are usually no faster, and */
-/* idiosyncracies of the native printf are preserved. However, */
-/* CORD arguments to CORD_sprintf and CORD_vsprintf are NOT copied; */
-/* the result shares the original structure. This may make them */
-/* very efficient in some unusual applications. */
-/* The format string is copied. */
-/* All functions return the number of characters generated or -1 on */
-/* error. This complies with the ANSI standard, but is inconsistent */
-/* with some older implementations of sprintf. */
-
-/* The implementation of these is probably less portable than the rest */
-/* of this package. */
-
-#ifndef CORD_NO_IO
-
-#include <stdarg.h>
-
-int CORD_sprintf(CORD * out, CORD format, ...);
-int CORD_vsprintf(CORD * out, CORD format, va_list args);
-int CORD_fprintf(FILE * f, CORD format, ...);
-int CORD_vfprintf(FILE * f, CORD format, va_list args);
-int CORD_printf(CORD format, ...);
-int CORD_vprintf(CORD format, va_list args);
-
-#endif /* CORD_NO_IO */
-
-# endif /* CORD_H */
diff --git a/boehm-gc/cord/cordbscs.c b/boehm-gc/cord/cordbscs.c
deleted file mode 100644
index 9fc894d4946..00000000000
--- a/boehm-gc/cord/cordbscs.c
+++ /dev/null
@@ -1,915 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Author: Hans-J. Boehm (boehm@parc.xerox.com)
- */
-/* Boehm, October 3, 1994 5:19 pm PDT */
-# include "gc.h"
-# include "cord.h"
-# include <stdlib.h>
-# include <stdio.h>
-# include <string.h>
-
-/* An implementation of the cord primitives. These are the only */
-/* Functions that understand the representation. We perform only */
-/* minimal checks on arguments to these functions. Out of bounds */
-/* arguments to the iteration functions may result in client functions */
-/* invoked on garbage data. In most cases, client functions should be */
-/* programmed defensively enough that this does not result in memory */
-/* smashes. */
-
-typedef void (* oom_fn)(void);
-
-oom_fn CORD_oom_fn = (oom_fn) 0;
-
-# define OUT_OF_MEMORY { if (CORD_oom_fn != (oom_fn) 0) (*CORD_oom_fn)(); \
- ABORT("Out of memory\n"); }
-# define ABORT(msg) { fprintf(stderr, "%s\n", msg); abort(); }
-
-typedef unsigned long word;
-
-typedef union {
- struct Concatenation {
- char null;
- char header;
- char depth; /* concatenation nesting depth. */
- unsigned char left_len;
- /* Length of left child if it is sufficiently */
- /* short; 0 otherwise. */
-# define MAX_LEFT_LEN 255
- word len;
- CORD left; /* length(left) > 0 */
- CORD right; /* length(right) > 0 */
- } concatenation;
- struct Function {
- char null;
- char header;
- char depth; /* always 0 */
- char left_len; /* always 0 */
- word len;
- CORD_fn fn;
- void * client_data;
- } function;
- struct Generic {
- char null;
- char header;
- char depth;
- char left_len;
- word len;
- } generic;
- char string[1];
-} CordRep;
-
-# define CONCAT_HDR 1
-
-# define FN_HDR 4
-# define SUBSTR_HDR 6
- /* Substring nodes are a special case of function nodes. */
- /* The client_data field is known to point to a substr_args */
- /* structure, and the function is either CORD_apply_access_fn */
- /* or CORD_index_access_fn. */
-
-/* The following may be applied only to function and concatenation nodes: */
-#define IS_CONCATENATION(s) (((CordRep *)s)->generic.header == CONCAT_HDR)
-
-#define IS_FUNCTION(s) ((((CordRep *)s)->generic.header & FN_HDR) != 0)
-
-#define IS_SUBSTR(s) (((CordRep *)s)->generic.header == SUBSTR_HDR)
-
-#define LEN(s) (((CordRep *)s) -> generic.len)
-#define DEPTH(s) (((CordRep *)s) -> generic.depth)
-#define GEN_LEN(s) (CORD_IS_STRING(s) ? strlen(s) : LEN(s))
-
-#define LEFT_LEN(c) ((c) -> left_len != 0? \
- (c) -> left_len \
- : (CORD_IS_STRING((c) -> left) ? \
- (c) -> len - GEN_LEN((c) -> right) \
- : LEN((c) -> left)))
-
-#define SHORT_LIMIT (sizeof(CordRep) - 1)
- /* Cords shorter than this are C strings */
-
-
-/* Dump the internal representation of x to stdout, with initial */
-/* indentation level n. */
-void CORD_dump_inner(CORD x, unsigned n)
-{
- register size_t i;
-
- for (i = 0; i < (size_t)n; i++) {
- fputs(" ", stdout);
- }
- if (x == 0) {
- fputs("NIL\n", stdout);
- } else if (CORD_IS_STRING(x)) {
- for (i = 0; i <= SHORT_LIMIT; i++) {
- if (x[i] == '\0') break;
- putchar(x[i]);
- }
- if (x[i] != '\0') fputs("...", stdout);
- putchar('\n');
- } else if (IS_CONCATENATION(x)) {
- register struct Concatenation * conc =
- &(((CordRep *)x) -> concatenation);
- printf("Concatenation: %p (len: %d, depth: %d)\n",
- x, (int)(conc -> len), (int)(conc -> depth));
- CORD_dump_inner(conc -> left, n+1);
- CORD_dump_inner(conc -> right, n+1);
- } else /* function */{
- register struct Function * func =
- &(((CordRep *)x) -> function);
- if (IS_SUBSTR(x)) printf("(Substring) ");
- printf("Function: %p (len: %d): ", x, (int)(func -> len));
- for (i = 0; i < 20 && i < func -> len; i++) {
- putchar((*(func -> fn))(i, func -> client_data));
- }
- if (i < func -> len) fputs("...", stdout);
- putchar('\n');
- }
-}
-
-/* Dump the internal representation of x to stdout */
-void CORD_dump(CORD x)
-{
- CORD_dump_inner(x, 0);
- fflush(stdout);
-}
-
-CORD CORD_cat_char_star(CORD x, const char * y, size_t leny)
-{
- register size_t result_len;
- register size_t lenx;
- register int depth;
-
- if (x == CORD_EMPTY) return(y);
- if (leny == 0) return(x);
- if (CORD_IS_STRING(x)) {
- lenx = strlen(x);
- result_len = lenx + leny;
- if (result_len <= SHORT_LIMIT) {
- register char * result = GC_MALLOC_ATOMIC(result_len+1);
-
- if (result == 0) OUT_OF_MEMORY;
- memcpy(result, x, lenx);
- memcpy(result + lenx, y, leny);
- result[result_len] = '\0';
- return((CORD) result);
- } else {
- depth = 1;
- }
- } else {
- register CORD right;
- register CORD left;
- register char * new_right;
- register size_t right_len;
-
- lenx = LEN(x);
-
- if (leny <= SHORT_LIMIT/2
- && IS_CONCATENATION(x)
- && CORD_IS_STRING(right = ((CordRep *)x) -> concatenation.right)) {
- /* Merge y into right part of x. */
- if (!CORD_IS_STRING(left = ((CordRep *)x) -> concatenation.left)) {
- right_len = lenx - LEN(left);
- } else if (((CordRep *)x) -> concatenation.left_len != 0) {
- right_len = lenx - ((CordRep *)x) -> concatenation.left_len;
- } else {
- right_len = strlen(right);
- }
- result_len = right_len + leny; /* length of new_right */
- if (result_len <= SHORT_LIMIT) {
- new_right = GC_MALLOC_ATOMIC(result_len + 1);
- memcpy(new_right, right, right_len);
- memcpy(new_right + right_len, y, leny);
- new_right[result_len] = '\0';
- y = new_right;
- leny = result_len;
- x = left;
- lenx -= right_len;
- /* Now fall through to concatenate the two pieces: */
- }
- if (CORD_IS_STRING(x)) {
- depth = 1;
- } else {
- depth = DEPTH(x) + 1;
- }
- } else {
- depth = DEPTH(x) + 1;
- }
- result_len = lenx + leny;
- }
- {
- /* The general case; lenx, result_len is known: */
- register struct Concatenation * result;
-
- result = GC_NEW(struct Concatenation);
- if (result == 0) OUT_OF_MEMORY;
- result->header = CONCAT_HDR;
- result->depth = depth;
- if (lenx <= MAX_LEFT_LEN) result->left_len = lenx;
- result->len = result_len;
- result->left = x;
- result->right = y;
- if (depth > MAX_DEPTH) {
- return(CORD_balance((CORD)result));
- } else {
- return((CORD) result);
- }
- }
-}
-
-
-CORD CORD_cat(CORD x, CORD y)
-{
- register size_t result_len;
- register int depth;
- register size_t lenx;
-
- if (x == CORD_EMPTY) return(y);
- if (y == CORD_EMPTY) return(x);
- if (CORD_IS_STRING(y)) {
- return(CORD_cat_char_star(x, y, strlen(y)));
- } else if (CORD_IS_STRING(x)) {
- lenx = strlen(x);
- depth = DEPTH(y) + 1;
- } else {
- register int depthy = DEPTH(y);
-
- lenx = LEN(x);
- depth = DEPTH(x) + 1;
- if (depthy >= depth) depth = depthy + 1;
- }
- result_len = lenx + LEN(y);
- {
- register struct Concatenation * result;
-
- result = GC_NEW(struct Concatenation);
- if (result == 0) OUT_OF_MEMORY;
- result->header = CONCAT_HDR;
- result->depth = depth;
- if (lenx <= MAX_LEFT_LEN) result->left_len = lenx;
- result->len = result_len;
- result->left = x;
- result->right = y;
- return((CORD) result);
- }
-}
-
-
-
-CORD CORD_from_fn(CORD_fn fn, void * client_data, size_t len)
-{
- if (len <= 0) return(0);
- if (len <= SHORT_LIMIT) {
- register char * result;
- register size_t i;
- char buf[SHORT_LIMIT+1];
- register char c;
-
- for (i = 0; i < len; i++) {
- c = (*fn)(i, client_data);
- if (c == '\0') goto gen_case;
- buf[i] = c;
- }
- buf[i] = '\0';
- result = GC_MALLOC_ATOMIC(len+1);
- if (result == 0) OUT_OF_MEMORY;
- strcpy(result, buf);
- result[len] = '\0';
- return((CORD) result);
- }
- gen_case:
- {
- register struct Function * result;
-
- result = GC_NEW(struct Function);
- if (result == 0) OUT_OF_MEMORY;
- result->header = FN_HDR;
- /* depth is already 0 */
- result->len = len;
- result->fn = fn;
- result->client_data = client_data;
- return((CORD) result);
- }
-}
-
-size_t CORD_len(CORD x)
-{
- if (x == 0) {
- return(0);
- } else {
- return(GEN_LEN(x));
- }
-}
-
-struct substr_args {
- CordRep * sa_cord;
- size_t sa_index;
-};
-
-char CORD_index_access_fn(size_t i, void * client_data)
-{
- register struct substr_args *descr = (struct substr_args *)client_data;
-
- return(((char *)(descr->sa_cord))[i + descr->sa_index]);
-}
-
-char CORD_apply_access_fn(size_t i, void * client_data)
-{
- register struct substr_args *descr = (struct substr_args *)client_data;
- register struct Function * fn_cord = &(descr->sa_cord->function);
-
- return((*(fn_cord->fn))(i + descr->sa_index, fn_cord->client_data));
-}
-
-/* A version of CORD_substr that simply returns a function node, thus */
-/* postponing its work. The fourth argument is a function that may */
-/* be used for efficient access to the ith character. */
-/* Assumes i >= 0 and i + n < length(x). */
-CORD CORD_substr_closure(CORD x, size_t i, size_t n, CORD_fn f)
-{
- register struct substr_args * sa = GC_NEW(struct substr_args);
- CORD result;
-
- if (sa == 0) OUT_OF_MEMORY;
- sa->sa_cord = (CordRep *)x;
- sa->sa_index = i;
- result = CORD_from_fn(f, (void *)sa, n);
- ((CordRep *)result) -> function.header = SUBSTR_HDR;
- return (result);
-}
-
-# define SUBSTR_LIMIT (10 * SHORT_LIMIT)
- /* Substrings of function nodes and flat strings shorter than */
- /* this are flat strings. Othewise we use a functional */
- /* representation, which is significantly slower to access. */
-
-/* A version of CORD_substr that assumes i >= 0, n > 0, and i + n < length(x).*/
-CORD CORD_substr_checked(CORD x, size_t i, size_t n)
-{
- if (CORD_IS_STRING(x)) {
- if (n > SUBSTR_LIMIT) {
- return(CORD_substr_closure(x, i, n, CORD_index_access_fn));
- } else {
- register char * result = GC_MALLOC_ATOMIC(n+1);
-
- if (result == 0) OUT_OF_MEMORY;
- strncpy(result, x+i, n);
- result[n] = '\0';
- return(result);
- }
- } else if (IS_CONCATENATION(x)) {
- register struct Concatenation * conc
- = &(((CordRep *)x) -> concatenation);
- register size_t left_len;
- register size_t right_len;
-
- left_len = LEFT_LEN(conc);
- right_len = conc -> len - left_len;
- if (i >= left_len) {
- if (n == right_len) return(conc -> right);
- return(CORD_substr_checked(conc -> right, i - left_len, n));
- } else if (i+n <= left_len) {
- if (n == left_len) return(conc -> left);
- return(CORD_substr_checked(conc -> left, i, n));
- } else {
- /* Need at least one character from each side. */
- register CORD left_part;
- register CORD right_part;
- register size_t left_part_len = left_len - i;
-
- if (i == 0) {
- left_part = conc -> left;
- } else {
- left_part = CORD_substr_checked(conc -> left, i, left_part_len);
- }
- if (i + n == right_len + left_len) {
- right_part = conc -> right;
- } else {
- right_part = CORD_substr_checked(conc -> right, 0,
- n - left_part_len);
- }
- return(CORD_cat(left_part, right_part));
- }
- } else /* function */ {
- if (n > SUBSTR_LIMIT) {
- if (IS_SUBSTR(x)) {
- /* Avoid nesting substring nodes. */
- register struct Function * f = &(((CordRep *)x) -> function);
- register struct substr_args *descr =
- (struct substr_args *)(f -> client_data);
-
- return(CORD_substr_closure((CORD)descr->sa_cord,
- i + descr->sa_index,
- n, f -> fn));
- } else {
- return(CORD_substr_closure(x, i, n, CORD_apply_access_fn));
- }
- } else {
- char * result;
- register struct Function * f = &(((CordRep *)x) -> function);
- char buf[SUBSTR_LIMIT+1];
- register char * p = buf;
- register char c;
- register int j;
- register int lim = i + n;
-
- for (j = i; j < lim; j++) {
- c = (*(f -> fn))(j, f -> client_data);
- if (c == '\0') {
- return(CORD_substr_closure(x, i, n, CORD_apply_access_fn));
- }
- *p++ = c;
- }
- *p = '\0';
- result = GC_MALLOC_ATOMIC(n+1);
- if (result == 0) OUT_OF_MEMORY;
- strcpy(result, buf);
- return(result);
- }
- }
-}
-
-CORD CORD_substr(CORD x, size_t i, size_t n)
-{
- register size_t len = CORD_len(x);
-
- if (i >= len || n <= 0) return(0);
- /* n < 0 is impossible in a correct C implementation, but */
- /* quite possible under SunOS 4.X. */
- if (i + n > len) n = len - i;
-# ifndef __STDC__
- if (i < 0) ABORT("CORD_substr: second arg. negative");
- /* Possible only if both client and C implementation are buggy. */
- /* But empirically this happens frequently. */
-# endif
- return(CORD_substr_checked(x, i, n));
-}
-
-/* See cord.h for definition. We assume i is in range. */
-int CORD_iter5(CORD x, size_t i, CORD_iter_fn f1,
- CORD_batched_iter_fn f2, void * client_data)
-{
- if (x == 0) return(0);
- if (CORD_IS_STRING(x)) {
- register const char *p = x+i;
-
- if (*p == '\0') ABORT("2nd arg to CORD_iter5 too big");
- if (f2 != CORD_NO_FN) {
- return((*f2)(p, client_data));
- } else {
- while (*p) {
- if ((*f1)(*p, client_data)) return(1);
- p++;
- }
- return(0);
- }
- } else if (IS_CONCATENATION(x)) {
- register struct Concatenation * conc
- = &(((CordRep *)x) -> concatenation);
-
-
- if (i > 0) {
- register size_t left_len = LEFT_LEN(conc);
-
- if (i >= left_len) {
- return(CORD_iter5(conc -> right, i - left_len, f1, f2,
- client_data));
- }
- }
- if (CORD_iter5(conc -> left, i, f1, f2, client_data)) {
- return(1);
- }
- return(CORD_iter5(conc -> right, 0, f1, f2, client_data));
- } else /* function */ {
- register struct Function * f = &(((CordRep *)x) -> function);
- register size_t j;
- register size_t lim = f -> len;
-
- for (j = i; j < lim; j++) {
- if ((*f1)((*(f -> fn))(j, f -> client_data), client_data)) {
- return(1);
- }
- }
- return(0);
- }
-}
-
-#undef CORD_iter
-int CORD_iter(CORD x, CORD_iter_fn f1, void * client_data)
-{
- return(CORD_iter5(x, 0, f1, CORD_NO_FN, client_data));
-}
-
-int CORD_riter4(CORD x, size_t i, CORD_iter_fn f1, void * client_data)
-{
- if (x == 0) return(0);
- if (CORD_IS_STRING(x)) {
- register const char *p = x + i;
- register char c;
-
- for(;;) {
- c = *p;
- if (c == '\0') ABORT("2nd arg to CORD_riter4 too big");
- if ((*f1)(c, client_data)) return(1);
- if (p == x) break;
- p--;
- }
- return(0);
- } else if (IS_CONCATENATION(x)) {
- register struct Concatenation * conc
- = &(((CordRep *)x) -> concatenation);
- register CORD left_part = conc -> left;
- register size_t left_len;
-
- left_len = LEFT_LEN(conc);
- if (i >= left_len) {
- if (CORD_riter4(conc -> right, i - left_len, f1, client_data)) {
- return(1);
- }
- return(CORD_riter4(left_part, left_len - 1, f1, client_data));
- } else {
- return(CORD_riter4(left_part, i, f1, client_data));
- }
- } else /* function */ {
- register struct Function * f = &(((CordRep *)x) -> function);
- register size_t j;
-
- for (j = i; ; j--) {
- if ((*f1)((*(f -> fn))(j, f -> client_data), client_data)) {
- return(1);
- }
- if (j == 0) return(0);
- }
- }
-}
-
-int CORD_riter(CORD x, CORD_iter_fn f1, void * client_data)
-{
- return(CORD_riter4(x, CORD_len(x) - 1, f1, client_data));
-}
-
-/*
- * The following functions are concerned with balancing cords.
- * Strategy:
- * Scan the cord from left to right, keeping the cord scanned so far
- * as a forest of balanced trees of exponentialy decreasing length.
- * When a new subtree needs to be added to the forest, we concatenate all
- * shorter ones to the new tree in the appropriate order, and then insert
- * the result into the forest.
- * Crucial invariants:
- * 1. The concatenation of the forest (in decreasing order) with the
- * unscanned part of the rope is equal to the rope being balanced.
- * 2. All trees in the forest are balanced.
- * 3. forest[i] has depth at most i.
- */
-
-typedef struct {
- CORD c;
- size_t len; /* Actual length of c */
-} ForestElement;
-
-static size_t min_len [ MAX_DEPTH ];
-
-static int min_len_init = 0;
-
-int CORD_max_len;
-
-typedef ForestElement Forest [ MAX_DEPTH ];
- /* forest[i].len >= fib(i+1) */
- /* The string is the concatenation */
- /* of the forest in order of DECREASING */
- /* indices. */
-
-void CORD_init_min_len()
-{
- register int i;
- register size_t last, previous, current;
-
- min_len[0] = previous = 1;
- min_len[1] = last = 2;
- for (i = 2; i < MAX_DEPTH; i++) {
- current = last + previous;
- if (current < last) /* overflow */ current = last;
- min_len[i] = current;
- previous = last;
- last = current;
- }
- CORD_max_len = last - 1;
- min_len_init = 1;
-}
-
-
-void CORD_init_forest(ForestElement * forest, size_t max_len)
-{
- register int i;
-
- for (i = 0; i < MAX_DEPTH; i++) {
- forest[i].c = 0;
- if (min_len[i] > max_len) return;
- }
- ABORT("Cord too long");
-}
-
-/* Add a leaf to the appropriate level in the forest, cleaning */
-/* out lower levels as necessary. */
-/* Also works if x is a balanced tree of concatenations; however */
-/* in this case an extra concatenation node may be inserted above x; */
-/* This node should not be counted in the statement of the invariants. */
-void CORD_add_forest(ForestElement * forest, CORD x, size_t len)
-{
- register int i = 0;
- register CORD sum = CORD_EMPTY;
- register size_t sum_len = 0;
-
- while (len > min_len[i + 1]) {
- if (forest[i].c != 0) {
- sum = CORD_cat(forest[i].c, sum);
- sum_len += forest[i].len;
- forest[i].c = 0;
- }
- i++;
- }
- /* Sum has depth at most 1 greter than what would be required */
- /* for balance. */
- sum = CORD_cat(sum, x);
- sum_len += len;
- /* If x was a leaf, then sum is now balanced. To see this */
- /* consider the two cases in which forest[i-1] either is or is */
- /* not empty. */
- while (sum_len >= min_len[i]) {
- if (forest[i].c != 0) {
- sum = CORD_cat(forest[i].c, sum);
- sum_len += forest[i].len;
- /* This is again balanced, since sum was balanced, and has */
- /* allowable depth that differs from i by at most 1. */
- forest[i].c = 0;
- }
- i++;
- }
- i--;
- forest[i].c = sum;
- forest[i].len = sum_len;
-}
-
-CORD CORD_concat_forest(ForestElement * forest, size_t expected_len)
-{
- register int i = 0;
- CORD sum = 0;
- size_t sum_len = 0;
-
- while (sum_len != expected_len) {
- if (forest[i].c != 0) {
- sum = CORD_cat(forest[i].c, sum);
- sum_len += forest[i].len;
- }
- i++;
- }
- return(sum);
-}
-
-/* Insert the frontier of x into forest. Balanced subtrees are */
-/* treated as leaves. This potentially adds one to the depth */
-/* of the final tree. */
-void CORD_balance_insert(CORD x, size_t len, ForestElement * forest)
-{
- register int depth;
-
- if (CORD_IS_STRING(x)) {
- CORD_add_forest(forest, x, len);
- } else if (IS_CONCATENATION(x)
- && ((depth = DEPTH(x)) >= MAX_DEPTH
- || len < min_len[depth])) {
- register struct Concatenation * conc
- = &(((CordRep *)x) -> concatenation);
- size_t left_len = LEFT_LEN(conc);
-
- CORD_balance_insert(conc -> left, left_len, forest);
- CORD_balance_insert(conc -> right, len - left_len, forest);
- } else /* function or balanced */ {
- CORD_add_forest(forest, x, len);
- }
-}
-
-
-CORD CORD_balance(CORD x)
-{
- Forest forest;
- register size_t len;
-
- if (x == 0) return(0);
- if (CORD_IS_STRING(x)) return(x);
- if (!min_len_init) CORD_init_min_len();
- len = LEN(x);
- CORD_init_forest(forest, len);
- CORD_balance_insert(x, len, forest);
- return(CORD_concat_forest(forest, len));
-}
-
-
-/* Position primitives */
-
-/* Private routines to deal with the hard cases only: */
-
-/* P contains a prefix of the path to cur_pos. Extend it to a full */
-/* path and set up leaf info. */
-/* Return 0 if past the end of cord, 1 o.w. */
-void CORD__extend_path(register CORD_pos p)
-{
- register struct CORD_pe * current_pe = &(p[0].path[p[0].path_len]);
- register CORD top = current_pe -> pe_cord;
- register size_t pos = p[0].cur_pos;
- register size_t top_pos = current_pe -> pe_start_pos;
- register size_t top_len = GEN_LEN(top);
-
- /* Fill in the rest of the path. */
- while(!CORD_IS_STRING(top) && IS_CONCATENATION(top)) {
- register struct Concatenation * conc =
- &(((CordRep *)top) -> concatenation);
- register size_t left_len;
-
- left_len = LEFT_LEN(conc);
- current_pe++;
- if (pos >= top_pos + left_len) {
- current_pe -> pe_cord = top = conc -> right;
- current_pe -> pe_start_pos = top_pos = top_pos + left_len;
- top_len -= left_len;
- } else {
- current_pe -> pe_cord = top = conc -> left;
- current_pe -> pe_start_pos = top_pos;
- top_len = left_len;
- }
- p[0].path_len++;
- }
- /* Fill in leaf description for fast access. */
- if (CORD_IS_STRING(top)) {
- p[0].cur_leaf = top;
- p[0].cur_start = top_pos;
- p[0].cur_end = top_pos + top_len;
- } else {
- p[0].cur_end = 0;
- }
- if (pos >= top_pos + top_len) p[0].path_len = CORD_POS_INVALID;
-}
-
-char CORD__pos_fetch(register CORD_pos p)
-{
- /* Leaf is a function node */
- struct CORD_pe * pe = &((p)[0].path[(p)[0].path_len]);
- CORD leaf = pe -> pe_cord;
- register struct Function * f = &(((CordRep *)leaf) -> function);
-
- if (!IS_FUNCTION(leaf)) ABORT("CORD_pos_fetch: bad leaf");
- return ((*(f -> fn))(p[0].cur_pos - pe -> pe_start_pos, f -> client_data));
-}
-
-void CORD__next(register CORD_pos p)
-{
- register size_t cur_pos = p[0].cur_pos + 1;
- register struct CORD_pe * current_pe = &((p)[0].path[(p)[0].path_len]);
- register CORD leaf = current_pe -> pe_cord;
-
- /* Leaf is not a string or we're at end of leaf */
- p[0].cur_pos = cur_pos;
- if (!CORD_IS_STRING(leaf)) {
- /* Function leaf */
- register struct Function * f = &(((CordRep *)leaf) -> function);
- register size_t start_pos = current_pe -> pe_start_pos;
- register size_t end_pos = start_pos + f -> len;
-
- if (cur_pos < end_pos) {
- /* Fill cache and return. */
- register size_t i;
- register size_t limit = cur_pos + FUNCTION_BUF_SZ;
- register CORD_fn fn = f -> fn;
- register void * client_data = f -> client_data;
-
- if (limit > end_pos) {
- limit = end_pos;
- }
- for (i = cur_pos; i < limit; i++) {
- p[0].function_buf[i - cur_pos] =
- (*fn)(i - start_pos, client_data);
- }
- p[0].cur_start = cur_pos;
- p[0].cur_leaf = p[0].function_buf;
- p[0].cur_end = limit;
- return;
- }
- }
- /* End of leaf */
- /* Pop the stack until we find two concatenation nodes with the */
- /* same start position: this implies we were in left part. */
- {
- while (p[0].path_len > 0
- && current_pe[0].pe_start_pos != current_pe[-1].pe_start_pos) {
- p[0].path_len--;
- current_pe--;
- }
- if (p[0].path_len == 0) {
- p[0].path_len = CORD_POS_INVALID;
- return;
- }
- }
- p[0].path_len--;
- CORD__extend_path(p);
-}
-
-void CORD__prev(register CORD_pos p)
-{
- register struct CORD_pe * pe = &(p[0].path[p[0].path_len]);
-
- if (p[0].cur_pos == 0) {
- p[0].path_len = CORD_POS_INVALID;
- return;
- }
- p[0].cur_pos--;
- if (p[0].cur_pos >= pe -> pe_start_pos) return;
-
- /* Beginning of leaf */
-
- /* Pop the stack until we find two concatenation nodes with the */
- /* different start position: this implies we were in right part. */
- {
- register struct CORD_pe * current_pe = &((p)[0].path[(p)[0].path_len]);
-
- while (p[0].path_len > 0
- && current_pe[0].pe_start_pos == current_pe[-1].pe_start_pos) {
- p[0].path_len--;
- current_pe--;
- }
- }
- p[0].path_len--;
- CORD__extend_path(p);
-}
-
-#undef CORD_pos_fetch
-#undef CORD_next
-#undef CORD_prev
-#undef CORD_pos_to_index
-#undef CORD_pos_to_cord
-#undef CORD_pos_valid
-
-char CORD_pos_fetch(register CORD_pos p)
-{
- if (p[0].cur_start <= p[0].cur_pos && p[0].cur_pos < p[0].cur_end) {
- return(p[0].cur_leaf[p[0].cur_pos - p[0].cur_start]);
- } else {
- return(CORD__pos_fetch(p));
- }
-}
-
-void CORD_next(CORD_pos p)
-{
- if (p[0].cur_pos < p[0].cur_end - 1) {
- p[0].cur_pos++;
- } else {
- CORD__next(p);
- }
-}
-
-void CORD_prev(CORD_pos p)
-{
- if (p[0].cur_end != 0 && p[0].cur_pos > p[0].cur_start) {
- p[0].cur_pos--;
- } else {
- CORD__prev(p);
- }
-}
-
-size_t CORD_pos_to_index(CORD_pos p)
-{
- return(p[0].cur_pos);
-}
-
-CORD CORD_pos_to_cord(CORD_pos p)
-{
- return(p[0].path[0].pe_cord);
-}
-
-int CORD_pos_valid(CORD_pos p)
-{
- return(p[0].path_len != CORD_POS_INVALID);
-}
-
-void CORD_set_pos(CORD_pos p, CORD x, size_t i)
-{
- if (x == CORD_EMPTY) {
- p[0].path_len = CORD_POS_INVALID;
- return;
- }
- p[0].path[0].pe_cord = x;
- p[0].path[0].pe_start_pos = 0;
- p[0].path_len = 0;
- p[0].cur_pos = i;
- CORD__extend_path(p);
-}
diff --git a/boehm-gc/cord/cordprnt.c b/boehm-gc/cord/cordprnt.c
deleted file mode 100644
index 8d57f0467fb..00000000000
--- a/boehm-gc/cord/cordprnt.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* An sprintf implementation that understands cords. This is probably */
-/* not terribly portable. It assumes an ANSI stdarg.h. It further */
-/* assumes that I can make copies of va_list variables, and read */
-/* arguments repeatedly by applyting va_arg to the copies. This */
-/* could be avoided at some performance cost. */
-/* We also assume that unsigned and signed integers of various kinds */
-/* have the same sizes, and can be cast back and forth. */
-/* We assume that void * and char * have the same size. */
-/* All this cruft is needed because we want to rely on the underlying */
-/* sprintf implementation whenever possible. */
-/* Boehm, September 21, 1995 6:00 pm PDT */
-
-#include "cord.h"
-#include "ec.h"
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include "gc.h"
-
-#define CONV_SPEC_LEN 50 /* Maximum length of a single */
- /* conversion specification. */
-#define CONV_RESULT_LEN 50 /* Maximum length of any */
- /* conversion with default */
- /* width and prec. */
-
-
-static int ec_len(CORD_ec x)
-{
- return(CORD_len(x[0].ec_cord) + (x[0].ec_bufptr - x[0].ec_buf));
-}
-
-/* Possible nonumeric precision values. */
-# define NONE -1
-# define VARIABLE -2
-/* Copy the conversion specification from CORD_pos into the buffer buf */
-/* Return negative on error. */
-/* Source initially points one past the leading %. */
-/* It is left pointing at the conversion type. */
-/* Assign field width and precision to *width and *prec. */
-/* If width or prec is *, VARIABLE is assigned. */
-/* Set *left to 1 if left adjustment flag is present. */
-/* Set *long_arg to 1 if long flag ('l' or 'L') is present, or to */
-/* -1 if 'h' is present. */
-static int extract_conv_spec(CORD_pos source, char *buf,
- int * width, int *prec, int *left, int * long_arg)
-{
- register int result = 0;
- register int current_number = 0;
- register int saw_period = 0;
- register int saw_number;
- register int chars_so_far = 0;
- register char current;
-
- *width = NONE;
- buf[chars_so_far++] = '%';
- while(CORD_pos_valid(source)) {
- if (chars_so_far >= CONV_SPEC_LEN) return(-1);
- current = CORD_pos_fetch(source);
- buf[chars_so_far++] = current;
- switch(current) {
- case '*':
- saw_number = 1;
- current_number = VARIABLE;
- break;
- case '0':
- if (!saw_number) {
- /* Zero fill flag; ignore */
- break;
- } /* otherwise fall through: */
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- saw_number = 1;
- current_number *= 10;
- current_number += current - '0';
- break;
- case '.':
- saw_period = 1;
- if(saw_number) {
- *width = current_number;
- saw_number = 0;
- }
- current_number = 0;
- break;
- case 'l':
- case 'L':
- *long_arg = 1;
- current_number = 0;
- break;
- case 'h':
- *long_arg = -1;
- current_number = 0;
- break;
- case ' ':
- case '+':
- case '#':
- current_number = 0;
- break;
- case '-':
- *left = 1;
- current_number = 0;
- break;
- case 'd':
- case 'i':
- case 'o':
- case 'u':
- case 'x':
- case 'X':
- case 'f':
- case 'e':
- case 'E':
- case 'g':
- case 'G':
- case 'c':
- case 'C':
- case 's':
- case 'S':
- case 'p':
- case 'n':
- case 'r':
- goto done;
- default:
- return(-1);
- }
- CORD_next(source);
- }
- return(-1);
- done:
- if (saw_number) {
- if (saw_period) {
- *prec = current_number;
- } else {
- *prec = NONE;
- *width = current_number;
- }
- } else {
- *prec = NONE;
- }
- buf[chars_so_far] = '\0';
- return(result);
-}
-
-int CORD_vsprintf(CORD * out, CORD format, va_list args)
-{
- CORD_ec result;
- register int count;
- register char current;
- CORD_pos pos;
- char conv_spec[CONV_SPEC_LEN + 1];
-
- CORD_ec_init(result);
- for (CORD_set_pos(pos, format, 0); CORD_pos_valid(pos); CORD_next(pos)) {
- current = CORD_pos_fetch(pos);
- if (current == '%') {
- CORD_next(pos);
- if (!CORD_pos_valid(pos)) return(-1);
- current = CORD_pos_fetch(pos);
- if (current == '%') {
- CORD_ec_append(result, current);
- } else {
- int width, prec;
- int left_adj = 0;
- int long_arg = 0;
- CORD arg;
- size_t len;
-
- if (extract_conv_spec(pos, conv_spec,
- &width, &prec,
- &left_adj, &long_arg) < 0) {
- return(-1);
- }
- current = CORD_pos_fetch(pos);
- switch(current) {
- case 'n':
- /* Assign length to next arg */
- if (long_arg == 0) {
- int * pos_ptr;
- pos_ptr = va_arg(args, int *);
- *pos_ptr = ec_len(result);
- } else if (long_arg > 0) {
- long * pos_ptr;
- pos_ptr = va_arg(args, long *);
- *pos_ptr = ec_len(result);
- } else {
- short * pos_ptr;
- pos_ptr = va_arg(args, short *);
- *pos_ptr = ec_len(result);
- }
- goto done;
- case 'r':
- /* Append cord and any padding */
- if (width == VARIABLE) width = va_arg(args, int);
- if (prec == VARIABLE) prec = va_arg(args, int);
- arg = va_arg(args, CORD);
- len = CORD_len(arg);
- if (prec != NONE && len > prec) {
- if (prec < 0) return(-1);
- arg = CORD_substr(arg, 0, prec);
- len = prec;
- }
- if (width != NONE && len < width) {
- char * blanks = GC_MALLOC_ATOMIC(width-len+1);
-
- memset(blanks, ' ', width-len);
- blanks[width-len] = '\0';
- if (left_adj) {
- arg = CORD_cat(arg, blanks);
- } else {
- arg = CORD_cat(blanks, arg);
- }
- }
- CORD_ec_append_cord(result, arg);
- goto done;
- case 'c':
- if (width == NONE && prec == NONE) {
- register char c;
-
- c = va_arg(args, int);
- CORD_ec_append(result, c);
- goto done;
- }
- break;
- case 's':
- if (width == NONE && prec == NONE) {
- char * str = va_arg(args, char *);
- register char c;
-
- while (c = *str++) {
- CORD_ec_append(result, c);
- }
- goto done;
- }
- break;
- default:
- break;
- }
- /* Use standard sprintf to perform conversion */
- {
- register char * buf;
- va_list vsprintf_args = args;
- /* The above does not appear to be sanctioned */
- /* by the ANSI C standard. */
- int max_size = 0;
- int res;
-
- if (width == VARIABLE) width = va_arg(args, int);
- if (prec == VARIABLE) prec = va_arg(args, int);
- if (width != NONE) max_size = width;
- if (prec != NONE && prec > max_size) max_size = prec;
- max_size += CONV_RESULT_LEN;
- if (max_size >= CORD_BUFSZ) {
- buf = GC_MALLOC_ATOMIC(max_size + 1);
- } else {
- if (CORD_BUFSZ - (result[0].ec_bufptr-result[0].ec_buf)
- < max_size) {
- CORD_ec_flush_buf(result);
- }
- buf = result[0].ec_bufptr;
- }
- switch(current) {
- case 'd':
- case 'i':
- case 'o':
- case 'u':
- case 'x':
- case 'X':
- case 'c':
- if (long_arg <= 0) {
- (void) va_arg(args, int);
- } else if (long_arg > 0) {
- (void) va_arg(args, long);
- }
- break;
- case 's':
- case 'p':
- (void) va_arg(args, char *);
- break;
- case 'f':
- case 'e':
- case 'E':
- case 'g':
- case 'G':
- (void) va_arg(args, double);
- break;
- default:
- return(-1);
- }
- res = vsprintf(buf, conv_spec, vsprintf_args);
- len = (size_t)res;
- if ((char *)(GC_word)res == buf) {
- /* old style vsprintf */
- len = strlen(buf);
- } else if (res < 0) {
- return(-1);
- }
- if (buf != result[0].ec_bufptr) {
- register char c;
-
- while (c = *buf++) {
- CORD_ec_append(result, c);
- }
- } else {
- result[0].ec_bufptr = buf + len;
- }
- }
- done:;
- }
- } else {
- CORD_ec_append(result, current);
- }
- }
- count = ec_len(result);
- *out = CORD_balance(CORD_ec_to_cord(result));
- return(count);
-}
-
-int CORD_sprintf(CORD * out, CORD format, ...)
-{
- va_list args;
- int result;
-
- va_start(args, format);
- result = CORD_vsprintf(out, format, args);
- va_end(args);
- return(result);
-}
-
-int CORD_fprintf(FILE * f, CORD format, ...)
-{
- va_list args;
- int result;
- CORD out;
-
- va_start(args, format);
- result = CORD_vsprintf(&out, format, args);
- va_end(args);
- if (result > 0) CORD_put(out, f);
- return(result);
-}
-
-int CORD_vfprintf(FILE * f, CORD format, va_list args)
-{
- int result;
- CORD out;
-
- result = CORD_vsprintf(&out, format, args);
- if (result > 0) CORD_put(out, f);
- return(result);
-}
-
-int CORD_printf(CORD format, ...)
-{
- va_list args;
- int result;
- CORD out;
-
- va_start(args, format);
- result = CORD_vsprintf(&out, format, args);
- va_end(args);
- if (result > 0) CORD_put(out, stdout);
- return(result);
-}
-
-int CORD_vprintf(CORD format, va_list args)
-{
- int result;
- CORD out;
-
- result = CORD_vsprintf(&out, format, args);
- if (result > 0) CORD_put(out, stdout);
- return(result);
-}
diff --git a/boehm-gc/cord/cordtest.c b/boehm-gc/cord/cordtest.c
deleted file mode 100644
index d11d7dd44df..00000000000
--- a/boehm-gc/cord/cordtest.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, August 24, 1994 11:58 am PDT */
-# include "cord.h"
-# include <string.h>
-# include <stdio.h>
-/* This is a very incomplete test of the cord package. It knows about */
-/* a few internals of the package (e.g. when C strings are returned) */
-/* that real clients shouldn't rely on. */
-
-# define ABORT(string) \
-{ int x = 0; fprintf(stderr, "FAILED: %s\n", string); x = 1 / x; abort(); }
-
-int count;
-
-int test_fn(char c, void * client_data)
-{
- if (client_data != (void *)13) ABORT("bad client data");
- if (count < 64*1024+1) {
- if ((count & 1) == 0) {
- if (c != 'b') ABORT("bad char");
- } else {
- if (c != 'a') ABORT("bad char");
- }
- count++;
- return(0);
- } else {
- if (c != 'c') ABORT("bad char");
- count++;
- return(1);
- }
-}
-
-char id_cord_fn(size_t i, void * client_data)
-{
- return((char)i);
-}
-
-void test_basics()
-{
- CORD x = CORD_from_char_star("ab");
- register int i;
- char c;
- CORD y;
- CORD_pos p;
-
- x = CORD_cat(x,x);
- if (!CORD_IS_STRING(x)) ABORT("short cord should usually be a string");
- if (strcmp(x, "abab") != 0) ABORT("bad CORD_cat result");
-
- for (i = 1; i < 16; i++) {
- x = CORD_cat(x,x);
- }
- x = CORD_cat(x,"c");
- if (CORD_len(x) != 128*1024+1) ABORT("bad length");
-
- count = 0;
- if (CORD_iter5(x, 64*1024-1, test_fn, CORD_NO_FN, (void *)13) == 0) {
- ABORT("CORD_iter5 failed");
- }
- if (count != 64*1024 + 2) ABORT("CORD_iter5 failed");
-
- count = 0;
- CORD_set_pos(p, x, 64*1024-1);
- while(CORD_pos_valid(p)) {
- (void) test_fn(CORD_pos_fetch(p), (void *)13);
- CORD_next(p);
- }
- if (count != 64*1024 + 2) ABORT("Position based iteration failed");
-
- y = CORD_substr(x, 1023, 5);
- if (!CORD_IS_STRING(y)) ABORT("short cord should usually be a string");
- if (strcmp(y, "babab") != 0) ABORT("bad CORD_substr result");
-
- y = CORD_substr(x, 1024, 8);
- if (!CORD_IS_STRING(y)) ABORT("short cord should usually be a string");
- if (strcmp(y, "abababab") != 0) ABORT("bad CORD_substr result");
-
- y = CORD_substr(x, 128*1024-1, 8);
- if (!CORD_IS_STRING(y)) ABORT("short cord should usually be a string");
- if (strcmp(y, "bc") != 0) ABORT("bad CORD_substr result");
-
- x = CORD_balance(x);
- if (CORD_len(x) != 128*1024+1) ABORT("bad length");
-
- count = 0;
- if (CORD_iter5(x, 64*1024-1, test_fn, CORD_NO_FN, (void *)13) == 0) {
- ABORT("CORD_iter5 failed");
- }
- if (count != 64*1024 + 2) ABORT("CORD_iter5 failed");
-
- y = CORD_substr(x, 1023, 5);
- if (!CORD_IS_STRING(y)) ABORT("short cord should usually be a string");
- if (strcmp(y, "babab") != 0) ABORT("bad CORD_substr result");
- y = CORD_from_fn(id_cord_fn, 0, 13);
- i = 0;
- CORD_set_pos(p, y, i);
- while(CORD_pos_valid(p)) {
- c = CORD_pos_fetch(p);
- if(c != i) ABORT("Traversal of function node failed");
- CORD_next(p); i++;
- }
- if (i != 13) ABORT("Bad apparent length for function node");
-}
-
-void test_extras()
-{
-# if defined(__OS2__)
-# define FNAME1 "tmp1"
-# define FNAME2 "tmp2"
-# elif defined(AMIGA)
-# define FNAME1 "T:tmp1"
-# define FNAME2 "T:tmp2"
-# else
-# define FNAME1 "/tmp/cord_test"
-# define FNAME2 "/tmp/cord_test2"
-# endif
- register int i;
- CORD y = "abcdefghijklmnopqrstuvwxyz0123456789";
- CORD x = "{}";
- CORD w, z;
- FILE *f;
- FILE *f1a, *f1b, *f2;
-
- w = CORD_cat(CORD_cat(y,y),y);
- z = CORD_catn(3,y,y,y);
- if (CORD_cmp(w,z) != 0) ABORT("CORD_catn comparison wrong");
- for (i = 1; i < 100; i++) {
- x = CORD_cat(x, y);
- }
- z = CORD_balance(x);
- if (CORD_cmp(x,z) != 0) ABORT("balanced string comparison wrong");
- if (CORD_cmp(x,CORD_cat(z, CORD_nul(13))) >= 0) ABORT("comparison 2");
- if (CORD_cmp(CORD_cat(x, CORD_nul(13)), z) <= 0) ABORT("comparison 3");
- if (CORD_cmp(x,CORD_cat(z, "13")) >= 0) ABORT("comparison 4");
- if ((f = fopen(FNAME1, "w")) == 0) ABORT("open failed");
- if (CORD_put(z,f) == EOF) ABORT("CORD_put failed");
- if (fclose(f) == EOF) ABORT("fclose failed");
- w = CORD_from_file(f1a = fopen(FNAME1, "rb"));
- if (CORD_len(w) != CORD_len(z)) ABORT("file length wrong");
- if (CORD_cmp(w,z) != 0) ABORT("file comparison wrong");
- if (CORD_cmp(CORD_substr(w, 50*36+2, 36), y) != 0)
- ABORT("file substr wrong");
- z = CORD_from_file_lazy(f1b = fopen(FNAME1, "rb"));
- if (CORD_cmp(w,z) != 0) ABORT("File conversions differ");
- if (CORD_chr(w, 0, '9') != 37) ABORT("CORD_chr failed 1");
- if (CORD_chr(w, 3, 'a') != 38) ABORT("CORD_chr failed 2");
- if (CORD_rchr(w, CORD_len(w) - 1, '}') != 1) ABORT("CORD_rchr failed");
- x = y;
- for (i = 1; i < 14; i++) {
- x = CORD_cat(x,x);
- }
- if ((f = fopen(FNAME2, "w")) == 0) ABORT("2nd open failed");
- if (CORD_put(x,f) == EOF) ABORT("CORD_put failed");
- if (fclose(f) == EOF) ABORT("fclose failed");
- w = CORD_from_file(f2 = fopen(FNAME2, "rb"));
- if (CORD_len(w) != CORD_len(x)) ABORT("file length wrong");
- if (CORD_cmp(w,x) != 0) ABORT("file comparison wrong");
- if (CORD_cmp(CORD_substr(w, 1000*36, 36), y) != 0)
- ABORT("file substr wrong");
- if (strcmp(CORD_to_char_star(CORD_substr(w, 1000*36, 36)), y) != 0)
- ABORT("char * file substr wrong");
- if (strcmp(CORD_substr(w, 1000*36, 2), "ab") != 0)
- ABORT("short file substr wrong");
- if (CORD_str(x,1,"9a") != 35) ABORT("CORD_str failed 1");
- if (CORD_str(x,0,"9abcdefghijk") != 35) ABORT("CORD_str failed 2");
- if (CORD_str(x,0,"9abcdefghijx") != CORD_NOT_FOUND)
- ABORT("CORD_str failed 3");
- if (CORD_str(x,0,"9>") != CORD_NOT_FOUND) ABORT("CORD_str failed 4");
- if (remove(FNAME1) != 0) {
- /* On some systems, e.g. OS2, this may fail if f1 is still open. */
- if ((fclose(f1a) == EOF) & (fclose(f1b) == EOF))
- ABORT("fclose(f1) failed");
- if (remove(FNAME1) != 0) ABORT("remove 1 failed");
- }
- if (remove(FNAME2) != 0) {
- if (fclose(f2) == EOF) ABORT("fclose(f2) failed");
- if (remove(FNAME2) != 0) ABORT("remove 2 failed");
- }
-}
-
-void test_printf()
-{
- CORD result;
- char result2[200];
- long l;
- short s;
- CORD x;
-
- if (CORD_sprintf(&result, "%7.2f%ln", 3.14159F, &l) != 7)
- ABORT("CORD_sprintf failed 1");
- if (CORD_cmp(result, " 3.14") != 0)ABORT("CORD_sprintf goofed 1");
- if (l != 7) ABORT("CORD_sprintf goofed 2");
- if (CORD_sprintf(&result, "%-7.2s%hn%c%s", "abcd", &s, 'x', "yz") != 10)
- ABORT("CORD_sprintf failed 2");
- if (CORD_cmp(result, "ab xyz") != 0)ABORT("CORD_sprintf goofed 3");
- if (s != 7) ABORT("CORD_sprintf goofed 4");
- x = "abcdefghij";
- x = CORD_cat(x,x);
- x = CORD_cat(x,x);
- x = CORD_cat(x,x);
- if (CORD_sprintf(&result, "->%-120.78r!\n", x) != 124)
- ABORT("CORD_sprintf failed 3");
- (void) sprintf(result2, "->%-120.78s!\n", CORD_to_char_star(x));
- if (CORD_cmp(result, result2) != 0)ABORT("CORD_sprintf goofed 5");
-}
-
-main()
-{
-# ifdef THINK_C
- printf("cordtest:\n");
-# endif
- test_basics();
- test_extras();
- test_printf();
- CORD_fprintf(stderr, "SUCCEEDED\n");
- return(0);
-}
diff --git a/boehm-gc/cord/cordxtra.c b/boehm-gc/cord/cordxtra.c
deleted file mode 100644
index a5be10de58a..00000000000
--- a/boehm-gc/cord/cordxtra.c
+++ /dev/null
@@ -1,621 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Author: Hans-J. Boehm (boehm@parc.xerox.com)
- */
-/*
- * These are functions on cords that do not need to understand their
- * implementation. They serve also serve as example client code for
- * cord_basics.
- */
-/* Boehm, December 8, 1995 1:53 pm PST */
-# include <stdio.h>
-# include <string.h>
-# include <stdlib.h>
-# include <stdarg.h>
-# include "cord.h"
-# include "ec.h"
-# define I_HIDE_POINTERS /* So we get access to allocation lock. */
- /* We use this for lazy file reading, */
- /* so that we remain independent */
- /* of the threads primitives. */
-# include "gc.h"
-
-/* For now we assume that pointer reads and writes are atomic, */
-/* i.e. another thread always sees the state before or after */
-/* a write. This might be false on a Motorola M68K with */
-/* pointers that are not 32-bit aligned. But there probably */
-/* aren't too many threads packages running on those. */
-# define ATOMIC_WRITE(x,y) (x) = (y)
-# define ATOMIC_READ(x) (*(x))
-
-/* The standard says these are in stdio.h, but they aren't always: */
-# ifndef SEEK_SET
-# define SEEK_SET 0
-# endif
-# ifndef SEEK_END
-# define SEEK_END 2
-# endif
-
-# define BUFSZ 2048 /* Size of stack allocated buffers when */
- /* we want large buffers. */
-
-typedef void (* oom_fn)(void);
-
-# define OUT_OF_MEMORY { if (CORD_oom_fn != (oom_fn) 0) (*CORD_oom_fn)(); \
- ABORT("Out of memory\n"); }
-# define ABORT(msg) { fprintf(stderr, "%s\n", msg); abort(); }
-
-CORD CORD_cat_char(CORD x, char c)
-{
- register char * string;
-
- if (c == '\0') return(CORD_cat(x, CORD_nul(1)));
- string = GC_MALLOC_ATOMIC(2);
- if (string == 0) OUT_OF_MEMORY;
- string[0] = c;
- string[1] = '\0';
- return(CORD_cat_char_star(x, string, 1));
-}
-
-CORD CORD_catn(int nargs, ...)
-{
- register CORD result = CORD_EMPTY;
- va_list args;
- register int i;
-
- va_start(args, nargs);
- for (i = 0; i < nargs; i++) {
- register CORD next = va_arg(args, CORD);
- result = CORD_cat(result, next);
- }
- va_end(args);
- return(result);
-}
-
-typedef struct {
- size_t len;
- size_t count;
- char * buf;
-} CORD_fill_data;
-
-int CORD_fill_proc(char c, void * client_data)
-{
- register CORD_fill_data * d = (CORD_fill_data *)client_data;
- register size_t count = d -> count;
-
- (d -> buf)[count] = c;
- d -> count = ++count;
- if (count >= d -> len) {
- return(1);
- } else {
- return(0);
- }
-}
-
-int CORD_batched_fill_proc(const char * s, void * client_data)
-{
- register CORD_fill_data * d = (CORD_fill_data *)client_data;
- register size_t count = d -> count;
- register size_t max = d -> len;
- register char * buf = d -> buf;
- register const char * t = s;
-
- while((buf[count] = *t++) != '\0') {
- count++;
- if (count >= max) {
- d -> count = count;
- return(1);
- }
- }
- d -> count = count;
- return(0);
-}
-
-/* Fill buf with len characters starting at i. */
-/* Assumes len characters are available. */
-void CORD_fill_buf(CORD x, size_t i, size_t len, char * buf)
-{
- CORD_fill_data fd;
-
- fd.len = len;
- fd.buf = buf;
- fd.count = 0;
- (void)CORD_iter5(x, i, CORD_fill_proc, CORD_batched_fill_proc, &fd);
-}
-
-int CORD_cmp(CORD x, CORD y)
-{
- CORD_pos xpos;
- CORD_pos ypos;
- register size_t avail, yavail;
-
- if (y == CORD_EMPTY) return(x != CORD_EMPTY);
- if (x == CORD_EMPTY) return(-1);
- if (CORD_IS_STRING(y) && CORD_IS_STRING(x)) return(strcmp(x,y));
- CORD_set_pos(xpos, x, 0);
- CORD_set_pos(ypos, y, 0);
- for(;;) {
- if (!CORD_pos_valid(xpos)) {
- if (CORD_pos_valid(ypos)) {
- return(-1);
- } else {
- return(0);
- }
- }
- if (!CORD_pos_valid(ypos)) {
- return(1);
- }
- if ((avail = CORD_pos_chars_left(xpos)) <= 0
- || (yavail = CORD_pos_chars_left(ypos)) <= 0) {
- register char xcurrent = CORD_pos_fetch(xpos);
- register char ycurrent = CORD_pos_fetch(ypos);
- if (xcurrent != ycurrent) return(xcurrent - ycurrent);
- CORD_next(xpos);
- CORD_next(ypos);
- } else {
- /* process as many characters as we can */
- register int result;
-
- if (avail > yavail) avail = yavail;
- result = strncmp(CORD_pos_cur_char_addr(xpos),
- CORD_pos_cur_char_addr(ypos), avail);
- if (result != 0) return(result);
- CORD_pos_advance(xpos, avail);
- CORD_pos_advance(ypos, avail);
- }
- }
-}
-
-int CORD_ncmp(CORD x, size_t x_start, CORD y, size_t y_start, size_t len)
-{
- CORD_pos xpos;
- CORD_pos ypos;
- register size_t count;
- register long avail, yavail;
-
- CORD_set_pos(xpos, x, x_start);
- CORD_set_pos(ypos, y, y_start);
- for(count = 0; count < len;) {
- if (!CORD_pos_valid(xpos)) {
- if (CORD_pos_valid(ypos)) {
- return(-1);
- } else {
- return(0);
- }
- }
- if (!CORD_pos_valid(ypos)) {
- return(1);
- }
- if ((avail = CORD_pos_chars_left(xpos)) <= 0
- || (yavail = CORD_pos_chars_left(ypos)) <= 0) {
- register char xcurrent = CORD_pos_fetch(xpos);
- register char ycurrent = CORD_pos_fetch(ypos);
- if (xcurrent != ycurrent) return(xcurrent - ycurrent);
- CORD_next(xpos);
- CORD_next(ypos);
- count++;
- } else {
- /* process as many characters as we can */
- register int result;
-
- if (avail > yavail) avail = yavail;
- count += avail;
- if (count > len) avail -= (count - len);
- result = strncmp(CORD_pos_cur_char_addr(xpos),
- CORD_pos_cur_char_addr(ypos), (size_t)avail);
- if (result != 0) return(result);
- CORD_pos_advance(xpos, (size_t)avail);
- CORD_pos_advance(ypos, (size_t)avail);
- }
- }
- return(0);
-}
-
-char * CORD_to_char_star(CORD x)
-{
- register size_t len = CORD_len(x);
- char * result = GC_MALLOC_ATOMIC(len + 1);
-
- if (result == 0) OUT_OF_MEMORY;
- CORD_fill_buf(x, 0, len, result);
- result[len] = '\0';
- return(result);
-}
-
-CORD CORD_from_char_star(const char *s)
-{
- char * result;
- size_t len = strlen(s);
-
- if (0 == len) return(CORD_EMPTY);
- result = GC_MALLOC_ATOMIC(len + 1);
- if (result == 0) OUT_OF_MEMORY;
- memcpy(result, s, len+1);
- return(result);
-}
-
-const char * CORD_to_const_char_star(CORD x)
-{
- if (x == 0) return("");
- if (CORD_IS_STRING(x)) return((const char *)x);
- return(CORD_to_char_star(x));
-}
-
-char CORD_fetch(CORD x, size_t i)
-{
- CORD_pos xpos;
-
- CORD_set_pos(xpos, x, i);
- if (!CORD_pos_valid(xpos)) ABORT("bad index?");
- return(CORD_pos_fetch(xpos));
-}
-
-
-int CORD_put_proc(char c, void * client_data)
-{
- register FILE * f = (FILE *)client_data;
-
- return(putc(c, f) == EOF);
-}
-
-int CORD_batched_put_proc(const char * s, void * client_data)
-{
- register FILE * f = (FILE *)client_data;
-
- return(fputs(s, f) == EOF);
-}
-
-
-int CORD_put(CORD x, FILE * f)
-{
- if (CORD_iter5(x, 0, CORD_put_proc, CORD_batched_put_proc, f)) {
- return(EOF);
- } else {
- return(1);
- }
-}
-
-typedef struct {
- size_t pos; /* Current position in the cord */
- char target; /* Character we're looking for */
-} chr_data;
-
-int CORD_chr_proc(char c, void * client_data)
-{
- register chr_data * d = (chr_data *)client_data;
-
- if (c == d -> target) return(1);
- (d -> pos) ++;
- return(0);
-}
-
-int CORD_rchr_proc(char c, void * client_data)
-{
- register chr_data * d = (chr_data *)client_data;
-
- if (c == d -> target) return(1);
- (d -> pos) --;
- return(0);
-}
-
-int CORD_batched_chr_proc(const char *s, void * client_data)
-{
- register chr_data * d = (chr_data *)client_data;
- register char * occ = strchr(s, d -> target);
-
- if (occ == 0) {
- d -> pos += strlen(s);
- return(0);
- } else {
- d -> pos += occ - s;
- return(1);
- }
-}
-
-size_t CORD_chr(CORD x, size_t i, int c)
-{
- chr_data d;
-
- d.pos = i;
- d.target = c;
- if (CORD_iter5(x, i, CORD_chr_proc, CORD_batched_chr_proc, &d)) {
- return(d.pos);
- } else {
- return(CORD_NOT_FOUND);
- }
-}
-
-size_t CORD_rchr(CORD x, size_t i, int c)
-{
- chr_data d;
-
- d.pos = i;
- d.target = c;
- if (CORD_riter4(x, i, CORD_rchr_proc, &d)) {
- return(d.pos);
- } else {
- return(CORD_NOT_FOUND);
- }
-}
-
-/* Find the first occurrence of s in x at position start or later. */
-/* This uses an asymptotically poor algorithm, which should typically */
-/* perform acceptably. We compare the first few characters directly, */
-/* and call CORD_ncmp whenever there is a partial match. */
-/* This has the advantage that we allocate very little, or not at all. */
-/* It's very fast if there are few close misses. */
-size_t CORD_str(CORD x, size_t start, CORD s)
-{
- CORD_pos xpos;
- size_t xlen = CORD_len(x);
- size_t slen;
- register size_t start_len;
- const char * s_start;
- unsigned long s_buf = 0; /* The first few characters of s */
- unsigned long x_buf = 0; /* Start of candidate substring. */
- /* Initialized only to make compilers */
- /* happy. */
- unsigned long mask = 0;
- register size_t i;
- register size_t match_pos;
-
- if (s == CORD_EMPTY) return(start);
- if (CORD_IS_STRING(s)) {
- s_start = s;
- slen = strlen(s);
- } else {
- s_start = CORD_to_char_star(CORD_substr(s, 0, sizeof(unsigned long)));
- slen = CORD_len(s);
- }
- if (xlen < start || xlen - start < slen) return(CORD_NOT_FOUND);
- start_len = slen;
- if (start_len > sizeof(unsigned long)) start_len = sizeof(unsigned long);
- CORD_set_pos(xpos, x, start);
- for (i = 0; i < start_len; i++) {
- mask <<= 8;
- mask |= 0xff;
- s_buf <<= 8;
- s_buf |= s_start[i];
- x_buf <<= 8;
- x_buf |= CORD_pos_fetch(xpos);
- CORD_next(xpos);
- }
- for (match_pos = start; ; match_pos++) {
- if ((x_buf & mask) == s_buf) {
- if (slen == start_len ||
- CORD_ncmp(x, match_pos + start_len,
- s, start_len, slen - start_len) == 0) {
- return(match_pos);
- }
- }
- if ( match_pos == xlen - slen ) {
- return(CORD_NOT_FOUND);
- }
- x_buf <<= 8;
- x_buf |= CORD_pos_fetch(xpos);
- CORD_next(xpos);
- }
-}
-
-void CORD_ec_flush_buf(CORD_ec x)
-{
- register size_t len = x[0].ec_bufptr - x[0].ec_buf;
- char * s;
-
- if (len == 0) return;
- s = GC_MALLOC_ATOMIC(len+1);
- memcpy(s, x[0].ec_buf, len);
- s[len] = '\0';
- x[0].ec_cord = CORD_cat_char_star(x[0].ec_cord, s, len);
- x[0].ec_bufptr = x[0].ec_buf;
-}
-
-void CORD_ec_append_cord(CORD_ec x, CORD s)
-{
- CORD_ec_flush_buf(x);
- x[0].ec_cord = CORD_cat(x[0].ec_cord, s);
-}
-
-/*ARGSUSED*/
-char CORD_nul_func(size_t i, void * client_data)
-{
- return((char)(unsigned long)client_data);
-}
-
-
-CORD CORD_chars(char c, size_t i)
-{
- return(CORD_from_fn(CORD_nul_func, (void *)(unsigned long)c, i));
-}
-
-CORD CORD_from_file_eager(FILE * f)
-{
- register int c;
- CORD_ec ecord;
-
- CORD_ec_init(ecord);
- for(;;) {
- c = getc(f);
- if (c == 0) {
- /* Append the right number of NULs */
- /* Note that any string of NULs is rpresented in 4 words, */
- /* independent of its length. */
- register size_t count = 1;
-
- CORD_ec_flush_buf(ecord);
- while ((c = getc(f)) == 0) count++;
- ecord[0].ec_cord = CORD_cat(ecord[0].ec_cord, CORD_nul(count));
- }
- if (c == EOF) break;
- CORD_ec_append(ecord, c);
- }
- (void) fclose(f);
- return(CORD_balance(CORD_ec_to_cord(ecord)));
-}
-
-/* The state maintained for a lazily read file consists primarily */
-/* of a large direct-mapped cache of previously read values. */
-/* We could rely more on stdio buffering. That would have 2 */
-/* disadvantages: */
-/* 1) Empirically, not all fseek implementations preserve the */
-/* buffer whenever they could. */
-/* 2) It would fail if 2 different sections of a long cord */
-/* were being read alternately. */
-/* We do use the stdio buffer for read ahead. */
-/* To guarantee thread safety in the presence of atomic pointer */
-/* writes, cache lines are always replaced, and never modified in */
-/* place. */
-
-# define LOG_CACHE_SZ 14
-# define CACHE_SZ (1 << LOG_CACHE_SZ)
-# define LOG_LINE_SZ 9
-# define LINE_SZ (1 << LOG_LINE_SZ)
-
-typedef struct {
- size_t tag;
- char data[LINE_SZ];
- /* data[i%LINE_SZ] = ith char in file if tag = i/LINE_SZ */
-} cache_line;
-
-typedef struct {
- FILE * lf_file;
- size_t lf_current; /* Current file pointer value */
- cache_line * volatile lf_cache[CACHE_SZ/LINE_SZ];
-} lf_state;
-
-# define MOD_CACHE_SZ(n) ((n) & (CACHE_SZ - 1))
-# define DIV_CACHE_SZ(n) ((n) >> LOG_CACHE_SZ)
-# define MOD_LINE_SZ(n) ((n) & (LINE_SZ - 1))
-# define DIV_LINE_SZ(n) ((n) >> LOG_LINE_SZ)
-# define LINE_START(n) ((n) & ~(LINE_SZ - 1))
-
-typedef struct {
- lf_state * state;
- size_t file_pos; /* Position of needed character. */
- cache_line * new_cache;
-} refill_data;
-
-/* Executed with allocation lock. */
-static char refill_cache(client_data)
-refill_data * client_data;
-{
- register lf_state * state = client_data -> state;
- register size_t file_pos = client_data -> file_pos;
- FILE *f = state -> lf_file;
- size_t line_start = LINE_START(file_pos);
- size_t line_no = DIV_LINE_SZ(MOD_CACHE_SZ(file_pos));
- cache_line * new_cache = client_data -> new_cache;
-
- if (line_start != state -> lf_current
- && fseek(f, line_start, SEEK_SET) != 0) {
- ABORT("fseek failed");
- }
- if (fread(new_cache -> data, sizeof(char), LINE_SZ, f)
- <= file_pos - line_start) {
- ABORT("fread failed");
- }
- new_cache -> tag = DIV_LINE_SZ(file_pos);
- /* Store barrier goes here. */
- ATOMIC_WRITE(state -> lf_cache[line_no], new_cache);
- state -> lf_current = line_start + LINE_SZ;
- return(new_cache->data[MOD_LINE_SZ(file_pos)]);
-}
-
-char CORD_lf_func(size_t i, void * client_data)
-{
- register lf_state * state = (lf_state *)client_data;
- register cache_line * volatile * cl_addr =
- &(state -> lf_cache[DIV_LINE_SZ(MOD_CACHE_SZ(i))]);
- register cache_line * cl = (cache_line *)ATOMIC_READ(cl_addr);
-
- if (cl == 0 || cl -> tag != DIV_LINE_SZ(i)) {
- /* Cache miss */
- refill_data rd;
-
- rd.state = state;
- rd.file_pos = i;
- rd.new_cache = GC_NEW_ATOMIC(cache_line);
- if (rd.new_cache == 0) OUT_OF_MEMORY;
- return((char)(GC_word)
- GC_call_with_alloc_lock((GC_fn_type) refill_cache, &rd));
- }
- return(cl -> data[MOD_LINE_SZ(i)]);
-}
-
-/*ARGSUSED*/
-void CORD_lf_close_proc(void * obj, void * client_data)
-{
- if (fclose(((lf_state *)obj) -> lf_file) != 0) {
- ABORT("CORD_lf_close_proc: fclose failed");
- }
-}
-
-CORD CORD_from_file_lazy_inner(FILE * f, size_t len)
-{
- register lf_state * state = GC_NEW(lf_state);
- register int i;
-
- if (state == 0) OUT_OF_MEMORY;
- if (len != 0) {
- /* Dummy read to force buffer allocation. */
- /* This greatly increases the probability */
- /* of avoiding deadlock if buffer allocation */
- /* is redirected to GC_malloc and the */
- /* world is multithreaded. */
- char buf[1];
-
- (void) fread(buf, 1, 1, f);
- rewind(f);
- }
- state -> lf_file = f;
- for (i = 0; i < CACHE_SZ/LINE_SZ; i++) {
- state -> lf_cache[i] = 0;
- }
- state -> lf_current = 0;
- GC_REGISTER_FINALIZER(state, CORD_lf_close_proc, 0, 0, 0);
- return(CORD_from_fn(CORD_lf_func, state, len));
-}
-
-CORD CORD_from_file_lazy(FILE * f)
-{
- register long len;
-
- if (fseek(f, 0l, SEEK_END) != 0) {
- ABORT("Bad fd argument - fseek failed");
- }
- if ((len = ftell(f)) < 0) {
- ABORT("Bad fd argument - ftell failed");
- }
- rewind(f);
- return(CORD_from_file_lazy_inner(f, (size_t)len));
-}
-
-# define LAZY_THRESHOLD (128*1024 + 1)
-
-CORD CORD_from_file(FILE * f)
-{
- register long len;
-
- if (fseek(f, 0l, SEEK_END) != 0) {
- ABORT("Bad fd argument - fseek failed");
- }
- if ((len = ftell(f)) < 0) {
- ABORT("Bad fd argument - ftell failed");
- }
- rewind(f);
- if (len < LAZY_THRESHOLD) {
- return(CORD_from_file_eager(f));
- } else {
- return(CORD_from_file_lazy_inner(f, (size_t)len));
- }
-}
diff --git a/boehm-gc/cord/de.c b/boehm-gc/cord/de.c
deleted file mode 100644
index fda71424176..00000000000
--- a/boehm-gc/cord/de.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Author: Hans-J. Boehm (boehm@parc.xerox.com)
- */
-/*
- * A really simple-minded text editor based on cords.
- * Things it does right:
- * No size bounds.
- * Inbounded undo.
- * Shouldn't crash no matter what file you invoke it on (e.g. /vmunix)
- * (Make sure /vmunix is not writable before you try this.)
- * Scrolls horizontally.
- * Things it does wrong:
- * It doesn't handle tabs reasonably (use "expand" first).
- * The command set is MUCH too small.
- * The redisplay algorithm doesn't let curses do the scrolling.
- * The rule for moving the window over the file is suboptimal.
- */
-/* Boehm, February 6, 1995 12:27 pm PST */
-
-/* Boehm, May 19, 1994 2:20 pm PDT */
-#include <stdio.h>
-#include "gc.h"
-#include "cord.h"
-
-#ifdef THINK_C
-#define MACINTOSH
-#include <ctype.h>
-#endif
-
-#if defined(__BORLANDC__) && !defined(WIN32)
- /* If this is DOS or win16, we'll fail anyway. */
- /* Might as well assume win32. */
-# define WIN32
-#endif
-
-#if defined(WIN32)
-# include <windows.h>
-# include "de_win.h"
-#elif defined(MACINTOSH)
-# include <console.h>
-/* curses emulation. */
-# define initscr()
-# define endwin()
-# define nonl()
-# define noecho() csetmode(C_NOECHO, stdout)
-# define cbreak() csetmode(C_CBREAK, stdout)
-# define refresh()
-# define addch(c) putchar(c)
-# define standout() cinverse(1, stdout)
-# define standend() cinverse(0, stdout)
-# define move(line,col) cgotoxy(col + 1, line + 1, stdout)
-# define clrtoeol() ccleol(stdout)
-# define de_error(s) { fprintf(stderr, s); getchar(); }
-# define LINES 25
-# define COLS 80
-#else
-# include <curses.h>
-# define de_error(s) { fprintf(stderr, s); sleep(2); }
-#endif
-#include "de_cmds.h"
-
-/* List of line number to position mappings, in descending order. */
-/* There may be holes. */
-typedef struct LineMapRep {
- int line;
- size_t pos;
- struct LineMapRep * previous;
-} * line_map;
-
-/* List of file versions, one per edit operation */
-typedef struct HistoryRep {
- CORD file_contents;
- struct HistoryRep * previous;
- line_map map; /* Invalid for first record "now" */
-} * history;
-
-history now = 0;
-CORD current; /* == now -> file_contents. */
-size_t current_len; /* Current file length. */
-line_map current_map = 0; /* Current line no. to pos. map */
-size_t current_map_size = 0; /* Number of current_map entries. */
- /* Not always accurate, but reset */
- /* by prune_map. */
-# define MAX_MAP_SIZE 3000
-
-/* Current display position */
-int dis_line = 0;
-int dis_col = 0;
-
-# define ALL -1
-# define NONE - 2
-int need_redisplay = 0; /* Line that needs to be redisplayed. */
-
-
-/* Current cursor position. Always within file. */
-int line = 0;
-int col = 0;
-size_t file_pos = 0; /* Character position corresponding to cursor. */
-
-/* Invalidate line map for lines > i */
-void invalidate_map(int i)
-{
- while(current_map -> line > i) {
- current_map = current_map -> previous;
- current_map_size--;
- }
-}
-
-/* Reduce the number of map entries to save space for huge files. */
-/* This also affects maps in histories. */
-void prune_map()
-{
- line_map map = current_map;
- int start_line = map -> line;
-
- current_map_size = 0;
- for(; map != 0; map = map -> previous) {
- current_map_size++;
- if (map -> line < start_line - LINES && map -> previous != 0) {
- map -> previous = map -> previous -> previous;
- }
- }
-}
-/* Add mapping entry */
-void add_map(int line, size_t pos)
-{
- line_map new_map = GC_NEW(struct LineMapRep);
-
- if (current_map_size >= MAX_MAP_SIZE) prune_map();
- new_map -> line = line;
- new_map -> pos = pos;
- new_map -> previous = current_map;
- current_map = new_map;
- current_map_size++;
-}
-
-
-
-/* Return position of column *c of ith line in */
-/* current file. Adjust *c to be within the line.*/
-/* A 0 pointer is taken as 0 column. */
-/* Returns CORD_NOT_FOUND if i is too big. */
-/* Assumes i > dis_line. */
-size_t line_pos(int i, int *c)
-{
- int j;
- size_t cur;
- size_t next;
- line_map map = current_map;
-
- while (map -> line > i) map = map -> previous;
- if (map -> line < i - 2) /* rebuild */ invalidate_map(i);
- for (j = map -> line, cur = map -> pos; j < i;) {
- cur = CORD_chr(current, cur, '\n');
- if (cur == current_len-1) return(CORD_NOT_FOUND);
- cur++;
- if (++j > current_map -> line) add_map(j, cur);
- }
- if (c != 0) {
- next = CORD_chr(current, cur, '\n');
- if (next == CORD_NOT_FOUND) next = current_len - 1;
- if (next < cur + *c) {
- *c = next - cur;
- }
- cur += *c;
- }
- return(cur);
-}
-
-void add_hist(CORD s)
-{
- history new_file = GC_NEW(struct HistoryRep);
-
- new_file -> file_contents = current = s;
- current_len = CORD_len(s);
- new_file -> previous = now;
- if (now != 0) now -> map = current_map;
- now = new_file;
-}
-
-void del_hist(void)
-{
- now = now -> previous;
- current = now -> file_contents;
- current_map = now -> map;
- current_len = CORD_len(current);
-}
-
-/* Current screen_contents; a dynamically allocated array of CORDs */
-CORD * screen = 0;
-int screen_size = 0;
-
-# ifndef WIN32
-/* Replace a line in the curses stdscr. All control characters are */
-/* displayed as upper case characters in standout mode. This isn't */
-/* terribly appropriate for tabs. */
-void replace_line(int i, CORD s)
-{
- register int c;
- CORD_pos p;
- size_t len = CORD_len(s);
-
- if (screen == 0 || LINES > screen_size) {
- screen_size = LINES;
- screen = (CORD *)GC_MALLOC(screen_size * sizeof(CORD));
- }
-# if !defined(MACINTOSH)
- /* A gross workaround for an apparent curses bug: */
- if (i == LINES-1 && len == COLS) {
- s = CORD_substr(s, 0, CORD_len(s) - 1);
- }
-# endif
- if (CORD_cmp(screen[i], s) != 0) {
- move(i, 0); clrtoeol(); move(i,0);
-
- CORD_FOR (p, s) {
- c = CORD_pos_fetch(p) & 0x7f;
- if (iscntrl(c)) {
- standout(); addch(c + 0x40); standend();
- } else {
- addch(c);
- }
- }
- screen[i] = s;
- }
-}
-#else
-# define replace_line(i,s) invalidate_line(i)
-#endif
-
-/* Return up to COLS characters of the line of s starting at pos, */
-/* returning only characters after the given column. */
-CORD retrieve_line(CORD s, size_t pos, unsigned column)
-{
- CORD candidate = CORD_substr(s, pos, column + COLS);
- /* avoids scanning very long lines */
- int eol = CORD_chr(candidate, 0, '\n');
- int len;
-
- if (eol == CORD_NOT_FOUND) eol = CORD_len(candidate);
- len = (int)eol - (int)column;
- if (len < 0) len = 0;
- return(CORD_substr(s, pos + column, len));
-}
-
-# ifdef WIN32
-# define refresh();
-
- CORD retrieve_screen_line(int i)
- {
- register size_t pos;
-
- invalidate_map(dis_line + LINES); /* Prune search */
- pos = line_pos(dis_line + i, 0);
- if (pos == CORD_NOT_FOUND) return(CORD_EMPTY);
- return(retrieve_line(current, pos, dis_col));
- }
-# endif
-
-/* Display the visible section of the current file */
-void redisplay(void)
-{
- register int i;
-
- invalidate_map(dis_line + LINES); /* Prune search */
- for (i = 0; i < LINES; i++) {
- if (need_redisplay == ALL || need_redisplay == i) {
- register size_t pos = line_pos(dis_line + i, 0);
-
- if (pos == CORD_NOT_FOUND) break;
- replace_line(i, retrieve_line(current, pos, dis_col));
- if (need_redisplay == i) goto done;
- }
- }
- for (; i < LINES; i++) replace_line(i, CORD_EMPTY);
-done:
- refresh();
- need_redisplay = NONE;
-}
-
-int dis_granularity;
-
-/* Update dis_line, dis_col, and dis_pos to make cursor visible. */
-/* Assumes line, col, dis_line, dis_pos are in bounds. */
-void normalize_display()
-{
- int old_line = dis_line;
- int old_col = dis_col;
-
- dis_granularity = 1;
- if (LINES > 15 && COLS > 15) dis_granularity = 2;
- while (dis_line > line) dis_line -= dis_granularity;
- while (dis_col > col) dis_col -= dis_granularity;
- while (line >= dis_line + LINES) dis_line += dis_granularity;
- while (col >= dis_col + COLS) dis_col += dis_granularity;
- if (old_line != dis_line || old_col != dis_col) {
- need_redisplay = ALL;
- }
-}
-
-# if defined(WIN32)
-# elif defined(MACINTOSH)
-# define move_cursor(x,y) cgotoxy(x + 1, y + 1, stdout)
-# else
-# define move_cursor(x,y) move(y,x)
-# endif
-
-/* Adjust display so that cursor is visible; move cursor into position */
-/* Update screen if necessary. */
-void fix_cursor(void)
-{
- normalize_display();
- if (need_redisplay != NONE) redisplay();
- move_cursor(col - dis_col, line - dis_line);
- refresh();
-# ifndef WIN32
- fflush(stdout);
-# endif
-}
-
-/* Make sure line, col, and dis_pos are somewhere inside file. */
-/* Recompute file_pos. Assumes dis_pos is accurate or past eof */
-void fix_pos()
-{
- int my_col = col;
-
- if ((size_t)line > current_len) line = current_len;
- file_pos = line_pos(line, &my_col);
- if (file_pos == CORD_NOT_FOUND) {
- for (line = current_map -> line, file_pos = current_map -> pos;
- file_pos < current_len;
- line++, file_pos = CORD_chr(current, file_pos, '\n') + 1);
- line--;
- file_pos = line_pos(line, &col);
- } else {
- col = my_col;
- }
-}
-
-#if defined(WIN32)
-# define beep() Beep(1000 /* Hz */, 300 /* msecs */)
-#elif defined(MACINTOSH)
-# define beep() SysBeep(1)
-#else
-/*
- * beep() is part of some curses packages and not others.
- * We try to match the type of the builtin one, if any.
- */
-#ifdef __STDC__
- int beep(void)
-#else
- int beep()
-#endif
-{
- putc('\007', stderr);
- return(0);
-}
-#endif
-
-# define NO_PREFIX -1
-# define BARE_PREFIX -2
-int repeat_count = NO_PREFIX; /* Current command prefix. */
-
-int locate_mode = 0; /* Currently between 2 ^Ls */
-CORD locate_string = CORD_EMPTY; /* Current search string. */
-
-char * arg_file_name;
-
-#ifdef WIN32
-/* Change the current position to whatever is currently displayed at */
-/* the given SCREEN coordinates. */
-void set_position(int c, int l)
-{
- line = l + dis_line;
- col = c + dis_col;
- fix_pos();
- move_cursor(col - dis_col, line - dis_line);
-}
-#endif /* WIN32 */
-
-/* Perform the command associated with character c. C may be an */
-/* integer > 256 denoting a windows command, one of the above control */
-/* characters, or another ASCII character to be used as either a */
-/* character to be inserted, a repeat count, or a search string, */
-/* depending on the current state. */
-void do_command(int c)
-{
- int i;
- int need_fix_pos;
- FILE * out;
-
- if ( c == '\r') c = '\n';
- if (locate_mode) {
- size_t new_pos;
-
- if (c == LOCATE) {
- locate_mode = 0;
- locate_string = CORD_EMPTY;
- return;
- }
- locate_string = CORD_cat_char(locate_string, (char)c);
- new_pos = CORD_str(current, file_pos - CORD_len(locate_string) + 1,
- locate_string);
- if (new_pos != CORD_NOT_FOUND) {
- need_redisplay = ALL;
- new_pos += CORD_len(locate_string);
- for (;;) {
- file_pos = line_pos(line + 1, 0);
- if (file_pos > new_pos) break;
- line++;
- }
- col = new_pos - line_pos(line, 0);
- file_pos = new_pos;
- fix_cursor();
- } else {
- locate_string = CORD_substr(locate_string, 0,
- CORD_len(locate_string) - 1);
- beep();
- }
- return;
- }
- if (c == REPEAT) {
- repeat_count = BARE_PREFIX; return;
- } else if (c < 0x100 && isdigit(c)){
- if (repeat_count == BARE_PREFIX) {
- repeat_count = c - '0'; return;
- } else if (repeat_count != NO_PREFIX) {
- repeat_count = 10 * repeat_count + c - '0'; return;
- }
- }
- if (repeat_count == NO_PREFIX) repeat_count = 1;
- if (repeat_count == BARE_PREFIX && (c == UP || c == DOWN)) {
- repeat_count = LINES - dis_granularity;
- }
- if (repeat_count == BARE_PREFIX) repeat_count = 8;
- need_fix_pos = 0;
- for (i = 0; i < repeat_count; i++) {
- switch(c) {
- case LOCATE:
- locate_mode = 1;
- break;
- case TOP:
- line = col = file_pos = 0;
- break;
- case UP:
- if (line != 0) {
- line--;
- need_fix_pos = 1;
- }
- break;
- case DOWN:
- line++;
- need_fix_pos = 1;
- break;
- case LEFT:
- if (col != 0) {
- col--; file_pos--;
- }
- break;
- case RIGHT:
- if (CORD_fetch(current, file_pos) == '\n') break;
- col++; file_pos++;
- break;
- case UNDO:
- del_hist();
- need_redisplay = ALL; need_fix_pos = 1;
- break;
- case BS:
- if (col == 0) {
- beep();
- break;
- }
- col--; file_pos--;
- /* fall through: */
- case DEL:
- if (file_pos == current_len-1) break;
- /* Can't delete trailing newline */
- if (CORD_fetch(current, file_pos) == '\n') {
- need_redisplay = ALL; need_fix_pos = 1;
- } else {
- need_redisplay = line - dis_line;
- }
- add_hist(CORD_cat(
- CORD_substr(current, 0, file_pos),
- CORD_substr(current, file_pos+1, current_len)));
- invalidate_map(line);
- break;
- case WRITE:
- {
- CORD name = CORD_cat(CORD_from_char_star(arg_file_name),
- ".new");
-
- if ((out = fopen(CORD_to_const_char_star(name), "wb")) == NULL
- || CORD_put(current, out) == EOF) {
- de_error("Write failed\n");
- need_redisplay = ALL;
- } else {
- fclose(out);
- }
- }
- break;
- default:
- {
- CORD left_part = CORD_substr(current, 0, file_pos);
- CORD right_part = CORD_substr(current, file_pos, current_len);
-
- add_hist(CORD_cat(CORD_cat_char(left_part, (char)c),
- right_part));
- invalidate_map(line);
- if (c == '\n') {
- col = 0; line++; file_pos++;
- need_redisplay = ALL;
- } else {
- col++; file_pos++;
- need_redisplay = line - dis_line;
- }
- break;
- }
- }
- }
- if (need_fix_pos) fix_pos();
- fix_cursor();
- repeat_count = NO_PREFIX;
-}
-
-/* OS independent initialization */
-
-void generic_init(void)
-{
- FILE * f;
- CORD initial;
-
- if ((f = fopen(arg_file_name, "rb")) == NULL) {
- initial = "\n";
- } else {
- initial = CORD_from_file(f);
- if (initial == CORD_EMPTY
- || CORD_fetch(initial, CORD_len(initial)-1) != '\n') {
- initial = CORD_cat(initial, "\n");
- }
- }
- add_map(0,0);
- add_hist(initial);
- now -> map = current_map;
- now -> previous = now; /* Can't back up further: beginning of the world */
- need_redisplay = ALL;
- fix_cursor();
-}
-
-#ifndef WIN32
-
-main(argc, argv)
-int argc;
-char ** argv;
-{
- int c;
-
-#if defined(MACINTOSH)
- console_options.title = "\pDumb Editor";
- cshow(stdout);
- GC_init();
- argc = ccommand(&argv);
-#endif
-
- if (argc != 2) goto usage;
- arg_file_name = argv[1];
- setvbuf(stdout, GC_MALLOC_ATOMIC(8192), _IOFBF, 8192);
- initscr();
- noecho(); nonl(); cbreak();
- generic_init();
- while ((c = getchar()) != QUIT) {
- if (c == EOF) break;
- do_command(c);
- }
-done:
- move(LINES-1, 0);
- clrtoeol();
- refresh();
- nl();
- echo();
- endwin();
- exit(0);
-usage:
- fprintf(stderr, "Usage: %s file\n", argv[0]);
- fprintf(stderr, "Cursor keys: ^B(left) ^F(right) ^P(up) ^N(down)\n");
- fprintf(stderr, "Undo: ^U Write to <file>.new: ^W");
- fprintf(stderr, "Quit:^D Repeat count: ^R[n]\n");
- fprintf(stderr, "Top: ^T Locate (search, find): ^L text ^L\n");
- exit(1);
-}
-
-#endif /* !WIN32 */
diff --git a/boehm-gc/cord/de_cmds.h b/boehm-gc/cord/de_cmds.h
deleted file mode 100644
index f42ddcf2da7..00000000000
--- a/boehm-gc/cord/de_cmds.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, May 19, 1994 2:24 pm PDT */
-
-#ifndef DE_CMDS_H
-
-# define DE_CMDS_H
-
-# define UP 16 /* ^P */
-# define DOWN 14 /* ^N */
-# define LEFT 2 /* ^B */
-# define RIGHT 6 /* ^F */
-# define DEL 127 /* ^? */
-# define BS 8 /* ^H */
-# define UNDO 21 /* ^U */
-# define WRITE 23 /* ^W */
-# define QUIT 4 /* ^D */
-# define REPEAT 18 /* ^R */
-# define LOCATE 12 /* ^L */
-# define TOP 20 /* ^T */
-
-#endif
-
diff --git a/boehm-gc/cord/de_win.ICO b/boehm-gc/cord/de_win.ICO
deleted file mode 100644
index b20ac3ee16a..00000000000
--- a/boehm-gc/cord/de_win.ICO
+++ /dev/null
Binary files differ
diff --git a/boehm-gc/cord/de_win.RC b/boehm-gc/cord/de_win.RC
deleted file mode 100644
index 554a3004389..00000000000
--- a/boehm-gc/cord/de_win.RC
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to copy this garbage collector for any purpose,
- * provided the above notices are retained on all copies.
- */
-/* Boehm, May 13, 1994 9:50 am PDT */
-
-#include "windows.h"
-#include "de_cmds.h"
-#include "de_win.h"
-
-
-
-ABOUTBOX DIALOG 19, 21, 163, 47
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About Demonstration Text Editor"
-BEGIN
- ICON "DE", -1, 8, 8, 13, 13, WS_CHILD | WS_VISIBLE
- LTEXT "Demonstration Text Editor", -1, 44, 8, 118, 8, WS_CHILD | WS_VISIBLE | WS_GROUP
- LTEXT "Version 4.1", -1, 44, 16, 60, 8, WS_CHILD | WS_VISIBLE | WS_GROUP
- PUSHBUTTON "OK", IDOK, 118, 27, 24, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
-END
-
-
-DE MENU
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "&Save\t^W", IDM_FILESAVE
- MENUITEM "E&xit\t^D", IDM_FILEEXIT
- END
-
- POPUP "&Edit"
- BEGIN
- MENUITEM "Page &Down\t^R^N", IDM_EDITPDOWN
- MENUITEM "Page &Up\t^R^P", IDM_EDITPUP
- MENUITEM "U&ndo\t^U", IDM_EDITUNDO
- MENUITEM "&Locate\t^L ... ^L", IDM_EDITLOCATE
- MENUITEM "D&own\t^N", IDM_EDITDOWN
- MENUITEM "U&p\t^P", IDM_EDITUP
- MENUITEM "Le&ft\t^B", IDM_EDITLEFT
- MENUITEM "&Right\t^F", IDM_EDITRIGHT
- MENUITEM "Delete &Backward\tBS", IDM_EDITBS
- MENUITEM "Delete F&orward\tDEL", IDM_EDITDEL
- MENUITEM "&Top\t^T", IDM_EDITTOP
- END
-
- POPUP "&Help"
- BEGIN
- MENUITEM "&Contents", IDM_HELPCONTENTS
- MENUITEM "&About...", IDM_HELPABOUT
- END
-
- MENUITEM "Page_&Down", IDM_EDITPDOWN
- MENUITEM "Page_&Up", IDM_EDITPUP
-END
-
-
-DE ACCELERATORS
-BEGIN
- "^R", IDM_EDITREPEAT
- "^N", IDM_EDITDOWN
- "^P", IDM_EDITUP
- "^L", IDM_EDITLOCATE
- "^B", IDM_EDITLEFT
- "^F", IDM_EDITRIGHT
- "^T", IDM_EDITTOP
- VK_DELETE, IDM_EDITDEL, VIRTKEY
- VK_BACK, IDM_EDITBS, VIRTKEY
-END
-
-
-DE ICON cord\de_win.ICO
-
diff --git a/boehm-gc/cord/de_win.c b/boehm-gc/cord/de_win.c
deleted file mode 100644
index fedbfbe67c2..00000000000
--- a/boehm-gc/cord/de_win.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 6, 1995 12:29 pm PST */
-
-/*
- * The MS Windows specific part of de.
- * This started as the generic Windows application template
- * made available by Rob Haack (rhaack@polaris.unm.edu), but
- * significant parts didn't survive to the final version.
- *
- * This was written by a nonexpert windows programmer.
- */
-
-
-#include "windows.h"
-#include "gc.h"
-#include "cord.h"
-#include "de_cmds.h"
-#include "de_win.h"
-
-int LINES = 0;
-int COLS = 0;
-
-char szAppName[] = "DE";
-char FullAppName[] = "Demonstration Editor";
-
-HWND hwnd;
-
-void de_error(char *s)
-{
- MessageBox( hwnd, (LPSTR) s,
- (LPSTR) FullAppName,
- MB_ICONINFORMATION | MB_OK );
- InvalidateRect(hwnd, NULL, TRUE);
-}
-
-int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
- LPSTR command_line, int nCmdShow)
-{
- MSG msg;
- WNDCLASS wndclass;
- HANDLE hAccel;
-
- if (!hPrevInstance)
- {
- wndclass.style = CS_HREDRAW | CS_VREDRAW;
- wndclass.lpfnWndProc = WndProc;
- wndclass.cbClsExtra = 0;
- wndclass.cbWndExtra = DLGWINDOWEXTRA;
- wndclass.hInstance = hInstance;
- wndclass.hIcon = LoadIcon (hInstance, szAppName);
- wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
- wndclass.hbrBackground = GetStockObject(WHITE_BRUSH);
- wndclass.lpszMenuName = "DE";
- wndclass.lpszClassName = szAppName;
-
- if (RegisterClass (&wndclass) == 0) {
- char buf[50];
-
- sprintf(buf, "RegisterClass: error code: 0x%X", GetLastError());
- de_error(buf);
- return(0);
- }
- }
-
- /* Empirically, the command line does not include the command name ...
- if (command_line != 0) {
- while (isspace(*command_line)) command_line++;
- while (*command_line != 0 && !isspace(*command_line)) command_line++;
- while (isspace(*command_line)) command_line++;
- } */
-
- if (command_line == 0 || *command_line == 0) {
- de_error("File name argument required");
- return( 0 );
- } else {
- char *p = command_line;
-
- while (*p != 0 && !isspace(*p)) p++;
- arg_file_name = CORD_to_char_star(
- CORD_substr(command_line, 0, p - command_line));
- }
-
- hwnd = CreateWindow (szAppName,
- FullAppName,
- WS_OVERLAPPEDWINDOW | WS_CAPTION, /* Window style */
- CW_USEDEFAULT, 0, /* default pos. */
- CW_USEDEFAULT, 0, /* default width, height */
- NULL, /* No parent */
- NULL, /* Window class menu */
- hInstance, NULL);
- if (hwnd == NULL) {
- char buf[50];
-
- sprintf(buf, "CreateWindow: error code: 0x%X", GetLastError());
- de_error(buf);
- return(0);
- }
-
- ShowWindow (hwnd, nCmdShow);
-
- hAccel = LoadAccelerators( hInstance, szAppName );
-
- while (GetMessage (&msg, NULL, 0, 0))
- {
- if( !TranslateAccelerator( hwnd, hAccel, &msg ) )
- {
- TranslateMessage (&msg);
- DispatchMessage (&msg);
- }
- }
- return msg.wParam;
-}
-
-/* Return the argument with all control characters replaced by blanks. */
-char * plain_chars(char * text, size_t len)
-{
- char * result = GC_MALLOC_ATOMIC(len + 1);
- register size_t i;
-
- for (i = 0; i < len; i++) {
- if (iscntrl(text[i])) {
- result[i] = ' ';
- } else {
- result[i] = text[i];
- }
- }
- result[len] = '\0';
- return(result);
-}
-
-/* Return the argument with all non-control-characters replaced by */
-/* blank, and all control characters c replaced by c + 32. */
-char * control_chars(char * text, size_t len)
-{
- char * result = GC_MALLOC_ATOMIC(len + 1);
- register size_t i;
-
- for (i = 0; i < len; i++) {
- if (iscntrl(text[i])) {
- result[i] = text[i] + 0x40;
- } else {
- result[i] = ' ';
- }
- }
- result[len] = '\0';
- return(result);
-}
-
-int char_width;
-int char_height;
-
-void get_line_rect(int line, int win_width, RECT * rectp)
-{
- rectp -> top = line * char_height;
- rectp -> bottom = rectp->top + char_height;
- rectp -> left = 0;
- rectp -> right = win_width;
-}
-
-int caret_visible = 0; /* Caret is currently visible. */
-
-int screen_was_painted = 0;/* Screen has been painted at least once. */
-
-void update_cursor(void);
-
-LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
- static FARPROC lpfnAboutBox;
- static HANDLE hInstance;
- HDC dc;
- PAINTSTRUCT ps;
- RECT client_area;
- RECT this_line;
- RECT dummy;
- TEXTMETRIC tm;
- register int i;
- int id;
-
- switch (message)
- {
- case WM_CREATE:
- hInstance = ( (LPCREATESTRUCT) lParam)->hInstance;
- lpfnAboutBox = MakeProcInstance( (FARPROC) AboutBox, hInstance );
- dc = GetDC(hwnd);
- SelectObject(dc, GetStockObject(SYSTEM_FIXED_FONT));
- GetTextMetrics(dc, &tm);
- ReleaseDC(hwnd, dc);
- char_width = tm.tmAveCharWidth;
- char_height = tm.tmHeight + tm.tmExternalLeading;
- GetClientRect(hwnd, &client_area);
- COLS = (client_area.right - client_area.left)/char_width;
- LINES = (client_area.bottom - client_area.top)/char_height;
- generic_init();
- return(0);
-
- case WM_CHAR:
- if (wParam == QUIT) {
- SendMessage( hwnd, WM_CLOSE, 0, 0L );
- } else {
- do_command(wParam);
- }
- return(0);
-
- case WM_SETFOCUS:
- CreateCaret(hwnd, NULL, char_width, char_height);
- ShowCaret(hwnd);
- caret_visible = 1;
- update_cursor();
- return(0);
-
- case WM_KILLFOCUS:
- HideCaret(hwnd);
- DestroyCaret();
- caret_visible = 0;
- return(0);
-
- case WM_LBUTTONUP:
- {
- unsigned xpos = LOWORD(lParam); /* From left */
- unsigned ypos = HIWORD(lParam); /* from top */
-
- set_position( xpos/char_width, ypos/char_height );
- return(0);
- }
-
- case WM_COMMAND:
- id = LOWORD(wParam);
- if (id & EDIT_CMD_FLAG) {
- if (id & REPEAT_FLAG) do_command(REPEAT);
- do_command(CHAR_CMD(id));
- return( 0 );
- } else {
- switch(id) {
- case IDM_FILEEXIT:
- SendMessage( hwnd, WM_CLOSE, 0, 0L );
- return( 0 );
-
- case IDM_HELPABOUT:
- if( DialogBox( hInstance, "ABOUTBOX",
- hwnd, lpfnAboutBox ) );
- InvalidateRect( hwnd, NULL, TRUE );
- return( 0 );
- case IDM_HELPCONTENTS:
- de_error(
- "Cursor keys: ^B(left) ^F(right) ^P(up) ^N(down)\n"
- "Undo: ^U Write: ^W Quit:^D Repeat count: ^R[n]\n"
- "Top: ^T Locate (search, find): ^L text ^L\n");
- return( 0 );
- }
- }
- break;
-
- case WM_CLOSE:
- DestroyWindow( hwnd );
- return 0;
-
- case WM_DESTROY:
- PostQuitMessage (0);
- GC_win32_free_heap();
- return 0;
-
- case WM_PAINT:
- dc = BeginPaint(hwnd, &ps);
- GetClientRect(hwnd, &client_area);
- COLS = (client_area.right - client_area.left)/char_width;
- LINES = (client_area.bottom - client_area.top)/char_height;
- SelectObject(dc, GetStockObject(SYSTEM_FIXED_FONT));
- for (i = 0; i < LINES; i++) {
- get_line_rect(i, client_area.right, &this_line);
- if (IntersectRect(&dummy, &this_line, &ps.rcPaint)) {
- CORD raw_line = retrieve_screen_line(i);
- size_t len = CORD_len(raw_line);
- char * text = CORD_to_char_star(raw_line);
- /* May contain embedded NULLs */
- char * plain = plain_chars(text, len);
- char * blanks = CORD_to_char_star(CORD_chars(' ',
- COLS - len));
- char * control = control_chars(text, len);
-# define RED RGB(255,0,0)
-
- SetBkMode(dc, OPAQUE);
- SetTextColor(dc, GetSysColor(COLOR_WINDOWTEXT));
-
- TextOut(dc, this_line.left, this_line.top,
- plain, len);
- TextOut(dc, this_line.left + len * char_width, this_line.top,
- blanks, COLS - len);
- SetBkMode(dc, TRANSPARENT);
- SetTextColor(dc, RED);
- TextOut(dc, this_line.left, this_line.top,
- control, strlen(control));
- }
- }
- EndPaint(hwnd, &ps);
- screen_was_painted = 1;
- return 0;
- }
- return DefWindowProc (hwnd, message, wParam, lParam);
-}
-
-int last_col;
-int last_line;
-
-void move_cursor(int c, int l)
-{
- last_col = c;
- last_line = l;
-
- if (caret_visible) update_cursor();
-}
-
-void update_cursor(void)
-{
- SetCaretPos(last_col * char_width, last_line * char_height);
- ShowCaret(hwnd);
-}
-
-void invalidate_line(int i)
-{
- RECT line;
-
- if (!screen_was_painted) return;
- /* Invalidating a rectangle before painting seems result in a */
- /* major performance problem. */
- get_line_rect(i, COLS*char_width, &line);
- InvalidateRect(hwnd, &line, FALSE);
-}
-
-LRESULT CALLBACK AboutBox( HWND hDlg, UINT message,
- WPARAM wParam, LPARAM lParam )
-{
- switch( message )
- {
- case WM_INITDIALOG:
- SetFocus( GetDlgItem( hDlg, IDOK ) );
- break;
-
- case WM_COMMAND:
- switch( wParam )
- {
- case IDOK:
- EndDialog( hDlg, TRUE );
- break;
- }
- break;
-
- case WM_CLOSE:
- EndDialog( hDlg, TRUE );
- return TRUE;
-
- }
- return FALSE;
-}
-
diff --git a/boehm-gc/cord/de_win.h b/boehm-gc/cord/de_win.h
deleted file mode 100644
index 57a47b45c41..00000000000
--- a/boehm-gc/cord/de_win.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, May 19, 1994 2:25 pm PDT */
-
-/* cord.h, de_cmds.h, and windows.h should be included before this. */
-
-
-# define OTHER_FLAG 0x100
-# define EDIT_CMD_FLAG 0x200
-# define REPEAT_FLAG 0x400
-
-# define CHAR_CMD(i) ((i) & 0xff)
-
-/* MENU: DE */
-#define IDM_FILESAVE (EDIT_CMD_FLAG + WRITE)
-#define IDM_FILEEXIT (OTHER_FLAG + 1)
-#define IDM_HELPABOUT (OTHER_FLAG + 2)
-#define IDM_HELPCONTENTS (OTHER_FLAG + 3)
-
-#define IDM_EDITPDOWN (REPEAT_FLAG + EDIT_CMD_FLAG + DOWN)
-#define IDM_EDITPUP (REPEAT_FLAG + EDIT_CMD_FLAG + UP)
-#define IDM_EDITUNDO (EDIT_CMD_FLAG + UNDO)
-#define IDM_EDITLOCATE (EDIT_CMD_FLAG + LOCATE)
-#define IDM_EDITDOWN (EDIT_CMD_FLAG + DOWN)
-#define IDM_EDITUP (EDIT_CMD_FLAG + UP)
-#define IDM_EDITLEFT (EDIT_CMD_FLAG + LEFT)
-#define IDM_EDITRIGHT (EDIT_CMD_FLAG + RIGHT)
-#define IDM_EDITBS (EDIT_CMD_FLAG + BS)
-#define IDM_EDITDEL (EDIT_CMD_FLAG + DEL)
-#define IDM_EDITREPEAT (EDIT_CMD_FLAG + REPEAT)
-#define IDM_EDITTOP (EDIT_CMD_FLAG + TOP)
-
-
-
-
-/* Windows UI stuff */
-
-LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
- UINT wParam, LONG lParam);
-
-LRESULT CALLBACK AboutBox( HWND hDlg, UINT message,
- UINT wParam, LONG lParam );
-
-
-/* Screen dimensions. Maintained by de_win.c. */
-extern int LINES;
-extern int COLS;
-
-/* File being edited. */
-extern char * arg_file_name;
-
-/* Current display position in file. Maintained by de.c */
-extern int dis_line;
-extern int dis_col;
-
-/* Current cursor position in file. */
-extern int line;
-extern int col;
-
-/*
- * Calls from de_win.c to de.c
- */
-
-CORD retrieve_screen_line(int i);
- /* Get the contents of i'th screen line. */
- /* Relies on COLS. */
-
-void set_position(int x, int y);
- /* Set column, row. Upper left of window = (0,0). */
-
-void do_command(int);
- /* Execute an editor command. */
- /* Agument is a command character or one */
- /* of the IDM_ commands. */
-
-void generic_init(void);
- /* OS independent initialization */
-
-
-/*
- * Calls from de.c to de_win.c
- */
-
-void move_cursor(int column, int line);
- /* Physically move the cursor on the display, */
- /* so that it appears at */
- /* (column, line). */
-
-void invalidate_line(int line);
- /* Invalidate line i on the screen. */
-
-void de_error(char *s);
- /* Display error message. */ \ No newline at end of file
diff --git a/boehm-gc/cord/ec.h b/boehm-gc/cord/ec.h
deleted file mode 100644
index c829b83ad11..00000000000
--- a/boehm-gc/cord/ec.h
+++ /dev/null
@@ -1,70 +0,0 @@
-# ifndef EC_H
-# define EC_H
-
-# ifndef CORD_H
-# include "cord.h"
-# endif
-
-/* Extensible cords are strings that may be destructively appended to. */
-/* They allow fast construction of cords from characters that are */
-/* being read from a stream. */
-/*
- * A client might look like:
- *
- * {
- * CORD_ec x;
- * CORD result;
- * char c;
- * FILE *f;
- *
- * ...
- * CORD_ec_init(x);
- * while(...) {
- * c = getc(f);
- * ...
- * CORD_ec_append(x, c);
- * }
- * result = CORD_balance(CORD_ec_to_cord(x));
- *
- * If a C string is desired as the final result, the call to CORD_balance
- * may be replaced by a call to CORD_to_char_star.
- */
-
-# ifndef CORD_BUFSZ
-# define CORD_BUFSZ 128
-# endif
-
-typedef struct CORD_ec_struct {
- CORD ec_cord;
- char * ec_bufptr;
- char ec_buf[CORD_BUFSZ+1];
-} CORD_ec[1];
-
-/* This structure represents the concatenation of ec_cord with */
-/* ec_buf[0 ... (ec_bufptr-ec_buf-1)] */
-
-/* Flush the buffer part of the extended chord into ec_cord. */
-/* Note that this is almost the only real function, and it is */
-/* implemented in 6 lines in cordxtra.c */
-void CORD_ec_flush_buf(CORD_ec x);
-
-/* Convert an extensible cord to a cord. */
-# define CORD_ec_to_cord(x) (CORD_ec_flush_buf(x), (x)[0].ec_cord)
-
-/* Initialize an extensible cord. */
-# define CORD_ec_init(x) ((x)[0].ec_cord = 0, (x)[0].ec_bufptr = (x)[0].ec_buf)
-
-/* Append a character to an extensible cord. */
-# define CORD_ec_append(x, c) \
- { \
- if ((x)[0].ec_bufptr == (x)[0].ec_buf + CORD_BUFSZ) { \
- CORD_ec_flush_buf(x); \
- } \
- *((x)[0].ec_bufptr)++ = (c); \
- }
-
-/* Append a cord to an extensible cord. Structure remains shared with */
-/* original. */
-void CORD_ec_append_cord(CORD_ec x, CORD s);
-
-# endif /* EC_H */
diff --git a/boehm-gc/cord/gc.h b/boehm-gc/cord/gc.h
deleted file mode 100644
index d7cd8996085..00000000000
--- a/boehm-gc/cord/gc.h
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * Note that this defines a large number of tuning hooks, which can
- * safely be ignored in nearly all cases. For normal use it suffices
- * to call only GC_MALLOC and perhaps GC_REALLOC.
- * For better performance, also look at GC_MALLOC_ATOMIC, and
- * GC_enable_incremental. If you need an action to be performed
- * immediately before an object is collected, look at GC_register_finalizer.
- * If you are using Solaris threads, look at the end of this file.
- * Everything else is best ignored unless you encounter performance
- * problems.
- */
-
-#ifndef _GC_H
-
-# define _GC_H
-# define __GC
-# include <stddef.h>
-
-#if defined(__CYGWIN32__) && defined(GC_USE_DLL)
-#include "libgc_globals.h"
-#endif
-
-#if defined(__MINGW32__) && defined(WIN32_THREADS)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(_MSC_VER) && defined(_DLL)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(__WATCOMC__) && defined(GC_DLL)
-# ifdef GC_BUILD
-# define GC_API extern __declspec(dllexport)
-# else
-# define GC_API extern __declspec(dllimport)
-# endif
-#endif
-
-#ifndef GC_API
-#define GC_API extern
-#endif
-
-# if defined(__STDC__) || defined(__cplusplus)
-# define GC_PROTO(args) args
- typedef void * GC_PTR;
-# define GC_CONST const
-# else
-# define GC_PROTO(args) ()
- typedef char * GC_PTR;
-# define GC_CONST
-# endif
-
-# ifdef __cplusplus
- extern "C" {
-# endif
-
-
-/* Define word and signed_word to be unsigned and signed types of the */
-/* size as char * or void *. There seems to be no way to do this */
-/* even semi-portably. The following is probably no better/worse */
-/* than almost anything else. */
-/* The ANSI standard suggests that size_t and ptr_diff_t might be */
-/* better choices. But those appear to have incorrect definitions */
-/* on may systems. Notably "typedef int size_t" seems to be both */
-/* frequent and WRONG. */
-typedef unsigned long GC_word;
-typedef long GC_signed_word;
-
-/* Public read-only variables */
-
-GC_API GC_word GC_gc_no;/* Counter incremented per collection. */
- /* Includes empty GCs at startup. */
-
-
-/* Public R/W variables */
-
-GC_API GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requested));
- /* When there is insufficient memory to satisfy */
- /* an allocation request, we return */
- /* (*GC_oom_fn)(). By default this just */
- /* returns 0. */
- /* If it returns, it must return 0 or a valid */
- /* pointer to a previously allocated heap */
- /* object. */
-
-GC_API int GC_find_leak;
- /* Do not actually garbage collect, but simply */
- /* report inaccessible memory that was not */
- /* deallocated with GC_free. Initial value */
- /* is determined by FIND_LEAK macro. */
-
-GC_API int GC_quiet; /* Disable statistics output. Only matters if */
- /* collector has been compiled with statistics */
- /* enabled. This involves a performance cost, */
- /* and is thus not the default. */
-
-GC_API int GC_finalize_on_demand;
- /* If nonzero, finalizers will only be run in */
- /* response to an eplit GC_invoke_finalizers */
- /* call. The default is determined by whether */
- /* the FINALIZE_ON_DEMAND macro is defined */
- /* when the collector is built. */
-
-GC_API int GC_java_finalization;
- /* Mark objects reachable from finalizable */
- /* objects in a separate postpass. This makes */
- /* it a bit safer to use non-topologically- */
- /* ordered finalization. Default value is */
- /* determined by JAVA_FINALIZATION macro. */
-
-GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
- /* because it's not safe. */
-
-GC_API int GC_dont_expand;
- /* Dont expand heap unless explicitly requested */
- /* or forced to. */
-
-GC_API int GC_use_entire_heap;
- /* Causes the nonincremental collector to use the */
- /* entire heap before collecting. This was the only */
- /* option for GC versions < 5.0. This sometimes */
- /* results in more large block fragmentation, since */
- /* very larg blocks will tend to get broken up */
- /* during each GC cycle. It is likely to result in a */
- /* larger working set, but lower collection */
- /* frequencies, and hence fewer instructions executed */
- /* in the collector. */
-
-GC_API int GC_full_freq; /* Number of partial collections between */
- /* full collections. Matters only if */
- /* GC_incremental is set. */
- /* Full collections are also triggered if */
- /* the collector detects a substantial */
- /* increase in the number of in-use heap */
- /* blocks. Values in the tens are now */
- /* perfectly reasonable, unlike for */
- /* earlier GC versions. */
-
-GC_API GC_word GC_non_gc_bytes;
- /* Bytes not considered candidates for collection. */
- /* Used only to control scheduling of collections. */
-
-GC_API GC_word GC_free_space_divisor;
- /* We try to make sure that we allocate at */
- /* least N/GC_free_space_divisor bytes between */
- /* collections, where N is the heap size plus */
- /* a rough estimate of the root set size. */
- /* Initially, GC_free_space_divisor = 4. */
- /* Increasing its value will use less space */
- /* but more collection time. Decreasing it */
- /* will appreciably decrease collection time */
- /* at the expense of space. */
- /* GC_free_space_divisor = 1 will effectively */
- /* disable collections. */
-
-GC_API GC_word GC_max_retries;
- /* The maximum number of GCs attempted before */
- /* reporting out of memory after heap */
- /* expansion fails. Initially 0. */
-
-
-GC_API char *GC_stackbottom; /* Cool end of user stack. */
- /* May be set in the client prior to */
- /* calling any GC_ routines. This */
- /* avoids some overhead, and */
- /* potentially some signals that can */
- /* confuse debuggers. Otherwise the */
- /* collector attempts to set it */
- /* automatically. */
- /* For multithreaded code, this is the */
- /* cold end of the stack for the */
- /* primordial thread. */
-
-/* Public procedures */
-/*
- * general purpose allocation routines, with roughly malloc calling conv.
- * The atomic versions promise that no relevant pointers are contained
- * in the object. The nonatomic versions guarantee that the new object
- * is cleared. GC_malloc_stubborn promises that no changes to the object
- * will occur after GC_end_stubborn_change has been called on the
- * result of GC_malloc_stubborn. GC_malloc_uncollectable allocates an object
- * that is scanned for pointers to collectable objects, but is not itself
- * collectable. GC_malloc_uncollectable and GC_free called on the resulting
- * object implicitly update GC_non_gc_bytes appropriately.
- */
-GC_API GC_PTR GC_malloc GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_atomic GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_uncollectable GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_stubborn GC_PROTO((size_t size_in_bytes));
-
-/* The following is only defined if the library has been suitably */
-/* compiled: */
-GC_API GC_PTR GC_malloc_atomic_uncollectable GC_PROTO((size_t size_in_bytes));
-
-/* Explicitly deallocate an object. Dangerous if used incorrectly. */
-/* Requires a pointer to the base of an object. */
-/* If the argument is stubborn, it should not be changeable when freed. */
-/* An object should not be enable for finalization when it is */
-/* explicitly deallocated. */
-/* GC_free(0) is a no-op, as required by ANSI C for free. */
-GC_API void GC_free GC_PROTO((GC_PTR object_addr));
-
-/*
- * Stubborn objects may be changed only if the collector is explicitly informed.
- * The collector is implicitly informed of coming change when such
- * an object is first allocated. The following routines inform the
- * collector that an object will no longer be changed, or that it will
- * once again be changed. Only nonNIL pointer stores into the object
- * are considered to be changes. The argument to GC_end_stubborn_change
- * must be exacly the value returned by GC_malloc_stubborn or passed to
- * GC_change_stubborn. (In the second case it may be an interior pointer
- * within 512 bytes of the beginning of the objects.)
- * There is a performance penalty for allowing more than
- * one stubborn object to be changed at once, but it is acceptable to
- * do so. The same applies to dropping stubborn objects that are still
- * changeable.
- */
-GC_API void GC_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_end_stubborn_change GC_PROTO((GC_PTR));
-
-/* Return a pointer to the base (lowest address) of an object given */
-/* a pointer to a location within the object. */
-/* Return 0 if displaced_pointer doesn't point to within a valid */
-/* object. */
-GC_API GC_PTR GC_base GC_PROTO((GC_PTR displaced_pointer));
-
-/* Given a pointer to the base of an object, return its size in bytes. */
-/* The returned size may be slightly larger than what was originally */
-/* requested. */
-GC_API size_t GC_size GC_PROTO((GC_PTR object_addr));
-
-/* For compatibility with C library. This is occasionally faster than */
-/* a malloc followed by a bcopy. But if you rely on that, either here */
-/* or with the standard C library, your code is broken. In my */
-/* opinion, it shouldn't have been invented, but now we're stuck. -HB */
-/* The resulting object has the same kind as the original. */
-/* If the argument is stubborn, the result will have changes enabled. */
-/* It is an error to have changes enabled for the original object. */
-/* Follows ANSI comventions for NULL old_object. */
-GC_API GC_PTR GC_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes));
-
-/* Explicitly increase the heap size. */
-/* Returns 0 on failure, 1 on success. */
-GC_API int GC_expand_hp GC_PROTO((size_t number_of_bytes));
-
-/* Limit the heap size to n bytes. Useful when you're debugging, */
-/* especially on systems that don't handle running out of memory well. */
-/* n == 0 ==> unbounded. This is the default. */
-GC_API void GC_set_max_heap_size GC_PROTO((GC_word n));
-
-/* Inform the collector that a certain section of statically allocated */
-/* memory contains no pointers to garbage collected memory. Thus it */
-/* need not be scanned. This is sometimes important if the application */
-/* maps large read/write files into the address space, which could be */
-/* mistaken for dynamic library data segments on some systems. */
-GC_API void GC_exclude_static_roots GC_PROTO((GC_PTR start, GC_PTR finish));
-
-/* Clear the set of root segments. Wizards only. */
-GC_API void GC_clear_roots GC_PROTO((void));
-
-/* Add a root segment. Wizards only. */
-GC_API void GC_add_roots GC_PROTO((char * low_address,
- char * high_address_plus_1));
-
-/* Add a displacement to the set of those considered valid by the */
-/* collector. GC_register_displacement(n) means that if p was returned */
-/* by GC_malloc, then (char *)p + n will be considered to be a valid */
-/* pointer to n. N must be small and less than the size of p. */
-/* (All pointers to the interior of objects from the stack are */
-/* considered valid in any case. This applies to heap objects and */
-/* static data.) */
-/* Preferably, this should be called before any other GC procedures. */
-/* Calling it later adds to the probability of excess memory */
-/* retention. */
-/* This is a no-op if the collector was compiled with recognition of */
-/* arbitrary interior pointers enabled, which is now the default. */
-GC_API void GC_register_displacement GC_PROTO((GC_word n));
-
-/* The following version should be used if any debugging allocation is */
-/* being done. */
-GC_API void GC_debug_register_displacement GC_PROTO((GC_word n));
-
-/* Explicitly trigger a full, world-stop collection. */
-GC_API void GC_gcollect GC_PROTO((void));
-
-/* Trigger a full world-stopped collection. Abort the collection if */
-/* and when stop_func returns a nonzero value. Stop_func will be */
-/* called frequently, and should be reasonably fast. This works even */
-/* if virtual dirty bits, and hence incremental collection is not */
-/* available for this architecture. Collections can be aborted faster */
-/* than normal pause times for incremental collection. However, */
-/* aborted collections do no useful work; the next collection needs */
-/* to start from the beginning. */
-/* Return 0 if the collection was aborted, 1 if it succeeded. */
-typedef int (* GC_stop_func) GC_PROTO((void));
-GC_API int GC_try_to_collect GC_PROTO((GC_stop_func stop_func));
-
-/* Return the number of bytes in the heap. Excludes collector private */
-/* data structures. Includes empty blocks and fragmentation loss. */
-/* Includes some pages that were allocated but never written. */
-GC_API size_t GC_get_heap_size GC_PROTO((void));
-
-/* Return a lower bound on the number of free bytes in the heap. */
-GC_API size_t GC_get_free_bytes GC_PROTO((void));
-
-/* Return the number of bytes allocated since the last collection. */
-GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
-
-/* Enable incremental/generational collection. */
-/* Not advisable unless dirty bits are */
-/* available or most heap objects are */
-/* pointerfree(atomic) or immutable. */
-/* Don't use in leak finding mode. */
-/* Ignored if GC_dont_gc is true. */
-GC_API void GC_enable_incremental GC_PROTO((void));
-
-/* Perform some garbage collection work, if appropriate. */
-/* Return 0 if there is no more work to be done. */
-/* Typically performs an amount of work corresponding roughly */
-/* to marking from one page. May do more work if further */
-/* progress requires it, e.g. if incremental collection is */
-/* disabled. It is reasonable to call this in a wait loop */
-/* until it returns 0. */
-GC_API int GC_collect_a_little GC_PROTO((void));
-
-/* Allocate an object of size lb bytes. The client guarantees that */
-/* as long as the object is live, it will be referenced by a pointer */
-/* that points to somewhere within the first 256 bytes of the object. */
-/* (This should normally be declared volatile to prevent the compiler */
-/* from invalidating this assertion.) This routine is only useful */
-/* if a large array is being allocated. It reduces the chance of */
-/* accidentally retaining such an array as a result of scanning an */
-/* integer that happens to be an address inside the array. (Actually, */
-/* it reduces the chance of the allocator not finding space for such */
-/* an array, since it will try hard to avoid introducing such a false */
-/* reference.) On a SunOS 4.X or MS Windows system this is recommended */
-/* for arrays likely to be larger than 100K or so. For other systems, */
-/* or if the collector is not configured to recognize all interior */
-/* pointers, the threshold is normally much higher. */
-GC_API GC_PTR GC_malloc_ignore_off_page GC_PROTO((size_t lb));
-GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
-
-#if defined(__sgi) && !defined(__GNUC__) && _COMPILER_VERSION >= 720
-# define GC_ADD_CALLER
-# define GC_RETURN_ADDR (GC_word)__return_address
-#endif
-
-#ifdef GC_ADD_CALLER
-# define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
-#else
-# define GC_EXTRAS __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_CONST char * s, int i
-#endif
-
-/* Debugging (annotated) allocation. GC_gcollect will check */
-/* objects allocated in this way for overwrites, etc. */
-GC_API GC_PTR GC_debug_malloc
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_atomic
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_uncollectable
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_stubborn
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
-GC_API GC_PTR GC_debug_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
- GC_EXTRA_PARAMS));
-
-GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
-# ifdef GC_DEBUG
-# define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
-# define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
- GC_EXTRAS)
-# define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
-# define GC_FREE(p) GC_debug_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_debug_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_debug_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_debug_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);
-# define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, GC_base(obj))
-# define GC_REGISTER_DISPLACEMENT(n) GC_debug_register_displacement(n)
-# else
-# define GC_MALLOC(sz) GC_malloc(sz)
-# define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
-# define GC_REALLOC(old, sz) GC_realloc(old, sz)
-# define GC_FREE(p) GC_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)
-# define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, obj)
-# define GC_REGISTER_DISPLACEMENT(n) GC_register_displacement(n)
-# endif
-/* The following are included because they are often convenient, and */
-/* reduce the chance for a misspecifed size argument. But calls may */
-/* expand to something syntactically incorrect if t is a complicated */
-/* type expression. */
-# define GC_NEW(t) (t *)GC_MALLOC(sizeof (t))
-# define GC_NEW_ATOMIC(t) (t *)GC_MALLOC_ATOMIC(sizeof (t))
-# define GC_NEW_STUBBORN(t) (t *)GC_MALLOC_STUBBORN(sizeof (t))
-# define GC_NEW_UNCOLLECTABLE(t) (t *)GC_MALLOC_UNCOLLECTABLE(sizeof (t))
-
-/* Finalization. Some of these primitives are grossly unsafe. */
-/* The idea is to make them both cheap, and sufficient to build */
-/* a safer layer, closer to PCedar finalization. */
-/* The interface represents my conclusions from a long discussion */
-/* with Alan Demers, Dan Greene, Carl Hauser, Barry Hayes, */
-/* Christian Jacobi, and Russ Atkinson. It's not perfect, and */
-/* probably nobody else agrees with it. Hans-J. Boehm 3/13/92 */
-typedef void (*GC_finalization_proc)
- GC_PROTO((GC_PTR obj, GC_PTR client_data));
-
-GC_API void GC_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
- /* When obj is no longer accessible, invoke */
- /* (*fn)(obj, cd). If a and b are inaccessible, and */
- /* a points to b (after disappearing links have been */
- /* made to disappear), then only a will be */
- /* finalized. (If this does not create any new */
- /* pointers to b, then b will be finalized after the */
- /* next collection.) Any finalizable object that */
- /* is reachable from itself by following one or more */
- /* pointers will not be finalized (or collected). */
- /* Thus cycles involving finalizable objects should */
- /* be avoided, or broken by disappearing links. */
- /* All but the last finalizer registered for an object */
- /* is ignored. */
- /* Finalization may be removed by passing 0 as fn. */
- /* Finalizers are implicitly unregistered just before */
- /* they are invoked. */
- /* The old finalizer and client data are stored in */
- /* *ofn and *ocd. */
- /* Fn is never invoked on an accessible object, */
- /* provided hidden pointers are converted to real */
- /* pointers only if the allocation lock is held, and */
- /* such conversions are not performed by finalization */
- /* routines. */
- /* If GC_register_finalizer is aborted as a result of */
- /* a signal, the object may be left with no */
- /* finalization, even if neither the old nor new */
- /* finalizer were NULL. */
- /* Obj should be the nonNULL starting address of an */
- /* object allocated by GC_malloc or friends. */
- /* Note that any garbage collectable object referenced */
- /* by cd will be considered accessible until the */
- /* finalizer is invoked. */
-
-/* Another versions of the above follow. It ignores */
-/* self-cycles, i.e. pointers from a finalizable object to */
-/* itself. There is a stylistic argument that this is wrong, */
-/* but it's unavoidable for C++, since the compiler may */
-/* silently introduce these. It's also benign in that specific */
-/* case. */
-GC_API void GC_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-/* Another version of the above. It ignores all cycles. */
-/* It should probably only be used by Java implementations. */
-GC_API void GC_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-
-/* The following routine may be used to break cycles between */
-/* finalizable objects, thus causing cyclic finalizable */
-/* objects to be finalized in the correct order. Standard */
-/* use involves calling GC_register_disappearing_link(&p), */
-/* where p is a pointer that is not followed by finalization */
-/* code, and should not be considered in determining */
-/* finalization order. */
-GC_API int GC_register_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Link should point to a field of a heap allocated */
- /* object obj. *link will be cleared when obj is */
- /* found to be inaccessible. This happens BEFORE any */
- /* finalization code is invoked, and BEFORE any */
- /* decisions about finalization order are made. */
- /* This is useful in telling the finalizer that */
- /* some pointers are not essential for proper */
- /* finalization. This may avoid finalization cycles. */
- /* Note that obj may be resurrected by another */
- /* finalizer, and thus the clearing of *link may */
- /* be visible to non-finalization code. */
- /* There's an argument that an arbitrary action should */
- /* be allowed here, instead of just clearing a pointer. */
- /* But this causes problems if that action alters, or */
- /* examines connectivity. */
- /* Returns 1 if link was already registered, 0 */
- /* otherwise. */
- /* Only exists for backward compatibility. See below: */
-
-GC_API int GC_general_register_disappearing_link
- GC_PROTO((GC_PTR * /* link */, GC_PTR obj));
- /* A slight generalization of the above. *link is */
- /* cleared when obj first becomes inaccessible. This */
- /* can be used to implement weak pointers easily and */
- /* safely. Typically link will point to a location */
- /* holding a disguised pointer to obj. (A pointer */
- /* inside an "atomic" object is effectively */
- /* disguised.) In this way soft */
- /* pointers are broken before any object */
- /* reachable from them are finalized. Each link */
- /* May be registered only once, i.e. with one obj */
- /* value. This was added after a long email discussion */
- /* with John Ellis. */
- /* Obj must be a pointer to the first word of an object */
- /* we allocated. It is unsafe to explicitly deallocate */
- /* the object containing link. Explicitly deallocating */
- /* obj may or may not cause link to eventually be */
- /* cleared. */
-GC_API int GC_unregister_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Returns 0 if link was not actually registered. */
- /* Undoes a registration by either of the above two */
- /* routines. */
-
-/* Auxiliary fns to make finalization work correctly with displaced */
-/* pointers introduced by the debugging allocators. */
-GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
-GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
-
-/* Returns !=0 if GC_invoke_finalizers has something to do. */
-GC_API int GC_should_invoke_finalizers GC_PROTO((void));
-
-GC_API int GC_invoke_finalizers GC_PROTO((void));
- /* Run finalizers for all objects that are ready to */
- /* be finalized. Return the number of finalizers */
- /* that were run. Normally this is also called */
- /* implicitly during some allocations. If */
- /* GC-finalize_on_demand is nonzero, it must be called */
- /* explicitly. */
-
-/* GC_set_warn_proc can be used to redirect or filter warning messages. */
-/* p may not be a NULL pointer. */
-typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
-GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
- /* Returns old warning procedure. */
-
-/* The following is intended to be used by a higher level */
-/* (e.g. cedar-like) finalization facility. It is expected */
-/* that finalization code will arrange for hidden pointers to */
-/* disappear. Otherwise objects can be accessed after they */
-/* have been collected. */
-/* Note that putting pointers in atomic objects or in */
-/* nonpointer slots of "typed" objects is equivalent to */
-/* disguising them in this way, and may have other advantages. */
-# if defined(I_HIDE_POINTERS) || defined(GC_I_HIDE_POINTERS)
- typedef GC_word GC_hidden_pointer;
-# define HIDE_POINTER(p) (~(GC_hidden_pointer)(p))
-# define REVEAL_POINTER(p) ((GC_PTR)(HIDE_POINTER(p)))
- /* Converting a hidden pointer to a real pointer requires verifying */
- /* that the object still exists. This involves acquiring the */
- /* allocator lock to avoid a race with the collector. */
-# endif /* I_HIDE_POINTERS */
-
-typedef GC_PTR (*GC_fn_type) GC_PROTO((GC_PTR client_data));
-GC_API GC_PTR GC_call_with_alloc_lock
- GC_PROTO((GC_fn_type fn, GC_PTR client_data));
-
-/* Check that p and q point to the same object. */
-/* Fail conspicuously if they don't. */
-/* Returns the first argument. */
-/* Succeeds if neither p nor q points to the heap. */
-/* May succeed if both p and q point to between heap objects. */
-GC_API GC_PTR GC_same_obj GC_PROTO((GC_PTR p, GC_PTR q));
-
-/* Checked pointer pre- and post- increment operations. Note that */
-/* the second argument is in units of bytes, not multiples of the */
-/* object size. This should either be invoked from a macro, or the */
-/* call should be automatically generated. */
-GC_API GC_PTR GC_pre_incr GC_PROTO((GC_PTR *p, size_t how_much));
-GC_API GC_PTR GC_post_incr GC_PROTO((GC_PTR *p, size_t how_much));
-
-/* Check that p is visible */
-/* to the collector as a possibly pointer containing location. */
-/* If it isn't fail conspicuously. */
-/* Returns the argument in all cases. May erroneously succeed */
-/* in hard cases. (This is intended for debugging use with */
-/* untyped allocations. The idea is that it should be possible, though */
-/* slow, to add such a call to all indirect pointer stores.) */
-/* Currently useless for multithreaded worlds. */
-GC_API GC_PTR GC_is_visible GC_PROTO((GC_PTR p));
-
-/* Check that if p is a pointer to a heap page, then it points to */
-/* a valid displacement within a heap object. */
-/* Fail conspicuously if this property does not hold. */
-/* Uninteresting with ALL_INTERIOR_POINTERS. */
-/* Always returns its argument. */
-GC_API GC_PTR GC_is_valid_displacement GC_PROTO((GC_PTR p));
-
-/* Safer, but slow, pointer addition. Probably useful mainly with */
-/* a preprocessor. Useful only for heap pointers. */
-#ifdef GC_DEBUG
-# define GC_PTR_ADD3(x, n, type_of_result) \
- ((type_of_result)GC_same_obj((x)+(n), (x)))
-# define GC_PRE_INCR3(x, n, type_of_result) \
- ((type_of_result)GC_pre_incr(&(x), (n)*sizeof(*x))
-# define GC_POST_INCR2(x, type_of_result) \
- ((type_of_result)GC_post_incr(&(x), sizeof(*x))
-# ifdef __GNUC__
-# define GC_PTR_ADD(x, n) \
- GC_PTR_ADD3(x, n, typeof(x))
-# define GC_PRE_INCR(x, n) \
- GC_PRE_INCR3(x, n, typeof(x))
-# define GC_POST_INCR(x, n) \
- GC_POST_INCR3(x, typeof(x))
-# else
- /* We can't do this right without typeof, which ANSI */
- /* decided was not sufficiently useful. Repeatedly */
- /* mentioning the arguments seems too dangerous to be */
- /* useful. So does not casting the result. */
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_ADD3(x, n, type_of_result) ((x)+(n))
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# define GC_PRE_INCR3(x, n, type_of_result) ((x) += (n))
-# define GC_PRE_INCR(x, n) ((x) += (n))
-# define GC_POST_INCR2(x, n, type_of_result) ((x)++)
-# define GC_POST_INCR(x, n) ((x)++)
-#endif
-
-/* Safer assignment of a pointer to a nonstack location. */
-#ifdef GC_DEBUG
-# ifdef __STDC__
-# define GC_PTR_STORE(p, q) \
- (*(void **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# else
-# define GC_PTR_STORE(p, q) \
- (*(char **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_STORE(p, q) *((p) = (q))
-#endif
-
-/* Fynctions called to report pointer checking errors */
-GC_API void (*GC_same_obj_print_proc) GC_PROTO((GC_PTR p, GC_PTR q));
-
-GC_API void (*GC_is_valid_displacement_print_proc)
- GC_PROTO((GC_PTR p));
-
-GC_API void (*GC_is_visible_print_proc)
- GC_PROTO((GC_PTR p));
-
-#if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS)
-# define SOLARIS_THREADS
-#endif
-
-#ifdef SOLARIS_THREADS
-/* We need to intercept calls to many of the threads primitives, so */
-/* that we can locate thread stacks and stop the world. */
-/* Note also that the collector cannot see thread specific data. */
-/* Thread specific data should generally consist of pointers to */
-/* uncollectable objects, which are deallocated using the destructor */
-/* facility in thr_keycreate. */
-# include <thread.h>
-# include <signal.h>
- int GC_thr_create(void *stack_base, size_t stack_size,
- void *(*start_routine)(void *), void *arg, long flags,
- thread_t *new_thread);
- int GC_thr_join(thread_t wait_for, thread_t *departed, void **status);
- int GC_thr_suspend(thread_t target_thread);
- int GC_thr_continue(thread_t target_thread);
- void * GC_dlopen(const char *path, int mode);
-
-# ifdef _SOLARIS_PTHREADS
-# include <pthread.h>
- extern int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void * (*thread_execp)(void *), void *arg);
- extern int GC_pthread_join(pthread_t wait_for, void **status);
-
-# undef thread_t
-
-# define pthread_join GC_pthread_join
-# define pthread_create GC_pthread_create
-#endif
-
-# define thr_create GC_thr_create
-# define thr_join GC_thr_join
-# define thr_suspend GC_thr_suspend
-# define thr_continue GC_thr_continue
-# define dlopen GC_dlopen
-
-# endif /* SOLARIS_THREADS */
-
-
-#if !defined(USE_LD_WRAP) && \
- (defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS))
-/* We treat these similarly. */
-# include <pthread.h>
-# include <signal.h>
-
- int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void *), void *arg);
- int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
- int GC_pthread_join(pthread_t thread, void **retval);
-
-# define pthread_create GC_pthread_create
-# define pthread_sigmask GC_pthread_sigmask
-# define pthread_join GC_pthread_join
-# define dlopen GC_dlopen
-
-#endif /* xxxxx_THREADS */
-
-# if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
- defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
- defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- /* Any flavor of threads except SRC_M3. */
-/* This returns a list of objects, linked through their first */
-/* word. Its use can greatly reduce lock contention problems, since */
-/* the allocation lock can be acquired and released many fewer times. */
-/* lb must be large enough to hold the pointer field. */
-GC_PTR GC_malloc_many(size_t lb);
-#define GC_NEXT(p) (*(GC_PTR *)(p)) /* Retrieve the next element */
- /* in returned list. */
-extern void GC_thr_init(); /* Needed for Solaris/X86 */
-
-#endif /* THREADS && !SRC_M3 */
-
-/*
- * If you are planning on putting
- * the collector in a SunOS 5 dynamic library, you need to call GC_INIT()
- * from the statically loaded program section.
- * This circumvents a Solaris 2.X (X<=4) linker bug.
- */
-#if defined(sparc) || defined(__sparc)
-# define GC_INIT() { extern end, etext; \
- GC_noop(&end, &etext); }
-#else
-# if defined(__CYGWIN32__) && defined(GC_USE_DLL)
- /*
- * Similarly gnu-win32 DLLs need explicit initialization
- */
-# define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
-# else
-# define GC_INIT()
-# endif
-#endif
-
-#if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \
- || defined(_WIN32)
- /* win32S may not free all resources on process exit. */
- /* This explicitly deallocates the heap. */
- GC_API void GC_win32_free_heap ();
-#endif
-
-#ifdef __cplusplus
- } /* end of extern "C" */
-#endif
-
-#endif /* _GC_H */
diff --git a/boehm-gc/cord/private/cord_pos.h b/boehm-gc/cord/private/cord_pos.h
deleted file mode 100644
index d2b24bb8ab6..00000000000
--- a/boehm-gc/cord/private/cord_pos.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, May 19, 1994 2:23 pm PDT */
-# ifndef CORD_POSITION_H
-
-/* The representation of CORD_position. This is private to the */
-/* implementation, but the size is known to clients. Also */
-/* the implementation of some exported macros relies on it. */
-/* Don't use anything defined here and not in cord.h. */
-
-# define MAX_DEPTH 48
- /* The maximum depth of a balanced cord + 1. */
- /* We don't let cords get deeper than MAX_DEPTH. */
-
-struct CORD_pe {
- CORD pe_cord;
- size_t pe_start_pos;
-};
-
-/* A structure describing an entry on the path from the root */
-/* to current position. */
-typedef struct CORD_Pos {
- size_t cur_pos;
- int path_len;
-# define CORD_POS_INVALID (0x55555555)
- /* path_len == INVALID <==> position invalid */
- const char *cur_leaf; /* Current leaf, if it is a string. */
- /* If the current leaf is a function, */
- /* then this may point to function_buf */
- /* containing the next few characters. */
- /* Always points to a valid string */
- /* containing the current character */
- /* unless cur_end is 0. */
- size_t cur_start; /* Start position of cur_leaf */
- size_t cur_end; /* Ending position of cur_leaf */
- /* 0 if cur_leaf is invalid. */
- struct CORD_pe path[MAX_DEPTH + 1];
- /* path[path_len] is the leaf corresponding to cur_pos */
- /* path[0].pe_cord is the cord we point to. */
-# define FUNCTION_BUF_SZ 8
- char function_buf[FUNCTION_BUF_SZ]; /* Space for next few chars */
- /* from function node. */
-} CORD_pos[1];
-
-/* Extract the cord from a position: */
-CORD CORD_pos_to_cord(CORD_pos p);
-
-/* Extract the current index from a position: */
-size_t CORD_pos_to_index(CORD_pos p);
-
-/* Fetch the character located at the given position: */
-char CORD_pos_fetch(CORD_pos p);
-
-/* Initialize the position to refer to the give cord and index. */
-/* Note that this is the most expensive function on positions: */
-void CORD_set_pos(CORD_pos p, CORD x, size_t i);
-
-/* Advance the position to the next character. */
-/* P must be initialized and valid. */
-/* Invalidates p if past end: */
-void CORD_next(CORD_pos p);
-
-/* Move the position to the preceding character. */
-/* P must be initialized and valid. */
-/* Invalidates p if past beginning: */
-void CORD_prev(CORD_pos p);
-
-/* Is the position valid, i.e. inside the cord? */
-int CORD_pos_valid(CORD_pos p);
-
-char CORD__pos_fetch(CORD_pos);
-void CORD__next(CORD_pos);
-void CORD__prev(CORD_pos);
-
-#define CORD_pos_fetch(p) \
- (((p)[0].cur_end != 0)? \
- (p)[0].cur_leaf[(p)[0].cur_pos - (p)[0].cur_start] \
- : CORD__pos_fetch(p))
-
-#define CORD_next(p) \
- (((p)[0].cur_pos + 1 < (p)[0].cur_end)? \
- (p)[0].cur_pos++ \
- : (CORD__next(p), 0))
-
-#define CORD_prev(p) \
- (((p)[0].cur_end != 0 && (p)[0].cur_pos > (p)[0].cur_start)? \
- (p)[0].cur_pos-- \
- : (CORD__prev(p), 0))
-
-#define CORD_pos_to_index(p) ((p)[0].cur_pos)
-
-#define CORD_pos_to_cord(p) ((p)[0].path[0].pe_cord)
-
-#define CORD_pos_valid(p) ((p)[0].path_len != CORD_POS_INVALID)
-
-/* Some grubby stuff for performance-critical friends: */
-#define CORD_pos_chars_left(p) ((long)((p)[0].cur_end) - (long)((p)[0].cur_pos))
- /* Number of characters in cache. <= 0 ==> none */
-
-#define CORD_pos_advance(p,n) ((p)[0].cur_pos += (n) - 1, CORD_next(p))
- /* Advance position by n characters */
- /* 0 < n < CORD_pos_chars_left(p) */
-
-#define CORD_pos_cur_char_addr(p) \
- (p)[0].cur_leaf + ((p)[0].cur_pos - (p)[0].cur_start)
- /* address of current character in cache. */
-
-#endif
diff --git a/boehm-gc/dbg_mlc.c b/boehm-gc/dbg_mlc.c
deleted file mode 100644
index f329cc81a4c..00000000000
--- a/boehm-gc/dbg_mlc.c
+++ /dev/null
@@ -1,809 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1997 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#include "dbg_mlc.h"
-
-void GC_default_print_heap_obj_proc();
-GC_API void GC_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-
-/* Check whether object with base pointer p has debugging info */
-/* p is assumed to point to a legitimate object in our part */
-/* of the heap. */
-GC_bool GC_has_debug_info(p)
-ptr_t p;
-{
- register oh * ohdr = (oh *)p;
- register ptr_t body = (ptr_t)(ohdr + 1);
- register word sz = GC_size((ptr_t) ohdr);
-
- if (HBLKPTR((ptr_t)ohdr) != HBLKPTR((ptr_t)body)
- || sz < sizeof (oh)) {
- return(FALSE);
- }
- if (ohdr -> oh_sz == sz) {
- /* Object may have had debug info, but has been deallocated */
- return(FALSE);
- }
- if (ohdr -> oh_sf == (START_FLAG ^ (word)body)) return(TRUE);
- if (((word *)ohdr)[BYTES_TO_WORDS(sz)-1] == (END_FLAG ^ (word)body)) {
- return(TRUE);
- }
- return(FALSE);
-}
-
-#ifdef KEEP_BACK_PTRS
- /* Store back pointer to source in dest, if that appears to be possible. */
- /* This is not completely safe, since we may mistakenly conclude that */
- /* dest has a debugging wrapper. But the error probability is very */
- /* small, and this shouldn't be used in production code. */
- /* We assume that dest is the real base pointer. Source will usually */
- /* be a pointer to the interior of an object. */
- void GC_store_back_pointer(ptr_t source, ptr_t dest)
- {
- if (GC_has_debug_info(dest)) {
- ((oh *)dest) -> oh_back_ptr = (ptr_t)HIDE_POINTER(source);
- }
- }
-
- void GC_marked_for_finalization(ptr_t dest) {
- GC_store_back_pointer(MARKED_FOR_FINALIZATION, dest);
- }
-
- /* Store information about the object referencing dest in *base_p */
- /* and *offset_p. */
- /* source is root ==> *base_p = address, *offset_p = 0 */
- /* source is heap object ==> *base_p != 0, *offset_p = offset */
- /* Returns 1 on success, 0 if source couldn't be determined. */
- /* Dest can be any address within a heap object. */
- GC_ref_kind GC_get_back_ptr_info(void *dest, void **base_p, size_t *offset_p)
- {
- oh * hdr = (oh *)GC_base(dest);
- ptr_t bp;
- ptr_t bp_base;
- if (!GC_has_debug_info((ptr_t) hdr)) return GC_NO_SPACE;
- bp = hdr -> oh_back_ptr;
- if (MARKED_FOR_FINALIZATION == bp) return GC_FINALIZER_REFD;
- if (MARKED_FROM_REGISTER == bp) return GC_REFD_FROM_REG;
- if (0 == bp) return GC_UNREFERENCED;
- bp = REVEAL_POINTER(bp);
- bp_base = GC_base(bp);
- if (0 == bp_base) {
- *base_p = bp;
- *offset_p = 0;
- return GC_REFD_FROM_ROOT;
- } else {
- if (GC_has_debug_info(bp_base)) bp_base += sizeof(oh);
- *base_p = bp_base;
- *offset_p = bp - bp_base;
- return GC_REFD_FROM_HEAP;
- }
- }
-
- /* Generate a random heap address. */
- /* The resulting address is in the heap, but */
- /* not necessarily inside a valid object. */
- void *GC_generate_random_heap_address(void)
- {
- int i;
- int heap_offset = random() % GC_heapsize;
- for (i = 0; i < GC_n_heap_sects; ++ i) {
- int size = GC_heap_sects[i].hs_bytes;
- if (heap_offset < size) {
- return GC_heap_sects[i].hs_start + heap_offset;
- } else {
- heap_offset -= size;
- }
- }
- ABORT("GC_generate_random_heap_address: size inconsistency");
- /*NOTREACHED*/
- return 0;
- }
-
- /* Generate a random address inside a valid marked heap object. */
- void *GC_generate_random_valid_address(void)
- {
- ptr_t result;
- ptr_t base;
- for (;;) {
- result = GC_generate_random_heap_address();
- base = GC_base(result);
- if (0 == base) continue;
- if (!GC_is_marked(base)) continue;
- return result;
- }
- }
-
- /* Print back trace for p */
- void GC_print_backtrace(void *p)
- {
- void *current = p;
- int i;
- GC_ref_kind source;
- size_t offset;
- void *base;
-
- GC_print_heap_obj(GC_base(current));
- GC_err_printf0("\n");
- for (i = 0; ; ++i) {
- source = GC_get_back_ptr_info(current, &base, &offset);
- if (GC_UNREFERENCED == source) {
- GC_err_printf0("Reference could not be found\n");
- goto out;
- }
- if (GC_NO_SPACE == source) {
- GC_err_printf0("No debug info in object: Can't find reference\n");
- goto out;
- }
- GC_err_printf1("Reachable via %d levels of pointers from ",
- (unsigned long)i);
- switch(source) {
- case GC_REFD_FROM_ROOT:
- GC_err_printf1("root at 0x%lx\n", (unsigned long)base);
- goto out;
- case GC_REFD_FROM_REG:
- GC_err_printf0("root in register\n");
- goto out;
- case GC_FINALIZER_REFD:
- GC_err_printf0("list of finalizable objects\n");
- goto out;
- case GC_REFD_FROM_HEAP:
- GC_err_printf1("offset %ld in object:\n", (unsigned long)offset);
- /* Take GC_base(base) to get real base, i.e. header. */
- GC_print_heap_obj(GC_base(base));
- GC_err_printf0("\n");
- break;
- }
- current = base;
- }
- out:;
- }
-
- /* Force a garbage collection and generate a backtrace from a */
- /* random heap address. */
- void GC_generate_random_backtrace(void)
- {
- void * current;
- GC_gcollect();
- current = GC_generate_random_valid_address();
- GC_printf1("Chose address 0x%lx in object\n", (unsigned long)current);
- GC_print_backtrace(current);
- }
-
-#endif /* KEEP_BACK_PTRS */
-
-/* Store debugging info into p. Return displaced pointer. */
-/* Assumes we don't hold allocation lock. */
-ptr_t GC_store_debug_info(p, sz, string, integer)
-register ptr_t p; /* base pointer */
-word sz; /* bytes */
-char * string;
-word integer;
-{
- register word * result = (word *)((oh *)p + 1);
- DCL_LOCK_STATE;
-
- /* There is some argument that we should dissble signals here. */
- /* But that's expensive. And this way things should only appear */
- /* inconsistent while we're in the handler. */
- LOCK();
-# ifdef KEEP_BACK_PTRS
- ((oh *)p) -> oh_back_ptr = 0;
-# endif
- ((oh *)p) -> oh_string = string;
- ((oh *)p) -> oh_int = integer;
- ((oh *)p) -> oh_sz = sz;
- ((oh *)p) -> oh_sf = START_FLAG ^ (word)result;
- ((word *)p)[BYTES_TO_WORDS(GC_size(p))-1] =
- result[ROUNDED_UP_WORDS(sz)] = END_FLAG ^ (word)result;
- UNLOCK();
- return((ptr_t)result);
-}
-
-/* Check the object with debugging info at ohdr */
-/* return NIL if it's OK. Else return clobbered */
-/* address. */
-ptr_t GC_check_annotated_obj(ohdr)
-register oh * ohdr;
-{
- register ptr_t body = (ptr_t)(ohdr + 1);
- register word gc_sz = GC_size((ptr_t)ohdr);
- if (ohdr -> oh_sz + DEBUG_BYTES > gc_sz) {
- return((ptr_t)(&(ohdr -> oh_sz)));
- }
- if (ohdr -> oh_sf != (START_FLAG ^ (word)body)) {
- return((ptr_t)(&(ohdr -> oh_sf)));
- }
- if (((word *)ohdr)[BYTES_TO_WORDS(gc_sz)-1] != (END_FLAG ^ (word)body)) {
- return((ptr_t)((word *)ohdr + BYTES_TO_WORDS(gc_sz)-1));
- }
- if (((word *)body)[ROUNDED_UP_WORDS(ohdr -> oh_sz)]
- != (END_FLAG ^ (word)body)) {
- return((ptr_t)((word *)body + ROUNDED_UP_WORDS(ohdr -> oh_sz)));
- }
- return(0);
-}
-
-void GC_print_obj(p)
-ptr_t p;
-{
- register oh * ohdr = (oh *)GC_base(p);
-
- GC_err_printf1("0x%lx (", ((unsigned long)ohdr + sizeof(oh)));
- GC_err_puts(ohdr -> oh_string);
- GC_err_printf2(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int),
- (unsigned long)(ohdr -> oh_sz));
- PRINT_CALL_CHAIN(ohdr);
-}
-
-void GC_debug_print_heap_obj_proc(p)
-ptr_t p;
-{
- if (GC_has_debug_info(p)) {
- GC_print_obj(p);
- } else {
- GC_default_print_heap_obj_proc(p);
- }
-}
-
-void GC_print_smashed_obj(p, clobbered_addr)
-ptr_t p, clobbered_addr;
-{
- register oh * ohdr = (oh *)GC_base(p);
-
- GC_err_printf2("0x%lx in object at 0x%lx(", (unsigned long)clobbered_addr,
- (unsigned long)p);
- if (clobbered_addr <= (ptr_t)(&(ohdr -> oh_sz))
- || ohdr -> oh_string == 0) {
- GC_err_printf1("<smashed>, appr. sz = %ld)\n",
- (GC_size((ptr_t)ohdr) - DEBUG_BYTES));
- } else {
- if (ohdr -> oh_string[0] == '\0') {
- GC_err_puts("EMPTY(smashed?)");
- } else {
- GC_err_puts(ohdr -> oh_string);
- }
- GC_err_printf2(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int),
- (unsigned long)(ohdr -> oh_sz));
- PRINT_CALL_CHAIN(ohdr);
- }
-}
-
-void GC_check_heap_proc();
-
-void GC_start_debugging()
-{
- GC_check_heap = GC_check_heap_proc;
- GC_print_heap_obj = GC_debug_print_heap_obj_proc;
- GC_debugging_started = TRUE;
- GC_register_displacement((word)sizeof(oh));
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- void GC_debug_register_displacement(GC_word offset)
-# else
- void GC_debug_register_displacement(offset)
- GC_word offset;
-# endif
-{
- GC_register_displacement(offset);
- GC_register_displacement((word)sizeof(oh) + offset);
-}
-
-# ifdef __STDC__
- GC_PTR GC_debug_malloc(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# ifdef GC_ADD_CALLER
- --> GC_ADD_CALLER not implemented for K&R C
-# endif
-# endif
-{
- GC_PTR result = GC_malloc(lb + DEBUG_BYTES);
-
- if (result == 0) {
- GC_err_printf1("GC_debug_malloc(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-# ifdef __STDC__
- GC_PTR GC_debug_generic_malloc(size_t lb, int k, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc(lb, k, s, i)
- size_t lb;
- int k;
- char * s;
- int i;
-# ifdef GC_ADD_CALLER
- --> GC_ADD_CALLER not implemented for K&R C
-# endif
-# endif
-{
- GC_PTR result = GC_generic_malloc(lb + DEBUG_BYTES, k);
-
- if (result == 0) {
- GC_err_printf1("GC_debug_malloc(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-#ifdef STUBBORN_ALLOC
-# ifdef __STDC__
- GC_PTR GC_debug_malloc_stubborn(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc_stubborn(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# endif
-{
- GC_PTR result = GC_malloc_stubborn(lb + DEBUG_BYTES);
-
- if (result == 0) {
- GC_err_printf1("GC_debug_malloc(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-void GC_debug_change_stubborn(p)
-GC_PTR p;
-{
- register GC_PTR q = GC_base(p);
- register hdr * hhdr;
-
- if (q == 0) {
- GC_err_printf1("Bad argument: 0x%lx to GC_debug_change_stubborn\n",
- (unsigned long) p);
- ABORT("GC_debug_change_stubborn: bad arg");
- }
- hhdr = HDR(q);
- if (hhdr -> hb_obj_kind != STUBBORN) {
- GC_err_printf1("GC_debug_change_stubborn arg not stubborn: 0x%lx\n",
- (unsigned long) p);
- ABORT("GC_debug_change_stubborn: arg not stubborn");
- }
- GC_change_stubborn(q);
-}
-
-void GC_debug_end_stubborn_change(p)
-GC_PTR p;
-{
- register GC_PTR q = GC_base(p);
- register hdr * hhdr;
-
- if (q == 0) {
- GC_err_printf1("Bad argument: 0x%lx to GC_debug_end_stubborn_change\n",
- (unsigned long) p);
- ABORT("GC_debug_end_stubborn_change: bad arg");
- }
- hhdr = HDR(q);
- if (hhdr -> hb_obj_kind != STUBBORN) {
- GC_err_printf1("debug_end_stubborn_change arg not stubborn: 0x%lx\n",
- (unsigned long) p);
- ABORT("GC_debug_end_stubborn_change: arg not stubborn");
- }
- GC_end_stubborn_change(q);
-}
-
-#else /* !STUBBORN_ALLOC */
-
-# ifdef __STDC__
- GC_PTR GC_debug_malloc_stubborn(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc_stubborn(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# endif
-{
- return GC_debug_malloc(lb, OPT_RA s, i);
-}
-
-void GC_debug_change_stubborn(p)
-GC_PTR p;
-{
-}
-
-void GC_debug_end_stubborn_change(p)
-GC_PTR p;
-{
-}
-
-#endif /* !STUBBORN_ALLOC */
-
-# ifdef __STDC__
- GC_PTR GC_debug_malloc_atomic(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc_atomic(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# endif
-{
- GC_PTR result = GC_malloc_atomic(lb + DEBUG_BYTES);
-
- if (result == 0) {
- GC_err_printf1("GC_debug_malloc_atomic(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-# ifdef __STDC__
- GC_PTR GC_debug_malloc_uncollectable(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc_uncollectable(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# endif
-{
- GC_PTR result = GC_malloc_uncollectable(lb + DEBUG_BYTES);
-
- if (result == 0) {
- GC_err_printf1("GC_debug_malloc_uncollectable(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-#ifdef ATOMIC_UNCOLLECTABLE
-# ifdef __STDC__
- GC_PTR GC_debug_malloc_atomic_uncollectable(size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_malloc_atomic_uncollectable(lb, s, i)
- size_t lb;
- char * s;
- int i;
-# endif
-{
- GC_PTR result = GC_malloc_atomic_uncollectable(lb + DEBUG_BYTES);
-
- if (result == 0) {
- GC_err_printf1(
- "GC_debug_malloc_atomic_uncollectable(%ld) returning NIL (",
- (unsigned long) lb);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(0);
- }
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-#endif /* ATOMIC_UNCOLLECTABLE */
-
-# ifdef __STDC__
- void GC_debug_free(GC_PTR p)
-# else
- void GC_debug_free(p)
- GC_PTR p;
-# endif
-{
- register GC_PTR base;
- register ptr_t clobbered;
-
- if (0 == p) return;
- base = GC_base(p);
- if (base == 0) {
- GC_err_printf1("Attempt to free invalid pointer %lx\n",
- (unsigned long)p);
- ABORT("free(invalid pointer)");
- }
- if ((ptr_t)p - (ptr_t)base != sizeof(oh)) {
- GC_err_printf1(
- "GC_debug_free called on pointer %lx wo debugging info\n",
- (unsigned long)p);
- } else {
- clobbered = GC_check_annotated_obj((oh *)base);
- if (clobbered != 0) {
- if (((oh *)base) -> oh_sz == GC_size(base)) {
- GC_err_printf0(
- "GC_debug_free: found previously deallocated (?) object at ");
- } else {
- GC_err_printf0("GC_debug_free: found smashed location at ");
- }
- GC_print_smashed_obj(p, clobbered);
- }
- /* Invalidate size */
- ((oh *)base) -> oh_sz = GC_size(base);
- }
- if (GC_find_leak) {
- GC_free(base);
- } else {
- register hdr * hhdr = HDR(p);
- GC_bool uncollectable = FALSE;
-
- if (hhdr -> hb_obj_kind == UNCOLLECTABLE) {
- uncollectable = TRUE;
- }
-# ifdef ATOMIC_UNCOLLECTABLE
- if (hhdr -> hb_obj_kind == AUNCOLLECTABLE) {
- uncollectable = TRUE;
- }
-# endif
- if (uncollectable) GC_free(base);
- } /* !GC_find_leak */
-}
-
-# ifdef __STDC__
- GC_PTR GC_debug_realloc(GC_PTR p, size_t lb, GC_EXTRA_PARAMS)
-# else
- GC_PTR GC_debug_realloc(p, lb, s, i)
- GC_PTR p;
- size_t lb;
- char *s;
- int i;
-# endif
-{
- register GC_PTR base = GC_base(p);
- register ptr_t clobbered;
- register GC_PTR result;
- register size_t copy_sz = lb;
- register size_t old_sz;
- register hdr * hhdr;
-
- if (p == 0) return(GC_debug_malloc(lb, OPT_RA s, i));
- if (base == 0) {
- GC_err_printf1(
- "Attempt to reallocate invalid pointer %lx\n", (unsigned long)p);
- ABORT("realloc(invalid pointer)");
- }
- if ((ptr_t)p - (ptr_t)base != sizeof(oh)) {
- GC_err_printf1(
- "GC_debug_realloc called on pointer %lx wo debugging info\n",
- (unsigned long)p);
- return(GC_realloc(p, lb));
- }
- hhdr = HDR(base);
- switch (hhdr -> hb_obj_kind) {
-# ifdef STUBBORN_ALLOC
- case STUBBORN:
- result = GC_debug_malloc_stubborn(lb, OPT_RA s, i);
- break;
-# endif
- case NORMAL:
- result = GC_debug_malloc(lb, OPT_RA s, i);
- break;
- case PTRFREE:
- result = GC_debug_malloc_atomic(lb, OPT_RA s, i);
- break;
- case UNCOLLECTABLE:
- result = GC_debug_malloc_uncollectable(lb, OPT_RA s, i);
- break;
-# ifdef ATOMIC_UNCOLLECTABLE
- case AUNCOLLECTABLE:
- result = GC_debug_malloc_atomic_uncollectable(lb, OPT_RA s, i);
- break;
-# endif
- default:
- GC_err_printf0("GC_debug_realloc: encountered bad kind\n");
- ABORT("bad kind");
- }
- clobbered = GC_check_annotated_obj((oh *)base);
- if (clobbered != 0) {
- GC_err_printf0("GC_debug_realloc: found smashed location at ");
- GC_print_smashed_obj(p, clobbered);
- }
- old_sz = ((oh *)base) -> oh_sz;
- if (old_sz < copy_sz) copy_sz = old_sz;
- if (result == 0) return(0);
- BCOPY(p, result, copy_sz);
- GC_debug_free(p);
- return(result);
-}
-
-/* Check all marked objects in the given block for validity */
-/*ARGSUSED*/
-void GC_check_heap_block(hbp, dummy)
-register struct hblk *hbp; /* ptr to current heap block */
-word dummy;
-{
- register struct hblkhdr * hhdr = HDR(hbp);
- register word sz = hhdr -> hb_sz;
- register int word_no;
- register word *p, *plim;
-
- p = (word *)(hbp->hb_body);
- word_no = HDR_WORDS;
- if (sz > MAXOBJSZ) {
- plim = p;
- } else {
- plim = (word *)((((word)hbp) + HBLKSIZE) - WORDS_TO_BYTES(sz));
- }
- /* go through all words in block */
- while( p <= plim ) {
- if( mark_bit_from_hdr(hhdr, word_no)
- && GC_has_debug_info((ptr_t)p)) {
- ptr_t clobbered = GC_check_annotated_obj((oh *)p);
-
- if (clobbered != 0) {
- GC_err_printf0(
- "GC_check_heap_block: found smashed location at ");
- GC_print_smashed_obj((ptr_t)p, clobbered);
- }
- }
- word_no += sz;
- p += sz;
- }
-}
-
-
-/* This assumes that all accessible objects are marked, and that */
-/* I hold the allocation lock. Normally called by collector. */
-void GC_check_heap_proc()
-{
-# ifndef SMALL_CONFIG
- if (sizeof(oh) & (2 * sizeof(word) - 1) != 0) {
- ABORT("Alignment problem: object header has inappropriate size\n");
- }
-# endif
- GC_apply_to_all_blocks(GC_check_heap_block, (word)0);
-}
-
-struct closure {
- GC_finalization_proc cl_fn;
- GC_PTR cl_data;
-};
-
-# ifdef __STDC__
- void * GC_make_closure(GC_finalization_proc fn, void * data)
-# else
- GC_PTR GC_make_closure(fn, data)
- GC_finalization_proc fn;
- GC_PTR data;
-# endif
-{
- struct closure * result =
- (struct closure *) GC_malloc(sizeof (struct closure));
-
- result -> cl_fn = fn;
- result -> cl_data = data;
- return((GC_PTR)result);
-}
-
-# ifdef __STDC__
- void GC_debug_invoke_finalizer(void * obj, void * data)
-# else
- void GC_debug_invoke_finalizer(obj, data)
- char * obj;
- char * data;
-# endif
-{
- register struct closure * cl = (struct closure *) data;
-
- (*(cl -> cl_fn))((GC_PTR)((char *)obj + sizeof(oh)), cl -> cl_data);
-}
-
-
-# ifdef __STDC__
- void GC_debug_register_finalizer(GC_PTR obj, GC_finalization_proc fn,
- GC_PTR cd, GC_finalization_proc *ofn,
- GC_PTR *ocd)
-# else
- void GC_debug_register_finalizer(obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc *ofn;
- GC_PTR *ocd;
-# endif
-{
- ptr_t base = GC_base(obj);
- if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
- GC_err_printf1(
- "GC_register_finalizer called with non-base-pointer 0x%lx\n",
- obj);
- }
- GC_register_finalizer(base, GC_debug_invoke_finalizer,
- GC_make_closure(fn,cd), ofn, ocd);
-}
-
-# ifdef __STDC__
- void GC_debug_register_finalizer_no_order
- (GC_PTR obj, GC_finalization_proc fn,
- GC_PTR cd, GC_finalization_proc *ofn,
- GC_PTR *ocd)
-# else
- void GC_debug_register_finalizer_no_order
- (obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc *ofn;
- GC_PTR *ocd;
-# endif
-{
- ptr_t base = GC_base(obj);
- if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
- GC_err_printf1(
- "GC_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
- obj);
- }
- GC_register_finalizer_no_order(base, GC_debug_invoke_finalizer,
- GC_make_closure(fn,cd), ofn, ocd);
- }
-
-# ifdef __STDC__
- void GC_debug_register_finalizer_ignore_self
- (GC_PTR obj, GC_finalization_proc fn,
- GC_PTR cd, GC_finalization_proc *ofn,
- GC_PTR *ocd)
-# else
- void GC_debug_register_finalizer_ignore_self
- (obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc *ofn;
- GC_PTR *ocd;
-# endif
-{
- ptr_t base = GC_base(obj);
- if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
- GC_err_printf1(
- "GC_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
- obj);
- }
- GC_register_finalizer_ignore_self(base, GC_debug_invoke_finalizer,
- GC_make_closure(fn,cd), ofn, ocd);
-}
diff --git a/boehm-gc/dbg_mlc.h b/boehm-gc/dbg_mlc.h
deleted file mode 100644
index 6abeda8a611..00000000000
--- a/boehm-gc/dbg_mlc.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1997 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * This is mostly an internal header file. Typical clients should
- * not use it. Clients that define their own object kinds with
- * debugging allocators will probably want to include this, however.
- * No attempt is made to keep the namespace clean. This should not be
- * included from header filrd that are frequently included by clients.
- */
-
-#ifndef _DBG_MLC_H
-
-#define _DBG_MLC_H
-
-# define I_HIDE_POINTERS
-# include "gc_priv.h"
-# ifdef KEEP_BACK_PTRS
-# include "backptr.h"
-# endif
-
-# define START_FLAG ((word)0xfedcedcb)
-# define END_FLAG ((word)0xbcdecdef)
- /* Stored both one past the end of user object, and one before */
- /* the end of the object as seen by the allocator. */
-
-
-/* Object header */
-typedef struct {
-# ifdef KEEP_BACK_PTRS
- ptr_t oh_back_ptr;
-# define MARKED_FOR_FINALIZATION (ptr_t)(-1)
- /* Object was marked because it is finalizable. */
-# define MARKED_FROM_REGISTER (ptr_t)(-2)
- /* Object was marked from a rgister. Hence the */
- /* source of the reference doesn't have an address. */
-# ifdef ALIGN_DOUBLE
- word oh_dummy;
-# endif
-# endif
- char * oh_string; /* object descriptor string */
- word oh_int; /* object descriptor integers */
-# ifdef NEED_CALLINFO
- struct callinfo oh_ci[NFRAMES];
-# endif
- word oh_sz; /* Original malloc arg. */
- word oh_sf; /* start flag */
-} oh;
-/* The size of the above structure is assumed not to dealign things, */
-/* and to be a multiple of the word length. */
-
-#define DEBUG_BYTES (sizeof (oh) + sizeof (word))
-#define USR_PTR_FROM_BASE(p) ((ptr_t)(p) + sizeof(oh))
-
-/* There is no reason to ever add a byte at the end explicitly, since we */
-/* already add a guard word. */
-#undef ROUNDED_UP_WORDS
-#define ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1) - 1)
-
-#ifdef SAVE_CALL_CHAIN
-# define ADD_CALL_CHAIN(base, ra) GC_save_callers(((oh *)(base)) -> oh_ci)
-# define PRINT_CALL_CHAIN(base) GC_print_callers(((oh *)(base)) -> oh_ci)
-#else
-# ifdef GC_ADD_CALLER
-# define ADD_CALL_CHAIN(base, ra) ((oh *)(base)) -> oh_ci[0].ci_pc = (ra)
-# define PRINT_CALL_CHAIN(base) GC_print_callers(((oh *)(base)) -> oh_ci)
-# else
-# define ADD_CALL_CHAIN(base, ra)
-# define PRINT_CALL_CHAIN(base)
-# endif
-#endif
-
-# ifdef GC_ADD_CALLER
-# define OPT_RA ra,
-# else
-# define OPT_RA
-# endif
-
-
-/* Check whether object with base pointer p has debugging info */
-/* p is assumed to point to a legitimate object in our part */
-/* of the heap. */
-GC_bool GC_has_debug_info(/* p */);
-
-/* Store debugging info into p. Return displaced pointer. */
-/* Assumes we don't hold allocation lock. */
-ptr_t GC_store_debug_info(/* p, sz, string, integer */);
-
-#endif /* _DBG_MLC_H */
diff --git a/boehm-gc/dyn_load.c b/boehm-gc/dyn_load.c
deleted file mode 100644
index ec909cae386..00000000000
--- a/boehm-gc/dyn_load.c
+++ /dev/null
@@ -1,844 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1997 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Original author: Bill Janssen
- * Heavily modified by Hans Boehm and others
- */
-
-/*
- * This is incredibly OS specific code for tracking down data sections in
- * dynamic libraries. There appears to be no way of doing this quickly
- * without groveling through undocumented data structures. We would argue
- * that this is a bug in the design of the dlopen interface. THIS CODE
- * MAY BREAK IN FUTURE OS RELEASES. If this matters to you, don't hesitate
- * to let your vendor know ...
- *
- * None of this is safe with dlclose and incremental collection.
- * But then not much of anything is safe in the presence of dlclose.
- */
-#ifndef MACOS
-# include <sys/types.h>
-#endif
-#include "gc_priv.h"
-
-/* BTL: avoid circular redefinition of dlopen if SOLARIS_THREADS defined */
-# if (defined(LINUX_THREADS) || defined(SOLARIS_THREADS) \
- || defined(HPUX_THREADS) || defined(IRIX_THREADS)) && defined(dlopen) \
- && !defined(USE_LD_WRAP)
- /* To support threads in Solaris, gc.h interposes on dlopen by */
- /* defining "dlopen" to be "GC_dlopen", which is implemented below. */
- /* However, both GC_FirstDLOpenedLinkMap() and GC_dlopen() use the */
- /* real system dlopen() in their implementation. We first remove */
- /* gc.h's dlopen definition and restore it later, after GC_dlopen(). */
-# undef dlopen
-# define GC_must_restore_redefined_dlopen
-# else
-# undef GC_must_restore_redefined_dlopen
-# endif
-
-#if (defined(DYNAMIC_LOADING) || defined(MSWIN32)) && !defined(PCR)
-#if !defined(SUNOS4) && !defined(SUNOS5DL) && !defined(IRIX5) && \
- !defined(MSWIN32) && !(defined(ALPHA) && defined(OSF1)) && \
- !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
- !defined(RS6000) && !defined(SCO_ELF)
- --> We only know how to find data segments of dynamic libraries for the
- --> above. Additional SVR4 variants might not be too
- --> hard to add.
-#endif
-
-#include <stdio.h>
-#ifdef SUNOS5DL
-# include <sys/elf.h>
-# include <dlfcn.h>
-# include <link.h>
-#endif
-#ifdef SUNOS4
-# include <dlfcn.h>
-# include <link.h>
-# include <a.out.h>
- /* struct link_map field overrides */
-# define l_next lm_next
-# define l_addr lm_addr
-# define l_name lm_name
-#endif
-
-
-#if defined(SUNOS5DL) && !defined(USE_PROC_FOR_LIBRARIES)
-
-#ifdef LINT
- Elf32_Dyn _DYNAMIC;
-#endif
-
-static struct link_map *
-GC_FirstDLOpenedLinkMap()
-{
- extern Elf32_Dyn _DYNAMIC;
- Elf32_Dyn *dp;
- struct r_debug *r;
- static struct link_map * cachedResult = 0;
- static Elf32_Dyn *dynStructureAddr = 0;
- /* BTL: added to avoid Solaris 5.3 ld.so _DYNAMIC bug */
-
-# ifdef SUNOS53_SHARED_LIB
- /* BTL: Avoid the Solaris 5.3 bug that _DYNAMIC isn't being set */
- /* up properly in dynamically linked .so's. This means we have */
- /* to use its value in the set of original object files loaded */
- /* at program startup. */
- if( dynStructureAddr == 0 ) {
- void* startupSyms = dlopen(0, RTLD_LAZY);
- dynStructureAddr = (Elf32_Dyn*)dlsym(startupSyms, "_DYNAMIC");
- }
-# else
- dynStructureAddr = &_DYNAMIC;
-# endif
-
- if( dynStructureAddr == 0) {
- return(0);
- }
- if( cachedResult == 0 ) {
- int tag;
- for( dp = ((Elf32_Dyn *)(&_DYNAMIC)); (tag = dp->d_tag) != 0; dp++ ) {
- if( tag == DT_DEBUG ) {
- struct link_map *lm
- = ((struct r_debug *)(dp->d_un.d_ptr))->r_map;
- if( lm != 0 ) cachedResult = lm->l_next; /* might be NIL */
- break;
- }
- }
- }
- return cachedResult;
-}
-
-#endif /* SUNOS5DL ... */
-
-#if defined(SUNOS4) && !defined(USE_PROC_FOR_LIBRARIES)
-
-#ifdef LINT
- struct link_dynamic _DYNAMIC;
-#endif
-
-static struct link_map *
-GC_FirstDLOpenedLinkMap()
-{
- extern struct link_dynamic _DYNAMIC;
-
- if( &_DYNAMIC == 0) {
- return(0);
- }
- return(_DYNAMIC.ld_un.ld_1->ld_loaded);
-}
-
-/* Return the address of the ld.so allocated common symbol */
-/* with the least address, or 0 if none. */
-static ptr_t GC_first_common()
-{
- ptr_t result = 0;
- extern struct link_dynamic _DYNAMIC;
- struct rtc_symb * curr_symbol;
-
- if( &_DYNAMIC == 0) {
- return(0);
- }
- curr_symbol = _DYNAMIC.ldd -> ldd_cp;
- for (; curr_symbol != 0; curr_symbol = curr_symbol -> rtc_next) {
- if (result == 0
- || (ptr_t)(curr_symbol -> rtc_sp -> n_value) < result) {
- result = (ptr_t)(curr_symbol -> rtc_sp -> n_value);
- }
- }
- return(result);
-}
-
-#endif /* SUNOS4 ... */
-
-# if defined(LINUX_THREADS) || defined(SOLARIS_THREADS) \
- || defined(HPUX_THREADS) || defined(IRIX_THREADS)
- /* Make sure we're not in the middle of a collection, and make */
- /* sure we don't start any. Returns previous value of GC_dont_gc. */
- /* This is invoked prior to a dlopen call to avoid synchronization */
- /* issues. We can't just acquire the allocation lock, since startup */
- /* code in dlopen may try to allocate. */
- /* This solution risks heap growth in the presence of many dlopen */
- /* calls in either a multithreaded environment, or if the library */
- /* initialization code allocates substantial amounts of GC'ed memory. */
- /* But I don't know of a better solution. */
- /* This can still deadlock if the client explicitly starts a GC */
- /* during the dlopen. He shouldn't do that. */
- static GC_bool disable_gc_for_dlopen()
- {
- GC_bool result;
- LOCK();
- result = GC_dont_gc;
- while (GC_incremental && GC_collection_in_progress()) {
- GC_collect_a_little_inner(1000);
- }
- GC_dont_gc = TRUE;
- UNLOCK();
- return(result);
- }
-
- /* Redefine dlopen to guarantee mutual exclusion with */
- /* GC_register_dynamic_libraries. */
- /* Should probably happen for other operating systems, too. */
-
-#include <dlfcn.h>
-
-#ifdef USE_LD_WRAP
- void * __wrap_dlopen(const char *path, int mode)
-#else
- void * GC_dlopen(path, mode)
- GC_CONST char * path;
- int mode;
-#endif
-{
- void * result;
- GC_bool dont_gc_save;
-
-# ifndef USE_PROC_FOR_LIBRARIES
- dont_gc_save = disable_gc_for_dlopen();
-# endif
-# ifdef USE_LD_WRAP
- result = __real_dlopen(path, mode);
-# else
- result = dlopen(path, mode);
-# endif
-# ifndef USE_PROC_FOR_LIBRARIES
- GC_dont_gc = dont_gc_save;
-# endif
- return(result);
-}
-# endif /* SOLARIS_THREADS */
-
-/* BTL: added to fix circular dlopen definition if SOLARIS_THREADS defined */
-# if defined(GC_must_restore_redefined_dlopen)
-# define dlopen GC_dlopen
-# endif
-
-# if defined(SUNOS4) || defined(SUNOS5DL)
-/* Add dynamic library data sections to the root set. */
-# if !defined(PCR) && !defined(SOLARIS_THREADS) && defined(THREADS)
-# ifndef SRC_M3
- --> fix mutual exclusion with dlopen
-# endif /* We assume M3 programs don't call dlopen for now */
-# endif
-
-# ifndef USE_PROC_FOR_LIBRARIES
-void GC_register_dynamic_libraries()
-{
- struct link_map *lm = GC_FirstDLOpenedLinkMap();
-
-
- for (lm = GC_FirstDLOpenedLinkMap();
- lm != (struct link_map *) 0; lm = lm->l_next)
- {
-# ifdef SUNOS4
- struct exec *e;
-
- e = (struct exec *) lm->lm_addr;
- GC_add_roots_inner(
- ((char *) (N_DATOFF(*e) + lm->lm_addr)),
- ((char *) (N_BSSADDR(*e) + e->a_bss + lm->lm_addr)),
- TRUE);
-# endif
-# ifdef SUNOS5DL
- Elf32_Ehdr * e;
- Elf32_Phdr * p;
- unsigned long offset;
- char * start;
- register int i;
-
- e = (Elf32_Ehdr *) lm->l_addr;
- p = ((Elf32_Phdr *)(((char *)(e)) + e->e_phoff));
- offset = ((unsigned long)(lm->l_addr));
- for( i = 0; i < (int)(e->e_phnum); ((i++),(p++)) ) {
- switch( p->p_type ) {
- case PT_LOAD:
- {
- if( !(p->p_flags & PF_W) ) break;
- start = ((char *)(p->p_vaddr)) + offset;
- GC_add_roots_inner(
- start,
- start + p->p_memsz,
- TRUE
- );
- }
- break;
- default:
- break;
- }
- }
-# endif
- }
-# ifdef SUNOS4
- {
- static ptr_t common_start = 0;
- ptr_t common_end;
- extern ptr_t GC_find_limit();
-
- if (common_start == 0) common_start = GC_first_common();
- if (common_start != 0) {
- common_end = GC_find_limit(common_start, TRUE);
- GC_add_roots_inner((char *)common_start, (char *)common_end, TRUE);
- }
- }
-# endif
-}
-
-# endif /* !USE_PROC ... */
-# endif /* SUNOS */
-
-#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
-
-/* Dynamic loading code for Linux running ELF. Somewhat tested on
- * Linux/x86, untested but hopefully should work on Linux/Alpha.
- * This code was derived from the Solaris/ELF support. Thanks to
- * whatever kind soul wrote that. - Patrick Bridges */
-
-#include <elf.h>
-#include <link.h>
-
-/* Newer versions of Linux/Alpha and Linux/x86 define this macro. We
- * define it for those older versions that don't. */
-# ifndef ElfW
-# if !defined(ELF_CLASS) || ELF_CLASS == ELFCLASS32
-# define ElfW(type) Elf32_##type
-# else
-# define ElfW(type) Elf64_##type
-# endif
-# endif
-
-static struct link_map *
-GC_FirstDLOpenedLinkMap()
-{
-# ifdef __GNUC__
-# pragma weak _DYNAMIC
-# endif
- extern ElfW(Dyn) _DYNAMIC[];
- ElfW(Dyn) *dp;
- struct r_debug *r;
- static struct link_map *cachedResult = 0;
-
- if( _DYNAMIC == 0) {
- return(0);
- }
- if( cachedResult == 0 ) {
- int tag;
- for( dp = _DYNAMIC; (tag = dp->d_tag) != 0; dp++ ) {
- if( tag == DT_DEBUG ) {
- struct link_map *lm
- = ((struct r_debug *)(dp->d_un.d_ptr))->r_map;
- if( lm != 0 ) cachedResult = lm->l_next; /* might be NIL */
- break;
- }
- }
- }
- return cachedResult;
-}
-
-
-void GC_register_dynamic_libraries()
-{
- struct link_map *lm = GC_FirstDLOpenedLinkMap();
-
-
- for (lm = GC_FirstDLOpenedLinkMap();
- lm != (struct link_map *) 0; lm = lm->l_next)
- {
- ElfW(Ehdr) * e;
- ElfW(Phdr) * p;
- unsigned long offset;
- char * start;
- register int i;
-
- e = (ElfW(Ehdr) *) lm->l_addr;
- p = ((ElfW(Phdr) *)(((char *)(e)) + e->e_phoff));
- offset = ((unsigned long)(lm->l_addr));
- for( i = 0; i < (int)(e->e_phnum); ((i++),(p++)) ) {
- switch( p->p_type ) {
- case PT_LOAD:
- {
- if( !(p->p_flags & PF_W) ) break;
- start = ((char *)(p->p_vaddr)) + offset;
- GC_add_roots_inner(start, start + p->p_memsz, TRUE);
- }
- break;
- default:
- break;
- }
- }
- }
-}
-
-#endif
-
-#if defined(IRIX5) || defined(USE_PROC_FOR_LIBRARIES)
-
-#include <sys/procfs.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <elf.h>
-#include <errno.h>
-
-extern void * GC_roots_present();
- /* The type is a lie, since the real type doesn't make sense here, */
- /* and we only test for NULL. */
-
-#ifndef GC_scratch_last_end_ptr
-extern ptr_t GC_scratch_last_end_ptr; /* End of GC_scratch_alloc arena */
-#endif
-
-/* We use /proc to track down all parts of the address space that are */
-/* mapped by the process, and throw out regions we know we shouldn't */
-/* worry about. This may also work under other SVR4 variants. */
-void GC_register_dynamic_libraries()
-{
- static int fd = -1;
- char buf[30];
- static prmap_t * addr_map = 0;
- static int current_sz = 0; /* Number of records currently in addr_map */
- static int needed_sz; /* Required size of addr_map */
- register int i;
- register long flags;
- register ptr_t start;
- register ptr_t limit;
- ptr_t heap_start = (ptr_t)HEAP_START;
- ptr_t heap_end = heap_start;
-
-# ifdef SUNOS5DL
-# define MA_PHYS 0
-# endif /* SUNOS5DL */
-
- if (fd < 0) {
- sprintf(buf, "/proc/%d", getpid());
- /* The above generates a lint complaint, since pid_t varies. */
- /* It's unclear how to improve this. */
- fd = open(buf, O_RDONLY);
- if (fd < 0) {
- ABORT("/proc open failed");
- }
- }
- if (ioctl(fd, PIOCNMAP, &needed_sz) < 0) {
- GC_err_printf2("fd = %d, errno = %d\n", fd, errno);
- ABORT("/proc PIOCNMAP ioctl failed");
- }
- if (needed_sz >= current_sz) {
- current_sz = needed_sz * 2 + 1;
- /* Expansion, plus room for 0 record */
- addr_map = (prmap_t *)GC_scratch_alloc((word)
- (current_sz * sizeof(prmap_t)));
- }
- if (ioctl(fd, PIOCMAP, addr_map) < 0) {
- GC_err_printf4("fd = %d, errno = %d, needed_sz = %d, addr_map = 0x%X\n",
- fd, errno, needed_sz, addr_map);
- ABORT("/proc PIOCMAP ioctl failed");
- };
- if (GC_n_heap_sects > 0) {
- heap_end = GC_heap_sects[GC_n_heap_sects-1].hs_start
- + GC_heap_sects[GC_n_heap_sects-1].hs_bytes;
- if (heap_end < GC_scratch_last_end_ptr) heap_end = GC_scratch_last_end_ptr;
- }
- for (i = 0; i < needed_sz; i++) {
- flags = addr_map[i].pr_mflags;
- if ((flags & (MA_BREAK | MA_STACK | MA_PHYS)) != 0) goto irrelevant;
- if ((flags & (MA_READ | MA_WRITE)) != (MA_READ | MA_WRITE))
- goto irrelevant;
- /* The latter test is empirically useless. Other than the */
- /* main data and stack segments, everything appears to be */
- /* mapped readable, writable, executable, and shared(!!). */
- /* This makes no sense to me. - HB */
- start = (ptr_t)(addr_map[i].pr_vaddr);
- if (GC_roots_present(start)) goto irrelevant;
- if (start < heap_end && start >= heap_start)
- goto irrelevant;
-# ifdef MMAP_STACKS
- if (GC_is_thread_stack(start)) goto irrelevant;
-# endif /* MMAP_STACKS */
-
- limit = start + addr_map[i].pr_size;
- if (addr_map[i].pr_off == 0 && strncmp(start, ELFMAG, 4) == 0) {
- /* Discard text segments, i.e. 0-offset mappings against */
- /* executable files which appear to have ELF headers. */
- caddr_t arg;
- int obj;
-# define MAP_IRR_SZ 10
- static ptr_t map_irr[MAP_IRR_SZ];
- /* Known irrelevant map entries */
- static int n_irr = 0;
- struct stat buf;
- register int i;
-
- for (i = 0; i < n_irr; i++) {
- if (map_irr[i] == start) goto irrelevant;
- }
- arg = (caddr_t)start;
- obj = ioctl(fd, PIOCOPENM, &arg);
- if (obj >= 0) {
- fstat(obj, &buf);
- close(obj);
- if ((buf.st_mode & 0111) != 0) {
- if (n_irr < MAP_IRR_SZ) {
- map_irr[n_irr++] = start;
- }
- goto irrelevant;
- }
- }
- }
- GC_add_roots_inner(start, limit, TRUE);
- irrelevant: ;
- }
- /* Dont keep cached descriptor, for now. Some kernels don't like us */
- /* to keep a /proc file descriptor around during kill -9. */
- if (close(fd) < 0) ABORT("Couldnt close /proc file");
- fd = -1;
-}
-
-# endif /* USE_PROC || IRIX5 */
-
-# ifdef MSWIN32
-
-# define WIN32_LEAN_AND_MEAN
-# define NOSERVICE
-# include <windows.h>
-# include <stdlib.h>
-
- /* We traverse the entire address space and register all segments */
- /* that could possibly have been written to. */
- DWORD GC_allocation_granularity;
-
- extern GC_bool GC_is_heap_base (ptr_t p);
-
-# ifdef WIN32_THREADS
- extern void GC_get_next_stack(char *start, char **lo, char **hi);
-# endif
-
- void GC_cond_add_roots(char *base, char * limit)
- {
- char dummy;
- char * stack_top
- = (char *) ((word)(&dummy) & ~(GC_allocation_granularity-1));
- if (base == limit) return;
-# ifdef WIN32_THREADS
- {
- char * curr_base = base;
- char * next_stack_lo;
- char * next_stack_hi;
-
- for(;;) {
- GC_get_next_stack(curr_base, &next_stack_lo, &next_stack_hi);
- if (next_stack_lo >= limit) break;
- GC_add_roots_inner(curr_base, next_stack_lo, TRUE);
- curr_base = next_stack_hi;
- }
- if (curr_base < limit) GC_add_roots_inner(curr_base, limit, TRUE);
- }
-# else
- if (limit > stack_top && base < GC_stackbottom) {
- /* Part of the stack; ignore it. */
- return;
- }
- GC_add_roots_inner(base, limit, TRUE);
-# endif
- }
-
- extern GC_bool GC_win32s;
-
- void GC_register_dynamic_libraries()
- {
- MEMORY_BASIC_INFORMATION buf;
- SYSTEM_INFO sysinfo;
- DWORD result;
- DWORD protect;
- LPVOID p;
- char * base;
- char * limit, * new_limit;
-
- if (GC_win32s) return;
- GetSystemInfo(&sysinfo);
- base = limit = p = sysinfo.lpMinimumApplicationAddress;
- GC_allocation_granularity = sysinfo.dwAllocationGranularity;
- while (p < sysinfo.lpMaximumApplicationAddress) {
- result = VirtualQuery(p, &buf, sizeof(buf));
- if (result != sizeof(buf)) {
- ABORT("Weird VirtualQuery result");
- }
- new_limit = (char *)p + buf.RegionSize;
- protect = buf.Protect;
- if (buf.State == MEM_COMMIT
- && (protect == PAGE_EXECUTE_READWRITE
- || protect == PAGE_READWRITE)
- && !GC_is_heap_base(buf.AllocationBase)) {
- if ((char *)p == limit) {
- limit = new_limit;
- } else {
- GC_cond_add_roots(base, limit);
- base = p;
- limit = new_limit;
- }
- }
- if (p > (LPVOID)new_limit /* overflow */) break;
- p = (LPVOID)new_limit;
- }
- GC_cond_add_roots(base, limit);
- }
-
-#endif /* MSWIN32 */
-
-#if defined(ALPHA) && defined(OSF1)
-
-#include <loader.h>
-
-void GC_register_dynamic_libraries()
-{
- int status;
- ldr_process_t mypid;
-
- /* module */
- ldr_module_t moduleid = LDR_NULL_MODULE;
- ldr_module_info_t moduleinfo;
- size_t moduleinfosize = sizeof(moduleinfo);
- size_t modulereturnsize;
-
- /* region */
- ldr_region_t region;
- ldr_region_info_t regioninfo;
- size_t regioninfosize = sizeof(regioninfo);
- size_t regionreturnsize;
-
- /* Obtain id of this process */
- mypid = ldr_my_process();
-
- /* For each module */
- while (TRUE) {
-
- /* Get the next (first) module */
- status = ldr_next_module(mypid, &moduleid);
-
- /* Any more modules? */
- if (moduleid == LDR_NULL_MODULE)
- break; /* No more modules */
-
- /* Check status AFTER checking moduleid because */
- /* of a bug in the non-shared ldr_next_module stub */
- if (status != 0 ) {
- GC_printf1("dynamic_load: status = %ld\n", (long)status);
- {
- extern char *sys_errlist[];
- extern int sys_nerr;
- extern int errno;
- if (errno <= sys_nerr) {
- GC_printf1("dynamic_load: %s\n", (long)sys_errlist[errno]);
- } else {
- GC_printf1("dynamic_load: %d\n", (long)errno);
- }
- }
- ABORT("ldr_next_module failed");
- }
-
- /* Get the module information */
- status = ldr_inq_module(mypid, moduleid, &moduleinfo,
- moduleinfosize, &modulereturnsize);
- if (status != 0 )
- ABORT("ldr_inq_module failed");
-
- /* is module for the main program (i.e. nonshared portion)? */
- if (moduleinfo.lmi_flags & LDR_MAIN)
- continue; /* skip the main module */
-
-# ifdef VERBOSE
- GC_printf("---Module---\n");
- GC_printf("Module ID = %16ld\n", moduleinfo.lmi_modid);
- GC_printf("Count of regions = %16d\n", moduleinfo.lmi_nregion);
- GC_printf("flags for module = %16lx\n", moduleinfo.lmi_flags);
- GC_printf("pathname of module = \"%s\"\n", moduleinfo.lmi_name);
-# endif
-
- /* For each region in this module */
- for (region = 0; region < moduleinfo.lmi_nregion; region++) {
-
- /* Get the region information */
- status = ldr_inq_region(mypid, moduleid, region, &regioninfo,
- regioninfosize, &regionreturnsize);
- if (status != 0 )
- ABORT("ldr_inq_region failed");
-
- /* only process writable (data) regions */
- if (! (regioninfo.lri_prot & LDR_W))
- continue;
-
-# ifdef VERBOSE
- GC_printf("--- Region ---\n");
- GC_printf("Region number = %16ld\n",
- regioninfo.lri_region_no);
- GC_printf("Protection flags = %016x\n", regioninfo.lri_prot);
- GC_printf("Virtual address = %16p\n", regioninfo.lri_vaddr);
- GC_printf("Mapped address = %16p\n", regioninfo.lri_mapaddr);
- GC_printf("Region size = %16ld\n", regioninfo.lri_size);
- GC_printf("Region name = \"%s\"\n", regioninfo.lri_name);
-# endif
-
- /* register region as a garbage collection root */
- GC_add_roots_inner (
- (char *)regioninfo.lri_mapaddr,
- (char *)regioninfo.lri_mapaddr + regioninfo.lri_size,
- TRUE);
-
- }
- }
-}
-#endif
-
-#if defined(HPUX)
-
-#include <errno.h>
-#include <dl.h>
-
-extern int errno;
-extern char *sys_errlist[];
-extern int sys_nerr;
-
-void GC_register_dynamic_libraries()
-{
- int status;
- int index = 1; /* Ordinal position in shared library search list */
- struct shl_descriptor *shl_desc; /* Shared library info, see dl.h */
-
- /* For each dynamic library loaded */
- while (TRUE) {
-
- /* Get info about next shared library */
- status = shl_get(index, &shl_desc);
-
- /* Check if this is the end of the list or if some error occured */
- if (status != 0) {
-# ifdef HPUX_THREADS
- /* I've seen errno values of 0. The man page is not clear */
- /* as to whether errno should get set on a -1 return. */
- break;
-# else
- if (errno == EINVAL) {
- break; /* Moved past end of shared library list --> finished */
- } else {
- if (errno <= sys_nerr) {
- GC_printf1("dynamic_load: %s\n", (long) sys_errlist[errno]);
- } else {
- GC_printf1("dynamic_load: %d\n", (long) errno);
- }
- ABORT("shl_get failed");
- }
-# endif
- }
-
-# ifdef VERBOSE
- GC_printf0("---Shared library---\n");
- GC_printf1("\tfilename = \"%s\"\n", shl_desc->filename);
- GC_printf1("\tindex = %d\n", index);
- GC_printf1("\thandle = %08x\n",
- (unsigned long) shl_desc->handle);
- GC_printf1("\ttext seg. start = %08x\n", shl_desc->tstart);
- GC_printf1("\ttext seg. end = %08x\n", shl_desc->tend);
- GC_printf1("\tdata seg. start = %08x\n", shl_desc->dstart);
- GC_printf1("\tdata seg. end = %08x\n", shl_desc->dend);
- GC_printf1("\tref. count = %lu\n", shl_desc->ref_count);
-# endif
-
- /* register shared library's data segment as a garbage collection root */
- GC_add_roots_inner((char *) shl_desc->dstart,
- (char *) shl_desc->dend, TRUE);
-
- index++;
- }
-}
-#endif /* HPUX */
-
-#ifdef RS6000
-#pragma alloca
-#include <sys/ldr.h>
-#include <sys/errno.h>
-void GC_register_dynamic_libraries()
-{
- int len;
- char *ldibuf;
- int ldibuflen;
- struct ld_info *ldi;
-
- ldibuf = alloca(ldibuflen = 8192);
-
- while ( (len = loadquery(L_GETINFO,ldibuf,ldibuflen)) < 0) {
- if (errno != ENOMEM) {
- ABORT("loadquery failed");
- }
- ldibuf = alloca(ldibuflen *= 2);
- }
-
- ldi = (struct ld_info *)ldibuf;
- while (ldi) {
- len = ldi->ldinfo_next;
- GC_add_roots_inner(
- ldi->ldinfo_dataorg,
- (unsigned long)ldi->ldinfo_dataorg
- + ldi->ldinfo_datasize,
- TRUE);
- ldi = len ? (struct ld_info *)((char *)ldi + len) : 0;
- }
-}
-#endif /* RS6000 */
-
-
-
-#else /* !DYNAMIC_LOADING */
-
-#ifdef PCR
-
-# include "il/PCR_IL.h"
-# include "th/PCR_ThCtl.h"
-# include "mm/PCR_MM.h"
-
-void GC_register_dynamic_libraries()
-{
- /* Add new static data areas of dynamically loaded modules. */
- {
- PCR_IL_LoadedFile * p = PCR_IL_GetLastLoadedFile();
- PCR_IL_LoadedSegment * q;
-
- /* Skip uncommited files */
- while (p != NIL && !(p -> lf_commitPoint)) {
- /* The loading of this file has not yet been committed */
- /* Hence its description could be inconsistent. */
- /* Furthermore, it hasn't yet been run. Hence its data */
- /* segments can't possibly reference heap allocated */
- /* objects. */
- p = p -> lf_prev;
- }
- for (; p != NIL; p = p -> lf_prev) {
- for (q = p -> lf_ls; q != NIL; q = q -> ls_next) {
- if ((q -> ls_flags & PCR_IL_SegFlags_Traced_MASK)
- == PCR_IL_SegFlags_Traced_on) {
- GC_add_roots_inner
- ((char *)(q -> ls_addr),
- (char *)(q -> ls_addr) + q -> ls_bytes,
- TRUE);
- }
- }
- }
- }
-}
-
-
-#else /* !PCR */
-
-void GC_register_dynamic_libraries(){}
-
-int GC_no_dynamic_loading;
-
-#endif /* !PCR */
-#endif /* !DYNAMIC_LOADING */
diff --git a/boehm-gc/finalize.c b/boehm-gc/finalize.c
deleted file mode 100644
index e70a9ff1e99..00000000000
--- a/boehm-gc/finalize.c
+++ /dev/null
@@ -1,766 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
-
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 1, 1996 1:19 pm PST */
-# define I_HIDE_POINTERS
-# include "gc_priv.h"
-# include "gc_mark.h"
-
-# ifdef FINALIZE_ON_DEMAND
- int GC_finalize_on_demand = 1;
-# else
- int GC_finalize_on_demand = 0;
-# endif
-
-# ifdef JAVA_FINALIZATION
- int GC_java_finalization = 1;
-# else
- int GC_java_finalization = 0;
-# endif
-
-/* Type of mark procedure used for marking from finalizable object. */
-/* This procedure normally does not mark the object, only its */
-/* descendents. */
-typedef void finalization_mark_proc(/* ptr_t finalizable_obj_ptr */);
-
-# define HASH3(addr,size,log_size) \
- ((((word)(addr) >> 3) ^ ((word)(addr) >> (3+(log_size)))) \
- & ((size) - 1))
-#define HASH2(addr,log_size) HASH3(addr, 1 << log_size, log_size)
-
-struct hash_chain_entry {
- word hidden_key;
- struct hash_chain_entry * next;
-};
-
-unsigned GC_finalization_failures = 0;
- /* Number of finalization requests that failed for lack of memory. */
-
-static struct disappearing_link {
- struct hash_chain_entry prolog;
-# define dl_hidden_link prolog.hidden_key
- /* Field to be cleared. */
-# define dl_next(x) (struct disappearing_link *)((x) -> prolog.next)
-# define dl_set_next(x,y) (x) -> prolog.next = (struct hash_chain_entry *)(y)
-
- word dl_hidden_obj; /* Pointer to object base */
-} **dl_head = 0;
-
-static signed_word log_dl_table_size = -1;
- /* Binary log of */
- /* current size of array pointed to by dl_head. */
- /* -1 ==> size is 0. */
-
-word GC_dl_entries = 0; /* Number of entries currently in disappearing */
- /* link table. */
-
-static struct finalizable_object {
- struct hash_chain_entry prolog;
-# define fo_hidden_base prolog.hidden_key
- /* Pointer to object base. */
- /* No longer hidden once object */
- /* is on finalize_now queue. */
-# define fo_next(x) (struct finalizable_object *)((x) -> prolog.next)
-# define fo_set_next(x,y) (x) -> prolog.next = (struct hash_chain_entry *)(y)
- GC_finalization_proc fo_fn; /* Finalizer. */
- ptr_t fo_client_data;
- word fo_object_size; /* In bytes. */
- finalization_mark_proc * fo_mark_proc; /* Mark-through procedure */
-} **fo_head = 0;
-
-struct finalizable_object * GC_finalize_now = 0;
- /* LIst of objects that should be finalized now. */
-
-static signed_word log_fo_table_size = -1;
-
-word GC_fo_entries = 0;
-
-# ifdef SRC_M3
-void GC_push_finalizer_structures()
-{
- GC_push_all((ptr_t)(&dl_head), (ptr_t)(&dl_head) + sizeof(word));
- GC_push_all((ptr_t)(&fo_head), (ptr_t)(&fo_head) + sizeof(word));
-}
-# endif
-
-/* Double the size of a hash table. *size_ptr is the log of its current */
-/* size. May be a noop. */
-/* *table is a pointer to an array of hash headers. If we succeed, we */
-/* update both *table and *log_size_ptr. */
-/* Lock is held. Signals are disabled. */
-void GC_grow_table(table, log_size_ptr)
-struct hash_chain_entry ***table;
-signed_word * log_size_ptr;
-{
- register word i;
- register struct hash_chain_entry *p;
- int log_old_size = *log_size_ptr;
- register int log_new_size = log_old_size + 1;
- word old_size = ((log_old_size == -1)? 0: (1 << log_old_size));
- register word new_size = 1 << log_new_size;
- struct hash_chain_entry **new_table = (struct hash_chain_entry **)
- GC_generic_malloc_inner_ignore_off_page(
- (size_t)new_size * sizeof(struct hash_chain_entry *), NORMAL);
-
- if (new_table == 0) {
- if (table == 0) {
- ABORT("Insufficient space for initial table allocation");
- } else {
- return;
- }
- }
- for (i = 0; i < old_size; i++) {
- p = (*table)[i];
- while (p != 0) {
- register ptr_t real_key = (ptr_t)REVEAL_POINTER(p -> hidden_key);
- register struct hash_chain_entry *next = p -> next;
- register int new_hash = HASH3(real_key, new_size, log_new_size);
-
- p -> next = new_table[new_hash];
- new_table[new_hash] = p;
- p = next;
- }
- }
- *log_size_ptr = log_new_size;
- *table = new_table;
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- int GC_register_disappearing_link(GC_PTR * link)
-# else
- int GC_register_disappearing_link(link)
- GC_PTR * link;
-# endif
-{
- ptr_t base;
-
- base = (ptr_t)GC_base((GC_PTR)link);
- if (base == 0)
- ABORT("Bad arg to GC_register_disappearing_link");
- return(GC_general_register_disappearing_link(link, base));
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- int GC_general_register_disappearing_link(GC_PTR * link,
- GC_PTR obj)
-# else
- int GC_general_register_disappearing_link(link, obj)
- GC_PTR * link;
- GC_PTR obj;
-# endif
-
-{
- struct disappearing_link *curr_dl;
- int index;
- struct disappearing_link * new_dl;
- DCL_LOCK_STATE;
-
- if ((word)link & (ALIGNMENT-1))
- ABORT("Bad arg to GC_general_register_disappearing_link");
-# ifdef THREADS
- DISABLE_SIGNALS();
- LOCK();
-# endif
- if (log_dl_table_size == -1
- || GC_dl_entries > ((word)1 << log_dl_table_size)) {
-# ifndef THREADS
- DISABLE_SIGNALS();
-# endif
- GC_grow_table((struct hash_chain_entry ***)(&dl_head),
- &log_dl_table_size);
-# ifdef PRINTSTATS
- GC_printf1("Grew dl table to %lu entries\n",
- (unsigned long)(1 << log_dl_table_size));
-# endif
-# ifndef THREADS
- ENABLE_SIGNALS();
-# endif
- }
- index = HASH2(link, log_dl_table_size);
- curr_dl = dl_head[index];
- for (curr_dl = dl_head[index]; curr_dl != 0; curr_dl = dl_next(curr_dl)) {
- if (curr_dl -> dl_hidden_link == HIDE_POINTER(link)) {
- curr_dl -> dl_hidden_obj = HIDE_POINTER(obj);
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- return(1);
- }
- }
-# ifdef THREADS
- new_dl = (struct disappearing_link *)
- GC_generic_malloc_inner(sizeof(struct disappearing_link),NORMAL);
-# else
- new_dl = (struct disappearing_link *)
- GC_malloc(sizeof(struct disappearing_link));
-# endif
- if (new_dl != 0) {
- new_dl -> dl_hidden_obj = HIDE_POINTER(obj);
- new_dl -> dl_hidden_link = HIDE_POINTER(link);
- dl_set_next(new_dl, dl_head[index]);
- dl_head[index] = new_dl;
- GC_dl_entries++;
- } else {
- GC_finalization_failures++;
- }
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- return(0);
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- int GC_unregister_disappearing_link(GC_PTR * link)
-# else
- int GC_unregister_disappearing_link(link)
- GC_PTR * link;
-# endif
-{
- struct disappearing_link *curr_dl, *prev_dl;
- int index;
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- index = HASH2(link, log_dl_table_size);
- if (((unsigned long)link & (ALIGNMENT-1))) goto out;
- prev_dl = 0; curr_dl = dl_head[index];
- while (curr_dl != 0) {
- if (curr_dl -> dl_hidden_link == HIDE_POINTER(link)) {
- if (prev_dl == 0) {
- dl_head[index] = dl_next(curr_dl);
- } else {
- dl_set_next(prev_dl, dl_next(curr_dl));
- }
- GC_dl_entries--;
- UNLOCK();
- ENABLE_SIGNALS();
- GC_free((GC_PTR)curr_dl);
- return(1);
- }
- prev_dl = curr_dl;
- curr_dl = dl_next(curr_dl);
- }
-out:
- UNLOCK();
- ENABLE_SIGNALS();
- return(0);
-}
-
-/* Possible finalization_marker procedures. Note that mark stack */
-/* overflow is handled by the caller, and is not a disaster. */
-GC_API void GC_normal_finalize_mark_proc(p)
-ptr_t p;
-{
- hdr * hhdr = HDR(p);
-
- PUSH_OBJ((word *)p, hhdr, GC_mark_stack_top,
- &(GC_mark_stack[GC_mark_stack_size]));
-}
-
-/* This only pays very partial attention to the mark descriptor. */
-/* It does the right thing for normal and atomic objects, and treats */
-/* most others as normal. */
-GC_API void GC_ignore_self_finalize_mark_proc(p)
-ptr_t p;
-{
- hdr * hhdr = HDR(p);
- word descr = hhdr -> hb_descr;
- ptr_t q, r;
- ptr_t scan_limit;
- ptr_t target_limit = p + WORDS_TO_BYTES(hhdr -> hb_sz) - 1;
-
- if ((descr & DS_TAGS) == DS_LENGTH) {
- scan_limit = p + descr - sizeof(word);
- } else {
- scan_limit = target_limit + 1 - sizeof(word);
- }
- for (q = p; q <= scan_limit; q += ALIGNMENT) {
- r = *(ptr_t *)q;
- if (r < p || r > target_limit) {
- GC_PUSH_ONE_HEAP((word)r, q);
- }
- }
-}
-
-/*ARGSUSED*/
-GC_API void GC_null_finalize_mark_proc(p)
-ptr_t p;
-{
-}
-
-
-
-/* Register a finalization function. See gc.h for details. */
-/* in the nonthreads case, we try to avoid disabling signals, */
-/* since it can be expensive. Threads packages typically */
-/* make it cheaper. */
-/* The last parameter is a procedure that determines */
-/* marking for finalization ordering. Any objects marked */
-/* by that procedure will be guaranteed to not have been */
-/* finalized when this finalizer is invoked. */
-GC_API void GC_register_finalizer_inner(obj, fn, cd, ofn, ocd, mp)
-GC_PTR obj;
-GC_finalization_proc fn;
-GC_PTR cd;
-GC_finalization_proc * ofn;
-GC_PTR * ocd;
-finalization_mark_proc * mp;
-{
- ptr_t base;
- struct finalizable_object * curr_fo, * prev_fo;
- int index;
- struct finalizable_object *new_fo;
- DCL_LOCK_STATE;
-
-# ifdef THREADS
- DISABLE_SIGNALS();
- LOCK();
-# endif
- if (log_fo_table_size == -1
- || GC_fo_entries > ((word)1 << log_fo_table_size)) {
-# ifndef THREADS
- DISABLE_SIGNALS();
-# endif
- GC_grow_table((struct hash_chain_entry ***)(&fo_head),
- &log_fo_table_size);
-# ifdef PRINTSTATS
- GC_printf1("Grew fo table to %lu entries\n",
- (unsigned long)(1 << log_fo_table_size));
-# endif
-# ifndef THREADS
- ENABLE_SIGNALS();
-# endif
- }
- /* in the THREADS case signals are disabled and we hold allocation */
- /* lock; otherwise neither is true. Proceed carefully. */
- base = (ptr_t)obj;
- index = HASH2(base, log_fo_table_size);
- prev_fo = 0; curr_fo = fo_head[index];
- while (curr_fo != 0) {
- if (curr_fo -> fo_hidden_base == HIDE_POINTER(base)) {
- /* Interruption by a signal in the middle of this */
- /* should be safe. The client may see only *ocd */
- /* updated, but we'll declare that to be his */
- /* problem. */
- if (ocd) *ocd = (GC_PTR) curr_fo -> fo_client_data;
- if (ofn) *ofn = curr_fo -> fo_fn;
- /* Delete the structure for base. */
- if (prev_fo == 0) {
- fo_head[index] = fo_next(curr_fo);
- } else {
- fo_set_next(prev_fo, fo_next(curr_fo));
- }
- if (fn == 0) {
- GC_fo_entries--;
- /* May not happen if we get a signal. But a high */
- /* estimate will only make the table larger than */
- /* necessary. */
-# ifndef THREADS
- GC_free((GC_PTR)curr_fo);
-# endif
- } else {
- curr_fo -> fo_fn = fn;
- curr_fo -> fo_client_data = (ptr_t)cd;
- curr_fo -> fo_mark_proc = mp;
- /* Reinsert it. We deleted it first to maintain */
- /* consistency in the event of a signal. */
- if (prev_fo == 0) {
- fo_head[index] = curr_fo;
- } else {
- fo_set_next(prev_fo, curr_fo);
- }
- }
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- return;
- }
- prev_fo = curr_fo;
- curr_fo = fo_next(curr_fo);
- }
- if (ofn) *ofn = 0;
- if (ocd) *ocd = 0;
- if (fn == 0) {
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- return;
- }
-# ifdef THREADS
- new_fo = (struct finalizable_object *)
- GC_generic_malloc_inner(sizeof(struct finalizable_object),NORMAL);
-# else
- new_fo = (struct finalizable_object *)
- GC_malloc(sizeof(struct finalizable_object));
-# endif
- if (new_fo != 0) {
- new_fo -> fo_hidden_base = (word)HIDE_POINTER(base);
- new_fo -> fo_fn = fn;
- new_fo -> fo_client_data = (ptr_t)cd;
- new_fo -> fo_object_size = GC_size(base);
- new_fo -> fo_mark_proc = mp;
- fo_set_next(new_fo, fo_head[index]);
- GC_fo_entries++;
- fo_head[index] = new_fo;
- } else {
- GC_finalization_failures++;
- }
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
-}
-
-# if defined(__STDC__)
- void GC_register_finalizer(void * obj,
- GC_finalization_proc fn, void * cd,
- GC_finalization_proc *ofn, void ** ocd)
-# else
- void GC_register_finalizer(obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc * ofn;
- GC_PTR * ocd;
-# endif
-{
- GC_register_finalizer_inner(obj, fn, cd, ofn,
- ocd, GC_normal_finalize_mark_proc);
-}
-
-# if defined(__STDC__)
- void GC_register_finalizer_ignore_self(void * obj,
- GC_finalization_proc fn, void * cd,
- GC_finalization_proc *ofn, void ** ocd)
-# else
- void GC_register_finalizer_ignore_self(obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc * ofn;
- GC_PTR * ocd;
-# endif
-{
- GC_register_finalizer_inner(obj, fn, cd, ofn,
- ocd, GC_ignore_self_finalize_mark_proc);
-}
-
-# if defined(__STDC__)
- void GC_register_finalizer_no_order(void * obj,
- GC_finalization_proc fn, void * cd,
- GC_finalization_proc *ofn, void ** ocd)
-# else
- void GC_register_finalizer_no_order(obj, fn, cd, ofn, ocd)
- GC_PTR obj;
- GC_finalization_proc fn;
- GC_PTR cd;
- GC_finalization_proc * ofn;
- GC_PTR * ocd;
-# endif
-{
- GC_register_finalizer_inner(obj, fn, cd, ofn,
- ocd, GC_null_finalize_mark_proc);
-}
-
-/* Called with world stopped. Cause disappearing links to disappear, */
-/* and invoke finalizers. */
-void GC_finalize()
-{
- struct disappearing_link * curr_dl, * prev_dl, * next_dl;
- struct finalizable_object * curr_fo, * prev_fo, * next_fo;
- ptr_t real_ptr, real_link;
- register int i;
- int dl_size = (log_dl_table_size == -1 ) ? 0 : (1 << log_dl_table_size);
- int fo_size = (log_fo_table_size == -1 ) ? 0 : (1 << log_fo_table_size);
-
- /* Make disappearing links disappear */
- for (i = 0; i < dl_size; i++) {
- curr_dl = dl_head[i];
- prev_dl = 0;
- while (curr_dl != 0) {
- real_ptr = (ptr_t)REVEAL_POINTER(curr_dl -> dl_hidden_obj);
- real_link = (ptr_t)REVEAL_POINTER(curr_dl -> dl_hidden_link);
- if (!GC_is_marked(real_ptr)) {
- *(word *)real_link = 0;
- next_dl = dl_next(curr_dl);
- if (prev_dl == 0) {
- dl_head[i] = next_dl;
- } else {
- dl_set_next(prev_dl, next_dl);
- }
- GC_clear_mark_bit((ptr_t)curr_dl);
- GC_dl_entries--;
- curr_dl = next_dl;
- } else {
- prev_dl = curr_dl;
- curr_dl = dl_next(curr_dl);
- }
- }
- }
- /* Mark all objects reachable via chains of 1 or more pointers */
- /* from finalizable objects. */
-# ifdef PRINTSTATS
- if (GC_mark_state != MS_NONE) ABORT("Bad mark state");
-# endif
- for (i = 0; i < fo_size; i++) {
- for (curr_fo = fo_head[i]; curr_fo != 0; curr_fo = fo_next(curr_fo)) {
- real_ptr = (ptr_t)REVEAL_POINTER(curr_fo -> fo_hidden_base);
- if (!GC_is_marked(real_ptr)) {
- GC_MARKED_FOR_FINALIZATION(real_ptr);
- GC_MARK_FO(real_ptr, curr_fo -> fo_mark_proc);
- if (GC_is_marked(real_ptr)) {
- WARN("Finalization cycle involving %lx\n", real_ptr);
- }
- }
- }
- }
- /* Enqueue for finalization all objects that are still */
- /* unreachable. */
- GC_words_finalized = 0;
- for (i = 0; i < fo_size; i++) {
- curr_fo = fo_head[i];
- prev_fo = 0;
- while (curr_fo != 0) {
- real_ptr = (ptr_t)REVEAL_POINTER(curr_fo -> fo_hidden_base);
- if (!GC_is_marked(real_ptr)) {
- if (!GC_java_finalization) {
- GC_set_mark_bit(real_ptr);
- }
- /* Delete from hash table */
- next_fo = fo_next(curr_fo);
- if (prev_fo == 0) {
- fo_head[i] = next_fo;
- } else {
- fo_set_next(prev_fo, next_fo);
- }
- GC_fo_entries--;
- /* Add to list of objects awaiting finalization. */
- fo_set_next(curr_fo, GC_finalize_now);
- GC_finalize_now = curr_fo;
- /* unhide object pointer so any future collections will */
- /* see it. */
- curr_fo -> fo_hidden_base =
- (word) REVEAL_POINTER(curr_fo -> fo_hidden_base);
- GC_words_finalized +=
- ALIGNED_WORDS(curr_fo -> fo_object_size)
- + ALIGNED_WORDS(sizeof(struct finalizable_object));
-# ifdef PRINTSTATS
- if (!GC_is_marked((ptr_t)curr_fo)) {
- ABORT("GC_finalize: found accessible unmarked object\n");
- }
-# endif
- curr_fo = next_fo;
- } else {
- prev_fo = curr_fo;
- curr_fo = fo_next(curr_fo);
- }
- }
- }
-
- if (GC_java_finalization) {
- /* make sure we mark everything reachable from objects finalized
- using the no_order mark_proc */
- for (curr_fo = GC_finalize_now;
- curr_fo != NULL; curr_fo = fo_next(curr_fo)) {
- real_ptr = (ptr_t)curr_fo -> fo_hidden_base;
- if (!GC_is_marked(real_ptr)) {
- if (curr_fo -> fo_mark_proc == GC_null_finalize_mark_proc) {
- GC_MARK_FO(real_ptr, GC_normal_finalize_mark_proc);
- }
- GC_set_mark_bit(real_ptr);
- }
- }
- }
-
- /* Remove dangling disappearing links. */
- for (i = 0; i < dl_size; i++) {
- curr_dl = dl_head[i];
- prev_dl = 0;
- while (curr_dl != 0) {
- real_link = GC_base((ptr_t)REVEAL_POINTER(curr_dl -> dl_hidden_link));
- if (real_link != 0 && !GC_is_marked(real_link)) {
- next_dl = dl_next(curr_dl);
- if (prev_dl == 0) {
- dl_head[i] = next_dl;
- } else {
- dl_set_next(prev_dl, next_dl);
- }
- GC_clear_mark_bit((ptr_t)curr_dl);
- GC_dl_entries--;
- curr_dl = next_dl;
- } else {
- prev_dl = curr_dl;
- curr_dl = dl_next(curr_dl);
- }
- }
- }
-}
-
-#ifndef JAVA_FINALIZATION_NOT_NEEDED
-
-/* Enqueue all remaining finalizers to be run - Assumes lock is
- * held, and signals are disabled */
-void GC_enqueue_all_finalizers()
-{
- struct finalizable_object * curr_fo, * prev_fo, * next_fo;
- ptr_t real_ptr;
- register int i;
- int fo_size;
-
- fo_size = (log_fo_table_size == -1 ) ? 0 : (1 << log_fo_table_size);
- GC_words_finalized = 0;
- for (i = 0; i < fo_size; i++) {
- curr_fo = fo_head[i];
- prev_fo = 0;
- while (curr_fo != 0) {
- real_ptr = (ptr_t)REVEAL_POINTER(curr_fo -> fo_hidden_base);
- GC_MARK_FO(real_ptr, GC_normal_finalize_mark_proc);
- GC_set_mark_bit(real_ptr);
-
- /* Delete from hash table */
- next_fo = fo_next(curr_fo);
- if (prev_fo == 0) {
- fo_head[i] = next_fo;
- } else {
- fo_set_next(prev_fo, next_fo);
- }
- GC_fo_entries--;
-
- /* Add to list of objects awaiting finalization. */
- fo_set_next(curr_fo, GC_finalize_now);
- GC_finalize_now = curr_fo;
-
- /* unhide object pointer so any future collections will */
- /* see it. */
- curr_fo -> fo_hidden_base =
- (word) REVEAL_POINTER(curr_fo -> fo_hidden_base);
-
- GC_words_finalized +=
- ALIGNED_WORDS(curr_fo -> fo_object_size)
- + ALIGNED_WORDS(sizeof(struct finalizable_object));
- curr_fo = next_fo;
- }
- }
-
- return;
-}
-
-/* Invoke all remaining finalizers that haven't yet been run.
- * This is needed for strict compliance with the Java standard,
- * which can make the runtime guarantee that all finalizers are run.
- * Unfortunately, the Java standard implies we have to keep running
- * finalizers until there are no more left, a potential infinite loop.
- * YUCK.
- * Note that this is even more dangerous than the usual Java
- * finalizers, in that objects reachable from static variables
- * may have been finalized when these finalizers are run.
- * Finalizers run at this point must be prepared to deal with a
- * mostly broken world.
- * This routine is externally callable, so is called without
- * the allocation lock.
- */
-GC_API void GC_finalize_all()
-{
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- while (GC_fo_entries > 0) {
- GC_enqueue_all_finalizers();
- UNLOCK();
- ENABLE_SIGNALS();
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- }
- UNLOCK();
- ENABLE_SIGNALS();
-}
-#endif
-
-/* Returns true if it is worth calling GC_invoke_finalizers. (Useful if */
-/* finalizers can only be called from some kind of `safe state' and */
-/* getting into that safe state is expensive.) */
-int GC_should_invoke_finalizers GC_PROTO((void))
-{
- return GC_finalize_now != 0;
-}
-
-/* Invoke finalizers for all objects that are ready to be finalized. */
-/* Should be called without allocation lock. */
-int GC_invoke_finalizers()
-{
- register struct finalizable_object * curr_fo;
- register int count = 0;
- DCL_LOCK_STATE;
-
- while (GC_finalize_now != 0) {
-# ifdef THREADS
- DISABLE_SIGNALS();
- LOCK();
-# endif
- curr_fo = GC_finalize_now;
-# ifdef THREADS
- if (curr_fo != 0) GC_finalize_now = fo_next(curr_fo);
- UNLOCK();
- ENABLE_SIGNALS();
- if (curr_fo == 0) break;
-# else
- GC_finalize_now = fo_next(curr_fo);
-# endif
- fo_set_next(curr_fo, 0);
- (*(curr_fo -> fo_fn))((ptr_t)(curr_fo -> fo_hidden_base),
- curr_fo -> fo_client_data);
- curr_fo -> fo_client_data = 0;
- ++count;
-# ifdef UNDEFINED
- /* This is probably a bad idea. It throws off accounting if */
- /* nearly all objects are finalizable. O.w. it shouldn't */
- /* matter. */
- GC_free((GC_PTR)curr_fo);
-# endif
- }
- return count;
-}
-
-# ifdef __STDC__
- GC_PTR GC_call_with_alloc_lock(GC_fn_type fn,
- GC_PTR client_data)
-# else
- GC_PTR GC_call_with_alloc_lock(fn, client_data)
- GC_fn_type fn;
- GC_PTR client_data;
-# endif
-{
- GC_PTR result;
- DCL_LOCK_STATE;
-
-# ifdef THREADS
- DISABLE_SIGNALS();
- LOCK();
- SET_LOCK_HOLDER();
-# endif
- result = (*fn)(client_data);
-# ifdef THREADS
- UNSET_LOCK_HOLDER();
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- return(result);
-}
diff --git a/boehm-gc/gc.h b/boehm-gc/gc.h
deleted file mode 100644
index d7cd8996085..00000000000
--- a/boehm-gc/gc.h
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * Note that this defines a large number of tuning hooks, which can
- * safely be ignored in nearly all cases. For normal use it suffices
- * to call only GC_MALLOC and perhaps GC_REALLOC.
- * For better performance, also look at GC_MALLOC_ATOMIC, and
- * GC_enable_incremental. If you need an action to be performed
- * immediately before an object is collected, look at GC_register_finalizer.
- * If you are using Solaris threads, look at the end of this file.
- * Everything else is best ignored unless you encounter performance
- * problems.
- */
-
-#ifndef _GC_H
-
-# define _GC_H
-# define __GC
-# include <stddef.h>
-
-#if defined(__CYGWIN32__) && defined(GC_USE_DLL)
-#include "libgc_globals.h"
-#endif
-
-#if defined(__MINGW32__) && defined(WIN32_THREADS)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(_MSC_VER) && defined(_DLL)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(__WATCOMC__) && defined(GC_DLL)
-# ifdef GC_BUILD
-# define GC_API extern __declspec(dllexport)
-# else
-# define GC_API extern __declspec(dllimport)
-# endif
-#endif
-
-#ifndef GC_API
-#define GC_API extern
-#endif
-
-# if defined(__STDC__) || defined(__cplusplus)
-# define GC_PROTO(args) args
- typedef void * GC_PTR;
-# define GC_CONST const
-# else
-# define GC_PROTO(args) ()
- typedef char * GC_PTR;
-# define GC_CONST
-# endif
-
-# ifdef __cplusplus
- extern "C" {
-# endif
-
-
-/* Define word and signed_word to be unsigned and signed types of the */
-/* size as char * or void *. There seems to be no way to do this */
-/* even semi-portably. The following is probably no better/worse */
-/* than almost anything else. */
-/* The ANSI standard suggests that size_t and ptr_diff_t might be */
-/* better choices. But those appear to have incorrect definitions */
-/* on may systems. Notably "typedef int size_t" seems to be both */
-/* frequent and WRONG. */
-typedef unsigned long GC_word;
-typedef long GC_signed_word;
-
-/* Public read-only variables */
-
-GC_API GC_word GC_gc_no;/* Counter incremented per collection. */
- /* Includes empty GCs at startup. */
-
-
-/* Public R/W variables */
-
-GC_API GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requested));
- /* When there is insufficient memory to satisfy */
- /* an allocation request, we return */
- /* (*GC_oom_fn)(). By default this just */
- /* returns 0. */
- /* If it returns, it must return 0 or a valid */
- /* pointer to a previously allocated heap */
- /* object. */
-
-GC_API int GC_find_leak;
- /* Do not actually garbage collect, but simply */
- /* report inaccessible memory that was not */
- /* deallocated with GC_free. Initial value */
- /* is determined by FIND_LEAK macro. */
-
-GC_API int GC_quiet; /* Disable statistics output. Only matters if */
- /* collector has been compiled with statistics */
- /* enabled. This involves a performance cost, */
- /* and is thus not the default. */
-
-GC_API int GC_finalize_on_demand;
- /* If nonzero, finalizers will only be run in */
- /* response to an eplit GC_invoke_finalizers */
- /* call. The default is determined by whether */
- /* the FINALIZE_ON_DEMAND macro is defined */
- /* when the collector is built. */
-
-GC_API int GC_java_finalization;
- /* Mark objects reachable from finalizable */
- /* objects in a separate postpass. This makes */
- /* it a bit safer to use non-topologically- */
- /* ordered finalization. Default value is */
- /* determined by JAVA_FINALIZATION macro. */
-
-GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
- /* because it's not safe. */
-
-GC_API int GC_dont_expand;
- /* Dont expand heap unless explicitly requested */
- /* or forced to. */
-
-GC_API int GC_use_entire_heap;
- /* Causes the nonincremental collector to use the */
- /* entire heap before collecting. This was the only */
- /* option for GC versions < 5.0. This sometimes */
- /* results in more large block fragmentation, since */
- /* very larg blocks will tend to get broken up */
- /* during each GC cycle. It is likely to result in a */
- /* larger working set, but lower collection */
- /* frequencies, and hence fewer instructions executed */
- /* in the collector. */
-
-GC_API int GC_full_freq; /* Number of partial collections between */
- /* full collections. Matters only if */
- /* GC_incremental is set. */
- /* Full collections are also triggered if */
- /* the collector detects a substantial */
- /* increase in the number of in-use heap */
- /* blocks. Values in the tens are now */
- /* perfectly reasonable, unlike for */
- /* earlier GC versions. */
-
-GC_API GC_word GC_non_gc_bytes;
- /* Bytes not considered candidates for collection. */
- /* Used only to control scheduling of collections. */
-
-GC_API GC_word GC_free_space_divisor;
- /* We try to make sure that we allocate at */
- /* least N/GC_free_space_divisor bytes between */
- /* collections, where N is the heap size plus */
- /* a rough estimate of the root set size. */
- /* Initially, GC_free_space_divisor = 4. */
- /* Increasing its value will use less space */
- /* but more collection time. Decreasing it */
- /* will appreciably decrease collection time */
- /* at the expense of space. */
- /* GC_free_space_divisor = 1 will effectively */
- /* disable collections. */
-
-GC_API GC_word GC_max_retries;
- /* The maximum number of GCs attempted before */
- /* reporting out of memory after heap */
- /* expansion fails. Initially 0. */
-
-
-GC_API char *GC_stackbottom; /* Cool end of user stack. */
- /* May be set in the client prior to */
- /* calling any GC_ routines. This */
- /* avoids some overhead, and */
- /* potentially some signals that can */
- /* confuse debuggers. Otherwise the */
- /* collector attempts to set it */
- /* automatically. */
- /* For multithreaded code, this is the */
- /* cold end of the stack for the */
- /* primordial thread. */
-
-/* Public procedures */
-/*
- * general purpose allocation routines, with roughly malloc calling conv.
- * The atomic versions promise that no relevant pointers are contained
- * in the object. The nonatomic versions guarantee that the new object
- * is cleared. GC_malloc_stubborn promises that no changes to the object
- * will occur after GC_end_stubborn_change has been called on the
- * result of GC_malloc_stubborn. GC_malloc_uncollectable allocates an object
- * that is scanned for pointers to collectable objects, but is not itself
- * collectable. GC_malloc_uncollectable and GC_free called on the resulting
- * object implicitly update GC_non_gc_bytes appropriately.
- */
-GC_API GC_PTR GC_malloc GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_atomic GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_uncollectable GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_stubborn GC_PROTO((size_t size_in_bytes));
-
-/* The following is only defined if the library has been suitably */
-/* compiled: */
-GC_API GC_PTR GC_malloc_atomic_uncollectable GC_PROTO((size_t size_in_bytes));
-
-/* Explicitly deallocate an object. Dangerous if used incorrectly. */
-/* Requires a pointer to the base of an object. */
-/* If the argument is stubborn, it should not be changeable when freed. */
-/* An object should not be enable for finalization when it is */
-/* explicitly deallocated. */
-/* GC_free(0) is a no-op, as required by ANSI C for free. */
-GC_API void GC_free GC_PROTO((GC_PTR object_addr));
-
-/*
- * Stubborn objects may be changed only if the collector is explicitly informed.
- * The collector is implicitly informed of coming change when such
- * an object is first allocated. The following routines inform the
- * collector that an object will no longer be changed, or that it will
- * once again be changed. Only nonNIL pointer stores into the object
- * are considered to be changes. The argument to GC_end_stubborn_change
- * must be exacly the value returned by GC_malloc_stubborn or passed to
- * GC_change_stubborn. (In the second case it may be an interior pointer
- * within 512 bytes of the beginning of the objects.)
- * There is a performance penalty for allowing more than
- * one stubborn object to be changed at once, but it is acceptable to
- * do so. The same applies to dropping stubborn objects that are still
- * changeable.
- */
-GC_API void GC_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_end_stubborn_change GC_PROTO((GC_PTR));
-
-/* Return a pointer to the base (lowest address) of an object given */
-/* a pointer to a location within the object. */
-/* Return 0 if displaced_pointer doesn't point to within a valid */
-/* object. */
-GC_API GC_PTR GC_base GC_PROTO((GC_PTR displaced_pointer));
-
-/* Given a pointer to the base of an object, return its size in bytes. */
-/* The returned size may be slightly larger than what was originally */
-/* requested. */
-GC_API size_t GC_size GC_PROTO((GC_PTR object_addr));
-
-/* For compatibility with C library. This is occasionally faster than */
-/* a malloc followed by a bcopy. But if you rely on that, either here */
-/* or with the standard C library, your code is broken. In my */
-/* opinion, it shouldn't have been invented, but now we're stuck. -HB */
-/* The resulting object has the same kind as the original. */
-/* If the argument is stubborn, the result will have changes enabled. */
-/* It is an error to have changes enabled for the original object. */
-/* Follows ANSI comventions for NULL old_object. */
-GC_API GC_PTR GC_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes));
-
-/* Explicitly increase the heap size. */
-/* Returns 0 on failure, 1 on success. */
-GC_API int GC_expand_hp GC_PROTO((size_t number_of_bytes));
-
-/* Limit the heap size to n bytes. Useful when you're debugging, */
-/* especially on systems that don't handle running out of memory well. */
-/* n == 0 ==> unbounded. This is the default. */
-GC_API void GC_set_max_heap_size GC_PROTO((GC_word n));
-
-/* Inform the collector that a certain section of statically allocated */
-/* memory contains no pointers to garbage collected memory. Thus it */
-/* need not be scanned. This is sometimes important if the application */
-/* maps large read/write files into the address space, which could be */
-/* mistaken for dynamic library data segments on some systems. */
-GC_API void GC_exclude_static_roots GC_PROTO((GC_PTR start, GC_PTR finish));
-
-/* Clear the set of root segments. Wizards only. */
-GC_API void GC_clear_roots GC_PROTO((void));
-
-/* Add a root segment. Wizards only. */
-GC_API void GC_add_roots GC_PROTO((char * low_address,
- char * high_address_plus_1));
-
-/* Add a displacement to the set of those considered valid by the */
-/* collector. GC_register_displacement(n) means that if p was returned */
-/* by GC_malloc, then (char *)p + n will be considered to be a valid */
-/* pointer to n. N must be small and less than the size of p. */
-/* (All pointers to the interior of objects from the stack are */
-/* considered valid in any case. This applies to heap objects and */
-/* static data.) */
-/* Preferably, this should be called before any other GC procedures. */
-/* Calling it later adds to the probability of excess memory */
-/* retention. */
-/* This is a no-op if the collector was compiled with recognition of */
-/* arbitrary interior pointers enabled, which is now the default. */
-GC_API void GC_register_displacement GC_PROTO((GC_word n));
-
-/* The following version should be used if any debugging allocation is */
-/* being done. */
-GC_API void GC_debug_register_displacement GC_PROTO((GC_word n));
-
-/* Explicitly trigger a full, world-stop collection. */
-GC_API void GC_gcollect GC_PROTO((void));
-
-/* Trigger a full world-stopped collection. Abort the collection if */
-/* and when stop_func returns a nonzero value. Stop_func will be */
-/* called frequently, and should be reasonably fast. This works even */
-/* if virtual dirty bits, and hence incremental collection is not */
-/* available for this architecture. Collections can be aborted faster */
-/* than normal pause times for incremental collection. However, */
-/* aborted collections do no useful work; the next collection needs */
-/* to start from the beginning. */
-/* Return 0 if the collection was aborted, 1 if it succeeded. */
-typedef int (* GC_stop_func) GC_PROTO((void));
-GC_API int GC_try_to_collect GC_PROTO((GC_stop_func stop_func));
-
-/* Return the number of bytes in the heap. Excludes collector private */
-/* data structures. Includes empty blocks and fragmentation loss. */
-/* Includes some pages that were allocated but never written. */
-GC_API size_t GC_get_heap_size GC_PROTO((void));
-
-/* Return a lower bound on the number of free bytes in the heap. */
-GC_API size_t GC_get_free_bytes GC_PROTO((void));
-
-/* Return the number of bytes allocated since the last collection. */
-GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
-
-/* Enable incremental/generational collection. */
-/* Not advisable unless dirty bits are */
-/* available or most heap objects are */
-/* pointerfree(atomic) or immutable. */
-/* Don't use in leak finding mode. */
-/* Ignored if GC_dont_gc is true. */
-GC_API void GC_enable_incremental GC_PROTO((void));
-
-/* Perform some garbage collection work, if appropriate. */
-/* Return 0 if there is no more work to be done. */
-/* Typically performs an amount of work corresponding roughly */
-/* to marking from one page. May do more work if further */
-/* progress requires it, e.g. if incremental collection is */
-/* disabled. It is reasonable to call this in a wait loop */
-/* until it returns 0. */
-GC_API int GC_collect_a_little GC_PROTO((void));
-
-/* Allocate an object of size lb bytes. The client guarantees that */
-/* as long as the object is live, it will be referenced by a pointer */
-/* that points to somewhere within the first 256 bytes of the object. */
-/* (This should normally be declared volatile to prevent the compiler */
-/* from invalidating this assertion.) This routine is only useful */
-/* if a large array is being allocated. It reduces the chance of */
-/* accidentally retaining such an array as a result of scanning an */
-/* integer that happens to be an address inside the array. (Actually, */
-/* it reduces the chance of the allocator not finding space for such */
-/* an array, since it will try hard to avoid introducing such a false */
-/* reference.) On a SunOS 4.X or MS Windows system this is recommended */
-/* for arrays likely to be larger than 100K or so. For other systems, */
-/* or if the collector is not configured to recognize all interior */
-/* pointers, the threshold is normally much higher. */
-GC_API GC_PTR GC_malloc_ignore_off_page GC_PROTO((size_t lb));
-GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
-
-#if defined(__sgi) && !defined(__GNUC__) && _COMPILER_VERSION >= 720
-# define GC_ADD_CALLER
-# define GC_RETURN_ADDR (GC_word)__return_address
-#endif
-
-#ifdef GC_ADD_CALLER
-# define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
-#else
-# define GC_EXTRAS __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_CONST char * s, int i
-#endif
-
-/* Debugging (annotated) allocation. GC_gcollect will check */
-/* objects allocated in this way for overwrites, etc. */
-GC_API GC_PTR GC_debug_malloc
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_atomic
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_uncollectable
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_stubborn
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
-GC_API GC_PTR GC_debug_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
- GC_EXTRA_PARAMS));
-
-GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
-# ifdef GC_DEBUG
-# define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
-# define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
- GC_EXTRAS)
-# define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
-# define GC_FREE(p) GC_debug_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_debug_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_debug_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_debug_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);
-# define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, GC_base(obj))
-# define GC_REGISTER_DISPLACEMENT(n) GC_debug_register_displacement(n)
-# else
-# define GC_MALLOC(sz) GC_malloc(sz)
-# define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
-# define GC_REALLOC(old, sz) GC_realloc(old, sz)
-# define GC_FREE(p) GC_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)
-# define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, obj)
-# define GC_REGISTER_DISPLACEMENT(n) GC_register_displacement(n)
-# endif
-/* The following are included because they are often convenient, and */
-/* reduce the chance for a misspecifed size argument. But calls may */
-/* expand to something syntactically incorrect if t is a complicated */
-/* type expression. */
-# define GC_NEW(t) (t *)GC_MALLOC(sizeof (t))
-# define GC_NEW_ATOMIC(t) (t *)GC_MALLOC_ATOMIC(sizeof (t))
-# define GC_NEW_STUBBORN(t) (t *)GC_MALLOC_STUBBORN(sizeof (t))
-# define GC_NEW_UNCOLLECTABLE(t) (t *)GC_MALLOC_UNCOLLECTABLE(sizeof (t))
-
-/* Finalization. Some of these primitives are grossly unsafe. */
-/* The idea is to make them both cheap, and sufficient to build */
-/* a safer layer, closer to PCedar finalization. */
-/* The interface represents my conclusions from a long discussion */
-/* with Alan Demers, Dan Greene, Carl Hauser, Barry Hayes, */
-/* Christian Jacobi, and Russ Atkinson. It's not perfect, and */
-/* probably nobody else agrees with it. Hans-J. Boehm 3/13/92 */
-typedef void (*GC_finalization_proc)
- GC_PROTO((GC_PTR obj, GC_PTR client_data));
-
-GC_API void GC_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
- /* When obj is no longer accessible, invoke */
- /* (*fn)(obj, cd). If a and b are inaccessible, and */
- /* a points to b (after disappearing links have been */
- /* made to disappear), then only a will be */
- /* finalized. (If this does not create any new */
- /* pointers to b, then b will be finalized after the */
- /* next collection.) Any finalizable object that */
- /* is reachable from itself by following one or more */
- /* pointers will not be finalized (or collected). */
- /* Thus cycles involving finalizable objects should */
- /* be avoided, or broken by disappearing links. */
- /* All but the last finalizer registered for an object */
- /* is ignored. */
- /* Finalization may be removed by passing 0 as fn. */
- /* Finalizers are implicitly unregistered just before */
- /* they are invoked. */
- /* The old finalizer and client data are stored in */
- /* *ofn and *ocd. */
- /* Fn is never invoked on an accessible object, */
- /* provided hidden pointers are converted to real */
- /* pointers only if the allocation lock is held, and */
- /* such conversions are not performed by finalization */
- /* routines. */
- /* If GC_register_finalizer is aborted as a result of */
- /* a signal, the object may be left with no */
- /* finalization, even if neither the old nor new */
- /* finalizer were NULL. */
- /* Obj should be the nonNULL starting address of an */
- /* object allocated by GC_malloc or friends. */
- /* Note that any garbage collectable object referenced */
- /* by cd will be considered accessible until the */
- /* finalizer is invoked. */
-
-/* Another versions of the above follow. It ignores */
-/* self-cycles, i.e. pointers from a finalizable object to */
-/* itself. There is a stylistic argument that this is wrong, */
-/* but it's unavoidable for C++, since the compiler may */
-/* silently introduce these. It's also benign in that specific */
-/* case. */
-GC_API void GC_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-/* Another version of the above. It ignores all cycles. */
-/* It should probably only be used by Java implementations. */
-GC_API void GC_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-
-/* The following routine may be used to break cycles between */
-/* finalizable objects, thus causing cyclic finalizable */
-/* objects to be finalized in the correct order. Standard */
-/* use involves calling GC_register_disappearing_link(&p), */
-/* where p is a pointer that is not followed by finalization */
-/* code, and should not be considered in determining */
-/* finalization order. */
-GC_API int GC_register_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Link should point to a field of a heap allocated */
- /* object obj. *link will be cleared when obj is */
- /* found to be inaccessible. This happens BEFORE any */
- /* finalization code is invoked, and BEFORE any */
- /* decisions about finalization order are made. */
- /* This is useful in telling the finalizer that */
- /* some pointers are not essential for proper */
- /* finalization. This may avoid finalization cycles. */
- /* Note that obj may be resurrected by another */
- /* finalizer, and thus the clearing of *link may */
- /* be visible to non-finalization code. */
- /* There's an argument that an arbitrary action should */
- /* be allowed here, instead of just clearing a pointer. */
- /* But this causes problems if that action alters, or */
- /* examines connectivity. */
- /* Returns 1 if link was already registered, 0 */
- /* otherwise. */
- /* Only exists for backward compatibility. See below: */
-
-GC_API int GC_general_register_disappearing_link
- GC_PROTO((GC_PTR * /* link */, GC_PTR obj));
- /* A slight generalization of the above. *link is */
- /* cleared when obj first becomes inaccessible. This */
- /* can be used to implement weak pointers easily and */
- /* safely. Typically link will point to a location */
- /* holding a disguised pointer to obj. (A pointer */
- /* inside an "atomic" object is effectively */
- /* disguised.) In this way soft */
- /* pointers are broken before any object */
- /* reachable from them are finalized. Each link */
- /* May be registered only once, i.e. with one obj */
- /* value. This was added after a long email discussion */
- /* with John Ellis. */
- /* Obj must be a pointer to the first word of an object */
- /* we allocated. It is unsafe to explicitly deallocate */
- /* the object containing link. Explicitly deallocating */
- /* obj may or may not cause link to eventually be */
- /* cleared. */
-GC_API int GC_unregister_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Returns 0 if link was not actually registered. */
- /* Undoes a registration by either of the above two */
- /* routines. */
-
-/* Auxiliary fns to make finalization work correctly with displaced */
-/* pointers introduced by the debugging allocators. */
-GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
-GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
-
-/* Returns !=0 if GC_invoke_finalizers has something to do. */
-GC_API int GC_should_invoke_finalizers GC_PROTO((void));
-
-GC_API int GC_invoke_finalizers GC_PROTO((void));
- /* Run finalizers for all objects that are ready to */
- /* be finalized. Return the number of finalizers */
- /* that were run. Normally this is also called */
- /* implicitly during some allocations. If */
- /* GC-finalize_on_demand is nonzero, it must be called */
- /* explicitly. */
-
-/* GC_set_warn_proc can be used to redirect or filter warning messages. */
-/* p may not be a NULL pointer. */
-typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
-GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
- /* Returns old warning procedure. */
-
-/* The following is intended to be used by a higher level */
-/* (e.g. cedar-like) finalization facility. It is expected */
-/* that finalization code will arrange for hidden pointers to */
-/* disappear. Otherwise objects can be accessed after they */
-/* have been collected. */
-/* Note that putting pointers in atomic objects or in */
-/* nonpointer slots of "typed" objects is equivalent to */
-/* disguising them in this way, and may have other advantages. */
-# if defined(I_HIDE_POINTERS) || defined(GC_I_HIDE_POINTERS)
- typedef GC_word GC_hidden_pointer;
-# define HIDE_POINTER(p) (~(GC_hidden_pointer)(p))
-# define REVEAL_POINTER(p) ((GC_PTR)(HIDE_POINTER(p)))
- /* Converting a hidden pointer to a real pointer requires verifying */
- /* that the object still exists. This involves acquiring the */
- /* allocator lock to avoid a race with the collector. */
-# endif /* I_HIDE_POINTERS */
-
-typedef GC_PTR (*GC_fn_type) GC_PROTO((GC_PTR client_data));
-GC_API GC_PTR GC_call_with_alloc_lock
- GC_PROTO((GC_fn_type fn, GC_PTR client_data));
-
-/* Check that p and q point to the same object. */
-/* Fail conspicuously if they don't. */
-/* Returns the first argument. */
-/* Succeeds if neither p nor q points to the heap. */
-/* May succeed if both p and q point to between heap objects. */
-GC_API GC_PTR GC_same_obj GC_PROTO((GC_PTR p, GC_PTR q));
-
-/* Checked pointer pre- and post- increment operations. Note that */
-/* the second argument is in units of bytes, not multiples of the */
-/* object size. This should either be invoked from a macro, or the */
-/* call should be automatically generated. */
-GC_API GC_PTR GC_pre_incr GC_PROTO((GC_PTR *p, size_t how_much));
-GC_API GC_PTR GC_post_incr GC_PROTO((GC_PTR *p, size_t how_much));
-
-/* Check that p is visible */
-/* to the collector as a possibly pointer containing location. */
-/* If it isn't fail conspicuously. */
-/* Returns the argument in all cases. May erroneously succeed */
-/* in hard cases. (This is intended for debugging use with */
-/* untyped allocations. The idea is that it should be possible, though */
-/* slow, to add such a call to all indirect pointer stores.) */
-/* Currently useless for multithreaded worlds. */
-GC_API GC_PTR GC_is_visible GC_PROTO((GC_PTR p));
-
-/* Check that if p is a pointer to a heap page, then it points to */
-/* a valid displacement within a heap object. */
-/* Fail conspicuously if this property does not hold. */
-/* Uninteresting with ALL_INTERIOR_POINTERS. */
-/* Always returns its argument. */
-GC_API GC_PTR GC_is_valid_displacement GC_PROTO((GC_PTR p));
-
-/* Safer, but slow, pointer addition. Probably useful mainly with */
-/* a preprocessor. Useful only for heap pointers. */
-#ifdef GC_DEBUG
-# define GC_PTR_ADD3(x, n, type_of_result) \
- ((type_of_result)GC_same_obj((x)+(n), (x)))
-# define GC_PRE_INCR3(x, n, type_of_result) \
- ((type_of_result)GC_pre_incr(&(x), (n)*sizeof(*x))
-# define GC_POST_INCR2(x, type_of_result) \
- ((type_of_result)GC_post_incr(&(x), sizeof(*x))
-# ifdef __GNUC__
-# define GC_PTR_ADD(x, n) \
- GC_PTR_ADD3(x, n, typeof(x))
-# define GC_PRE_INCR(x, n) \
- GC_PRE_INCR3(x, n, typeof(x))
-# define GC_POST_INCR(x, n) \
- GC_POST_INCR3(x, typeof(x))
-# else
- /* We can't do this right without typeof, which ANSI */
- /* decided was not sufficiently useful. Repeatedly */
- /* mentioning the arguments seems too dangerous to be */
- /* useful. So does not casting the result. */
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_ADD3(x, n, type_of_result) ((x)+(n))
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# define GC_PRE_INCR3(x, n, type_of_result) ((x) += (n))
-# define GC_PRE_INCR(x, n) ((x) += (n))
-# define GC_POST_INCR2(x, n, type_of_result) ((x)++)
-# define GC_POST_INCR(x, n) ((x)++)
-#endif
-
-/* Safer assignment of a pointer to a nonstack location. */
-#ifdef GC_DEBUG
-# ifdef __STDC__
-# define GC_PTR_STORE(p, q) \
- (*(void **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# else
-# define GC_PTR_STORE(p, q) \
- (*(char **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_STORE(p, q) *((p) = (q))
-#endif
-
-/* Fynctions called to report pointer checking errors */
-GC_API void (*GC_same_obj_print_proc) GC_PROTO((GC_PTR p, GC_PTR q));
-
-GC_API void (*GC_is_valid_displacement_print_proc)
- GC_PROTO((GC_PTR p));
-
-GC_API void (*GC_is_visible_print_proc)
- GC_PROTO((GC_PTR p));
-
-#if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS)
-# define SOLARIS_THREADS
-#endif
-
-#ifdef SOLARIS_THREADS
-/* We need to intercept calls to many of the threads primitives, so */
-/* that we can locate thread stacks and stop the world. */
-/* Note also that the collector cannot see thread specific data. */
-/* Thread specific data should generally consist of pointers to */
-/* uncollectable objects, which are deallocated using the destructor */
-/* facility in thr_keycreate. */
-# include <thread.h>
-# include <signal.h>
- int GC_thr_create(void *stack_base, size_t stack_size,
- void *(*start_routine)(void *), void *arg, long flags,
- thread_t *new_thread);
- int GC_thr_join(thread_t wait_for, thread_t *departed, void **status);
- int GC_thr_suspend(thread_t target_thread);
- int GC_thr_continue(thread_t target_thread);
- void * GC_dlopen(const char *path, int mode);
-
-# ifdef _SOLARIS_PTHREADS
-# include <pthread.h>
- extern int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void * (*thread_execp)(void *), void *arg);
- extern int GC_pthread_join(pthread_t wait_for, void **status);
-
-# undef thread_t
-
-# define pthread_join GC_pthread_join
-# define pthread_create GC_pthread_create
-#endif
-
-# define thr_create GC_thr_create
-# define thr_join GC_thr_join
-# define thr_suspend GC_thr_suspend
-# define thr_continue GC_thr_continue
-# define dlopen GC_dlopen
-
-# endif /* SOLARIS_THREADS */
-
-
-#if !defined(USE_LD_WRAP) && \
- (defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS))
-/* We treat these similarly. */
-# include <pthread.h>
-# include <signal.h>
-
- int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void *), void *arg);
- int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
- int GC_pthread_join(pthread_t thread, void **retval);
-
-# define pthread_create GC_pthread_create
-# define pthread_sigmask GC_pthread_sigmask
-# define pthread_join GC_pthread_join
-# define dlopen GC_dlopen
-
-#endif /* xxxxx_THREADS */
-
-# if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
- defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
- defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- /* Any flavor of threads except SRC_M3. */
-/* This returns a list of objects, linked through their first */
-/* word. Its use can greatly reduce lock contention problems, since */
-/* the allocation lock can be acquired and released many fewer times. */
-/* lb must be large enough to hold the pointer field. */
-GC_PTR GC_malloc_many(size_t lb);
-#define GC_NEXT(p) (*(GC_PTR *)(p)) /* Retrieve the next element */
- /* in returned list. */
-extern void GC_thr_init(); /* Needed for Solaris/X86 */
-
-#endif /* THREADS && !SRC_M3 */
-
-/*
- * If you are planning on putting
- * the collector in a SunOS 5 dynamic library, you need to call GC_INIT()
- * from the statically loaded program section.
- * This circumvents a Solaris 2.X (X<=4) linker bug.
- */
-#if defined(sparc) || defined(__sparc)
-# define GC_INIT() { extern end, etext; \
- GC_noop(&end, &etext); }
-#else
-# if defined(__CYGWIN32__) && defined(GC_USE_DLL)
- /*
- * Similarly gnu-win32 DLLs need explicit initialization
- */
-# define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
-# else
-# define GC_INIT()
-# endif
-#endif
-
-#if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \
- || defined(_WIN32)
- /* win32S may not free all resources on process exit. */
- /* This explicitly deallocates the heap. */
- GC_API void GC_win32_free_heap ();
-#endif
-
-#ifdef __cplusplus
- } /* end of extern "C" */
-#endif
-
-#endif /* _GC_H */
diff --git a/boehm-gc/gc.mak b/boehm-gc/gc.mak
deleted file mode 100644
index 0fd22b70d60..00000000000
--- a/boehm-gc/gc.mak
+++ /dev/null
@@ -1,2087 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=gctest - Win32 Release
-!MESSAGE No configuration specified. Defaulting to cord - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "gc - Win32 Release" && "$(CFG)" != "gc - Win32 Debug" &&\
- "$(CFG)" != "gctest - Win32 Release" && "$(CFG)" != "gctest - Win32 Debug" &&\
- "$(CFG)" != "cord - Win32 Release" && "$(CFG)" != "cord - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gc.mak" CFG="cord - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gctest - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "gctest - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE "cord - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "cord - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "gctest - Win32 Debug"
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : ".\Release\gc.dll" ".\Release\gc.bsc"
-
-CLEAN :
- -@erase ".\Release\allchblk.obj"
- -@erase ".\Release\allchblk.sbr"
- -@erase ".\Release\alloc.obj"
- -@erase ".\Release\alloc.sbr"
- -@erase ".\Release\blacklst.obj"
- -@erase ".\Release\blacklst.sbr"
- -@erase ".\Release\checksums.obj"
- -@erase ".\Release\checksums.sbr"
- -@erase ".\Release\dbg_mlc.obj"
- -@erase ".\Release\dbg_mlc.sbr"
- -@erase ".\Release\dyn_load.obj"
- -@erase ".\Release\dyn_load.sbr"
- -@erase ".\Release\finalize.obj"
- -@erase ".\Release\finalize.sbr"
- -@erase ".\Release\gc.bsc"
- -@erase ".\Release\gc.dll"
- -@erase ".\Release\gc.exp"
- -@erase ".\Release\gc.lib"
- -@erase ".\Release\headers.obj"
- -@erase ".\Release\headers.sbr"
- -@erase ".\Release\mach_dep.obj"
- -@erase ".\Release\mach_dep.sbr"
- -@erase ".\Release\malloc.obj"
- -@erase ".\Release\malloc.sbr"
- -@erase ".\Release\mallocx.obj"
- -@erase ".\Release\mallocx.sbr"
- -@erase ".\Release\mark.obj"
- -@erase ".\Release\mark.sbr"
- -@erase ".\Release\mark_rts.obj"
- -@erase ".\Release\mark_rts.sbr"
- -@erase ".\Release\misc.obj"
- -@erase ".\Release\misc.sbr"
- -@erase ".\Release\new_hblk.obj"
- -@erase ".\Release\new_hblk.sbr"
- -@erase ".\Release\obj_map.obj"
- -@erase ".\Release\obj_map.sbr"
- -@erase ".\Release\os_dep.obj"
- -@erase ".\Release\os_dep.sbr"
- -@erase ".\Release\ptr_chck.obj"
- -@erase ".\Release\ptr_chck.sbr"
- -@erase ".\Release\reclaim.obj"
- -@erase ".\Release\reclaim.sbr"
- -@erase ".\Release\stubborn.obj"
- -@erase ".\Release\stubborn.sbr"
- -@erase ".\Release\typd_mlc.obj"
- -@erase ".\Release\typd_mlc.sbr"
- -@erase ".\Release\win32_threads.obj"
- -@erase ".\Release\win32_threads.sbr"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "SILENT" /D "GC_BUILD" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "SILENT" /D "GC_BUILD" /D\
- "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D\
- "WIN32_THREADS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/gc.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\Release/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gc.bsc"
-BSC32_SBRS= \
- ".\Release\allchblk.sbr" \
- ".\Release\alloc.sbr" \
- ".\Release\blacklst.sbr" \
- ".\Release\checksums.sbr" \
- ".\Release\dbg_mlc.sbr" \
- ".\Release\dyn_load.sbr" \
- ".\Release\finalize.sbr" \
- ".\Release\headers.sbr" \
- ".\Release\mach_dep.sbr" \
- ".\Release\malloc.sbr" \
- ".\Release\mallocx.sbr" \
- ".\Release\mark.sbr" \
- ".\Release\mark_rts.sbr" \
- ".\Release\misc.sbr" \
- ".\Release\new_hblk.sbr" \
- ".\Release\obj_map.sbr" \
- ".\Release\os_dep.sbr" \
- ".\Release\ptr_chck.sbr" \
- ".\Release\reclaim.sbr" \
- ".\Release\stubborn.sbr" \
- ".\Release\typd_mlc.sbr" \
- ".\Release\win32_threads.sbr"
-
-".\Release\gc.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/gc.pdb" /machine:I386 /out:"$(OUTDIR)/gc.dll"\
- /implib:"$(OUTDIR)/gc.lib"
-LINK32_OBJS= \
- ".\Release\allchblk.obj" \
- ".\Release\alloc.obj" \
- ".\Release\blacklst.obj" \
- ".\Release\checksums.obj" \
- ".\Release\dbg_mlc.obj" \
- ".\Release\dyn_load.obj" \
- ".\Release\finalize.obj" \
- ".\Release\headers.obj" \
- ".\Release\mach_dep.obj" \
- ".\Release\malloc.obj" \
- ".\Release\mallocx.obj" \
- ".\Release\mark.obj" \
- ".\Release\mark_rts.obj" \
- ".\Release\misc.obj" \
- ".\Release\new_hblk.obj" \
- ".\Release\obj_map.obj" \
- ".\Release\os_dep.obj" \
- ".\Release\ptr_chck.obj" \
- ".\Release\reclaim.obj" \
- ".\Release\stubborn.obj" \
- ".\Release\typd_mlc.obj" \
- ".\Release\win32_threads.obj"
-
-".\Release\gc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\gc.dll" ".\Debug\gc.bsc"
-
-CLEAN :
- -@erase ".\Debug\allchblk.obj"
- -@erase ".\Debug\allchblk.sbr"
- -@erase ".\Debug\alloc.obj"
- -@erase ".\Debug\alloc.sbr"
- -@erase ".\Debug\blacklst.obj"
- -@erase ".\Debug\blacklst.sbr"
- -@erase ".\Debug\checksums.obj"
- -@erase ".\Debug\checksums.sbr"
- -@erase ".\Debug\dbg_mlc.obj"
- -@erase ".\Debug\dbg_mlc.sbr"
- -@erase ".\Debug\dyn_load.obj"
- -@erase ".\Debug\dyn_load.sbr"
- -@erase ".\Debug\finalize.obj"
- -@erase ".\Debug\finalize.sbr"
- -@erase ".\Debug\gc.bsc"
- -@erase ".\Debug\gc.dll"
- -@erase ".\Debug\gc.exp"
- -@erase ".\Debug\gc.lib"
- -@erase ".\Debug\gc.map"
- -@erase ".\Debug\gc.pdb"
- -@erase ".\Debug\headers.obj"
- -@erase ".\Debug\headers.sbr"
- -@erase ".\Debug\mach_dep.obj"
- -@erase ".\Debug\mach_dep.sbr"
- -@erase ".\Debug\malloc.obj"
- -@erase ".\Debug\malloc.sbr"
- -@erase ".\Debug\mallocx.obj"
- -@erase ".\Debug\mallocx.sbr"
- -@erase ".\Debug\mark.obj"
- -@erase ".\Debug\mark.sbr"
- -@erase ".\Debug\mark_rts.obj"
- -@erase ".\Debug\mark_rts.sbr"
- -@erase ".\Debug\misc.obj"
- -@erase ".\Debug\misc.sbr"
- -@erase ".\Debug\new_hblk.obj"
- -@erase ".\Debug\new_hblk.sbr"
- -@erase ".\Debug\obj_map.obj"
- -@erase ".\Debug\obj_map.sbr"
- -@erase ".\Debug\os_dep.obj"
- -@erase ".\Debug\os_dep.sbr"
- -@erase ".\Debug\ptr_chck.obj"
- -@erase ".\Debug\ptr_chck.sbr"
- -@erase ".\Debug\reclaim.obj"
- -@erase ".\Debug\reclaim.sbr"
- -@erase ".\Debug\stubborn.obj"
- -@erase ".\Debug\stubborn.sbr"
- -@erase ".\Debug\typd_mlc.obj"
- -@erase ".\Debug\typd_mlc.sbr"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
- -@erase ".\Debug\win32_threads.obj"
- -@erase ".\Debug\win32_threads.sbr"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "SILENT" /D "GC_BUILD" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "SILENT" /D "GC_BUILD"\
- /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D\
- "WIN32_THREADS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/gc.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\Debug/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gc.bsc"
-BSC32_SBRS= \
- ".\Debug\allchblk.sbr" \
- ".\Debug\alloc.sbr" \
- ".\Debug\blacklst.sbr" \
- ".\Debug\checksums.sbr" \
- ".\Debug\dbg_mlc.sbr" \
- ".\Debug\dyn_load.sbr" \
- ".\Debug\finalize.sbr" \
- ".\Debug\headers.sbr" \
- ".\Debug\mach_dep.sbr" \
- ".\Debug\malloc.sbr" \
- ".\Debug\mallocx.sbr" \
- ".\Debug\mark.sbr" \
- ".\Debug\mark_rts.sbr" \
- ".\Debug\misc.sbr" \
- ".\Debug\new_hblk.sbr" \
- ".\Debug\obj_map.sbr" \
- ".\Debug\os_dep.sbr" \
- ".\Debug\ptr_chck.sbr" \
- ".\Debug\reclaim.sbr" \
- ".\Debug\stubborn.sbr" \
- ".\Debug\typd_mlc.sbr" \
- ".\Debug\win32_threads.sbr"
-
-".\Debug\gc.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/gc.pdb" /map:"$(INTDIR)/gc.map" /debug /machine:I386\
- /out:"$(OUTDIR)/gc.dll" /implib:"$(OUTDIR)/gc.lib"
-LINK32_OBJS= \
- ".\Debug\allchblk.obj" \
- ".\Debug\alloc.obj" \
- ".\Debug\blacklst.obj" \
- ".\Debug\checksums.obj" \
- ".\Debug\dbg_mlc.obj" \
- ".\Debug\dyn_load.obj" \
- ".\Debug\finalize.obj" \
- ".\Debug\headers.obj" \
- ".\Debug\mach_dep.obj" \
- ".\Debug\malloc.obj" \
- ".\Debug\mallocx.obj" \
- ".\Debug\mark.obj" \
- ".\Debug\mark_rts.obj" \
- ".\Debug\misc.obj" \
- ".\Debug\new_hblk.obj" \
- ".\Debug\obj_map.obj" \
- ".\Debug\os_dep.obj" \
- ".\Debug\ptr_chck.obj" \
- ".\Debug\reclaim.obj" \
- ".\Debug\stubborn.obj" \
- ".\Debug\typd_mlc.obj" \
- ".\Debug\win32_threads.obj"
-
-".\Debug\gc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gctest\Release"
-# PROP BASE Intermediate_Dir "gctest\Release"
-# PROP BASE Target_Dir "gctest"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "gctest\Release"
-# PROP Intermediate_Dir "gctest\Release"
-# PROP Target_Dir "gctest"
-OUTDIR=.\gctest\Release
-INTDIR=.\gctest\Release
-
-ALL : "gc - Win32 Release" ".\Release\gctest.exe"
-
-CLEAN :
- -@erase ".\gctest\Release\test.obj"
- -@erase ".\Release\gctest.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
- "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS"\
- /Fp"$(INTDIR)/gctest.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\gctest\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gctest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/gctest.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no\
- /pdb:"$(OUTDIR)/gctest.pdb" /machine:I386 /out:"Release/gctest.exe"
-LINK32_OBJS= \
- ".\gctest\Release\test.obj" \
- ".\Release\gc.lib"
-
-".\Release\gctest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gctest\Debug"
-# PROP BASE Intermediate_Dir "gctest\Debug"
-# PROP BASE Target_Dir "gctest"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "gctest\Debug"
-# PROP Intermediate_Dir "gctest\Debug"
-# PROP Target_Dir "gctest"
-OUTDIR=.\gctest\Debug
-INTDIR=.\gctest\Debug
-
-ALL : "gc - Win32 Debug" ".\Debug\gctest.exe" ".\gctest\Debug\gctest.bsc"
-
-CLEAN :
- -@erase ".\Debug\gctest.exe"
- -@erase ".\gctest\Debug\gctest.bsc"
- -@erase ".\gctest\Debug\gctest.map"
- -@erase ".\gctest\Debug\gctest.pdb"
- -@erase ".\gctest\Debug\test.obj"
- -@erase ".\gctest\Debug\test.sbr"
- -@erase ".\gctest\Debug\vc40.idb"
- -@erase ".\gctest\Debug\vc40.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS"\
- /D "ALL_INTERIOR_POINTERS" /D "__STDC__" /D "WIN32_THREADS" /FR"$(INTDIR)/"\
- /Fp"$(INTDIR)/gctest.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\gctest\Debug/
-CPP_SBRS=.\gctest\Debug/
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gctest.bsc"
-BSC32_SBRS= \
- ".\gctest\Debug\test.sbr"
-
-".\gctest\Debug\gctest.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /map /debug /machine:I386 /out:"Debug/gctest.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no\
- /pdb:"$(OUTDIR)/gctest.pdb" /map:"$(INTDIR)/gctest.map" /debug /machine:I386\
- /out:"Debug/gctest.exe"
-LINK32_OBJS= \
- ".\Debug\gc.lib" \
- ".\gctest\Debug\test.obj"
-
-".\Debug\gctest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "cord - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "cord\Release"
-# PROP BASE Intermediate_Dir "cord\Release"
-# PROP BASE Target_Dir "cord"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "cord\Release"
-# PROP Intermediate_Dir "cord\Release"
-# PROP Target_Dir "cord"
-OUTDIR=.\cord\Release
-INTDIR=.\cord\Release
-
-ALL : "gc - Win32 Release" ".\Release\de.exe"
-
-CLEAN :
- -@erase ".\cord\Release\cordbscs.obj"
- -@erase ".\cord\Release\cordxtra.obj"
- -@erase ".\cord\Release\de.obj"
- -@erase ".\cord\Release\de_win.obj"
- -@erase ".\cord\Release\de_win.res"
- -@erase ".\Release\de.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
- "ALL_INTERIOR_POINTERS" /Fp"$(INTDIR)/cord.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\cord\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-RSC_PROJ=/l 0x809 /fo"$(INTDIR)/de_win.res" /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/cord.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/de.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)/de.pdb"\
- /machine:I386 /out:"Release/de.exe"
-LINK32_OBJS= \
- ".\cord\Release\cordbscs.obj" \
- ".\cord\Release\cordxtra.obj" \
- ".\cord\Release\de.obj" \
- ".\cord\Release\de_win.obj" \
- ".\cord\Release\de_win.res" \
- ".\Release\gc.lib"
-
-".\Release\de.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "cord\Debug"
-# PROP BASE Intermediate_Dir "cord\Debug"
-# PROP BASE Target_Dir "cord"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "cord\Debug"
-# PROP Intermediate_Dir "cord\Debug"
-# PROP Target_Dir "cord"
-OUTDIR=.\cord\Debug
-INTDIR=.\cord\Debug
-
-ALL : "gc - Win32 Debug" ".\Debug\de.exe"
-
-CLEAN :
- -@erase ".\cord\Debug\cordbscs.obj"
- -@erase ".\cord\Debug\cordxtra.obj"
- -@erase ".\cord\Debug\de.obj"
- -@erase ".\cord\Debug\de.pdb"
- -@erase ".\cord\Debug\de_win.obj"
- -@erase ".\cord\Debug\de_win.res"
- -@erase ".\cord\Debug\vc40.idb"
- -@erase ".\cord\Debug\vc40.pdb"
- -@erase ".\Debug\de.exe"
- -@erase ".\Debug\de.ilk"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /D "_DEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "ALL_INTERIOR_POINTERS" /Fp"$(INTDIR)/cord.pch" /YX\
- /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\cord\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-RSC_PROJ=/l 0x809 /fo"$(INTDIR)/de_win.res" /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/cord.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Debug/de.exe"
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /incremental:yes\
- /pdb:"$(OUTDIR)/de.pdb" /debug /machine:I386 /out:"Debug/de.exe"
-LINK32_OBJS= \
- ".\cord\Debug\cordbscs.obj" \
- ".\cord\Debug\cordxtra.obj" \
- ".\cord\Debug\de.obj" \
- ".\cord\Debug\de_win.obj" \
- ".\cord\Debug\de_win.res" \
- ".\Debug\gc.lib"
-
-".\Debug\de.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "gc - Win32 Release"
-# Name "gc - Win32 Debug"
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\reclaim.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_RECLA=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_RECLA=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\reclaim.obj" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-".\Release\reclaim.sbr" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_RECLA=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_RECLA=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\reclaim.obj" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-".\Debug\reclaim.sbr" : $(SOURCE) $(DEP_CPP_RECLA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\os_dep.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_OS_DE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OS_DE=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
- ".\vd\PCR_VD.h"\
-
-
-".\Release\os_dep.obj" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-".\Release\os_dep.sbr" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_OS_DE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OS_DE=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
- ".\vd\PCR_VD.h"\
-
-
-".\Debug\os_dep.obj" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-".\Debug\os_dep.sbr" : $(SOURCE) $(DEP_CPP_OS_DE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\misc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MISC_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MISC_=\
- ".\il\PCR_IL.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\misc.obj" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-".\Release\misc.sbr" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MISC_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MISC_=\
- ".\il\PCR_IL.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\misc.obj" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-".\Debug\misc.sbr" : $(SOURCE) $(DEP_CPP_MISC_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mark_rts.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MARK_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mark_rts.obj" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-".\Release\mark_rts.sbr" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MARK_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mark_rts.obj" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-".\Debug\mark_rts.sbr" : $(SOURCE) $(DEP_CPP_MARK_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mach_dep.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MACH_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MACH_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mach_dep.obj" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-".\Release\mach_dep.sbr" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MACH_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MACH_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mach_dep.obj" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-".\Debug\mach_dep.sbr" : $(SOURCE) $(DEP_CPP_MACH_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\headers.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_HEADE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_HEADE=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\headers.obj" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-".\Release\headers.sbr" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_HEADE=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_HEADE=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\headers.obj" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-".\Debug\headers.sbr" : $(SOURCE) $(DEP_CPP_HEADE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\alloc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_ALLOC=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLOC=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\alloc.obj" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-".\Release\alloc.sbr" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_ALLOC=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLOC=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\alloc.obj" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-".\Debug\alloc.sbr" : $(SOURCE) $(DEP_CPP_ALLOC) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\allchblk.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_ALLCH=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLCH=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\allchblk.obj" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-".\Release\allchblk.sbr" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_ALLCH=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_ALLCH=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\allchblk.obj" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-".\Debug\allchblk.sbr" : $(SOURCE) $(DEP_CPP_ALLCH) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\stubborn.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_STUBB=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_STUBB=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\stubborn.obj" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-".\Release\stubborn.sbr" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_STUBB=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_STUBB=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\stubborn.obj" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-".\Debug\stubborn.sbr" : $(SOURCE) $(DEP_CPP_STUBB) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\obj_map.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_OBJ_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OBJ_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\obj_map.obj" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-".\Release\obj_map.sbr" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_OBJ_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_OBJ_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\obj_map.obj" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-".\Debug\obj_map.sbr" : $(SOURCE) $(DEP_CPP_OBJ_M) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\new_hblk.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_NEW_H=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_NEW_H=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\new_hblk.obj" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-".\Release\new_hblk.sbr" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_NEW_H=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_NEW_H=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\new_hblk.obj" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-".\Debug\new_hblk.sbr" : $(SOURCE) $(DEP_CPP_NEW_H) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mark.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MARK_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mark.obj" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-".\Release\mark.sbr" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MARK_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MARK_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mark.obj" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-".\Debug\mark.sbr" : $(SOURCE) $(DEP_CPP_MARK_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\malloc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MALLO=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLO=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\malloc.obj" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-".\Release\malloc.sbr" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MALLO=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLO=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\malloc.obj" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-".\Debug\malloc.sbr" : $(SOURCE) $(DEP_CPP_MALLO) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mallocx.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_MALLX=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLX=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\mallocx.obj" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-".\Release\mallocx.sbr" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_MALLX=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_MALLX=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\mallocx.obj" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-".\Debug\mallocx.sbr" : $(SOURCE) $(DEP_CPP_MALLX) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\finalize.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_FINAL=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_FINAL=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\finalize.obj" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-".\Release\finalize.sbr" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_FINAL=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_FINAL=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\finalize.obj" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-".\Debug\finalize.sbr" : $(SOURCE) $(DEP_CPP_FINAL) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\dbg_mlc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_DBG_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DBG_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\dbg_mlc.obj" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-".\Release\dbg_mlc.sbr" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_DBG_M=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DBG_M=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\dbg_mlc.obj" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-".\Debug\dbg_mlc.sbr" : $(SOURCE) $(DEP_CPP_DBG_M) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\blacklst.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_BLACK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_BLACK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\blacklst.obj" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-".\Release\blacklst.sbr" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_BLACK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_BLACK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\blacklst.obj" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-".\Debug\blacklst.sbr" : $(SOURCE) $(DEP_CPP_BLACK) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\typd_mlc.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_TYPD_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TYPD_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\typd_mlc.obj" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-".\Release\typd_mlc.sbr" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_TYPD_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TYPD_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\typd_mlc.obj" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-".\Debug\typd_mlc.sbr" : $(SOURCE) $(DEP_CPP_TYPD_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\ptr_chck.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_PTR_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_PTR_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\ptr_chck.obj" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-".\Release\ptr_chck.sbr" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_PTR_C=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_mark.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_PTR_C=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\ptr_chck.obj" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-".\Debug\ptr_chck.sbr" : $(SOURCE) $(DEP_CPP_PTR_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\dyn_load.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_DYN_L=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DYN_L=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\dyn_load.obj" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-".\Release\dyn_load.sbr" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_DYN_L=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_DYN_L=\
- ".\il\PCR_IL.h"\
- ".\mm\PCR_MM.h"\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\dyn_load.obj" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-".\Debug\dyn_load.sbr" : $(SOURCE) $(DEP_CPP_DYN_L) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\win32_threads.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_WIN32=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_WIN32=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\win32_threads.obj" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-".\Release\win32_threads.sbr" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_WIN32=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_WIN32=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\win32_threads.obj" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-".\Debug\win32_threads.sbr" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\checksums.c
-
-!IF "$(CFG)" == "gc - Win32 Release"
-
-DEP_CPP_CHECK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_CHECK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Release\checksums.obj" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-".\Release\checksums.sbr" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gc - Win32 Debug"
-
-DEP_CPP_CHECK=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_CHECK=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-".\Debug\checksums.obj" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-".\Debug\checksums.sbr" : $(SOURCE) $(DEP_CPP_CHECK) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "gctest - Win32 Release"
-# Name "gctest - Win32 Debug"
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "gc"
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-"gc - Win32 Release" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-"gc - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\test.c
-DEP_CPP_TEST_=\
- ".\gcconfig.h"\
- ".\gc.h"\
- ".\gc_hdrs.h"\
- ".\gc_priv.h"\
- ".\gc_typed.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-NODEP_CPP_TEST_=\
- ".\th\PCR_Th.h"\
- ".\th\PCR_ThCrSec.h"\
- ".\th\PCR_ThCtl.h"\
-
-
-!IF "$(CFG)" == "gctest - Win32 Release"
-
-
-".\gctest\Release\test.obj" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "gctest - Win32 Debug"
-
-
-".\gctest\Debug\test.obj" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-".\gctest\Debug\test.sbr" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "cord - Win32 Release"
-# Name "cord - Win32 Debug"
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "gc"
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-"gc - Win32 Release" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-"gc - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\gc.mak" CFG="gc - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de_win.c
-DEP_CPP_DE_WI=\
- ".\cord\cord.h"\
- ".\cord\de_cmds.h"\
- ".\cord\de_win.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_DE_WI=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de_win.obj" : $(SOURCE) $(DEP_CPP_DE_WI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de_win.obj" : $(SOURCE) $(DEP_CPP_DE_WI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de.c
-DEP_CPP_DE_C2e=\
- ".\cord\cord.h"\
- ".\cord\de_cmds.h"\
- ".\cord\de_win.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_DE_C2e=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de.obj" : $(SOURCE) $(DEP_CPP_DE_C2e) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de.obj" : $(SOURCE) $(DEP_CPP_DE_C2e) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\cordxtra.c
-DEP_CPP_CORDX=\
- ".\cord\cord.h"\
- ".\cord\ec.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_CORDX=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\cordxtra.obj" : $(SOURCE) $(DEP_CPP_CORDX) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\cordxtra.obj" : $(SOURCE) $(DEP_CPP_CORDX) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\cordbscs.c
-DEP_CPP_CORDB=\
- ".\cord\cord.h"\
- ".\cord\private\cord_pos.h"\
-
-NODEP_CPP_CORDB=\
- ".\cord\gc.h"\
-
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\cordbscs.obj" : $(SOURCE) $(DEP_CPP_CORDB) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\cordbscs.obj" : $(SOURCE) $(DEP_CPP_CORDB) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cord\de_win.RC
-
-!IF "$(CFG)" == "cord - Win32 Release"
-
-
-".\cord\Release\de_win.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) /l 0x809 /fo"$(INTDIR)/de_win.res" /i "cord" /d "NDEBUG" $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "cord - Win32 Debug"
-
-
-".\cord\Debug\de_win.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) /l 0x809 /fo"$(INTDIR)/de_win.res" /i "cord" /d "_DEBUG" $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/boehm-gc/gc.man b/boehm-gc/gc.man
deleted file mode 100644
index 5409e706550..00000000000
--- a/boehm-gc/gc.man
+++ /dev/null
@@ -1,80 +0,0 @@
-.TH GC_MALLOC 1L "12 February 1996"
-.SH NAME
-GC_malloc, GC_malloc_atomic, GC_free, GC_realloc, GC_enable_incremental, GC_register_finalizer, GC_malloc_ignore_off_page, GC_malloc_atomic_ignore_off_page, GC_set_warn_proc \- Garbage collecting malloc replacement
-.SH SYNOPSIS
-#include "gc.h"
-.br
-# define malloc(n) GC_malloc(n)
-.br
-... malloc(...) ...
-.br
-.sp
-cc ... gc.a
-.LP
-.SH DESCRIPTION
-.I GC_malloc
-and
-.I GC_free
-are plug-in replacements for standard malloc and free. However,
-.I
-GC_malloc
-will attempt to reclaim inaccessible space automatically by invoking a conservative garbage collector at appropriate points. The collector traverses all data structures accessible by following pointers from the machines registers, stack(s), data, and bss segments. Inaccessible structures will be reclaimed. A machine word is considered to be a valid pointer if it is an address inside an object allocated by
-.I
-GC_malloc
-or friends.
-.LP
-See the documentation in the include file gc_cpp.h for an alternate, C++ specific interface to the garbage collector.
-.LP
-Unlike the standard implementations of malloc,
-.I
-GC_malloc
-clears the newly allocated storage.
-.I
-GC_malloc_atomic
-does not. Furthermore, it informs the collector that the resulting object will never contain any pointers, and should therefore not be scanned by the collector.
-.LP
-.I
-GC_free
-can be used to deallocate objects, but its use is optional, and generally discouraged.
-.I
-GC_realloc
-has the standard realloc semantics. It preserves pointer-free-ness.
-.I
-GC_register_finalizer
-allows for registration of functions that are invoked when an object becomes inaccessible.
-.LP
-The garbage collector tries to avoid allocating memory at locations that already appear to be referenced before allocation. (Such apparent ``pointers'' are usually large integers and the like that just happen to look like an address.) This may make it hard to allocate very large objects. An attempt to do so may generate a warning.
-.LP
-.I
-GC_malloc_ignore_off_page
-and
-.I
-GC_malloc_atomic_ignore_off_page
-inform the collector that the client code will always maintain a pointer to near the beginning of the object (within the first 512 bytes), and that pointers beyond that can be ignored by the collector. This makes it much easier for the collector to place large objects. These are recommended for large object allocation. (Objects expected to be larger than about 100KBytes should be allocated this way.)
-.LP
-It is also possible to use the collector to find storage leaks in programs destined to be run with standard malloc/free. The collector can be compiled for thread-safe operation. Unlike standard malloc, it is safe to call malloc after a previous malloc call was interrupted by a signal, provided the original malloc call is not resumed.
-.LP
-The collector may, on rare occasion produce warning messages. On UNIX machines these appear on stderr. Warning messages can be filtered, redirected, or ignored with
-.I
-GC_set_warn_proc.
-This is recommended for production code. See gc.h for details.
-.LP
-Debugging versions of many of the above routines are provided as macros. Their names are identical to the above, but consist of all capital letters. If GC_DEBUG is defined before gc.h is included, these routines do additional checking, and allow the leak detecting version of the collector to produce slightly more useful output. Without GC_DEBUG defined, they behave exactly like the lower-case versions.
-.LP
-On some machines, collection will be performed incrementally after a call to
-.I
-GC_enable_incremental.
-This may temporarily write protect pages in the heap. See the README file for more information on how this interacts with system calls that write to the heap.
-.LP
-Other facilities not discussed here include limited facilities to support incremental collection on machines without appropriate VM support, provisions for providing more explicit object layout information to the garbage collector, more direct support for ``weak'' pointers, support for ``abortable'' garbage collections during idle time, etc.
-.LP
-.SH "SEE ALSO"
-The README and gc.h files in the distribution. More detailed definitions of the functions exported by the collector are given there. (The above list is not complete.)
-.LP
-Boehm, H., and M. Weiser, "Garbage Collection in an Uncooperative Environment",
-\fISoftware Practice & Experience\fP, September 1988, pp. 807-820.
-.LP
-The malloc(3) man page.
-.LP
-.SH AUTHOR
-Hans-J. Boehm (boehm@parc.xerox.com). Some of the code was written by others, most notably Alan Demers.
diff --git a/boehm-gc/gc_alloc.h b/boehm-gc/gc_alloc.h
deleted file mode 100644
index 1f1d54aff95..00000000000
--- a/boehm-gc/gc_alloc.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-//
-// This is a C++ header file that is intended to replace the SGI STL
-// alloc.h. This assumes SGI STL version < 3.0.
-//
-// This assumes the collector has been compiled with -DATOMIC_UNCOLLECTABLE
-// and -DALL_INTERIOR_POINTERS. We also recommend
-// -DREDIRECT_MALLOC=GC_uncollectable_malloc.
-//
-// Some of this could be faster in the explicit deallocation case. In particular,
-// we spend too much time clearing objects on the free lists. That could be avoided.
-//
-// This uses template classes with static members, and hence does not work
-// with g++ 2.7.2 and earlier.
-//
-
-#include "gc.h"
-
-#ifndef GC_ALLOC_H
-
-#define GC_ALLOC_H
-#define __ALLOC_H // Prevent inclusion of the default version. Ugly.
-#define __SGI_STL_ALLOC_H
-#define __SGI_STL_INTERNAL_ALLOC_H
-
-#ifndef __ALLOC
-# define __ALLOC alloc
-#endif
-
-#include <stddef.h>
-#include <string.h>
-
-// The following is just replicated from the conventional SGI alloc.h:
-
-template<class T, class alloc>
-class simple_alloc {
-
-public:
- static T *allocate(size_t n)
- { return 0 == n? 0 : (T*) alloc::allocate(n * sizeof (T)); }
- static T *allocate(void)
- { return (T*) alloc::allocate(sizeof (T)); }
- static void deallocate(T *p, size_t n)
- { if (0 != n) alloc::deallocate(p, n * sizeof (T)); }
- static void deallocate(T *p)
- { alloc::deallocate(p, sizeof (T)); }
-};
-
-#include "gc.h"
-
-// The following need to match collector data structures.
-// We can't include gc_priv.h, since that pulls in way too much stuff.
-// This should eventually be factored out into another include file.
-
-extern "C" {
- extern void ** const GC_objfreelist_ptr;
- extern void ** const GC_aobjfreelist_ptr;
- extern void ** const GC_uobjfreelist_ptr;
- extern void ** const GC_auobjfreelist_ptr;
-
- extern void GC_incr_words_allocd(size_t words);
- extern void GC_incr_mem_freed(size_t words);
-
- extern char * GC_generic_malloc_words_small(size_t word, int kind);
-}
-
-// Object kinds; must match PTRFREE, NORMAL, UNCOLLECTABLE, and
-// AUNCOLLECTABLE in gc_priv.h.
-
-enum { GC_PTRFREE = 0, GC_NORMAL = 1, GC_UNCOLLECTABLE = 2,
- GC_AUNCOLLECTABLE = 3 };
-
-enum { GC_max_fast_bytes = 255 };
-
-enum { GC_bytes_per_word = sizeof(char *) };
-
-enum { GC_byte_alignment = 8 };
-
-enum { GC_word_alignment = GC_byte_alignment/GC_bytes_per_word };
-
-inline void * &GC_obj_link(void * p)
-{ return *(void **)p; }
-
-// Compute a number of words >= n+1 bytes.
-// The +1 allows for pointers one past the end.
-inline size_t GC_round_up(size_t n)
-{
- return ((n + GC_byte_alignment)/GC_byte_alignment)*GC_word_alignment;
-}
-
-// The same but don't allow for extra byte.
-inline size_t GC_round_up_uncollectable(size_t n)
-{
- return ((n + GC_byte_alignment - 1)/GC_byte_alignment)*GC_word_alignment;
-}
-
-template <int dummy>
-class GC_aux_template {
-public:
- // File local count of allocated words. Occasionally this is
- // added into the global count. A separate count is necessary since the
- // real one must be updated with a procedure call.
- static size_t GC_words_recently_allocd;
-
- // Same for uncollectable mmory. Not yet reflected in either
- // GC_words_recently_allocd or GC_non_gc_bytes.
- static size_t GC_uncollectable_words_recently_allocd;
-
- // Similar counter for explicitly deallocated memory.
- static size_t GC_mem_recently_freed;
-
- // Again for uncollectable memory.
- static size_t GC_uncollectable_mem_recently_freed;
-
- static void * GC_out_of_line_malloc(size_t nwords, int kind);
-};
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_mem_recently_freed = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_mem_recently_freed = 0;
-
-template <int dummy>
-void * GC_aux_template<dummy>::GC_out_of_line_malloc(size_t nwords, int kind)
-{
- GC_words_recently_allocd += GC_uncollectable_words_recently_allocd;
- GC_non_gc_bytes +=
- GC_bytes_per_word * GC_uncollectable_words_recently_allocd;
- GC_uncollectable_words_recently_allocd = 0;
-
- GC_mem_recently_freed += GC_uncollectable_mem_recently_freed;
- GC_non_gc_bytes -=
- GC_bytes_per_word * GC_uncollectable_mem_recently_freed;
- GC_uncollectable_mem_recently_freed = 0;
-
- GC_incr_words_allocd(GC_words_recently_allocd);
- GC_words_recently_allocd = 0;
-
- GC_incr_mem_freed(GC_mem_recently_freed);
- GC_mem_recently_freed = 0;
-
- return GC_generic_malloc_words_small(nwords, kind);
-}
-
-typedef GC_aux_template<0> GC_aux;
-
-// A fast, single-threaded, garbage-collected allocator
-// We assume the first word will be immediately overwritten.
-// In this version, deallocation is not a noop, and explicit
-// deallocation is likely to help performance.
-template <int dummy>
-class single_client_gc_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc(n);
- flh = GC_objfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_NORMAL);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic(n);
- flh = GC_aobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_PTRFREE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_objfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- memset((char *)p + GC_bytes_per_word, 0,
- GC_bytes_per_word * (nwords - 1));
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_aobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_gc_alloc_template<0> single_client_gc_alloc;
-
-// Once more, for uncollectable objects.
-template <int dummy>
-class single_client_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_uncollectable(n);
- flh = GC_uobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_UNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic_uncollectable(n);
- flh = GC_auobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_AUNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_uobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_auobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_alloc_template<0> single_client_alloc;
-
-template < int dummy >
-class gc_alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic(n); }
- static void deallocate(void *, size_t) { }
- static void ptr_free_deallocate(void *, size_t) { }
-};
-
-typedef gc_alloc_template < 0 > gc_alloc;
-
-template < int dummy >
-class alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc_uncollectable(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic_uncollectable(n); }
- static void deallocate(void *p, size_t) { GC_free(p); }
- static void ptr_free_deallocate(void *p, size_t) { GC_free(p); }
-};
-
-typedef alloc_template < 0 > alloc;
-
-#ifdef _SGI_SOURCE
-
-// We want to specialize simple_alloc so that it does the right thing
-// for all pointerfree types. At the moment there is no portable way to
-// even approximate that. The following approximation should work for
-// SGI compilers, and perhaps some others.
-
-# define __GC_SPECIALIZE(T,alloc) \
-class simple_alloc<T, alloc> { \
-public: \
- static T *allocate(size_t n) \
- { return 0 == n? 0 : \
- (T*) alloc::ptr_free_allocate(n * sizeof (T)); } \
- static T *allocate(void) \
- { return (T*) alloc::ptr_free_allocate(sizeof (T)); } \
- static void deallocate(T *p, size_t n) \
- { if (0 != n) alloc::ptr_free_deallocate(p, n * sizeof (T)); } \
- static void deallocate(T *p) \
- { alloc::ptr_free_deallocate(p, sizeof (T)); } \
-};
-
-__GC_SPECIALIZE(char, gc_alloc)
-__GC_SPECIALIZE(int, gc_alloc)
-__GC_SPECIALIZE(unsigned, gc_alloc)
-__GC_SPECIALIZE(float, gc_alloc)
-__GC_SPECIALIZE(double, gc_alloc)
-
-__GC_SPECIALIZE(char, alloc)
-__GC_SPECIALIZE(int, alloc)
-__GC_SPECIALIZE(unsigned, alloc)
-__GC_SPECIALIZE(float, alloc)
-__GC_SPECIALIZE(double, alloc)
-
-__GC_SPECIALIZE(char, single_client_gc_alloc)
-__GC_SPECIALIZE(int, single_client_gc_alloc)
-__GC_SPECIALIZE(unsigned, single_client_gc_alloc)
-__GC_SPECIALIZE(float, single_client_gc_alloc)
-__GC_SPECIALIZE(double, single_client_gc_alloc)
-
-__GC_SPECIALIZE(char, single_client_alloc)
-__GC_SPECIALIZE(int, single_client_alloc)
-__GC_SPECIALIZE(unsigned, single_client_alloc)
-__GC_SPECIALIZE(float, single_client_alloc)
-__GC_SPECIALIZE(double, single_client_alloc)
-
-#ifdef __STL_USE_STD_ALLOCATORS
-
-???copy stuff from stl_alloc.h or remove it to a different file ???
-
-#endif /* __STL_USE_STD_ALLOCATORS */
-
-#endif /* _SGI_SOURCE */
-
-#endif /* GC_ALLOC_H */
diff --git a/boehm-gc/gc_cpp.cc b/boehm-gc/gc_cpp.cc
deleted file mode 100644
index 547c56f96a1..00000000000
--- a/boehm-gc/gc_cpp.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************
-Copyright (c) 1994 by Xerox Corporation. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
- Last modified on Sat Nov 19 19:31:14 PST 1994 by ellis
- on Sat Jun 8 15:10:00 PST 1994 by boehm
-
-Permission is hereby granted to copy this code for any purpose,
-provided the above notices are retained on all copies.
-
-This implementation module for gc_c++.h provides an implementation of
-the global operators "new" and "delete" that calls the Boehm
-allocator. All objects allocated by this implementation will be
-non-collectable but part of the root set of the collector.
-
-You should ensure (using implementation-dependent techniques) that the
-linker finds this module before the library that defines the default
-built-in "new" and "delete".
-
-Authors: John R. Ellis and Jesse Hull
-
-**************************************************************************/
-/* Boehm, December 20, 1994 7:26 pm PST */
-
-#include "gc_cpp.h"
-
-void* operator new( size_t size ) {
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
-void operator delete( void* obj ) {
- GC_FREE( obj );}
-
-#ifdef _MSC_VER
-// This new operator is used by VC++ in case of Debug builds !
-void* operator new( size_t size,
- int ,//nBlockUse,
- const char * szFileName,
- int nLine
- ) {
-# ifndef GC_DEBUG
- return GC_malloc_uncollectable( size );
-# else
- return GC_debug_malloc_uncollectable(size, szFileName, nLine);
-# endif
-}
-#endif
-
-#ifdef OPERATOR_NEW_ARRAY
-
-void* operator new[]( size_t size ) {
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
-void operator delete[]( void* obj ) {
- GC_FREE( obj );}
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-
diff --git a/boehm-gc/gc_cpp.h b/boehm-gc/gc_cpp.h
deleted file mode 100644
index 35686fc3527..00000000000
--- a/boehm-gc/gc_cpp.h
+++ /dev/null
@@ -1,299 +0,0 @@
-#ifndef GC_CPP_H
-#define GC_CPP_H
-/****************************************************************************
-Copyright (c) 1994 by Xerox Corporation. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program for any
-purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is
-granted, provided the above notices are retained, and a notice that
-the code was modified is included with the above copyright notice.
-****************************************************************************
-
-C++ Interface to the Boehm Collector
-
- John R. Ellis and Jesse Hull
-
-This interface provides access to the Boehm collector. It provides
-basic facilities similar to those described in "Safe, Efficient
-Garbage Collection for C++", by John R. Elis and David L. Detlefs
-(ftp://ftp.parc.xerox.com/pub/ellis/gc).
-
-All heap-allocated objects are either "collectable" or
-"uncollectable". Programs must explicitly delete uncollectable
-objects, whereas the garbage collector will automatically delete
-collectable objects when it discovers them to be inaccessible.
-Collectable objects may freely point at uncollectable objects and vice
-versa.
-
-Objects allocated with the built-in "::operator new" are uncollectable.
-
-Objects derived from class "gc" are collectable. For example:
-
- class A: public gc {...};
- A* a = new A; // a is collectable.
-
-Collectable instances of non-class types can be allocated using the GC
-(or UseGC) placement:
-
- typedef int A[ 10 ];
- A* a = new (GC) A;
-
-Uncollectable instances of classes derived from "gc" can be allocated
-using the NoGC placement:
-
- class A: public gc {...};
- A* a = new (NoGC) A; // a is uncollectable.
-
-Both uncollectable and collectable objects can be explicitly deleted
-with "delete", which invokes an object's destructors and frees its
-storage immediately.
-
-A collectable object may have a clean-up function, which will be
-invoked when the collector discovers the object to be inaccessible.
-An object derived from "gc_cleanup" or containing a member derived
-from "gc_cleanup" has a default clean-up function that invokes the
-object's destructors. Explicit clean-up functions may be specified as
-an additional placement argument:
-
- A* a = ::new (GC, MyCleanup) A;
-
-An object is considered "accessible" by the collector if it can be
-reached by a path of pointers from static variables, automatic
-variables of active functions, or from some object with clean-up
-enabled; pointers from an object to itself are ignored.
-
-Thus, if objects A and B both have clean-up functions, and A points at
-B, B is considered accessible. After A's clean-up is invoked and its
-storage released, B will then become inaccessible and will have its
-clean-up invoked. If A points at B and B points to A, forming a
-cycle, then that's considered a storage leak, and neither will be
-collectable. See the interface gc.h for low-level facilities for
-handling such cycles of objects with clean-up.
-
-The collector cannot guarrantee that it will find all inaccessible
-objects. In practice, it finds almost all of them.
-
-
-Cautions:
-
-1. Be sure the collector has been augmented with "make c++".
-
-2. If your compiler supports the new "operator new[]" syntax, then
-add -DOPERATOR_NEW_ARRAY to the Makefile.
-
-If your compiler doesn't support "operator new[]", beware that an
-array of type T, where T is derived from "gc", may or may not be
-allocated as a collectable object (it depends on the compiler). Use
-the explicit GC placement to make the array collectable. For example:
-
- class A: public gc {...};
- A* a1 = new A[ 10 ]; // collectable or uncollectable?
- A* a2 = new (GC) A[ 10 ]; // collectable
-
-3. The destructors of collectable arrays of objects derived from
-"gc_cleanup" will not be invoked properly. For example:
-
- class A: public gc_cleanup {...};
- A* a = new (GC) A[ 10 ]; // destructors not invoked correctly
-
-Typically, only the destructor for the first element of the array will
-be invoked when the array is garbage-collected. To get all the
-destructors of any array executed, you must supply an explicit
-clean-up function:
-
- A* a = new (GC, MyCleanUp) A[ 10 ];
-
-(Implementing clean-up of arrays correctly, portably, and in a way
-that preserves the correct exception semantics requires a language
-extension, e.g. the "gc" keyword.)
-
-4. Compiler bugs:
-
-* Solaris 2's CC (SC3.0) doesn't implement t->~T() correctly, so the
-destructors of classes derived from gc_cleanup won't be invoked.
-You'll have to explicitly register a clean-up function with
-new-placement syntax.
-
-* Evidently cfront 3.0 does not allow destructors to be explicitly
-invoked using the ANSI-conforming syntax t->~T(). If you're using
-cfront 3.0, you'll have to comment out the class gc_cleanup, which
-uses explicit invocation.
-
-5. GC name conflicts:
-
-Many other systems seem to use the identifier "GC" as an abbreviation
-for "Graphics Context". Since version 5.0, GC placement has been replaced
-by UseGC. GC is an alias for UseGC, unless GC_NAME_CONFLICT is defined.
-
-****************************************************************************/
-
-#include "gc.h"
-
-#ifndef THINK_CPLUS
-#define _cdecl
-#endif
-
-#if ! defined( OPERATOR_NEW_ARRAY ) \
- && (__BORLANDC__ >= 0x450 || (__GNUC__ >= 2 && __GNUC_MINOR__ >= 6) \
- || __WATCOMC__ >= 1050)
-# define OPERATOR_NEW_ARRAY
-#endif
-
-enum GCPlacement {UseGC,
-#ifndef GC_NAME_CONFLICT
- GC=UseGC,
-#endif
- NoGC, PointerFreeGC};
-
-class gc {public:
- inline void* operator new( size_t size );
- inline void* operator new( size_t size, GCPlacement gcp );
- inline void operator delete( void* obj );
-
-#ifdef OPERATOR_NEW_ARRAY
- inline void* operator new[]( size_t size );
- inline void* operator new[]( size_t size, GCPlacement gcp );
- inline void operator delete[]( void* obj );
-#endif /* OPERATOR_NEW_ARRAY */
- };
- /*
- Instances of classes derived from "gc" will be allocated in the
- collected heap by default, unless an explicit NoGC placement is
- specified. */
-
-class gc_cleanup: virtual public gc {public:
- inline gc_cleanup();
- inline virtual ~gc_cleanup();
-private:
- inline static void _cdecl cleanup( void* obj, void* clientData );};
- /*
- Instances of classes derived from "gc_cleanup" will be allocated
- in the collected heap by default. When the collector discovers an
- inaccessible object derived from "gc_cleanup" or containing a
- member derived from "gc_cleanup", its destructors will be
- invoked. */
-
-extern "C" {typedef void (*GCCleanUpFunc)( void* obj, void* clientData );}
-
-inline void* operator new(
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup = 0,
- void* clientData = 0 );
- /*
- Allocates a collectable or uncollected object, according to the
- value of "gcp".
-
- For collectable objects, if "cleanup" is non-null, then when the
- allocated object "obj" becomes inaccessible, the collector will
- invoke the function "cleanup( obj, clientData )" but will not
- invoke the object's destructors. It is an error to explicitly
- delete an object allocated with a non-null "cleanup".
-
- It is an error to specify a non-null "cleanup" with NoGC or for
- classes derived from "gc_cleanup" or containing members derived
- from "gc_cleanup". */
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* operator new[](
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup = 0,
- void* clientData = 0 );
- /*
- The operator new for arrays, identical to the above. */
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-/****************************************************************************
-
-Inline implementation
-
-****************************************************************************/
-
-inline void* gc::operator new( size_t size ) {
- return GC_MALLOC( size );}
-
-inline void* gc::operator new( size_t size, GCPlacement gcp ) {
- if (gcp == UseGC)
- return GC_MALLOC( size );
- else if (gcp == PointerFreeGC)
- return GC_MALLOC_ATOMIC( size );
- else
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
-inline void gc::operator delete( void* obj ) {
- GC_FREE( obj );}
-
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* gc::operator new[]( size_t size ) {
- return gc::operator new( size );}
-
-inline void* gc::operator new[]( size_t size, GCPlacement gcp ) {
- return gc::operator new( size, gcp );}
-
-inline void gc::operator delete[]( void* obj ) {
- gc::operator delete( obj );}
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-
-inline gc_cleanup::~gc_cleanup() {
- GC_REGISTER_FINALIZER_IGNORE_SELF( GC_base(this), 0, 0, 0, 0 );}
-
-inline void gc_cleanup::cleanup( void* obj, void* displ ) {
- ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}
-
-inline gc_cleanup::gc_cleanup() {
- GC_finalization_proc oldProc;
- void* oldData;
- void* base = GC_base( (void *) this );
- if (0 != base) {
- GC_REGISTER_FINALIZER_IGNORE_SELF(
- base, (GC_finalization_proc)cleanup, (void*) ((char*) this - (char*) base),
- &oldProc, &oldData );
- if (0 != oldProc) {
- GC_REGISTER_FINALIZER_IGNORE_SELF( base, oldProc, oldData, 0, 0 );}}}
-
-inline void* operator new(
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup,
- void* clientData )
-{
- void* obj;
-
- if (gcp == UseGC) {
- obj = GC_MALLOC( size );
- if (cleanup != 0)
- GC_REGISTER_FINALIZER_IGNORE_SELF(
- obj, cleanup, clientData, 0, 0 );}
- else if (gcp == PointerFreeGC) {
- obj = GC_MALLOC_ATOMIC( size );}
- else {
- obj = GC_MALLOC_UNCOLLECTABLE( size );};
- return obj;}
-
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* operator new[](
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup,
- void* clientData )
-{
- return ::operator new( size, gcp, cleanup, clientData );}
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-
-#endif /* GC_CPP_H */
-
diff --git a/boehm-gc/gc_hdrs.h b/boehm-gc/gc_hdrs.h
deleted file mode 100644
index 6966a9a1a87..00000000000
--- a/boehm-gc/gc_hdrs.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, July 11, 1995 11:54 am PDT */
-# ifndef GC_HEADERS_H
-# define GC_HEADERS_H
-typedef struct hblkhdr hdr;
-
-# if CPP_WORDSZ != 32 && CPP_WORDSZ < 36
- --> Get a real machine.
-# endif
-
-/*
- * The 2 level tree data structure that is used to find block headers.
- * If there are more than 32 bits in a pointer, the top level is a hash
- * table.
- *
- * This defines HDR, GET_HDR, and SET_HDR, the main macros used to
- * retrieve and set object headers. We also define some variants to
- * retrieve 2 unrelated headers in interleaved fashion. This
- * slightly improves scheduling.
- *
- * Since 5.0 alpha 5, we can also take advantage of a header lookup
- * cache. This is a locally declared direct mapped cache, used inside
- * the marker. The HC_GET_HDR and HC_GET_HDR2 macros use and maintain this
- * cache. Assuming we get reasonable hit rates, this shaves a few
- * memory references from each pointer validation.
- */
-
-# if CPP_WORDSZ > 32
-# define HASH_TL
-# endif
-
-/* Define appropriate out-degrees for each of the two tree levels */
-# ifdef SMALL_CONFIG
-# define LOG_BOTTOM_SZ 11
- /* Keep top index size reasonable with smaller blocks. */
-# else
-# define LOG_BOTTOM_SZ 10
-# endif
-# ifndef HASH_TL
-# define LOG_TOP_SZ (WORDSZ - LOG_BOTTOM_SZ - LOG_HBLKSIZE)
-# else
-# define LOG_TOP_SZ 11
-# endif
-# define TOP_SZ (1 << LOG_TOP_SZ)
-# define BOTTOM_SZ (1 << LOG_BOTTOM_SZ)
-
-#ifndef SMALL_CONFIG
-# define USE_HDR_CACHE
-#endif
-
-/* #define COUNT_HDR_CACHE_HITS */
-
-extern hdr * GC_invalid_header; /* header for an imaginary block */
- /* containing no objects. */
-
-
-/* Check whether p and corresponding hhdr point to long or invalid */
-/* object. If so, advance them to */
-/* beginning of block, or set hhdr to GC_invalid_header. */
-#define ADVANCE(p, hhdr, source) \
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { \
- p = GC_FIND_START(p, hhdr, (word)source); \
- if (p == 0) { \
- hhdr = GC_invalid_header; \
- } else { \
- hhdr = GC_find_header(p); \
- } \
- }
-
-#ifdef USE_HDR_CACHE
-
-# ifdef COUNT_HDR_CACHE_HITS
- extern word GC_hdr_cache_hits;
- extern word GC_hdr_cache_misses;
-# define HC_HIT() ++GC_hdr_cache_hits
-# define HC_MISS() ++GC_hdr_cache_misses
-# else
-# define HC_HIT()
-# define HC_MISS()
-# endif
-
- typedef struct hce {
- word block_addr; /* right shifted by LOG_HBLKSIZE */
- hdr * hce_hdr;
- } hdr_cache_entry;
-
-# define HDR_CACHE_SIZE 8 /* power of 2 */
-
-# define DECLARE_HDR_CACHE \
- hdr_cache_entry hdr_cache[HDR_CACHE_SIZE]
-
-# define INIT_HDR_CACHE BZERO(hdr_cache, sizeof(hdr_cache));
-
-# define HCE(h) hdr_cache + (((word)(h) >> LOG_HBLKSIZE) & (HDR_CACHE_SIZE-1))
-
-# define HCE_VALID_FOR(hce,h) ((hce) -> block_addr == \
- ((word)(h) >> LOG_HBLKSIZE))
-
-# define HCE_HDR(h) ((hce) -> hce_hdr)
-
-
-/* Analogous to GET_HDR, except that in the case of large objects, it */
-/* Returns the header for the object beginning, and updates p. */
-/* Returns &GC_bad_header instead of 0. All of this saves a branch */
-/* in the fast path. */
-# define HC_GET_HDR(p, hhdr, source) \
- { \
- hdr_cache_entry * hce = HCE(p); \
- if (HCE_VALID_FOR(hce, p)) { \
- HC_HIT(); \
- hhdr = hce -> hce_hdr; \
- } else { \
- HC_MISS(); \
- GET_HDR(p, hhdr); \
- ADVANCE(p, hhdr, source); \
- hce -> block_addr = (word)(p) >> LOG_HBLKSIZE; \
- hce -> hce_hdr = hhdr; \
- } \
- }
-
-# define HC_GET_HDR2(p1, hhdr1, source1, p2, hhdr2, source2) \
- { \
- hdr_cache_entry * hce1 = HCE(p1); \
- hdr_cache_entry * hce2 = HCE(p2); \
- if (HCE_VALID_FOR(hce1, p1)) { \
- HC_HIT(); \
- hhdr1 = hce1 -> hce_hdr; \
- } else { \
- HC_MISS(); \
- GET_HDR(p1, hhdr1); \
- ADVANCE(p1, hhdr1, source1); \
- hce1 -> block_addr = (word)(p1) >> LOG_HBLKSIZE; \
- hce1 -> hce_hdr = hhdr1; \
- } \
- if (HCE_VALID_FOR(hce2, p2)) { \
- HC_HIT(); \
- hhdr2 = hce2 -> hce_hdr; \
- } else { \
- HC_MISS(); \
- GET_HDR(p2, hhdr2); \
- ADVANCE(p2, hhdr2, source2); \
- hce2 -> block_addr = (word)(p2) >> LOG_HBLKSIZE; \
- hce2 -> hce_hdr = hhdr2; \
- } \
- }
-
-#else /* !USE_HDR_CACHE */
-
-# define DECLARE_HDR_CACHE
-
-# define INIT_HDR_CACHE
-
-# define HC_GET_HDR(p, hhdr, source) \
- { \
- GET_HDR(p, hhdr); \
- ADVANCE(p, hhdr, source); \
- }
-
-# define HC_GET_HDR2(p1, hhdr1, source1, p2, hhdr2, source2) \
- { \
- GET_HDR2(p1, hhdr1, p2, hhdr2); \
- ADVANCE(p1, hhdr1, source1); \
- ADVANCE(p2, hhdr2, source2); \
- }
-
-#endif
-
-typedef struct bi {
- hdr * index[BOTTOM_SZ];
- /*
- * The bottom level index contains one of three kinds of values:
- * 0 means we're not responsible for this block,
- * or this is a block other than the first one in a free block.
- * 1 < (long)X <= MAX_JUMP means the block starts at least
- * X * HBLKSIZE bytes before the current address.
- * A valid pointer points to a hdr structure. (The above can't be
- * valid pointers due to the GET_MEM return convention.)
- */
- struct bi * asc_link; /* All indices are linked in */
- /* ascending order... */
- struct bi * desc_link; /* ... and in descending order. */
- word key; /* high order address bits. */
-# ifdef HASH_TL
- struct bi * hash_link; /* Hash chain link. */
-# endif
-} bottom_index;
-
-/* extern bottom_index GC_all_nils; - really part of GC_arrays */
-
-/* extern bottom_index * GC_top_index []; - really part of GC_arrays */
- /* Each entry points to a bottom_index. */
- /* On a 32 bit machine, it points to */
- /* the index for a set of high order */
- /* bits equal to the index. For longer */
- /* addresses, we hash the high order */
- /* bits to compute the index in */
- /* GC_top_index, and each entry points */
- /* to a hash chain. */
- /* The last entry in each chain is */
- /* GC_all_nils. */
-
-
-# define MAX_JUMP (HBLKSIZE - 1)
-
-# define HDR_FROM_BI(bi, p) \
- ((bi)->index[((word)(p) >> LOG_HBLKSIZE) & (BOTTOM_SZ - 1)])
-# ifndef HASH_TL
-# define BI(p) (GC_top_index \
- [(word)(p) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE)])
-# define HDR_INNER(p) HDR_FROM_BI(BI(p),p)
-# ifdef SMALL_CONFIG
-# define HDR(p) GC_find_header((ptr_t)(p))
-# else
-# define HDR(p) HDR_INNER(p)
-# endif
-# define GET_BI(p, bottom_indx) (bottom_indx) = BI(p)
-# define GET_HDR(p, hhdr) (hhdr) = HDR(p)
-# define SET_HDR(p, hhdr) HDR_INNER(p) = (hhdr)
-# define GET_HDR_ADDR(p, ha) (ha) = &(HDR_INNER(p))
-# define GET_HDR2(p1, hhdr1, p2, hhdr2) \
- { GET_HDR(p1, hhdr1); GET_HDR(p2, hhdr2); }
-# else /* hash */
-/* Hash function for tree top level */
-# define TL_HASH(hi) ((hi) & (TOP_SZ - 1))
-/* Set bottom_indx to point to the bottom index for address p */
-# define GET_BI(p, bottom_indx) \
- { \
- register word hi = \
- (word)(p) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \
- register bottom_index * _bi = GC_top_index[TL_HASH(hi)]; \
- \
- while (_bi -> key != hi && _bi != GC_all_nils) \
- _bi = _bi -> hash_link; \
- (bottom_indx) = _bi; \
- }
-# define GET_HDR_ADDR(p, ha) \
- { \
- register bottom_index * bi; \
- \
- GET_BI(p, bi); \
- (ha) = &(HDR_FROM_BI(bi, p)); \
- }
-# define GET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \
- (hhdr) = *_ha; }
-# define SET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \
- *_ha = (hhdr); }
-# define HDR(p) GC_find_header((ptr_t)(p))
- /* And some interleaved versions for two pointers at once. */
- /* This hopefully helps scheduling on processors like IA64. */
-# define GET_BI2(p1, bottom_indx1, p2, bottom_indx2) \
- { \
- register word hi1 = \
- (word)(p1) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \
- register word hi2 = \
- (word)(p2) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \
- register bottom_index * _bi1 = GC_top_index[TL_HASH(hi1)]; \
- register bottom_index * _bi2 = GC_top_index[TL_HASH(hi2)]; \
- \
- while (_bi1 -> key != hi1 && _bi1 != GC_all_nils) \
- _bi1 = _bi1 -> hash_link; \
- while (_bi2 -> key != hi2 && _bi2 != GC_all_nils) \
- _bi2 = _bi2 -> hash_link; \
- (bottom_indx1) = _bi1; \
- (bottom_indx2) = _bi2; \
- }
-# define GET_HDR_ADDR2(p1, ha1, p2, ha2) \
- { \
- register bottom_index * bi1; \
- register bottom_index * bi2; \
- \
- GET_BI2(p1, bi1, p2, bi2); \
- (ha1) = &(HDR_FROM_BI(bi1, p1)); \
- (ha2) = &(HDR_FROM_BI(bi2, p2)); \
- }
-# define GET_HDR2(p1, hhdr1, p2, hhdr2) \
- { register hdr ** _ha1; \
- register hdr ** _ha2; \
- GET_HDR_ADDR2(p1, _ha1, p2, _ha2); \
- (hhdr1) = *_ha1; \
- (hhdr2) = *_ha2; \
- }
-# endif
-
-/* Is the result a forwarding address to someplace closer to the */
-/* beginning of the block or NIL? */
-# define IS_FORWARDING_ADDR_OR_NIL(hhdr) ((unsigned long) (hhdr) <= MAX_JUMP)
-
-/* Get an HBLKSIZE aligned address closer to the beginning of the block */
-/* h. Assumes hhdr == HDR(h) and IS_FORWARDING_ADDR(hhdr). */
-# define FORWARDED_ADDR(h, hhdr) ((struct hblk *)(h) - (unsigned long)(hhdr))
-# endif /* GC_HEADERS_H */
diff --git a/boehm-gc/gc_mark.h b/boehm-gc/gc_mark.h
deleted file mode 100644
index 295423a62a1..00000000000
--- a/boehm-gc/gc_mark.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (c) 1991-1994, 2000 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-/* Boehm, November 7, 1994 4:56 pm PST */
-
-/*
- * Declarations of mark stack. Needed by marker and client supplied mark
- * routines. To be included after gc_priv.h.
- */
-#ifndef GC_MARK_H
-# define GC_MARK_H
-
-# ifdef KEEP_BACK_PTRS
-# include "dbg_mlc.h"
-# endif
-
-/* A client supplied mark procedure. Returns new mark stack pointer. */
-/* Primary effect should be to push new entries on the mark stack. */
-/* Mark stack pointer values are passed and returned explicitly. */
-/* Global variables decribing mark stack are not necessarily valid. */
-/* (This usually saves a few cycles by keeping things in registers.) */
-/* Assumed to scan about PROC_BYTES on average. If it needs to do */
-/* much more work than that, it should do it in smaller pieces by */
-/* pushing itself back on the mark stack. */
-/* Note that it should always do some work (defined as marking some */
-/* objects) before pushing more than one entry on the mark stack. */
-/* This is required to ensure termination in the event of mark stack */
-/* overflows. */
-/* This procedure is always called with at least one empty entry on the */
-/* mark stack. */
-/* Currently we require that mark procedures look for pointers in a */
-/* subset of the places the conservative marker would. It must be safe */
-/* to invoke the normal mark procedure instead. */
-# define PROC_BYTES 100
-/* The real declarations of the following are in gc_priv.h, so that */
-/* we can avoid scanning the following table. */
-/*
-typedef struct ms_entry * (*mark_proc)( word * addr,
- struct ms_entry *mark_stack_ptr,
- struct ms_entry *mark_stack_limit,
- word env );
-
-# define LOG_MAX_MARK_PROCS 6
-# define MAX_MARK_PROCS (1 << LOG_MAX_MARK_PROCS)
-extern mark_proc GC_mark_procs[MAX_MARK_PROCS];
-*/
-
-extern word GC_n_mark_procs;
-
-/* In a few cases it's necessary to assign statically known indices to */
-/* certain mark procs. Thus we reserve a few for well known clients. */
-/* (This is necessary if mark descriptors are compiler generated.) */
-#define GC_RESERVED_MARK_PROCS 8
-# define GCJ_RESERVED_MARK_PROC_INDEX 0
-
-/* Object descriptors on mark stack or in objects. Low order two */
-/* bits are tags distinguishing among the following 4 possibilities */
-/* for the high order 30 bits. */
-#define DS_TAG_BITS 2
-#define DS_TAGS ((1 << DS_TAG_BITS) - 1)
-#define DS_LENGTH 0 /* The entire word is a length in bytes that */
- /* must be a multiple of 4. */
-#define DS_BITMAP 1 /* 30 bits are a bitmap describing pointer */
- /* fields. The msb is 1 iff the first word */
- /* is a pointer. */
- /* (This unconventional ordering sometimes */
- /* makes the marker slightly faster.) */
- /* Zeroes indicate definite nonpointers. Ones */
- /* indicate possible pointers. */
- /* Only usable if pointers are word aligned. */
-# define BITMAP_BITS (WORDSZ - DS_TAG_BITS)
-#define DS_PROC 2
- /* The objects referenced by this object can be */
- /* pushed on the mark stack by invoking */
- /* PROC(descr). ENV(descr) is passed as the */
- /* last argument. */
-# define PROC(descr) \
- (GC_mark_procs[((descr) >> DS_TAG_BITS) & (MAX_MARK_PROCS-1)])
-# define ENV(descr) \
- ((descr) >> (DS_TAG_BITS + LOG_MAX_MARK_PROCS))
-# define MAX_ENV \
- (((word)1 << (WORDSZ - DS_TAG_BITS - LOG_MAX_MARK_PROCS)) - 1)
-# define MAKE_PROC(proc_index, env) \
- (((((env) << LOG_MAX_MARK_PROCS) | (proc_index)) << DS_TAG_BITS) \
- | DS_PROC)
-#define DS_PER_OBJECT 3 /* The real descriptor is at the */
- /* byte displacement from the beginning of the */
- /* object given by descr & ~DS_TAGS */
- /* If the descriptor is negative, the real */
- /* descriptor is at (*<object_start>) - */
- /* (descr & ~DS_TAGS) - INDIR_PER_OBJ_BIAS */
- /* The latter alternative can be used if each */
- /* object contains a type descriptor in the */
- /* first word. */
-#define INDIR_PER_OBJ_BIAS 0x10
-
-typedef struct ms_entry {
- word * mse_start; /* First word of object */
- word mse_descr; /* Descriptor; low order two bits are tags, */
- /* identifying the upper 30 bits as one of the */
- /* following: */
-} mse;
-
-extern word GC_mark_stack_size;
-
-extern mse * GC_mark_stack_top;
-
-extern mse * GC_mark_stack;
-
-#ifdef PRINT_BLACK_LIST
-ptr_t GC_find_start(ptr_t, hdr*, word);
-#else
-ptr_t GC_find_start(ptr_t, hdr*);
-#endif
-
-mse * GC_signal_mark_stack_overflow(mse *);
-
-# ifdef GATHERSTATS
-# define ADD_TO_ATOMIC(sz) GC_atomic_in_use += (sz)
-# define ADD_TO_COMPOSITE(sz) GC_composite_in_use += (sz)
-# else
-# define ADD_TO_ATOMIC(sz)
-# define ADD_TO_COMPOSITE(sz)
-# endif
-
-/* Push the object obj with corresponding heap block header hhdr onto */
-/* the mark stack. */
-# define PUSH_OBJ(obj, hhdr, mark_stack_top, mark_stack_limit) \
-{ \
- register word _descr = (hhdr) -> hb_descr; \
- \
- if (_descr == 0) { \
- ADD_TO_ATOMIC((hhdr) -> hb_sz); \
- } else { \
- ADD_TO_COMPOSITE((hhdr) -> hb_sz); \
- mark_stack_top++; \
- if (mark_stack_top >= mark_stack_limit) { \
- mark_stack_top = GC_signal_mark_stack_overflow(mark_stack_top); \
- } \
- mark_stack_top -> mse_start = (obj); \
- mark_stack_top -> mse_descr = _descr; \
- } \
-}
-
-#ifdef PRINT_BLACK_LIST
-# define GC_FIND_START(current, hhdr, source) \
- GC_find_start(current, hhdr, source)
-#else
-# define GC_FIND_START(current, hhdr, source) \
- GC_find_start(current, hhdr)
-#endif
-
-/* Push the contents of current onto the mark stack if it is a valid */
-/* ptr to a currently unmarked object. Mark it. */
-/* If we assumed a standard-conforming compiler, we could probably */
-/* generate the exit_label transparently. */
-# define PUSH_CONTENTS(current, mark_stack_top, mark_stack_limit, \
- source, exit_label) \
-{ \
- hdr * my_hhdr; \
- ptr_t my_current = current; \
- \
- GET_HDR(my_current, my_hhdr); \
- if (IS_FORWARDING_ADDR_OR_NIL(my_hhdr)) { \
- my_current = GC_FIND_START(my_current, my_hhdr, (word)source); \
- if (my_current == 0) goto exit_label; \
- my_hhdr = GC_find_header(my_current); \
- } \
- PUSH_CONTENTS_HDR(my_current, mark_stack_top, mark_stack_limit, \
- source, exit_label, my_hhdr); \
-exit_label: ; \
-}
-
-/* As above, but use header cache for header lookup. */
-# define HC_PUSH_CONTENTS(current, mark_stack_top, mark_stack_limit, \
- source, exit_label) \
-{ \
- hdr * my_hhdr; \
- ptr_t my_current = current; \
- \
- HC_GET_HDR(my_current, my_hhdr, source); \
- PUSH_CONTENTS_HDR(my_current, mark_stack_top, mark_stack_limit, \
- source, exit_label, my_hhdr); \
-exit_label: ; \
-}
-
-/* As above, but deal with two pointers in interleaved fashion. */
-# define HC_PUSH_CONTENTS2(current1, current2, mark_stack_top, \
- mark_stack_limit, \
- source1, source2, exit_label1, exit_label2) \
-{ \
- hdr * hhdr1; \
- ptr_t my_current1 = current1; \
- hdr * hhdr2; \
- ptr_t my_current2 = current2; \
- \
- HC_GET_HDR2(my_current1, hhdr1, source1, my_current2, hhdr2, source2); \
- PUSH_CONTENTS_HDR(my_current1, mark_stack_top, mark_stack_limit, \
- source1, exit_label1, hhdr1); \
-exit_label1: ; \
- if (0 != hhdr2) { \
- PUSH_CONTENTS_HDR(my_current2, mark_stack_top, mark_stack_limit, \
- source2, exit_label2, hhdr2); \
- } \
-exit_label2: ; \
-}
-
-# define PUSH_CONTENTS_HDR(current, mark_stack_top, mark_stack_limit, \
- source, exit_label, hhdr) \
-{ \
- int displ; /* Displacement in block; first bytes, then words */ \
- map_entry_type map_entry; \
- \
- displ = HBLKDISPL(current); \
- map_entry = MAP_ENTRY((hhdr -> hb_map), displ); \
- if (map_entry == OBJ_INVALID) { \
- GC_ADD_TO_BLACK_LIST_NORMAL(current, source); goto exit_label; \
- } \
- displ = BYTES_TO_WORDS(displ); \
- displ -= map_entry; \
- \
- { \
- register word * mark_word_addr = hhdr -> hb_marks + divWORDSZ(displ); \
- register word mark_word = *mark_word_addr; \
- register word mark_bit = (word)1 << modWORDSZ(displ); \
- \
- if (mark_word & mark_bit) { \
- /* Mark bit is already set */ \
- goto exit_label; \
- } \
- GC_STORE_BACK_PTR((ptr_t)source, (ptr_t)HBLKPTR(current) \
- + WORDS_TO_BYTES(displ)); \
- *mark_word_addr = mark_word | mark_bit; \
- } \
- PUSH_OBJ(((word *)(HBLKPTR(current)) + displ), hhdr, \
- mark_stack_top, mark_stack_limit) \
-}
-
-#if defined(PRINT_BLACK_LIST) || defined(KEEP_BACK_PTRS)
-# define PUSH_ONE_CHECKED(p, ip, source) \
- GC_push_one_checked(p, ip, (ptr_t)(source))
-#else
-# define PUSH_ONE_CHECKED(p, ip, source) \
- GC_push_one_checked(p, ip)
-#endif
-
-/*
- * Push a single value onto mark stack. Mark from the object pointed to by p.
- * P is considered valid even if it is an interior pointer.
- * Previously marked objects are not pushed. Hence we make progress even
- * if the mark stack overflows.
- */
-# define GC_PUSH_ONE_STACK(p, source) \
- if ((ptr_t)(p) >= GC_least_plausible_heap_addr \
- && (ptr_t)(p) < GC_greatest_plausible_heap_addr) { \
- PUSH_ONE_CHECKED(p, TRUE, source); \
- }
-
-/*
- * As above, but interior pointer recognition as for
- * normal for heap pointers.
- */
-# ifdef ALL_INTERIOR_POINTERS
-# define AIP TRUE
-# else
-# define AIP FALSE
-# endif
-# define GC_PUSH_ONE_HEAP(p,source) \
- if ((ptr_t)(p) >= GC_least_plausible_heap_addr \
- && (ptr_t)(p) < GC_greatest_plausible_heap_addr) { \
- PUSH_ONE_CHECKED(p,AIP,source); \
- }
-
-/*
- * Mark from one finalizable object using the specified
- * mark proc. May not mark the object pointed to by
- * real_ptr. That is the job of the caller, if appropriate
- */
-# define GC_MARK_FO(real_ptr, mark_proc) \
-{ \
- (*(mark_proc))(real_ptr); \
- while (!GC_mark_stack_empty()) GC_mark_from_mark_stack(); \
- if (GC_mark_state != MS_NONE) { \
- GC_set_mark_bit(real_ptr); \
- while (!GC_mark_some((ptr_t)0)); \
- } \
-}
-
-extern GC_bool GC_mark_stack_too_small;
- /* We need a larger mark stack. May be */
- /* set by client supplied mark routines.*/
-
-typedef int mark_state_t; /* Current state of marking, as follows:*/
- /* Used to remember where we are during */
- /* concurrent marking. */
-
- /* We say something is dirty if it was */
- /* written since the last time we */
- /* retrieved dirty bits. We say it's */
- /* grungy if it was marked dirty in the */
- /* last set of bits we retrieved. */
-
- /* Invariant I: all roots and marked */
- /* objects p are either dirty, or point */
- /* to objects q that are either marked */
- /* or a pointer to q appears in a range */
- /* on the mark stack. */
-
-# define MS_NONE 0 /* No marking in progress. I holds. */
- /* Mark stack is empty. */
-
-# define MS_PUSH_RESCUERS 1 /* Rescuing objects are currently */
- /* being pushed. I holds, except */
- /* that grungy roots may point to */
- /* unmarked objects, as may marked */
- /* grungy objects above scan_ptr. */
-
-# define MS_PUSH_UNCOLLECTABLE 2
- /* I holds, except that marked */
- /* uncollectable objects above scan_ptr */
- /* may point to unmarked objects. */
- /* Roots may point to unmarked objects */
-
-# define MS_ROOTS_PUSHED 3 /* I holds, mark stack may be nonempty */
-
-# define MS_PARTIALLY_INVALID 4 /* I may not hold, e.g. because of M.S. */
- /* overflow. However marked heap */
- /* objects below scan_ptr point to */
- /* marked or stacked objects. */
-
-# define MS_INVALID 5 /* I may not hold. */
-
-extern mark_state_t GC_mark_state;
-
-#endif /* GC_MARK_H */
-
diff --git a/boehm-gc/gc_priv.h b/boehm-gc/gc_priv.h
deleted file mode 100644
index c0fa5d6e93c..00000000000
--- a/boehm-gc/gc_priv.h
+++ /dev/null
@@ -1,1894 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 16, 1996 2:30 pm PST */
-
-
-# ifndef GC_PRIVATE_H
-# define GC_PRIVATE_H
-
-#if defined(mips) && defined(SYSTYPE_BSD) && defined(sony_news)
- /* sony RISC NEWS, NEWSOS 4 */
-# define BSD_TIME
-/* typedef long ptrdiff_t; -- necessary on some really old systems */
-#endif
-
-#if defined(mips) && defined(SYSTYPE_BSD43)
- /* MIPS RISCOS 4 */
-# define BSD_TIME
-#endif
-
-#ifdef BSD_TIME
-# include <sys/types.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-#endif /* BSD_TIME */
-
-# ifndef GC_H
-# include "gc.h"
-# endif
-
-typedef GC_word word;
-typedef GC_signed_word signed_word;
-
-# ifndef GCCONFIG_H
-# include "gcconfig.h"
-# endif
-
-# ifndef HEADERS_H
-# include "gc_hdrs.h"
-# endif
-
-typedef int GC_bool;
-# define TRUE 1
-# define FALSE 0
-
-typedef char * ptr_t; /* A generic pointer to which we can add */
- /* byte displacements. */
- /* Preferably identical to caddr_t, if it */
- /* exists. */
-
-#if defined(__STDC__)
-# include <stdlib.h>
-# if !(defined( sony_news ) )
-# include <stddef.h>
-# endif
-# define VOLATILE volatile
-#else
-# ifdef MSWIN32
-# include <stdlib.h>
-# endif
-# define VOLATILE
-#endif
-
-#define CONST GC_CONST
-
-#if 0 /* was once defined for AMIGA */
-# define GC_FAR __far
-#else
-# define GC_FAR
-#endif
-
-
-/*********************************/
-/* */
-/* Definitions for conservative */
-/* collector */
-/* */
-/*********************************/
-
-/*********************************/
-/* */
-/* Easily changeable parameters */
-/* */
-/*********************************/
-
-#define STUBBORN_ALLOC /* Define stubborn allocation primitives */
-#if defined(SRC_M3) || defined(SMALL_CONFIG)
-# undef STUBBORN_ALLOC
-#endif
-
-
-/* #define ALL_INTERIOR_POINTERS */
- /* Forces all pointers into the interior of an */
- /* object to be considered valid. Also causes the */
- /* sizes of all objects to be inflated by at least */
- /* one byte. This should suffice to guarantee */
- /* that in the presence of a compiler that does */
- /* not perform garbage-collector-unsafe */
- /* optimizations, all portable, strictly ANSI */
- /* conforming C programs should be safely usable */
- /* with malloc replaced by GC_malloc and free */
- /* calls removed. There are several disadvantages: */
- /* 1. There are probably no interesting, portable, */
- /* strictly ANSI conforming C programs. */
- /* 2. This option makes it hard for the collector */
- /* to allocate space that is not ``pointed to'' */
- /* by integers, etc. Under SunOS 4.X with a */
- /* statically linked libc, we empiricaly */
- /* observed that it would be difficult to */
- /* allocate individual objects larger than 100K. */
- /* Even if only smaller objects are allocated, */
- /* more swap space is likely to be needed. */
- /* Fortunately, much of this will never be */
- /* touched. */
- /* If you can easily avoid using this option, do. */
- /* If not, try to keep individual objects small. */
-
-#define PRINTSTATS /* Print garbage collection statistics */
- /* For less verbose output, undefine in reclaim.c */
-
-#define PRINTTIMES /* Print the amount of time consumed by each garbage */
- /* collection. */
-
-#define PRINTBLOCKS /* Print object sizes associated with heap blocks, */
- /* whether the objects are atomic or composite, and */
- /* whether or not the block was found to be empty */
- /* during the reclaim phase. Typically generates */
- /* about one screenful per garbage collection. */
-#undef PRINTBLOCKS
-
-#ifdef SILENT
-# ifdef PRINTSTATS
-# undef PRINTSTATS
-# endif
-# ifdef PRINTTIMES
-# undef PRINTTIMES
-# endif
-# ifdef PRINTNBLOCKS
-# undef PRINTNBLOCKS
-# endif
-#endif
-
-#if defined(PRINTSTATS) && !defined(GATHERSTATS)
-# define GATHERSTATS
-#endif
-
-#ifdef FINALIZE_ON_DEMAND
-# define GC_INVOKE_FINALIZERS()
-#else
-# define GC_INVOKE_FINALIZERS() (void)GC_invoke_finalizers()
-#endif
-
-#define MERGE_SIZES /* Round up some object sizes, so that fewer distinct */
- /* free lists are actually maintained. This applies */
- /* only to the top level routines in misc.c, not to */
- /* user generated code that calls GC_allocobj and */
- /* GC_allocaobj directly. */
- /* Slows down average programs slightly. May however */
- /* substantially reduce fragmentation if allocation */
- /* request sizes are widely scattered. */
- /* May save significant amounts of space for obj_map */
- /* entries. */
-
-/* ALIGN_DOUBLE requires MERGE_SIZES at present. */
-# if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES)
-# define MERGE_SIZES
-# endif
-
-#if defined(ALL_INTERIOR_POINTERS) && !defined(DONT_ADD_BYTE_AT_END)
-# define ADD_BYTE_AT_END
-#endif
-
-
-# ifndef LARGE_CONFIG
-# define MINHINCR 16 /* Minimum heap increment, in blocks of HBLKSIZE */
- /* Must be multiple of largest page size. */
-# define MAXHINCR 512 /* Maximum heap increment, in blocks */
-# else
-# define MINHINCR 64
-# define MAXHINCR 4096
-# endif
-
-# define TIME_LIMIT 50 /* We try to keep pause times from exceeding */
- /* this by much. In milliseconds. */
-
-# define BL_LIMIT GC_black_list_spacing
- /* If we need a block of N bytes, and we have */
- /* a block of N + BL_LIMIT bytes available, */
- /* and N > BL_LIMIT, */
- /* but all possible positions in it are */
- /* blacklisted, we just use it anyway (and */
- /* print a warning, if warnings are enabled). */
- /* This risks subsequently leaking the block */
- /* due to a false reference. But not using */
- /* the block risks unreasonable immediate */
- /* heap growth. */
-
-/*********************************/
-/* */
-/* Stack saving for debugging */
-/* */
-/*********************************/
-
-#ifdef SAVE_CALL_CHAIN
-
-/*
- * Number of frames and arguments to save in objects allocated by
- * debugging allocator.
- */
-# define NFRAMES 6 /* Number of frames to save. Even for */
- /* alignment reasons. */
-# define NARGS 2 /* Mumber of arguments to save for each call. */
-
-# define NEED_CALLINFO
-
-/* Fill in the pc and argument information for up to NFRAMES of my */
-/* callers. Ignore my frame and my callers frame. */
-void GC_save_callers (/* struct callinfo info[NFRAMES] */);
-
-void GC_print_callers (/* struct callinfo info[NFRAMES] */);
-
-#else
-
-# ifdef GC_ADD_CALLER
-# define NFRAMES 1
-# define NARGS 0
-# define NEED_CALLINFO
-# endif
-
-#endif
-
-#ifdef NEED_CALLINFO
- struct callinfo {
- word ci_pc;
-# if NARGS > 0
- word ci_arg[NARGS]; /* bit-wise complement to avoid retention */
-# endif
-# if defined(ALIGN_DOUBLE) && (NFRAMES * (NARGS + 1)) % 2 == 1
- /* Likely alignment problem. */
- word ci_dummy;
-# endif
- };
-#endif
-
-
-/*********************************/
-/* */
-/* OS interface routines */
-/* */
-/*********************************/
-
-#ifdef BSD_TIME
-# undef CLOCK_TYPE
-# undef GET_TIME
-# undef MS_TIME_DIFF
-# define CLOCK_TYPE struct timeval
-# define GET_TIME(x) { struct rusage rusage; \
- getrusage (RUSAGE_SELF, &rusage); \
- x = rusage.ru_utime; }
-# define MS_TIME_DIFF(a,b) ((double) (a.tv_sec - b.tv_sec) * 1000.0 \
- + (double) (a.tv_usec - b.tv_usec) / 1000.0)
-#else /* !BSD_TIME */
-# ifdef MSWIN32
-# include <windows.h>
-# include <winbase.h>
-# define CLOCK_TYPE DWORD
-# define GET_TIME(x) x = GetTickCount()
-# define MS_TIME_DIFF(a,b) ((long)((a)-(b)))
-# else /* !MSWIN32, !BSD_TIME */
-# include <time.h>
-# if !defined(__STDC__) && defined(SPARC) && defined(SUNOS4)
- clock_t clock(); /* Not in time.h, where it belongs */
-# endif
-# if defined(FREEBSD) && !defined(CLOCKS_PER_SEC)
-# include <machine/limits.h>
-# define CLOCKS_PER_SEC CLK_TCK
-# endif
-# if !defined(CLOCKS_PER_SEC)
-# define CLOCKS_PER_SEC 1000000
-/*
- * This is technically a bug in the implementation. ANSI requires that
- * CLOCKS_PER_SEC be defined. But at least under SunOS4.1.1, it isn't.
- * Also note that the combination of ANSI C and POSIX is incredibly gross
- * here. The type clock_t is used by both clock() and times(). But on
- * some machines these use different notions of a clock tick, CLOCKS_PER_SEC
- * seems to apply only to clock. Hence we use it here. On many machines,
- * including SunOS, clock actually uses units of microseconds (which are
- * not really clock ticks).
- */
-# endif
-# define CLOCK_TYPE clock_t
-# define GET_TIME(x) x = clock()
-# define MS_TIME_DIFF(a,b) ((unsigned long) \
- (1000.0*(double)((a)-(b))/(double)CLOCKS_PER_SEC))
-# endif /* !MSWIN32 */
-#endif /* !BSD_TIME */
-
-/* We use bzero and bcopy internally. They may not be available. */
-# if defined(SPARC) && defined(SUNOS4)
-# define BCOPY_EXISTS
-# endif
-# if defined(M68K) && defined(AMIGA)
-# define BCOPY_EXISTS
-# endif
-# if defined(M68K) && defined(NEXT)
-# define BCOPY_EXISTS
-# endif
-# if defined(VAX)
-# define BCOPY_EXISTS
-# endif
-# if defined(AMIGA)
-# include <string.h>
-# define BCOPY_EXISTS
-# endif
-
-# ifndef BCOPY_EXISTS
-# include <string.h>
-# define BCOPY(x,y,n) memcpy(y, x, (size_t)(n))
-# define BZERO(x,n) memset(x, 0, (size_t)(n))
-# else
-# define BCOPY(x,y,n) bcopy((char *)(x),(char *)(y),(int)(n))
-# define BZERO(x,n) bzero((char *)(x),(int)(n))
-# endif
-
-/* HBLKSIZE aligned allocation. 0 is taken to mean failure */
-/* space is assumed to be cleared. */
-/* In the case os USE_MMAP, the argument must also be a */
-/* physical page size. */
-/* GET_MEM is currently not assumed to retrieve 0 filled space, */
-/* though we should perhaps take advantage of the case in which */
-/* does. */
-# ifdef PCR
- char * real_malloc();
-# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
- + GC_page_size-1)
-# else
-# ifdef OS2
- void * os2_alloc(size_t bytes);
-# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
- + GC_page_size) \
- + GC_page_size-1)
-# else
-# if defined(AMIGA) || defined(NEXT) || defined(MACOSX) || defined(DOS4GW)
-# define GET_MEM(bytes) HBLKPTR((size_t) \
- calloc(1, (size_t)bytes + GC_page_size) \
- + GC_page_size-1)
-# else
-# ifdef MSWIN32
- extern ptr_t GC_win32_get_mem();
-# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
-# else
-# ifdef MACOS
-# if defined(USE_TEMPORARY_MEMORY)
- extern Ptr GC_MacTemporaryNewPtr(size_t size,
- Boolean clearMemory);
-# define GET_MEM(bytes) HBLKPTR( \
- GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
- + GC_page_size-1)
-# else
-# define GET_MEM(bytes) HBLKPTR( \
- NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
-# endif
-# else
- extern ptr_t GC_unix_get_mem();
-# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
-# endif
-# endif
-# endif
-# endif
-# endif
-
-/*
- * Mutual exclusion between allocator/collector routines.
- * Needed if there is more than one allocator thread.
- * FASTLOCK() is assumed to try to acquire the lock in a cheap and
- * dirty way that is acceptable for a few instructions, e.g. by
- * inhibiting preemption. This is assumed to have succeeded only
- * if a subsequent call to FASTLOCK_SUCCEEDED() returns TRUE.
- * FASTUNLOCK() is called whether or not FASTLOCK_SUCCEEDED().
- * If signals cannot be tolerated with the FASTLOCK held, then
- * FASTLOCK should disable signals. The code executed under
- * FASTLOCK is otherwise immune to interruption, provided it is
- * not restarted.
- * DCL_LOCK_STATE declares any local variables needed by LOCK and UNLOCK
- * and/or DISABLE_SIGNALS and ENABLE_SIGNALS and/or FASTLOCK.
- * (There is currently no equivalent for FASTLOCK.)
- */
-# ifdef THREADS
-# ifdef PCR_OBSOLETE /* Faster, but broken with multiple lwp's */
-# include "th/PCR_Th.h"
-# include "th/PCR_ThCrSec.h"
- extern struct PCR_Th_MLRep GC_allocate_ml;
-# define DCL_LOCK_STATE PCR_sigset_t GC_old_sig_mask
-# define LOCK() PCR_Th_ML_Acquire(&GC_allocate_ml)
-# define UNLOCK() PCR_Th_ML_Release(&GC_allocate_ml)
-# define FASTLOCK() PCR_ThCrSec_EnterSys()
- /* Here we cheat (a lot): */
-# define FASTLOCK_SUCCEEDED() (*(int *)(&GC_allocate_ml) == 0)
- /* TRUE if nobody currently holds the lock */
-# define FASTUNLOCK() PCR_ThCrSec_ExitSys()
-# endif
-# ifdef PCR
-# include <base/PCR_Base.h>
-# include <th/PCR_Th.h>
- extern PCR_Th_ML GC_allocate_ml;
-# define DCL_LOCK_STATE \
- PCR_ERes GC_fastLockRes; PCR_sigset_t GC_old_sig_mask
-# define LOCK() PCR_Th_ML_Acquire(&GC_allocate_ml)
-# define UNLOCK() PCR_Th_ML_Release(&GC_allocate_ml)
-# define FASTLOCK() (GC_fastLockRes = PCR_Th_ML_Try(&GC_allocate_ml))
-# define FASTLOCK_SUCCEEDED() (GC_fastLockRes == PCR_ERes_okay)
-# define FASTUNLOCK() {\
- if( FASTLOCK_SUCCEEDED() ) PCR_Th_ML_Release(&GC_allocate_ml); }
-# endif
-# ifdef SRC_M3
- extern word RT0u__inCritical;
-# define LOCK() RT0u__inCritical++
-# define UNLOCK() RT0u__inCritical--
-# endif
-# ifdef SOLARIS_THREADS
-# include <thread.h>
-# include <signal.h>
- extern mutex_t GC_allocate_ml;
-# define LOCK() mutex_lock(&GC_allocate_ml);
-# define UNLOCK() mutex_unlock(&GC_allocate_ml);
-# endif
-# if defined(LINUX_THREADS)
-# if defined(I386)|| defined(POWERPC) || defined(ALPHA) || defined(IA64) \
- || defined(M68K) || defined(SPARC)
-# include <pthread.h>
-# define USE_SPIN_LOCK
-# if defined(I386)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- /* Note: the "xchg" instruction does not need a "lock" prefix */
- __asm__ __volatile__("xchgl %0, %1"
- : "=r"(oldval), "=m"(*(addr))
- : "0"(1), "m"(*(addr)));
- return oldval;
- }
-# endif
-# if defined(IA64)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- __asm__ __volatile__("xchg4 %0=%1,%2"
- : "=r"(oldval), "=m"(*addr)
- : "r"(1), "1"(*addr));
- return oldval;
- }
- inline static void GC_clear(volatile unsigned int *addr) {
- __asm__ __volatile__("st4.rel %0=r0" : "=m" (*addr));
- }
-# define GC_CLEAR_DEFINED
-# endif
-# ifdef SPARC
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
-
- __asm__ __volatile__("ldstub %1,%0"
- : "=r"(oldval), "=m"(*addr)
- : "m"(*addr));
- return oldval;
- }
-# endif
-# ifdef M68K
- /* Contributed by Tony Mantler. I'm not sure how well it was */
- /* tested. */
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- char oldval; /* this must be no longer than 8 bits */
-
- /* The return value is semi-phony. */
- /* 'tas' sets bit 7 while the return */
- /* value pretends bit 0 was set */
- __asm__ __volatile__(
- "tas %1@; sne %0; negb %0"
- : "=d" (oldval)
- : "a" (addr));
- return oldval;
- }
-# endif
-# if defined(POWERPC)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- int temp = 1; // locked value
-
- __asm__ __volatile__(
- "1:\tlwarx %0,0,%3\n" // load and reserve
- "\tcmpwi %0, 0\n" // if load is
- "\tbne 2f\n" // non-zero, return already set
- "\tstwcx. %2,0,%1\n" // else store conditional
- "\tbne- 1b\n" // retry if lost reservation
- "2:\t\n" // oldval is zero if we set
- : "=&r"(oldval), "=p"(addr)
- : "r"(temp), "1"(addr)
- : "memory");
- return (int)oldval;
- }
- inline static void GC_clear(volatile unsigned int *addr) {
- __asm__ __volatile__("eieio");
- *(addr) = 0;
- }
-# define GC_CLEAR_DEFINED
-# endif
-# ifdef ALPHA
- inline static int GC_test_and_set(volatile unsigned int * addr)
- {
- unsigned long oldvalue;
- unsigned long temp;
-
- __asm__ __volatile__(
- "1: ldl_l %0,%1\n"
- " and %0,%3,%2\n"
- " bne %2,2f\n"
- " xor %0,%3,%0\n"
- " stl_c %0,%1\n"
- " beq %0,3f\n"
- " mb\n"
- "2:\n"
- ".section .text2,\"ax\"\n"
- "3: br 1b\n"
- ".previous"
- :"=&r" (temp), "=m" (*addr), "=&r" (oldvalue)
- :"Ir" (1), "m" (*addr));
-
- return oldvalue;
- }
- /* Should probably also define GC_clear, since it needs */
- /* a memory barrier ?? */
-# endif /* ALPHA */
-# ifdef ARM32
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- /* SWP on ARM is very similar to XCHG on x86. Doesn't lock the
- * bus because there are no SMP ARM machines. If/when there are,
- * this code will likely need to be updated. */
- /* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */
- __asm__ __volatile__("swp %0, %1, [%2]"
- : "=r"(oldval)
- : "r"(1), "r"(addr));
- return oldval;
- }
-# endif
-# ifndef GC_CLEAR_DEFINED
- inline static void GC_clear(volatile unsigned int *addr) {
- /* Try to discourage gcc from moving anything past this. */
- __asm__ __volatile__(" ");
- *(addr) = 0;
- }
-# endif
-
- extern volatile unsigned int GC_allocate_lock;
- extern pthread_t GC_lock_holder;
- extern void GC_lock(void);
- /* Allocation lock holder. Only set if acquired by client through */
- /* GC_call_with_alloc_lock. */
-# define SET_LOCK_HOLDER() GC_lock_holder = pthread_self()
-# define NO_THREAD (pthread_t)(-1)
-# define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD
-# define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self()))
-# define LOCK() \
- { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); }
-# define UNLOCK() \
- GC_clear(&GC_allocate_lock)
- extern VOLATILE GC_bool GC_collecting;
-# define ENTER_GC() \
- { \
- GC_collecting = 1; \
- }
-# define EXIT_GC() GC_collecting = 0;
-# else /* LINUX_THREADS on hardware for which we don't know how */
- /* to do test and set. */
-# include <pthread.h>
- extern pthread_mutex_t GC_allocate_ml;
-# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
-# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
-# endif
-# endif /* LINUX_THREADS */
-# if defined(HPUX_THREADS)
-# include <pthread.h>
- extern pthread_mutex_t GC_allocate_ml;
-# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
-# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
-# endif
-# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS)
- /* This may also eventually be appropriate for HPUX_THREADS */
-# include <pthread.h>
-# ifndef HPUX_THREADS
- /* This probably should never be included, but I can't test */
- /* on Irix anymore. */
-# include <mutex.h>
-# endif
-
-# ifndef HPUX_THREADS
-# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
- || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
-# define GC_test_and_set(addr, v) test_and_set(addr,v)
-# else
-# define GC_test_and_set(addr, v) __test_and_set(addr,v)
-# endif
-# else
- /* I couldn't find a way to do this inline on HP/UX */
-# endif
- extern unsigned long GC_allocate_lock;
- /* This is not a mutex because mutexes that obey the (optional) */
- /* POSIX scheduling rules are subject to convoys in high contention */
- /* applications. This is basically a spin lock. */
- extern pthread_t GC_lock_holder;
- extern void GC_lock(void);
- /* Allocation lock holder. Only set if acquired by client through */
- /* GC_call_with_alloc_lock. */
-# define SET_LOCK_HOLDER() GC_lock_holder = pthread_self()
-# define NO_THREAD (pthread_t)(-1)
-# define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD
-# define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self()))
-# ifdef HPUX_THREADS
-# define LOCK() { if (!GC_test_and_clear(&GC_allocate_lock)) GC_lock(); }
- /* The following is INCORRECT, since the memory model is too weak. */
-# define UNLOCK() { GC_noop1(&GC_allocate_lock); \
- *(volatile unsigned long *)(&GC_allocate_lock) = 1; }
-# else
-# define LOCK() { if (GC_test_and_set(&GC_allocate_lock, 1)) GC_lock(); }
-# if __mips >= 3 && (defined (_ABIN32) || defined(_ABI64)) \
- && defined(_COMPILER_VERSION) && _COMPILER_VERSION >= 700
-# define UNLOCK() __lock_release(&GC_allocate_lock)
-# else
- /* The function call in the following should prevent the */
- /* compiler from moving assignments to below the UNLOCK. */
- /* This is probably not necessary for ucode or gcc 2.8. */
- /* It may be necessary for Ragnarok and future gcc */
- /* versions. */
-# define UNLOCK() { GC_noop1(&GC_allocate_lock); \
- *(volatile unsigned long *)(&GC_allocate_lock) = 0; }
-# endif
-# endif
- extern VOLATILE GC_bool GC_collecting;
-# define ENTER_GC() \
- { \
- GC_collecting = 1; \
- }
-# define EXIT_GC() GC_collecting = 0;
-# endif /* IRIX_THREADS || IRIX_JDK_THREADS */
-# ifdef WIN32_THREADS
-# include <windows.h>
- GC_API CRITICAL_SECTION GC_allocate_ml;
-# define LOCK() EnterCriticalSection(&GC_allocate_ml);
-# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
-# endif
-# ifndef SET_LOCK_HOLDER
-# define SET_LOCK_HOLDER()
-# define UNSET_LOCK_HOLDER()
-# define I_HOLD_LOCK() FALSE
- /* Used on platforms were locks can be reacquired, */
- /* so it doesn't matter if we lie. */
-# endif
-# else
-# define LOCK()
-# define UNLOCK()
-# endif
-# ifndef SET_LOCK_HOLDER
-# define SET_LOCK_HOLDER()
-# define UNSET_LOCK_HOLDER()
-# define I_HOLD_LOCK() FALSE
- /* Used on platforms were locks can be reacquired, */
- /* so it doesn't matter if we lie. */
-# endif
-# ifndef ENTER_GC
-# define ENTER_GC()
-# define EXIT_GC()
-# endif
-
-# ifndef DCL_LOCK_STATE
-# define DCL_LOCK_STATE
-# endif
-# ifndef FASTLOCK
-# define FASTLOCK() LOCK()
-# define FASTLOCK_SUCCEEDED() TRUE
-# define FASTUNLOCK() UNLOCK()
-# endif
-
-/* Delay any interrupts or signals that may abort this thread. Data */
-/* structures are in a consistent state outside this pair of calls. */
-/* ANSI C allows both to be empty (though the standard isn't very */
-/* clear on that point). Standard malloc implementations are usually */
-/* neither interruptable nor thread-safe, and thus correspond to */
-/* empty definitions. */
-# ifdef PCR
-# define DISABLE_SIGNALS() \
- PCR_Th_SetSigMask(PCR_allSigsBlocked,&GC_old_sig_mask)
-# define ENABLE_SIGNALS() \
- PCR_Th_SetSigMask(&GC_old_sig_mask, NIL)
-# else
-# if defined(SRC_M3) || defined(AMIGA) || defined(SOLARIS_THREADS) \
- || defined(MSWIN32) || defined(MACOS) || defined(DJGPP) \
- || defined(NO_SIGNALS) || defined(IRIX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(LINUX_THREADS)
- /* Also useful for debugging. */
- /* Should probably use thr_sigsetmask for SOLARIS_THREADS. */
-# define DISABLE_SIGNALS()
-# define ENABLE_SIGNALS()
-# else
-# define DISABLE_SIGNALS() GC_disable_signals()
- void GC_disable_signals();
-# define ENABLE_SIGNALS() GC_enable_signals()
- void GC_enable_signals();
-# endif
-# endif
-
-/*
- * Stop and restart mutator threads.
- */
-# ifdef PCR
-# include "th/PCR_ThCtl.h"
-# define STOP_WORLD() \
- PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_stopNormal, \
- PCR_allSigsBlocked, \
- PCR_waitForever)
-# define START_WORLD() \
- PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_null, \
- PCR_allSigsBlocked, \
- PCR_waitForever);
-# else
-# if defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \
- || defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- void GC_stop_world();
- void GC_start_world();
-# define STOP_WORLD() GC_stop_world()
-# define START_WORLD() GC_start_world()
-# else
-# define STOP_WORLD()
-# define START_WORLD()
-# endif
-# endif
-
-/* Abandon ship */
-# ifdef PCR
-# define ABORT(s) PCR_Base_Panic(s)
-# else
-# ifdef SMALL_CONFIG
-# define ABORT(msg) abort();
-# else
- GC_API void GC_abort();
-# define ABORT(msg) GC_abort(msg);
-# endif
-# endif
-
-/* Exit abnormally, but without making a mess (e.g. out of memory) */
-# ifdef PCR
-# define EXIT() PCR_Base_Exit(1,PCR_waitForever)
-# else
-# define EXIT() (void)exit(1)
-# endif
-
-/* Print warning message, e.g. almost out of memory. */
-# define WARN(msg,arg) (*GC_current_warn_proc)(msg, (GC_word)(arg))
-extern GC_warn_proc GC_current_warn_proc;
-
-/*********************************/
-/* */
-/* Word-size-dependent defines */
-/* */
-/*********************************/
-
-#if CPP_WORDSZ == 32
-# define WORDS_TO_BYTES(x) ((x)<<2)
-# define BYTES_TO_WORDS(x) ((x)>>2)
-# define LOGWL ((word)5) /* log[2] of CPP_WORDSZ */
-# define modWORDSZ(n) ((n) & 0x1f) /* n mod size of word */
-# if ALIGNMENT != 4
-# define UNALIGNED
-# endif
-#endif
-
-#if CPP_WORDSZ == 64
-# define WORDS_TO_BYTES(x) ((x)<<3)
-# define BYTES_TO_WORDS(x) ((x)>>3)
-# define LOGWL ((word)6) /* log[2] of CPP_WORDSZ */
-# define modWORDSZ(n) ((n) & 0x3f) /* n mod size of word */
-# if ALIGNMENT != 8
-# define UNALIGNED
-# endif
-#endif
-
-#define WORDSZ ((word)CPP_WORDSZ)
-#define SIGNB ((word)1 << (WORDSZ-1))
-#define BYTES_PER_WORD ((word)(sizeof (word)))
-#define ONES ((word)(-1))
-#define divWORDSZ(n) ((n) >> LOGWL) /* divide n by size of word */
-
-/*********************/
-/* */
-/* Size Parameters */
-/* */
-/*********************/
-
-/* heap block size, bytes. Should be power of 2 */
-
-#ifndef HBLKSIZE
-# ifdef SMALL_CONFIG
-# define CPP_LOG_HBLKSIZE 10
-# else
-# if CPP_WORDSZ == 32
-# define CPP_LOG_HBLKSIZE 12
-# else
-# define CPP_LOG_HBLKSIZE 13
-# endif
-# endif
-#else
-# if HBLKSIZE == 512
-# define CPP_LOG_HBLKSIZE 9
-# endif
-# if HBLKSIZE == 1024
-# define CPP_LOG_HBLKSIZE 10
-# endif
-# if HBLKSIZE == 2048
-# define CPP_LOG_HBLKSIZE 11
-# endif
-# if HBLKSIZE == 4096
-# define CPP_LOG_HBLKSIZE 12
-# endif
-# if HBLKSIZE == 8192
-# define CPP_LOG_HBLKSIZE 13
-# endif
-# if HBLKSIZE == 16384
-# define CPP_LOG_HBLKSIZE 14
-# endif
-# ifndef CPP_LOG_HBLKSIZE
- --> fix HBLKSIZE
-# endif
-# undef HBLKSIZE
-#endif
-# define CPP_HBLKSIZE (1 << CPP_LOG_HBLKSIZE)
-# define LOG_HBLKSIZE ((word)CPP_LOG_HBLKSIZE)
-# define HBLKSIZE ((word)CPP_HBLKSIZE)
-
-
-/* max size objects supported by freelist (larger objects may be */
-/* allocated, but less efficiently) */
-
-#define CPP_MAXOBJSZ BYTES_TO_WORDS(CPP_HBLKSIZE/2)
-#define MAXOBJSZ ((word)CPP_MAXOBJSZ)
-
-# define divHBLKSZ(n) ((n) >> LOG_HBLKSIZE)
-
-# define HBLK_PTR_DIFF(p,q) divHBLKSZ((ptr_t)p - (ptr_t)q)
- /* Equivalent to subtracting 2 hblk pointers. */
- /* We do it this way because a compiler should */
- /* find it hard to use an integer division */
- /* instead of a shift. The bundled SunOS 4.1 */
- /* o.w. sometimes pessimizes the subtraction to */
- /* involve a call to .div. */
-
-# define modHBLKSZ(n) ((n) & (HBLKSIZE-1))
-
-# define HBLKPTR(objptr) ((struct hblk *)(((word) (objptr)) & ~(HBLKSIZE-1)))
-
-# define HBLKDISPL(objptr) (((word) (objptr)) & (HBLKSIZE-1))
-
-/* Round up byte allocation requests to integral number of words, etc. */
-# ifdef ADD_BYTE_AT_END
-# define ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1))
-# ifdef ALIGN_DOUBLE
-# define ALIGNED_WORDS(n) (BYTES_TO_WORDS((n) + WORDS_TO_BYTES(2)) & ~1)
-# else
-# define ALIGNED_WORDS(n) ROUNDED_UP_WORDS(n)
-# endif
-# define SMALL_OBJ(bytes) ((bytes) < WORDS_TO_BYTES(MAXOBJSZ))
-# define ADD_SLOP(bytes) ((bytes)+1)
-# else
-# define ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + (WORDS_TO_BYTES(1) - 1))
-# ifdef ALIGN_DOUBLE
-# define ALIGNED_WORDS(n) \
- (BYTES_TO_WORDS((n) + WORDS_TO_BYTES(2) - 1) & ~1)
-# else
-# define ALIGNED_WORDS(n) ROUNDED_UP_WORDS(n)
-# endif
-# define SMALL_OBJ(bytes) ((bytes) <= WORDS_TO_BYTES(MAXOBJSZ))
-# define ADD_SLOP(bytes) (bytes)
-# endif
-
-
-/*
- * Hash table representation of sets of pages. This assumes it is
- * OK to add spurious entries to sets.
- * Used by black-listing code, and perhaps by dirty bit maintenance code.
- */
-
-# ifdef LARGE_CONFIG
-# define LOG_PHT_ENTRIES 17
-# else
-# define LOG_PHT_ENTRIES 14 /* Collisions are likely if heap grows */
- /* to more than 16K hblks = 64MB. */
- /* Each hash table occupies 2K bytes. */
-# endif
-# define PHT_ENTRIES ((word)1 << LOG_PHT_ENTRIES)
-# define PHT_SIZE (PHT_ENTRIES >> LOGWL)
-typedef word page_hash_table[PHT_SIZE];
-
-# define PHT_HASH(addr) ((((word)(addr)) >> LOG_HBLKSIZE) & (PHT_ENTRIES - 1))
-
-# define get_pht_entry_from_index(bl, index) \
- (((bl)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
-# define set_pht_entry_from_index(bl, index) \
- (bl)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
-# define clear_pht_entry_from_index(bl, index) \
- (bl)[divWORDSZ(index)] &= ~((word)1 << modWORDSZ(index))
-
-
-
-/********************************************/
-/* */
-/* H e a p B l o c k s */
-/* */
-/********************************************/
-
-/* heap block header */
-#define HBLKMASK (HBLKSIZE-1)
-
-#define BITS_PER_HBLK (HBLKSIZE * 8)
-
-#define MARK_BITS_PER_HBLK (BITS_PER_HBLK/CPP_WORDSZ)
- /* upper bound */
- /* We allocate 1 bit/word. Only the first word */
- /* in each object is actually marked. */
-
-# ifdef ALIGN_DOUBLE
-# define MARK_BITS_SZ (((MARK_BITS_PER_HBLK + 2*CPP_WORDSZ - 1) \
- / (2*CPP_WORDSZ))*2)
-# else
-# define MARK_BITS_SZ ((MARK_BITS_PER_HBLK + CPP_WORDSZ - 1)/CPP_WORDSZ)
-# endif
- /* Upper bound on number of mark words per heap block */
-
-struct hblkhdr {
- word hb_sz; /* If in use, size in words, of objects in the block. */
- /* if free, the size in bytes of the whole block */
- struct hblk * hb_next; /* Link field for hblk free list */
- /* and for lists of chunks waiting to be */
- /* reclaimed. */
- struct hblk * hb_prev; /* Backwards link for free list. */
- word hb_descr; /* object descriptor for marking. See */
- /* mark.h. */
- char* hb_map; /* A pointer to a pointer validity map of the block. */
- /* See GC_obj_map. */
- /* Valid for all blocks with headers. */
- /* Free blocks point to GC_invalid_map. */
- unsigned char hb_obj_kind;
- /* Kind of objects in the block. Each kind */
- /* identifies a mark procedure and a set of */
- /* list headers. Sometimes called regions. */
- unsigned char hb_flags;
-# define IGNORE_OFF_PAGE 1 /* Ignore pointers that do not */
- /* point to the first page of */
- /* this object. */
-# define WAS_UNMAPPED 2 /* This is a free block, which has */
- /* been unmapped from the address */
- /* space. */
- /* GC_remap must be invoked on it */
- /* before it can be reallocated. */
- /* Only set with USE_MUNMAP. */
- unsigned short hb_last_reclaimed;
- /* Value of GC_gc_no when block was */
- /* last allocated or swept. May wrap. */
- /* For a free block, this is maintained */
- /* unly for USE_MUNMAP, and indicates */
- /* when the header was allocated, or */
- /* when the size of the block last */
- /* changed. */
- word hb_marks[MARK_BITS_SZ];
- /* Bit i in the array refers to the */
- /* object starting at the ith word (header */
- /* INCLUDED) in the heap block. */
- /* The lsb of word 0 is numbered 0. */
- /* Unused bits are invalid, and are */
- /* occasionally set, e.g for uncollectable */
- /* objects. */
-};
-
-/* heap block body */
-
-# define DISCARD_WORDS 0
- /* Number of words to be dropped at the beginning of each block */
- /* Must be a multiple of WORDSZ. May reasonably be nonzero */
- /* on machines that don't guarantee longword alignment of */
- /* pointers, so that the number of false hits is minimized. */
- /* 0 and WORDSZ are probably the only reasonable values. */
-
-# define BODY_SZ ((HBLKSIZE-WORDS_TO_BYTES(DISCARD_WORDS))/sizeof(word))
-
-struct hblk {
-# if (DISCARD_WORDS != 0)
- word garbage[DISCARD_WORDS];
-# endif
- word hb_body[BODY_SZ];
-};
-
-# define HDR_WORDS ((word)DISCARD_WORDS)
-# define HDR_BYTES ((word)WORDS_TO_BYTES(DISCARD_WORDS))
-
-# define OBJ_SZ_TO_BLOCKS(sz) \
- divHBLKSZ(HDR_BYTES + WORDS_TO_BYTES(sz) + HBLKSIZE-1)
- /* Size of block (in units of HBLKSIZE) needed to hold objects of */
- /* given sz (in words). */
-
-/* Object free list link */
-# define obj_link(p) (*(ptr_t *)(p))
-
-/* The type of mark procedures. This really belongs in gc_mark.h. */
-/* But we put it here, so that we can avoid scanning the mark proc */
-/* table. */
-typedef struct ms_entry * (*mark_proc)(/* word * addr,
- struct ms_entry *mark_stack_ptr,
- struct ms_entry *mark_stack_limit,
- word env */);
-# define LOG_MAX_MARK_PROCS 6
-# define MAX_MARK_PROCS (1 << LOG_MAX_MARK_PROCS)
-
-/* Root sets. Logically private to mark_rts.c. But we don't want the */
-/* tables scanned, so we put them here. */
-/* MAX_ROOT_SETS is the maximum number of ranges that can be */
-/* registered as static roots. */
-# ifdef LARGE_CONFIG
-# define MAX_ROOT_SETS 4096
-# else
-# ifdef PCR
-# define MAX_ROOT_SETS 1024
-# else
-# ifdef MSWIN32
-# define MAX_ROOT_SETS 512
- /* Under NT, we add only written pages, which can result */
- /* in many small root sets. */
-# else
-# define MAX_ROOT_SETS 64
-# endif
-# endif
-# endif
-
-# define MAX_EXCLUSIONS (MAX_ROOT_SETS/4)
-/* Maximum number of segments that can be excluded from root sets. */
-
-/*
- * Data structure for excluded static roots.
- */
-struct exclusion {
- ptr_t e_start;
- ptr_t e_end;
-};
-
-/* Data structure for list of root sets. */
-/* We keep a hash table, so that we can filter out duplicate additions. */
-/* Under Win32, we need to do a better job of filtering overlaps, so */
-/* we resort to sequential search, and pay the price. */
-struct roots {
- ptr_t r_start;
- ptr_t r_end;
-# ifndef MSWIN32
- struct roots * r_next;
-# endif
- GC_bool r_tmp;
- /* Delete before registering new dynamic libraries */
-};
-
-#ifndef MSWIN32
- /* Size of hash table index to roots. */
-# define LOG_RT_SIZE 6
-# define RT_SIZE (1 << LOG_RT_SIZE) /* Power of 2, may be != MAX_ROOT_SETS */
-#endif
-
-/* Lists of all heap blocks and free lists */
-/* as well as other random data structures */
-/* that should not be scanned by the */
-/* collector. */
-/* These are grouped together in a struct */
-/* so that they can be easily skipped by the */
-/* GC_mark routine. */
-/* The ordering is weird to make GC_malloc */
-/* faster by keeping the important fields */
-/* sufficiently close together that a */
-/* single load of a base register will do. */
-/* Scalars that could easily appear to */
-/* be pointers are also put here. */
-/* The main fields should precede any */
-/* conditionally included fields, so that */
-/* gc_inl.h will work even if a different set */
-/* of macros is defined when the client is */
-/* compiled. */
-
-struct _GC_arrays {
- word _heapsize;
- word _max_heapsize;
- word _requested_heapsize; /* Heap size due to explicit expansion */
- ptr_t _last_heap_addr;
- ptr_t _prev_heap_addr;
- word _large_free_bytes;
- /* Total bytes contained in blocks on large object free */
- /* list. */
- word _words_allocd_before_gc;
- /* Number of words allocated before this */
- /* collection cycle. */
- word _words_allocd;
- /* Number of words allocated during this collection cycle */
- word _words_wasted;
- /* Number of words wasted due to internal fragmentation */
- /* in large objects, or due to dropping blacklisted */
- /* blocks, since last gc. Approximate. */
- word _words_finalized;
- /* Approximate number of words in objects (and headers) */
- /* That became ready for finalization in the last */
- /* collection. */
- word _non_gc_bytes_at_gc;
- /* Number of explicitly managed bytes of storage */
- /* at last collection. */
- word _mem_freed;
- /* Number of explicitly deallocated words of memory */
- /* since last collection. */
- ptr_t _scratch_end_ptr;
- ptr_t _scratch_last_end_ptr;
- /* Used by headers.c, and can easily appear to point to */
- /* heap. */
- mark_proc _mark_procs[MAX_MARK_PROCS];
- /* Table of user-defined mark procedures. There is */
- /* a small number of these, which can be referenced */
- /* by DS_PROC mark descriptors. See gc_mark.h. */
- ptr_t _objfreelist[MAXOBJSZ+1];
- /* free list for objects */
- ptr_t _aobjfreelist[MAXOBJSZ+1];
- /* free list for atomic objs */
-
- ptr_t _uobjfreelist[MAXOBJSZ+1];
- /* uncollectable but traced objs */
- /* objects on this and auobjfreelist */
- /* are always marked, except during */
- /* garbage collections. */
-# ifdef ATOMIC_UNCOLLECTABLE
- ptr_t _auobjfreelist[MAXOBJSZ+1];
-# endif
- /* uncollectable but traced objs */
-
-# ifdef GATHERSTATS
- word _composite_in_use;
- /* Number of words in accessible composite */
- /* objects. */
- word _atomic_in_use;
- /* Number of words in accessible atomic */
- /* objects. */
-# endif
-# ifdef USE_MUNMAP
- word _unmapped_bytes;
-# endif
-# ifdef MERGE_SIZES
- unsigned _size_map[WORDS_TO_BYTES(MAXOBJSZ+1)];
- /* Number of words to allocate for a given allocation request in */
- /* bytes. */
-# endif
-
-# ifdef STUBBORN_ALLOC
- ptr_t _sobjfreelist[MAXOBJSZ+1];
-# endif
- /* free list for immutable objects */
- ptr_t _obj_map[MAXOBJSZ+1];
- /* If not NIL, then a pointer to a map of valid */
- /* object addresses. _obj_map[sz][i] is j if the */
- /* address block_start+i is a valid pointer */
- /* to an object at */
- /* block_start+i&~3 - WORDS_TO_BYTES(j). */
- /* (If ALL_INTERIOR_POINTERS is defined, then */
- /* instead ((short *)(hb_map[sz])[i] is j if */
- /* block_start+WORDS_TO_BYTES(i) is in the */
- /* interior of an object starting at */
- /* block_start+WORDS_TO_BYTES(i-j)). */
- /* It is OBJ_INVALID if */
- /* block_start+WORDS_TO_BYTES(i) is not */
- /* valid as a pointer to an object. */
- /* We assume all values of j <= OBJ_INVALID. */
- /* The zeroth entry corresponds to large objects.*/
-# ifdef ALL_INTERIOR_POINTERS
-# define map_entry_type short
-# define OBJ_INVALID 0x7fff
-# define MAP_ENTRY(map, bytes) \
- (((map_entry_type *)(map))[BYTES_TO_WORDS(bytes)])
-# define MAP_ENTRIES BYTES_TO_WORDS(HBLKSIZE)
-# define MAP_SIZE (MAP_ENTRIES * sizeof(map_entry_type))
-# define OFFSET_VALID(displ) TRUE
-# define CPP_MAX_OFFSET (HBLKSIZE - HDR_BYTES - 1)
-# define MAX_OFFSET ((word)CPP_MAX_OFFSET)
-# else
-# define map_entry_type char
-# define OBJ_INVALID 0x7f
-# define MAP_ENTRY(map, bytes) \
- (map)[bytes]
-# define MAP_ENTRIES HBLKSIZE
-# define MAP_SIZE MAP_ENTRIES
-# define CPP_MAX_OFFSET (WORDS_TO_BYTES(OBJ_INVALID) - 1)
-# define MAX_OFFSET ((word)CPP_MAX_OFFSET)
-# define VALID_OFFSET_SZ \
- (CPP_MAX_OFFSET > WORDS_TO_BYTES(CPP_MAXOBJSZ)? \
- CPP_MAX_OFFSET+1 \
- : WORDS_TO_BYTES(CPP_MAXOBJSZ)+1)
- char _valid_offsets[VALID_OFFSET_SZ];
- /* GC_valid_offsets[i] == TRUE ==> i */
- /* is registered as a displacement. */
-# define OFFSET_VALID(displ) GC_valid_offsets[displ]
- char _modws_valid_offsets[sizeof(word)];
- /* GC_valid_offsets[i] ==> */
- /* GC_modws_valid_offsets[i%sizeof(word)] */
-# endif
-# ifdef STUBBORN_ALLOC
- page_hash_table _changed_pages;
- /* Stubborn object pages that were changes since last call to */
- /* GC_read_changed. */
- page_hash_table _prev_changed_pages;
- /* Stubborn object pages that were changes before last call to */
- /* GC_read_changed. */
-# endif
-# if defined(PROC_VDB) || defined(MPROTECT_VDB)
- page_hash_table _grungy_pages; /* Pages that were dirty at last */
- /* GC_read_dirty. */
-# endif
-# ifdef MPROTECT_VDB
- VOLATILE page_hash_table _dirty_pages;
- /* Pages dirtied since last GC_read_dirty. */
-# endif
-# ifdef PROC_VDB
- page_hash_table _written_pages; /* Pages ever dirtied */
-# endif
-# ifdef LARGE_CONFIG
-# if CPP_WORDSZ > 32
-# define MAX_HEAP_SECTS 4096 /* overflows at roughly 64 GB */
-# else
-# define MAX_HEAP_SECTS 768 /* Separately added heap sections. */
-# endif
-# else
-# define MAX_HEAP_SECTS 256
-# endif
- struct HeapSect {
- ptr_t hs_start; word hs_bytes;
- } _heap_sects[MAX_HEAP_SECTS];
-# ifdef MSWIN32
- ptr_t _heap_bases[MAX_HEAP_SECTS];
- /* Start address of memory regions obtained from kernel. */
-# endif
- struct roots _static_roots[MAX_ROOT_SETS];
-# ifndef MSWIN32
- struct roots * _root_index[RT_SIZE];
-# endif
- struct exclusion _excl_table[MAX_EXCLUSIONS];
- /* Block header index; see gc_headers.h */
- bottom_index * _all_nils;
- bottom_index * _top_index [TOP_SZ];
-#ifdef SAVE_CALL_CHAIN
- struct callinfo _last_stack[NFRAMES]; /* Stack at last garbage collection.*/
- /* Useful for debugging mysterious */
- /* object disappearances. */
- /* In the multithreaded case, we */
- /* currently only save the calling */
- /* stack. */
-#endif
-};
-
-GC_API GC_FAR struct _GC_arrays GC_arrays;
-
-# define GC_objfreelist GC_arrays._objfreelist
-# define GC_aobjfreelist GC_arrays._aobjfreelist
-# define GC_uobjfreelist GC_arrays._uobjfreelist
-# ifdef ATOMIC_UNCOLLECTABLE
-# define GC_auobjfreelist GC_arrays._auobjfreelist
-# endif
-# define GC_sobjfreelist GC_arrays._sobjfreelist
-# define GC_valid_offsets GC_arrays._valid_offsets
-# define GC_modws_valid_offsets GC_arrays._modws_valid_offsets
-# ifdef STUBBORN_ALLOC
-# define GC_changed_pages GC_arrays._changed_pages
-# define GC_prev_changed_pages GC_arrays._prev_changed_pages
-# endif
-# define GC_obj_map GC_arrays._obj_map
-# define GC_last_heap_addr GC_arrays._last_heap_addr
-# define GC_prev_heap_addr GC_arrays._prev_heap_addr
-# define GC_words_allocd GC_arrays._words_allocd
-# define GC_words_wasted GC_arrays._words_wasted
-# define GC_large_free_bytes GC_arrays._large_free_bytes
-# define GC_words_finalized GC_arrays._words_finalized
-# define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc
-# define GC_mem_freed GC_arrays._mem_freed
-# define GC_scratch_end_ptr GC_arrays._scratch_end_ptr
-# define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr
-# define GC_mark_procs GC_arrays._mark_procs
-# define GC_heapsize GC_arrays._heapsize
-# define GC_max_heapsize GC_arrays._max_heapsize
-# define GC_requested_heapsize GC_arrays._requested_heapsize
-# define GC_words_allocd_before_gc GC_arrays._words_allocd_before_gc
-# define GC_heap_sects GC_arrays._heap_sects
-# define GC_last_stack GC_arrays._last_stack
-# ifdef USE_MUNMAP
-# define GC_unmapped_bytes GC_arrays._unmapped_bytes
-# endif
-# ifdef MSWIN32
-# define GC_heap_bases GC_arrays._heap_bases
-# endif
-# define GC_static_roots GC_arrays._static_roots
-# define GC_root_index GC_arrays._root_index
-# define GC_excl_table GC_arrays._excl_table
-# define GC_all_nils GC_arrays._all_nils
-# define GC_top_index GC_arrays._top_index
-# if defined(PROC_VDB) || defined(MPROTECT_VDB)
-# define GC_grungy_pages GC_arrays._grungy_pages
-# endif
-# ifdef MPROTECT_VDB
-# define GC_dirty_pages GC_arrays._dirty_pages
-# endif
-# ifdef PROC_VDB
-# define GC_written_pages GC_arrays._written_pages
-# endif
-# ifdef GATHERSTATS
-# define GC_composite_in_use GC_arrays._composite_in_use
-# define GC_atomic_in_use GC_arrays._atomic_in_use
-# endif
-# ifdef MERGE_SIZES
-# define GC_size_map GC_arrays._size_map
-# endif
-
-# define beginGC_arrays ((ptr_t)(&GC_arrays))
-# define endGC_arrays (((ptr_t)(&GC_arrays)) + (sizeof GC_arrays))
-
-#define USED_HEAP_SIZE (GC_heapsize - GC_large_free_bytes)
-
-/* Object kinds: */
-# define MAXOBJKINDS 16
-
-extern struct obj_kind {
- ptr_t *ok_freelist; /* Array of free listheaders for this kind of object */
- /* Point either to GC_arrays or to storage allocated */
- /* with GC_scratch_alloc. */
- struct hblk **ok_reclaim_list;
- /* List headers for lists of blocks waiting to be */
- /* swept. */
- word ok_descriptor; /* Descriptor template for objects in this */
- /* block. */
- GC_bool ok_relocate_descr;
- /* Add object size in bytes to descriptor */
- /* template to obtain descriptor. Otherwise */
- /* template is used as is. */
- GC_bool ok_init; /* Clear objects before putting them on the free list. */
-} GC_obj_kinds[MAXOBJKINDS];
-
-# define endGC_obj_kinds (((ptr_t)(&GC_obj_kinds)) + (sizeof GC_obj_kinds))
-
-# define end_gc_area ((ptr_t)endGC_arrays == (ptr_t)(&GC_obj_kinds) ? \
- endGC_obj_kinds : endGC_arrays)
-
-/* Predefined kinds: */
-# define PTRFREE 0
-# define NORMAL 1
-# define UNCOLLECTABLE 2
-# ifdef ATOMIC_UNCOLLECTABLE
-# define AUNCOLLECTABLE 3
-# define STUBBORN 4
-# define IS_UNCOLLECTABLE(k) (((k) & ~1) == UNCOLLECTABLE)
-# else
-# define STUBBORN 3
-# define IS_UNCOLLECTABLE(k) ((k) == UNCOLLECTABLE)
-# endif
-
-extern int GC_n_kinds;
-
-GC_API word GC_fo_entries;
-
-extern word GC_n_heap_sects; /* Number of separately added heap */
- /* sections. */
-
-extern word GC_page_size;
-
-# ifdef MSWIN32
-extern word GC_n_heap_bases; /* See GC_heap_bases. */
-# endif
-
-extern word GC_total_stack_black_listed;
- /* Number of bytes on stack blacklist. */
-
-extern word GC_black_list_spacing;
- /* Average number of bytes between blacklisted */
- /* blocks. Approximate. */
- /* Counts only blocks that are */
- /* "stack-blacklisted", i.e. that are */
- /* problematic in the interior of an object. */
-
-extern char * GC_invalid_map;
- /* Pointer to the nowhere valid hblk map */
- /* Blocks pointing to this map are free. */
-
-extern struct hblk * GC_hblkfreelist[];
- /* List of completely empty heap blocks */
- /* Linked through hb_next field of */
- /* header structure associated with */
- /* block. */
-
-extern GC_bool GC_is_initialized; /* GC_init() has been run. */
-
-extern GC_bool GC_objects_are_marked; /* There are marked objects in */
- /* the heap. */
-
-#ifndef SMALL_CONFIG
- extern GC_bool GC_incremental;
- /* Using incremental/generational collection. */
-#else
-# define GC_incremental FALSE
- /* Hopefully allow optimizer to remove some code. */
-#endif
-
-extern GC_bool GC_dirty_maintained;
- /* Dirty bits are being maintained, */
- /* either for incremental collection, */
- /* or to limit the root set. */
-
-extern word GC_root_size; /* Total size of registered root sections */
-
-extern GC_bool GC_debugging_started; /* GC_debug_malloc has been called. */
-
-extern ptr_t GC_least_plausible_heap_addr;
-extern ptr_t GC_greatest_plausible_heap_addr;
- /* Bounds on the heap. Guaranteed valid */
- /* Likely to include future heap expansion. */
-
-/* Operations */
-# ifndef abs
-# define abs(x) ((x) < 0? (-(x)) : (x))
-# endif
-
-
-/* Marks are in a reserved area in */
-/* each heap block. Each word has one mark bit associated */
-/* with it. Only those corresponding to the beginning of an */
-/* object are used. */
-
-
-/* Mark bit operations */
-
-/*
- * Retrieve, set, clear the mark bit corresponding
- * to the nth word in a given heap block.
- *
- * (Recall that bit n corresponds to object beginning at word n
- * relative to the beginning of the block, including unused words)
- */
-
-# define mark_bit_from_hdr(hhdr,n) (((hhdr)->hb_marks[divWORDSZ(n)] \
- >> (modWORDSZ(n))) & (word)1)
-# define set_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \
- |= (word)1 << modWORDSZ(n)
-
-# define clear_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \
- &= ~((word)1 << modWORDSZ(n))
-
-/* Important internal collector routines */
-
-ptr_t GC_approx_sp();
-
-GC_bool GC_should_collect();
-
-void GC_apply_to_all_blocks(/*fn, client_data*/);
- /* Invoke fn(hbp, client_data) for each */
- /* allocated heap block. */
-struct hblk * GC_next_used_block(/* struct hblk * h */);
- /* Return first in-use block >= h */
-struct hblk * GC_prev_block(/* struct hblk * h */);
- /* Return last block <= h. Returned block */
- /* is managed by GC, but may or may not be in */
- /* use. */
-void GC_mark_init();
-void GC_clear_marks(); /* Clear mark bits for all heap objects. */
-void GC_invalidate_mark_state(); /* Tell the marker that marked */
- /* objects may point to unmarked */
- /* ones, and roots may point to */
- /* unmarked objects. */
- /* Reset mark stack. */
-void GC_mark_from_mark_stack(); /* Mark from everything on the mark stack. */
- /* Return after about one pages worth of */
- /* work. */
-GC_bool GC_mark_stack_empty();
-GC_bool GC_mark_some(/* cold_gc_frame */);
- /* Perform about one pages worth of marking */
- /* work of whatever kind is needed. Returns */
- /* quickly if no collection is in progress. */
- /* Return TRUE if mark phase finished. */
-void GC_initiate_gc(); /* initiate collection. */
- /* If the mark state is invalid, this */
- /* becomes full colleection. Otherwise */
- /* it's partial. */
-void GC_push_all(/*b,t*/); /* Push everything in a range */
- /* onto mark stack. */
-void GC_push_dirty(/*b,t*/); /* Push all possibly changed */
- /* subintervals of [b,t) onto */
- /* mark stack. */
-#ifndef SMALL_CONFIG
- void GC_push_conditional(/* ptr_t b, ptr_t t, GC_bool all*/);
-#else
-# define GC_push_conditional(b, t, all) GC_push_all(b, t)
-#endif
- /* Do either of the above, depending */
- /* on the third arg. */
-void GC_push_all_stack(/*b,t*/); /* As above, but consider */
- /* interior pointers as valid */
-void GC_push_all_eager(/*b,t*/); /* Same as GC_push_all_stack, but */
- /* ensures that stack is scanned */
- /* immediately, not just scheduled */
- /* for scanning. */
-#ifndef THREADS
- void GC_push_all_stack_partially_eager(/* bottom, top, cold_gc_frame */);
- /* Similar to GC_push_all_eager, but only the */
- /* part hotter than cold_gc_frame is scanned */
- /* immediately. Needed to endure that callee- */
- /* save registers are not missed. */
-#else
- /* In the threads case, we push part of the current thread stack */
- /* with GC_push_all_eager when we push the registers. This gets the */
- /* callee-save registers that may disappear. The remainder of the */
- /* stacks are scheduled for scanning in *GC_push_other_roots, which */
- /* is thread-package-specific. */
-#endif
-void GC_push_current_stack(/* ptr_t cold_gc_frame */);
- /* Push enough of the current stack eagerly to */
- /* ensure that callee-save registers saved in */
- /* GC frames are scanned. */
- /* In the non-threads case, schedule entire */
- /* stack for scanning. */
-void GC_push_roots(/* GC_bool all, ptr_t cold_gc_frame */);
- /* Push all or dirty roots. */
-extern void (*GC_push_other_roots)();
- /* Push system or application specific roots */
- /* onto the mark stack. In some environments */
- /* (e.g. threads environments) this is */
- /* predfined to be non-zero. A client supplied */
- /* replacement should also call the original */
- /* function. */
-extern void (*GC_start_call_back)(/* void */);
- /* Called at start of full collections. */
- /* Not called if 0. Called with allocation */
- /* lock held. */
- /* 0 by default. */
-void GC_push_regs(); /* Push register contents onto mark stack. */
- /* If NURSERY is defined, the default push */
- /* action can be overridden with GC_push_proc */
-void GC_remark(); /* Mark from all marked objects. Used */
- /* only if we had to drop something. */
-
-# ifdef NURSERY
- extern void (*GC_push_proc)(ptr_t);
-# endif
-# if defined(MSWIN32)
- void __cdecl GC_push_one();
-# else
- void GC_push_one(/*p*/); /* If p points to an object, mark it */
- /* and push contents on the mark stack */
-# endif
-void GC_push_one_checked(/*p*/); /* Ditto, omits plausibility test */
-void GC_push_marked(/* struct hblk h, hdr * hhdr */);
- /* Push contents of all marked objects in h onto */
- /* mark stack. */
-#ifdef SMALL_CONFIG
-# define GC_push_next_marked_dirty(h) GC_push_next_marked(h)
-#else
- struct hblk * GC_push_next_marked_dirty(/* h */);
- /* Invoke GC_push_marked on next dirty block above h. */
- /* Return a pointer just past the end of this block. */
-#endif /* !SMALL_CONFIG */
-struct hblk * GC_push_next_marked(/* h */);
- /* Ditto, but also mark from clean pages. */
-struct hblk * GC_push_next_marked_uncollectable(/* h */);
- /* Ditto, but mark only from uncollectable pages. */
-GC_bool GC_stopped_mark(); /* Stop world and mark from all roots */
- /* and rescuers. */
-void GC_clear_hdr_marks(/* hhdr */); /* Clear the mark bits in a header */
-void GC_set_hdr_marks(/* hhdr */); /* Set the mark bits in a header */
-void GC_add_roots_inner();
-GC_bool GC_is_static_root(/* ptr_t p */);
- /* Is the address p in one of the registered static */
- /* root sections? */
-void GC_register_dynamic_libraries();
- /* Add dynamic library data sections to the root set. */
-
-/* Machine dependent startup routines */
-ptr_t GC_get_stack_base();
-void GC_register_data_segments();
-
-/* Black listing: */
-void GC_bl_init();
-# ifndef ALL_INTERIOR_POINTERS
- void GC_add_to_black_list_normal(word /* bits, maybe source */);
- /* Register bits as a possible future false */
- /* reference from the heap or static data */
-# ifdef PRINT_BLACK_LIST
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_normal((word) bits, source)
-# else
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_normal((word) bits)
-# endif
-# else
-# ifdef PRINT_BLACK_LIST
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_stack((word) bits, source)
-# else
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_stack((word) bits)
-# endif
-# endif
-
-void GC_add_to_black_list_stack(/* bits, maybe source */);
-struct hblk * GC_is_black_listed(/* h, len */);
- /* If there are likely to be false references */
- /* to a block starting at h of the indicated */
- /* length, then return the next plausible */
- /* starting location for h that might avoid */
- /* these false references. */
-void GC_promote_black_lists();
- /* Declare an end to a black listing phase. */
-void GC_unpromote_black_lists();
- /* Approximately undo the effect of the above. */
- /* This actually loses some information, but */
- /* only in a reasonably safe way. */
-word GC_number_stack_black_listed(/*struct hblk *start, struct hblk *endp1 */);
- /* Return the number of (stack) blacklisted */
- /* blocks in the range for statistical */
- /* purposes. */
-
-ptr_t GC_scratch_alloc(/*bytes*/);
- /* GC internal memory allocation for */
- /* small objects. Deallocation is not */
- /* possible. */
-
-/* Heap block layout maps: */
-void GC_invalidate_map(/* hdr */);
- /* Remove the object map associated */
- /* with the block. This identifies */
- /* the block as invalid to the mark */
- /* routines. */
-GC_bool GC_add_map_entry(/*sz*/);
- /* Add a heap block map for objects of */
- /* size sz to obj_map. */
- /* Return FALSE on failure. */
-void GC_register_displacement_inner(/*offset*/);
- /* Version of GC_register_displacement */
- /* that assumes lock is already held */
- /* and signals are already disabled. */
-
-/* hblk allocation: */
-void GC_new_hblk(/*size_in_words, kind*/);
- /* Allocate a new heap block, and build */
- /* a free list in it. */
-struct hblk * GC_allochblk(/*size_in_words, kind*/);
- /* Allocate a heap block, clear it if */
- /* for composite objects, inform */
- /* the marker that block is valid */
- /* for objects of indicated size. */
- /* sz < 0 ==> atomic. */
-void GC_freehblk(); /* Deallocate a heap block and mark it */
- /* as invalid. */
-
-/* Misc GC: */
-void GC_init_inner();
-GC_bool GC_expand_hp_inner();
-void GC_start_reclaim(/*abort_if_found*/);
- /* Restore unmarked objects to free */
- /* lists, or (if abort_if_found is */
- /* TRUE) report them. */
- /* Sweeping of small object pages is */
- /* largely deferred. */
-void GC_continue_reclaim(/*size, kind*/);
- /* Sweep pages of the given size and */
- /* kind, as long as possible, and */
- /* as long as the corr. free list is */
- /* empty. */
-void GC_reclaim_or_delete_all();
- /* Arrange for all reclaim lists to be */
- /* empty. Judiciously choose between */
- /* sweeping and discarding each page. */
-GC_bool GC_reclaim_all(/* GC_stop_func f*/);
- /* Reclaim all blocks. Abort (in a */
- /* consistent state) if f returns TRUE. */
-GC_bool GC_block_empty(/* hhdr */); /* Block completely unmarked? */
-GC_bool GC_never_stop_func(); /* Returns FALSE. */
-GC_bool GC_try_to_collect_inner(/* GC_stop_func f */);
- /* Collect; caller must have acquired */
- /* lock and disabled signals. */
- /* Collection is aborted if f returns */
- /* TRUE. Returns TRUE if it completes */
- /* successfully. */
-# define GC_gcollect_inner() \
- (void) GC_try_to_collect_inner(GC_never_stop_func)
-void GC_finish_collection(); /* Finish collection. Mark bits are */
- /* consistent and lock is still held. */
-GC_bool GC_collect_or_expand(/* needed_blocks */);
- /* Collect or expand heap in an attempt */
- /* make the indicated number of free */
- /* blocks available. Should be called */
- /* until the blocks are available or */
- /* until it fails by returning FALSE. */
-GC_API void GC_init(); /* Initialize collector. */
-void GC_collect_a_little_inner(/* int n */);
- /* Do n units worth of garbage */
- /* collection work, if appropriate. */
- /* A unit is an amount appropriate for */
- /* HBLKSIZE bytes of allocation. */
-ptr_t GC_generic_malloc(word bytes, int kind);
- /* Allocate an object of the given */
- /* kind. By default, there are only */
- /* a few kinds: composite(pointerfree), */
- /* atomic, uncollectable, etc. */
- /* We claim it's possible for clever */
- /* client code that understands GC */
- /* internals to add more, e.g. to */
- /* communicate object layout info */
- /* to the collector. */
-ptr_t GC_generic_malloc_ignore_off_page(/* bytes, kind */);
- /* As above, but pointers past the */
- /* first page of the resulting object */
- /* are ignored. */
-ptr_t GC_generic_malloc_inner(word bytes, int kind);
- /* Ditto, but I already hold lock, etc. */
-ptr_t GC_generic_malloc_words_small GC_PROTO((size_t words, int kind));
- /* As above, but size in units of words */
- /* Bypasses MERGE_SIZES. Assumes */
- /* words <= MAXOBJSZ. */
-ptr_t GC_generic_malloc_inner_ignore_off_page(/* bytes, kind */);
- /* Allocate an object, where */
- /* the client guarantees that there */
- /* will always be a pointer to the */
- /* beginning of the object while the */
- /* object is live. */
-ptr_t GC_allocobj(/* sz_inn_words, kind */);
- /* Make the indicated */
- /* free list nonempty, and return its */
- /* head. */
-
-void GC_init_headers();
-struct hblkhdr * GC_install_header(/*h*/);
- /* Install a header for block h. */
- /* Return 0 on failure, or the header */
- /* otherwise. */
-GC_bool GC_install_counts(/*h, sz*/);
- /* Set up forwarding counts for block */
- /* h of size sz. */
- /* Return FALSE on failure. */
-void GC_remove_header(/*h*/);
- /* Remove the header for block h. */
-void GC_remove_counts(/*h, sz*/);
- /* Remove forwarding counts for h. */
-hdr * GC_find_header(ptr_t /*p*/); /* Debugging only. */
-
-void GC_finalize(); /* Perform all indicated finalization actions */
- /* on unmarked objects. */
- /* Unreachable finalizable objects are enqueued */
- /* for processing by GC_invoke_finalizers. */
- /* Invoked with lock. */
-
-void GC_add_to_heap(/*p, bytes*/);
- /* Add a HBLKSIZE aligned chunk to the heap. */
-
-void GC_print_obj(/* ptr_t p */);
- /* P points to somewhere inside an object with */
- /* debugging info. Print a human readable */
- /* description of the object to stderr. */
-extern void (*GC_check_heap)();
- /* Check that all objects in the heap with */
- /* debugging info are intact. Print */
- /* descriptions of any that are not. */
-extern void (*GC_print_heap_obj)(/* ptr_t p */);
- /* If possible print s followed by a more */
- /* detailed description of the object */
- /* referred to by p. */
-
-/* Memory unmapping: */
-#ifdef USE_MUNMAP
- void GC_unmap_old(void);
- void GC_merge_unmapped(void);
- void GC_unmap(ptr_t start, word bytes);
- void GC_remap(ptr_t start, word bytes);
- void GC_unmap_gap(ptr_t start1, word bytes1, ptr_t start2, word bytes2);
-#endif
-
-/* Virtual dirty bit implementation: */
-/* Each implementation exports the following: */
-void GC_read_dirty(); /* Retrieve dirty bits. */
-GC_bool GC_page_was_dirty(/* struct hblk * h */);
- /* Read retrieved dirty bits. */
-GC_bool GC_page_was_ever_dirty(/* struct hblk * h */);
- /* Could the page contain valid heap pointers? */
-void GC_is_fresh(/* struct hblk * h, word number_of_blocks */);
- /* Assert the region currently contains no */
- /* valid pointers. */
-void GC_write_hint(/* struct hblk * h */);
- /* h is about to be written. */
-void GC_dirty_init();
-
-/* Slow/general mark bit manipulation: */
-GC_API GC_bool GC_is_marked();
-void GC_clear_mark_bit();
-void GC_set_mark_bit();
-
-/* Stubborn objects: */
-void GC_read_changed(); /* Analogous to GC_read_dirty */
-GC_bool GC_page_was_changed(/* h */); /* Analogous to GC_page_was_dirty */
-void GC_clean_changing_list(); /* Collect obsolete changing list entries */
-void GC_stubborn_init();
-
-/* Debugging print routines: */
-void GC_print_block_list();
-void GC_print_hblkfreelist();
-void GC_print_heap_sects();
-void GC_print_static_roots();
-void GC_dump();
-
-#ifdef KEEP_BACK_PTRS
- void GC_store_back_pointer(ptr_t source, ptr_t dest);
- void GC_marked_for_finalization(ptr_t dest);
-# define GC_STORE_BACK_PTR(source, dest) GC_store_back_pointer(source, dest)
-# define GC_MARKED_FOR_FINALIZATION(dest) GC_marked_for_finalization(dest)
-#else
-# define GC_STORE_BACK_PTR(source, dest)
-# define GC_MARKED_FOR_FINALIZATION(dest)
-#endif
-
-/* Make arguments appear live to compiler */
-# ifdef __WATCOMC__
- void GC_noop(void*, ...);
-# else
- GC_API void GC_noop();
-# endif
-
-void GC_noop1(/* word arg */);
-
-/* Logging and diagnostic output: */
-GC_API void GC_printf GC_PROTO((char * format, long, long, long, long, long, long));
- /* A version of printf that doesn't allocate, */
- /* is restricted to long arguments, and */
- /* (unfortunately) doesn't use varargs for */
- /* portability. Restricted to 6 args and */
- /* 1K total output length. */
- /* (We use sprintf. Hopefully that doesn't */
- /* allocate for long arguments.) */
-# define GC_printf0(f) GC_printf(f, 0l, 0l, 0l, 0l, 0l, 0l)
-# define GC_printf1(f,a) GC_printf(f, (long)a, 0l, 0l, 0l, 0l, 0l)
-# define GC_printf2(f,a,b) GC_printf(f, (long)a, (long)b, 0l, 0l, 0l, 0l)
-# define GC_printf3(f,a,b,c) GC_printf(f, (long)a, (long)b, (long)c, 0l, 0l, 0l)
-# define GC_printf4(f,a,b,c,d) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, 0l, 0l)
-# define GC_printf5(f,a,b,c,d,e) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, (long)e, 0l)
-# define GC_printf6(f,a,b,c,d,e,g) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, (long)e, (long)g)
-
-void GC_err_printf(/* format, a, b, c, d, e, f */);
-# define GC_err_printf0(f) GC_err_puts(f)
-# define GC_err_printf1(f,a) GC_err_printf(f, (long)a, 0l, 0l, 0l, 0l, 0l)
-# define GC_err_printf2(f,a,b) GC_err_printf(f, (long)a, (long)b, 0l, 0l, 0l, 0l)
-# define GC_err_printf3(f,a,b,c) GC_err_printf(f, (long)a, (long)b, (long)c, \
- 0l, 0l, 0l)
-# define GC_err_printf4(f,a,b,c,d) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, 0l, 0l)
-# define GC_err_printf5(f,a,b,c,d,e) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, \
- (long)e, 0l)
-# define GC_err_printf6(f,a,b,c,d,e,g) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, \
- (long)e, (long)g)
- /* Ditto, writes to stderr. */
-
-void GC_err_puts(/* char *s */);
- /* Write s to stderr, don't buffer, don't add */
- /* newlines, don't ... */
-
-
-# ifdef GC_ASSERTIONS
-# define GC_ASSERT(expr) if(!(expr)) {\
- GC_err_printf2("Assertion failure: %s:%ld\n", \
- __FILE__, (unsigned long)__LINE__); \
- ABORT("assertion failure"); }
-# else
-# define GC_ASSERT(expr)
-# endif
-
-# endif /* GC_PRIVATE_H */
diff --git a/boehm-gc/gc_private.h b/boehm-gc/gc_private.h
deleted file mode 100644
index 3dd7c8553bb..00000000000
--- a/boehm-gc/gc_private.h
+++ /dev/null
@@ -1 +0,0 @@
-# include "gc_priv.h"
diff --git a/boehm-gc/gc_typed.h b/boehm-gc/gc_typed.h
deleted file mode 100644
index 2e0598f204c..00000000000
--- a/boehm-gc/gc_typed.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright 1996 Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Some simple primitives for allocation with explicit type information.
- * Facilities for dynamic type inference may be added later.
- * Should be used only for extremely performance critical applications,
- * or if conservative collector leakage is otherwise a problem (unlikely).
- * Note that this is implemented completely separately from the rest
- * of the collector, and is not linked in unless referenced.
- * This does not currently support GC_DEBUG in any interesting way.
- */
-/* Boehm, May 19, 1994 2:13 pm PDT */
-
-#ifndef _GC_TYPED_H
-# define _GC_TYPED_H
-# ifndef _GC_H
-# include "gc.h"
-# endif
-
-typedef GC_word * GC_bitmap;
- /* The least significant bit of the first word is one if */
- /* the first word in the object may be a pointer. */
-
-# define GC_get_bit(bm, index) \
- (((bm)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
-# define GC_set_bit(bm, index) \
- (bm)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
-
-typedef GC_word GC_descr;
-
-GC_API GC_descr GC_make_descriptor GC_PROTO((GC_bitmap bm, size_t len));
- /* Return a type descriptor for the object whose layout */
- /* is described by the argument. */
- /* The least significant bit of the first word is one */
- /* if the first word in the object may be a pointer. */
- /* The second argument specifies the number of */
- /* meaningful bits in the bitmap. The actual object */
- /* may be larger (but not smaller). Any additional */
- /* words in the object are assumed not to contain */
- /* pointers. */
- /* Returns a conservative approximation in the */
- /* (unlikely) case of insufficient memory to build */
- /* the descriptor. Calls to GC_make_descriptor */
- /* may consume some amount of a finite resource. This */
- /* is intended to be called once per type, not once */
- /* per allocation. */
-
-GC_API GC_PTR GC_malloc_explicitly_typed
- GC_PROTO((size_t size_in_bytes, GC_descr d));
- /* Allocate an object whose layout is described by d. */
- /* The resulting object MAY NOT BE PASSED TO REALLOC. */
- /* The returned object is cleared. */
-
-GC_API GC_PTR GC_malloc_explicitly_typed_ignore_off_page
- GC_PROTO((size_t size_in_bytes, GC_descr d));
-
-GC_API GC_PTR GC_calloc_explicitly_typed
- GC_PROTO((size_t nelements,
- size_t element_size_in_bytes,
- GC_descr d));
- /* Allocate an array of nelements elements, each of the */
- /* given size, and with the given descriptor. */
- /* The elemnt size must be a multiple of the byte */
- /* alignment required for pointers. E.g. on a 32-bit */
- /* machine with 16-bit aligned pointers, size_in_bytes */
- /* must be a multiple of 2. */
- /* Returned object is cleared. */
-
-#ifdef GC_DEBUG
-# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) GC_MALLOC(bytes)
-# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
-#else
-# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) \
- GC_malloc_explicitly_typed(bytes, d)
-# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) \
- GC_calloc_explicitly_typed(n, bytes, d)
-#endif /* !GC_DEBUG */
-
-
-#endif /* _GC_TYPED_H */
-
diff --git a/boehm-gc/gcc_support.c b/boehm-gc/gcc_support.c
deleted file mode 100644
index e8a7b8201db..00000000000
--- a/boehm-gc/gcc_support.c
+++ /dev/null
@@ -1,516 +0,0 @@
-/***************************************************************************
-
-Interface between g++ and Boehm GC
-
- Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
-
- THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
- Permission is hereby granted to copy this code for any purpose,
- provided the above notices are retained on all copies.
-
- Last modified on Sun Jul 16 23:21:14 PDT 1995 by ellis
-
-This module provides runtime support for implementing the
-Ellis/Detlefs GC proposal, "Safe, Efficient Garbage Collection for
-C++", within g++, using its -fgc-keyword extension. It defines
-versions of __builtin_new, __builtin_new_gc, __builtin_vec_new,
-__builtin_vec_new_gc, __builtin_delete, and __builtin_vec_delete that
-invoke the Bohem GC. It also implements the WeakPointer.h interface.
-
-This module assumes the following configuration options of the Boehm GC:
-
- -DALL_INTERIOR_POINTERS
- -DDONT_ADD_BYTE_AT_END
-
-This module adds its own required padding to the end of objects to
-support C/C++ "one-past-the-object" pointer semantics.
-
-****************************************************************************/
-
-#include <stddef.h>
-#include "gc.h"
-
-#if defined(__STDC__)
-# define PROTO( args ) args
-#else
-# define PROTO( args ) ()
-# endif
-
-#define BITSPERBYTE 8
- /* What's the portable way to do this? */
-
-
-typedef void (*vfp) PROTO(( void ));
-extern vfp __new_handler;
-extern void __default_new_handler PROTO(( void ));
-
-
-/* A destructor_proc is the compiler generated procedure representing a
-C++ destructor. The "flag" argument is a hidden argument following some
-compiler convention. */
-
-typedef (*destructor_proc) PROTO(( void* this, int flag ));
-
-
-/***************************************************************************
-
-A BI_header is the header the compiler adds to the front of
-new-allocated arrays of objects with destructors. The header is
-padded out to a double, because that's what the compiler does to
-ensure proper alignment of array elements on some architectures.
-
-int NUM_ARRAY_ELEMENTS (void* o)
- returns the number of array elements for array object o.
-
-char* FIRST_ELEMENT_P (void* o)
- returns the address of the first element of array object o.
-
-***************************************************************************/
-
-typedef struct BI_header {
- int nelts;
- char padding [sizeof( double ) - sizeof( int )];
- /* Better way to do this? */
-} BI_header;
-
-#define NUM_ARRAY_ELEMENTS( o ) \
- (((BI_header*) o)->nelts)
-
-#define FIRST_ELEMENT_P( o ) \
- ((char*) o + sizeof( BI_header ))
-
-
-/***************************************************************************
-
-The __builtin_new routines add a descriptor word to the end of each
-object. The descriptor serves two purposes.
-
-First, the descriptor acts as padding, implementing C/C++ pointer
-semantics. C and C++ allow a valid array pointer to be incremented
-one past the end of an object. The extra padding ensures that the
-collector will recognize that such a pointer points to the object and
-not the next object in memory.
-
-Second, the descriptor stores three extra pieces of information,
-whether an object has a registered finalizer (destructor), whether it
-may have any weak pointers referencing it, and for collectible arrays,
-the element size of the array. The element size is required for the
-array's finalizer to iterate through the elements of the array. (An
-alternative design would have the compiler generate a finalizer
-procedure for each different array type. But given the overhead of
-finalization, there isn't any efficiency to be gained by that.)
-
-The descriptor must be added to non-collectible as well as collectible
-objects, since the Ellis/Detlefs proposal allows "pointer to gc T" to
-be assigned to a "pointer to T", which could then be deleted. Thus,
-__builtin_delete must determine at runtime whether an object is
-collectible, whether it has weak pointers referencing it, and whether
-it may have a finalizer that needs unregistering. Though
-GC_REGISTER_FINALIZER doesn't care if you ask it to unregister a
-finalizer for an object that doesn't have one, it is a non-trivial
-procedure that does a hash look-up, etc. The descriptor trades a
-little extra space for a significant increase in time on the fast path
-through delete. (A similar argument applies to
-GC_UNREGISTER_DISAPPEARING_LINK).
-
-For non-array types, the space for the descriptor could be shrunk to a
-single byte for storing the "has finalizer" flag. But this would save
-space only on arrays of char (whose size is not a multiple of the word
-size) and structs whose largest member is less than a word in size
-(very infrequent). And it would require that programmers actually
-remember to call "delete[]" instead of "delete" (which they should,
-but there are probably lots of buggy programs out there). For the
-moment, the space savings seems not worthwhile, especially considering
-that the Boehm GC is already quite space competitive with other
-malloc's.
-
-
-Given a pointer o to the base of an object:
-
-Descriptor* DESCRIPTOR (void* o)
- returns a pointer to the descriptor for o.
-
-The implementation of descriptors relies on the fact that the GC
-implementation allocates objects in units of the machine's natural
-word size (e.g. 32 bits on a SPARC, 64 bits on an Alpha).
-
-**************************************************************************/
-
-typedef struct Descriptor {
- unsigned has_weak_pointers: 1;
- unsigned has_finalizer: 1;
- unsigned element_size: BITSPERBYTE * sizeof( unsigned ) - 2;
-} Descriptor;
-
-#define DESCRIPTOR( o ) \
- ((Descriptor*) ((char*)(o) + GC_size( o ) - sizeof( Descriptor )))
-
-
-/**************************************************************************
-
-Implementations of global operator new() and operator delete()
-
-***************************************************************************/
-
-
-void* __builtin_new( size )
- size_t size;
- /*
- For non-gc non-array types, the compiler generates calls to
- __builtin_new, which allocates non-collected storage via
- GC_MALLOC_UNCOLLECTABLE. This ensures that the non-collected
- storage will be part of the collector's root set, required by the
- Ellis/Detlefs semantics. */
-{
- vfp handler = __new_handler ? __new_handler : __default_new_handler;
-
- while (1) {
- void* o = GC_MALLOC_UNCOLLECTABLE( size + sizeof( Descriptor ) );
- if (o != 0) return o;
- (*handler) ();}}
-
-
-void* __builtin_vec_new( size )
- size_t size;
- /*
- For non-gc array types, the compiler generates calls to
- __builtin_vec_new. */
-{
- return __builtin_new( size );}
-
-
-void* __builtin_new_gc( size )
- size_t size;
- /*
- For gc non-array types, the compiler generates calls to
- __builtin_new_gc, which allocates collected storage via
- GC_MALLOC. */
-{
- vfp handler = __new_handler ? __new_handler : __default_new_handler;
-
- while (1) {
- void* o = GC_MALLOC( size + sizeof( Descriptor ) );
- if (o != 0) return o;
- (*handler) ();}}
-
-
-void* __builtin_new_gc_a( size )
- size_t size;
- /*
- For non-pointer-containing gc non-array types, the compiler
- generates calls to __builtin_new_gc_a, which allocates collected
- storage via GC_MALLOC_ATOMIC. */
-{
- vfp handler = __new_handler ? __new_handler : __default_new_handler;
-
- while (1) {
- void* o = GC_MALLOC_ATOMIC( size + sizeof( Descriptor ) );
- if (o != 0) return o;
- (*handler) ();}}
-
-
-void* __builtin_vec_new_gc( size )
- size_t size;
- /*
- For gc array types, the compiler generates calls to
- __builtin_vec_new_gc. */
-{
- return __builtin_new_gc( size );}
-
-
-void* __builtin_vec_new_gc_a( size )
- size_t size;
- /*
- For non-pointer-containing gc array types, the compiler generates
- calls to __builtin_vec_new_gc_a. */
-{
- return __builtin_new_gc_a( size );}
-
-
-static void call_destructor( o, data )
- void* o;
- void* data;
- /*
- call_destructor is the GC finalizer proc registered for non-array
- gc objects with destructors. Its client data is the destructor
- proc, which it calls with the magic integer 2, a special flag
- obeying the compiler convention for destructors. */
-{
- ((destructor_proc) data)( o, 2 );}
-
-
-void* __builtin_new_gc_dtor( o, d )
- void* o;
- destructor_proc d;
- /*
- The compiler generates a call to __builtin_new_gc_dtor to register
- the destructor "d" of a non-array gc object "o" as a GC finalizer.
- The destructor is registered via
- GC_REGISTER_FINALIZER_IGNORE_SELF, which causes the collector to
- ignore pointers from the object to itself when determining when
- the object can be finalized. This is necessary due to the self
- pointers used in the internal representation of multiply-inherited
- objects. */
-{
- Descriptor* desc = DESCRIPTOR( o );
-
- GC_REGISTER_FINALIZER_IGNORE_SELF( o, call_destructor, d, 0, 0 );
- desc->has_finalizer = 1;}
-
-
-static void call_array_destructor( o, data )
- void* o;
- void* data;
- /*
- call_array_destructor is the GC finalizer proc registered for gc
- array objects whose elements have destructors. Its client data is
- the destructor proc. It iterates through the elements of the
- array in reverse order, calling the destructor on each. */
-{
- int num = NUM_ARRAY_ELEMENTS( o );
- Descriptor* desc = DESCRIPTOR( o );
- size_t size = desc->element_size;
- char* first_p = FIRST_ELEMENT_P( o );
- char* p = first_p + (num - 1) * size;
-
- if (num > 0) {
- while (1) {
- ((destructor_proc) data)( p, 2 );
- if (p == first_p) break;
- p -= size;}}}
-
-
-void* __builtin_vec_new_gc_dtor( first_elem, d, element_size )
- void* first_elem;
- destructor_proc d;
- size_t element_size;
- /*
- The compiler generates a call to __builtin_vec_new_gc_dtor to
- register the destructor "d" of a gc array object as a GC
- finalizer. "first_elem" points to the first element of the array,
- *not* the beginning of the object (this makes the generated call
- to this function smaller). The elements of the array are of size
- "element_size". The destructor is registered as in
- _builtin_new_gc_dtor. */
-{
- void* o = (char*) first_elem - sizeof( BI_header );
- Descriptor* desc = DESCRIPTOR( o );
-
- GC_REGISTER_FINALIZER_IGNORE_SELF( o, call_array_destructor, d, 0, 0 );
- desc->element_size = element_size;
- desc->has_finalizer = 1;}
-
-
-void __builtin_delete( o )
- void* o;
- /*
- The compiler generates calls to __builtin_delete for operator
- delete(). The GC currently requires that any registered
- finalizers be unregistered before explicitly freeing an object.
- If the object has any weak pointers referencing it, we can't
- actually free it now. */
-{
- if (o != 0) {
- Descriptor* desc = DESCRIPTOR( o );
- if (desc->has_finalizer) GC_REGISTER_FINALIZER( o, 0, 0, 0, 0 );
- if (! desc->has_weak_pointers) GC_FREE( o );}}
-
-
-void __builtin_vec_delete( o )
- void* o;
- /*
- The compiler generates calls to __builitn_vec_delete for operator
- delete[](). */
-{
- __builtin_delete( o );}
-
-
-/**************************************************************************
-
-Implementations of the template class WeakPointer from WeakPointer.h
-
-***************************************************************************/
-
-typedef struct WeakPointer {
- void* pointer;
-} WeakPointer;
-
-
-void* _WeakPointer_New( t )
- void* t;
-{
- if (t == 0) {
- return 0;}
- else {
- void* base = GC_base( t );
- WeakPointer* wp =
- (WeakPointer*) GC_MALLOC_ATOMIC( sizeof( WeakPointer ) );
- Descriptor* desc = DESCRIPTOR( base );
-
- wp->pointer = t;
- desc->has_weak_pointers = 1;
- GC_general_register_disappearing_link( &wp->pointer, base );
- return wp;}}
-
-
-static void* PointerWithLock( wp )
- WeakPointer* wp;
-{
- if (wp == 0 || wp->pointer == 0) {
- return 0;}
- else {
- return (void*) wp->pointer;}}
-
-
-void* _WeakPointer_Pointer( wp )
- WeakPointer* wp;
-{
- return (void*) GC_call_with_alloc_lock( PointerWithLock, wp );}
-
-
-typedef struct EqualClosure {
- WeakPointer* wp1;
- WeakPointer* wp2;
-} EqualClosure;
-
-
-static void* EqualWithLock( ec )
- EqualClosure* ec;
-{
- if (ec->wp1 == 0 || ec->wp2 == 0) {
- return (void*) (ec->wp1 == ec->wp2);}
- else {
- return (void*) (ec->wp1->pointer == ec->wp2->pointer);}}
-
-
-int _WeakPointer_Equal( wp1, wp2 )
- WeakPointer* wp1;
- WeakPointer* wp2;
-{
- EqualClosure ec;
-
- ec.wp1 = wp1;
- ec.wp2 = wp2;
- return (int) GC_call_with_alloc_lock( EqualWithLock, &ec );}
-
-
-int _WeakPointer_Hash( wp )
- WeakPointer* wp;
-{
- return (int) _WeakPointer_Pointer( wp );}
-
-
-/**************************************************************************
-
-Implementations of the template class CleanUp from WeakPointer.h
-
-***************************************************************************/
-
-typedef struct Closure {
- void (*c) PROTO(( void* d, void* t ));
- ptrdiff_t t_offset;
- void* d;
-} Closure;
-
-
-static void _CleanUp_CallClosure( obj, data )
- void* obj;
- void* data;
-{
- Closure* closure = (Closure*) data;
- closure->c( closure->d, (char*) obj + closure->t_offset );}
-
-
-void _CleanUp_Set( t, c, d )
- void* t;
- void (*c) PROTO(( void* d, void* t ));
- void* d;
-{
- void* base = GC_base( t );
- Descriptor* desc = DESCRIPTOR( t );
-
- if (c == 0) {
- GC_REGISTER_FINALIZER_IGNORE_SELF( base, 0, 0, 0, 0 );
- desc->has_finalizer = 0;}
- else {
- Closure* closure = (Closure*) GC_MALLOC( sizeof( Closure ) );
- closure->c = c;
- closure->t_offset = (char*) t - (char*) base;
- closure->d = d;
- GC_REGISTER_FINALIZER_IGNORE_SELF( base, _CleanUp_CallClosure,
- closure, 0, 0 );
- desc->has_finalizer = 1;}}
-
-
-void _CleanUp_Call( t )
- void* t;
-{
- /* ? Aren't we supposed to deactivate weak pointers to t too?
- Why? */
- void* base = GC_base( t );
- void* d;
- GC_finalization_proc f;
-
- GC_REGISTER_FINALIZER( base, 0, 0, &f, &d );
- f( base, d );}
-
-
-typedef struct QueueElem {
- void* o;
- GC_finalization_proc f;
- void* d;
- struct QueueElem* next;
-} QueueElem;
-
-
-void* _CleanUp_Queue_NewHead()
-{
- return GC_MALLOC( sizeof( QueueElem ) );}
-
-
-static void _CleanUp_Queue_Enqueue( obj, data )
- void* obj;
- void* data;
-{
- QueueElem* q = (QueueElem*) data;
- QueueElem* head = q->next;
-
- q->o = obj;
- q->next = head->next;
- head->next = q;}
-
-
-void _CleanUp_Queue_Set( h, t )
- void* h;
- void* t;
-{
- QueueElem* head = (QueueElem*) h;
- void* base = GC_base( t );
- void* d;
- GC_finalization_proc f;
- QueueElem* q = (QueueElem*) GC_MALLOC( sizeof( QueueElem ) );
-
- GC_REGISTER_FINALIZER( base, _CleanUp_Queue_Enqueue, q, &f, &d );
- q->f = f;
- q->d = d;
- q->next = head;}
-
-
-int _CleanUp_Queue_Call( h )
- void* h;
-{
- QueueElem* head = (QueueElem*) h;
- QueueElem* q = head->next;
-
- if (q == 0) {
- return 0;}
- else {
- head->next = q->next;
- q->next = 0;
- if (q->f != 0) q->f( q->o, q->d );
- return 1;}}
-
-
-
diff --git a/boehm-gc/gcconfig.h b/boehm-gc/gcconfig.h
deleted file mode 100644
index 107f89583b7..00000000000
--- a/boehm-gc/gcconfig.h
+++ /dev/null
@@ -1,1359 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#ifndef GCCONFIG_H
-
-# define GCCONFIG_H
-
-/* Machine dependent parameters. Some tuning parameters can be found */
-/* near the top of gc_private.h. */
-
-/* Machine specific parts contributed by various people. See README file. */
-
-/* First a unified test for Linux: */
-# if defined(linux) || defined(__linux__)
-# define LINUX
-# endif
-
-/* Determine the machine type: */
-# if defined(sun) && defined(mc68000)
-# define M68K
-# define SUNOS4
-# define mach_type_known
-# endif
-# if defined(hp9000s300)
-# define M68K
-# define HP
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(m68k)
-# define M68K
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(__sparc__)
-# define SPARC
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(m68k)
-# define M68K
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(arm32)
-# define ARM32
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(vax)
-# define VAX
-# ifdef ultrix
-# define ULTRIX
-# else
-# define BSD
-# endif
-# define mach_type_known
-# endif
-# if defined(mips) || defined(__mips)
-# define MIPS
-# if !defined(LINUX)
-# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
-# define ULTRIX
-# else
-# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \
- || defined(__SYSTYPE_SVR4__)
-# define IRIX5 /* or IRIX 6.X */
-# else
-# define RISCOS /* or IRIX 4.X */
-# endif
-# endif
-# endif /* !LINUX */
-# define mach_type_known
-# endif
-# if defined(sequent) && defined(i386)
-# define I386
-# define SEQUENT
-# define mach_type_known
-# endif
-# if defined(sun) && defined(i386)
-# define I386
-# define SUNOS5
-# define mach_type_known
-# endif
-# if (defined(__OS2__) || defined(__EMX__)) && defined(__32BIT__)
-# define I386
-# define OS2
-# define mach_type_known
-# endif
-# if defined(ibm032)
-# define RT
-# define mach_type_known
-# endif
-# if defined(sun) && (defined(sparc) || defined(__sparc))
-# define SPARC
- /* Test for SunOS 5.x */
-# include <errno.h>
-# ifdef ECHRNG
-# define SUNOS5
-# else
-# define SUNOS4
-# endif
-# define mach_type_known
-# endif
-# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \
- && !defined(__OpenBSD__)
-# define SPARC
-# define DRSNX
-# define mach_type_known
-# endif
-# if defined(_IBMR2)
-# define RS6000
-# define mach_type_known
-# endif
-# if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386)
- /* The above test may need refinement */
-# define I386
-# if defined(_SCO_ELF)
-# define SCO_ELF
-# else
-# define SCO
-# endif
-# define mach_type_known
-# endif
-# if defined(_AUX_SOURCE)
-# define M68K
-# define SYSV
-# define mach_type_known
-# endif
-# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
- || defined(hppa) || defined(__hppa__)
-# define HP_PA
-# ifndef LINUX
-# define HPUX
-# endif
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(i386) || defined(__i386__))
-# define I386
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(__ia64__) || defined(__ia64))
-# define IA64
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(powerpc)
-# define POWERPC
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(__mc68000__)
-# define M68K
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(sparc) || defined(__sparc__))
-# define SPARC
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(arm)
-# define ARM32
-# define mach_type_known
-# endif
-# if defined(__alpha) || defined(__alpha__)
-# define ALPHA
-# if !defined(LINUX)
-# define OSF1 /* a.k.a Digital Unix */
-# endif
-# define mach_type_known
-# endif
-# if defined(_AMIGA) && !defined(AMIGA)
-# define AMIGA
-# endif
-# ifdef AMIGA
-# define M68K
-# define mach_type_known
-# endif
-# if defined(THINK_C) || defined(__MWERKS__) && !defined(__powerc)
-# define M68K
-# define MACOS
-# define mach_type_known
-# endif
-# if defined(__MWERKS__) && defined(__powerc)
-# define POWERPC
-# define MACOS
-# define mach_type_known
-# endif
-# if defined(macosx)
-# define MACOSX
-# define POWERPC
-# define mach_type_known
-# endif
-# if defined(NeXT) && defined(mc68000)
-# define M68K
-# define NEXT
-# define mach_type_known
-# endif
-# if defined(NeXT) && defined(i386)
-# define I386
-# define NEXT
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(i386)
-# define I386
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__FreeBSD__) && defined(i386)
-# define I386
-# define FREEBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(i386)
-# define I386
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(bsdi) && defined(i386)
-# define I386
-# define BSDI
-# define mach_type_known
-# endif
-# if !defined(mach_type_known) && defined(__386BSD__)
-# define I386
-# define THREE86BSD
-# define mach_type_known
-# endif
-# if defined(_CX_UX) && defined(_M88K)
-# define M88K
-# define CX_UX
-# define mach_type_known
-# endif
-# if defined(DGUX)
-# define M88K
- /* DGUX defined */
-# define mach_type_known
-# endif
-# if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \
- || defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)
-# define I386
-# define MSWIN32 /* or Win32s */
-# define mach_type_known
-# endif
-# if defined(__DJGPP__)
-# define I386
-# ifndef DJGPP
-# define DJGPP /* MSDOS running the DJGPP port of GCC */
-# endif
-# define mach_type_known
-# endif
-# if defined(__CYGWIN32__) || defined(__CYGWIN__)
-# define I386
-# define CYGWIN32
-# define mach_type_known
-# endif
-# if defined(__MINGW32__)
-# define I386
-# define MSWIN32
-# define mach_type_known
-# endif
-# if defined(__BORLANDC__)
-# define I386
-# define MSWIN32
-# define mach_type_known
-# endif
-# if defined(_UTS) && !defined(mach_type_known)
-# define S370
-# define UTS4
-# define mach_type_known
-# endif
-# if defined(__pj__)
-# define PJ
-# define mach_type_known
-# endif
-/* Ivan Demakov */
-# if defined(__WATCOMC__) && defined(__386__)
-# define I386
-# if !defined(OS2) && !defined(MSWIN32) && !defined(DOS4GW)
-# if defined(__OS2__)
-# define OS2
-# else
-# if defined(__WINDOWS_386__) || defined(__NT__)
-# define MSWIN32
-# else
-# define DOS4GW
-# endif
-# endif
-# endif
-# define mach_type_known
-# endif
-
-/* Feel free to add more clauses here */
-
-/* Or manually define the machine type here. A machine type is */
-/* characterized by the architecture. Some */
-/* machine types are further subdivided by OS. */
-/* the macros ULTRIX, RISCOS, and BSD to distinguish. */
-/* Note that SGI IRIX is treated identically to RISCOS. */
-/* SYSV on an M68K actually means A/UX. */
-/* The distinction in these cases is usually the stack starting address */
-# ifndef mach_type_known
- --> unknown machine type
-# endif
- /* Mapping is: M68K ==> Motorola 680X0 */
- /* (SUNOS4,HP,NEXT, and SYSV (A/UX), */
- /* MACOS and AMIGA variants) */
- /* I386 ==> Intel 386 */
- /* (SEQUENT, OS2, SCO, LINUX, NETBSD, */
- /* FREEBSD, THREE86BSD, MSWIN32, */
- /* BSDI,SUNOS5, NEXT, other variants) */
- /* NS32K ==> Encore Multimax */
- /* MIPS ==> R2000 or R3000 */
- /* (RISCOS, ULTRIX variants) */
- /* VAX ==> DEC VAX */
- /* (BSD, ULTRIX variants) */
- /* RS6000 ==> IBM RS/6000 AIX3.X */
- /* RT ==> IBM PC/RT */
- /* HP_PA ==> HP9000/700 & /800 */
- /* HP/UX */
- /* SPARC ==> SPARC v7/v8/v9 */
- /* (SUNOS4, SUNOS5, LINUX, */
- /* DRSNX variants) */
- /* ALPHA ==> DEC Alpha */
- /* (OSF1 and LINUX variants) */
- /* M88K ==> Motorola 88XX0 */
- /* (CX_UX and DGUX) */
- /* S370 ==> 370-like machine */
- /* running Amdahl UTS4 */
- /* ARM32 ==> Intel StrongARM */
- /* IA64 ==> Intel IA64 */
- /* (e.g. Itanium) */
-
-
-/*
- * For each architecture and OS, the following need to be defined:
- *
- * CPP_WORD_SZ is a simple integer constant representing the word size.
- * in bits. We assume byte addressibility, where a byte has 8 bits.
- * We also assume CPP_WORD_SZ is either 32 or 64.
- * (We care about the length of pointers, not hardware
- * bus widths. Thus a 64 bit processor with a C compiler that uses
- * 32 bit pointers should use CPP_WORD_SZ of 32, not 64. Default is 32.)
- *
- * MACH_TYPE is a string representation of the machine type.
- * OS_TYPE is analogous for the OS.
- *
- * ALIGNMENT is the largest N, such that
- * all pointer are guaranteed to be aligned on N byte boundaries.
- * defining it to be 1 will always work, but perform poorly.
- *
- * DATASTART is the beginning of the data segment.
- * On UNIX systems, the collector will scan the area between DATASTART
- * and DATAEND for root pointers.
- *
- * DATAEND, if not &end.
- *
- * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice
- * the pointer size.
- *
- * STACKBOTTOM is the cool end of the stack, which is usually the
- * highest address in the stack.
- * Under PCR or OS/2, we have other ways of finding thread stacks.
- * For each machine, the following should:
- * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and
- * 2) define exactly one of
- * STACKBOTTOM (should be defined to be an expression)
- * HEURISTIC1
- * HEURISTIC2
- * If either of the last two macros are defined, then STACKBOTTOM is computed
- * during collector startup using one of the following two heuristics:
- * HEURISTIC1: Take an address inside GC_init's frame, and round it up to
- * the next multiple of STACK_GRAN.
- * HEURISTIC2: Take an address inside GC_init's frame, increment it repeatedly
- * in small steps (decrement if STACK_GROWS_UP), and read the value
- * at each location. Remember the value when the first
- * Segmentation violation or Bus error is signalled. Round that
- * to the nearest plausible page boundary, and use that instead
- * of STACKBOTTOM.
- *
- * Gustavo Rodriguez-Rivera points out that on most (all?) Unix machines,
- * the value of environ is a pointer that can serve as STACKBOTTOM.
- * I expect that HEURISTIC2 can be replaced by this approach, which
- * interferes far less with debugging.
- *
- * If no expression for STACKBOTTOM can be found, and neither of the above
- * heuristics are usable, the collector can still be used with all of the above
- * undefined, provided one of the following is done:
- * 1) GC_mark_roots can be changed to somehow mark from the correct stack(s)
- * without reference to STACKBOTTOM. This is appropriate for use in
- * conjunction with thread packages, since there will be multiple stacks.
- * (Allocating thread stacks in the heap, and treating them as ordinary
- * heap data objects is also possible as a last resort. However, this is
- * likely to introduce significant amounts of excess storage retention
- * unless the dead parts of the thread stacks are periodically cleared.)
- * 2) Client code may set GC_stackbottom before calling any GC_ routines.
- * If the author of the client code controls the main program, this is
- * easily accomplished by introducing a new main program, setting
- * GC_stackbottom to the address of a local variable, and then calling
- * the original main program. The new main program would read something
- * like:
- *
- * # include "gc_private.h"
- *
- * main(argc, argv, envp)
- * int argc;
- * char **argv, **envp;
- * {
- * int dummy;
- *
- * GC_stackbottom = (ptr_t)(&dummy);
- * return(real_main(argc, argv, envp));
- * }
- *
- *
- * Each architecture may also define the style of virtual dirty bit
- * implementation to be used:
- * MPROTECT_VDB: Write protect the heap and catch faults.
- * PROC_VDB: Use the SVR4 /proc primitives to read dirty bits.
- *
- * An architecture may define DYNAMIC_LOADING if dynamic_load.c
- * defined GC_register_dynamic_libraries() for the architecture.
- *
- * An architecture may define PREFETCH(x) to preload the cache with *x.
- * This defaults to a no-op.
- *
- * PREFETCH_FOR_WRITE(x) is used if *x is about to be written.
- *
- * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to
- * clear the two words at GC_malloc-aligned address x. By default,
- * word stores of 0 are used instead.
- */
-
-
-# define STACK_GRAN 0x1000000
-# ifdef M68K
-# define MACH_TYPE "M68K"
-# define ALIGNMENT 2
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define STACKBOTTOM ((ptr_t)0xf0000000)
-# define MPROTECT_VDB
-# ifdef __ELF__
-# define DYNAMIC_LOADING
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# endif
-# ifdef SUNOS4
-# define OS_TYPE "SUNOS4"
- extern char etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x1ffff) & ~0x1ffff))
-# define HEURISTIC1 /* differs */
-# define DYNAMIC_LOADING
-# endif
-# ifdef HP
-# define OS_TYPE "HP"
- extern char etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# define STACKBOTTOM ((ptr_t) 0xffeffffc)
- /* empirically determined. seems to work. */
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE)
-# endif
-# ifdef SYSV
-# define OS_TYPE "SYSV"
- extern etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
- & ~0x3fffff) \
- +((word)&etext & 0x1fff))
- /* This only works for shared-text binaries with magic number 0413.
- The other sorts of SysV binaries put the data at the end of the text,
- in which case the default of &etext would work. Unfortunately,
- handling both would require having the magic-number available.
- -- Parag
- */
-# define STACKBOTTOM ((ptr_t)0xFFFFFFFE)
- /* The stack starts at the top of memory, but */
- /* 0x0 cannot be used as setjump_test complains */
- /* that the stack direction is incorrect. Two */
- /* bytes down from 0x0 should be safe enough. */
- /* --Parag */
-# include <sys/mmu.h>
-# define GETPAGESIZE() PAGESIZE /* Is this still right? */
-# endif
-# ifdef AMIGA
-# define OS_TYPE "AMIGA"
- /* STACKBOTTOM and DATASTART handled specially */
- /* in os_dep.c */
-# define DATAEND /* not needed */
-# define GETPAGESIZE() 4096
-# endif
-# ifdef MACOS
-# ifndef __LOWMEM__
-# include <LowMem.h>
-# endif
-# define OS_TYPE "MACOS"
- /* see os_dep.c for details of global data segments. */
-# define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
-# define DATAEND /* not needed */
-# define GETPAGESIZE() 4096
-# endif
-# ifdef NEXT
-# define OS_TYPE "NEXT"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t) 0x4000000)
-# define DATAEND /* not needed */
-# endif
-# endif
-
-# ifdef POWERPC
-# define MACH_TYPE "POWERPC"
-# ifdef MACOS
-# define ALIGNMENT 2 /* Still necessary? Could it be 4? */
-# ifndef __LOWMEM__
-# include <LowMem.h>
-# endif
-# define OS_TYPE "MACOS"
- /* see os_dep.c for details of global data segments. */
-# define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
-# define DATAEND /* not needed */
-# endif
-# ifdef LINUX
-# define ALIGNMENT 4 /* Guess. Can someone verify? */
- /* This was 2, but that didn't sound right. */
-# define OS_TYPE "LINUX"
-# define HEURISTIC1
-# define DYNAMIC_LOADING
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
- /* Stack usually starts at 0x80000000 */
-# define LINUX_DATA_START
- extern int _end;
-# define DATAEND (&_end)
-# endif
-# ifdef MACOSX
-# define ALIGNMENT 4
-# define OS_TYPE "MACOSX"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t) 0xc0000000)
-# define DATAEND /* not needed */
-# endif
-# endif
-
-# ifdef VAX
-# define MACH_TYPE "VAX"
-# define ALIGNMENT 4 /* Pointers are longword aligned by 4.2 C compiler */
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# ifdef BSD
-# define OS_TYPE "BSD"
-# define HEURISTIC1
- /* HEURISTIC2 may be OK, but it's hard to test. */
-# endif
-# ifdef ULTRIX
-# define OS_TYPE "ULTRIX"
-# define STACKBOTTOM ((ptr_t) 0x7fffc800)
-# endif
-# endif
-
-# ifdef RT
-# define MACH_TYPE "RT"
-# define ALIGNMENT 4
-# define DATASTART ((ptr_t) 0x10000000)
-# define STACKBOTTOM ((ptr_t) 0x1fffd800)
-# endif
-
-# ifdef SPARC
-# define MACH_TYPE "SPARC"
-# if defined(__arch64__) || defined(__sparcv9)
-# define ALIGNMENT 8
-# else
-# define ALIGNMENT 4 /* Required by hardware */
-# endif
-# define ALIGN_DOUBLE
- extern int etext;
-# ifdef SUNOS5
-# define OS_TYPE "SUNOS5"
- extern int _etext;
- extern int _end;
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
-# define DATAEND (&_end)
-# ifndef USE_MMAP
-# define USE_MMAP
-# endif
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x40000000
-# else
-# define HEAP_START DATAEND
-# endif
-# define PROC_VDB
-/* HEURISTIC1 reportedly no longer works under 2.7. Thus we */
-/* switched to HEURISTIC2, eventhough it creates some debugging */
-/* issues. */
-# define HEURISTIC2
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
- /* getpagesize() appeared to be missing from at least one */
- /* Solaris 5.4 installation. Weird. */
-# define DYNAMIC_LOADING
-# endif
-# ifdef SUNOS4
-# define OS_TYPE "SUNOS4"
- /* [If you have a weak stomach, don't read this.] */
- /* We would like to use: */
-/* # define DATASTART ((ptr_t)((((word) (&etext)) + 0x1fff) & ~0x1fff)) */
- /* This fails occasionally, due to an ancient, but very */
- /* persistent ld bug. &etext is set 32 bytes too high. */
- /* We instead read the text segment size from the a.out */
- /* header, which happens to be mapped into our address space */
- /* at the start of the text segment. The detective work here */
- /* was done by Robert Ehrlich, Manuel Serrano, and Bernard */
- /* Serpette of INRIA. */
- /* This assumes ZMAGIC, i.e. demand-loadable executables. */
-# define TEXTSTART 0x2000
-# define DATASTART ((ptr_t)(*(int *)(TEXTSTART+0x4)+TEXTSTART))
-# define MPROTECT_VDB
-# define HEURISTIC1
-# define DYNAMIC_LOADING
-# endif
-# ifdef DRSNX
-# define CPP_WORDSZ 32
-# define OS_TYPE "DRSNX"
- extern char * GC_SysVGetDataStart();
- extern int etext;
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &etext)
-# define MPROTECT_VDB
-# define STACKBOTTOM ((ptr_t) 0xdfff0000)
-# define DYNAMIC_LOADING
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# else
- Linux Sparc/a.out not supported
-# endif
- extern int _etext;
- extern int _end;
-# define DATAEND (&_end)
-# define SVR4
-# ifdef __arch64__
-# define STACKBOTTOM ((ptr_t) 0x80000000000ULL)
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, &_etext)
-# define CPP_WORDSZ 64
-# else
-# define STACKBOTTOM ((ptr_t) 0xf0000000)
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
-# endif
-# endif
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# define STACKBOTTOM ((ptr_t) 0xf8000000)
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# endif
-
-# ifdef I386
-# define MACH_TYPE "I386"
-# define ALIGNMENT 4 /* Appears to hold for all "32 bit" compilers */
- /* except Borland. The -a4 option fixes */
- /* Borland. */
- /* Ivan Demakov: For Watcom the option is -zp4. */
-# ifndef SMALL_CONFIG
-# define ALIGN_DOUBLE /* Not strictly necessary, but may give speed */
- /* improvement on Pentiums. */
-# endif
-# ifdef SEQUENT
-# define OS_TYPE "SEQUENT"
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# define STACKBOTTOM ((ptr_t) 0x3ffff000)
-# endif
-# ifdef SUNOS5
-# define OS_TYPE "SUNOS5"
- extern int etext, _start;
- extern char * GC_SysVGetDataStart();
-# define DATASTART GC_SysVGetDataStart(0x1000, &etext)
-# define STACKBOTTOM ((ptr_t)(&_start))
-/** At least in Solaris 2.5, PROC_VDB gives wrong values for dirty bits. */
-/*# define PROC_VDB*/
-# define DYNAMIC_LOADING
-# ifndef USE_MMAP
-# define USE_MMAP
-# endif
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x40000000
-# else
-# define HEAP_START DATAEND
-# endif
-# endif
-# ifdef SCO
-# define OS_TYPE "SCO"
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
- & ~0x3fffff) \
- +((word)&etext & 0xfff))
-# define STACKBOTTOM ((ptr_t) 0x7ffffffc)
-# endif
-# ifdef SCO_ELF
-# define OS_TYPE "SCO_ELF"
- extern int etext;
-# define DATASTART ((ptr_t)(&etext))
-# define STACKBOTTOM ((ptr_t) 0x08048000)
-# define DYNAMIC_LOADING
-# define ELF_CLASS ELFCLASS32
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define LINUX_STACKBOTTOM
-# if 0
-# define HEURISTIC1
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
- /* STACKBOTTOM is usually 0xc0000000, but this changes with */
- /* different kernel configurations. In particular, systems */
- /* with 2GB physical memory will usually move the user */
- /* address space limit, and hence initial SP to 0x80000000. */
-# endif
-# if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC)
- /* libgcj: Linux threads don't interact well with the read() wrapper.
- Not defining MPROTECT_VDB fixes this. */
-/* # define MPROTECT_VDB */
-# else
- /* We seem to get random errors in incremental mode, */
- /* possibly because Linux threads is itself a malloc client */
- /* and can't deal with the signals. */
-# endif
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# ifdef UNDEFINED /* includes ro data */
- extern int _etext;
-# define DATASTART ((ptr_t)((((word) (&_etext)) + 0xfff) & ~0xfff))
-# endif
-# include <features.h>
-# if defined(__GLIBC__) && __GLIBC__ >= 2
-# define LINUX_DATA_START
-# else
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# ifdef USE_I686_PREFETCH
-# define PREFETCH(x) \
- __asm__ __volatile__ (" prefetchnta %0": : "m"(*(char *)(x)))
- /* Empirically prefetcht0 is much more effective at reducing */
- /* cache miss stalls for the targetted load instructions. But it */
- /* seems to interfere enough with other cache traffic that the net */
- /* result is worse than prefetchnta. */
-# if 0
- /* Using prefetches for write seems to have a slight negative */
- /* impact on performance, at least for a PIII/500. */
-# define PREFETCH_FOR_WRITE(x) \
- __asm__ __volatile__ (" prefetcht0 %0": : "m"(*(char *)(x)))
-# endif
-# endif
-# ifdef USE_3DNOW_PREFETCH
-# define PREFETCH(x) \
- __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x)))
-# define PREFETCH_FOR_WRITE(x)
- __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x)))
-# endif
-# endif
-# ifdef CYGWIN32
-# define OS_TYPE "CYGWIN32"
- extern int _data_start__;
- extern int _data_end__;
- extern int _bss_start__;
- extern int _bss_end__;
- /* For binutils 2.9.1, we have */
- /* DATASTART = _data_start__ */
- /* DATAEND = _bss_end__ */
- /* whereas for some earlier versions it was */
- /* DATASTART = _bss_start__ */
- /* DATAEND = _data_end__ */
- /* To get it right for both, we take the */
- /* minumum/maximum of the two. */
-# define MAX(x,y) ((x) > (y) ? (x) : (y))
-# define MIN(x,y) ((x) < (y) ? (x) : (y))
-# define DATASTART ((ptr_t) MIN(&_data_start__, &_bss_start__))
-# define DATAEND ((ptr_t) MAX(&_data_end__, &_bss_end__))
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000
-# define HEURISTIC1
-# endif
-# ifdef OS2
-# define OS_TYPE "OS2"
- /* STACKBOTTOM and DATASTART are handled specially in */
- /* os_dep.c. OS2 actually has the right */
- /* system call! */
-# define DATAEND /* not needed */
-# endif
-# ifdef MSWIN32
-# define OS_TYPE "MSWIN32"
- /* STACKBOTTOM and DATASTART are handled specially in */
- /* os_dep.c. */
-# ifndef __WATCOMC__
-# define MPROTECT_VDB
-# endif
-# define DATAEND /* not needed */
-# endif
-# ifdef DJGPP
-# define OS_TYPE "DJGPP"
-# include "stubinfo.h"
- extern int etext;
- extern int _stklen;
- extern int __djgpp_stack_limit;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x1ff) & ~0x1ff))
-/* # define STACKBOTTOM ((ptr_t)((word) _stubinfo + _stubinfo->size \
- + _stklen)) */
-# define STACKBOTTOM ((ptr_t)((word) __djgpp_stack_limit + _stklen))
- /* This may not be right. */
-# endif
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# endif
-# ifdef FREEBSD
-# define OS_TYPE "FREEBSD"
-# define MPROTECT_VDB
-# endif
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# endif
-# ifdef THREE86BSD
-# define OS_TYPE "THREE86BSD"
-# endif
-# ifdef BSDI
-# define OS_TYPE "BSDI"
-# endif
-# if defined(OPENBSD) || defined(FREEBSD) || defined(NETBSD) \
- || defined(THREE86BSD) || defined(BSDI)
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef NEXT
-# define OS_TYPE "NEXT"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t)0xc0000000)
-# define DATAEND /* not needed */
-# endif
-# ifdef DOS4GW
-# define OS_TYPE "DOS4GW"
- extern long __nullarea;
- extern char _end;
- extern char *_STACKTOP;
- /* Depending on calling conventions Watcom C either precedes
- or does not precedes with undescore names of C-variables.
- Make sure startup code variables always have the same names. */
- #pragma aux __nullarea "*";
- #pragma aux _end "*";
-# define STACKBOTTOM ((ptr_t) _STACKTOP)
- /* confused? me too. */
-# define DATASTART ((ptr_t) &__nullarea)
-# define DATAEND ((ptr_t) &_end)
-# endif
-# endif
-
-# ifdef NS32K
-# define MACH_TYPE "NS32K"
-# define ALIGNMENT 4
- extern char **environ;
-# define DATASTART ((ptr_t)(&environ))
- /* hideous kludge: environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
-# define STACKBOTTOM ((ptr_t) 0xfffff000) /* for Encore */
-# endif
-
-# ifdef MIPS
-# ifndef ECOS
-# define MACH_TYPE "MIPS"
- /* LIBGCJ LOCAL: respect predefined DATASTART_IS_ETEXT. */
-# ifdef DATASTART_IS_ETEXT
- extern int _etext;
-# define DATASTART ((ptr_t)(&_etext))
-# else
-/* # define STACKBOTTOM ((ptr_t)0x7fff8000) sometimes also works. */
-# ifdef LINUX
- /* This was developed for a linuxce style platform. Probably */
- /* needs to be tweaked for workstation class machines. */
-# define OS_TYPE "LINUX"
- extern int __data_start;
-# define DATASTART ((ptr_t)(&__data_start))
-# define ALIGNMENT 4
-# define USE_GENERIC_PUSH_REGS 1
-# define STACKBOTTOM 0x80000000
- /* In many cases, this should probably use LINUX_STACKBOTTOM */
- /* instead. But some kernel versions seem to give the wrong */
- /* value from /proc. */
-# endif /* Linux */
-# ifdef ULTRIX
-# define HEURISTIC2
-# define DATASTART (ptr_t)0x10000000
- /* Could probably be slightly higher since */
- /* startup code allocates lots of stuff. */
-# define OS_TYPE "ULTRIX"
-# define ALIGNMENT 4
-# endif
-# ifdef RISCOS
-# define HEURISTIC2
-# define DATASTART (ptr_t)0x10000000
-# define OS_TYPE "RISCOS"
-# define ALIGNMENT 4 /* Required by hardware */
-# endif
-# ifdef IRIX5
-# define HEURISTIC2
- extern int _fdata;
-# define DATASTART ((ptr_t)(&_fdata))
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x30000000
-# else
-# define HEAP_START DATASTART
-# endif
- /* Lowest plausible heap address. */
- /* In the MMAP case, we map there. */
- /* In either case it is used to identify */
- /* heap sections so they're not */
- /* considered as roots. */
-# define OS_TYPE "IRIX5"
-# define MPROTECT_VDB
-# ifdef _MIPS_SZPTR
-# define CPP_WORDSZ _MIPS_SZPTR
-# define ALIGNMENT (_MIPS_SZPTR/8)
-# if CPP_WORDSZ != 64
-# define ALIGN_DOUBLE
-# endif
-# else
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
-# endif
-# define DYNAMIC_LOADING
-# endif
-# endif /* DATASTART_IS_ETEXT */
-# endif /* ECOS */
-# ifdef ECOS
- extern char __ram_data_start;
- extern char __ram_data_end;
-# define MACH_TYPE "MIPS"
-# define DATASTART (ptr_t)(&__ram_data_start)
-# define DATAEND (ptr_t)(&__ram_data_end)
-
-# define HEURISTIC2
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
-# endif /* ECOS */
-# endif
-
-# ifdef RS6000
-# define MACH_TYPE "RS6000"
-# define ALIGNMENT 4
-# define DATASTART ((ptr_t)0x20000000)
- extern int errno;
-# define STACKBOTTOM ((ptr_t)((ulong)&errno))
-# define DYNAMIC_LOADING
- /* For really old versions of AIX, this may have to be removed. */
-# endif
-
-# ifdef HP_PA
- /* OS is assumed to be HP/UX */
-# define MACH_TYPE "HP_PA"
-# define OS_TYPE "HPUX"
-# ifdef __LP64__
-# define CPP_WORDSZ 64
-# define ALIGNMENT 8
-# else
-# define CPP_WORDSZ 32
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
-# endif
- extern int __data_start;
-# define DATASTART ((ptr_t)(&__data_start))
-# if 0
- /* The following appears to work for 7xx systems running HP/UX */
- /* 9.xx Furthermore, it might result in much faster */
- /* collections than HEURISTIC2, which may involve scanning */
- /* segments that directly precede the stack. It is not the */
- /* default, since it may not work on older machine/OS */
- /* combinations. (Thanks to Raymond X.T. Nijssen for uncovering */
- /* this.) */
-# define STACKBOTTOM ((ptr_t) 0x7b033000) /* from /etc/conf/h/param.h */
-# else
- /* Gustavo Rodriguez-Rivera suggested changing HEURISTIC2 */
- /* to this. We'll probably do this on other platforms, too. */
- /* For now I'll use it where I can test it. */
- extern char ** environ;
-# define STACKBOTTOM ((ptr_t)environ)
-# endif
-# define STACK_GROWS_UP
-# define DYNAMIC_LOADING
-# ifndef HPUX_THREADS
-# define MPROTECT_VDB
-# endif
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE)
-# endif
-
-# ifdef ALPHA
-# define MACH_TYPE "ALPHA"
-# define ALIGNMENT 8
-# define USE_GENERIC_PUSH_REGS
- /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */
- /* fp registers in some cases when the target is a 21264. The assembly */
- /* code doesn't handle that yet, and version dependencies make that a */
- /* bit tricky. Do the easy thing for now. */
-# ifdef OSF1
-# define OS_TYPE "OSF1"
-# define DATASTART ((ptr_t) 0x140000000)
- extern int _end;
-# define DATAEND ((ptr_t) &_end)
-# define HEURISTIC2
- /* Normally HEURISTIC2 is too conervative, since */
- /* the text segment immediately follows the stack. */
- /* Hence we give an upper pound. */
- extern int __start;
-# define HEURISTIC2_LIMIT ((ptr_t)((word)(&__start) & ~(getpagesize()-1)))
-# define CPP_WORDSZ 64
-# define MPROTECT_VDB
-# define DYNAMIC_LOADING
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define CPP_WORDSZ 64
-# define STACKBOTTOM ((ptr_t) 0x120000000)
-# ifdef __ELF__
-# define LINUX_DATA_START
-# define DYNAMIC_LOADING
- /* This doesn't work if the collector is in a dynamic library. */
-# else
-# define DATASTART ((ptr_t) 0x140000000)
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# undef MPROTECT_VDB
- /* Has only been superficially tested. May not */
- /* work on all versions. */
-# endif
-# endif
-
-# ifdef IA64
-# define MACH_TYPE "IA64"
-# define ALIGN_DOUBLE
- /* Requires 16 byte alignment for malloc */
-# define ALIGNMENT 8
-# define USE_GENERIC_PUSH_REGS
- /* We need to get preserved registers in addition to register windows. */
- /* That's easiest to do with setjmp. */
-# ifdef HPUX
- --> needs work
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define CPP_WORDSZ 64
- /* This should really be done through /proc, but that */
- /* requires we run on an IA64 kernel. */
-# define STACKBOTTOM ((ptr_t) 0xa000000000000000l)
- /* We also need the base address of the register stack */
- /* backing store. There is probably a better way to */
- /* get that, too ... */
-# define BACKING_STORE_BASE ((ptr_t) 0x9fffffff80000000l)
-# if 1
-# define SEARCH_FOR_DATA_START
-# define DATASTART GC_data_start
-# else
- extern int data_start;
-# define DATASTART ((ptr_t)(&data_start))
-# endif
-# define DYNAMIC_LOADING
-# define MPROTECT_VDB
- /* Requires Linux 2.3.47 or later. */
- extern int _end;
-# define DATAEND (&_end)
-# define PREFETCH(x) \
- __asm__ (" lfetch [%0]": : "r"((void *)(x)))
-# define PREFETCH_FOR_WRITE(x) \
- __asm__ (" lfetch.excl [%0]": : "r"((void *)(x)))
-# define CLEAR_DOUBLE(x) \
- __asm__ (" stf.spill [%0]=f0": : "r"((void *)(x)))
-# endif
-# endif
-
-# ifdef M88K
-# define MACH_TYPE "M88K"
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
- extern int etext;
-# ifdef CX_UX
-# define OS_TYPE "CX_UX"
-# define DATASTART ((((word)&etext + 0x3fffff) & ~0x3fffff) + 0x10000)
-# endif
-# ifdef DGUX
-# define OS_TYPE "DGUX"
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &etext)
-# endif
-# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
-# endif
-
-# ifdef S370
-# define MACH_TYPE "S370"
-# define OS_TYPE "UTS4"
-# define ALIGNMENT 4 /* Required by hardware */
- extern int etext;
- extern int _etext;
- extern int _end;
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
-# define DATAEND (&_end)
-# define HEURISTIC2
-# endif
-
-# if defined(PJ)
-# define ALIGNMENT 4
- extern int _etext;
-# define DATASTART ((ptr_t)(&_etext))
-# define HEURISTIC1
-# endif
-
-# ifdef ARM32
-# define CPP_WORDSZ 32
-# define MACH_TYPE "ARM32"
-# define ALIGNMENT 4
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# define USE_GENERIC_PUSH_REGS
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define HEURISTIC1
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
-# define USE_GENERIC_PUSH_REGS
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# include <features.h>
-# if defined(__GLIBC__) && __GLIBC__ >= 2
-# define LINUX_DATA_START
-# else
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# endif
-#endif
-
-#ifdef LINUX_DATA_START
- /* Some Linux distributions arrange to define __data_start. Some */
- /* define data_start as a weak symbol. The latter is technically */
- /* broken, since the user program may define data_start, in which */
- /* case we lose. Nonetheless, we try both, prefering __data_start. */
- /* We assume gcc. */
-# pragma weak __data_start
- extern int __data_start;
-# pragma weak data_start
- extern int data_start;
-# define DATASTART ((ptr_t)(&__data_start != 0? &__data_start : &data_start))
-#endif
-
-# ifndef STACK_GROWS_UP
-# define STACK_GROWS_DOWN
-# endif
-
-# ifndef CPP_WORDSZ
-# define CPP_WORDSZ 32
-# endif
-
-# ifndef OS_TYPE
-# define OS_TYPE ""
-# endif
-
-# ifndef DATAEND
- extern int end;
-# define DATAEND (&end)
-# endif
-
-# if defined(SVR4) && !defined(GETPAGESIZE)
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
-# endif
-
-# ifndef GETPAGESIZE
-# if defined(SUNOS5) || defined(IRIX5)
-# include <unistd.h>
-# endif
-# define GETPAGESIZE() getpagesize()
-# endif
-
-# if defined(SUNOS5) || defined(DRSNX) || defined(UTS4)
- /* OS has SVR4 generic features. Probably others also qualify. */
-# define SVR4
-# endif
-
-# if defined(SUNOS5) || defined(DRSNX)
- /* OS has SUNOS5 style semi-undocumented interface to dynamic */
- /* loader. */
-# define SUNOS5DL
- /* OS has SUNOS5 style signal handlers. */
-# define SUNOS5SIGS
-# endif
-
-# if defined(HPUX)
-# define SUNOS5SIGS
-# endif
-
-# if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
- -> bad word size
-# endif
-
-# ifdef PCR
-# undef DYNAMIC_LOADING
-# undef STACKBOTTOM
-# undef HEURISTIC1
-# undef HEURISTIC2
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# define PCR_VDB
-# endif
-
-# ifdef SRC_M3
-/* Postponed for now. */
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# endif
-
-# ifdef SMALL_CONFIG
-/* Presumably not worth the space it takes. */
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# endif
-
-# ifdef USE_MUNMAP
-# undef MPROTECT_VDB /* Can't deal with address space holes. */
-# endif
-
-# if !defined(PCR_VDB) && !defined(PROC_VDB) && !defined(MPROTECT_VDB)
-# define DEFAULT_VDB
-# endif
-
-# ifndef PREFETCH
-# define PREFETCH(x)
-# define NO_PREFETCH
-# endif
-
-# ifndef PREFETCH_FOR_WRITE
-# define PREFETCH_FOR_WRITE(x)
-# define NO_PREFETCH_FOR_WRITE
-# endif
-
-# ifndef CACHE_LINE_SIZE
-# define CACHE_LINE_SIZE 32 /* Wild guess */
-# endif
-
-# ifndef CLEAR_DOUBLE
-# define CLEAR_DOUBLE(x) \
- ((word*)x)[0] = 0; \
- ((word*)x)[1] = 0;
-# endif /* CLEAR_DOUBLE */
-
-# if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS)
-# define SOLARIS_THREADS
-# endif
-# if defined(IRIX_THREADS) && !defined(IRIX5)
---> inconsistent configuration
-# endif
-# if defined(IRIX_JDK_THREADS) && !defined(IRIX5)
---> inconsistent configuration
-# endif
-# if defined(LINUX_THREADS) && !defined(LINUX)
---> inconsistent configuration
-# endif
-# if defined(SOLARIS_THREADS) && !defined(SUNOS5)
---> inconsistent configuration
-# endif
-# if defined(HPUX_THREADS) && !defined(HPUX)
---> inconsistent configuration
-# endif
-# if defined(PCR) || defined(SRC_M3) || \
- defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
- defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
- defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
-# define THREADS
-# endif
-
-# if defined(HP_PA) || defined(M88K) || defined(POWERPC) \
- || (defined(I386) && defined(OS2)) || defined(UTS4) || defined(LINT)
- /* Use setjmp based hack to mark from callee-save registers. */
-# define USE_GENERIC_PUSH_REGS
-# endif
-# if defined(SPARC)
-# define SAVE_CALL_CHAIN
-# define ASM_CLEAR_CODE /* Stack clearing is crucial, and we */
- /* include assembly code to do it well. */
-# endif
-
-# endif /* GCCONFIG_H */
diff --git a/boehm-gc/gcj_mlc.c b/boehm-gc/gcj_mlc.c
deleted file mode 100644
index eb67eac1f36..00000000000
--- a/boehm-gc/gcj_mlc.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-/* Boehm, July 31, 1995 5:02 pm PDT */
-
-#ifdef GC_GCJ_SUPPORT
-
-/*
- * This is an allocator interface tuned for gcj (the GNU/Cygnus static
- * java compiler).
- *
- * Each allocated object has a pointer in its first word to a vtable,
- * which for our purposes is simply a structure describing the type of
- * the object.
- * This descriptor structur contains a GC marking descriptor at offset
- * MARK_DESCR_OFFSET.
- *
- * It is hoped that this interface may also be useful for other systems,
- * possibly with some tuning of the constants. But the immediate goal
- * is to get better gcj performance.
- *
- * We assume:
- * 1) We have an ANSI conforming C compiler.
- * 2) Counting on explicit initialization of this interface is OK.
- * 3) FASTLOCK is not a significant win.
- */
-
-#include "gc_priv.h"
-#include "gc_mark.h"
-#include "include/gc_gcj.h"
-#include "dbg_mlc.h"
-
-GC_bool GC_gcj_malloc_initialized = FALSE;
-
-int GC_gcj_kind; /* Object kind for objects with descriptors */
- /* in "vtable". */
-int GC_gcj_debug_kind; /* The kind of objects that is always marked */
- /* with a mark proc call. */
-
-ptr_t * GC_gcjobjfreelist;
-ptr_t * GC_gcjdebugobjfreelist;
-
-void * GC_default_oom_action(void) { return 0; }
-
-void * (*GC_oom_action)(void) = GC_default_oom_action;
-
-/* Caller does not hold allocation lock. */
-void GC_init_gcj_malloc(int mp_index, void * /* really mark_proc */mp)
-{
- register int i;
- DCL_LOCK_STATE;
-
- GC_init(); /* In case it's not already done. */
- DISABLE_SIGNALS();
- LOCK();
- if (GC_gcj_malloc_initialized) {
- UNLOCK();
- ENABLE_SIGNALS();
- return;
- }
- GC_gcj_malloc_initialized = TRUE;
- GC_mark_procs[mp_index] = (mark_proc)mp;
- if (mp_index >= GC_n_mark_procs) ABORT("GC_init_gcj_malloc: bad index");
- /* Set up object kind gcj-style indirect descriptor. */
- GC_gcjobjfreelist = (ptr_t *)
- GC_generic_malloc_inner((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_gcjobjfreelist == 0) ABORT("Couldn't allocate GC_gcjobjfreelist");
- BZERO(GC_gcjobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- GC_gcj_kind = GC_n_kinds++;
- GC_obj_kinds[GC_gcj_kind].ok_freelist = GC_gcjobjfreelist;
- GC_obj_kinds[GC_gcj_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_gcj_kind].ok_descriptor =
- (((word)(-MARK_DESCR_OFFSET - INDIR_PER_OBJ_BIAS)) | DS_PER_OBJECT);
- GC_obj_kinds[GC_gcj_kind].ok_relocate_descr = FALSE;
- GC_obj_kinds[GC_gcj_kind].ok_init = TRUE;
- /* Set up object kind for objects that require mark proc call. */
- GC_gcjdebugobjfreelist = (ptr_t *)
- GC_generic_malloc_inner((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_gcjdebugobjfreelist == 0)
- ABORT("Couldn't allocate GC_gcjdebugobjfreelist");
- BZERO(GC_gcjdebugobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- GC_gcj_debug_kind = GC_n_kinds++;
- GC_obj_kinds[GC_gcj_debug_kind].ok_freelist = GC_gcjdebugobjfreelist;
- GC_obj_kinds[GC_gcj_debug_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_gcj_debug_kind].ok_descriptor =
- MAKE_PROC(mp_index, 1 /* allocated with debug info */);
- GC_obj_kinds[GC_gcj_debug_kind].ok_relocate_descr = FALSE;
- GC_obj_kinds[GC_gcj_debug_kind].ok_init = TRUE;
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-ptr_t GC_clear_stack();
-
-#define GENERAL_MALLOC(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc_inner((word)lb, k))
-
-#define GENERAL_MALLOC_IOP(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc_inner_ignore_off_page(lb, k))
-
-/* Allocate an object, clear it, and store the pointer to the */
-/* type structure (vtable in gcj). */
-/* This adds a byte at the end of the object if GC_malloc would.*/
-void * GC_gcj_malloc(size_t lb, void * ptr_to_struct_containing_descr)
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_gcjobjfreelist[lw]);
- LOCK();
- if( (op = *opp) == 0 ) {
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_gcj_kind);
- if (0 == op) {
- UNLOCK();
- return(GC_oom_action());
- }
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb]; /* May have been uninitialized. */
-# endif
- } else {
- *opp = obj_link(op);
- GC_words_allocd += lw;
- FASTUNLOCK();
- }
- *(void **)op = ptr_to_struct_containing_descr;
- UNLOCK();
- } else {
- LOCK();
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_gcj_kind);
- if (0 == op) {
- UNLOCK();
- return(GC_oom_action());
- }
- *(void **)op = ptr_to_struct_containing_descr;
- UNLOCK();
- }
- return((GC_PTR) op);
-}
-
-/* Similar to GC_gcj_malloc, but add debug info. This is allocated */
-/* with GC_gcj_debug_kind. */
-GC_PTR GC_debug_gcj_malloc(size_t lb, void * ptr_to_struct_containing_descr,
- GC_EXTRA_PARAMS)
-{
- GC_PTR result;
-
- /* We clone the code from GC_debug_gcj_malloc, so that we */
- /* dont end up with extra frames on the stack, which could */
- /* confuse the backtrace. */
- LOCK();
- result = GC_generic_malloc_inner(lb + DEBUG_BYTES, GC_gcj_debug_kind);
- if (result == 0) {
- UNLOCK();
- GC_err_printf2("GC_debug_gcj_malloc(%ld, 0x%lx) returning NIL (",
- (unsigned long) lb,
- (unsigned long) ptr_to_struct_containing_descr);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(GC_oom_action());
- }
- *((void **)((ptr_t)result + sizeof(oh))) = ptr_to_struct_containing_descr;
- UNLOCK();
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-/* Similar to GC_gcj_malloc, but the size is in words, and we don't */
-/* adjust it. The size is assumed to be such that it can be */
-/* allocated as a small object. */
-void * GC_gcj_fast_malloc(size_t lw, void * ptr_to_struct_containing_descr)
-{
-ptr_t op;
-ptr_t * opp;
-DCL_LOCK_STATE;
-
- opp = &(GC_gcjobjfreelist[lw]);
- LOCK();
- if( (op = *opp) == 0 ) {
- op = (ptr_t)GC_clear_stack(
- GC_generic_malloc_words_small_inner(lw, GC_gcj_kind));
- if (0 == op) {
- UNLOCK();
- return(GC_oom_action());
- }
- } else {
- *opp = obj_link(op);
- GC_words_allocd += lw;
- }
- *(void **)op = ptr_to_struct_containing_descr;
- UNLOCK();
- return((GC_PTR) op);
-}
-
-/* And a debugging version of the above: */
-void * GC_debug_gcj_fast_malloc(size_t lw,
- void * ptr_to_struct_containing_descr,
- GC_EXTRA_PARAMS)
-{
- GC_PTR result;
- size_t lb = WORDS_TO_BYTES(lw);
-
- /* We clone the code from GC_debug_gcj_malloc, so that we */
- /* dont end up with extra frames on the stack, which could */
- /* confuse the backtrace. */
- LOCK();
- result = GC_generic_malloc_inner(lb + DEBUG_BYTES, GC_gcj_debug_kind);
- if (result == 0) {
- UNLOCK();
- GC_err_printf2("GC_debug_gcj_fast_malloc(%ld, 0x%lx) returning NIL (",
- (unsigned long) lw,
- (unsigned long) ptr_to_struct_containing_descr);
- GC_err_puts(s);
- GC_err_printf1(":%ld)\n", (unsigned long)i);
- return(GC_oom_action());
- }
- *((void **)((ptr_t)result + sizeof(oh))) = ptr_to_struct_containing_descr;
- UNLOCK();
- if (!GC_debugging_started) {
- GC_start_debugging();
- }
- ADD_CALL_CHAIN(result, ra);
- return (GC_store_debug_info(result, (word)lb, s, (word)i));
-}
-
-void * GC_gcj_malloc_ignore_off_page(size_t lb,
- void * ptr_to_struct_containing_descr)
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_gcjobjfreelist[lw]);
- LOCK();
- if( (op = *opp) == 0 ) {
- op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_gcj_kind);
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb]; /* May have been uninitialized. */
-# endif
- } else {
- *opp = obj_link(op);
- GC_words_allocd += lw;
- FASTUNLOCK();
- }
- *(void **)op = ptr_to_struct_containing_descr;
- UNLOCK();
- } else {
- op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_gcj_kind);
- if (0 != op) {
- *(void **)op = ptr_to_struct_containing_descr;
- }
- UNLOCK();
- }
- return((GC_PTR) op);
-}
-
-#else
-
-char GC_no_gcj_support;
-
-#endif /* GC_GCJ_SUPPORT */
diff --git a/boehm-gc/headers.c b/boehm-gc/headers.c
deleted file mode 100644
index 6e47bba8e3f..00000000000
--- a/boehm-gc/headers.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * This implements:
- * 1. allocation of heap block headers
- * 2. A map from addresses to heap block addresses to heap block headers
- *
- * Access speed is crucial. We implement an index structure based on a 2
- * level tree.
- */
-
-# include "gc_priv.h"
-
-bottom_index * GC_all_bottom_indices = 0;
- /* Pointer to first (lowest addr) */
- /* bottom_index. */
-
-bottom_index * GC_all_bottom_indices_end = 0;
- /* Pointer to last (highest addr) */
- /* bottom_index. */
-
-/* Non-macro version of header location routine */
-hdr * GC_find_header(h)
-ptr_t h;
-{
-# ifdef HASH_TL
- register hdr * result;
- GET_HDR(h, result);
- return(result);
-# else
- return(HDR_INNER(h));
-# endif
-}
-
-/* Routines to dynamically allocate collector data structures that will */
-/* never be freed. */
-
-static ptr_t scratch_free_ptr = 0;
-
-/* GC_scratch_last_end_ptr is end point of last obtained scratch area. */
-/* GC_scratch_end_ptr is end point of current scratch area. */
-
-ptr_t GC_scratch_alloc(bytes)
-register word bytes;
-{
- register ptr_t result = scratch_free_ptr;
-
-# ifdef ALIGN_DOUBLE
-# define GRANULARITY (2 * sizeof(word))
-# else
-# define GRANULARITY sizeof(word)
-# endif
- bytes += GRANULARITY-1;
- bytes &= ~(GRANULARITY-1);
- scratch_free_ptr += bytes;
- if (scratch_free_ptr <= GC_scratch_end_ptr) {
- return(result);
- }
- {
- word bytes_to_get = MINHINCR * HBLKSIZE;
-
- if (bytes_to_get <= bytes) {
- /* Undo the damage, and get memory directly */
- bytes_to_get = bytes;
-# ifdef USE_MMAP
- bytes_to_get += GC_page_size - 1;
- bytes_to_get &= ~(GC_page_size - 1);
-# endif
- result = (ptr_t)GET_MEM(bytes_to_get);
- scratch_free_ptr -= bytes;
- GC_scratch_last_end_ptr = result + bytes;
- return(result);
- }
- result = (ptr_t)GET_MEM(bytes_to_get);
- if (result == 0) {
-# ifdef PRINTSTATS
- GC_printf0("Out of memory - trying to allocate less\n");
-# endif
- scratch_free_ptr -= bytes;
- bytes_to_get = bytes;
-# ifdef USE_MMAP
- bytes_to_get += GC_page_size - 1;
- bytes_to_get &= ~(GC_page_size - 1);
-# endif
- return((ptr_t)GET_MEM(bytes_to_get));
- }
- scratch_free_ptr = result;
- GC_scratch_end_ptr = scratch_free_ptr + bytes_to_get;
- GC_scratch_last_end_ptr = GC_scratch_end_ptr;
- return(GC_scratch_alloc(bytes));
- }
-}
-
-static hdr * hdr_free_list = 0;
-
-/* Return an uninitialized header */
-static hdr * alloc_hdr()
-{
- register hdr * result;
-
- if (hdr_free_list == 0) {
- result = (hdr *) GC_scratch_alloc((word)(sizeof(hdr)));
- } else {
- result = hdr_free_list;
- hdr_free_list = (hdr *) (result -> hb_next);
- }
- return(result);
-}
-
-static void free_hdr(hhdr)
-hdr * hhdr;
-{
- hhdr -> hb_next = (struct hblk *) hdr_free_list;
- hdr_free_list = hhdr;
-}
-
-hdr * GC_invalid_header;
-
-#ifdef USE_HDR_CACHE
- word GC_hdr_cache_hits = 0;
- word GC_hdr_cache_misses = 0;
-#endif
-
-void GC_init_headers()
-{
- register unsigned i;
-
- GC_all_nils = (bottom_index *)GC_scratch_alloc((word)sizeof(bottom_index));
- BZERO(GC_all_nils, sizeof(bottom_index));
- for (i = 0; i < TOP_SZ; i++) {
- GC_top_index[i] = GC_all_nils;
- }
- GC_invalid_header = alloc_hdr();
- GC_invalidate_map(GC_invalid_header);
-}
-
-/* Make sure that there is a bottom level index block for address addr */
-/* Return FALSE on failure. */
-static GC_bool get_index(addr)
-word addr;
-{
- word hi = (word)(addr) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE);
- bottom_index * r;
- bottom_index * p;
- bottom_index ** prev;
- bottom_index *pi;
-
-# ifdef HASH_TL
- unsigned i = TL_HASH(hi);
- bottom_index * old;
-
- old = p = GC_top_index[i];
- while(p != GC_all_nils) {
- if (p -> key == hi) return(TRUE);
- p = p -> hash_link;
- }
- r = (bottom_index*)GC_scratch_alloc((word)(sizeof (bottom_index)));
- if (r == 0) return(FALSE);
- BZERO(r, sizeof (bottom_index));
- r -> hash_link = old;
- GC_top_index[i] = r;
-# else
- if (GC_top_index[hi] != GC_all_nils) return(TRUE);
- r = (bottom_index*)GC_scratch_alloc((word)(sizeof (bottom_index)));
- if (r == 0) return(FALSE);
- GC_top_index[hi] = r;
- BZERO(r, sizeof (bottom_index));
-# endif
- r -> key = hi;
- /* Add it to the list of bottom indices */
- prev = &GC_all_bottom_indices; /* pointer to p */
- pi = 0; /* bottom_index preceding p */
- while ((p = *prev) != 0 && p -> key < hi) {
- pi = p;
- prev = &(p -> asc_link);
- }
- r -> desc_link = pi;
- if (0 == p) {
- GC_all_bottom_indices_end = r;
- } else {
- p -> desc_link = r;
- }
- r -> asc_link = p;
- *prev = r;
- return(TRUE);
-}
-
-/* Install a header for block h. */
-/* The header is uninitialized. */
-/* Returns the header or 0 on failure. */
-struct hblkhdr * GC_install_header(h)
-register struct hblk * h;
-{
- hdr * result;
-
- if (!get_index((word) h)) return(FALSE);
- result = alloc_hdr();
- SET_HDR(h, result);
-# ifdef USE_MUNMAP
- result -> hb_last_reclaimed = GC_gc_no;
-# endif
- return(result);
-}
-
-/* Set up forwarding counts for block h of size sz */
-GC_bool GC_install_counts(h, sz)
-register struct hblk * h;
-register word sz; /* bytes */
-{
- register struct hblk * hbp;
- register int i;
-
- for (hbp = h; (char *)hbp < (char *)h + sz; hbp += BOTTOM_SZ) {
- if (!get_index((word) hbp)) return(FALSE);
- }
- if (!get_index((word)h + sz - 1)) return(FALSE);
- for (hbp = h + 1; (char *)hbp < (char *)h + sz; hbp += 1) {
- i = HBLK_PTR_DIFF(hbp, h);
- SET_HDR(hbp, (hdr *)(i > MAX_JUMP? MAX_JUMP : i));
- }
- return(TRUE);
-}
-
-/* Remove the header for block h */
-void GC_remove_header(h)
-register struct hblk * h;
-{
- hdr ** ha;
-
- GET_HDR_ADDR(h, ha);
- free_hdr(*ha);
- *ha = 0;
-}
-
-/* Remove forwarding counts for h */
-void GC_remove_counts(h, sz)
-register struct hblk * h;
-register word sz; /* bytes */
-{
- register struct hblk * hbp;
-
- for (hbp = h+1; (char *)hbp < (char *)h + sz; hbp += 1) {
- SET_HDR(hbp, 0);
- }
-}
-
-/* Apply fn to all allocated blocks */
-/*VARARGS1*/
-void GC_apply_to_all_blocks(fn, client_data)
-void (*fn)(/* struct hblk *h, word client_data */);
-word client_data;
-{
- register int j;
- register bottom_index * index_p;
-
- for (index_p = GC_all_bottom_indices; index_p != 0;
- index_p = index_p -> asc_link) {
- for (j = BOTTOM_SZ-1; j >= 0;) {
- if (!IS_FORWARDING_ADDR_OR_NIL(index_p->index[j])) {
- if (index_p->index[j]->hb_map != GC_invalid_map) {
- (*fn)(((struct hblk *)
- (((index_p->key << LOG_BOTTOM_SZ) + (word)j)
- << LOG_HBLKSIZE)),
- client_data);
- }
- j--;
- } else if (index_p->index[j] == 0) {
- j--;
- } else {
- j -= (word)(index_p->index[j]);
- }
- }
- }
-}
-
-/* Get the next valid block whose address is at least h */
-/* Return 0 if there is none. */
-struct hblk * GC_next_used_block(h)
-struct hblk * h;
-{
- register bottom_index * bi;
- register word j = ((word)h >> LOG_HBLKSIZE) & (BOTTOM_SZ-1);
-
- GET_BI(h, bi);
- if (bi == GC_all_nils) {
- register word hi = (word)h >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE);
- bi = GC_all_bottom_indices;
- while (bi != 0 && bi -> key < hi) bi = bi -> asc_link;
- j = 0;
- }
- while(bi != 0) {
- while (j < BOTTOM_SZ) {
- hdr * hhdr = bi -> index[j];
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- j++;
- } else {
- if (hhdr->hb_map != GC_invalid_map) {
- return((struct hblk *)
- (((bi -> key << LOG_BOTTOM_SZ) + j)
- << LOG_HBLKSIZE));
- } else {
- j += divHBLKSZ(hhdr -> hb_sz);
- }
- }
- }
- j = 0;
- bi = bi -> asc_link;
- }
- return(0);
-}
-
-/* Get the last (highest address) block whose address is */
-/* at most h. Return 0 if there is none. */
-/* Unlike the above, this may return a free block. */
-struct hblk * GC_prev_block(h)
-struct hblk * h;
-{
- register bottom_index * bi;
- register signed_word j = ((word)h >> LOG_HBLKSIZE) & (BOTTOM_SZ-1);
-
- GET_BI(h, bi);
- if (bi == GC_all_nils) {
- register word hi = (word)h >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE);
- bi = GC_all_bottom_indices_end;
- while (bi != 0 && bi -> key > hi) bi = bi -> desc_link;
- j = BOTTOM_SZ - 1;
- }
- while(bi != 0) {
- while (j >= 0) {
- hdr * hhdr = bi -> index[j];
- if (0 == hhdr) {
- --j;
- } else if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- j -= (signed_word)hhdr;
- } else {
- return((struct hblk *)
- (((bi -> key << LOG_BOTTOM_SZ) + j)
- << LOG_HBLKSIZE));
- }
- }
- j = BOTTOM_SZ - 1;
- bi = bi -> desc_link;
- }
- return(0);
-}
diff --git a/boehm-gc/hpux_irix_threads.c b/boehm-gc/hpux_irix_threads.c
deleted file mode 100644
index f6e74365216..00000000000
--- a/boehm-gc/hpux_irix_threads.c
+++ /dev/null
@@ -1,746 +0,0 @@
-/*
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for Irix (>=6.2) Pthreads. This relies on properties
- * not guaranteed by the Pthread standard. It may or may not be portable
- * to other implementations.
- *
- * This now also includes an initial attempt at thread support for
- * HP/UX 11.
- *
- * Note that there is a lot of code duplication between linux_threads.c
- * and hpux_irix_threads.c; any changes made here may need to be reflected
- * there too.
- */
-
-# if defined(IRIX_THREADS) || defined(HPUX_THREADS)
-
-# if defined(HPUX_THREADS)
-# include <sys/semaphore.h>
-# endif
-
-# include "gc_priv.h"
-# include <pthread.h>
-# include <semaphore.h>
-# include <time.h>
-# include <errno.h>
-# include <unistd.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-
-#undef pthread_create
-#undef pthread_sigmask
-#undef pthread_join
-
-void GC_thr_init();
-
-#if 0
-void GC_print_sig_mask()
-{
- sigset_t blocked;
- int i;
-
- if (pthread_sigmask(SIG_BLOCK, NULL, &blocked) != 0)
- ABORT("pthread_sigmask");
- GC_printf0("Blocked: ");
- for (i = 1; i <= MAXSIG; i++) {
- if (sigismember(&blocked, i)) { GC_printf1("%ld ",(long) i); }
- }
- GC_printf0("\n");
-}
-#endif
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-/* Protected by GC_thr_lock. */
-/* Some of this should be declared volatile, but that's incosnsistent */
-/* with some library routine declarations. */
-typedef struct GC_Thread_Rep {
- struct GC_Thread_Rep * next; /* More recently allocated threads */
- /* with a given pthread id come */
- /* first. (All but the first are */
- /* guaranteed to be dead, but we may */
- /* not yet have registered the join.) */
- pthread_t id;
- word stop;
-# define NOT_STOPPED 0
-# define PLEASE_STOP 1
-# define STOPPED 2
- word flags;
-# define FINISHED 1 /* Thread has exited. */
-# define DETACHED 2 /* Thread is intended to be detached. */
-# define CLIENT_OWNS_STACK 4
- /* Stack was supplied by client. */
- ptr_t stack;
- ptr_t stack_ptr; /* Valid only when stopped. */
- /* But must be within stack region at */
- /* all times. */
- size_t stack_size; /* 0 for original thread. */
- void * status; /* Used only to avoid premature */
- /* reclamation of any data it might */
- /* reference. */
-} * GC_thread;
-
-GC_thread GC_lookup_thread(pthread_t id);
-
-/*
- * The only way to suspend threads given the pthread interface is to send
- * signals. Unfortunately, this means we have to reserve
- * a signal, and intercept client calls to change the signal mask.
- */
-# define SIG_SUSPEND (SIGRTMIN + 6)
-
-pthread_mutex_t GC_suspend_lock = PTHREAD_MUTEX_INITIALIZER;
- /* Number of threads stopped so far */
-pthread_cond_t GC_suspend_ack_cv = PTHREAD_COND_INITIALIZER;
-pthread_cond_t GC_continue_cv = PTHREAD_COND_INITIALIZER;
-
-void GC_suspend_handler(int sig)
-{
- int dummy;
- GC_thread me;
- sigset_t all_sigs;
- sigset_t old_sigs;
- int i;
-
- if (sig != SIG_SUSPEND) ABORT("Bad signal in suspend_handler");
- me = GC_lookup_thread(pthread_self());
- /* The lookup here is safe, since I'm doing this on behalf */
- /* of a thread which holds the allocation lock in order */
- /* to stop the world. Thus concurrent modification of the */
- /* data structure is impossible. */
- if (PLEASE_STOP != me -> stop) {
- /* Misdirected signal. */
- pthread_mutex_unlock(&GC_suspend_lock);
- return;
- }
- pthread_mutex_lock(&GC_suspend_lock);
- me -> stack_ptr = (ptr_t)(&dummy);
- me -> stop = STOPPED;
- pthread_cond_signal(&GC_suspend_ack_cv);
- pthread_cond_wait(&GC_continue_cv, &GC_suspend_lock);
- pthread_mutex_unlock(&GC_suspend_lock);
- /* GC_printf1("Continuing 0x%x\n", pthread_self()); */
-}
-
-
-GC_bool GC_thr_initialized = FALSE;
-
-size_t GC_min_stack_sz;
-
-size_t GC_page_sz;
-
-# define N_FREE_LISTS 25
-ptr_t GC_stack_free_lists[N_FREE_LISTS] = { 0 };
- /* GC_stack_free_lists[i] is free list for stacks of */
- /* size GC_min_stack_sz*2**i. */
- /* Free lists are linked through first word. */
-
-/* Return a stack of size at least *stack_size. *stack_size is */
-/* replaced by the actual stack size. */
-/* Caller holds allocation lock. */
-ptr_t GC_stack_alloc(size_t * stack_size)
-{
- register size_t requested_sz = *stack_size;
- register size_t search_sz = GC_min_stack_sz;
- register int index = 0; /* = log2(search_sz/GC_min_stack_sz) */
- register ptr_t result;
-
- while (search_sz < requested_sz) {
- search_sz *= 2;
- index++;
- }
- if ((result = GC_stack_free_lists[index]) == 0
- && (result = GC_stack_free_lists[index+1]) != 0) {
- /* Try next size up. */
- search_sz *= 2; index++;
- }
- if (result != 0) {
- GC_stack_free_lists[index] = *(ptr_t *)result;
- } else {
- result = (ptr_t) GC_scratch_alloc(search_sz + 2*GC_page_sz);
- result = (ptr_t)(((word)result + GC_page_sz) & ~(GC_page_sz - 1));
- /* Protect hottest page to detect overflow. */
-# ifdef STACK_GROWS_UP
- /* mprotect(result + search_sz, GC_page_sz, PROT_NONE); */
-# else
- /* mprotect(result, GC_page_sz, PROT_NONE); */
- result += GC_page_sz;
-# endif
- }
- *stack_size = search_sz;
- return(result);
-}
-
-/* Caller holds allocation lock. */
-void GC_stack_free(ptr_t stack, size_t size)
-{
- register int index = 0;
- register size_t search_sz = GC_min_stack_sz;
-
- while (search_sz < size) {
- search_sz *= 2;
- index++;
- }
- if (search_sz != size) ABORT("Bad stack size");
- *(ptr_t *)stack = GC_stack_free_lists[index];
- GC_stack_free_lists[index] = stack;
-}
-
-
-
-# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
-volatile GC_thread GC_threads[THREAD_TABLE_SZ];
-
-/* Add a thread to GC_threads. We assume it wasn't already there. */
-/* Caller holds allocation lock. */
-GC_thread GC_new_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- GC_thread result;
- static struct GC_Thread_Rep first_thread;
- static GC_bool first_thread_used = FALSE;
-
- if (!first_thread_used) {
- result = &first_thread;
- first_thread_used = TRUE;
- /* Dont acquire allocation lock, since we may already hold it. */
- } else {
- result = (struct GC_Thread_Rep *)
- GC_generic_malloc_inner(sizeof(struct GC_Thread_Rep), NORMAL);
- }
- if (result == 0) return(0);
- result -> id = id;
- result -> next = GC_threads[hv];
- GC_threads[hv] = result;
- /* result -> flags = 0; */
- /* result -> stop = 0; */
- return(result);
-}
-
-/* Delete a thread from GC_threads. We assume it is there. */
-/* (The code intentionally traps if it wasn't.) */
-/* Caller holds allocation lock. */
-void GC_delete_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (!pthread_equal(p -> id, id)) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* If a thread has been joined, but we have not yet */
-/* been notified, then there may be more than one thread */
-/* in the table with the same pthread id. */
-/* This is OK, but we need a way to delete a specific one. */
-void GC_delete_gc_thread(pthread_t id, GC_thread gc_id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (p != gc_id) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* Return a GC_thread corresponding to a given thread_t. */
-/* Returns 0 if it's not there. */
-/* Caller holds allocation lock or otherwise inhibits */
-/* updates. */
-/* If there is more than one thread with the given id we */
-/* return the most recent one. */
-GC_thread GC_lookup_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
-
- while (p != 0 && !pthread_equal(p -> id, id)) p = p -> next;
- return(p);
-}
-
-
-/* Caller holds allocation lock. */
-void GC_stop_world()
-{
- pthread_t my_thread = pthread_self();
- register int i;
- register GC_thread p;
- register int result;
- struct timespec timeout;
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> id != my_thread) {
- if (p -> flags & FINISHED) {
- p -> stop = STOPPED;
- continue;
- }
- p -> stop = PLEASE_STOP;
- result = pthread_kill(p -> id, SIG_SUSPEND);
- /* GC_printf1("Sent signal to 0x%x\n", p -> id); */
- switch(result) {
- case ESRCH:
- /* Not really there anymore. Possible? */
- p -> stop = STOPPED;
- break;
- case 0:
- break;
- default:
- ABORT("pthread_kill failed");
- }
- }
- }
- }
- pthread_mutex_lock(&GC_suspend_lock);
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- while (p -> id != my_thread && p -> stop != STOPPED) {
- clock_gettime(CLOCK_REALTIME, &timeout);
- timeout.tv_nsec += 50000000; /* 50 msecs */
- if (timeout.tv_nsec >= 1000000000) {
- timeout.tv_nsec -= 1000000000;
- ++timeout.tv_sec;
- }
- result = pthread_cond_timedwait(&GC_suspend_ack_cv,
- &GC_suspend_lock,
- &timeout);
- if (result == ETIMEDOUT) {
- /* Signal was lost or misdirected. Try again. */
- /* Duplicate signals should be benign. */
- result = pthread_kill(p -> id, SIG_SUSPEND);
- }
- }
- }
- }
- pthread_mutex_unlock(&GC_suspend_lock);
- /* GC_printf1("World stopped 0x%x\n", pthread_self()); */
-}
-
-/* Caller holds allocation lock. */
-void GC_start_world()
-{
- GC_thread p;
- unsigned i;
-
- /* GC_printf0("World starting\n"); */
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- p -> stop = NOT_STOPPED;
- }
- }
- pthread_mutex_lock(&GC_suspend_lock);
- /* All other threads are at pthread_cond_wait in signal handler. */
- /* Otherwise we couldn't have acquired the lock. */
- pthread_mutex_unlock(&GC_suspend_lock);
- pthread_cond_broadcast(&GC_continue_cv);
-}
-
-# ifdef MMAP_STACKS
---> not really supported yet.
-int GC_is_thread_stack(ptr_t addr)
-{
- register int i;
- register GC_thread p;
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> stack_size != 0) {
- if (p -> stack <= addr &&
- addr < p -> stack + p -> stack_size)
- return 1;
- }
- }
- }
- return 0;
-}
-# endif
-
-/* We hold allocation lock. Should do exactly the right thing if the */
-/* world is stopped. Should not fail if it isn't. */
-void GC_push_all_stacks()
-{
- register int i;
- register GC_thread p;
- register ptr_t sp = GC_approx_sp();
- register ptr_t hot, cold;
- pthread_t me = pthread_self();
-
- if (!GC_thr_initialized) GC_thr_init();
- /* GC_printf1("Pushing stacks from thread 0x%x\n", me); */
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> flags & FINISHED) continue;
- if (pthread_equal(p -> id, me)) {
- hot = GC_approx_sp();
- } else {
- hot = p -> stack_ptr;
- }
- if (p -> stack_size != 0) {
-# ifdef STACK_GROWS_UP
- cold = p -> stack;
-# else
- cold = p -> stack + p -> stack_size;
-# endif
- } else {
- /* The original stack. */
- cold = GC_stackbottom;
- }
-# ifdef STACK_GROWS_UP
- GC_push_all_stack(cold, hot);
-# else
- GC_push_all_stack(hot, cold);
-# endif
- }
- }
-}
-
-
-/* We hold the allocation lock. */
-void GC_thr_init()
-{
- GC_thread t;
- struct sigaction act;
-
- if (GC_thr_initialized) return;
- GC_thr_initialized = TRUE;
- GC_min_stack_sz = HBLKSIZE;
- GC_page_sz = sysconf(_SC_PAGESIZE);
- (void) sigaction(SIG_SUSPEND, 0, &act);
- if (act.sa_handler != SIG_DFL)
- ABORT("Previously installed SIG_SUSPEND handler");
- /* Install handler. */
- act.sa_handler = GC_suspend_handler;
- act.sa_flags = SA_RESTART;
- (void) sigemptyset(&act.sa_mask);
- if (0 != sigaction(SIG_SUSPEND, &act, 0))
- ABORT("Failed to install SIG_SUSPEND handler");
- /* Add the initial thread, so we can stop it. */
- t = GC_new_thread(pthread_self());
- t -> stack_size = 0;
- t -> stack_ptr = (ptr_t)(&t);
- t -> flags = DETACHED;
-}
-
-int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset)
-{
- sigset_t fudged_set;
-
- if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
- fudged_set = *set;
- sigdelset(&fudged_set, SIG_SUSPEND);
- set = &fudged_set;
- }
- return(pthread_sigmask(how, set, oset));
-}
-
-struct start_info {
- void *(*start_routine)(void *);
- void *arg;
- word flags;
- ptr_t stack;
- size_t stack_size;
- sem_t registered; /* 1 ==> in our thread table, but */
- /* parent hasn't yet noticed. */
-};
-
-void GC_thread_exit_proc(void *arg)
-{
- GC_thread me;
-
- LOCK();
- me = GC_lookup_thread(pthread_self());
- if (me -> flags & DETACHED) {
- GC_delete_thread(pthread_self());
- } else {
- me -> flags |= FINISHED;
- }
- UNLOCK();
-}
-
-int GC_pthread_join(pthread_t thread, void **retval)
-{
- int result;
- GC_thread thread_gc_id;
-
- LOCK();
- thread_gc_id = GC_lookup_thread(thread);
- /* This is guaranteed to be the intended one, since the thread id */
- /* cant have been recycled by pthreads. */
- UNLOCK();
- result = pthread_join(thread, retval);
- /* Some versions of the Irix pthreads library can erroneously */
- /* return EINTR when the call succeeds. */
- if (EINTR == result) result = 0;
- LOCK();
- /* Here the pthread thread id may have been recycled. */
- GC_delete_gc_thread(thread, thread_gc_id);
- UNLOCK();
- return result;
-}
-
-void * GC_start_routine(void * arg)
-{
- struct start_info * si = arg;
- void * result;
- GC_thread me;
- pthread_t my_pthread;
- void *(*start)(void *);
- void *start_arg;
-
- my_pthread = pthread_self();
- /* If a GC occurs before the thread is registered, that GC will */
- /* ignore this thread. That's fine, since it will block trying to */
- /* acquire the allocation lock, and won't yet hold interesting */
- /* pointers. */
- LOCK();
- /* We register the thread here instead of in the parent, so that */
- /* we don't need to hold the allocation lock during pthread_create. */
- /* Holding the allocation lock there would make REDIRECT_MALLOC */
- /* impossible. It probably still doesn't work, but we're a little */
- /* closer ... */
- /* This unfortunately means that we have to be careful the parent */
- /* doesn't try to do a pthread_join before we're registered. */
- me = GC_new_thread(my_pthread);
- me -> flags = si -> flags;
- me -> stack = si -> stack;
- me -> stack_size = si -> stack_size;
- me -> stack_ptr = (ptr_t)si -> stack + si -> stack_size - sizeof(word);
- UNLOCK();
- start = si -> start_routine;
- start_arg = si -> arg;
- sem_post(&(si -> registered));
- pthread_cleanup_push(GC_thread_exit_proc, 0);
- result = (*start)(start_arg);
- me -> status = result;
- me -> flags |= FINISHED;
- pthread_cleanup_pop(1);
- /* This involves acquiring the lock, ensuring that we can't exit */
- /* while a collection that thinks we're alive is trying to stop */
- /* us. */
- return(result);
-}
-
-# ifdef HPUX_THREADS
- /* pthread_attr_t is not a structure, thus a simple structure copy */
- /* won't work. */
- static void copy_attr(pthread_attr_t * pa_ptr,
- const pthread_attr_t * source) {
- int tmp;
- size_t stmp;
- void * vtmp;
- struct sched_param sp_tmp;
- pthread_spu_t ps_tmp;
- (void) pthread_attr_init(pa_ptr);
- (void) pthread_attr_getdetachstate(source, &tmp);
- (void) pthread_attr_setdetachstate(pa_ptr, tmp);
- (void) pthread_attr_getinheritsched(source, &tmp);
- (void) pthread_attr_setinheritsched(pa_ptr, tmp);
- (void) pthread_attr_getschedpolicy(source, &tmp);
- (void) pthread_attr_setschedpolicy(pa_ptr, tmp);
- (void) pthread_attr_getstacksize(source, &stmp);
- (void) pthread_attr_setstacksize(pa_ptr, stmp);
- (void) pthread_attr_getguardsize(source, &stmp);
- (void) pthread_attr_setguardsize(pa_ptr, stmp);
- (void) pthread_attr_getstackaddr(source, &vtmp);
- (void) pthread_attr_setstackaddr(pa_ptr, vtmp);
- (void) pthread_attr_getscope(source, &tmp);
- (void) pthread_attr_setscope(pa_ptr, tmp);
- (void) pthread_attr_getschedparam(source, &sp_tmp);
- (void) pthread_attr_setschedparam(pa_ptr, &sp_tmp);
- (void) pthread_attr_getprocessor_np(source, &ps_tmp, &tmp);
- (void) pthread_attr_setprocessor_np(pa_ptr, ps_tmp, tmp);
- }
-# else
-# define copy_attr(pa_ptr, source) *(pa_ptr) = *(source)
-# endif
-
-int
-GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void *), void *arg)
-{
- int result;
- GC_thread t;
- void * stack;
- size_t stacksize;
- pthread_attr_t new_attr;
- int detachstate;
- word my_flags = 0;
- struct start_info * si = GC_malloc(sizeof(struct start_info));
- /* This is otherwise saved only in an area mmapped by the thread */
- /* library, which isn't visible to the collector. */
-
- if (0 == si) return(ENOMEM);
- if (0 != sem_init(&(si -> registered), 0, 0)) {
- ABORT("sem_init failed");
- }
- si -> start_routine = start_routine;
- si -> arg = arg;
- LOCK();
- if (!GC_thr_initialized) GC_thr_init();
- if (NULL == attr) {
- stack = 0;
- (void) pthread_attr_init(&new_attr);
- } else {
- copy_attr(&new_attr, attr);
- pthread_attr_getstackaddr(&new_attr, &stack);
- }
- pthread_attr_getstacksize(&new_attr, &stacksize);
- pthread_attr_getdetachstate(&new_attr, &detachstate);
- if (stacksize < GC_min_stack_sz) ABORT("Stack too small");
- if (0 == stack) {
- stack = (void *)GC_stack_alloc(&stacksize);
- if (0 == stack) {
- UNLOCK();
- return(ENOMEM);
- }
- pthread_attr_setstackaddr(&new_attr, stack);
- } else {
- my_flags |= CLIENT_OWNS_STACK;
- }
- if (PTHREAD_CREATE_DETACHED == detachstate) my_flags |= DETACHED;
- si -> flags = my_flags;
- si -> stack = stack;
- si -> stack_size = stacksize;
- result = pthread_create(new_thread, &new_attr, GC_start_routine, si);
- if (0 == new_thread && !(my_flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(stack, stacksize);
- }
- UNLOCK();
- /* Wait until child has been added to the thread table. */
- /* This also ensures that we hold onto si until the child is done */
- /* with it. Thus it doesn't matter whether it is otherwise */
- /* visible to the collector. */
- while (0 != sem_wait(&(si -> registered))) {
- if (errno != EINTR) {
- GC_printf1("Sem_wait: errno = %ld\n", (unsigned long) errno);
- ABORT("sem_wait failed");
- }
- }
- sem_destroy(&(si -> registered));
- pthread_attr_destroy(&new_attr); /* Not a no-op under HPUX */
- return(result);
-}
-
-#ifndef HPUX_THREADS
-/* For now we use the pthreads locking primitives on HP/UX */
-
-GC_bool GC_collecting = 0; /* A hint that we're in the collector and */
- /* holding the allocation lock for an */
- /* extended period. */
-
-/* Reasonably fast spin locks. Basically the same implementation */
-/* as STL alloc.h. */
-
-#define SLEEP_THRESHOLD 3
-
-#ifdef HPUX
- unsigned long GC_allocate_lock = 1;
-# define GC_TRY_LOCK() GC_test_and_clear(&GC_allocate_lock)
-# define GC_LOCK_TAKEN !GC_allocate_lock
-#else
- unsigned long GC_allocate_lock = 0;
-# define GC_TRY_LOCK() !GC_test_and_set(&GC_allocate_lock,1)
-# define GC_LOCK_TAKEN GC_allocate_lock
-#endif
-
-void GC_lock()
-{
-# define low_spin_max 30 /* spin cycles if we suspect uniprocessor */
-# define high_spin_max 1000 /* spin cycles for multiprocessor */
- static unsigned spin_max = low_spin_max;
- unsigned my_spin_max;
- static unsigned last_spins = 0;
- unsigned my_last_spins;
- volatile unsigned junk;
-# define PAUSE junk *= junk; junk *= junk; junk *= junk; junk *= junk
- int i;
-
- if (GC_TRY_LOCK()) {
- return;
- }
- junk = 0;
- my_spin_max = spin_max;
- my_last_spins = last_spins;
- for (i = 0; i < my_spin_max; i++) {
- if (GC_collecting) goto yield;
- if (i < my_last_spins/2 || GC_LOCK_TAKEN) {
- PAUSE;
- continue;
- }
- if (GC_TRY_LOCK()) {
- /*
- * got it!
- * Spinning worked. Thus we're probably not being scheduled
- * against the other process with which we were contending.
- * Thus it makes sense to spin longer the next time.
- */
- last_spins = i;
- spin_max = high_spin_max;
- return;
- }
- }
- /* We are probably being scheduled against the other process. Sleep. */
- spin_max = low_spin_max;
-yield:
- for (i = 0;; ++i) {
- if (GC_TRY_LOCK()) {
- return;
- }
- if (i < SLEEP_THRESHOLD) {
- sched_yield();
- } else {
- struct timespec ts;
-
- if (i > 26) i = 26;
- /* Don't wait for more than about 60msecs, even */
- /* under extreme contention. */
- ts.tv_sec = 0;
- ts.tv_nsec = 1 << i;
- nanosleep(&ts, 0);
- }
- }
-}
-
-#endif /* !HPUX_THREADS */
-
-# else
-
-#ifndef LINT
- int GC_no_Irix_threads;
-#endif
-
-# endif /* IRIX_THREADS */
-
diff --git a/boehm-gc/hpux_test_and_clear.s b/boehm-gc/hpux_test_and_clear.s
deleted file mode 100644
index f09b211404b..00000000000
--- a/boehm-gc/hpux_test_and_clear.s
+++ /dev/null
@@ -1,21 +0,0 @@
- .SPACE $PRIVATE$
- .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
- .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
- .SPACE $TEXT$
- .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
- .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .IMPORT $global$,DATA
- .IMPORT $$dyncall,MILLICODE
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT GC_test_and_clear,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
-GC_test_and_clear
- .PROC
- .CALLINFO FRAME=0,NO_CALLS
- .ENTRY
- ldcw,co (%r26),%r28
- bv,n 0(%r2)
- .EXIT
- .PROCEND
diff --git a/boehm-gc/if_mach.c b/boehm-gc/if_mach.c
deleted file mode 100644
index af013637bf2..00000000000
--- a/boehm-gc/if_mach.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Conditionally execute a command based on machine and OS from gcconfig.h */
-
-# include "gcconfig.h"
-# include <stdio.h>
-
-int main(argc, argv, envp)
-int argc;
-char ** argv;
-char ** envp;
-{
- if (argc < 4) goto Usage;
- if (strcmp(MACH_TYPE, argv[1]) != 0) return(0);
- if (strcmp(OS_TYPE, "") != 0 && strcmp(argv[2], "") != 0
- && strcmp(OS_TYPE, argv[2]) != 0) return(0);
- printf("^^^^Starting command^^^^\n");
- execvp(argv[3], argv+3);
- perror("Couldn't execute");
-
-Usage:
- fprintf(stderr, "Usage: %s mach_type os_type command\n", argv[0]);
- fprintf(stderr, "Currently mach_type = %s, os_type = %s\n",
- MACH_TYPE, OS_TYPE);
- return(1);
-}
-
diff --git a/boehm-gc/if_not_there.c b/boehm-gc/if_not_there.c
deleted file mode 100644
index a93795f1c78..00000000000
--- a/boehm-gc/if_not_there.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Conditionally execute a command based if the file argv[1] doesn't exist */
-/* Except for execvp, we stick to ANSI C. */
-# include "gcconfig.h"
-# include <stdio.h>
-
-int main(argc, argv, envp)
-int argc;
-char ** argv;
-char ** envp;
-{
- FILE * f;
- if (argc < 3) goto Usage;
- if ((f = fopen(argv[1], "rb")) != 0
- || (f = fopen(argv[1], "r")) != 0) {
- fclose(f);
- return(0);
- }
- printf("^^^^Starting command^^^^\n");
- execvp(argv[2], argv+2);
- exit(1);
-
-Usage:
- fprintf(stderr, "Usage: %s file_name command\n", argv[0]);
- return(1);
-}
-
diff --git a/boehm-gc/include/backptr.h b/boehm-gc/include/backptr.h
deleted file mode 100644
index f5b7c5aa2b9..00000000000
--- a/boehm-gc/include/backptr.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * This is a simple API to implement pointer back tracing, i.e.
- * to answer questions such as "who is pointing to this" or
- * "why is this object being retained by the collector"
- *
- * This API assumes that we have an ANSI C compiler.
- *
- * Most of these calls yield useful information on only after
- * a garbage collection. Usually the client will first force
- * a full collection and then gather information, preferably
- * before much intervening allocation.
- *
- * The implementation of the interface is only about 99.9999%
- * correct. It is intended to be good enough for profiling,
- * but is not intended to be used with production code.
- *
- * Results are likely to be much more useful if all allocation is
- * accomplished through the debugging allocators.
- *
- * The implementation idea is due to A. Demers.
- */
-
-/* Store information about the object referencing dest in *base_p */
-/* and *offset_p. */
-/* If multiple objects or roots point to dest, the one reported */
-/* will be the last on used by the garbage collector to trace the */
-/* object. */
-/* source is root ==> *base_p = address, *offset_p = 0 */
-/* source is heap object ==> *base_p != 0, *offset_p = offset */
-/* Returns 1 on success, 0 if source couldn't be determined. */
-/* Dest can be any address within a heap object. */
-typedef enum { GC_UNREFERENCED, /* No reference info available. */
- GC_NO_SPACE, /* Dest not allocated with debug alloc */
- GC_REFD_FROM_ROOT, /* Referenced directly by root *base_p */
- GC_REFD_FROM_REG, /* Referenced from a register, i.e. */
- /* a root without an address. */
- GC_REFD_FROM_HEAP, /* Referenced from another heap obj. */
- GC_FINALIZER_REFD /* Finalizable and hence accessible. */
-} GC_ref_kind;
-
-GC_ref_kind GC_get_back_ptr_info(void *dest, void **base_p, size_t *offset_p);
-
-/* Generate a random heap address. */
-/* The resulting address is in the heap, but */
-/* not necessarily inside a valid object. */
-void * GC_generate_random_heap_address(void);
-
-/* Generate a random address inside a valid marked heap object. */
-void * GC_generate_random_valid_address(void);
-
-/* Force a garbage collection and generate a backtrace from a */
-/* random heap address. */
-/* This uses the GC logging mechanism (GC_printf) to produce */
-/* output. It can often be called from a debugger. The */
-/* source in dbg_mlc.c also serves as a sample client. */
-void GC_generate_random_backtrace(void);
-
-/* Print a backtrace from a specific address. Used by the */
-/* above. The client should call GC_gcollect() immediately */
-/* before invocation. */
-void GC_print_backtrace(void *);
-
-
diff --git a/boehm-gc/include/cord.h b/boehm-gc/include/cord.h
deleted file mode 100644
index 926089e86fb..00000000000
--- a/boehm-gc/include/cord.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Author: Hans-J. Boehm (boehm@parc.xerox.com)
- */
-/* Boehm, October 5, 1995 4:20 pm PDT */
-
-/*
- * Cords are immutable character strings. A number of operations
- * on long cords are much more efficient than their strings.h counterpart.
- * In particular, concatenation takes constant time independent of the length
- * of the arguments. (Cords are represented as trees, with internal
- * nodes representing concatenation and leaves consisting of either C
- * strings or a functional description of the string.)
- *
- * The following are reasonable applications of cords. They would perform
- * unacceptably if C strings were used:
- * - A compiler that produces assembly language output by repeatedly
- * concatenating instructions onto a cord representing the output file.
- * - A text editor that converts the input file to a cord, and then
- * performs editing operations by producing a new cord representing
- * the file after echa character change (and keeping the old ones in an
- * edit history)
- *
- * For optimal performance, cords should be built by
- * concatenating short sections.
- * This interface is designed for maximum compatibility with C strings.
- * ASCII NUL characters may be embedded in cords using CORD_from_fn.
- * This is handled correctly, but CORD_to_char_star will produce a string
- * with embedded NULs when given such a cord.
- *
- * This interface is fairly big, largely for performance reasons.
- * The most basic constants and functions:
- *
- * CORD - the type of a cord;
- * CORD_EMPTY - empty cord;
- * CORD_len(cord) - length of a cord;
- * CORD_cat(cord1,cord2) - concatenation of two cords;
- * CORD_substr(cord, start, len) - substring (or subcord);
- * CORD_pos i; CORD_FOR(i, cord) { ... CORD_pos_fetch(i) ... } -
- * examine each character in a cord. CORD_pos_fetch(i) is the char.
- * CORD_fetch(int i) - Retrieve i'th character (slowly).
- * CORD_cmp(cord1, cord2) - compare two cords.
- * CORD_from_file(FILE * f) - turn a read-only file into a cord.
- * CORD_to_char_star(cord) - convert to C string.
- * (Non-NULL C constant strings are cords.)
- * CORD_printf (etc.) - cord version of printf. Use %r for cords.
- */
-# ifndef CORD_H
-
-# define CORD_H
-# include <stddef.h>
-# include <stdio.h>
-/* Cords have type const char *. This is cheating quite a bit, and not */
-/* 100% portable. But it means that nonempty character string */
-/* constants may be used as cords directly, provided the string is */
-/* never modified in place. The empty cord is represented by, and */
-/* can be written as, 0. */
-
-typedef const char * CORD;
-
-/* An empty cord is always represented as nil */
-# define CORD_EMPTY 0
-
-/* Is a nonempty cord represented as a C string? */
-#define CORD_IS_STRING(s) (*(s) != '\0')
-
-/* Concatenate two cords. If the arguments are C strings, they may */
-/* not be subsequently altered. */
-CORD CORD_cat(CORD x, CORD y);
-
-/* Concatenate a cord and a C string with known length. Except for the */
-/* empty string case, this is a special case of CORD_cat. Since the */
-/* length is known, it can be faster. */
-/* The string y is shared with the resulting CORD. Hence it should */
-/* not be altered by the caller. */
-CORD CORD_cat_char_star(CORD x, const char * y, size_t leny);
-
-/* Compute the length of a cord */
-size_t CORD_len(CORD x);
-
-/* Cords may be represented by functions defining the ith character */
-typedef char (* CORD_fn)(size_t i, void * client_data);
-
-/* Turn a functional description into a cord. */
-CORD CORD_from_fn(CORD_fn fn, void * client_data, size_t len);
-
-/* Return the substring (subcord really) of x with length at most n, */
-/* starting at position i. (The initial character has position 0.) */
-CORD CORD_substr(CORD x, size_t i, size_t n);
-
-/* Return the argument, but rebalanced to allow more efficient */
-/* character retrieval, substring operations, and comparisons. */
-/* This is useful only for cords that were built using repeated */
-/* concatenation. Guarantees log time access to the result, unless */
-/* x was obtained through a large number of repeated substring ops */
-/* or the embedded functional descriptions take longer to evaluate. */
-/* May reallocate significant parts of the cord. The argument is not */
-/* modified; only the result is balanced. */
-CORD CORD_balance(CORD x);
-
-/* The following traverse a cord by applying a function to each */
-/* character. This is occasionally appropriate, especially where */
-/* speed is crucial. But, since C doesn't have nested functions, */
-/* clients of this sort of traversal are clumsy to write. Consider */
-/* the functions that operate on cord positions instead. */
-
-/* Function to iteratively apply to individual characters in cord. */
-typedef int (* CORD_iter_fn)(char c, void * client_data);
-
-/* Function to apply to substrings of a cord. Each substring is a */
-/* a C character string, not a general cord. */
-typedef int (* CORD_batched_iter_fn)(const char * s, void * client_data);
-# define CORD_NO_FN ((CORD_batched_iter_fn)0)
-
-/* Apply f1 to each character in the cord, in ascending order, */
-/* starting at position i. If */
-/* f2 is not CORD_NO_FN, then multiple calls to f1 may be replaced by */
-/* a single call to f2. The parameter f2 is provided only to allow */
-/* some optimization by the client. This terminates when the right */
-/* end of this string is reached, or when f1 or f2 return != 0. In the */
-/* latter case CORD_iter returns != 0. Otherwise it returns 0. */
-/* The specified value of i must be < CORD_len(x). */
-int CORD_iter5(CORD x, size_t i, CORD_iter_fn f1,
- CORD_batched_iter_fn f2, void * client_data);
-
-/* A simpler version that starts at 0, and without f2: */
-int CORD_iter(CORD x, CORD_iter_fn f1, void * client_data);
-# define CORD_iter(x, f1, cd) CORD_iter5(x, 0, f1, CORD_NO_FN, cd)
-
-/* Similar to CORD_iter5, but end-to-beginning. No provisions for */
-/* CORD_batched_iter_fn. */
-int CORD_riter4(CORD x, size_t i, CORD_iter_fn f1, void * client_data);
-
-/* A simpler version that starts at the end: */
-int CORD_riter(CORD x, CORD_iter_fn f1, void * client_data);
-
-/* Functions that operate on cord positions. The easy way to traverse */
-/* cords. A cord position is logically a pair consisting of a cord */
-/* and an index into that cord. But it is much faster to retrieve a */
-/* charcter based on a position than on an index. Unfortunately, */
-/* positions are big (order of a few 100 bytes), so allocate them with */
-/* caution. */
-/* Things in cord_pos.h should be treated as opaque, except as */
-/* described below. Also note that */
-/* CORD_pos_fetch, CORD_next and CORD_prev have both macro and function */
-/* definitions. The former may evaluate their argument more than once. */
-# include "private/cord_pos.h"
-
-/*
- Visible definitions from above:
-
- typedef <OPAQUE but fairly big> CORD_pos[1];
-
- * Extract the cord from a position:
- CORD CORD_pos_to_cord(CORD_pos p);
-
- * Extract the current index from a position:
- size_t CORD_pos_to_index(CORD_pos p);
-
- * Fetch the character located at the given position:
- char CORD_pos_fetch(CORD_pos p);
-
- * Initialize the position to refer to the given cord and index.
- * Note that this is the most expensive function on positions:
- void CORD_set_pos(CORD_pos p, CORD x, size_t i);
-
- * Advance the position to the next character.
- * P must be initialized and valid.
- * Invalidates p if past end:
- void CORD_next(CORD_pos p);
-
- * Move the position to the preceding character.
- * P must be initialized and valid.
- * Invalidates p if past beginning:
- void CORD_prev(CORD_pos p);
-
- * Is the position valid, i.e. inside the cord?
- int CORD_pos_valid(CORD_pos p);
-*/
-# define CORD_FOR(pos, cord) \
- for (CORD_set_pos(pos, cord, 0); CORD_pos_valid(pos); CORD_next(pos))
-
-
-/* An out of memory handler to call. May be supplied by client. */
-/* Must not return. */
-extern void (* CORD_oom_fn)(void);
-
-/* Dump the representation of x to stdout in an implementation defined */
-/* manner. Intended for debugging only. */
-void CORD_dump(CORD x);
-
-/* The following could easily be implemented by the client. They are */
-/* provided in cordxtra.c for convenience. */
-
-/* Concatenate a character to the end of a cord. */
-CORD CORD_cat_char(CORD x, char c);
-
-/* Concatenate n cords. */
-CORD CORD_catn(int n, /* CORD */ ...);
-
-/* Return the character in CORD_substr(x, i, 1) */
-char CORD_fetch(CORD x, size_t i);
-
-/* Return < 0, 0, or > 0, depending on whether x < y, x = y, x > y */
-int CORD_cmp(CORD x, CORD y);
-
-/* A generalization that takes both starting positions for the */
-/* comparison, and a limit on the number of characters to be compared. */
-int CORD_ncmp(CORD x, size_t x_start, CORD y, size_t y_start, size_t len);
-
-/* Find the first occurrence of s in x at position start or later. */
-/* Return the position of the first character of s in x, or */
-/* CORD_NOT_FOUND if there is none. */
-size_t CORD_str(CORD x, size_t start, CORD s);
-
-/* Return a cord consisting of i copies of (possibly NUL) c. Dangerous */
-/* in conjunction with CORD_to_char_star. */
-/* The resulting representation takes constant space, independent of i. */
-CORD CORD_chars(char c, size_t i);
-# define CORD_nul(i) CORD_chars('\0', (i))
-
-/* Turn a file into cord. The file must be seekable. Its contents */
-/* must remain constant. The file may be accessed as an immediate */
-/* result of this call and/or as a result of subsequent accesses to */
-/* the cord. Short files are likely to be immediately read, but */
-/* long files are likely to be read on demand, possibly relying on */
-/* stdio for buffering. */
-/* We must have exclusive access to the descriptor f, i.e. we may */
-/* read it at any time, and expect the file pointer to be */
-/* where we left it. Normally this should be invoked as */
-/* CORD_from_file(fopen(...)) */
-/* CORD_from_file arranges to close the file descriptor when it is no */
-/* longer needed (e.g. when the result becomes inaccessible). */
-/* The file f must be such that ftell reflects the actual character */
-/* position in the file, i.e. the number of characters that can be */
-/* or were read with fread. On UNIX systems this is always true. On */
-/* MS Windows systems, f must be opened in binary mode. */
-CORD CORD_from_file(FILE * f);
-
-/* Equivalent to the above, except that the entire file will be read */
-/* and the file pointer will be closed immediately. */
-/* The binary mode restriction from above does not apply. */
-CORD CORD_from_file_eager(FILE * f);
-
-/* Equivalent to the above, except that the file will be read on demand.*/
-/* The binary mode restriction applies. */
-CORD CORD_from_file_lazy(FILE * f);
-
-/* Turn a cord into a C string. The result shares no structure with */
-/* x, and is thus modifiable. */
-char * CORD_to_char_star(CORD x);
-
-/* Turn a C string into a CORD. The C string is copied, and so may */
-/* subsequently be modified. */
-CORD CORD_from_char_star(const char *s);
-
-/* Identical to the above, but the result may share structure with */
-/* the argument and is thus not modifiable. */
-const char * CORD_to_const_char_star(CORD x);
-
-/* Write a cord to a file, starting at the current position. No */
-/* trailing NULs are newlines are added. */
-/* Returns EOF if a write error occurs, 1 otherwise. */
-int CORD_put(CORD x, FILE * f);
-
-/* "Not found" result for the following two functions. */
-# define CORD_NOT_FOUND ((size_t)(-1))
-
-/* A vague analog of strchr. Returns the position (an integer, not */
-/* a pointer) of the first occurrence of (char) c inside x at position */
-/* i or later. The value i must be < CORD_len(x). */
-size_t CORD_chr(CORD x, size_t i, int c);
-
-/* A vague analog of strrchr. Returns index of the last occurrence */
-/* of (char) c inside x at position i or earlier. The value i */
-/* must be < CORD_len(x). */
-size_t CORD_rchr(CORD x, size_t i, int c);
-
-
-/* The following are also not primitive, but are implemented in */
-/* cordprnt.c. They provide functionality similar to the ANSI C */
-/* functions with corresponding names, but with the following */
-/* additions and changes: */
-/* 1. A %r conversion specification specifies a CORD argument. Field */
-/* width, precision, etc. have the same semantics as for %s. */
-/* (Note that %c,%C, and %S were already taken.) */
-/* 2. The format string is represented as a CORD. */
-/* 3. CORD_sprintf and CORD_vsprintf assign the result through the 1st */ /* argument. Unlike their ANSI C versions, there is no need to guess */
-/* the correct buffer size. */
-/* 4. Most of the conversions are implement through the native */
-/* vsprintf. Hence they are usually no faster, and */
-/* idiosyncracies of the native printf are preserved. However, */
-/* CORD arguments to CORD_sprintf and CORD_vsprintf are NOT copied; */
-/* the result shares the original structure. This may make them */
-/* very efficient in some unusual applications. */
-/* The format string is copied. */
-/* All functions return the number of characters generated or -1 on */
-/* error. This complies with the ANSI standard, but is inconsistent */
-/* with some older implementations of sprintf. */
-
-/* The implementation of these is probably less portable than the rest */
-/* of this package. */
-
-#ifndef CORD_NO_IO
-
-#include <stdarg.h>
-
-int CORD_sprintf(CORD * out, CORD format, ...);
-int CORD_vsprintf(CORD * out, CORD format, va_list args);
-int CORD_fprintf(FILE * f, CORD format, ...);
-int CORD_vfprintf(FILE * f, CORD format, va_list args);
-int CORD_printf(CORD format, ...);
-int CORD_vprintf(CORD format, va_list args);
-
-#endif /* CORD_NO_IO */
-
-# endif /* CORD_H */
diff --git a/boehm-gc/include/ec.h b/boehm-gc/include/ec.h
deleted file mode 100644
index c829b83ad11..00000000000
--- a/boehm-gc/include/ec.h
+++ /dev/null
@@ -1,70 +0,0 @@
-# ifndef EC_H
-# define EC_H
-
-# ifndef CORD_H
-# include "cord.h"
-# endif
-
-/* Extensible cords are strings that may be destructively appended to. */
-/* They allow fast construction of cords from characters that are */
-/* being read from a stream. */
-/*
- * A client might look like:
- *
- * {
- * CORD_ec x;
- * CORD result;
- * char c;
- * FILE *f;
- *
- * ...
- * CORD_ec_init(x);
- * while(...) {
- * c = getc(f);
- * ...
- * CORD_ec_append(x, c);
- * }
- * result = CORD_balance(CORD_ec_to_cord(x));
- *
- * If a C string is desired as the final result, the call to CORD_balance
- * may be replaced by a call to CORD_to_char_star.
- */
-
-# ifndef CORD_BUFSZ
-# define CORD_BUFSZ 128
-# endif
-
-typedef struct CORD_ec_struct {
- CORD ec_cord;
- char * ec_bufptr;
- char ec_buf[CORD_BUFSZ+1];
-} CORD_ec[1];
-
-/* This structure represents the concatenation of ec_cord with */
-/* ec_buf[0 ... (ec_bufptr-ec_buf-1)] */
-
-/* Flush the buffer part of the extended chord into ec_cord. */
-/* Note that this is almost the only real function, and it is */
-/* implemented in 6 lines in cordxtra.c */
-void CORD_ec_flush_buf(CORD_ec x);
-
-/* Convert an extensible cord to a cord. */
-# define CORD_ec_to_cord(x) (CORD_ec_flush_buf(x), (x)[0].ec_cord)
-
-/* Initialize an extensible cord. */
-# define CORD_ec_init(x) ((x)[0].ec_cord = 0, (x)[0].ec_bufptr = (x)[0].ec_buf)
-
-/* Append a character to an extensible cord. */
-# define CORD_ec_append(x, c) \
- { \
- if ((x)[0].ec_bufptr == (x)[0].ec_buf + CORD_BUFSZ) { \
- CORD_ec_flush_buf(x); \
- } \
- *((x)[0].ec_bufptr)++ = (c); \
- }
-
-/* Append a cord to an extensible cord. Structure remains shared with */
-/* original. */
-void CORD_ec_append_cord(CORD_ec x, CORD s);
-
-# endif /* EC_H */
diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h
deleted file mode 100644
index d7cd8996085..00000000000
--- a/boehm-gc/include/gc.h
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * Note that this defines a large number of tuning hooks, which can
- * safely be ignored in nearly all cases. For normal use it suffices
- * to call only GC_MALLOC and perhaps GC_REALLOC.
- * For better performance, also look at GC_MALLOC_ATOMIC, and
- * GC_enable_incremental. If you need an action to be performed
- * immediately before an object is collected, look at GC_register_finalizer.
- * If you are using Solaris threads, look at the end of this file.
- * Everything else is best ignored unless you encounter performance
- * problems.
- */
-
-#ifndef _GC_H
-
-# define _GC_H
-# define __GC
-# include <stddef.h>
-
-#if defined(__CYGWIN32__) && defined(GC_USE_DLL)
-#include "libgc_globals.h"
-#endif
-
-#if defined(__MINGW32__) && defined(WIN32_THREADS)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(_MSC_VER) && defined(_DLL)
-# ifdef GC_BUILD
-# define GC_API __declspec(dllexport)
-# else
-# define GC_API __declspec(dllimport)
-# endif
-#endif
-
-#if defined(__WATCOMC__) && defined(GC_DLL)
-# ifdef GC_BUILD
-# define GC_API extern __declspec(dllexport)
-# else
-# define GC_API extern __declspec(dllimport)
-# endif
-#endif
-
-#ifndef GC_API
-#define GC_API extern
-#endif
-
-# if defined(__STDC__) || defined(__cplusplus)
-# define GC_PROTO(args) args
- typedef void * GC_PTR;
-# define GC_CONST const
-# else
-# define GC_PROTO(args) ()
- typedef char * GC_PTR;
-# define GC_CONST
-# endif
-
-# ifdef __cplusplus
- extern "C" {
-# endif
-
-
-/* Define word and signed_word to be unsigned and signed types of the */
-/* size as char * or void *. There seems to be no way to do this */
-/* even semi-portably. The following is probably no better/worse */
-/* than almost anything else. */
-/* The ANSI standard suggests that size_t and ptr_diff_t might be */
-/* better choices. But those appear to have incorrect definitions */
-/* on may systems. Notably "typedef int size_t" seems to be both */
-/* frequent and WRONG. */
-typedef unsigned long GC_word;
-typedef long GC_signed_word;
-
-/* Public read-only variables */
-
-GC_API GC_word GC_gc_no;/* Counter incremented per collection. */
- /* Includes empty GCs at startup. */
-
-
-/* Public R/W variables */
-
-GC_API GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requested));
- /* When there is insufficient memory to satisfy */
- /* an allocation request, we return */
- /* (*GC_oom_fn)(). By default this just */
- /* returns 0. */
- /* If it returns, it must return 0 or a valid */
- /* pointer to a previously allocated heap */
- /* object. */
-
-GC_API int GC_find_leak;
- /* Do not actually garbage collect, but simply */
- /* report inaccessible memory that was not */
- /* deallocated with GC_free. Initial value */
- /* is determined by FIND_LEAK macro. */
-
-GC_API int GC_quiet; /* Disable statistics output. Only matters if */
- /* collector has been compiled with statistics */
- /* enabled. This involves a performance cost, */
- /* and is thus not the default. */
-
-GC_API int GC_finalize_on_demand;
- /* If nonzero, finalizers will only be run in */
- /* response to an eplit GC_invoke_finalizers */
- /* call. The default is determined by whether */
- /* the FINALIZE_ON_DEMAND macro is defined */
- /* when the collector is built. */
-
-GC_API int GC_java_finalization;
- /* Mark objects reachable from finalizable */
- /* objects in a separate postpass. This makes */
- /* it a bit safer to use non-topologically- */
- /* ordered finalization. Default value is */
- /* determined by JAVA_FINALIZATION macro. */
-
-GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
- /* because it's not safe. */
-
-GC_API int GC_dont_expand;
- /* Dont expand heap unless explicitly requested */
- /* or forced to. */
-
-GC_API int GC_use_entire_heap;
- /* Causes the nonincremental collector to use the */
- /* entire heap before collecting. This was the only */
- /* option for GC versions < 5.0. This sometimes */
- /* results in more large block fragmentation, since */
- /* very larg blocks will tend to get broken up */
- /* during each GC cycle. It is likely to result in a */
- /* larger working set, but lower collection */
- /* frequencies, and hence fewer instructions executed */
- /* in the collector. */
-
-GC_API int GC_full_freq; /* Number of partial collections between */
- /* full collections. Matters only if */
- /* GC_incremental is set. */
- /* Full collections are also triggered if */
- /* the collector detects a substantial */
- /* increase in the number of in-use heap */
- /* blocks. Values in the tens are now */
- /* perfectly reasonable, unlike for */
- /* earlier GC versions. */
-
-GC_API GC_word GC_non_gc_bytes;
- /* Bytes not considered candidates for collection. */
- /* Used only to control scheduling of collections. */
-
-GC_API GC_word GC_free_space_divisor;
- /* We try to make sure that we allocate at */
- /* least N/GC_free_space_divisor bytes between */
- /* collections, where N is the heap size plus */
- /* a rough estimate of the root set size. */
- /* Initially, GC_free_space_divisor = 4. */
- /* Increasing its value will use less space */
- /* but more collection time. Decreasing it */
- /* will appreciably decrease collection time */
- /* at the expense of space. */
- /* GC_free_space_divisor = 1 will effectively */
- /* disable collections. */
-
-GC_API GC_word GC_max_retries;
- /* The maximum number of GCs attempted before */
- /* reporting out of memory after heap */
- /* expansion fails. Initially 0. */
-
-
-GC_API char *GC_stackbottom; /* Cool end of user stack. */
- /* May be set in the client prior to */
- /* calling any GC_ routines. This */
- /* avoids some overhead, and */
- /* potentially some signals that can */
- /* confuse debuggers. Otherwise the */
- /* collector attempts to set it */
- /* automatically. */
- /* For multithreaded code, this is the */
- /* cold end of the stack for the */
- /* primordial thread. */
-
-/* Public procedures */
-/*
- * general purpose allocation routines, with roughly malloc calling conv.
- * The atomic versions promise that no relevant pointers are contained
- * in the object. The nonatomic versions guarantee that the new object
- * is cleared. GC_malloc_stubborn promises that no changes to the object
- * will occur after GC_end_stubborn_change has been called on the
- * result of GC_malloc_stubborn. GC_malloc_uncollectable allocates an object
- * that is scanned for pointers to collectable objects, but is not itself
- * collectable. GC_malloc_uncollectable and GC_free called on the resulting
- * object implicitly update GC_non_gc_bytes appropriately.
- */
-GC_API GC_PTR GC_malloc GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_atomic GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_uncollectable GC_PROTO((size_t size_in_bytes));
-GC_API GC_PTR GC_malloc_stubborn GC_PROTO((size_t size_in_bytes));
-
-/* The following is only defined if the library has been suitably */
-/* compiled: */
-GC_API GC_PTR GC_malloc_atomic_uncollectable GC_PROTO((size_t size_in_bytes));
-
-/* Explicitly deallocate an object. Dangerous if used incorrectly. */
-/* Requires a pointer to the base of an object. */
-/* If the argument is stubborn, it should not be changeable when freed. */
-/* An object should not be enable for finalization when it is */
-/* explicitly deallocated. */
-/* GC_free(0) is a no-op, as required by ANSI C for free. */
-GC_API void GC_free GC_PROTO((GC_PTR object_addr));
-
-/*
- * Stubborn objects may be changed only if the collector is explicitly informed.
- * The collector is implicitly informed of coming change when such
- * an object is first allocated. The following routines inform the
- * collector that an object will no longer be changed, or that it will
- * once again be changed. Only nonNIL pointer stores into the object
- * are considered to be changes. The argument to GC_end_stubborn_change
- * must be exacly the value returned by GC_malloc_stubborn or passed to
- * GC_change_stubborn. (In the second case it may be an interior pointer
- * within 512 bytes of the beginning of the objects.)
- * There is a performance penalty for allowing more than
- * one stubborn object to be changed at once, but it is acceptable to
- * do so. The same applies to dropping stubborn objects that are still
- * changeable.
- */
-GC_API void GC_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_end_stubborn_change GC_PROTO((GC_PTR));
-
-/* Return a pointer to the base (lowest address) of an object given */
-/* a pointer to a location within the object. */
-/* Return 0 if displaced_pointer doesn't point to within a valid */
-/* object. */
-GC_API GC_PTR GC_base GC_PROTO((GC_PTR displaced_pointer));
-
-/* Given a pointer to the base of an object, return its size in bytes. */
-/* The returned size may be slightly larger than what was originally */
-/* requested. */
-GC_API size_t GC_size GC_PROTO((GC_PTR object_addr));
-
-/* For compatibility with C library. This is occasionally faster than */
-/* a malloc followed by a bcopy. But if you rely on that, either here */
-/* or with the standard C library, your code is broken. In my */
-/* opinion, it shouldn't have been invented, but now we're stuck. -HB */
-/* The resulting object has the same kind as the original. */
-/* If the argument is stubborn, the result will have changes enabled. */
-/* It is an error to have changes enabled for the original object. */
-/* Follows ANSI comventions for NULL old_object. */
-GC_API GC_PTR GC_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes));
-
-/* Explicitly increase the heap size. */
-/* Returns 0 on failure, 1 on success. */
-GC_API int GC_expand_hp GC_PROTO((size_t number_of_bytes));
-
-/* Limit the heap size to n bytes. Useful when you're debugging, */
-/* especially on systems that don't handle running out of memory well. */
-/* n == 0 ==> unbounded. This is the default. */
-GC_API void GC_set_max_heap_size GC_PROTO((GC_word n));
-
-/* Inform the collector that a certain section of statically allocated */
-/* memory contains no pointers to garbage collected memory. Thus it */
-/* need not be scanned. This is sometimes important if the application */
-/* maps large read/write files into the address space, which could be */
-/* mistaken for dynamic library data segments on some systems. */
-GC_API void GC_exclude_static_roots GC_PROTO((GC_PTR start, GC_PTR finish));
-
-/* Clear the set of root segments. Wizards only. */
-GC_API void GC_clear_roots GC_PROTO((void));
-
-/* Add a root segment. Wizards only. */
-GC_API void GC_add_roots GC_PROTO((char * low_address,
- char * high_address_plus_1));
-
-/* Add a displacement to the set of those considered valid by the */
-/* collector. GC_register_displacement(n) means that if p was returned */
-/* by GC_malloc, then (char *)p + n will be considered to be a valid */
-/* pointer to n. N must be small and less than the size of p. */
-/* (All pointers to the interior of objects from the stack are */
-/* considered valid in any case. This applies to heap objects and */
-/* static data.) */
-/* Preferably, this should be called before any other GC procedures. */
-/* Calling it later adds to the probability of excess memory */
-/* retention. */
-/* This is a no-op if the collector was compiled with recognition of */
-/* arbitrary interior pointers enabled, which is now the default. */
-GC_API void GC_register_displacement GC_PROTO((GC_word n));
-
-/* The following version should be used if any debugging allocation is */
-/* being done. */
-GC_API void GC_debug_register_displacement GC_PROTO((GC_word n));
-
-/* Explicitly trigger a full, world-stop collection. */
-GC_API void GC_gcollect GC_PROTO((void));
-
-/* Trigger a full world-stopped collection. Abort the collection if */
-/* and when stop_func returns a nonzero value. Stop_func will be */
-/* called frequently, and should be reasonably fast. This works even */
-/* if virtual dirty bits, and hence incremental collection is not */
-/* available for this architecture. Collections can be aborted faster */
-/* than normal pause times for incremental collection. However, */
-/* aborted collections do no useful work; the next collection needs */
-/* to start from the beginning. */
-/* Return 0 if the collection was aborted, 1 if it succeeded. */
-typedef int (* GC_stop_func) GC_PROTO((void));
-GC_API int GC_try_to_collect GC_PROTO((GC_stop_func stop_func));
-
-/* Return the number of bytes in the heap. Excludes collector private */
-/* data structures. Includes empty blocks and fragmentation loss. */
-/* Includes some pages that were allocated but never written. */
-GC_API size_t GC_get_heap_size GC_PROTO((void));
-
-/* Return a lower bound on the number of free bytes in the heap. */
-GC_API size_t GC_get_free_bytes GC_PROTO((void));
-
-/* Return the number of bytes allocated since the last collection. */
-GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
-
-/* Enable incremental/generational collection. */
-/* Not advisable unless dirty bits are */
-/* available or most heap objects are */
-/* pointerfree(atomic) or immutable. */
-/* Don't use in leak finding mode. */
-/* Ignored if GC_dont_gc is true. */
-GC_API void GC_enable_incremental GC_PROTO((void));
-
-/* Perform some garbage collection work, if appropriate. */
-/* Return 0 if there is no more work to be done. */
-/* Typically performs an amount of work corresponding roughly */
-/* to marking from one page. May do more work if further */
-/* progress requires it, e.g. if incremental collection is */
-/* disabled. It is reasonable to call this in a wait loop */
-/* until it returns 0. */
-GC_API int GC_collect_a_little GC_PROTO((void));
-
-/* Allocate an object of size lb bytes. The client guarantees that */
-/* as long as the object is live, it will be referenced by a pointer */
-/* that points to somewhere within the first 256 bytes of the object. */
-/* (This should normally be declared volatile to prevent the compiler */
-/* from invalidating this assertion.) This routine is only useful */
-/* if a large array is being allocated. It reduces the chance of */
-/* accidentally retaining such an array as a result of scanning an */
-/* integer that happens to be an address inside the array. (Actually, */
-/* it reduces the chance of the allocator not finding space for such */
-/* an array, since it will try hard to avoid introducing such a false */
-/* reference.) On a SunOS 4.X or MS Windows system this is recommended */
-/* for arrays likely to be larger than 100K or so. For other systems, */
-/* or if the collector is not configured to recognize all interior */
-/* pointers, the threshold is normally much higher. */
-GC_API GC_PTR GC_malloc_ignore_off_page GC_PROTO((size_t lb));
-GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
-
-#if defined(__sgi) && !defined(__GNUC__) && _COMPILER_VERSION >= 720
-# define GC_ADD_CALLER
-# define GC_RETURN_ADDR (GC_word)__return_address
-#endif
-
-#ifdef GC_ADD_CALLER
-# define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
-#else
-# define GC_EXTRAS __FILE__, __LINE__
-# define GC_EXTRA_PARAMS GC_CONST char * s, int i
-#endif
-
-/* Debugging (annotated) allocation. GC_gcollect will check */
-/* objects allocated in this way for overwrites, etc. */
-GC_API GC_PTR GC_debug_malloc
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_atomic
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_uncollectable
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API GC_PTR GC_debug_malloc_stubborn
- GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
-GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
-GC_API GC_PTR GC_debug_realloc
- GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
- GC_EXTRA_PARAMS));
-
-GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
-GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
-# ifdef GC_DEBUG
-# define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
-# define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
- GC_EXTRAS)
-# define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
-# define GC_FREE(p) GC_debug_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_debug_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_debug_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_debug_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);
-# define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, GC_base(obj))
-# define GC_REGISTER_DISPLACEMENT(n) GC_debug_register_displacement(n)
-# else
-# define GC_MALLOC(sz) GC_malloc(sz)
-# define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
-# define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
-# define GC_REALLOC(old, sz) GC_realloc(old, sz)
-# define GC_FREE(p) GC_free(p)
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_register_finalizer(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
- GC_register_finalizer_ignore_self(p, f, d, of, od)
-# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
- GC_register_finalizer_no_order(p, f, d, of, od)
-# define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)
-# define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)
-# define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)
-# define GC_GENERAL_REGISTER_DISAPPEARING_LINK(link, obj) \
- GC_general_register_disappearing_link(link, obj)
-# define GC_REGISTER_DISPLACEMENT(n) GC_register_displacement(n)
-# endif
-/* The following are included because they are often convenient, and */
-/* reduce the chance for a misspecifed size argument. But calls may */
-/* expand to something syntactically incorrect if t is a complicated */
-/* type expression. */
-# define GC_NEW(t) (t *)GC_MALLOC(sizeof (t))
-# define GC_NEW_ATOMIC(t) (t *)GC_MALLOC_ATOMIC(sizeof (t))
-# define GC_NEW_STUBBORN(t) (t *)GC_MALLOC_STUBBORN(sizeof (t))
-# define GC_NEW_UNCOLLECTABLE(t) (t *)GC_MALLOC_UNCOLLECTABLE(sizeof (t))
-
-/* Finalization. Some of these primitives are grossly unsafe. */
-/* The idea is to make them both cheap, and sufficient to build */
-/* a safer layer, closer to PCedar finalization. */
-/* The interface represents my conclusions from a long discussion */
-/* with Alan Demers, Dan Greene, Carl Hauser, Barry Hayes, */
-/* Christian Jacobi, and Russ Atkinson. It's not perfect, and */
-/* probably nobody else agrees with it. Hans-J. Boehm 3/13/92 */
-typedef void (*GC_finalization_proc)
- GC_PROTO((GC_PTR obj, GC_PTR client_data));
-
-GC_API void GC_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
- /* When obj is no longer accessible, invoke */
- /* (*fn)(obj, cd). If a and b are inaccessible, and */
- /* a points to b (after disappearing links have been */
- /* made to disappear), then only a will be */
- /* finalized. (If this does not create any new */
- /* pointers to b, then b will be finalized after the */
- /* next collection.) Any finalizable object that */
- /* is reachable from itself by following one or more */
- /* pointers will not be finalized (or collected). */
- /* Thus cycles involving finalizable objects should */
- /* be avoided, or broken by disappearing links. */
- /* All but the last finalizer registered for an object */
- /* is ignored. */
- /* Finalization may be removed by passing 0 as fn. */
- /* Finalizers are implicitly unregistered just before */
- /* they are invoked. */
- /* The old finalizer and client data are stored in */
- /* *ofn and *ocd. */
- /* Fn is never invoked on an accessible object, */
- /* provided hidden pointers are converted to real */
- /* pointers only if the allocation lock is held, and */
- /* such conversions are not performed by finalization */
- /* routines. */
- /* If GC_register_finalizer is aborted as a result of */
- /* a signal, the object may be left with no */
- /* finalization, even if neither the old nor new */
- /* finalizer were NULL. */
- /* Obj should be the nonNULL starting address of an */
- /* object allocated by GC_malloc or friends. */
- /* Note that any garbage collectable object referenced */
- /* by cd will be considered accessible until the */
- /* finalizer is invoked. */
-
-/* Another versions of the above follow. It ignores */
-/* self-cycles, i.e. pointers from a finalizable object to */
-/* itself. There is a stylistic argument that this is wrong, */
-/* but it's unavoidable for C++, since the compiler may */
-/* silently introduce these. It's also benign in that specific */
-/* case. */
-GC_API void GC_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_ignore_self
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-/* Another version of the above. It ignores all cycles. */
-/* It should probably only be used by Java implementations. */
-GC_API void GC_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-GC_API void GC_debug_register_finalizer_no_order
- GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR *ocd));
-
-
-/* The following routine may be used to break cycles between */
-/* finalizable objects, thus causing cyclic finalizable */
-/* objects to be finalized in the correct order. Standard */
-/* use involves calling GC_register_disappearing_link(&p), */
-/* where p is a pointer that is not followed by finalization */
-/* code, and should not be considered in determining */
-/* finalization order. */
-GC_API int GC_register_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Link should point to a field of a heap allocated */
- /* object obj. *link will be cleared when obj is */
- /* found to be inaccessible. This happens BEFORE any */
- /* finalization code is invoked, and BEFORE any */
- /* decisions about finalization order are made. */
- /* This is useful in telling the finalizer that */
- /* some pointers are not essential for proper */
- /* finalization. This may avoid finalization cycles. */
- /* Note that obj may be resurrected by another */
- /* finalizer, and thus the clearing of *link may */
- /* be visible to non-finalization code. */
- /* There's an argument that an arbitrary action should */
- /* be allowed here, instead of just clearing a pointer. */
- /* But this causes problems if that action alters, or */
- /* examines connectivity. */
- /* Returns 1 if link was already registered, 0 */
- /* otherwise. */
- /* Only exists for backward compatibility. See below: */
-
-GC_API int GC_general_register_disappearing_link
- GC_PROTO((GC_PTR * /* link */, GC_PTR obj));
- /* A slight generalization of the above. *link is */
- /* cleared when obj first becomes inaccessible. This */
- /* can be used to implement weak pointers easily and */
- /* safely. Typically link will point to a location */
- /* holding a disguised pointer to obj. (A pointer */
- /* inside an "atomic" object is effectively */
- /* disguised.) In this way soft */
- /* pointers are broken before any object */
- /* reachable from them are finalized. Each link */
- /* May be registered only once, i.e. with one obj */
- /* value. This was added after a long email discussion */
- /* with John Ellis. */
- /* Obj must be a pointer to the first word of an object */
- /* we allocated. It is unsafe to explicitly deallocate */
- /* the object containing link. Explicitly deallocating */
- /* obj may or may not cause link to eventually be */
- /* cleared. */
-GC_API int GC_unregister_disappearing_link GC_PROTO((GC_PTR * /* link */));
- /* Returns 0 if link was not actually registered. */
- /* Undoes a registration by either of the above two */
- /* routines. */
-
-/* Auxiliary fns to make finalization work correctly with displaced */
-/* pointers introduced by the debugging allocators. */
-GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
-GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
-
-/* Returns !=0 if GC_invoke_finalizers has something to do. */
-GC_API int GC_should_invoke_finalizers GC_PROTO((void));
-
-GC_API int GC_invoke_finalizers GC_PROTO((void));
- /* Run finalizers for all objects that are ready to */
- /* be finalized. Return the number of finalizers */
- /* that were run. Normally this is also called */
- /* implicitly during some allocations. If */
- /* GC-finalize_on_demand is nonzero, it must be called */
- /* explicitly. */
-
-/* GC_set_warn_proc can be used to redirect or filter warning messages. */
-/* p may not be a NULL pointer. */
-typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
-GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
- /* Returns old warning procedure. */
-
-/* The following is intended to be used by a higher level */
-/* (e.g. cedar-like) finalization facility. It is expected */
-/* that finalization code will arrange for hidden pointers to */
-/* disappear. Otherwise objects can be accessed after they */
-/* have been collected. */
-/* Note that putting pointers in atomic objects or in */
-/* nonpointer slots of "typed" objects is equivalent to */
-/* disguising them in this way, and may have other advantages. */
-# if defined(I_HIDE_POINTERS) || defined(GC_I_HIDE_POINTERS)
- typedef GC_word GC_hidden_pointer;
-# define HIDE_POINTER(p) (~(GC_hidden_pointer)(p))
-# define REVEAL_POINTER(p) ((GC_PTR)(HIDE_POINTER(p)))
- /* Converting a hidden pointer to a real pointer requires verifying */
- /* that the object still exists. This involves acquiring the */
- /* allocator lock to avoid a race with the collector. */
-# endif /* I_HIDE_POINTERS */
-
-typedef GC_PTR (*GC_fn_type) GC_PROTO((GC_PTR client_data));
-GC_API GC_PTR GC_call_with_alloc_lock
- GC_PROTO((GC_fn_type fn, GC_PTR client_data));
-
-/* Check that p and q point to the same object. */
-/* Fail conspicuously if they don't. */
-/* Returns the first argument. */
-/* Succeeds if neither p nor q points to the heap. */
-/* May succeed if both p and q point to between heap objects. */
-GC_API GC_PTR GC_same_obj GC_PROTO((GC_PTR p, GC_PTR q));
-
-/* Checked pointer pre- and post- increment operations. Note that */
-/* the second argument is in units of bytes, not multiples of the */
-/* object size. This should either be invoked from a macro, or the */
-/* call should be automatically generated. */
-GC_API GC_PTR GC_pre_incr GC_PROTO((GC_PTR *p, size_t how_much));
-GC_API GC_PTR GC_post_incr GC_PROTO((GC_PTR *p, size_t how_much));
-
-/* Check that p is visible */
-/* to the collector as a possibly pointer containing location. */
-/* If it isn't fail conspicuously. */
-/* Returns the argument in all cases. May erroneously succeed */
-/* in hard cases. (This is intended for debugging use with */
-/* untyped allocations. The idea is that it should be possible, though */
-/* slow, to add such a call to all indirect pointer stores.) */
-/* Currently useless for multithreaded worlds. */
-GC_API GC_PTR GC_is_visible GC_PROTO((GC_PTR p));
-
-/* Check that if p is a pointer to a heap page, then it points to */
-/* a valid displacement within a heap object. */
-/* Fail conspicuously if this property does not hold. */
-/* Uninteresting with ALL_INTERIOR_POINTERS. */
-/* Always returns its argument. */
-GC_API GC_PTR GC_is_valid_displacement GC_PROTO((GC_PTR p));
-
-/* Safer, but slow, pointer addition. Probably useful mainly with */
-/* a preprocessor. Useful only for heap pointers. */
-#ifdef GC_DEBUG
-# define GC_PTR_ADD3(x, n, type_of_result) \
- ((type_of_result)GC_same_obj((x)+(n), (x)))
-# define GC_PRE_INCR3(x, n, type_of_result) \
- ((type_of_result)GC_pre_incr(&(x), (n)*sizeof(*x))
-# define GC_POST_INCR2(x, type_of_result) \
- ((type_of_result)GC_post_incr(&(x), sizeof(*x))
-# ifdef __GNUC__
-# define GC_PTR_ADD(x, n) \
- GC_PTR_ADD3(x, n, typeof(x))
-# define GC_PRE_INCR(x, n) \
- GC_PRE_INCR3(x, n, typeof(x))
-# define GC_POST_INCR(x, n) \
- GC_POST_INCR3(x, typeof(x))
-# else
- /* We can't do this right without typeof, which ANSI */
- /* decided was not sufficiently useful. Repeatedly */
- /* mentioning the arguments seems too dangerous to be */
- /* useful. So does not casting the result. */
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_ADD3(x, n, type_of_result) ((x)+(n))
-# define GC_PTR_ADD(x, n) ((x)+(n))
-# define GC_PRE_INCR3(x, n, type_of_result) ((x) += (n))
-# define GC_PRE_INCR(x, n) ((x) += (n))
-# define GC_POST_INCR2(x, n, type_of_result) ((x)++)
-# define GC_POST_INCR(x, n) ((x)++)
-#endif
-
-/* Safer assignment of a pointer to a nonstack location. */
-#ifdef GC_DEBUG
-# ifdef __STDC__
-# define GC_PTR_STORE(p, q) \
- (*(void **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# else
-# define GC_PTR_STORE(p, q) \
- (*(char **)GC_is_visible(p) = GC_is_valid_displacement(q))
-# endif
-#else /* !GC_DEBUG */
-# define GC_PTR_STORE(p, q) *((p) = (q))
-#endif
-
-/* Fynctions called to report pointer checking errors */
-GC_API void (*GC_same_obj_print_proc) GC_PROTO((GC_PTR p, GC_PTR q));
-
-GC_API void (*GC_is_valid_displacement_print_proc)
- GC_PROTO((GC_PTR p));
-
-GC_API void (*GC_is_visible_print_proc)
- GC_PROTO((GC_PTR p));
-
-#if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS)
-# define SOLARIS_THREADS
-#endif
-
-#ifdef SOLARIS_THREADS
-/* We need to intercept calls to many of the threads primitives, so */
-/* that we can locate thread stacks and stop the world. */
-/* Note also that the collector cannot see thread specific data. */
-/* Thread specific data should generally consist of pointers to */
-/* uncollectable objects, which are deallocated using the destructor */
-/* facility in thr_keycreate. */
-# include <thread.h>
-# include <signal.h>
- int GC_thr_create(void *stack_base, size_t stack_size,
- void *(*start_routine)(void *), void *arg, long flags,
- thread_t *new_thread);
- int GC_thr_join(thread_t wait_for, thread_t *departed, void **status);
- int GC_thr_suspend(thread_t target_thread);
- int GC_thr_continue(thread_t target_thread);
- void * GC_dlopen(const char *path, int mode);
-
-# ifdef _SOLARIS_PTHREADS
-# include <pthread.h>
- extern int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void * (*thread_execp)(void *), void *arg);
- extern int GC_pthread_join(pthread_t wait_for, void **status);
-
-# undef thread_t
-
-# define pthread_join GC_pthread_join
-# define pthread_create GC_pthread_create
-#endif
-
-# define thr_create GC_thr_create
-# define thr_join GC_thr_join
-# define thr_suspend GC_thr_suspend
-# define thr_continue GC_thr_continue
-# define dlopen GC_dlopen
-
-# endif /* SOLARIS_THREADS */
-
-
-#if !defined(USE_LD_WRAP) && \
- (defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS))
-/* We treat these similarly. */
-# include <pthread.h>
-# include <signal.h>
-
- int GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void *), void *arg);
- int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
- int GC_pthread_join(pthread_t thread, void **retval);
-
-# define pthread_create GC_pthread_create
-# define pthread_sigmask GC_pthread_sigmask
-# define pthread_join GC_pthread_join
-# define dlopen GC_dlopen
-
-#endif /* xxxxx_THREADS */
-
-# if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
- defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
- defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- /* Any flavor of threads except SRC_M3. */
-/* This returns a list of objects, linked through their first */
-/* word. Its use can greatly reduce lock contention problems, since */
-/* the allocation lock can be acquired and released many fewer times. */
-/* lb must be large enough to hold the pointer field. */
-GC_PTR GC_malloc_many(size_t lb);
-#define GC_NEXT(p) (*(GC_PTR *)(p)) /* Retrieve the next element */
- /* in returned list. */
-extern void GC_thr_init(); /* Needed for Solaris/X86 */
-
-#endif /* THREADS && !SRC_M3 */
-
-/*
- * If you are planning on putting
- * the collector in a SunOS 5 dynamic library, you need to call GC_INIT()
- * from the statically loaded program section.
- * This circumvents a Solaris 2.X (X<=4) linker bug.
- */
-#if defined(sparc) || defined(__sparc)
-# define GC_INIT() { extern end, etext; \
- GC_noop(&end, &etext); }
-#else
-# if defined(__CYGWIN32__) && defined(GC_USE_DLL)
- /*
- * Similarly gnu-win32 DLLs need explicit initialization
- */
-# define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
-# else
-# define GC_INIT()
-# endif
-#endif
-
-#if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \
- || defined(_WIN32)
- /* win32S may not free all resources on process exit. */
- /* This explicitly deallocates the heap. */
- GC_API void GC_win32_free_heap ();
-#endif
-
-#ifdef __cplusplus
- } /* end of extern "C" */
-#endif
-
-#endif /* _GC_H */
diff --git a/boehm-gc/include/gc_alloc.h b/boehm-gc/include/gc_alloc.h
deleted file mode 100644
index 1f1d54aff95..00000000000
--- a/boehm-gc/include/gc_alloc.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-//
-// This is a C++ header file that is intended to replace the SGI STL
-// alloc.h. This assumes SGI STL version < 3.0.
-//
-// This assumes the collector has been compiled with -DATOMIC_UNCOLLECTABLE
-// and -DALL_INTERIOR_POINTERS. We also recommend
-// -DREDIRECT_MALLOC=GC_uncollectable_malloc.
-//
-// Some of this could be faster in the explicit deallocation case. In particular,
-// we spend too much time clearing objects on the free lists. That could be avoided.
-//
-// This uses template classes with static members, and hence does not work
-// with g++ 2.7.2 and earlier.
-//
-
-#include "gc.h"
-
-#ifndef GC_ALLOC_H
-
-#define GC_ALLOC_H
-#define __ALLOC_H // Prevent inclusion of the default version. Ugly.
-#define __SGI_STL_ALLOC_H
-#define __SGI_STL_INTERNAL_ALLOC_H
-
-#ifndef __ALLOC
-# define __ALLOC alloc
-#endif
-
-#include <stddef.h>
-#include <string.h>
-
-// The following is just replicated from the conventional SGI alloc.h:
-
-template<class T, class alloc>
-class simple_alloc {
-
-public:
- static T *allocate(size_t n)
- { return 0 == n? 0 : (T*) alloc::allocate(n * sizeof (T)); }
- static T *allocate(void)
- { return (T*) alloc::allocate(sizeof (T)); }
- static void deallocate(T *p, size_t n)
- { if (0 != n) alloc::deallocate(p, n * sizeof (T)); }
- static void deallocate(T *p)
- { alloc::deallocate(p, sizeof (T)); }
-};
-
-#include "gc.h"
-
-// The following need to match collector data structures.
-// We can't include gc_priv.h, since that pulls in way too much stuff.
-// This should eventually be factored out into another include file.
-
-extern "C" {
- extern void ** const GC_objfreelist_ptr;
- extern void ** const GC_aobjfreelist_ptr;
- extern void ** const GC_uobjfreelist_ptr;
- extern void ** const GC_auobjfreelist_ptr;
-
- extern void GC_incr_words_allocd(size_t words);
- extern void GC_incr_mem_freed(size_t words);
-
- extern char * GC_generic_malloc_words_small(size_t word, int kind);
-}
-
-// Object kinds; must match PTRFREE, NORMAL, UNCOLLECTABLE, and
-// AUNCOLLECTABLE in gc_priv.h.
-
-enum { GC_PTRFREE = 0, GC_NORMAL = 1, GC_UNCOLLECTABLE = 2,
- GC_AUNCOLLECTABLE = 3 };
-
-enum { GC_max_fast_bytes = 255 };
-
-enum { GC_bytes_per_word = sizeof(char *) };
-
-enum { GC_byte_alignment = 8 };
-
-enum { GC_word_alignment = GC_byte_alignment/GC_bytes_per_word };
-
-inline void * &GC_obj_link(void * p)
-{ return *(void **)p; }
-
-// Compute a number of words >= n+1 bytes.
-// The +1 allows for pointers one past the end.
-inline size_t GC_round_up(size_t n)
-{
- return ((n + GC_byte_alignment)/GC_byte_alignment)*GC_word_alignment;
-}
-
-// The same but don't allow for extra byte.
-inline size_t GC_round_up_uncollectable(size_t n)
-{
- return ((n + GC_byte_alignment - 1)/GC_byte_alignment)*GC_word_alignment;
-}
-
-template <int dummy>
-class GC_aux_template {
-public:
- // File local count of allocated words. Occasionally this is
- // added into the global count. A separate count is necessary since the
- // real one must be updated with a procedure call.
- static size_t GC_words_recently_allocd;
-
- // Same for uncollectable mmory. Not yet reflected in either
- // GC_words_recently_allocd or GC_non_gc_bytes.
- static size_t GC_uncollectable_words_recently_allocd;
-
- // Similar counter for explicitly deallocated memory.
- static size_t GC_mem_recently_freed;
-
- // Again for uncollectable memory.
- static size_t GC_uncollectable_mem_recently_freed;
-
- static void * GC_out_of_line_malloc(size_t nwords, int kind);
-};
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_mem_recently_freed = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_mem_recently_freed = 0;
-
-template <int dummy>
-void * GC_aux_template<dummy>::GC_out_of_line_malloc(size_t nwords, int kind)
-{
- GC_words_recently_allocd += GC_uncollectable_words_recently_allocd;
- GC_non_gc_bytes +=
- GC_bytes_per_word * GC_uncollectable_words_recently_allocd;
- GC_uncollectable_words_recently_allocd = 0;
-
- GC_mem_recently_freed += GC_uncollectable_mem_recently_freed;
- GC_non_gc_bytes -=
- GC_bytes_per_word * GC_uncollectable_mem_recently_freed;
- GC_uncollectable_mem_recently_freed = 0;
-
- GC_incr_words_allocd(GC_words_recently_allocd);
- GC_words_recently_allocd = 0;
-
- GC_incr_mem_freed(GC_mem_recently_freed);
- GC_mem_recently_freed = 0;
-
- return GC_generic_malloc_words_small(nwords, kind);
-}
-
-typedef GC_aux_template<0> GC_aux;
-
-// A fast, single-threaded, garbage-collected allocator
-// We assume the first word will be immediately overwritten.
-// In this version, deallocation is not a noop, and explicit
-// deallocation is likely to help performance.
-template <int dummy>
-class single_client_gc_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc(n);
- flh = GC_objfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_NORMAL);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic(n);
- flh = GC_aobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_PTRFREE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_objfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- memset((char *)p + GC_bytes_per_word, 0,
- GC_bytes_per_word * (nwords - 1));
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_aobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_gc_alloc_template<0> single_client_gc_alloc;
-
-// Once more, for uncollectable objects.
-template <int dummy>
-class single_client_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_uncollectable(n);
- flh = GC_uobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_UNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic_uncollectable(n);
- flh = GC_auobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_AUNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_uobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_auobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_alloc_template<0> single_client_alloc;
-
-template < int dummy >
-class gc_alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic(n); }
- static void deallocate(void *, size_t) { }
- static void ptr_free_deallocate(void *, size_t) { }
-};
-
-typedef gc_alloc_template < 0 > gc_alloc;
-
-template < int dummy >
-class alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc_uncollectable(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic_uncollectable(n); }
- static void deallocate(void *p, size_t) { GC_free(p); }
- static void ptr_free_deallocate(void *p, size_t) { GC_free(p); }
-};
-
-typedef alloc_template < 0 > alloc;
-
-#ifdef _SGI_SOURCE
-
-// We want to specialize simple_alloc so that it does the right thing
-// for all pointerfree types. At the moment there is no portable way to
-// even approximate that. The following approximation should work for
-// SGI compilers, and perhaps some others.
-
-# define __GC_SPECIALIZE(T,alloc) \
-class simple_alloc<T, alloc> { \
-public: \
- static T *allocate(size_t n) \
- { return 0 == n? 0 : \
- (T*) alloc::ptr_free_allocate(n * sizeof (T)); } \
- static T *allocate(void) \
- { return (T*) alloc::ptr_free_allocate(sizeof (T)); } \
- static void deallocate(T *p, size_t n) \
- { if (0 != n) alloc::ptr_free_deallocate(p, n * sizeof (T)); } \
- static void deallocate(T *p) \
- { alloc::ptr_free_deallocate(p, sizeof (T)); } \
-};
-
-__GC_SPECIALIZE(char, gc_alloc)
-__GC_SPECIALIZE(int, gc_alloc)
-__GC_SPECIALIZE(unsigned, gc_alloc)
-__GC_SPECIALIZE(float, gc_alloc)
-__GC_SPECIALIZE(double, gc_alloc)
-
-__GC_SPECIALIZE(char, alloc)
-__GC_SPECIALIZE(int, alloc)
-__GC_SPECIALIZE(unsigned, alloc)
-__GC_SPECIALIZE(float, alloc)
-__GC_SPECIALIZE(double, alloc)
-
-__GC_SPECIALIZE(char, single_client_gc_alloc)
-__GC_SPECIALIZE(int, single_client_gc_alloc)
-__GC_SPECIALIZE(unsigned, single_client_gc_alloc)
-__GC_SPECIALIZE(float, single_client_gc_alloc)
-__GC_SPECIALIZE(double, single_client_gc_alloc)
-
-__GC_SPECIALIZE(char, single_client_alloc)
-__GC_SPECIALIZE(int, single_client_alloc)
-__GC_SPECIALIZE(unsigned, single_client_alloc)
-__GC_SPECIALIZE(float, single_client_alloc)
-__GC_SPECIALIZE(double, single_client_alloc)
-
-#ifdef __STL_USE_STD_ALLOCATORS
-
-???copy stuff from stl_alloc.h or remove it to a different file ???
-
-#endif /* __STL_USE_STD_ALLOCATORS */
-
-#endif /* _SGI_SOURCE */
-
-#endif /* GC_ALLOC_H */
diff --git a/boehm-gc/include/gc_copy_descr.h b/boehm-gc/include/gc_copy_descr.h
deleted file mode 100644
index 212c99e28dc..00000000000
--- a/boehm-gc/include/gc_copy_descr.h
+++ /dev/null
@@ -1,26 +0,0 @@
-
-/*
- * Copyright (c) 1999 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Descriptor for allocation request. May be redefined by client. */
-typedef struct {
- GC_word bitmap; /* Bitmap describing pointer locations. */
- /* High order bit correspond to 0th */
- /* word. 2 lsbs must be 0. */
- size_t length; /* In bytes, must be multiple of word */
- /* size. Must be >0, <= 512 */
-} * GC_copy_descriptor;
-
-/* The collector accesses descriptors only through these two macros. */
-#define GC_SIZE_FROM_DESCRIPTOR(d) ((d) -> length)
-#define GC_BIT_MAP_FROM_DESCRIPTOR(d) ((d) -> bitmap)
-
diff --git a/boehm-gc/include/gc_cpp.h b/boehm-gc/include/gc_cpp.h
deleted file mode 100644
index 35686fc3527..00000000000
--- a/boehm-gc/include/gc_cpp.h
+++ /dev/null
@@ -1,299 +0,0 @@
-#ifndef GC_CPP_H
-#define GC_CPP_H
-/****************************************************************************
-Copyright (c) 1994 by Xerox Corporation. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program for any
-purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is
-granted, provided the above notices are retained, and a notice that
-the code was modified is included with the above copyright notice.
-****************************************************************************
-
-C++ Interface to the Boehm Collector
-
- John R. Ellis and Jesse Hull
-
-This interface provides access to the Boehm collector. It provides
-basic facilities similar to those described in "Safe, Efficient
-Garbage Collection for C++", by John R. Elis and David L. Detlefs
-(ftp://ftp.parc.xerox.com/pub/ellis/gc).
-
-All heap-allocated objects are either "collectable" or
-"uncollectable". Programs must explicitly delete uncollectable
-objects, whereas the garbage collector will automatically delete
-collectable objects when it discovers them to be inaccessible.
-Collectable objects may freely point at uncollectable objects and vice
-versa.
-
-Objects allocated with the built-in "::operator new" are uncollectable.
-
-Objects derived from class "gc" are collectable. For example:
-
- class A: public gc {...};
- A* a = new A; // a is collectable.
-
-Collectable instances of non-class types can be allocated using the GC
-(or UseGC) placement:
-
- typedef int A[ 10 ];
- A* a = new (GC) A;
-
-Uncollectable instances of classes derived from "gc" can be allocated
-using the NoGC placement:
-
- class A: public gc {...};
- A* a = new (NoGC) A; // a is uncollectable.
-
-Both uncollectable and collectable objects can be explicitly deleted
-with "delete", which invokes an object's destructors and frees its
-storage immediately.
-
-A collectable object may have a clean-up function, which will be
-invoked when the collector discovers the object to be inaccessible.
-An object derived from "gc_cleanup" or containing a member derived
-from "gc_cleanup" has a default clean-up function that invokes the
-object's destructors. Explicit clean-up functions may be specified as
-an additional placement argument:
-
- A* a = ::new (GC, MyCleanup) A;
-
-An object is considered "accessible" by the collector if it can be
-reached by a path of pointers from static variables, automatic
-variables of active functions, or from some object with clean-up
-enabled; pointers from an object to itself are ignored.
-
-Thus, if objects A and B both have clean-up functions, and A points at
-B, B is considered accessible. After A's clean-up is invoked and its
-storage released, B will then become inaccessible and will have its
-clean-up invoked. If A points at B and B points to A, forming a
-cycle, then that's considered a storage leak, and neither will be
-collectable. See the interface gc.h for low-level facilities for
-handling such cycles of objects with clean-up.
-
-The collector cannot guarrantee that it will find all inaccessible
-objects. In practice, it finds almost all of them.
-
-
-Cautions:
-
-1. Be sure the collector has been augmented with "make c++".
-
-2. If your compiler supports the new "operator new[]" syntax, then
-add -DOPERATOR_NEW_ARRAY to the Makefile.
-
-If your compiler doesn't support "operator new[]", beware that an
-array of type T, where T is derived from "gc", may or may not be
-allocated as a collectable object (it depends on the compiler). Use
-the explicit GC placement to make the array collectable. For example:
-
- class A: public gc {...};
- A* a1 = new A[ 10 ]; // collectable or uncollectable?
- A* a2 = new (GC) A[ 10 ]; // collectable
-
-3. The destructors of collectable arrays of objects derived from
-"gc_cleanup" will not be invoked properly. For example:
-
- class A: public gc_cleanup {...};
- A* a = new (GC) A[ 10 ]; // destructors not invoked correctly
-
-Typically, only the destructor for the first element of the array will
-be invoked when the array is garbage-collected. To get all the
-destructors of any array executed, you must supply an explicit
-clean-up function:
-
- A* a = new (GC, MyCleanUp) A[ 10 ];
-
-(Implementing clean-up of arrays correctly, portably, and in a way
-that preserves the correct exception semantics requires a language
-extension, e.g. the "gc" keyword.)
-
-4. Compiler bugs:
-
-* Solaris 2's CC (SC3.0) doesn't implement t->~T() correctly, so the
-destructors of classes derived from gc_cleanup won't be invoked.
-You'll have to explicitly register a clean-up function with
-new-placement syntax.
-
-* Evidently cfront 3.0 does not allow destructors to be explicitly
-invoked using the ANSI-conforming syntax t->~T(). If you're using
-cfront 3.0, you'll have to comment out the class gc_cleanup, which
-uses explicit invocation.
-
-5. GC name conflicts:
-
-Many other systems seem to use the identifier "GC" as an abbreviation
-for "Graphics Context". Since version 5.0, GC placement has been replaced
-by UseGC. GC is an alias for UseGC, unless GC_NAME_CONFLICT is defined.
-
-****************************************************************************/
-
-#include "gc.h"
-
-#ifndef THINK_CPLUS
-#define _cdecl
-#endif
-
-#if ! defined( OPERATOR_NEW_ARRAY ) \
- && (__BORLANDC__ >= 0x450 || (__GNUC__ >= 2 && __GNUC_MINOR__ >= 6) \
- || __WATCOMC__ >= 1050)
-# define OPERATOR_NEW_ARRAY
-#endif
-
-enum GCPlacement {UseGC,
-#ifndef GC_NAME_CONFLICT
- GC=UseGC,
-#endif
- NoGC, PointerFreeGC};
-
-class gc {public:
- inline void* operator new( size_t size );
- inline void* operator new( size_t size, GCPlacement gcp );
- inline void operator delete( void* obj );
-
-#ifdef OPERATOR_NEW_ARRAY
- inline void* operator new[]( size_t size );
- inline void* operator new[]( size_t size, GCPlacement gcp );
- inline void operator delete[]( void* obj );
-#endif /* OPERATOR_NEW_ARRAY */
- };
- /*
- Instances of classes derived from "gc" will be allocated in the
- collected heap by default, unless an explicit NoGC placement is
- specified. */
-
-class gc_cleanup: virtual public gc {public:
- inline gc_cleanup();
- inline virtual ~gc_cleanup();
-private:
- inline static void _cdecl cleanup( void* obj, void* clientData );};
- /*
- Instances of classes derived from "gc_cleanup" will be allocated
- in the collected heap by default. When the collector discovers an
- inaccessible object derived from "gc_cleanup" or containing a
- member derived from "gc_cleanup", its destructors will be
- invoked. */
-
-extern "C" {typedef void (*GCCleanUpFunc)( void* obj, void* clientData );}
-
-inline void* operator new(
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup = 0,
- void* clientData = 0 );
- /*
- Allocates a collectable or uncollected object, according to the
- value of "gcp".
-
- For collectable objects, if "cleanup" is non-null, then when the
- allocated object "obj" becomes inaccessible, the collector will
- invoke the function "cleanup( obj, clientData )" but will not
- invoke the object's destructors. It is an error to explicitly
- delete an object allocated with a non-null "cleanup".
-
- It is an error to specify a non-null "cleanup" with NoGC or for
- classes derived from "gc_cleanup" or containing members derived
- from "gc_cleanup". */
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* operator new[](
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup = 0,
- void* clientData = 0 );
- /*
- The operator new for arrays, identical to the above. */
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-/****************************************************************************
-
-Inline implementation
-
-****************************************************************************/
-
-inline void* gc::operator new( size_t size ) {
- return GC_MALLOC( size );}
-
-inline void* gc::operator new( size_t size, GCPlacement gcp ) {
- if (gcp == UseGC)
- return GC_MALLOC( size );
- else if (gcp == PointerFreeGC)
- return GC_MALLOC_ATOMIC( size );
- else
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
-inline void gc::operator delete( void* obj ) {
- GC_FREE( obj );}
-
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* gc::operator new[]( size_t size ) {
- return gc::operator new( size );}
-
-inline void* gc::operator new[]( size_t size, GCPlacement gcp ) {
- return gc::operator new( size, gcp );}
-
-inline void gc::operator delete[]( void* obj ) {
- gc::operator delete( obj );}
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-
-inline gc_cleanup::~gc_cleanup() {
- GC_REGISTER_FINALIZER_IGNORE_SELF( GC_base(this), 0, 0, 0, 0 );}
-
-inline void gc_cleanup::cleanup( void* obj, void* displ ) {
- ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}
-
-inline gc_cleanup::gc_cleanup() {
- GC_finalization_proc oldProc;
- void* oldData;
- void* base = GC_base( (void *) this );
- if (0 != base) {
- GC_REGISTER_FINALIZER_IGNORE_SELF(
- base, (GC_finalization_proc)cleanup, (void*) ((char*) this - (char*) base),
- &oldProc, &oldData );
- if (0 != oldProc) {
- GC_REGISTER_FINALIZER_IGNORE_SELF( base, oldProc, oldData, 0, 0 );}}}
-
-inline void* operator new(
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup,
- void* clientData )
-{
- void* obj;
-
- if (gcp == UseGC) {
- obj = GC_MALLOC( size );
- if (cleanup != 0)
- GC_REGISTER_FINALIZER_IGNORE_SELF(
- obj, cleanup, clientData, 0, 0 );}
- else if (gcp == PointerFreeGC) {
- obj = GC_MALLOC_ATOMIC( size );}
- else {
- obj = GC_MALLOC_UNCOLLECTABLE( size );};
- return obj;}
-
-
-#ifdef OPERATOR_NEW_ARRAY
-
-inline void* operator new[](
- size_t size,
- GCPlacement gcp,
- GCCleanUpFunc cleanup,
- void* clientData )
-{
- return ::operator new( size, gcp, cleanup, clientData );}
-
-#endif /* OPERATOR_NEW_ARRAY */
-
-
-#endif /* GC_CPP_H */
-
diff --git a/boehm-gc/include/gc_gcj.h b/boehm-gc/include/gc_gcj.h
deleted file mode 100644
index 1dede5154b6..00000000000
--- a/boehm-gc/include/gc_gcj.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/* This file assumes the collector has been compiled with GC_GCJ_SUPPORT */
-/* and that an ANSI C compiler is available. */
-
-/*
- * We allocate objects whose first word contains a pointer to a struct
- * describing the object type. This struct contains a garbage collector mark
- * descriptor at offset MARK_DESCR_OFFSET. Alternatively, the objects
- * may be marked by the mark procedure passed to GC_init_gcj_malloc.
- */
-
-#ifndef MARK_DESCR_OFFSET
-# define MARK_DESCR_OFFSET sizeof(word)
-#endif
- /* Gcj keeps GC descriptor as second word of vtable. This */
- /* probably needs to be adjusted for other clients. */
- /* We currently assume that this offset is such that: */
- /* - all objects of this kind are large enough to have */
- /* a value at that offset, and */
- /* - it is not zero. */
- /* These assumptions allow objects on the free list to be */
- /* marked normally. */
-
-#ifndef _GC_H
-# include "gc.h"
-#endif
-
-/* The following allocators signal an out of memory condition with */
-/* return GC_oom_action(); */
-/* The default GC_oom_action returns 0. */
-/* This functionality is currently restricted to the gcj allocators. */
-/* We may want to extend it to the others. */
-
-extern void * (*GC_oom_action)(void);
-
-/* The following function must be called before the gcj allocators */
-/* can be invoked. */
-/* mp_index and mp are the index and mark_proc (see gc_mark.h) */
-/* respectively for the allocated objects. Mark_proc will be */
-/* used to build the descriptor for objects allocated through the */
-/* debugging interface. The mark_proc will be invoked on all such */
-/* objects with an "environment" value of 1. The client may chose */
-/* to use the same mark_proc for some of its generated mark descriptors.*/
-/* In that case, it should use a different "environment" value to */
-/* detect the presence or absence of the debug header. */
-
-/* the debugging interface. */
-/* Mp is really of type mark_proc, as defined in gc_mark.h. We don't */
-/* want to include that here for namespace pollution reasons. */
-extern void GC_init_gcj_malloc(int mp_index, void * /* really mark_proc */mp);
-
-/* Allocate an object, clear it, and store the pointer to the */
-/* type structure (vtable in gcj). */
-/* This adds a byte at the end of the object if GC_malloc would.*/
-extern void * GC_gcj_malloc(size_t lb, void * ptr_to_struct_containing_descr);
-/* The debug versions allocate such that the specified mark_proc */
-/* is always invoked. */
-extern void * GC_debug_gcj_malloc(size_t lb,
- void * ptr_to_struct_containing_descr,
- GC_EXTRA_PARAMS);
-
-/* Similar to the above, but the size is in words, and we don't */
-/* adjust it. The size is assumed to be such that it can be */
-/* allocated as a small object. */
-extern void * GC_gcj_fast_malloc(size_t lw,
- void * ptr_to_struct_containing_descr);
-extern void * GC_debug_gcj_fast_malloc(size_t lw,
- void * ptr_to_struct_containing_descr,
- GC_EXTRA_PARAMS);
-
-/* Similar to GC_gcj_malloc, but assumes that a pointer to near the */
-/* beginning of the resulting object is always maintained. */
-extern void * GC_gcj_malloc_ignore_off_page(size_t lb,
- void * ptr_to_struct_containing_descr);
-
-# ifdef GC_DEBUG
-# define GC_GCJ_MALLOC(s,d) GC_debug_gcj_malloc(s,d,GC_EXTRAS)
-# define GC_GCJ_FAST_MALLOC(s,d) GC_debug_gcj_fast_malloc(s,d,GC_EXTRAS)
-# define GC_GCJ_MALLOC_IGNORE_OFF_PAGE(s,d) GC_gcj_debug_malloc(s,d,GC_EXTRAS)
-# else
-# define GC_GCJ_MALLOC(s,d) GC_gcj_malloc(s,d)
-# define GC_GCJ_FAST_MALLOC(s,d) GC_gcj_fast_malloc(s,d)
-# define GC_GCJ_MALLOC_IGNORE_OFF_PAGE(s,d) \
- GC_gcj_debug_malloc_ignore_off_page(s,d)
-# endif
-
diff --git a/boehm-gc/include/gc_inl.h b/boehm-gc/include/gc_inl.h
deleted file mode 100644
index 700843bbf96..00000000000
--- a/boehm-gc/include/gc_inl.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, October 3, 1995 2:07 pm PDT */
-
-# ifndef GC_PRIVATE_H
-# include "private/gc_priv.h"
-# endif
-
-/* USE OF THIS FILE IS NOT RECOMMENDED unless the collector has been */
-/* compiled without -DALL_INTERIOR_POINTERS or with */
-/* -DDONT_ADD_BYTE_AT_END, or the specified size includes a pointerfree */
-/* word at the end. In the standard collector configuration, */
-/* the final word of each object may not be scanned. */
-/* This is most useful for compilers that generate C. */
-/* Manual use is hereby discouraged. */
-
-/* Allocate n words (NOT BYTES). X is made to point to the result. */
-/* It is assumed that n < MAXOBJSZ, and */
-/* that n > 0. On machines requiring double word alignment of some */
-/* data, we also assume that n is 1 or even. This bypasses the */
-/* MERGE_SIZES mechanism. In order to minimize the number of distinct */
-/* free lists that are maintained, the caller should ensure that a */
-/* small number of distinct values of n are used. (The MERGE_SIZES */
-/* mechanism normally does this by ensuring that only the leading three */
-/* bits of n may be nonzero. See misc.c for details.) We really */
-/* recommend this only in cases in which n is a constant, and no */
-/* locking is required. */
-/* In that case it may allow the compiler to perform substantial */
-/* additional optimizations. */
-# define GC_MALLOC_WORDS(result,n) \
-{ \
- register ptr_t op; \
- register ptr_t *opp; \
- DCL_LOCK_STATE; \
- \
- opp = &(GC_objfreelist[n]); \
- FASTLOCK(); \
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) { \
- FASTUNLOCK(); \
- (result) = GC_generic_malloc_words_small((n), NORMAL); \
- } else { \
- *opp = obj_link(op); \
- obj_link(op) = 0; \
- GC_words_allocd += (n); \
- FASTUNLOCK(); \
- (result) = (GC_PTR) op; \
- } \
-}
-
-
-/* The same for atomic objects: */
-# define GC_MALLOC_ATOMIC_WORDS(result,n) \
-{ \
- register ptr_t op; \
- register ptr_t *opp; \
- DCL_LOCK_STATE; \
- \
- opp = &(GC_aobjfreelist[n]); \
- FASTLOCK(); \
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) { \
- FASTUNLOCK(); \
- (result) = GC_generic_malloc_words_small((n), PTRFREE); \
- } else { \
- *opp = obj_link(op); \
- obj_link(op) = 0; \
- GC_words_allocd += (n); \
- FASTUNLOCK(); \
- (result) = (GC_PTR) op; \
- } \
-}
-
-/* And once more for two word initialized objects: */
-# define GC_CONS(result, first, second) \
-{ \
- register ptr_t op; \
- register ptr_t *opp; \
- DCL_LOCK_STATE; \
- \
- opp = &(GC_objfreelist[2]); \
- FASTLOCK(); \
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) { \
- FASTUNLOCK(); \
- op = GC_generic_malloc_words_small(2, NORMAL); \
- } else { \
- *opp = obj_link(op); \
- GC_words_allocd += 2; \
- FASTUNLOCK(); \
- } \
- ((word *)op)[0] = (word)(first); \
- ((word *)op)[1] = (word)(second); \
- (result) = (GC_PTR) op; \
-}
diff --git a/boehm-gc/include/gc_inline.h b/boehm-gc/include/gc_inline.h
deleted file mode 100644
index db62d1d58a8..00000000000
--- a/boehm-gc/include/gc_inline.h
+++ /dev/null
@@ -1 +0,0 @@
-# include "gc_inl.h"
diff --git a/boehm-gc/include/gc_nursery.h b/boehm-gc/include/gc_nursery.h
deleted file mode 100644
index d109ff090dc..00000000000
--- a/boehm-gc/include/gc_nursery.h
+++ /dev/null
@@ -1,90 +0,0 @@
-
-/*
- * Copyright (c) 1999 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * THIS IMPLEMENTATION FOR THIS INTERFACE IS INCOMPLETE.
- * NONE OF THIS HAS BEEN TESTED. DO NOT USE.
- *
- * Comments on the interface are appreciated, especially from
- * potential users of the interface.
- *
- * This is a Bartlett style copying collector for young objects.
- * We assume for now that all objects allocated through this
- * mechanism have pointers only in the first BITMAP_BITS words.
- * (On a 32-bit machine, BITMAP_BITS is 30.)
- * Objects allocated in this manner should be rarely referenced
- * by objects not allocated either through this interface, or through
- * the typed allocation interface.
- * If this interface is used, we assume that type information provided
- * through either this or the typed allocation interface is valid
- * in a stronger sense:
- *
- * 1) No pointers are stored in fields not marked as such.
- * (Otherwise it is only necessary that objects referenced by
- * fields marked as nonpointers are also reachable via another
- * path.)
- * 2) Values stored in pointer fields are either not addresses in
- * the heap, or they really are pointers. In the latter case, it
- * is acceptable to move the object they refer to, and to update
- * the pointer.
- *
- * GC_free may not be invoked on objects allocated with GC_copying_malloc.
- *
- * No extra space is added to the end of objects allocated through this
- * interface. If the client needs to maintain pointers past the
- * end, the size should be explicitly padded.
- *
- * We assume that calls to this will usually be compiler generated.
- * Hence the interface is allowed to be a bit ugly in return for speed.
- */
-
-#include "gc_copy_descr.h"
-
-/* GC_copy_descr.h must define */
-/* GC_SIZE_FROM_DESCRIPTOR(descr) and */
-/* GC_BIT_MAP_FROM_DESCRIPTOR(descr). */
-/* It may either be the GC supplied version of the header file, or a */
-/* client specific one that derives the information from a client- */
-/* specific type descriptor. */
-
-typedef GC_PTR GC_copy_alloc_state;
- /* Current allocator state. */
- /* Multiple allocation states */
- /* may be used for concurrent */
- /* allocation, or to enhance */
- /* locality. */
- /* Should be treated as opaque. */
-
-/* Allocate a memory block of size given in the descriptor, and with */
-/* pointer layout given by the descriptor. The resulting block may not */
-/* be cleared, and should immediately be initialized by the client. */
-/* (A concurrent GC may see an uninitialized pointer field. If it */
-/* points outside the nursery, that's fine. If it points inside, it */
-/* may retain an object, and be relocated. But that's also fine, since */
-/* the new value will be immediately overwritten. */
-/* This variant acquires the allocation lock, and uses a default */
-/* global allocation state. */
-GC_PTR GC_copying_malloc(GC_copy_descriptor);
-
-/* A variant of the above that does no locking on the fast path, */
-/* and passes an explicit pointer to an allocation state. */
-/* The allocation state is updated. */
-/* There will eventually need to be a macro or inline function version */
-/* of this. */
-GC_PTR GC_copying_malloc2(GC_copy_descriptor, GC_copy_alloc_state *);
-
-/* Initialize an allocation state so that it can be used for */
-/* allocation. This implicitly reserves a small section of the */
-/* nursery for use with this allocator. */
-void GC_init_copy_alloc_state(GC_copy_alloc_state *);
diff --git a/boehm-gc/include/gc_typed.h b/boehm-gc/include/gc_typed.h
deleted file mode 100644
index 2e0598f204c..00000000000
--- a/boehm-gc/include/gc_typed.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright 1996 Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Some simple primitives for allocation with explicit type information.
- * Facilities for dynamic type inference may be added later.
- * Should be used only for extremely performance critical applications,
- * or if conservative collector leakage is otherwise a problem (unlikely).
- * Note that this is implemented completely separately from the rest
- * of the collector, and is not linked in unless referenced.
- * This does not currently support GC_DEBUG in any interesting way.
- */
-/* Boehm, May 19, 1994 2:13 pm PDT */
-
-#ifndef _GC_TYPED_H
-# define _GC_TYPED_H
-# ifndef _GC_H
-# include "gc.h"
-# endif
-
-typedef GC_word * GC_bitmap;
- /* The least significant bit of the first word is one if */
- /* the first word in the object may be a pointer. */
-
-# define GC_get_bit(bm, index) \
- (((bm)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
-# define GC_set_bit(bm, index) \
- (bm)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
-
-typedef GC_word GC_descr;
-
-GC_API GC_descr GC_make_descriptor GC_PROTO((GC_bitmap bm, size_t len));
- /* Return a type descriptor for the object whose layout */
- /* is described by the argument. */
- /* The least significant bit of the first word is one */
- /* if the first word in the object may be a pointer. */
- /* The second argument specifies the number of */
- /* meaningful bits in the bitmap. The actual object */
- /* may be larger (but not smaller). Any additional */
- /* words in the object are assumed not to contain */
- /* pointers. */
- /* Returns a conservative approximation in the */
- /* (unlikely) case of insufficient memory to build */
- /* the descriptor. Calls to GC_make_descriptor */
- /* may consume some amount of a finite resource. This */
- /* is intended to be called once per type, not once */
- /* per allocation. */
-
-GC_API GC_PTR GC_malloc_explicitly_typed
- GC_PROTO((size_t size_in_bytes, GC_descr d));
- /* Allocate an object whose layout is described by d. */
- /* The resulting object MAY NOT BE PASSED TO REALLOC. */
- /* The returned object is cleared. */
-
-GC_API GC_PTR GC_malloc_explicitly_typed_ignore_off_page
- GC_PROTO((size_t size_in_bytes, GC_descr d));
-
-GC_API GC_PTR GC_calloc_explicitly_typed
- GC_PROTO((size_t nelements,
- size_t element_size_in_bytes,
- GC_descr d));
- /* Allocate an array of nelements elements, each of the */
- /* given size, and with the given descriptor. */
- /* The elemnt size must be a multiple of the byte */
- /* alignment required for pointers. E.g. on a 32-bit */
- /* machine with 16-bit aligned pointers, size_in_bytes */
- /* must be a multiple of 2. */
- /* Returned object is cleared. */
-
-#ifdef GC_DEBUG
-# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) GC_MALLOC(bytes)
-# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
-#else
-# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) \
- GC_malloc_explicitly_typed(bytes, d)
-# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) \
- GC_calloc_explicitly_typed(n, bytes, d)
-#endif /* !GC_DEBUG */
-
-
-#endif /* _GC_TYPED_H */
-
diff --git a/boehm-gc/include/javaxfc.h b/boehm-gc/include/javaxfc.h
deleted file mode 100644
index 880020c5363..00000000000
--- a/boehm-gc/include/javaxfc.h
+++ /dev/null
@@ -1,41 +0,0 @@
-# ifndef GC_H
-# include "gc.h"
-# endif
-
-/*
- * Invoke all remaining finalizers that haven't yet been run.
- * This is needed for strict compliance with the Java standard,
- * which can make the runtime guarantee that all finalizers are run.
- * This is problematic for several reasons:
- * 1) It means that finalizers, and all methods calle by them,
- * must be prepared to deal with objects that have been finalized in
- * spite of the fact that they are still referenced by statically
- * allocated pointer variables.
- * 1) It may mean that we get stuck in an infinite loop running
- * finalizers which create new finalizable objects, though that's
- * probably unlikely.
- * Thus this is not recommended for general use.
- */
-void GC_finalize_all();
-
-/*
- * A version of GC_register_finalizer that allows the object to be
- * finalized before the objects it references. This is again error
- * prone, in that it makes it easy to accidentally reference finalized
- * objects. Again, recommended only for JVM implementors.
- */
-void GC_register_finalizer_no_order(GC_PTR obj,
- GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR * ocd);
-
-void GC_debug_register_finalizer_no_order(GC_PTR obj,
- GC_finalization_proc fn, GC_PTR cd,
- GC_finalization_proc *ofn, GC_PTR * ocd);
-
-#ifdef GC_DEBUG
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_debug_register_finalizer_no_order(p, f, d, of, od)
-#else
-# define GC_REGISTER_FINALIZER(p, f, d, of, od) \
- GC_register_finalizer_no_order(p, f, d, of, od)
-#endif
diff --git a/boehm-gc/include/leak_detector.h b/boehm-gc/include/leak_detector.h
deleted file mode 100644
index 6786825ab6d..00000000000
--- a/boehm-gc/include/leak_detector.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#define GC_DEBUG
-#include "gc.h"
-#define malloc(n) GC_MALLOC(n)
-#define calloc(m,n) GC_MALLOC(m*n)
-#define free(p) GC_FREE(p)
-#define realloc(p,n) GC_REALLOC(n)
-#define CHECK_LEAKS() GC_gcollect()
diff --git a/boehm-gc/include/new_gc_alloc.h b/boehm-gc/include/new_gc_alloc.h
deleted file mode 100644
index 54b7bd448d8..00000000000
--- a/boehm-gc/include/new_gc_alloc.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-//
-// This is a revision of gc_alloc.h for SGI STL versions > 3.0
-// Unlike earlier versions, it supplements the standard "alloc.h"
-// instead of replacing it.
-//
-// This is sloppy about variable names used in header files.
-// It also doesn't yet understand the new header file names or
-// namespaces.
-//
-// This assumes the collector has been compiled with -DATOMIC_UNCOLLECTABLE
-// and -DALL_INTERIOR_POINTERS. We also recommend
-// -DREDIRECT_MALLOC=GC_uncollectable_malloc.
-//
-// Some of this could be faster in the explicit deallocation case.
-// In particular, we spend too much time clearing objects on the
-// free lists. That could be avoided.
-//
-// This uses template classes with static members, and hence does not work
-// with g++ 2.7.2 and earlier.
-//
-// Unlike its predecessor, this one simply defines
-// gc_alloc
-// single_client_gc_alloc
-// traceable_alloc
-// single_client_traceable_alloc
-//
-// It does not redefine alloc. Nor does it change the default allocator,
-// though the user may wish to do so. (The argument against changing
-// the default allocator is that it may introduce subtle link compatibility
-// problems. The argument for changing it is that the usual default
-// allocator is usually a very bad choice for a garbage collected environment.)
-//
-
-#ifndef GC_ALLOC_H
-
-#include "gc.h"
-#include <alloc.h>
-
-#define GC_ALLOC_H
-
-#include <stddef.h>
-#include <string.h>
-
-// The following need to match collector data structures.
-// We can't include gc_priv.h, since that pulls in way too much stuff.
-// This should eventually be factored out into another include file.
-
-extern "C" {
- extern void ** const GC_objfreelist_ptr;
- extern void ** const GC_aobjfreelist_ptr;
- extern void ** const GC_uobjfreelist_ptr;
- extern void ** const GC_auobjfreelist_ptr;
-
- extern void GC_incr_words_allocd(size_t words);
- extern void GC_incr_mem_freed(size_t words);
-
- extern char * GC_generic_malloc_words_small(size_t word, int kind);
-}
-
-// Object kinds; must match PTRFREE, NORMAL, UNCOLLECTABLE, and
-// AUNCOLLECTABLE in gc_priv.h.
-
-enum { GC_PTRFREE = 0, GC_NORMAL = 1, GC_UNCOLLECTABLE = 2,
- GC_AUNCOLLECTABLE = 3 };
-
-enum { GC_max_fast_bytes = 255 };
-
-enum { GC_bytes_per_word = sizeof(char *) };
-
-enum { GC_byte_alignment = 8 };
-
-enum { GC_word_alignment = GC_byte_alignment/GC_bytes_per_word };
-
-inline void * &GC_obj_link(void * p)
-{ return *(void **)p; }
-
-// Compute a number of words >= n+1 bytes.
-// The +1 allows for pointers one past the end.
-inline size_t GC_round_up(size_t n)
-{
- return ((n + GC_byte_alignment)/GC_byte_alignment)*GC_word_alignment;
-}
-
-// The same but don't allow for extra byte.
-inline size_t GC_round_up_uncollectable(size_t n)
-{
- return ((n + GC_byte_alignment - 1)/GC_byte_alignment)*GC_word_alignment;
-}
-
-template <int dummy>
-class GC_aux_template {
-public:
- // File local count of allocated words. Occasionally this is
- // added into the global count. A separate count is necessary since the
- // real one must be updated with a procedure call.
- static size_t GC_words_recently_allocd;
-
- // Same for uncollectable mmory. Not yet reflected in either
- // GC_words_recently_allocd or GC_non_gc_bytes.
- static size_t GC_uncollectable_words_recently_allocd;
-
- // Similar counter for explicitly deallocated memory.
- static size_t GC_mem_recently_freed;
-
- // Again for uncollectable memory.
- static size_t GC_uncollectable_mem_recently_freed;
-
- static void * GC_out_of_line_malloc(size_t nwords, int kind);
-};
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_words_recently_allocd = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_mem_recently_freed = 0;
-
-template <int dummy>
-size_t GC_aux_template<dummy>::GC_uncollectable_mem_recently_freed = 0;
-
-template <int dummy>
-void * GC_aux_template<dummy>::GC_out_of_line_malloc(size_t nwords, int kind)
-{
- GC_words_recently_allocd += GC_uncollectable_words_recently_allocd;
- GC_non_gc_bytes +=
- GC_bytes_per_word * GC_uncollectable_words_recently_allocd;
- GC_uncollectable_words_recently_allocd = 0;
-
- GC_mem_recently_freed += GC_uncollectable_mem_recently_freed;
- GC_non_gc_bytes -=
- GC_bytes_per_word * GC_uncollectable_mem_recently_freed;
- GC_uncollectable_mem_recently_freed = 0;
-
- GC_incr_words_allocd(GC_words_recently_allocd);
- GC_words_recently_allocd = 0;
-
- GC_incr_mem_freed(GC_mem_recently_freed);
- GC_mem_recently_freed = 0;
-
- return GC_generic_malloc_words_small(nwords, kind);
-}
-
-typedef GC_aux_template<0> GC_aux;
-
-// A fast, single-threaded, garbage-collected allocator
-// We assume the first word will be immediately overwritten.
-// In this version, deallocation is not a noop, and explicit
-// deallocation is likely to help performance.
-template <int dummy>
-class single_client_gc_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc(n);
- flh = GC_objfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_NORMAL);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic(n);
- flh = GC_aobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_PTRFREE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_objfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- memset((char *)p + GC_bytes_per_word, 0,
- GC_bytes_per_word * (nwords - 1));
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_aobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_gc_alloc_template<0> single_client_gc_alloc;
-
-// Once more, for uncollectable objects.
-template <int dummy>
-class single_client_traceable_alloc_template {
- public:
- static void * allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_uncollectable(n);
- flh = GC_uobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_UNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void * ptr_free_allocate(size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
- void * op;
-
- if (n > GC_max_fast_bytes) return GC_malloc_atomic_uncollectable(n);
- flh = GC_auobjfreelist_ptr + nwords;
- if (0 == (op = *flh)) {
- return GC_aux::GC_out_of_line_malloc(nwords, GC_AUNCOLLECTABLE);
- }
- *flh = GC_obj_link(op);
- GC_aux::GC_uncollectable_words_recently_allocd += nwords;
- return op;
- }
- static void deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_uobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
- static void ptr_free_deallocate(void *p, size_t n)
- {
- size_t nwords = GC_round_up_uncollectable(n);
- void ** flh;
-
- if (n > GC_max_fast_bytes) {
- GC_free(p);
- } else {
- flh = GC_auobjfreelist_ptr + nwords;
- GC_obj_link(p) = *flh;
- *flh = p;
- GC_aux::GC_uncollectable_mem_recently_freed += nwords;
- }
- }
-};
-
-typedef single_client_traceable_alloc_template<0> single_client_traceable_alloc;
-
-template < int dummy >
-class gc_alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic(n); }
- static void deallocate(void *, size_t) { }
- static void ptr_free_deallocate(void *, size_t) { }
-};
-
-typedef gc_alloc_template < 0 > gc_alloc;
-
-template < int dummy >
-class traceable_alloc_template {
- public:
- static void * allocate(size_t n) { return GC_malloc_uncollectable(n); }
- static void * ptr_free_allocate(size_t n)
- { return GC_malloc_atomic_uncollectable(n); }
- static void deallocate(void *p, size_t) { GC_free(p); }
- static void ptr_free_deallocate(void *p, size_t) { GC_free(p); }
-};
-
-typedef traceable_alloc_template < 0 > traceable_alloc;
-
-// We want to specialize simple_alloc so that it does the right thing
-// for all pointerfree types. At the moment there is no portable way to
-// even approximate that. The following approximation should work for
-// SGI compilers, and recent versions of g++.
-
-# define __GC_SPECIALIZE(T,alloc) \
-class simple_alloc<T, alloc> { \
-public: \
- static T *allocate(size_t n) \
- { return 0 == n? 0 : \
- (T*) alloc::ptr_free_allocate(n * sizeof (T)); } \
- static T *allocate(void) \
- { return (T*) alloc::ptr_free_allocate(sizeof (T)); } \
- static void deallocate(T *p, size_t n) \
- { if (0 != n) alloc::ptr_free_deallocate(p, n * sizeof (T)); } \
- static void deallocate(T *p) \
- { alloc::ptr_free_deallocate(p, sizeof (T)); } \
-};
-
-__GC_SPECIALIZE(char, gc_alloc)
-__GC_SPECIALIZE(int, gc_alloc)
-__GC_SPECIALIZE(unsigned, gc_alloc)
-__GC_SPECIALIZE(float, gc_alloc)
-__GC_SPECIALIZE(double, gc_alloc)
-
-__GC_SPECIALIZE(char, traceable_alloc)
-__GC_SPECIALIZE(int, traceable_alloc)
-__GC_SPECIALIZE(unsigned, traceable_alloc)
-__GC_SPECIALIZE(float, traceable_alloc)
-__GC_SPECIALIZE(double, traceable_alloc)
-
-__GC_SPECIALIZE(char, single_client_gc_alloc)
-__GC_SPECIALIZE(int, single_client_gc_alloc)
-__GC_SPECIALIZE(unsigned, single_client_gc_alloc)
-__GC_SPECIALIZE(float, single_client_gc_alloc)
-__GC_SPECIALIZE(double, single_client_gc_alloc)
-
-__GC_SPECIALIZE(char, single_client_traceable_alloc)
-__GC_SPECIALIZE(int, single_client_traceable_alloc)
-__GC_SPECIALIZE(unsigned, single_client_traceable_alloc)
-__GC_SPECIALIZE(float, single_client_traceable_alloc)
-__GC_SPECIALIZE(double, single_client_traceable_alloc)
-
-#ifdef __STL_USE_STD_ALLOCATORS
-
-__STL_BEGIN_NAMESPACE
-
-template <class _T>
-struct _Alloc_traits<_T, gc_alloc >
-{
- static const bool _S_instanceless = true;
- typedef simple_alloc<_T, gc_alloc > _Alloc_type;
- typedef __allocator<_T, gc_alloc > allocator_type;
-};
-
-inline bool operator==(const gc_alloc&,
- const gc_alloc&)
-{
- return true;
-}
-
-inline bool operator!=(const gc_alloc&,
- const gc_alloc&)
-{
- return false;
-}
-
-template <class _T>
-struct _Alloc_traits<_T, single_client_gc_alloc >
-{
- static const bool _S_instanceless = true;
- typedef simple_alloc<_T, single_client_gc_alloc > _Alloc_type;
- typedef __allocator<_T, single_client_gc_alloc > allocator_type;
-};
-
-inline bool operator==(const single_client_gc_alloc&,
- const single_client_gc_alloc&)
-{
- return true;
-}
-
-inline bool operator!=(const single_client_gc_alloc&,
- const single_client_gc_alloc&)
-{
- return false;
-}
-
-template <class _T>
-struct _Alloc_traits<_T, traceable_alloc >
-{
- static const bool _S_instanceless = true;
- typedef simple_alloc<_T, traceable_alloc > _Alloc_type;
- typedef __allocator<_T, traceable_alloc > allocator_type;
-};
-
-inline bool operator==(const traceable_alloc&,
- const traceable_alloc&)
-{
- return true;
-}
-
-inline bool operator!=(const traceable_alloc&,
- const traceable_alloc&)
-{
- return false;
-}
-
-template <class _T>
-struct _Alloc_traits<_T, single_client_traceable_alloc >
-{
- static const bool _S_instanceless = true;
- typedef simple_alloc<_T, single_client_traceable_alloc > _Alloc_type;
- typedef __allocator<_T, single_client_traceable_alloc > allocator_type;
-};
-
-inline bool operator==(const single_client_traceable_alloc&,
- const single_client_traceable_alloc&)
-{
- return true;
-}
-
-inline bool operator!=(const single_client_traceable_alloc&,
- const single_client_traceable_alloc&)
-{
- return false;
-}
-
-__STL_END_NAMESPACE
-
-#endif /* __STL_USE_STD_ALLOCATORS */
-
-#endif /* GC_ALLOC_H */
diff --git a/boehm-gc/include/private/cord_pos.h b/boehm-gc/include/private/cord_pos.h
deleted file mode 100644
index d2b24bb8ab6..00000000000
--- a/boehm-gc/include/private/cord_pos.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, May 19, 1994 2:23 pm PDT */
-# ifndef CORD_POSITION_H
-
-/* The representation of CORD_position. This is private to the */
-/* implementation, but the size is known to clients. Also */
-/* the implementation of some exported macros relies on it. */
-/* Don't use anything defined here and not in cord.h. */
-
-# define MAX_DEPTH 48
- /* The maximum depth of a balanced cord + 1. */
- /* We don't let cords get deeper than MAX_DEPTH. */
-
-struct CORD_pe {
- CORD pe_cord;
- size_t pe_start_pos;
-};
-
-/* A structure describing an entry on the path from the root */
-/* to current position. */
-typedef struct CORD_Pos {
- size_t cur_pos;
- int path_len;
-# define CORD_POS_INVALID (0x55555555)
- /* path_len == INVALID <==> position invalid */
- const char *cur_leaf; /* Current leaf, if it is a string. */
- /* If the current leaf is a function, */
- /* then this may point to function_buf */
- /* containing the next few characters. */
- /* Always points to a valid string */
- /* containing the current character */
- /* unless cur_end is 0. */
- size_t cur_start; /* Start position of cur_leaf */
- size_t cur_end; /* Ending position of cur_leaf */
- /* 0 if cur_leaf is invalid. */
- struct CORD_pe path[MAX_DEPTH + 1];
- /* path[path_len] is the leaf corresponding to cur_pos */
- /* path[0].pe_cord is the cord we point to. */
-# define FUNCTION_BUF_SZ 8
- char function_buf[FUNCTION_BUF_SZ]; /* Space for next few chars */
- /* from function node. */
-} CORD_pos[1];
-
-/* Extract the cord from a position: */
-CORD CORD_pos_to_cord(CORD_pos p);
-
-/* Extract the current index from a position: */
-size_t CORD_pos_to_index(CORD_pos p);
-
-/* Fetch the character located at the given position: */
-char CORD_pos_fetch(CORD_pos p);
-
-/* Initialize the position to refer to the give cord and index. */
-/* Note that this is the most expensive function on positions: */
-void CORD_set_pos(CORD_pos p, CORD x, size_t i);
-
-/* Advance the position to the next character. */
-/* P must be initialized and valid. */
-/* Invalidates p if past end: */
-void CORD_next(CORD_pos p);
-
-/* Move the position to the preceding character. */
-/* P must be initialized and valid. */
-/* Invalidates p if past beginning: */
-void CORD_prev(CORD_pos p);
-
-/* Is the position valid, i.e. inside the cord? */
-int CORD_pos_valid(CORD_pos p);
-
-char CORD__pos_fetch(CORD_pos);
-void CORD__next(CORD_pos);
-void CORD__prev(CORD_pos);
-
-#define CORD_pos_fetch(p) \
- (((p)[0].cur_end != 0)? \
- (p)[0].cur_leaf[(p)[0].cur_pos - (p)[0].cur_start] \
- : CORD__pos_fetch(p))
-
-#define CORD_next(p) \
- (((p)[0].cur_pos + 1 < (p)[0].cur_end)? \
- (p)[0].cur_pos++ \
- : (CORD__next(p), 0))
-
-#define CORD_prev(p) \
- (((p)[0].cur_end != 0 && (p)[0].cur_pos > (p)[0].cur_start)? \
- (p)[0].cur_pos-- \
- : (CORD__prev(p), 0))
-
-#define CORD_pos_to_index(p) ((p)[0].cur_pos)
-
-#define CORD_pos_to_cord(p) ((p)[0].path[0].pe_cord)
-
-#define CORD_pos_valid(p) ((p)[0].path_len != CORD_POS_INVALID)
-
-/* Some grubby stuff for performance-critical friends: */
-#define CORD_pos_chars_left(p) ((long)((p)[0].cur_end) - (long)((p)[0].cur_pos))
- /* Number of characters in cache. <= 0 ==> none */
-
-#define CORD_pos_advance(p,n) ((p)[0].cur_pos += (n) - 1, CORD_next(p))
- /* Advance position by n characters */
- /* 0 < n < CORD_pos_chars_left(p) */
-
-#define CORD_pos_cur_char_addr(p) \
- (p)[0].cur_leaf + ((p)[0].cur_pos - (p)[0].cur_start)
- /* address of current character in cache. */
-
-#endif
diff --git a/boehm-gc/include/private/gc_hdrs.h b/boehm-gc/include/private/gc_hdrs.h
deleted file mode 100644
index 60dc2ad37d6..00000000000
--- a/boehm-gc/include/private/gc_hdrs.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, July 11, 1995 11:54 am PDT */
-# ifndef GC_HEADERS_H
-# define GC_HEADERS_H
-typedef struct hblkhdr hdr;
-
-# if CPP_WORDSZ != 32 && CPP_WORDSZ < 36
- --> Get a real machine.
-# endif
-
-/*
- * The 2 level tree data structure that is used to find block headers.
- * If there are more than 32 bits in a pointer, the top level is a hash
- * table.
- */
-
-# if CPP_WORDSZ > 32
-# define HASH_TL
-# endif
-
-/* Define appropriate out-degrees for each of the two tree levels */
-# ifdef SMALL_CONFIG
-# define LOG_BOTTOM_SZ 11
- /* Keep top index size reasonable with smaller blocks. */
-# else
-# define LOG_BOTTOM_SZ 10
-# endif
-# ifndef HASH_TL
-# define LOG_TOP_SZ (WORDSZ - LOG_BOTTOM_SZ - LOG_HBLKSIZE)
-# else
-# define LOG_TOP_SZ 11
-# endif
-# define TOP_SZ (1 << LOG_TOP_SZ)
-# define BOTTOM_SZ (1 << LOG_BOTTOM_SZ)
-
-typedef struct bi {
- hdr * index[BOTTOM_SZ];
- /*
- * The bottom level index contains one of three kinds of values:
- * 0 means we're not responsible for this block,
- * or this is a block other than the first one in a free block.
- * 1 < (long)X <= MAX_JUMP means the block starts at least
- * X * HBLKSIZE bytes before the current address.
- * A valid pointer points to a hdr structure. (The above can't be
- * valid pointers due to the GET_MEM return convention.)
- */
- struct bi * asc_link; /* All indices are linked in */
- /* ascending order... */
- struct bi * desc_link; /* ... and in descending order. */
- word key; /* high order address bits. */
-# ifdef HASH_TL
- struct bi * hash_link; /* Hash chain link. */
-# endif
-} bottom_index;
-
-/* extern bottom_index GC_all_nils; - really part of GC_arrays */
-
-/* extern bottom_index * GC_top_index []; - really part of GC_arrays */
- /* Each entry points to a bottom_index. */
- /* On a 32 bit machine, it points to */
- /* the index for a set of high order */
- /* bits equal to the index. For longer */
- /* addresses, we hash the high order */
- /* bits to compute the index in */
- /* GC_top_index, and each entry points */
- /* to a hash chain. */
- /* The last entry in each chain is */
- /* GC_all_nils. */
-
-
-# define MAX_JUMP (HBLKSIZE - 1)
-
-# define HDR_FROM_BI(bi, p) \
- ((bi)->index[((word)(p) >> LOG_HBLKSIZE) & (BOTTOM_SZ - 1)])
-# ifndef HASH_TL
-# define BI(p) (GC_top_index \
- [(word)(p) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE)])
-# define HDR_INNER(p) HDR_FROM_BI(BI(p),p)
-# ifdef SMALL_CONFIG
-# define HDR(p) GC_find_header((ptr_t)(p))
-# else
-# define HDR(p) HDR_INNER(p)
-# endif
-# define GET_BI(p, bottom_indx) (bottom_indx) = BI(p)
-# define GET_HDR(p, hhdr) (hhdr) = HDR(p)
-# define SET_HDR(p, hhdr) HDR_INNER(p) = (hhdr)
-# define GET_HDR_ADDR(p, ha) (ha) = &(HDR_INNER(p))
-# else /* hash */
-/* Hash function for tree top level */
-# define TL_HASH(hi) ((hi) & (TOP_SZ - 1))
-/* Set bottom_indx to point to the bottom index for address p */
-# define GET_BI(p, bottom_indx) \
- { \
- register word hi = \
- (word)(p) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \
- register bottom_index * _bi = GC_top_index[TL_HASH(hi)]; \
- \
- while (_bi -> key != hi && _bi != GC_all_nils) \
- _bi = _bi -> hash_link; \
- (bottom_indx) = _bi; \
- }
-# define GET_HDR_ADDR(p, ha) \
- { \
- register bottom_index * bi; \
- \
- GET_BI(p, bi); \
- (ha) = &(HDR_FROM_BI(bi, p)); \
- }
-# define GET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \
- (hhdr) = *_ha; }
-# define SET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \
- *_ha = (hhdr); }
-# define HDR(p) GC_find_header((ptr_t)(p))
-# endif
-
-/* Is the result a forwarding address to someplace closer to the */
-/* beginning of the block or NIL? */
-# define IS_FORWARDING_ADDR_OR_NIL(hhdr) ((unsigned long) (hhdr) <= MAX_JUMP)
-
-/* Get an HBLKSIZE aligned address closer to the beginning of the block */
-/* h. Assumes hhdr == HDR(h) and IS_FORWARDING_ADDR(hhdr). */
-# define FORWARDED_ADDR(h, hhdr) ((struct hblk *)(h) - (unsigned long)(hhdr))
-# endif /* GC_HEADERS_H */
diff --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h
deleted file mode 100644
index ce685875549..00000000000
--- a/boehm-gc/include/private/gc_priv.h
+++ /dev/null
@@ -1,1884 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 16, 1996 2:30 pm PST */
-
-
-# ifndef GC_PRIVATE_H
-# define GC_PRIVATE_H
-
-#if defined(mips) && defined(SYSTYPE_BSD) && defined(sony_news)
- /* sony RISC NEWS, NEWSOS 4 */
-# define BSD_TIME
-/* typedef long ptrdiff_t; -- necessary on some really old systems */
-#endif
-
-#if defined(mips) && defined(SYSTYPE_BSD43)
- /* MIPS RISCOS 4 */
-# define BSD_TIME
-#endif
-
-#ifdef BSD_TIME
-# include <sys/types.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-#endif /* BSD_TIME */
-
-# ifndef GC_H
-# include "gc.h"
-# endif
-
-typedef GC_word word;
-typedef GC_signed_word signed_word;
-
-# ifndef GCCONFIG_H
-# include "gcconfig.h"
-# endif
-
-# ifndef HEADERS_H
-# include "gc_hdrs.h"
-# endif
-
-typedef int GC_bool;
-# define TRUE 1
-# define FALSE 0
-
-typedef char * ptr_t; /* A generic pointer to which we can add */
- /* byte displacements. */
- /* Preferably identical to caddr_t, if it */
- /* exists. */
-
-#if defined(__STDC__)
-# include <stdlib.h>
-# if !(defined( sony_news ) )
-# include <stddef.h>
-# endif
-# define VOLATILE volatile
-#else
-# ifdef MSWIN32
-# include <stdlib.h>
-# endif
-# define VOLATILE
-#endif
-
-#define CONST GC_CONST
-
-#if 0 /* was once defined for AMIGA */
-# define GC_FAR __far
-#else
-# define GC_FAR
-#endif
-
-
-/*********************************/
-/* */
-/* Definitions for conservative */
-/* collector */
-/* */
-/*********************************/
-
-/*********************************/
-/* */
-/* Easily changeable parameters */
-/* */
-/*********************************/
-
-#define STUBBORN_ALLOC /* Define stubborn allocation primitives */
-#if defined(SRC_M3) || defined(SMALL_CONFIG)
-# undef STUBBORN_ALLOC
-#endif
-
-
-/* #define ALL_INTERIOR_POINTERS */
- /* Forces all pointers into the interior of an */
- /* object to be considered valid. Also causes the */
- /* sizes of all objects to be inflated by at least */
- /* one byte. This should suffice to guarantee */
- /* that in the presence of a compiler that does */
- /* not perform garbage-collector-unsafe */
- /* optimizations, all portable, strictly ANSI */
- /* conforming C programs should be safely usable */
- /* with malloc replaced by GC_malloc and free */
- /* calls removed. There are several disadvantages: */
- /* 1. There are probably no interesting, portable, */
- /* strictly ANSI conforming C programs. */
- /* 2. This option makes it hard for the collector */
- /* to allocate space that is not ``pointed to'' */
- /* by integers, etc. Under SunOS 4.X with a */
- /* statically linked libc, we empiricaly */
- /* observed that it would be difficult to */
- /* allocate individual objects larger than 100K. */
- /* Even if only smaller objects are allocated, */
- /* more swap space is likely to be needed. */
- /* Fortunately, much of this will never be */
- /* touched. */
- /* If you can easily avoid using this option, do. */
- /* If not, try to keep individual objects small. */
-
-#define PRINTSTATS /* Print garbage collection statistics */
- /* For less verbose output, undefine in reclaim.c */
-
-#define PRINTTIMES /* Print the amount of time consumed by each garbage */
- /* collection. */
-
-#define PRINTBLOCKS /* Print object sizes associated with heap blocks, */
- /* whether the objects are atomic or composite, and */
- /* whether or not the block was found to be empty */
- /* during the reclaim phase. Typically generates */
- /* about one screenful per garbage collection. */
-#undef PRINTBLOCKS
-
-#ifdef SILENT
-# ifdef PRINTSTATS
-# undef PRINTSTATS
-# endif
-# ifdef PRINTTIMES
-# undef PRINTTIMES
-# endif
-# ifdef PRINTNBLOCKS
-# undef PRINTNBLOCKS
-# endif
-#endif
-
-#if defined(PRINTSTATS) && !defined(GATHERSTATS)
-# define GATHERSTATS
-#endif
-
-#ifdef FINALIZE_ON_DEMAND
-# define GC_INVOKE_FINALIZERS()
-#else
-# define GC_INVOKE_FINALIZERS() (void)GC_invoke_finalizers()
-#endif
-
-#define MERGE_SIZES /* Round up some object sizes, so that fewer distinct */
- /* free lists are actually maintained. This applies */
- /* only to the top level routines in misc.c, not to */
- /* user generated code that calls GC_allocobj and */
- /* GC_allocaobj directly. */
- /* Slows down average programs slightly. May however */
- /* substantially reduce fragmentation if allocation */
- /* request sizes are widely scattered. */
- /* May save significant amounts of space for obj_map */
- /* entries. */
-
-/* ALIGN_DOUBLE requires MERGE_SIZES at present. */
-# if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES)
-# define MERGE_SIZES
-# endif
-
-#if defined(ALL_INTERIOR_POINTERS) && !defined(DONT_ADD_BYTE_AT_END)
-# define ADD_BYTE_AT_END
-#endif
-
-
-# ifndef LARGE_CONFIG
-# define MINHINCR 16 /* Minimum heap increment, in blocks of HBLKSIZE */
- /* Must be multiple of largest page size. */
-# define MAXHINCR 512 /* Maximum heap increment, in blocks */
-# else
-# define MINHINCR 64
-# define MAXHINCR 4096
-# endif
-
-# define TIME_LIMIT 50 /* We try to keep pause times from exceeding */
- /* this by much. In milliseconds. */
-
-# define BL_LIMIT GC_black_list_spacing
- /* If we need a block of N bytes, and we have */
- /* a block of N + BL_LIMIT bytes available, */
- /* and N > BL_LIMIT, */
- /* but all possible positions in it are */
- /* blacklisted, we just use it anyway (and */
- /* print a warning, if warnings are enabled). */
- /* This risks subsequently leaking the block */
- /* due to a false reference. But not using */
- /* the block risks unreasonable immediate */
- /* heap growth. */
-
-/*********************************/
-/* */
-/* Stack saving for debugging */
-/* */
-/*********************************/
-
-#ifdef SAVE_CALL_CHAIN
-
-/*
- * Number of frames and arguments to save in objects allocated by
- * debugging allocator.
- */
-# define NFRAMES 6 /* Number of frames to save. Even for */
- /* alignment reasons. */
-# define NARGS 2 /* Mumber of arguments to save for each call. */
-
-# define NEED_CALLINFO
-
-/* Fill in the pc and argument information for up to NFRAMES of my */
-/* callers. Ignore my frame and my callers frame. */
-void GC_save_callers (/* struct callinfo info[NFRAMES] */);
-
-void GC_print_callers (/* struct callinfo info[NFRAMES] */);
-
-#else
-
-# ifdef GC_ADD_CALLER
-# define NFRAMES 1
-# define NARGS 0
-# define NEED_CALLINFO
-# endif
-
-#endif
-
-#ifdef NEED_CALLINFO
- struct callinfo {
- word ci_pc;
-# if NARGS > 0
- word ci_arg[NARGS]; /* bit-wise complement to avoid retention */
-# endif
-# if defined(ALIGN_DOUBLE) && (NFRAMES * (NARGS + 1)) % 2 == 1
- /* Likely alignment problem. */
- word ci_dummy;
-# endif
- };
-#endif
-
-
-/*********************************/
-/* */
-/* OS interface routines */
-/* */
-/*********************************/
-
-#ifdef BSD_TIME
-# undef CLOCK_TYPE
-# undef GET_TIME
-# undef MS_TIME_DIFF
-# define CLOCK_TYPE struct timeval
-# define GET_TIME(x) { struct rusage rusage; \
- getrusage (RUSAGE_SELF, &rusage); \
- x = rusage.ru_utime; }
-# define MS_TIME_DIFF(a,b) ((double) (a.tv_sec - b.tv_sec) * 1000.0 \
- + (double) (a.tv_usec - b.tv_usec) / 1000.0)
-#else /* !BSD_TIME */
-# ifdef MSWIN32
-# include <windows.h>
-# include <winbase.h>
-# define CLOCK_TYPE DWORD
-# define GET_TIME(x) x = GetTickCount()
-# define MS_TIME_DIFF(a,b) ((long)((a)-(b)))
-# else /* !MSWIN32, !BSD_TIME */
-# include <time.h>
-# if !defined(__STDC__) && defined(SPARC) && defined(SUNOS4)
- clock_t clock(); /* Not in time.h, where it belongs */
-# endif
-# if defined(FREEBSD) && !defined(CLOCKS_PER_SEC)
-# include <machine/limits.h>
-# define CLOCKS_PER_SEC CLK_TCK
-# endif
-# if !defined(CLOCKS_PER_SEC)
-# define CLOCKS_PER_SEC 1000000
-/*
- * This is technically a bug in the implementation. ANSI requires that
- * CLOCKS_PER_SEC be defined. But at least under SunOS4.1.1, it isn't.
- * Also note that the combination of ANSI C and POSIX is incredibly gross
- * here. The type clock_t is used by both clock() and times(). But on
- * some machines these use different notions of a clock tick, CLOCKS_PER_SEC
- * seems to apply only to clock. Hence we use it here. On many machines,
- * including SunOS, clock actually uses units of microseconds (which are
- * not really clock ticks).
- */
-# endif
-# define CLOCK_TYPE clock_t
-# define GET_TIME(x) x = clock()
-# define MS_TIME_DIFF(a,b) ((unsigned long) \
- (1000.0*(double)((a)-(b))/(double)CLOCKS_PER_SEC))
-# endif /* !MSWIN32 */
-#endif /* !BSD_TIME */
-
-/* We use bzero and bcopy internally. They may not be available. */
-# if defined(SPARC) && defined(SUNOS4)
-# define BCOPY_EXISTS
-# endif
-# if defined(M68K) && defined(AMIGA)
-# define BCOPY_EXISTS
-# endif
-# if defined(M68K) && defined(NEXT)
-# define BCOPY_EXISTS
-# endif
-# if defined(VAX)
-# define BCOPY_EXISTS
-# endif
-# if defined(AMIGA)
-# include <string.h>
-# define BCOPY_EXISTS
-# endif
-
-# ifndef BCOPY_EXISTS
-# include <string.h>
-# define BCOPY(x,y,n) memcpy(y, x, (size_t)(n))
-# define BZERO(x,n) memset(x, 0, (size_t)(n))
-# else
-# define BCOPY(x,y,n) bcopy((char *)(x),(char *)(y),(int)(n))
-# define BZERO(x,n) bzero((char *)(x),(int)(n))
-# endif
-
-/* HBLKSIZE aligned allocation. 0 is taken to mean failure */
-/* space is assumed to be cleared. */
-/* In the case os USE_MMAP, the argument must also be a */
-/* physical page size. */
-/* GET_MEM is currently not assumed to retrieve 0 filled space, */
-/* though we should perhaps take advantage of the case in which */
-/* does. */
-# ifdef PCR
- char * real_malloc();
-# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
- + GC_page_size-1)
-# else
-# ifdef OS2
- void * os2_alloc(size_t bytes);
-# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
- + GC_page_size) \
- + GC_page_size-1)
-# else
-# if defined(AMIGA) || defined(NEXT) || defined(MACOSX) || defined(DOS4GW)
-# define GET_MEM(bytes) HBLKPTR((size_t) \
- calloc(1, (size_t)bytes + GC_page_size) \
- + GC_page_size-1)
-# else
-# ifdef MSWIN32
- extern ptr_t GC_win32_get_mem();
-# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
-# else
-# ifdef MACOS
-# if defined(USE_TEMPORARY_MEMORY)
- extern Ptr GC_MacTemporaryNewPtr(size_t size,
- Boolean clearMemory);
-# define GET_MEM(bytes) HBLKPTR( \
- GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
- + GC_page_size-1)
-# else
-# define GET_MEM(bytes) HBLKPTR( \
- NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
-# endif
-# else
- extern ptr_t GC_unix_get_mem();
-# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
-# endif
-# endif
-# endif
-# endif
-# endif
-
-/*
- * Mutual exclusion between allocator/collector routines.
- * Needed if there is more than one allocator thread.
- * FASTLOCK() is assumed to try to acquire the lock in a cheap and
- * dirty way that is acceptable for a few instructions, e.g. by
- * inhibiting preemption. This is assumed to have succeeded only
- * if a subsequent call to FASTLOCK_SUCCEEDED() returns TRUE.
- * FASTUNLOCK() is called whether or not FASTLOCK_SUCCEEDED().
- * If signals cannot be tolerated with the FASTLOCK held, then
- * FASTLOCK should disable signals. The code executed under
- * FASTLOCK is otherwise immune to interruption, provided it is
- * not restarted.
- * DCL_LOCK_STATE declares any local variables needed by LOCK and UNLOCK
- * and/or DISABLE_SIGNALS and ENABLE_SIGNALS and/or FASTLOCK.
- * (There is currently no equivalent for FASTLOCK.)
- */
-# ifdef THREADS
-# ifdef PCR_OBSOLETE /* Faster, but broken with multiple lwp's */
-# include "th/PCR_Th.h"
-# include "th/PCR_ThCrSec.h"
- extern struct PCR_Th_MLRep GC_allocate_ml;
-# define DCL_LOCK_STATE PCR_sigset_t GC_old_sig_mask
-# define LOCK() PCR_Th_ML_Acquire(&GC_allocate_ml)
-# define UNLOCK() PCR_Th_ML_Release(&GC_allocate_ml)
-# define FASTLOCK() PCR_ThCrSec_EnterSys()
- /* Here we cheat (a lot): */
-# define FASTLOCK_SUCCEEDED() (*(int *)(&GC_allocate_ml) == 0)
- /* TRUE if nobody currently holds the lock */
-# define FASTUNLOCK() PCR_ThCrSec_ExitSys()
-# endif
-# ifdef PCR
-# include <base/PCR_Base.h>
-# include <th/PCR_Th.h>
- extern PCR_Th_ML GC_allocate_ml;
-# define DCL_LOCK_STATE \
- PCR_ERes GC_fastLockRes; PCR_sigset_t GC_old_sig_mask
-# define LOCK() PCR_Th_ML_Acquire(&GC_allocate_ml)
-# define UNLOCK() PCR_Th_ML_Release(&GC_allocate_ml)
-# define FASTLOCK() (GC_fastLockRes = PCR_Th_ML_Try(&GC_allocate_ml))
-# define FASTLOCK_SUCCEEDED() (GC_fastLockRes == PCR_ERes_okay)
-# define FASTUNLOCK() {\
- if( FASTLOCK_SUCCEEDED() ) PCR_Th_ML_Release(&GC_allocate_ml); }
-# endif
-# ifdef SRC_M3
- extern word RT0u__inCritical;
-# define LOCK() RT0u__inCritical++
-# define UNLOCK() RT0u__inCritical--
-# endif
-# ifdef SOLARIS_THREADS
-# include <thread.h>
-# include <signal.h>
- extern mutex_t GC_allocate_ml;
-# define LOCK() mutex_lock(&GC_allocate_ml);
-# define UNLOCK() mutex_unlock(&GC_allocate_ml);
-# endif
-# if defined(LINUX_THREADS)
-# if defined(I386)|| defined(POWERPC) || defined(ALPHA) || defined(IA64) \
- || defined(M68K)
-# include <pthread.h>
-# define USE_SPIN_LOCK
-# if defined(I386)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- /* Note: the "xchg" instruction does not need a "lock" prefix */
- __asm__ __volatile__("xchgl %0, %1"
- : "=r"(oldval), "=m"(*(addr))
- : "0"(1), "m"(*(addr)));
- return oldval;
- }
-# endif
-# if defined(IA64)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- __asm__ __volatile__("xchg4 %0=%1,%2"
- : "=r"(oldval), "=m"(*addr)
- : "r"(1), "1"(*addr));
- return oldval;
- }
- inline static void GC_clear(volatile unsigned int *addr) {
- __asm__ __volatile__("st4.rel %0=r0" : "=m" (*addr));
- }
-# define GC_CLEAR_DEFINED
-# endif
-# ifdef M68K
- /* Contributed by Tony Mantler. I'm not sure how well it was */
- /* tested. */
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- char oldval; /* this must be no longer than 8 bits */
-
- /* The return value is semi-phony. */
- /* 'tas' sets bit 7 while the return */
- /* value pretends bit 0 was set */
- __asm__ __volatile__(
- "tas %1@; sne %0; negb %0"
- : "=d" (oldval)
- : "a" (addr));
- return oldval;
- }
-# endif
-# if defined(POWERPC)
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- int temp = 1; // locked value
-
- __asm__ __volatile__(
- "1:\tlwarx %0,0,%3\n" // load and reserve
- "\tcmpwi %0, 0\n" // if load is
- "\tbne 2f\n" // non-zero, return already set
- "\tstwcx. %2,0,%1\n" // else store conditional
- "\tbne- 1b\n" // retry if lost reservation
- "2:\t\n" // oldval is zero if we set
- : "=&r"(oldval), "=p"(addr)
- : "r"(temp), "1"(addr)
- : "memory");
- return (int)oldval;
- }
- inline static void GC_clear(volatile unsigned int *addr) {
- __asm__ __volatile__("eieio");
- *(addr) = 0;
- }
-# define GC_CLEAR_DEFINED
-# endif
-# ifdef ALPHA
- inline static int GC_test_and_set(volatile unsigned int * addr)
- {
- unsigned long oldvalue;
- unsigned long temp;
-
- __asm__ __volatile__(
- "1: ldl_l %0,%1\n"
- " and %0,%3,%2\n"
- " bne %2,2f\n"
- " xor %0,%3,%0\n"
- " stl_c %0,%1\n"
- " beq %0,3f\n"
- " mb\n"
- "2:\n"
- ".section .text2,\"ax\"\n"
- "3: br 1b\n"
- ".previous"
- :"=&r" (temp), "=m" (*addr), "=&r" (oldvalue)
- :"Ir" (1), "m" (*addr));
-
- return oldvalue;
- }
- /* Should probably also define GC_clear, since it needs */
- /* a memory barrier ?? */
-# endif /* ALPHA */
-# ifdef ARM32
- inline static int GC_test_and_set(volatile unsigned int *addr) {
- int oldval;
- /* SWP on ARM is very similar to XCHG on x86. Doesn't lock the
- * bus because there are no SMP ARM machines. If/when there are,
- * this code will likely need to be updated. */
- /* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */
- __asm__ __volatile__("swp %0, %1, [%2]"
- : "=r"(oldval)
- : "r"(1), "r"(addr));
- return oldval;
- }
-# endif
-# ifndef GC_CLEAR_DEFINED
- inline static void GC_clear(volatile unsigned int *addr) {
- /* Try to discourage gcc from moving anything past this. */
- __asm__ __volatile__(" ");
- *(addr) = 0;
- }
-# endif
-
- extern volatile unsigned int GC_allocate_lock;
- extern pthread_t GC_lock_holder;
- extern void GC_lock(void);
- /* Allocation lock holder. Only set if acquired by client through */
- /* GC_call_with_alloc_lock. */
-# define SET_LOCK_HOLDER() GC_lock_holder = pthread_self()
-# define NO_THREAD (pthread_t)(-1)
-# define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD
-# define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self()))
-# define LOCK() \
- { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); }
-# define UNLOCK() \
- GC_clear(&GC_allocate_lock)
- extern VOLATILE GC_bool GC_collecting;
-# define ENTER_GC() \
- { \
- GC_collecting = 1; \
- }
-# define EXIT_GC() GC_collecting = 0;
-# else /* LINUX_THREADS on hardware for which we don't know how */
- /* to do test and set. */
-# include <pthread.h>
- extern pthread_mutex_t GC_allocate_ml;
-# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
-# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
-# endif
-# endif /* LINUX_THREADS */
-# if defined(HPUX_THREADS)
-# include <pthread.h>
- extern pthread_mutex_t GC_allocate_ml;
-# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
-# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
-# endif
-# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS)
- /* This may also eventually be appropriate for HPUX_THREADS */
-# include <pthread.h>
-# ifndef HPUX_THREADS
- /* This probably should never be included, but I can't test */
- /* on Irix anymore. */
-# include <mutex.h>
-# endif
-
-# ifndef HPUX_THREADS
-# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
- || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
-# define GC_test_and_set(addr, v) test_and_set(addr,v)
-# else
-# define GC_test_and_set(addr, v) __test_and_set(addr,v)
-# endif
-# else
- /* I couldn't find a way to do this inline on HP/UX */
-# endif
- extern unsigned long GC_allocate_lock;
- /* This is not a mutex because mutexes that obey the (optional) */
- /* POSIX scheduling rules are subject to convoys in high contention */
- /* applications. This is basically a spin lock. */
- extern pthread_t GC_lock_holder;
- extern void GC_lock(void);
- /* Allocation lock holder. Only set if acquired by client through */
- /* GC_call_with_alloc_lock. */
-# define SET_LOCK_HOLDER() GC_lock_holder = pthread_self()
-# define NO_THREAD (pthread_t)(-1)
-# define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD
-# define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self()))
-# ifdef HPUX_THREADS
-# define LOCK() { if (!GC_test_and_clear(&GC_allocate_lock)) GC_lock(); }
- /* The following is INCORRECT, since the memory model is too weak. */
-# define UNLOCK() { GC_noop1(&GC_allocate_lock); \
- *(volatile unsigned long *)(&GC_allocate_lock) = 1; }
-# else
-# define LOCK() { if (GC_test_and_set(&GC_allocate_lock, 1)) GC_lock(); }
-# if __mips >= 3 && (defined (_ABIN32) || defined(_ABI64)) \
- && defined(_COMPILER_VERSION) && _COMPILER_VERSION >= 700
-# define UNLOCK() __lock_release(&GC_allocate_lock)
-# else
- /* The function call in the following should prevent the */
- /* compiler from moving assignments to below the UNLOCK. */
- /* This is probably not necessary for ucode or gcc 2.8. */
- /* It may be necessary for Ragnarok and future gcc */
- /* versions. */
-# define UNLOCK() { GC_noop1(&GC_allocate_lock); \
- *(volatile unsigned long *)(&GC_allocate_lock) = 0; }
-# endif
-# endif
- extern VOLATILE GC_bool GC_collecting;
-# define ENTER_GC() \
- { \
- GC_collecting = 1; \
- }
-# define EXIT_GC() GC_collecting = 0;
-# endif /* IRIX_THREADS || IRIX_JDK_THREADS */
-# ifdef WIN32_THREADS
-# include <windows.h>
- GC_API CRITICAL_SECTION GC_allocate_ml;
-# define LOCK() EnterCriticalSection(&GC_allocate_ml);
-# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
-# endif
-# ifndef SET_LOCK_HOLDER
-# define SET_LOCK_HOLDER()
-# define UNSET_LOCK_HOLDER()
-# define I_HOLD_LOCK() FALSE
- /* Used on platforms were locks can be reacquired, */
- /* so it doesn't matter if we lie. */
-# endif
-# else
-# define LOCK()
-# define UNLOCK()
-# endif
-# ifndef SET_LOCK_HOLDER
-# define SET_LOCK_HOLDER()
-# define UNSET_LOCK_HOLDER()
-# define I_HOLD_LOCK() FALSE
- /* Used on platforms were locks can be reacquired, */
- /* so it doesn't matter if we lie. */
-# endif
-# ifndef ENTER_GC
-# define ENTER_GC()
-# define EXIT_GC()
-# endif
-
-# ifndef DCL_LOCK_STATE
-# define DCL_LOCK_STATE
-# endif
-# ifndef FASTLOCK
-# define FASTLOCK() LOCK()
-# define FASTLOCK_SUCCEEDED() TRUE
-# define FASTUNLOCK() UNLOCK()
-# endif
-
-/* Delay any interrupts or signals that may abort this thread. Data */
-/* structures are in a consistent state outside this pair of calls. */
-/* ANSI C allows both to be empty (though the standard isn't very */
-/* clear on that point). Standard malloc implementations are usually */
-/* neither interruptable nor thread-safe, and thus correspond to */
-/* empty definitions. */
-# ifdef PCR
-# define DISABLE_SIGNALS() \
- PCR_Th_SetSigMask(PCR_allSigsBlocked,&GC_old_sig_mask)
-# define ENABLE_SIGNALS() \
- PCR_Th_SetSigMask(&GC_old_sig_mask, NIL)
-# else
-# if defined(SRC_M3) || defined(AMIGA) || defined(SOLARIS_THREADS) \
- || defined(MSWIN32) || defined(MACOS) || defined(DJGPP) \
- || defined(NO_SIGNALS) || defined(IRIX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(LINUX_THREADS)
- /* Also useful for debugging. */
- /* Should probably use thr_sigsetmask for SOLARIS_THREADS. */
-# define DISABLE_SIGNALS()
-# define ENABLE_SIGNALS()
-# else
-# define DISABLE_SIGNALS() GC_disable_signals()
- void GC_disable_signals();
-# define ENABLE_SIGNALS() GC_enable_signals()
- void GC_enable_signals();
-# endif
-# endif
-
-/*
- * Stop and restart mutator threads.
- */
-# ifdef PCR
-# include "th/PCR_ThCtl.h"
-# define STOP_WORLD() \
- PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_stopNormal, \
- PCR_allSigsBlocked, \
- PCR_waitForever)
-# define START_WORLD() \
- PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_null, \
- PCR_allSigsBlocked, \
- PCR_waitForever);
-# else
-# if defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \
- || defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- void GC_stop_world();
- void GC_start_world();
-# define STOP_WORLD() GC_stop_world()
-# define START_WORLD() GC_start_world()
-# else
-# define STOP_WORLD()
-# define START_WORLD()
-# endif
-# endif
-
-/* Abandon ship */
-# ifdef PCR
-# define ABORT(s) PCR_Base_Panic(s)
-# else
-# ifdef SMALL_CONFIG
-# define ABORT(msg) abort();
-# else
- GC_API void GC_abort();
-# define ABORT(msg) GC_abort(msg);
-# endif
-# endif
-
-/* Exit abnormally, but without making a mess (e.g. out of memory) */
-# ifdef PCR
-# define EXIT() PCR_Base_Exit(1,PCR_waitForever)
-# else
-# define EXIT() (void)exit(1)
-# endif
-
-/* Print warning message, e.g. almost out of memory. */
-# define WARN(msg,arg) (*GC_current_warn_proc)(msg, (GC_word)(arg))
-extern GC_warn_proc GC_current_warn_proc;
-
-/*********************************/
-/* */
-/* Word-size-dependent defines */
-/* */
-/*********************************/
-
-#if CPP_WORDSZ == 32
-# define WORDS_TO_BYTES(x) ((x)<<2)
-# define BYTES_TO_WORDS(x) ((x)>>2)
-# define LOGWL ((word)5) /* log[2] of CPP_WORDSZ */
-# define modWORDSZ(n) ((n) & 0x1f) /* n mod size of word */
-# if ALIGNMENT != 4
-# define UNALIGNED
-# endif
-#endif
-
-#if CPP_WORDSZ == 64
-# define WORDS_TO_BYTES(x) ((x)<<3)
-# define BYTES_TO_WORDS(x) ((x)>>3)
-# define LOGWL ((word)6) /* log[2] of CPP_WORDSZ */
-# define modWORDSZ(n) ((n) & 0x3f) /* n mod size of word */
-# if ALIGNMENT != 8
-# define UNALIGNED
-# endif
-#endif
-
-#define WORDSZ ((word)CPP_WORDSZ)
-#define SIGNB ((word)1 << (WORDSZ-1))
-#define BYTES_PER_WORD ((word)(sizeof (word)))
-#define ONES ((word)(-1))
-#define divWORDSZ(n) ((n) >> LOGWL) /* divide n by size of word */
-
-/*********************/
-/* */
-/* Size Parameters */
-/* */
-/*********************/
-
-/* heap block size, bytes. Should be power of 2 */
-
-#ifndef HBLKSIZE
-# ifdef SMALL_CONFIG
-# define CPP_LOG_HBLKSIZE 10
-# else
-# if CPP_WORDSZ == 32
-# define CPP_LOG_HBLKSIZE 12
-# else
-# define CPP_LOG_HBLKSIZE 13
-# endif
-# endif
-#else
-# if HBLKSIZE == 512
-# define CPP_LOG_HBLKSIZE 9
-# endif
-# if HBLKSIZE == 1024
-# define CPP_LOG_HBLKSIZE 10
-# endif
-# if HBLKSIZE == 2048
-# define CPP_LOG_HBLKSIZE 11
-# endif
-# if HBLKSIZE == 4096
-# define CPP_LOG_HBLKSIZE 12
-# endif
-# if HBLKSIZE == 8192
-# define CPP_LOG_HBLKSIZE 13
-# endif
-# if HBLKSIZE == 16384
-# define CPP_LOG_HBLKSIZE 14
-# endif
-# ifndef CPP_LOG_HBLKSIZE
- --> fix HBLKSIZE
-# endif
-# undef HBLKSIZE
-#endif
-# define CPP_HBLKSIZE (1 << CPP_LOG_HBLKSIZE)
-# define LOG_HBLKSIZE ((word)CPP_LOG_HBLKSIZE)
-# define HBLKSIZE ((word)CPP_HBLKSIZE)
-
-
-/* max size objects supported by freelist (larger objects may be */
-/* allocated, but less efficiently) */
-
-#define CPP_MAXOBJSZ BYTES_TO_WORDS(CPP_HBLKSIZE/2)
-#define MAXOBJSZ ((word)CPP_MAXOBJSZ)
-
-# define divHBLKSZ(n) ((n) >> LOG_HBLKSIZE)
-
-# define HBLK_PTR_DIFF(p,q) divHBLKSZ((ptr_t)p - (ptr_t)q)
- /* Equivalent to subtracting 2 hblk pointers. */
- /* We do it this way because a compiler should */
- /* find it hard to use an integer division */
- /* instead of a shift. The bundled SunOS 4.1 */
- /* o.w. sometimes pessimizes the subtraction to */
- /* involve a call to .div. */
-
-# define modHBLKSZ(n) ((n) & (HBLKSIZE-1))
-
-# define HBLKPTR(objptr) ((struct hblk *)(((word) (objptr)) & ~(HBLKSIZE-1)))
-
-# define HBLKDISPL(objptr) (((word) (objptr)) & (HBLKSIZE-1))
-
-/* Round up byte allocation requests to integral number of words, etc. */
-# ifdef ADD_BYTE_AT_END
-# define ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1))
-# ifdef ALIGN_DOUBLE
-# define ALIGNED_WORDS(n) (BYTES_TO_WORDS((n) + WORDS_TO_BYTES(2)) & ~1)
-# else
-# define ALIGNED_WORDS(n) ROUNDED_UP_WORDS(n)
-# endif
-# define SMALL_OBJ(bytes) ((bytes) < WORDS_TO_BYTES(MAXOBJSZ))
-# define ADD_SLOP(bytes) ((bytes)+1)
-# else
-# define ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + (WORDS_TO_BYTES(1) - 1))
-# ifdef ALIGN_DOUBLE
-# define ALIGNED_WORDS(n) \
- (BYTES_TO_WORDS((n) + WORDS_TO_BYTES(2) - 1) & ~1)
-# else
-# define ALIGNED_WORDS(n) ROUNDED_UP_WORDS(n)
-# endif
-# define SMALL_OBJ(bytes) ((bytes) <= WORDS_TO_BYTES(MAXOBJSZ))
-# define ADD_SLOP(bytes) (bytes)
-# endif
-
-
-/*
- * Hash table representation of sets of pages. This assumes it is
- * OK to add spurious entries to sets.
- * Used by black-listing code, and perhaps by dirty bit maintenance code.
- */
-
-# ifdef LARGE_CONFIG
-# define LOG_PHT_ENTRIES 17
-# else
-# define LOG_PHT_ENTRIES 14 /* Collisions are likely if heap grows */
- /* to more than 16K hblks = 64MB. */
- /* Each hash table occupies 2K bytes. */
-# endif
-# define PHT_ENTRIES ((word)1 << LOG_PHT_ENTRIES)
-# define PHT_SIZE (PHT_ENTRIES >> LOGWL)
-typedef word page_hash_table[PHT_SIZE];
-
-# define PHT_HASH(addr) ((((word)(addr)) >> LOG_HBLKSIZE) & (PHT_ENTRIES - 1))
-
-# define get_pht_entry_from_index(bl, index) \
- (((bl)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
-# define set_pht_entry_from_index(bl, index) \
- (bl)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
-# define clear_pht_entry_from_index(bl, index) \
- (bl)[divWORDSZ(index)] &= ~((word)1 << modWORDSZ(index))
-
-
-
-/********************************************/
-/* */
-/* H e a p B l o c k s */
-/* */
-/********************************************/
-
-/* heap block header */
-#define HBLKMASK (HBLKSIZE-1)
-
-#define BITS_PER_HBLK (HBLKSIZE * 8)
-
-#define MARK_BITS_PER_HBLK (BITS_PER_HBLK/CPP_WORDSZ)
- /* upper bound */
- /* We allocate 1 bit/word. Only the first word */
- /* in each object is actually marked. */
-
-# ifdef ALIGN_DOUBLE
-# define MARK_BITS_SZ (((MARK_BITS_PER_HBLK + 2*CPP_WORDSZ - 1) \
- / (2*CPP_WORDSZ))*2)
-# else
-# define MARK_BITS_SZ ((MARK_BITS_PER_HBLK + CPP_WORDSZ - 1)/CPP_WORDSZ)
-# endif
- /* Upper bound on number of mark words per heap block */
-
-struct hblkhdr {
- word hb_sz; /* If in use, size in words, of objects in the block. */
- /* if free, the size in bytes of the whole block */
- struct hblk * hb_next; /* Link field for hblk free list */
- /* and for lists of chunks waiting to be */
- /* reclaimed. */
- struct hblk * hb_prev; /* Backwards link for free list. */
- word hb_descr; /* object descriptor for marking. See */
- /* mark.h. */
- char* hb_map; /* A pointer to a pointer validity map of the block. */
- /* See GC_obj_map. */
- /* Valid for all blocks with headers. */
- /* Free blocks point to GC_invalid_map. */
- unsigned char hb_obj_kind;
- /* Kind of objects in the block. Each kind */
- /* identifies a mark procedure and a set of */
- /* list headers. Sometimes called regions. */
- unsigned char hb_flags;
-# define IGNORE_OFF_PAGE 1 /* Ignore pointers that do not */
- /* point to the first page of */
- /* this object. */
-# define WAS_UNMAPPED 2 /* This is a free block, which has */
- /* been unmapped from the address */
- /* space. */
- /* GC_remap must be invoked on it */
- /* before it can be reallocated. */
- /* Only set with USE_MUNMAP. */
- unsigned short hb_last_reclaimed;
- /* Value of GC_gc_no when block was */
- /* last allocated or swept. May wrap. */
- /* For a free block, this is maintained */
- /* unly for USE_MUNMAP, and indicates */
- /* when the header was allocated, or */
- /* when the size of the block last */
- /* changed. */
- word hb_marks[MARK_BITS_SZ];
- /* Bit i in the array refers to the */
- /* object starting at the ith word (header */
- /* INCLUDED) in the heap block. */
- /* The lsb of word 0 is numbered 0. */
- /* Unused bits are invalid, and are */
- /* occasionally set, e.g for uncollectable */
- /* objects. */
-};
-
-/* heap block body */
-
-# define DISCARD_WORDS 0
- /* Number of words to be dropped at the beginning of each block */
- /* Must be a multiple of WORDSZ. May reasonably be nonzero */
- /* on machines that don't guarantee longword alignment of */
- /* pointers, so that the number of false hits is minimized. */
- /* 0 and WORDSZ are probably the only reasonable values. */
-
-# define BODY_SZ ((HBLKSIZE-WORDS_TO_BYTES(DISCARD_WORDS))/sizeof(word))
-
-struct hblk {
-# if (DISCARD_WORDS != 0)
- word garbage[DISCARD_WORDS];
-# endif
- word hb_body[BODY_SZ];
-};
-
-# define HDR_WORDS ((word)DISCARD_WORDS)
-# define HDR_BYTES ((word)WORDS_TO_BYTES(DISCARD_WORDS))
-
-# define OBJ_SZ_TO_BLOCKS(sz) \
- divHBLKSZ(HDR_BYTES + WORDS_TO_BYTES(sz) + HBLKSIZE-1)
- /* Size of block (in units of HBLKSIZE) needed to hold objects of */
- /* given sz (in words). */
-
-/* Object free list link */
-# define obj_link(p) (*(ptr_t *)(p))
-
-/* The type of mark procedures. This really belongs in gc_mark.h. */
-/* But we put it here, so that we can avoid scanning the mark proc */
-/* table. */
-typedef struct ms_entry * (*mark_proc)(/* word * addr,
- struct ms_entry *mark_stack_ptr,
- struct ms_entry *mark_stack_limit,
- word env */);
-# define LOG_MAX_MARK_PROCS 6
-# define MAX_MARK_PROCS (1 << LOG_MAX_MARK_PROCS)
-
-/* Root sets. Logically private to mark_rts.c. But we don't want the */
-/* tables scanned, so we put them here. */
-/* MAX_ROOT_SETS is the maximum number of ranges that can be */
-/* registered as static roots. */
-# ifdef LARGE_CONFIG
-# define MAX_ROOT_SETS 4096
-# else
-# ifdef PCR
-# define MAX_ROOT_SETS 1024
-# else
-# ifdef MSWIN32
-# define MAX_ROOT_SETS 512
- /* Under NT, we add only written pages, which can result */
- /* in many small root sets. */
-# else
-# define MAX_ROOT_SETS 64
-# endif
-# endif
-# endif
-
-# define MAX_EXCLUSIONS (MAX_ROOT_SETS/4)
-/* Maximum number of segments that can be excluded from root sets. */
-
-/*
- * Data structure for excluded static roots.
- */
-struct exclusion {
- ptr_t e_start;
- ptr_t e_end;
-};
-
-/* Data structure for list of root sets. */
-/* We keep a hash table, so that we can filter out duplicate additions. */
-/* Under Win32, we need to do a better job of filtering overlaps, so */
-/* we resort to sequential search, and pay the price. */
-struct roots {
- ptr_t r_start;
- ptr_t r_end;
-# ifndef MSWIN32
- struct roots * r_next;
-# endif
- GC_bool r_tmp;
- /* Delete before registering new dynamic libraries */
-};
-
-#ifndef MSWIN32
- /* Size of hash table index to roots. */
-# define LOG_RT_SIZE 6
-# define RT_SIZE (1 << LOG_RT_SIZE) /* Power of 2, may be != MAX_ROOT_SETS */
-#endif
-
-/* Lists of all heap blocks and free lists */
-/* as well as other random data structures */
-/* that should not be scanned by the */
-/* collector. */
-/* These are grouped together in a struct */
-/* so that they can be easily skipped by the */
-/* GC_mark routine. */
-/* The ordering is weird to make GC_malloc */
-/* faster by keeping the important fields */
-/* sufficiently close together that a */
-/* single load of a base register will do. */
-/* Scalars that could easily appear to */
-/* be pointers are also put here. */
-/* The main fields should precede any */
-/* conditionally included fields, so that */
-/* gc_inl.h will work even if a different set */
-/* of macros is defined when the client is */
-/* compiled. */
-
-struct _GC_arrays {
- word _heapsize;
- word _max_heapsize;
- word _requested_heapsize; /* Heap size due to explicit expansion */
- ptr_t _last_heap_addr;
- ptr_t _prev_heap_addr;
- word _large_free_bytes;
- /* Total bytes contained in blocks on large object free */
- /* list. */
- word _words_allocd_before_gc;
- /* Number of words allocated before this */
- /* collection cycle. */
- word _words_allocd;
- /* Number of words allocated during this collection cycle */
- word _words_wasted;
- /* Number of words wasted due to internal fragmentation */
- /* in large objects, or due to dropping blacklisted */
- /* blocks, since last gc. Approximate. */
- word _words_finalized;
- /* Approximate number of words in objects (and headers) */
- /* That became ready for finalization in the last */
- /* collection. */
- word _non_gc_bytes_at_gc;
- /* Number of explicitly managed bytes of storage */
- /* at last collection. */
- word _mem_freed;
- /* Number of explicitly deallocated words of memory */
- /* since last collection. */
- ptr_t _scratch_end_ptr;
- ptr_t _scratch_last_end_ptr;
- /* Used by headers.c, and can easily appear to point to */
- /* heap. */
- mark_proc _mark_procs[MAX_MARK_PROCS];
- /* Table of user-defined mark procedures. There is */
- /* a small number of these, which can be referenced */
- /* by DS_PROC mark descriptors. See gc_mark.h. */
- ptr_t _objfreelist[MAXOBJSZ+1];
- /* free list for objects */
- ptr_t _aobjfreelist[MAXOBJSZ+1];
- /* free list for atomic objs */
-
- ptr_t _uobjfreelist[MAXOBJSZ+1];
- /* uncollectable but traced objs */
- /* objects on this and auobjfreelist */
- /* are always marked, except during */
- /* garbage collections. */
-# ifdef ATOMIC_UNCOLLECTABLE
- ptr_t _auobjfreelist[MAXOBJSZ+1];
-# endif
- /* uncollectable but traced objs */
-
-# ifdef GATHERSTATS
- word _composite_in_use;
- /* Number of words in accessible composite */
- /* objects. */
- word _atomic_in_use;
- /* Number of words in accessible atomic */
- /* objects. */
-# endif
-# ifdef USE_MUNMAP
- word _unmapped_bytes;
-# endif
-# ifdef MERGE_SIZES
- unsigned _size_map[WORDS_TO_BYTES(MAXOBJSZ+1)];
- /* Number of words to allocate for a given allocation request in */
- /* bytes. */
-# endif
-
-# ifdef STUBBORN_ALLOC
- ptr_t _sobjfreelist[MAXOBJSZ+1];
-# endif
- /* free list for immutable objects */
- ptr_t _obj_map[MAXOBJSZ+1];
- /* If not NIL, then a pointer to a map of valid */
- /* object addresses. _obj_map[sz][i] is j if the */
- /* address block_start+i is a valid pointer */
- /* to an object at */
- /* block_start+i&~3 - WORDS_TO_BYTES(j). */
- /* (If ALL_INTERIOR_POINTERS is defined, then */
- /* instead ((short *)(hb_map[sz])[i] is j if */
- /* block_start+WORDS_TO_BYTES(i) is in the */
- /* interior of an object starting at */
- /* block_start+WORDS_TO_BYTES(i-j)). */
- /* It is OBJ_INVALID if */
- /* block_start+WORDS_TO_BYTES(i) is not */
- /* valid as a pointer to an object. */
- /* We assume all values of j <= OBJ_INVALID. */
- /* The zeroth entry corresponds to large objects.*/
-# ifdef ALL_INTERIOR_POINTERS
-# define map_entry_type short
-# define OBJ_INVALID 0x7fff
-# define MAP_ENTRY(map, bytes) \
- (((map_entry_type *)(map))[BYTES_TO_WORDS(bytes)])
-# define MAP_ENTRIES BYTES_TO_WORDS(HBLKSIZE)
-# define MAP_SIZE (MAP_ENTRIES * sizeof(map_entry_type))
-# define OFFSET_VALID(displ) TRUE
-# define CPP_MAX_OFFSET (HBLKSIZE - HDR_BYTES - 1)
-# define MAX_OFFSET ((word)CPP_MAX_OFFSET)
-# else
-# define map_entry_type char
-# define OBJ_INVALID 0x7f
-# define MAP_ENTRY(map, bytes) \
- (map)[bytes]
-# define MAP_ENTRIES HBLKSIZE
-# define MAP_SIZE MAP_ENTRIES
-# define CPP_MAX_OFFSET (WORDS_TO_BYTES(OBJ_INVALID) - 1)
-# define MAX_OFFSET ((word)CPP_MAX_OFFSET)
-# define VALID_OFFSET_SZ \
- (CPP_MAX_OFFSET > WORDS_TO_BYTES(CPP_MAXOBJSZ)? \
- CPP_MAX_OFFSET+1 \
- : WORDS_TO_BYTES(CPP_MAXOBJSZ)+1)
- char _valid_offsets[VALID_OFFSET_SZ];
- /* GC_valid_offsets[i] == TRUE ==> i */
- /* is registered as a displacement. */
-# define OFFSET_VALID(displ) GC_valid_offsets[displ]
- char _modws_valid_offsets[sizeof(word)];
- /* GC_valid_offsets[i] ==> */
- /* GC_modws_valid_offsets[i%sizeof(word)] */
-# endif
-# ifdef STUBBORN_ALLOC
- page_hash_table _changed_pages;
- /* Stubborn object pages that were changes since last call to */
- /* GC_read_changed. */
- page_hash_table _prev_changed_pages;
- /* Stubborn object pages that were changes before last call to */
- /* GC_read_changed. */
-# endif
-# if defined(PROC_VDB) || defined(MPROTECT_VDB)
- page_hash_table _grungy_pages; /* Pages that were dirty at last */
- /* GC_read_dirty. */
-# endif
-# ifdef MPROTECT_VDB
- VOLATILE page_hash_table _dirty_pages;
- /* Pages dirtied since last GC_read_dirty. */
-# endif
-# ifdef PROC_VDB
- page_hash_table _written_pages; /* Pages ever dirtied */
-# endif
-# ifdef LARGE_CONFIG
-# if CPP_WORDSZ > 32
-# define MAX_HEAP_SECTS 4096 /* overflows at roughly 64 GB */
-# else
-# define MAX_HEAP_SECTS 768 /* Separately added heap sections. */
-# endif
-# else
-# define MAX_HEAP_SECTS 256
-# endif
- struct HeapSect {
- ptr_t hs_start; word hs_bytes;
- } _heap_sects[MAX_HEAP_SECTS];
-# ifdef MSWIN32
- ptr_t _heap_bases[MAX_HEAP_SECTS];
- /* Start address of memory regions obtained from kernel. */
-# endif
- struct roots _static_roots[MAX_ROOT_SETS];
-# ifndef MSWIN32
- struct roots * _root_index[RT_SIZE];
-# endif
- struct exclusion _excl_table[MAX_EXCLUSIONS];
- /* Block header index; see gc_headers.h */
- bottom_index * _all_nils;
- bottom_index * _top_index [TOP_SZ];
-#ifdef SAVE_CALL_CHAIN
- struct callinfo _last_stack[NFRAMES]; /* Stack at last garbage collection.*/
- /* Useful for debugging mysterious */
- /* object disappearances. */
- /* In the multithreaded case, we */
- /* currently only save the calling */
- /* stack. */
-#endif
-};
-
-GC_API GC_FAR struct _GC_arrays GC_arrays;
-
-# define GC_objfreelist GC_arrays._objfreelist
-# define GC_aobjfreelist GC_arrays._aobjfreelist
-# define GC_uobjfreelist GC_arrays._uobjfreelist
-# ifdef ATOMIC_UNCOLLECTABLE
-# define GC_auobjfreelist GC_arrays._auobjfreelist
-# endif
-# define GC_sobjfreelist GC_arrays._sobjfreelist
-# define GC_valid_offsets GC_arrays._valid_offsets
-# define GC_modws_valid_offsets GC_arrays._modws_valid_offsets
-# ifdef STUBBORN_ALLOC
-# define GC_changed_pages GC_arrays._changed_pages
-# define GC_prev_changed_pages GC_arrays._prev_changed_pages
-# endif
-# define GC_obj_map GC_arrays._obj_map
-# define GC_last_heap_addr GC_arrays._last_heap_addr
-# define GC_prev_heap_addr GC_arrays._prev_heap_addr
-# define GC_words_allocd GC_arrays._words_allocd
-# define GC_words_wasted GC_arrays._words_wasted
-# define GC_large_free_bytes GC_arrays._large_free_bytes
-# define GC_words_finalized GC_arrays._words_finalized
-# define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc
-# define GC_mem_freed GC_arrays._mem_freed
-# define GC_scratch_end_ptr GC_arrays._scratch_end_ptr
-# define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr
-# define GC_mark_procs GC_arrays._mark_procs
-# define GC_heapsize GC_arrays._heapsize
-# define GC_max_heapsize GC_arrays._max_heapsize
-# define GC_requested_heapsize GC_arrays._requested_heapsize
-# define GC_words_allocd_before_gc GC_arrays._words_allocd_before_gc
-# define GC_heap_sects GC_arrays._heap_sects
-# define GC_last_stack GC_arrays._last_stack
-# ifdef USE_MUNMAP
-# define GC_unmapped_bytes GC_arrays._unmapped_bytes
-# endif
-# ifdef MSWIN32
-# define GC_heap_bases GC_arrays._heap_bases
-# endif
-# define GC_static_roots GC_arrays._static_roots
-# define GC_root_index GC_arrays._root_index
-# define GC_excl_table GC_arrays._excl_table
-# define GC_all_nils GC_arrays._all_nils
-# define GC_top_index GC_arrays._top_index
-# if defined(PROC_VDB) || defined(MPROTECT_VDB)
-# define GC_grungy_pages GC_arrays._grungy_pages
-# endif
-# ifdef MPROTECT_VDB
-# define GC_dirty_pages GC_arrays._dirty_pages
-# endif
-# ifdef PROC_VDB
-# define GC_written_pages GC_arrays._written_pages
-# endif
-# ifdef GATHERSTATS
-# define GC_composite_in_use GC_arrays._composite_in_use
-# define GC_atomic_in_use GC_arrays._atomic_in_use
-# endif
-# ifdef MERGE_SIZES
-# define GC_size_map GC_arrays._size_map
-# endif
-
-# define beginGC_arrays ((ptr_t)(&GC_arrays))
-# define endGC_arrays (((ptr_t)(&GC_arrays)) + (sizeof GC_arrays))
-
-#define USED_HEAP_SIZE (GC_heapsize - GC_large_free_bytes)
-
-/* Object kinds: */
-# define MAXOBJKINDS 16
-
-extern struct obj_kind {
- ptr_t *ok_freelist; /* Array of free listheaders for this kind of object */
- /* Point either to GC_arrays or to storage allocated */
- /* with GC_scratch_alloc. */
- struct hblk **ok_reclaim_list;
- /* List headers for lists of blocks waiting to be */
- /* swept. */
- word ok_descriptor; /* Descriptor template for objects in this */
- /* block. */
- GC_bool ok_relocate_descr;
- /* Add object size in bytes to descriptor */
- /* template to obtain descriptor. Otherwise */
- /* template is used as is. */
- GC_bool ok_init; /* Clear objects before putting them on the free list. */
-} GC_obj_kinds[MAXOBJKINDS];
-
-# define endGC_obj_kinds (((ptr_t)(&GC_obj_kinds)) + (sizeof GC_obj_kinds))
-
-# define end_gc_area ((ptr_t)endGC_arrays == (ptr_t)(&GC_obj_kinds) ? \
- endGC_obj_kinds : endGC_arrays)
-
-/* Predefined kinds: */
-# define PTRFREE 0
-# define NORMAL 1
-# define UNCOLLECTABLE 2
-# ifdef ATOMIC_UNCOLLECTABLE
-# define AUNCOLLECTABLE 3
-# define STUBBORN 4
-# define IS_UNCOLLECTABLE(k) (((k) & ~1) == UNCOLLECTABLE)
-# else
-# define STUBBORN 3
-# define IS_UNCOLLECTABLE(k) ((k) == UNCOLLECTABLE)
-# endif
-
-extern int GC_n_kinds;
-
-GC_API word GC_fo_entries;
-
-extern word GC_n_heap_sects; /* Number of separately added heap */
- /* sections. */
-
-extern word GC_page_size;
-
-# ifdef MSWIN32
-extern word GC_n_heap_bases; /* See GC_heap_bases. */
-# endif
-
-extern word GC_total_stack_black_listed;
- /* Number of bytes on stack blacklist. */
-
-extern word GC_black_list_spacing;
- /* Average number of bytes between blacklisted */
- /* blocks. Approximate. */
- /* Counts only blocks that are */
- /* "stack-blacklisted", i.e. that are */
- /* problematic in the interior of an object. */
-
-extern char * GC_invalid_map;
- /* Pointer to the nowhere valid hblk map */
- /* Blocks pointing to this map are free. */
-
-extern struct hblk * GC_hblkfreelist[];
- /* List of completely empty heap blocks */
- /* Linked through hb_next field of */
- /* header structure associated with */
- /* block. */
-
-extern GC_bool GC_is_initialized; /* GC_init() has been run. */
-
-extern GC_bool GC_objects_are_marked; /* There are marked objects in */
- /* the heap. */
-
-#ifndef SMALL_CONFIG
- extern GC_bool GC_incremental;
- /* Using incremental/generational collection. */
-#else
-# define GC_incremental FALSE
- /* Hopefully allow optimizer to remove some code. */
-#endif
-
-extern GC_bool GC_dirty_maintained;
- /* Dirty bits are being maintained, */
- /* either for incremental collection, */
- /* or to limit the root set. */
-
-extern word GC_root_size; /* Total size of registered root sections */
-
-extern GC_bool GC_debugging_started; /* GC_debug_malloc has been called. */
-
-extern ptr_t GC_least_plausible_heap_addr;
-extern ptr_t GC_greatest_plausible_heap_addr;
- /* Bounds on the heap. Guaranteed valid */
- /* Likely to include future heap expansion. */
-
-/* Operations */
-# ifndef abs
-# define abs(x) ((x) < 0? (-(x)) : (x))
-# endif
-
-
-/* Marks are in a reserved area in */
-/* each heap block. Each word has one mark bit associated */
-/* with it. Only those corresponding to the beginning of an */
-/* object are used. */
-
-
-/* Mark bit operations */
-
-/*
- * Retrieve, set, clear the mark bit corresponding
- * to the nth word in a given heap block.
- *
- * (Recall that bit n corresponds to object beginning at word n
- * relative to the beginning of the block, including unused words)
- */
-
-# define mark_bit_from_hdr(hhdr,n) (((hhdr)->hb_marks[divWORDSZ(n)] \
- >> (modWORDSZ(n))) & (word)1)
-# define set_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \
- |= (word)1 << modWORDSZ(n)
-
-# define clear_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \
- &= ~((word)1 << modWORDSZ(n))
-
-/* Important internal collector routines */
-
-ptr_t GC_approx_sp();
-
-GC_bool GC_should_collect();
-
-void GC_apply_to_all_blocks(/*fn, client_data*/);
- /* Invoke fn(hbp, client_data) for each */
- /* allocated heap block. */
-struct hblk * GC_next_used_block(/* struct hblk * h */);
- /* Return first in-use block >= h */
-struct hblk * GC_prev_block(/* struct hblk * h */);
- /* Return last block <= h. Returned block */
- /* is managed by GC, but may or may not be in */
- /* use. */
-void GC_mark_init();
-void GC_clear_marks(); /* Clear mark bits for all heap objects. */
-void GC_invalidate_mark_state(); /* Tell the marker that marked */
- /* objects may point to unmarked */
- /* ones, and roots may point to */
- /* unmarked objects. */
- /* Reset mark stack. */
-void GC_mark_from_mark_stack(); /* Mark from everything on the mark stack. */
- /* Return after about one pages worth of */
- /* work. */
-GC_bool GC_mark_stack_empty();
-GC_bool GC_mark_some(/* cold_gc_frame */);
- /* Perform about one pages worth of marking */
- /* work of whatever kind is needed. Returns */
- /* quickly if no collection is in progress. */
- /* Return TRUE if mark phase finished. */
-void GC_initiate_gc(); /* initiate collection. */
- /* If the mark state is invalid, this */
- /* becomes full colleection. Otherwise */
- /* it's partial. */
-void GC_push_all(/*b,t*/); /* Push everything in a range */
- /* onto mark stack. */
-void GC_push_dirty(/*b,t*/); /* Push all possibly changed */
- /* subintervals of [b,t) onto */
- /* mark stack. */
-#ifndef SMALL_CONFIG
- void GC_push_conditional(/* ptr_t b, ptr_t t, GC_bool all*/);
-#else
-# define GC_push_conditional(b, t, all) GC_push_all(b, t)
-#endif
- /* Do either of the above, depending */
- /* on the third arg. */
-void GC_push_all_stack(/*b,t*/); /* As above, but consider */
- /* interior pointers as valid */
-void GC_push_all_eager(/*b,t*/); /* Same as GC_push_all_stack, but */
- /* ensures that stack is scanned */
- /* immediately, not just scheduled */
- /* for scanning. */
-#ifndef THREADS
- void GC_push_all_stack_partially_eager(/* bottom, top, cold_gc_frame */);
- /* Similar to GC_push_all_eager, but only the */
- /* part hotter than cold_gc_frame is scanned */
- /* immediately. Needed to endure that callee- */
- /* save registers are not missed. */
-#else
- /* In the threads case, we push part of the current thread stack */
- /* with GC_push_all_eager when we push the registers. This gets the */
- /* callee-save registers that may disappear. The remainder of the */
- /* stacks are scheduled for scanning in *GC_push_other_roots, which */
- /* is thread-package-specific. */
-#endif
-void GC_push_current_stack(/* ptr_t cold_gc_frame */);
- /* Push enough of the current stack eagerly to */
- /* ensure that callee-save registers saved in */
- /* GC frames are scanned. */
- /* In the non-threads case, schedule entire */
- /* stack for scanning. */
-void GC_push_roots(/* GC_bool all, ptr_t cold_gc_frame */);
- /* Push all or dirty roots. */
-extern void (*GC_push_other_roots)();
- /* Push system or application specific roots */
- /* onto the mark stack. In some environments */
- /* (e.g. threads environments) this is */
- /* predfined to be non-zero. A client supplied */
- /* replacement should also call the original */
- /* function. */
-extern void (*GC_start_call_back)(/* void */);
- /* Called at start of full collections. */
- /* Not called if 0. Called with allocation */
- /* lock held. */
- /* 0 by default. */
-void GC_push_regs(); /* Push register contents onto mark stack. */
- /* If NURSERY is defined, the default push */
- /* action can be overridden with GC_push_proc */
-void GC_remark(); /* Mark from all marked objects. Used */
- /* only if we had to drop something. */
-
-# ifdef NURSERY
- extern void (*GC_push_proc)(ptr_t);
-# endif
-# if defined(MSWIN32)
- void __cdecl GC_push_one();
-# else
- void GC_push_one(/*p*/); /* If p points to an object, mark it */
- /* and push contents on the mark stack */
-# endif
-void GC_push_one_checked(/*p*/); /* Ditto, omits plausibility test */
-void GC_push_marked(/* struct hblk h, hdr * hhdr */);
- /* Push contents of all marked objects in h onto */
- /* mark stack. */
-#ifdef SMALL_CONFIG
-# define GC_push_next_marked_dirty(h) GC_push_next_marked(h)
-#else
- struct hblk * GC_push_next_marked_dirty(/* h */);
- /* Invoke GC_push_marked on next dirty block above h. */
- /* Return a pointer just past the end of this block. */
-#endif /* !SMALL_CONFIG */
-struct hblk * GC_push_next_marked(/* h */);
- /* Ditto, but also mark from clean pages. */
-struct hblk * GC_push_next_marked_uncollectable(/* h */);
- /* Ditto, but mark only from uncollectable pages. */
-GC_bool GC_stopped_mark(); /* Stop world and mark from all roots */
- /* and rescuers. */
-void GC_clear_hdr_marks(/* hhdr */); /* Clear the mark bits in a header */
-void GC_set_hdr_marks(/* hhdr */); /* Set the mark bits in a header */
-void GC_add_roots_inner();
-GC_bool GC_is_static_root(/* ptr_t p */);
- /* Is the address p in one of the registered static */
- /* root sections? */
-void GC_register_dynamic_libraries();
- /* Add dynamic library data sections to the root set. */
-
-/* Machine dependent startup routines */
-ptr_t GC_get_stack_base();
-void GC_register_data_segments();
-
-/* Black listing: */
-void GC_bl_init();
-# ifndef ALL_INTERIOR_POINTERS
- void GC_add_to_black_list_normal(/* bits, maybe source */);
- /* Register bits as a possible future false */
- /* reference from the heap or static data */
-# ifdef PRINT_BLACK_LIST
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_normal(bits, source)
-# else
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_normal(bits)
-# endif
-# else
-# ifdef PRINT_BLACK_LIST
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_stack(bits, source)
-# else
-# define GC_ADD_TO_BLACK_LIST_NORMAL(bits, source) \
- GC_add_to_black_list_stack(bits)
-# endif
-# endif
-
-void GC_add_to_black_list_stack(/* bits, maybe source */);
-struct hblk * GC_is_black_listed(/* h, len */);
- /* If there are likely to be false references */
- /* to a block starting at h of the indicated */
- /* length, then return the next plausible */
- /* starting location for h that might avoid */
- /* these false references. */
-void GC_promote_black_lists();
- /* Declare an end to a black listing phase. */
-void GC_unpromote_black_lists();
- /* Approximately undo the effect of the above. */
- /* This actually loses some information, but */
- /* only in a reasonably safe way. */
-word GC_number_stack_black_listed(/*struct hblk *start, struct hblk *endp1 */);
- /* Return the number of (stack) blacklisted */
- /* blocks in the range for statistical */
- /* purposes. */
-
-ptr_t GC_scratch_alloc(/*bytes*/);
- /* GC internal memory allocation for */
- /* small objects. Deallocation is not */
- /* possible. */
-
-/* Heap block layout maps: */
-void GC_invalidate_map(/* hdr */);
- /* Remove the object map associated */
- /* with the block. This identifies */
- /* the block as invalid to the mark */
- /* routines. */
-GC_bool GC_add_map_entry(/*sz*/);
- /* Add a heap block map for objects of */
- /* size sz to obj_map. */
- /* Return FALSE on failure. */
-void GC_register_displacement_inner(/*offset*/);
- /* Version of GC_register_displacement */
- /* that assumes lock is already held */
- /* and signals are already disabled. */
-
-/* hblk allocation: */
-void GC_new_hblk(/*size_in_words, kind*/);
- /* Allocate a new heap block, and build */
- /* a free list in it. */
-struct hblk * GC_allochblk(/*size_in_words, kind*/);
- /* Allocate a heap block, clear it if */
- /* for composite objects, inform */
- /* the marker that block is valid */
- /* for objects of indicated size. */
- /* sz < 0 ==> atomic. */
-void GC_freehblk(); /* Deallocate a heap block and mark it */
- /* as invalid. */
-
-/* Misc GC: */
-void GC_init_inner();
-GC_bool GC_expand_hp_inner();
-void GC_start_reclaim(/*abort_if_found*/);
- /* Restore unmarked objects to free */
- /* lists, or (if abort_if_found is */
- /* TRUE) report them. */
- /* Sweeping of small object pages is */
- /* largely deferred. */
-void GC_continue_reclaim(/*size, kind*/);
- /* Sweep pages of the given size and */
- /* kind, as long as possible, and */
- /* as long as the corr. free list is */
- /* empty. */
-void GC_reclaim_or_delete_all();
- /* Arrange for all reclaim lists to be */
- /* empty. Judiciously choose between */
- /* sweeping and discarding each page. */
-GC_bool GC_reclaim_all(/* GC_stop_func f*/);
- /* Reclaim all blocks. Abort (in a */
- /* consistent state) if f returns TRUE. */
-GC_bool GC_block_empty(/* hhdr */); /* Block completely unmarked? */
-GC_bool GC_never_stop_func(); /* Returns FALSE. */
-GC_bool GC_try_to_collect_inner(/* GC_stop_func f */);
- /* Collect; caller must have acquired */
- /* lock and disabled signals. */
- /* Collection is aborted if f returns */
- /* TRUE. Returns TRUE if it completes */
- /* successfully. */
-# define GC_gcollect_inner() \
- (void) GC_try_to_collect_inner(GC_never_stop_func)
-void GC_finish_collection(); /* Finish collection. Mark bits are */
- /* consistent and lock is still held. */
-GC_bool GC_collect_or_expand(/* needed_blocks */);
- /* Collect or expand heap in an attempt */
- /* make the indicated number of free */
- /* blocks available. Should be called */
- /* until the blocks are available or */
- /* until it fails by returning FALSE. */
-GC_API void GC_init(); /* Initialize collector. */
-void GC_collect_a_little_inner(/* int n */);
- /* Do n units worth of garbage */
- /* collection work, if appropriate. */
- /* A unit is an amount appropriate for */
- /* HBLKSIZE bytes of allocation. */
-ptr_t GC_generic_malloc(/* bytes, kind */);
- /* Allocate an object of the given */
- /* kind. By default, there are only */
- /* a few kinds: composite(pointerfree), */
- /* atomic, uncollectable, etc. */
- /* We claim it's possible for clever */
- /* client code that understands GC */
- /* internals to add more, e.g. to */
- /* communicate object layout info */
- /* to the collector. */
-ptr_t GC_generic_malloc_ignore_off_page(/* bytes, kind */);
- /* As above, but pointers past the */
- /* first page of the resulting object */
- /* are ignored. */
-ptr_t GC_generic_malloc_inner(/* bytes, kind */);
- /* Ditto, but I already hold lock, etc. */
-ptr_t GC_generic_malloc_words_small GC_PROTO((size_t words, int kind));
- /* As above, but size in units of words */
- /* Bypasses MERGE_SIZES. Assumes */
- /* words <= MAXOBJSZ. */
-ptr_t GC_generic_malloc_inner_ignore_off_page(/* bytes, kind */);
- /* Allocate an object, where */
- /* the client guarantees that there */
- /* will always be a pointer to the */
- /* beginning of the object while the */
- /* object is live. */
-ptr_t GC_allocobj(/* sz_inn_words, kind */);
- /* Make the indicated */
- /* free list nonempty, and return its */
- /* head. */
-
-void GC_init_headers();
-struct hblkhdr * GC_install_header(/*h*/);
- /* Install a header for block h. */
- /* Return 0 on failure, or the header */
- /* otherwise. */
-GC_bool GC_install_counts(/*h, sz*/);
- /* Set up forwarding counts for block */
- /* h of size sz. */
- /* Return FALSE on failure. */
-void GC_remove_header(/*h*/);
- /* Remove the header for block h. */
-void GC_remove_counts(/*h, sz*/);
- /* Remove forwarding counts for h. */
-hdr * GC_find_header(/*p*/); /* Debugging only. */
-
-void GC_finalize(); /* Perform all indicated finalization actions */
- /* on unmarked objects. */
- /* Unreachable finalizable objects are enqueued */
- /* for processing by GC_invoke_finalizers. */
- /* Invoked with lock. */
-
-void GC_add_to_heap(/*p, bytes*/);
- /* Add a HBLKSIZE aligned chunk to the heap. */
-
-void GC_print_obj(/* ptr_t p */);
- /* P points to somewhere inside an object with */
- /* debugging info. Print a human readable */
- /* description of the object to stderr. */
-extern void (*GC_check_heap)();
- /* Check that all objects in the heap with */
- /* debugging info are intact. Print */
- /* descriptions of any that are not. */
-extern void (*GC_print_heap_obj)(/* ptr_t p */);
- /* If possible print s followed by a more */
- /* detailed description of the object */
- /* referred to by p. */
-
-/* Memory unmapping: */
-#ifdef USE_MUNMAP
- void GC_unmap_old(void);
- void GC_merge_unmapped(void);
- void GC_unmap(ptr_t start, word bytes);
- void GC_remap(ptr_t start, word bytes);
- void GC_unmap_gap(ptr_t start1, word bytes1, ptr_t start2, word bytes2);
-#endif
-
-/* Virtual dirty bit implementation: */
-/* Each implementation exports the following: */
-void GC_read_dirty(); /* Retrieve dirty bits. */
-GC_bool GC_page_was_dirty(/* struct hblk * h */);
- /* Read retrieved dirty bits. */
-GC_bool GC_page_was_ever_dirty(/* struct hblk * h */);
- /* Could the page contain valid heap pointers? */
-void GC_is_fresh(/* struct hblk * h, word number_of_blocks */);
- /* Assert the region currently contains no */
- /* valid pointers. */
-void GC_write_hint(/* struct hblk * h */);
- /* h is about to be written. */
-void GC_dirty_init();
-
-/* Slow/general mark bit manipulation: */
-GC_API GC_bool GC_is_marked();
-void GC_clear_mark_bit();
-void GC_set_mark_bit();
-
-/* Stubborn objects: */
-void GC_read_changed(); /* Analogous to GC_read_dirty */
-GC_bool GC_page_was_changed(/* h */); /* Analogous to GC_page_was_dirty */
-void GC_clean_changing_list(); /* Collect obsolete changing list entries */
-void GC_stubborn_init();
-
-/* Debugging print routines: */
-void GC_print_block_list();
-void GC_print_hblkfreelist();
-void GC_print_heap_sects();
-void GC_print_static_roots();
-void GC_dump();
-
-#ifdef KEEP_BACK_PTRS
- void GC_store_back_pointer(ptr_t source, ptr_t dest);
- void GC_marked_for_finalization(ptr_t dest);
-# define GC_STORE_BACK_PTR(source, dest) GC_store_back_pointer(source, dest)
-# define GC_MARKED_FOR_FINALIZATION(dest) GC_marked_for_finalization(dest)
-#else
-# define GC_STORE_BACK_PTR(source, dest)
-# define GC_MARKED_FOR_FINALIZATION(dest)
-#endif
-
-/* Make arguments appear live to compiler */
-# ifdef __WATCOMC__
- void GC_noop(void*, ...);
-# else
- GC_API void GC_noop();
-# endif
-
-void GC_noop1(/* word arg */);
-
-/* Logging and diagnostic output: */
-GC_API void GC_printf GC_PROTO((char * format, long, long, long, long, long, long));
- /* A version of printf that doesn't allocate, */
- /* is restricted to long arguments, and */
- /* (unfortunately) doesn't use varargs for */
- /* portability. Restricted to 6 args and */
- /* 1K total output length. */
- /* (We use sprintf. Hopefully that doesn't */
- /* allocate for long arguments.) */
-# define GC_printf0(f) GC_printf(f, 0l, 0l, 0l, 0l, 0l, 0l)
-# define GC_printf1(f,a) GC_printf(f, (long)a, 0l, 0l, 0l, 0l, 0l)
-# define GC_printf2(f,a,b) GC_printf(f, (long)a, (long)b, 0l, 0l, 0l, 0l)
-# define GC_printf3(f,a,b,c) GC_printf(f, (long)a, (long)b, (long)c, 0l, 0l, 0l)
-# define GC_printf4(f,a,b,c,d) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, 0l, 0l)
-# define GC_printf5(f,a,b,c,d,e) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, (long)e, 0l)
-# define GC_printf6(f,a,b,c,d,e,g) GC_printf(f, (long)a, (long)b, (long)c, \
- (long)d, (long)e, (long)g)
-
-void GC_err_printf(/* format, a, b, c, d, e, f */);
-# define GC_err_printf0(f) GC_err_puts(f)
-# define GC_err_printf1(f,a) GC_err_printf(f, (long)a, 0l, 0l, 0l, 0l, 0l)
-# define GC_err_printf2(f,a,b) GC_err_printf(f, (long)a, (long)b, 0l, 0l, 0l, 0l)
-# define GC_err_printf3(f,a,b,c) GC_err_printf(f, (long)a, (long)b, (long)c, \
- 0l, 0l, 0l)
-# define GC_err_printf4(f,a,b,c,d) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, 0l, 0l)
-# define GC_err_printf5(f,a,b,c,d,e) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, \
- (long)e, 0l)
-# define GC_err_printf6(f,a,b,c,d,e,g) GC_err_printf(f, (long)a, (long)b, \
- (long)c, (long)d, \
- (long)e, (long)g)
- /* Ditto, writes to stderr. */
-
-void GC_err_puts(/* char *s */);
- /* Write s to stderr, don't buffer, don't add */
- /* newlines, don't ... */
-
-
-# ifdef GC_ASSERTIONS
-# define GC_ASSERT(expr) if(!(expr)) {\
- GC_err_printf2("Assertion failure: %s:%ld\n", \
- __FILE__, (unsigned long)__LINE__); \
- ABORT("assertion failure"); }
-# else
-# define GC_ASSERT(expr)
-# endif
-
-# endif /* GC_PRIVATE_H */
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
deleted file mode 100644
index 045617a1d7b..00000000000
--- a/boehm-gc/include/private/gcconfig.h
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#ifndef GCCONFIG_H
-
-# define GCCONFIG_H
-
-/* Machine dependent parameters. Some tuning parameters can be found */
-/* near the top of gc_private.h. */
-
-/* Machine specific parts contributed by various people. See README file. */
-
-/* First a unified test for Linux: */
-# if defined(linux) || defined(__linux__)
-# define LINUX
-# endif
-
-/* Determine the machine type: */
-# if defined(sun) && defined(mc68000)
-# define M68K
-# define SUNOS4
-# define mach_type_known
-# endif
-# if defined(hp9000s300)
-# define M68K
-# define HP
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(m68k)
-# define M68K
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(__sparc__)
-# define SPARC
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(m68k)
-# define M68K
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(arm32)
-# define ARM32
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(vax)
-# define VAX
-# ifdef ultrix
-# define ULTRIX
-# else
-# define BSD
-# endif
-# define mach_type_known
-# endif
-# if defined(mips) || defined(__mips)
-# define MIPS
-# if !defined(LINUX)
-# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
-# define ULTRIX
-# else
-# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \
- || defined(__SYSTYPE_SVR4__)
-# define IRIX5 /* or IRIX 6.X */
-# else
-# define RISCOS /* or IRIX 4.X */
-# endif
-# endif
-# endif /* !LINUX */
-# define mach_type_known
-# endif
-# if defined(sequent) && defined(i386)
-# define I386
-# define SEQUENT
-# define mach_type_known
-# endif
-# if defined(sun) && defined(i386)
-# define I386
-# define SUNOS5
-# define mach_type_known
-# endif
-# if (defined(__OS2__) || defined(__EMX__)) && defined(__32BIT__)
-# define I386
-# define OS2
-# define mach_type_known
-# endif
-# if defined(ibm032)
-# define RT
-# define mach_type_known
-# endif
-# if defined(sun) && (defined(sparc) || defined(__sparc))
-# define SPARC
- /* Test for SunOS 5.x */
-# include <errno.h>
-# ifdef ECHRNG
-# define SUNOS5
-# else
-# define SUNOS4
-# endif
-# define mach_type_known
-# endif
-# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \
- && !defined(__OpenBSD__)
-# define SPARC
-# define DRSNX
-# define mach_type_known
-# endif
-# if defined(_IBMR2)
-# define RS6000
-# define mach_type_known
-# endif
-# if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386)
- /* The above test may need refinement */
-# define I386
-# if defined(_SCO_ELF)
-# define SCO_ELF
-# else
-# define SCO
-# endif
-# define mach_type_known
-# endif
-# if defined(_AUX_SOURCE)
-# define M68K
-# define SYSV
-# define mach_type_known
-# endif
-# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
- || defined(hppa) || defined(__hppa__)
-# define HP_PA
-# ifndef LINUX
-# define HPUX
-# endif
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(i386) || defined(__i386__))
-# define I386
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(__ia64__) || defined(__ia64))
-# define IA64
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(powerpc)
-# define POWERPC
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(__mc68000__)
-# define M68K
-# define mach_type_known
-# endif
-# if defined(LINUX) && (defined(sparc) || defined(__sparc__))
-# define SPARC
-# define mach_type_known
-# endif
-# if defined(LINUX) && defined(arm)
-# define ARM32
-# define mach_type_known
-# endif
-# if defined(__alpha) || defined(__alpha__)
-# define ALPHA
-# if !defined(LINUX)
-# define OSF1 /* a.k.a Digital Unix */
-# endif
-# define mach_type_known
-# endif
-# if defined(_AMIGA) && !defined(AMIGA)
-# define AMIGA
-# endif
-# ifdef AMIGA
-# define M68K
-# define mach_type_known
-# endif
-# if defined(THINK_C) || defined(__MWERKS__) && !defined(__powerc)
-# define M68K
-# define MACOS
-# define mach_type_known
-# endif
-# if defined(__MWERKS__) && defined(__powerc)
-# define POWERPC
-# define MACOS
-# define mach_type_known
-# endif
-# if defined(macosx)
-# define MACOSX
-# define POWERPC
-# define mach_type_known
-# endif
-# if defined(NeXT) && defined(mc68000)
-# define M68K
-# define NEXT
-# define mach_type_known
-# endif
-# if defined(NeXT) && defined(i386)
-# define I386
-# define NEXT
-# define mach_type_known
-# endif
-# if defined(__OpenBSD__) && defined(i386)
-# define I386
-# define OPENBSD
-# define mach_type_known
-# endif
-# if defined(__FreeBSD__) && defined(i386)
-# define I386
-# define FREEBSD
-# define mach_type_known
-# endif
-# if defined(__NetBSD__) && defined(i386)
-# define I386
-# define NETBSD
-# define mach_type_known
-# endif
-# if defined(bsdi) && defined(i386)
-# define I386
-# define BSDI
-# define mach_type_known
-# endif
-# if !defined(mach_type_known) && defined(__386BSD__)
-# define I386
-# define THREE86BSD
-# define mach_type_known
-# endif
-# if defined(_CX_UX) && defined(_M88K)
-# define M88K
-# define CX_UX
-# define mach_type_known
-# endif
-# if defined(DGUX)
-# define M88K
- /* DGUX defined */
-# define mach_type_known
-# endif
-# if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \
- || defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)
-# define I386
-# define MSWIN32 /* or Win32s */
-# define mach_type_known
-# endif
-# if defined(__DJGPP__)
-# define I386
-# ifndef DJGPP
-# define DJGPP /* MSDOS running the DJGPP port of GCC */
-# endif
-# define mach_type_known
-# endif
-# if defined(__CYGWIN32__) || defined(__CYGWIN__)
-# define I386
-# define CYGWIN32
-# define mach_type_known
-# endif
-# if defined(__MINGW32__)
-# define I386
-# define MSWIN32
-# define mach_type_known
-# endif
-# if defined(__BORLANDC__)
-# define I386
-# define MSWIN32
-# define mach_type_known
-# endif
-# if defined(_UTS) && !defined(mach_type_known)
-# define S370
-# define UTS4
-# define mach_type_known
-# endif
-# if defined(__pj__)
-# define PJ
-# define mach_type_known
-# endif
-/* Ivan Demakov */
-# if defined(__WATCOMC__) && defined(__386__)
-# define I386
-# if !defined(OS2) && !defined(MSWIN32) && !defined(DOS4GW)
-# if defined(__OS2__)
-# define OS2
-# else
-# if defined(__WINDOWS_386__) || defined(__NT__)
-# define MSWIN32
-# else
-# define DOS4GW
-# endif
-# endif
-# endif
-# define mach_type_known
-# endif
-
-/* Feel free to add more clauses here */
-
-/* Or manually define the machine type here. A machine type is */
-/* characterized by the architecture. Some */
-/* machine types are further subdivided by OS. */
-/* the macros ULTRIX, RISCOS, and BSD to distinguish. */
-/* Note that SGI IRIX is treated identically to RISCOS. */
-/* SYSV on an M68K actually means A/UX. */
-/* The distinction in these cases is usually the stack starting address */
-# ifndef mach_type_known
- --> unknown machine type
-# endif
- /* Mapping is: M68K ==> Motorola 680X0 */
- /* (SUNOS4,HP,NEXT, and SYSV (A/UX), */
- /* MACOS and AMIGA variants) */
- /* I386 ==> Intel 386 */
- /* (SEQUENT, OS2, SCO, LINUX, NETBSD, */
- /* FREEBSD, THREE86BSD, MSWIN32, */
- /* BSDI,SUNOS5, NEXT, other variants) */
- /* NS32K ==> Encore Multimax */
- /* MIPS ==> R2000 or R3000 */
- /* (RISCOS, ULTRIX variants) */
- /* VAX ==> DEC VAX */
- /* (BSD, ULTRIX variants) */
- /* RS6000 ==> IBM RS/6000 AIX3.X */
- /* RT ==> IBM PC/RT */
- /* HP_PA ==> HP9000/700 & /800 */
- /* HP/UX */
- /* SPARC ==> SPARC under SunOS */
- /* (SUNOS4, SUNOS5, */
- /* DRSNX variants) */
- /* ALPHA ==> DEC Alpha */
- /* (OSF1 and LINUX variants) */
- /* M88K ==> Motorola 88XX0 */
- /* (CX_UX and DGUX) */
- /* S370 ==> 370-like machine */
- /* running Amdahl UTS4 */
- /* ARM32 ==> Intel StrongARM */
- /* IA64 ==> Intel IA64 */
- /* (e.g. Itanium) */
-
-
-/*
- * For each architecture and OS, the following need to be defined:
- *
- * CPP_WORD_SZ is a simple integer constant representing the word size.
- * in bits. We assume byte addressibility, where a byte has 8 bits.
- * We also assume CPP_WORD_SZ is either 32 or 64.
- * (We care about the length of pointers, not hardware
- * bus widths. Thus a 64 bit processor with a C compiler that uses
- * 32 bit pointers should use CPP_WORD_SZ of 32, not 64. Default is 32.)
- *
- * MACH_TYPE is a string representation of the machine type.
- * OS_TYPE is analogous for the OS.
- *
- * ALIGNMENT is the largest N, such that
- * all pointer are guaranteed to be aligned on N byte boundaries.
- * defining it to be 1 will always work, but perform poorly.
- *
- * DATASTART is the beginning of the data segment.
- * On UNIX systems, the collector will scan the area between DATASTART
- * and DATAEND for root pointers.
- *
- * DATAEND, if not &end.
- *
- * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice
- * the pointer size.
- *
- * STACKBOTTOM is the cool end of the stack, which is usually the
- * highest address in the stack.
- * Under PCR or OS/2, we have other ways of finding thread stacks.
- * For each machine, the following should:
- * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and
- * 2) define exactly one of
- * STACKBOTTOM (should be defined to be an expression)
- * HEURISTIC1
- * HEURISTIC2
- * If either of the last two macros are defined, then STACKBOTTOM is computed
- * during collector startup using one of the following two heuristics:
- * HEURISTIC1: Take an address inside GC_init's frame, and round it up to
- * the next multiple of STACK_GRAN.
- * HEURISTIC2: Take an address inside GC_init's frame, increment it repeatedly
- * in small steps (decrement if STACK_GROWS_UP), and read the value
- * at each location. Remember the value when the first
- * Segmentation violation or Bus error is signalled. Round that
- * to the nearest plausible page boundary, and use that instead
- * of STACKBOTTOM.
- *
- * Gustavo Rodriguez-Rivera points out that on most (all?) Unix machines,
- * the value of environ is a pointer that can serve as STACKBOTTOM.
- * I expect that HEURISTIC2 can be replaced by this approach, which
- * interferes far less with debugging.
- *
- * If no expression for STACKBOTTOM can be found, and neither of the above
- * heuristics are usable, the collector can still be used with all of the above
- * undefined, provided one of the following is done:
- * 1) GC_mark_roots can be changed to somehow mark from the correct stack(s)
- * without reference to STACKBOTTOM. This is appropriate for use in
- * conjunction with thread packages, since there will be multiple stacks.
- * (Allocating thread stacks in the heap, and treating them as ordinary
- * heap data objects is also possible as a last resort. However, this is
- * likely to introduce significant amounts of excess storage retention
- * unless the dead parts of the thread stacks are periodically cleared.)
- * 2) Client code may set GC_stackbottom before calling any GC_ routines.
- * If the author of the client code controls the main program, this is
- * easily accomplished by introducing a new main program, setting
- * GC_stackbottom to the address of a local variable, and then calling
- * the original main program. The new main program would read something
- * like:
- *
- * # include "gc_private.h"
- *
- * main(argc, argv, envp)
- * int argc;
- * char **argv, **envp;
- * {
- * int dummy;
- *
- * GC_stackbottom = (ptr_t)(&dummy);
- * return(real_main(argc, argv, envp));
- * }
- *
- *
- * Each architecture may also define the style of virtual dirty bit
- * implementation to be used:
- * MPROTECT_VDB: Write protect the heap and catch faults.
- * PROC_VDB: Use the SVR4 /proc primitives to read dirty bits.
- *
- * An architecture may define DYNAMIC_LOADING if dynamic_load.c
- * defined GC_register_dynamic_libraries() for the architecture.
- *
- * An architecture may define PREFETCH(x) to preload the cache with *x.
- * This defaults to a no-op.
- *
- * PREFETCH_FOR_WRITE(x) is used if *x is about to be written.
- *
- * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to
- * clear the two words at GC_malloc-aligned address x. By default,
- * word stores of 0 are used instead.
- */
-
-
-# define STACK_GRAN 0x1000000
-# ifdef M68K
-# define MACH_TYPE "M68K"
-# define ALIGNMENT 2
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define STACKBOTTOM ((ptr_t)0xf0000000)
-# define MPROTECT_VDB
-# ifdef __ELF__
-# define DYNAMIC_LOADING
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# endif
-# ifdef SUNOS4
-# define OS_TYPE "SUNOS4"
- extern char etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x1ffff) & ~0x1ffff))
-# define HEURISTIC1 /* differs */
-# define DYNAMIC_LOADING
-# endif
-# ifdef HP
-# define OS_TYPE "HP"
- extern char etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# define STACKBOTTOM ((ptr_t) 0xffeffffc)
- /* empirically determined. seems to work. */
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE)
-# endif
-# ifdef SYSV
-# define OS_TYPE "SYSV"
- extern etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
- & ~0x3fffff) \
- +((word)&etext & 0x1fff))
- /* This only works for shared-text binaries with magic number 0413.
- The other sorts of SysV binaries put the data at the end of the text,
- in which case the default of &etext would work. Unfortunately,
- handling both would require having the magic-number available.
- -- Parag
- */
-# define STACKBOTTOM ((ptr_t)0xFFFFFFFE)
- /* The stack starts at the top of memory, but */
- /* 0x0 cannot be used as setjump_test complains */
- /* that the stack direction is incorrect. Two */
- /* bytes down from 0x0 should be safe enough. */
- /* --Parag */
-# include <sys/mmu.h>
-# define GETPAGESIZE() PAGESIZE /* Is this still right? */
-# endif
-# ifdef AMIGA
-# define OS_TYPE "AMIGA"
- /* STACKBOTTOM and DATASTART handled specially */
- /* in os_dep.c */
-# define DATAEND /* not needed */
-# define GETPAGESIZE() 4096
-# endif
-# ifdef MACOS
-# ifndef __LOWMEM__
-# include <LowMem.h>
-# endif
-# define OS_TYPE "MACOS"
- /* see os_dep.c for details of global data segments. */
-# define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
-# define DATAEND /* not needed */
-# define GETPAGESIZE() 4096
-# endif
-# ifdef NEXT
-# define OS_TYPE "NEXT"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t) 0x4000000)
-# define DATAEND /* not needed */
-# endif
-# endif
-
-# ifdef POWERPC
-# define MACH_TYPE "POWERPC"
-# ifdef MACOS
-# define ALIGNMENT 2 /* Still necessary? Could it be 4? */
-# ifndef __LOWMEM__
-# include <LowMem.h>
-# endif
-# define OS_TYPE "MACOS"
- /* see os_dep.c for details of global data segments. */
-# define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
-# define DATAEND /* not needed */
-# endif
-# ifdef LINUX
-# define ALIGNMENT 4 /* Guess. Can someone verify? */
- /* This was 2, but that didn't sound right. */
-# define OS_TYPE "LINUX"
-# define HEURISTIC1
-# define DYNAMIC_LOADING
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
- /* Stack usually starts at 0x80000000 */
-# define LINUX_DATA_START
- extern int _end;
-# define DATAEND (&_end)
-# endif
-# ifdef MACOSX
-# define ALIGNMENT 4
-# define OS_TYPE "MACOSX"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t) 0xc0000000)
-# define DATAEND /* not needed */
-# endif
-# endif
-
-# ifdef VAX
-# define MACH_TYPE "VAX"
-# define ALIGNMENT 4 /* Pointers are longword aligned by 4.2 C compiler */
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# ifdef BSD
-# define OS_TYPE "BSD"
-# define HEURISTIC1
- /* HEURISTIC2 may be OK, but it's hard to test. */
-# endif
-# ifdef ULTRIX
-# define OS_TYPE "ULTRIX"
-# define STACKBOTTOM ((ptr_t) 0x7fffc800)
-# endif
-# endif
-
-# ifdef RT
-# define MACH_TYPE "RT"
-# define ALIGNMENT 4
-# define DATASTART ((ptr_t) 0x10000000)
-# define STACKBOTTOM ((ptr_t) 0x1fffd800)
-# endif
-
-# ifdef SPARC
-# define MACH_TYPE "SPARC"
-# define ALIGNMENT 4 /* Required by hardware */
-# define ALIGN_DOUBLE
- extern int etext;
-# ifdef SUNOS5
-# define OS_TYPE "SUNOS5"
- extern int _etext;
- extern int _end;
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
-# define DATAEND (&_end)
-# ifndef USE_MMAP
-# define USE_MMAP
-# endif
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x40000000
-# else
-# define HEAP_START DATAEND
-# endif
-# define PROC_VDB
-/* HEURISTIC1 reportedly no longer works under 2.7. Thus we */
-/* switched to HEURISTIC2, eventhough it creates some debugging */
-/* issues. */
-# define HEURISTIC2
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
- /* getpagesize() appeared to be missing from at least one */
- /* Solaris 5.4 installation. Weird. */
-# define DYNAMIC_LOADING
-# endif
-# ifdef SUNOS4
-# define OS_TYPE "SUNOS4"
- /* [If you have a weak stomach, don't read this.] */
- /* We would like to use: */
-/* # define DATASTART ((ptr_t)((((word) (&etext)) + 0x1fff) & ~0x1fff)) */
- /* This fails occasionally, due to an ancient, but very */
- /* persistent ld bug. &etext is set 32 bytes too high. */
- /* We instead read the text segment size from the a.out */
- /* header, which happens to be mapped into our address space */
- /* at the start of the text segment. The detective work here */
- /* was done by Robert Ehrlich, Manuel Serrano, and Bernard */
- /* Serpette of INRIA. */
- /* This assumes ZMAGIC, i.e. demand-loadable executables. */
-# define TEXTSTART 0x2000
-# define DATASTART ((ptr_t)(*(int *)(TEXTSTART+0x4)+TEXTSTART))
-# define MPROTECT_VDB
-# define HEURISTIC1
-# define DYNAMIC_LOADING
-# endif
-# ifdef DRSNX
-# define CPP_WORDSZ 32
-# define OS_TYPE "DRSNX"
- extern char * GC_SysVGetDataStart();
- extern int etext;
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &etext)
-# define MPROTECT_VDB
-# define STACKBOTTOM ((ptr_t) 0xdfff0000)
-# define DYNAMIC_LOADING
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# ifdef __ELF__
-# define LINUX_DATA_START
-# define DYNAMIC_LOADING
-# else
- Linux Sparc non elf ?
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# define SVR4
-# define STACKBOTTOM ((ptr_t) 0xf0000000)
-# endif
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# define STACKBOTTOM ((ptr_t) 0xf8000000)
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# endif
-
-# ifdef I386
-# define MACH_TYPE "I386"
-# define ALIGNMENT 4 /* Appears to hold for all "32 bit" compilers */
- /* except Borland. The -a4 option fixes */
- /* Borland. */
- /* Ivan Demakov: For Watcom the option is -zp4. */
-# ifndef SMALL_CONFIG
-# define ALIGN_DOUBLE /* Not strictly necessary, but may give speed */
- /* improvement on Pentiums. */
-# endif
-# ifdef SEQUENT
-# define OS_TYPE "SEQUENT"
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# define STACKBOTTOM ((ptr_t) 0x3ffff000)
-# endif
-# ifdef SUNOS5
-# define OS_TYPE "SUNOS5"
- extern int etext, _start;
- extern char * GC_SysVGetDataStart();
-# define DATASTART GC_SysVGetDataStart(0x1000, &etext)
-# define STACKBOTTOM ((ptr_t)(&_start))
-/** At least in Solaris 2.5, PROC_VDB gives wrong values for dirty bits. */
-/*# define PROC_VDB*/
-# define DYNAMIC_LOADING
-# ifndef USE_MMAP
-# define USE_MMAP
-# endif
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x40000000
-# else
-# define HEAP_START DATAEND
-# endif
-# endif
-# ifdef SCO
-# define OS_TYPE "SCO"
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
- & ~0x3fffff) \
- +((word)&etext & 0xfff))
-# define STACKBOTTOM ((ptr_t) 0x7ffffffc)
-# endif
-# ifdef SCO_ELF
-# define OS_TYPE "SCO_ELF"
- extern int etext;
-# define DATASTART ((ptr_t)(&etext))
-# define STACKBOTTOM ((ptr_t) 0x08048000)
-# define DYNAMIC_LOADING
-# define ELF_CLASS ELFCLASS32
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define LINUX_STACKBOTTOM
-# if 0
-# define HEURISTIC1
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
- /* STACKBOTTOM is usually 0xc0000000, but this changes with */
- /* different kernel configurations. In particular, systems */
- /* with 2GB physical memory will usually move the user */
- /* address space limit, and hence initial SP to 0x80000000. */
-# endif
-# if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC)
-# define MPROTECT_VDB
-# else
- /* We seem to get random errors in incremental mode, */
- /* possibly because Linux threads is itself a malloc client */
- /* and can't deal with the signals. */
-# endif
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# ifdef UNDEFINED /* includes ro data */
- extern int _etext;
-# define DATASTART ((ptr_t)((((word) (&_etext)) + 0xfff) & ~0xfff))
-# endif
-# include <features.h>
-# if defined(__GLIBC__) && __GLIBC__ >= 2
-# define LINUX_DATA_START
-# else
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# ifdef USE_I686_PREFETCH
-# define PREFETCH(x) \
- __asm__ __volatile__ (" prefetchnta %0": : "m"(*(char *)(x)))
- /* Empirically prefetcht0 is much more effective at reducing */
- /* cache miss stalls for the targetted load instructions. But it */
- /* seems to interfere enough with other cache traffic that the net */
- /* result is worse than prefetchnta. */
-# if 0
- /* Using prefetches for write seems to have a slight negative */
- /* impact on performance, at least for a PIII/500. */
-# define PREFETCH_FOR_WRITE(x) \
- __asm__ __volatile__ (" prefetcht0 %0": : "m"(*(char *)(x)))
-# endif
-# endif
-# ifdef USE_3DNOW_PREFETCH
-# define PREFETCH(x) \
- __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x)))
-# define PREFETCH_FOR_WRITE(x)
- __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x)))
-# endif
-# endif
-# ifdef CYGWIN32
-# define OS_TYPE "CYGWIN32"
- extern int _data_start__;
- extern int _data_end__;
- extern int _bss_start__;
- extern int _bss_end__;
- /* For binutils 2.9.1, we have */
- /* DATASTART = _data_start__ */
- /* DATAEND = _bss_end__ */
- /* whereas for some earlier versions it was */
- /* DATASTART = _bss_start__ */
- /* DATAEND = _data_end__ */
- /* To get it right for both, we take the */
- /* minumum/maximum of the two. */
-# define MAX(x,y) ((x) > (y) ? (x) : (y))
-# define MIN(x,y) ((x) < (y) ? (x) : (y))
-# define DATASTART ((ptr_t) MIN(&_data_start__, &_bss_start__))
-# define DATAEND ((ptr_t) MAX(&_data_end__, &_bss_end__))
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000
-# define HEURISTIC1
-# endif
-# ifdef OS2
-# define OS_TYPE "OS2"
- /* STACKBOTTOM and DATASTART are handled specially in */
- /* os_dep.c. OS2 actually has the right */
- /* system call! */
-# define DATAEND /* not needed */
-# endif
-# ifdef MSWIN32
-# define OS_TYPE "MSWIN32"
- /* STACKBOTTOM and DATASTART are handled specially in */
- /* os_dep.c. */
-# ifndef __WATCOMC__
-# define MPROTECT_VDB
-# endif
-# define DATAEND /* not needed */
-# endif
-# ifdef DJGPP
-# define OS_TYPE "DJGPP"
-# include "stubinfo.h"
- extern int etext;
- extern int _stklen;
- extern int __djgpp_stack_limit;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0x1ff) & ~0x1ff))
-/* # define STACKBOTTOM ((ptr_t)((word) _stubinfo + _stubinfo->size \
- + _stklen)) */
-# define STACKBOTTOM ((ptr_t)((word) __djgpp_stack_limit + _stklen))
- /* This may not be right. */
-# endif
-# ifdef OPENBSD
-# define OS_TYPE "OPENBSD"
-# endif
-# ifdef FREEBSD
-# define OS_TYPE "FREEBSD"
-# define MPROTECT_VDB
-# endif
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# endif
-# ifdef THREE86BSD
-# define OS_TYPE "THREE86BSD"
-# endif
-# ifdef BSDI
-# define OS_TYPE "BSDI"
-# endif
-# if defined(OPENBSD) || defined(FREEBSD) || defined(NETBSD) \
- || defined(THREE86BSD) || defined(BSDI)
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# endif
-# ifdef NEXT
-# define OS_TYPE "NEXT"
-# define DATASTART ((ptr_t) get_etext())
-# define STACKBOTTOM ((ptr_t)0xc0000000)
-# define DATAEND /* not needed */
-# endif
-# ifdef DOS4GW
-# define OS_TYPE "DOS4GW"
- extern long __nullarea;
- extern char _end;
- extern char *_STACKTOP;
- /* Depending on calling conventions Watcom C either precedes
- or does not precedes with undescore names of C-variables.
- Make sure startup code variables always have the same names. */
- #pragma aux __nullarea "*";
- #pragma aux _end "*";
-# define STACKBOTTOM ((ptr_t) _STACKTOP)
- /* confused? me too. */
-# define DATASTART ((ptr_t) &__nullarea)
-# define DATAEND ((ptr_t) &_end)
-# endif
-# endif
-
-# ifdef NS32K
-# define MACH_TYPE "NS32K"
-# define ALIGNMENT 4
- extern char **environ;
-# define DATASTART ((ptr_t)(&environ))
- /* hideous kludge: environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
-# define STACKBOTTOM ((ptr_t) 0xfffff000) /* for Encore */
-# endif
-
-# ifdef MIPS
-# define MACH_TYPE "MIPS"
-/* # define STACKBOTTOM ((ptr_t)0x7fff8000) sometimes also works. */
-# ifdef LINUX
- /* This was developed for a linuxce style platform. Probably */
- /* needs to be tweaked for workstation class machines. */
-# define OS_TYPE "LINUX"
- extern int __data_start;
-# define DATASTART ((ptr_t)(&__data_start))
-# define ALIGNMENT 4
-# define USE_GENERIC_PUSH_REGS 1
-# define STACKBOTTOM 0x80000000
- /* In many cases, this should probably use LINUX_STACKBOTTOM */
- /* instead. But some kernel versions seem to give the wrong */
- /* value from /proc. */
-# endif /* Linux */
-# ifdef ULTRIX
-# define HEURISTIC2
-# define DATASTART (ptr_t)0x10000000
- /* Could probably be slightly higher since */
- /* startup code allocates lots of stuff. */
-# define OS_TYPE "ULTRIX"
-# define ALIGNMENT 4
-# endif
-# ifdef RISCOS
-# define HEURISTIC2
-# define DATASTART (ptr_t)0x10000000
-# define OS_TYPE "RISCOS"
-# define ALIGNMENT 4 /* Required by hardware */
-# endif
-# ifdef IRIX5
-# define HEURISTIC2
- extern int _fdata;
-# define DATASTART ((ptr_t)(&_fdata))
-# ifdef USE_MMAP
-# define HEAP_START (ptr_t)0x30000000
-# else
-# define HEAP_START DATASTART
-# endif
- /* Lowest plausible heap address. */
- /* In the MMAP case, we map there. */
- /* In either case it is used to identify */
- /* heap sections so they're not */
- /* considered as roots. */
-# define OS_TYPE "IRIX5"
-# define MPROTECT_VDB
-# ifdef _MIPS_SZPTR
-# define CPP_WORDSZ _MIPS_SZPTR
-# define ALIGNMENT (_MIPS_SZPTR/8)
-# if CPP_WORDSZ != 64
-# define ALIGN_DOUBLE
-# endif
-# else
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
-# endif
-# define DYNAMIC_LOADING
-# endif
-# endif
-
-# ifdef RS6000
-# define MACH_TYPE "RS6000"
-# define ALIGNMENT 4
-# define DATASTART ((ptr_t)0x20000000)
- extern int errno;
-# define STACKBOTTOM ((ptr_t)((ulong)&errno))
-# define DYNAMIC_LOADING
- /* For really old versions of AIX, this may have to be removed. */
-# endif
-
-# ifdef HP_PA
- /* OS is assumed to be HP/UX */
-# define MACH_TYPE "HP_PA"
-# define OS_TYPE "HPUX"
-# ifdef __LP64__
-# define CPP_WORDSZ 64
-# define ALIGNMENT 8
-# else
-# define CPP_WORDSZ 32
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
-# endif
- extern int __data_start;
-# define DATASTART ((ptr_t)(&__data_start))
-# if 0
- /* The following appears to work for 7xx systems running HP/UX */
- /* 9.xx Furthermore, it might result in much faster */
- /* collections than HEURISTIC2, which may involve scanning */
- /* segments that directly precede the stack. It is not the */
- /* default, since it may not work on older machine/OS */
- /* combinations. (Thanks to Raymond X.T. Nijssen for uncovering */
- /* this.) */
-# define STACKBOTTOM ((ptr_t) 0x7b033000) /* from /etc/conf/h/param.h */
-# else
- /* Gustavo Rodriguez-Rivera suggested changing HEURISTIC2 */
- /* to this. We'll probably do this on other platforms, too. */
- /* For now I'll use it where I can test it. */
- extern char ** environ;
-# define STACKBOTTOM ((ptr_t)environ)
-# endif
-# define STACK_GROWS_UP
-# define DYNAMIC_LOADING
-# ifndef HPUX_THREADS
-# define MPROTECT_VDB
-# endif
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE)
-# endif
-
-# ifdef ALPHA
-# define MACH_TYPE "ALPHA"
-# define ALIGNMENT 8
-# define USE_GENERIC_PUSH_REGS
- /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */
- /* fp registers in some cases when the target is a 21264. The assembly */
- /* code doesn't handle that yet, and version dependencies make that a */
- /* bit tricky. Do the easy thing for now. */
-# ifdef OSF1
-# define OS_TYPE "OSF1"
-# define DATASTART ((ptr_t) 0x140000000)
- extern _end;
-# define DATAEND ((ptr_t) &_end)
-# define HEURISTIC2
- /* Normally HEURISTIC2 is too conervative, since */
- /* the text segment immediately follows the stack. */
- /* Hence we give an upper pound. */
- extern int __start;
-# define HEURISTIC2_LIMIT ((ptr_t)((word)(&__start) & ~(getpagesize()-1)))
-# define CPP_WORDSZ 64
-# define MPROTECT_VDB
-# define DYNAMIC_LOADING
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define CPP_WORDSZ 64
-# define STACKBOTTOM ((ptr_t) 0x120000000)
-# ifdef __ELF__
-# define LINUX_DATA_START
-# define DYNAMIC_LOADING
- /* This doesn't work if the collector is in a dynamic library. */
-# else
-# define DATASTART ((ptr_t) 0x140000000)
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# define MPROTECT_VDB
- /* Has only been superficially tested. May not */
- /* work on all versions. */
-# endif
-# endif
-
-# ifdef IA64
-# define MACH_TYPE "IA64"
-# define ALIGN_DOUBLE
- /* Requires 16 byte alignment for malloc */
-# define ALIGNMENT 8
-# define USE_GENERIC_PUSH_REGS
- /* We need to get preserved registers in addition to register windows. */
- /* That's easiest to do with setjmp. */
-# ifdef HPUX
- --> needs work
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define CPP_WORDSZ 64
- /* This should really be done through /proc, but that */
- /* requires we run on an IA64 kernel. */
-# define STACKBOTTOM ((ptr_t) 0xa000000000000000l)
- /* We also need the base address of the register stack */
- /* backing store. There is probably a better way to */
- /* get that, too ... */
-# define BACKING_STORE_BASE ((ptr_t) 0x9fffffff80000000l)
-# if 1
-# define SEARCH_FOR_DATA_START
-# define DATASTART GC_data_start
-# else
- extern int data_start;
-# define DATASTART ((ptr_t)(&data_start))
-# endif
-# define DYNAMIC_LOADING
-# define MPROTECT_VDB
- /* Requires Linux 2.3.47 or later. */
- extern int _end;
-# define DATAEND (&_end)
-# define PREFETCH(x) \
- __asm__ (" lfetch [%0]": : "r"((void *)(x)))
-# define PREFETCH_FOR_WRITE(x) \
- __asm__ (" lfetch.excl [%0]": : "r"((void *)(x)))
-# define CLEAR_DOUBLE(x) \
- __asm__ (" stf.spill [%0]=f0": : "r"((void *)(x)))
-# endif
-# endif
-
-# ifdef M88K
-# define MACH_TYPE "M88K"
-# define ALIGNMENT 4
-# define ALIGN_DOUBLE
- extern int etext;
-# ifdef CX_UX
-# define OS_TYPE "CX_UX"
-# define DATASTART ((((word)&etext + 0x3fffff) & ~0x3fffff) + 0x10000)
-# endif
-# ifdef DGUX
-# define OS_TYPE "DGUX"
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &etext)
-# endif
-# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
-# endif
-
-# ifdef S370
-# define MACH_TYPE "S370"
-# define OS_TYPE "UTS4"
-# define ALIGNMENT 4 /* Required by hardware */
- extern int etext;
- extern int _etext;
- extern int _end;
- extern char * GC_SysVGetDataStart();
-# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, &_etext)
-# define DATAEND (&_end)
-# define HEURISTIC2
-# endif
-
-# if defined(PJ)
-# define ALIGNMENT 4
- extern int _etext;
-# define DATASTART ((ptr_t)(&_etext))
-# define HEURISTIC1
-# endif
-
-# ifdef ARM32
-# define CPP_WORDSZ 32
-# define MACH_TYPE "ARM32"
-# define ALIGNMENT 4
-# ifdef NETBSD
-# define OS_TYPE "NETBSD"
-# define HEURISTIC2
- extern char etext;
-# define DATASTART ((ptr_t)(&etext))
-# define USE_GENERIC_PUSH_REGS
-# endif
-# ifdef LINUX
-# define OS_TYPE "LINUX"
-# define HEURISTIC1
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
-# define USE_GENERIC_PUSH_REGS
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# include <features.h>
-# if defined(__GLIBC__) && __GLIBC__ >= 2
-# define LINUX_DATA_START
-# else
- extern char **__environ;
-# define DATASTART ((ptr_t)(&__environ))
- /* hideous kludge: __environ is the first */
- /* word in crt0.o, and delimits the start */
- /* of the data segment, no matter which */
- /* ld options were passed through. */
- /* We could use _etext instead, but that */
- /* would include .rodata, which may */
- /* contain large read-only data tables */
- /* that we'd rather not scan. */
-# endif
- extern int _end;
-# define DATAEND (&_end)
-# else
- extern int etext;
-# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
-# endif
-# endif
-#endif
-
-#ifdef LINUX_DATA_START
- /* Some Linux distributions arrange to define __data_start. Some */
- /* define data_start as a weak symbol. The latter is technically */
- /* broken, since the user program may define data_start, in which */
- /* case we lose. Nonetheless, we try both, prefering __data_start. */
- /* We assume gcc. */
-# pragma weak __data_start
- extern int __data_start;
-# pragma weak data_start
- extern int data_start;
-# define DATASTART ((ptr_t)(&__data_start != 0? &__data_start : &data_start))
-#endif
-
-# ifndef STACK_GROWS_UP
-# define STACK_GROWS_DOWN
-# endif
-
-# ifndef CPP_WORDSZ
-# define CPP_WORDSZ 32
-# endif
-
-# ifndef OS_TYPE
-# define OS_TYPE ""
-# endif
-
-# ifndef DATAEND
- extern int end;
-# define DATAEND (&end)
-# endif
-
-# if defined(SVR4) && !defined(GETPAGESIZE)
-# include <unistd.h>
-# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
-# endif
-
-# ifndef GETPAGESIZE
-# if defined(SUNOS5) || defined(IRIX5)
-# include <unistd.h>
-# endif
-# define GETPAGESIZE() getpagesize()
-# endif
-
-# if defined(SUNOS5) || defined(DRSNX) || defined(UTS4)
- /* OS has SVR4 generic features. Probably others also qualify. */
-# define SVR4
-# endif
-
-# if defined(SUNOS5) || defined(DRSNX)
- /* OS has SUNOS5 style semi-undocumented interface to dynamic */
- /* loader. */
-# define SUNOS5DL
- /* OS has SUNOS5 style signal handlers. */
-# define SUNOS5SIGS
-# endif
-
-# if defined(HPUX)
-# define SUNOS5SIGS
-# endif
-
-# if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
- -> bad word size
-# endif
-
-# ifdef PCR
-# undef DYNAMIC_LOADING
-# undef STACKBOTTOM
-# undef HEURISTIC1
-# undef HEURISTIC2
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# define PCR_VDB
-# endif
-
-# ifdef SRC_M3
-/* Postponed for now. */
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# endif
-
-# ifdef SMALL_CONFIG
-/* Presumably not worth the space it takes. */
-# undef PROC_VDB
-# undef MPROTECT_VDB
-# endif
-
-# ifdef USE_MUNMAP
-# undef MPROTECT_VDB /* Can't deal with address space holes. */
-# endif
-
-# if !defined(PCR_VDB) && !defined(PROC_VDB) && !defined(MPROTECT_VDB)
-# define DEFAULT_VDB
-# endif
-
-# ifndef PREFETCH
-# define PREFETCH(x)
-# define NO_PREFETCH
-# endif
-
-# ifndef PREFETCH_FOR_WRITE
-# define PREFETCH_FOR_WRITE(x)
-# define NO_PREFETCH_FOR_WRITE
-# endif
-
-# ifndef CACHE_LINE_SIZE
-# define CACHE_LINE_SIZE 32 /* Wild guess */
-# endif
-
-# ifndef CLEAR_DOUBLE
-# define CLEAR_DOUBLE(x) \
- ((word*)x)[0] = 0; \
- ((word*)x)[1] = 0;
-# endif /* CLEAR_DOUBLE */
-
-# if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS)
-# define SOLARIS_THREADS
-# endif
-# if defined(IRIX_THREADS) && !defined(IRIX5)
---> inconsistent configuration
-# endif
-# if defined(IRIX_JDK_THREADS) && !defined(IRIX5)
---> inconsistent configuration
-# endif
-# if defined(LINUX_THREADS) && !defined(LINUX)
---> inconsistent configuration
-# endif
-# if defined(SOLARIS_THREADS) && !defined(SUNOS5)
---> inconsistent configuration
-# endif
-# if defined(HPUX_THREADS) && !defined(HPUX)
---> inconsistent configuration
-# endif
-# if defined(PCR) || defined(SRC_M3) || \
- defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
- defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
- defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
-# define THREADS
-# endif
-
-# if defined(HP_PA) || defined(M88K) || defined(POWERPC) \
- || (defined(I386) && defined(OS2)) || defined(UTS4) || defined(LINT)
- /* Use setjmp based hack to mark from callee-save registers. */
-# define USE_GENERIC_PUSH_REGS
-# endif
-# if defined(SPARC) && !defined(LINUX)
-# define SAVE_CALL_CHAIN
-# define ASM_CLEAR_CODE /* Stack clearing is crucial, and we */
- /* include assembly code to do it well. */
-# endif
-
-# endif /* GCCONFIG_H */
diff --git a/boehm-gc/include/weakpointer.h b/boehm-gc/include/weakpointer.h
deleted file mode 100644
index 84906b00a68..00000000000
--- a/boehm-gc/include/weakpointer.h
+++ /dev/null
@@ -1,221 +0,0 @@
-#ifndef _weakpointer_h_
-#define _weakpointer_h_
-
-/****************************************************************************
-
-WeakPointer and CleanUp
-
- Copyright (c) 1991 by Xerox Corporation. All rights reserved.
-
- THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
- Permission is hereby granted to copy this code for any purpose,
- provided the above notices are retained on all copies.
-
- Last modified on Mon Jul 17 18:16:01 PDT 1995 by ellis
-
-****************************************************************************/
-
-/****************************************************************************
-
-WeakPointer
-
-A weak pointer is a pointer to a heap-allocated object that doesn't
-prevent the object from being garbage collected. Weak pointers can be
-used to track which objects haven't yet been reclaimed by the
-collector. A weak pointer is deactivated when the collector discovers
-its referent object is unreachable by normal pointers (reachability
-and deactivation are defined more precisely below). A deactivated weak
-pointer remains deactivated forever.
-
-****************************************************************************/
-
-
-template< class T > class WeakPointer {
-public:
-
-WeakPointer( T* t = 0 )
- /* Constructs a weak pointer for *t. t may be null. It is an error
- if t is non-null and *t is not a collected object. */
- {impl = _WeakPointer_New( t );}
-
-T* Pointer()
- /* wp.Pointer() returns a pointer to the referent object of wp or
- null if wp has been deactivated (because its referent object
- has been discovered unreachable by the collector). */
- {return (T*) _WeakPointer_Pointer( this->impl );}
-
-int operator==( WeakPointer< T > wp2 )
- /* Given weak pointers wp1 and wp2, if wp1 == wp2, then wp1 and
- wp2 refer to the same object. If wp1 != wp2, then either wp1
- and wp2 don't refer to the same object, or if they do, one or
- both of them has been deactivated. (Note: If objects t1 and t2
- are never made reachable by their clean-up functions, then
- WeakPointer<T>(t1) == WeakPointer<T>(t2) if and only t1 == t2.) */
- {return _WeakPointer_Equal( this->impl, wp2.impl );}
-
-int Hash()
- /* Returns a hash code suitable for use by multiplicative- and
- division-based hash tables. If wp1 == wp2, then wp1.Hash() ==
- wp2.Hash(). */
- {return _WeakPointer_Hash( this->impl );}
-
-private:
-void* impl;
-};
-
-/*****************************************************************************
-
-CleanUp
-
-A garbage-collected object can have an associated clean-up function
-that will be invoked some time after the collector discovers the
-object is unreachable via normal pointers. Clean-up functions can be
-used to release resources such as open-file handles or window handles
-when their containing objects become unreachable. If a C++ object has
-a non-empty explicit destructor (i.e. it contains programmer-written
-code), the destructor will be automatically registered as the object's
-initial clean-up function.
-
-There is no guarantee that the collector will detect every unreachable
-object (though it will find almost all of them). Clients should not
-rely on clean-up to cause some action to occur immediately -- clean-up
-is only a mechanism for improving resource usage.
-
-Every object with a clean-up function also has a clean-up queue. When
-the collector finds the object is unreachable, it enqueues it on its
-queue. The clean-up function is applied when the object is removed
-from the queue. By default, objects are enqueued on the garbage
-collector's queue, and the collector removes all objects from its
-queue after each collection. If a client supplies another queue for
-objects, it is his responsibility to remove objects (and cause their
-functions to be called) by polling it periodically.
-
-Clean-up queues allow clean-up functions accessing global data to
-synchronize with the main program. Garbage collection can occur at any
-time, and clean-ups invoked by the collector might access data in an
-inconsistent state. A client can control this by defining an explicit
-queue for objects and polling it at safe points.
-
-The following definitions are used by the specification below:
-
-Given a pointer t to a collected object, the base object BO(t) is the
-value returned by new when it created the object. (Because of multiple
-inheritance, t and BO(t) may not be the same address.)
-
-A weak pointer wp references an object *t if BO(wp.Pointer()) ==
-BO(t).
-
-***************************************************************************/
-
-template< class T, class Data > class CleanUp {
-public:
-
-static void Set( T* t, void c( Data* d, T* t ), Data* d = 0 )
- /* Sets the clean-up function of object BO(t) to be <c, d>,
- replacing any previously defined clean-up function for BO(t); c
- and d can be null, but t cannot. Sets the clean-up queue for
- BO(t) to be the collector's queue. When t is removed from its
- clean-up queue, its clean-up will be applied by calling c(d,
- t). It is an error if *t is not a collected object. */
- {_CleanUp_Set( t, c, d );}
-
-static void Call( T* t )
- /* Sets the new clean-up function for BO(t) to be null and, if the
- old one is non-null, calls it immediately, even if BO(t) is
- still reachable. Deactivates any weak pointers to BO(t). */
- {_CleanUp_Call( t );}
-
-class Queue {public:
- Queue()
- /* Constructs a new queue. */
- {this->head = _CleanUp_Queue_NewHead();}
-
- void Set( T* t )
- /* q.Set(t) sets the clean-up queue of BO(t) to be q. */
- {_CleanUp_Queue_Set( this->head, t );}
-
- int Call()
- /* If q is non-empty, q.Call() removes the first object and
- calls its clean-up function; does nothing if q is
- empty. Returns true if there are more objects in the
- queue. */
- {return _CleanUp_Queue_Call( this->head );}
-
- private:
- void* head;
- };
-};
-
-/**********************************************************************
-
-Reachability and Clean-up
-
-An object O is reachable if it can be reached via a non-empty path of
-normal pointers from the registers, stacks, global variables, or an
-object with a non-null clean-up function (including O itself),
-ignoring pointers from an object to itself.
-
-This definition of reachability ensures that if object B is accessible
-from object A (and not vice versa) and if both A and B have clean-up
-functions, then A will always be cleaned up before B. Note that as
-long as an object with a clean-up function is contained in a cycle of
-pointers, it will always be reachable and will never be cleaned up or
-collected.
-
-When the collector finds an unreachable object with a null clean-up
-function, it atomically deactivates all weak pointers referencing the
-object and recycles its storage. If object B is accessible from object
-A via a path of normal pointers, A will be discovered unreachable no
-later than B, and a weak pointer to A will be deactivated no later
-than a weak pointer to B.
-
-When the collector finds an unreachable object with a non-null
-clean-up function, the collector atomically deactivates all weak
-pointers referencing the object, redefines its clean-up function to be
-null, and enqueues it on its clean-up queue. The object then becomes
-reachable again and remains reachable at least until its clean-up
-function executes.
-
-The clean-up function is assured that its argument is the only
-accessible pointer to the object. Nothing prevents the function from
-redefining the object's clean-up function or making the object
-reachable again (for example, by storing the pointer in a global
-variable).
-
-If the clean-up function does not make its object reachable again and
-does not redefine its clean-up function, then the object will be
-collected by a subsequent collection (because the object remains
-unreachable and now has a null clean-up function). If the clean-up
-function does make its object reachable again and a clean-up function
-is subsequently redefined for the object, then the new clean-up
-function will be invoked the next time the collector finds the object
-unreachable.
-
-Note that a destructor for a collected object cannot safely redefine a
-clean-up function for its object, since after the destructor executes,
-the object has been destroyed into "raw memory". (In most
-implementations, destroying an object mutates its vtbl.)
-
-Finally, note that calling delete t on a collected object first
-deactivates any weak pointers to t and then invokes its clean-up
-function (destructor).
-
-**********************************************************************/
-
-extern "C" {
- void* _WeakPointer_New( void* t );
- void* _WeakPointer_Pointer( void* wp );
- int _WeakPointer_Equal( void* wp1, void* wp2 );
- int _WeakPointer_Hash( void* wp );
- void _CleanUp_Set( void* t, void (*c)( void* d, void* t ), void* d );
- void _CleanUp_Call( void* t );
- void* _CleanUp_Queue_NewHead ();
- void _CleanUp_Queue_Set( void* h, void* t );
- int _CleanUp_Queue_Call( void* h );
-}
-
-#endif /* _weakpointer_h_ */
-
-
diff --git a/boehm-gc/linux_threads.c b/boehm-gc/linux_threads.c
deleted file mode 100644
index c3f19b8ec57..00000000000
--- a/boehm-gc/linux_threads.c
+++ /dev/null
@@ -1,774 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1998 by Fergus Henderson. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for LinuxThreads, the clone()-based kernel
- * thread package for Linux which is included in libc6.
- *
- * This code relies on implementation details of LinuxThreads,
- * (i.e. properties not guaranteed by the Pthread standard):
- *
- * - the function GC_linux_thread_top_of_stack(void)
- * relies on the way LinuxThreads lays out thread stacks
- * in the address space.
- *
- * Note that there is a lot of code duplication between linux_threads.c
- * and irix_threads.c; any changes made here may need to be reflected
- * there too.
- */
-
-/* #define DEBUG_THREADS 1 */
-
-/* ANSI C requires that a compilation unit contains something */
-# include "gc_priv.h"
-
-# if defined(LINUX_THREADS)
-
-# include <pthread.h>
-# include <sched.h>
-# include <time.h>
-# include <errno.h>
-# include <unistd.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-# include <semaphore.h>
-# include <signal.h>
-
-#ifdef USE_LD_WRAP
-# define WRAP_FUNC(f) __wrap_##f
-# define REAL_FUNC(f) __real_##f
-#else
-# define WRAP_FUNC(f) GC_##f
-# define REAL_FUNC(f) f
-# undef pthread_create
-# undef pthread_sigmask
-# undef pthread_join
-#endif
-
-
-void GC_thr_init();
-
-#if 0
-void GC_print_sig_mask()
-{
- sigset_t blocked;
- int i;
-
- if (pthread_sigmask(SIG_BLOCK, NULL, &blocked) != 0)
- ABORT("pthread_sigmask");
- GC_printf0("Blocked: ");
- for (i = 1; i <= MAXSIG; i++) {
- if (sigismember(&blocked, i)) { GC_printf1("%ld ",(long) i); }
- }
- GC_printf0("\n");
-}
-#endif
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-/* Protected by GC_thr_lock. */
-/* Some of this should be declared volatile, but that's incosnsistent */
-/* with some library routine declarations. */
-typedef struct GC_Thread_Rep {
- struct GC_Thread_Rep * next; /* More recently allocated threads */
- /* with a given pthread id come */
- /* first. (All but the first are */
- /* guaranteed to be dead, but we may */
- /* not yet have registered the join.) */
- pthread_t id;
- word flags;
-# define FINISHED 1 /* Thread has exited. */
-# define DETACHED 2 /* Thread is intended to be detached. */
-# define MAIN_THREAD 4 /* True for the original thread only. */
-
- ptr_t stack_end; /* Cold end of the stack. */
- ptr_t stack_ptr; /* Valid only when stopped. */
-# ifdef IA64
- ptr_t backing_store_end;
- ptr_t backing_store_ptr;
-# endif
- int signal;
- void * status; /* The value returned from the thread. */
- /* Used only to avoid premature */
- /* reclamation of any data it might */
- /* reference. */
-} * GC_thread;
-
-GC_thread GC_lookup_thread(pthread_t id);
-
-/*
- * The only way to suspend threads given the pthread interface is to send
- * signals. We can't use SIGSTOP directly, because we need to get the
- * thread to save its stack pointer in the GC thread table before
- * suspending. So we have to reserve a signal of our own for this.
- * This means we have to intercept client calls to change the signal mask.
- * The linuxthreads package already uses SIGUSR1 and SIGUSR2,
- * so we need to reuse something else. I chose SIGPWR.
- * (Perhaps SIGUNUSED would be a better choice.)
- */
-#define SIG_SUSPEND SIGPWR
-
-#define SIG_RESTART SIGXCPU
-
-sem_t GC_suspend_ack_sem;
-
-/*
-GC_linux_thread_top_of_stack() relies on implementation details of
-LinuxThreads, namely that thread stacks are allocated on 2M boundaries
-and grow to no more than 2M.
-To make sure that we're using LinuxThreads and not some other thread
-package, we generate a dummy reference to `pthread_kill_other_threads_np'
-(was `__pthread_initial_thread_bos' but that disappeared),
-which is a symbol defined in LinuxThreads, but (hopefully) not in other
-thread packages.
-*/
-void (*dummy_var_to_force_linux_threads)() = pthread_kill_other_threads_np;
-
-#define LINUX_THREADS_STACK_SIZE (2 * 1024 * 1024)
-
-static inline ptr_t GC_linux_thread_top_of_stack(void)
-{
- char *sp = GC_approx_sp();
- ptr_t tos = (ptr_t) (((unsigned long)sp | (LINUX_THREADS_STACK_SIZE - 1)) + 1);
-#if DEBUG_THREADS
- GC_printf1("SP = %lx\n", (unsigned long)sp);
- GC_printf1("TOS = %lx\n", (unsigned long)tos);
-#endif
- return tos;
-}
-
-#if defined(SPARC) || defined(IA64)
- extern word GC_save_regs_in_stack();
-#endif
-
-void GC_suspend_handler(int sig)
-{
- int dummy;
- pthread_t my_thread = pthread_self();
- GC_thread me;
- sigset_t all_sigs;
- sigset_t old_sigs;
- int i;
- sigset_t mask;
-
- if (sig != SIG_SUSPEND) ABORT("Bad signal in suspend_handler");
-
-#if DEBUG_THREADS
- GC_printf1("Suspending 0x%x\n", my_thread);
-#endif
-
- me = GC_lookup_thread(my_thread);
- /* The lookup here is safe, since I'm doing this on behalf */
- /* of a thread which holds the allocation lock in order */
- /* to stop the world. Thus concurrent modification of the */
- /* data structure is impossible. */
-# ifdef SPARC
- me -> stack_ptr = (ptr_t)GC_save_regs_in_stack();
-# else
- me -> stack_ptr = (ptr_t)(&dummy);
-# endif
-# ifdef IA64
- me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack();
-# endif
-
- /* Tell the thread that wants to stop the world that this */
- /* thread has been stopped. Note that sem_post() is */
- /* the only async-signal-safe primitive in LinuxThreads. */
- sem_post(&GC_suspend_ack_sem);
-
- /* Wait until that thread tells us to restart by sending */
- /* this thread a SIG_RESTART signal. */
- /* SIG_RESTART should be masked at this point. Thus there */
- /* is no race. */
- if (sigfillset(&mask) != 0) ABORT("sigfillset() failed");
- if (sigdelset(&mask, SIG_RESTART) != 0) ABORT("sigdelset() failed");
-# ifdef NO_SIGNALS
- if (sigdelset(&mask, SIGINT) != 0) ABORT("sigdelset() failed");
- if (sigdelset(&mask, SIGQUIT) != 0) ABORT("sigdelset() failed");
- if (sigdelset(&mask, SIGTERM) != 0) ABORT("sigdelset() failed");
-# endif
- do {
- me->signal = 0;
- sigsuspend(&mask); /* Wait for signal */
- } while (me->signal != SIG_RESTART);
-
-#if DEBUG_THREADS
- GC_printf1("Continuing 0x%x\n", my_thread);
-#endif
-}
-
-void GC_restart_handler(int sig)
-{
- GC_thread me;
-
- if (sig != SIG_RESTART) ABORT("Bad signal in suspend_handler");
-
- /* Let the GC_suspend_handler() know that we got a SIG_RESTART. */
- /* The lookup here is safe, since I'm doing this on behalf */
- /* of a thread which holds the allocation lock in order */
- /* to stop the world. Thus concurrent modification of the */
- /* data structure is impossible. */
- me = GC_lookup_thread(pthread_self());
- me->signal = SIG_RESTART;
-
- /*
- ** Note: even if we didn't do anything useful here,
- ** it would still be necessary to have a signal handler,
- ** rather than ignoring the signals, otherwise
- ** the signals will not be delivered at all, and
- ** will thus not interrupt the sigsuspend() above.
- */
-
-#if DEBUG_THREADS
- GC_printf1("In GC_restart_handler for 0x%x\n", pthread_self());
-#endif
-}
-
-GC_bool GC_thr_initialized = FALSE;
-
-# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
-volatile GC_thread GC_threads[THREAD_TABLE_SZ];
-
-/* Add a thread to GC_threads. We assume it wasn't already there. */
-/* Caller holds allocation lock. */
-GC_thread GC_new_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- GC_thread result;
- static struct GC_Thread_Rep first_thread;
- static GC_bool first_thread_used = FALSE;
-
- if (!first_thread_used) {
- result = &first_thread;
- first_thread_used = TRUE;
- /* Dont acquire allocation lock, since we may already hold it. */
- } else {
- result = (struct GC_Thread_Rep *)
- GC_generic_malloc_inner(sizeof(struct GC_Thread_Rep), NORMAL);
- }
- if (result == 0) return(0);
- result -> id = id;
- result -> next = GC_threads[hv];
- GC_threads[hv] = result;
- /* result -> flags = 0; */
- return(result);
-}
-
-/* Delete a thread from GC_threads. We assume it is there. */
-/* (The code intentionally traps if it wasn't.) */
-/* Caller holds allocation lock. */
-void GC_delete_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (!pthread_equal(p -> id, id)) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* If a thread has been joined, but we have not yet */
-/* been notified, then there may be more than one thread */
-/* in the table with the same pthread id. */
-/* This is OK, but we need a way to delete a specific one. */
-void GC_delete_gc_thread(pthread_t id, GC_thread gc_id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (p != gc_id) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* Return a GC_thread corresponding to a given thread_t. */
-/* Returns 0 if it's not there. */
-/* Caller holds allocation lock or otherwise inhibits */
-/* updates. */
-/* If there is more than one thread with the given id we */
-/* return the most recent one. */
-GC_thread GC_lookup_thread(pthread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
-
- while (p != 0 && !pthread_equal(p -> id, id)) p = p -> next;
- return(p);
-}
-
-/* Caller holds allocation lock. */
-void GC_stop_world()
-{
- pthread_t my_thread = pthread_self();
- register int i;
- register GC_thread p;
- register int n_live_threads = 0;
- register int result;
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> id != my_thread) {
- if (p -> flags & FINISHED) continue;
- n_live_threads++;
- #if DEBUG_THREADS
- GC_printf1("Sending suspend signal to 0x%x\n", p -> id);
- #endif
- result = pthread_kill(p -> id, SIG_SUSPEND);
- switch(result) {
- case ESRCH:
- /* Not really there anymore. Possible? */
- n_live_threads--;
- break;
- case 0:
- break;
- default:
- ABORT("pthread_kill failed");
- }
- }
- }
- }
- for (i = 0; i < n_live_threads; i++) {
- sem_wait(&GC_suspend_ack_sem);
- }
- #if DEBUG_THREADS
- GC_printf1("World stopped 0x%x\n", pthread_self());
- #endif
-}
-
-/* Caller holds allocation lock. */
-void GC_start_world()
-{
- pthread_t my_thread = pthread_self();
- register int i;
- register GC_thread p;
- register int n_live_threads = 0;
- register int result;
-
-# if DEBUG_THREADS
- GC_printf0("World starting\n");
-# endif
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> id != my_thread) {
- if (p -> flags & FINISHED) continue;
- n_live_threads++;
- #if DEBUG_THREADS
- GC_printf1("Sending restart signal to 0x%x\n", p -> id);
- #endif
- result = pthread_kill(p -> id, SIG_RESTART);
- switch(result) {
- case ESRCH:
- /* Not really there anymore. Possible? */
- n_live_threads--;
- break;
- case 0:
- break;
- default:
- ABORT("pthread_kill failed");
- }
- }
- }
- }
- #if DEBUG_THREADS
- GC_printf0("World started\n");
- #endif
-}
-
-# ifdef IA64
-# define IF_IA64(x) x
-# else
-# define IF_IA64(x)
-# endif
-/* We hold allocation lock. Should do exactly the right thing if the */
-/* world is stopped. Should not fail if it isn't. */
-void GC_push_all_stacks()
-{
- int i;
- GC_thread p;
- ptr_t sp = GC_approx_sp();
- ptr_t lo, hi;
- /* On IA64, we also need to scan the register backing store. */
- IF_IA64(ptr_t bs_lo; ptr_t bs_hi;)
- pthread_t me = pthread_self();
-
- if (!GC_thr_initialized) GC_thr_init();
- #if DEBUG_THREADS
- GC_printf1("Pushing stacks from thread 0x%lx\n", (unsigned long) me);
- #endif
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> flags & FINISHED) continue;
- if (pthread_equal(p -> id, me)) {
-# ifdef SPARC
- lo = (ptr_t)GC_save_regs_in_stack();
-# else
- lo = GC_approx_sp();
-# endif
- IF_IA64(bs_hi = (ptr_t)GC_save_regs_in_stack();)
- } else {
- lo = p -> stack_ptr;
- IF_IA64(bs_hi = p -> backing_store_ptr;)
- }
- if ((p -> flags & MAIN_THREAD) == 0) {
- hi = p -> stack_end;
- IF_IA64(bs_lo = p -> backing_store_end);
- } else {
- /* The original stack. */
- hi = GC_stackbottom;
- IF_IA64(bs_lo = BACKING_STORE_BASE;)
- }
- #if DEBUG_THREADS
- GC_printf3("Stack for thread 0x%lx = [%lx,%lx)\n",
- (unsigned long) p -> id,
- (unsigned long) lo, (unsigned long) hi);
- #endif
- if (0 == lo) ABORT("GC_push_all_stacks: sp not set!\n");
- GC_push_all_stack(lo, hi);
-# ifdef IA64
- if (pthread_equal(p -> id, me)) {
- GC_push_all_eager(bs_lo, bs_hi);
- } else {
- GC_push_all_stack(bs_lo, bs_hi);
- }
-# endif
- }
- }
-}
-
-
-/* We hold the allocation lock. */
-void GC_thr_init()
-{
- int dummy;
- GC_thread t;
- struct sigaction act;
-
- if (GC_thr_initialized) return;
- GC_thr_initialized = TRUE;
-
- if (sem_init(&GC_suspend_ack_sem, 0, 0) != 0)
- ABORT("sem_init failed");
-
- act.sa_flags = SA_RESTART;
- if (sigfillset(&act.sa_mask) != 0) {
- ABORT("sigfillset() failed");
- }
-
-# ifdef NO_SIGNALS
- if (sigdelset(&act.sa_mask, SIGINT) != 0
- || sigdelset(&act.sa_mask, SIGQUIT != 0)
- || sigdelset(&act.sa_mask, SIGTERM != 0)) {
- ABORT("sigdelset() failed");
- }
-# endif
-
- /* SIG_RESTART is unmasked by the handler when necessary. */
- act.sa_handler = GC_suspend_handler;
- if (sigaction(SIG_SUSPEND, &act, NULL) != 0) {
- ABORT("Cannot set SIG_SUSPEND handler");
- }
-
- act.sa_handler = GC_restart_handler;
- if (sigaction(SIG_RESTART, &act, NULL) != 0) {
- ABORT("Cannot set SIG_SUSPEND handler");
- }
-
- /* Add the initial thread, so we can stop it. */
- t = GC_new_thread(pthread_self());
- t -> stack_ptr = (ptr_t)(&dummy);
- t -> flags = DETACHED | MAIN_THREAD;
-}
-
-int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset)
-{
- sigset_t fudged_set;
-
- if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
- fudged_set = *set;
- sigdelset(&fudged_set, SIG_SUSPEND);
- set = &fudged_set;
- }
- return(REAL_FUNC(pthread_sigmask)(how, set, oset));
-}
-
-struct start_info {
- void *(*start_routine)(void *);
- void *arg;
- word flags;
- sem_t registered; /* 1 ==> in our thread table, but */
- /* parent hasn't yet noticed. */
-};
-
-
-void GC_thread_exit_proc(void *arg)
-{
- GC_thread me;
- struct start_info * si = arg;
-
- LOCK();
- me = GC_lookup_thread(pthread_self());
- if (me -> flags & DETACHED) {
- GC_delete_thread(pthread_self());
- } else {
- me -> flags |= FINISHED;
- }
- if (GC_incremental && GC_collection_in_progress()) {
- int old_gc_no = GC_gc_no;
-
- /* Make sure that no part of our stack is still on the mark stack, */
- /* since it's about to be unmapped. */
- while (GC_incremental && GC_collection_in_progress()
- && old_gc_no == GC_gc_no) {
- ENTER_GC();
- GC_collect_a_little_inner(1);
- EXIT_GC();
- UNLOCK();
- sched_yield();
- LOCK();
- }
- }
- UNLOCK();
-}
-
-int WRAP_FUNC(pthread_join)(pthread_t thread, void **retval)
-{
- int result;
- GC_thread thread_gc_id;
-
- LOCK();
- thread_gc_id = GC_lookup_thread(thread);
- /* This is guaranteed to be the intended one, since the thread id */
- /* cant have been recycled by pthreads. */
- UNLOCK();
- result = REAL_FUNC(pthread_join)(thread, retval);
- LOCK();
- /* Here the pthread thread id may have been recycled. */
- GC_delete_gc_thread(thread, thread_gc_id);
- UNLOCK();
- return result;
-}
-
-void * GC_start_routine(void * arg)
-{
- int dummy;
- struct start_info * si = arg;
- void * result;
- GC_thread me;
- pthread_t my_pthread;
- void *(*start)(void *);
- void *start_arg;
-
- my_pthread = pthread_self();
-# ifdef DEBUG_THREADS
- GC_printf1("Starting thread 0x%lx\n", my_pthread);
- GC_printf1("pid = %ld\n", (long) getpid());
- GC_printf1("sp = 0x%lx\n", (long) &arg);
-# endif
- LOCK();
- me = GC_new_thread(my_pthread);
- me -> flags = si -> flags;
- me -> stack_ptr = 0;
- /* me -> stack_end = GC_linux_stack_base(); -- currently (11/99) */
- /* doesn't work because the stack base in /proc/self/stat is the */
- /* one for the main thread. There is a strong argument that that's */
- /* a kernel bug, but a pervasive one. */
-# ifdef STACK_GROWS_DOWN
- me -> stack_end = (ptr_t)(((word)(&dummy) + (GC_page_size - 1))
- & ~(GC_page_size - 1));
- me -> stack_ptr = me -> stack_end - 0x10;
- /* Needs to be plausible, since an asynchronous stack mark */
- /* should not crash. */
-# else
- me -> stack_end = (ptr_t)(((word)(&dummy) & ~(GC_page_size - 1));
- me -> stack_ptr = me -> stack_end + 0x10;
-# endif
- /* This is dubious, since we may be more than a page into the stack, */
- /* and hence skip some of it, though it's not clear that matters. */
-# ifdef IA64
- me -> backing_store_end = (ptr_t)
- (GC_save_regs_in_stack() & ~(GC_page_size - 1));
- /* This is also < 100% convincing. We should also read this */
- /* from /proc, but the hook to do so isn't there yet. */
-# endif /* IA64 */
- UNLOCK();
- start = si -> start_routine;
-# ifdef DEBUG_THREADS
- GC_printf1("start_routine = 0x%lx\n", start);
-# endif
- start_arg = si -> arg;
- sem_post(&(si -> registered));
- pthread_cleanup_push(GC_thread_exit_proc, si);
- result = (*start)(start_arg);
-#if DEBUG_THREADS
- GC_printf1("Finishing thread 0x%x\n", pthread_self());
-#endif
- me -> status = result;
- me -> flags |= FINISHED;
- pthread_cleanup_pop(1);
- /* Cleanup acquires lock, ensuring that we can't exit */
- /* while a collection that thinks we're alive is trying to stop */
- /* us. */
- return(result);
-}
-
-int
-WRAP_FUNC(pthread_create)(pthread_t *new_thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void *), void *arg)
-{
- int result;
- GC_thread t;
- pthread_t my_new_thread;
- void * stack;
- size_t stacksize;
- pthread_attr_t new_attr;
- int detachstate;
- word my_flags = 0;
- struct start_info * si = GC_malloc(sizeof(struct start_info));
- /* This is otherwise saved only in an area mmapped by the thread */
- /* library, which isn't visible to the collector. */
-
- if (0 == si) return(ENOMEM);
- sem_init(&(si -> registered), 0, 0);
- si -> start_routine = start_routine;
- si -> arg = arg;
- LOCK();
- if (!GC_thr_initialized) GC_thr_init();
- if (NULL == attr) {
- stack = 0;
- (void) pthread_attr_init(&new_attr);
- } else {
- new_attr = *attr;
- }
- pthread_attr_getdetachstate(&new_attr, &detachstate);
- if (PTHREAD_CREATE_DETACHED == detachstate) my_flags |= DETACHED;
- si -> flags = my_flags;
- UNLOCK();
-# ifdef DEBUG_THREADS
- GC_printf1("About to start new thread from thread 0x%X\n",
- pthread_self());
-# endif
- result = REAL_FUNC(pthread_create)(new_thread, &new_attr, GC_start_routine, si);
-# ifdef DEBUG_THREADS
- GC_printf1("Started thread 0x%X\n", *new_thread);
-# endif
- /* Wait until child has been added to the thread table. */
- /* This also ensures that we hold onto si until the child is done */
- /* with it. Thus it doesn't matter whether it is otherwise */
- /* visible to the collector. */
- if (0 != sem_wait(&(si -> registered))) ABORT("sem_wait failed");
- sem_destroy(&(si -> registered));
- /* pthread_attr_destroy(&new_attr); */
- /* pthread_attr_destroy(&new_attr); */
- return(result);
-}
-
-#if defined(USE_SPIN_LOCK)
-
-VOLATILE GC_bool GC_collecting = 0;
- /* A hint that we're in the collector and */
- /* holding the allocation lock for an */
- /* extended period. */
-
-/* Reasonably fast spin locks. Basically the same implementation */
-/* as STL alloc.h. This isn't really the right way to do this. */
-/* but until the POSIX scheduling mess gets straightened out ... */
-
-volatile unsigned int GC_allocate_lock = 0;
-
-
-void GC_lock()
-{
-# define low_spin_max 30 /* spin cycles if we suspect uniprocessor */
-# define high_spin_max 1000 /* spin cycles for multiprocessor */
- static unsigned spin_max = low_spin_max;
- unsigned my_spin_max;
- static unsigned last_spins = 0;
- unsigned my_last_spins;
- volatile unsigned junk;
-# define PAUSE junk *= junk; junk *= junk; junk *= junk; junk *= junk
- int i;
-
- if (!GC_test_and_set(&GC_allocate_lock)) {
- return;
- }
- junk = 0;
- my_spin_max = spin_max;
- my_last_spins = last_spins;
- for (i = 0; i < my_spin_max; i++) {
- if (GC_collecting) goto yield;
- if (i < my_last_spins/2 || GC_allocate_lock) {
- PAUSE;
- continue;
- }
- if (!GC_test_and_set(&GC_allocate_lock)) {
- /*
- * got it!
- * Spinning worked. Thus we're probably not being scheduled
- * against the other process with which we were contending.
- * Thus it makes sense to spin longer the next time.
- */
- last_spins = i;
- spin_max = high_spin_max;
- return;
- }
- }
- /* We are probably being scheduled against the other process. Sleep. */
- spin_max = low_spin_max;
-yield:
- for (i = 0;; ++i) {
- if (!GC_test_and_set(&GC_allocate_lock)) {
- return;
- }
-# define SLEEP_THRESHOLD 12
- /* nanosleep(<= 2ms) just spins under Linux. We */
- /* want to be careful to avoid that behavior. */
- if (i < SLEEP_THRESHOLD) {
- sched_yield();
- } else {
- struct timespec ts;
-
- if (i > 26) i = 26;
- /* Don't wait for more than about 60msecs, even */
- /* under extreme contention. */
- ts.tv_sec = 0;
- ts.tv_nsec = 1 << i;
- nanosleep(&ts, 0);
- }
- }
-}
-
-#endif /* known architecture */
-
-# endif /* LINUX_THREADS */
-
diff --git a/boehm-gc/mach_dep.c b/boehm-gc/mach_dep.c
deleted file mode 100644
index 2936fd7f992..00000000000
--- a/boehm-gc/mach_dep.c
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, November 17, 1995 12:13 pm PST */
-# include "gc_priv.h"
-# include <stdio.h>
-# include <setjmp.h>
-# if defined(OS2) || defined(CX_UX)
-# define _setjmp(b) setjmp(b)
-# define _longjmp(b,v) longjmp(b,v)
-# endif
-# ifdef AMIGA
-# ifndef __GNUC__
-# include <dos/dos.h>
-# else
-# include <machine/reg.h>
-# endif
-# endif
-
-#if defined(__MWERKS__) && !defined(POWERPC)
-
-asm static void PushMacRegisters()
-{
- sub.w #4,sp // reserve space for one parameter.
- move.l a2,(sp)
- jsr GC_push_one
- move.l a3,(sp)
- jsr GC_push_one
- move.l a4,(sp)
- jsr GC_push_one
-# if !__option(a6frames)
- // <pcb> perhaps a6 should be pushed if stack frames are not being used.
- move.l a6,(sp)
- jsr GC_push_one
-# endif
- // skip a5 (globals), a6 (frame pointer), and a7 (stack pointer)
- move.l d2,(sp)
- jsr GC_push_one
- move.l d3,(sp)
- jsr GC_push_one
- move.l d4,(sp)
- jsr GC_push_one
- move.l d5,(sp)
- jsr GC_push_one
- move.l d6,(sp)
- jsr GC_push_one
- move.l d7,(sp)
- jsr GC_push_one
- add.w #4,sp // fix stack.
- rts
-}
-
-#endif /* __MWERKS__ */
-
-# if defined(SPARC) || defined(IA64)
- /* Value returned from register flushing routine; either sp (SPARC) */
- /* or ar.bsp (IA64) */
- word GC_save_regs_ret_val;
-# endif
-
-/* Routine to mark from registers that are preserved by the C compiler. */
-/* This must be ported to every new architecture. There is a generic */
-/* version at the end, that is likely, but not guaranteed to work */
-/* on your architecture. Run the test_setjmp program to see whether */
-/* there is any chance it will work. */
-
-#ifndef USE_GENERIC_PUSH_REGS
-void GC_push_regs()
-{
-# ifdef RT
- register long TMP_SP; /* must be bound to r11 */
-# endif
-
-# if defined(MIPS) && defined(LINUX)
- /* I'm not sure whether this has actually been tested. */
-# define call_push(x) asm("move $4," x ";"); asm("jal GC_push_one")
- call_push("$2");
- call_push("$3");
- call_push("$16");
- call_push("$17");
- call_push("$18");
- call_push("$19");
- call_push("$20");
- call_push("$21");
- call_push("$22");
- call_push("$23");
- call_push("$30");
-# undef call_push
-# endif /* MIPS && LINUX */
-
-# ifdef VAX
- /* VAX - generic code below does not work under 4.2 */
- /* r1 through r5 are caller save, and therefore */
- /* on the stack or dead. */
- asm("pushl r11"); asm("calls $1,_GC_push_one");
- asm("pushl r10"); asm("calls $1,_GC_push_one");
- asm("pushl r9"); asm("calls $1,_GC_push_one");
- asm("pushl r8"); asm("calls $1,_GC_push_one");
- asm("pushl r7"); asm("calls $1,_GC_push_one");
- asm("pushl r6"); asm("calls $1,_GC_push_one");
-# endif
-# if defined(M68K) && (defined(SUNOS4) || defined(NEXT))
- /* M68K SUNOS - could be replaced by generic code */
- /* a0, a1 and d1 are caller save */
- /* and therefore are on stack or dead. */
-
- asm("subqw #0x4,sp"); /* allocate word on top of stack */
-
- asm("movl a2,sp@"); asm("jbsr _GC_push_one");
- asm("movl a3,sp@"); asm("jbsr _GC_push_one");
- asm("movl a4,sp@"); asm("jbsr _GC_push_one");
- asm("movl a5,sp@"); asm("jbsr _GC_push_one");
- /* Skip frame pointer and stack pointer */
- asm("movl d1,sp@"); asm("jbsr _GC_push_one");
- asm("movl d2,sp@"); asm("jbsr _GC_push_one");
- asm("movl d3,sp@"); asm("jbsr _GC_push_one");
- asm("movl d4,sp@"); asm("jbsr _GC_push_one");
- asm("movl d5,sp@"); asm("jbsr _GC_push_one");
- asm("movl d6,sp@"); asm("jbsr _GC_push_one");
- asm("movl d7,sp@"); asm("jbsr _GC_push_one");
-
- asm("addqw #0x4,sp"); /* put stack back where it was */
-# endif
-
-# if defined(M68K) && defined(HP)
- /* M68K HP - could be replaced by generic code */
- /* a0, a1 and d1 are caller save. */
-
- asm("subq.w &0x4,%sp"); /* allocate word on top of stack */
-
- asm("mov.l %a2,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a3,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a4,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a5,(%sp)"); asm("jsr _GC_push_one");
- /* Skip frame pointer and stack pointer */
- asm("mov.l %d1,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d2,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d3,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d4,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d5,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d6,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d7,(%sp)"); asm("jsr _GC_push_one");
-
- asm("addq.w &0x4,%sp"); /* put stack back where it was */
-# endif /* M68K HP */
-
-# if defined(M68K) && defined(AMIGA)
- /* AMIGA - could be replaced by generic code */
- /* a0, a1, d0 and d1 are caller save */
-
-# ifdef __GNUC__
- asm("subq.w &0x4,%sp"); /* allocate word on top of stack */
-
- asm("mov.l %a2,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a3,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a4,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a5,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %a6,(%sp)"); asm("jsr _GC_push_one");
- /* Skip frame pointer and stack pointer */
- asm("mov.l %d2,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d3,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d4,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d5,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d6,(%sp)"); asm("jsr _GC_push_one");
- asm("mov.l %d7,(%sp)"); asm("jsr _GC_push_one");
-
- asm("addq.w &0x4,%sp"); /* put stack back where it was */
-# else /* !__GNUC__ */
- GC_push_one(getreg(REG_A2));
- GC_push_one(getreg(REG_A3));
- GC_push_one(getreg(REG_A4));
- GC_push_one(getreg(REG_A5));
- GC_push_one(getreg(REG_A6));
- /* Skip stack pointer */
- GC_push_one(getreg(REG_D2));
- GC_push_one(getreg(REG_D3));
- GC_push_one(getreg(REG_D4));
- GC_push_one(getreg(REG_D5));
- GC_push_one(getreg(REG_D6));
- GC_push_one(getreg(REG_D7));
-# endif /* !__GNUC__ */
-# endif /* AMIGA */
-
-# if defined(M68K) && defined(MACOS)
-# if defined(THINK_C)
-# define PushMacReg(reg) \
- move.l reg,(sp) \
- jsr GC_push_one
- asm {
- sub.w #4,sp ; reserve space for one parameter.
- PushMacReg(a2);
- PushMacReg(a3);
- PushMacReg(a4);
- ; skip a5 (globals), a6 (frame pointer), and a7 (stack pointer)
- PushMacReg(d2);
- PushMacReg(d3);
- PushMacReg(d4);
- PushMacReg(d5);
- PushMacReg(d6);
- PushMacReg(d7);
- add.w #4,sp ; fix stack.
- }
-# undef PushMacReg
-# endif /* THINK_C */
-# if defined(__MWERKS__)
- PushMacRegisters();
-# endif /* __MWERKS__ */
-# endif /* MACOS */
-
-# if defined(I386) &&!defined(OS2) &&!defined(SVR4) \
- && (defined(__MINGW32__) || !defined(MSWIN32)) \
- && !defined(SCO) && !defined(SCO_ELF) \
- && !(defined(LINUX) && defined(__ELF__)) \
- && !(defined(FREEBSD) && defined(__ELF__)) \
- && !defined(DOS4GW)
- /* I386 code, generic code does not appear to work */
- /* It does appear to work under OS2, and asms dont */
- /* This is used for some 38g UNIX variants and for CYGWIN32 */
- asm("pushl %eax"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ecx"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %edx"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ebp"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %esi"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %edi"); asm("call _GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ebx"); asm("call _GC_push_one"); asm("addl $4,%esp");
-# endif
-
-# if ( defined(I386) && defined(LINUX) && defined(__ELF__) ) \
- || ( defined(I386) && defined(FREEBSD) && defined(__ELF__) )
-
- /* This is modified for Linux with ELF (Note: _ELF_ only) */
- /* This section handles FreeBSD with ELF. */
- /* Eax is caller-save and dead here. Other caller-save */
- /* registers could also be skipped. We assume there are no */
- /* pointers in MMX registers, etc. */
- /* We combine instructions in a single asm to prevent gcc from */
- /* inserting code in the middle. */
- asm("pushl %ecx; call GC_push_one; addl $4,%esp");
- asm("pushl %edx; call GC_push_one; addl $4,%esp");
- asm("pushl %ebp; call GC_push_one; addl $4,%esp");
- asm("pushl %esi; call GC_push_one; addl $4,%esp");
- asm("pushl %edi; call GC_push_one; addl $4,%esp");
- asm("pushl %ebx; call GC_push_one; addl $4,%esp");
-# endif
-
-# if defined(I386) && defined(MSWIN32) && !defined(__MINGW32__) \
- && !defined(USE_GENERIC)
- /* I386 code, Microsoft variant */
- __asm push eax
- __asm call GC_push_one
- __asm add esp,4
- __asm push ebx
- __asm call GC_push_one
- __asm add esp,4
- __asm push ecx
- __asm call GC_push_one
- __asm add esp,4
- __asm push edx
- __asm call GC_push_one
- __asm add esp,4
- __asm push ebp
- __asm call GC_push_one
- __asm add esp,4
- __asm push esi
- __asm call GC_push_one
- __asm add esp,4
- __asm push edi
- __asm call GC_push_one
- __asm add esp,4
-# endif
-
-# if defined(I386) && (defined(SVR4) || defined(SCO) || defined(SCO_ELF))
- /* I386 code, SVR4 variant, generic code does not appear to work */
- asm("pushl %eax"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ebx"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ecx"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %edx"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %ebp"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %esi"); asm("call GC_push_one"); asm("addl $4,%esp");
- asm("pushl %edi"); asm("call GC_push_one"); asm("addl $4,%esp");
-# endif
-
-# ifdef NS32K
- asm ("movd r3, tos"); asm ("bsr ?_GC_push_one"); asm ("adjspb $-4");
- asm ("movd r4, tos"); asm ("bsr ?_GC_push_one"); asm ("adjspb $-4");
- asm ("movd r5, tos"); asm ("bsr ?_GC_push_one"); asm ("adjspb $-4");
- asm ("movd r6, tos"); asm ("bsr ?_GC_push_one"); asm ("adjspb $-4");
- asm ("movd r7, tos"); asm ("bsr ?_GC_push_one"); asm ("adjspb $-4");
-# endif
-
-# if defined(SPARC)
- {
- word GC_save_regs_in_stack();
-
- GC_save_regs_ret_val = GC_save_regs_in_stack();
- }
-# endif
-
-# ifdef RT
- GC_push_one(TMP_SP); /* GC_push_one from r11 */
-
- asm("cas r11, r6, r0"); GC_push_one(TMP_SP); /* r6 */
- asm("cas r11, r7, r0"); GC_push_one(TMP_SP); /* through */
- asm("cas r11, r8, r0"); GC_push_one(TMP_SP); /* r10 */
- asm("cas r11, r9, r0"); GC_push_one(TMP_SP);
- asm("cas r11, r10, r0"); GC_push_one(TMP_SP);
-
- asm("cas r11, r12, r0"); GC_push_one(TMP_SP); /* r12 */
- asm("cas r11, r13, r0"); GC_push_one(TMP_SP); /* through */
- asm("cas r11, r14, r0"); GC_push_one(TMP_SP); /* r15 */
- asm("cas r11, r15, r0"); GC_push_one(TMP_SP);
-# endif
-
-# if defined(M68K) && defined(SYSV)
- /* Once again similar to SUN and HP, though setjmp appears to work.
- --Parag
- */
-# ifdef __GNUC__
- asm("subqw #0x4,%sp"); /* allocate word on top of stack */
-
- asm("movl %a2,%sp@"); asm("jbsr GC_push_one");
- asm("movl %a3,%sp@"); asm("jbsr GC_push_one");
- asm("movl %a4,%sp@"); asm("jbsr GC_push_one");
- asm("movl %a5,%sp@"); asm("jbsr GC_push_one");
- /* Skip frame pointer and stack pointer */
- asm("movl %d1,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d2,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d3,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d4,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d5,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d6,%sp@"); asm("jbsr GC_push_one");
- asm("movl %d7,%sp@"); asm("jbsr GC_push_one");
-
- asm("addqw #0x4,%sp"); /* put stack back where it was */
-# else /* !__GNUC__*/
- asm("subq.w &0x4,%sp"); /* allocate word on top of stack */
-
- asm("mov.l %a2,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %a3,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %a4,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %a5,(%sp)"); asm("jsr GC_push_one");
- /* Skip frame pointer and stack pointer */
- asm("mov.l %d1,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d2,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d3,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d4,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d5,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d6,(%sp)"); asm("jsr GC_push_one");
- asm("mov.l %d7,(%sp)"); asm("jsr GC_push_one");
-
- asm("addq.w &0x4,%sp"); /* put stack back where it was */
-# endif /* !__GNUC__ */
-# endif /* M68K/SYSV */
-
-# if defined(PJ)
- {
- register int * sp asm ("optop");
- extern int *__libc_stack_end;
-
- GC_push_all_stack (sp, __libc_stack_end);
- }
-# endif
-
- /* other machines... */
-# if !(defined M68K) && !(defined VAX) && !(defined RT)
-# if !(defined SPARC) && !(defined I386) && !(defined NS32K)
-# if !defined(POWERPC) && !defined(UTS4)
-# if !defined(PJ) && !(defined(MIPS) && defined(LINUX))
- --> bad news <--
-# endif
-# endif
-# endif
-# endif
-}
-#endif /* !USE_GENERIC_PUSH_REGS */
-
-#if defined(USE_GENERIC_PUSH_REGS)
-void GC_generic_push_regs(cold_gc_frame)
-ptr_t cold_gc_frame;
-{
- /* Generic code */
- /* The idea is due to Parag Patel at HP. */
- /* We're not sure whether he would like */
- /* to be he acknowledged for it or not. */
- {
- static jmp_buf regs;
- register word * i = (word *) regs;
- register ptr_t lim = (ptr_t)(regs) + (sizeof regs);
-
- /* Setjmp on Sun 3s doesn't clear all of the buffer. */
- /* That tends to preserve garbage. Clear it. */
- for (; (char *)i < lim; i++) {
- *i = 0;
- }
-# if defined(POWERPC) || defined(MSWIN32) || defined(UTS4) || defined(LINUX)
- (void) setjmp(regs);
-# else
- (void) _setjmp(regs);
-# endif
-# if defined(SPARC) || defined(IA64)
- /* On a register window machine, we need to save register */
- /* contents on the stack for this to work. The setjmp */
- /* is probably not needed on SPARC, since pointers are */
- /* only stored in windowed or scratch registers. It is */
- /* needed on IA64, since some non-windowed registers are */
- /* preserved. */
- {
- word GC_save_regs_in_stack();
-
- GC_save_regs_ret_val = GC_save_regs_in_stack();
- }
-# endif
- GC_push_current_stack(cold_gc_frame);
- }
-}
-#endif /* USE_GENERIC_PUSH_REGS */
-
-/* On register window machines, we need a way to force registers into */
-/* the stack. Return sp. */
-# ifdef SPARC
- asm(" .seg \"text\"");
-# ifdef SVR4
- asm(" .globl GC_save_regs_in_stack");
- asm("GC_save_regs_in_stack:");
- asm(" .type GC_save_regs_in_stack,#function");
-# else
- asm(" .globl _GC_save_regs_in_stack");
- asm("_GC_save_regs_in_stack:");
-# endif
-# if defined(__arch64__) || defined(__sparcv9)
- asm(" save %sp,-128,%sp");
- asm(" flushw");
- asm(" ret");
- asm(" restore %sp,2047+128,%o0");
-# else
- asm(" ta 0x3 ! ST_FLUSH_WINDOWS");
- asm(" retl");
- asm(" mov %sp,%o0");
-#endif
-# ifdef SVR4
- asm(" .GC_save_regs_in_stack_end:");
- asm(" .size GC_save_regs_in_stack,.GC_save_regs_in_stack_end-GC_save_regs_in_stack");
-# endif
-# ifdef LINT
- word GC_save_regs_in_stack() { return(0 /* sp really */);}
-# endif
-# endif
-
-/* On IA64, we also need to flush register windows. But they end */
-/* up on the other side of the stack segment. */
-/* Returns the backing store pointer for the register stack. */
-# ifdef IA64
- asm(" .text");
- asm(" .psr abi64");
- asm(" .psr lsb");
- asm(" .lsb");
- asm("");
- asm(" .text");
- asm(" .align 16");
- asm(" .global GC_save_regs_in_stack");
- asm(" .proc GC_save_regs_in_stack");
- asm("GC_save_regs_in_stack:");
- asm(" .body");
- asm(" flushrs");
- asm(" ;;");
- asm(" mov r8=ar.bsp");
- asm(" br.ret.sptk.few rp");
- asm(" .endp GC_save_regs_in_stack");
-# endif
-
-/* GC_clear_stack_inner(arg, limit) clears stack area up to limit and */
-/* returns arg. Stack clearing is crucial on SPARC, so we supply */
-/* an assembly version that's more careful. Assumes limit is hotter */
-/* than sp, and limit is 8 byte aligned. */
-#if defined(ASM_CLEAR_CODE) && !defined(THREADS)
-#ifndef SPARC
- --> fix it
-#endif
-# ifdef SUNOS4
- asm(".globl _GC_clear_stack_inner");
- asm("_GC_clear_stack_inner:");
-# else
- asm(".globl GC_clear_stack_inner");
- asm("GC_clear_stack_inner:");
- asm(".type GC_save_regs_in_stack,#function");
-# endif
-#if defined(__arch64__) || defined(__sparcv9)
- asm("mov %sp,%o2"); /* Save sp */
- asm("add %sp,2047-8,%o3"); /* p = sp+bias-8 */
- asm("add %o1,-2047-192,%sp"); /* Move sp out of the way, */
- /* so that traps still work. */
- /* Includes some extra words */
- /* so we can be sloppy below. */
- asm("loop:");
- asm("stx %g0,[%o3]"); /* *(long *)p = 0 */
- asm("cmp %o3,%o1");
- asm("bgu,pt %xcc, loop"); /* if (p > limit) goto loop */
- asm("add %o3,-8,%o3"); /* p -= 8 (delay slot) */
- asm("retl");
- asm("mov %o2,%sp"); /* Restore sp., delay slot */
-#else
- asm("mov %sp,%o2"); /* Save sp */
- asm("add %sp,-8,%o3"); /* p = sp-8 */
- asm("clr %g1"); /* [g0,g1] = 0 */
- asm("add %o1,-0x60,%sp"); /* Move sp out of the way, */
- /* so that traps still work. */
- /* Includes some extra words */
- /* so we can be sloppy below. */
- asm("loop:");
- asm("std %g0,[%o3]"); /* *(long long *)p = 0 */
- asm("cmp %o3,%o1");
- asm("bgu loop "); /* if (p > limit) goto loop */
- asm("add %o3,-8,%o3"); /* p -= 8 (delay slot) */
- asm("retl");
- asm("mov %o2,%sp"); /* Restore sp., delay slot */
-#endif
- /* First argument = %o0 = return value */
-# ifdef SVR4
- asm(" .GC_clear_stack_inner_end:");
- asm(" .size GC_clear_stack_inner,.GC_clear_stack_inner_end-GC_clear_stack_inner");
-# endif
-
-# ifdef LINT
- /*ARGSUSED*/
- ptr_t GC_clear_stack_inner(arg, limit)
- ptr_t arg; word limit;
- { return(arg); }
-# endif
-#endif
diff --git a/boehm-gc/makefile.depend b/boehm-gc/makefile.depend
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/boehm-gc/makefile.depend
+++ /dev/null
diff --git a/boehm-gc/malloc.c b/boehm-gc/malloc.c
deleted file mode 100644
index a5a93ad8119..00000000000
--- a/boehm-gc/malloc.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 7, 1996 4:32 pm PST */
-
-#include <stdio.h>
-#include "gc_priv.h"
-
-extern ptr_t GC_clear_stack(); /* in misc.c, behaves like identity */
-void GC_extend_size_map(); /* in misc.c. */
-
-/* Allocate reclaim list for kind: */
-/* Return TRUE on success */
-GC_bool GC_alloc_reclaim_list(kind)
-register struct obj_kind * kind;
-{
- struct hblk ** result = (struct hblk **)
- GC_scratch_alloc((MAXOBJSZ+1) * sizeof(struct hblk *));
- if (result == 0) return(FALSE);
- BZERO(result, (MAXOBJSZ+1)*sizeof(struct hblk *));
- kind -> ok_reclaim_list = result;
- return(TRUE);
-}
-
-/* allocate lb bytes for an object of kind. */
-/* Should not be used to directly to allocate */
-/* objects such as STUBBORN objects that */
-/* require special handling on allocation. */
-/* First a version that assumes we already */
-/* hold lock: */
-ptr_t GC_generic_malloc_inner(lb, k)
-register word lb;
-register int k;
-{
-register word lw;
-register ptr_t op;
-register ptr_t *opp;
-
- if( SMALL_OBJ(lb) ) {
- register struct obj_kind * kind = GC_obj_kinds + k;
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
- if (lw == 0) lw = 1;
-# endif
- opp = &(kind -> ok_freelist[lw]);
- if( (op = *opp) == 0 ) {
-# ifdef MERGE_SIZES
- if (GC_size_map[lb] == 0) {
- if (!GC_is_initialized) GC_init_inner();
- if (GC_size_map[lb] == 0) GC_extend_size_map(lb);
- return(GC_generic_malloc_inner(lb, k));
- }
-# else
- if (!GC_is_initialized) {
- GC_init_inner();
- return(GC_generic_malloc_inner(lb, k));
- }
-# endif
- if (kind -> ok_reclaim_list == 0) {
- if (!GC_alloc_reclaim_list(kind)) goto out;
- }
- op = GC_allocobj(lw, k);
- if (op == 0) goto out;
- }
- /* Here everything is in a consistent state. */
- /* We assume the following assignment is */
- /* atomic. If we get aborted */
- /* after the assignment, we lose an object, */
- /* but that's benign. */
- /* Volatile declarations may need to be added */
- /* to prevent the compiler from breaking things.*/
- /* If we only execute the second of the */
- /* following assignments, we lose the free */
- /* list, but that should still be OK, at least */
- /* for garbage collected memory. */
- *opp = obj_link(op);
- obj_link(op) = 0;
- } else {
- register struct hblk * h;
- register word n_blocks = divHBLKSZ(ADD_SLOP(lb)
- + HDR_BYTES + HBLKSIZE-1);
-
- if (!GC_is_initialized) GC_init_inner();
- /* Do our share of marking work */
- if(GC_incremental && !GC_dont_gc)
- GC_collect_a_little_inner((int)n_blocks);
- lw = ROUNDED_UP_WORDS(lb);
- h = GC_allochblk(lw, k, 0);
-# ifdef USE_MUNMAP
- if (0 == h) {
- GC_merge_unmapped();
- h = GC_allochblk(lw, k, 0);
- }
-# endif
- while (0 == h && GC_collect_or_expand(n_blocks, FALSE)) {
- h = GC_allochblk(lw, k, 0);
- }
- if (h == 0) {
- op = 0;
- } else {
- op = (ptr_t) (h -> hb_body);
- GC_words_wasted += BYTES_TO_WORDS(n_blocks * HBLKSIZE) - lw;
- }
- }
- GC_words_allocd += lw;
-
-out:
- return((ptr_t)op);
-}
-
-ptr_t GC_generic_malloc(lb, k)
-register word lb;
-register int k;
-{
- ptr_t result;
- DCL_LOCK_STATE;
-
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- result = GC_generic_malloc_inner(lb, k);
- UNLOCK();
- ENABLE_SIGNALS();
- if (0 == result) {
- return((*GC_oom_fn)(lb));
- } else {
- return(result);
- }
-}
-
-
-#define GENERAL_MALLOC(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc((word)lb, k))
-/* We make the GC_clear_stack_call a tail call, hoping to get more of */
-/* the stack. */
-
-/* Allocate lb bytes of atomic (pointerfree) data */
-# ifdef __STDC__
- GC_PTR GC_malloc_atomic(size_t lb)
-# else
- GC_PTR GC_malloc_atomic(lb)
- size_t lb;
-# endif
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_aobjfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- return(GENERAL_MALLOC((word)lb, PTRFREE));
- }
- /* See above comment on signals. */
- *opp = obj_link(op);
- GC_words_allocd += lw;
- FASTUNLOCK();
- return((GC_PTR) op);
- } else {
- return(GENERAL_MALLOC((word)lb, PTRFREE));
- }
-}
-
-/* Allocate lb bytes of composite (pointerful) data */
-# ifdef __STDC__
- GC_PTR GC_malloc(size_t lb)
-# else
- GC_PTR GC_malloc(lb)
- size_t lb;
-# endif
-{
-register ptr_t op;
-register ptr_t *opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_objfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- return(GENERAL_MALLOC((word)lb, NORMAL));
- }
- /* See above comment on signals. */
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- FASTUNLOCK();
- return((GC_PTR) op);
- } else {
- return(GENERAL_MALLOC((word)lb, NORMAL));
- }
-}
-
-# ifdef REDIRECT_MALLOC
-# ifdef __STDC__
- GC_PTR malloc(size_t lb)
-# else
- GC_PTR malloc(lb)
- size_t lb;
-# endif
- {
- /* It might help to manually inline the GC_malloc call here. */
- /* But any decent compiler should reduce the extra procedure call */
- /* to at most a jump instruction in this case. */
-# if defined(I386) && defined(SOLARIS_THREADS)
- /*
- * Thread initialisation can call malloc before
- * we're ready for it.
- * It's not clear that this is enough to help matters.
- * The thread implementation may well call malloc at other
- * inopportune times.
- */
- if (!GC_is_initialized) return sbrk(lb);
-# endif /* I386 && SOLARIS_THREADS */
- return(REDIRECT_MALLOC(lb));
- }
-
-# ifdef __STDC__
- GC_PTR calloc(size_t n, size_t lb)
-# else
- GC_PTR calloc(n, lb)
- size_t n, lb;
-# endif
- {
- return(REDIRECT_MALLOC(n*lb));
- }
-# endif /* REDIRECT_MALLOC */
-
-GC_PTR GC_generic_or_special_malloc(lb,knd)
-word lb;
-int knd;
-{
- switch(knd) {
-# ifdef STUBBORN_ALLOC
- case STUBBORN:
- return(GC_malloc_stubborn((size_t)lb));
-# endif
- case PTRFREE:
- return(GC_malloc_atomic((size_t)lb));
- case NORMAL:
- return(GC_malloc((size_t)lb));
- case UNCOLLECTABLE:
- return(GC_malloc_uncollectable((size_t)lb));
-# ifdef ATOMIC_UNCOLLECTABLE
- case AUNCOLLECTABLE:
- return(GC_malloc_atomic_uncollectable((size_t)lb));
-# endif /* ATOMIC_UNCOLLECTABLE */
- default:
- return(GC_generic_malloc(lb,knd));
- }
-}
-
-
-/* Change the size of the block pointed to by p to contain at least */
-/* lb bytes. The object may be (and quite likely will be) moved. */
-/* The kind (e.g. atomic) is the same as that of the old. */
-/* Shrinking of large blocks is not implemented well. */
-# ifdef __STDC__
- GC_PTR GC_realloc(GC_PTR p, size_t lb)
-# else
- GC_PTR GC_realloc(p,lb)
- GC_PTR p;
- size_t lb;
-# endif
-{
-register struct hblk * h;
-register hdr * hhdr;
-register word sz; /* Current size in bytes */
-register word orig_sz; /* Original sz in bytes */
-int obj_kind;
-
- if (p == 0) return(GC_malloc(lb)); /* Required by ANSI */
- h = HBLKPTR(p);
- hhdr = HDR(h);
- sz = hhdr -> hb_sz;
- obj_kind = hhdr -> hb_obj_kind;
- sz = WORDS_TO_BYTES(sz);
- orig_sz = sz;
-
- if (sz > WORDS_TO_BYTES(MAXOBJSZ)) {
- /* Round it up to the next whole heap block */
- register word descr;
-
- sz = (sz+HDR_BYTES+HBLKSIZE-1)
- & (~HBLKMASK);
- sz -= HDR_BYTES;
- hhdr -> hb_sz = BYTES_TO_WORDS(sz);
- descr = GC_obj_kinds[obj_kind].ok_descriptor;
- if (GC_obj_kinds[obj_kind].ok_relocate_descr) descr += sz;
- hhdr -> hb_descr = descr;
- if (IS_UNCOLLECTABLE(obj_kind)) GC_non_gc_bytes += (sz - orig_sz);
- /* Extra area is already cleared by allochblk. */
- }
- if (ADD_SLOP(lb) <= sz) {
- if (lb >= (sz >> 1)) {
-# ifdef STUBBORN_ALLOC
- if (obj_kind == STUBBORN) GC_change_stubborn(p);
-# endif
- if (orig_sz > lb) {
- /* Clear unneeded part of object to avoid bogus pointer */
- /* tracing. */
- /* Safe for stubborn objects. */
- BZERO(((ptr_t)p) + lb, orig_sz - lb);
- }
- return(p);
- } else {
- /* shrink */
- GC_PTR result =
- GC_generic_or_special_malloc((word)lb, obj_kind);
-
- if (result == 0) return(0);
- /* Could also return original object. But this */
- /* gives the client warning of imminent disaster. */
- BCOPY(p, result, lb);
-# ifndef IGNORE_FREE
- GC_free(p);
-# endif
- return(result);
- }
- } else {
- /* grow */
- GC_PTR result =
- GC_generic_or_special_malloc((word)lb, obj_kind);
-
- if (result == 0) return(0);
- BCOPY(p, result, sz);
-# ifndef IGNORE_FREE
- GC_free(p);
-# endif
- return(result);
- }
-}
-
-# ifdef REDIRECT_MALLOC
-# ifdef __STDC__
- GC_PTR realloc(GC_PTR p, size_t lb)
-# else
- GC_PTR realloc(p,lb)
- GC_PTR p;
- size_t lb;
-# endif
- {
- return(GC_realloc(p, lb));
- }
-# endif /* REDIRECT_MALLOC */
-
-/* Explicitly deallocate an object p. */
-# ifdef __STDC__
- void GC_free(GC_PTR p)
-# else
- void GC_free(p)
- GC_PTR p;
-# endif
-{
- register struct hblk *h;
- register hdr *hhdr;
- register signed_word sz;
- register ptr_t * flh;
- register int knd;
- register struct obj_kind * ok;
- DCL_LOCK_STATE;
-
- if (p == 0) return;
- /* Required by ANSI. It's not my fault ... */
- h = HBLKPTR(p);
- hhdr = HDR(h);
-# if defined(REDIRECT_MALLOC) && \
- (defined(SOLARIS_THREADS) || defined(LINUX_THREADS))
- /* We have to redirect malloc calls during initialization. */
- /* Don't try to deallocate that memory. */
- if (0 == hhdr) return;
-# endif
- knd = hhdr -> hb_obj_kind;
- sz = hhdr -> hb_sz;
- ok = &GC_obj_kinds[knd];
- if (sz <= MAXOBJSZ) {
-# ifdef THREADS
- DISABLE_SIGNALS();
- LOCK();
-# endif
- GC_mem_freed += sz;
- /* A signal here can make GC_mem_freed and GC_non_gc_bytes */
- /* inconsistent. We claim this is benign. */
- if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= WORDS_TO_BYTES(sz);
- /* Its unnecessary to clear the mark bit. If the */
- /* object is reallocated, it doesn't matter. O.w. the */
- /* collector will do it, since it's on a free list. */
- if (ok -> ok_init) {
- BZERO((word *)p + 1, WORDS_TO_BYTES(sz-1));
- }
- flh = &(ok -> ok_freelist[sz]);
- obj_link(p) = *flh;
- *flh = (ptr_t)p;
-# ifdef THREADS
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
- } else {
- DISABLE_SIGNALS();
- LOCK();
- GC_mem_freed += sz;
- if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= WORDS_TO_BYTES(sz);
- GC_freehblk(h);
- UNLOCK();
- ENABLE_SIGNALS();
- }
-}
-
-# ifdef REDIRECT_MALLOC
-# ifdef __STDC__
- void free(GC_PTR p)
-# else
- void free(p)
- GC_PTR p;
-# endif
- {
-# ifndef IGNORE_FREE
- GC_free(p);
-# endif
- }
-# endif /* REDIRECT_MALLOC */
diff --git a/boehm-gc/mallocx.c b/boehm-gc/mallocx.c
deleted file mode 100644
index c842665237e..00000000000
--- a/boehm-gc/mallocx.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/*
- * These are extra allocation routines which are likely to be less
- * frequently used than those in malloc.c. They are separate in the
- * hope that the .o file will be excluded from statically linked
- * executables. We should probably break this up further.
- */
-
-#include <stdio.h>
-#include "gc_priv.h"
-
-extern ptr_t GC_clear_stack(); /* in misc.c, behaves like identity */
-void GC_extend_size_map(); /* in misc.c. */
-GC_bool GC_alloc_reclaim_list(); /* in malloc.c */
-
-/* Some externally visible but unadvertised variables to allow access to */
-/* free lists from inlined allocators without including gc_priv.h */
-/* or introducing dependencies on internal data structure layouts. */
-ptr_t * CONST GC_objfreelist_ptr = GC_objfreelist;
-ptr_t * CONST GC_aobjfreelist_ptr = GC_aobjfreelist;
-ptr_t * CONST GC_uobjfreelist_ptr = GC_uobjfreelist;
-# ifdef ATOMIC_UNCOLLECTABLE
- ptr_t * CONST GC_auobjfreelist_ptr = GC_auobjfreelist;
-# endif
-
-/* Allocate a composite object of size n bytes. The caller guarantees */
-/* that pointers past the first page are not relevant. Caller holds */
-/* allocation lock. */
-ptr_t GC_generic_malloc_inner_ignore_off_page(lb, k)
-register size_t lb;
-register int k;
-{
- register struct hblk * h;
- register word n_blocks;
- register word lw;
- register ptr_t op;
-
- if (lb <= HBLKSIZE)
- return(GC_generic_malloc_inner((word)lb, k));
- n_blocks = divHBLKSZ(ADD_SLOP(lb) + HDR_BYTES + HBLKSIZE-1);
- if (!GC_is_initialized) GC_init_inner();
- /* Do our share of marking work */
- if(GC_incremental && !GC_dont_gc)
- GC_collect_a_little_inner((int)n_blocks);
- lw = ROUNDED_UP_WORDS(lb);
- h = GC_allochblk(lw, k, IGNORE_OFF_PAGE);
-# ifdef USE_MUNMAP
- if (0 == h) {
- GC_merge_unmapped();
- h = GC_allochblk(lw, k, IGNORE_OFF_PAGE);
- }
-# endif
- while (0 == h && GC_collect_or_expand(n_blocks, TRUE)) {
- h = GC_allochblk(lw, k, IGNORE_OFF_PAGE);
- }
- if (h == 0) {
- op = 0;
- } else {
- op = (ptr_t) (h -> hb_body);
- GC_words_wasted += BYTES_TO_WORDS(n_blocks * HBLKSIZE) - lw;
- }
- GC_words_allocd += lw;
- return((ptr_t)op);
-}
-
-ptr_t GC_generic_malloc_ignore_off_page(lb, k)
-register size_t lb;
-register int k;
-{
- register ptr_t result;
- DCL_LOCK_STATE;
-
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- result = GC_generic_malloc_inner_ignore_off_page(lb,k);
- UNLOCK();
- ENABLE_SIGNALS();
- if (0 == result) {
- return((*GC_oom_fn)(lb));
- } else {
- return(result);
- }
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- void * GC_malloc_ignore_off_page(size_t lb)
-# else
- char * GC_malloc_ignore_off_page(lb)
- register size_t lb;
-# endif
-{
- return((GC_PTR)GC_generic_malloc_ignore_off_page(lb, NORMAL));
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- void * GC_malloc_atomic_ignore_off_page(size_t lb)
-# else
- char * GC_malloc_atomic_ignore_off_page(lb)
- register size_t lb;
-# endif
-{
- return((GC_PTR)GC_generic_malloc_ignore_off_page(lb, PTRFREE));
-}
-
-/* Increment GC_words_allocd from code that doesn't have direct access */
-/* to GC_arrays. */
-# ifdef __STDC__
-void GC_incr_words_allocd(size_t n)
-{
- GC_words_allocd += n;
-}
-
-/* The same for GC_mem_freed. */
-void GC_incr_mem_freed(size_t n)
-{
- GC_mem_freed += n;
-}
-# endif /* __STDC__ */
-
-/* Analogous to the above, but assumes a small object size, and */
-/* bypasses MERGE_SIZES mechanism. Used by gc_inline.h. */
-ptr_t GC_generic_malloc_words_small_inner(lw, k)
-register word lw;
-register int k;
-{
-register ptr_t op;
-register ptr_t *opp;
-register struct obj_kind * kind = GC_obj_kinds + k;
-
- opp = &(kind -> ok_freelist[lw]);
- if( (op = *opp) == 0 ) {
- if (!GC_is_initialized) {
- GC_init_inner();
- }
- if (kind -> ok_reclaim_list != 0 || GC_alloc_reclaim_list(kind)) {
- op = GC_clear_stack(GC_allocobj((word)lw, k));
- }
- if (op == 0) {
- UNLOCK();
- ENABLE_SIGNALS();
- return ((*GC_oom_fn)(WORDS_TO_BYTES(lw)));
- }
- }
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- return((ptr_t)op);
-}
-
-/* Analogous to the above, but assumes a small object size, and */
-/* bypasses MERGE_SIZES mechanism. Used by gc_inline.h. */
-#ifdef __STDC__
- ptr_t GC_generic_malloc_words_small(size_t lw, int k)
-#else
- ptr_t GC_generic_malloc_words_small(lw, k)
- register word lw;
- register int k;
-#endif
-{
-register ptr_t op;
-DCL_LOCK_STATE;
-
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- op = GC_generic_malloc_words_small_inner(lw, k);
- UNLOCK();
- ENABLE_SIGNALS();
- return((ptr_t)op);
-}
-
-#if defined(THREADS) && !defined(SRC_M3)
-/* Return a list of 1 or more objects of the indicated size, linked */
-/* through the first word in the object. This has the advantage that */
-/* it acquires the allocation lock only once, and may greatly reduce */
-/* time wasted contending for the allocation lock. Typical usage would */
-/* be in a thread that requires many items of the same size. It would */
-/* keep its own free list in thread-local storage, and call */
-/* GC_malloc_many or friends to replenish it. (We do not round up */
-/* object sizes, since a call indicates the intention to consume many */
-/* objects of exactly this size.) */
-/* Note that the client should usually clear the link field. */
-ptr_t GC_generic_malloc_many(lb, k)
-register word lb;
-register int k;
-{
-ptr_t op;
-register ptr_t p;
-ptr_t *opp;
-word lw;
-register word my_words_allocd;
-DCL_LOCK_STATE;
-
- if (!SMALL_OBJ(lb)) {
- op = GC_generic_malloc(lb, k);
- if(0 != op) obj_link(op) = 0;
- return(op);
- }
- lw = ALIGNED_WORDS(lb);
- GC_INVOKE_FINALIZERS();
- DISABLE_SIGNALS();
- LOCK();
- opp = &(GC_obj_kinds[k].ok_freelist[lw]);
- if( (op = *opp) == 0 ) {
- if (!GC_is_initialized) {
- GC_init_inner();
- }
- op = GC_clear_stack(GC_allocobj(lw, k));
- if (op == 0) {
- UNLOCK();
- ENABLE_SIGNALS();
- op = (*GC_oom_fn)(lb);
- if(0 != op) obj_link(op) = 0;
- return(op);
- }
- }
- *opp = 0;
- my_words_allocd = 0;
- for (p = op; p != 0; p = obj_link(p)) {
- my_words_allocd += lw;
- if (my_words_allocd >= BODY_SZ) {
- *opp = obj_link(p);
- obj_link(p) = 0;
- break;
- }
- }
- GC_words_allocd += my_words_allocd;
-
-out:
- UNLOCK();
- ENABLE_SIGNALS();
- return(op);
-
-}
-
-void * GC_malloc_many(size_t lb)
-{
- return(GC_generic_malloc_many(lb, NORMAL));
-}
-
-/* Note that the "atomic" version of this would be unsafe, since the */
-/* links would not be seen by the collector. */
-# endif
-
-/* Allocate lb bytes of pointerful, traced, but not collectable data */
-# ifdef __STDC__
- GC_PTR GC_malloc_uncollectable(size_t lb)
-# else
- GC_PTR GC_malloc_uncollectable(lb)
- size_t lb;
-# endif
-{
-register ptr_t op;
-register ptr_t *opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
-# ifdef ADD_BYTE_AT_END
- if (lb != 0) lb--;
- /* We don't need the extra byte, since this won't be */
- /* collected anyway. */
-# endif
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_uobjfreelist[lw]);
- FASTLOCK();
- if( FASTLOCK_SUCCEEDED() && (op = *opp) != 0 ) {
- /* See above comment on signals. */
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- /* Mark bit ws already set on free list. It will be */
- /* cleared only temporarily during a collection, as a */
- /* result of the normal free list mark bit clearing. */
- GC_non_gc_bytes += WORDS_TO_BYTES(lw);
- FASTUNLOCK();
- return((GC_PTR) op);
- }
- FASTUNLOCK();
- op = (ptr_t)GC_generic_malloc((word)lb, UNCOLLECTABLE);
- } else {
- op = (ptr_t)GC_generic_malloc((word)lb, UNCOLLECTABLE);
- }
- if (0 == op) return(0);
- /* We don't need the lock here, since we have an undisguised */
- /* pointer. We do need to hold the lock while we adjust */
- /* mark bits. */
- {
- register struct hblk * h;
-
- h = HBLKPTR(op);
- lw = HDR(h) -> hb_sz;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_set_mark_bit(op);
- GC_non_gc_bytes += WORDS_TO_BYTES(lw);
- UNLOCK();
- ENABLE_SIGNALS();
- return((GC_PTR) op);
- }
-}
-
-# ifdef ATOMIC_UNCOLLECTABLE
-/* Allocate lb bytes of pointerfree, untraced, uncollectable data */
-/* This is normally roughly equivalent to the system malloc. */
-/* But it may be useful if malloc is redefined. */
-# ifdef __STDC__
- GC_PTR GC_malloc_atomic_uncollectable(size_t lb)
-# else
- GC_PTR GC_malloc_atomic_uncollectable(lb)
- size_t lb;
-# endif
-{
-register ptr_t op;
-register ptr_t *opp;
-register word lw;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
-# ifdef ADD_BYTE_AT_END
- if (lb != 0) lb--;
- /* We don't need the extra byte, since this won't be */
- /* collected anyway. */
-# endif
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_auobjfreelist[lw]);
- FASTLOCK();
- if( FASTLOCK_SUCCEEDED() && (op = *opp) != 0 ) {
- /* See above comment on signals. */
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- /* Mark bit was already set while object was on free list. */
- GC_non_gc_bytes += WORDS_TO_BYTES(lw);
- FASTUNLOCK();
- return((GC_PTR) op);
- }
- FASTUNLOCK();
- op = (ptr_t)GC_generic_malloc((word)lb, AUNCOLLECTABLE);
- } else {
- op = (ptr_t)GC_generic_malloc((word)lb, AUNCOLLECTABLE);
- }
- if (0 == op) return(0);
- /* We don't need the lock here, since we have an undisguised */
- /* pointer. We do need to hold the lock while we adjust */
- /* mark bits. */
- {
- register struct hblk * h;
-
- h = HBLKPTR(op);
- lw = HDR(h) -> hb_sz;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_set_mark_bit(op);
- GC_non_gc_bytes += WORDS_TO_BYTES(lw);
- UNLOCK();
- ENABLE_SIGNALS();
- return((GC_PTR) op);
- }
-}
-
-#endif /* ATOMIC_UNCOLLECTABLE */
diff --git a/boehm-gc/mark.c b/boehm-gc/mark.c
deleted file mode 100644
index 36c0b69317e..00000000000
--- a/boehm-gc/mark.c
+++ /dev/null
@@ -1,1278 +0,0 @@
-
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-
-# include <stdio.h>
-# include "gc_priv.h"
-# include "gc_mark.h"
-
-/* We put this here to minimize the risk of inlining. */
-/*VARARGS*/
-#ifdef __WATCOMC__
- void GC_noop(void *p, ...) {}
-#else
- void GC_noop() {}
-#endif
-
-/* Single argument version, robust against whole program analysis. */
-void GC_noop1(x)
-word x;
-{
- static VOLATILE word sink;
-
- sink = x;
-}
-
-/* mark_proc GC_mark_procs[MAX_MARK_PROCS] = {0} -- declared in gc_priv.h */
-
-word GC_n_mark_procs = GC_RESERVED_MARK_PROCS;
-
-/* Initialize GC_obj_kinds properly and standard free lists properly. */
-/* This must be done statically since they may be accessed before */
-/* GC_init is called. */
-/* It's done here, since we need to deal with mark descriptors. */
-struct obj_kind GC_obj_kinds[MAXOBJKINDS] = {
-/* PTRFREE */ { &GC_aobjfreelist[0], 0 /* filled in dynamically */,
- 0 | DS_LENGTH, FALSE, FALSE },
-/* NORMAL */ { &GC_objfreelist[0], 0,
-# if defined(ADD_BYTE_AT_END) && ALIGNMENT > DS_TAGS
- (word)(-ALIGNMENT) | DS_LENGTH,
-# else
- 0 | DS_LENGTH,
-# endif
- TRUE /* add length to descr */, TRUE },
-/* UNCOLLECTABLE */
- { &GC_uobjfreelist[0], 0,
- 0 | DS_LENGTH, TRUE /* add length to descr */, TRUE },
-# ifdef ATOMIC_UNCOLLECTABLE
- /* AUNCOLLECTABLE */
- { &GC_auobjfreelist[0], 0,
- 0 | DS_LENGTH, FALSE /* add length to descr */, FALSE },
-# endif
-# ifdef STUBBORN_ALLOC
-/*STUBBORN*/ { &GC_sobjfreelist[0], 0,
- 0 | DS_LENGTH, TRUE /* add length to descr */, TRUE },
-# endif
-};
-
-# ifdef ATOMIC_UNCOLLECTABLE
-# ifdef STUBBORN_ALLOC
- int GC_n_kinds = 5;
-# else
- int GC_n_kinds = 4;
-# endif
-# else
-# ifdef STUBBORN_ALLOC
- int GC_n_kinds = 4;
-# else
- int GC_n_kinds = 3;
-# endif
-# endif
-
-
-# ifndef INITIAL_MARK_STACK_SIZE
-# define INITIAL_MARK_STACK_SIZE (1*HBLKSIZE)
- /* INITIAL_MARK_STACK_SIZE * sizeof(mse) should be a */
- /* multiple of HBLKSIZE. */
- /* The incremental collector actually likes a larger */
- /* size, since it want to push all marked dirty objs */
- /* before marking anything new. Currently we let it */
- /* grow dynamically. */
-# endif
-
-/*
- * Limits of stack for GC_mark routine.
- * All ranges between GC_mark_stack(incl.) and GC_mark_stack_top(incl.) still
- * need to be marked from.
- */
-
-word GC_n_rescuing_pages; /* Number of dirty pages we marked from */
- /* excludes ptrfree pages, etc. */
-
-mse * GC_mark_stack;
-
-word GC_mark_stack_size = 0;
-
-mse * GC_mark_stack_top;
-
-static struct hblk * scan_ptr;
-
-mark_state_t GC_mark_state = MS_NONE;
-
-GC_bool GC_mark_stack_too_small = FALSE;
-
-GC_bool GC_objects_are_marked = FALSE; /* Are there collectable marked */
- /* objects in the heap? */
-
-/* Is a collection in progress? Note that this can return true in the */
-/* nonincremental case, if a collection has been abandoned and the */
-/* mark state is now MS_INVALID. */
-GC_bool GC_collection_in_progress()
-{
- return(GC_mark_state != MS_NONE);
-}
-
-/* clear all mark bits in the header */
-void GC_clear_hdr_marks(hhdr)
-register hdr * hhdr;
-{
- BZERO(hhdr -> hb_marks, MARK_BITS_SZ*sizeof(word));
-}
-
-/* Set all mark bits in the header. Used for uncollectable blocks. */
-void GC_set_hdr_marks(hhdr)
-register hdr * hhdr;
-{
- register int i;
-
- for (i = 0; i < MARK_BITS_SZ; ++i) {
- hhdr -> hb_marks[i] = ONES;
- }
-}
-
-/*
- * Clear all mark bits associated with block h.
- */
-/*ARGSUSED*/
-static void clear_marks_for_block(h, dummy)
-struct hblk *h;
-word dummy;
-{
- register hdr * hhdr = HDR(h);
-
- if (IS_UNCOLLECTABLE(hhdr -> hb_obj_kind)) return;
- /* Mark bit for these is cleared only once the object is */
- /* explicitly deallocated. This either frees the block, or */
- /* the bit is cleared once the object is on the free list. */
- GC_clear_hdr_marks(hhdr);
-}
-
-/* Slow but general routines for setting/clearing/asking about mark bits */
-void GC_set_mark_bit(p)
-ptr_t p;
-{
- register struct hblk *h = HBLKPTR(p);
- register hdr * hhdr = HDR(h);
- register int word_no = (word *)p - (word *)h;
-
- set_mark_bit_from_hdr(hhdr, word_no);
-}
-
-void GC_clear_mark_bit(p)
-ptr_t p;
-{
- register struct hblk *h = HBLKPTR(p);
- register hdr * hhdr = HDR(h);
- register int word_no = (word *)p - (word *)h;
-
- clear_mark_bit_from_hdr(hhdr, word_no);
-}
-
-GC_bool GC_is_marked(p)
-ptr_t p;
-{
- register struct hblk *h = HBLKPTR(p);
- register hdr * hhdr = HDR(h);
- register int word_no = (word *)p - (word *)h;
-
- return(mark_bit_from_hdr(hhdr, word_no));
-}
-
-
-/*
- * Clear mark bits in all allocated heap blocks. This invalidates
- * the marker invariant, and sets GC_mark_state to reflect this.
- * (This implicitly starts marking to reestablish the invariant.)
- */
-void GC_clear_marks()
-{
- GC_apply_to_all_blocks(clear_marks_for_block, (word)0);
- GC_objects_are_marked = FALSE;
- GC_mark_state = MS_INVALID;
- scan_ptr = 0;
-# ifdef GATHERSTATS
- /* Counters reflect currently marked objects: reset here */
- GC_composite_in_use = 0;
- GC_atomic_in_use = 0;
-# endif
-
-}
-
-/* Initiate a garbage collection. Initiates a full collection if the */
-/* mark state is invalid. */
-/*ARGSUSED*/
-void GC_initiate_gc()
-{
- if (GC_dirty_maintained) GC_read_dirty();
-# ifdef STUBBORN_ALLOC
- GC_read_changed();
-# endif
-# ifdef CHECKSUMS
- {
- extern void GC_check_dirty();
-
- if (GC_dirty_maintained) GC_check_dirty();
- }
-# endif
-# ifdef GATHERSTATS
- GC_n_rescuing_pages = 0;
-# endif
- if (GC_mark_state == MS_NONE) {
- GC_mark_state = MS_PUSH_RESCUERS;
- } else if (GC_mark_state != MS_INVALID) {
- ABORT("unexpected state");
- } /* else this is really a full collection, and mark */
- /* bits are invalid. */
- scan_ptr = 0;
-}
-
-
-static void alloc_mark_stack();
-
-/* Perform a small amount of marking. */
-/* We try to touch roughly a page of memory. */
-/* Return TRUE if we just finished a mark phase. */
-/* Cold_gc_frame is an address inside a GC frame that */
-/* remains valid until all marking is complete. */
-/* A zero value indicates that it's OK to miss some */
-/* register values. */
-GC_bool GC_mark_some(cold_gc_frame)
-ptr_t cold_gc_frame;
-{
-#ifdef MSWIN32
- /* Windows 98 appears to asynchronously create and remove writable */
- /* memory mappings, for reasons we haven't yet understood. Since */
- /* we look for writable regions to determine the root set, we may */
- /* try to mark from an address range that disappeared since we */
- /* started the collection. Thus we have to recover from faults here. */
- /* This code does not appear to be necessary for Windows 95/NT/2000. */
- /* Note that this code should never generate an incremental GC write */
- /* fault. */
- __try {
-#endif
- switch(GC_mark_state) {
- case MS_NONE:
- return(FALSE);
-
- case MS_PUSH_RESCUERS:
- if (GC_mark_stack_top
- >= GC_mark_stack + GC_mark_stack_size
- - INITIAL_MARK_STACK_SIZE/2) {
- /* Go ahead and mark, even though that might cause us to */
- /* see more marked dirty objects later on. Avoid this */
- /* in the future. */
- GC_mark_stack_too_small = TRUE;
- GC_mark_from_mark_stack();
- return(FALSE);
- } else {
- scan_ptr = GC_push_next_marked_dirty(scan_ptr);
- if (scan_ptr == 0) {
-# ifdef PRINTSTATS
- GC_printf1("Marked from %lu dirty pages\n",
- (unsigned long)GC_n_rescuing_pages);
-# endif
- GC_push_roots(FALSE, cold_gc_frame);
- GC_objects_are_marked = TRUE;
- if (GC_mark_state != MS_INVALID) {
- GC_mark_state = MS_ROOTS_PUSHED;
- }
- }
- }
- return(FALSE);
-
- case MS_PUSH_UNCOLLECTABLE:
- if (GC_mark_stack_top
- >= GC_mark_stack + INITIAL_MARK_STACK_SIZE/4) {
- GC_mark_from_mark_stack();
- return(FALSE);
- } else {
- scan_ptr = GC_push_next_marked_uncollectable(scan_ptr);
- if (scan_ptr == 0) {
- GC_push_roots(TRUE, cold_gc_frame);
- GC_objects_are_marked = TRUE;
- if (GC_mark_state != MS_INVALID) {
- GC_mark_state = MS_ROOTS_PUSHED;
- }
- }
- }
- return(FALSE);
-
- case MS_ROOTS_PUSHED:
- if (GC_mark_stack_top >= GC_mark_stack) {
- GC_mark_from_mark_stack();
- return(FALSE);
- } else {
- GC_mark_state = MS_NONE;
- if (GC_mark_stack_too_small) {
- alloc_mark_stack(2*GC_mark_stack_size);
- }
- return(TRUE);
- }
-
- case MS_INVALID:
- case MS_PARTIALLY_INVALID:
- if (!GC_objects_are_marked) {
- GC_mark_state = MS_PUSH_UNCOLLECTABLE;
- return(FALSE);
- }
- if (GC_mark_stack_top >= GC_mark_stack) {
- GC_mark_from_mark_stack();
- return(FALSE);
- }
- if (scan_ptr == 0 && GC_mark_state == MS_INVALID) {
- /* About to start a heap scan for marked objects. */
- /* Mark stack is empty. OK to reallocate. */
- if (GC_mark_stack_too_small) {
- alloc_mark_stack(2*GC_mark_stack_size);
- }
- GC_mark_state = MS_PARTIALLY_INVALID;
- }
- scan_ptr = GC_push_next_marked(scan_ptr);
- if (scan_ptr == 0 && GC_mark_state == MS_PARTIALLY_INVALID) {
- GC_push_roots(TRUE, cold_gc_frame);
- GC_objects_are_marked = TRUE;
- if (GC_mark_state != MS_INVALID) {
- GC_mark_state = MS_ROOTS_PUSHED;
- }
- }
- return(FALSE);
- default:
- ABORT("GC_mark_some: bad state");
- return(FALSE);
- }
-#ifdef MSWIN32
- } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
- EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
-# ifdef PRINTSTATS
- GC_printf0("Caught ACCESS_VIOLATION in marker. "
- "Memory mapping disappeared.\n");
-# endif /* PRINTSTATS */
- /* We have bad roots on the stack. Discard mark stack. */
- /* Rescan from marked objects. Redetermine roots. */
- GC_invalidate_mark_state();
- scan_ptr = 0;
- return FALSE;
- }
-#endif /* MSWIN32 */
-}
-
-
-GC_bool GC_mark_stack_empty()
-{
- return(GC_mark_stack_top < GC_mark_stack);
-}
-
-#ifdef PROF_MARKER
- word GC_prof_array[10];
-# define PROF(n) GC_prof_array[n]++
-#else
-# define PROF(n)
-#endif
-
-/* Given a pointer to someplace other than a small object page or the */
-/* first page of a large object, return a pointer either to the */
-/* start of the large object or NIL. */
-/* In the latter case black list the address current. */
-/* Returns NIL without black listing if current points to a block */
-/* with IGNORE_OFF_PAGE set. */
-/*ARGSUSED*/
-# ifdef PRINT_BLACK_LIST
- ptr_t GC_find_start(current, hhdr, source)
- word source;
-# else
- ptr_t GC_find_start(current, hhdr)
-# define source 0
-# endif
-register ptr_t current;
-register hdr * hhdr;
-{
-# ifdef ALL_INTERIOR_POINTERS
- if (hhdr != 0) {
- register ptr_t orig = current;
-
- current = (ptr_t)HBLKPTR(current) + HDR_BYTES;
- do {
- current = current - HBLKSIZE*(word)hhdr;
- hhdr = HDR(current);
- } while(IS_FORWARDING_ADDR_OR_NIL(hhdr));
- /* current points to the start of the large object */
- if (hhdr -> hb_flags & IGNORE_OFF_PAGE) return(0);
- if ((word *)orig - (word *)current
- >= (ptrdiff_t)(hhdr->hb_sz)) {
- /* Pointer past the end of the block */
- GC_ADD_TO_BLACK_LIST_NORMAL(orig, source);
- return(0);
- }
- return(current);
- } else {
- GC_ADD_TO_BLACK_LIST_NORMAL(current, source);
- return(0);
- }
-# else
- GC_ADD_TO_BLACK_LIST_NORMAL(current, source);
- return(0);
-# endif
-# undef source
-}
-
-void GC_invalidate_mark_state()
-{
- GC_mark_state = MS_INVALID;
- GC_mark_stack_top = GC_mark_stack-1;
-}
-
-mse * GC_signal_mark_stack_overflow(msp)
-mse * msp;
-{
- GC_mark_state = MS_INVALID;
- GC_mark_stack_too_small = TRUE;
-# ifdef PRINTSTATS
- GC_printf1("Mark stack overflow; current size = %lu entries\n",
- GC_mark_stack_size);
-# endif
- return(msp-INITIAL_MARK_STACK_SIZE/8);
-}
-
-
-/*
- * Mark objects pointed to by the regions described by
- * mark stack entries between GC_mark_stack and GC_mark_stack_top,
- * inclusive. Assumes the upper limit of a mark stack entry
- * is never 0. A mark stack entry never has size 0.
- * We try to traverse on the order of a hblk of memory before we return.
- * Caller is responsible for calling this until the mark stack is empty.
- * Note that this is the most performance critical routine in the
- * collector. Hence it contains all sorts of ugly hacks to speed
- * things up. In particular, we avoid procedure calls on the common
- * path, we take advantage of peculiarities of the mark descriptor
- * encoding, we optionally maintain a cache for the block address to
- * header mapping, we prefetch when an object is "grayed", etc.
- */
-void GC_mark_from_mark_stack()
-{
- mse * GC_mark_stack_reg = GC_mark_stack;
- mse * GC_mark_stack_top_reg = GC_mark_stack_top;
- mse * mark_stack_limit = &(GC_mark_stack[GC_mark_stack_size]);
- int credit = HBLKSIZE; /* Remaining credit for marking work */
- register word * current_p; /* Pointer to current candidate ptr. */
- register word current; /* Candidate pointer. */
- register word * limit; /* (Incl) limit of current candidate */
- /* range */
- register word descr;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
- DECLARE_HDR_CACHE;
-
-# define SPLIT_RANGE_WORDS 128 /* Must be power of 2. */
-
- GC_objects_are_marked = TRUE;
- INIT_HDR_CACHE;
-# ifdef OS2 /* Use untweaked version to circumvent compiler problem */
- while (GC_mark_stack_top_reg >= GC_mark_stack_reg && credit >= 0) {
-# else
- while ((((ptr_t)GC_mark_stack_top_reg - (ptr_t)GC_mark_stack_reg) | credit)
- >= 0) {
-# endif
- current_p = GC_mark_stack_top_reg -> mse_start;
- descr = GC_mark_stack_top_reg -> mse_descr;
- retry:
- /* current_p and descr describe the current object. */
- /* *GC_mark_stack_top_reg is vacant. */
- /* The following is 0 only for small objects described by a simple */
- /* length descriptor. For many applications this is the common */
- /* case, so we try to detect it quickly. */
- if (descr & ((~(WORDS_TO_BYTES(SPLIT_RANGE_WORDS) - 1)) | DS_TAGS)) {
- word tag = descr & DS_TAGS;
-
- switch(tag) {
- case DS_LENGTH:
- /* Large length. */
- /* Process part of the range to avoid pushing too much on the */
- /* stack. */
- GC_mark_stack_top_reg -> mse_start =
- limit = current_p + SPLIT_RANGE_WORDS-1;
- GC_mark_stack_top_reg -> mse_descr =
- descr - WORDS_TO_BYTES(SPLIT_RANGE_WORDS-1);
- /* Make sure that pointers overlapping the two ranges are */
- /* considered. */
- limit = (word *)((char *)limit + sizeof(word) - ALIGNMENT);
- break;
- case DS_BITMAP:
- GC_mark_stack_top_reg--;
- descr &= ~DS_TAGS;
- credit -= WORDS_TO_BYTES(WORDSZ/2); /* guess */
- while (descr != 0) {
- if ((signed_word)descr < 0) {
- current = *current_p;
- if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
- PREFETCH(current);
- HC_PUSH_CONTENTS((ptr_t)current, GC_mark_stack_top_reg,
- mark_stack_limit, current_p, exit1);
- }
- }
- descr <<= 1;
- ++ current_p;
- }
- continue;
- case DS_PROC:
- GC_mark_stack_top_reg--;
- credit -= PROC_BYTES;
- GC_mark_stack_top_reg =
- (*PROC(descr))
- (current_p, GC_mark_stack_top_reg,
- mark_stack_limit, ENV(descr));
- continue;
- case DS_PER_OBJECT:
- if ((signed_word)descr >= 0) {
- /* Descriptor is in the object. */
- descr = *(word *)((ptr_t)current_p + descr - DS_PER_OBJECT);
- } else {
- /* Descriptor is in type descriptor pointed to by first */
- /* word in object. */
- ptr_t type_descr = *(ptr_t *)current_p;
- /* type_descr is either a valid pointer to the descriptor */
- /* structure, or this object was on a free list. If it */
- /* it was anything but the last object on the free list, */
- /* we will misinterpret the next object on the free list as */
- /* the type descriptor, and get a 0 GC descriptor, which */
- /* is ideal. Unfortunately, we need to check for the last */
- /* object case explicitly. */
- if (0 == type_descr) {
- /* Rarely executed. */
- GC_mark_stack_top_reg--;
- continue;
- }
- descr = *(word *)(type_descr
- - (descr - (DS_PER_OBJECT - INDIR_PER_OBJ_BIAS)));
- }
- goto retry;
- }
- } else /* Small object with length descriptor */ {
- GC_mark_stack_top_reg--;
- limit = (word *)(((ptr_t)current_p) + (word)descr);
- }
- /* The simple case in which we're scanning a range. */
- credit -= (ptr_t)limit - (ptr_t)current_p;
- limit -= 1;
- {
-# define PREF_DIST 4
-
-# ifndef SMALL_CONFIG
- word deferred;
-
- /* Try to prefetch the next pointer to be examined asap. */
- /* Empirically, this also seems to help slightly without */
- /* prefetches, at least on linux/X86. Presumably this loop */
- /* ends up with less register pressure, and gcc thus ends up */
- /* generating slightly better code. Overall gcc code quality */
- /* for this loop is still not great. */
- for(;;) {
- PREFETCH((ptr_t)limit - PREF_DIST*CACHE_LINE_SIZE);
- deferred = *limit;
- limit = (word *)((char *)limit - ALIGNMENT);
- if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
- PREFETCH(deferred);
- break;
- }
- if (current_p > limit) goto next_object;
- /* Unroll once, so we don't do too many of the prefetches */
- /* based on limit. */
- deferred = *limit;
- limit = (word *)((char *)limit - ALIGNMENT);
- if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
- PREFETCH(deferred);
- break;
- }
- if (current_p > limit) goto next_object;
- }
-# endif
-
- while (current_p <= limit) {
- /* Empirically, unrolling this loop doesn't help a lot. */
- /* Since HC_PUSH_CONTENTS expands to a lot of code, */
- /* we don't. */
- current = *current_p;
- PREFETCH((ptr_t)current_p + PREF_DIST*CACHE_LINE_SIZE);
- if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
- /* Prefetch the contents of the object we just pushed. It's */
- /* likely we will need them soon. */
- PREFETCH(current);
- HC_PUSH_CONTENTS((ptr_t)current, GC_mark_stack_top_reg,
- mark_stack_limit, current_p, exit2);
- }
- current_p = (word *)((char *)current_p + ALIGNMENT);
- }
-
-# ifndef SMALL_CONFIG
- /* We still need to mark the entry we previously prefetched. */
- /* We alrady know that it passes the preliminary pointer */
- /* validity test. */
- HC_PUSH_CONTENTS((ptr_t)deferred, GC_mark_stack_top_reg,
- mark_stack_limit, current_p, exit4);
- next_object:;
-# endif
- }
- }
- GC_mark_stack_top = GC_mark_stack_top_reg;
-}
-
-/* Allocate or reallocate space for mark stack of size s words */
-/* May silently fail. */
-static void alloc_mark_stack(n)
-word n;
-{
- mse * new_stack = (mse *)GC_scratch_alloc(n * sizeof(struct ms_entry));
-
- GC_mark_stack_too_small = FALSE;
- if (GC_mark_stack_size != 0) {
- if (new_stack != 0) {
- word displ = (word)GC_mark_stack & (GC_page_size - 1);
- signed_word size = GC_mark_stack_size * sizeof(struct ms_entry);
-
- /* Recycle old space */
- if (0 != displ) displ = GC_page_size - displ;
- size = (size - displ) & ~(GC_page_size - 1);
- if (size > 0) {
- GC_add_to_heap((struct hblk *)
- ((word)GC_mark_stack + displ), (word)size);
- }
- GC_mark_stack = new_stack;
- GC_mark_stack_size = n;
-# ifdef PRINTSTATS
- GC_printf1("Grew mark stack to %lu frames\n",
- (unsigned long) GC_mark_stack_size);
-# endif
- } else {
-# ifdef PRINTSTATS
- GC_printf1("Failed to grow mark stack to %lu frames\n",
- (unsigned long) n);
-# endif
- }
- } else {
- if (new_stack == 0) {
- GC_err_printf0("No space for mark stack\n");
- EXIT();
- }
- GC_mark_stack = new_stack;
- GC_mark_stack_size = n;
- }
- GC_mark_stack_top = GC_mark_stack-1;
-}
-
-void GC_mark_init()
-{
- alloc_mark_stack(INITIAL_MARK_STACK_SIZE);
-}
-
-/*
- * Push all locations between b and t onto the mark stack.
- * b is the first location to be checked. t is one past the last
- * location to be checked.
- * Should only be used if there is no possibility of mark stack
- * overflow.
- */
-void GC_push_all(bottom, top)
-ptr_t bottom;
-ptr_t top;
-{
- register word length;
-
- bottom = (ptr_t)(((word) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1));
- top = (ptr_t)(((word) top) & ~(ALIGNMENT-1));
- if (top == 0 || bottom == top) return;
- GC_mark_stack_top++;
- if (GC_mark_stack_top >= GC_mark_stack + GC_mark_stack_size) {
- ABORT("unexpected mark stack overflow");
- }
- length = top - bottom;
-# if DS_TAGS > ALIGNMENT - 1
- length += DS_TAGS;
- length &= ~DS_TAGS;
-# endif
- GC_mark_stack_top -> mse_start = (word *)bottom;
- GC_mark_stack_top -> mse_descr = length;
-}
-
-/*
- * Analogous to the above, but push only those pages that may have been
- * dirtied. A block h is assumed dirty if dirty_fn(h) != 0.
- * We use push_fn to actually push the block.
- * Will not overflow mark stack if push_fn pushes a small fixed number
- * of entries. (This is invoked only if push_fn pushes a single entry,
- * or if it marks each object before pushing it, thus ensuring progress
- * in the event of a stack overflow.)
- */
-void GC_push_dirty(bottom, top, dirty_fn, push_fn)
-ptr_t bottom;
-ptr_t top;
-int (*dirty_fn)(/* struct hblk * h */);
-void (*push_fn)(/* ptr_t bottom, ptr_t top */);
-{
- register struct hblk * h;
-
- bottom = (ptr_t)(((long) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1));
- top = (ptr_t)(((long) top) & ~(ALIGNMENT-1));
-
- if (top == 0 || bottom == top) return;
- h = HBLKPTR(bottom + HBLKSIZE);
- if (top <= (ptr_t) h) {
- if ((*dirty_fn)(h-1)) {
- (*push_fn)(bottom, top);
- }
- return;
- }
- if ((*dirty_fn)(h-1)) {
- (*push_fn)(bottom, (ptr_t)h);
- }
- while ((ptr_t)(h+1) <= top) {
- if ((*dirty_fn)(h)) {
- if ((word)(GC_mark_stack_top - GC_mark_stack)
- > 3 * GC_mark_stack_size / 4) {
- /* Danger of mark stack overflow */
- (*push_fn)((ptr_t)h, top);
- return;
- } else {
- (*push_fn)((ptr_t)h, (ptr_t)(h+1));
- }
- }
- h++;
- }
- if ((ptr_t)h != top) {
- if ((*dirty_fn)(h)) {
- (*push_fn)((ptr_t)h, top);
- }
- }
- if (GC_mark_stack_top >= GC_mark_stack + GC_mark_stack_size) {
- ABORT("unexpected mark stack overflow");
- }
-}
-
-# ifndef SMALL_CONFIG
-void GC_push_conditional(bottom, top, all)
-ptr_t bottom;
-ptr_t top;
-int all;
-{
- if (all) {
- if (GC_dirty_maintained) {
-# ifdef PROC_VDB
- /* Pages that were never dirtied cannot contain pointers */
- GC_push_dirty(bottom, top, GC_page_was_ever_dirty, GC_push_all);
-# else
- GC_push_all(bottom, top);
-# endif
- } else {
- GC_push_all(bottom, top);
- }
- } else {
- GC_push_dirty(bottom, top, GC_page_was_dirty, GC_push_all);
- }
-}
-#endif
-
-# ifdef MSWIN32
- void __cdecl GC_push_one(p)
-# else
- void GC_push_one(p)
-# endif
-word p;
-{
-# ifdef NURSERY
- if (0 != GC_push_proc) {
- GC_push_proc(p);
- return;
- }
-# endif
- GC_PUSH_ONE_STACK(p, MARKED_FROM_REGISTER);
-}
-
-# ifdef __STDC__
-# define BASE(p) (word)GC_base((void *)(p))
-# else
-# define BASE(p) (word)GC_base((char *)(p))
-# endif
-
-/* As above, but argument passed preliminary test. */
-# if defined(PRINT_BLACK_LIST) || defined(KEEP_BACK_PTRS)
- void GC_push_one_checked(p, interior_ptrs, source)
- ptr_t source;
-# else
- void GC_push_one_checked(p, interior_ptrs)
-# define source 0
-# endif
-register word p;
-register GC_bool interior_ptrs;
-{
- register word r;
- register hdr * hhdr;
- register int displ;
-
- GET_HDR(p, hhdr);
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- if (hhdr != 0 && interior_ptrs) {
- r = BASE(p);
- hhdr = HDR(r);
- displ = BYTES_TO_WORDS(HBLKDISPL(r));
- } else {
- hhdr = 0;
- }
- } else {
- register map_entry_type map_entry;
-
- displ = HBLKDISPL(p);
- map_entry = MAP_ENTRY((hhdr -> hb_map), displ);
- if (map_entry == OBJ_INVALID) {
-# ifndef ALL_INTERIOR_POINTERS
- if (interior_ptrs) {
- r = BASE(p);
- displ = BYTES_TO_WORDS(HBLKDISPL(r));
- if (r == 0) hhdr = 0;
- } else {
- hhdr = 0;
- }
-# else
- /* map already reflects interior pointers */
- hhdr = 0;
-# endif
- } else {
- displ = BYTES_TO_WORDS(displ);
- displ -= map_entry;
- r = (word)((word *)(HBLKPTR(p)) + displ);
- }
- }
- /* If hhdr != 0 then r == GC_base(p), only we did it faster. */
- /* displ is the word index within the block. */
- if (hhdr == 0) {
- if (interior_ptrs) {
-# ifdef PRINT_BLACK_LIST
- GC_add_to_black_list_stack(p, source);
-# else
- GC_add_to_black_list_stack(p);
-# endif
- } else {
- GC_ADD_TO_BLACK_LIST_NORMAL(p, source);
-# undef source /* In case we had to define it. */
- }
- } else {
- if (!mark_bit_from_hdr(hhdr, displ)) {
- set_mark_bit_from_hdr(hhdr, displ);
- GC_STORE_BACK_PTR(source, (ptr_t)r);
- PUSH_OBJ((word *)r, hhdr, GC_mark_stack_top,
- &(GC_mark_stack[GC_mark_stack_size]));
- }
- }
-}
-
-# ifdef TRACE_BUF
-
-# define TRACE_ENTRIES 1000
-
-struct trace_entry {
- char * kind;
- word gc_no;
- word words_allocd;
- word arg1;
- word arg2;
-} GC_trace_buf[TRACE_ENTRIES];
-
-int GC_trace_buf_ptr = 0;
-
-void GC_add_trace_entry(char *kind, word arg1, word arg2)
-{
- GC_trace_buf[GC_trace_buf_ptr].kind = kind;
- GC_trace_buf[GC_trace_buf_ptr].gc_no = GC_gc_no;
- GC_trace_buf[GC_trace_buf_ptr].words_allocd = GC_words_allocd;
- GC_trace_buf[GC_trace_buf_ptr].arg1 = arg1 ^ 0x80000000;
- GC_trace_buf[GC_trace_buf_ptr].arg2 = arg2 ^ 0x80000000;
- GC_trace_buf_ptr++;
- if (GC_trace_buf_ptr >= TRACE_ENTRIES) GC_trace_buf_ptr = 0;
-}
-
-void GC_print_trace(word gc_no, GC_bool lock)
-{
- int i;
- struct trace_entry *p;
-
- if (lock) LOCK();
- for (i = GC_trace_buf_ptr-1; i != GC_trace_buf_ptr; i--) {
- if (i < 0) i = TRACE_ENTRIES-1;
- p = GC_trace_buf + i;
- if (p -> gc_no < gc_no || p -> kind == 0) return;
- printf("Trace:%s (gc:%d,words:%d) 0x%X, 0x%X\n",
- p -> kind, p -> gc_no, p -> words_allocd,
- (p -> arg1) ^ 0x80000000, (p -> arg2) ^ 0x80000000);
- }
- printf("Trace incomplete\n");
- if (lock) UNLOCK();
-}
-
-# endif /* TRACE_BUF */
-
-/*
- * A version of GC_push_all that treats all interior pointers as valid
- * and scans the entire region immediately, in case the contents
- * change.
- */
-void GC_push_all_eager(bottom, top)
-ptr_t bottom;
-ptr_t top;
-{
- word * b = (word *)(((long) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1));
- word * t = (word *)(((long) top) & ~(ALIGNMENT-1));
- register word *p;
- register word q;
- register word *lim;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
-# define GC_greatest_plausible_heap_addr greatest_ha
-# define GC_least_plausible_heap_addr least_ha
-
- if (top == 0) return;
- /* check all pointers in range and put in push if they appear */
- /* to be valid. */
- lim = t - 1 /* longword */;
- for (p = b; p <= lim; p = (word *)(((char *)p) + ALIGNMENT)) {
- q = *p;
- GC_PUSH_ONE_STACK(q, p);
- }
-# undef GC_greatest_plausible_heap_addr
-# undef GC_least_plausible_heap_addr
-}
-
-#ifndef THREADS
-/*
- * A version of GC_push_all that treats all interior pointers as valid
- * and scans part of the area immediately, to make sure that saved
- * register values are not lost.
- * Cold_gc_frame delimits the stack section that must be scanned
- * eagerly. A zero value indicates that no eager scanning is needed.
- */
-void GC_push_all_stack_partially_eager(bottom, top, cold_gc_frame)
-ptr_t bottom;
-ptr_t top;
-ptr_t cold_gc_frame;
-{
-# ifdef ALL_INTERIOR_POINTERS
-# define EAGER_BYTES 1024
- /* Push the hot end of the stack eagerly, so that register values */
- /* saved inside GC frames are marked before they disappear. */
- /* The rest of the marking can be deferred until later. */
- if (0 == cold_gc_frame) {
- GC_push_all_stack(bottom, top);
- return;
- }
-# ifdef STACK_GROWS_DOWN
- GC_push_all_eager(bottom, cold_gc_frame);
- GC_push_all(cold_gc_frame - sizeof(ptr_t), top);
-# else /* STACK_GROWS_UP */
- GC_push_all_eager(cold_gc_frame, top);
- GC_push_all(bottom, cold_gc_frame + sizeof(ptr_t));
-# endif /* STACK_GROWS_UP */
-# else
- GC_push_all_eager(bottom, top);
-# endif
-# ifdef TRACE_BUF
- GC_add_trace_entry("GC_push_all_stack", bottom, top);
-# endif
-}
-#endif /* !THREADS */
-
-void GC_push_all_stack(bottom, top)
-ptr_t bottom;
-ptr_t top;
-{
-# ifdef ALL_INTERIOR_POINTERS
- GC_push_all(bottom, top);
-# else
- GC_push_all_eager(bottom, top);
-# endif
-}
-
-#ifndef SMALL_CONFIG
-/* Push all objects reachable from marked objects in the given block */
-/* of size 1 objects. */
-void GC_push_marked1(h, hhdr)
-struct hblk *h;
-register hdr * hhdr;
-{
- word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p;
- word *plim;
- register int i;
- register word q;
- register word mark_word;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
-# define GC_greatest_plausible_heap_addr greatest_ha
-# define GC_least_plausible_heap_addr least_ha
-
- p = (word *)(h->hb_body);
- plim = (word *)(((word)h) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- i = 0;
- while(mark_word != 0) {
- if (mark_word & 1) {
- q = p[i];
- GC_PUSH_ONE_HEAP(q, p + i);
- }
- i++;
- mark_word >>= 1;
- }
- p += WORDSZ;
- }
-# undef GC_greatest_plausible_heap_addr
-# undef GC_least_plausible_heap_addr
-}
-
-
-#ifndef UNALIGNED
-
-/* Push all objects reachable from marked objects in the given block */
-/* of size 2 objects. */
-void GC_push_marked2(h, hhdr)
-struct hblk *h;
-register hdr * hhdr;
-{
- word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p;
- word *plim;
- register int i;
- register word q;
- register word mark_word;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
-# define GC_greatest_plausible_heap_addr greatest_ha
-# define GC_least_plausible_heap_addr least_ha
-
- p = (word *)(h->hb_body);
- plim = (word *)(((word)h) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- i = 0;
- while(mark_word != 0) {
- if (mark_word & 1) {
- q = p[i];
- GC_PUSH_ONE_HEAP(q, p + i);
- q = p[i+1];
- GC_PUSH_ONE_HEAP(q, p + i);
- }
- i += 2;
- mark_word >>= 2;
- }
- p += WORDSZ;
- }
-# undef GC_greatest_plausible_heap_addr
-# undef GC_least_plausible_heap_addr
-}
-
-/* Push all objects reachable from marked objects in the given block */
-/* of size 4 objects. */
-/* There is a risk of mark stack overflow here. But we handle that. */
-/* And only unmarked objects get pushed, so it's not very likely. */
-void GC_push_marked4(h, hhdr)
-struct hblk *h;
-register hdr * hhdr;
-{
- word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p;
- word *plim;
- register int i;
- register word q;
- register word mark_word;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
-# define GC_greatest_plausible_heap_addr greatest_ha
-# define GC_least_plausible_heap_addr least_ha
-
- p = (word *)(h->hb_body);
- plim = (word *)(((word)h) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- i = 0;
- while(mark_word != 0) {
- if (mark_word & 1) {
- q = p[i];
- GC_PUSH_ONE_HEAP(q, p + i);
- q = p[i+1];
- GC_PUSH_ONE_HEAP(q, p + i + 1);
- q = p[i+2];
- GC_PUSH_ONE_HEAP(q, p + i + 2);
- q = p[i+3];
- GC_PUSH_ONE_HEAP(q, p + i + 3);
- }
- i += 4;
- mark_word >>= 4;
- }
- p += WORDSZ;
- }
-# undef GC_greatest_plausible_heap_addr
-# undef GC_least_plausible_heap_addr
-}
-
-#endif /* UNALIGNED */
-
-#endif /* SMALL_CONFIG */
-
-/* Push all objects reachable from marked objects in the given block */
-void GC_push_marked(h, hhdr)
-struct hblk *h;
-register hdr * hhdr;
-{
- register int sz = hhdr -> hb_sz;
- register int descr = hhdr -> hb_descr;
- register word * p;
- register int word_no;
- register word * lim;
- register mse * GC_mark_stack_top_reg;
- register mse * mark_stack_limit = &(GC_mark_stack[GC_mark_stack_size]);
-
- /* Some quick shortcuts: */
- if ((0 | DS_LENGTH) == descr) return;
- if (GC_block_empty(hhdr)/* nothing marked */) return;
-# ifdef GATHERSTATS
- GC_n_rescuing_pages++;
-# endif
- GC_objects_are_marked = TRUE;
- if (sz > MAXOBJSZ) {
- lim = (word *)h + HDR_WORDS;
- } else {
- lim = (word *)(h + 1) - sz;
- }
-
- switch(sz) {
-# if !defined(SMALL_CONFIG)
- case 1:
- GC_push_marked1(h, hhdr);
- break;
-# endif
-# if !defined(SMALL_CONFIG) && !defined(UNALIGNED)
- case 2:
- GC_push_marked2(h, hhdr);
- break;
- case 4:
- GC_push_marked4(h, hhdr);
- break;
-# endif
- default:
- GC_mark_stack_top_reg = GC_mark_stack_top;
- for (p = (word *)h + HDR_WORDS, word_no = HDR_WORDS; p <= lim;
- p += sz, word_no += sz) {
- if (mark_bit_from_hdr(hhdr, word_no)) {
- /* Mark from fields inside the object */
- PUSH_OBJ((word *)p, hhdr, GC_mark_stack_top_reg, mark_stack_limit);
-# ifdef GATHERSTATS
- /* Subtract this object from total, since it was */
- /* added in twice. */
- GC_composite_in_use -= sz;
-# endif
- }
- }
- GC_mark_stack_top = GC_mark_stack_top_reg;
- }
-}
-
-#ifndef SMALL_CONFIG
-/* Test whether any page in the given block is dirty */
-GC_bool GC_block_was_dirty(h, hhdr)
-struct hblk *h;
-register hdr * hhdr;
-{
- register int sz = hhdr -> hb_sz;
-
- if (sz < MAXOBJSZ) {
- return(GC_page_was_dirty(h));
- } else {
- register ptr_t p = (ptr_t)h;
- sz += HDR_WORDS;
- sz = WORDS_TO_BYTES(sz);
- while (p < (ptr_t)h + sz) {
- if (GC_page_was_dirty((struct hblk *)p)) return(TRUE);
- p += HBLKSIZE;
- }
- return(FALSE);
- }
-}
-#endif /* SMALL_CONFIG */
-
-/* Similar to GC_push_next_marked, but return address of next block */
-struct hblk * GC_push_next_marked(h)
-struct hblk *h;
-{
- register hdr * hhdr;
-
- h = GC_next_used_block(h);
- if (h == 0) return(0);
- hhdr = HDR(h);
- GC_push_marked(h, hhdr);
- return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz));
-}
-
-#ifndef SMALL_CONFIG
-/* Identical to above, but mark only from dirty pages */
-struct hblk * GC_push_next_marked_dirty(h)
-struct hblk *h;
-{
- register hdr * hhdr;
-
- if (!GC_dirty_maintained) { ABORT("dirty bits not set up"); }
- for (;;) {
- h = GC_next_used_block(h);
- if (h == 0) return(0);
- hhdr = HDR(h);
-# ifdef STUBBORN_ALLOC
- if (hhdr -> hb_obj_kind == STUBBORN) {
- if (GC_page_was_changed(h) && GC_block_was_dirty(h, hhdr)) {
- break;
- }
- } else {
- if (GC_block_was_dirty(h, hhdr)) break;
- }
-# else
- if (GC_block_was_dirty(h, hhdr)) break;
-# endif
- h += OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz);
- }
- GC_push_marked(h, hhdr);
- return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz));
-}
-#endif
-
-/* Similar to above, but for uncollectable pages. Needed since we */
-/* do not clear marks for such pages, even for full collections. */
-struct hblk * GC_push_next_marked_uncollectable(h)
-struct hblk *h;
-{
- register hdr * hhdr = HDR(h);
-
- for (;;) {
- h = GC_next_used_block(h);
- if (h == 0) return(0);
- hhdr = HDR(h);
- if (hhdr -> hb_obj_kind == UNCOLLECTABLE) break;
- h += OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz);
- }
- GC_push_marked(h, hhdr);
- return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz));
-}
-
-
diff --git a/boehm-gc/mark_rts.c b/boehm-gc/mark_rts.c
deleted file mode 100644
index 5bafd07ed89..00000000000
--- a/boehm-gc/mark_rts.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, October 9, 1995 1:06 pm PDT */
-# include <stdio.h>
-# include "gc_priv.h"
-
-/* Data structure for list of root sets. */
-/* We keep a hash table, so that we can filter out duplicate additions. */
-/* Under Win32, we need to do a better job of filtering overlaps, so */
-/* we resort to sequential search, and pay the price. */
-/* This is really declared in gc_priv.h:
-struct roots {
- ptr_t r_start;
- ptr_t r_end;
- # ifndef MSWIN32
- struct roots * r_next;
- # endif
- GC_bool r_tmp;
- -- Delete before registering new dynamic libraries
-};
-
-struct roots GC_static_roots[MAX_ROOT_SETS];
-*/
-
-static int n_root_sets = 0;
-
- /* GC_static_roots[0..n_root_sets) contains the valid root sets. */
-
-# if !defined(NO_DEBUGGING)
-/* For debugging: */
-void GC_print_static_roots()
-{
- register int i;
- size_t total = 0;
-
- for (i = 0; i < n_root_sets; i++) {
- GC_printf2("From 0x%lx to 0x%lx ",
- (unsigned long) GC_static_roots[i].r_start,
- (unsigned long) GC_static_roots[i].r_end);
- if (GC_static_roots[i].r_tmp) {
- GC_printf0(" (temporary)\n");
- } else {
- GC_printf0("\n");
- }
- total += GC_static_roots[i].r_end - GC_static_roots[i].r_start;
- }
- GC_printf1("Total size: %ld\n", (unsigned long) total);
- if (GC_root_size != total) {
- GC_printf1("GC_root_size incorrect: %ld!!\n",
- (unsigned long) GC_root_size);
- }
-}
-# endif /* NO_DEBUGGING */
-
-/* Primarily for debugging support: */
-/* Is the address p in one of the registered static */
-/* root sections? */
-GC_bool GC_is_static_root(p)
-ptr_t p;
-{
- static int last_root_set = 0;
- register int i;
-
-
- if (p >= GC_static_roots[last_root_set].r_start
- && p < GC_static_roots[last_root_set].r_end) return(TRUE);
- for (i = 0; i < n_root_sets; i++) {
- if (p >= GC_static_roots[i].r_start
- && p < GC_static_roots[i].r_end) {
- last_root_set = i;
- return(TRUE);
- }
- }
- return(FALSE);
-}
-
-#ifndef MSWIN32
-/*
-# define LOG_RT_SIZE 6
-# define RT_SIZE (1 << LOG_RT_SIZE) -- Power of 2, may be != MAX_ROOT_SETS
-
- struct roots * GC_root_index[RT_SIZE];
- -- Hash table header. Used only to check whether a range is
- -- already present.
- -- really defined in gc_priv.h
-*/
-
-static int rt_hash(addr)
-char * addr;
-{
- word result = (word) addr;
-# if CPP_WORDSZ > 8*LOG_RT_SIZE
- result ^= result >> 8*LOG_RT_SIZE;
-# endif
-# if CPP_WORDSZ > 4*LOG_RT_SIZE
- result ^= result >> 4*LOG_RT_SIZE;
-# endif
- result ^= result >> 2*LOG_RT_SIZE;
- result ^= result >> LOG_RT_SIZE;
- result &= (RT_SIZE-1);
- return(result);
-}
-
-/* Is a range starting at b already in the table? If so return a */
-/* pointer to it, else NIL. */
-struct roots * GC_roots_present(b)
-char *b;
-{
- register int h = rt_hash(b);
- register struct roots *p = GC_root_index[h];
-
- while (p != 0) {
- if (p -> r_start == (ptr_t)b) return(p);
- p = p -> r_next;
- }
- return(FALSE);
-}
-
-/* Add the given root structure to the index. */
-static void add_roots_to_index(p)
-struct roots *p;
-{
- register int h = rt_hash(p -> r_start);
-
- p -> r_next = GC_root_index[h];
- GC_root_index[h] = p;
-}
-
-# else /* MSWIN32 */
-
-# define add_roots_to_index(p)
-
-# endif
-
-
-
-
-word GC_root_size = 0;
-
-void GC_add_roots(b, e)
-char * b; char * e;
-{
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_add_roots_inner(b, e, FALSE);
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-
-/* Add [b,e) to the root set. Adding the same interval a second time */
-/* is a moderately fast noop, and hence benign. We do not handle */
-/* different but overlapping intervals efficiently. (We do handle */
-/* them correctly.) */
-/* Tmp specifies that the interval may be deleted before */
-/* reregistering dynamic libraries. */
-void GC_add_roots_inner(b, e, tmp)
-char * b; char * e;
-GC_bool tmp;
-{
- struct roots * old;
-
-# ifdef MSWIN32
- /* Spend the time to ensure that there are no overlapping */
- /* or adjacent intervals. */
- /* This could be done faster with e.g. a */
- /* balanced tree. But the execution time here is */
- /* virtually guaranteed to be dominated by the time it */
- /* takes to scan the roots. */
- {
- register int i;
-
- for (i = 0; i < n_root_sets; i++) {
- old = GC_static_roots + i;
- if ((ptr_t)b <= old -> r_end && (ptr_t)e >= old -> r_start) {
- if ((ptr_t)b < old -> r_start) {
- old -> r_start = (ptr_t)b;
- GC_root_size += (old -> r_start - (ptr_t)b);
- }
- if ((ptr_t)e > old -> r_end) {
- old -> r_end = (ptr_t)e;
- GC_root_size += ((ptr_t)e - old -> r_end);
- }
- old -> r_tmp &= tmp;
- break;
- }
- }
- if (i < n_root_sets) {
- /* merge other overlapping intervals */
- struct roots *other;
-
- for (i++; i < n_root_sets; i++) {
- other = GC_static_roots + i;
- b = (char *)(other -> r_start);
- e = (char *)(other -> r_end);
- if ((ptr_t)b <= old -> r_end && (ptr_t)e >= old -> r_start) {
- if ((ptr_t)b < old -> r_start) {
- old -> r_start = (ptr_t)b;
- GC_root_size += (old -> r_start - (ptr_t)b);
- }
- if ((ptr_t)e > old -> r_end) {
- old -> r_end = (ptr_t)e;
- GC_root_size += ((ptr_t)e - old -> r_end);
- }
- old -> r_tmp &= other -> r_tmp;
- /* Delete this entry. */
- GC_root_size -= (other -> r_end - other -> r_start);
- other -> r_start = GC_static_roots[n_root_sets-1].r_start;
- other -> r_end = GC_static_roots[n_root_sets-1].r_end;
- n_root_sets--;
- }
- }
- return;
- }
- }
-# else
- old = GC_roots_present(b);
- if (old != 0) {
- if ((ptr_t)e <= old -> r_end) /* already there */ return;
- /* else extend */
- GC_root_size += (ptr_t)e - old -> r_end;
- old -> r_end = (ptr_t)e;
- return;
- }
-# endif
- if (n_root_sets == MAX_ROOT_SETS) {
- ABORT("Too many root sets\n");
- }
- GC_static_roots[n_root_sets].r_start = (ptr_t)b;
- GC_static_roots[n_root_sets].r_end = (ptr_t)e;
- GC_static_roots[n_root_sets].r_tmp = tmp;
-# ifndef MSWIN32
- GC_static_roots[n_root_sets].r_next = 0;
-# endif
- add_roots_to_index(GC_static_roots + n_root_sets);
- GC_root_size += (ptr_t)e - (ptr_t)b;
- n_root_sets++;
-}
-
-void GC_clear_roots GC_PROTO((void))
-{
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- n_root_sets = 0;
- GC_root_size = 0;
-# ifndef MSWIN32
- {
- register int i;
-
- for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
- }
-# endif
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-/* Internal use only; lock held. */
-void GC_remove_tmp_roots()
-{
- register int i;
-
- for (i = 0; i < n_root_sets; ) {
- if (GC_static_roots[i].r_tmp) {
- GC_root_size -=
- (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
- GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
- GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
- GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
- n_root_sets--;
- } else {
- i++;
- }
- }
-# ifndef MSWIN32
- {
- register int i;
-
- for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
- for (i = 0; i < n_root_sets; i++)
- add_roots_to_index(GC_static_roots + i);
- }
-# endif
-
-}
-
-ptr_t GC_approx_sp()
-{
- word dummy;
-
- return((ptr_t)(&dummy));
-}
-
-/*
- * Data structure for excluded static roots.
- * Real declaration is in gc_priv.h.
-
-struct exclusion {
- ptr_t e_start;
- ptr_t e_end;
-};
-
-struct exclusion GC_excl_table[MAX_EXCLUSIONS];
- -- Array of exclusions, ascending
- -- address order.
-*/
-
-size_t GC_excl_table_entries = 0; /* Number of entries in use. */
-
-/* Return the first exclusion range that includes an address >= start_addr */
-/* Assumes the exclusion table contains at least one entry (namely the */
-/* GC data structures). */
-struct exclusion * GC_next_exclusion(start_addr)
-ptr_t start_addr;
-{
- size_t low = 0;
- size_t high = GC_excl_table_entries - 1;
- size_t mid;
-
- while (high > low) {
- mid = (low + high) >> 1;
- /* low <= mid < high */
- if ((word) GC_excl_table[mid].e_end <= (word) start_addr) {
- low = mid + 1;
- } else {
- high = mid;
- }
- }
- if ((word) GC_excl_table[low].e_end <= (word) start_addr) return 0;
- return GC_excl_table + low;
-}
-
-void GC_exclude_static_roots(start, finish)
-GC_PTR start;
-GC_PTR finish;
-{
- struct exclusion * next;
- size_t next_index, i;
-
- if (0 == GC_excl_table_entries) {
- next = 0;
- } else {
- next = GC_next_exclusion(start);
- }
- if (0 != next) {
- if ((word)(next -> e_start) < (word) finish) {
- /* incomplete error check. */
- ABORT("exclusion ranges overlap");
- }
- if ((word)(next -> e_start) == (word) finish) {
- /* extend old range backwards */
- next -> e_start = (ptr_t)start;
- return;
- }
- next_index = next - GC_excl_table;
- for (i = GC_excl_table_entries; i > next_index; --i) {
- GC_excl_table[i] = GC_excl_table[i-1];
- }
- } else {
- next_index = GC_excl_table_entries;
- }
- if (GC_excl_table_entries == MAX_EXCLUSIONS) ABORT("Too many exclusions");
- GC_excl_table[next_index].e_start = (ptr_t)start;
- GC_excl_table[next_index].e_end = (ptr_t)finish;
- ++GC_excl_table_entries;
-}
-
-/* Invoke push_conditional on ranges that are not excluded. */
-void GC_push_conditional_with_exclusions(bottom, top, all)
-ptr_t bottom;
-ptr_t top;
-int all;
-{
- struct exclusion * next;
- ptr_t excl_start;
-
- while (bottom < top) {
- next = GC_next_exclusion(bottom);
- if (0 == next || (excl_start = next -> e_start) >= top) {
- GC_push_conditional(bottom, top, all);
- return;
- }
- if (excl_start > bottom) GC_push_conditional(bottom, excl_start, all);
- bottom = next -> e_end;
- }
-}
-
-/*
- * In the absence of threads, push the stack contents.
- * In the presence of threads, push enough of the current stack
- * to ensure that callee-save registers saved in collector frames have been
- * seen.
- */
-void GC_push_current_stack(cold_gc_frame)
-ptr_t cold_gc_frame;
-{
-# if defined(THREADS)
- if (0 == cold_gc_frame) return;
-# ifdef STACK_GROWS_DOWN
- GC_push_all_eager(GC_approx_sp(), cold_gc_frame);
- /* For IA64, the register stack backing store is handled */
- /* in the thread-specific code. */
-# else
- GC_push_all_eager( cold_gc_frame, GC_approx_sp() );
-# endif
-# else
-# ifdef STACK_GROWS_DOWN
- GC_push_all_stack_partially_eager( GC_approx_sp(), GC_stackbottom,
- cold_gc_frame );
-# ifdef IA64
- /* We also need to push the register stack backing store. */
- /* This should really be done in the same way as the */
- /* regular stack. For now we fudge it a bit. */
- /* Note that the backing store grows up, so we can't use */
- /* GC_push_all_stack_partially_eager. */
- {
- extern word GC_save_regs_ret_val;
- /* Previously set to backing store pointer. */
- ptr_t bsp = (ptr_t) GC_save_regs_ret_val;
- ptr_t cold_gc_bs_pointer;
-# ifdef ALL_INTERIOR_POINTERS
- cold_gc_bs_pointer = bsp - 2048;
- if (cold_gc_bs_pointer < BACKING_STORE_BASE) {
- cold_gc_bs_pointer = BACKING_STORE_BASE;
- }
- GC_push_all(BACKING_STORE_BASE, cold_gc_bs_pointer);
-# else
- cold_gc_bs_pointer = BACKING_STORE_BASE;
-# endif
- GC_push_all_eager(cold_gc_bs_pointer, bsp);
- /* All values should be sufficiently aligned that we */
- /* dont have to worry about the boundary. */
- }
-# endif
-# else
- GC_push_all_stack_partially_eager( GC_stackbottom, GC_approx_sp(),
- cold_gc_frame );
-# endif
-# endif /* !THREADS */
-}
-
-/*
- * Call the mark routines (GC_tl_push for a single pointer, GC_push_conditional
- * on groups of pointers) on every top level accessible pointer.
- * If all is FALSE, arrange to push only possibly altered values.
- * Cold_gc_frame is an address inside a GC frame that
- * remains valid until all marking is complete.
- * A zero value indicates that it's OK to miss some
- * register values.
- */
-void GC_push_roots(all, cold_gc_frame)
-GC_bool all;
-ptr_t cold_gc_frame;
-{
- register int i;
-
- /*
- * push registers - i.e., call GC_push_one(r) for each
- * register contents r.
- */
-# ifdef USE_GENERIC_PUSH_REGS
- GC_generic_push_regs(cold_gc_frame);
-# else
- GC_push_regs(); /* usually defined in machine_dep.c */
-# endif
-
- /*
- * Next push static data. This must happen early on, since it's
- * not robust against mark stack overflow.
- */
- /* Reregister dynamic libraries, in case one got added. */
-# if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(PCR)) \
- && !defined(SRC_M3)
- GC_remove_tmp_roots();
- GC_register_dynamic_libraries();
-# endif
- /* Mark everything in static data areas */
- for (i = 0; i < n_root_sets; i++) {
- GC_push_conditional_with_exclusions(
- GC_static_roots[i].r_start,
- GC_static_roots[i].r_end, all);
- }
-
- /*
- * Now traverse stacks.
- */
-# if !defined(USE_GENERIC_PUSH_REGS)
- GC_push_current_stack(cold_gc_frame);
- /* IN the threads case, this only pushes collector frames. */
- /* In the USE_GENERIC_PUSH_REGS case, this is done inside */
- /* GC_push_regs, so that we catch callee-save registers saved */
- /* inside the GC_push_regs frame. */
- /* In the case of linux threads on Ia64, the hot section of */
- /* the main stack is marked here, but the register stack */
- /* backing store is handled in the threads-specific code. */
-# endif
- if (GC_push_other_roots != 0) (*GC_push_other_roots)();
- /* In the threads case, this also pushes thread stacks. */
-}
-
diff --git a/boehm-gc/mips_sgi_mach_dep.s b/boehm-gc/mips_sgi_mach_dep.s
deleted file mode 100644
index bae9b5ebfe4..00000000000
--- a/boehm-gc/mips_sgi_mach_dep.s
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <sys/regdef.h>
-#include <sys/asm.h>
-
-# define call_push(x) move $4,x; jal GC_push_one
-
- .option pic2
- .text
-/* Mark from machine registers that are saved by C compiler */
-# define FRAMESZ 32
-# define RAOFF FRAMESZ-SZREG
-# define GPOFF FRAMESZ-(2*SZREG)
- NESTED(GC_push_regs, FRAMESZ, ra)
- .mask 0x80000000,-SZREG # inform debugger of saved ra loc
- move t0,gp
- SETUP_GPX(t8)
- PTR_SUBU sp,FRAMESZ
-# ifdef SETUP_GP64
- SETUP_GP64(GPOFF, GC_push_regs)
-# endif
- SAVE_GP(GPOFF)
- REG_S ra,RAOFF(sp)
-# if (_MIPS_SIM == _MIPS_SIM_ABI32)
- call_push($2)
- call_push($3)
-# endif
- call_push($16)
- call_push($17)
- call_push($18)
- call_push($19)
- call_push($20)
- call_push($21)
- call_push($22)
- call_push($23)
- call_push($30)
- REG_L ra,RAOFF(sp)
-# ifdef RESTORE_GP64
- RESTORE_GP64
-# endif
- PTR_ADDU sp,FRAMESZ
- j ra
- .end GC_push_regs
diff --git a/boehm-gc/mips_ultrix_mach_dep.s b/boehm-gc/mips_ultrix_mach_dep.s
deleted file mode 100644
index 178224e31c8..00000000000
--- a/boehm-gc/mips_ultrix_mach_dep.s
+++ /dev/null
@@ -1,26 +0,0 @@
-# define call_push(x) move $4,x; jal GC_push_one
-
- .text
- # Mark from machine registers that are saved by C compiler
- .globl GC_push_regs
- .ent GC_push_regs
-GC_push_regs:
- subu $sp,8 ## Need to save only return address
- sw $31,4($sp)
- .mask 0x80000000,-4
- .frame $sp,8,$31
- call_push($2)
- call_push($3)
- call_push($16)
- call_push($17)
- call_push($18)
- call_push($19)
- call_push($20)
- call_push($21)
- call_push($22)
- call_push($23)
- call_push($30)
- lw $31,4($sp)
- addu $sp,8
- j $31
- .end GC_push_regs
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
deleted file mode 100644
index dd42961c4b3..00000000000
--- a/boehm-gc/misc.c
+++ /dev/null
@@ -1,859 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, July 31, 1995 5:02 pm PDT */
-
-
-#include <stdio.h>
-#include <signal.h>
-
-#define I_HIDE_POINTERS /* To make GC_call_with_alloc_lock visible */
-#include "gc_priv.h"
-
-#ifdef SOLARIS_THREADS
-# include <sys/syscall.h>
-#endif
-#ifdef MSWIN32
-# include <windows.h>
-#endif
-
-# ifdef THREADS
-# ifdef PCR
-# include "il/PCR_IL.h"
- PCR_Th_ML GC_allocate_ml;
-# else
-# ifdef SRC_M3
- /* Critical section counter is defined in the M3 runtime */
- /* That's all we use. */
-# else
-# ifdef SOLARIS_THREADS
- mutex_t GC_allocate_ml; /* Implicitly initialized. */
-# else
-# ifdef WIN32_THREADS
- GC_API CRITICAL_SECTION GC_allocate_ml;
-# else
-# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS) \
- || (defined(LINUX_THREADS) && defined(USE_SPIN_LOCK))
- pthread_t GC_lock_holder = NO_THREAD;
-# else
-# if defined(HPUX_THREADS) \
- || defined(LINUX_THREADS) && !defined(USE_SPIN_LOCK)
- pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER;
-# else
- --> declare allocator lock here
-# endif
-# endif
-# endif
-# endif
-# endif
-# endif
-# endif
-
-#ifdef ECOS
-#undef STACKBASE
-#endif
-
-GC_FAR struct _GC_arrays GC_arrays /* = { 0 } */;
-
-
-GC_bool GC_debugging_started = FALSE;
- /* defined here so we don't have to load debug_malloc.o */
-
-void (*GC_check_heap)() = (void (*)())0;
-
-void (*GC_start_call_back)() = (void (*)())0;
-
-ptr_t GC_stackbottom = 0;
-
-GC_bool GC_dont_gc = 0;
-
-GC_bool GC_quiet = 0;
-
-#ifdef FIND_LEAK
- int GC_find_leak = 1;
-#else
- int GC_find_leak = 0;
-#endif
-
-/*ARGSUSED*/
-GC_PTR GC_default_oom_fn GC_PROTO((size_t bytes_requested))
-{
- return(0);
-}
-
-GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requested)) = GC_default_oom_fn;
-
-extern signed_word GC_mem_found;
-
-# ifdef MERGE_SIZES
- /* Set things up so that GC_size_map[i] >= words(i), */
- /* but not too much bigger */
- /* and so that size_map contains relatively few distinct entries */
- /* This is stolen from Russ Atkinson's Cedar quantization */
- /* alogrithm (but we precompute it). */
-
-
- void GC_init_size_map()
- {
- register unsigned i;
-
- /* Map size 0 to 1. This avoids problems at lower levels. */
- GC_size_map[0] = 1;
- /* One word objects don't have to be 2 word aligned. */
- for (i = 1; i < sizeof(word); i++) {
- GC_size_map[i] = 1;
- }
- GC_size_map[sizeof(word)] = ROUNDED_UP_WORDS(sizeof(word));
- for (i = sizeof(word) + 1; i <= 8 * sizeof(word); i++) {
-# ifdef ALIGN_DOUBLE
- GC_size_map[i] = (ROUNDED_UP_WORDS(i) + 1) & (~1);
-# else
- GC_size_map[i] = ROUNDED_UP_WORDS(i);
-# endif
- }
- for (i = 8*sizeof(word) + 1; i <= 16 * sizeof(word); i++) {
- GC_size_map[i] = (ROUNDED_UP_WORDS(i) + 1) & (~1);
- }
-# ifdef GC_GCJ_SUPPORT
- /* Make all sizes up to 32 words predictable, so that a */
- /* compiler can statically perform the same computation, */
- /* or at least a computation that results in similar size */
- /* classes. */
- for (i = 16*sizeof(word) + 1; i <= 32 * sizeof(word); i++) {
- GC_size_map[i] = (ROUNDED_UP_WORDS(i) + 3) & (~3);
- }
-# endif
- /* We leave the rest of the array to be filled in on demand. */
- }
-
- /* Fill in additional entries in GC_size_map, including the ith one */
- /* We assume the ith entry is currently 0. */
- /* Note that a filled in section of the array ending at n always */
- /* has length at least n/4. */
- void GC_extend_size_map(i)
- word i;
- {
- word orig_word_sz = ROUNDED_UP_WORDS(i);
- word word_sz = orig_word_sz;
- register word byte_sz = WORDS_TO_BYTES(word_sz);
- /* The size we try to preserve. */
- /* Close to to i, unless this would */
- /* introduce too many distinct sizes. */
- word smaller_than_i = byte_sz - (byte_sz >> 3);
- word much_smaller_than_i = byte_sz - (byte_sz >> 2);
- register word low_limit; /* The lowest indexed entry we */
- /* initialize. */
- register word j;
-
- if (GC_size_map[smaller_than_i] == 0) {
- low_limit = much_smaller_than_i;
- while (GC_size_map[low_limit] != 0) low_limit++;
- } else {
- low_limit = smaller_than_i + 1;
- while (GC_size_map[low_limit] != 0) low_limit++;
- word_sz = ROUNDED_UP_WORDS(low_limit);
- word_sz += word_sz >> 3;
- if (word_sz < orig_word_sz) word_sz = orig_word_sz;
- }
-# ifdef ALIGN_DOUBLE
- word_sz += 1;
- word_sz &= ~1;
-# endif
- if (word_sz > MAXOBJSZ) {
- word_sz = MAXOBJSZ;
- }
- /* If we can fit the same number of larger objects in a block, */
- /* do so. */
- {
- size_t number_of_objs = BODY_SZ/word_sz;
- word_sz = BODY_SZ/number_of_objs;
-# ifdef ALIGN_DOUBLE
- word_sz &= ~1;
-# endif
- }
- byte_sz = WORDS_TO_BYTES(word_sz);
-# ifdef ADD_BYTE_AT_END
- /* We need one extra byte; don't fill in GC_size_map[byte_sz] */
- byte_sz--;
-# endif
-
- for (j = low_limit; j <= byte_sz; j++) GC_size_map[j] = word_sz;
- }
-# endif
-
-
-/*
- * The following is a gross hack to deal with a problem that can occur
- * on machines that are sloppy about stack frame sizes, notably SPARC.
- * Bogus pointers may be written to the stack and not cleared for
- * a LONG time, because they always fall into holes in stack frames
- * that are not written. We partially address this by clearing
- * sections of the stack whenever we get control.
- */
-word GC_stack_last_cleared = 0; /* GC_no when we last did this */
-# ifdef THREADS
-# define CLEAR_SIZE 2048
-# else
-# define CLEAR_SIZE 213
-# endif
-# define DEGRADE_RATE 50
-
-word GC_min_sp; /* Coolest stack pointer value from which we've */
- /* already cleared the stack. */
-
-# ifdef STACK_GROWS_DOWN
-# define COOLER_THAN >
-# define HOTTER_THAN <
-# define MAKE_COOLER(x,y) if ((word)(x)+(y) > (word)(x)) {(x) += (y);} \
- else {(x) = (word)ONES;}
-# define MAKE_HOTTER(x,y) (x) -= (y)
-# else
-# define COOLER_THAN <
-# define HOTTER_THAN >
-# define MAKE_COOLER(x,y) if ((word)(x)-(y) < (word)(x)) {(x) -= (y);} else {(x) = 0;}
-# define MAKE_HOTTER(x,y) (x) += (y)
-# endif
-
-word GC_high_water;
- /* "hottest" stack pointer value we have seen */
- /* recently. Degrades over time. */
-
-word GC_words_allocd_at_reset;
-
-#if defined(ASM_CLEAR_CODE) && !defined(THREADS)
- extern ptr_t GC_clear_stack_inner();
-#endif
-
-#if !defined(ASM_CLEAR_CODE) && !defined(THREADS)
-/* Clear the stack up to about limit. Return arg. */
-/*ARGSUSED*/
-ptr_t GC_clear_stack_inner(arg, limit)
-ptr_t arg;
-word limit;
-{
- word dummy[CLEAR_SIZE];
-
- BZERO(dummy, CLEAR_SIZE*sizeof(word));
- if ((word)(dummy) COOLER_THAN limit) {
- (void) GC_clear_stack_inner(arg, limit);
- }
- /* Make sure the recursive call is not a tail call, and the bzero */
- /* call is not recognized as dead code. */
- GC_noop1((word)dummy);
- return(arg);
-}
-#endif
-
-/* Clear some of the inaccessible part of the stack. Returns its */
-/* argument, so it can be used in a tail call position, hence clearing */
-/* another frame. */
-ptr_t GC_clear_stack(arg)
-ptr_t arg;
-{
- register word sp = (word)GC_approx_sp(); /* Hotter than actual sp */
-# ifdef THREADS
- word dummy[CLEAR_SIZE];
-# else
- register word limit;
-# endif
-
-# define SLOP 400
- /* Extra bytes we clear every time. This clears our own */
- /* activation record, and should cause more frequent */
- /* clearing near the cold end of the stack, a good thing. */
-# define GC_SLOP 4000
- /* We make GC_high_water this much hotter than we really saw */
- /* saw it, to cover for GC noise etc. above our current frame. */
-# define CLEAR_THRESHOLD 100000
- /* We restart the clearing process after this many bytes of */
- /* allocation. Otherwise very heavily recursive programs */
- /* with sparse stacks may result in heaps that grow almost */
- /* without bounds. As the heap gets larger, collection */
- /* frequency decreases, thus clearing frequency would decrease, */
- /* thus more junk remains accessible, thus the heap gets */
- /* larger ... */
-# ifdef THREADS
- BZERO(dummy, CLEAR_SIZE*sizeof(word));
-# else
- if (GC_gc_no > GC_stack_last_cleared) {
- /* Start things over, so we clear the entire stack again */
- if (GC_stack_last_cleared == 0) GC_high_water = (word) GC_stackbottom;
- GC_min_sp = GC_high_water;
- GC_stack_last_cleared = GC_gc_no;
- GC_words_allocd_at_reset = GC_words_allocd;
- }
- /* Adjust GC_high_water */
- MAKE_COOLER(GC_high_water, WORDS_TO_BYTES(DEGRADE_RATE) + GC_SLOP);
- if (sp HOTTER_THAN GC_high_water) {
- GC_high_water = sp;
- }
- MAKE_HOTTER(GC_high_water, GC_SLOP);
- limit = GC_min_sp;
- MAKE_HOTTER(limit, SLOP);
- if (sp COOLER_THAN limit) {
- limit &= ~0xf; /* Make it sufficiently aligned for assembly */
- /* implementations of GC_clear_stack_inner. */
- GC_min_sp = sp;
- return(GC_clear_stack_inner(arg, limit));
- } else if (WORDS_TO_BYTES(GC_words_allocd - GC_words_allocd_at_reset)
- > CLEAR_THRESHOLD) {
- /* Restart clearing process, but limit how much clearing we do. */
- GC_min_sp = sp;
- MAKE_HOTTER(GC_min_sp, CLEAR_THRESHOLD/4);
- if (GC_min_sp HOTTER_THAN GC_high_water) GC_min_sp = GC_high_water;
- GC_words_allocd_at_reset = GC_words_allocd;
- }
-# endif
- return(arg);
-}
-
-
-/* Return a pointer to the base address of p, given a pointer to a */
-/* an address within an object. Return 0 o.w. */
-# ifdef __STDC__
- GC_PTR GC_base(GC_PTR p)
-# else
- GC_PTR GC_base(p)
- GC_PTR p;
-# endif
-{
- register word r;
- register struct hblk *h;
- register bottom_index *bi;
- register hdr *candidate_hdr;
- register word limit;
-
- r = (word)p;
- if (!GC_is_initialized) return 0;
- h = HBLKPTR(r);
- GET_BI(r, bi);
- candidate_hdr = HDR_FROM_BI(bi, r);
- if (candidate_hdr == 0) return(0);
- /* If it's a pointer to the middle of a large object, move it */
- /* to the beginning. */
- while (IS_FORWARDING_ADDR_OR_NIL(candidate_hdr)) {
- h = FORWARDED_ADDR(h,candidate_hdr);
- r = (word)h + HDR_BYTES;
- candidate_hdr = HDR(h);
- }
- if (candidate_hdr -> hb_map == GC_invalid_map) return(0);
- /* Make sure r points to the beginning of the object */
- r &= ~(WORDS_TO_BYTES(1) - 1);
- {
- register int offset = (char *)r - (char *)(HBLKPTR(r));
- register signed_word sz = candidate_hdr -> hb_sz;
-
-# ifdef ALL_INTERIOR_POINTERS
- register map_entry_type map_entry;
-
- map_entry = MAP_ENTRY((candidate_hdr -> hb_map), offset);
- if (map_entry == OBJ_INVALID) {
- return(0);
- }
- r -= WORDS_TO_BYTES(map_entry);
- limit = r + WORDS_TO_BYTES(sz);
-# else
- register int correction;
-
- offset = BYTES_TO_WORDS(offset - HDR_BYTES);
- correction = offset % sz;
- r -= (WORDS_TO_BYTES(correction));
- limit = r + WORDS_TO_BYTES(sz);
- if (limit > (word)(h + 1)
- && sz <= BYTES_TO_WORDS(HBLKSIZE) - HDR_WORDS) {
- return(0);
- }
-# endif
- if ((word)p >= limit) return(0);
- }
- return((GC_PTR)r);
-}
-
-
-/* Return the size of an object, given a pointer to its base. */
-/* (For small obects this also happens to work from interior pointers, */
-/* but that shouldn't be relied upon.) */
-# ifdef __STDC__
- size_t GC_size(GC_PTR p)
-# else
- size_t GC_size(p)
- GC_PTR p;
-# endif
-{
- register int sz;
- register hdr * hhdr = HDR(p);
-
- sz = WORDS_TO_BYTES(hhdr -> hb_sz);
- if (sz < 0) {
- return(-sz);
- } else {
- return(sz);
- }
-}
-
-size_t GC_get_heap_size GC_PROTO(())
-{
- return ((size_t) GC_heapsize);
-}
-
-size_t GC_get_free_bytes GC_PROTO(())
-{
- return ((size_t) GC_large_free_bytes);
-}
-
-size_t GC_get_bytes_since_gc GC_PROTO(())
-{
- return ((size_t) WORDS_TO_BYTES(GC_words_allocd));
-}
-
-GC_bool GC_is_initialized = FALSE;
-
-void GC_init()
-{
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_init_inner();
- UNLOCK();
- ENABLE_SIGNALS();
-
-}
-
-#ifdef MSWIN32
- extern void GC_init_win32();
-#endif
-
-extern void GC_setpagesize();
-
-void GC_init_inner()
-{
-# ifndef THREADS
- word dummy;
-# endif
-
- if (GC_is_initialized) return;
- GC_setpagesize();
- GC_exclude_static_roots(beginGC_arrays, end_gc_area);
-# ifdef PRINTSTATS
- if ((ptr_t)endGC_arrays != (ptr_t)(&GC_obj_kinds)) {
- GC_printf0("Reordering linker, didn't exclude obj_kinds\n");
- }
-# endif
-# ifdef MSWIN32
- GC_init_win32();
-# endif
-# if defined(SEARCH_FOR_DATA_START)
- /* This doesn't really work if the collector is in a shared library. */
- GC_init_linux_data_start();
-# endif
-# ifdef SOLARIS_THREADS
- GC_thr_init();
- /* We need dirty bits in order to find live stack sections. */
- GC_dirty_init();
-# endif
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
- GC_thr_init();
-# endif
-# if !defined(THREADS) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \
- || defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(HPUX_THREADS)
- if (GC_stackbottom == 0) {
- GC_stackbottom = GC_get_stack_base();
- }
-# endif
- if (sizeof (ptr_t) != sizeof(word)) {
- ABORT("sizeof (ptr_t) != sizeof(word)\n");
- }
- if (sizeof (signed_word) != sizeof(word)) {
- ABORT("sizeof (signed_word) != sizeof(word)\n");
- }
- if (sizeof (struct hblk) != HBLKSIZE) {
- ABORT("sizeof (struct hblk) != HBLKSIZE\n");
- }
-# ifndef THREADS
-# if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
- ABORT(
- "Only one of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd\n");
-# endif
-# if !defined(STACK_GROWS_UP) && !defined(STACK_GROWS_DOWN)
- ABORT(
- "One of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd\n");
-# endif
-# ifdef STACK_GROWS_DOWN
- if ((word)(&dummy) > (word)GC_stackbottom) {
- GC_err_printf0(
- "STACK_GROWS_DOWN is defd, but stack appears to grow up\n");
-# ifndef UTS4 /* Compiler bug workaround */
- GC_err_printf2("sp = 0x%lx, GC_stackbottom = 0x%lx\n",
- (unsigned long) (&dummy),
- (unsigned long) GC_stackbottom);
-# endif
- ABORT("stack direction 3\n");
- }
-# else
- if ((word)(&dummy) < (word)GC_stackbottom) {
- GC_err_printf0(
- "STACK_GROWS_UP is defd, but stack appears to grow down\n");
- GC_err_printf2("sp = 0x%lx, GC_stackbottom = 0x%lx\n",
- (unsigned long) (&dummy),
- (unsigned long) GC_stackbottom);
- ABORT("stack direction 4");
- }
-# endif
-# endif
-# if !defined(_AUX_SOURCE) || defined(__GNUC__)
- if ((word)(-1) < (word)0) {
- GC_err_printf0("The type word should be an unsigned integer type\n");
- GC_err_printf0("It appears to be signed\n");
- ABORT("word");
- }
-# endif
- if ((signed_word)(-1) >= (signed_word)0) {
- GC_err_printf0(
- "The type signed_word should be a signed integer type\n");
- GC_err_printf0("It appears to be unsigned\n");
- ABORT("signed_word");
- }
-
- /* Add initial guess of root sets. Do this first, since sbrk(0) */
- /* might be used. */
- GC_register_data_segments();
- GC_init_headers();
- GC_bl_init();
- GC_mark_init();
- if (!GC_expand_hp_inner((word)MINHINCR)) {
- GC_err_printf0("Can't start up: not enough memory\n");
- EXIT();
- }
- /* Preallocate large object map. It's otherwise inconvenient to */
- /* deal with failure. */
- if (!GC_add_map_entry((word)0)) {
- GC_err_printf0("Can't start up: not enough memory\n");
- EXIT();
- }
- GC_register_displacement_inner(0L);
-# ifdef MERGE_SIZES
- GC_init_size_map();
-# endif
-# ifdef PCR
- if (PCR_IL_Lock(PCR_Bool_false, PCR_allSigsBlocked, PCR_waitForever)
- != PCR_ERes_okay) {
- ABORT("Can't lock load state\n");
- } else if (PCR_IL_Unlock() != PCR_ERes_okay) {
- ABORT("Can't unlock load state\n");
- }
- PCR_IL_Unlock();
- GC_pcr_install();
-# endif
- /* Get black list set up */
- GC_gcollect_inner();
-# ifdef STUBBORN_ALLOC
- GC_stubborn_init();
-# endif
- GC_is_initialized = TRUE;
- /* Convince lint that some things are used */
-# ifdef LINT
- {
- extern char * GC_copyright[];
- extern int GC_read();
- extern void GC_register_finalizer_no_order();
-
- GC_noop(GC_copyright, GC_find_header,
- GC_push_one, GC_call_with_alloc_lock, GC_read,
- GC_dont_expand,
-# ifndef NO_DEBUGGING
- GC_dump,
-# endif
- GC_register_finalizer_no_order);
- }
-# endif
-}
-
-void GC_enable_incremental GC_PROTO(())
-{
-# if !defined(SMALL_CONFIG)
- if (!GC_find_leak) {
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- if (GC_incremental) goto out;
- GC_setpagesize();
-# ifdef MSWIN32
- {
- extern GC_bool GC_is_win32s();
-
- /* VirtualProtect is not functional under win32s. */
- if (GC_is_win32s()) goto out;
- }
-# endif /* MSWIN32 */
-# ifndef SOLARIS_THREADS
- GC_dirty_init();
-# endif
- if (!GC_is_initialized) {
- GC_init_inner();
- }
- if (GC_dont_gc) {
- /* Can't easily do it. */
- UNLOCK();
- ENABLE_SIGNALS();
- return;
- }
- if (GC_words_allocd > 0) {
- /* There may be unmarked reachable objects */
- GC_gcollect_inner();
- } /* else we're OK in assuming everything's */
- /* clean since nothing can point to an */
- /* unmarked object. */
- GC_read_dirty();
- GC_incremental = TRUE;
-out:
- UNLOCK();
- ENABLE_SIGNALS();
- }
-# endif
-}
-
-
-#ifdef MSWIN32
-# define LOG_FILE "gc.log"
-
- HANDLE GC_stdout = 0, GC_stderr;
- int GC_tmp;
- DWORD GC_junk;
-
- void GC_set_files()
- {
- if (!GC_stdout) {
- GC_stdout = CreateFile(LOG_FILE, GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- NULL, CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH,
- NULL);
- if (INVALID_HANDLE_VALUE == GC_stdout) ABORT("Open of log file failed");
- }
- if (GC_stderr == 0) {
- GC_stderr = GC_stdout;
- }
- }
-
-#endif
-
-#if defined(OS2) || defined(MACOS)
-FILE * GC_stdout = NULL;
-FILE * GC_stderr = NULL;
-int GC_tmp; /* Should really be local ... */
-
- void GC_set_files()
- {
- if (GC_stdout == NULL) {
- GC_stdout = stdout;
- }
- if (GC_stderr == NULL) {
- GC_stderr = stderr;
- }
- }
-#endif
-
-#if !defined(OS2) && !defined(MACOS) && !defined(MSWIN32)
- int GC_stdout = 1;
- int GC_stderr = 2;
-# if !defined(AMIGA)
-# include <unistd.h>
-# endif
-#endif
-
-#if !defined(MSWIN32) && !defined(OS2) && !defined(MACOS) && !defined(ECOS)
-int GC_write(fd, buf, len)
-int fd;
-char *buf;
-size_t len;
-{
- register int bytes_written = 0;
- register int result;
-
- while (bytes_written < len) {
-# ifdef SOLARIS_THREADS
- result = syscall(SYS_write, fd, buf + bytes_written,
- len - bytes_written);
-# else
- result = write(fd, buf + bytes_written, len - bytes_written);
-# endif
- if (-1 == result) return(result);
- bytes_written += result;
- }
- return(bytes_written);
-}
-#endif /* UN*X */
-
-#if defined(ECOS)
-int GC_write(fd, buf, len)
-{
- _Jv_diag_write (buf, len);
- return len;
-}
-#endif
-
-
-#ifdef MSWIN32
-# define WRITE(f, buf, len) (GC_set_files(), \
- GC_tmp = WriteFile((f), (buf), \
- (len), &GC_junk, NULL),\
- (GC_tmp? 1 : -1))
-#else
-# if defined(OS2) || defined(MACOS)
-# define WRITE(f, buf, len) (GC_set_files(), \
- GC_tmp = fwrite((buf), 1, (len), (f)), \
- fflush(f), GC_tmp)
-# else
-# define WRITE(f, buf, len) GC_write((f), (buf), (len))
-# endif
-#endif
-
-/* A version of printf that is unlikely to call malloc, and is thus safer */
-/* to call from the collector in case malloc has been bound to GC_malloc. */
-/* Assumes that no more than 1023 characters are written at once. */
-/* Assumes that all arguments have been converted to something of the */
-/* same size as long, and that the format conversions expect something */
-/* of that size. */
-void GC_printf(format, a, b, c, d, e, f)
-char * format;
-long a, b, c, d, e, f;
-{
- char buf[1025];
-
- if (GC_quiet) return;
- buf[1024] = 0x15;
- (void) sprintf(buf, format, a, b, c, d, e, f);
- if (buf[1024] != 0x15) ABORT("GC_printf clobbered stack");
- if (WRITE(GC_stdout, buf, strlen(buf)) < 0) ABORT("write to stdout failed");
-}
-
-void GC_err_printf(format, a, b, c, d, e, f)
-char * format;
-long a, b, c, d, e, f;
-{
- char buf[1025];
-
- buf[1024] = 0x15;
- (void) sprintf(buf, format, a, b, c, d, e, f);
- if (buf[1024] != 0x15) ABORT("GC_err_printf clobbered stack");
- if (WRITE(GC_stderr, buf, strlen(buf)) < 0) ABORT("write to stderr failed");
-}
-
-void GC_err_puts(s)
-char *s;
-{
- if (WRITE(GC_stderr, s, strlen(s)) < 0) ABORT("write to stderr failed");
-}
-
-# if defined(__STDC__) || defined(__cplusplus)
- void GC_default_warn_proc(char *msg, GC_word arg)
-# else
- void GC_default_warn_proc(msg, arg)
- char *msg;
- GC_word arg;
-# endif
-{
- GC_err_printf1(msg, (unsigned long)arg);
-}
-
-GC_warn_proc GC_current_warn_proc = GC_default_warn_proc;
-
-# if defined(__STDC__) || defined(__cplusplus)
- GC_warn_proc GC_set_warn_proc(GC_warn_proc p)
-# else
- GC_warn_proc GC_set_warn_proc(p)
- GC_warn_proc p;
-# endif
-{
- GC_warn_proc result;
-
- LOCK();
- result = GC_current_warn_proc;
- GC_current_warn_proc = p;
- UNLOCK();
- return(result);
-}
-
-
-#ifndef PCR
-void GC_abort(msg)
-char * msg;
-{
- GC_err_printf1("%s\n", msg);
- (void) abort();
-}
-#endif
-
-#ifdef NEED_CALLINFO
-
-void GC_print_callers (info)
-struct callinfo info[NFRAMES];
-{
- register int i;
-
-# if NFRAMES == 1
- GC_err_printf0("\tCaller at allocation:\n");
-# else
- GC_err_printf0("\tCall chain at allocation:\n");
-# endif
- for (i = 0; i < NFRAMES; i++) {
- if (info[i].ci_pc == 0) break;
-# if NARGS > 0
- {
- int j;
-
- GC_err_printf0("\t\targs: ");
- for (j = 0; j < NARGS; j++) {
- if (j != 0) GC_err_printf0(", ");
- GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
- ~(info[i].ci_arg[j]));
- }
- GC_err_printf0("\n");
- }
-# endif
- GC_err_printf1("\t\t##PC##= 0x%X\n", info[i].ci_pc);
- }
-}
-
-#endif /* SAVE_CALL_CHAIN */
-
-/* Needed by SRC_M3, gcj, and should perhaps be the official interface */
-/* to GC_dont_gc. */
-void GC_enable()
-{
- GC_dont_gc--;
-}
-
-void GC_disable()
-{
- GC_dont_gc++;
-}
-
-#if !defined(NO_DEBUGGING)
-
-void GC_dump()
-{
- GC_printf0("***Static roots:\n");
- GC_print_static_roots();
- GC_printf0("\n***Heap sections:\n");
- GC_print_heap_sects();
- GC_printf0("\n***Free blocks:\n");
- GC_print_hblkfreelist();
- GC_printf0("\n***Blocks in use:\n");
- GC_print_block_list();
-}
-
-# endif /* NO_DEBUGGING */
diff --git a/boehm-gc/new_hblk.c b/boehm-gc/new_hblk.c
deleted file mode 100644
index 1e1273f854e..00000000000
--- a/boehm-gc/new_hblk.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * This file contains the functions:
- * ptr_t GC_build_flXXX(h, old_fl)
- * void GC_new_hblk(n)
- */
-/* Boehm, May 19, 1994 2:09 pm PDT */
-
-
-# include <stdio.h>
-# include "gc_priv.h"
-
-#ifndef SMALL_CONFIG
-/*
- * Build a free list for size 1 objects inside hblk h. Set the last link to
- * be ofl. Return a pointer tpo the first free list entry.
- */
-ptr_t GC_build_fl1(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1);
-
- p[0] = (word)ofl;
- p[1] = (word)(p);
- p[2] = (word)(p+1);
- p[3] = (word)(p+2);
- p += 4;
- for (; p < lim; p += 4) {
- p[0] = (word)(p-1);
- p[1] = (word)(p);
- p[2] = (word)(p+1);
- p[3] = (word)(p+2);
- };
- return((ptr_t)(p-1));
-}
-
-/* The same for size 2 cleared objects */
-ptr_t GC_build_fl_clear2(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1);
-
- p[0] = (word)ofl;
- p[1] = 0;
- p[2] = (word)p;
- p[3] = 0;
- p += 4;
- for (; p < lim; p += 4) {
- p[0] = (word)(p-2);
- p[1] = 0;
- p[2] = (word)p;
- p[3] = 0;
- };
- return((ptr_t)(p-2));
-}
-
-/* The same for size 3 cleared objects */
-ptr_t GC_build_fl_clear3(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1) - 2;
-
- p[0] = (word)ofl;
- p[1] = 0;
- p[2] = 0;
- p += 3;
- for (; p < lim; p += 3) {
- p[0] = (word)(p-3);
- p[1] = 0;
- p[2] = 0;
- };
- return((ptr_t)(p-3));
-}
-
-/* The same for size 4 cleared objects */
-ptr_t GC_build_fl_clear4(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1);
-
- p[0] = (word)ofl;
- p[1] = 0;
- p[2] = 0;
- p[3] = 0;
- p += 4;
- for (; p < lim; p += 4) {
- PREFETCH_FOR_WRITE(p+64);
- p[0] = (word)(p-4);
- p[1] = 0;
- CLEAR_DOUBLE(p+2);
- };
- return((ptr_t)(p-4));
-}
-
-/* The same for size 2 uncleared objects */
-ptr_t GC_build_fl2(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1);
-
- p[0] = (word)ofl;
- p[2] = (word)p;
- p += 4;
- for (; p < lim; p += 4) {
- p[0] = (word)(p-2);
- p[2] = (word)p;
- };
- return((ptr_t)(p-2));
-}
-
-/* The same for size 4 uncleared objects */
-ptr_t GC_build_fl4(h, ofl)
-struct hblk *h;
-ptr_t ofl;
-{
- register word * p = (word *)h;
- register word * lim = (word *)(h + 1);
-
- p[0] = (word)ofl;
- p[4] = (word)p;
- p += 8;
- for (; p < lim; p += 8) {
- PREFETCH_FOR_WRITE(p+64);
- p[0] = (word)(p-4);
- p[4] = (word)p;
- };
- return((ptr_t)(p-4));
-}
-
-#endif /* !SMALL_CONFIG */
-
-/*
- * Allocate a new heapblock for small objects of size n.
- * Add all of the heapblock's objects to the free list for objects
- * of that size.
- * Set all mark bits if objects are uncollectable.
- * Will fail to do anything if we are out of memory.
- */
-void GC_new_hblk(sz, kind)
-register word sz;
-int kind;
-{
- register word *p,
- *prev;
- word *last_object; /* points to last object in new hblk */
- register struct hblk *h; /* the new heap block */
- register GC_bool clear = GC_obj_kinds[kind].ok_init;
-
-# ifdef PRINTSTATS
- if ((sizeof (struct hblk)) > HBLKSIZE) {
- ABORT("HBLK SZ inconsistency");
- }
-# endif
-
- /* Allocate a new heap block */
- h = GC_allochblk(sz, kind, 0);
- if (h == 0) return;
-
- /* Mark all objects if appropriate. */
- if (IS_UNCOLLECTABLE(kind)) GC_set_hdr_marks(HDR(h));
-
- PREFETCH_FOR_WRITE((char *)h);
- PREFETCH_FOR_WRITE((char *)h + 128);
- PREFETCH_FOR_WRITE((char *)h + 256);
- PREFETCH_FOR_WRITE((char *)h + 378);
- /* Handle small objects sizes more efficiently. For larger objects */
- /* the difference is less significant. */
-# ifndef SMALL_CONFIG
- switch (sz) {
- case 1: GC_obj_kinds[kind].ok_freelist[1] =
- GC_build_fl1(h, GC_obj_kinds[kind].ok_freelist[1]);
- return;
- case 2: if (clear) {
- GC_obj_kinds[kind].ok_freelist[2] =
- GC_build_fl_clear2(h, GC_obj_kinds[kind].ok_freelist[2]);
- } else {
- GC_obj_kinds[kind].ok_freelist[2] =
- GC_build_fl2(h, GC_obj_kinds[kind].ok_freelist[2]);
- }
- return;
- case 3: if (clear) {
- GC_obj_kinds[kind].ok_freelist[3] =
- GC_build_fl_clear3(h, GC_obj_kinds[kind].ok_freelist[3]);
- return;
- } else {
- /* It's messy to do better than the default here. */
- break;
- }
- case 4: if (clear) {
- GC_obj_kinds[kind].ok_freelist[4] =
- GC_build_fl_clear4(h, GC_obj_kinds[kind].ok_freelist[4]);
- } else {
- GC_obj_kinds[kind].ok_freelist[4] =
- GC_build_fl4(h, GC_obj_kinds[kind].ok_freelist[4]);
- }
- return;
- default:
- break;
- }
-# endif /* !SMALL_CONFIG */
-
- /* Clear the page if necessary. */
- if (clear) BZERO(h, HBLKSIZE);
-
- /* Add objects to free list */
- p = &(h -> hb_body[sz]); /* second object in *h */
- prev = &(h -> hb_body[0]); /* One object behind p */
- last_object = (word *)((char *)h + HBLKSIZE);
- last_object -= sz;
- /* Last place for last object to start */
-
- /* make a list of all objects in *h with head as last object */
- while (p <= last_object) {
- /* current object's link points to last object */
- obj_link(p) = (ptr_t)prev;
- prev = p;
- p += sz;
- }
- p -= sz; /* p now points to last object */
-
- /*
- * put p (which is now head of list of objects in *h) as first
- * pointer in the appropriate free list for this size.
- */
- obj_link(h -> hb_body) = GC_obj_kinds[kind].ok_freelist[sz];
- GC_obj_kinds[kind].ok_freelist[sz] = ((ptr_t)p);
-}
-
diff --git a/boehm-gc/nursery.c b/boehm-gc/nursery.c
deleted file mode 100644
index ab83afbaaf2..00000000000
--- a/boehm-gc/nursery.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Copyright (c) 1999 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#ifdef NURSERY
-??? This implementation is incomplete. If you are trying to
-??? compile this you are doing something wrong.
-
-#include "nursery.h"
-
-#define SCAN_STATICS_FOR_NURSERY
- /* If this is not defined, the collector will not see */
- /* references from static data areas to the nursery. */
-
-struct copy_obj {
- ptr_t forward; /* Forwarding link for copied objects. */
- GC_copy_descriptor descr; /* Object descriptor */
- word data[1];
-}
-
-ptr_t GC_nursery_start; /* Start of nursery area. */
- /* Must be NURSERY_BLOCK_SIZE */
- /* aligned. */
-ptr_t GC_nursery_end; /* End of nursery area. */
-unsigned char * GC_nursery_map;
- /* GC_nursery_map[i] != 0 if an object */
- /* starts on the ith 64-bit "word" of */
- /* nursery. This simple structure has */
- /* the advantage that */
- /* allocation is cheap. Lookup is */
- /* cheap for pointers to the head of */
- /* an object, which should be the */
- /* usual case. */
-# define NURSERY_MAP_NOT_START 0 /* Not start of object. */
-# define NURSERY_MAP_START 1 /* Start of object. */
-# define NURSERY_MAP_PINNED 2 /* Start of pinned obj. */
-
-# ifdef ALIGN_DOUBLE
-# define NURSERY_WORD_SIZE (2 * sizeof(word))
-# else
-# define NURSERY_WORD_SIZE sizeof(word)
-# endif
-
-# define NURSERY_BLOCK_SIZE (HBLKSIZE/2)
- /* HBLKSIZE must be a multiple of NURSERY_BLOCK_SIZE */
-# define NURSERY_SIZE (1024 * NURSERY_BLOCK_SIZE)
-
-size_t GC_nursery_size = NURSERY_SIZE;
- /* Must be multiple of NURSERY_BLOCK_SIZE */
-
-size_t GC_nursery_blocks; /* Number of blocks in the nursery. */
-
-unsigned GC_next_nursery_block; /* index of next block we will attempt */
- /* allocate from during this cycle. */
- /* If it is pinned, we won't actually */
- /* use it. */
-
-unsigned short *GC_pinned; /* Number of pinned objects in ith */
- /* nursery block. */
- /* GC_pinned[i] != 0 if the ith nursery */
- /* block is pinned, and thus not used */
- /* for allocation. */
-
-GC_copy_alloc_state global_alloc_state = (ptr_t)(-1); /* will overflow. */
-
-/* Array of known rescuing pointers from the heap to the nursery. */
- ptr_t ** nursery_rescuers;
- /* Pointer to one past the last slot in rescuer table */
- ptr_t ** nursery_rescuers_end;
- /* Maximum number of known rescuing pointers. */
-# define MAX_NURSERY_RESCUERS 32*1024
- /* Add a rescuer to the list */
-# define ADD_NURSERY_RESCUER(p) \
- if (nursery_rescuers_end >= nursery_rescuers + MAX_NURSERY_RESCUERS) { \
- ABORT("Nursery recuers overflow"); /* Fix later !!! */ \
- } else { \
- *nursery_rescuers_end++ = p; \
- }
- /* Remove rescuer at the given position in the table */
-# define REMOVE_RESCUER(p) \
- *p = *--nursery_rescuers_end
-
-/* Should be called with allocator lock held. */
-GC_nursery_init() {
- GC_nursery_start = GET_MEM(GC_nursery_size);
- GC_nursery_end = GC_nursery_start + GC_nursery_size;
- GC_next_nursery_block = 0;
- if (GC_nursery_start < GC_least_plausible_heap_addr) {
- GC_least_plausible_heap_addr = GC_nursery_start;
- }
- if (GC_nursery_end > GC_greatest_plausible_heap_addr) {
- GC_greatest_plausible_heap_addr = GC_nursery_end;
- }
- if (GC_nursery_start & (NURSERY_BLOCK_SIZE-1)) {
- GC_err_printf1("Nursery area is misaligned!!");
- /* This should be impossible, since GET_MEM returns HBLKSIZE */
- /* aligned chunks, and that should be a multiple of */
- /* NURSERY_BLOCK_SIZE */
- ABORT("misaligned nursery");
- }
- GC_nursery_map = GET_MEM(GC_nursery_size/NURSERY_WORD_SIZE);
- /* Map is cleared a block at a time when we allocate from the block. */
- /* BZERO(GC_nursery_map, GC_nursery_size/NURSERY_WORD_SIZE); */
- GC_nursery_blocks = GC_nursery_size/NURSERY_BLOCK_SIZE;
- GC_pinned = GC_scratch_alloc(GC_nursery_blocks * sizeof(unsigned short));
- BZERO(GC_pinned, GC_nursery_blocks);
- nursery_rescuers = GET_MEM(MAX_NURSERY_RESCUERS * sizeof(ptr_t *));
- nursery_rescuers_end = nursery_rescuers;
- if (0 == GC_nursery_start || 0 == GC_nursery_map || 0 == nursery_rescuers)
- ABORT("Insufficient memory for nursery");
-}
-
-#define PIN_OBJ(p) \
- if (p >= GC_nursery_start && p < GC_nursery_end) { GC_pin_obj_checked(p); }
-
-/* Pin the object at p, if it's in the nursery. */
-void GC_pin_obj(ptr_t p) {
- PIN_OBJ(p);
-}
-
-void (*GC_push_proc)(ptr_t) = 0;
-
-/* Pin the object at p, which is known to be in the nursery. */
-void GC_pin_obj_checked(ptr_t p) {
- unsigned offset = p - GC_nursery_start;
- unsigned word_offset = BYTES_TO_WORDS(offset);
- unsigned blockno = (current - GC_nursery_start)/NURSERY_BLOCK_SIZE;
- while (GC_nursery_map[word_offset] == NURSERY_MAP_NOT_START) {
- --word_offset;
- }
- if (GC_nursery_map[word_offset] != NURSERY_MAP_PINNED) {
- GC_nursery_map[word_offset] = NURSERY_MAP_PINNED;
- ++GC_pinned[blockno];
- ??Push object at GC_nursery_start + WORDS_TO_BYTES(word_offset)
- ??onto mark stack.
- }
-}
-
-void GC_scan_region_for_nursery(ptr_t low, ptr_t high) {
-# if CPP_WORDSZ/8 != ALIGNMENT
- --> fix this
-# endif
- word * l = (word *)((word)low + ALIGNMENT - 1 & ~(ALIGNMENT - 1));
- word * h = (word *)((word)high & ~(ALIGNMENT - 1));
- word * p;
- for (p = l; p < h; ++p) {
- PIN_OBJ(p);
- }
-}
-
-/* Invoke GC_scan_region_for_nursery on ranges that are not excluded. */
-void GC_scan_region_for_nursery_with_exclusions(ptr_t bottom, ptr_t top)
-{
- struct exclusion * next;
- ptr_t excl_start;
-
- while (bottom < top) {
- next = GC_next_exclusion(bottom);
- if (0 == next || (excl_start = next -> e_start) >= top) {
- GC_scan_region_for_nursery(bottom, top);
- return;
- }
- if (excl_start > bottom)
- GC_scan_region_for_nursery(bottom, excl_start);
- bottom = next -> e_end;
- }
-}
-
-
-void GC_scan_stacks_for_nursery(void) {
-# ifdef THREADS
- --> fix this
-# endif
-# ifdef STACK_GROWS_DOWN
- ptr_t stack_low = GC_approx_sp();
- ptr_t stack_high = GC_stackbottom;
-# else
- ptr_t stack_low = GC_stackbottom;
- ptr_t stack_high = GC_approx_sp();
-# endif
- GC_scan_region_for_nursery(stack_low, stack_high);
-# ifdef IA64
- GC_scan_region_for_nursery(BACKING_STORE_BASE,
- (ptr_t) GC_save_regs_ret_val);
-# endif
-}
-
-void GC_scan_roots_for_nursery(void) {
- /* Scan registers. */
- /* Direct GC_push_one to call GC_pin_obj instead of marking */
- /* and pushing objects. */
- /* This is a bit ugly, but we don't have to touch the */
- /* platform-dependent code. */
-
- void (*old_push_proc)(ptr_t) = GC_push_proc;
- GC_push_proc = GC_pin_obj;
- GC_push_regs();
- GC_push_proc = old_push_proc;
- GC_scan_stacks_for_nursery();
-# ifdef SCAN_STATICS_FOR_NURSERY
-# if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(PCR)) \
- && !defined(SRC_M3)
- GC_remove_tmp_roots();
- GC_register_dynamic_libraries();
-# endif
- /* Mark everything in static data areas */
- for (i = 0; i < n_root_sets; i++) {
- GC_scan_region_for_nursery_with_exclusions (
- GC_static_roots[i].r_start,
- GC_static_roots[i].r_end);
- }
-# endif
-}
-
-/* Array of known rescuing pointers from the heap to the nursery. */
-ptr_t ** nursery_rescuers;
-
-/* Caller holds allocation lock. */
-void GC_collect_nursery(void) {
- int i;
- ptr_t scan_ptr = 0;
- STOP_WORLD;
- for (i = 0; i < GC_nursery_blocks; ++i) GC_pinned[i] = 0;
- GC_scan_roots_for_nursery();
- /* All objects referenced by roots are now pinned. */
- /* Their contents are described by */
- /* mark stack entries. */
-
- /* Pin blocks corresponding to valid allocation states. */
- /* that probably happens automagically if the allocation */
- /* states are kept where we can see them. */
- /* It will take work if static roots are not scanned. */
- /* We want to do this both for correctness and to avoid */
- /* promoting very young objects. */
-
- /* Somehow capture dirty bits. Update rescuers array to */
- /* reflect newly valid and invalid references from dirty */
- /* pages. Other references should remain valid, since the */
- /* referents should have been pinned. */
-
- /* Traverse the old object heap. Pin objects in the */
- /* nursery that are ambiguously referenced, copy those */
- /* that are unambiguously referenced. */
-
- /* Traverse objects in mark stack. */
- /* If referenced object is in pinned block, add contents */
- /* to mark stack. If referenced object is forwarded, */
- /* update pointer. Otherwise reallocate the object in the */
- /* old heap, copy its contents, and then enqueue its */
- /* contents in the mark stack. */
- START_WORLD;
-}
-
-/* Initialize an allocation state so that it can be used for */
-/* allocation. This implicitly reserves a small section of the */
-/* nursery for use with this allocator. */
-/* Also called to replenish an allocator that has been */
-/* exhausted. */
-void GC_init_copy_alloc_state(GC_copy_alloc_state *)
- unsigned next_block;
- ptr_t block_addr;
- LOCK();
- next_block = GC_next_nursery_block;
- while(is_pinned[next_block] && next_block < GC_nursery_blocks) {
- ++next_block;
- }
- if (next_block < GC_nursery_blocks) {
- block_addr = GC_nursery_start + NURSERY_BLOCK_SIZE * next_block;
- GC_next_nursery_block = next_block + 1;
- BZERO(GC_nursery_map + next_block *
- (NURSERY_BLOCK_SIZE/NURSERY_WORD_SIZE),
- NURSERY_BLOCK_SIZE/NURSERY_WORD_SIZE);
- *GC_copy_alloc_state = block_addr;
- UNLOCK();
- } else {
- GC_collect_nursery();
- GC_next_nursery_block = 0;
- UNLOCK();
- get_new_block(s);
- }
-}
-
-GC_PTR GC_copying_malloc2(GC_copy_descriptor *d, GC_copy_alloc_state *s) {
- size_t sz = GC_SIZE_FROM_DESCRIPTOR(d);
- ptrdiff_t offset;
- ptr_t result = *s;
- ptr_t new = result + sz;
- if (new & COPY_BLOCK_MASK <= result & COPY_BLOCK_MASK> {
- GC_init_copy_alloc_state(s);
- result = *s;
- new = result + sz;
- GC_ASSERT(new & COPY_BLOCK_MASK > result & COPY_BLOCK_MASK>
- }
- (struct copy_obj *)result -> descr = d;
- (struct copy_obj *)result -> forward = 0;
- offset = (result - GC_nursery_start)/NURSERY_WORD_SIZE;
- GC_nursery_map[offset] = NURSERY_MAP_NOT_START;
-}
-
-GC_PTR GC_copying_malloc(GC_copy_descriptor *d) {
-}
-
-#endif /* NURSERY */
diff --git a/boehm-gc/obj_map.c b/boehm-gc/obj_map.c
deleted file mode 100644
index 82ebf311983..00000000000
--- a/boehm-gc/obj_map.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991, 1992 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, October 9, 1995 1:09 pm PDT */
-
-/* Routines for maintaining maps describing heap block
- * layouts for various object sizes. Allows fast pointer validity checks
- * and fast location of object start locations on machines (such as SPARC)
- * with slow division.
- */
-
-# include "gc_priv.h"
-
-char * GC_invalid_map = 0;
-
-/* Invalidate the object map associated with a block. Free blocks */
-/* are identified by invalid maps. */
-void GC_invalidate_map(hhdr)
-hdr *hhdr;
-{
- register int displ;
-
- if (GC_invalid_map == 0) {
- GC_invalid_map = GC_scratch_alloc(MAP_SIZE);
- if (GC_invalid_map == 0) {
- GC_err_printf0(
- "Cant initialize GC_invalid_map: insufficient memory\n");
- EXIT();
- }
- for (displ = 0; displ < HBLKSIZE; displ++) {
- MAP_ENTRY(GC_invalid_map, displ) = OBJ_INVALID;
- }
- }
- hhdr -> hb_map = GC_invalid_map;
-}
-
-/* Consider pointers that are offset bytes displaced from the beginning */
-/* of an object to be valid. */
-
-# if defined(__STDC__) || defined(__cplusplus)
- void GC_register_displacement(GC_word offset)
-# else
- void GC_register_displacement(offset)
- GC_word offset;
-# endif
-{
-# ifndef ALL_INTERIOR_POINTERS
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- GC_register_displacement_inner(offset);
- UNLOCK();
- ENABLE_SIGNALS();
-# endif
-}
-
-void GC_register_displacement_inner(offset)
-word offset;
-{
-# ifndef ALL_INTERIOR_POINTERS
- register unsigned i;
-
- if (offset > MAX_OFFSET) {
- ABORT("Bad argument to GC_register_displacement");
- }
- if (!GC_valid_offsets[offset]) {
- GC_valid_offsets[offset] = TRUE;
- GC_modws_valid_offsets[offset % sizeof(word)] = TRUE;
- for (i = 0; i <= MAXOBJSZ; i++) {
- if (GC_obj_map[i] != 0) {
- if (i == 0) {
- GC_obj_map[i][offset + HDR_BYTES] = (char)BYTES_TO_WORDS(offset);
- } else {
- register unsigned j;
- register unsigned lb = WORDS_TO_BYTES(i);
-
- if (offset < lb) {
- for (j = offset + HDR_BYTES; j < HBLKSIZE; j += lb) {
- GC_obj_map[i][j] = (char)BYTES_TO_WORDS(offset);
- }
- }
- }
- }
- }
- }
-# endif
-}
-
-
-/* Add a heap block map for objects of size sz to obj_map. */
-/* Return FALSE on failure. */
-GC_bool GC_add_map_entry(sz)
-word sz;
-{
- register unsigned obj_start;
- register unsigned displ;
- register char * new_map;
-
- if (sz > MAXOBJSZ) sz = 0;
- if (GC_obj_map[sz] != 0) {
- return(TRUE);
- }
- new_map = GC_scratch_alloc(MAP_SIZE);
- if (new_map == 0) return(FALSE);
-# ifdef PRINTSTATS
- GC_printf1("Adding block map for size %lu\n", (unsigned long)sz);
-# endif
- for (displ = 0; displ < HBLKSIZE; displ++) {
- MAP_ENTRY(new_map,displ) = OBJ_INVALID;
- }
- if (sz == 0) {
- for(displ = 0; displ <= MAX_OFFSET; displ++) {
- if (OFFSET_VALID(displ)) {
- MAP_ENTRY(new_map,displ+HDR_BYTES) = BYTES_TO_WORDS(displ);
- }
- }
- } else {
- for (obj_start = HDR_BYTES;
- obj_start + WORDS_TO_BYTES(sz) <= HBLKSIZE;
- obj_start += WORDS_TO_BYTES(sz)) {
- for (displ = 0; displ < WORDS_TO_BYTES(sz); displ++) {
- if (OFFSET_VALID(displ)) {
- MAP_ENTRY(new_map, obj_start + displ) =
- BYTES_TO_WORDS(displ);
- }
- }
- }
- }
- GC_obj_map[sz] = new_map;
- return(TRUE);
-}
diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c
deleted file mode 100644
index 87f84e7bccd..00000000000
--- a/boehm-gc/os_dep.c
+++ /dev/null
@@ -1,2681 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-# include "gc_priv.h"
-
-# if defined(LINUX) && !defined(POWERPC)
-# include <linux/version.h>
-# if (LINUX_VERSION_CODE <= 0x10400)
- /* Ugly hack to get struct sigcontext_struct definition. Required */
- /* for some early 1.3.X releases. Will hopefully go away soon. */
- /* in some later Linux releases, asm/sigcontext.h may have to */
- /* be included instead. */
-# define __KERNEL__
-# include <asm/signal.h>
-# undef __KERNEL__
-# else
- /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */
- /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */
- /* prototypes, so we have to include the top-level sigcontext.h to */
- /* make sure the former gets defined to be the latter if appropriate. */
-# include <features.h>
-# if 2 <= __GLIBC__
-# if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__
- /* glibc 2.1 no longer has sigcontext.h. But signal.h */
- /* has the right declaration for glibc 2.1. */
-# include <sigcontext.h>
-# endif /* 0 == __GLIBC_MINOR__ */
-# else /* not 2 <= __GLIBC__ */
- /* libc5 doesn't have <sigcontext.h>: go directly with the kernel */
- /* one. Check LINUX_VERSION_CODE to see which we should reference. */
-# include <asm/sigcontext.h>
-# endif /* 2 <= __GLIBC__ */
-# endif
-# endif
-# if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MACOS)
-# include <sys/types.h>
-# if !defined(MSWIN32) && !defined(SUNOS4)
-# include <unistd.h>
-# endif
-# endif
-
-# include <stdio.h>
-# include <signal.h>
-
-/* Blatantly OS dependent routines, except for those that are related */
-/* to dynamic loading. */
-
-# if !defined(THREADS) && !defined(STACKBOTTOM) && defined(HEURISTIC2)
-# define NEED_FIND_LIMIT
-# endif
-
-# if defined(IRIX_THREADS) || defined(HPUX_THREADS)
-# define NEED_FIND_LIMIT
-# endif
-
-# if (defined(SUNOS4) && defined(DYNAMIC_LOADING)) && !defined(PCR)
-# define NEED_FIND_LIMIT
-# endif
-
-# if (defined(SVR4) || defined(AUX) || defined(DGUX)) && !defined(PCR)
-# define NEED_FIND_LIMIT
-# endif
-
-# if defined(LINUX) && \
- (defined(POWERPC) || defined(SPARC) || defined(ALPHA) || defined(IA64) \
- || defined(MIPS))
-# define NEED_FIND_LIMIT
-# endif
-
-#ifdef NEED_FIND_LIMIT
-# include <setjmp.h>
-#endif
-
-#ifdef FREEBSD
-# include <machine/trap.h>
-#endif
-
-#ifdef AMIGA
-# include <proto/exec.h>
-# include <proto/dos.h>
-# include <dos/dosextens.h>
-# include <workbench/startup.h>
-#endif
-
-#ifdef MSWIN32
-# define WIN32_LEAN_AND_MEAN
-# define NOSERVICE
-# include <windows.h>
-#endif
-
-#ifdef MACOS
-# include <Processes.h>
-#endif
-
-#ifdef IRIX5
-# include <sys/uio.h>
-# include <malloc.h> /* for locking */
-#endif
-#ifdef USE_MMAP
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/stat.h>
-# include <fcntl.h>
-#endif
-
-#ifdef SUNOS5SIGS
-# include <sys/siginfo.h>
-# undef setjmp
-# undef longjmp
-# define setjmp(env) sigsetjmp(env, 1)
-# define longjmp(env, val) siglongjmp(env, val)
-# define jmp_buf sigjmp_buf
-#endif
-
-#ifdef DJGPP
- /* Apparently necessary for djgpp 2.01. May casuse problems with */
- /* other versions. */
- typedef long unsigned int caddr_t;
-#endif
-
-#ifdef PCR
-# include "il/PCR_IL.h"
-# include "th/PCR_ThCtl.h"
-# include "mm/PCR_MM.h"
-#endif
-
-#if !defined(NO_EXECUTE_PERMISSION)
-# define OPT_PROT_EXEC PROT_EXEC
-#else
-# define OPT_PROT_EXEC 0
-#endif
-
-#if defined(SEARCH_FOR_DATA_START)
- /* The following doesn't work if the GC is in a dynamic library. */
- /* The I386 case can be handled without a search. The Alpha case */
- /* used to be handled differently as well, but the rules changed */
- /* for recent Linux versions. This seems to be the easiest way to */
- /* cover all versions. */
- ptr_t GC_data_start;
-
- extern char * GC_copyright[]; /* Any data symbol would do. */
-
- void GC_init_linux_data_start()
- {
- extern ptr_t GC_find_limit();
-
- GC_data_start = GC_find_limit((ptr_t)GC_copyright, FALSE);
- }
-#endif
-
-# ifdef ECOS
-
-# ifndef ECOS_GC_MEMORY_SIZE
-# define ECOS_GC_MEMORY_SIZE (448 * 1024)
-# endif /* ECOS_GC_MEMORY_SIZE */
-
-// setjmp() function, as described in ANSI para 7.6.1.1
-#define setjmp( __env__ ) hal_setjmp( __env__ )
-
-// FIXME: This is a simple way of allocating memory which is
-// compatible with ECOS early releases. Later releases use a more
-// sophisticated means of allocating memory than this simple static
-// allocator, but this method is at least bound to work.
-static char memory[ECOS_GC_MEMORY_SIZE];
-static char *brk = memory;
-
-static void *tiny_sbrk(ptrdiff_t increment)
-{
- void *p = brk;
-
- brk += increment;
-
- if (brk > memory + sizeof memory)
- {
- brk -= increment;
- return NULL;
- }
-
- return p;
-}
-#define sbrk tiny_sbrk
-# endif /* ECOS */
-
-# ifdef OS2
-
-# include <stddef.h>
-
-# if !defined(__IBMC__) && !defined(__WATCOMC__) /* e.g. EMX */
-
-struct exe_hdr {
- unsigned short magic_number;
- unsigned short padding[29];
- long new_exe_offset;
-};
-
-#define E_MAGIC(x) (x).magic_number
-#define EMAGIC 0x5A4D
-#define E_LFANEW(x) (x).new_exe_offset
-
-struct e32_exe {
- unsigned char magic_number[2];
- unsigned char byte_order;
- unsigned char word_order;
- unsigned long exe_format_level;
- unsigned short cpu;
- unsigned short os;
- unsigned long padding1[13];
- unsigned long object_table_offset;
- unsigned long object_count;
- unsigned long padding2[31];
-};
-
-#define E32_MAGIC1(x) (x).magic_number[0]
-#define E32MAGIC1 'L'
-#define E32_MAGIC2(x) (x).magic_number[1]
-#define E32MAGIC2 'X'
-#define E32_BORDER(x) (x).byte_order
-#define E32LEBO 0
-#define E32_WORDER(x) (x).word_order
-#define E32LEWO 0
-#define E32_CPU(x) (x).cpu
-#define E32CPU286 1
-#define E32_OBJTAB(x) (x).object_table_offset
-#define E32_OBJCNT(x) (x).object_count
-
-struct o32_obj {
- unsigned long size;
- unsigned long base;
- unsigned long flags;
- unsigned long pagemap;
- unsigned long mapsize;
- unsigned long reserved;
-};
-
-#define O32_FLAGS(x) (x).flags
-#define OBJREAD 0x0001L
-#define OBJWRITE 0x0002L
-#define OBJINVALID 0x0080L
-#define O32_SIZE(x) (x).size
-#define O32_BASE(x) (x).base
-
-# else /* IBM's compiler */
-
-/* A kludge to get around what appears to be a header file bug */
-# ifndef WORD
-# define WORD unsigned short
-# endif
-# ifndef DWORD
-# define DWORD unsigned long
-# endif
-
-# define EXE386 1
-# include <newexe.h>
-# include <exe386.h>
-
-# endif /* __IBMC__ */
-
-# define INCL_DOSEXCEPTIONS
-# define INCL_DOSPROCESS
-# define INCL_DOSERRORS
-# define INCL_DOSMODULEMGR
-# define INCL_DOSMEMMGR
-# include <os2.h>
-
-
-/* Disable and enable signals during nontrivial allocations */
-
-void GC_disable_signals(void)
-{
- ULONG nest;
-
- DosEnterMustComplete(&nest);
- if (nest != 1) ABORT("nested GC_disable_signals");
-}
-
-void GC_enable_signals(void)
-{
- ULONG nest;
-
- DosExitMustComplete(&nest);
- if (nest != 0) ABORT("GC_enable_signals");
-}
-
-
-# else
-
-# if !defined(PCR) && !defined(AMIGA) && !defined(MSWIN32) \
- && !defined(MACOS) && !defined(DJGPP) && !defined(DOS4GW) \
- && !defined(NO_SIGSET)
-
-# if defined(sigmask) && !defined(UTS4)
- /* Use the traditional BSD interface */
-# define SIGSET_T int
-# define SIG_DEL(set, signal) (set) &= ~(sigmask(signal))
-# define SIG_FILL(set) (set) = 0x7fffffff
- /* Setting the leading bit appears to provoke a bug in some */
- /* longjmp implementations. Most systems appear not to have */
- /* a signal 32. */
-# define SIGSETMASK(old, new) (old) = sigsetmask(new)
-# else
- /* Use POSIX/SYSV interface */
-# define SIGSET_T sigset_t
-# define SIG_DEL(set, signal) sigdelset(&(set), (signal))
-# define SIG_FILL(set) sigfillset(&set)
-# define SIGSETMASK(old, new) sigprocmask(SIG_SETMASK, &(new), &(old))
-# endif
-
-static GC_bool mask_initialized = FALSE;
-
-static SIGSET_T new_mask;
-
-static SIGSET_T old_mask;
-
-static SIGSET_T dummy;
-
-#if defined(PRINTSTATS) && !defined(THREADS)
-# define CHECK_SIGNALS
- int GC_sig_disabled = 0;
-#endif
-
-void GC_disable_signals()
-{
- if (!mask_initialized) {
- SIG_FILL(new_mask);
-
- SIG_DEL(new_mask, SIGSEGV);
- SIG_DEL(new_mask, SIGILL);
- SIG_DEL(new_mask, SIGQUIT);
-# ifdef SIGBUS
- SIG_DEL(new_mask, SIGBUS);
-# endif
-# ifdef SIGIOT
- SIG_DEL(new_mask, SIGIOT);
-# endif
-# ifdef SIGEMT
- SIG_DEL(new_mask, SIGEMT);
-# endif
-# ifdef SIGTRAP
- SIG_DEL(new_mask, SIGTRAP);
-# endif
- mask_initialized = TRUE;
- }
-# ifdef CHECK_SIGNALS
- if (GC_sig_disabled != 0) ABORT("Nested disables");
- GC_sig_disabled++;
-# endif
- SIGSETMASK(old_mask,new_mask);
-}
-
-void GC_enable_signals()
-{
-# ifdef CHECK_SIGNALS
- if (GC_sig_disabled != 1) ABORT("Unmatched enable");
- GC_sig_disabled--;
-# endif
- SIGSETMASK(dummy,old_mask);
-}
-
-# endif /* !PCR */
-
-# endif /*!OS/2 */
-
-/* Ivan Demakov: simplest way (to me) */
-#if defined (DOS4GW) || defined (NO_SIGSET)
- void GC_disable_signals() { }
- void GC_enable_signals() { }
-#endif
-
-/* Find the page size */
-word GC_page_size;
-
-# ifdef MSWIN32
- void GC_setpagesize()
- {
- SYSTEM_INFO sysinfo;
-
- GetSystemInfo(&sysinfo);
- GC_page_size = sysinfo.dwPageSize;
- }
-
-# else
-# if defined(MPROTECT_VDB) || defined(PROC_VDB) || defined(USE_MMAP) \
- || defined(USE_MUNMAP)
- void GC_setpagesize()
- {
- GC_page_size = GETPAGESIZE();
- }
-# else
- /* It's acceptable to fake it. */
- void GC_setpagesize()
- {
- GC_page_size = HBLKSIZE;
- }
-# endif
-# endif
-
-/*
- * Find the base of the stack.
- * Used only in single-threaded environment.
- * With threads, GC_mark_roots needs to know how to do this.
- * Called with allocator lock held.
- */
-# ifdef MSWIN32
-# define is_writable(prot) ((prot) == PAGE_READWRITE \
- || (prot) == PAGE_WRITECOPY \
- || (prot) == PAGE_EXECUTE_READWRITE \
- || (prot) == PAGE_EXECUTE_WRITECOPY)
-/* Return the number of bytes that are writable starting at p. */
-/* The pointer p is assumed to be page aligned. */
-/* If base is not 0, *base becomes the beginning of the */
-/* allocation region containing p. */
-word GC_get_writable_length(ptr_t p, ptr_t *base)
-{
- MEMORY_BASIC_INFORMATION buf;
- word result;
- word protect;
-
- result = VirtualQuery(p, &buf, sizeof(buf));
- if (result != sizeof(buf)) ABORT("Weird VirtualQuery result");
- if (base != 0) *base = (ptr_t)(buf.AllocationBase);
- protect = (buf.Protect & ~(PAGE_GUARD | PAGE_NOCACHE));
- if (!is_writable(protect)) {
- return(0);
- }
- if (buf.State != MEM_COMMIT) return(0);
- return(buf.RegionSize);
-}
-
-ptr_t GC_get_stack_base()
-{
- int dummy;
- ptr_t sp = (ptr_t)(&dummy);
- ptr_t trunc_sp = (ptr_t)((word)sp & ~(GC_page_size - 1));
- word size = GC_get_writable_length(trunc_sp, 0);
-
- return(trunc_sp + size);
-}
-
-
-# else
-
-# ifdef OS2
-
-ptr_t GC_get_stack_base()
-{
- PTIB ptib;
- PPIB ppib;
-
- if (DosGetInfoBlocks(&ptib, &ppib) != NO_ERROR) {
- GC_err_printf0("DosGetInfoBlocks failed\n");
- ABORT("DosGetInfoBlocks failed\n");
- }
- return((ptr_t)(ptib -> tib_pstacklimit));
-}
-
-# else
-
-# ifdef AMIGA
-
-ptr_t GC_get_stack_base()
-{
- struct Process *proc = (struct Process*)SysBase->ThisTask;
-
- /* Reference: Amiga Guru Book Pages: 42,567,574 */
- if (proc->pr_Task.tc_Node.ln_Type==NT_PROCESS
- && proc->pr_CLI != NULL) {
- /* first ULONG is StackSize */
- /*longPtr = proc->pr_ReturnAddr;
- size = longPtr[0];*/
-
- return (char *)proc->pr_ReturnAddr + sizeof(ULONG);
- } else {
- return (char *)proc->pr_Task.tc_SPUpper;
- }
-}
-
-#if 0 /* old version */
-ptr_t GC_get_stack_base()
-{
- extern struct WBStartup *_WBenchMsg;
- extern long __base;
- extern long __stack;
- struct Task *task;
- struct Process *proc;
- struct CommandLineInterface *cli;
- long size;
-
- if ((task = FindTask(0)) == 0) {
- GC_err_puts("Cannot find own task structure\n");
- ABORT("task missing");
- }
- proc = (struct Process *)task;
- cli = BADDR(proc->pr_CLI);
-
- if (_WBenchMsg != 0 || cli == 0) {
- size = (char *)task->tc_SPUpper - (char *)task->tc_SPLower;
- } else {
- size = cli->cli_DefaultStack * 4;
- }
- return (ptr_t)(__base + GC_max(size, __stack));
-}
-#endif /* 0 */
-
-# else /* !AMIGA, !OS2, ... */
-
-# ifdef NEED_FIND_LIMIT
- /* Some tools to implement HEURISTIC2 */
-# define MIN_PAGE_SIZE 256 /* Smallest conceivable page size, bytes */
- /* static */ jmp_buf GC_jmp_buf;
-
- /*ARGSUSED*/
- void GC_fault_handler(sig)
- int sig;
- {
- longjmp(GC_jmp_buf, 1);
- }
-
-# ifdef __STDC__
- typedef void (*handler)(int);
-# else
- typedef void (*handler)();
-# endif
-
-# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1)
- static struct sigaction old_segv_act;
-# if defined(_sigargs) || defined(HPUX) /* !Irix6.x */
- static struct sigaction old_bus_act;
-# endif
-# else
- static handler old_segv_handler, old_bus_handler;
-# endif
-
- void GC_setup_temporary_fault_handler()
- {
-# ifndef ECOS
-# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1)
- struct sigaction act;
-
- act.sa_handler = GC_fault_handler;
- act.sa_flags = SA_RESTART | SA_NODEFER;
- /* The presence of SA_NODEFER represents yet another gross */
- /* hack. Under Solaris 2.3, siglongjmp doesn't appear to */
- /* interact correctly with -lthread. We hide the confusion */
- /* by making sure that signal handling doesn't affect the */
- /* signal mask. */
-
- (void) sigemptyset(&act.sa_mask);
-# ifdef IRIX_THREADS
- /* Older versions have a bug related to retrieving and */
- /* and setting a handler at the same time. */
- (void) sigaction(SIGSEGV, 0, &old_segv_act);
- (void) sigaction(SIGSEGV, &act, 0);
-# else
- (void) sigaction(SIGSEGV, &act, &old_segv_act);
-# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
- || defined(HPUX)
- /* Under Irix 5.x or HP/UX, we may get SIGBUS. */
- /* Pthreads doesn't exist under Irix 5.x, so we */
- /* don't have to worry in the threads case. */
- (void) sigaction(SIGBUS, &act, &old_bus_act);
-# endif
-# endif /* IRIX_THREADS */
-# else
- old_segv_handler = signal(SIGSEGV, GC_fault_handler);
-# ifdef SIGBUS
- old_bus_handler = signal(SIGBUS, GC_fault_handler);
-# endif
-# endif
-# endif /* ECOS */
- }
-
- void GC_reset_fault_handler()
- {
-# ifndef ECOS
-# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1)
- (void) sigaction(SIGSEGV, &old_segv_act, 0);
-# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
- || defined(HPUX)
- (void) sigaction(SIGBUS, &old_bus_act, 0);
-# endif
-# else
- (void) signal(SIGSEGV, old_segv_handler);
-# ifdef SIGBUS
- (void) signal(SIGBUS, old_bus_handler);
-# endif
-# endif
-# endif /* ECOS */
- }
-
- /* Return the first nonaddressible location > p (up) or */
- /* the smallest location q s.t. [q,p] is addressible (!up). */
- ptr_t GC_find_limit(p, up)
- ptr_t p;
- GC_bool up;
- {
-# ifndef ECOS
- static VOLATILE ptr_t result;
- /* Needs to be static, since otherwise it may not be */
- /* preserved across the longjmp. Can safely be */
- /* static since it's only called once, with the */
- /* allocation lock held. */
-
-
- GC_setup_temporary_fault_handler();
- if (setjmp(GC_jmp_buf) == 0) {
- result = (ptr_t)(((word)(p))
- & ~(MIN_PAGE_SIZE-1));
- for (;;) {
- if (up) {
- result += MIN_PAGE_SIZE;
- } else {
- result -= MIN_PAGE_SIZE;
- }
- GC_noop1((word)(*result));
- }
- }
- GC_reset_fault_handler();
- if (!up) {
- result += MIN_PAGE_SIZE;
- }
- return(result);
-# else /* ECOS */
- abort();
-# endif /* ECOS */
- }
-# endif
-
-# ifndef ECOS
-
-#ifdef LINUX_STACKBOTTOM
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-# define STAT_SKIP 27 /* Number of fields preceding startstack */
- /* field in /proc/self/stat */
-
- ptr_t GC_linux_stack_base(void)
- {
- /* We read the stack base value from /proc/self/stat. We do this */
- /* using direct I/O system calls in order to avoid calling malloc */
- /* in case REDIRECT_MALLOC is defined. */
-# define STAT_BUF_SIZE 4096
-# ifdef USE_LD_WRAP
-# define STAT_READ __real_read
-# else
-# define STAT_READ read
-# endif
- char stat_buf[STAT_BUF_SIZE];
- int f;
- char c;
- word result = 0;
- size_t i, buf_offset = 0;
-
- f = open("/proc/self/stat", O_RDONLY);
- if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
- ABORT("Couldn't read /proc/self/stat");
- }
- c = stat_buf[buf_offset++];
- /* Skip the required number of fields. This number is hopefully */
- /* constant across all Linux implementations. */
- for (i = 0; i < STAT_SKIP; ++i) {
- while (isspace(c)) c = stat_buf[buf_offset++];
- while (!isspace(c)) c = stat_buf[buf_offset++];
- }
- while (isspace(c)) c = stat_buf[buf_offset++];
- while (isdigit(c)) {
- result *= 10;
- result += c - '0';
- c = stat_buf[buf_offset++];
- }
- close(f);
- if (result < 0x10000000) ABORT("Absurd stack bottom value");
- return (ptr_t)result;
- }
-
-#endif /* LINUX_STACKBOTTOM */
-
-ptr_t GC_get_stack_base()
-{
- word dummy;
- ptr_t result;
-
-# define STACKBOTTOM_ALIGNMENT_M1 ((word)STACK_GRAN - 1)
-
-# if defined(STACKBASE)
- extern ptr_t STACKBASE;
- return(STACKBASE);
-# else
-# ifdef STACKBOTTOM
- return(STACKBOTTOM);
-# else
-# ifdef HEURISTIC1
-# ifdef STACK_GROWS_DOWN
- result = (ptr_t)((((word)(&dummy))
- + STACKBOTTOM_ALIGNMENT_M1)
- & ~STACKBOTTOM_ALIGNMENT_M1);
-# else
- result = (ptr_t)(((word)(&dummy))
- & ~STACKBOTTOM_ALIGNMENT_M1);
-# endif
-# endif /* HEURISTIC1 */
-# ifdef LINUX_STACKBOTTOM
- result = GC_linux_stack_base();
-# endif
-# ifdef HEURISTIC2
-# ifdef STACK_GROWS_DOWN
- result = GC_find_limit((ptr_t)(&dummy), TRUE);
-# ifdef HEURISTIC2_LIMIT
- if (result > HEURISTIC2_LIMIT
- && (ptr_t)(&dummy) < HEURISTIC2_LIMIT) {
- result = HEURISTIC2_LIMIT;
- }
-# endif
-# else
- result = GC_find_limit((ptr_t)(&dummy), FALSE);
-# ifdef HEURISTIC2_LIMIT
- if (result < HEURISTIC2_LIMIT
- && (ptr_t)(&dummy) > HEURISTIC2_LIMIT) {
- result = HEURISTIC2_LIMIT;
- }
-# endif
-# endif
-
-# endif /* HEURISTIC2 */
-# ifdef STACK_GROWS_DOWN
- if (result == 0) result = (ptr_t)(signed_word)(-sizeof(ptr_t));
-# endif
- return(result);
-# endif /* STACKBOTTOM */
-# endif /* STACKBASE */
-}
-# endif /* ECOS */
-
-# endif /* ! AMIGA */
-# endif /* ! OS2 */
-# endif /* ! MSWIN32 */
-
-/*
- * Register static data segment(s) as roots.
- * If more data segments are added later then they need to be registered
- * add that point (as we do with SunOS dynamic loading),
- * or GC_mark_roots needs to check for them (as we do with PCR).
- * Called with allocator lock held.
- */
-
-# ifdef OS2
-
-void GC_register_data_segments()
-{
- PTIB ptib;
- PPIB ppib;
- HMODULE module_handle;
-# define PBUFSIZ 512
- UCHAR path[PBUFSIZ];
- FILE * myexefile;
- struct exe_hdr hdrdos; /* MSDOS header. */
- struct e32_exe hdr386; /* Real header for my executable */
- struct o32_obj seg; /* Currrent segment */
- int nsegs;
-
-
- if (DosGetInfoBlocks(&ptib, &ppib) != NO_ERROR) {
- GC_err_printf0("DosGetInfoBlocks failed\n");
- ABORT("DosGetInfoBlocks failed\n");
- }
- module_handle = ppib -> pib_hmte;
- if (DosQueryModuleName(module_handle, PBUFSIZ, path) != NO_ERROR) {
- GC_err_printf0("DosQueryModuleName failed\n");
- ABORT("DosGetInfoBlocks failed\n");
- }
- myexefile = fopen(path, "rb");
- if (myexefile == 0) {
- GC_err_puts("Couldn't open executable ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Failed to open executable\n");
- }
- if (fread((char *)(&hdrdos), 1, sizeof hdrdos, myexefile) < sizeof hdrdos) {
- GC_err_puts("Couldn't read MSDOS header from ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Couldn't read MSDOS header");
- }
- if (E_MAGIC(hdrdos) != EMAGIC) {
- GC_err_puts("Executable has wrong DOS magic number: ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Bad DOS magic number");
- }
- if (fseek(myexefile, E_LFANEW(hdrdos), SEEK_SET) != 0) {
- GC_err_puts("Seek to new header failed in ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Bad DOS magic number");
- }
- if (fread((char *)(&hdr386), 1, sizeof hdr386, myexefile) < sizeof hdr386) {
- GC_err_puts("Couldn't read MSDOS header from ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Couldn't read OS/2 header");
- }
- if (E32_MAGIC1(hdr386) != E32MAGIC1 || E32_MAGIC2(hdr386) != E32MAGIC2) {
- GC_err_puts("Executable has wrong OS/2 magic number:");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Bad OS/2 magic number");
- }
- if ( E32_BORDER(hdr386) != E32LEBO || E32_WORDER(hdr386) != E32LEWO) {
- GC_err_puts("Executable %s has wrong byte order: ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Bad byte order");
- }
- if ( E32_CPU(hdr386) == E32CPU286) {
- GC_err_puts("GC can't handle 80286 executables: ");
- GC_err_puts(path); GC_err_puts("\n");
- EXIT();
- }
- if (fseek(myexefile, E_LFANEW(hdrdos) + E32_OBJTAB(hdr386),
- SEEK_SET) != 0) {
- GC_err_puts("Seek to object table failed: ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Seek to object table failed");
- }
- for (nsegs = E32_OBJCNT(hdr386); nsegs > 0; nsegs--) {
- int flags;
- if (fread((char *)(&seg), 1, sizeof seg, myexefile) < sizeof seg) {
- GC_err_puts("Couldn't read obj table entry from ");
- GC_err_puts(path); GC_err_puts("\n");
- ABORT("Couldn't read obj table entry");
- }
- flags = O32_FLAGS(seg);
- if (!(flags & OBJWRITE)) continue;
- if (!(flags & OBJREAD)) continue;
- if (flags & OBJINVALID) {
- GC_err_printf0("Object with invalid pages?\n");
- continue;
- }
- GC_add_roots_inner(O32_BASE(seg), O32_BASE(seg)+O32_SIZE(seg), FALSE);
- }
-}
-
-# else
-
-# ifdef MSWIN32
- /* Unfortunately, we have to handle win32s very differently from NT, */
- /* Since VirtualQuery has very different semantics. In particular, */
- /* under win32s a VirtualQuery call on an unmapped page returns an */
- /* invalid result. Under GC_register_data_segments is a noop and */
- /* all real work is done by GC_register_dynamic_libraries. Under */
- /* win32s, we cannot find the data segments associated with dll's. */
- /* We rgister the main data segment here. */
- GC_bool GC_win32s = FALSE; /* We're running under win32s. */
-
- GC_bool GC_is_win32s()
- {
- DWORD v = GetVersion();
-
- /* Check that this is not NT, and Windows major version <= 3 */
- return ((v & 0x80000000) && (v & 0xff) <= 3);
- }
-
- void GC_init_win32()
- {
- GC_win32s = GC_is_win32s();
- }
-
- /* Return the smallest address a such that VirtualQuery */
- /* returns correct results for all addresses between a and start. */
- /* Assumes VirtualQuery returns correct information for start. */
- ptr_t GC_least_described_address(ptr_t start)
- {
- MEMORY_BASIC_INFORMATION buf;
- SYSTEM_INFO sysinfo;
- DWORD result;
- LPVOID limit;
- ptr_t p;
- LPVOID q;
-
- GetSystemInfo(&sysinfo);
- limit = sysinfo.lpMinimumApplicationAddress;
- p = (ptr_t)((word)start & ~(GC_page_size - 1));
- for (;;) {
- q = (LPVOID)(p - GC_page_size);
- if ((ptr_t)q > (ptr_t)p /* underflow */ || q < limit) break;
- result = VirtualQuery(q, &buf, sizeof(buf));
- if (result != sizeof(buf) || buf.AllocationBase == 0) break;
- p = (ptr_t)(buf.AllocationBase);
- }
- return(p);
- }
-
- /* Is p the start of either the malloc heap, or of one of our */
- /* heap sections? */
- GC_bool GC_is_heap_base (ptr_t p)
- {
-
- register unsigned i;
-
-# ifndef REDIRECT_MALLOC
- static ptr_t malloc_heap_pointer = 0;
-
- if (0 == malloc_heap_pointer) {
- MEMORY_BASIC_INFORMATION buf;
- register DWORD result = VirtualQuery(malloc(1), &buf, sizeof(buf));
-
- if (result != sizeof(buf)) {
- ABORT("Weird VirtualQuery result");
- }
- malloc_heap_pointer = (ptr_t)(buf.AllocationBase);
- }
- if (p == malloc_heap_pointer) return(TRUE);
-# endif
- for (i = 0; i < GC_n_heap_bases; i++) {
- if (GC_heap_bases[i] == p) return(TRUE);
- }
- return(FALSE);
- }
-
- void GC_register_root_section(ptr_t static_root)
- {
- MEMORY_BASIC_INFORMATION buf;
- SYSTEM_INFO sysinfo;
- DWORD result;
- DWORD protect;
- LPVOID p;
- char * base;
- char * limit, * new_limit;
-
- if (!GC_win32s) return;
- p = base = limit = GC_least_described_address(static_root);
- GetSystemInfo(&sysinfo);
- while (p < sysinfo.lpMaximumApplicationAddress) {
- result = VirtualQuery(p, &buf, sizeof(buf));
- if (result != sizeof(buf) || buf.AllocationBase == 0
- || GC_is_heap_base(buf.AllocationBase)) break;
- new_limit = (char *)p + buf.RegionSize;
- protect = buf.Protect;
- if (buf.State == MEM_COMMIT
- && is_writable(protect)) {
- if ((char *)p == limit) {
- limit = new_limit;
- } else {
- if (base != limit) GC_add_roots_inner(base, limit, FALSE);
- base = p;
- limit = new_limit;
- }
- }
- if (p > (LPVOID)new_limit /* overflow */) break;
- p = (LPVOID)new_limit;
- }
- if (base != limit) GC_add_roots_inner(base, limit, FALSE);
- }
-
- void GC_register_data_segments()
- {
- static char dummy;
-
- GC_register_root_section((ptr_t)(&dummy));
- }
-# else
-# ifdef AMIGA
-
- void GC_register_data_segments()
- {
- struct Process *proc;
- struct CommandLineInterface *cli;
- BPTR myseglist;
- ULONG *data;
-
- int num;
-
-
-# ifdef __GNUC__
- ULONG dataSegSize;
- GC_bool found_segment = FALSE;
- extern char __data_size[];
-
- dataSegSize=__data_size+8;
- /* Can`t find the Location of __data_size, because
- it`s possible that is it, inside the segment. */
-
-# endif
-
- proc= (struct Process*)SysBase->ThisTask;
-
- /* Reference: Amiga Guru Book Pages: 538ff,565,573
- and XOper.asm */
- if (proc->pr_Task.tc_Node.ln_Type==NT_PROCESS) {
- if (proc->pr_CLI == NULL) {
- myseglist = proc->pr_SegList;
- } else {
- /* ProcLoaded 'Loaded as a command: '*/
- cli = BADDR(proc->pr_CLI);
- myseglist = cli->cli_Module;
- }
- } else {
- ABORT("Not a Process.");
- }
-
- if (myseglist == NULL) {
- ABORT("Arrrgh.. can't find segments, aborting");
- }
-
- /* xoper hunks Shell Process */
-
- num=0;
- for (data = (ULONG *)BADDR(myseglist); data != NULL;
- data = (ULONG *)BADDR(data[0])) {
- if (((ULONG) GC_register_data_segments < (ULONG) &data[1]) ||
- ((ULONG) GC_register_data_segments > (ULONG) &data[1] + data[-1])) {
-# ifdef __GNUC__
- if (dataSegSize == data[-1]) {
- found_segment = TRUE;
- }
-# endif
- GC_add_roots_inner((char *)&data[1],
- ((char *)&data[1]) + data[-1], FALSE);
- }
- ++num;
- } /* for */
-# ifdef __GNUC__
- if (!found_segment) {
- ABORT("Can`t find correct Segments.\nSolution: Use an newer version of ixemul.library");
- }
-# endif
- }
-
-#if 0 /* old version */
- void GC_register_data_segments()
- {
- extern struct WBStartup *_WBenchMsg;
- struct Process *proc;
- struct CommandLineInterface *cli;
- BPTR myseglist;
- ULONG *data;
-
- if ( _WBenchMsg != 0 ) {
- if ((myseglist = _WBenchMsg->sm_Segment) == 0) {
- GC_err_puts("No seglist from workbench\n");
- return;
- }
- } else {
- if ((proc = (struct Process *)FindTask(0)) == 0) {
- GC_err_puts("Cannot find process structure\n");
- return;
- }
- if ((cli = BADDR(proc->pr_CLI)) == 0) {
- GC_err_puts("No CLI\n");
- return;
- }
- if ((myseglist = cli->cli_Module) == 0) {
- GC_err_puts("No seglist from CLI\n");
- return;
- }
- }
-
- for (data = (ULONG *)BADDR(myseglist); data != 0;
- data = (ULONG *)BADDR(data[0])) {
-# ifdef AMIGA_SKIP_SEG
- if (((ULONG) GC_register_data_segments < (ULONG) &data[1]) ||
- ((ULONG) GC_register_data_segments > (ULONG) &data[1] + data[-1])) {
-# else
- {
-# endif /* AMIGA_SKIP_SEG */
- GC_add_roots_inner((char *)&data[1],
- ((char *)&data[1]) + data[-1], FALSE);
- }
- }
- }
-#endif /* old version */
-
-
-# else
-
-# if (defined(SVR4) || defined(AUX) || defined(DGUX) \
- || (defined(LINUX) && defined(SPARC))) && !defined(PCR)
-char * GC_SysVGetDataStart(max_page_size, etext_addr)
-int max_page_size;
-int * etext_addr;
-{
- word text_end = ((word)(etext_addr) + sizeof(word) - 1)
- & ~(sizeof(word) - 1);
- /* etext rounded to word boundary */
- word next_page = ((text_end + (word)max_page_size - 1)
- & ~((word)max_page_size - 1));
- word page_offset = (text_end & ((word)max_page_size - 1));
- VOLATILE char * result = (char *)(next_page + page_offset);
- /* Note that this isnt equivalent to just adding */
- /* max_page_size to &etext if &etext is at a page boundary */
-
- GC_setup_temporary_fault_handler();
- if (setjmp(GC_jmp_buf) == 0) {
- /* Try writing to the address. */
- *result = *result;
- GC_reset_fault_handler();
- } else {
- GC_reset_fault_handler();
- /* We got here via a longjmp. The address is not readable. */
- /* This is known to happen under Solaris 2.4 + gcc, which place */
- /* string constants in the text segment, but after etext. */
- /* Use plan B. Note that we now know there is a gap between */
- /* text and data segments, so plan A bought us something. */
- result = (char *)GC_find_limit((ptr_t)(DATAEND) - MIN_PAGE_SIZE, FALSE);
- }
- return((char *)result);
-}
-# endif
-
-
-void GC_register_data_segments()
-{
-# if !defined(PCR) && !defined(SRC_M3) && !defined(NEXT) && !defined(MACOS) \
- && !defined(MACOSX)
-# if defined(REDIRECT_MALLOC) && defined(SOLARIS_THREADS)
- /* As of Solaris 2.3, the Solaris threads implementation */
- /* allocates the data structure for the initial thread with */
- /* sbrk at process startup. It needs to be scanned, so that */
- /* we don't lose some malloc allocated data structures */
- /* hanging from it. We're on thin ice here ... */
- extern caddr_t sbrk();
-
- GC_add_roots_inner(DATASTART, (char *)sbrk(0), FALSE);
-# else
- GC_add_roots_inner(DATASTART, (char *)(DATAEND), FALSE);
-# endif
-# endif
-# if !defined(PCR) && (defined(NEXT) || defined(MACOSX))
- GC_add_roots_inner(DATASTART, (char *) get_end(), FALSE);
-# endif
-# if defined(MACOS)
- {
-# if defined(THINK_C)
- extern void* GC_MacGetDataStart(void);
- /* globals begin above stack and end at a5. */
- GC_add_roots_inner((ptr_t)GC_MacGetDataStart(),
- (ptr_t)LMGetCurrentA5(), FALSE);
-# else
-# if defined(__MWERKS__)
-# if !__POWERPC__
- extern void* GC_MacGetDataStart(void);
- /* MATTHEW: Function to handle Far Globals (CW Pro 3) */
-# if __option(far_data)
- extern void* GC_MacGetDataEnd(void);
-# endif
- /* globals begin above stack and end at a5. */
- GC_add_roots_inner((ptr_t)GC_MacGetDataStart(),
- (ptr_t)LMGetCurrentA5(), FALSE);
- /* MATTHEW: Handle Far Globals */
-# if __option(far_data)
- /* Far globals follow he QD globals: */
- GC_add_roots_inner((ptr_t)LMGetCurrentA5(),
- (ptr_t)GC_MacGetDataEnd(), FALSE);
-# endif
-# else
- extern char __data_start__[], __data_end__[];
- GC_add_roots_inner((ptr_t)&__data_start__,
- (ptr_t)&__data_end__, FALSE);
-# endif /* __POWERPC__ */
-# endif /* __MWERKS__ */
-# endif /* !THINK_C */
- }
-# endif /* MACOS */
-
- /* Dynamic libraries are added at every collection, since they may */
- /* change. */
-}
-
-# endif /* ! AMIGA */
-# endif /* ! MSWIN32 */
-# endif /* ! OS2 */
-
-/*
- * Auxiliary routines for obtaining memory from OS.
- */
-
-# if !defined(OS2) && !defined(PCR) && !defined(AMIGA) \
- && !defined(MSWIN32) && !defined(MACOS) && !defined(DOS4GW)
-
-# ifdef SUNOS4
- extern caddr_t sbrk();
-# endif
-# ifdef __STDC__
-# define SBRK_ARG_T ptrdiff_t
-# else
-# define SBRK_ARG_T int
-# endif
-
-# ifdef RS6000
-/* The compiler seems to generate speculative reads one past the end of */
-/* an allocated object. Hence we need to make sure that the page */
-/* following the last heap page is also mapped. */
-ptr_t GC_unix_get_mem(bytes)
-word bytes;
-{
- caddr_t cur_brk = (caddr_t)sbrk(0);
- caddr_t result;
- SBRK_ARG_T lsbs = (word)cur_brk & (GC_page_size-1);
- static caddr_t my_brk_val = 0;
-
- if ((SBRK_ARG_T)bytes < 0) return(0); /* too big */
- if (lsbs != 0) {
- if((caddr_t)(sbrk(GC_page_size - lsbs)) == (caddr_t)(-1)) return(0);
- }
- if (cur_brk == my_brk_val) {
- /* Use the extra block we allocated last time. */
- result = (ptr_t)sbrk((SBRK_ARG_T)bytes);
- if (result == (caddr_t)(-1)) return(0);
- result -= GC_page_size;
- } else {
- result = (ptr_t)sbrk(GC_page_size + (SBRK_ARG_T)bytes);
- if (result == (caddr_t)(-1)) return(0);
- }
- my_brk_val = result + bytes + GC_page_size; /* Always page aligned */
- return((ptr_t)result);
-}
-
-#else /* Not RS6000 */
-
-#if defined(USE_MMAP)
-/* Tested only under IRIX5 and Solaris 2 */
-
-#ifdef USE_MMAP_FIXED
-# define GC_MMAP_FLAGS MAP_FIXED | MAP_PRIVATE
- /* Seems to yield better performance on Solaris 2, but can */
- /* be unreliable if something is already mapped at the address. */
-#else
-# define GC_MMAP_FLAGS MAP_PRIVATE
-#endif
-
-ptr_t GC_unix_get_mem(bytes)
-word bytes;
-{
- static GC_bool initialized = FALSE;
- static int fd;
- void *result;
- static ptr_t last_addr = HEAP_START;
-
- if (!initialized) {
- fd = open("/dev/zero", O_RDONLY);
- initialized = TRUE;
- }
- if (bytes & (GC_page_size -1)) ABORT("Bad GET_MEM arg");
- result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
- GC_MMAP_FLAGS, fd, 0/* offset */);
- if (result == MAP_FAILED) return(0);
- last_addr = (ptr_t)result + bytes + GC_page_size - 1;
- last_addr = (ptr_t)((word)last_addr & ~(GC_page_size - 1));
- return((ptr_t)result);
-}
-
-#else /* Not RS6000, not USE_MMAP */
-ptr_t GC_unix_get_mem(bytes)
-word bytes;
-{
- ptr_t result;
-# ifdef IRIX5
- /* Bare sbrk isn't thread safe. Play by malloc rules. */
- /* The equivalent may be needed on other systems as well. */
- __LOCK_MALLOC();
-# endif
- {
- ptr_t cur_brk = (ptr_t)sbrk(0);
- SBRK_ARG_T lsbs = (word)cur_brk & (GC_page_size-1);
-
- if ((SBRK_ARG_T)bytes < 0) return(0); /* too big */
- if (lsbs != 0) {
- if((ptr_t)sbrk(GC_page_size - lsbs) == (ptr_t)(-1)) return(0);
- }
- result = (ptr_t)sbrk((SBRK_ARG_T)bytes);
- if (result == (ptr_t)(-1)) result = 0;
- }
-# ifdef IRIX5
- __UNLOCK_MALLOC();
-# endif
- return(result);
-}
-
-#endif /* Not USE_MMAP */
-#endif /* Not RS6000 */
-
-# endif /* UN*X */
-
-# ifdef OS2
-
-void * os2_alloc(size_t bytes)
-{
- void * result;
-
- if (DosAllocMem(&result, bytes, PAG_EXECUTE | PAG_READ |
- PAG_WRITE | PAG_COMMIT)
- != NO_ERROR) {
- return(0);
- }
- if (result == 0) return(os2_alloc(bytes));
- return(result);
-}
-
-# endif /* OS2 */
-
-
-# ifdef MSWIN32
-word GC_n_heap_bases = 0;
-
-ptr_t GC_win32_get_mem(bytes)
-word bytes;
-{
- ptr_t result;
-
- if (GC_win32s) {
- /* VirtualAlloc doesn't like PAGE_EXECUTE_READWRITE. */
- /* There are also unconfirmed rumors of other */
- /* problems, so we dodge the issue. */
- result = (ptr_t) GlobalAlloc(0, bytes + HBLKSIZE);
- result = (ptr_t)(((word)result + HBLKSIZE) & ~(HBLKSIZE-1));
- } else {
- result = (ptr_t) VirtualAlloc(NULL, bytes,
- MEM_COMMIT | MEM_RESERVE,
- PAGE_EXECUTE_READWRITE);
- }
- if (HBLKDISPL(result) != 0) ABORT("Bad VirtualAlloc result");
- /* If I read the documentation correctly, this can */
- /* only happen if HBLKSIZE > 64k or not a power of 2. */
- if (GC_n_heap_bases >= MAX_HEAP_SECTS) ABORT("Too many heap sections");
- GC_heap_bases[GC_n_heap_bases++] = result;
- return(result);
-}
-
-void GC_win32_free_heap ()
-{
- if (GC_win32s) {
- while (GC_n_heap_bases > 0) {
- GlobalFree (GC_heap_bases[--GC_n_heap_bases]);
- GC_heap_bases[GC_n_heap_bases] = 0;
- }
- }
-}
-
-
-# endif
-
-#ifdef USE_MUNMAP
-
-/* For now, this only works on some Unix-like systems. If you */
-/* have something else, don't define USE_MUNMAP. */
-/* We assume ANSI C to support this feature. */
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-
-/* Compute a page aligned starting address for the unmap */
-/* operation on a block of size bytes starting at start. */
-/* Return 0 if the block is too small to make this feasible. */
-ptr_t GC_unmap_start(ptr_t start, word bytes)
-{
- ptr_t result = start;
- /* Round start to next page boundary. */
- result += GC_page_size - 1;
- result = (ptr_t)((word)result & ~(GC_page_size - 1));
- if (result + GC_page_size > start + bytes) return 0;
- return result;
-}
-
-/* Compute end address for an unmap operation on the indicated */
-/* block. */
-ptr_t GC_unmap_end(ptr_t start, word bytes)
-{
- ptr_t end_addr = start + bytes;
- end_addr = (ptr_t)((word)end_addr & ~(GC_page_size - 1));
- return end_addr;
-}
-
-/* We assume that GC_remap is called on exactly the same range */
-/* as a previous call to GC_unmap. It is safe to consistently */
-/* round the endpoints in both places. */
-void GC_unmap(ptr_t start, word bytes)
-{
- ptr_t start_addr = GC_unmap_start(start, bytes);
- ptr_t end_addr = GC_unmap_end(start, bytes);
- word len = end_addr - start_addr;
- if (0 == start_addr) return;
- if (munmap(start_addr, len) != 0) ABORT("munmap failed");
- GC_unmapped_bytes += len;
-}
-
-
-void GC_remap(ptr_t start, word bytes)
-{
- static int zero_descr = -1;
- ptr_t start_addr = GC_unmap_start(start, bytes);
- ptr_t end_addr = GC_unmap_end(start, bytes);
- word len = end_addr - start_addr;
- ptr_t result;
-
- if (-1 == zero_descr) zero_descr = open("/dev/zero", O_RDWR);
- if (0 == start_addr) return;
- result = mmap(start_addr, len, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
- MAP_FIXED | MAP_PRIVATE, zero_descr, 0);
- if (result != start_addr) {
- ABORT("mmap remapping failed");
- }
- GC_unmapped_bytes -= len;
-}
-
-/* Two adjacent blocks have already been unmapped and are about to */
-/* be merged. Unmap the whole block. This typically requires */
-/* that we unmap a small section in the middle that was not previously */
-/* unmapped due to alignment constraints. */
-void GC_unmap_gap(ptr_t start1, word bytes1, ptr_t start2, word bytes2)
-{
- ptr_t start1_addr = GC_unmap_start(start1, bytes1);
- ptr_t end1_addr = GC_unmap_end(start1, bytes1);
- ptr_t start2_addr = GC_unmap_start(start2, bytes2);
- ptr_t end2_addr = GC_unmap_end(start2, bytes2);
- ptr_t start_addr = end1_addr;
- ptr_t end_addr = start2_addr;
- word len;
- GC_ASSERT(start1 + bytes1 == start2);
- if (0 == start1_addr) start_addr = GC_unmap_start(start1, bytes1 + bytes2);
- if (0 == start2_addr) end_addr = GC_unmap_end(start1, bytes1 + bytes2);
- if (0 == start_addr) return;
- len = end_addr - start_addr;
- if (len != 0 && munmap(start_addr, len) != 0) ABORT("munmap failed");
- GC_unmapped_bytes += len;
-}
-
-#endif /* USE_MUNMAP */
-
-/* Routine for pushing any additional roots. In THREADS */
-/* environment, this is also responsible for marking from */
-/* thread stacks. In the SRC_M3 case, it also handles */
-/* global variables. */
-#ifndef THREADS
-void (*GC_push_other_roots)() = 0;
-#else /* THREADS */
-
-# ifdef PCR
-PCR_ERes GC_push_thread_stack(PCR_Th_T *t, PCR_Any dummy)
-{
- struct PCR_ThCtl_TInfoRep info;
- PCR_ERes result;
-
- info.ti_stkLow = info.ti_stkHi = 0;
- result = PCR_ThCtl_GetInfo(t, &info);
- GC_push_all_stack((ptr_t)(info.ti_stkLow), (ptr_t)(info.ti_stkHi));
- return(result);
-}
-
-/* Push the contents of an old object. We treat this as stack */
-/* data only becasue that makes it robust against mark stack */
-/* overflow. */
-PCR_ERes GC_push_old_obj(void *p, size_t size, PCR_Any data)
-{
- GC_push_all_stack((ptr_t)p, (ptr_t)p + size);
- return(PCR_ERes_okay);
-}
-
-
-void GC_default_push_other_roots()
-{
- /* Traverse data allocated by previous memory managers. */
- {
- extern struct PCR_MM_ProcsRep * GC_old_allocator;
-
- if ((*(GC_old_allocator->mmp_enumerate))(PCR_Bool_false,
- GC_push_old_obj, 0)
- != PCR_ERes_okay) {
- ABORT("Old object enumeration failed");
- }
- }
- /* Traverse all thread stacks. */
- if (PCR_ERes_IsErr(
- PCR_ThCtl_ApplyToAllOtherThreads(GC_push_thread_stack,0))
- || PCR_ERes_IsErr(GC_push_thread_stack(PCR_Th_CurrThread(), 0))) {
- ABORT("Thread stack marking failed\n");
- }
-}
-
-# endif /* PCR */
-
-# ifdef SRC_M3
-
-# ifdef ALL_INTERIOR_POINTERS
- --> misconfigured
-# endif
-
-
-extern void ThreadF__ProcessStacks();
-
-void GC_push_thread_stack(start, stop)
-word start, stop;
-{
- GC_push_all_stack((ptr_t)start, (ptr_t)stop + sizeof(word));
-}
-
-/* Push routine with M3 specific calling convention. */
-GC_m3_push_root(dummy1, p, dummy2, dummy3)
-word *p;
-ptr_t dummy1, dummy2;
-int dummy3;
-{
- word q = *p;
-
- if ((ptr_t)(q) >= GC_least_plausible_heap_addr
- && (ptr_t)(q) < GC_greatest_plausible_heap_addr) {
- GC_push_one_checked(q,FALSE);
- }
-}
-
-/* M3 set equivalent to RTHeap.TracedRefTypes */
-typedef struct { int elts[1]; } RefTypeSet;
-RefTypeSet GC_TracedRefTypes = {{0x1}};
-
-/* From finalize.c */
-extern void GC_push_finalizer_structures();
-
-/* From stubborn.c: */
-# ifdef STUBBORN_ALLOC
- extern GC_PTR * GC_changing_list_start;
-# endif
-
-
-void GC_default_push_other_roots()
-{
- /* Use the M3 provided routine for finding static roots. */
- /* This is a bit dubious, since it presumes no C roots. */
- /* We handle the collector roots explicitly. */
- {
-# ifdef STUBBORN_ALLOC
- GC_push_one(GC_changing_list_start);
-# endif
- GC_push_finalizer_structures();
- RTMain__GlobalMapProc(GC_m3_push_root, 0, GC_TracedRefTypes);
- }
- if (GC_words_allocd > 0) {
- ThreadF__ProcessStacks(GC_push_thread_stack);
- }
- /* Otherwise this isn't absolutely necessary, and we have */
- /* startup ordering problems. */
-}
-
-# endif /* SRC_M3 */
-
-# if defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \
- || defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
-
-extern void GC_push_all_stacks();
-
-void GC_default_push_other_roots()
-{
- GC_push_all_stacks();
-}
-
-# endif /* SOLARIS_THREADS || ... */
-
-void (*GC_push_other_roots)() = GC_default_push_other_roots;
-
-#endif
-
-/*
- * Routines for accessing dirty bits on virtual pages.
- * We plan to eventaually implement four strategies for doing so:
- * DEFAULT_VDB: A simple dummy implementation that treats every page
- * as possibly dirty. This makes incremental collection
- * useless, but the implementation is still correct.
- * PCR_VDB: Use PPCRs virtual dirty bit facility.
- * PROC_VDB: Use the /proc facility for reading dirty bits. Only
- * works under some SVR4 variants. Even then, it may be
- * too slow to be entirely satisfactory. Requires reading
- * dirty bits for entire address space. Implementations tend
- * to assume that the client is a (slow) debugger.
- * MPROTECT_VDB:Protect pages and then catch the faults to keep track of
- * dirtied pages. The implementation (and implementability)
- * is highly system dependent. This usually fails when system
- * calls write to a protected page. We prevent the read system
- * call from doing so. It is the clients responsibility to
- * make sure that other system calls are similarly protected
- * or write only to the stack.
- */
-
-GC_bool GC_dirty_maintained = FALSE;
-
-# ifdef DEFAULT_VDB
-
-/* All of the following assume the allocation lock is held, and */
-/* signals are disabled. */
-
-/* The client asserts that unallocated pages in the heap are never */
-/* written. */
-
-/* Initialize virtual dirty bit implementation. */
-void GC_dirty_init()
-{
- GC_dirty_maintained = TRUE;
-}
-
-/* Retrieve system dirty bits for heap to a local buffer. */
-/* Restore the systems notion of which pages are dirty. */
-void GC_read_dirty()
-{}
-
-/* Is the HBLKSIZE sized page at h marked dirty in the local buffer? */
-/* If the actual page size is different, this returns TRUE if any */
-/* of the pages overlapping h are dirty. This routine may err on the */
-/* side of labelling pages as dirty (and this implementation does). */
-/*ARGSUSED*/
-GC_bool GC_page_was_dirty(h)
-struct hblk *h;
-{
- return(TRUE);
-}
-
-/*
- * The following two routines are typically less crucial. They matter
- * most with large dynamic libraries, or if we can't accurately identify
- * stacks, e.g. under Solaris 2.X. Otherwise the following default
- * versions are adequate.
- */
-
-/* Could any valid GC heap pointer ever have been written to this page? */
-/*ARGSUSED*/
-GC_bool GC_page_was_ever_dirty(h)
-struct hblk *h;
-{
- return(TRUE);
-}
-
-/* Reset the n pages starting at h to "was never dirty" status. */
-void GC_is_fresh(h, n)
-struct hblk *h;
-word n;
-{
-}
-
-/* A call hints that h is about to be written. */
-/* May speed up some dirty bit implementations. */
-/*ARGSUSED*/
-void GC_write_hint(h)
-struct hblk *h;
-{
-}
-
-# endif /* DEFAULT_VDB */
-
-
-# ifdef MPROTECT_VDB
-
-/*
- * See DEFAULT_VDB for interface descriptions.
- */
-
-/*
- * This implementation maintains dirty bits itself by catching write
- * faults and keeping track of them. We assume nobody else catches
- * SIGBUS or SIGSEGV. We assume no write faults occur in system calls
- * except as a result of a read system call. This means clients must
- * either ensure that system calls do not touch the heap, or must
- * provide their own wrappers analogous to the one for read.
- * We assume the page size is a multiple of HBLKSIZE.
- * This implementation is currently SunOS 4.X and IRIX 5.X specific, though we
- * tried to use portable code where easily possible. It is known
- * not to work under a number of other systems.
- */
-
-# ifndef MSWIN32
-
-# include <sys/mman.h>
-# include <signal.h>
-# include <sys/syscall.h>
-
-# define PROTECT(addr, len) \
- if (mprotect((caddr_t)(addr), (size_t)(len), \
- PROT_READ | OPT_PROT_EXEC) < 0) { \
- ABORT("mprotect failed"); \
- }
-# define UNPROTECT(addr, len) \
- if (mprotect((caddr_t)(addr), (size_t)(len), \
- PROT_WRITE | PROT_READ | OPT_PROT_EXEC ) < 0) { \
- ABORT("un-mprotect failed"); \
- }
-
-# else
-
-# include <signal.h>
-
- static DWORD protect_junk;
-# define PROTECT(addr, len) \
- if (!VirtualProtect((addr), (len), PAGE_EXECUTE_READ, \
- &protect_junk)) { \
- DWORD last_error = GetLastError(); \
- GC_printf1("Last error code: %lx\n", last_error); \
- ABORT("VirtualProtect failed"); \
- }
-# define UNPROTECT(addr, len) \
- if (!VirtualProtect((addr), (len), PAGE_EXECUTE_READWRITE, \
- &protect_junk)) { \
- ABORT("un-VirtualProtect failed"); \
- }
-
-# endif
-
-#if defined(SUNOS4) || defined(FREEBSD)
- typedef void (* SIG_PF)();
-#endif
-#if defined(SUNOS5SIGS) || defined(OSF1) || defined(LINUX)
-# ifdef __STDC__
- typedef void (* SIG_PF)(int);
-# else
- typedef void (* SIG_PF)();
-# endif
-#endif
-#if defined(MSWIN32)
- typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_PF;
-# undef SIG_DFL
-# define SIG_DFL (LPTOP_LEVEL_EXCEPTION_FILTER) (-1)
-#endif
-
-#if defined(IRIX5) || defined(OSF1)
- typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
-#endif
-#if defined(SUNOS5SIGS)
-# ifdef HPUX
-# define SIGINFO __siginfo
-# else
-# define SIGINFO siginfo
-# endif
-# ifdef __STDC__
- typedef void (* REAL_SIG_PF)(int, struct SIGINFO *, void *);
-# else
- typedef void (* REAL_SIG_PF)();
-# endif
-#endif
-#if defined(LINUX)
-# include <linux/version.h>
-# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA) || defined(IA64)
- typedef struct sigcontext s_c;
-# else
- typedef struct sigcontext_struct s_c;
-# endif
-# if defined(ALPHA) || defined(M68K)
- typedef void (* REAL_SIG_PF)(int, int, s_c *);
-# else
-# if defined(IA64)
- typedef void (* REAL_SIG_PF)(int, siginfo_t *, s_c *);
-# else
- typedef void (* REAL_SIG_PF)(int, s_c);
-# endif
-# endif
-# ifdef ALPHA
- /* Retrieve fault address from sigcontext structure by decoding */
- /* instruction. */
- char * get_fault_addr(s_c *sc) {
- unsigned instr;
- word faultaddr;
-
- instr = *((unsigned *)(sc->sc_pc));
- faultaddr = sc->sc_regs[(instr >> 16) & 0x1f];
- faultaddr += (word) (((int)instr << 16) >> 16);
- return (char *)faultaddr;
- }
-# endif /* !ALPHA */
-# endif
-
-SIG_PF GC_old_bus_handler;
-SIG_PF GC_old_segv_handler; /* Also old MSWIN32 ACCESS_VIOLATION filter */
-
-/*ARGSUSED*/
-# if defined (SUNOS4) || defined(FREEBSD)
- void GC_write_fault_handler(sig, code, scp, addr)
- int sig, code;
- struct sigcontext *scp;
- char * addr;
-# ifdef SUNOS4
-# define SIG_OK (sig == SIGSEGV || sig == SIGBUS)
-# define CODE_OK (FC_CODE(code) == FC_PROT \
- || (FC_CODE(code) == FC_OBJERR \
- && FC_ERRNO(code) == FC_PROT))
-# endif
-# ifdef FREEBSD
-# define SIG_OK (sig == SIGBUS)
-# define CODE_OK (code == BUS_PAGE_FAULT)
-# endif
-# endif
-# if defined(IRIX5) || defined(OSF1)
-# include <errno.h>
- void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
-# define SIG_OK (sig == SIGSEGV)
-# ifdef OSF1
-# define CODE_OK (code == 2 /* experimentally determined */)
-# endif
-# ifdef IRIX5
-# define CODE_OK (code == EACCES)
-# endif
-# endif
-# if defined(LINUX)
-# if defined(ALPHA) || defined(M68K)
- void GC_write_fault_handler(int sig, int code, s_c * sc)
-# else
-# if defined(IA64)
- void GC_write_fault_handler(int sig, siginfo_t * si, s_c * scp)
-# else
- void GC_write_fault_handler(int sig, s_c sc)
-# endif
-# endif
-# define SIG_OK (sig == SIGSEGV)
-# define CODE_OK TRUE
- /* Empirically c.trapno == 14, on IA32, but is that useful? */
- /* Should probably consider alignment issues on other */
- /* architectures. */
-# endif
-# if defined(SUNOS5SIGS)
-# ifdef __STDC__
- void GC_write_fault_handler(int sig, struct SIGINFO *scp, void * context)
-# else
- void GC_write_fault_handler(sig, scp, context)
- int sig;
- struct SIGINFO *scp;
- void * context;
-# endif
-# ifdef HPUX
-# define SIG_OK (sig == SIGSEGV || sig == SIGBUS)
-# define CODE_OK (scp -> si_code == SEGV_ACCERR) \
- || (scp -> si_code == BUS_ADRERR) \
- || (scp -> si_code == BUS_UNKNOWN) \
- || (scp -> si_code == SEGV_UNKNOWN) \
- || (scp -> si_code == BUS_OBJERR)
-# else
-# define SIG_OK (sig == SIGSEGV)
-# define CODE_OK (scp -> si_code == SEGV_ACCERR)
-# endif
-# endif
-# if defined(MSWIN32)
- LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info)
-# define SIG_OK (exc_info -> ExceptionRecord -> ExceptionCode == \
- EXCEPTION_ACCESS_VIOLATION)
-# define CODE_OK (exc_info -> ExceptionRecord -> ExceptionInformation[0] == 1)
- /* Write fault */
-# endif
-{
- register unsigned i;
-# ifdef IRIX5
- char * addr = (char *) (size_t) (scp -> sc_badvaddr);
-# endif
-# if defined(OSF1) && defined(ALPHA)
- char * addr = (char *) (scp -> sc_traparg_a0);
-# endif
-# ifdef SUNOS5SIGS
- char * addr = (char *) (scp -> si_addr);
-# endif
-# ifdef LINUX
-# ifdef I386
- char * addr = (char *) (sc.cr2);
-# else
-# if defined(M68K)
- char * addr = NULL;
-
- struct sigcontext *scp = (struct sigcontext *)(&sc);
-
- int format = (scp->sc_formatvec >> 12) & 0xf;
- unsigned long *framedata = (unsigned long *)(scp + 1);
- unsigned long ea;
-
- if (format == 0xa || format == 0xb) {
- /* 68020/030 */
- ea = framedata[2];
- } else if (format == 7) {
- /* 68040 */
- ea = framedata[3];
- } else if (format == 4) {
- /* 68060 */
- ea = framedata[0];
- if (framedata[1] & 0x08000000) {
- /* correct addr on misaligned access */
- ea = (ea+4095)&(~4095);
- }
- }
- addr = (char *)ea;
-# else
-# ifdef ALPHA
- char * addr = get_fault_addr(sc);
-# else
-# ifdef IA64
- char * addr = si -> si_addr;
- /* I believe this is claimed to work on all platforms for */
- /* Linux 2.3.47 and later. Hopefully we don't have to */
- /* worry about earlier kernels on IA64. */
-# else
-# if defined(POWERPC)
- char * addr = (char *) (sc.regs->dar);
-# else
- --> architecture not supported
-# endif
-# endif
-# endif
-# endif
-# endif
-# endif
-# if defined(MSWIN32)
- char * addr = (char *) (exc_info -> ExceptionRecord
- -> ExceptionInformation[1]);
-# define sig SIGSEGV
-# endif
-
- if (SIG_OK && CODE_OK) {
- register struct hblk * h =
- (struct hblk *)((word)addr & ~(GC_page_size-1));
- GC_bool in_allocd_block;
-
-# ifdef SUNOS5SIGS
- /* Address is only within the correct physical page. */
- in_allocd_block = FALSE;
- for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
- if (HDR(h+i) != 0) {
- in_allocd_block = TRUE;
- }
- }
-# else
- in_allocd_block = (HDR(addr) != 0);
-# endif
- if (!in_allocd_block) {
- /* Heap blocks now begin and end on page boundaries */
- SIG_PF old_handler;
-
- if (sig == SIGSEGV) {
- old_handler = GC_old_segv_handler;
- } else {
- old_handler = GC_old_bus_handler;
- }
- if (old_handler == SIG_DFL) {
-# ifndef MSWIN32
- GC_err_printf1("Segfault at 0x%lx\n", addr);
- ABORT("Unexpected bus error or segmentation fault");
-# else
- return(EXCEPTION_CONTINUE_SEARCH);
-# endif
- } else {
-# if defined (SUNOS4) || defined(FREEBSD)
- (*old_handler) (sig, code, scp, addr);
- return;
-# endif
-# if defined (SUNOS5SIGS)
- (*(REAL_SIG_PF)old_handler) (sig, scp, context);
- return;
-# endif
-# if defined (LINUX)
-# if defined(ALPHA) || defined(M68K)
- (*(REAL_SIG_PF)old_handler) (sig, code, sc);
-# else
-# if defined(IA64)
- (*(REAL_SIG_PF)old_handler) (sig, si, scp);
-# else
- (*(REAL_SIG_PF)old_handler) (sig, sc);
-# endif
-# endif
- return;
-# endif
-# if defined (IRIX5) || defined(OSF1)
- (*(REAL_SIG_PF)old_handler) (sig, code, scp);
- return;
-# endif
-# ifdef MSWIN32
- return((*old_handler)(exc_info));
-# endif
- }
- }
- for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
- register int index = PHT_HASH(h+i);
-
- set_pht_entry_from_index(GC_dirty_pages, index);
- }
- UNPROTECT(h, GC_page_size);
-# if defined(OSF1) || defined(LINUX)
- /* These reset the signal handler each time by default. */
- signal(SIGSEGV, (SIG_PF) GC_write_fault_handler);
-# endif
- /* The write may not take place before dirty bits are read. */
- /* But then we'll fault again ... */
-# ifdef MSWIN32
- return(EXCEPTION_CONTINUE_EXECUTION);
-# else
- return;
-# endif
- }
-#ifdef MSWIN32
- return EXCEPTION_CONTINUE_SEARCH;
-#else
- GC_err_printf1("Segfault at 0x%lx\n", addr);
- ABORT("Unexpected bus error or segmentation fault");
-#endif
-}
-
-/*
- * We hold the allocation lock. We expect block h to be written
- * shortly.
- */
-void GC_write_hint(h)
-struct hblk *h;
-{
- register struct hblk * h_trunc;
- register unsigned i;
- register GC_bool found_clean;
-
- if (!GC_dirty_maintained) return;
- h_trunc = (struct hblk *)((word)h & ~(GC_page_size-1));
- found_clean = FALSE;
- for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
- register int index = PHT_HASH(h_trunc+i);
-
- if (!get_pht_entry_from_index(GC_dirty_pages, index)) {
- found_clean = TRUE;
- set_pht_entry_from_index(GC_dirty_pages, index);
- }
- }
- if (found_clean) {
- UNPROTECT(h_trunc, GC_page_size);
- }
-}
-
-void GC_dirty_init()
-{
-#if defined(SUNOS5SIGS) || defined(IRIX5) /* || defined(OSF1) */
- struct sigaction act, oldact;
-# ifdef IRIX5
- act.sa_flags = SA_RESTART;
- act.sa_handler = GC_write_fault_handler;
-# else
- act.sa_flags = SA_RESTART | SA_SIGINFO;
- act.sa_sigaction = GC_write_fault_handler;
-# endif
- (void)sigemptyset(&act.sa_mask);
-#endif
-# ifdef PRINTSTATS
- GC_printf0("Inititalizing mprotect virtual dirty bit implementation\n");
-# endif
- GC_dirty_maintained = TRUE;
- if (GC_page_size % HBLKSIZE != 0) {
- GC_err_printf0("Page size not multiple of HBLKSIZE\n");
- ABORT("Page size not multiple of HBLKSIZE");
- }
-# if defined(SUNOS4) || defined(FREEBSD)
- GC_old_bus_handler = signal(SIGBUS, GC_write_fault_handler);
- if (GC_old_bus_handler == SIG_IGN) {
- GC_err_printf0("Previously ignored bus error!?");
- GC_old_bus_handler = SIG_DFL;
- }
- if (GC_old_bus_handler != SIG_DFL) {
-# ifdef PRINTSTATS
- GC_err_printf0("Replaced other SIGBUS handler\n");
-# endif
- }
-# endif
-# if defined(OSF1) || defined(SUNOS4) || defined(LINUX)
- GC_old_segv_handler = signal(SIGSEGV, (SIG_PF)GC_write_fault_handler);
- if (GC_old_segv_handler == SIG_IGN) {
- GC_err_printf0("Previously ignored segmentation violation!?");
- GC_old_segv_handler = SIG_DFL;
- }
- if (GC_old_segv_handler != SIG_DFL) {
-# ifdef PRINTSTATS
- GC_err_printf0("Replaced other SIGSEGV handler\n");
-# endif
- }
-# endif
-# if defined(SUNOS5SIGS) || defined(IRIX5)
-# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS)
- sigaction(SIGSEGV, 0, &oldact);
- sigaction(SIGSEGV, &act, 0);
-# else
- sigaction(SIGSEGV, &act, &oldact);
-# endif
-# if defined(_sigargs)
- /* This is Irix 5.x, not 6.x. Irix 5.x does not have */
- /* sa_sigaction. */
- GC_old_segv_handler = oldact.sa_handler;
-# else /* Irix 6.x or SUNOS5SIGS */
- if (oldact.sa_flags & SA_SIGINFO) {
- GC_old_segv_handler = (SIG_PF)(oldact.sa_sigaction);
- } else {
- GC_old_segv_handler = oldact.sa_handler;
- }
-# endif
- if (GC_old_segv_handler == SIG_IGN) {
- GC_err_printf0("Previously ignored segmentation violation!?");
- GC_old_segv_handler = SIG_DFL;
- }
- if (GC_old_segv_handler != SIG_DFL) {
-# ifdef PRINTSTATS
- GC_err_printf0("Replaced other SIGSEGV handler\n");
-# endif
- }
-# ifdef HPUX
- sigaction(SIGBUS, &act, &oldact);
- GC_old_bus_handler = oldact.sa_handler;
- if (GC_old_segv_handler != SIG_DFL) {
-# ifdef PRINTSTATS
- GC_err_printf0("Replaced other SIGBUS handler\n");
-# endif
- }
-# endif
-# endif
-# if defined(MSWIN32)
- GC_old_segv_handler = SetUnhandledExceptionFilter(GC_write_fault_handler);
- if (GC_old_segv_handler != NULL) {
-# ifdef PRINTSTATS
- GC_err_printf0("Replaced other UnhandledExceptionFilter\n");
-# endif
- } else {
- GC_old_segv_handler = SIG_DFL;
- }
-# endif
-}
-
-
-
-void GC_protect_heap()
-{
- ptr_t start;
- word len;
- unsigned i;
-
- for (i = 0; i < GC_n_heap_sects; i++) {
- start = GC_heap_sects[i].hs_start;
- len = GC_heap_sects[i].hs_bytes;
- PROTECT(start, len);
- }
-}
-
-/* We assume that either the world is stopped or its OK to lose dirty */
-/* bits while this is happenning (as in GC_enable_incremental). */
-void GC_read_dirty()
-{
- BCOPY((word *)GC_dirty_pages, GC_grungy_pages,
- (sizeof GC_dirty_pages));
- BZERO((word *)GC_dirty_pages, (sizeof GC_dirty_pages));
- GC_protect_heap();
-}
-
-GC_bool GC_page_was_dirty(h)
-struct hblk * h;
-{
- register word index = PHT_HASH(h);
-
- return(HDR(h) == 0 || get_pht_entry_from_index(GC_grungy_pages, index));
-}
-
-/*
- * Acquiring the allocation lock here is dangerous, since this
- * can be called from within GC_call_with_alloc_lock, and the cord
- * package does so. On systems that allow nested lock acquisition, this
- * happens to work.
- * On other systems, SET_LOCK_HOLDER and friends must be suitably defined.
- */
-
-void GC_begin_syscall()
-{
- if (!I_HOLD_LOCK()) LOCK();
-}
-
-void GC_end_syscall()
-{
- if (!I_HOLD_LOCK()) UNLOCK();
-}
-
-void GC_unprotect_range(addr, len)
-ptr_t addr;
-word len;
-{
- struct hblk * start_block;
- struct hblk * end_block;
- register struct hblk *h;
- ptr_t obj_start;
-
- if (!GC_incremental) return;
- obj_start = GC_base(addr);
- if (obj_start == 0) return;
- if (GC_base(addr + len - 1) != obj_start) {
- ABORT("GC_unprotect_range(range bigger than object)");
- }
- start_block = (struct hblk *)((word)addr & ~(GC_page_size - 1));
- end_block = (struct hblk *)((word)(addr + len - 1) & ~(GC_page_size - 1));
- end_block += GC_page_size/HBLKSIZE - 1;
- for (h = start_block; h <= end_block; h++) {
- register word index = PHT_HASH(h);
-
- set_pht_entry_from_index(GC_dirty_pages, index);
- }
- UNPROTECT(start_block,
- ((ptr_t)end_block - (ptr_t)start_block) + HBLKSIZE);
-}
-
-#if !defined(MSWIN32) && !defined(LINUX_THREADS)
-/* Replacement for UNIX system call. */
-/* Other calls that write to the heap */
-/* should be handled similarly. */
-# if defined(__STDC__) && !defined(SUNOS4)
-# include <unistd.h>
-# include <sys/uio.h>
- ssize_t read(int fd, void *buf, size_t nbyte)
-# else
-# ifndef LINT
- int read(fd, buf, nbyte)
-# else
- int GC_read(fd, buf, nbyte)
-# endif
- int fd;
- char *buf;
- int nbyte;
-# endif
-{
- int result;
-
- GC_begin_syscall();
- GC_unprotect_range(buf, (word)nbyte);
-# if defined(IRIX5) || defined(LINUX_THREADS)
- /* Indirect system call may not always be easily available. */
- /* We could call _read, but that would interfere with the */
- /* libpthread interception of read. */
- /* On Linux, we have to be careful with the linuxthreads */
- /* read interception. */
- {
- struct iovec iov;
-
- iov.iov_base = buf;
- iov.iov_len = nbyte;
- result = readv(fd, &iov, 1);
- }
-# else
- /* The two zero args at the end of this list are because one
- IA-64 syscall() implementation actually requires six args
- to be passed, even though they aren't always used. */
- result = syscall(SYS_read, fd, buf, nbyte, 0, 0);
-# endif
- GC_end_syscall();
- return(result);
-}
-#endif /* !MSWIN32 && !LINUX */
-
-#ifdef USE_LD_WRAP
- /* We use the GNU ld call wrapping facility. */
- /* This requires that the linker be invoked with "--wrap read". */
- /* This can be done by passing -Wl,"--wrap read" to gcc. */
- /* I'm not sure that this actually wraps whatever version of read */
- /* is called by stdio. That code also mentions __read. */
-# include <unistd.h>
- ssize_t __wrap_read(int fd, void *buf, size_t nbyte)
- {
- int result;
-
- GC_begin_syscall();
- GC_unprotect_range(buf, (word)nbyte);
- result = __real_read(fd, buf, nbyte);
- GC_end_syscall();
- return(result);
- }
-
- /* We should probably also do this for __read, or whatever stdio */
- /* actually calls. */
-#endif
-
-/*ARGSUSED*/
-GC_bool GC_page_was_ever_dirty(h)
-struct hblk *h;
-{
- return(TRUE);
-}
-
-/* Reset the n pages starting at h to "was never dirty" status. */
-/*ARGSUSED*/
-void GC_is_fresh(h, n)
-struct hblk *h;
-word n;
-{
-}
-
-# endif /* MPROTECT_VDB */
-
-# ifdef PROC_VDB
-
-/*
- * See DEFAULT_VDB for interface descriptions.
- */
-
-/*
- * This implementaion assumes a Solaris 2.X like /proc pseudo-file-system
- * from which we can read page modified bits. This facility is far from
- * optimal (e.g. we would like to get the info for only some of the
- * address space), but it avoids intercepting system calls.
- */
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/signal.h>
-#include <sys/fault.h>
-#include <sys/syscall.h>
-#include <sys/procfs.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#define INITIAL_BUF_SZ 4096
-word GC_proc_buf_size = INITIAL_BUF_SZ;
-char *GC_proc_buf;
-
-#ifdef SOLARIS_THREADS
-/* We don't have exact sp values for threads. So we count on */
-/* occasionally declaring stack pages to be fresh. Thus we */
-/* need a real implementation of GC_is_fresh. We can't clear */
-/* entries in GC_written_pages, since that would declare all */
-/* pages with the given hash address to be fresh. */
-# define MAX_FRESH_PAGES 8*1024 /* Must be power of 2 */
- struct hblk ** GC_fresh_pages; /* A direct mapped cache. */
- /* Collisions are dropped. */
-
-# define FRESH_PAGE_SLOT(h) (divHBLKSZ((word)(h)) & (MAX_FRESH_PAGES-1))
-# define ADD_FRESH_PAGE(h) \
- GC_fresh_pages[FRESH_PAGE_SLOT(h)] = (h)
-# define PAGE_IS_FRESH(h) \
- (GC_fresh_pages[FRESH_PAGE_SLOT(h)] == (h) && (h) != 0)
-#endif
-
-/* Add all pages in pht2 to pht1 */
-void GC_or_pages(pht1, pht2)
-page_hash_table pht1, pht2;
-{
- register int i;
-
- for (i = 0; i < PHT_SIZE; i++) pht1[i] |= pht2[i];
-}
-
-int GC_proc_fd;
-
-void GC_dirty_init()
-{
- int fd;
- char buf[30];
-
- GC_dirty_maintained = TRUE;
- if (GC_words_allocd != 0 || GC_words_allocd_before_gc != 0) {
- register int i;
-
- for (i = 0; i < PHT_SIZE; i++) GC_written_pages[i] = (word)(-1);
-# ifdef PRINTSTATS
- GC_printf1("Allocated words:%lu:all pages may have been written\n",
- (unsigned long)
- (GC_words_allocd + GC_words_allocd_before_gc));
-# endif
- }
- sprintf(buf, "/proc/%d", getpid());
- fd = open(buf, O_RDONLY);
- if (fd < 0) {
- ABORT("/proc open failed");
- }
- GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0);
- close(fd);
- if (GC_proc_fd < 0) {
- ABORT("/proc ioctl failed");
- }
- GC_proc_buf = GC_scratch_alloc(GC_proc_buf_size);
-# ifdef SOLARIS_THREADS
- GC_fresh_pages = (struct hblk **)
- GC_scratch_alloc(MAX_FRESH_PAGES * sizeof (struct hblk *));
- if (GC_fresh_pages == 0) {
- GC_err_printf0("No space for fresh pages\n");
- EXIT();
- }
- BZERO(GC_fresh_pages, MAX_FRESH_PAGES * sizeof (struct hblk *));
-# endif
-}
-
-/* Ignore write hints. They don't help us here. */
-/*ARGSUSED*/
-void GC_write_hint(h)
-struct hblk *h;
-{
-}
-
-#ifdef SOLARIS_THREADS
-# define READ(fd,buf,nbytes) syscall(SYS_read, fd, buf, nbytes)
-#else
-# define READ(fd,buf,nbytes) read(fd, buf, nbytes)
-#endif
-
-void GC_read_dirty()
-{
- unsigned long ps, np;
- int nmaps;
- ptr_t vaddr;
- struct prasmap * map;
- char * bufp;
- ptr_t current_addr, limit;
- int i;
-int dummy;
-
- BZERO(GC_grungy_pages, (sizeof GC_grungy_pages));
-
- bufp = GC_proc_buf;
- if (READ(GC_proc_fd, bufp, GC_proc_buf_size) <= 0) {
-# ifdef PRINTSTATS
- GC_printf1("/proc read failed: GC_proc_buf_size = %lu\n",
- GC_proc_buf_size);
-# endif
- {
- /* Retry with larger buffer. */
- word new_size = 2 * GC_proc_buf_size;
- char * new_buf = GC_scratch_alloc(new_size);
-
- if (new_buf != 0) {
- GC_proc_buf = bufp = new_buf;
- GC_proc_buf_size = new_size;
- }
- if (syscall(SYS_read, GC_proc_fd, bufp, GC_proc_buf_size) <= 0) {
- WARN("Insufficient space for /proc read\n", 0);
- /* Punt: */
- memset(GC_grungy_pages, 0xff, sizeof (page_hash_table));
- memset(GC_written_pages, 0xff, sizeof(page_hash_table));
-# ifdef SOLARIS_THREADS
- BZERO(GC_fresh_pages,
- MAX_FRESH_PAGES * sizeof (struct hblk *));
-# endif
- return;
- }
- }
- }
- /* Copy dirty bits into GC_grungy_pages */
- nmaps = ((struct prpageheader *)bufp) -> pr_nmap;
- /* printf( "nmaps = %d, PG_REFERENCED = %d, PG_MODIFIED = %d\n",
- nmaps, PG_REFERENCED, PG_MODIFIED); */
- bufp = bufp + sizeof(struct prpageheader);
- for (i = 0; i < nmaps; i++) {
- map = (struct prasmap *)bufp;
- vaddr = (ptr_t)(map -> pr_vaddr);
- ps = map -> pr_pagesize;
- np = map -> pr_npage;
- /* printf("vaddr = 0x%X, ps = 0x%X, np = 0x%X\n", vaddr, ps, np); */
- limit = vaddr + ps * np;
- bufp += sizeof (struct prasmap);
- for (current_addr = vaddr;
- current_addr < limit; current_addr += ps){
- if ((*bufp++) & PG_MODIFIED) {
- register struct hblk * h = (struct hblk *) current_addr;
-
- while ((ptr_t)h < current_addr + ps) {
- register word index = PHT_HASH(h);
-
- set_pht_entry_from_index(GC_grungy_pages, index);
-# ifdef SOLARIS_THREADS
- {
- register int slot = FRESH_PAGE_SLOT(h);
-
- if (GC_fresh_pages[slot] == h) {
- GC_fresh_pages[slot] = 0;
- }
- }
-# endif
- h++;
- }
- }
- }
- bufp += sizeof(long) - 1;
- bufp = (char *)((unsigned long)bufp & ~(sizeof(long)-1));
- }
- /* Update GC_written_pages. */
- GC_or_pages(GC_written_pages, GC_grungy_pages);
-# ifdef SOLARIS_THREADS
- /* Make sure that old stacks are considered completely clean */
- /* unless written again. */
- GC_old_stacks_are_fresh();
-# endif
-}
-
-#undef READ
-
-GC_bool GC_page_was_dirty(h)
-struct hblk *h;
-{
- register word index = PHT_HASH(h);
- register GC_bool result;
-
- result = get_pht_entry_from_index(GC_grungy_pages, index);
-# ifdef SOLARIS_THREADS
- if (result && PAGE_IS_FRESH(h)) result = FALSE;
- /* This happens only if page was declared fresh since */
- /* the read_dirty call, e.g. because it's in an unused */
- /* thread stack. It's OK to treat it as clean, in */
- /* that case. And it's consistent with */
- /* GC_page_was_ever_dirty. */
-# endif
- return(result);
-}
-
-GC_bool GC_page_was_ever_dirty(h)
-struct hblk *h;
-{
- register word index = PHT_HASH(h);
- register GC_bool result;
-
- result = get_pht_entry_from_index(GC_written_pages, index);
-# ifdef SOLARIS_THREADS
- if (result && PAGE_IS_FRESH(h)) result = FALSE;
-# endif
- return(result);
-}
-
-/* Caller holds allocation lock. */
-void GC_is_fresh(h, n)
-struct hblk *h;
-word n;
-{
-
- register word index;
-
-# ifdef SOLARIS_THREADS
- register word i;
-
- if (GC_fresh_pages != 0) {
- for (i = 0; i < n; i++) {
- ADD_FRESH_PAGE(h + i);
- }
- }
-# endif
-}
-
-# endif /* PROC_VDB */
-
-
-# ifdef PCR_VDB
-
-# include "vd/PCR_VD.h"
-
-# define NPAGES (32*1024) /* 128 MB */
-
-PCR_VD_DB GC_grungy_bits[NPAGES];
-
-ptr_t GC_vd_base; /* Address corresponding to GC_grungy_bits[0] */
- /* HBLKSIZE aligned. */
-
-void GC_dirty_init()
-{
- GC_dirty_maintained = TRUE;
- /* For the time being, we assume the heap generally grows up */
- GC_vd_base = GC_heap_sects[0].hs_start;
- if (GC_vd_base == 0) {
- ABORT("Bad initial heap segment");
- }
- if (PCR_VD_Start(HBLKSIZE, GC_vd_base, NPAGES*HBLKSIZE)
- != PCR_ERes_okay) {
- ABORT("dirty bit initialization failed");
- }
-}
-
-void GC_read_dirty()
-{
- /* lazily enable dirty bits on newly added heap sects */
- {
- static int onhs = 0;
- int nhs = GC_n_heap_sects;
- for( ; onhs < nhs; onhs++ ) {
- PCR_VD_WriteProtectEnable(
- GC_heap_sects[onhs].hs_start,
- GC_heap_sects[onhs].hs_bytes );
- }
- }
-
-
- if (PCR_VD_Clear(GC_vd_base, NPAGES*HBLKSIZE, GC_grungy_bits)
- != PCR_ERes_okay) {
- ABORT("dirty bit read failed");
- }
-}
-
-GC_bool GC_page_was_dirty(h)
-struct hblk *h;
-{
- if((ptr_t)h < GC_vd_base || (ptr_t)h >= GC_vd_base + NPAGES*HBLKSIZE) {
- return(TRUE);
- }
- return(GC_grungy_bits[h - (struct hblk *)GC_vd_base] & PCR_VD_DB_dirtyBit);
-}
-
-/*ARGSUSED*/
-void GC_write_hint(h)
-struct hblk *h;
-{
- PCR_VD_WriteProtectDisable(h, HBLKSIZE);
- PCR_VD_WriteProtectEnable(h, HBLKSIZE);
-}
-
-# endif /* PCR_VDB */
-
-/*
- * Call stack save code for debugging.
- * Should probably be in mach_dep.c, but that requires reorganization.
- */
-#if defined(SPARC)
-# if defined(LINUX)
-struct frame {
- long fr_local[8];
- long fr_arg[6];
- struct frame *fr_savfp;
- long fr_savpc;
-# ifndef __arch64__
- char *fr_stret;
-# endif
- long fr_argd[6];
- long fr_argx[0];
-};
-# else
-# if defined(SUNOS4)
-# include <machine/frame.h>
-# else
-# if defined (DRSNX)
-# include <sys/sparc/frame.h>
-# else
-# if defined(OPENBSD)
-# include <frame.h>
-# else
-# include <sys/frame.h>
-# endif
-# endif
-# endif
-# endif
-# if NARGS > 6
- --> We only know how to to get the first 6 arguments
-# endif
-
-#ifdef SAVE_CALL_CHAIN
-/* Fill in the pc and argument information for up to NFRAMES of my */
-/* callers. Ignore my frame and my callers frame. */
-
-#ifdef OPENBSD
-# define FR_SAVFP fr_fp
-# define FR_SAVPC fr_pc
-#else
-# define FR_SAVFP fr_savfp
-# define FR_SAVPC fr_savpc
-#endif
-
-#if defined(SPARC) && (defined(__arch64__) || defined(__sparcv9))
-#define BIAS 2047
-#else
-#define BIAS 0
-#endif
-
-void GC_save_callers (info)
-struct callinfo info[NFRAMES];
-{
- struct frame *frame;
- struct frame *fp;
- int nframes = 0;
- word GC_save_regs_in_stack();
-
- frame = (struct frame *) GC_save_regs_in_stack ();
-
- for (fp = (struct frame *)((long) frame -> FR_SAVFP + BIAS);
- fp != 0 && nframes < NFRAMES;
- fp = (struct frame *)((long) fp -> FR_SAVFP + BIAS), nframes++) {
- register int i;
-
- info[nframes].ci_pc = fp->FR_SAVPC;
- for (i = 0; i < NARGS; i++) {
- info[nframes].ci_arg[i] = ~(fp->fr_arg[i]);
- }
- }
- if (nframes < NFRAMES) info[nframes].ci_pc = 0;
-}
-
-#endif /* SAVE_CALL_CHAIN */
-#endif /* SPARC */
-
-
-
diff --git a/boehm-gc/pc_excludes b/boehm-gc/pc_excludes
deleted file mode 100644
index 52da43110cf..00000000000
--- a/boehm-gc/pc_excludes
+++ /dev/null
@@ -1,15 +0,0 @@
-solaris_threads.c
-pcr_interface.c
-real_malloc.c
-mips_mach_dep.s
-rs6000_mach_dep.s
-alpha_mach_dep.s
-sparc_mach_dep.s
-PCR-Makefile
-setjmp_t.c
-callprocs
-gc.man
-pc_excludes
-barrett_diagram
-include/gc_c++.h
-include/gc_inline.h \ No newline at end of file
diff --git a/boehm-gc/pcr_interface.c b/boehm-gc/pcr_interface.c
deleted file mode 100644
index 4c950933704..00000000000
--- a/boehm-gc/pcr_interface.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, February 7, 1996 11:09 am PST */
-# include "gc_priv.h"
-
-# ifdef PCR
-/*
- * Note that POSIX PCR requires an ANSI C compiler. Hence we are allowed
- * to make the same assumption here.
- * We wrap all of the allocator functions to avoid questions of
- * compatibility between the prototyped and nonprototyped versions of the f
- */
-# include "config/PCR_StdTypes.h"
-# include "mm/PCR_MM.h"
-# include <errno.h>
-
-# define MY_MAGIC 17L
-# define MY_DEBUGMAGIC 42L
-
-void * GC_AllocProc(size_t size, PCR_Bool ptrFree, PCR_Bool clear )
-{
- if (ptrFree) {
- void * result = (void *)GC_malloc_atomic(size);
- if (clear && result != 0) BZERO(result, size);
- return(result);
- } else {
- return((void *)GC_malloc(size));
- }
-}
-
-void * GC_DebugAllocProc(size_t size, PCR_Bool ptrFree, PCR_Bool clear )
-{
- if (ptrFree) {
- void * result = (void *)GC_debug_malloc_atomic(size, __FILE__,
- __LINE__);
- if (clear && result != 0) BZERO(result, size);
- return(result);
- } else {
- return((void *)GC_debug_malloc(size, __FILE__, __LINE__));
- }
-}
-
-# define GC_ReallocProc GC_realloc
-void * GC_DebugReallocProc(void * old_object, size_t new_size_in_bytes)
-{
- return(GC_debug_realloc(old_object, new_size_in_bytes, __FILE__, __LINE__));
-}
-
-# define GC_FreeProc GC_free
-# define GC_DebugFreeProc GC_debug_free
-
-typedef struct {
- PCR_ERes (*ed_proc)(void *p, size_t size, PCR_Any data);
- GC_bool ed_pointerfree;
- PCR_ERes ed_fail_code;
- PCR_Any ed_client_data;
-} enumerate_data;
-
-void GC_enumerate_block(h, ed)
-register struct hblk *h;
-enumerate_data * ed;
-{
- register hdr * hhdr;
- register int sz;
- word *p;
- word * lim;
-
- hhdr = HDR(h);
- sz = hhdr -> hb_sz;
- if (sz >= 0 && ed -> ed_pointerfree
- || sz <= 0 && !(ed -> ed_pointerfree)) return;
- if (sz < 0) sz = -sz;
- lim = (word *)(h+1) - sz;
- p = (word *)h;
- do {
- if (PCR_ERes_IsErr(ed -> ed_fail_code)) return;
- ed -> ed_fail_code =
- (*(ed -> ed_proc))(p, WORDS_TO_BYTES(sz), ed -> ed_client_data);
- p+= sz;
- } while (p <= lim);
-}
-
-struct PCR_MM_ProcsRep * GC_old_allocator = 0;
-
-PCR_ERes GC_EnumerateProc(
- PCR_Bool ptrFree,
- PCR_ERes (*proc)(void *p, size_t size, PCR_Any data),
- PCR_Any data
-)
-{
- enumerate_data ed;
-
- ed.ed_proc = proc;
- ed.ed_pointerfree = ptrFree;
- ed.ed_fail_code = PCR_ERes_okay;
- ed.ed_client_data = data;
- GC_apply_to_all_blocks(GC_enumerate_block, &ed);
- if (ed.ed_fail_code != PCR_ERes_okay) {
- return(ed.ed_fail_code);
- } else {
- /* Also enumerate objects allocated by my predecessors */
- return((*(GC_old_allocator->mmp_enumerate))(ptrFree, proc, data));
- }
-}
-
-void GC_DummyFreeProc(void *p) {}
-
-void GC_DummyShutdownProc(void) {}
-
-struct PCR_MM_ProcsRep GC_Rep = {
- MY_MAGIC,
- GC_AllocProc,
- GC_ReallocProc,
- GC_DummyFreeProc, /* mmp_free */
- GC_FreeProc, /* mmp_unsafeFree */
- GC_EnumerateProc,
- GC_DummyShutdownProc /* mmp_shutdown */
-};
-
-struct PCR_MM_ProcsRep GC_DebugRep = {
- MY_DEBUGMAGIC,
- GC_DebugAllocProc,
- GC_DebugReallocProc,
- GC_DummyFreeProc, /* mmp_free */
- GC_DebugFreeProc, /* mmp_unsafeFree */
- GC_EnumerateProc,
- GC_DummyShutdownProc /* mmp_shutdown */
-};
-
-GC_bool GC_use_debug = 0;
-
-void GC_pcr_install()
-{
- PCR_MM_Install((GC_use_debug? &GC_DebugRep : &GC_Rep), &GC_old_allocator);
-}
-
-PCR_ERes
-PCR_GC_Setup(void)
-{
- return PCR_ERes_okay;
-}
-
-PCR_ERes
-PCR_GC_Run(void)
-{
-
- if( !PCR_Base_TestPCRArg("-nogc") ) {
- GC_quiet = ( PCR_Base_TestPCRArg("-gctrace") ? 0 : 1 );
- GC_use_debug = (GC_bool)PCR_Base_TestPCRArg("-debug_alloc");
- GC_init();
- if( !PCR_Base_TestPCRArg("-nogc_incremental") ) {
- /*
- * awful hack to test whether VD is implemented ...
- */
- if( PCR_VD_Start( 0, NIL, 0) != PCR_ERes_FromErr(ENOSYS) ) {
- GC_enable_incremental();
- }
- }
- }
- return PCR_ERes_okay;
-}
-
-# endif
diff --git a/boehm-gc/ptr_chck.c b/boehm-gc/ptr_chck.c
deleted file mode 100644
index f3451ee6f8c..00000000000
--- a/boehm-gc/ptr_chck.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, September 19, 1995 1:26 pm PDT */
-
-#include "gc_priv.h"
-#include "gc_mark.h"
-
-#ifdef __STDC__
-void GC_default_same_obj_print_proc(GC_PTR p, GC_PTR q)
-#else
-void GC_default_same_obj_print_proc (p, q)
-GC_PTR p, q;
-#endif
-{
- GC_err_printf2("0x%lx and 0x%lx are not in the same object\n",
- (unsigned long)p, (unsigned long)q);
- ABORT("GC_same_obj test failed");
-}
-
-void (*GC_same_obj_print_proc) GC_PROTO((GC_PTR, GC_PTR))
- = GC_default_same_obj_print_proc;
-
-/* Check that p and q point to the same object. Call */
-/* *GC_same_obj_print_proc if they don't. */
-/* Returns the first argument. (Return value may be hard */
-/* to use,due to typing issues. But if we had a suitable */
-/* preprocessor ...) */
-/* Succeeds if neither p nor q points to the heap. */
-/* We assume this is performance critical. (It shouldn't */
-/* be called by production code, but this can easily make */
-/* debugging intolerably slow.) */
-#ifdef __STDC__
- GC_PTR GC_same_obj(register void *p, register void *q)
-#else
- GC_PTR GC_same_obj(p, q)
- register char *p, *q;
-#endif
-{
- register struct hblk *h;
- register hdr *hhdr;
- register ptr_t base, limit;
- register word sz;
-
- if (!GC_is_initialized) GC_init();
- hhdr = HDR((word)p);
- if (hhdr == 0) {
- if (divHBLKSZ((word)p) != divHBLKSZ((word)q)
- && HDR((word)q) != 0) {
- goto fail;
- }
- return(p);
- }
- /* If it's a pointer to the middle of a large object, move it */
- /* to the beginning. */
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- h = HBLKPTR(p) - (word)hhdr;
- hhdr = HDR(h);
- while (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- h = FORWARDED_ADDR(h, hhdr);
- hhdr = HDR(h);
- }
- limit = (ptr_t)((word *)h + HDR_WORDS + hhdr -> hb_sz);
- if ((ptr_t)p >= limit || (ptr_t)q >= limit || (ptr_t)q < (ptr_t)h ) {
- goto fail;
- }
- return(p);
- }
- sz = WORDS_TO_BYTES(hhdr -> hb_sz);
- if (sz > WORDS_TO_BYTES(MAXOBJSZ)) {
- base = (ptr_t)HBLKPTR(p);
- limit = base + sz;
- if ((ptr_t)p >= limit) {
- goto fail;
- }
- } else {
-# ifdef ALL_INTERIOR_POINTERS
- register map_entry_type map_entry;
- register int pdispl;
-
- pdispl = HBLKDISPL(p);
- map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl);
- if (map_entry == OBJ_INVALID) {
- goto fail;
- } else {
- base = (char *)((word)p & ~(WORDS_TO_BYTES(1) - 1));
- base -= WORDS_TO_BYTES(map_entry);
- }
-# else
- register int offset = HBLKDISPL(p) - HDR_BYTES;
- register word correction = offset % sz;
-
- if (HBLKPTR(p) != HBLKPTR(q)) {
- /* The following computation otherwise fails in this case */
- goto fail;
- }
- base = (ptr_t)p - correction;
-# endif
- limit = base + sz;
- }
- /* [base, limit) delimits the object containing p, if any. */
- /* If p is not inside a valid object, then either q is */
- /* also outside any valid object, or it is outside */
- /* [base, limit). */
- if ((ptr_t)q >= limit || (ptr_t)q < base) {
- goto fail;
- }
- return(p);
-fail:
- (*GC_same_obj_print_proc)((ptr_t)p, (ptr_t)q);
- return(p);
-}
-
-#ifdef __STDC__
-void GC_default_is_valid_displacement_print_proc (GC_PTR p)
-#else
-void GC_default_is_valid_displacement_print_proc (p)
-GC_PTR p;
-#endif
-{
- GC_err_printf1("0x%lx does not point to valid object displacement\n",
- (unsigned long)p);
- ABORT("GC_is_valid_displacement test failed");
-}
-
-void (*GC_is_valid_displacement_print_proc) GC_PROTO((GC_PTR)) =
- GC_default_is_valid_displacement_print_proc;
-
-/* Check that if p is a pointer to a heap page, then it points to */
-/* a valid displacement within a heap object. */
-/* Uninteresting with ALL_INTERIOR_POINTERS. */
-/* Always returns its argument. */
-/* Note that we don't lock, since nothing relevant about the header */
-/* should change while we have a valid object pointer to the block. */
-#ifdef __STDC__
- void * GC_is_valid_displacement(void *p)
-#else
- char *GC_is_valid_displacement(p)
- char *p;
-#endif
-{
- register hdr *hhdr;
- register word pdispl;
- register struct hblk *h;
- register map_entry_type map_entry;
- register word sz;
-
- if (!GC_is_initialized) GC_init();
- hhdr = HDR((word)p);
- if (hhdr == 0) return(p);
- h = HBLKPTR(p);
-# ifdef ALL_INTERIOR_POINTERS
- while (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- h = FORWARDED_ADDR(h, hhdr);
- hhdr = HDR(h);
- }
-# endif
- if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) {
- goto fail;
- }
- sz = WORDS_TO_BYTES(hhdr -> hb_sz);
- pdispl = HBLKDISPL(p);
- map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl);
- if (map_entry == OBJ_INVALID
- || sz > MAXOBJSZ && (ptr_t)p >= (ptr_t)h + sz) {
- goto fail;
- }
- return(p);
-fail:
- (*GC_is_valid_displacement_print_proc)((ptr_t)p);
- return(p);
-}
-
-#ifdef __STDC__
-void GC_default_is_visible_print_proc(GC_PTR p)
-#else
-void GC_default_is_visible_print_proc(p)
-GC_PTR p;
-#endif
-{
- GC_err_printf1("0x%lx is not a GC visible pointer location\n",
- (unsigned long)p);
- ABORT("GC_is_visible test failed");
-}
-
-void (*GC_is_visible_print_proc) GC_PROTO((GC_PTR p)) =
- GC_default_is_visible_print_proc;
-
-/* Could p be a stack address? */
-GC_bool GC_on_stack(p)
-ptr_t p;
-{
-# ifdef THREADS
- return(TRUE);
-# else
- int dummy;
-# ifdef STACK_GROWS_DOWN
- if ((ptr_t)p >= (ptr_t)(&dummy) && (ptr_t)p < GC_stackbottom ) {
- return(TRUE);
- }
-# else
- if ((ptr_t)p <= (ptr_t)(&dummy) && (ptr_t)p > GC_stackbottom ) {
- return(TRUE);
- }
-# endif
- return(FALSE);
-# endif
-}
-
-/* Check that p is visible */
-/* to the collector as a possibly pointer containing location. */
-/* If it isn't invoke *GC_is_visible_print_proc. */
-/* Returns the argument in all cases. May erroneously succeed */
-/* in hard cases. (This is intended for debugging use with */
-/* untyped allocations. The idea is that it should be possible, though */
-/* slow, to add such a call to all indirect pointer stores.) */
-/* Currently useless for multithreaded worlds. */
-#ifdef __STDC__
- void * GC_is_visible(void *p)
-#else
- char *GC_is_visible(p)
- char *p;
-#endif
-{
- register hdr *hhdr;
-
- if ((word)p & (ALIGNMENT - 1)) goto fail;
- if (!GC_is_initialized) GC_init();
-# ifdef THREADS
- hhdr = HDR((word)p);
- if (hhdr != 0 && GC_base(p) == 0) {
- goto fail;
- } else {
- /* May be inside thread stack. We can't do much. */
- return(p);
- }
-# else
- /* Check stack first: */
- if (GC_on_stack(p)) return(p);
- hhdr = HDR((word)p);
- if (hhdr == 0) {
- GC_bool result;
-
- if (GC_is_static_root(p)) return(p);
- /* Else do it again correctly: */
-# if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(PCR)) \
- && !defined(SRC_M3)
- DISABLE_SIGNALS();
- GC_register_dynamic_libraries();
- result = GC_is_static_root(p);
- ENABLE_SIGNALS();
- if (result) return(p);
-# endif
- goto fail;
- } else {
- /* p points to the heap. */
- word descr;
- ptr_t base = GC_base(p); /* Should be manually inlined? */
-
- if (base == 0) goto fail;
- if (HBLKPTR(base) != HBLKPTR(p)) hhdr = HDR((word)p);
- descr = hhdr -> hb_descr;
- retry:
- switch(descr & DS_TAGS) {
- case DS_LENGTH:
- if ((word)((ptr_t)p - (ptr_t)base) > (word)descr) goto fail;
- break;
- case DS_BITMAP:
- if ((ptr_t)p - (ptr_t)base
- >= WORDS_TO_BYTES(BITMAP_BITS)
- || ((word)p & (sizeof(word) - 1))) goto fail;
- if (!((1 << (WORDSZ - ((ptr_t)p - (ptr_t)base) - 1))
- & descr)) goto fail;
- break;
- case DS_PROC:
- /* We could try to decipher this partially. */
- /* For now we just punt. */
- break;
- case DS_PER_OBJECT:
- descr = *(word *)((ptr_t)base + (descr & ~DS_TAGS));
- goto retry;
- }
- return(p);
- }
-# endif
-fail:
- (*GC_is_visible_print_proc)((ptr_t)p);
- return(p);
-}
-
-
-GC_PTR GC_pre_incr (p, how_much)
-GC_PTR *p;
-size_t how_much;
-{
- GC_PTR initial = *p;
- GC_PTR result = GC_same_obj((GC_PTR)((word)initial + how_much), initial);
-
-# ifndef ALL_INTERIOR_POINTERS
- (void) GC_is_valid_displacement(result);
-# endif
- return (*p = result);
-}
-
-GC_PTR GC_post_incr (p, how_much)
-GC_PTR *p;
-size_t how_much;
-{
- GC_PTR initial = *p;
- GC_PTR result = GC_same_obj((GC_PTR)((word)initial + how_much), initial);
-
-# ifndef ALL_INTERIOR_POINTERS
- (void) GC_is_valid_displacement(result);
-# endif
- *p = result;
- return(initial);
-}
diff --git a/boehm-gc/real_malloc.c b/boehm-gc/real_malloc.c
deleted file mode 100644
index dece9fdc09c..00000000000
--- a/boehm-gc/real_malloc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, May 19, 1994 2:04 pm PDT */
-
-
-# ifdef PCR
-/*
- * This definition should go in its own file that includes no other
- * header files. Otherwise, we risk not getting the underlying system
- * malloc.
- */
-# define PCR_NO_RENAME
-# include <stdlib.h>
-
-# ifdef __STDC__
- char * real_malloc(size_t size)
-# else
- char * real_malloc()
- int size;
-# endif
-{
- return((char *)malloc(size));
-}
-#endif /* PCR */
-
diff --git a/boehm-gc/reclaim.c b/boehm-gc/reclaim.c
deleted file mode 100644
index 4ace1107d62..00000000000
--- a/boehm-gc/reclaim.c
+++ /dev/null
@@ -1,923 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
- * Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#include <stdio.h>
-#include "gc_priv.h"
-
-signed_word GC_mem_found = 0;
- /* Number of words of memory reclaimed */
-
-static void report_leak(p, sz)
-ptr_t p;
-word sz;
-{
- if (HDR(p) -> hb_obj_kind == PTRFREE) {
- GC_err_printf0("Leaked atomic object at ");
- } else {
- GC_err_printf0("Leaked composite object at ");
- }
- GC_print_heap_obj(p);
- GC_err_printf0("\n");
-}
-
-# define FOUND_FREE(hblk, word_no) \
- { \
- report_leak((ptr_t)hblk + WORDS_TO_BYTES(word_no), \
- HDR(hblk) -> hb_sz); \
- }
-
-/*
- * reclaim phase
- *
- */
-
-
-/*
- * Test whether a block is completely empty, i.e. contains no marked
- * objects. This does not require the block to be in physical
- * memory.
- */
-
-GC_bool GC_block_empty(hhdr)
-register hdr * hhdr;
-{
- register word *p = (word *)(&(hhdr -> hb_marks[0]));
- register word * plim =
- (word *)(&(hhdr -> hb_marks[MARK_BITS_SZ]));
- while (p < plim) {
- if (*p++) return(FALSE);
- }
- return(TRUE);
-}
-
-/* The following functions sometimes return a DONT_KNOW value. */
-#define DONT_KNOW 2
-
-#ifdef SMALL_CONFIG
-# define GC_block_nearly_full1(hhdr, pat1) DONT_KNOW
-# define GC_block_nearly_full3(hhdr, pat1, pat2) DONT_KNOW
-# define GC_block_nearly_full(hhdr) DONT_KNOW
-#else
-
-/*
- * Test whether nearly all of the mark words consist of the same
- * repeating pattern.
- */
-#define FULL_THRESHOLD (MARK_BITS_SZ/16)
-
-GC_bool GC_block_nearly_full1(hhdr, pat1)
-hdr *hhdr;
-word pat1;
-{
- unsigned i;
- unsigned misses = 0;
- GC_ASSERT((MARK_BITS_SZ & 1) == 0);
- for (i = 0; i < MARK_BITS_SZ; ++i) {
- if ((hhdr -> hb_marks[i] | ~pat1) != ONES) {
- if (++misses > FULL_THRESHOLD) return FALSE;
- }
- }
- return TRUE;
-}
-
-/*
- * Test whether the same repeating 3 word pattern occurs in nearly
- * all the mark bit slots.
- * This is used as a heuristic, so we're a bit sloppy and ignore
- * the last one or two words.
- */
-GC_bool GC_block_nearly_full3(hhdr, pat1, pat2, pat3)
-hdr *hhdr;
-word pat1, pat2, pat3;
-{
- unsigned i;
- unsigned misses = 0;
-
- if (MARK_BITS_SZ < 4) {
- return DONT_KNOW;
- }
- for (i = 0; i < MARK_BITS_SZ - 2; i += 3) {
- if ((hhdr -> hb_marks[i] | ~pat1) != ONES) {
- if (++misses > FULL_THRESHOLD) return FALSE;
- }
- if ((hhdr -> hb_marks[i+1] | ~pat2) != ONES) {
- if (++misses > FULL_THRESHOLD) return FALSE;
- }
- if ((hhdr -> hb_marks[i+2] | ~pat3) != ONES) {
- if (++misses > FULL_THRESHOLD) return FALSE;
- }
- }
- return TRUE;
-}
-
-/* Check whether a small object block is nearly full by looking at only */
-/* the mark bits. */
-/* We manually precomputed the mark bit patterns that need to be */
-/* checked for, and we give up on the ones that are unlikely to occur, */
-/* or have period > 3. */
-/* This would be a lot easier with a mark bit per object instead of per */
-/* word, but that would rewuire computing object numbers in the mark */
-/* loop, which would require different data structures ... */
-GC_bool GC_block_nearly_full(hhdr)
-hdr *hhdr;
-{
- int sz = hhdr -> hb_sz;
-
-# if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
- return DONT_KNOW; /* Shouldn't be used in any standard config. */
-# endif
- if (0 != HDR_WORDS) return DONT_KNOW;
- /* Also shouldn't happen */
-# if CPP_WORDSZ == 32
- switch(sz) {
- case 1:
- return GC_block_nearly_full1(hhdr, 0xffffffffl);
- case 2:
- return GC_block_nearly_full1(hhdr, 0x55555555l);
- case 4:
- return GC_block_nearly_full1(hhdr, 0x11111111l);
- case 6:
- return GC_block_nearly_full3(hhdr, 0x41041041l,
- 0x10410410l,
- 0x04104104l);
- case 8:
- return GC_block_nearly_full1(hhdr, 0x01010101l);
- case 12:
- return GC_block_nearly_full3(hhdr, 0x01001001l,
- 0x10010010l,
- 0x00100100l);
- case 16:
- return GC_block_nearly_full1(hhdr, 0x00010001l);
- case 32:
- return GC_block_nearly_full1(hhdr, 0x00000001l);
- default:
- return DONT_KNOW;
- }
-# endif
-# if CPP_WORDSZ == 64
- switch(sz) {
- case 1:
- return GC_block_nearly_full1(hhdr, 0xffffffffffffffffl);
- case 2:
- return GC_block_nearly_full1(hhdr, 0x5555555555555555l);
- case 4:
- return GC_block_nearly_full1(hhdr, 0x1111111111111111l);
- case 6:
- return GC_block_nearly_full3(hhdr, 0x1041041041041041l,
- 0x4104104104104104l,
- 0x0410410410410410l);
- case 8:
- return GC_block_nearly_full1(hhdr, 0x0101010101010101l);
- case 12:
- return GC_block_nearly_full3(hhdr, 0x1001001001001001l,
- 0x0100100100100100l,
- 0x0010010010010010l);
- case 16:
- return GC_block_nearly_full1(hhdr, 0x0001000100010001l);
- case 32:
- return GC_block_nearly_full1(hhdr, 0x0000000100000001l);
- default:
- return DONT_KNOW;
- }
-# endif
-}
-#endif /* !SMALL_CONFIG */
-
-# ifdef GATHERSTATS
-# define INCR_WORDS(sz) n_words_found += (sz)
-# else
-# define INCR_WORDS(sz)
-# endif
-/*
- * Restore unmarked small objects in h of size sz to the object
- * free list. Returns the new list.
- * Clears unmarked objects.
- */
-/*ARGSUSED*/
-ptr_t GC_reclaim_clear(hbp, hhdr, sz, list)
-register struct hblk *hbp; /* ptr to current heap block */
-register hdr * hhdr;
-register ptr_t list;
-register word sz;
-{
- register int word_no;
- register word *p, *q, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
-
- p = (word *)(hbp->hb_body);
- word_no = HDR_WORDS;
- plim = (word *)((((word)hbp) + HBLKSIZE)
- - WORDS_TO_BYTES(sz));
-
- /* go through all words in block */
- while( p <= plim ) {
- if( mark_bit_from_hdr(hhdr, word_no) ) {
- p += sz;
- } else {
- INCR_WORDS(sz);
- /* object is available - put on list */
- obj_link(p) = list;
- list = ((ptr_t)p);
- /* Clear object, advance p to next object in the process */
- q = p + sz;
- p++; /* Skip link field */
- while (p < q) {
- *p++ = 0;
- }
- }
- word_no += sz;
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-}
-
-#ifndef SMALL_CONFIG
-
-/*
- * A special case for 2 word composite objects (e.g. cons cells):
- */
-/*ARGSUSED*/
-ptr_t GC_reclaim_clear2(hbp, hhdr, list)
-register struct hblk *hbp; /* ptr to current heap block */
-hdr * hhdr;
-register ptr_t list;
-{
- register word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
- register word mark_word;
- register int i;
-# define DO_OBJ(start_displ) \
- if (!(mark_word & ((word)1 << start_displ))) { \
- p[start_displ] = (word)list; \
- list = (ptr_t)(p+start_displ); \
- p[start_displ+1] = 0; \
- INCR_WORDS(2); \
- }
-
- p = (word *)(hbp->hb_body);
- plim = (word *)(((word)hbp) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- for (i = 0; i < WORDSZ; i += 8) {
- DO_OBJ(0);
- DO_OBJ(2);
- DO_OBJ(4);
- DO_OBJ(6);
- p += 8;
- mark_word >>= 8;
- }
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-# undef DO_OBJ
-}
-
-/*
- * Another special case for 4 word composite objects:
- */
-/*ARGSUSED*/
-ptr_t GC_reclaim_clear4(hbp, hhdr, list)
-register struct hblk *hbp; /* ptr to current heap block */
-hdr * hhdr;
-register ptr_t list;
-{
- register word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
- register word mark_word;
-# define DO_OBJ(start_displ) \
- if (!(mark_word & ((word)1 << start_displ))) { \
- p[start_displ] = (word)list; \
- list = (ptr_t)(p+start_displ); \
- p[start_displ+1] = 0; \
- CLEAR_DOUBLE(p + start_displ + 2); \
- INCR_WORDS(4); \
- }
-
- p = (word *)(hbp->hb_body);
- plim = (word *)(((word)hbp) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- DO_OBJ(0);
- DO_OBJ(4);
- DO_OBJ(8);
- DO_OBJ(12);
- DO_OBJ(16);
- DO_OBJ(20);
- DO_OBJ(24);
- DO_OBJ(28);
-# if CPP_WORDSZ == 64
- DO_OBJ(32);
- DO_OBJ(36);
- DO_OBJ(40);
- DO_OBJ(44);
- DO_OBJ(48);
- DO_OBJ(52);
- DO_OBJ(56);
- DO_OBJ(60);
-# endif
- p += WORDSZ;
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-# undef DO_OBJ
-}
-
-#endif /* !SMALL_CONFIG */
-
-/* The same thing, but don't clear objects: */
-/*ARGSUSED*/
-ptr_t GC_reclaim_uninit(hbp, hhdr, sz, list)
-register struct hblk *hbp; /* ptr to current heap block */
-register hdr * hhdr;
-register ptr_t list;
-register word sz;
-{
- register int word_no;
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
-
- p = (word *)(hbp->hb_body);
- word_no = HDR_WORDS;
- plim = (word *)((((word)hbp) + HBLKSIZE)
- - WORDS_TO_BYTES(sz));
-
- /* go through all words in block */
- while( p <= plim ) {
- if( !mark_bit_from_hdr(hhdr, word_no) ) {
- INCR_WORDS(sz);
- /* object is available - put on list */
- obj_link(p) = list;
- list = ((ptr_t)p);
- }
- p += sz;
- word_no += sz;
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-}
-
-/* Don't really reclaim objects, just check for unmarked ones: */
-/*ARGSUSED*/
-void GC_reclaim_check(hbp, hhdr, sz)
-register struct hblk *hbp; /* ptr to current heap block */
-register hdr * hhdr;
-register word sz;
-{
- register int word_no;
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
-
- p = (word *)(hbp->hb_body);
- word_no = HDR_WORDS;
- plim = (word *)((((word)hbp) + HBLKSIZE)
- - WORDS_TO_BYTES(sz));
-
- /* go through all words in block */
- while( p <= plim ) {
- if( !mark_bit_from_hdr(hhdr, word_no) ) {
- FOUND_FREE(hbp, word_no);
- }
- p += sz;
- word_no += sz;
- }
-}
-
-#ifndef SMALL_CONFIG
-/*
- * Another special case for 2 word atomic objects:
- */
-/*ARGSUSED*/
-ptr_t GC_reclaim_uninit2(hbp, hhdr, list)
-register struct hblk *hbp; /* ptr to current heap block */
-hdr * hhdr;
-register ptr_t list;
-{
- register word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
- register word mark_word;
- register int i;
-# define DO_OBJ(start_displ) \
- if (!(mark_word & ((word)1 << start_displ))) { \
- p[start_displ] = (word)list; \
- list = (ptr_t)(p+start_displ); \
- INCR_WORDS(2); \
- }
-
- p = (word *)(hbp->hb_body);
- plim = (word *)(((word)hbp) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- for (i = 0; i < WORDSZ; i += 8) {
- DO_OBJ(0);
- DO_OBJ(2);
- DO_OBJ(4);
- DO_OBJ(6);
- p += 8;
- mark_word >>= 8;
- }
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-# undef DO_OBJ
-}
-
-/*
- * Another special case for 4 word atomic objects:
- */
-/*ARGSUSED*/
-ptr_t GC_reclaim_uninit4(hbp, hhdr, list)
-register struct hblk *hbp; /* ptr to current heap block */
-hdr * hhdr;
-register ptr_t list;
-{
- register word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
- register word mark_word;
-# define DO_OBJ(start_displ) \
- if (!(mark_word & ((word)1 << start_displ))) { \
- p[start_displ] = (word)list; \
- list = (ptr_t)(p+start_displ); \
- INCR_WORDS(4); \
- }
-
- p = (word *)(hbp->hb_body);
- plim = (word *)(((word)hbp) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- DO_OBJ(0);
- DO_OBJ(4);
- DO_OBJ(8);
- DO_OBJ(12);
- DO_OBJ(16);
- DO_OBJ(20);
- DO_OBJ(24);
- DO_OBJ(28);
-# if CPP_WORDSZ == 64
- DO_OBJ(32);
- DO_OBJ(36);
- DO_OBJ(40);
- DO_OBJ(44);
- DO_OBJ(48);
- DO_OBJ(52);
- DO_OBJ(56);
- DO_OBJ(60);
-# endif
- p += WORDSZ;
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-# undef DO_OBJ
-}
-
-/* Finally the one word case, which never requires any clearing: */
-/*ARGSUSED*/
-ptr_t GC_reclaim1(hbp, hhdr, list)
-register struct hblk *hbp; /* ptr to current heap block */
-hdr * hhdr;
-register ptr_t list;
-{
- register word * mark_word_addr = &(hhdr->hb_marks[divWORDSZ(HDR_WORDS)]);
- register word *p, *plim;
-# ifdef GATHERSTATS
- register int n_words_found = 0;
-# endif
- register word mark_word;
- register int i;
-# define DO_OBJ(start_displ) \
- if (!(mark_word & ((word)1 << start_displ))) { \
- p[start_displ] = (word)list; \
- list = (ptr_t)(p+start_displ); \
- INCR_WORDS(1); \
- }
-
- p = (word *)(hbp->hb_body);
- plim = (word *)(((word)hbp) + HBLKSIZE);
-
- /* go through all words in block */
- while( p < plim ) {
- mark_word = *mark_word_addr++;
- for (i = 0; i < WORDSZ; i += 4) {
- DO_OBJ(0);
- DO_OBJ(1);
- DO_OBJ(2);
- DO_OBJ(3);
- p += 4;
- mark_word >>= 4;
- }
- }
-# ifdef GATHERSTATS
- GC_mem_found += n_words_found;
-# endif
- return(list);
-# undef DO_OBJ
-}
-
-#endif /* !SMALL_CONFIG */
-
-/*
- * Restore unmarked small objects in the block pointed to by hbp
- * to the appropriate object free list.
- * If entirely empty blocks are to be completely deallocated, then
- * caller should perform that check.
- */
-void GC_reclaim_small_nonempty_block(hbp, report_if_found)
-register struct hblk *hbp; /* ptr to current heap block */
-int report_if_found; /* Abort if a reclaimable object is found */
-{
- hdr * hhdr;
- word sz; /* size of objects in current block */
- struct obj_kind * ok;
- ptr_t * flh;
- int kind;
- GC_bool full;
-
- hhdr = HDR(hbp);
- sz = hhdr -> hb_sz;
- hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no;
- kind = hhdr -> hb_obj_kind;
- ok = &GC_obj_kinds[kind];
- flh = &(ok -> ok_freelist[sz]);
-
- if (report_if_found) {
- GC_reclaim_check(hbp, hhdr, sz);
- } else if (ok -> ok_init) {
- switch(sz) {
-# ifndef SMALL_CONFIG
- case 1:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0xffffffffffffffffl);
-# else
- full = GC_block_nearly_full1(hhdr, 0xffffffffl);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- /* In the DONT_KNOW case, we let reclaim fault. */
- *flh = GC_reclaim1(hbp, hhdr, *flh);
- break;
- case 2:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0x5555555555555555l);
-# else
- full = GC_block_nearly_full1(hhdr, 0x55555555l);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_clear2(hbp, hhdr, *flh);
- break;
- case 4:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0x1111111111111111l);
-# else
- full = GC_block_nearly_full1(hhdr, 0x11111111l);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_clear4(hbp, hhdr, *flh);
- break;
-# endif
- default:
- full = GC_block_nearly_full(hhdr);
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_clear(hbp, hhdr, sz, *flh);
- break;
- }
- } else {
- switch(sz) {
-# ifndef SMALL_CONFIG
- case 1:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0xffffffffffffffffl);
-# else
- full = GC_block_nearly_full1(hhdr, 0xffffffffl);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim1(hbp, hhdr, *flh);
- break;
- case 2:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0x5555555555555555l);
-# else
- full = GC_block_nearly_full1(hhdr, 0x55555555l);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_uninit2(hbp, hhdr, *flh);
- break;
- case 4:
-# if CPP_WORDSZ == 64
- full = GC_block_nearly_full1(hhdr, 0x1111111111111111l);
-# else
- full = GC_block_nearly_full1(hhdr, 0x11111111l);
-# endif
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_uninit4(hbp, hhdr, *flh);
- break;
-# endif
- default:
- full = GC_block_nearly_full(hhdr);
- if (TRUE == full) goto out;
- if (FALSE == full) GC_write_hint(hbp);
- *flh = GC_reclaim_uninit(hbp, hhdr, sz, *flh);
- break;
- }
- }
-out:
- if (IS_UNCOLLECTABLE(kind)) GC_set_hdr_marks(hhdr);
-}
-
-/*
- * Restore an unmarked large object or an entirely empty blocks of small objects
- * to the heap block free list.
- * Otherwise enqueue the block for later processing
- * by GC_reclaim_small_nonempty_block.
- * If report_if_found is TRUE, then process any block immediately, and
- * simply report free objects; do not actually reclaim them.
- */
-void GC_reclaim_block(hbp, report_if_found)
-register struct hblk *hbp; /* ptr to current heap block */
-word report_if_found; /* Abort if a reclaimable object is found */
-{
- register hdr * hhdr;
- register word sz; /* size of objects in current block */
- register struct obj_kind * ok;
- struct hblk ** rlh;
-
- hhdr = HDR(hbp);
- sz = hhdr -> hb_sz;
- ok = &GC_obj_kinds[hhdr -> hb_obj_kind];
-
- if( sz > MAXOBJSZ ) { /* 1 big object */
- if( !mark_bit_from_hdr(hhdr, HDR_WORDS) ) {
- if (report_if_found) {
- FOUND_FREE(hbp, HDR_WORDS);
- } else {
-# ifdef GATHERSTATS
- GC_mem_found += sz;
-# endif
- GC_freehblk(hbp);
- }
- }
- } else {
- GC_bool empty = GC_block_empty(hhdr);
- if (report_if_found) {
- GC_reclaim_small_nonempty_block(hbp, (int)report_if_found);
- } else if (empty) {
-# ifdef GATHERSTATS
- GC_mem_found += BYTES_TO_WORDS(HBLKSIZE);
-# endif
- GC_freehblk(hbp);
- } else {
- /* group of smaller objects, enqueue the real work */
- rlh = &(ok -> ok_reclaim_list[sz]);
- hhdr -> hb_next = *rlh;
- *rlh = hbp;
- }
- }
-}
-
-#if !defined(NO_DEBUGGING)
-/* Routines to gather and print heap block info */
-/* intended for debugging. Otherwise should be called */
-/* with lock. */
-static size_t number_of_blocks;
-static size_t total_bytes;
-
-/* Number of set bits in a word. Not performance critical. */
-static int set_bits(n)
-word n;
-{
- register word m = n;
- register int result = 0;
-
- while (m > 0) {
- if (m & 1) result++;
- m >>= 1;
- }
- return(result);
-}
-
-/* Return the number of set mark bits in the given header */
-int GC_n_set_marks(hhdr)
-hdr * hhdr;
-{
- register int result = 0;
- register int i;
-
- for (i = 0; i < MARK_BITS_SZ; i++) {
- result += set_bits(hhdr -> hb_marks[i]);
- }
- return(result);
-}
-
-/*ARGSUSED*/
-void GC_print_block_descr(h, dummy)
-struct hblk *h;
-word dummy;
-{
- register hdr * hhdr = HDR(h);
- register size_t bytes = WORDS_TO_BYTES(hhdr -> hb_sz);
-
- GC_printf3("(%lu:%lu,%lu)", (unsigned long)(hhdr -> hb_obj_kind),
- (unsigned long)bytes,
- (unsigned long)(GC_n_set_marks(hhdr)));
- bytes += HDR_BYTES + HBLKSIZE-1;
- bytes &= ~(HBLKSIZE-1);
- total_bytes += bytes;
- number_of_blocks++;
-}
-
-void GC_print_block_list()
-{
- GC_printf0("(kind(0=ptrfree,1=normal,2=unc.,3=stubborn):size_in_bytes, #_marks_set)\n");
- number_of_blocks = 0;
- total_bytes = 0;
- GC_apply_to_all_blocks(GC_print_block_descr, (word)0);
- GC_printf2("\nblocks = %lu, bytes = %lu\n",
- (unsigned long)number_of_blocks,
- (unsigned long)total_bytes);
-}
-
-#endif /* NO_DEBUGGING */
-
-/*
- * Perform GC_reclaim_block on the entire heap, after first clearing
- * small object free lists (if we are not just looking for leaks).
- */
-void GC_start_reclaim(report_if_found)
-int report_if_found; /* Abort if a GC_reclaimable object is found */
-{
- int kind;
-
- /* Clear reclaim- and free-lists */
- for (kind = 0; kind < GC_n_kinds; kind++) {
- register ptr_t *fop;
- register ptr_t *lim;
- register struct hblk ** rlp;
- register struct hblk ** rlim;
- register struct hblk ** rlist = GC_obj_kinds[kind].ok_reclaim_list;
-
- if (rlist == 0) continue; /* This kind not used. */
- if (!report_if_found) {
- lim = &(GC_obj_kinds[kind].ok_freelist[MAXOBJSZ+1]);
- for( fop = GC_obj_kinds[kind].ok_freelist; fop < lim; fop++ ) {
- *fop = 0;
- }
- } /* otherwise free list objects are marked, */
- /* and its safe to leave them */
- rlim = rlist + MAXOBJSZ+1;
- for( rlp = rlist; rlp < rlim; rlp++ ) {
- *rlp = 0;
- }
- }
-
-# ifdef PRINTBLOCKS
- GC_printf0("GC_reclaim: current block sizes:\n");
- GC_print_block_list();
-# endif
-
- /* Go through all heap blocks (in hblklist) and reclaim unmarked objects */
- /* or enqueue the block for later processing. */
- GC_apply_to_all_blocks(GC_reclaim_block, (word)report_if_found);
-
-# ifdef EAGER_SWEEP
- /* This is a very stupid thing to do. We make it possible anyway, */
- /* so that you can convince yourself that it really is very stupid. */
- GC_reclaim_all((GC_stop_func)0, FALSE);
-# endif
-
-}
-
-/*
- * Sweep blocks of the indicated object size and kind until either the
- * appropriate free list is nonempty, or there are no more blocks to
- * sweep.
- */
-void GC_continue_reclaim(sz, kind)
-word sz; /* words */
-int kind;
-{
- register hdr * hhdr;
- register struct hblk * hbp;
- register struct obj_kind * ok = &(GC_obj_kinds[kind]);
- struct hblk ** rlh = ok -> ok_reclaim_list;
- ptr_t *flh = &(ok -> ok_freelist[sz]);
-
- if (rlh == 0) return; /* No blocks of this kind. */
- rlh += sz;
- while ((hbp = *rlh) != 0) {
- hhdr = HDR(hbp);
- *rlh = hhdr -> hb_next;
- GC_reclaim_small_nonempty_block(hbp, FALSE);
- if (*flh != 0) break;
- }
-}
-
-/*
- * Reclaim all small blocks waiting to be reclaimed.
- * Abort and return FALSE when/if (*stop_func)() returns TRUE.
- * If this returns TRUE, then it's safe to restart the world
- * with incorrectly cleared mark bits.
- * If ignore_old is TRUE, then reclaim only blocks that have been
- * recently reclaimed, and discard the rest.
- * Stop_func may be 0.
- */
-GC_bool GC_reclaim_all(stop_func, ignore_old)
-GC_stop_func stop_func;
-GC_bool ignore_old;
-{
- register word sz;
- register int kind;
- register hdr * hhdr;
- register struct hblk * hbp;
- register struct obj_kind * ok;
- struct hblk ** rlp;
- struct hblk ** rlh;
-# ifdef PRINTTIMES
- CLOCK_TYPE start_time;
- CLOCK_TYPE done_time;
-
- GET_TIME(start_time);
-# endif
-
- for (kind = 0; kind < GC_n_kinds; kind++) {
- ok = &(GC_obj_kinds[kind]);
- rlp = ok -> ok_reclaim_list;
- if (rlp == 0) continue;
- for (sz = 1; sz <= MAXOBJSZ; sz++) {
- rlh = rlp + sz;
- while ((hbp = *rlh) != 0) {
- if (stop_func != (GC_stop_func)0 && (*stop_func)()) {
- return(FALSE);
- }
- hhdr = HDR(hbp);
- *rlh = hhdr -> hb_next;
- if (!ignore_old || hhdr -> hb_last_reclaimed == GC_gc_no - 1) {
- /* It's likely we'll need it this time, too */
- /* It's been touched recently, so this */
- /* shouldn't trigger paging. */
- GC_reclaim_small_nonempty_block(hbp, FALSE);
- }
- }
- }
- }
-# ifdef PRINTTIMES
- GET_TIME(done_time);
- GC_printf1("Disposing of reclaim lists took %lu msecs\n",
- MS_TIME_DIFF(done_time,start_time));
-# endif
- return(TRUE);
-}
diff --git a/boehm-gc/rs6000_mach_dep.s b/boehm-gc/rs6000_mach_dep.s
deleted file mode 100644
index e0dbe808596..00000000000
--- a/boehm-gc/rs6000_mach_dep.s
+++ /dev/null
@@ -1,105 +0,0 @@
- .csect
- .set r0,0
- .set r1,1
- .set r2,2
- .set r3,3
- .set r4,4
- .set r5,5
- .set r6,6
- .set r7,7
- .set r8,8
- .set r9,9
- .set r10,10
- .set r11,11
- .set r12,12
- .set r13,13
- .set r14,14
- .set r15,15
- .set r16,16
- .set r17,17
- .set r18,18
- .set r19,19
- .set r20,20
- .set r21,21
- .set r22,22
- .set r23,23
- .set r24,24
- .set r25,25
- .set r26,26
- .set r27,27
- .set r28,28
- .set r29,29
- .set r30,30
- .set r31,31
-
- # Mark from machine registers that are saved by C compiler
- .globl .GC_push_regs
-.GC_push_regs:
- .extern .GC_push_one
- stu r1,-64(r1) # reserve stack frame
- mflr r0 # save link register
- st r0,0x48(r1)
- oril r3,r2,0x0 # mark from r2
- bl .GC_push_one
- cror 15,15,15
- oril r3,r13,0x0 # mark from r13-r31
- bl .GC_push_one
- cror 15,15,15
- oril r3,r14,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r15,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r16,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r17,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r18,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r19,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r20,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r21,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r22,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r23,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r24,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r25,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r26,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r27,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r28,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r29,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r30,0x0
- bl .GC_push_one
- cror 15,15,15
- oril r3,r31,0x0
- bl .GC_push_one
- cror 15,15,15
- l r0,0x48(r1)
- mtlr r0
- ai r1,r1,64
- br
diff --git a/boehm-gc/setjmp_t.c b/boehm-gc/setjmp_t.c
deleted file mode 100644
index 1c9253e98a6..00000000000
--- a/boehm-gc/setjmp_t.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, September 21, 1995 5:39 pm PDT */
-
-/* Check whether setjmp actually saves registers in jmp_buf. */
-/* If it doesn't, the generic mark_regs code won't work. */
-/* Compilers vary as to whether they will put x in a */
-/* (callee-save) register without -O. The code is */
-/* contrived such that any decent compiler should put x in */
-/* a callee-save register with -O. Thus it is is */
-/* recommended that this be run optimized. (If the machine */
-/* has no callee-save registers, then the generic code is */
-/* safe, but this will not be noticed by this piece of */
-/* code.) */
-#include <stdio.h>
-#include <setjmp.h>
-#include <string.h>
-#include "gcconfig.h"
-
-#ifdef OS2
-/* GETPAGESIZE() is set to getpagesize() by default, but that */
-/* doesn't really exist, and the collector doesn't need it. */
-#define INCL_DOSFILEMGR
-#define INCL_DOSMISC
-#define INCL_DOSERRORS
-#include <os2.h>
-
-int
-getpagesize()
-{
- ULONG result[1];
-
- if (DosQuerySysInfo(QSV_PAGE_SIZE, QSV_PAGE_SIZE,
- (void *)result, sizeof(ULONG)) != NO_ERROR) {
- fprintf(stderr, "DosQuerySysInfo failed\n");
- result[0] = 4096;
- }
- return((int)(result[0]));
-}
-#endif
-
-struct {char a_a; char * a_b;} a;
-
-int * nested_sp()
-{
- int dummy;
-
- return(&dummy);
-}
-
-main()
-{
- int dummy;
- long ps = GETPAGESIZE();
- jmp_buf b;
- register int x = (int)strlen("a"); /* 1, slightly disguised */
- static int y = 0;
-
- printf("This appears to be a %s running %s\n", MACH_TYPE, OS_TYPE);
- if (nested_sp() < &dummy) {
- printf("Stack appears to grow down, which is the default.\n");
- printf("A good guess for STACKBOTTOM on this machine is 0x%lx.\n",
- ((unsigned long)(&dummy) + ps) & ~(ps-1));
- } else {
- printf("Stack appears to grow up.\n");
- printf("Define STACK_GROWS_UP in gc_private.h\n");
- printf("A good guess for STACKBOTTOM on this machine is 0x%lx.\n",
- ((unsigned long)(&dummy) + ps) & ~(ps-1));
- }
- printf("Note that this may vary between machines of ostensibly\n");
- printf("the same architecture (e.g. Sun 3/50s and 3/80s).\n");
- printf("On many machines the value is not fixed.\n");
- printf("A good guess for ALIGNMENT on this machine is %ld.\n",
- (unsigned long)(&(a.a_b))-(unsigned long)(&a));
-
- /* Encourage the compiler to keep x in a callee-save register */
- x = 2*x-1;
- printf("");
- x = 2*x-1;
- setjmp(b);
- if (y == 1) {
- if (x == 2) {
- printf("Generic mark_regs code probably wont work\n");
-# if defined(SPARC) || defined(RS6000) || defined(VAX) || defined(MIPS) || defined(M68K) || defined(I386) || defined(NS32K) || defined(RT)
- printf("Assembly code supplied\n");
-# else
- printf("Need assembly code\n");
-# endif
- } else if (x == 1) {
- printf("Generic mark_regs code may work\n");
- } else {
- printf("Very strange setjmp implementation\n");
- }
- }
- y++;
- x = 2;
- if (y == 1) longjmp(b,1);
- return(0);
-}
-
-int g(x)
-int x;
-{
- return(x);
-}
diff --git a/boehm-gc/solaris_pthreads.c b/boehm-gc/solaris_pthreads.c
deleted file mode 100644
index 97ab13bbd46..00000000000
--- a/boehm-gc/solaris_pthreads.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for Solaris threads. Provides functionality we wish Sun
- * had provided. Relies on some information we probably shouldn't rely on.
- * Modified Peter C. for Solaris Posix Threads.
- */
-/* Boehm, September 14, 1994 4:44 pm PDT */
-
-# if defined(_SOLARIS_PTHREADS)
-# include "gc_priv.h"
-# include <pthread.h>
-# include <thread.h>
-# include <signal.h>
-# include <fcntl.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-# include <sys/stat.h>
-# include <sys/syscall.h>
-# include <sys/procfs.h>
-# include <sys/lwp.h>
-# include <sys/reg.h>
-# define _CLASSIC_XOPEN_TYPES
-# include <unistd.h>
-# include <errno.h>
-# include "solaris_threads.h"
-# include <stdio.h>
-
-#undef pthread_join
-#undef pthread_create
-
-pthread_cond_t GC_prom_join_cv; /* Broadcast when any thread terminates */
-pthread_cond_t GC_create_cv; /* Signalled when a new undetached */
- /* thread starts. */
-
-extern GC_bool GC_multithreaded;
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* We stop the world using /proc primitives. This makes some */
-/* minimal assumptions about the threads implementation. */
-/* We don't play by the rules, since the rules make this */
-/* impossible (as of Solaris 2.3). Also note that as of */
-/* Solaris 2.3 the various thread and lwp suspension */
-/* primitives failed to stop threads by the time the request */
-/* is completed. */
-
-
-
-int GC_pthread_join(pthread_t wait_for, void **status)
-{
- return GC_thr_join((thread_t)wait_for, NULL, status);
-}
-
-
-int
-GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr_in,
- void * (*thread_execp)(void *), void *arg)
-{
- int result;
- GC_thread t;
- pthread_t my_new_thread;
- pthread_attr_t attr;
- word my_flags = 0;
- int flag;
- void * stack = 0;
- size_t stack_size = 0;
- int n;
- struct sched_param schedparam;
-
- (void)pthread_attr_init(&attr);
- if (attr_in != 0) {
- (void)pthread_attr_getstacksize(attr_in, &stack_size);
- (void)pthread_attr_getstackaddr(attr_in, &stack);
- }
-
- LOCK();
- if (!GC_thr_initialized) {
- GC_thr_init();
- }
- GC_multithreaded++;
-
- if (stack == 0) {
- if (stack_size == 0)
- stack_size = 1048576;
- /* ^-- 1 MB (this was GC_min_stack_sz, but that
- * violates the pthread_create documentation which
- * says the default value if none is supplied is
- * 1MB) */
- else
- stack_size += thr_min_stack();
-
- stack = (void *)GC_stack_alloc(&stack_size);
- if (stack == 0) {
- GC_multithreaded--;
- UNLOCK();
- errno = ENOMEM;
- return -1;
- }
- } else {
- my_flags |= CLIENT_OWNS_STACK;
- }
- (void)pthread_attr_setstacksize(&attr, stack_size);
- (void)pthread_attr_setstackaddr(&attr, stack);
- if (attr_in != 0) {
- (void)pthread_attr_getscope(attr_in, &n);
- (void)pthread_attr_setscope(&attr, n);
- (void)pthread_attr_getschedparam(attr_in, &schedparam);
- (void)pthread_attr_setschedparam(&attr, &schedparam);
- (void)pthread_attr_getschedpolicy(attr_in, &n);
- (void)pthread_attr_setschedpolicy(&attr, n);
- (void)pthread_attr_getinheritsched(attr_in, &n);
- (void)pthread_attr_setinheritsched(&attr, n);
-
- (void)pthread_attr_getdetachstate(attr_in, &flag);
- if (flag == PTHREAD_CREATE_DETACHED) {
- my_flags |= DETACHED;
- }
- (void)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
- }
- /*
- * thr_create can call malloc(), which if redirected will
- * attempt to acquire the allocation lock.
- * Unlock here to prevent deadlock.
- */
-
-
-#if 0
-#ifdef I386
- UNLOCK();
-#endif
-#endif
- result =
- pthread_create(&my_new_thread, &attr, thread_execp, arg);
-#if 0
-#ifdef I386
- LOCK();
-#endif
-#endif
- if (result == 0) {
- t = GC_new_thread(my_new_thread);
- t -> flags = my_flags;
- if (!(my_flags & DETACHED)) cond_init(&(t->join_cv), USYNC_THREAD, 0);
- t -> stack = stack;
- t -> stack_size = stack_size;
- if (new_thread != 0) *new_thread = my_new_thread;
- pthread_cond_signal(&GC_create_cv);
- } else {
- if (!(my_flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(stack, stack_size);
- }
- GC_multithreaded--;
- }
- UNLOCK();
- pthread_attr_destroy(&attr);
- return(result);
-}
-
-# else
-
-#ifndef LINT
- int GC_no_sunOS_pthreads;
-#endif
-
-# endif /* SOLARIS_THREADS */
-
diff --git a/boehm-gc/solaris_threads.c b/boehm-gc/solaris_threads.c
deleted file mode 100644
index c3b0b15b97c..00000000000
--- a/boehm-gc/solaris_threads.c
+++ /dev/null
@@ -1,941 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for Solaris threads. Provides functionality we wish Sun
- * had provided. Relies on some information we probably shouldn't rely on.
- */
-/* Boehm, September 14, 1994 4:44 pm PDT */
-
-# if defined(SOLARIS_THREADS)
-
-# include "gc_priv.h"
-# include "solaris_threads.h"
-# include <thread.h>
-# include <synch.h>
-# include <signal.h>
-# include <fcntl.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-# include <sys/stat.h>
-# include <sys/syscall.h>
-# include <sys/procfs.h>
-# include <sys/lwp.h>
-# include <sys/reg.h>
-# define _CLASSIC_XOPEN_TYPES
-# include <unistd.h>
-# include <errno.h>
-
-/*
- * This is the default size of the LWP arrays. If there are more LWPs
- * than this when a stop-the-world GC happens, set_max_lwps will be
- * called to cope.
- * This must be higher than the number of LWPs at startup time.
- * The threads library creates a thread early on, so the min. is 3
- */
-# define DEFAULT_MAX_LWPS 4
-
-#undef thr_join
-#undef thr_create
-#undef thr_suspend
-#undef thr_continue
-
-cond_t GC_prom_join_cv; /* Broadcast when any thread terminates */
-cond_t GC_create_cv; /* Signalled when a new undetached */
- /* thread starts. */
-
-
-#ifdef MMAP_STACKS
-static int GC_zfd;
-#endif /* MMAP_STACKS */
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* We stop the world using /proc primitives. This makes some */
-/* minimal assumptions about the threads implementation. */
-/* We don't play by the rules, since the rules make this */
-/* impossible (as of Solaris 2.3). Also note that as of */
-/* Solaris 2.3 the various thread and lwp suspension */
-/* primitives failed to stop threads by the time the request */
-/* is completed. */
-
-
-static sigset_t old_mask;
-
-/* Sleep for n milliseconds, n < 1000 */
-void GC_msec_sleep(int n)
-{
- struct timespec ts;
-
- ts.tv_sec = 0;
- ts.tv_nsec = 1000000*n;
- if (syscall(SYS_nanosleep, &ts, 0) < 0) {
- ABORT("nanosleep failed");
- }
-}
-/* Turn off preemption; gross but effective. */
-/* Caller has allocation lock. */
-/* Actually this is not needed under Solaris 2.3 and */
-/* 2.4, but hopefully that'll change. */
-void preempt_off()
-{
- sigset_t set;
-
- (void)sigfillset(&set);
- sigdelset(&set, SIGABRT);
- syscall(SYS_sigprocmask, SIG_SETMASK, &set, &old_mask);
-}
-
-void preempt_on()
-{
- syscall(SYS_sigprocmask, SIG_SETMASK, &old_mask, NULL);
-}
-
-int GC_main_proc_fd = -1;
-
-
-struct lwp_cache_entry {
- lwpid_t lc_id;
- int lc_descr; /* /proc file descriptor. */
-} GC_lwp_cache_default[DEFAULT_MAX_LWPS];
-
-static int max_lwps = DEFAULT_MAX_LWPS;
-static struct lwp_cache_entry *GC_lwp_cache = GC_lwp_cache_default;
-
-static prgregset_t GC_lwp_registers_default[DEFAULT_MAX_LWPS];
-static prgregset_t *GC_lwp_registers = GC_lwp_registers_default;
-
-/* Return a file descriptor for the /proc entry corresponding */
-/* to the given lwp. The file descriptor may be stale if the */
-/* lwp exited and a new one was forked. */
-static int open_lwp(lwpid_t id)
-{
- int result;
- static int next_victim = 0;
- register int i;
-
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id == id) return(GC_lwp_cache[i].lc_descr);
- }
- result = syscall(SYS_ioctl, GC_main_proc_fd, PIOCOPENLWP, &id);
- /*
- * If PIOCOPENLWP fails, try closing fds in the cache until it succeeds.
- */
- if (result < 0 && errno == EMFILE) {
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id != 0) {
- (void)syscall(SYS_close, GC_lwp_cache[i].lc_descr);
- result = syscall(SYS_ioctl, GC_main_proc_fd, PIOCOPENLWP, &id);
- if (result >= 0 || (result < 0 && errno != EMFILE))
- break;
- }
- }
- }
- if (result < 0) {
- if (errno == EMFILE) {
- ABORT("Too many open files");
- }
- return(-1) /* exited? */;
- }
- if (GC_lwp_cache[next_victim].lc_id != 0)
- (void)syscall(SYS_close, GC_lwp_cache[next_victim].lc_descr);
- GC_lwp_cache[next_victim].lc_id = id;
- GC_lwp_cache[next_victim].lc_descr = result;
- if (++next_victim >= max_lwps)
- next_victim = 0;
- return(result);
-}
-
-static void uncache_lwp(lwpid_t id)
-{
- register int i;
-
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id == id) {
- (void)syscall(SYS_close, GC_lwp_cache[id].lc_descr);
- GC_lwp_cache[i].lc_id = 0;
- break;
- }
- }
-}
- /* Sequence of current lwp ids */
-static lwpid_t GC_current_ids_default[DEFAULT_MAX_LWPS + 1];
-static lwpid_t *GC_current_ids = GC_current_ids_default;
-
- /* Temporary used below (can be big if large number of LWPs) */
-static lwpid_t last_ids_default[DEFAULT_MAX_LWPS + 1];
-static lwpid_t *last_ids = last_ids_default;
-
-
-#define ROUNDUP(n) WORDS_TO_BYTES(ROUNDED_UP_WORDS(n))
-
-static void set_max_lwps(GC_word n)
-{
- char *mem;
- char *oldmem;
- int required_bytes = ROUNDUP(n * sizeof(struct lwp_cache_entry))
- + ROUNDUP(n * sizeof(prgregset_t))
- + ROUNDUP((n + 1) * sizeof(lwpid_t))
- + ROUNDUP((n + 1) * sizeof(lwpid_t));
-
- GC_expand_hp_inner(divHBLKSZ((word)required_bytes));
- oldmem = mem = GC_scratch_alloc(required_bytes);
- if (0 == mem) ABORT("No space for lwp data structures");
-
- /*
- * We can either flush the old lwp cache or copy it over. Do the latter.
- */
- memcpy(mem, GC_lwp_cache, max_lwps * sizeof(struct lwp_cache_entry));
- GC_lwp_cache = (struct lwp_cache_entry*)mem;
- mem += ROUNDUP(n * sizeof(struct lwp_cache_entry));
-
- BZERO(GC_lwp_registers, max_lwps * sizeof(GC_lwp_registers[0]));
- GC_lwp_registers = (prgregset_t *)mem;
- mem += ROUNDUP(n * sizeof(prgregset_t));
-
-
- GC_current_ids = (lwpid_t *)mem;
- mem += ROUNDUP((n + 1) * sizeof(lwpid_t));
-
- last_ids = (lwpid_t *)mem;
- mem += ROUNDUP((n + 1)* sizeof(lwpid_t));
-
- if (mem > oldmem + required_bytes)
- ABORT("set_max_lwps buffer overflow");
-
- max_lwps = n;
-}
-
-
-/* Stop all lwps in process. Assumes preemption is off. */
-/* Caller has allocation lock (and any other locks he may */
-/* need). */
-static void stop_all_lwps()
-{
- int lwp_fd;
- char buf[30];
- prstatus_t status;
- register int i;
- GC_bool changed;
- lwpid_t me = _lwp_self();
-
- if (GC_main_proc_fd == -1) {
- sprintf(buf, "/proc/%d", getpid());
- GC_main_proc_fd = syscall(SYS_open, buf, O_RDONLY);
- if (GC_main_proc_fd < 0) {
- if (errno == EMFILE)
- ABORT("/proc open failed: too many open files");
- GC_printf1("/proc open failed: errno %d", errno);
- abort();
- }
- }
- BZERO(GC_lwp_registers, sizeof (prgregset_t) * max_lwps);
- for (i = 0; i < max_lwps; i++)
- last_ids[i] = 0;
- for (;;) {
- if (syscall(SYS_ioctl, GC_main_proc_fd, PIOCSTATUS, &status) < 0)
- ABORT("Main PIOCSTATUS failed");
- if (status.pr_nlwp < 1)
- ABORT("Invalid number of lwps returned by PIOCSTATUS");
- if (status.pr_nlwp >= max_lwps) {
- set_max_lwps(status.pr_nlwp*2 + 10);
- /*
- * The data in the old GC_current_ids and
- * GC_lwp_registers has been trashed. Cleaning out last_ids
- * will make sure every LWP gets re-examined.
- */
- for (i = 0; i < max_lwps; i++)
- last_ids[i] = 0;
- continue;
- }
- if (syscall(SYS_ioctl, GC_main_proc_fd, PIOCLWPIDS, GC_current_ids) < 0)
- ABORT("PIOCLWPIDS failed");
- changed = FALSE;
- for (i = 0; GC_current_ids[i] != 0 && i < max_lwps; i++) {
- if (GC_current_ids[i] != last_ids[i]) {
- changed = TRUE;
- if (GC_current_ids[i] != me) {
- /* PIOCSTOP doesn't work without a writable */
- /* descriptor. And that makes the process */
- /* undebuggable. */
- if (_lwp_suspend(GC_current_ids[i]) < 0) {
- /* Could happen if the lwp exited */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* ignore */
- }
- }
- }
- }
- /*
- * In the unlikely event something does a fork between the
- * PIOCSTATUS and the PIOCLWPIDS.
- */
- if (i >= max_lwps)
- continue;
- /* All lwps in GC_current_ids != me have been suspended. Note */
- /* that _lwp_suspend is idempotent. */
- for (i = 0; GC_current_ids[i] != 0; i++) {
- if (GC_current_ids[i] != last_ids[i]) {
- if (GC_current_ids[i] != me) {
- lwp_fd = open_lwp(GC_current_ids[i]);
- if (lwp_fd == -1)
- {
- GC_current_ids[i] = me;
- continue;
- }
- /* LWP should be stopped. Empirically it sometimes */
- /* isn't, and more frequently the PR_STOPPED flag */
- /* is not set. Wait for PR_STOPPED. */
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- /* Possible if the descriptor was stale, or */
- /* we encountered the 2.3 _lwp_suspend bug. */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* handle next time. */
- } else {
- while (!(status.pr_flags & PR_STOPPED)) {
- GC_msec_sleep(1);
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("Repeated PIOCSTATUS failed");
- }
- if (status.pr_flags & PR_STOPPED) break;
-
- GC_msec_sleep(20);
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("Repeated PIOCSTATUS failed");
- }
- }
- if (status.pr_who != GC_current_ids[i]) {
- /* can happen if thread was on death row */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* handle next time. */
- continue;
- }
- /* Save registers where collector can */
- /* find them. */
- BCOPY(status.pr_reg, GC_lwp_registers[i],
- sizeof (prgregset_t));
- }
- }
- }
- }
- if (!changed) break;
- for (i = 0; i < max_lwps; i++) last_ids[i] = GC_current_ids[i];
- }
-}
-
-/* Restart all lwps in process. Assumes preemption is off. */
-static void restart_all_lwps()
-{
- int lwp_fd;
- register int i;
- GC_bool changed;
- lwpid_t me = _lwp_self();
-# define PARANOID
-
- for (i = 0; GC_current_ids[i] != 0; i++) {
-# ifdef PARANOID
- if (GC_current_ids[i] != me) {
- int lwp_fd = open_lwp(GC_current_ids[i]);
- prstatus_t status;
-
- if (lwp_fd < 0) ABORT("open_lwp failed");
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("PIOCSTATUS failed in restart_all_lwps");
- }
- if (memcmp(status.pr_reg, GC_lwp_registers[i],
- sizeof (prgregset_t)) != 0) {
- int j;
-
- for(j = 0; j < NGREG; j++)
- {
- GC_printf3("%i: %x -> %x\n", j,
- GC_lwp_registers[i][j],
- status.pr_reg[j]);
- }
- ABORT("Register contents changed");
- }
- if (!status.pr_flags & PR_STOPPED) {
- ABORT("lwp no longer stopped");
- }
-#ifdef SPARC
- {
- gwindows_t windows;
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCGWIN, &windows) < 0) {
- ABORT("PIOCSTATUS failed in restart_all_lwps");
- }
- if (windows.wbcnt > 0) ABORT("unsaved register windows");
- }
-#endif
- }
-# endif /* PARANOID */
- if (GC_current_ids[i] == me) continue;
- if (_lwp_continue(GC_current_ids[i]) < 0) {
- ABORT("Failed to restart lwp");
- }
- }
- if (i >= max_lwps) ABORT("Too many lwps");
-}
-
-GC_bool GC_multithreaded = 0;
-
-void GC_stop_world()
-{
- preempt_off();
- if (GC_multithreaded)
- stop_all_lwps();
-}
-
-void GC_start_world()
-{
- if (GC_multithreaded)
- restart_all_lwps();
- preempt_on();
-}
-
-void GC_thr_init(void);
-
-GC_bool GC_thr_initialized = FALSE;
-
-size_t GC_min_stack_sz;
-
-size_t GC_page_sz;
-
-/*
- * stack_head is stored at the top of free stacks
- */
-struct stack_head {
- struct stack_head *next;
- ptr_t base;
- thread_t owner;
-};
-
-# define N_FREE_LISTS 25
-struct stack_head *GC_stack_free_lists[N_FREE_LISTS] = { 0 };
- /* GC_stack_free_lists[i] is free list for stacks of */
- /* size GC_min_stack_sz*2**i. */
- /* Free lists are linked through stack_head stored */ /* at top of stack. */
-
-/* Return a stack of size at least *stack_size. *stack_size is */
-/* replaced by the actual stack size. */
-/* Caller holds allocation lock. */
-ptr_t GC_stack_alloc(size_t * stack_size)
-{
- register size_t requested_sz = *stack_size;
- register size_t search_sz = GC_min_stack_sz;
- register int index = 0; /* = log2(search_sz/GC_min_stack_sz) */
- register ptr_t base;
- register struct stack_head *result;
-
- while (search_sz < requested_sz) {
- search_sz *= 2;
- index++;
- }
- if ((result = GC_stack_free_lists[index]) == 0
- && (result = GC_stack_free_lists[index+1]) != 0) {
- /* Try next size up. */
- search_sz *= 2; index++;
- }
- if (result != 0) {
- base = GC_stack_free_lists[index]->base;
- GC_stack_free_lists[index] = GC_stack_free_lists[index]->next;
- } else {
-#ifdef MMAP_STACKS
- base = (ptr_t)mmap(0, search_sz + GC_page_sz,
- PROT_READ|PROT_WRITE, MAP_PRIVATE |MAP_NORESERVE,
- GC_zfd, 0);
- if (base == (ptr_t)-1)
- {
- *stack_size = 0;
- return NULL;
- }
-
- mprotect(base, GC_page_sz, PROT_NONE);
- /* Should this use divHBLKSZ(search_sz + GC_page_sz) ? -- cf */
- GC_is_fresh((struct hblk *)base, divHBLKSZ(search_sz));
- base += GC_page_sz;
-
-#else
- base = (ptr_t) GC_scratch_alloc(search_sz + 2*GC_page_sz);
- if (base == NULL)
- {
- *stack_size = 0;
- return NULL;
- }
-
- base = (ptr_t)(((word)base + GC_page_sz) & ~(GC_page_sz - 1));
- /* Protect hottest page to detect overflow. */
-# ifdef SOLARIS23_MPROTECT_BUG_FIXED
- mprotect(base, GC_page_sz, PROT_NONE);
-# endif
- GC_is_fresh((struct hblk *)base, divHBLKSZ(search_sz));
-
- base += GC_page_sz;
-#endif
- }
- *stack_size = search_sz;
- return(base);
-}
-
-/* Caller holds allocationlock. */
-void GC_stack_free(ptr_t stack, size_t size)
-{
- register int index = 0;
- register size_t search_sz = GC_min_stack_sz;
- register struct stack_head *head;
-
-#ifdef MMAP_STACKS
- /* Zero pointers */
- mmap(stack, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE|MAP_FIXED,
- GC_zfd, 0);
-#endif
- while (search_sz < size) {
- search_sz *= 2;
- index++;
- }
- if (search_sz != size) ABORT("Bad stack size");
-
- head = (struct stack_head *)(stack + search_sz - sizeof(struct stack_head));
- head->next = GC_stack_free_lists[index];
- head->base = stack;
- GC_stack_free_lists[index] = head;
-}
-
-void GC_my_stack_limits();
-
-/* Notify virtual dirty bit implementation that known empty parts of */
-/* stacks do not contain useful data. */
-/* Caller holds allocation lock. */
-void GC_old_stacks_are_fresh()
-{
-/* No point in doing this for MMAP stacks - and pointers are zero'd out */
-/* by the mmap in GC_stack_free */
-#ifndef MMAP_STACKS
- register int i;
- register struct stack_head *s;
- register ptr_t p;
- register size_t sz;
- register struct hblk * h;
- int dummy;
-
- for (i = 0, sz= GC_min_stack_sz; i < N_FREE_LISTS;
- i++, sz *= 2) {
- for (s = GC_stack_free_lists[i]; s != 0; s = s->next) {
- p = s->base;
- h = (struct hblk *)(((word)p + HBLKSIZE-1) & ~(HBLKSIZE-1));
- if ((ptr_t)h == p) {
- GC_is_fresh((struct hblk *)p, divHBLKSZ(sz));
- } else {
- GC_is_fresh((struct hblk *)p, divHBLKSZ(sz) - 1);
- BZERO(p, (ptr_t)h - p);
- }
- }
- }
-#endif /* MMAP_STACKS */
- GC_my_stack_limits();
-}
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-
-# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
-volatile GC_thread GC_threads[THREAD_TABLE_SZ];
-
-/* Add a thread to GC_threads. We assume it wasn't already there. */
-/* Caller holds allocation lock. */
-GC_thread GC_new_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- GC_thread result;
- static struct GC_Thread_Rep first_thread;
- static GC_bool first_thread_used = FALSE;
-
- if (!first_thread_used) {
- result = &first_thread;
- first_thread_used = TRUE;
- /* Dont acquire allocation lock, since we may already hold it. */
- } else {
- result = (struct GC_Thread_Rep *)
- GC_generic_malloc_inner(sizeof(struct GC_Thread_Rep), NORMAL);
- }
- if (result == 0) return(0);
- result -> id = id;
- result -> next = GC_threads[hv];
- GC_threads[hv] = result;
- /* result -> finished = 0; */
- (void) cond_init(&(result->join_cv), USYNC_THREAD, 0);
- return(result);
-}
-
-/* Delete a thread from GC_threads. We assume it is there. */
-/* (The code intentionally traps if it wasn't.) */
-/* Caller holds allocation lock. */
-void GC_delete_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (p -> id != id) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* Return the GC_thread correpsonding to a given thread_t. */
-/* Returns 0 if it's not there. */
-/* Caller holds allocation lock. */
-GC_thread GC_lookup_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
-
- while (p != 0 && p -> id != id) p = p -> next;
- return(p);
-}
-
-# define MAX_ORIG_STACK_SIZE (8 * 1024 * 1024)
-
-word GC_get_orig_stack_size() {
- struct rlimit rl;
- static int warned = 0;
- int result;
-
- if (getrlimit(RLIMIT_STACK, &rl) != 0) ABORT("getrlimit failed");
- result = (word)rl.rlim_cur & ~(HBLKSIZE-1);
- if (result > MAX_ORIG_STACK_SIZE) {
- if (!warned) {
- WARN("Large stack limit(%ld): only scanning 8 MB", result);
- warned = 1;
- }
- result = MAX_ORIG_STACK_SIZE;
- }
- return result;
-}
-
-/* Notify dirty bit implementation of unused parts of my stack. */
-/* Caller holds allocation lock. */
-void GC_my_stack_limits()
-{
- int dummy;
- register ptr_t hottest = (ptr_t)((word)(&dummy) & ~(HBLKSIZE-1));
- register GC_thread me = GC_lookup_thread(thr_self());
- register size_t stack_size = me -> stack_size;
- register ptr_t stack;
-
- if (stack_size == 0) {
- /* original thread */
- /* Empirically, what should be the stack page with lowest */
- /* address is actually inaccessible. */
- stack_size = GC_get_orig_stack_size() - GC_page_sz;
- stack = GC_stackbottom - stack_size + GC_page_sz;
- } else {
- stack = me -> stack;
- }
- if (stack > hottest || stack + stack_size < hottest) {
- ABORT("sp out of bounds");
- }
- GC_is_fresh((struct hblk *)stack, divHBLKSZ(hottest - stack));
-}
-
-
-/* We hold allocation lock. Should do exactly the right thing if the */
-/* world is stopped. Should not fail if it isn't. */
-void GC_push_all_stacks()
-{
- register int i;
- register GC_thread p;
- register ptr_t sp = GC_approx_sp();
- register ptr_t bottom, top;
- struct rlimit rl;
-
-# define PUSH(bottom,top) \
- if (GC_dirty_maintained) { \
- GC_push_dirty((bottom), (top), GC_page_was_ever_dirty, \
- GC_push_all_stack); \
- } else { \
- GC_push_all_stack((bottom), (top)); \
- }
- GC_push_all_stack((ptr_t)GC_lwp_registers,
- (ptr_t)GC_lwp_registers
- + max_lwps * sizeof(GC_lwp_registers[0]));
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> stack_size != 0) {
- bottom = p -> stack;
- top = p -> stack + p -> stack_size;
- } else {
- /* The original stack. */
- bottom = GC_stackbottom - GC_get_orig_stack_size() + GC_page_sz;
- top = GC_stackbottom;
- }
- if ((word)sp > (word)bottom && (word)sp < (word)top) bottom = sp;
- PUSH(bottom, top);
- }
- }
-}
-
-
-int GC_is_thread_stack(ptr_t addr)
-{
- register int i;
- register GC_thread p;
- register ptr_t bottom, top;
- struct rlimit rl;
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> stack_size != 0) {
- if (p -> stack <= addr &&
- addr < p -> stack + p -> stack_size)
- return 1;
- }
- }
- }
-}
-
-/* The only thread that ever really performs a thr_join. */
-void * GC_thr_daemon(void * dummy)
-{
- void *status;
- thread_t departed;
- register GC_thread t;
- register int i;
- register int result;
-
- for(;;) {
- start:
- result = thr_join((thread_t)0, &departed, &status);
- LOCK();
- if (result != 0) {
- /* No more threads; wait for create. */
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (t = GC_threads[i]; t != 0; t = t -> next) {
- if (!(t -> flags & (DETACHED | FINISHED))) {
- UNLOCK();
- goto start; /* Thread started just before we */
- /* acquired the lock. */
- }
- }
- }
- cond_wait(&GC_create_cv, &GC_allocate_ml);
- UNLOCK();
- } else {
- t = GC_lookup_thread(departed);
- GC_multithreaded--;
- if (!(t -> flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(t -> stack, t -> stack_size);
- }
- if (t -> flags & DETACHED) {
- GC_delete_thread(departed);
- } else {
- t -> status = status;
- t -> flags |= FINISHED;
- cond_signal(&(t -> join_cv));
- cond_broadcast(&GC_prom_join_cv);
- }
- UNLOCK();
- }
- }
-}
-
-/* We hold the allocation lock, or caller ensures that 2 instances */
-/* cannot be invoked concurrently. */
-void GC_thr_init(void)
-{
- GC_thread t;
- thread_t tid;
-
- if (GC_thr_initialized)
- return;
- GC_thr_initialized = TRUE;
- GC_min_stack_sz = ((thr_min_stack() + 32*1024 + HBLKSIZE-1)
- & ~(HBLKSIZE - 1));
- GC_page_sz = sysconf(_SC_PAGESIZE);
-#ifdef MMAP_STACKS
- GC_zfd = open("/dev/zero", O_RDONLY);
- if (GC_zfd == -1)
- ABORT("Can't open /dev/zero");
-#endif /* MMAP_STACKS */
- cond_init(&GC_prom_join_cv, USYNC_THREAD, 0);
- cond_init(&GC_create_cv, USYNC_THREAD, 0);
- /* Add the initial thread, so we can stop it. */
- t = GC_new_thread(thr_self());
- t -> stack_size = 0;
- t -> flags = DETACHED | CLIENT_OWNS_STACK;
- if (thr_create(0 /* stack */, 0 /* stack_size */, GC_thr_daemon,
- 0 /* arg */, THR_DETACHED | THR_DAEMON,
- &tid /* thread_id */) != 0) {
- ABORT("Cant fork daemon");
- }
- thr_setprio(tid, 126);
-}
-
-/* We acquire the allocation lock to prevent races with */
-/* stopping/starting world. */
-/* This is no more correct than the underlying Solaris 2.X */
-/* implementation. Under 2.3 THIS IS BROKEN. */
-int GC_thr_suspend(thread_t target_thread)
-{
- GC_thread t;
- int result;
-
- LOCK();
- result = thr_suspend(target_thread);
- if (result == 0) {
- t = GC_lookup_thread(target_thread);
- if (t == 0) ABORT("thread unknown to GC");
- t -> flags |= SUSPENDED;
- }
- UNLOCK();
- return(result);
-}
-
-int GC_thr_continue(thread_t target_thread)
-{
- GC_thread t;
- int result;
-
- LOCK();
- result = thr_continue(target_thread);
- if (result == 0) {
- t = GC_lookup_thread(target_thread);
- if (t == 0) ABORT("thread unknown to GC");
- t -> flags &= ~SUSPENDED;
- }
- UNLOCK();
- return(result);
-}
-
-int GC_thr_join(thread_t wait_for, thread_t *departed, void **status)
-{
- register GC_thread t;
- int result = 0;
-
- LOCK();
- if (wait_for == 0) {
- register int i;
- register GC_bool thread_exists;
-
- for (;;) {
- thread_exists = FALSE;
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (t = GC_threads[i]; t != 0; t = t -> next) {
- if (!(t -> flags & DETACHED)) {
- if (t -> flags & FINISHED) {
- goto found;
- }
- thread_exists = TRUE;
- }
- }
- }
- if (!thread_exists) {
- result = ESRCH;
- goto out;
- }
- cond_wait(&GC_prom_join_cv, &GC_allocate_ml);
- }
- } else {
- t = GC_lookup_thread(wait_for);
- if (t == 0 || t -> flags & DETACHED) {
- result = ESRCH;
- goto out;
- }
- if (wait_for == thr_self()) {
- result = EDEADLK;
- goto out;
- }
- while (!(t -> flags & FINISHED)) {
- cond_wait(&(t -> join_cv), &GC_allocate_ml);
- }
-
- }
- found:
- if (status) *status = t -> status;
- if (departed) *departed = t -> id;
- cond_destroy(&(t -> join_cv));
- GC_delete_thread(t -> id);
- out:
- UNLOCK();
- return(result);
-}
-
-
-int
-GC_thr_create(void *stack_base, size_t stack_size,
- void *(*start_routine)(void *), void *arg, long flags,
- thread_t *new_thread)
-{
- int result;
- GC_thread t;
- thread_t my_new_thread;
- word my_flags = 0;
- void * stack = stack_base;
-
- LOCK();
- if (!GC_thr_initialized)
- {
- GC_thr_init();
- }
- GC_multithreaded++;
- if (stack == 0) {
- if (stack_size == 0) stack_size = 1024*1024;
- stack = (void *)GC_stack_alloc(&stack_size);
- if (stack == 0) {
- GC_multithreaded--;
- UNLOCK();
- return(ENOMEM);
- }
- } else {
- my_flags |= CLIENT_OWNS_STACK;
- }
- if (flags & THR_DETACHED) my_flags |= DETACHED;
- if (flags & THR_SUSPENDED) my_flags |= SUSPENDED;
- result = thr_create(stack, stack_size, start_routine,
- arg, flags & ~THR_DETACHED, &my_new_thread);
- if (result == 0) {
- t = GC_new_thread(my_new_thread);
- t -> flags = my_flags;
- if (!(my_flags & DETACHED)) cond_init(&(t -> join_cv), USYNC_THREAD, 0);
- t -> stack = stack;
- t -> stack_size = stack_size;
- if (new_thread != 0) *new_thread = my_new_thread;
- cond_signal(&GC_create_cv);
- } else {
- GC_multithreaded--;
- if (!(my_flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(stack, stack_size);
- }
- }
- UNLOCK();
- return(result);
-}
-
-# else /* SOLARIS_THREADS */
-
-#ifndef LINT
- int GC_no_sunOS_threads;
-#endif
-#endif
diff --git a/boehm-gc/solaris_threads.h b/boehm-gc/solaris_threads.h
deleted file mode 100644
index b2cdb36e98d..00000000000
--- a/boehm-gc/solaris_threads.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef SOLARIS_THREADS
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-/* Protected by GC_thr_lock. */
-/* Some of this should be declared volatile, but that's incosnsistent */
-/* with some library routine declarations. In particular, the */
-/* definition of cond_t doesn't mention volatile! */
- typedef struct GC_Thread_Rep {
- struct GC_Thread_Rep * next;
- thread_t id;
- word flags;
-# define FINISHED 1 /* Thread has exited. */
-# define DETACHED 2 /* Thread is intended to be detached. */
-# define CLIENT_OWNS_STACK 4
- /* Stack was supplied by client. */
-# define SUSPENDED 8 /* Currently suspended. */
- ptr_t stack;
- size_t stack_size;
- cond_t join_cv;
- void * status;
- } * GC_thread;
- extern GC_thread GC_new_thread(thread_t id);
-
- extern GC_bool GC_thr_initialized;
- extern volatile GC_thread GC_threads[];
- extern size_t GC_min_stack_sz;
- extern size_t GC_page_sz;
- extern void GC_thr_init(void);
-
-# endif /* SOLARIS_THREADS */
-
diff --git a/boehm-gc/sparc_mach_dep.s b/boehm-gc/sparc_mach_dep.s
deleted file mode 100644
index 9831c6ca402..00000000000
--- a/boehm-gc/sparc_mach_dep.s
+++ /dev/null
@@ -1,38 +0,0 @@
-! SPARCompiler 3.0 and later apparently no longer handles
-! asm outside functions. So we need a separate .s file
-! This is only set up for SunOS 5, not SunOS 4.
-! Assumes this is called before the stack contents are
-! examined.
-
- .seg "text"
- .globl GC_save_regs_in_stack
- .globl GC_push_regs
-GC_save_regs_in_stack:
-GC_push_regs:
- ta 0x3 ! ST_FLUSH_WINDOWS
- mov %sp,%o0
- retl
- nop
-
- .globl GC_clear_stack_inner
-GC_clear_stack_inner:
- mov %sp,%o2 ! Save sp
- add %sp,-8,%o3 ! p = sp-8
- clr %g1 ! [g0,g1] = 0
- add %o1,-0x60,%sp ! Move sp out of the way,
- ! so that traps still work.
- ! Includes some extra words
- ! so we can be sloppy below.
-loop:
- std %g0,[%o3] ! *(long long *)p = 0
- cmp %o3,%o1
- bgu loop ! if (p > limit) goto loop
- add %o3,-8,%o3 ! p -= 8 (delay slot)
- retl
- mov %o2,%sp ! Restore sp., delay slot
-
-
-
-
-
-
diff --git a/boehm-gc/sparc_sunos4_mach_dep.s b/boehm-gc/sparc_sunos4_mach_dep.s
deleted file mode 100644
index 41858073ef9..00000000000
--- a/boehm-gc/sparc_sunos4_mach_dep.s
+++ /dev/null
@@ -1,38 +0,0 @@
-! SPARCompiler 3.0 and later apparently no longer handles
-! asm outside functions. So we need a separate .s file
-! This is only set up for SunOS 4.
-! Assumes this is called before the stack contents are
-! examined.
-
- .seg "text"
- .globl _GC_save_regs_in_stack
- .globl _GC_push_regs
-_GC_save_regs_in_stack:
-_GC_push_regs:
- ta 0x3 ! ST_FLUSH_WINDOWS
- mov %sp,%o0
- retl
- nop
-
- .globl _GC_clear_stack_inner
-_GC_clear_stack_inner:
- mov %sp,%o2 ! Save sp
- add %sp,-8,%o3 ! p = sp-8
- clr %g1 ! [g0,g1] = 0
- add %o1,-0x60,%sp ! Move sp out of the way,
- ! so that traps still work.
- ! Includes some extra words
- ! so we can be sloppy below.
-loop:
- std %g0,[%o3] ! *(long long *)p = 0
- cmp %o3,%o1
- bgu loop ! if (p > limit) goto loop
- add %o3,-8,%o3 ! p -= 8 (delay slot)
- retl
- mov %o2,%sp ! Restore sp., delay slot
-
-
-
-
-
-
diff --git a/boehm-gc/stubborn.c b/boehm-gc/stubborn.c
deleted file mode 100644
index bef7b98a486..00000000000
--- a/boehm-gc/stubborn.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* Boehm, July 31, 1995 5:02 pm PDT */
-
-
-#include "gc_priv.h"
-
-# ifdef STUBBORN_ALLOC
-/* Stubborn object (hard to change, nearly immutable) allocation. */
-
-extern ptr_t GC_clear_stack(); /* in misc.c, behaves like identity */
-
-#define GENERAL_MALLOC(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc((word)lb, k))
-
-/* Data structure representing immutable objects that */
-/* are still being initialized. */
-/* This is a bit baroque in order to avoid acquiring */
-/* the lock twice for a typical allocation. */
-
-GC_PTR * GC_changing_list_start;
-
-# ifdef THREADS
- VOLATILE GC_PTR * VOLATILE GC_changing_list_current;
-# else
- GC_PTR * GC_changing_list_current;
-# endif
- /* Points at last added element. Also (ab)used for */
- /* synchronization. Updates and reads are assumed atomic. */
-
-GC_PTR * GC_changing_list_limit;
- /* Points at the last word of the buffer, which is always 0 */
- /* All entries in (GC_changing_list_current, */
- /* GC_changing_list_limit] are 0 */
-
-
-void GC_stubborn_init()
-{
-# define INIT_SIZE 10
-
- GC_changing_list_start = (GC_PTR *)
- GC_generic_malloc_inner(
- (word)(INIT_SIZE * sizeof(GC_PTR)),
- PTRFREE);
- BZERO(GC_changing_list_start,
- INIT_SIZE * sizeof(GC_PTR));
- if (GC_changing_list_start == 0) {
- GC_err_printf0("Insufficient space to start up\n");
- ABORT("GC_stubborn_init: put of space");
- }
- GC_changing_list_current = GC_changing_list_start;
- GC_changing_list_limit = GC_changing_list_start + INIT_SIZE - 1;
- * GC_changing_list_limit = 0;
-}
-
-/* Compact and possibly grow GC_uninit_list. The old copy is */
-/* left alone. Lock must be held. */
-/* When called GC_changing_list_current == GC_changing_list_limit */
-/* which is one past the current element. */
-/* When we finish GC_changing_list_current again points one past last */
-/* element. */
-/* Invariant while this is running: GC_changing_list_current */
-/* points at a word containing 0. */
-/* Returns FALSE on failure. */
-GC_bool GC_compact_changing_list()
-{
- register GC_PTR *p, *q;
- register word count = 0;
- word old_size = (char **)GC_changing_list_limit
- - (char **)GC_changing_list_start+1;
- /* The casts are needed as a workaround for an Amiga bug */
- register word new_size = old_size;
- GC_PTR * new_list;
-
- for (p = GC_changing_list_start; p < GC_changing_list_limit; p++) {
- if (*p != 0) count++;
- }
- if (2 * count > old_size) new_size = 2 * count;
- new_list = (GC_PTR *)
- GC_generic_malloc_inner(
- new_size * sizeof(GC_PTR), PTRFREE);
- /* PTRFREE is a lie. But we don't want the collector to */
- /* consider these. We do want the list itself to be */
- /* collectable. */
- if (new_list == 0) return(FALSE);
- BZERO(new_list, new_size * sizeof(GC_PTR));
- q = new_list;
- for (p = GC_changing_list_start; p < GC_changing_list_limit; p++) {
- if (*p != 0) *q++ = *p;
- }
- GC_changing_list_start = new_list;
- GC_changing_list_limit = new_list + new_size - 1;
- GC_changing_list_current = q;
- return(TRUE);
-}
-
-/* Add p to changing list. Clear p on failure. */
-# define ADD_CHANGING(p) \
- { \
- register struct hblk * h = HBLKPTR(p); \
- register word index = PHT_HASH(h); \
- \
- set_pht_entry_from_index(GC_changed_pages, index); \
- } \
- if (*GC_changing_list_current != 0 \
- && ++GC_changing_list_current == GC_changing_list_limit) { \
- if (!GC_compact_changing_list()) (p) = 0; \
- } \
- *GC_changing_list_current = p;
-
-void GC_change_stubborn(p)
-GC_PTR p;
-{
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- ADD_CHANGING(p);
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-void GC_end_stubborn_change(p)
-GC_PTR p;
-{
-# ifdef THREADS
- register VOLATILE GC_PTR * my_current = GC_changing_list_current;
-# else
- register GC_PTR * my_current = GC_changing_list_current;
-# endif
- register GC_bool tried_quick;
- DCL_LOCK_STATE;
-
- if (*my_current == p) {
- /* Hopefully the normal case. */
- /* Compaction could not have been running when we started. */
- *my_current = 0;
-# ifdef THREADS
- if (my_current == GC_changing_list_current) {
- /* Compaction can't have run in the interim. */
- /* We got away with the quick and dirty approach. */
- return;
- }
- tried_quick = TRUE;
-# else
- return;
-# endif
- } else {
- tried_quick = FALSE;
- }
- DISABLE_SIGNALS();
- LOCK();
- my_current = GC_changing_list_current;
- for (; my_current >= GC_changing_list_start; my_current--) {
- if (*my_current == p) {
- *my_current = 0;
- UNLOCK();
- ENABLE_SIGNALS();
- return;
- }
- }
- if (!tried_quick) {
- GC_err_printf1("Bad arg to GC_end_stubborn_change: 0x%lx\n",
- (unsigned long)p);
- ABORT("Bad arg to GC_end_stubborn_change");
- }
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-/* Allocate lb bytes of composite (pointerful) data */
-/* No pointer fields may be changed after a call to */
-/* GC_end_stubborn_change(p) where p is the value */
-/* returned by GC_malloc_stubborn. */
-# ifdef __STDC__
- GC_PTR GC_malloc_stubborn(size_t lb)
-# else
- GC_PTR GC_malloc_stubborn(lb)
- size_t lb;
-# endif
-{
-register ptr_t op;
-register ptr_t *opp;
-register word lw;
-ptr_t result;
-DCL_LOCK_STATE;
-
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_sobjfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- result = GC_generic_malloc((word)lb, STUBBORN);
- goto record;
- }
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- result = (GC_PTR) op;
- ADD_CHANGING(result);
- FASTUNLOCK();
- return((GC_PTR)result);
- } else {
- result = (GC_PTR)
- GC_generic_malloc((word)lb, STUBBORN);
- }
-record:
- DISABLE_SIGNALS();
- LOCK();
- ADD_CHANGING(result);
- UNLOCK();
- ENABLE_SIGNALS();
- return((GC_PTR)GC_clear_stack(result));
-}
-
-
-/* Functions analogous to GC_read_dirty and GC_page_was_dirty. */
-/* Report pages on which stubborn objects were changed. */
-void GC_read_changed()
-{
- register GC_PTR * p = GC_changing_list_start;
- register GC_PTR q;
- register struct hblk * h;
- register word index;
-
- if (p == 0) /* initializing */ return;
- BCOPY(GC_changed_pages, GC_prev_changed_pages,
- (sizeof GC_changed_pages));
- BZERO(GC_changed_pages, (sizeof GC_changed_pages));
- for (; p <= GC_changing_list_current; p++) {
- if ((q = *p) != 0) {
- h = HBLKPTR(q);
- index = PHT_HASH(h);
- set_pht_entry_from_index(GC_changed_pages, index);
- }
- }
-}
-
-GC_bool GC_page_was_changed(h)
-struct hblk * h;
-{
- register word index = PHT_HASH(h);
-
- return(get_pht_entry_from_index(GC_prev_changed_pages, index));
-}
-
-/* Remove unreachable entries from changed list. Should only be */
-/* called with mark bits consistent and lock held. */
-void GC_clean_changing_list()
-{
- register GC_PTR * p = GC_changing_list_start;
- register GC_PTR q;
- register ptr_t r;
- register unsigned long count = 0;
- register unsigned long dropped_count = 0;
-
- if (p == 0) /* initializing */ return;
- for (; p <= GC_changing_list_current; p++) {
- if ((q = *p) != 0) {
- count++;
- r = (ptr_t)GC_base(q);
- if (r == 0 || !GC_is_marked(r)) {
- *p = 0;
- dropped_count++;
- }
- }
- }
-# ifdef PRINTSTATS
- if (count > 0) {
- GC_printf2("%lu entries in changing list: reclaimed %lu\n",
- (unsigned long)count, (unsigned long)dropped_count);
- }
-# endif
-}
-
-#else /* !STUBBORN_ALLOC */
-
-# ifdef __STDC__
- GC_PTR GC_malloc_stubborn(size_t lb)
-# else
- GC_PTR GC_malloc_stubborn(lb)
- size_t lb;
-# endif
-{
- return(GC_malloc(lb));
-}
-
-/*ARGSUSED*/
-void GC_end_stubborn_change(p)
-GC_PTR p;
-{
-}
-
-/*ARGSUSED*/
-void GC_change_stubborn(p)
-GC_PTR p;
-{
-}
-
-
-#endif
diff --git a/boehm-gc/test.c b/boehm-gc/test.c
deleted file mode 100644
index 96a54150a86..00000000000
--- a/boehm-gc/test.c
+++ /dev/null
@@ -1,1390 +0,0 @@
-/*
- * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/* An incomplete test for the garbage collector. */
-/* Some more obscure entry points are not tested at all. */
-
-# undef GC_BUILD
-
-# if defined(mips) && defined(SYSTYPE_BSD43)
- /* MIPS RISCOS 4 */
-# else
-# include <stdlib.h>
-# endif
-# include <stdio.h>
-# include <assert.h> /* Not normally used, but handy for debugging. */
-# include "gc.h"
-# include "gc_typed.h"
-# include "gc_priv.h" /* For output, locking, and some statistics */
-# include "gcconfig.h"
-
-# ifdef MSWIN32
-# include <windows.h>
-# endif
-
-# ifdef PCR
-# include "th/PCR_ThCrSec.h"
-# include "th/PCR_Th.h"
-# undef GC_printf0
-# define GC_printf0 printf
-# undef GC_printf1
-# define GC_printf1 printf
-# endif
-
-# ifdef SOLARIS_THREADS
-# include <thread.h>
-# include <synch.h>
-# endif
-
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
-# include <pthread.h>
-# endif
-
-# ifdef WIN32_THREADS
-# include <process.h>
- static CRITICAL_SECTION incr_cs;
-# endif
-
-# ifdef AMIGA
- long __stack = 200000;
-# endif
-
-# define FAIL (void)abort()
-
-/* AT_END may be defined to excercise the interior pointer test */
-/* if the collector is configured with ALL_INTERIOR_POINTERS. */
-/* As it stands, this test should succeed with either */
-/* configuration. In the FIND_LEAK configuration, it should */
-/* find lots of leaks, since we free almost nothing. */
-
-struct SEXPR {
- struct SEXPR * sexpr_car;
- struct SEXPR * sexpr_cdr;
-};
-
-
-typedef struct SEXPR * sexpr;
-
-# define INT_TO_SEXPR(x) ((sexpr)(unsigned long)(x))
-
-# undef nil
-# define nil (INT_TO_SEXPR(0))
-# define car(x) ((x) -> sexpr_car)
-# define cdr(x) ((x) -> sexpr_cdr)
-# define is_nil(x) ((x) == nil)
-
-
-int extra_count = 0; /* Amount of space wasted in cons node */
-
-/* Silly implementation of Lisp cons. Intentionally wastes lots of space */
-/* to test collector. */
-sexpr cons (x, y)
-sexpr x;
-sexpr y;
-{
- register sexpr r;
- register int *p;
- register int my_extra = extra_count;
-
- r = (sexpr) GC_MALLOC_STUBBORN(sizeof(struct SEXPR) + my_extra);
- if (r == 0) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
- for (p = (int *)r;
- ((char *)p) < ((char *)r) + my_extra + sizeof(struct SEXPR); p++) {
- if (*p) {
- (void)GC_printf1("Found nonzero at 0x%lx - allocator is broken\n",
- (unsigned long)p);
- FAIL;
- }
- *p = 13;
- }
-# ifdef AT_END
- r = (sexpr)((char *)r + (my_extra & ~7));
-# endif
- r -> sexpr_car = x;
- r -> sexpr_cdr = y;
- my_extra++;
- if ( my_extra >= 5000 ) {
- extra_count = 0;
- } else {
- extra_count = my_extra;
- }
- GC_END_STUBBORN_CHANGE((char *)r);
- return(r);
-}
-
-sexpr small_cons (x, y)
-sexpr x;
-sexpr y;
-{
- register sexpr r;
-
- r = (sexpr) GC_MALLOC(sizeof(struct SEXPR));
- if (r == 0) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
- r -> sexpr_car = x;
- r -> sexpr_cdr = y;
- return(r);
-}
-
-sexpr small_cons_uncollectable (x, y)
-sexpr x;
-sexpr y;
-{
- register sexpr r;
-
- r = (sexpr) GC_MALLOC_UNCOLLECTABLE(sizeof(struct SEXPR));
- if (r == 0) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
- r -> sexpr_car = x;
- r -> sexpr_cdr = (sexpr)(~(unsigned long)y);
- return(r);
-}
-
-#ifdef GC_GCJ_SUPPORT
-
-#include "gc_mark.h"
-#include "dbg_mlc.h"
-#include "include/gc_gcj.h"
-
-/* The following struct emulates the vtable in gcj. */
-/* This assumes the default value of MARK_DESCR_OFFSET. */
-struct fake_vtable {
- void * dummy; /* class pointer in real gcj. */
- size_t descr;
-};
-
-struct fake_vtable gcj_class_struct1 = { 0, sizeof(struct SEXPR)
- + sizeof(struct fake_vtable *) };
- /* length based descriptor. */
-struct fake_vtable gcj_class_struct2 =
- { 0, (3l << (CPP_WORDSZ - 3)) | DS_BITMAP};
- /* Bitmap based descriptor. */
-
-struct ms_entry * fake_gcj_mark_proc(word * addr,
- struct ms_entry *mark_stack_ptr,
- struct ms_entry *mark_stack_limit,
- word env )
-{
- sexpr x;
- if (1 == env) {
- /* Object allocated with debug allocator. */
- addr = (word *)USR_PTR_FROM_BASE(addr);
- }
- x = (sexpr)(addr + 1); /* Skip the vtable pointer. */
- /* We could just call PUSH_CONTENTS directly here. But any real */
- /* real client would try to filter out the obvious misses. */
- if (0 != x -> sexpr_cdr) {
- PUSH_CONTENTS((ptr_t)(x -> sexpr_cdr), mark_stack_ptr,
- mark_stack_limit, &(x -> sexpr_cdr), exit1);
- }
- if ((ptr_t)(x -> sexpr_car) > GC_least_plausible_heap_addr) {
- PUSH_CONTENTS((ptr_t)(x -> sexpr_car), mark_stack_ptr,
- mark_stack_limit, &(x -> sexpr_car), exit2);
- }
- return(mark_stack_ptr);
-}
-
-sexpr gcj_cons(x, y)
-sexpr x;
-sexpr y;
-{
- GC_word * r;
- sexpr result;
- static int count = 0;
-
- if (++count & 1) {
- r = (GC_word *) GC_GCJ_FAST_MALLOC(3, &gcj_class_struct1);
- } else {
- r = (GC_word *) GC_GCJ_MALLOC(sizeof(struct SEXPR)
- + sizeof(struct fake_vtable*),
- &gcj_class_struct2);
- }
- if (r == 0) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
- result = (sexpr)(r + 1);
- result -> sexpr_car = x;
- result -> sexpr_cdr = y;
- return(result);
-}
-#endif
-
-/* Return reverse(x) concatenated with y */
-sexpr reverse1(x, y)
-sexpr x, y;
-{
- if (is_nil(x)) {
- return(y);
- } else {
- return( reverse1(cdr(x), cons(car(x), y)) );
- }
-}
-
-sexpr reverse(x)
-sexpr x;
-{
- return( reverse1(x, nil) );
-}
-
-sexpr ints(low, up)
-int low, up;
-{
- if (low > up) {
- return(nil);
- } else {
- return(small_cons(small_cons(INT_TO_SEXPR(low), nil), ints(low+1, up)));
- }
-}
-
-#ifdef GC_GCJ_SUPPORT
-/* Return reverse(x) concatenated with y */
-sexpr gcj_reverse1(x, y)
-sexpr x, y;
-{
- if (is_nil(x)) {
- return(y);
- } else {
- return( gcj_reverse1(cdr(x), gcj_cons(car(x), y)) );
- }
-}
-
-sexpr gcj_reverse(x)
-sexpr x;
-{
- return( gcj_reverse1(x, nil) );
-}
-
-sexpr gcj_ints(low, up)
-int low, up;
-{
- if (low > up) {
- return(nil);
- } else {
- return(gcj_cons(gcj_cons(INT_TO_SEXPR(low), nil), gcj_ints(low+1, up)));
- }
-}
-#endif /* GC_GCJ_SUPPORT */
-
-/* To check uncollectable allocation we build lists with disguised cdr */
-/* pointers, and make sure they don't go away. */
-sexpr uncollectable_ints(low, up)
-int low, up;
-{
- if (low > up) {
- return(nil);
- } else {
- return(small_cons_uncollectable(small_cons(INT_TO_SEXPR(low), nil),
- uncollectable_ints(low+1, up)));
- }
-}
-
-void check_ints(list, low, up)
-sexpr list;
-int low, up;
-{
- if ((int)(GC_word)(car(car(list))) != low) {
- (void)GC_printf0(
- "List reversal produced incorrect list - collector is broken\n");
- FAIL;
- }
- if (low == up) {
- if (cdr(list) != nil) {
- (void)GC_printf0("List too long - collector is broken\n");
- FAIL;
- }
- } else {
- check_ints(cdr(list), low+1, up);
- }
-}
-
-# define UNCOLLECTABLE_CDR(x) (sexpr)(~(unsigned long)(cdr(x)))
-
-void check_uncollectable_ints(list, low, up)
-sexpr list;
-int low, up;
-{
-assert(GC_is_marked(list));
- if ((int)(GC_word)(car(car(list))) != low) {
- (void)GC_printf0(
- "Uncollectable list corrupted - collector is broken\n");
- FAIL;
- }
- if (low == up) {
- if (UNCOLLECTABLE_CDR(list) != nil) {
- (void)GC_printf0("Uncollectable list too long - collector is broken\n");
- FAIL;
- }
- } else {
- check_uncollectable_ints(UNCOLLECTABLE_CDR(list), low+1, up);
- }
-}
-
-/* Not used, but useful for debugging: */
-void print_int_list(x)
-sexpr x;
-{
- if (is_nil(x)) {
- (void)GC_printf0("NIL\n");
- } else {
- (void)GC_printf1("(%ld)", (long)(car(car(x))));
- if (!is_nil(cdr(x))) {
- (void)GC_printf0(", ");
- (void)print_int_list(cdr(x));
- } else {
- (void)GC_printf0("\n");
- }
- }
-}
-
-/* Try to force a to be strangely aligned */
-struct {
- char dummy;
- sexpr aa;
-} A;
-#define a A.aa
-
-/*
- * A tiny list reversal test to check thread creation.
- */
-#ifdef THREADS
-
-# ifdef WIN32_THREADS
- unsigned __stdcall tiny_reverse_test(void * arg)
-# else
- void * tiny_reverse_test(void * arg)
-# endif
-{
- check_ints(reverse(reverse(ints(1,10))), 1, 10);
- return 0;
-}
-
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(SOLARIS_PTHREADS) || defined(HPUX_THREADS)
- void fork_a_thread()
- {
- pthread_t t;
- int code;
- if ((code = pthread_create(&t, 0, tiny_reverse_test, 0)) != 0) {
- (void)GC_printf1("Small thread creation failed %lu\n",
- (unsigned long)code);
- FAIL;
- }
- if ((code = pthread_join(t, 0)) != 0) {
- (void)GC_printf1("Small thread join failed %lu\n",
- (unsigned long)code);
- FAIL;
- }
- }
-
-# elif defined(WIN32_THREADS)
- void fork_a_thread()
- {
- unsigned thread_id;
- HANDLE h;
- h = (HANDLE)_beginthreadex(NULL, 0, tiny_reverse_test,
- 0, 0, &thread_id);
- if (h == (HANDLE)-1) {
- (void)GC_printf1("Small thread creation failed %lu\n",
- (unsigned long)GetLastError());
- FAIL;
- }
- if (WaitForSingleObject(h, INFINITE) != WAIT_OBJECT_0) {
- (void)GC_printf1("Small thread wait failed %lu\n",
- (unsigned long)GetLastError());
- FAIL;
- }
- }
-
-/* # elif defined(SOLARIS_THREADS) */
-
-# else
-
-# define fork_a_thread()
-
-# endif
-
-#else
-
-# define fork_a_thread()
-
-#endif
-
-/*
- * Repeatedly reverse lists built out of very different sized cons cells.
- * Check that we didn't lose anything.
- */
-void reverse_test()
-{
- int i;
- sexpr b;
- sexpr c;
- sexpr d;
- sexpr e;
- sexpr *f, *g, *h;
-# if defined(MSWIN32) || defined(MACOS)
- /* Win32S only allows 128K stacks */
-# define BIG 1000
-# else
-# if defined PCR
- /* PCR default stack is 100K. Stack frames are up to 120 bytes. */
-# define BIG 700
-# else
-# define BIG 4500
-# endif
-# endif
-
- A.dummy = 17;
- a = ints(1, 49);
- b = ints(1, 50);
- c = ints(1, BIG);
- d = uncollectable_ints(1, 100);
- e = uncollectable_ints(1, 1);
- /* Check that realloc updates object descriptors correctly */
- f = (sexpr *)GC_MALLOC(4 * sizeof(sexpr));
- f = (sexpr *)GC_REALLOC((GC_PTR)f, 6 * sizeof(sexpr));
- f[5] = ints(1,17);
- g = (sexpr *)GC_MALLOC(513 * sizeof(sexpr));
- g = (sexpr *)GC_REALLOC((GC_PTR)g, 800 * sizeof(sexpr));
- g[799] = ints(1,18);
- h = (sexpr *)GC_MALLOC(1025 * sizeof(sexpr));
- h = (sexpr *)GC_REALLOC((GC_PTR)h, 2000 * sizeof(sexpr));
-# ifdef GC_GCJ_SUPPORT
- h[1999] = gcj_ints(1,200);
- h[1999] = gcj_reverse(h[1999]);
-# else
- h[1999] = ints(1,200);
-# endif
- /* Try to force some collections and reuse of small list elements */
- for (i = 0; i < 10; i++) {
- (void)ints(1, BIG);
- }
- /* Superficially test interior pointer recognition on stack */
- c = (sexpr)((char *)c + sizeof(char *));
- d = (sexpr)((char *)d + sizeof(char *));
-
-# ifdef __STDC__
- GC_FREE((void *)e);
-# else
- GC_FREE((char *)e);
-# endif
- check_ints(b,1,50);
- check_ints(a,1,49);
- for (i = 0; i < 50; i++) {
- check_ints(b,1,50);
- b = reverse(reverse(b));
- }
- check_ints(b,1,50);
- check_ints(a,1,49);
- for (i = 0; i < 60; i++) {
- if (i % 10 == 0) fork_a_thread();
- /* This maintains the invariant that a always points to a list of */
- /* 49 integers. Thus this is thread safe without locks, */
- /* assuming atomic pointer assignments. */
- a = reverse(reverse(a));
-# if !defined(AT_END) && !defined(THREADS)
- /* This is not thread safe, since realloc explicitly deallocates */
- if (i & 1) {
- a = (sexpr)GC_REALLOC((GC_PTR)a, 500);
- } else {
- a = (sexpr)GC_REALLOC((GC_PTR)a, 8200);
- }
-# endif
- }
- check_ints(a,1,49);
- check_ints(b,1,50);
- c = (sexpr)((char *)c - sizeof(char *));
- d = (sexpr)((char *)d - sizeof(char *));
- check_ints(c,1,BIG);
- check_uncollectable_ints(d, 1, 100);
- check_ints(f[5], 1,17);
- check_ints(g[799], 1,18);
-# ifdef GC_GCJ_SUPPORT
- h[1999] = gcj_reverse(h[1999]);
-# endif
- check_ints(h[1999], 1,200);
-# ifndef THREADS
- a = 0;
-# endif
- b = c = 0;
-}
-
-/*
- * The rest of this builds balanced binary trees, checks that they don't
- * disappear, and tests finalization.
- */
-typedef struct treenode {
- int level;
- struct treenode * lchild;
- struct treenode * rchild;
-} tn;
-
-int finalizable_count = 0;
-int finalized_count = 0;
-VOLATILE int dropped_something = 0;
-
-# ifdef __STDC__
- void finalizer(void * obj, void * client_data)
-# else
- void finalizer(obj, client_data)
- char * obj;
- char * client_data;
-# endif
-{
- tn * t = (tn *)obj;
-
-# ifdef PCR
- PCR_ThCrSec_EnterSys();
-# endif
-# ifdef SOLARIS_THREADS
- static mutex_t incr_lock;
- mutex_lock(&incr_lock);
-# endif
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
- static pthread_mutex_t incr_lock = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock(&incr_lock);
-# endif
-# ifdef WIN32_THREADS
- EnterCriticalSection(&incr_cs);
-# endif
- if ((int)(GC_word)client_data != t -> level) {
- (void)GC_printf0("Wrong finalization data - collector is broken\n");
- FAIL;
- }
- finalized_count++;
-# ifdef PCR
- PCR_ThCrSec_ExitSys();
-# endif
-# ifdef SOLARIS_THREADS
- mutex_unlock(&incr_lock);
-# endif
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
- pthread_mutex_unlock(&incr_lock);
-# endif
-# ifdef WIN32_THREADS
- LeaveCriticalSection(&incr_cs);
-# endif
-}
-
-size_t counter = 0;
-
-# define MAX_FINALIZED 8000
-
-# if !defined(MACOS)
- GC_FAR GC_word live_indicators[MAX_FINALIZED] = {0};
-#else
- /* Too big for THINK_C. have to allocate it dynamically. */
- GC_word *live_indicators = 0;
-#endif
-
-int live_indicators_count = 0;
-
-tn * mktree(n)
-int n;
-{
- tn * result = (tn *)GC_MALLOC(sizeof(tn));
-
-#if defined(MACOS)
- /* get around static data limitations. */
- if (!live_indicators)
- live_indicators =
- (GC_word*)NewPtrClear(MAX_FINALIZED * sizeof(GC_word));
- if (!live_indicators) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
-#endif
- if (n == 0) return(0);
- if (result == 0) {
- (void)GC_printf0("Out of memory\n");
- exit(1);
- }
- result -> level = n;
- result -> lchild = mktree(n-1);
- result -> rchild = mktree(n-1);
- if (counter++ % 17 == 0 && n >= 2) {
- tn * tmp = result -> lchild -> rchild;
-
- result -> lchild -> rchild = result -> rchild -> lchild;
- result -> rchild -> lchild = tmp;
- }
- if (counter++ % 119 == 0) {
- int my_index;
-
- {
-# ifdef PCR
- PCR_ThCrSec_EnterSys();
-# endif
-# ifdef SOLARIS_THREADS
- static mutex_t incr_lock;
- mutex_lock(&incr_lock);
-# endif
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(HPUX_THREADS)
- static pthread_mutex_t incr_lock = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock(&incr_lock);
-# endif
-# ifdef WIN32_THREADS
- EnterCriticalSection(&incr_cs);
-# endif
- /* Losing a count here causes erroneous report of failure. */
- finalizable_count++;
- my_index = live_indicators_count++;
-# ifdef PCR
- PCR_ThCrSec_ExitSys();
-# endif
-# ifdef SOLARIS_THREADS
- mutex_unlock(&incr_lock);
-# endif
-# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \
- || defined(HPUX_THREADS)
- pthread_mutex_unlock(&incr_lock);
-# endif
-# ifdef WIN32_THREADS
- LeaveCriticalSection(&incr_cs);
-# endif
- }
-
- GC_REGISTER_FINALIZER((GC_PTR)result, finalizer, (GC_PTR)(GC_word)n,
- (GC_finalization_proc *)0, (GC_PTR *)0);
- if (my_index >= MAX_FINALIZED) {
- GC_printf0("live_indicators overflowed\n");
- FAIL;
- }
- live_indicators[my_index] = 13;
- if (GC_GENERAL_REGISTER_DISAPPEARING_LINK(
- (GC_PTR *)(&(live_indicators[my_index])),
- (GC_PTR)result) != 0) {
- GC_printf0("GC_general_register_disappearing_link failed\n");
- FAIL;
- }
- if (GC_unregister_disappearing_link(
- (GC_PTR *)
- (&(live_indicators[my_index]))) == 0) {
- GC_printf0("GC_unregister_disappearing_link failed\n");
- FAIL;
- }
- if (GC_GENERAL_REGISTER_DISAPPEARING_LINK(
- (GC_PTR *)(&(live_indicators[my_index])),
- (GC_PTR)result) != 0) {
- GC_printf0("GC_general_register_disappearing_link failed 2\n");
- FAIL;
- }
- }
- return(result);
-}
-
-void chktree(t,n)
-tn *t;
-int n;
-{
- if (n == 0 && t != 0) {
- (void)GC_printf0("Clobbered a leaf - collector is broken\n");
- FAIL;
- }
- if (n == 0) return;
- if (t -> level != n) {
- (void)GC_printf1("Lost a node at level %lu - collector is broken\n",
- (unsigned long)n);
- FAIL;
- }
- if (counter++ % 373 == 0) (void) GC_MALLOC(counter%5001);
- chktree(t -> lchild, n-1);
- if (counter++ % 73 == 0) (void) GC_MALLOC(counter%373);
- chktree(t -> rchild, n-1);
-}
-
-# if defined(SOLARIS_THREADS) && !defined(_SOLARIS_PTHREADS)
-thread_key_t fl_key;
-
-void * alloc8bytes()
-{
-# if defined(SMALL_CONFIG) || defined(GC_DEBUG)
- return(GC_MALLOC(8));
-# else
- void ** my_free_list_ptr;
- void * my_free_list;
-
- if (thr_getspecific(fl_key, (void **)(&my_free_list_ptr)) != 0) {
- (void)GC_printf0("thr_getspecific failed\n");
- FAIL;
- }
- if (my_free_list_ptr == 0) {
- my_free_list_ptr = GC_NEW_UNCOLLECTABLE(void *);
- if (thr_setspecific(fl_key, my_free_list_ptr) != 0) {
- (void)GC_printf0("thr_setspecific failed\n");
- FAIL;
- }
- }
- my_free_list = *my_free_list_ptr;
- if (my_free_list == 0) {
- my_free_list = GC_malloc_many(8);
- if (my_free_list == 0) {
- (void)GC_printf0("alloc8bytes out of memory\n");
- FAIL;
- }
- }
- *my_free_list_ptr = GC_NEXT(my_free_list);
- GC_NEXT(my_free_list) = 0;
- return(my_free_list);
-# endif
-}
-
-#else
-
-# if defined(_SOLARIS_PTHREADS) || defined(IRIX_THREADS) \
- || defined(LINUX_THREADS) || defined(HPUX_THREADS)
-pthread_key_t fl_key;
-
-void * alloc8bytes()
-{
-# ifdef SMALL_CONFIG
- return(GC_malloc(8));
-# else
- void ** my_free_list_ptr;
- void * my_free_list;
-
- my_free_list_ptr = (void **)pthread_getspecific(fl_key);
- if (my_free_list_ptr == 0) {
- my_free_list_ptr = GC_NEW_UNCOLLECTABLE(void *);
- if (pthread_setspecific(fl_key, my_free_list_ptr) != 0) {
- (void)GC_printf0("pthread_setspecific failed\n");
- FAIL;
- }
- }
- my_free_list = *my_free_list_ptr;
- if (my_free_list == 0) {
- my_free_list = GC_malloc_many(8);
- if (my_free_list == 0) {
- (void)GC_printf0("alloc8bytes out of memory\n");
- FAIL;
- }
- }
- *my_free_list_ptr = GC_NEXT(my_free_list);
- GC_NEXT(my_free_list) = 0;
- return(my_free_list);
-# endif
-}
-
-# else
-# define alloc8bytes() GC_MALLOC_ATOMIC(8)
-# endif
-#endif
-
-void alloc_small(n)
-int n;
-{
- register int i;
-
- for (i = 0; i < n; i += 8) {
- if (alloc8bytes() == 0) {
- (void)GC_printf0("Out of memory\n");
- FAIL;
- }
- }
-}
-
-# if defined(THREADS) && defined(GC_DEBUG)
-# define TREE_HEIGHT 15
-# else
-# define TREE_HEIGHT 16
-# endif
-void tree_test()
-{
- tn * root;
- register int i;
-
- root = mktree(TREE_HEIGHT);
- alloc_small(5000000);
- chktree(root, TREE_HEIGHT);
- if (finalized_count && ! dropped_something) {
- (void)GC_printf0("Premature finalization - collector is broken\n");
- FAIL;
- }
- dropped_something = 1;
- GC_noop(root); /* Root needs to remain live until */
- /* dropped_something is set. */
- root = mktree(TREE_HEIGHT);
- chktree(root, TREE_HEIGHT);
- for (i = TREE_HEIGHT; i >= 0; i--) {
- root = mktree(i);
- chktree(root, i);
- }
- alloc_small(5000000);
-}
-
-unsigned n_tests = 0;
-
-GC_word bm_huge[10] = {
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0xffffffff,
- 0x00ffffff,
-};
-
-
-/* A very simple test of explicitly typed allocation */
-void typed_test()
-{
- GC_word * old, * new;
- GC_word bm3 = 0x3;
- GC_word bm2 = 0x2;
- GC_word bm_large = 0xf7ff7fff;
- GC_descr d1 = GC_make_descriptor(&bm3, 2);
- GC_descr d2 = GC_make_descriptor(&bm2, 2);
-# ifndef LINT
- GC_descr dummy = GC_make_descriptor(&bm_large, 32);
-# endif
- GC_descr d3 = GC_make_descriptor(&bm_large, 32);
- GC_descr d4 = GC_make_descriptor(bm_huge, 320);
- GC_word * x = (GC_word *)GC_malloc_explicitly_typed(2000, d4);
- register int i;
-
- old = 0;
- for (i = 0; i < 4000; i++) {
- new = (GC_word *) GC_malloc_explicitly_typed(4 * sizeof(GC_word), d1);
- if (0 != new[0] || 0 != new[1]) {
- GC_printf0("Bad initialization by GC_malloc_explicitly_typed\n");
- FAIL;
- }
- new[0] = 17;
- new[1] = (GC_word)old;
- old = new;
- new = (GC_word *) GC_malloc_explicitly_typed(4 * sizeof(GC_word), d2);
- new[0] = 17;
- new[1] = (GC_word)old;
- old = new;
- new = (GC_word *) GC_malloc_explicitly_typed(33 * sizeof(GC_word), d3);
- new[0] = 17;
- new[1] = (GC_word)old;
- old = new;
- new = (GC_word *) GC_calloc_explicitly_typed(4, 2 * sizeof(GC_word),
- d1);
- new[0] = 17;
- new[1] = (GC_word)old;
- old = new;
- if (i & 0xff) {
- new = (GC_word *) GC_calloc_explicitly_typed(7, 3 * sizeof(GC_word),
- d2);
- } else {
- new = (GC_word *) GC_calloc_explicitly_typed(1001,
- 3 * sizeof(GC_word),
- d2);
- if (0 != new[0] || 0 != new[1]) {
- GC_printf0("Bad initialization by GC_malloc_explicitly_typed\n");
- FAIL;
- }
- }
- new[0] = 17;
- new[1] = (GC_word)old;
- old = new;
- }
- for (i = 0; i < 20000; i++) {
- if (new[0] != 17) {
- (void)GC_printf1("typed alloc failed at %lu\n",
- (unsigned long)i);
- FAIL;
- }
- new[0] = 0;
- old = new;
- new = (GC_word *)(old[1]);
- }
- GC_gcollect();
- GC_noop(x);
-}
-
-int fail_count = 0;
-
-#ifndef __STDC__
-/*ARGSUSED*/
-void fail_proc1(x)
-GC_PTR x;
-{
- fail_count++;
-}
-
-#else
-
-/*ARGSUSED*/
-void fail_proc1(GC_PTR x)
-{
- fail_count++;
-}
-
-#endif /* __STDC__ */
-
-#ifdef THREADS
-# define TEST_FAIL_COUNT(n) 1
-#else
-# define TEST_FAIL_COUNT(n) (fail_count >= (n))
-#endif
-
-void run_one_test()
-{
- char *x;
-# ifdef LINT
- char *y = 0;
-# else
- char *y = (char *)(size_t)fail_proc1;
-# endif
- DCL_LOCK_STATE;
-
-# ifdef FIND_LEAK
- (void)GC_printf0(
- "This test program is not designed for leak detection mode\n");
- (void)GC_printf0("Expect lots of problems.\n");
-# endif
- if (GC_size(GC_malloc(7)) != 8
- || GC_size(GC_malloc(15)) != 16) {
- (void)GC_printf0("GC_size produced unexpected results\n");
- FAIL;
- }
- if (GC_size(GC_malloc(0)) != 4 && GC_size(GC_malloc(0)) != 8) {
- (void)GC_printf0("GC_malloc(0) failed\n");
- FAIL;
- }
- if (GC_size(GC_malloc_uncollectable(0)) != 4
- && GC_size(GC_malloc_uncollectable(0)) != 8) {
- (void)GC_printf0("GC_malloc_uncollectable(0) failed\n");
- FAIL;
- }
- GC_FREE(0);
- GC_is_valid_displacement_print_proc = fail_proc1;
- GC_is_visible_print_proc = fail_proc1;
- x = GC_malloc(16);
- if (GC_base(x + 13) != x) {
- (void)GC_printf0("GC_base(heap ptr) produced incorrect result\n");
- FAIL;
- }
-# ifndef PCR
- if (GC_base(y) != 0) {
- (void)GC_printf0("GC_base(fn_ptr) produced incorrect result\n");
- FAIL;
- }
-# endif
- if (GC_same_obj(x+5, x) != x + 5) {
- (void)GC_printf0("GC_same_obj produced incorrect result\n");
- FAIL;
- }
- if (GC_is_visible(y) != y || GC_is_visible(x) != x) {
- (void)GC_printf0("GC_is_visible produced incorrect result\n");
- FAIL;
- }
- if (!TEST_FAIL_COUNT(1)) {
-# if!(defined(RS6000) || defined(POWERPC) || defined(IA64))
- /* ON RS6000s function pointers point to a descriptor in the */
- /* data segment, so there should have been no failures. */
- (void)GC_printf0("GC_is_visible produced wrong failure indication\n");
- FAIL;
-# endif
- }
- if (GC_is_valid_displacement(y) != y
- || GC_is_valid_displacement(x) != x
- || GC_is_valid_displacement(x + 3) != x + 3) {
- (void)GC_printf0(
- "GC_is_valid_displacement produced incorrect result\n");
- FAIL;
- }
-# ifndef ALL_INTERIOR_POINTERS
-# if defined(RS6000) || defined(POWERPC)
- if (!TEST_FAIL_COUNT(1)) {
-# else
- if (!TEST_FAIL_COUNT(2)) {
-# endif
- (void)GC_printf0("GC_is_valid_displacement produced wrong failure indication\n");
- FAIL;
- }
-# endif
- /* Test floating point alignment */
- *(double *)GC_MALLOC(sizeof(double)) = 1.0;
- *(double *)GC_MALLOC(sizeof(double)) = 1.0;
-# ifdef GC_GCJ_SUPPORT
- GC_REGISTER_DISPLACEMENT(sizeof(struct fake_vtable *));
- GC_init_gcj_malloc(0, (void *)fake_gcj_mark_proc);
-# endif
- /* Repeated list reversal test. */
- reverse_test();
-# ifdef PRINTSTATS
- GC_printf0("-------------Finished reverse_test\n");
-# endif
- typed_test();
-# ifdef PRINTSTATS
- GC_printf0("-------------Finished typed_test\n");
-# endif
- tree_test();
- LOCK();
- n_tests++;
- UNLOCK();
- /* GC_printf1("Finished %x\n", pthread_self()); */
-}
-
-void check_heap_stats()
-{
- unsigned long max_heap_sz;
- register int i;
- int still_live;
- int late_finalize_count = 0;
-
- if (sizeof(char *) > 4) {
- max_heap_sz = 15000000;
- } else {
- max_heap_sz = 11000000;
- }
-# ifdef GC_DEBUG
- max_heap_sz *= 2;
-# ifdef SPARC
- max_heap_sz *= 2;
-# endif
-# endif
- /* Garbage collect repeatedly so that all inaccessible objects */
- /* can be finalized. */
- while (GC_collect_a_little()) { }
- for (i = 0; i < 16; i++) {
- GC_gcollect();
- late_finalize_count += GC_invoke_finalizers();
- }
- (void)GC_printf1("Completed %lu tests\n", (unsigned long)n_tests);
- (void)GC_printf2("Finalized %lu/%lu objects - ",
- (unsigned long)finalized_count,
- (unsigned long)finalizable_count);
-# ifdef FINALIZE_ON_DEMAND
- if (finalized_count != late_finalize_count) {
- (void)GC_printf0("Demand finalization error\n");
- FAIL;
- }
-# endif
- if (finalized_count > finalizable_count
- || finalized_count < finalizable_count/2) {
- (void)GC_printf0("finalization is probably broken\n");
- FAIL;
- } else {
- (void)GC_printf0("finalization is probably ok\n");
- }
- still_live = 0;
- for (i = 0; i < MAX_FINALIZED; i++) {
- if (live_indicators[i] != 0) {
- still_live++;
- }
- }
- i = finalizable_count - finalized_count - still_live;
- if (0 != i) {
- (void)GC_printf2
- ("%lu disappearing links remain and %lu more objects were not finalized\n",
- (unsigned long) still_live, (unsigned long)i);
- if (i > 10) {
- GC_printf0("\tVery suspicious!\n");
- } else {
- GC_printf0("\tSlightly suspicious, but probably OK.\n");
- }
- }
- (void)GC_printf1("Total number of bytes allocated is %lu\n",
- (unsigned long)
- WORDS_TO_BYTES(GC_words_allocd + GC_words_allocd_before_gc));
- (void)GC_printf1("Final heap size is %lu bytes\n",
- (unsigned long)GC_get_heap_size());
- if (WORDS_TO_BYTES(GC_words_allocd + GC_words_allocd_before_gc)
- < 33500000*n_tests) {
- (void)GC_printf0("Incorrect execution - missed some allocations\n");
- FAIL;
- }
- if (GC_get_heap_size() > max_heap_sz*n_tests) {
- (void)GC_printf0("Unexpected heap growth - collector may be broken\n");
- FAIL;
- }
- (void)GC_printf0("Collector appears to work\n");
-}
-
-#if defined(MACOS)
-void SetMinimumStack(long minSize)
-{
- long newApplLimit;
-
- if (minSize > LMGetDefltStack())
- {
- newApplLimit = (long) GetApplLimit()
- - (minSize - LMGetDefltStack());
- SetApplLimit((Ptr) newApplLimit);
- MaxApplZone();
- }
-}
-
-#define cMinStackSpace (512L * 1024L)
-
-#endif
-
-#ifdef __STDC__
- void warn_proc(char *msg, GC_word p)
-#else
- void warn_proc(msg, p)
- char *msg;
- GC_word p;
-#endif
-{
- GC_printf1(msg, (unsigned long)p);
- FAIL;
-}
-
-
-#if !defined(PCR) && !defined(SOLARIS_THREADS) && !defined(WIN32_THREADS) \
- && !defined(IRIX_THREADS) && !defined(LINUX_THREADS) \
- && !defined(HPUX_THREADS) || defined(LINT)
-#if defined(MSWIN32) && !defined(__MINGW32__)
- int APIENTRY WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmd, int n)
-#else
- int main()
-#endif
-{
-# if defined(DJGPP)
- int dummy;
-# endif
- n_tests = 0;
-
-# if defined(DJGPP)
- /* No good way to determine stack base from library; do it */
- /* manually on this platform. */
- GC_stackbottom = (GC_PTR)(&dummy);
-# endif
-# if defined(MACOS)
- /* Make sure we have lots and lots of stack space. */
- SetMinimumStack(cMinStackSpace);
- /* Cheat and let stdio initialize toolbox for us. */
- printf("Testing GC Macintosh port.\n");
-# endif
- GC_INIT(); /* Only needed if gc is dynamic library. */
- (void) GC_set_warn_proc(warn_proc);
-# if defined(MPROTECT_VDB) || defined(PROC_VDB)
- GC_enable_incremental();
- (void) GC_printf0("Switched to incremental mode\n");
-# if defined(MPROTECT_VDB)
- (void)GC_printf0("Emulating dirty bits with mprotect/signals\n");
-# else
- (void)GC_printf0("Reading dirty bits from /proc\n");
-# endif
-# endif
- run_one_test();
- check_heap_stats();
- (void)fflush(stdout);
-# ifdef LINT
- /* Entry points we should be testing, but aren't. */
- /* Some can be tested by defining GC_DEBUG at the top of this file */
- /* This is a bit SunOS4 specific. */
- GC_noop(GC_expand_hp, GC_add_roots, GC_clear_roots,
- GC_register_disappearing_link,
- GC_register_finalizer_ignore_self,
- GC_debug_register_displacement,
- GC_print_obj, GC_debug_change_stubborn,
- GC_debug_end_stubborn_change, GC_debug_malloc_uncollectable,
- GC_debug_free, GC_debug_realloc, GC_generic_malloc_words_small,
- GC_init, GC_make_closure, GC_debug_invoke_finalizer,
- GC_page_was_ever_dirty, GC_is_fresh,
- GC_malloc_ignore_off_page, GC_malloc_atomic_ignore_off_page,
- GC_set_max_heap_size, GC_get_bytes_since_gc,
- GC_pre_incr, GC_post_incr);
-# endif
-# ifdef MSWIN32
- GC_win32_free_heap();
-# endif
- return(0);
-}
-# endif
-
-#ifdef WIN32_THREADS
-
-unsigned __stdcall thr_run_one_test(void *arg)
-{
- run_one_test();
- return 0;
-}
-
-#define NTEST 2
-
-int APIENTRY WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmd, int n)
-{
-# if NTEST > 0
- HANDLE h[NTEST];
-# endif
- int i;
- unsigned thread_id;
-# if 0
- GC_enable_incremental();
-# endif
- InitializeCriticalSection(&incr_cs);
- (void) GC_set_warn_proc(warn_proc);
-# if NTEST > 0
- for (i = 0; i < NTEST; i++) {
- h[i] = (HANDLE)_beginthreadex(NULL, 0, thr_run_one_test, 0, 0, &thread_id);
- if (h[i] == (HANDLE)-1) {
- (void)GC_printf1("Thread creation failed %lu\n", (unsigned long)GetLastError());
- FAIL;
- }
- }
-# endif /* NTEST > 0 */
- run_one_test();
-# if NTEST > 0
- for (i = 0; i < NTEST; i++) {
- if (WaitForSingleObject(h[i], INFINITE) != WAIT_OBJECT_0) {
- (void)GC_printf1("Thread wait failed %lu\n", (unsigned long)GetLastError());
- FAIL;
- }
- }
-# endif /* NTEST > 0 */
- check_heap_stats();
- (void)fflush(stdout);
- return(0);
-}
-
-#endif /* WIN32_THREADS */
-
-
-#ifdef PCR
-test()
-{
- PCR_Th_T * th1;
- PCR_Th_T * th2;
- int code;
-
- n_tests = 0;
- /* GC_enable_incremental(); */
- (void) GC_set_warn_proc(warn_proc);
- th1 = PCR_Th_Fork(run_one_test, 0);
- th2 = PCR_Th_Fork(run_one_test, 0);
- run_one_test();
- if (PCR_Th_T_Join(th1, &code, NIL, PCR_allSigsBlocked, PCR_waitForever)
- != PCR_ERes_okay || code != 0) {
- (void)GC_printf0("Thread 1 failed\n");
- }
- if (PCR_Th_T_Join(th2, &code, NIL, PCR_allSigsBlocked, PCR_waitForever)
- != PCR_ERes_okay || code != 0) {
- (void)GC_printf0("Thread 2 failed\n");
- }
- check_heap_stats();
- (void)fflush(stdout);
- return(0);
-}
-#endif
-
-#if defined(SOLARIS_THREADS) || defined(IRIX_THREADS) \
- || defined(HPUX_THREADS) || defined(LINUX_THREADS)
-void * thr_run_one_test(void * arg)
-{
- run_one_test();
- return(0);
-}
-
-#ifdef GC_DEBUG
-# define GC_free GC_debug_free
-#endif
-
-#ifdef SOLARIS_THREADS
-main()
-{
- thread_t th1;
- thread_t th2;
- int code;
-
- n_tests = 0;
- GC_INIT(); /* Only needed if gc is dynamic library. */
- GC_enable_incremental();
- (void) GC_set_warn_proc(warn_proc);
- if (thr_keycreate(&fl_key, GC_free) != 0) {
- (void)GC_printf1("Key creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if ((code = thr_create(0, 1024*1024, thr_run_one_test, 0, 0, &th1)) != 0) {
- (void)GC_printf1("Thread 1 creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if ((code = thr_create(0, 1024*1024, thr_run_one_test, 0, THR_NEW_LWP, &th2)) != 0) {
- (void)GC_printf1("Thread 2 creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- run_one_test();
- if ((code = thr_join(th1, 0, 0)) != 0) {
- (void)GC_printf1("Thread 1 failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if (thr_join(th2, 0, 0) != 0) {
- (void)GC_printf1("Thread 2 failed %lu\n", (unsigned long)code);
- FAIL;
- }
- check_heap_stats();
- (void)fflush(stdout);
- return(0);
-}
-#else /* pthreads */
-main()
-{
- pthread_t th1;
- pthread_t th2;
- pthread_attr_t attr;
- int code;
-
-# ifdef IRIX_THREADS
- /* Force a larger stack to be preallocated */
- /* Since the initial cant always grow later. */
- *((volatile char *)&code - 1024*1024) = 0; /* Require 1 Mb */
-# endif /* IRIX_THREADS */
- pthread_attr_init(&attr);
-# if defined(IRIX_THREADS) || defined(HPUX_THREADS)
- pthread_attr_setstacksize(&attr, 1000000);
-# endif
- n_tests = 0;
-# ifdef MPROTECT_VDB
- GC_enable_incremental();
- (void) GC_printf0("Switched to incremental mode\n");
- (void) GC_printf0("Emulating dirty bits with mprotect/signals\n");
-# endif
- (void) GC_set_warn_proc(warn_proc);
- if ((code = pthread_key_create(&fl_key, 0)) != 0) {
- (void)GC_printf1("Key creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if ((code = pthread_create(&th1, &attr, thr_run_one_test, 0)) != 0) {
- (void)GC_printf1("Thread 1 creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if ((code = pthread_create(&th2, &attr, thr_run_one_test, 0)) != 0) {
- (void)GC_printf1("Thread 2 creation failed %lu\n", (unsigned long)code);
- FAIL;
- }
- run_one_test();
- if ((code = pthread_join(th1, 0)) != 0) {
- (void)GC_printf1("Thread 1 failed %lu\n", (unsigned long)code);
- FAIL;
- }
- if (pthread_join(th2, 0) != 0) {
- (void)GC_printf1("Thread 2 failed %lu\n", (unsigned long)code);
- FAIL;
- }
- check_heap_stats();
- (void)fflush(stdout);
- pthread_attr_destroy(&attr);
- GC_printf1("Completed %d collections\n", GC_gc_no);
- return(0);
-}
-#endif /* pthreads */
-#endif /* SOLARIS_THREADS || IRIX_THREADS || LINUX_THREADS || HPUX_THREADS */
diff --git a/boehm-gc/test_cpp.cc b/boehm-gc/test_cpp.cc
deleted file mode 100644
index 0d45077658f..00000000000
--- a/boehm-gc/test_cpp.cc
+++ /dev/null
@@ -1,271 +0,0 @@
-/****************************************************************************
-Copyright (c) 1994 by Xerox Corporation. All rights reserved.
-
-THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
-Permission is hereby granted to use or copy this program for any
-purpose, provided the above notices are retained on all copies.
-Permission to modify the code and to distribute modified code is
-granted, provided the above notices are retained, and a notice that
-the code was modified is included with the above copyright notice.
-****************************************************************************
-Last modified on Mon Jul 10 21:06:03 PDT 1995 by ellis
- modified on December 20, 1994 7:27 pm PST by boehm
-
-usage: test_cpp number-of-iterations
-
-This program tries to test the specific C++ functionality provided by
-gc_c++.h that isn't tested by the more general test routines of the
-collector.
-
-A recommended value for number-of-iterations is 10, which will take a
-few minutes to complete.
-
-***************************************************************************/
-
-#include "gc_cpp.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifndef __GNUC__
-# include "gc_alloc.h"
-#endif
-extern "C" {
-#include "gc_priv.h"
-}
-#ifdef MSWIN32
-# include <windows.h>
-#endif
-#ifdef GC_NAME_CONFLICT
-# define USE_GC UseGC
- struct foo * GC;
-#else
-# define USE_GC GC
-#endif
-
-
-#define my_assert( e ) \
- if (! (e)) { \
- GC_printf1( "Assertion failure in " __FILE__ ", line %d: " #e "\n", \
- __LINE__ ); \
- exit( 1 ); }
-
-
-class A {public:
- /* An uncollectable class. */
-
- A( int iArg ): i( iArg ) {}
- void Test( int iArg ) {
- my_assert( i == iArg );}
- int i;};
-
-
-class B: public gc, public A {public:
- /* A collectable class. */
-
- B( int j ): A( j ) {}
- ~B() {
- my_assert( deleting );}
- static void Deleting( int on ) {
- deleting = on;}
- static int deleting;};
-
-int B::deleting = 0;
-
-
-class C: public gc_cleanup, public A {public:
- /* A collectable class with cleanup and virtual multiple inheritance. */
-
- C( int levelArg ): A( levelArg ), level( levelArg ) {
- nAllocated++;
- if (level > 0) {
- left = new C( level - 1 );
- right = new C( level - 1 );}
- else {
- left = right = 0;}}
- ~C() {
- this->A::Test( level );
- nFreed++;
- my_assert( level == 0 ?
- left == 0 && right == 0 :
- level == left->level + 1 && level == right->level + 1 );
- left = right = 0;
- level = -123456;}
- static void Test() {
- my_assert( nFreed <= nAllocated && nFreed >= .8 * nAllocated );}
-
- static int nFreed;
- static int nAllocated;
- int level;
- C* left;
- C* right;};
-
-int C::nFreed = 0;
-int C::nAllocated = 0;
-
-
-class D: public gc {public:
- /* A collectable class with a static member function to be used as
- an explicit clean-up function supplied to ::new. */
-
- D( int iArg ): i( iArg ) {
- nAllocated++;}
- static void CleanUp( void* obj, void* data ) {
- D* self = (D*) obj;
- nFreed++;
- my_assert( self->i == (int) (long) data );}
- static void Test() {
- my_assert( nFreed >= .8 * nAllocated );}
-
- int i;
- static int nFreed;
- static int nAllocated;};
-
-int D::nFreed = 0;
-int D::nAllocated = 0;
-
-
-class E: public gc_cleanup {public:
- /* A collectable class with clean-up for use by F. */
-
- E() {
- nAllocated++;}
- ~E() {
- nFreed++;}
-
- static int nFreed;
- static int nAllocated;};
-
-int E::nFreed = 0;
-int E::nAllocated = 0;
-
-
-class F: public E {public:
- /* A collectable class with clean-up, a base with clean-up, and a
- member with clean-up. */
-
- F() {
- nAllocated++;}
- ~F() {
- nFreed++;}
- static void Test() {
- my_assert( nFreed >= .8 * nAllocated );
- my_assert( 2 * nFreed == E::nFreed );}
-
- E e;
- static int nFreed;
- static int nAllocated;};
-
-int F::nFreed = 0;
-int F::nAllocated = 0;
-
-
-long Disguise( void* p ) {
- return ~ (long) p;}
-
-void* Undisguise( long i ) {
- return (void*) ~ i;}
-
-
-#ifdef MSWIN32
-int APIENTRY WinMain(
- HINSTANCE instance, HINSTANCE prev, LPSTR cmd, int cmdShow )
-{
- int argc;
- char* argv[ 3 ];
-
- for (argc = 1; argc < sizeof( argv ) / sizeof( argv[ 0 ] ); argc++) {
- argv[ argc ] = strtok( argc == 1 ? cmd : 0, " \t" );
- if (0 == argv[ argc ]) break;}
-
-#else
-# ifdef MACOS
- int main() {
-# else
- int main( int argc, char* argv[] ) {
-# endif
-#endif
-
-# if defined(MACOS) // MacOS
- char* argv_[] = {"test_cpp", "10"}; // doesn't
- argv = argv_; // have a
- argc = sizeof(argv_)/sizeof(argv_[0]); // commandline
-# endif
- int i, iters, n;
-# if !defined(__GNUC__) && !defined(MACOS)
- int *x = (int *)alloc::allocate(sizeof(int));
-
- *x = 29;
- x -= 3;
-# endif
- if (argc != 2 || (0 >= (n = atoi( argv[ 1 ] )))) {
- GC_printf0( "usage: test_cpp number-of-iterations\n" );
- exit( 1 );}
-
- for (iters = 1; iters <= n; iters++) {
- GC_printf1( "Starting iteration %d\n", iters );
-
- /* Allocate some uncollectable As and disguise their pointers.
- Later we'll check to see if the objects are still there. We're
- checking to make sure these objects really are uncollectable. */
- long as[ 1000 ];
- long bs[ 1000 ];
- for (i = 0; i < 1000; i++) {
- as[ i ] = Disguise( new (NoGC) A( i ) );
- bs[ i ] = Disguise( new (NoGC) B( i ) );}
-
- /* Allocate a fair number of finalizable Cs, Ds, and Fs.
- Later we'll check to make sure they've gone away. */
- for (i = 0; i < 1000; i++) {
- C* c = new C( 2 );
- C c1( 2 ); /* stack allocation should work too */
- D* d = ::new (USE_GC, D::CleanUp, (void*) i) D( i );
- F* f = new F;
- if (0 == i % 10) delete c;}
-
- /* Allocate a very large number of collectable As and Bs and
- drop the references to them immediately, forcing many
- collections. */
- for (i = 0; i < 1000000; i++) {
- A* a = new (USE_GC) A( i );
- B* b = new B( i );
- b = new (USE_GC) B( i );
- if (0 == i % 10) {
- B::Deleting( 1 );
- delete b;
- B::Deleting( 0 );}
-# ifdef FINALIZE_ON_DEMAND
- GC_invoke_finalizers();
-# endif
- }
-
- /* Make sure the uncollectable As and Bs are still there. */
- for (i = 0; i < 1000; i++) {
- A* a = (A*) Undisguise( as[ i ] );
- B* b = (B*) Undisguise( bs[ i ] );
- a->Test( i );
- delete a;
- b->Test( i );
- B::Deleting( 1 );
- delete b;
- B::Deleting( 0 );
-# ifdef FINALIZE_ON_DEMAND
- GC_invoke_finalizers();
-# endif
-
- }
-
- /* Make sure most of the finalizable Cs, Ds, and Fs have
- gone away. */
- C::Test();
- D::Test();
- F::Test();}
-
-# if !defined(__GNUC__) && !defined(MACOS)
- my_assert (29 == x[3]);
-# endif
- GC_printf0( "The test appears to have succeeded.\n" );
- return( 0 );}
-
-
diff --git a/boehm-gc/threadlibs.c b/boehm-gc/threadlibs.c
deleted file mode 100644
index 7379454c420..00000000000
--- a/boehm-gc/threadlibs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-# include "gcconfig.h"
-# include <stdio.h>
-
-int main()
-{
-# if defined(LINUX_THREADS)
-# ifdef USE_LD_WRAP
- printf("-Wl,--wrap -Wl,read -Wl,--wrap -Wl,dlopen "
- "-Wl,--wrap -Wl,pthread_create -Wl,--wrap -Wl,pthread_join "
- "-Wl,--wrap -Wl,pthread_sigmask -lpthread -ldl\n");
-# else
- printf("-lpthread -ldl\n");
-# endif
-# endif
-# if defined(IRIX_THREADS)
- printf("-lpthread\n");
-# endif
-# if defined(HPUX_THREADS)
- printf("-lpthread -lrt\n");
-# endif
-# ifdef SOLARIS_THREADS
- printf("-lthread -ldl\n");
-# endif
- return 0;
-}
-
diff --git a/boehm-gc/typd_mlc.c b/boehm-gc/typd_mlc.c
deleted file mode 100644
index a198f6c154d..00000000000
--- a/boehm-gc/typd_mlc.c
+++ /dev/null
@@ -1,817 +0,0 @@
-/*
- * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-/* Boehm, July 31, 1995 5:02 pm PDT */
-
-
-/*
- * Some simple primitives for allocation with explicit type information.
- * Simple objects are allocated such that they contain a GC_descr at the
- * end (in the last allocated word). This descriptor may be a procedure
- * which then examines an extended descriptor passed as its environment.
- *
- * Arrays are treated as simple objects if they have sufficiently simple
- * structure. Otherwise they are allocated from an array kind that supplies
- * a special mark procedure. These arrays contain a pointer to a
- * complex_descriptor as their last word.
- * This is done because the environment field is too small, and the collector
- * must trace the complex_descriptor.
- *
- * Note that descriptors inside objects may appear cleared, if we encounter a
- * false refrence to an object on a free list. In the GC_descr case, this
- * is OK, since a 0 descriptor corresponds to examining no fields.
- * In the complex_descriptor case, we explicitly check for that case.
- *
- * MAJOR PARTS OF THIS CODE HAVE NOT BEEN TESTED AT ALL and are not testable,
- * since they are not accessible through the current interface.
- */
-
-#include "gc_priv.h"
-#include "gc_mark.h"
-#include "gc_typed.h"
-
-# ifdef ADD_BYTE_AT_END
-# define EXTRA_BYTES (sizeof(word) - 1)
-# else
-# define EXTRA_BYTES (sizeof(word))
-# endif
-
-GC_bool GC_explicit_typing_initialized = FALSE;
-
-int GC_explicit_kind; /* Object kind for objects with indirect */
- /* (possibly extended) descriptors. */
-
-int GC_array_kind; /* Object kind for objects with complex */
- /* descriptors and GC_array_mark_proc. */
-
-/* Extended descriptors. GC_typed_mark_proc understands these. */
-/* These are used for simple objects that are larger than what */
-/* can be described by a BITMAP_BITS sized bitmap. */
-typedef struct {
- word ed_bitmap; /* lsb corresponds to first word. */
- GC_bool ed_continued; /* next entry is continuation. */
-} ext_descr;
-
-/* Array descriptors. GC_array_mark_proc understands these. */
-/* We may eventually need to add provisions for headers and */
-/* trailers. Hence we provide for tree structured descriptors, */
-/* though we don't really use them currently. */
-typedef union ComplexDescriptor {
- struct LeafDescriptor { /* Describes simple array */
- word ld_tag;
-# define LEAF_TAG 1
- word ld_size; /* bytes per element */
- /* multiple of ALIGNMENT */
- word ld_nelements; /* Number of elements. */
- GC_descr ld_descriptor; /* A simple length, bitmap, */
- /* or procedure descriptor. */
- } ld;
- struct ComplexArrayDescriptor {
- word ad_tag;
-# define ARRAY_TAG 2
- word ad_nelements;
- union ComplexDescriptor * ad_element_descr;
- } ad;
- struct SequenceDescriptor {
- word sd_tag;
-# define SEQUENCE_TAG 3
- union ComplexDescriptor * sd_first;
- union ComplexDescriptor * sd_second;
- } sd;
-} complex_descriptor;
-#define TAG ld.ld_tag
-
-ext_descr * GC_ext_descriptors; /* Points to array of extended */
- /* descriptors. */
-
-word GC_ed_size = 0; /* Current size of above arrays. */
-# define ED_INITIAL_SIZE 100;
-
-word GC_avail_descr = 0; /* Next available slot. */
-
-int GC_typed_mark_proc_index; /* Indices of my mark */
-int GC_array_mark_proc_index; /* procedures. */
-
-/* Add a multiword bitmap to GC_ext_descriptors arrays. Return */
-/* starting index. */
-/* Returns -1 on failure. */
-/* Caller does not hold allocation lock. */
-signed_word GC_add_ext_descriptor(bm, nbits)
-GC_bitmap bm;
-word nbits;
-{
- register size_t nwords = divWORDSZ(nbits + WORDSZ-1);
- register signed_word result;
- register word i;
- register word last_part;
- register int extra_bits;
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS();
- LOCK();
- while (GC_avail_descr + nwords >= GC_ed_size) {
- ext_descr * new;
- size_t new_size;
- word ed_size = GC_ed_size;
-
- UNLOCK();
- ENABLE_SIGNALS();
- if (ed_size == 0) {
- new_size = ED_INITIAL_SIZE;
- } else {
- new_size = 2 * ed_size;
- if (new_size > MAX_ENV) return(-1);
- }
- new = (ext_descr *) GC_malloc_atomic(new_size * sizeof(ext_descr));
- if (new == 0) return(-1);
- DISABLE_SIGNALS();
- LOCK();
- if (ed_size == GC_ed_size) {
- if (GC_avail_descr != 0) {
- BCOPY(GC_ext_descriptors, new,
- GC_avail_descr * sizeof(ext_descr));
- }
- GC_ed_size = new_size;
- GC_ext_descriptors = new;
- } /* else another thread already resized it in the meantime */
- }
- result = GC_avail_descr;
- for (i = 0; i < nwords-1; i++) {
- GC_ext_descriptors[result + i].ed_bitmap = bm[i];
- GC_ext_descriptors[result + i].ed_continued = TRUE;
- }
- last_part = bm[i];
- /* Clear irrelevant bits. */
- extra_bits = nwords * WORDSZ - nbits;
- last_part <<= extra_bits;
- last_part >>= extra_bits;
- GC_ext_descriptors[result + i].ed_bitmap = last_part;
- GC_ext_descriptors[result + i].ed_continued = FALSE;
- GC_avail_descr += nwords;
- UNLOCK();
- ENABLE_SIGNALS();
- return(result);
-}
-
-/* Table of bitmap descriptors for n word long all pointer objects. */
-GC_descr GC_bm_table[WORDSZ/2];
-
-/* Return a descriptor for the concatenation of 2 nwords long objects, */
-/* each of which is described by descriptor. */
-/* The result is known to be short enough to fit into a bitmap */
-/* descriptor. */
-/* Descriptor is a DS_LENGTH or DS_BITMAP descriptor. */
-GC_descr GC_double_descr(descriptor, nwords)
-register GC_descr descriptor;
-register word nwords;
-{
- if (descriptor & DS_TAGS == DS_LENGTH) {
- descriptor = GC_bm_table[BYTES_TO_WORDS((word)descriptor)];
- };
- descriptor |= (descriptor & ~DS_TAGS) >> nwords;
- return(descriptor);
-}
-
-complex_descriptor * GC_make_sequence_descriptor();
-
-/* Build a descriptor for an array with nelements elements, */
-/* each of which can be described by a simple descriptor. */
-/* We try to optimize some common cases. */
-/* If the result is COMPLEX, then a complex_descr* is returned */
-/* in *complex_d. */
-/* If the result is LEAF, then we built a LeafDescriptor in */
-/* the structure pointed to by leaf. */
-/* The tag in the leaf structure is not set. */
-/* If the result is SIMPLE, then a GC_descr */
-/* is returned in *simple_d. */
-/* If the result is NO_MEM, then */
-/* we failed to allocate the descriptor. */
-/* The implementation knows that DS_LENGTH is 0. */
-/* *leaf, *complex_d, and *simple_d may be used as temporaries */
-/* during the construction. */
-# define COMPLEX 2
-# define LEAF 1
-# define SIMPLE 0
-# define NO_MEM (-1)
-int GC_make_array_descriptor(nelements, size, descriptor,
- simple_d, complex_d, leaf)
-word size;
-word nelements;
-GC_descr descriptor;
-GC_descr *simple_d;
-complex_descriptor **complex_d;
-struct LeafDescriptor * leaf;
-{
-# define OPT_THRESHOLD 50
- /* For larger arrays, we try to combine descriptors of adjacent */
- /* descriptors to speed up marking, and to reduce the amount */
- /* of space needed on the mark stack. */
- if ((descriptor & DS_TAGS) == DS_LENGTH) {
- if ((word)descriptor == size) {
- *simple_d = nelements * descriptor;
- return(SIMPLE);
- } else if ((word)descriptor == 0) {
- *simple_d = (GC_descr)0;
- return(SIMPLE);
- }
- }
- if (nelements <= OPT_THRESHOLD) {
- if (nelements <= 1) {
- if (nelements == 1) {
- *simple_d = descriptor;
- return(SIMPLE);
- } else {
- *simple_d = (GC_descr)0;
- return(SIMPLE);
- }
- }
- } else if (size <= BITMAP_BITS/2
- && (descriptor & DS_TAGS) != DS_PROC
- && (size & (sizeof(word)-1)) == 0) {
- int result =
- GC_make_array_descriptor(nelements/2, 2*size,
- GC_double_descr(descriptor,
- BYTES_TO_WORDS(size)),
- simple_d, complex_d, leaf);
- if ((nelements & 1) == 0) {
- return(result);
- } else {
- struct LeafDescriptor * one_element =
- (struct LeafDescriptor *)
- GC_malloc_atomic(sizeof(struct LeafDescriptor));
-
- if (result == NO_MEM || one_element == 0) return(NO_MEM);
- one_element -> ld_tag = LEAF_TAG;
- one_element -> ld_size = size;
- one_element -> ld_nelements = 1;
- one_element -> ld_descriptor = descriptor;
- switch(result) {
- case SIMPLE:
- {
- struct LeafDescriptor * beginning =
- (struct LeafDescriptor *)
- GC_malloc_atomic(sizeof(struct LeafDescriptor));
- if (beginning == 0) return(NO_MEM);
- beginning -> ld_tag = LEAF_TAG;
- beginning -> ld_size = size;
- beginning -> ld_nelements = 1;
- beginning -> ld_descriptor = *simple_d;
- *complex_d = GC_make_sequence_descriptor(
- (complex_descriptor *)beginning,
- (complex_descriptor *)one_element);
- break;
- }
- case LEAF:
- {
- struct LeafDescriptor * beginning =
- (struct LeafDescriptor *)
- GC_malloc_atomic(sizeof(struct LeafDescriptor));
- if (beginning == 0) return(NO_MEM);
- beginning -> ld_tag = LEAF_TAG;
- beginning -> ld_size = leaf -> ld_size;
- beginning -> ld_nelements = leaf -> ld_nelements;
- beginning -> ld_descriptor = leaf -> ld_descriptor;
- *complex_d = GC_make_sequence_descriptor(
- (complex_descriptor *)beginning,
- (complex_descriptor *)one_element);
- break;
- }
- case COMPLEX:
- *complex_d = GC_make_sequence_descriptor(
- *complex_d,
- (complex_descriptor *)one_element);
- break;
- }
- return(COMPLEX);
- }
- }
- {
- leaf -> ld_size = size;
- leaf -> ld_nelements = nelements;
- leaf -> ld_descriptor = descriptor;
- return(LEAF);
- }
-}
-
-complex_descriptor * GC_make_sequence_descriptor(first, second)
-complex_descriptor * first;
-complex_descriptor * second;
-{
- struct SequenceDescriptor * result =
- (struct SequenceDescriptor *)
- GC_malloc(sizeof(struct SequenceDescriptor));
- /* Can't result in overly conservative marking, since tags are */
- /* very small integers. Probably faster than maintaining type */
- /* info. */
- if (result != 0) {
- result -> sd_tag = SEQUENCE_TAG;
- result -> sd_first = first;
- result -> sd_second = second;
- }
- return((complex_descriptor *)result);
-}
-
-#ifdef UNDEFINED
-complex_descriptor * GC_make_complex_array_descriptor(nelements, descr)
-word nelements;
-complex_descriptor * descr;
-{
- struct ComplexArrayDescriptor * result =
- (struct ComplexArrayDescriptor *)
- GC_malloc(sizeof(struct ComplexArrayDescriptor));
-
- if (result != 0) {
- result -> ad_tag = ARRAY_TAG;
- result -> ad_nelements = nelements;
- result -> ad_element_descr = descr;
- }
- return((complex_descriptor *)result);
-}
-#endif
-
-ptr_t * GC_eobjfreelist;
-
-ptr_t * GC_arobjfreelist;
-
-mse * GC_typed_mark_proc();
-
-mse * GC_array_mark_proc();
-
-GC_descr GC_generic_array_descr;
-
-/* Caller does not hold allocation lock. */
-void GC_init_explicit_typing()
-{
- register int i;
- DCL_LOCK_STATE;
-
-
-# ifdef PRINTSTATS
- if (sizeof(struct LeafDescriptor) % sizeof(word) != 0)
- ABORT("Bad leaf descriptor size");
-# endif
- DISABLE_SIGNALS();
- LOCK();
- if (GC_explicit_typing_initialized) {
- UNLOCK();
- ENABLE_SIGNALS();
- return;
- }
- GC_explicit_typing_initialized = TRUE;
- /* Set up object kind with simple indirect descriptor. */
- GC_eobjfreelist = (ptr_t *)
- GC_generic_malloc_inner((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_eobjfreelist == 0) ABORT("Couldn't allocate GC_eobjfreelist");
- BZERO(GC_eobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- GC_explicit_kind = GC_n_kinds++;
- GC_obj_kinds[GC_explicit_kind].ok_freelist = GC_eobjfreelist;
- GC_obj_kinds[GC_explicit_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_explicit_kind].ok_descriptor =
- (((word)WORDS_TO_BYTES(-1)) | DS_PER_OBJECT);
- GC_obj_kinds[GC_explicit_kind].ok_relocate_descr = TRUE;
- GC_obj_kinds[GC_explicit_kind].ok_init = TRUE;
- /* Descriptors are in the last word of the object. */
- GC_typed_mark_proc_index = GC_n_mark_procs;
- GC_mark_procs[GC_typed_mark_proc_index] = GC_typed_mark_proc;
- GC_n_mark_procs++;
- /* Moving this up breaks DEC AXP compiler. */
- /* Set up object kind with array descriptor. */
- GC_arobjfreelist = (ptr_t *)
- GC_generic_malloc_inner((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_arobjfreelist == 0) ABORT("Couldn't allocate GC_arobjfreelist");
- BZERO(GC_arobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- if (GC_n_mark_procs >= MAX_MARK_PROCS)
- ABORT("No slot for array mark proc");
- GC_array_mark_proc_index = GC_n_mark_procs++;
- if (GC_n_kinds >= MAXOBJKINDS)
- ABORT("No kind available for array objects");
- GC_array_kind = GC_n_kinds++;
- GC_obj_kinds[GC_array_kind].ok_freelist = GC_arobjfreelist;
- GC_obj_kinds[GC_array_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_array_kind].ok_descriptor =
- MAKE_PROC(GC_array_mark_proc_index, 0);;
- GC_obj_kinds[GC_array_kind].ok_relocate_descr = FALSE;
- GC_obj_kinds[GC_array_kind].ok_init = TRUE;
- /* Descriptors are in the last word of the object. */
- GC_mark_procs[GC_array_mark_proc_index] = GC_array_mark_proc;
- for (i = 0; i < WORDSZ/2; i++) {
- GC_descr d = (((word)(-1)) >> (WORDSZ - i)) << (WORDSZ - i);
- d |= DS_BITMAP;
- GC_bm_table[i] = d;
- }
- GC_generic_array_descr = MAKE_PROC(GC_array_mark_proc_index, 0);
- UNLOCK();
- ENABLE_SIGNALS();
-}
-
-mse * GC_typed_mark_proc(addr, mark_stack_ptr, mark_stack_limit, env)
-register word * addr;
-register mse * mark_stack_ptr;
-mse * mark_stack_limit;
-word env;
-{
- register word bm = GC_ext_descriptors[env].ed_bitmap;
- register word * current_p = addr;
- register word current;
- register ptr_t greatest_ha = GC_greatest_plausible_heap_addr;
- register ptr_t least_ha = GC_least_plausible_heap_addr;
-
- for (; bm != 0; bm >>= 1, current_p++) {
- if (bm & 1) {
- current = *current_p;
- if ((ptr_t)current >= least_ha && (ptr_t)current <= greatest_ha) {
- PUSH_CONTENTS((ptr_t)current, mark_stack_ptr,
- mark_stack_limit, current_p, exit1);
- }
- }
- }
- if (GC_ext_descriptors[env].ed_continued) {
- /* Push an entry with the rest of the descriptor back onto the */
- /* stack. Thus we never do too much work at once. Note that */
- /* we also can't overflow the mark stack unless we actually */
- /* mark something. */
- mark_stack_ptr++;
- if (mark_stack_ptr >= mark_stack_limit) {
- mark_stack_ptr = GC_signal_mark_stack_overflow(mark_stack_ptr);
- }
- mark_stack_ptr -> mse_start = addr + WORDSZ;
- mark_stack_ptr -> mse_descr =
- MAKE_PROC(GC_typed_mark_proc_index, env+1);
- }
- return(mark_stack_ptr);
-}
-
-/* Return the size of the object described by d. It would be faster to */
-/* store this directly, or to compute it as part of */
-/* GC_push_complex_descriptor, but hopefully it doesn't matter. */
-word GC_descr_obj_size(d)
-register complex_descriptor *d;
-{
- switch(d -> TAG) {
- case LEAF_TAG:
- return(d -> ld.ld_nelements * d -> ld.ld_size);
- case ARRAY_TAG:
- return(d -> ad.ad_nelements
- * GC_descr_obj_size(d -> ad.ad_element_descr));
- case SEQUENCE_TAG:
- return(GC_descr_obj_size(d -> sd.sd_first)
- + GC_descr_obj_size(d -> sd.sd_second));
- default:
- ABORT("Bad complex descriptor");
- /*NOTREACHED*/ return 0; /*NOTREACHED*/
- }
-}
-
-/* Push descriptors for the object at addr with complex descriptor d */
-/* onto the mark stack. Return 0 if the mark stack overflowed. */
-mse * GC_push_complex_descriptor(addr, d, msp, msl)
-word * addr;
-register complex_descriptor *d;
-register mse * msp;
-mse * msl;
-{
- register ptr_t current = (ptr_t) addr;
- register word nelements;
- register word sz;
- register word i;
-
- switch(d -> TAG) {
- case LEAF_TAG:
- {
- register GC_descr descr = d -> ld.ld_descriptor;
-
- nelements = d -> ld.ld_nelements;
- if (msl - msp <= (ptrdiff_t)nelements) return(0);
- sz = d -> ld.ld_size;
- for (i = 0; i < nelements; i++) {
- msp++;
- msp -> mse_start = (word *)current;
- msp -> mse_descr = descr;
- current += sz;
- }
- return(msp);
- }
- case ARRAY_TAG:
- {
- register complex_descriptor *descr = d -> ad.ad_element_descr;
-
- nelements = d -> ad.ad_nelements;
- sz = GC_descr_obj_size(descr);
- for (i = 0; i < nelements; i++) {
- msp = GC_push_complex_descriptor((word *)current, descr,
- msp, msl);
- if (msp == 0) return(0);
- current += sz;
- }
- return(msp);
- }
- case SEQUENCE_TAG:
- {
- sz = GC_descr_obj_size(d -> sd.sd_first);
- msp = GC_push_complex_descriptor((word *)current, d -> sd.sd_first,
- msp, msl);
- if (msp == 0) return(0);
- current += sz;
- msp = GC_push_complex_descriptor((word *)current, d -> sd.sd_second,
- msp, msl);
- return(msp);
- }
- default:
- ABORT("Bad complex descriptor");
- /*NOTREACHED*/ return 0; /*NOTREACHED*/
- }
-}
-
-/*ARGSUSED*/
-mse * GC_array_mark_proc(addr, mark_stack_ptr, mark_stack_limit, env)
-register word * addr;
-register mse * mark_stack_ptr;
-mse * mark_stack_limit;
-word env;
-{
- register hdr * hhdr = HDR(addr);
- register word sz = hhdr -> hb_sz;
- register complex_descriptor * descr = (complex_descriptor *)(addr[sz-1]);
- mse * orig_mark_stack_ptr = mark_stack_ptr;
- mse * new_mark_stack_ptr;
-
- if (descr == 0) {
- /* Found a reference to a free list entry. Ignore it. */
- return(orig_mark_stack_ptr);
- }
- /* In use counts were already updated when array descriptor was */
- /* pushed. Here we only replace it by subobject descriptors, so */
- /* no update is necessary. */
- new_mark_stack_ptr = GC_push_complex_descriptor(addr, descr,
- mark_stack_ptr,
- mark_stack_limit-1);
- if (new_mark_stack_ptr == 0) {
- /* Doesn't fit. Conservatively push the whole array as a unit */
- /* and request a mark stack expansion. */
- /* This cannot cause a mark stack overflow, since it replaces */
- /* the original array entry. */
- GC_mark_stack_too_small = TRUE;
- new_mark_stack_ptr = orig_mark_stack_ptr + 1;
- new_mark_stack_ptr -> mse_start = addr;
- new_mark_stack_ptr -> mse_descr = WORDS_TO_BYTES(sz) | DS_LENGTH;
- } else {
- /* Push descriptor itself */
- new_mark_stack_ptr++;
- new_mark_stack_ptr -> mse_start = addr + sz - 1;
- new_mark_stack_ptr -> mse_descr = sizeof(word) | DS_LENGTH;
- }
- return(new_mark_stack_ptr);
-}
-
-#if defined(__STDC__) || defined(__cplusplus)
- GC_descr GC_make_descriptor(GC_bitmap bm, size_t len)
-#else
- GC_descr GC_make_descriptor(bm, len)
- GC_bitmap bm;
- size_t len;
-#endif
-{
- register signed_word last_set_bit = len - 1;
- register word result;
- register int i;
-# define HIGH_BIT (((word)1) << (WORDSZ - 1))
-
- if (!GC_explicit_typing_initialized) GC_init_explicit_typing();
- while (last_set_bit >= 0 && !GC_get_bit(bm, last_set_bit)) last_set_bit --;
- if (last_set_bit < 0) return(0 /* no pointers */);
-# if ALIGNMENT == CPP_WORDSZ/8
- {
- register GC_bool all_bits_set = TRUE;
- for (i = 0; i < last_set_bit; i++) {
- if (!GC_get_bit(bm, i)) {
- all_bits_set = FALSE;
- break;
- }
- }
- if (all_bits_set) {
- /* An initial section contains all pointers. Use length descriptor. */
- return(WORDS_TO_BYTES(last_set_bit+1) | DS_LENGTH);
- }
- }
-# endif
- if (last_set_bit < BITMAP_BITS) {
- /* Hopefully the common case. */
- /* Build bitmap descriptor (with bits reversed) */
- result = HIGH_BIT;
- for (i = last_set_bit - 1; i >= 0; i--) {
- result >>= 1;
- if (GC_get_bit(bm, i)) result |= HIGH_BIT;
- }
- result |= DS_BITMAP;
- return(result);
- } else {
- signed_word index;
-
- index = GC_add_ext_descriptor(bm, (word)last_set_bit+1);
- if (index == -1) return(WORDS_TO_BYTES(last_set_bit+1) | DS_LENGTH);
- /* Out of memory: use conservative */
- /* approximation. */
- result = MAKE_PROC(GC_typed_mark_proc_index, (word)index);
- return(result);
- }
-}
-
-ptr_t GC_clear_stack();
-
-#define GENERAL_MALLOC(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc((word)lb, k))
-
-#define GENERAL_MALLOC_IOP(lb,k) \
- (GC_PTR)GC_clear_stack(GC_generic_malloc_ignore_off_page(lb, k))
-
-#if defined(__STDC__) || defined(__cplusplus)
- void * GC_malloc_explicitly_typed(size_t lb, GC_descr d)
-#else
- char * GC_malloc_explicitly_typed(lb, d)
- size_t lb;
- GC_descr d;
-#endif
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-DCL_LOCK_STATE;
-
- lb += EXTRA_BYTES;
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_eobjfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
- if (0 == op) return(0);
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb]; /* May have been uninitialized. */
-# endif
- } else {
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- FASTUNLOCK();
- }
- } else {
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
- if (op != NULL)
- lw = BYTES_TO_WORDS(GC_size(op));
- }
- if (op != NULL)
- ((word *)op)[lw - 1] = d;
- return((GC_PTR) op);
-}
-
-#if defined(__STDC__) || defined(__cplusplus)
- void * GC_malloc_explicitly_typed_ignore_off_page(size_t lb, GC_descr d)
-#else
- char * GC_malloc_explicitly_typed_ignore_off_page(lb, d)
- size_t lb;
- GC_descr d;
-#endif
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-DCL_LOCK_STATE;
-
- lb += EXTRA_BYTES;
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_eobjfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb]; /* May have been uninitialized. */
-# endif
- } else {
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- FASTUNLOCK();
- }
- } else {
- op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
- if (op != NULL)
- lw = BYTES_TO_WORDS(GC_size(op));
- }
- if (op != NULL)
- ((word *)op)[lw - 1] = d;
- return((GC_PTR) op);
-}
-
-#if defined(__STDC__) || defined(__cplusplus)
- void * GC_calloc_explicitly_typed(size_t n,
- size_t lb,
- GC_descr d)
-#else
- char * GC_calloc_explicitly_typed(n, lb, d)
- size_t n;
- size_t lb;
- GC_descr d;
-#endif
-{
-register ptr_t op;
-register ptr_t * opp;
-register word lw;
-GC_descr simple_descr;
-complex_descriptor *complex_descr;
-register int descr_type;
-struct LeafDescriptor leaf;
-DCL_LOCK_STATE;
-
- descr_type = GC_make_array_descriptor((word)n, (word)lb, d,
- &simple_descr, &complex_descr, &leaf);
- switch(descr_type) {
- case NO_MEM: return(0);
- case SIMPLE: return(GC_malloc_explicitly_typed(n*lb, simple_descr));
- case LEAF:
- lb *= n;
- lb += sizeof(struct LeafDescriptor) + EXTRA_BYTES;
- break;
- case COMPLEX:
- lb *= n;
- lb += EXTRA_BYTES;
- break;
- }
- if( SMALL_OBJ(lb) ) {
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb];
-# else
- lw = ALIGNED_WORDS(lb);
-# endif
- opp = &(GC_arobjfreelist[lw]);
- FASTLOCK();
- if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
- FASTUNLOCK();
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_array_kind);
- if (0 == op) return(0);
-# ifdef MERGE_SIZES
- lw = GC_size_map[lb]; /* May have been uninitialized. */
-# endif
- } else {
- *opp = obj_link(op);
- obj_link(op) = 0;
- GC_words_allocd += lw;
- FASTUNLOCK();
- }
- } else {
- op = (ptr_t)GENERAL_MALLOC((word)lb, GC_array_kind);
- if (0 == op) return(0);
- lw = BYTES_TO_WORDS(GC_size(op));
- }
- if (descr_type == LEAF) {
- /* Set up the descriptor inside the object itself. */
- VOLATILE struct LeafDescriptor * lp =
- (struct LeafDescriptor *)
- ((word *)op
- + lw - (BYTES_TO_WORDS(sizeof(struct LeafDescriptor)) + 1));
-
- lp -> ld_tag = LEAF_TAG;
- lp -> ld_size = leaf.ld_size;
- lp -> ld_nelements = leaf.ld_nelements;
- lp -> ld_descriptor = leaf.ld_descriptor;
- ((VOLATILE word *)op)[lw - 1] = (word)lp;
- } else {
- extern unsigned GC_finalization_failures;
- unsigned ff = GC_finalization_failures;
-
- ((word *)op)[lw - 1] = (word)complex_descr;
- /* Make sure the descriptor is cleared once there is any danger */
- /* it may have been collected. */
- (void)
- GC_general_register_disappearing_link((GC_PTR *)
- ((word *)op+lw-1),
- (GC_PTR) op);
- if (ff != GC_finalization_failures) {
- /* Couldn't register it due to lack of memory. Punt. */
- /* This will probably fail too, but gives the recovery code */
- /* a chance. */
- return(GC_malloc(n*lb));
- }
- }
- return((GC_PTR) op);
-}
diff --git a/boehm-gc/version.h b/boehm-gc/version.h
deleted file mode 100644
index 04787d85be3..00000000000
--- a/boehm-gc/version.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#define GC_VERSION_MAJOR 5
-#define GC_VERSION_MINOR 1
-#define GC_ALPHA_VERSION GC_NOT_ALPHA
-
-# define GC_NOT_ALPHA 0xff
-
-#ifndef GC_NO_VERSION_VAR
-
-unsigned GC_version = ((GC_VERSION_MAJOR << 16) | (GC_VERSION_MINOR << 8) | GC_ALPHA_VERSION);
-
-#endif /* GC_NO_VERSION_VAR */
diff --git a/boehm-gc/weakpointer.h b/boehm-gc/weakpointer.h
deleted file mode 100644
index 84906b00a68..00000000000
--- a/boehm-gc/weakpointer.h
+++ /dev/null
@@ -1,221 +0,0 @@
-#ifndef _weakpointer_h_
-#define _weakpointer_h_
-
-/****************************************************************************
-
-WeakPointer and CleanUp
-
- Copyright (c) 1991 by Xerox Corporation. All rights reserved.
-
- THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
- Permission is hereby granted to copy this code for any purpose,
- provided the above notices are retained on all copies.
-
- Last modified on Mon Jul 17 18:16:01 PDT 1995 by ellis
-
-****************************************************************************/
-
-/****************************************************************************
-
-WeakPointer
-
-A weak pointer is a pointer to a heap-allocated object that doesn't
-prevent the object from being garbage collected. Weak pointers can be
-used to track which objects haven't yet been reclaimed by the
-collector. A weak pointer is deactivated when the collector discovers
-its referent object is unreachable by normal pointers (reachability
-and deactivation are defined more precisely below). A deactivated weak
-pointer remains deactivated forever.
-
-****************************************************************************/
-
-
-template< class T > class WeakPointer {
-public:
-
-WeakPointer( T* t = 0 )
- /* Constructs a weak pointer for *t. t may be null. It is an error
- if t is non-null and *t is not a collected object. */
- {impl = _WeakPointer_New( t );}
-
-T* Pointer()
- /* wp.Pointer() returns a pointer to the referent object of wp or
- null if wp has been deactivated (because its referent object
- has been discovered unreachable by the collector). */
- {return (T*) _WeakPointer_Pointer( this->impl );}
-
-int operator==( WeakPointer< T > wp2 )
- /* Given weak pointers wp1 and wp2, if wp1 == wp2, then wp1 and
- wp2 refer to the same object. If wp1 != wp2, then either wp1
- and wp2 don't refer to the same object, or if they do, one or
- both of them has been deactivated. (Note: If objects t1 and t2
- are never made reachable by their clean-up functions, then
- WeakPointer<T>(t1) == WeakPointer<T>(t2) if and only t1 == t2.) */
- {return _WeakPointer_Equal( this->impl, wp2.impl );}
-
-int Hash()
- /* Returns a hash code suitable for use by multiplicative- and
- division-based hash tables. If wp1 == wp2, then wp1.Hash() ==
- wp2.Hash(). */
- {return _WeakPointer_Hash( this->impl );}
-
-private:
-void* impl;
-};
-
-/*****************************************************************************
-
-CleanUp
-
-A garbage-collected object can have an associated clean-up function
-that will be invoked some time after the collector discovers the
-object is unreachable via normal pointers. Clean-up functions can be
-used to release resources such as open-file handles or window handles
-when their containing objects become unreachable. If a C++ object has
-a non-empty explicit destructor (i.e. it contains programmer-written
-code), the destructor will be automatically registered as the object's
-initial clean-up function.
-
-There is no guarantee that the collector will detect every unreachable
-object (though it will find almost all of them). Clients should not
-rely on clean-up to cause some action to occur immediately -- clean-up
-is only a mechanism for improving resource usage.
-
-Every object with a clean-up function also has a clean-up queue. When
-the collector finds the object is unreachable, it enqueues it on its
-queue. The clean-up function is applied when the object is removed
-from the queue. By default, objects are enqueued on the garbage
-collector's queue, and the collector removes all objects from its
-queue after each collection. If a client supplies another queue for
-objects, it is his responsibility to remove objects (and cause their
-functions to be called) by polling it periodically.
-
-Clean-up queues allow clean-up functions accessing global data to
-synchronize with the main program. Garbage collection can occur at any
-time, and clean-ups invoked by the collector might access data in an
-inconsistent state. A client can control this by defining an explicit
-queue for objects and polling it at safe points.
-
-The following definitions are used by the specification below:
-
-Given a pointer t to a collected object, the base object BO(t) is the
-value returned by new when it created the object. (Because of multiple
-inheritance, t and BO(t) may not be the same address.)
-
-A weak pointer wp references an object *t if BO(wp.Pointer()) ==
-BO(t).
-
-***************************************************************************/
-
-template< class T, class Data > class CleanUp {
-public:
-
-static void Set( T* t, void c( Data* d, T* t ), Data* d = 0 )
- /* Sets the clean-up function of object BO(t) to be <c, d>,
- replacing any previously defined clean-up function for BO(t); c
- and d can be null, but t cannot. Sets the clean-up queue for
- BO(t) to be the collector's queue. When t is removed from its
- clean-up queue, its clean-up will be applied by calling c(d,
- t). It is an error if *t is not a collected object. */
- {_CleanUp_Set( t, c, d );}
-
-static void Call( T* t )
- /* Sets the new clean-up function for BO(t) to be null and, if the
- old one is non-null, calls it immediately, even if BO(t) is
- still reachable. Deactivates any weak pointers to BO(t). */
- {_CleanUp_Call( t );}
-
-class Queue {public:
- Queue()
- /* Constructs a new queue. */
- {this->head = _CleanUp_Queue_NewHead();}
-
- void Set( T* t )
- /* q.Set(t) sets the clean-up queue of BO(t) to be q. */
- {_CleanUp_Queue_Set( this->head, t );}
-
- int Call()
- /* If q is non-empty, q.Call() removes the first object and
- calls its clean-up function; does nothing if q is
- empty. Returns true if there are more objects in the
- queue. */
- {return _CleanUp_Queue_Call( this->head );}
-
- private:
- void* head;
- };
-};
-
-/**********************************************************************
-
-Reachability and Clean-up
-
-An object O is reachable if it can be reached via a non-empty path of
-normal pointers from the registers, stacks, global variables, or an
-object with a non-null clean-up function (including O itself),
-ignoring pointers from an object to itself.
-
-This definition of reachability ensures that if object B is accessible
-from object A (and not vice versa) and if both A and B have clean-up
-functions, then A will always be cleaned up before B. Note that as
-long as an object with a clean-up function is contained in a cycle of
-pointers, it will always be reachable and will never be cleaned up or
-collected.
-
-When the collector finds an unreachable object with a null clean-up
-function, it atomically deactivates all weak pointers referencing the
-object and recycles its storage. If object B is accessible from object
-A via a path of normal pointers, A will be discovered unreachable no
-later than B, and a weak pointer to A will be deactivated no later
-than a weak pointer to B.
-
-When the collector finds an unreachable object with a non-null
-clean-up function, the collector atomically deactivates all weak
-pointers referencing the object, redefines its clean-up function to be
-null, and enqueues it on its clean-up queue. The object then becomes
-reachable again and remains reachable at least until its clean-up
-function executes.
-
-The clean-up function is assured that its argument is the only
-accessible pointer to the object. Nothing prevents the function from
-redefining the object's clean-up function or making the object
-reachable again (for example, by storing the pointer in a global
-variable).
-
-If the clean-up function does not make its object reachable again and
-does not redefine its clean-up function, then the object will be
-collected by a subsequent collection (because the object remains
-unreachable and now has a null clean-up function). If the clean-up
-function does make its object reachable again and a clean-up function
-is subsequently redefined for the object, then the new clean-up
-function will be invoked the next time the collector finds the object
-unreachable.
-
-Note that a destructor for a collected object cannot safely redefine a
-clean-up function for its object, since after the destructor executes,
-the object has been destroyed into "raw memory". (In most
-implementations, destroying an object mutates its vtbl.)
-
-Finally, note that calling delete t on a collected object first
-deactivates any weak pointers to t and then invokes its clean-up
-function (destructor).
-
-**********************************************************************/
-
-extern "C" {
- void* _WeakPointer_New( void* t );
- void* _WeakPointer_Pointer( void* wp );
- int _WeakPointer_Equal( void* wp1, void* wp2 );
- int _WeakPointer_Hash( void* wp );
- void _CleanUp_Set( void* t, void (*c)( void* d, void* t ), void* d );
- void _CleanUp_Call( void* t );
- void* _CleanUp_Queue_NewHead ();
- void _CleanUp_Queue_Set( void* h, void* t );
- int _CleanUp_Queue_Call( void* h );
-}
-
-#endif /* _weakpointer_h_ */
-
-
diff --git a/boehm-gc/win32_threads.c b/boehm-gc/win32_threads.c
deleted file mode 100644
index 469fd232003..00000000000
--- a/boehm-gc/win32_threads.c
+++ /dev/null
@@ -1,211 +0,0 @@
-#ifdef WIN32_THREADS
-
-#include "gc_priv.h"
-
-#if 0
-#define STRICT
-#include <windows.h>
-#endif
-
-#define MAX_THREADS 64
-
-struct thread_entry {
- LONG in_use;
- DWORD id;
- HANDLE handle;
- void *stack; /* The cold end of the stack. */
- /* 0 ==> entry not valid. */
- /* !in_use ==> stack == 0 */
- CONTEXT context;
- GC_bool suspended;
-};
-
-volatile GC_bool GC_please_stop = FALSE;
-
-volatile struct thread_entry thread_table[MAX_THREADS];
-
-void GC_stop_world()
-{
- DWORD thread_id = GetCurrentThreadId();
- int i;
-
- GC_please_stop = TRUE;
- for (i = 0; i < MAX_THREADS; i++)
- if (thread_table[i].stack != 0
- && thread_table[i].id != thread_id) {
- if (SuspendThread(thread_table[i].handle) == (DWORD)-1)
- ABORT("SuspendThread failed");
- thread_table[i].suspended = TRUE;
- }
-}
-
-void GC_start_world()
-{
- DWORD thread_id = GetCurrentThreadId();
- int i;
- for (i = 0; i < MAX_THREADS; i++)
- if (thread_table[i].stack != 0 && thread_table[i].suspended
- && thread_table[i].id != thread_id) {
- if (ResumeThread(thread_table[i].handle) == (DWORD)-1)
- ABORT("ResumeThread failed");
- thread_table[i].suspended = FALSE;
- }
- GC_please_stop = FALSE;
-}
-
-ptr_t GC_current_stackbottom()
-{
- DWORD thread_id = GetCurrentThreadId();
- int i;
- for (i = 0; i < MAX_THREADS; i++)
- if (thread_table[i].stack && thread_table[i].id == thread_id)
- return thread_table[i].stack;
- ABORT("no thread table entry for current thread");
-}
-
-static ptr_t GC_get_lo_stack_addr(ptr_t s)
-{
- ptr_t bottom;
- MEMORY_BASIC_INFORMATION info;
- VirtualQuery(s, &info, sizeof(info));
- do {
- bottom = info.BaseAddress;
- VirtualQuery(bottom - 1, &info, sizeof(info));
- } while ((info.Protect & PAGE_READWRITE) && !(info.Protect & PAGE_GUARD));
- return(bottom);
-}
-
-void GC_push_all_stacks()
-{
- DWORD thread_id = GetCurrentThreadId();
- int i;
- for (i = 0; i < MAX_THREADS; i++)
- if (thread_table[i].stack) {
- ptr_t bottom = GC_get_lo_stack_addr(thread_table[i].stack);
- if (thread_table[i].id == thread_id)
- GC_push_all_stack(&i, thread_table[i].stack);
- else {
- thread_table[i].context.ContextFlags
- = (CONTEXT_INTEGER|CONTEXT_CONTROL);
- if (!GetThreadContext(thread_table[i].handle,
- &thread_table[i].context))
- ABORT("GetThreadContext failed");
- if (thread_table[i].context.Esp >= (DWORD)thread_table[i].stack
- || thread_table[i].context.Esp < (DWORD)bottom)
- ABORT("Thread stack pointer out of range");
- GC_push_one ((word) thread_table[i].context.Edi);
- GC_push_one ((word) thread_table[i].context.Esi);
- GC_push_one ((word) thread_table[i].context.Ebx);
- GC_push_one ((word) thread_table[i].context.Edx);
- GC_push_one ((word) thread_table[i].context.Ecx);
- GC_push_one ((word) thread_table[i].context.Eax);
- GC_push_all_stack(thread_table[i].context.Esp, thread_table[i].stack);
- }
- }
-}
-
-void GC_get_next_stack(char *start, char **lo, char **hi)
-{
- int i;
-# define ADDR_LIMIT (char *)(-1L)
- char * current_min = ADDR_LIMIT;
-
- for (i = 0; i < MAX_THREADS; i++) {
- char * s = (char *)thread_table[i].stack;
-
- if (0 != s && s > start && s < current_min) {
- current_min = s;
- }
- }
- *hi = current_min;
- if (current_min == ADDR_LIMIT) {
- *lo = ADDR_LIMIT;
- return;
- }
- *lo = GC_get_lo_stack_addr(current_min);
- if (*lo < start) *lo = start;
-}
-
-LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info);
-
-/*
- * This isn't generally safe, since DllMain is not premptible.
- * If another thread holds the lock while this runs we're in trouble.
- * Pontus Rydin suggests wrapping the thread start routine instead.
- */
-BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
-{
- switch (reason) {
- case DLL_PROCESS_ATTACH:
- InitializeCriticalSection(&GC_allocate_ml);
- GC_init(); /* Force initialization before thread attach. */
- /* fall through */
- case DLL_THREAD_ATTACH:
- {
- int i;
- /* It appears to be unsafe to acquire a lock here, since this */
- /* code is apparently not preeemptible on some systems. */
- /* (This is based on complaints, not on Microsoft's official */
- /* documentation, which says this should perform "only simple */
- /* inititalization tasks".) */
- /* Hence we make do with nonblocking synchronization. */
-
- /* The following should be a noop according to the win32 */
- /* documentation. There is empirical evidence that it */
- /* isn't. - HB */
-# ifndef SMALL_CONFIG
- if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
-# endif
-
- for (i = 0; InterlockedExchange(&thread_table[i].in_use,1) != 0; i++) {
- /* Compare-and-swap would make this cleaner, but that's not */
- /* supported before Windows 98 and NT 4.0. In Windows 2000, */
- /* InterlockedExchange is supposed to be replaced by */
- /* InterlockedExchangePointer, but that's not really what I */
- /* want here. */
- if (i == MAX_THREADS - 1)
- ABORT("too many threads");
- }
- thread_table[i].id = GetCurrentThreadId();
- if (!DuplicateHandle(GetCurrentProcess(),
- GetCurrentThread(),
- GetCurrentProcess(),
- &thread_table[i].handle,
- 0,
- 0,
- DUPLICATE_SAME_ACCESS)) {
- DWORD last_error = GetLastError();
- GC_printf1("Last error code: %lx\n", last_error);
- ABORT("DuplicateHandle failed");
- }
- thread_table[i].stack = GC_get_stack_base();
- /* If this thread is being created while we are trying to stop */
- /* the world, wait here. Hopefully this can't happen on any */
- /* systems that don't allow us to block here. */
- while (GC_please_stop) Sleep(20);
- }
- break;
- case DLL_PROCESS_DETACH:
- case DLL_THREAD_DETACH:
- {
- int i;
- DWORD thread_id = GetCurrentThreadId();
- LOCK();
- for (i = 0;
- thread_table[i].stack == 0 || thread_table[i].id != thread_id;
- i++) {
- if (i == MAX_THREADS - 1)
- ABORT("thread not found on detach");
- }
- thread_table[i].stack = 0;
- thread_table[i].in_use = FALSE;
- CloseHandle(thread_table[i].handle);
- BZERO(&thread_table[i].context, sizeof(CONTEXT));
- UNLOCK();
- }
- break;
- }
- return TRUE;
-}
-
-#endif /* WIN32_THREADS */
diff --git a/gcc/c-gperf.h b/gcc/c-gperf.h
deleted file mode 100644
index 842b3a457ac..00000000000
--- a/gcc/c-gperf.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* C code produced by gperf version 2.7 */
-/* Command-line: gperf -L C -F , 0, 0 -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ ../../egcs/gcc/c-parse.gperf */
-/* Command-line: gperf -L C -F ', 0, 0' -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-struct resword { const char *name; short token; enum rid rid; };
-#ifdef __GNUC__
-__inline
-#endif
-static unsigned int hash PARAMS ((const char *, unsigned int));
-#ifdef __GNUC__
-__inline
-#endif
-struct resword *is_reserved_word PARAMS ((const char *, unsigned int));
-
-#define TOTAL_KEYWORDS 92
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 20
-#define MIN_HASH_VALUE 17
-#define MAX_HASH_VALUE 301
-/* maximum key range = 285, duplicates = 0 */
-
-#ifdef __GNUC__
-__inline
-#endif
-static unsigned int
-hash (str, len)
- register const char *str;
- register unsigned int len;
-{
- static unsigned short asso_values[] =
- {
- 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, 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, 113, 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, 1, 302, 78, 52, 111,
- 34, 9, 46, 59, 1, 20, 302, 1, 118, 17,
- 18, 39, 58, 302, 7, 6, 33, 70, 21, 2,
- 5, 1, 1, 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, 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, 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, 302, 302, 302,
- 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
- 302, 302, 302, 302, 302, 302
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- case 3:
- hval += asso_values[(unsigned char)str[2]];
- case 2:
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval + asso_values[(unsigned char)str[len - 1]];
-}
-
-static struct resword wordlist[] =
- {
- {"", 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},
- {"__real__", REALPART, NORID},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"", 0, 0}, {"", 0, 0},
- {"__restrict__", TYPE_QUAL, RID_RESTRICT},
- {"", 0, 0}, {"", 0, 0},
- {"__extension__", EXTENSION, NORID},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"else", ELSE, NORID},
- {"", 0, 0},
- {"__imag__", IMAGPART, NORID},
- {"", 0, 0},
- {"__inline__", SCSPEC, RID_INLINE},
- {"switch", SWITCH, NORID},
- {"", 0, 0},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"while", WHILE, NORID},
- {"", 0, 0},
- {"__inline", SCSPEC, RID_INLINE},
- {"", 0, 0},
- {"in", TYPE_QUAL, RID_IN},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"__typeof__", TYPEOF, NORID},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"", 0, 0},
- {"__restrict", TYPE_QUAL, RID_RESTRICT},
- {"struct", STRUCT, NORID},
- {"", 0, 0},
- {"restrict", TYPE_QUAL, RID_RESTRICT},
- {"oneway", TYPE_QUAL, RID_ONEWAY},
- {"id", OBJECTNAME, RID_ID},
- {"", 0, 0}, {"", 0, 0},
- {"sizeof", SIZEOF, NORID},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"for", FOR, NORID},
- {"return", RETURN, NORID},
- {"__bounded__", TYPE_QUAL, RID_BOUNDED},
- {"extern", SCSPEC, RID_EXTERN},
- {"break", BREAK, NORID},
- {"if", IF, NORID},
- {"", 0, 0}, {"", 0, 0},
- {"__ptrbase__", PTR_BASE, NORID},
- {"__ptrvalue__", PTR_VALUE, NORID},
- {"__ptrextent__", PTR_EXTENT, NORID},
- {"", 0, 0},
- {"do", DO, NORID},
- {"", 0, 0},
- {"__ptrbase", PTR_BASE, NORID},
- {"__ptrvalue", PTR_VALUE, NORID},
- {"void", TYPESPEC, RID_VOID},
- {"", 0, 0},
- {"register", SCSPEC, RID_REGISTER},
- {"", 0, 0},
- {"short", TYPESPEC, RID_SHORT},
- {"", 0, 0},
- {"__unbounded__", TYPE_QUAL, RID_UNBOUNDED},
- {"__imag", IMAGPART, NORID},
- {"__asm__", ASM_KEYWORD, NORID},
- {"__typeof", TYPEOF, NORID},
- {"int", TYPESPEC, RID_INT},
- {"", 0, 0},
- {"__alignof__", ALIGNOF, NORID},
- {"", 0, 0},
- {"__attribute__", ATTRIBUTE, NORID},
- {"", 0, 0}, {"", 0, 0},
- {"__bounded", TYPE_QUAL, RID_BOUNDED},
- {"inout", TYPE_QUAL, RID_INOUT},
- {"", 0, 0},
- {"__attribute", ATTRIBUTE, NORID},
- {"enum", ENUM, NORID},
- {"__asm", ASM_KEYWORD, NORID},
- {"", 0, 0},
- {"__ptrextent", PTR_EXTENT, NORID},
- {"", 0, 0},
- {"signed", TYPESPEC, RID_SIGNED},
- {"", 0, 0}, {"", 0, 0},
- {"out", TYPE_QUAL, RID_OUT},
- {"", 0, 0},
- {"byref", TYPE_QUAL, RID_BYREF},
- {"", 0, 0}, {"", 0, 0},
- {"union", UNION, NORID},
- {"", 0, 0},
- {"asm", ASM_KEYWORD, NORID},
- {"__unbounded", TYPE_QUAL, RID_UNBOUNDED},
- {"", 0, 0},
- {"unsigned", TYPESPEC, RID_UNSIGNED},
- {"double", TYPESPEC, RID_DOUBLE},
- {"default", DEFAULT, NORID},
- {"", 0, 0},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"float", TYPESPEC, RID_FLOAT},
- {"__complex__", TYPESPEC, RID_COMPLEX},
- {"", 0, 0},
- {"__complex", TYPESPEC, RID_COMPLEX},
- {"", 0, 0},
- {"__builtin_va_arg", VA_ARG, NORID},
- {"__label__", LABEL, NORID},
- {"case", CASE, NORID},
- {"", 0, 0},
- {"__real", REALPART, NORID},
- {"@defs", DEFS, NORID},
- {"__alignof", ALIGNOF, NORID},
- {"goto", GOTO, NORID},
- {"", 0, 0},
- {"@private", PRIVATE, NORID},
- {"@selector", SELECTOR, NORID},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"typeof", TYPEOF, NORID},
- {"typedef", SCSPEC, RID_TYPEDEF},
- {"", 0, 0},
- {"continue", CONTINUE, NORID},
- {"@encode", ENCODE, NORID},
- {"", 0, 0}, {"", 0, 0},
- {"@interface", INTERFACE, NORID},
- {"", 0, 0},
- {"__const", TYPE_QUAL, RID_CONST},
- {"inline", SCSPEC, RID_INLINE},
- {"auto", SCSPEC, RID_AUTO},
- {"", 0, 0},
- {"volatile", TYPE_QUAL, RID_VOLATILE},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"@implementation", IMPLEMENTATION, NORID},
- {"@protected", PROTECTED, NORID},
- {"", 0, 0}, {"", 0, 0},
- {"const", TYPE_QUAL, RID_CONST},
- {"", 0, 0},
- {"@end", END, NORID},
- {"bycopy", TYPE_QUAL, RID_BYCOPY},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"@compatibility_alias", ALIAS, NORID},
- {"", 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},
- {"long", TYPESPEC, RID_LONG},
- {"char", TYPESPEC, RID_CHAR},
- {"static", SCSPEC, RID_STATIC},
- {"", 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, 0}, {"", 0, 0},
- {"@class", CLASS, NORID},
- {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
- {"@protocol", PROTOCOL, NORID},
- {"", 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, 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},
- {"@public", PUBLIC, NORID}
- };
-
-#ifdef __GNUC__
-__inline
-#endif
-struct resword *
-is_reserved_word (str, len)
- register const char *str;
- register unsigned int len;
-{
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C
deleted file mode 100644
index 8850f9fa639..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C
+++ /dev/null
@@ -1,19 +0,0 @@
-//Build don't link:
-#include <vector.h>
-#include <algo.h>
-
-template <class T> class Expr
-{
-public :
-Expr(){};
-Expr(const T&){};
-};
-
-template <class T >
-inline bool compare(const Expr<T> a, const Expr<T> b){ return true; };
-
-int main()
-{
-vector<int> a(3);
-sort( a.begin(), a.end(), compare ); // ERROR - no matching function
-}
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
deleted file mode 100644
index c409192e83d..00000000000
--- a/libffi/ChangeLog
+++ /dev/null
@@ -1,227 +0,0 @@
-2000-09-10 Alexandre Oliva <aoliva@redhat.com>
-
- * config.guess, config.sub, install-sh: Removed.
- * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
- * Makefile.in: Rebuilt.
-
- * acinclude.m4: Include libtool macros from the top level.
- * aclocal.m4, configure: Rebuilt.
-
-2000-08-22 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
- * configure: Rebuilt.
-
-2000-05-11 Scott Bambrough <scottb@netwinder.org>
-
- * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
- memory correctly. Use conditional instructions, not branches where
- possible.
-
-2000-05-04 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Match `arm*-*-linux-*'.
- From Chris Dornan <cdornan@arm.com>.
-
-2000-04-28 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.am (SUBDIRS): Define.
- (AM_MAKEFLAGS): Likewise.
- (Multilib support.): Add section.
- * Makefile.in: Rebuilt.
- * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
- New variables. Set for gcc using -print-multi-lib. Export them
- to libtool.
- (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
- * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
- for -shared links.
- (extra_compiler_flags_value, extra_compiler_flags): Check these
- for extra compiler options which need to be passed down in
- compiler_flags.
-
-2000-04-16 Anthony Green <green@redhat.com>
-
- * configure: Rebuilt.
- * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
-
-2000-04-14 Jakub Jelinek <jakub@redhat.com>
-
- * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
- Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
- * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
- Replace all void * sizeofs with sizeof(int).
- Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
- different than DOUBLE.
- Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
- (ffi_prep_args_v9): New function.
- (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
- (ffi_V9_return_struct): New function.
- (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
- 32bit code (not yet cross-arch calls).
- * src/sparc/v8.S: Add struct return delay nop.
- Handle long long.
- * src/sparc/v9.S: New file.
- * src/prep_cif.c (ffi_prep_cif): Return structure pointer
- is used on sparc64 only for structures larger than 32 bytes.
- Pass by reference for structures is done for structure arguments
- larger than 16 bytes.
- * src/ffitest.c (main): Use 64bit rint on sparc64.
- Run long long tests on sparc.
- * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
- sparc64.
- (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
- on sparc64.
- * configure.in (sparc-*-linux*): New supported target.
- (sparc64-*-linux*): Likewise.
- * configure: Rebuilt.
- * Makefile.am: Add v9.S to SPARC files.
- * Makefile.in: Likewise.
- (LINK): Surround $(CCLD) into double quotes, so that multilib
- compiles work correctly.
-
-2000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: (i*86-*-solaris*): New libffi target. Patch
- proposed by Bryce McKinlay.
-
-2000-03-20 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Hand edit for java_raw_api.lo.
-
-2000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
-
- * config.guess, config.sub: Update from the gcc tree.
- Fix for PR libgcj/168.
-
-2000-03-03 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Fixed ia64 by hand.
-
- * configure: Rebuilt.
- * configure.in (--enable-multilib): New option.
- (libffi_basedir): New subst.
- (AC_OUTPUT): Added multilib code.
-
-2000-03-02 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
- directory name.
-
-2000-02-25 Hans Boehm <boehm@acm.org>
-
- * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
- files.
- * src/raw_api.c (ffi_translate_args): Fixed typo in argument
- list.
- (ffi_prep_raw_closure): Use ffi_translate_args, not
- ffi_closure_translate.
- * src/java_raw_api.c: New file.
- * src/ffitest.c (closure_test_fn): New function.
- (main): Define `rint' as long long on IA64. Added new test when
- FFI_CLOSURES is defined.
- * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
- (ffi_abi): Recognize IA64.
- (ffi_raw): Added `flt' field.
- Added "Java raw API" code.
- * configure.in: Recognize ia64.
- * Makefile.am (TARGET_SRC_IA64): New macro.
- (libffi_la_common_SOURCES): Added java_raw_api.c.
- (libffi_la_SOURCES): Define in IA64 case.
-
-2000-01-04 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt with newer automake.
-
-1999-12-31 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
-
-1999-09-01 Tom Tromey <tromey@cygnus.com>
-
- * include/ffi.h.in: Removed PACKAGE and VERSION defines and
- undefs.
- * fficonfig.h.in: Rebuilt.
- * configure: Rebuilt.
- * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
- Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
- * acconfig.h: Don't #undef PACKAGE or VERSION.
-
-1999-08-09 Anthony Green <green@cygnus.com>
-
- * include/ffi.h.in: Try to work around messy header problem
- with PACKAGE and VERSION.
-
- * configure: Rebuilt.
- * configure.in: Change version to 2.00-beta.
-
- * fficonfig.h.in: Rebuilt.
- * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
-
- * src/x86/ffi.c (ffi_raw_call): Rename.
-
-1999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
-
- * src/x86/ffi.c (ffi_closure_SYSV): New function.
- (ffi_prep_incoming_args_SYSV): Ditto.
- (ffi_prep_closure): Ditto.
- (ffi_closure_raw_SYSV): Ditto.
- (ffi_prep_raw_closure): More ditto.
- (ffi_call_raw): Final ditto.
-
- * include/ffi.h.in: Add definitions for closure and raw API.
-
- * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
- FFI_TYPE_UINT64.
-
- * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
-
- * src/raw_api.c: New file.
-
- * include/ffi.h.in (ffi_raw): New type.
- (UINT_ARG, SINT_ARG): New defines.
- (ffi_closure, ffi_raw_closure): New types.
- (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
-
- * configure.in: Add check for endianness and sizeof void*.
-
- * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
- instead of directly.
-
- * configure: Rebuilt.
-
-Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
-
- * configure.in: Add x86 and powerpc BeOS configurations.
- From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
-
-1999-05-09 Anthony Green <green@cygnus.com>
-
- * configure.in: Add warning about this being beta code.
- Remove src/Makefile.am from the picture.
- * configure: Rebuilt.
-
- * Makefile.am: Move logic from src/Makefile.am. Add changes
- to support libffi as a target library.
- * Makefile.in: Rebuilt.
-
- * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
- Upgraded to new autoconf, automake, libtool.
-
- * README: Tweaks.
-
- * LICENSE: Update copyright date.
-
- * src/Makefile.am, src/Makefile.in: Removed.
-
-1998-11-29 Anthony Green <green@cygnus.com>
-
- * include/ChangeLog: Removed.
- * src/ChangeLog: Removed.
- * src/mips/ChangeLog: Removed.
- * src/sparc/ChangeLog: Remboved.
- * src/x86/ChangeLog: Removed.
-
- * ChangeLog.v1: Created.
diff --git a/libffi/ChangeLog.libgcj b/libffi/ChangeLog.libgcj
deleted file mode 100644
index 4c5be6d3fd0..00000000000
--- a/libffi/ChangeLog.libgcj
+++ /dev/null
@@ -1,23 +0,0 @@
-Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * include/Makefile.in: Rebuilt.
- * Makefile.in: Rebuilt
- * Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
- builds.
- Use USE_LIBDIR.
-
- * configure: Rebuilt.
- * configure.in (USE_LIBDIR): Define for native builds.
- Use lowercase in configure --help explanations.
-
-1999-08-08 Anthony Green <green@cygnus.com>
-
- * include/ffi.h.in (FFI_FN): Remove `...'.
-
-1999-08-08 Anthony Green <green@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CFLAGS): Compile with -fexceptions.
-
- * src/x86/sysv.S: Add exception handling metadata.
-
diff --git a/libffi/ChangeLog.v1 b/libffi/ChangeLog.v1
deleted file mode 100644
index 369820cbdb0..00000000000
--- a/libffi/ChangeLog.v1
+++ /dev/null
@@ -1,764 +0,0 @@
-The libffi version 1 ChangeLog archive.
-
-Version 1 of libffi had per-directory ChangeLogs. Current and future
-versions have a single ChangeLog file in the root directory. The
-version 1 ChangeLogs have all been concatonated into this file for
-future reference only.
-
---- libffi ----------------------------------------------------------------
-
-Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
-
- * configure.in: Boosted rev.
- * configure, Makefile.in, aclocal.m4: Rebuilt.
- * README: Boosted rev and updated release notes.
-
-Mon Oct 5 01:03:03 1998 Anthony Green <green@cygnus.com>
-
- * configure.in: Boosted rev.
- * configure, Makefile.in, aclocal.m4: Rebuilt.
- * README: Boosted rev and updated release notes.
-
-1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * m68k/ffi.c (ffi_prep_cif_machdep): Use bitmask for cif->flags.
- Correctly handle small structures.
- (ffi_prep_args): Also handle small structures.
- (ffi_call): Pass size of return type to ffi_call_SYSV.
- * m68k/sysv.S: Adjust for above changes. Correctly align small
- structures in the return value.
-
- * types.c (uint64, sint64) [M68K]: Change alignment to 4.
-
-Fri Apr 17 17:26:58 1998 Anthony Green <green@hoser.cygnus.com>
-
- * configure.in: Boosted rev.
- * configure,Makefile.in,aclocal.m4: Rebuilt.
- * README: Boosted rev and added release notes.
-
-Sun Feb 22 00:50:41 1998 Geoff Keating <geoffk@ozemail.com.au>
-
- * configure.in: Add PowerPC config bits.
-
-1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * configure.in: Add m68k config bits. Change AC_CANONICAL_SYSTEM
- to AC_CANONICAL_HOST, this is not a compiler. Use $host instead
- of $target. Remove AC_CHECK_SIZEOF(char), we already know the
- result. Fix argument of AC_ARG_ENABLE.
- * configure, fficonfig.h.in: Rebuilt.
-
-Tue Feb 10 20:53:40 1998 Richard Henderson <rth@cygnus.com>
-
- * configure.in: Add Alpha config bits.
-
-Tue May 13 13:39:20 1997 Anthony Green <green@hoser.cygnus.com>
-
- * README: Updated dates and reworded Irix comments.
-
- * configure.in: Removed AC_PROG_RANLIB.
-
- * Makefile.in, aclocal.m4, config.guess, config.sub, configure,
- ltmain.sh, */Makefile.in: libtoolized again and rebuilt with
- automake and autoconf.
-
-Sat May 10 18:44:50 1997 Tom Tromey <tromey@cygnus.com>
-
- * configure, aclocal.m4: Rebuilt.
- * configure.in: Don't compute EXTRADIST; now handled in
- src/Makefile.in. Removed macros implied by AM_INIT_AUTOMAKE.
- Don't run AM_MAINTAINER_MODE.
-
-Thu May 8 14:34:05 1997 Anthony Green <green@hoser.cygnus.com>
-
- * missing, ltmain.sh, ltconfig.sh: Created. These are new files
- required by automake and libtool.
-
- * README: Boosted rev to 1.14. Added notes.
-
- * acconfig.h: Moved PACKAGE and VERSION for new automake.
-
- * configure.in: Changes for libtool.
-
- * Makefile.am (check): make test now make check. Uses libtool now.
-
- * Makefile.in, configure.in, aclocal.h, fficonfig.h.in: Rebuilt.
-
-Thu May 1 16:27:07 1997 Anthony Green <green@hoser.cygnus.com>
-
- * missing: Added file required by new automake.
-
-Tue Nov 26 14:10:42 1996 Anthony Green <green@csk3.cygnus.com>
-
- * acconfig.h: Added USING_PURIFY flag. This is defined when
- --enable-purify-safety was used at configure time.
-
- * configure.in (allsources): Added --enable-purify-safety switch.
- (VERSION): Boosted rev to 1.13.
- * configure: Rebuilt.
-
-Fri Nov 22 06:46:12 1996 Anthony Green <green@rtl.cygnus.com>
-
- * configure.in (VERSION): Boosted rev to 1.12.
- Removed special CFLAGS hack for gcc.
- * configure: Rebuilt.
-
- * README: Boosted rev to 1.12. Added notes.
-
- * Many files: Cygnus Support changed to Cygnus Solutions.
-
-Wed Oct 30 11:15:25 1996 Anthony Green <green@rtl.cygnus.com>
-
- * configure.in (VERSION): Boosted rev to 1.11.
- * configure: Rebuilt.
-
- * README: Boosted rev to 1.11. Added notes about GNU make.
-
-Tue Oct 29 12:25:12 1996 Anthony Green <green@rtl.cygnus.com>
-
- * configure.in: Fixed -Wall trick.
- (VERSION): Boosted rev.
- * configure: Rebuilt
-
- * acconfig.h: Needed for --enable-debug configure switch.
-
- * README: Boosted rev to 1.09. Added more notes on building
- libffi, and LCLint.
-
- * configure.in: Added --enable-debug switch. Boosted rev to
- 1.09.
- * configure: Rebuilt
-
-Tue Oct 15 13:11:28 1996 Anthony Green <green@hoser.cygnus.com>
-
- * configure.in (VERSION): Boosted rev to 1.08
- * configure: Rebuilt.
-
- * README: Added n32 bug fix notes.
-
- * Makefile.am: Added "make lint" production.
- * Makefile.in: Rebuilt.
-
-Mon Oct 14 10:54:46 1996 Anthony Green <green@rtl.cygnus.com>
-
- * README: Added web page reference.
-
- * configure.in, README: Boosted rev to 1.05
- * configure: Rebuilt.
-
- * README: Fixed n32 sample code.
-
-Fri Oct 11 17:09:28 1996 Anthony Green <green@rtl.cygnus.com>
-
- * README: Added sparc notes.
-
- * configure.in, README: Boosted rev to 1.04.
- * configure: Rebuilt.
-
-Thu Oct 10 10:31:03 1996 Anthony Green <green@rtl.cygnus.com>
-
- * configure.in, README: Boosted rev to 1.03.
- * configure: Rebuilt.
-
- * README: Added struct notes.
-
- * Makefile.am (EXTRA_DIST): Added LICENSE to distribution.
- * Makefile.in: Rebuilt.
-
- * README: Removed Linux section. No special notes now
- because aggregates arg/return types work.
-
-Wed Oct 9 16:16:42 1996 Anthony Green <green@rtl.cygnus.com>
-
- * README, configure.in (VERSION): Boosted rev to 1.02
- * configure: Rebuilt.
-
-Tue Oct 8 11:56:33 1996 Anthony Green <green@rtl.cygnus.com>
-
- * README (NOTE): Added n32 notes.
-
- * Makefile.am: Added test production.
- * Makefile: Rebuilt
-
- * README: spell checked!
-
- * configure.in (VERSION): Boosted rev to 1.01
- * configure: Rebuilt.
-
-Mon Oct 7 15:50:22 1996 Anthony Green <green@rtl.cygnus.com>
-
- * configure.in: Added nasty bit to support SGI tools.
- * configure: Rebuilt.
-
- * README: Added SGI notes. Added note about automake bug.
-
-Mon Oct 7 11:00:28 1996 Anthony Green <green@hoser.cygnus.com>
-
- * README: Rewrote intro, and fixed examples.
-
-Fri Oct 4 10:19:55 1996 Anthony Green <green@hoser.cygnus.com>
-
- * configure.in: -D$TARGET is no longer used as a compiler switch.
- It is now inserted into ffi.h at configure time.
- * configure: Rebuilt.
-
- * FFI_ABI and FFI_STATUS are now ffi_abi and ffi_status.
-
-Thu Oct 3 13:47:34 1996 Anthony Green <green@hoser.cygnus.com>
-
- * README, LICENSE: Created. Wrote some docs.
-
- * configure.in: Don't barf on i586-unknown-linuxaout.
- Added EXTRADIST code for "make dist".
- * configure: Rebuilt.
-
- * */Makefile.in: Rebuilt with patched automake.
-
-Tue Oct 1 17:12:25 1996 Anthony Green <green@rtl.cygnus.com>
-
- * Makefile.am, aclocal.m4, config.guess, config.sub,
- configure.in, fficonfig.h.in, install-sh, mkinstalldirs,
- stamp-h.in: Created
- * Makefile.in, configure: Generated
-
---- libffi/include --------------------------------------------------------
-
-Tue Feb 24 13:09:36 1998 Anthony Green <green@gerbil.cygnus.com>
-
- * ffi_mips.h: Updated FFI_TYPE_STRUCT_* values based on
- ffi.h.in changes. This is a work-around for SGI's "simple"
- assembler.
-
-Sun Feb 22 00:51:55 1998 Geoff Keating <geoffk@ozemail.com.au>
-
- * ffi.h.in: PowerPC support.
-
-1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * ffi.h.in: Add m68k support.
- (FFI_TYPE_LONGDOUBLE): Make it a separate value.
-
-Tue Feb 10 20:55:16 1998 Richard Henderson <rth@cygnus.com>
-
- * ffi.h.in (SIZEOF_ARG): Use a pointer type by default.
-
- * ffi.h.in: Alpha support.
-
-Fri Nov 22 06:48:45 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in, ffi_common.h: Cygnus Support -> Cygnus Solutions.
-
-Wed Nov 20 22:31:01 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.h.in: Added ffi_type_void definition.
-
-Tue Oct 29 12:22:40 1996 Anthony Green <green@rtl.cygnus.com>
-
- * Makefile.am (hack_DATA): Always install ffi_mips.h.
-
- * ffi.h.in: Removed FFI_DEBUG. It's now in the correct
- place (acconfig.h).
- Added #include <stddef.h> for size_t definition.
-
-Tue Oct 15 17:23:35 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.h.in, ffi_common.h, ffi_mips.h: More clean up.
- Commented out #define of FFI_DEBUG.
-
-Tue Oct 15 13:01:06 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi_common.h: Added bool definition.
-
- * ffi.h.in, ffi_common.h: Clean up based on LCLint output.
- Added funny /*@...@*/ comments to annotate source.
-
-Mon Oct 14 12:29:23 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in: Interface changes based on feedback from Jim
- Blandy.
-
-Fri Oct 11 16:49:35 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in: Small change for sparc support.
-
-Thu Oct 10 14:53:37 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi_mips.h: Added FFI_TYPE_STRUCT_* definitions for
- special structure return types.
-
-Wed Oct 9 13:55:57 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in: Added SIZEOF_ARG definition for X86
-
-Tue Oct 8 11:40:36 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in (FFI_FN): Added macro for eliminating compiler warnings.
- Use it to case your function pointers to the proper type.
-
- * ffi_mips.h (SIZEOF_ARG): Added magic to fix type promotion bug.
-
- * Makefile.am (EXTRA_DIST): Added ffi_mips.h to EXTRA_DIST.
- * Makefile: Rebuilt.
-
- * ffi_mips.h: Created. Moved all common mips definitions here.
-
-Mon Oct 7 10:58:12 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.h.in: The SGI assember is very picky about parens. Redefined
- some macros to avoid problems.
-
- * ffi.h.in: Added FFI_DEFAULT_ABI definitions. Also added
- externs for pointer, and 64bit integral ffi_types.
-
-Fri Oct 4 09:51:37 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.h.in: Added FFI_ABI member to ffi_cif and changed
- function prototypes accordingly.
- Added #define @TARGET@. Now programs including ffi.h don't
- have to specify this themselves.
-
-Thu Oct 3 15:36:44 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.h.in: Changed ffi_prep_cif's values from void* to void**
-
- * Makefile.am (EXTRA_DIST): Added EXTRA_DIST for "make dist"
- to work.
- * Makefile.in: Regenerated.
-
-Wed Oct 2 10:16:59 1996 Anthony Green <green@hoser.cygnus.com>
-
- * Makefile.am: Created
- * Makefile.in: Generated
-
- * ffi_common.h: Added rcsid comment
-
-Tue Oct 1 17:13:51 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.h.in, ffi_common.h: Created
-
---- libffi/src ------------------------------------------------------------
-
-Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
-
- * arm/ffi.c, arm/sysv.S: Created.
-
- * Makefile.am: Added arm files.
- * Makefile.in: Rebuilt.
-
-Mon Oct 5 01:41:38 1998 Anthony Green <green@rtl.cygnus.com>
-
- * Makefile.am (libffi_la_LDFLAGS): Incremented revision.
-
-Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
-
- * alpha/osf.S (ffi_call_osf): Patch for DU assembler.
-
- * ffitest.c (main): long long and long double return values work
- for x86.
-
-Fri Apr 17 11:50:58 1998 Anthony Green <green@hoser.cygnus.com>
-
- * Makefile.in: Rebuilt.
-
- * ffitest.c (main): Floating point tests not executed for systems
- with broken lond double (SunOS 4 w/ GCC).
-
- * types.c: Fixed x86 alignment info for long long types.
-
-Thu Apr 16 07:15:28 1998 Anthony Green <green@ada.cygnus.com>
-
- * ffitest.c: Added more notes about GCC bugs under Irix 6.
-
-Wed Apr 15 08:42:22 1998 Anthony Green <green@hoser.cygnus.com>
-
- * ffitest.c (struct5): New test function.
- (main): New test with struct5.
-
-Thu Mar 5 10:48:11 1998 Anthony Green <green@tootie.to.cygnus.com>
-
- * prep_cif.c (initialize_aggregate): Fix assertion for
- nested structures.
-
-Tue Feb 24 16:33:41 1998 Anthony Green <green@hoser.cygnus.com>
-
- * prep_cif.c (ffi_prep_cif): Added long double support for sparc.
-
-Sun Feb 22 00:52:18 1998 Geoff Keating <geoffk@ozemail.com.au>
-
- * powerpc/asm.h: New file.
- * powerpc/ffi.c: New file.
- * powerpc/sysv.S: New file.
- * Makefile.am: PowerPC port.
- * ffitest.c (main): Allow all tests to run even in presence of gcc
- bug on PowerPC.
-
-1998-02-17 Anthony Green <green@hoser.cygnus.com>
-
- * mips/ffi.c: Fixed comment typo.
-
- * x86/ffi.c (ffi_prep_cif_machdep), x86/sysv.S (retfloat):
- Fixed x86 long double return handling.
-
- * types.c: Fixed x86 long double alignment info.
-
-1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * types.c: Add m68k support.
-
- * ffitest.c (floating): Add long double parameter.
- (return_ll, ldblit): New functions to test long long and long
- double return value.
- (main): Fix type error in assignment of ts[1-4]_type.elements.
- Add tests for long long and long double arguments and return
- values.
-
- * prep_cif.c (ffi_prep_cif) [M68K]: Don't allocate argument for
- struct value pointer.
-
- * m68k/ffi.c, m68k/sysv.S: New files.
- * Makefile.am: Add bits for m68k port. Add kludge to work around
- automake deficiency.
- (test): Don't require "." in $PATH.
- * Makefile.in: Rebuilt.
-
-Wed Feb 11 07:36:50 1998 Anthony Green <green@hoser.cygnus.com>
-
- * Makefile.in: Rebuilt.
-
-Tue Feb 10 20:56:00 1998 Richard Henderson <rth@cygnus.com>
-
- * alpha/ffi.c, alpha/osf.S: New files.
- * Makefile.am: Alpha port.
-
-Tue Nov 18 14:12:07 1997 Anthony Green <green@hoser.cygnus.com>
-
- * mips/ffi.c (ffi_prep_cif_machdep): Initialize rstruct_flag
- for n32.
-
-Tue Jun 3 17:18:20 1997 Anthony Green <green@hoser.cygnus.com>
-
- * ffitest.c (main): Added hack to get structure tests working
- correctly.
-
-Sat May 10 19:06:42 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (EXTRA_DIST): Explicitly list all distributable
- files in subdirs.
- (VERSION, CC): Removed.
-
-Thu May 8 17:19:01 1997 Anthony Green <green@hoser.cygnus.com>
-
- * Makefile.am: Many changes for new automake and libtool.
- * Makefile.in: Rebuilt.
-
-Fri Nov 22 06:57:56 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffitest.c (main): Fixed test case for non mips machines.
-
-Wed Nov 20 22:31:59 1996 Anthony Green <green@hoser.cygnus.com>
-
- * types.c: Added ffi_type_void declaration.
-
-Tue Oct 29 13:07:19 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffitest.c (main): Fixed character constants.
- (main): Emit warning for structure test 3 failure on Sun.
-
- * Makefile.am (VPATH): Fixed VPATH def'n so automake won't
- strip it out.
- Moved distdir hack from libffi to automake.
- (ffitest): Added missing -c for $(COMPILE) (change in automake).
- * Makefile.in: Rebuilt.
-
-Tue Oct 15 13:08:20 1996 Anthony Green <green@hoser.cygnus.com>
-
- * Makefile.am: Added "make lint" production.
- * Makefile.in: Rebuilt.
-
- * prep_cif.c (STACK_ARG_SIZE): Improved STACK_ARG_SIZE macro.
- Clean up based on LCLint output. Added funny /*@...@*/ comments to
- annotate source.
-
- * ffitest.c, debug.c: Cleaned up code.
-
-Mon Oct 14 12:26:56 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffitest.c: Changes based on interface changes.
-
- * prep_cif.c (ffi_prep_cif): Cleaned up interface based on
- feedback from Jim Blandy.
-
-Fri Oct 11 15:53:18 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffitest.c: Reordered tests while porting to sparc.
- Made changes to handle lame structure passing for sparc.
- Removed calls to fflush().
-
- * prep_cif.c (ffi_prep_cif): Added special case for sparc
- aggregate type arguments.
-
-Thu Oct 10 09:56:51 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffitest.c (main): Added structure passing/returning tests.
-
- * prep_cif.c (ffi_prep_cif): Perform proper initialization
- of structure return types if needed.
- (initialize_aggregate): Bug fix
-
-Wed Oct 9 16:04:20 1996 Anthony Green <green@rtl.cygnus.com>
-
- * types.c: Added special definitions for x86 (double doesn't
- need double word alignment).
-
- * ffitest.c: Added many tests
-
-Tue Oct 8 09:19:22 1996 Anthony Green <green@rtl.cygnus.com>
-
- * prep_cif.c (ffi_prep_cif): Fixed assertion.
-
- * debug.c (ffi_assert): Must return a non void now.
-
- * Makefile.am: Added test production.
- * Makefile: Rebuilt.
-
- * ffitest.c (main): Created.
-
- * types.c: Created. Stripped common code out of */ffi.c.
-
- * prep_cif.c: Added missing stdlib.h include.
-
- * debug.c (ffi_type_test): Used "a" to eliminate compiler
- warnings in non-debug builds. Included ffi_common.h.
-
-Mon Oct 7 15:36:42 1996 Anthony Green <green@rtl.cygnus.com>
-
- * Makefile.am: Added a rule for .s -> .o
- This is required by the SGI compiler.
- * Makefile: Rebuilt.
-
-Fri Oct 4 09:51:08 1996 Anthony Green <green@hoser.cygnus.com>
-
- * prep_cif.c (initialize_aggregate): Moved abi specification
- to ffi_prep_cif().
-
-Thu Oct 3 15:37:37 1996 Anthony Green <green@hoser.cygnus.com>
-
- * prep_cif.c (ffi_prep_cif): Changed values from void* to void**.
- (initialize_aggregate): Fixed aggregate type initialization.
-
- * Makefile.am (EXTRA_DIST): Added support code for "make dist".
- * Makefile.in: Regenerated.
-
-Wed Oct 2 11:41:57 1996 Anthony Green <green@hoser.cygnus.com>
-
- * debug.c, prep_cif: Created.
-
- * Makefile.am: Added debug.o and prep_cif.o to OBJ.
- * Makefile.in: Regenerated.
-
- * Makefile.am (INCLUDES): Added missing -I../include
- * Makefile.in: Regenerated.
-
-Tue Oct 1 17:11:51 1996 Anthony Green <green@rtl.cygnus.com>
-
- * error.c, Makefile.am: Created.
- * Makefile.in: Generated.
-
---- libffi/src/x86 --------------------------------------------------------
-
-Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
-
- * sysv.S (retlongdouble): Fixed long long return value support.
- * ffi.c (ffi_prep_cif_machdep): Ditto.
-
-Wed May 13 04:30:33 1998 Anthony Green <green@raft.ppp.tsoft.net>
-
- * ffi.c (ffi_prep_cif_machdep): Fixed long double return value
- support.
-
-Wed Apr 15 08:43:20 1998 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c (ffi_prep_args): small struct support was missing.
-
-Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
-
- * objects.mak: Removed.
-
-Mon Dec 2 15:12:58 1996 Tom Tromey <tromey@cygnus.com>
-
- * sysv.S: Use .balign, for a.out Linux boxes.
-
-Tue Oct 15 13:06:50 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c: Clean up based on LCLint output.
- Added funny /*@...@*/ comments to annotate source.
-
-Fri Oct 11 16:43:38 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c (ffi_call): Added assertion for bad ABIs.
-
-Wed Oct 9 13:57:27 1996 Anthony Green <green@rtl.cygnus.com>
-
- * sysv.S (retdouble): Fixed double return problems.
-
- * ffi.c (ffi_call): Corrected fn arg definition.
- (ffi_prep_cif_machdep): Fixed double return problems
-
-Tue Oct 8 12:12:49 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c: Moved ffi_type definitions to types.c.
- (ffi_prep_args): Fixed type promotion bug.
-
-Mon Oct 7 15:53:06 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
-
-Fri Oct 4 09:54:53 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
- remaining args.
-
-Wed Oct 2 10:07:05 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c, sysv.S, objects.mak: Created.
- (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
- (ffi_prep_cif_machdep): Moved machine independent cif processing
- to src/prep_cif.c. Introduced ffi_prep_cif_machdep().
-
---- libffi/src/mips -------------------------------------------------------
-
-Tue Feb 17 17:18:07 1998 Anthony Green <green@hoser.cygnus.com>
-
- * o32.S: Fixed typo in comment.
-
- * ffi.c (ffi_prep_cif_machdep): Fixed argument processing.
-
-Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
-
- * o32.s, n32.s: Wrappers for SGI tool support.
-
- * objects.mak: Removed.
-
-Tue Oct 29 14:37:45 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c (ffi_prep_args): Changed int z to size_t z.
-
-Tue Oct 15 13:17:25 1996 Anthony Green <green@hoser.cygnus.com>
-
- * n32.S: Fixed bad stack munging.
-
- * ffi.c: Moved prototypes for ffi_call_?32() to here from
- ffi_mips.h because extended_cif is not defined in ffi_mips.h.
-
-Mon Oct 14 12:42:02 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c: Interface changes based on feedback from Jim Blandy.
-
-Thu Oct 10 11:22:16 1996 Anthony Green <green@rtl.cygnus.com>
-
- * n32.S, ffi.c: Lots of changes to support passing and
- returning structures with the n32 calling convention.
-
- * n32.S: Fixed fn pointer bug.
-
- * ffi.c (ffi_prep_cif_machdep): Fix for o32 structure
- return values.
- (ffi_prep_args): Fixed n32 structure passing when structures
- partially fit in registers.
-
-Wed Oct 9 13:49:25 1996 Anthony Green <green@rtl.cygnus.com>
-
- * objects.mak: Added n32.o.
-
- * n32.S: Created.
-
- * ffi.c (ffi_prep_args): Added magic to support proper
- n32 processing.
-
-Tue Oct 8 10:37:35 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c: Moved ffi_type definitions to types.c.
- (ffi_prep_args): Fixed type promotion bug.
-
- * o32.S: This code is only built for o32 compiles.
- A lot of the #define cruft has moved to ffi_mips.h.
-
- * ffi.c (ffi_prep_cif_machdep): Fixed arg flags. Second arg
- is only processed if the first is either a float or double.
-
-Mon Oct 7 15:33:59 1996 Anthony Green <green@rtl.cygnus.com>
-
- * o32.S: Modified to compile under each of o32, n32 and n64.
-
- * ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
-
-Fri Oct 4 09:53:25 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
- remaining args.
-
-Wed Oct 2 17:41:22 1996 Anthony Green <green@rtl.cygnus.com>
-
- * o32.S: Removed crufty definitions.
-
-Wed Oct 2 12:53:42 1996 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
- (ffi_prep_cif_machdep): Moved all machine independent cif processing
- to src/prep_cif.c. Introduced ffi_prep_cif_machdep. Return types
- of FFI_TYPE_STRUCT are no different than FFI_TYPE_INT.
-
-Tue Oct 1 17:11:02 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c, o32.S, object.mak: Created
-
---- libffi/src/sparc ------------------------------------------------------
-
-Tue Feb 24 16:33:18 1998 Anthony Green <green@hoser.cygnus.com>
-
- * ffi.c (ffi_prep_args): Added long double support.
-
-Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
-
- * objects.mak: Removed.
-
-Thu May 1 16:07:56 1997 Anthony Green <green@hoser.cygnus.com>
-
- * v8.S: Fixed minor portability problem reported by
- Russ McManus <mcmanr@eq.gs.com>.
-
-Tue Nov 26 14:12:43 1996 Anthony Green <green@csk3.cygnus.com>
-
- * v8.S: Used STACKFRAME define elsewhere.
-
- * ffi.c (ffi_prep_args): Zero out space when USING_PURIFY
- is set.
- (ffi_prep_cif_machdep): Allocate the correct stack frame
- space for functions with < 6 args.
-
-Tue Oct 29 15:08:55 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c (ffi_prep_args): int z is now size_t z.
-
-Mon Oct 14 13:31:24 1996 Anthony Green <green@rtl.cygnus.com>
-
- * v8.S (ffi_call_V8): Gordon rewrites this again. It looks
- great now.
-
- * ffi.c (ffi_call): The comment about hijacked registers
- is no longer valid after gordoni hacked v8.S.
-
- * v8.S (ffi_call_V8): Rewrote with gordoni. Much simpler.
-
- * v8.S, ffi.c: ffi_call() had changed to accept more than
- two args, so v8.S had to change (because it hijacks incoming
- arg registers).
-
- * ffi.c: Interface changes based on feedback from Jim Blandy.
-
-Thu Oct 10 17:48:16 1996 Anthony Green <green@rtl.cygnus.com>
-
- * ffi.c, v8.S, objects.mak: Created.
-
-
diff --git a/libffi/LICENSE b/libffi/LICENSE
deleted file mode 100644
index f8f54a04faf..00000000000
--- a/libffi/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-libffi - Copyright (c) 1996-1999 Cygnus Solutions
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/libffi/Makefile.am b/libffi/Makefile.am
deleted file mode 100644
index 9b9375cc188..00000000000
--- a/libffi/Makefile.am
+++ /dev/null
@@ -1,162 +0,0 @@
-## Process this with automake to create Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-SUBDIRS = include
-
-EXTRA_DIST = LICENSE ChangeLog.v1 src/mips/ffi.c src/mips/n32.S \
- src/mips/n32.s src/mips/o32.S src/mips/o32.s \
- src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S \
- src/x86/ffi.c src/x86/sysv.S \
- src/alpha/ffi.c src/alpha/osf.S \
- src/m68k/ffi.c src/m68k/sysv.S \
- src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/asm.h \
- src/arm/ffi.c src/arm/sysv.S
-
-VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
-
-## ################################################################
-
-##
-## This section is for make and multilib madness.
-##
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "JC1FLAGS=$(JC1FLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES=
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
-toolexeclib_LTLIBRARIES = libffi.la
-
-noinst_PROGRAMS = ffitest
-
-ffitest_SOURCES = src/ffitest.c
-ffitest_LDADD = libffi.la
-
-TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
-TARGET_SRC_MIPS_SGI = src/mips/ffi.c src/mips/o32.s src/mips/n32.s
-TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S
-TARGET_SRC_SPARC = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
-TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S
-TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S
-TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S
-TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S
-TARGET_SRC_ARM = src/arm/sysv.S src/arm/ffi.c
-
-##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@)
-## Work around automake deficiency
-libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
- src/raw_api.c src/java_raw_api.c
-if MIPS_GCC
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
-endif
-if MIPS_SGI
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
-endif
-if X86
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
-endif
-if SPARC
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
-endif
-if ALPHA
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
-endif
-if IA64
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
-endif
-if M68K
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
-endif
-if POWERPC
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
-endif
-if ARM
-libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
-endif
-
-AM_CFLAGS = -fexceptions
-
-libffi_la_LDFLAGS = -release $(VERSION)
-
-INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-recursive: all-multi
-install-recursive: install-multi
-mostlyclean-recursive: mostlyclean-multi
-clean-recursive: clean-multi
-distclean-recursive: distclean-multi
-maintainer-clean-recursive: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-
-## ################################################################
-
diff --git a/libffi/Makefile.in b/libffi/Makefile.in
deleted file mode 100644
index 083dd4ace24..00000000000
--- a/libffi/Makefile.in
+++ /dev/null
@@ -1,669 +0,0 @@
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
-
-# Copyright (C) 1994, 1995-9, 2000 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_FLAG =
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-
-@SET_MAKE@
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHELL = @SHELL@
-TARGET = @TARGET@
-TARGETDIR = @TARGETDIR@
-VERSION = @VERSION@
-libffi_basedir = @libffi_basedir@
-
-
-AUTOMAKE_OPTIONS = cygnus
-
-SUBDIRS = include
-
-EXTRA_DIST = LICENSE ChangeLog.v1 src/mips/ffi.c src/mips/n32.S \
- src/mips/n32.s src/mips/o32.S src/mips/o32.s \
- src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S \
- src/x86/ffi.c src/x86/sysv.S \
- src/alpha/ffi.c src/alpha/osf.S \
- src/m68k/ffi.c src/m68k/sysv.S \
- src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/asm.h \
- src/arm/ffi.c src/arm/sysv.S
-
-
-VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "JC1FLAGS=$(JC1FLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-
-MAKEOVERRIDES =
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
-
-toolexeclib_LTLIBRARIES = libffi.la
-
-noinst_PROGRAMS = ffitest
-
-ffitest_SOURCES = src/ffitest.c
-ffitest_LDADD = libffi.la
-
-TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
-TARGET_SRC_MIPS_SGI = src/mips/ffi.c src/mips/o32.s src/mips/n32.s
-TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S
-TARGET_SRC_SPARC = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
-TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S
-TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S
-TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S
-TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S
-TARGET_SRC_ARM = src/arm/sysv.S src/arm/ffi.c
-
-libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
- src/raw_api.c src/java_raw_api.c
-
-@MIPS_GCC_TRUE@libffi_la_SOURCES = @MIPS_GCC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
-@MIPS_SGI_TRUE@libffi_la_SOURCES = @MIPS_SGI_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
-@X86_TRUE@libffi_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
-@SPARC_TRUE@libffi_la_SOURCES = @SPARC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
-@ALPHA_TRUE@libffi_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
-@IA64_TRUE@libffi_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
-@M68K_TRUE@libffi_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
-@POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
-@ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
-
-AM_CFLAGS = -fexceptions
-
-libffi_la_LDFLAGS = -release $(VERSION)
-
-INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = fficonfig.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I.
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libffi_la_LIBADD =
-@ALPHA_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@ALPHA_TRUE@raw_api.lo java_raw_api.lo ffi.lo osf.lo
-@ARM_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@ARM_TRUE@raw_api.lo java_raw_api.lo sysv.lo ffi.lo
-@IA64_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@IA64_TRUE@raw_api.lo java_raw_api.lo ffi.lo unix.lo
-@M68K_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@M68K_TRUE@raw_api.lo java_raw_api.lo ffi.lo sysv.lo
-@MIPS_GCC_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@MIPS_GCC_TRUE@raw_api.lo java_raw_api.lo ffi.lo o32.lo n32.lo
-@MIPS_SGI_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@MIPS_SGI_TRUE@raw_api.lo java_raw_api.lo ffi.lo o32.lo n32.lo
-@POWERPC_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@POWERPC_TRUE@raw_api.lo java_raw_api.lo ffi.lo sysv.lo
-@SPARC_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@SPARC_TRUE@raw_api.lo java_raw_api.lo ffi.lo v8.lo v9.lo
-@X86_TRUE@am_libffi_la_OBJECTS = debug.lo prep_cif.lo types.lo \
-@X86_TRUE@raw_api.lo java_raw_api.lo ffi.lo sysv.lo
-libffi_la_OBJECTS = $(am_libffi_la_OBJECTS)
-noinst_PROGRAMS = ffitest$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-
-am_ffitest_OBJECTS = ffitest.o
-ffitest_OBJECTS = $(am_ffitest_OBJECTS)
-ffitest_DEPENDENCIES = libffi.la
-ffitest_LDFLAGS =
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CFLAGS = @CFLAGS@
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DIST_SOURCES = $(libffi_la_SOURCES) $(ffitest_SOURCES)
-depcomp =
-DIST_COMMON = README ./stamp-h.in ChangeLog Makefile.am Makefile.in \
-acconfig.h acinclude.m4 aclocal.m4 configure configure.in fficonfig.h.in
-
-
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-GZIP_ENV = --best
-SOURCES = $(libffi_la_SOURCES) $(ffitest_SOURCES)
-OBJECTS = $(am_libffi_la_OBJECTS) $(am_ffitest_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-fficonfig.h: stamp-h
- @if test ! -f $@; then \
- rm -f stamp-h; \
- $(MAKE) stamp-h; \
- else :; fi
-stamp-h: $(srcdir)/fficonfig.h.in $(top_builddir)/config.status
- @rm -f stamp-h stamp-hT
- @echo timestamp > stamp-hT 2> /dev/null
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=fficonfig.h \
- $(SHELL) ./config.status
- @mv stamp-hT stamp-h
-$(srcdir)/fficonfig.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/./stamp-h.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/./stamp-h.in; \
- $(MAKE) $(srcdir)/./stamp-h.in; \
- else :; fi
-$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
- @rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT
- @echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null
- cd $(top_srcdir) && $(AUTOHEADER)
- @mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f fficonfig.h
-
-maintainer-clean-hdr:
-
-mostlyclean-toolexeclibLTLIBRARIES:
-
-clean-toolexeclibLTLIBRARIES:
- -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
-
-distclean-toolexeclibLTLIBRARIES:
-
-maintainer-clean-toolexeclibLTLIBRARIES:
-
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-toolexeclibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
- done
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-debug.lo: src/debug.c
-prep_cif.lo: src/prep_cif.c
-types.lo: src/types.c
-raw_api.lo: src/raw_api.c
-java_raw_api.lo: src/java_raw_api.c
-ffi.lo: src/alpha/ffi.c
-osf.lo: src/alpha/osf.S
-sysv.lo: src/arm/sysv.S
-unix.lo: src/ia64/unix.S
-o32.lo: src/mips/o32.S
-n32.lo: src/mips/n32.S
-v8.lo: src/sparc/v8.S
-v9.lo: src/sparc/v9.S
-
-libffi.la: $(libffi_la_OBJECTS) $(libffi_la_DEPENDENCIES)
- $(LINK) -rpath $(toolexeclibdir) $(libffi_la_LDFLAGS) $(libffi_la_OBJECTS) $(libffi_la_LIBADD) $(LIBS)
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-ffitest.o: src/ffitest.c
-
-ffitest$(EXEEXT): $(ffitest_OBJECTS) $(ffitest_DEPENDENCIES)
- @rm -f ffitest$(EXEEXT)
- $(LINK) $(ffitest_LDFLAGS) $(ffitest_OBJECTS) $(ffitest_LDADD) $(LIBS)
-.S.o:
- $(COMPILE) -c $<
-.S.lo:
- $(LTCOMPILE) -c -o $@ $<
-.c.o:
- $(COMPILE) -c $<
-.c.lo:
- $(LTCOMPILE) -c -o $@ $<
-.s.o:
- $(COMPILE) -c $<
-.s.lo:
- $(LTCOMPILE) -c -o $@ $<
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
- rev="$$subdir $$rev"; \
- if test "$$subdir" = "."; then dot_seen=yes; else :; fi; \
- done; \
- test "$$dot_seen" = "no" && rev=". $$rev"; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) fficonfig.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)fficonfig.h.in$$unique$(LISP)$$tags" \
- || etags $(ETAGS_ARGS) $$tags fficonfig.h.in $$unique $(LISP)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- chmod a-w $(distdir)
- dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
- && cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && test `find $$dc_install_base -type f -print | wc -l` -le 1 \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && $(MAKE) $(AM_MAKEFLAGS) distclean \
- && rm -f $(distdir).tar.gz \
- && test `find . -type f -print | wc -l` -eq 0
- -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c > $(distdir).tar.gz
- -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
-dist-all: distdir
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c > $(distdir).tar.gz
- -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
-distdir: $(DISTFILES)
- -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
- mkdir $(distdir)
- $(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \
- $(distdir)/src/m68k $(distdir)/src/mips \
- $(distdir)/src/powerpc $(distdir)/src/sparc \
- $(distdir)/src/x86
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- cp -pR $$d/$$file $(distdir) \
- || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- for subdir in $(SUBDIRS); do \
- if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
- || exit 1; \
- fi; \
- done
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am:
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-install-info-am:
-install-info: install-info-recursive
-all-recursive-am: fficonfig.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am: install-toolexeclibLTLIBRARIES
-install-exec: install-exec-recursive
-
-install-data-am:
-install-data: install-data-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-toolexeclibLTLIBRARIES
-uninstall: uninstall-recursive
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) fficonfig.h
-all-redirect: all-recursive-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
-installdirs: installdirs-recursive
-installdirs-am:
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
- -rm -f Makefile.in
-mostlyclean-am: mostlyclean-hdr mostlyclean-toolexeclibLTLIBRARIES \
- mostlyclean-compile mostlyclean-libtool \
- mostlyclean-noinstPROGRAMS mostlyclean-tags \
- mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am: clean-hdr clean-toolexeclibLTLIBRARIES clean-compile \
- clean-libtool clean-noinstPROGRAMS clean-tags \
- clean-generic mostlyclean-am
-
-clean: clean-recursive
-
-distclean-am: distclean-hdr distclean-toolexeclibLTLIBRARIES \
- distclean-compile distclean-libtool \
- distclean-noinstPROGRAMS distclean-tags \
- distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-recursive
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-hdr \
- maintainer-clean-toolexeclibLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-toolexeclibLTLIBRARIES distclean-toolexeclibLTLIBRARIES \
-clean-toolexeclibLTLIBRARIES maintainer-clean-toolexeclibLTLIBRARIES \
-uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
-distclean-noinstPROGRAMS clean-noinstPROGRAMS \
-maintainer-clean-noinstPROGRAMS install-recursive uninstall-recursive \
-install-data-recursive uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info all-recursive-am install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all install-strip installdirs-am installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-recursive: all-multi
-install-recursive: install-multi
-mostlyclean-recursive: mostlyclean-multi
-clean-recursive: clean-multi
-distclean-recursive: distclean-multi
-maintainer-clean-recursive: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libffi/README b/libffi/README
deleted file mode 100644
index e201f9ff755..00000000000
--- a/libffi/README
+++ /dev/null
@@ -1,502 +0,0 @@
-README for libffi-2.00
-
-libffi-2.00 has not been released yet! This is a development snapshot!
-
-libffi-1.20 was released on [SOME FUTURE DAY]. Check the libffi web
-page for updates: <URL:http://sourceware.cygnus.com/libffi/>.
-
-
-What is libffi?
-===============
-
-Compilers for high level languages generate code that follow certain
-conventions. These conventions are necessary, in part, for separate
-compilation to work. One such convention is the "calling
-convention". The "calling convention" is essentially a set of
-assumptions made by the compiler about where function arguments will
-be found on entry to a function. A "calling convention" also specifies
-where the return value for a function is found.
-
-Some programs may not know at the time of compilation what arguments
-are to be passed to a function. For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call
-a given function. Libffi can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-The libffi library provides a portable, high level programming
-interface to various calling conventions. This allows a programmer to
-call any function specified by a call interface description at run
-time.
-
-Ffi stands for Foreign Function Interface. A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language. The
-libffi library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface. A layer must
-exist above libffi that handles type conversions for values passed
-between the two languages.
-
-
-Supported Platforms and Prerequisites
-=====================================
-
-Libffi has been ported to:
-
- SunOS 4.1.3 & Solaris 2.x (Sparc v8)
-
- Irix 5.3 & 6.2 (System V/o32 & n32)
-
- Intel x86 - Linux (System V ABI)
-
- Alpha - Linux and OSF/1
-
- m68k - Linux (System V ABI)
-
- PowerPC - Linux (System V ABI)
-
- ARM - Linux (System V ABI)
-
-Libffi has been tested with the egcs 1.0.2 gcc compiler. Chances are
-that other versions will work. Libffi has also been built and tested
-with the SGI compiler tools.
-
-On PowerPC, the tests failed (see the note below).
-
-You must use GNU make to build libffi. SGI's make will not work.
-Sun's probably won't either.
-
-If you port libffi to another platform, please let me know! I assume
-that some will be easy (x86 NetBSD), and others will be more difficult
-(HP, AIX).
-
-
-Installing libffi
-=================
-
-[Note: before actually performing any of these installation steps,
- you may wish to read the "Platform Specific Notes" below.]
-
-First you must configure the distribution for your particular
-system. Go to the directory you wish to build libffi in and run the
-"configure" program found in the root directory of the libffi source
-distribution.
-
-You may want to tell configure where to install the libffi library and
-header files. To do that, use the --prefix configure switch. Libffi
-will install under /usr/local by default.
-
-If you want to enable extra run-time debugging checks use the the
---enable-debug configure switch. This is useful when your program dies
-mysteriously while using libffi.
-
-Another useful configure switch is --enable-purify-safety. Using this
-will add some extra code which will suppress certain warnings when you
-are using Purify with libffi. Only use this switch when using
-Purify, as it will slow down the library.
-
-Configure has many other options. Use "configure --help" to see them all.
-
-Once configure has finished, type "make". Note that you must be using
-GNU make. SGI's make will not work. Sun's probably won't either.
-You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
-
-To ensure that libffi is working as advertised, type "make test".
-
-To install the library and header files, type "make install".
-
-
-Using libffi
-============
-
- The Basics
- ----------
-
-Libffi assumes that you have a pointer to the function you wish to
-call and that you know the number and types of arguments to pass it,
-as well as the return type of the function.
-
-The first thing you must do is create an ffi_cif object that matches
-the signature of the function you wish to call. The cif in ffi_cif
-stands for Call InterFace. To prepare a call interface object, use the
-following function:
-
-ffi_status ffi_prep_cif(ffi_cif *cif, ffi_abi abi,
- unsigned int nargs,
- ffi_type *rtype, ffi_type **atypes);
-
- CIF is a pointer to the call interface object you wish
- to initialize.
-
- ABI is an enum that specifies the calling convention
- to use for the call. FFI_DEFAULT_ABI defaults
- to the system's native calling convention. Other
- ABI's may be used with care. They are system
- specific.
-
- NARGS is the number of arguments this function accepts.
- libffi does not yet support vararg functions.
-
- RTYPE is a pointer to an ffi_type structure that represents
- the return type of the function. Ffi_type objects
- describe the types of values. libffi provides
- ffi_type objects for many of the native C types:
- signed int, unsigned int, signed char, unsigned char,
- etc. There is also a pointer ffi_type object and
- a void ffi_type. Use &ffi_type_void for functions that
- don't return values.
-
- ATYPES is a vector of ffi_type pointers. ARGS must be NARGS long.
- If NARGS is 0, this is ignored.
-
-
-ffi_prep_cif will return a status code that you are responsible
-for checking. It will be one of the following:
-
- FFI_OK - All is good.
-
- FFI_BAD_TYPEDEF - One of the ffi_type objects that ffi_prep_cif
- came across is bad.
-
-
-Before making the call, the VALUES vector should be initialized
-with pointers to the appropriate argument values.
-
-To call the the function using the initialized ffi_cif, use the
-ffi_call function:
-
-void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues);
-
- CIF is a pointer to the ffi_cif initialized specifically
- for this function.
-
- FN is a pointer to the function you want to call.
-
- RVALUE is a pointer to a chunk of memory that is to hold the
- result of the function call. Currently, it must be
- at least one word in size (except for the n32 version
- under Irix 6.x, which must be a pointer to an 8 byte
- aligned value (a long long). It must also be at least
- word aligned (depending on the return type, and the
- system's alignment requirements). If RTYPE is
- &ffi_type_void, this is ignored. If RVALUE is NULL,
- the return value is discarded.
-
- AVALUES is a vector of void* that point to the memory locations
- holding the argument values for a call.
- If NARGS is 0, this is ignored.
-
-
-If you are expecting a return value from FN it will have been stored
-at RVALUE.
-
-
-
- An Example
- ----------
-
-Here is a trivial example that calls puts() a few times.
-
- #include <stdio.h>
- #include <ffi.h>
-
- int main()
- {
- ffi_cif cif;
- ffi_type *args[1];
- void *values[1];
- char *s;
- int rc;
-
- /* Initialize the argument info vectors */
- args[0] = &ffi_type_uint;
- values[0] = &s;
-
- /* Initialize the cif */
- if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_uint, args) == FFI_OK)
- {
- s = "Hello World!";
- ffi_call(&cif, puts, &rc, values);
- /* rc now holds the result of the call to puts */
-
- /* values holds a pointer to the function's arg, so to
- call puts() again all we need to do is change the
- value of s */
- s = "This is cool!";
- ffi_call(&cif, puts, &rc, values);
- }
-
- return 0;
- }
-
-
-
- Aggregate Types
- ---------------
-
-Although libffi has no special support for unions or bit-fields, it is
-perfectly happy passing structures back and forth. You must first
-describe the structure to libffi by creating a new ffi_type object
-for it. Here is the definition of ffi_type:
-
- typedef struct _ffi_type
- {
- unsigned size;
- short alignment;
- short type;
- struct _ffi_type **elements;
- } ffi_type;
-
-All structures must have type set to FFI_TYPE_STRUCT. You may set
-size and alignment to 0. These will be calculated and reset to the
-appropriate values by ffi_prep_cif().
-
-elements is a NULL terminated array of pointers to ffi_type objects
-that describe the type of the structure elements. These may, in turn,
-be structure elements.
-
-The following example initializes a ffi_type object representing the
-tm struct from Linux's time.h:
-
- struct tm {
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
- /* Those are for future use. */
- long int __tm_gmtoff__;
- __const char *__tm_zone__;
- };
-
- {
- ffi_type tm_type;
- ffi_type *tm_type_elements[12];
- int i;
-
- tm_type.size = tm_type.alignment = 0;
- tm_type.elements = &tm_type_elements;
-
- for (i = 0; i < 9; i++)
- tm_type_elements[i] = &ffi_type_sint;
-
- tm_type_elements[9] = &ffi_type_slong;
- tm_type_elements[10] = &ffi_type_pointer;
- tm_type_elements[11] = NULL;
-
- /* tm_type can now be used to represent tm argument types and
- return types for ffi_prep_cif() */
- }
-
-
-
-Platform Specific Notes
-=======================
-
- Intel x86
- ---------
-
-There are no known problems with the x86 port.
-
- Sun Sparc - SunOS 4.1.3 & Solaris 2.x
- -------------------------------------
-
-There's a bug in the structure passing code for sparc processors.
-Struct arguments that are passed in value actually end up being passed
-by reference. This will be fixed Real Soon Now.
-
-"long long" values are not supported yet.
-
-You must use GNU Make to build libffi on Sun platforms.
-
- MIPS - Irix 5.3 & 6.x
- ---------------------
-
-Irix 6.2 and better supports three different calling conventions: o32,
-n32 and n64. Currently, libffi only supports both o32 and n32 under
-Irix 6.x, but only o32 under Irix 5.3. Libffi will automatically be
-configured for whichever calling convention it was built for.
-
-By default, the configure script will try to build libffi with the GNU
-development tools. To build libffi with the SGI development tools, set
-the environment variable CC to either "cc -32" or "cc -n32" before
-running configure under Irix 6.x (depending on whether you want an o32
-or n32 library), or just "cc" for Irix 5.3.
-
-With the n32 calling convention, when returning structures smaller
-than 16 bytes, be sure to provide an RVALUE that is 8 byte aligned.
-Here's one way of forcing this:
-
- double struct_storage[2];
- my_small_struct *s = (my_small_struct *) struct_storage;
- /* Use s for RVALUE */
-
-If you don't do this you are liable to get spurious bus errors.
-
-"long long" values are not supported yet.
-
-You must use GNU Make to build libffi on SGI platforms.
-
- ARM - System V ABI
- ------------------
-
-The ARM port was performed on a NetWinder running ARM Linux ELF
-(2.0.31) and gcc 2.8.1.
-
-
-
- PowerPC System V ABI
- --------------------
-
-There are two `System V ABI's which libffi implements for PowerPC.
-They differ only in how small structures are returned from functions.
-
-In the FFI_SYSV version, structures that are 8 bytes or smaller are
-returned in registers. This is what GCC does when it is configured
-for solaris, and is what the System V ABI I have (dated September
-1995) says.
-
-In the FFI_GCC_SYSV version, all structures are returned the same way:
-by passing a pointer as the first argument to the function. This is
-what GCC does when it is configured for linux or a generic sysv
-target.
-
-EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
-inconsistency with the SysV ABI: When a procedure is called with many
-floating-point arguments, some of them get put on the stack. They are
-all supposed to be stored in double-precision format, even if they are
-only single-precision, but EGCS stores single-precision arguments as
-single-precision anyway. This causes one test to fail (the `many
-arguments' test).
-
-
-What's With The Crazy Comments?
-===============================
-
-You might notice a number of cryptic comments in the code, delimited
-by /*@ and @*/. These are annotations read by the program LCLint, a
-tool for statically checking C programs. You can read all about it at
-<http://larch-www.lcs.mit.edu:8001/larch/lclint/index.html>.
-
-
-History
-=======
-
-1.20 Oct-5-98
- Raffaele Sena produces ARM port.
-
-1.19 Oct-5-98
- Fixed x86 long double and long long return support.
- m68k bug fixes from Andreas Schwab.
- Patch for DU assembler compatibility for the Alpha from Richard
- Henderson.
-
-1.18 Apr-17-98
- Bug fixes and MIPS configuration changes.
-
-1.17 Feb-24-98
- Bug fixes and m68k port from Andreas Schwab. PowerPC port from
- Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
-
-1.16 Feb-11-98
- Richard Henderson produces Alpha port.
-
-1.15 Dec-4-97
- Fixed an n32 ABI bug. New libtool, auto* support.
-
-1.14 May-13-97
- libtool is now used to generate shared and static libraries.
- Fixed a minor portability problem reported by Russ McManus
- <mcmanr@eq.gs.com>.
-
-1.13 Dec-2-96
- Added --enable-purify-safety to keep Purify from complaining
- about certain low level code.
- Sparc fix for calling functions with < 6 args.
- Linux x86 a.out fix.
-
-1.12 Nov-22-96
- Added missing ffi_type_void, needed for supporting void return
- types. Fixed test case for non MIPS machines. Cygnus Support
- is now Cygnus Solutions.
-
-1.11 Oct-30-96
- Added notes about GNU make.
-
-1.10 Oct-29-96
- Added configuration fix for non GNU compilers.
-
-1.09 Oct-29-96
- Added --enable-debug configure switch. Clean-ups based on LCLint
- feedback. ffi_mips.h is always installed. Many configuration
- fixes. Fixed ffitest.c for sparc builds.
-
-1.08 Oct-15-96
- Fixed n32 problem. Many clean-ups.
-
-1.07 Oct-14-96
- Gordon Irlam rewrites v8.S again. Bug fixes.
-
-1.06 Oct-14-96
- Gordon Irlam improved the sparc port.
-
-1.05 Oct-14-96
- Interface changes based on feedback.
-
-1.04 Oct-11-96
- Sparc port complete (modulo struct passing bug).
-
-1.03 Oct-10-96
- Passing struct args, and returning struct values works for
- all architectures/calling conventions. Expanded tests.
-
-1.02 Oct-9-96
- Added SGI n32 support. Fixed bugs in both o32 and Linux support.
- Added "make test".
-
-1.01 Oct-8-96
- Fixed float passing bug in mips version. Restructured some
- of the code. Builds cleanly with SGI tools.
-
-1.00 Oct-7-96
- First release. No public announcement.
-
-
-Authors & Credits
-=================
-
-libffi was written by Anthony Green <green@cygnus.com>.
-
-Portions of libffi were derived from Gianni Mariani's free gencall
-library for Silicon Graphics machines.
-
-The closure mechanism was designed and implemented by Kresten Krab
-Thorup.
-
-The Sparc port was derived from code contributed by the fine folks at
-Visible Decisions Inc <http://www.vdi.com>. Further enhancements were
-made by Gordon Irlam at Cygnus Solutions <http://www.cygnus.com>.
-
-The Alpha port was written by Richard Henderson at Cygnus Solutions.
-
-Andreas Schwab ported libffi to m68k Linux and provided a number of
-bug fixes.
-
-Geoffrey Keating ported libffi to the PowerPC.
-
-Raffaele Sena ported libffi to the ARM.
-
-Jesper Skov and Andrew Haley both did more than their fair share of
-stepping through the code and tracking down bugs.
-
-Thanks also to Tom Tromey for bug fixes and configuration help.
-
-Thanks to Jim Blandy, who provided some useful feedback on the libffi
-interface.
-
-If you have a problem, or have found a bug, please send a note to
-green@cygnus.com.
diff --git a/libffi/acconfig.h b/libffi/acconfig.h
deleted file mode 100644
index 9c553150c02..00000000000
--- a/libffi/acconfig.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Define this if you want extra debugging */
-#undef FFI_DEBUG
-
-/* Define this if you are using Purify and want to suppress
- spurious messages. */
-#undef USING_PURIFY
-
-/* Define this is you do not want support for aggregate types. */
-#undef FFI_NO_STRUCTS
-
-/* Define this is you do not want support for the raw API. */
-#undef FFI_NO_RAW_API
diff --git a/libffi/acinclude.m4 b/libffi/acinclude.m4
deleted file mode 100644
index 162f6625d16..00000000000
--- a/libffi/acinclude.m4
+++ /dev/null
@@ -1,8 +0,0 @@
-sinclude(../libtool.m4)
-dnl The lines below arrange for aclocal not to bring libtool.m4
-dnl AC_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[
-AC_DEFUN([AC_PROG_LIBTOOL],)
-AC_SUBST(LIBTOOL)
-])
diff --git a/libffi/aclocal.m4 b/libffi/aclocal.m4
deleted file mode 100644
index 63ff94205d8..00000000000
--- a/libffi/aclocal.m4
+++ /dev/null
@@ -1,169 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-sinclude(../libtool.m4)
-dnl The lines below arrange for aclocal not to bring libtool.m4
-dnl AC_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[
-AC_DEFUN([AC_PROG_LIBTOOL],)
-AC_SUBST(LIBTOOL)
-])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
- ;;
- esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# serial 1
-
-AC_DEFUN(AM_MAINTAINER_MODE,
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi])
-
diff --git a/libffi/configure b/libffi/configure
deleted file mode 100755
index 6a8475d624e..00000000000
--- a/libffi/configure
+++ /dev/null
@@ -1,3564 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- --enable-multilib build many library versions (default)"
-ac_help="$ac_help
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer"
-ac_help="$ac_help
- --enable-shared[=PKGS] build shared libraries [default=yes]"
-ac_help="$ac_help
- --enable-static[=PKGS] build static libraries [default=yes]"
-ac_help="$ac_help
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
-ac_help="$ac_help
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
- --disable-libtool-lock avoid locking (might break parallel builds)"
-ac_help="$ac_help
- --with-pic try to use only PIC/non-PIC objects [default=use both]"
-ac_help="$ac_help
- --enable-debug debugging mode"
-ac_help="$ac_help
- --disable-structs omit code for struct support"
-ac_help="$ac_help
- --disable-raw-api make the raw api unavailable"
-ac_help="$ac_help
- --enable-purify-safety purify-safe mode"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=fficonfig.h.in
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-
-echo "configure: warning: ***********************************************************" 1>&2
-echo "configure: warning: ***********************************************************" 1>&2
-echo "configure: warning: This is beta code. If you're looking for a stable release" 1>&2
-echo "configure: warning: then use the most recent one - libffi-1.20." 1>&2
-echo "configure: warning: ***********************************************************" 1>&2
-echo "configure: warning: ***********************************************************" 1>&2
-
-# Check whether --enable-multilib or --disable-multilib was given.
-if test "${enable_multilib+set}" = set; then
- enableval="$enable_multilib"
- case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;;
- esac
-else
- multilib=yes
-fi
-
-
-if test "${srcdir}" = "."; then
- if test "${with_target_subdir}" != "."; then
- libffi_basedir="${srcdir}/${with_multisrctop}.."
- else
- libffi_basedir="${srcdir}/${with_multisrctop}"
- fi
-else
- libffi_basedir="${srcdir}"
-fi
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:611: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:644: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:697: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:754: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-PACKAGE=libffi
-
-VERSION=2.00-beta
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:793: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:806: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:819: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:832: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:845: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:860: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 865 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cygwin=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:893: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 898 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_mingw32=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:924: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:955: checking whether to enable maintainer-specific portions of Makefiles" >&5
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:981: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1011: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1062: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1094: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1105 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1136: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1141: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1150: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1169: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1270: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1299: checking for ld used by GCC" >&5
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1329: checking for GNU ld" >&5
-else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1332: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1367: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-with_gnu_ld=$ac_cv_prog_gnu_ld
-
-
-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1384: checking for $LD option to reload object files" >&5
-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-
-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1396: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1434: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1455: checking how to recognise dependant libraries" >&5
-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s0-90-90-9|PA-RISC0-9.0-9) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-
-fi
-
-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1598: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-if test $host != $build; then
- ac_tool_prefix=${host_alias}-
-else
- ac_tool_prefix=
-fi
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:1634: checking for ${ac_tool_prefix}file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:1696: checking for file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- else
- MAGIC=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1767: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1799: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1834: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_STRIP"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1866: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- STRIP=":"
-fi
-fi
-
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
- :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 1933 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1955: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
- cat > conftest.$ac_ext <<EOF
-#line 1968 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_needs_belf=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-
-esac
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-
-
-
-TARGETDIR="unknown"
-case "$host" in
-mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
-i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-freebsd*) TARGET=X86; TARGETDIR=x86;;
-sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc64-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
-alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; TARGETDIR=alpha;;
-ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
-m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
-powerpc-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
-powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
-arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
-esac
-
-if test $TARGETDIR = unknown; then
- { echo "configure: error: "libffi has not been ported to $host."" 1>&2; exit 1; }
-fi
-
-
-
-if test ${TARGET}${ac_cv_prog_gcc} = MIPSyes; then
- MIPS_GCC_TRUE=
- MIPS_GCC_FALSE='#'
-else
- MIPS_GCC_TRUE='#'
- MIPS_GCC_FALSE=
-fi
-
-
-if test ${TARGET}${ac_cv_prog_gcc} = MIPSno; then
- MIPS_SGI_TRUE=
- MIPS_SGI_FALSE='#'
-else
- MIPS_SGI_TRUE='#'
- MIPS_SGI_FALSE=
-fi
-
-
-if test x$TARGET = xSPARC; then
- SPARC_TRUE=
- SPARC_FALSE='#'
-else
- SPARC_TRUE='#'
- SPARC_FALSE=
-fi
-
-
-if test x$TARGET = xX86; then
- X86_TRUE=
- X86_FALSE='#'
-else
- X86_TRUE='#'
- X86_FALSE=
-fi
-
-
-if test x$TARGET = xALPHA; then
- ALPHA_TRUE=
- ALPHA_FALSE='#'
-else
- ALPHA_TRUE='#'
- ALPHA_FALSE=
-fi
-
-
-if test x$TARGET = xIA64; then
- IA64_TRUE=
- IA64_FALSE='#'
-else
- IA64_TRUE='#'
- IA64_FALSE=
-fi
-
-
-if test x$TARGET = xM68K; then
- M68K_TRUE=
- M68K_FALSE='#'
-else
- M68K_TRUE='#'
- M68K_FALSE=
-fi
-
-
-if test x$TARGET = xPOWERPC; then
- POWERPC_TRUE=
- POWERPC_FALSE='#'
-else
- POWERPC_TRUE='#'
- POWERPC_FALSE=
-fi
-
-
-if test x$TARGET = xARM; then
- ARM_TRUE=
- ARM_FALSE='#'
-else
- ARM_TRUE='#'
- ARM_FALSE=
-fi
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2197: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 2212 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2218: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 2229 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 2246 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2277: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2282 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2307 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2325 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 2346 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:2357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-for ac_func in memcpy
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2383: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2388 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2438: checking for working alloca.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2443 "configure"
-#include "confdefs.h"
-#include <alloca.h>
-int main() {
-char *p = alloca(2 * sizeof(int));
-; return 0; }
-EOF
-if { (eval echo configure:2450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_header_alloca_h=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_alloca_h=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
-if test $ac_cv_header_alloca_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA_H 1
-EOF
-
-fi
-
-echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2471: checking for alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2476 "configure"
-#include "confdefs.h"
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int main() {
-char *p = (char *) alloca(1);
-; return 0; }
-EOF
-if { (eval echo configure:2504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_alloca_works=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_func_alloca_works=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-fi
-
-if test $ac_cv_func_alloca_works = no; then
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
- # that cause trouble. Some versions do not even contain alloca or
- # contain a buggy version. If you still want to use their alloca,
- # use ar to extract alloca.o from them instead of compiling alloca.c.
- ALLOCA=alloca.${ac_objext}
- cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
-
-
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2536: checking whether alloca needs Cray hooks" >&5
-if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2541 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "webecray" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_os_cray=yes
-else
- rm -rf conftest*
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_os_cray" 1>&6
-if test $ac_cv_os_cray = yes; then
-for ac_func in _getb67 GETB67 getb67; do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2566: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2571 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
-
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
-done
-fi
-
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2621: checking stack direction for C alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 2629 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
- exit (find_stack_direction() < 0);
-}
-EOF
-if { (eval echo configure:2648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_stack_direction=1
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_stack_direction=-1
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >> confdefs.h <<EOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-EOF
-
-fi
-
-
-echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:2671: checking size of short" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2679 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(short));
- exit(0);
-}
-EOF
-if { (eval echo configure:2690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_short=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_short=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_short" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-EOF
-
-
-echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:2710: checking size of int" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2718 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(int));
- exit(0);
-}
-EOF
-if { (eval echo configure:2729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_int=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_int=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_int" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-EOF
-
-
-echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:2749: checking size of long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2757 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(long));
- exit(0);
-}
-EOF
-if { (eval echo configure:2768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_long=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-EOF
-
-
-echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:2788: checking size of long long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2796 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(long long));
- exit(0);
-}
-EOF
-if { (eval echo configure:2807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_long_long=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_long_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-EOF
-
-
-echo $ac_n "checking size of float""... $ac_c" 1>&6
-echo "configure:2827: checking size of float" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2835 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(float));
- exit(0);
-}
-EOF
-if { (eval echo configure:2846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_float=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_float=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_float" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_FLOAT $ac_cv_sizeof_float
-EOF
-
-
-echo $ac_n "checking size of double""... $ac_c" 1>&6
-echo "configure:2866: checking size of double" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2874 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(double));
- exit(0);
-}
-EOF
-if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_double=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_double=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_double" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_DOUBLE $ac_cv_sizeof_double
-EOF
-
-
-echo $ac_n "checking size of long double""... $ac_c" 1>&6
-echo "configure:2905: checking size of long double" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2913 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(long double));
- exit(0);
-}
-EOF
-if { (eval echo configure:2924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_long_double=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_long_double=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long_double" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double
-EOF
-
-
-
-echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:2945: checking size of void *" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 2953 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(void *));
- exit(0);
-}
-EOF
-if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_void_p=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_void_p=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_void_p" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-EOF
-
-
-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2984: checking whether byte ordering is bigendian" >&5
-if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-cat > conftest.$ac_ext <<EOF
-#line 2991 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:3002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- # It does; now see whether it defined to BIG_ENDIAN or not.
-cat > conftest.$ac_ext <<EOF
-#line 3006 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:3017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_bigendian=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_bigendian=no
-fi
-rm -f conftest*
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-if test $ac_cv_c_bigendian = unknown; then
-if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 3037 "configure"
-#include "confdefs.h"
-main () {
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
-}
-EOF
-if { (eval echo configure:3050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_bigendian=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_bigendian=yes
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-if test $ac_cv_c_bigendian = yes; then
- cat >> confdefs.h <<\EOF
-#define WORDS_BIGENDIAN 1
-EOF
-
-fi
-
-
-
-
-
-
-
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval="$enable_debug"
- cat >> confdefs.h <<\EOF
-#define FFI_DEBUG 1
-EOF
-
-fi
-
-
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval="$enable_debug"
- cat >> confdefs.h <<\EOF
-#define FFI_NO_STRUCTS 1
-EOF
-
-fi
-
-
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval="$enable_debug"
- cat >> confdefs.h <<\EOF
-#define FFI_NO_RAW_API 1
-EOF
-
-fi
-
-
-# Check whether --enable-purify-safety or --disable-purify-safety was given.
-if test "${enable_purify_safety+set}" = set; then
- enableval="$enable_purify_safety"
- cat >> confdefs.h <<\EOF
-#define USING_PURIFY 1
-EOF
-
-fi
-
-
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
-else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
-fi
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "include/Makefile include/ffi.h Makefile fficonfig.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@libffi_basedir@%$libffi_basedir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@EXEEXT@%$EXEEXT%g
-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-s%@MAINT@%$MAINT%g
-s%@CC@%$CC%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@LN_S@%$LN_S%g
-s%@OBJEXT@%$OBJEXT%g
-s%@RANLIB@%$RANLIB%g
-s%@STRIP@%$STRIP%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@MIPS_GCC_TRUE@%$MIPS_GCC_TRUE%g
-s%@MIPS_GCC_FALSE@%$MIPS_GCC_FALSE%g
-s%@MIPS_SGI_TRUE@%$MIPS_SGI_TRUE%g
-s%@MIPS_SGI_FALSE@%$MIPS_SGI_FALSE%g
-s%@SPARC_TRUE@%$SPARC_TRUE%g
-s%@SPARC_FALSE@%$SPARC_FALSE%g
-s%@X86_TRUE@%$X86_TRUE%g
-s%@X86_FALSE@%$X86_FALSE%g
-s%@ALPHA_TRUE@%$ALPHA_TRUE%g
-s%@ALPHA_FALSE@%$ALPHA_FALSE%g
-s%@IA64_TRUE@%$IA64_TRUE%g
-s%@IA64_FALSE@%$IA64_FALSE%g
-s%@M68K_TRUE@%$M68K_TRUE%g
-s%@M68K_FALSE@%$M68K_FALSE%g
-s%@POWERPC_TRUE@%$POWERPC_TRUE%g
-s%@POWERPC_FALSE@%$POWERPC_FALSE%g
-s%@ARM_TRUE@%$ARM_TRUE%g
-s%@ARM_FALSE@%$ARM_FALSE%g
-s%@CPP@%$CPP%g
-s%@ALLOCA@%$ALLOCA%g
-s%@TARGET@%$TARGET%g
-s%@TARGETDIR@%$TARGETDIR%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"include/Makefile include/ffi.h Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="fficonfig.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-libffi_basedir=${libffi_basedir}
-CC="${CC}"
-DEFS="$DEFS"
-test ! -d include && mkdir include
-test ! -f include/fficonfig.h && cp fficonfig.h include/fficonfig.h
-if cmp -s fficonfig.h include/fficonfig.h 2>/dev/null; then
- echo fficonfig.h unchanged
-else
- echo Moving fficonfig.h to include/fficonfig.h
- cp fficonfig.h include/fficonfig.h
-fi
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-
-if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${libffi_basedir}/../config-ml.in
-fi
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/libffi/configure.in b/libffi/configure.in
deleted file mode 100644
index d26887b85f6..00000000000
--- a/libffi/configure.in
+++ /dev/null
@@ -1,139 +0,0 @@
-dnl Process this with autoconf to create configure
-AC_INIT(fficonfig.h.in)
-AM_CONFIG_HEADER(fficonfig.h)
-
-AC_MSG_WARN(***********************************************************)
-AC_MSG_WARN(***********************************************************)
-AC_MSG_WARN(This is beta code. If you're looking for a stable release)
-AC_MSG_WARN(then use the most recent one - libffi-1.20.)
-AC_MSG_WARN(***********************************************************)
-AC_MSG_WARN(***********************************************************)
-
-dnl Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
-dnl We may get other options which we don't document:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-
-if test "${srcdir}" = "."; then
- if test "${with_target_subdir}" != "."; then
- libffi_basedir="${srcdir}/${with_multisrctop}.."
- else
- libffi_basedir="${srcdir}/${with_multisrctop}"
- fi
-else
- libffi_basedir="${srcdir}"
-fi
-AC_SUBST(libffi_basedir)
-
-AC_CANONICAL_HOST
-
-AM_INIT_AUTOMAKE(libffi,2.00-beta,no-define)
-
-AC_EXEEXT
-AM_MAINTAINER_MODE
-
-AC_PROG_CC
-AC_PROG_LIBTOOL
-
-TARGETDIR="unknown"
-case "$host" in
-mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
-i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
-i*86-*-freebsd*) TARGET=X86; TARGETDIR=x86;;
-sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
-sparc64-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
-alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; TARGETDIR=alpha;;
-ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
-m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
-powerpc-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
-powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
-arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
-esac
-
-if test $TARGETDIR = unknown; then
- AC_ERROR("libffi has not been ported to $host.")
-fi
-
-AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
-AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
-AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
-AM_CONDITIONAL(X86, test x$TARGET = xX86)
-AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
-AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
-AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
-AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
-AM_CONDITIONAL(ARM, test x$TARGET = xARM)
-
-AC_HEADER_STDC
-AC_CHECK_FUNCS(memcpy)
-AC_FUNC_ALLOCA
-
-dnl AC_CHECK_SIZEOF(char)
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(long long)
-AC_CHECK_SIZEOF(float)
-AC_CHECK_SIZEOF(double)
-AC_CHECK_SIZEOF(long double)
-
-AC_CHECK_SIZEOF(void *)
-AC_C_BIGENDIAN
-
-AC_SUBST(TARGET)
-AC_SUBST(TARGETDIR)
-
-AC_SUBST(SHELL)
-
-AC_ARG_ENABLE(debug,[ --enable-debug debugging mode], AC_DEFINE(FFI_DEBUG))
-
-AC_ARG_ENABLE(debug,[ --disable-structs omit code for struct support], AC_DEFINE(FFI_NO_STRUCTS))
-
-AC_ARG_ENABLE(debug,[ --disable-raw-api make the raw api unavailable], AC_DEFINE(FFI_NO_RAW_API))
-
-AC_ARG_ENABLE(purify-safety,
-[ --enable-purify-safety purify-safe mode], AC_DEFINE(USING_PURIFY))
-
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-AC_OUTPUT(include/Makefile include/ffi.h Makefile,
-[
-if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${libffi_basedir}/../config-ml.in
-fi
-],
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-libffi_basedir=${libffi_basedir}
-CC="${CC}"
-DEFS="$DEFS"
-test ! -d include && mkdir include
-test ! -f include/fficonfig.h && cp fficonfig.h include/fficonfig.h
-if cmp -s fficonfig.h include/fficonfig.h 2>/dev/null; then
- echo fficonfig.h unchanged
-else
- echo Moving fficonfig.h to include/fficonfig.h
- cp fficonfig.h include/fficonfig.h
-fi
-)
diff --git a/libffi/fficonfig.h.in b/libffi/fficonfig.h.in
deleted file mode 100644
index f7ea90bbdf9..00000000000
--- a/libffi/fficonfig.h.in
+++ /dev/null
@@ -1,70 +0,0 @@
-/* fficonfig.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define if using alloca.c. */
-#undef C_ALLOCA
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define if you have alloca, as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-#undef HAVE_ALLOCA_H
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-#undef STACK_DIRECTION
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define this if you want extra debugging */
-#undef FFI_DEBUG
-
-/* Define this if you are using Purify and want to suppress
- spurious messages. */
-#undef USING_PURIFY
-
-/* Define this is you do not want support for aggregate types. */
-#undef FFI_NO_STRUCTS
-
-/* Define this is you do not want support for the raw API. */
-#undef FFI_NO_RAW_API
-
-/* The number of bytes in a double. */
-#undef SIZEOF_DOUBLE
-
-/* The number of bytes in a float. */
-#undef SIZEOF_FLOAT
-
-/* The number of bytes in a int. */
-#undef SIZEOF_INT
-
-/* The number of bytes in a long. */
-#undef SIZEOF_LONG
-
-/* The number of bytes in a long double. */
-#undef SIZEOF_LONG_DOUBLE
-
-/* The number of bytes in a long long. */
-#undef SIZEOF_LONG_LONG
-
-/* The number of bytes in a short. */
-#undef SIZEOF_SHORT
-
-/* The number of bytes in a void *. */
-#undef SIZEOF_VOID_P
-
-/* Define if you have the memcpy function. */
-#undef HAVE_MEMCPY
diff --git a/libffi/include/Makefile.am b/libffi/include/Makefile.am
deleted file mode 100644
index 74fd5a665db..00000000000
--- a/libffi/include/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-## Process this with automake to create Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
-
-hackdir=$(includedir)
-
-hack_DATA=fficonfig.h ffi.h ffi_mips.h \ No newline at end of file
diff --git a/libffi/include/Makefile.in b/libffi/include/Makefile.in
deleted file mode 100644
index 3d19b8f7bf6..00000000000
--- a/libffi/include/Makefile.in
+++ /dev/null
@@ -1,212 +0,0 @@
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_FLAG =
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHELL = @SHELL@
-TARGET = @TARGET@
-TARGETDIR = @TARGETDIR@
-VERSION = @VERSION@
-libffi_basedir = @libffi_basedir@
-
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
-
-hackdir = $(includedir)
-
-hack_DATA = fficonfig.h ffi.h ffi_mips.h
-subdir = include
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../fficonfig.h
-CONFIG_CLEAN_FILES = ffi.h
-DIST_SOURCES =
-DATA = $(hack_DATA)
-
-DIST_COMMON = $(hack_DATA) Makefile.am Makefile.in ffi.h.in
-
-
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-ffi.h: $(top_builddir)/config.status ffi.h.in
- cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-install-hackDATA: $(hack_DATA)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(hackdir)
- @list='$(hack_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(hackdir)/$$f"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(hackdir)/$$f; \
- done
-
-uninstall-hackDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(hack_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(hackdir)/$$f"; \
- rm -f $(DESTDIR)$(hackdir)/$$f; \
- done
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pR $$d/$$file $(distdir); \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am: install-hackDATA
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-hackDATA
-uninstall: uninstall-am
-all-am: Makefile $(DATA)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(hackdir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
- -rm -f Makefile.in
-mostlyclean-am: mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: uninstall-hackDATA install-hackDATA tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all install-strip \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libffi/include/ffi.h.in b/libffi/include/ffi.h.in
deleted file mode 100644
index 6be7e23c727..00000000000
--- a/libffi/include/ffi.h.in
+++ /dev/null
@@ -1,484 +0,0 @@
-/* -----------------------------------------------------------------*-C-*-
- libffi @VERSION@ - Copyright (c) 1996-1999 Cygnus Solutions
-
- $Id: ffi.h.in,v 1.4 2000/02/25 19:13:44 tromey Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-
- ----------------------------------------------------------------------- */
-
-/* -------------------------------------------------------------------
- The basic API is described in the README file.
-
- The raw API is designed to bypass some of the argument packing
- and unpacking on architectures for which it can be avoided.
-
- The closure API allows interpreted functions to be packaged up
- inside a C function pointer, so that they can be called as C functions,
- with no understanding on the client side that they are interpreted.
- It can also be used in other cases in which it is necessary to package
- up a user specified parameter and a function pointer as a single
- function pointer.
-
- The closure API must be implemented in order to get its functionality,
- e.g. for use by gij. Routines are provided to emulate the raw API
- if the underlying platform doesn't allow faster implementation.
-
- More details on the raw and cloure API can be found in:
-
- http://sourceware.cygnus.com/ml/java-discuss/1999-q3/msg00138.html
-
- and
-
- http://sourceware.cygnus.com/ml/java-discuss/1999-q3/msg00174.html
- -------------------------------------------------------------------- */
-
-#ifndef LIBFFI_H
-#define LIBFFI_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Specify which architecture libffi is configured for. */
-#define @TARGET@
-
-/* ---- System configuration information --------------------------------- */
-
-#include <fficonfig.h>
-
-#if !defined(LIBFFI_ASM)
-#include <stddef.h>
-#if defined(FFI_DEBUG)
-#include <stdio.h>
-#endif
-#endif
-
-/* ---- Generic type definitions ----------------------------------------- */
-
-#define FLOAT32 float
-#define FLOAT64 double
-#define FLOAT80 long double
-
-#define UINT8 unsigned char
-#define SINT8 signed char
-
-#if SIZEOF_INT == 2
-
-#define UINT16 unsigned int
-#define SINT16 int
-#define ffi_type_uint ffi_type_uint16
-#define ffi_type_sint ffi_type_sint16
-
-#else
-#if SIZEOF_SHORT == 2
-
-#define UINT16 unsigned short
-#define SINT16 short
-#define ffi_type_ushort ffi_type_uint16
-#define ffi_type_sshort ffi_type_sint16
-
-#endif
-#endif
-
-#if SIZEOF_INT == 4
-
-#define UINT32 unsigned int
-#define SINT32 int
-#define ffi_type_uint ffi_type_uint32
-#define ffi_type_sint ffi_type_sint32
-
-#else
-#if SIZEOF_SHORT == 4
-
-#define UINT32 unsigned short
-#define SINT32 short
-#define ffi_type_ushort ffi_type_uint32
-#define ffi_type_sshort ffi_type_sint32
-
-#else
-#if SIZEOF_LONG == 4
-
-#define UINT32 unsigned long
-#define SINT32 long
-#define ffi_type_ulong ffi_type_uint32
-#define ffi_type_slong ffi_type_sint32
-
-#endif
-#endif
-#endif
-
-#if SIZEOF_INT == 8
-
-#define UINT64 unsigned int
-#define SINT64 int
-#define ffi_type_uint ffi_type_uint64
-#define ffi_type_sint ffi_type_sint64
-
-#else
-#if SIZEOF_LONG == 8
-
-#define UINT64 unsigned long
-#define SINT64 long
-#define ffi_type_ulong ffi_type_uint64
-#define ffi_type_slong ffi_type_sint64
-
-#else
-#if SIZEOF_LONG_LONG == 8
-
-#define UINT64 unsigned long long
-#define SINT64 long long
-#define ffi_type_ulong ffi_type_uint64
-#define ffi_type_slong ffi_type_sint64
-
-#endif
-#endif
-#endif
-
-/* ---- System specific configurations ----------------------------------- */
-
-#ifdef MIPS
-#include <ffi_mips.h>
-#else
-#define SIZEOF_ARG SIZEOF_VOID_P
-#endif
-
-#ifdef SPARC
-#if defined(__arch64__) || defined(__sparcv9)
-#define SPARC64
-#endif
-#endif
-
-#ifndef LIBFFI_ASM
-
-/* ---- Generic type definitions ----------------------------------------- */
-
-#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
-/* The closure code assumes that this works on pointers, i.e. a size_t */
-/* can hold a pointer. */
-
-typedef enum ffi_abi {
-
- /* Leave this for debugging purposes */
- FFI_FIRST_ABI = 0,
-
- /* ---- Sparc -------------------- */
-#ifdef SPARC
- FFI_V8,
- FFI_V8PLUS,
- FFI_V9,
-#ifdef SPARC64
- FFI_DEFAULT_ABI = FFI_V9,
-#else
- FFI_DEFAULT_ABI = FFI_V8,
-#endif
-#endif
-
- /* ---- Intel x86 ---------------- */
-#ifdef X86
- FFI_SYSV,
- FFI_DEFAULT_ABI = FFI_SYSV,
-#endif
-
- /* ---- Intel ia64 ---------------- */
-#ifdef IA64
- FFI_UNIX, /* Linux and all Unix variants use the same conventions */
- FFI_DEFAULT_ABI = FFI_UNIX,
-#endif
-
- /* ---- Mips --------------------- */
-#ifdef MIPS
- FFI_O32,
- FFI_N32,
- FFI_N64,
-#endif
-
- /* ---- Alpha -------------------- */
-#ifdef ALPHA
- FFI_OSF,
- FFI_DEFAULT_ABI = FFI_OSF,
-#endif
-
- /* ---- Motorola m68k ------------ */
-#ifdef M68K
- FFI_SYSV,
- FFI_DEFAULT_ABI = FFI_SYSV,
-#endif
-
- /* ---- PowerPC ------------------ */
-#ifdef POWERPC
- FFI_SYSV,
- FFI_GCC_SYSV,
- FFI_DEFAULT_ABI = FFI_GCC_SYSV,
-#endif
-
- /* ---- ARM --------------------- */
-#ifdef ARM
- FFI_SYSV,
- FFI_DEFAULT_ABI = FFI_SYSV,
-#endif
-
- /* Leave this for debugging purposes */
- FFI_LAST_ABI
-
-} ffi_abi;
-
-typedef struct _ffi_type
-{
- size_t size;
- unsigned short alignment;
- unsigned short type;
- /*@null@*/ struct _ffi_type **elements;
-} ffi_type;
-
-/* These are defined in ffi.c */
-extern ffi_type ffi_type_void;
-extern ffi_type ffi_type_uint8;
-extern ffi_type ffi_type_sint8;
-extern ffi_type ffi_type_uint16;
-extern ffi_type ffi_type_sint16;
-extern ffi_type ffi_type_uint32;
-extern ffi_type ffi_type_sint32;
-extern ffi_type ffi_type_uint64;
-extern ffi_type ffi_type_sint64;
-extern ffi_type ffi_type_float;
-extern ffi_type ffi_type_double;
-extern ffi_type ffi_type_longdouble;
-extern ffi_type ffi_type_pointer;
-
-/* Characters are 8 bit integral types */
-#define ffi_type_schar ffi_type_sint8
-#define ffi_type_uchar ffi_type_uint8
-
-typedef enum {
- FFI_OK = 0,
- FFI_BAD_TYPEDEF,
- FFI_BAD_ABI
-} ffi_status;
-
-typedef unsigned FFI_TYPE;
-
-typedef struct {
- ffi_abi abi;
- unsigned nargs;
- /*@dependent@*/ ffi_type **arg_types;
- /*@dependent@*/ ffi_type *rtype;
- unsigned bytes;
- unsigned flags;
-
-#ifdef MIPS
-#if _MIPS_SIM == _ABIN32
- unsigned rstruct_flag;
-#endif
-#endif
-
-} ffi_cif;
-
-/* ---- Definitions for the raw API -------------------------------------- */
-
-#if !FFI_NO_RAW_API
-
-#if SIZEOF_ARG == 4
-
-#define UINT_ARG UINT32
-#define SINT_ARG SINT32
-
-#endif
-
-#if SIZEOF_ARG == 8
-
-#define UINT_ARG UINT64
-#define SINT_ARG SINT64
-
-#endif
-
-typedef union {
- SINT_ARG sint;
- UINT_ARG uint;
- float flt;
- char data[SIZEOF_ARG];
- void* ptr;
-} ffi_raw;
-
-void ffi_raw_call (/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ ffi_raw *avalue);
-
-void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
-void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
-size_t ffi_raw_size (ffi_cif *cif);
-
-#if !NO_JAVA_RAW_API
-
-/* This is analogous to the raw API, except it uses Java parameter */
-/* packing, even on 64-bit machines. I.e. on 64-bit machines */
-/* longs and doubles are followed by an empty 64-bit word. */
-
-void ffi_java_raw_call (/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ ffi_raw *avalue);
-
-void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
-void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
-size_t ffi_java_raw_size (ffi_cif *cif);
-
-#endif /* !NO_JAVA_RAW_API */
-
-#endif /* !FFI_NO_RAW_API */
-
-/* ---- Definitions for closures ----------------------------------------- */
-
-#ifdef X86
-
-#define FFI_CLOSURES 1 /* x86 supports closures */
-#define FFI_TRAMPOLINE_SIZE 10
-#define FFI_NATIVE_RAW_API 1 /* and has native raw api support */
-
-#elif defined(IA64)
-
-#define FFI_CLOSURES 1
-#define FFI_TRAMPOLINE_SIZE 24 /* Really the following struct, which */
- /* can be interpreted as a C function */
- /* decriptor: */
-
-struct ffi_ia64_trampoline_struct {
- void * code_pointer; /* Pointer to ffi_closure_UNIX */
- void * fake_gp; /* Pointer to closure, installed as gp */
- void * real_gp; /* Real gp value, reinstalled by */
- /* ffi_closure_UNIX. */
-};
-#define FFI_NATIVE_RAW_API 0
-
-#else
-
-#define FFI_CLOSURES 0
-#define FFI_NATIVE_RAW_API 0
-
-#endif
-
-
-
-#if FFI_CLOSURES
-
-typedef struct {
- char tramp[FFI_TRAMPOLINE_SIZE];
- ffi_cif *cif;
- void (*fun)(ffi_cif*,void*,void**,void*);
- void *user_data;
-} ffi_closure;
-
-ffi_status
-ffi_prep_closure (ffi_closure*,
- ffi_cif *,
- void (*fun)(ffi_cif*,void*,void**,void*),
- void *user_data);
-
-#if !FFI_NO_RAW_API
-
-typedef struct {
- char tramp[FFI_TRAMPOLINE_SIZE];
-
- ffi_cif *cif;
-
-#if !FFI_NATIVE_RAW_API
-
- /* if this is enabled, then a raw closure has the same layout
- as a regular closure. We use this to install an intermediate
- handler to do the transaltion, void** -> ffi_raw*. */
-
- void (*translate_args)(ffi_cif*,void*,void**,void*);
- void *this_closure;
-
-#endif
-
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
- void *user_data;
-
-} ffi_raw_closure;
-
-ffi_status
-ffi_prep_raw_closure (ffi_raw_closure*,
- ffi_cif *cif,
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
- void *user_data);
-
-#ifndef NO_JAVA_RAW_API
-ffi_status
-ffi_prep_java_raw_closure (ffi_raw_closure*,
- ffi_cif *cif,
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
- void *user_data);
-#endif
-
-#endif /* !FFI_NO_RAW_API */
-#endif /* FFI_CLOSURES */
-
-/* ---- Public interface definition -------------------------------------- */
-
-ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
- ffi_abi abi,
- unsigned int nargs,
- /*@dependent@*/ /*@out@*/ /*@partial@*/ ffi_type *rtype,
- /*@dependent@*/ ffi_type **atypes);
-
-void ffi_call(/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ void **avalue);
-
-/* Useful for eliminating compiler warnings */
-#define FFI_FN(f) ((void (*)())f)
-
-/* ---- Definitions shared with assembly code ---------------------------- */
-
-#endif
-
-#define FFI_TYPE_VOID 0
-#define FFI_TYPE_INT 1
-#define FFI_TYPE_FLOAT 2
-#define FFI_TYPE_DOUBLE 3
-#if SIZEOF_LONG_DOUBLE == SIZEOF_DOUBLE
-#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
-#else
-#define FFI_TYPE_LONGDOUBLE 4
-#endif
-
-#define FFI_TYPE_UINT8 5 /* If this changes, update ffi_mips.h. */
-#define FFI_TYPE_SINT8 6 /* If this changes, update ffi_mips.h. */
-#define FFI_TYPE_UINT16 7
-#define FFI_TYPE_SINT16 8
-#define FFI_TYPE_UINT32 9
-#define FFI_TYPE_SINT32 10
-#define FFI_TYPE_UINT64 11
-#define FFI_TYPE_SINT64 12
-#define FFI_TYPE_STRUCT 13 /* If this changes, update ffi_mips.h. */
-#define FFI_TYPE_POINTER 14
-
-/* This should always refer to the last type code (for sanity checks) */
-#define FFI_TYPE_LAST FFI_TYPE_POINTER
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/libffi/include/ffi_common.h b/libffi/include/ffi_common.h
deleted file mode 100644
index c9d4acf9085..00000000000
--- a/libffi/include/ffi_common.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi_common.h - Copyright (c) 1996 Cygnus Solutions
-
- $Id: ffi_common.h,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Common internal definitions and macros. Only necessary for building
- libffi.
- ----------------------------------------------------------------------- */
-
-#ifndef FFI_COMMON_H
-#define FFI_COMMON_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Do not move this. Some versions of AIX are very picky about where
- this is positioned. */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-/* Check for the existence of memcpy. */
-#if STDC_HEADERS
-# include <string.h>
-#else
-# ifndef HAVE_MEMCPY
-# define memcpy(d, s, n) bcopy ((s), (d), (n))
-# endif
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifndef TRUE
-#define TRUE (!FALSE)
-#endif
-
-#ifndef __cplusplus
-/* bool is a keyword in C++ */
-/*@-cppnames@*/
-typedef int bool;
-/*@=cppnames@*/
-#endif
-
-#ifdef FFI_DEBUG
-
-/* Debugging functions */
-/*@exits@*/ int ffi_assert(/*@temp@*/ char *file, int line);
-void ffi_stop_here(void);
-bool ffi_type_test(/*@temp@*/ /*@out@*/ ffi_type *a);
-
-#define FFI_ASSERT(x) ((x) ? 0 : ffi_assert(__FILE__,__LINE__))
-
-#else
-
-#define FFI_ASSERT(x)
-
-#endif
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif);
-
-/* Extended cif, used in callback from assembly routine */
-typedef struct
-{
- /*@dependent@*/ ffi_cif *cif;
- /*@dependent@*/ void *rvalue;
- /*@dependent@*/ void **avalue;
-} extended_cif;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/libffi/include/ffi_mips.h b/libffi/include/ffi_mips.h
deleted file mode 100644
index 9d4a66cb8c3..00000000000
--- a/libffi/include/ffi_mips.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi-mips.h - Copyright (c) 1996 Cygnus Support
-
- MIPS FFI Definitions
-
- $Id: ffi_mips.h,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SUPPORT BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#ifndef FFI_MIPS_H
-
-#include <ffi.h>
-
-#if !defined(_MIPS_SIM)
--- something is very wrong --
-#else
-# if _MIPS_SIM==_ABIN32 && defined(_ABIN32)
-# define FFI_MIPS_N32
-# else
-# if defined(__GNUC__)
-# define FFI_MIPS_O32
-# else
-# if _MIPS_SIM==_ABIO32
-# define FFI_MIPS_O32
-# else
--- this is an unsupported platform --
-# endif
-# endif
-# endif
-#endif
-
-#define v0 $2
-#define v1 $3
-#define a0 $4
-#define a1 $5
-#define a2 $6
-#define a3 $7
-#define a4 $8
-#define a5 $9
-#define a6 $10
-#define a7 $11
-#define t0 $8
-#define t1 $9
-#define t2 $10
-#define t3 $11
-#define t4 $12
-#define t5 $13
-#define t6 $14
-#define t7 $15
-#define t8 $24
-#define t9 $25
-#define ra $31
-
-#if defined(FFI_MIPS_O32)
-
-#define FFI_DEFAULT_ABI FFI_O32
-
-/* O32 stack frames have 32bit integer args */
-#define SLOT_TYPE_UNSIGNED UINT32
-#define SLOT_TYPE_SIGNED SINT32
-#define SIZEOF_ARG 4
-
-#define REG_L lw
-#define REG_S sw
-#define SUBU subu
-#define ADDU addu
-#define SRL srl
-#define LI li
-
-#else
-
-#define FFI_DEFAULT_ABI FFI_N32
-
-/* N32 and N64 frames have 64bit integer args */
-#define SLOT_TYPE_UNSIGNED UINT64
-#define SLOT_TYPE_SIGNED SINT64
-#define SIZEOF_ARG 8
-
-#define REG_L ld
-#define REG_S sd
-#define SUBU dsubu
-#define ADDU daddu
-#define SRL dsrl
-#define LI dli
-
-#endif
-
-#define FFI_FLAG_BITS 2
-
-/* SGI's strange assembler requires that we multiply by 4 rather
- than shift left by FFI_FLAG_BITS */
-
-#define FFI_ARGS_D FFI_TYPE_DOUBLE
-#define FFI_ARGS_F FFI_TYPE_FLOAT
-#define FFI_ARGS_DD FFI_TYPE_DOUBLE * 4 + FFI_TYPE_DOUBLE
-#define FFI_ARGS_FF FFI_TYPE_FLOAT * 4 + FFI_TYPE_FLOAT
-#define FFI_ARGS_FD FFI_TYPE_DOUBLE * 4 + FFI_TYPE_FLOAT
-#define FFI_ARGS_DF FFI_TYPE_FLOAT * 4 + FFI_TYPE_DOUBLE
-
-/* Needed for N32 structure returns */
-#define FFI_TYPE_SMALLSTRUCT FFI_TYPE_UINT8
-#define FFI_TYPE_SMALLSTRUCT2 FFI_TYPE_SINT8
-
-#if 0
-
-/* The SGI assembler can't handle this.. */
-
-#define FFI_TYPE_STRUCT_DD (( FFI_ARGS_DD ) << 4) + FFI_TYPE_STRUCT
-
-#else
-
-/* ...so we calculate these by hand! */
-
-#define FFI_TYPE_STRUCT_D 61
-#define FFI_TYPE_STRUCT_F 45
-#define FFI_TYPE_STRUCT_DD 253
-#define FFI_TYPE_STRUCT_FF 173
-#define FFI_TYPE_STRUCT_FD 237
-#define FFI_TYPE_STRUCT_DF 189
-#define FFI_TYPE_STRUCT_SMALL 93
-#define FFI_TYPE_STRUCT_SMALL2 109
-
-#endif
-
-#endif
diff --git a/libffi/src/alpha/ffi.c b/libffi/src/alpha/ffi.c
deleted file mode 100644
index e3d807ab196..00000000000
--- a/libffi/src/alpha/ffi.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998 Cygnus Solutions
-
- Alpha Foreign Function Interface
-
- $Id: ffi.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments */
-
-static void
-ffi_prep_args(char *stack, extended_cif *ecif, int bytes, int flags)
-{
- register long i, avn;
- register void **p_argv;
- register char *argp;
- register ffi_type **p_arg;
-
- /* To streamline things in the assembly code, we always allocate 12
- words for loading up the int and fp argument registers. The layout
- is as when processing varargs: the 6 fp args, the 6 int args, then
- the incoming stack. ARGP points to the first int slot. */
- argp = stack + 6 * SIZEOF_ARG;
- memset (stack, 0, 12 * SIZEOF_ARG);
-
- if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT )
- {
- *(void **) argp = ecif->rvalue;
- argp += sizeof(void *);
- }
-
- i = 0;
- avn = ecif->cif->nargs;
- p_arg = ecif->cif->arg_types;
- p_argv = ecif->avalue;
- while (i < avn)
- {
- size_t z = ALIGN((*p_arg)->size, SIZEOF_ARG);
-
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(SINT64 *) argp = *(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(UINT64 *) argp = *(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(SINT64 *) argp = *(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(UINT64 *) argp = *(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT32:
- *(SINT64 *) argp = *(SINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT32:
- *(UINT64 *) argp = *(UINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- case FFI_TYPE_POINTER:
- *(UINT64 *) argp = *(UINT64 *)(* p_argv);
- break;
-
- case FFI_TYPE_FLOAT:
- if (argp - stack < 12 * SIZEOF_ARG)
- {
- /* Note the conversion -- all the fp regs are loaded as
- doubles. The in-register format is the same. */
- *(double *) (argp - 6 * SIZEOF_ARG) = *(float *)(* p_argv);
- }
- else
- *(float *) argp = *(float *)(* p_argv);
- break;
-
- case FFI_TYPE_DOUBLE:
- if (argp - stack < 12 * SIZEOF_ARG)
- *(double *) (argp - 6 * SIZEOF_ARG) = *(double *)(* p_argv);
- else
- *(double *) argp = *(double *)(* p_argv);
- break;
-
- case FFI_TYPE_STRUCT:
- memcpy(argp, *p_argv, (*p_arg)->size);
- break;
-
- default:
- FFI_ASSERT(0);
- }
-
- argp += z;
- i++, p_arg++, p_argv++;
- }
-}
-
-/* Perform machine dependent cif processing */
-ffi_status
-ffi_prep_cif_machdep(ffi_cif *cif)
-{
- /* Adjust cif->bytes. to include 12 words for the temporary register
- argument loading area. This will be removed before the call. */
-
- cif->bytes += 6*SIZEOF_ARG;
- if (cif->bytes < 12*SIZEOF_ARG)
- cif->bytes = 12*SIZEOF_ARG;
-
- /* The stack must be double word aligned, so round bytes up
- appropriately. */
-
- cif->bytes = ALIGN(cif->bytes, 2*sizeof(void*));
-
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- case FFI_TYPE_STRUCT:
- cif->flags = cif->rtype->type;
- break;
-
- case FFI_TYPE_FLOAT:
- cif->flags = FFI_TYPE_FLOAT;
- break;
-
- case FFI_TYPE_DOUBLE:
- cif->flags = FFI_TYPE_DOUBLE;
- break;
-
- default:
- cif->flags = FFI_TYPE_INT;
- break;
- }
-
- return FFI_OK;
-}
-
-extern int ffi_call_osf(void (*)(char *, extended_cif *, int, int),
- extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
-
-void
-ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return
- value address then we need to make one. */
-
- if (rvalue == NULL && cif->rtype->type == FFI_TYPE_STRUCT)
- ecif.rvalue = alloca(cif->rtype->size);
- else
- ecif.rvalue = rvalue;
-
- switch (cif->abi)
- {
- case FFI_OSF:
- ffi_call_osf(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, rvalue, fn);
- break;
-
- default:
- FFI_ASSERT(0);
- break;
- }
-}
diff --git a/libffi/src/alpha/osf.S b/libffi/src/alpha/osf.S
deleted file mode 100644
index 2078683cfb3..00000000000
--- a/libffi/src/alpha/osf.S
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -----------------------------------------------------------------------
- osf.S - Copyright (c) 1998 Cygnus Solutions
-
- Alpha/OSF Foreign Function Interface
-
- $Id: osf.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-#define callback $16
-#define ecifp $17
-#define bytes $18
-#define flags $19
-#define raddr $20
-#define fn $21
-
-#define flags_ofs 16
-#define raddr_ofs 24
-#define fn_ofs 32
-
-#define SIZEOF_FRAME (6*8)
-
- .text
- .align 4
- .globl ffi_call_osf
- .ent ffi_call_osf
-
-ffi_call_osf:
- lda $30, -SIZEOF_FRAME($30)
- stq $26, 0($30)
- stq $15, 8($30)
- stq flags, flags_ofs($30)
- stq raddr, raddr_ofs($30)
- stq fn, fn_ofs($30)
- mov $30, $15
- .frame $15, SIZEOF_FRAME, $26, 0
- .mask 0x4008000, -SIZEOF_FRAME
- .prologue 0
-
- mov callback, $27 # mov callback into place
- subq $30, bytes, $30 # allocate stack space
-
- # Call ffi_prep_args; ecif, bytes and flags are already in place.
- mov $30, $16 # push stack arg
- jsr $26, ($27), 0
-
- # Load up all of the (potential) argument registers.
- ldt $f16, 0($30)
- ldt $f17, 8($30)
- ldt $f18, 16($30)
- ldt $f19, 24($30)
- ldt $f20, 32($30)
- ldt $f21, 40($30)
- ldq $16, 48($30)
- ldq $17, 56($30)
- ldq $18, 64($30)
- ldq $19, 72($30)
- ldq $20, 80($30)
- ldq $21, 88($30)
-
- # Get rid of the arg reg temp space and call the function.
- ldq $27, fn_ofs($15)
- lda $30, 12*8($30)
- jsr $26, ($27), 0
-
- # If the return value pointer is NULL, assume no return value.
- ldq raddr, raddr_ofs($15)
- beq raddr, $noretval
-
- ldq flags, flags_ofs($15)
- cmpeq flags, FFI_TYPE_INT, $1
- bne $1, $retint
- cmpeq flags, FFI_TYPE_FLOAT, $2
- bne $2, $retfloat
- cmpeq flags, FFI_TYPE_DOUBLE, $3
- bne $3, $retdouble
- br $retstruct
-
- .align 3
-$retint:
- stq $0, 0(raddr)
- br $noretval
-$retfloat:
- sts $f0, 0(raddr)
- br $noretval
-$retdouble:
- stt $f0, 0(raddr)
-
-$retstruct:
-$noretval:
- mov $15, $30
- ldq $26, 0($15)
- ldq $15, 8($15)
- lda $30, SIZEOF_FRAME($30)
- ret
-
- .end ffi_call_osf
diff --git a/libffi/src/arm/ffi.c b/libffi/src/arm/ffi.c
deleted file mode 100644
index 5933c6bf9ff..00000000000
--- a/libffi/src/arm/ffi.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998 Cygnus Solutions
-
- ARM Foreign Function Interface
-
- $Id: ffi.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments */
-
-/*@-exportheader@*/
-void ffi_prep_args(char *stack, extended_cif *ecif)
-/*@=exportheader@*/
-{
- register unsigned int i;
- register int tmp;
- register unsigned int avn;
- register void **p_argv;
- register char *argp;
- register ffi_type **p_arg;
-
- tmp = 0;
- argp = stack;
-
- if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT ) {
- *(void **) argp = ecif->rvalue;
- argp += 4;
- }
-
- avn = ecif->cif->nargs;
- p_argv = ecif->avalue;
-
- for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
- (i != 0) && (avn != 0);
- i--, p_arg++)
- {
- size_t z;
-
- /* Align if necessary */
- if (((*p_arg)->alignment - 1) & (unsigned) argp) {
- argp = (char *) ALIGN(argp, (*p_arg)->alignment);
- }
-
- if (avn != 0)
- {
- avn--;
- z = (*p_arg)->size;
- if (z < sizeof(int))
- {
- z = sizeof(int);
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_STRUCT:
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
- break;
-
- default:
- FFI_ASSERT(0);
- }
- }
- else if (z == sizeof(int))
- {
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
- }
- else
- {
- memcpy(argp, *p_argv, z);
- }
- p_argv++;
- argp += z;
- }
- }
-
- return;
-}
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
-{
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- case FFI_TYPE_STRUCT:
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags = (unsigned) cif->rtype->type;
- break;
-
- default:
- cif->flags = FFI_TYPE_INT;
- break;
- }
-
- return FFI_OK;
-}
-
-/*@-declundef@*/
-/*@-exportheader@*/
-extern void ffi_call_SYSV(void (*)(char *, extended_cif *),
- /*@out@*/ extended_cif *,
- unsigned, unsigned,
- /*@out@*/ unsigned *,
- void (*fn)());
-/*@=declundef@*/
-/*@=exportheader@*/
-
-void ffi_call(/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- if ((rvalue == NULL) &&
- (cif->rtype->type == FFI_TYPE_STRUCT))
- {
- /*@-sysunrecog@*/
- ecif.rvalue = alloca(cif->rtype->size);
- /*@=sysunrecog@*/
- }
- else
- ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
- {
- case FFI_SYSV:
- /*@-usedef@*/
- ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, ecif.rvalue, fn);
- /*@=usedef@*/
- break;
- default:
- FFI_ASSERT(0);
- break;
- }
-}
diff --git a/libffi/src/arm/sysv.S b/libffi/src/arm/sysv.S
deleted file mode 100644
index 874b80a24ae..00000000000
--- a/libffi/src/arm/sysv.S
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -----------------------------------------------------------------------
- sysv.S - Copyright (c) 1998 Cygnus Solutions
-
- ARM Foreign Function Interface
-
- $Id: sysv.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-#ifdef HAVE_MACHINE_ASM_H
-#include <machine/asm.h>
-#else
-/* XXX these lose for some platforms, I'm sure. */
-#define CNAME(x) x
-#define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x):
-#endif
-
-.text
-
- # a1: ffi_prep_args
- # a2: &ecif
- # a3: cif->bytes
- # a4: fig->flags
- # sp+0: ecif.rvalue
- # sp+4: fn
-
- # This assumes we are using gas.
-ENTRY(ffi_call_SYSV)
- # Save registers
- stmfd sp!, {a1-a4, fp, lr}
- mov fp, sp
-
- # Make room for all of the new args.
- sub sp, fp, a3
-
- # Place all of the ffi_prep_args in position
- mov ip, a1
- mov a1, sp
- # a2 already set
-
- # And call
- mov lr, pc
- mov pc, ip
-
- # move first 4 parameters in registers
- ldr a1, [sp, #0]
- ldr a2, [sp, #4]
- ldr a3, [sp, #8]
- ldr a4, [sp, #12]
-
- # and adjust stack
- ldr ip, [fp, #8]
- cmp ip, #16
- movge ip, #16
- add sp, sp, ip
-
- # call function
- mov lr, pc
- ldr pc, [fp, #28]
-
- # Remove the space we pushed for the args
- mov sp, fp
-
- # Load a3 with the pointer to storage for the return value
- ldr a3, [sp, #24]
-
- # Load a4 with the return type code
- ldr a4, [sp, #12]
-
- # If the return value pointer is NULL, assume no return value.
- cmp a3, #0
- beq epilogue
-
-# return INT
- cmp a4, #FFI_TYPE_INT
- streq a1, [a3]
- beq epilogue
-
-# return FLOAT
- cmp a4, #FFI_TYPE_FLOAT
- stfeqs f0, [a3]
- beq epilogue
-
-# return DOUBLE or LONGDOUBLE
- cmp a4, #FFI_TYPE_DOUBLE
- stfeqd f0, [a3]
-
-epilogue:
- ldmfd sp!, {a1-a4, fp, pc}
-
-.ffi_call_SYSV_end:
- .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
-
diff --git a/libffi/src/debug.c b/libffi/src/debug.c
deleted file mode 100644
index bf925202131..00000000000
--- a/libffi/src/debug.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -----------------------------------------------------------------------
- debug.c - Copyright (c) 1996 Cygnus Solutions
-
- $Id: debug.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/* General debugging routines */
-
-void ffi_stop_here(void)
-{
- /* This function is only useful for debugging purposes.
- Place a breakpoint on ffi_stop_here to be notified of
- significant events. */
-}
-
-/* This function should only be called via the FFI_ASSERT() macro */
-
-int ffi_assert(char *file, int line)
-{
- fprintf(stderr, "ASSERTION FAILURE: %s line %d\n", file, line);
- ffi_stop_here();
- abort();
-
- /* This has to return something for the compiler not to complain */
- /*@notreached@*/
- return 0;
-}
-
-/* Perform a sanity check on an ffi_type structure */
-
-bool ffi_type_test(ffi_type *a)
-{
- /*@-usedef@*/
- FFI_ASSERT(a->type <= FFI_TYPE_LAST);
- FFI_ASSERT(a->type > FFI_TYPE_VOID ? a->size > 0 : 1);
- FFI_ASSERT(a->type > FFI_TYPE_VOID ? a->alignment > 0 : 1);
- FFI_ASSERT(a->type == FFI_TYPE_STRUCT ? a->elements != NULL : 1);
- /*@=usedef@*/
-
- /* This is a silly thing to return, but it keeps the compiler from
- issuing warnings about "a" not being used in non-debug builds. */
- return (a != NULL);
-}
diff --git a/libffi/src/ffitest.c b/libffi/src/ffitest.c
deleted file mode 100644
index d4a687c6d53..00000000000
--- a/libffi/src/ffitest.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/* -----------------------------------------------------------------------
- ffitest.c - Copyright (c) 1996, 1997, 1998 Cygnus Solutions
-
- $Id: ffitest.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-
-/* This is lame. Long double support is barely there under SunOS 4.x */
-#if defined(SPARC) && (SIZEOF_LONG_DOUBLE != 16)
-#define BROKEN_LONG_DOUBLE
-#endif
-
-#define CHECK(x) !(x) ? fail(__FILE__, __LINE__) : 0
-
-static int fail(char *file, int line)
-{
- fprintf(stderr, "Test failure: %s line %d\n", file, line);
- exit(EXIT_FAILURE);
- /*@notreached@*/
- return 0;
-}
-
-#define MAX_ARGS 256
-
-static size_t my_strlen(char *s)
-{
- return (strlen(s));
-}
-
-static int promotion(signed char sc, signed short ss,
- unsigned char uc, unsigned short us)
-{
- int r = (int) sc + (int) ss + (int) uc + (int) us;
-
- return r;
-}
-
-static signed char return_sc(signed char sc)
-{
- return sc;
-}
-
-static unsigned char return_uc(unsigned char uc)
-{
- return uc;
-}
-
-static long long return_ll(long long ll)
-{
- return ll;
-}
-
-static int floating(int a, float b, double c, long double d, int e)
-{
- int i;
-
-#if 0
- /* This is ifdef'd out for now. long double support under SunOS/gcc
- is pretty much non-existent. You'll get the odd bus error in library
- routines like printf(). */
- printf("%d %f %f %Lf %d\n", a, (double)b, c, d, e);
-#endif
-
- i = (int) ((float)a/b + ((float)c/(float)d));
-
- return i;
-}
-
-static float many(float f1,
- float f2,
- float f3,
- float f4,
- float f5,
- float f6,
- float f7,
- float f8,
- float f9,
- float f10,
- float f11,
- float f12,
- float f13)
-{
-#if 0
- printf("%f %f %f %f %f %f %f %f %f %f %f %f %f\n",
- (double) f1, (double) f2, (double) f3, (double) f4, (double) f5,
- (double) f6, (double) f7, (double) f8, (double) f9, (double) f10,
- (double) f11, (double) f12, (double) f13);
-#endif
-
- return ((f1/f2+f3/f4+f5/f6+f7/f8+f9/f10+f11/f12) * f13);
-}
-
-static double dblit(float f)
-{
- return f/3.0;
-}
-
-static long double ldblit(float f)
-{
- return (long double) (((long double) f)/ (long double) 3.0);
-}
-
-typedef struct
-{
- unsigned char uc;
- double d;
- unsigned int ui;
-} test_structure_1;
-
-typedef struct
-{
- double d1;
- double d2;
-} test_structure_2;
-
-typedef struct
-{
- int si;
-} test_structure_3;
-
-typedef struct
-{
- unsigned ui1;
- unsigned ui2;
- unsigned ui3;
-} test_structure_4;
-
-typedef struct
-{
- char c1;
- char c2;
-} test_structure_5;
-
-static test_structure_1 struct1(test_structure_1 ts)
-{
- /*@-type@*/
- ts.uc++;
- /*@=type@*/
- ts.d--;
- ts.ui++;
-
- return ts;
-}
-
-static test_structure_2 struct2(test_structure_2 ts)
-{
- ts.d1--;
- ts.d2--;
-
- return ts;
-}
-
-static test_structure_3 struct3(test_structure_3 ts)
-{
- ts.si = -(ts.si*2);
-
- return ts;
-}
-
-static test_structure_4 struct4(test_structure_4 ts)
-{
- ts.ui3 = ts.ui1 * ts.ui2 * ts.ui3;
-
- return ts;
-}
-
-static test_structure_5 struct5(test_structure_5 ts1, test_structure_5 ts2)
-{
- ts1.c1 += ts2.c1;
- ts1.c2 -= ts2.c2;
-
- return ts1;
-}
-
-/* Take an int and a float argument, together with int userdata, and */
-/* return the sum. */
-static void closure_test_fn(ffi_cif* cif,void* resp,void** args, void* userdata)
-{
- *(int*)resp =
- *(int *)args[0] + (int)(*(float *)args[1]) + (int)(long)userdata;
-}
-
-typedef int (*closure_test_type)(int, float);
-
-int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
-{
- ffi_cif cif;
- ffi_type *args[MAX_ARGS];
- void *values[MAX_ARGS];
- char *s;
- signed char sc;
- unsigned char uc;
- signed short ss;
- unsigned short us;
- unsigned long ul;
- long long ll;
- float f;
- double d;
- long double ld;
- signed int si1;
- signed int si2;
-
-#if defined(ALPHA) || defined(IA64) || defined(SPARC64) || (defined(MIPS) && (_MIPS_SIM == _ABIN32))
- long long rint;
-#else
- int rint;
-#endif
- long long rlonglong;
-
- ffi_type ts1_type;
- ffi_type ts2_type;
- ffi_type ts3_type;
- ffi_type ts4_type;
- ffi_type ts5_type;
- ffi_type *ts1_type_elements[4];
- ffi_type *ts2_type_elements[3];
- ffi_type *ts3_type_elements[2];
- ffi_type *ts4_type_elements[4];
- ffi_type *ts5_type_elements[3];
-
- ts1_type.size = 0;
- ts1_type.alignment = 0;
- ts1_type.type = FFI_TYPE_STRUCT;
-
- ts2_type.size = 0;
- ts2_type.alignment = 0;
- ts2_type.type = FFI_TYPE_STRUCT;
-
- ts3_type.size = 0;
- ts3_type.alignment = 0;
- ts3_type.type = FFI_TYPE_STRUCT;
-
- ts4_type.size = 0;
- ts4_type.alignment = 0;
- ts4_type.type = FFI_TYPE_STRUCT;
-
- ts5_type.size = 0;
- ts5_type.alignment = 0;
- ts5_type.type = FFI_TYPE_STRUCT;
-
- /*@-immediatetrans@*/
- ts1_type.elements = ts1_type_elements;
- ts2_type.elements = ts2_type_elements;
- ts3_type.elements = ts3_type_elements;
- ts4_type.elements = ts4_type_elements;
- ts5_type.elements = ts5_type_elements;
- /*@=immediatetrans@*/
-
- ts1_type_elements[0] = &ffi_type_uchar;
- ts1_type_elements[1] = &ffi_type_double;
- ts1_type_elements[2] = &ffi_type_uint;
- ts1_type_elements[3] = NULL;
-
- ts2_type_elements[0] = &ffi_type_double;
- ts2_type_elements[1] = &ffi_type_double;
- ts2_type_elements[2] = NULL;
-
- ts3_type_elements[0] = &ffi_type_sint;
- ts3_type_elements[1] = NULL;
-
- ts4_type_elements[0] = &ffi_type_uint;
- ts4_type_elements[1] = &ffi_type_uint;
- ts4_type_elements[2] = &ffi_type_uint;
- ts4_type_elements[3] = NULL;
-
- ts5_type_elements[0] = &ffi_type_schar;
- ts5_type_elements[1] = &ffi_type_schar;
- ts5_type_elements[2] = NULL;
-
- ul = 0;
-
- /* return value tests */
- {
-#if defined(MIPS) /* || defined(ARM) */
- puts ("long long tests not run. This is a known bug on this architecture.");
-#else
- args[0] = &ffi_type_sint64;
- values[0] = &ll;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_sint64, args) == FFI_OK);
-
- for (ll = 0LL; ll < 100LL; ll++)
- {
- ul++;
- ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
- CHECK(rlonglong == ll);
- }
-
- for (ll = 55555555555000LL; ll < 55555555555100LL; ll++)
- {
- ul++;
- ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
- CHECK(rlonglong == ll);
- }
-#endif
-
- args[0] = &ffi_type_schar;
- values[0] = &sc;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_schar, args) == FFI_OK);
-
- for (sc = (signed char) -127;
- sc < (signed char) 127; /*@-type@*/ sc++ /*@=type@*/)
- {
- ul++;
- ffi_call(&cif, FFI_FN(return_sc), &rint, values);
- CHECK(rint == (int) sc);
- }
-
- args[0] = &ffi_type_uchar;
- values[0] = &uc;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_uchar, args) == FFI_OK);
-
- for (uc = (unsigned char) '\x00';
- uc < (unsigned char) '\xff'; /*@-type@*/ uc++ /*@=type@*/)
- {
- ul++;
- ffi_call(&cif, FFI_FN(return_uc), &rint, values);
- CHECK(rint == (signed int) uc);
- }
-
- printf("%lu return value tests run\n", ul);
- }
-
-#ifdef BROKEN_LONG_DOUBLE
- printf ("This architecture has broken `long double' support. No floating point\ntests have been run.\n");
-#else
- /* float arg tests */
- {
- args[0] = &ffi_type_float;
- values[0] = &f;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_longdouble, args) == FFI_OK);
-
- f = 3.14159;
-
-#if 0
- /* This is ifdef'd out for now. long double support under SunOS/gcc
- is pretty much non-existent. You'll get the odd bus error in library
- routines like printf(). */
- printf ("%Lf\n", ldblit(f));
-#endif
- ld = 666;
- ffi_call(&cif, FFI_FN(ldblit), &ld, values);
-
-#if 0
- /* This is ifdef'd out for now. long double support under SunOS/gcc
- is pretty much non-existent. You'll get the odd bus error in library
- routines like printf(). */
- printf ("%Lf, %Lf, %Lf, %Lf\n", ld, ldblit(f), ld - ldblit(f), LDBL_EPSILON);
-#endif
-
- /* These are not always the same!! Check for a reasonable delta */
- /*@-realcompare@*/
- if (ld - ldblit(f) < LDBL_EPSILON)
- /*@=realcompare@*/
- puts("long double return value tests ok!");
- else
- CHECK(0);
- }
-
- /* float arg tests */
- {
- args[0] = &ffi_type_sint;
- values[0] = &si1;
- args[1] = &ffi_type_float;
- values[1] = &f;
- args[2] = &ffi_type_double;
- values[2] = &d;
- args[3] = &ffi_type_longdouble;
- values[3] = &ld;
- args[4] = &ffi_type_sint;
- values[4] = &si2;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 5,
- &ffi_type_sint, args) == FFI_OK);
-
- si1 = 6;
- f = 3.14159;
- d = (double)1.0/(double)3.0;
- ld = 2.71828182846L;
- si2 = 10;
-
- floating (si1, f, d, ld, si2);
-
- ffi_call(&cif, FFI_FN(floating), &rint, values);
-
- printf ("%d vs %d\n", rint, floating (si1, f, d, ld, si2));
-
- CHECK(rint == floating(si1, f, d, ld, si2));
-
- printf("float arg tests ok!\n");
- }
-#endif
-
- /* strlen tests */
- {
- args[0] = &ffi_type_pointer;
- values[0] = (void*) &s;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_sint, args) == FFI_OK);
-
- s = "a";
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
- CHECK(rint == 1);
-
- s = "1234567";
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
- CHECK(rint == 7);
-
- s = "1234567890123456789012345";
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
- CHECK(rint == 25);
-
- printf("strlen tests passed\n");
- }
-
- /* float arg tests */
- {
- args[0] = &ffi_type_float;
- values[0] = &f;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_double, args) == FFI_OK);
-
- f = 3.14159;
-
- ffi_call(&cif, FFI_FN(dblit), &d, values);
-
- /* These are not always the same!! Check for a reasonable delta */
- /*@-realcompare@*/
- CHECK(d - dblit(f) < DBL_EPSILON);
- /*@=realcompare@*/
-
- printf("double return value tests ok!\n");
- }
-
- /* many arg tests */
- {
- float ff;
- float fa[13];
-
- for (ul = 0; ul < 13; ul++)
- {
- args[ul] = &ffi_type_float;
- values[ul] = &fa[ul];
- fa[ul] = (float) ul;
- }
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 13,
- &ffi_type_float, args) == FFI_OK);
-
- /*@-usedef@*/
- ff = many(fa[0], fa[1],
- fa[2], fa[3],
- fa[4], fa[5],
- fa[6], fa[7],
- fa[8], fa[9],
- fa[10],fa[11],fa[12]);
- /*@=usedef@*/
-
- ffi_call(&cif, FFI_FN(many), &f, values);
-
- /*@-realcompare@*/
- if (f - ff < FLT_EPSILON)
- /*@=realcompare@*/
- printf("many arg tests ok!\n");
- else
-#ifdef POWERPC
- printf("many arg tests failed! This is a gcc bug.\n");
-#else
- CHECK(0);
-#endif
- }
-
- /* promotion tests */
- {
- args[0] = &ffi_type_schar;
- args[1] = &ffi_type_sshort;
- args[2] = &ffi_type_uchar;
- args[3] = &ffi_type_ushort;
- values[0] = &sc;
- values[1] = &ss;
- values[2] = &uc;
- values[3] = &us;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
- &ffi_type_sint, args) == FFI_OK);
-
- us = 0;
- ul = 0;
-
- for (sc = (signed char) -127;
- sc <= (signed char) 120; /*@-type@*/ sc += 1 /*@=type@*/)
- for (ss = -30000; ss <= 30000; ss += 10000)
- for (uc = (unsigned char) 0;
- uc <= (unsigned char) 200; /*@-type@*/ uc += 20 /*@=type@*/)
- for (us = 0; us <= 60000; us += 10000)
- {
- ul++;
- ffi_call(&cif, FFI_FN(promotion), &rint, values);
- CHECK(rint == (int) sc + (int) ss + (int) uc + (int) us);
- }
- printf("%lu promotion tests run\n", ul);
- }
-
- /* struct tests */
- {
- test_structure_1 ts1_arg;
- /* This is a hack to get a properly aligned result buffer */
- test_structure_1 *ts1_result =
- (test_structure_1 *) malloc (sizeof(test_structure_1));
-
- args[0] = &ts1_type;
- values[0] = &ts1_arg;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ts1_type, args) == FFI_OK);
-
- ts1_arg.uc = '\x01';
- ts1_arg.d = 3.14159;
- ts1_arg.ui = 555;
-
- ffi_call(&cif, FFI_FN(struct1), ts1_result, values);
-
- CHECK(ts1_result->ui == 556);
- CHECK(ts1_result->d == 3.14159 - 1);
-
- puts ("structure test 1 ok!\n");
-
- free (ts1_result);
- }
-
- /* struct tests */
- {
- test_structure_2 ts2_arg;
-
- /* This is a hack to get a properly aligned result buffer */
- test_structure_2 *ts2_result =
- (test_structure_2 *) malloc (sizeof(test_structure_2));
-
- args[0] = &ts2_type;
- values[0] = &ts2_arg;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ts2_type, args) == FFI_OK);
-
- ts2_arg.d1 = 5.55;
- ts2_arg.d2 = 6.66;
-
- printf ("%g\n", ts2_result->d1);
- printf ("%g\n", ts2_result->d2);
-
- ffi_call(&cif, FFI_FN(struct2), ts2_result, values);
-
- printf ("%g\n", ts2_result->d1);
- printf ("%g\n", ts2_result->d2);
-
- CHECK(ts2_result->d1 == 5.55 - 1);
- CHECK(ts2_result->d2 == 6.66 - 1);
-
- printf("structure test 2 ok!\n");
-
- free (ts2_result);
- }
-
- /* struct tests */
- {
- int compare_value;
- test_structure_3 ts3_arg;
- test_structure_3 *ts3_result =
- (test_structure_3 *) malloc (sizeof(test_structure_3));
-
- args[0] = &ts3_type;
- values[0] = &ts3_arg;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ts3_type, args) == FFI_OK);
-
- ts3_arg.si = -123;
- compare_value = ts3_arg.si;
-
- ffi_call(&cif, FFI_FN(struct3), ts3_result, values);
-
- printf ("%d %d\n", ts3_result->si, -(compare_value*2));
-
- if (ts3_result->si == -(ts3_arg.si*2))
- puts ("structure test 3 ok!");
- else
- {
- puts ("Structure test 3 found structure passing bug.");
- puts (" Current versions of GCC are not 100% compliant with the");
- puts (" n32 ABI. There is a known problem related to passing");
- puts (" small structures. Send a bug report to the gcc maintainers.");
- }
-
- free (ts3_result);
- }
-
- /* struct tests */
- {
- test_structure_4 ts4_arg;
-
- /* This is a hack to get a properly aligned result buffer */
- test_structure_4 *ts4_result =
- (test_structure_4 *) malloc (sizeof(test_structure_4));
-
- args[0] = &ts4_type;
- values[0] = &ts4_arg;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ts4_type, args) == FFI_OK);
-
- ts4_arg.ui1 = 2;
- ts4_arg.ui2 = 3;
- ts4_arg.ui3 = 4;
-
- ffi_call (&cif, FFI_FN(struct4), ts4_result, values);
-
- if (ts4_result->ui3 == 2U * 3U * 4U)
- puts ("structure test 4 ok!");
- else
- puts ("Structure test 4 found GCC's structure passing bug.");
-
- free (ts4_result);
- }
-
- /* struct tests */
- {
- test_structure_5 ts5_arg1, ts5_arg2;
-
- /* This is a hack to get a properly aligned result buffer */
- test_structure_5 *ts5_result =
- (test_structure_5 *) malloc (sizeof(test_structure_5));
-
- args[0] = &ts5_type;
- args[1] = &ts5_type;
- values[0] = &ts5_arg1;
- values[1] = &ts5_arg2;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
- &ts5_type, args) == FFI_OK);
-
- ts5_arg1.c1 = 2;
- ts5_arg1.c2 = 6;
- ts5_arg2.c1 = 5;
- ts5_arg2.c2 = 3;
-
- ffi_call (&cif, FFI_FN(struct5), ts5_result, values);
-
- if (ts5_result->c1 == 7
- && ts5_result->c2 == 3)
- puts ("structure test 5 ok!");
- else
- puts ("Structure test 5 found GCC's structure passing bug.");
-
- free (ts5_result);
- }
-
-# if FFI_CLOSURES
- /* A simple closure test */
- {
- ffi_closure cl;
- ffi_type * cl_arg_types[3];
-
- cl_arg_types[0] = &ffi_type_sint;
- cl_arg_types[1] = &ffi_type_float;
- cl_arg_types[2] = NULL;
-
- /* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
- &ffi_type_sint, cl_arg_types) == FFI_OK);
-
- CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn,
- (void *) 3 /* userdata */)
- == FFI_OK);
- CHECK((*((closure_test_type)(&cl)))(1, 2.0) == 6);
- }
-# endif
-
- /* If we arrived here, all is good */
- (void) puts("\nLooks good. No surprises.\n");
-
- /*@-compdestroy@*/
-
- return 0;
-}
-
diff --git a/libffi/src/ia64/ffi.c b/libffi/src/ia64/ffi.c
deleted file mode 100644
index bb4fbb73a72..00000000000
--- a/libffi/src/ia64/ffi.c
+++ /dev/null
@@ -1,670 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998 Cygnus Solutions
- Copyright (c) 2000 Hewlett Packard Company
-
- IA64 Foreign Function Interface
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-#include "ia64_flags.h"
-
-/* Memory image of fp register contents. Should eventually be an fp */
-/* type long enough to hold an entire register. For now we use double. */
-typedef double float80;
-
-/* The stack layout at call to ffi_prep_regs. Other_args will remain */
-/* on the stack for the actual call. Everything else we be transferred */
-/* to registers and popped by the assembly code. */
-
-struct ia64_args {
- long scratch[2]; /* Two scratch words at top of stack. */
- /* Allows sp to passed as arg pointer. */
- void * r8_contents; /* Value to be passed in r8 */
- long spare; /* Not used. */
- float80 fp_regs[8]; /* Contents of 8 floating point argument */
- /* registers. */
- long out_regs[8]; /* Contents of the 8 out registers used */
- /* for integer parameters. */
- long other_args[0]; /* Arguments passed on stack, variable size */
- /* Treated as continuation of out_regs. */
-};
-
-static size_t float_type_size(unsigned short tp)
-{
- switch(tp) {
- case FFI_TYPE_FLOAT:
- return sizeof(float);
- case FFI_TYPE_DOUBLE:
- return sizeof(double);
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
- return sizeof(long double);
-#endif
- default:
- FFI_ASSERT(0);
- }
-}
-
-/*
- * Is type a struct containing at most n floats, doubles, or extended
- * doubles, all of the same fp type?
- * If so, set *element_type to the fp type.
- */
-static bool is_homogeneous_fp_aggregate(ffi_type * type, int n,
- unsigned short * element_type)
-{
- ffi_type **ptr;
- unsigned short element, struct_element;
-
- int type_set = 0;
-
- FFI_ASSERT(type != NULL);
-
- FFI_ASSERT(type->elements != NULL);
-
- ptr = &(type->elements[0]);
-
- while ((*ptr) != NULL)
- {
- switch((*ptr) -> type) {
- case FFI_TYPE_FLOAT:
- if (type_set && element != FFI_TYPE_FLOAT) return 0;
- if (--n < 0) return FALSE;
- type_set = 1;
- element = FFI_TYPE_FLOAT;
- break;
- case FFI_TYPE_DOUBLE:
- if (type_set && element != FFI_TYPE_DOUBLE) return 0;
- if (--n < 0) return FALSE;
- type_set = 1;
- element = FFI_TYPE_DOUBLE;
- break;
- case FFI_TYPE_STRUCT:
- if (!is_homogeneous_fp_aggregate(type, n, &struct_element))
- return FALSE;
- if (type_set && struct_element != element) return FALSE;
- n -= (type -> size)/float_type_size(element);
- element = struct_element;
- if (n < 0) return FALSE;
- break;
- /* case FFI_TYPE_LONGDOUBLE:
- Not yet implemented. */
- default:
- return FALSE;
- }
- ptr++;
- }
- *element_type = element;
- return TRUE;
-
-}
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments. Returns nonzero
- if fp registers are used for arguments. */
-
-static bool
-ffi_prep_args(struct ia64_args *stack, extended_cif *ecif, int bytes)
-{
- register long i, avn;
- register void **p_argv;
- register long *argp = stack -> out_regs;
- register float80 *fp_argp = stack -> fp_regs;
- register ffi_type **p_arg;
-
- /* For big return structs, r8 needs to contain the target address. */
- /* Since r8 is otherwise dead, we set it unconditionally. */
- stack -> r8_contents = ecif -> rvalue;
- i = 0;
- avn = ecif->cif->nargs;
- p_arg = ecif->cif->arg_types;
- p_argv = ecif->avalue;
- while (i < avn)
- {
- size_t z; /* z is in units of arg slots or words, not bytes. */
-
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- z = 1;
- *(SINT64 *) argp = *(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- z = 1;
- *(UINT64 *) argp = *(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- z = 1;
- *(SINT64 *) argp = *(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- z = 1;
- *(UINT64 *) argp = *(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT32:
- z = 1;
- *(SINT64 *) argp = *(SINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT32:
- z = 1;
- *(UINT64 *) argp = *(UINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- case FFI_TYPE_POINTER:
- z = 1;
- *(UINT64 *) argp = *(UINT64 *)(* p_argv);
- break;
-
- case FFI_TYPE_FLOAT:
- z = 1;
- if (fp_argp - stack->fp_regs < 8)
- {
- /* Note the conversion -- all the fp regs are loaded as
- doubles. */
- *fp_argp++ = *(float *)(* p_argv);
- }
- /* Also put it into the integer registers or memory: */
- *(UINT64 *) argp = *(UINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_DOUBLE:
- z = 1;
- if (fp_argp - stack->fp_regs < 8)
- *fp_argp++ = *(double *)(* p_argv);
- /* Also put it into the integer registers or memory: */
- *(double *) argp = *(double *)(* p_argv);
- break;
-
- case FFI_TYPE_STRUCT:
- {
- size_t sz = (*p_arg)->size;
- unsigned short element_type;
- z = ((*p_arg)->size + SIZEOF_ARG - 1)/SIZEOF_ARG;
- if (is_homogeneous_fp_aggregate(*p_arg, 8, &element_type)) {
- int i;
- int nelements = sz/float_type_size(element_type);
- for (i = 0; i < nelements; ++i) {
- switch (element_type) {
- case FFI_TYPE_FLOAT:
- if (fp_argp - stack->fp_regs < 8)
- *fp_argp++ = ((float *)(* p_argv))[i];
- break;
- case FFI_TYPE_DOUBLE:
- if (fp_argp - stack->fp_regs < 8)
- *fp_argp++ = ((double *)(* p_argv))[i];
- break;
- default:
- /* Extended precision not yet implemented. */
- abort();
- }
- }
- }
- /* And pass it in integer registers as a struct, with */
- /* its actual field sizes packed into registers. */
- memcpy(argp, *p_argv, (*p_arg)->size);
- }
- break;
-
- default:
- FFI_ASSERT(0);
- }
-
- argp += z;
- i++, p_arg++, p_argv++;
- }
- return (fp_argp != stack -> fp_regs);
-}
-
-/* Perform machine dependent cif processing */
-ffi_status
-ffi_prep_cif_machdep(ffi_cif *cif)
-{
- long i, avn;
- bool is_simple = TRUE;
- long simple_flag = FFI_SIMPLE_V;
- /* Adjust cif->bytes to include space for the 2 scratch words,
- r8 register contents, spare word,
- the 8 fp register contents, and all 8 integer register contents.
- This will be removed before the call, though 2 scratch words must
- remain. */
-
- cif->bytes += 4*sizeof(long) + 8 *sizeof(float80);
- if (cif->bytes < sizeof(struct ia64_args))
- cif->bytes = sizeof(struct ia64_args);
-
- /* The stack must be double word aligned, so round bytes up
- appropriately. */
-
- cif->bytes = ALIGN(cif->bytes, 2*sizeof(void*));
-
- avn = cif->nargs;
- if (avn <= 2) {
- for (i = 0; i < avn; ++i) {
- switch(cif -> arg_types[i] -> type) {
- case FFI_TYPE_SINT32:
- simple_flag = FFI_ADD_INT_ARG(simple_flag);
- break;
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- case FFI_TYPE_POINTER:
- simple_flag = FFI_ADD_LONG_ARG(simple_flag);
- break;
- default:
- is_simple = FALSE;
- }
- }
- } else {
- is_simple = FALSE;
- }
-
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- cif->flags = FFI_TYPE_VOID;
- break;
-
- case FFI_TYPE_STRUCT:
- {
- size_t sz = cif -> rtype -> size;
- unsigned short element_type;
-
- is_simple = FALSE;
- if (is_homogeneous_fp_aggregate(cif -> rtype, 8, &element_type)) {
- int nelements = sz/float_type_size(element_type);
- if (nelements <= 1) {
- if (0 == nelements) {
- cif -> flags = FFI_TYPE_VOID;
- } else {
- cif -> flags = element_type;
- }
- } else {
- switch(element_type) {
- case FFI_TYPE_FLOAT:
- cif -> flags = FFI_IS_FLOAT_FP_AGGREGATE | nelements;
- break;
- case FFI_TYPE_DOUBLE:
- cif -> flags = FFI_IS_DOUBLE_FP_AGGREGATE | nelements;
- break;
- default:
- /* long double NYI */
- abort();
- }
- }
- break;
- }
- if (sz <= 32) {
- if (sz <= 8) {
- cif->flags = FFI_TYPE_INT;
- } else if (sz <= 16) {
- cif->flags = FFI_IS_SMALL_STRUCT2;
- } else if (sz <= 24) {
- cif->flags = FFI_IS_SMALL_STRUCT3;
- } else {
- cif->flags = FFI_IS_SMALL_STRUCT4;
- }
- } else {
- cif->flags = FFI_TYPE_STRUCT;
- }
- }
- break;
-
- case FFI_TYPE_FLOAT:
- is_simple = FALSE;
- cif->flags = FFI_TYPE_FLOAT;
- break;
-
- case FFI_TYPE_DOUBLE:
- is_simple = FALSE;
- cif->flags = FFI_TYPE_DOUBLE;
- break;
-
- default:
- cif->flags = FFI_TYPE_INT;
- /* This seems to depend on little endian mode, and the fact that */
- /* the return pointer always points to at least 8 bytes. But */
- /* that also seems to be true for other platforms. */
- break;
- }
-
- if (is_simple) cif -> flags |= simple_flag;
- return FFI_OK;
-}
-
-extern int ffi_call_unix(bool (*)(struct ia64_args *, extended_cif *, int),
- extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
-
-void
-ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
-{
- extended_cif ecif;
- long simple = cif -> flags & FFI_SIMPLE;
-
- /* Should this also check for Unix ABI? */
- /* This is almost, but not quite, machine independent. Note that */
- /* we can get away with not caring about length of the result because */
- /* we assume we are little endian, and the result buffer is large */
- /* enough. */
- /* This needs work for HP/UX. */
- if (simple) {
- long (*lfn)() = (long (*)())fn;
- long result;
- switch(simple) {
- case FFI_SIMPLE_V:
- result = lfn();
- break;
- case FFI_SIMPLE_I:
- result = lfn(*(int *)avalue[0]);
- break;
- case FFI_SIMPLE_L:
- result = lfn(*(long *)avalue[0]);
- break;
- case FFI_SIMPLE_II:
- result = lfn(*(int *)avalue[0], *(int *)avalue[1]);
- break;
- case FFI_SIMPLE_IL:
- result = lfn(*(int *)avalue[0], *(long *)avalue[1]);
- break;
- case FFI_SIMPLE_LI:
- result = lfn(*(long *)avalue[0], *(int *)avalue[1]);
- break;
- case FFI_SIMPLE_LL:
- result = lfn(*(long *)avalue[0], *(long *)avalue[1]);
- break;
- }
- if ((cif->flags & ~FFI_SIMPLE) != FFI_TYPE_VOID && 0 != rvalue) {
- * (long *)rvalue = result;
- }
- return;
- }
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return
- value address then we need to make one. */
-
- if (rvalue == NULL && cif->rtype->type == FFI_TYPE_STRUCT)
- ecif.rvalue = alloca(cif->rtype->size);
- else
- ecif.rvalue = rvalue;
-
- switch (cif->abi)
- {
- case FFI_UNIX:
- ffi_call_unix(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, rvalue, fn);
- break;
-
- default:
- FFI_ASSERT(0);
- break;
- }
-}
-
-/*
- * Closures represent a pair consisting of a function pointer, and
- * some user data. A closure is invoked by reinterpreting the closure
- * as a function pointer, and branching to it. Thus we can make an
- * interpreted function callable as a C function: We turn the interpreter
- * itself, together with a pointer specifying the interpreted procedure,
- * into a closure.
- * On X86, the first few words of the closure structure actually contain code,
- * which will do the right thing. On most other architectures, this
- * would raise some Icache/Dcache coherence issues (which can be solved, but
- * often not cheaply).
- * For IA64, function pointer are already pairs consisting of a code
- * pointer, and a gp pointer. The latter is needed to access global variables.
- * Here we set up such a pair as the first two words of the closure (in
- * the "trampoline" area), but we replace the gp pointer with a pointer
- * to the closure itself. We also add the real gp pointer to the
- * closure. This allows the function entry code to both retrieve the
- * user data, and to restire the correct gp pointer.
- */
-
-static void
-ffi_prep_incoming_args_UNIX(struct ia64_args *args, void **rvalue,
- void **avalue, ffi_cif *cif);
-
-/* This function is entered with the doctored gp (r1) value.
- * This code is extremely gcc specific. There is some argument that
- * it should really be written in assembly code, since it depends on
- * gcc properties that might change over time.
- */
-
-/* ffi_closure_UNIX is an assembly routine, which copies the register */
-/* state into s struct ia64_args, and the invokes */
-/* ffi_closure_UNIX_inner. It also recovers the closure pointer */
-/* from its fake gp pointer. */
-void ffi_closure_UNIX();
-
-#ifndef __GNUC__
-# error This requires gcc
-#endif
-void
-ffi_closure_UNIX_inner (ffi_closure *closure, struct ia64_args * args)
-/* Hopefully declarint this as a varargs function will force all args */
-/* to memory. */
-{
- // this is our return value storage
- long double res;
-
- // our various things...
- ffi_cif *cif;
- unsigned short rtype;
- void *resp;
- void **arg_area;
-
- resp = (void*)&res;
- cif = closure->cif;
- arg_area = (void**) alloca (cif->nargs * sizeof (void*));
-
- /* this call will initialize ARG_AREA, such that each
- * element in that array points to the corresponding
- * value on the stack; and if the function returns
- * a structure, it will re-set RESP to point to the
- * structure return address. */
-
- ffi_prep_incoming_args_UNIX(args, (void**)&resp, arg_area, cif);
-
- (closure->fun) (cif, resp, arg_area, closure->user_data);
-
- rtype = cif->flags;
-
- /* now, do a generic return based on the value of rtype */
- if (rtype == FFI_TYPE_INT)
- {
- asm volatile ("ld8 r8=[%0]" : : "r" (resp) : "r8");
- }
- else if (rtype == FFI_TYPE_FLOAT)
- {
- asm volatile ("ldfs f8=[%0]" : : "r" (resp) : "f8");
- }
- else if (rtype == FFI_TYPE_DOUBLE)
- {
- asm volatile ("ldfd f8=[%0]" : : "r" (resp) : "f8");
- }
- else if (rtype == FFI_IS_SMALL_STRUCT2)
- {
- asm volatile ("ld8 r8=[%0]; ld8 r9=[%1]"
- : : "r" (resp), "r" (resp+8) : "r8","r9");
- }
- else if (rtype == FFI_IS_SMALL_STRUCT3)
- {
- asm volatile ("ld8 r8=[%0]; ld8 r9=[%1]; ld8 r10=[%2]"
- : : "r" (resp), "r" (resp+8), "r" (resp+16)
- : "r8","r9","r10");
- }
- else if (rtype == FFI_IS_SMALL_STRUCT4)
- {
- asm volatile ("ld8 r8=[%0]; ld8 r9=[%1]; ld8 r10=[%2]; ld8 r11=[%3]"
- : : "r" (resp), "r" (resp+8), "r" (resp+16), "r" (resp+24)
- : "r8","r9","r10","r11");
- }
- else if (rtype != FFI_TYPE_VOID && rtype != FFI_TYPE_STRUCT)
- {
- /* Can only happen for homogeneous FP aggregates? */
- abort();
- }
-}
-
-static void
-ffi_prep_incoming_args_UNIX(struct ia64_args *args, void **rvalue,
- void **avalue, ffi_cif *cif)
-{
- register unsigned int i;
- register unsigned int avn;
- register void **p_argv;
- register unsigned long *argp = args -> out_regs;
- unsigned fp_reg_num = 0;
- register ffi_type **p_arg;
-
- avn = cif->nargs;
- p_argv = avalue;
-
- for (i = cif->nargs, p_arg = cif->arg_types; i != 0; i--, p_arg++)
- {
- size_t z; /* In units of words or argument slots. */
-
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- case FFI_TYPE_UINT8:
- case FFI_TYPE_SINT16:
- case FFI_TYPE_UINT16:
- case FFI_TYPE_SINT32:
- case FFI_TYPE_UINT32:
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- case FFI_TYPE_POINTER:
- z = 1;
- *p_argv = (void *)argp;
- break;
-
- case FFI_TYPE_FLOAT:
- z = 1;
- /* Convert argument back to float in place from the saved value */
- if (fp_reg_num < 8) {
- *(float *)argp = args -> fp_regs[fp_reg_num++];
- } else {
- *(float *)argp = *(double *)argp;
- }
- *p_argv = (void *)argp;
- break;
-
- case FFI_TYPE_DOUBLE:
- z = 1;
- if (fp_reg_num < 8) {
- *p_argv = args -> fp_regs + fp_reg_num++;
- } else {
- *p_argv = (void *)argp;
- }
- break;
-
- case FFI_TYPE_STRUCT:
- {
- size_t sz = (*p_arg)->size;
- unsigned short element_type;
- z = ((*p_arg)->size + SIZEOF_ARG - 1)/SIZEOF_ARG;
- if (is_homogeneous_fp_aggregate(*p_arg, 8, &element_type)) {
- int nelements = sz/float_type_size(element_type);
- if (nelements + fp_reg_num >= 8) {
- /* hard case NYI. */
- abort();
- }
- if (element_type == FFI_TYPE_DOUBLE) {
- *p_argv = args -> fp_regs + fp_reg_num;
- fp_reg_num += nelements;
- break;
- }
- if (element_type == FFI_TYPE_FLOAT) {
- int j;
- for (j = 0; j < nelements; ++ j) {
- ((float *)argp)[j] = args -> fp_regs[fp_reg_num + j];
- }
- *p_argv = (void *)argp;
- fp_reg_num += nelements;
- break;
- }
- abort(); /* Other fp types NYI */
- }
- }
- break;
-
- default:
- FFI_ASSERT(0);
- }
-
- argp += z;
- p_argv++;
-
- }
-
- return;
-}
-
-
-/* Fill in a closure to refer to the specified fun and user_data. */
-/* cif specifies the argument and result types for fun. */
-/* the cif must already be prep'ed */
-
-/* The layout of a function descriptor. A C function pointer really */
-/* points to one of these. */
-typedef struct ia64_fd_struct {
- void *code_pointer;
- void *gp;
-} ia64_fd;
-
-ffi_status
-ffi_prep_closure (ffi_closure* closure,
- ffi_cif* cif,
- void (*fun)(ffi_cif*,void*,void**,void*),
- void *user_data)
-{
- struct ffi_ia64_trampoline_struct *tramp =
- (struct ffi_ia64_trampoline_struct *) (closure -> tramp);
- ia64_fd *fd = (ia64_fd *)(void *)ffi_closure_UNIX;
-
- FFI_ASSERT (cif->abi == FFI_UNIX);
-
- tramp -> code_pointer = fd -> code_pointer;
- tramp -> real_gp = fd -> gp;
- tramp -> fake_gp = closure;
- closure->cif = cif;
- closure->user_data = user_data;
- closure->fun = fun;
-
- return FFI_OK;
-}
-
-
diff --git a/libffi/src/ia64/ia64_flags.h b/libffi/src/ia64/ia64_flags.h
deleted file mode 100644
index 23dbd3e0237..00000000000
--- a/libffi/src/ia64/ia64_flags.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -----------------------------------------------------------------------
- ia64_flags.h - Copyright (c) 2000 Hewlett Packard Company
-
- IA64/unix Foreign Function Interface
-
- Original author: Hans Boehm, HP Labs
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-
-/* Homogeneous Floating Point Aggregates (HFAs) which are returned */
-/* in FP registers. The least significant bits specify the size in */
-/* words. */
-#define FFI_IS_FLOAT_FP_AGGREGATE 0x1000
-#define FFI_IS_DOUBLE_FP_AGGREGATE 0x0800
-#define FLOAT_FP_AGGREGATE_BIT 12
-#define DOUBLE_FP_AGGREGATE_BIT 11
-
-/* Small structures containing N words. If N=1, they are returned */
-/* as though they were integers. */
-#define FFI_IS_SMALL_STRUCT2 0x40 /* Struct > 8, <=16 bytes */
-#define FFI_IS_SMALL_STRUCT3 0x41 /* Struct > 16 <= 24 bytes */
-#define FFI_IS_SMALL_STRUCT4 0x42 /* Struct > 24, <=32 bytes */
-
-/* Flag values identifying particularly simple cases, which are */
-/* handled specially. We treat functions as simple if they take all */
-/* arguments can be passed as 32 or 64 bit integer quantities, there is */
-/* either no return value or it can be treated as a 64bit integer, and */
-/* if there are at most 2 arguments. */
-/* This is OR'ed with the normal flag values. */
-#define FFI_SIMPLE_V 0x10000 /* () -> X */
-#define FFI_SIMPLE_I 0x20000 /* (int) -> X */
-#define FFI_SIMPLE_L 0x30000 /* (long) -> X */
-#define FFI_SIMPLE_II 0x40000 /* (int,int) -> X */
-#define FFI_SIMPLE_IL 0x50000 /* (int,long) -> X */
-#define FFI_SIMPLE_LI 0x60000 /* (long,int) -> X */
-#define FFI_SIMPLE_LL 0x70000 /* (long,long) -> X */
-
-/* Mask for all of the FFI_SIMPLE bits: */
-#define FFI_SIMPLE 0xf0000
-
-/* An easy way to build FFI_SIMPLE flags from FFI_SIMPLE_V: */
-#define FFI_ADD_LONG_ARG(flag) (((flag) << 1) | 0x10000)
-#define FFI_ADD_INT_ARG(flag) ((flag) << 1)
diff --git a/libffi/src/ia64/unix.S b/libffi/src/ia64/unix.S
deleted file mode 100644
index fdaf8be28ad..00000000000
--- a/libffi/src/ia64/unix.S
+++ /dev/null
@@ -1,301 +0,0 @@
-/* -----------------------------------------------------------------------
- unix.S - Copyright (c) 1998 Cygnus Solutions
- Copyright (c) 2000 Hewlett Packard Company
-
- IA64/unix Foreign Function Interface
-
- Primary author: Hans Boehm, HP Labs
-
- Loosely modeled on Cygnus code for other platforms.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-#include "ia64_flags.h"
-
-/* parameters: */
-#define callback in0
-#define ecifp in1
-#define bytes in2
-#define flags in3
-#define raddr in4
-#define fn in5
-
-#define FLOAT_SZ 8 /* in-memory size of fp operands */
-
-.text
- .align 16
- .global ffi_call_unix#
- .proc ffi_call_unix#
-ffi_call_unix:
- alloc loc0=ar.pfs,6,5,8,0
- mov loc1=b0;
- sub sp=sp,bytes
- mov loc4=r1 /* Save gp */
- ld8 r8=[callback],8 /* code address of callback */
- ;;
- mov out0=sp
- mov out1=ecifp
- mov out2=bytes
- ld8 r1=[callback] /* Set up gp for callback. Unnecessary? */
- mov b6=r8
- ;;
- br.call.sptk.many b0 = b6 /* call ffi_prep_args */
- cmp.eq p6,p0=0,r8 /* r8 nonzero ==> need fp regs */
- ;;
-(p6) add loc2=32+8*FLOAT_SZ,sp
-(p6) br.cond.dptk.many fp_done
- ;; /* Quiets warning; needed? */
- add loc2=32,sp
- add loc3=32+FLOAT_SZ,sp
- ;;
- ldfd f8=[loc2],2*FLOAT_SZ
- ldfd f9=[loc3],2*FLOAT_SZ
- ;;
- ldfd f10=[loc2],2*FLOAT_SZ
- ldfd f11=[loc3],2*FLOAT_SZ
- ;;
- ldfd f12=[loc2],2*FLOAT_SZ
- ldfd f13=[loc3],2*FLOAT_SZ
- ;;
- ldfd f14=[loc2],2*FLOAT_SZ
- ldfd f15=[loc3]
-fp_done:
- add r9=16,sp /* Pointer to r8_contents */
- /* loc2 points at first integer register value. */
- add loc3=8,loc2
- ;;
- ld8 r8=[r9] /* Just in case we return large struct */
- ld8 out0=[loc2],16
- ld8 out1=[loc3],16
- ;;
- ld8 out2=[loc2],16
- ld8 out3=[loc3],16
- ;;
- ld8 out4=[loc2],16
- ld8 out5=[loc3],16
- ;;
- ld8 out6=[loc2],16
- ld8 out7=[loc3]
- /* loc2 points at first stack parameter. Set sp to 16 bytes */
- /* below that. */
- add sp=-16,loc2
-
- ld8 r8=[fn],8
- ;;
- ld8 r1=[fn] /* Set up gp */
- mov b6=r8;;
- br.call.sptk.many b0 = b6 /* call ffi_prep_args */
-
- /* Handle return value. */
- cmp.eq p6,p0=0,raddr
- cmp.eq p7,p0=FFI_TYPE_INT,flags
- cmp.eq p10,p0=FFI_IS_SMALL_STRUCT2,flags
- cmp.eq p11,p0=FFI_IS_SMALL_STRUCT3,flags
- cmp.eq p12,p0=FFI_IS_SMALL_STRUCT4,flags
- ;;
-(p6) br.cond.dpnt.few done /* Dont copy ret values if raddr = 0 */
-(p7) br.cond.dptk.few copy1
-(p10) br.cond.dpnt.few copy2
-(p11) br.cond.dpnt.few copy3
-(p12) br.cond.dpnt.few copy4
- cmp.eq p8,p0=FFI_TYPE_FLOAT,flags
- cmp.eq p9,p0=FFI_TYPE_DOUBLE,flags
- tbit.nz p6,p0=flags,FLOAT_FP_AGGREGATE_BIT
- tbit.nz p7,p0=flags,DOUBLE_FP_AGGREGATE_BIT
- ;;
-(p8) stfs [raddr]=f8
-(p9) stfd [raddr]=f8
- ;;
-(p6) br.cond.dpnt.few handle_float_hfa
-(p7) br.cond.dpnt.few handle_double_hfa
- br done
-
-copy4:
- add loc3=24,raddr
- ;;
- st8 [loc3]=r11
-copy3:
- add loc3=16,raddr
- ;;
- st8 [loc3]=r10
-copy2:
- add loc3=8,raddr
- ;;
- st8 [loc3]=r9
-copy1:
- st8 [raddr]=r8
- /* In the big struct case, raddr was passed as an argument. */
- /* In the void case there was nothing to do. */
-
-done:
- mov r1=loc4 /* Restore gp */
- mov ar.pfs = loc0
- mov b0 = loc1
- br.ret.sptk.many b0
-
-handle_double_hfa:
- /* Homogeneous floating point array of doubles is returned in */
- /* registers f8-f15. Save one at a time to return area. */
- and flags=0xf,flags /* Retrieve size */
- ;;
- cmp.eq p6,p0=2,flags
- cmp.eq p7,p0=3,flags
- cmp.eq p8,p0=4,flags
- cmp.eq p9,p0=5,flags
- cmp.eq p10,p0=6,flags
- cmp.eq p11,p0=7,flags
- cmp.eq p12,p0=8,flags
- ;;
-(p6) br.cond.dptk.few dhfa2
-(p7) br.cond.dptk.few dhfa3
-(p8) br.cond.dptk.few dhfa4
-(p9) br.cond.dptk.few dhfa5
-(p10) br.cond.dptk.few dhfa6
-(p11) br.cond.dptk.few dhfa7
-dhfa8: add loc3=7*8,raddr
- ;;
- stfd [loc3]=f15
-dhfa7: add loc3=6*8,raddr
- ;;
- stfd [loc3]=f14
-dhfa6: add loc3=5*8,raddr
- ;;
- stfd [loc3]=f13
-dhfa5: add loc3=4*8,raddr
- ;;
- stfd [loc3]=f12
-dhfa4: add loc3=3*8,raddr
- ;;
- stfd [loc3]=f11
-dhfa3: add loc3=2*8,raddr
- ;;
- stfd [loc3]=f10
-dhfa2: add loc3=1*8,raddr
- ;;
- stfd [loc3]=f9
- stfd [raddr]=f8
- br done
-
-handle_float_hfa:
- /* Homogeneous floating point array of floats is returned in */
- /* registers f8-f15. Save one at a time to return area. */
- and flags=0xf,flags /* Retrieve size */
- ;;
- cmp.eq p6,p0=2,flags
- cmp.eq p7,p0=3,flags
- cmp.eq p8,p0=4,flags
- cmp.eq p9,p0=5,flags
- cmp.eq p10,p0=6,flags
- cmp.eq p11,p0=7,flags
- cmp.eq p12,p0=8,flags
- ;;
-(p6) br.cond.dptk.few shfa2
-(p7) br.cond.dptk.few shfa3
-(p8) br.cond.dptk.few shfa4
-(p9) br.cond.dptk.few shfa5
-(p10) br.cond.dptk.few shfa6
-(p11) br.cond.dptk.few shfa7
-shfa8: add loc3=7*4,raddr
- ;;
- stfd [loc3]=f15
-shfa7: add loc3=6*4,raddr
- ;;
- stfd [loc3]=f14
-shfa6: add loc3=5*4,raddr
- ;;
- stfd [loc3]=f13
-shfa5: add loc3=4*4,raddr
- ;;
- stfd [loc3]=f12
-shfa4: add loc3=3*4,raddr
- ;;
- stfd [loc3]=f11
-shfa3: add loc3=2*4,raddr
- ;;
- stfd [loc3]=f10
-shfa2: add loc3=1*4,raddr
- ;;
- stfd [loc3]=f9
- stfd [raddr]=f8
- br done
-
- .endp ffi_call_unix
-
-
-.text
- .align 16
- .global ffi_closure_UNIX
- .proc ffi_closure_UNIX
-ffi_closure_UNIX:
- alloc loc0=ar.pfs,8,2,2,0
- mov loc1=b0
- /* Retrieve closure pointer and real gp. */
- mov out0=gp
- add gp=16,gp
- ;;
- ld8 gp=[gp]
- /* Reserve a structia64_args on the stack such that arguments */
- /* past the first 8 are automatically placed in the right */
- /* slot. Note that when we start the sp points at 2 8-byte */
- /* scratch words, followed by the extra arguments. */
-# define BASIC_ARGS_SZ (8*FLOAT_SZ+8*8+2*8)
-# define FIRST_FP_OFFSET (4*8)
- add r14=-(BASIC_ARGS_SZ-FIRST_FP_OFFSET),sp
- add r15=-(BASIC_ARGS_SZ-FIRST_FP_OFFSET-FLOAT_SZ),sp
- add sp=-BASIC_ARGS_SZ,sp
- /* r14 points to fp_regs[0], r15 points to fp_regs[1] */
- ;;
- stfd [r14]=f8,2*FLOAT_SZ
- stfd [r15]=f9,2*FLOAT_SZ
- ;;
- stfd [r14]=f10,2*FLOAT_SZ
- stfd [r15]=f11,2*FLOAT_SZ
- ;;
- stfd [r14]=f12,2*FLOAT_SZ
- stfd [r15]=f13,2*FLOAT_SZ
- ;;
- stfd [r14]=f14,FLOAT_SZ+8
- stfd [r15]=f15,2*8
- ;;
- /* r14 points to first parameter register area, r15 to second. */
- st8 [r14]=in0,2*8
- st8 [r15]=in1,2*8
- ;;
- st8 [r14]=in2,2*8
- st8 [r15]=in3,2*8
- ;;
- st8 [r14]=in4,2*8
- st8 [r15]=in5,2*8
- ;;
- st8 [r14]=in6,2*8
- st8 [r15]=in7,2*8
- /* Call ffi_closure_UNIX_inner */
- mov out1=sp
- br.call.sptk.many b0=ffi_closure_UNIX_inner
- ;;
- mov b0=loc1
- mov ar.pfs=loc0
- br.ret.sptk.many b0
- .endp ffi_closure_UNIX
-
-
diff --git a/libffi/src/java_raw_api.c b/libffi/src/java_raw_api.c
deleted file mode 100644
index 5f85582cfde..00000000000
--- a/libffi/src/java_raw_api.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/* -----------------------------------------------------------------------
- java_raw_api.c - Copyright (c) 1999 Cygnus Solutions
-
- Cloned from raw_api.c
-
- Raw_api.c author: Kresten Krab Thorup <krab@gnu.org>
- Java_raw_api.c author: Hans-J. Boehm <hboehm@hpl.hp.com>
-
- $Id $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-/* This defines a Java- and 64-bit specific variant of the raw API. */
-/* It assumes that "raw" argument blocks look like Java stacks on a */
-/* 64-bit machine. Arguments that can be stored in a single stack */
-/* stack slots (longs, doubles) occupy 128 bits, but only the first */
-/* 64 bits are actually used. */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#if !defined(NO_JAVA_RAW_API) && !defined(FFI_NO_RAW_API)
-
-size_t
-ffi_java_raw_size (ffi_cif *cif)
-{
- size_t result = 0;
- int i;
-
- ffi_type **at = cif->arg_types;
-
- for (i = cif->nargs-1; i >= 0; i--, at++)
- {
- switch((*at) -> type) {
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- result += 2 * SIZEOF_ARG;
- break;
- case FFI_TYPE_STRUCT:
- /* No structure parameters in Java. */
- abort();
- default:
- result += SIZEOF_ARG;
- }
- }
-
- return result;
-}
-
-
-void
-ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args)
-{
- unsigned i;
- ffi_type **tp = cif->arg_types;
-
-#if WORDS_BIGENDIAN
-
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
- switch ((*tp)->type)
- {
- case FFI_TYPE_UINT8:
- case FFI_TYPE_SINT8:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 1);
- break;
-
- case FFI_TYPE_UINT16:
- case FFI_TYPE_SINT16:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 2);
- break;
-
-#if SIZEOF_ARG >= 4
- case FFI_TYPE_UINT32:
- case FFI_TYPE_SINT32:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 4);
- break;
-#endif
-
-#if SIZEOF_ARG == 8
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- case FFI_TYPE_DOUBLE:
- *args = (void *)raw;
- raw += 2;
- break;
-#endif
-
- case FFI_TYPE_POINTER:
- *args = (void*) &(raw++)->ptr;
- break;
-
- default:
- *args = raw;
- raw += ALIGN ((*tp)->size, SIZEOF_ARG) / SIZEOF_ARG;
- }
- }
-
-#else /* WORDS_BIGENDIAN */
-
-#if !PDP
-
- /* then assume little endian */
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
-#if SIZEOF_ARG == 8
- switch((*tp)->type) {
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- case FFI_TYPE_DOUBLE:
- *args = (void*) raw;
- raw += 2;
- break;
- default:
- *args = (void*) raw++;
- }
-#else /* SIZEOF_ARG != 8 */
- *args = (void*) raw;
- raw += ALIGN ((*tp)->size, sizeof (void*)) / sizeof (void*);
-#endif /* SIZEOF_ARG == 8 */
- }
-
-#else
-#error "pdp endian not supported"
-#endif /* ! PDP */
-
-#endif /* WORDS_BIGENDIAN */
-}
-
-void
-ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw)
-{
- unsigned i;
- ffi_type **tp = cif->arg_types;
-
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
- switch ((*tp)->type)
- {
- case FFI_TYPE_UINT8:
- (raw++)->uint = *(UINT8*) (*args);
- break;
-
- case FFI_TYPE_SINT8:
- (raw++)->sint = *(SINT8*) (*args);
- break;
-
- case FFI_TYPE_UINT16:
- (raw++)->uint = *(UINT16*) (*args);
- break;
-
- case FFI_TYPE_SINT16:
- (raw++)->sint = *(SINT16*) (*args);
- break;
-
-#if SIZEOF_ARG >= 4
- case FFI_TYPE_UINT32:
- (raw++)->uint = *(UINT32*) (*args);
- break;
-
- case FFI_TYPE_SINT32:
- (raw++)->sint = *(SINT32*) (*args);
- break;
-#endif
- case FFI_TYPE_FLOAT:
- (raw++)->flt = *(FLOAT32*) (*args);
- break;
-
-#if SIZEOF_ARG == 8
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- case FFI_TYPE_DOUBLE:
- raw->uint = *(UINT64*) (*args);
- raw += 2;
- break;
-#endif
-
- case FFI_TYPE_POINTER:
- (raw++)->ptr = **(void***) args;
- break;
-
- default:
-#if SIZEOF_ARG == 8
- FFI_ASSERT(FALSE); /* Should have covered all cases */
-#else
- memcpy ((void*) raw->data, (void*)*args, (*tp)->size);
- raw += ALIGN ((*tp)->size, SIZEOF_ARG) / SIZEOF_ARG;
-#endif
- }
- }
-}
-
-#if !FFI_NATIVE_RAW_API
-
-
-/* This is a generic definition of ffi_raw_call, to be used if the
- * native system does not provide a machine-specific implementation.
- * Having this, allows code to be written for the raw API, without
- * the need for system-specific code to handle input in that format;
- * these following couple of functions will handle the translation forth
- * and back automatically. */
-
-void ffi_java_raw_call (/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ ffi_raw *raw)
-{
- void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
- ffi_java_raw_to_ptrarray (cif, raw, avalue);
- ffi_call (cif, fn, rvalue, avalue);
-}
-
-#if FFI_CLOSURES /* base system provides closures */
-
-static void
-ffi_java_translate_args (ffi_cif *cif, void *rvalue,
- void **avalue, void *user_data)
-{
- ffi_raw *raw = (ffi_raw*)alloca (ffi_java_raw_size (cif));
- ffi_raw_closure *cl = (ffi_raw_closure*)user_data;
-
- ffi_java_ptrarray_to_raw (cif, avalue, raw);
- (*cl->fun) (cif, rvalue, raw, cl->user_data);
-}
-
-/* Again, here is the generic version of ffi_prep_raw_closure, which
- * will install an intermediate "hub" for translation of arguments from
- * the pointer-array format, to the raw format */
-
-ffi_status
-ffi_prep_java_raw_closure (ffi_raw_closure* cl,
- ffi_cif *cif,
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
- void *user_data)
-{
- ffi_status status;
-
- status = ffi_prep_closure ((ffi_closure*) cl,
- cif,
- &ffi_java_translate_args,
- (void*)cl);
- if (status == FFI_OK)
- {
- cl->fun = fun;
- cl->user_data = user_data;
- }
-
- return status;
-}
-
-#endif /* FFI_CLOSURES */
-#endif /* !FFI_NATIVE_RAW_API */
-#endif /* !FFI_NO_RAW_API */
diff --git a/libffi/src/m68k/ffi.c b/libffi/src/m68k/ffi.c
deleted file mode 100644
index c5d950786f7..00000000000
--- a/libffi/src/m68k/ffi.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c
-
- m68k Foreign Function Interface
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-/* ffi_prep_args is called by the assembly routine once stack space has
- been allocated for the function's arguments. */
-
-static void *
-ffi_prep_args (void *stack, extended_cif *ecif)
-{
- unsigned int i;
- int tmp;
- unsigned int avn;
- void **p_argv;
- char *argp;
- ffi_type **p_arg;
- void *struct_value_ptr;
-
- tmp = 0;
- argp = stack;
-
- if (ecif->cif->rtype->type == FFI_TYPE_STRUCT
- && ecif->cif->rtype->size > 8)
- struct_value_ptr = ecif->rvalue;
- else
- struct_value_ptr = NULL;
-
- avn = ecif->cif->nargs;
- p_argv = ecif->avalue;
-
- for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
- i != 0 && avn != 0;
- i--, p_arg++)
- {
- size_t z;
-
- /* Align if necessary. */
- if (((*p_arg)->alignment - 1) & (unsigned) argp)
- argp = (char *) ALIGN (argp, (*p_arg)->alignment);
-
- if (avn != 0)
- {
- avn--;
- z = (*p_arg)->size;
- if (z < sizeof (int))
- {
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(signed int *) argp = (signed int) *(SINT8 *) *p_argv;
- break;
-
- case FFI_TYPE_UINT8:
- *(unsigned int *) argp = (unsigned int) *(UINT8 *) *p_argv;
- break;
-
- case FFI_TYPE_SINT16:
- *(signed int *) argp = (signed int) *(SINT16 *) *p_argv;
- break;
-
- case FFI_TYPE_UINT16:
- *(unsigned int *) argp = (unsigned int) *(UINT16 *) *p_argv;
- break;
-
- case FFI_TYPE_STRUCT:
- memcpy (argp + sizeof (int) - z, *p_argv, z);
- break;
-
- default:
- FFI_ASSERT (0);
- }
- z = sizeof (int);
- }
- else
- memcpy (argp, *p_argv, z);
- p_argv++;
- argp += z;
- }
- }
-
- return struct_value_ptr;
-}
-
-#define CIF_FLAGS_INT 1
-#define CIF_FLAGS_DINT 2
-#define CIF_FLAGS_FLOAT 4
-#define CIF_FLAGS_DOUBLE 8
-#define CIF_FLAGS_LDOUBLE 16
-#define CIF_FLAGS_POINTER 32
-#define CIF_FLAGS_STRUCT 64
-
-/* Perform machine dependent cif processing */
-ffi_status
-ffi_prep_cif_machdep (ffi_cif *cif)
-{
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- cif->flags = 0;
- break;
-
- case FFI_TYPE_STRUCT:
- if (cif->rtype->size > 4 && cif->rtype->size <= 8)
- cif->flags = CIF_FLAGS_DINT;
- else if (cif->rtype->size <= 4)
- cif->flags = CIF_FLAGS_STRUCT;
- else
- cif->flags = 0;
- break;
-
- case FFI_TYPE_FLOAT:
- cif->flags = CIF_FLAGS_FLOAT;
- break;
-
- case FFI_TYPE_DOUBLE:
- cif->flags = CIF_FLAGS_DOUBLE;
- break;
-
- case FFI_TYPE_LONGDOUBLE:
- cif->flags = CIF_FLAGS_LDOUBLE;
- break;
-
- case FFI_TYPE_POINTER:
- cif->flags = CIF_FLAGS_POINTER;
- break;
-
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- cif->flags = CIF_FLAGS_DINT;
- break;
-
- default:
- cif->flags = CIF_FLAGS_INT;
- break;
- }
-
- return FFI_OK;
-}
-
-extern void ffi_call_SYSV (void *(*) (void *, extended_cif *),
- extended_cif *,
- unsigned, unsigned, unsigned,
- void *, void (*fn) ());
-
-void
-ffi_call (ffi_cif *cif, void (*fn) (), void *rvalue, void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return value
- address then we need to make one. */
-
- if (rvalue == NULL
- && cif->rtype->type == FFI_TYPE_STRUCT
- && cif->rtype->size > 8)
- ecif.rvalue = alloca (cif->rtype->size);
- else
- ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
- {
- case FFI_SYSV:
- ffi_call_SYSV (ffi_prep_args, &ecif, cif->bytes,
- cif->flags, cif->rtype->size * 8,
- ecif.rvalue, fn);
- break;
-
- default:
- FFI_ASSERT (0);
- break;
- }
-}
diff --git a/libffi/src/m68k/sysv.S b/libffi/src/m68k/sysv.S
deleted file mode 100644
index a925d99e3ce..00000000000
--- a/libffi/src/m68k/sysv.S
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -----------------------------------------------------------------------
- sysv.S
-
- m68k Foreign Function Interface
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
- .text
-
- .globl ffi_call_SYSV
- .type ffi_call_SYSV,@function
-
-ffi_call_SYSV:
- link %fp,#0
- move.l %d2,-(%sp)
-
- | Make room for all of the new args.
- sub.l 16(%fp),%sp
-
- | Call ffi_prep_args
- move.l 12(%fp),-(%sp)
- pea 4(%sp)
- move.l 8(%fp),%a0
- jsr (%a0)
- addq.l #8,%sp
-
- | Pass pointer to struct value, if any
- move.l %a0,%a1
-
- | Call the function
- move.l 32(%fp),%a0
- jsr (%a0)
-
- | Remove the space we pushed for the args
- add.l 16(%fp),%sp
-
- | Load the pointer to storage for the return value
- move.l 28(%fp),%a1
-
- | Load the return type code
- move.l 20(%fp),%d2
-
- | If the return value pointer is NULL, assume no return value.
- tst.l %a1
- jbeq noretval
-
- btst #0,%d2
- jbeq retlongint
- move.l %d0,(%a1)
- jbra epilogue
-
-retlongint:
- btst #1,%d2
- jbeq retfloat
- move.l %d0,(%a1)
- move.l %d1,4(%a1)
- jbra epilogue
-
-retfloat:
- btst #2,%d2
- jbeq retdouble
- fmove.s %fp0,(%a1)
- jbra epilogue
-
-retdouble:
- btst #3,%d2
- jbeq retlongdouble
- fmove.d %fp0,(%a1)
- jbra epilogue
-
-retlongdouble:
- btst #4,%d2
- jbeq retpointer
- fmove.x %fp0,(%a1)
- jbra epilogue
-
-retpointer:
- btst #5,%d2
- jbeq retstruct
- move.l %a0,(%a1)
- jbra epilogue
-
-retstruct:
- btst #6,%d2
- jbeq noretval
- move.l 24(%fp),%d2
- bfins %d0,(%a1){#0,%d2}
-
-noretval:
-epilogue:
- move.l (%sp)+,%d2
- unlk %a6
- rts
- .size ffi_call_SYSV,.-ffi_call_SYSV
diff --git a/libffi/src/mips/ffi.c b/libffi/src/mips/ffi.c
deleted file mode 100644
index f3a37bc44f2..00000000000
--- a/libffi/src/mips/ffi.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1996 Cygnus Solutions
-
- MIPS Foreign Function Interface
-
- $Id: ffi.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
-#define FIX_ARGP \
-FFI_ASSERT(argp <= &stack[bytes]); \
-if (argp == &stack[bytes]) \
-{ \
- argp = stack; \
- ffi_stop_here(); \
-}
-#else
-#define FIX_ARGP
-#endif
-
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments */
-
-static void ffi_prep_args(char *stack,
- extended_cif *ecif,
- int bytes,
- int flags)
-{
- register int i;
- register int avn;
- register void **p_argv;
- register char *argp;
- register ffi_type **p_arg;
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
- /* If more than 8 double words are used, the remainder go
- on the stack. We reorder stuff on the stack here to
- support this easily. */
- if (bytes > 8 * SIZEOF_ARG)
- argp = &stack[bytes - (8 * SIZEOF_ARG)];
- else
- argp = stack;
-#else
- argp = stack;
-#endif
-
- memset(stack, 0, bytes);
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
- if ( ecif->cif->rstruct_flag != 0 )
-#else
- if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT )
-#endif
- {
- *(SLOT_TYPE_UNSIGNED *) argp = (SLOT_TYPE_UNSIGNED) ecif->rvalue;
- argp += sizeof(SLOT_TYPE_UNSIGNED);
- FIX_ARGP;
- }
-
- avn = ecif->cif->nargs;
- p_argv = ecif->avalue;
-
- for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
- i && avn;
- i--, p_arg++)
- {
- size_t z;
-
- /* Align if necessary */
- if (((*p_arg)->alignment - 1) & (unsigned) argp) {
- argp = (char *) ALIGN(argp, (*p_arg)->alignment);
- FIX_ARGP;
- }
-
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-#define OFFSET 0
-#else
-#define OFFSET sizeof(int)
-#endif
-
- if (avn)
- {
- avn--;
- z = (*p_arg)->size;
- if (z < sizeof(SLOT_TYPE_UNSIGNED))
- {
- z = sizeof(SLOT_TYPE_UNSIGNED);
-
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(SINT32 *) &argp[OFFSET] = (SINT32)*(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(UINT32 *) &argp[OFFSET] = (UINT32)*(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(SINT32 *) &argp[OFFSET] = (SINT32)*(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(UINT32 *) &argp[OFFSET] = (UINT32)*(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT32:
- *(SINT32 *) &argp[OFFSET] = (SINT32)*(SINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT32:
- case FFI_TYPE_POINTER:
- *(UINT32 *) &argp[OFFSET] = (UINT32)*(UINT32 *)(* p_argv);
- break;
-
- /* This can only happen with 64bit slots */
- case FFI_TYPE_FLOAT:
- *(float *) argp = *(float *)(* p_argv);
- break;
-
- /* Handle small structures */
- case FFI_TYPE_STRUCT:
- memcpy(argp, *p_argv, (*p_arg)->size);
- break;
-
- default:
- FFI_ASSERT(0);
- }
- }
- else
- {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
- memcpy(argp, *p_argv, z);
-#else
- {
- unsigned end = (unsigned) argp+z;
- unsigned cap = (unsigned) stack+bytes;
-
- /* Check if the data will fit within the register
- space. Handle it if it doesn't. */
-
- if (end <= cap)
- memcpy(argp, *p_argv, z);
- else
- {
- unsigned portion = end - cap;
-
- memcpy(argp, *p_argv, portion);
- argp = stack;
- memcpy(argp,
- (void*)((unsigned)(*p_argv)+portion), z - portion);
- }
- }
-#endif
- }
- p_argv++;
- argp += z;
- FIX_ARGP;
- }
- }
-
- return;
-}
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
-
-/* The n32 spec says that if "a chunk consists solely of a double
- float field (but not a double, which is part of a union), it
- is passed in a floating point register. Any other chunk is
- passed in an integer register". This code traverses structure
- definitions and generates the appropriate flags. */
-
-unsigned calc_n32_struct_flags(ffi_type *arg, unsigned *shift)
-{
- unsigned flags = 0;
- unsigned index = 0;
-
- ffi_type *e;
-
- while (e = arg->elements[index])
- {
- if (e->type == FFI_TYPE_DOUBLE)
- {
- flags += (FFI_TYPE_DOUBLE << *shift);
- *shift += FFI_FLAG_BITS;
- }
- else if (e->type == FFI_TYPE_STRUCT)
- flags += calc_n32_struct_flags(e, shift);
- else
- *shift += FFI_FLAG_BITS;
-
- index++;
- }
-
- return flags;
-}
-
-unsigned calc_n32_return_struct_flags(ffi_type *arg)
-{
- unsigned flags = 0;
- unsigned index = 0;
- unsigned small = FFI_TYPE_SMALLSTRUCT;
- ffi_type *e;
-
- /* Returning structures under n32 is a tricky thing.
- A struct with only one or two floating point fields
- is returned in $f0 (and $f2 if necessary). Any other
- struct results at most 128 bits are returned in $2
- (the first 64 bits) and $3 (remainder, if necessary).
- Larger structs are handled normally. */
-
- if (arg->size > 16)
- return 0;
-
- if (arg->size > 8)
- small = FFI_TYPE_SMALLSTRUCT2;
-
- e = arg->elements[0];
- if (e->type == FFI_TYPE_DOUBLE)
- flags = FFI_TYPE_DOUBLE << FFI_FLAG_BITS;
- else if (e->type == FFI_TYPE_FLOAT)
- flags = FFI_TYPE_FLOAT << FFI_FLAG_BITS;
-
- if (flags && (e = arg->elements[1]))
- {
- if (e->type == FFI_TYPE_DOUBLE)
- flags += FFI_TYPE_DOUBLE;
- else if (e->type == FFI_TYPE_FLOAT)
- flags += FFI_TYPE_FLOAT;
- else
- return small;
-
- if (flags && (arg->elements[2]))
- {
- /* There are three arguments and the first two are
- floats! This must be passed the old way. */
- return small;
- }
- }
- else
- if (!flags)
- return small;
-
- return flags;
-}
-
-#endif
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
-{
- cif->flags = 0;
-
-#if _MIPS_SIM == _MIPS_SIM_ABI32
- /* Set the flags necessary for O32 processing */
-
- if (cif->rtype->type != FFI_TYPE_STRUCT)
- {
- if (cif->nargs > 0)
- {
- switch ((cif->arg_types)[0]->type)
- {
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags += (cif->arg_types)[0]->type;
- break;
-
- default:
- break;
- }
-
- if (cif->nargs > 1)
- {
- /* Only handle the second argument if the first
- is a float or double. */
- if (cif->flags)
- {
- switch ((cif->arg_types)[1]->type)
- {
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags += (cif->arg_types)[1]->type << FFI_FLAG_BITS;
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
-
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- case FFI_TYPE_STRUCT:
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags += cif->rtype->type << (FFI_FLAG_BITS * 2);
- break;
-
- default:
- cif->flags += FFI_TYPE_INT << (FFI_FLAG_BITS * 2);
- break;
- }
-#endif
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
- /* Set the flags necessary for N32 processing */
- {
- unsigned shift = 0;
- unsigned count = (cif->nargs < 8) ? cif->nargs : 8;
- unsigned index = 0;
-
- unsigned struct_flags = 0;
-
- if (cif->rtype->type == FFI_TYPE_STRUCT)
- {
- struct_flags = calc_n32_return_struct_flags(cif->rtype);
-
- if (struct_flags == 0)
- {
- /* This means that the structure is being passed as
- a hidden argument */
-
- shift = FFI_FLAG_BITS;
- count = (cif->nargs < 7) ? cif->nargs : 7;
-
- cif->rstruct_flag = !0;
- }
- else
- cif->rstruct_flag = 0;
- }
- else
- cif->rstruct_flag = 0;
-
- while (count-- > 0)
- {
- switch ((cif->arg_types)[index]->type)
- {
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags += ((cif->arg_types)[index]->type << shift);
- shift += FFI_FLAG_BITS;
- break;
-
- case FFI_TYPE_STRUCT:
- cif->flags += calc_n32_struct_flags((cif->arg_types)[index],
- &shift);
- break;
-
- default:
- shift += FFI_FLAG_BITS;
- }
-
- index++;
- }
-
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_STRUCT:
- {
- if (struct_flags == 0)
- {
- /* The structure is returned through a hidden
- first argument. Do nothing, 'cause FFI_TYPE_VOID
- is 0 */
- }
- else
- {
- /* The structure is returned via some tricky
- mechanism */
- cif->flags += FFI_TYPE_STRUCT << (FFI_FLAG_BITS * 8);
- cif->flags += struct_flags << (4 + (FFI_FLAG_BITS * 8));
- }
- break;
- }
-
- case FFI_TYPE_VOID:
- /* Do nothing, 'cause FFI_TYPE_VOID is 0 */
- break;
-
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- cif->flags += cif->rtype->type << (FFI_FLAG_BITS * 8);
- break;
-
- default:
- cif->flags += FFI_TYPE_INT << (FFI_FLAG_BITS * 8);
- break;
- }
- }
-#endif
-
- return FFI_OK;
-}
-
-/* Low level routine for calling O32 functions */
-extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int),
- extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
-
-/* Low level routine for calling N32 functions */
-extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int),
- extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
-
-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- if ((rvalue == NULL) &&
- (cif->rtype->type == FFI_TYPE_STRUCT))
- ecif.rvalue = alloca(cif->rtype->size);
- else
- ecif.rvalue = rvalue;
-
- switch (cif->abi)
- {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
- case FFI_O32:
- ffi_call_O32(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, ecif.rvalue, fn);
- break;
-#endif
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
- case FFI_N32:
- ffi_call_N32(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, ecif.rvalue, fn);
- break;
-#endif
-
- default:
- FFI_ASSERT(0);
- break;
- }
-}
diff --git a/libffi/src/mips/n32.S b/libffi/src/mips/n32.S
deleted file mode 100644
index 799bc7cc872..00000000000
--- a/libffi/src/mips/n32.S
+++ /dev/null
@@ -1,320 +0,0 @@
-/* -----------------------------------------------------------------------
- n32.S - Copyright (c) 1996, 1998 Cygnus Solutions
-
- MIPS Foreign Function Interface
-
- $Id: n32.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-/* Only build this code if we are compiling for n32 */
-
-#if defined(FFI_MIPS_N32)
-
-#define callback a0
-#define bytes a2
-#define flags a3
-#define raddr a4
-#define fn a5
-
-#define SIZEOF_FRAME ( 8 * SIZEOF_ARG )
-
- .text
- .align 2
- .globl ffi_call_N32
- .ent ffi_call_N32
-ffi_call_N32:
-
- # Prologue
- SUBU $sp, SIZEOF_FRAME # Frame size
- REG_S $fp, SIZEOF_FRAME - 2*SIZEOF_ARG($sp) # Save frame pointer
- REG_S ra, SIZEOF_FRAME - 1*SIZEOF_ARG($sp) # Save return address
- move $fp, $sp
-
- move t9, callback # callback function pointer
- REG_S bytes, 2*SIZEOF_ARG($fp) # bytes
- REG_S flags, 3*SIZEOF_ARG($fp) # flags
- REG_S raddr, 4*SIZEOF_ARG($fp) # raddr
- REG_S fn, 5*SIZEOF_ARG($fp) # fn
-
- # Allocate at least 4 words in the argstack
- move v0, bytes
- bge bytes, 4 * SIZEOF_ARG, bigger
- LI v0, 4 * SIZEOF_ARG
- b sixteen
-
- bigger:
- ADDU t4, v0, 2 * SIZEOF_ARG -1 # make sure it is aligned
- and v0, t4, -2 * SIZEOF_ARG # to a proper boundry.
-
-sixteen:
- SUBU $sp, $sp, v0 # move the stack pointer to reflect the
- # arg space
-
- ADDU a0, $sp, 0 # 4 * SIZEOF_ARG
- ADDU a3, $fp, 3 * SIZEOF_ARG
-
- # Call ffi_prep_args
- jal t9
-
- # ADDU $sp, $sp, 4 * SIZEOF_ARG # adjust $sp to new args
-
- # Copy the stack pointer to t9
- move t9, $sp
-
- # Fix the stack if there are more than 8 64bit slots worth
- # of arguments.
-
- # Load the number of bytes
- REG_L t6, 2*SIZEOF_ARG($fp)
-
- # Is it bigger than 8 * SIZEOF_ARG?
- dadd t7, $0, 8 * SIZEOF_ARG
- dsub t8, t6, t7
- bltz t8, loadregs
-
- add t9, t9, t8
-
-loadregs:
-
- REG_L t4, 3*SIZEOF_ARG($fp) # load the flags word
- add t6, t4, 0 # and copy it into t6
-
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg1_floatp
- REG_L a0, 0*SIZEOF_ARG(t9)
- b arg1_next
-arg1_floatp:
- bne t4, FFI_TYPE_FLOAT, arg1_doublep
- l.s $f12, 0*SIZEOF_ARG(t9)
- b arg1_next
-arg1_doublep:
- l.d $f12, 0*SIZEOF_ARG(t9)
-arg1_next:
-
- add t4, t6, 0
- SRL t4, 1*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg2_floatp
- REG_L a1, 1*SIZEOF_ARG(t9)
- b arg2_next
-arg2_floatp:
- bne t4, FFI_TYPE_FLOAT, arg2_doublep
- l.s $f13, 1*SIZEOF_ARG(t9)
- b arg2_next
-arg2_doublep:
- l.d $f13, 1*SIZEOF_ARG(t9)
-arg2_next:
-
- add t4, t6, 0
- SRL t4, 2*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg3_floatp
- REG_L a2, 2*SIZEOF_ARG(t9)
- b arg3_next
-arg3_floatp:
- bne t4, FFI_TYPE_FLOAT, arg3_doublep
- l.s $f14, 2*SIZEOF_ARG(t9)
- b arg3_next
-arg3_doublep:
- l.d $f14, 2*SIZEOF_ARG(t9)
-arg3_next:
-
- add t4, t6, 0
- SRL t4, 3*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg4_floatp
- REG_L a3, 3*SIZEOF_ARG(t9)
- b arg4_next
-arg4_floatp:
- bne t4, FFI_TYPE_FLOAT, arg4_doublep
- l.s $f15, 3*SIZEOF_ARG(t9)
- b arg4_next
-arg4_doublep:
- l.d $f15, 3*SIZEOF_ARG(t9)
-arg4_next:
-
- add t4, t6, 0
- SRL t4, 4*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg5_floatp
- REG_L a4, 4*SIZEOF_ARG(t9)
- b arg5_next
-arg5_floatp:
- bne t4, FFI_TYPE_FLOAT, arg5_doublep
- l.s $f16, 4*SIZEOF_ARG(t9)
- b arg5_next
-arg5_doublep:
- l.d $f16, 4*SIZEOF_ARG(t9)
-arg5_next:
-
- add t4, t6, 0
- SRL t4, 5*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg6_floatp
- REG_L a5, 5*SIZEOF_ARG(t9)
- b arg6_next
-arg6_floatp:
- bne t4, FFI_TYPE_FLOAT, arg6_doublep
- l.s $f17, 5*SIZEOF_ARG(t9)
- b arg6_next
-arg6_doublep:
- l.d $f17, 5*SIZEOF_ARG(t9)
-arg6_next:
-
- add t4, t6, 0
- SRL t4, 6*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg7_floatp
- REG_L a6, 6*SIZEOF_ARG(t9)
- b arg7_next
-arg7_floatp:
- bne t4, FFI_TYPE_FLOAT, arg7_doublep
- l.s $f18, 6*SIZEOF_ARG(t9)
- b arg7_next
-arg7_doublep:
- l.d $f18, 6*SIZEOF_ARG(t9)
-arg7_next:
-
- add t4, t6, 0
- SRL t4, 7*FFI_FLAG_BITS
- and t4, ((1<<FFI_FLAG_BITS)-1)
- bnez t4, arg8_floatp
- REG_L a7, 7*SIZEOF_ARG(t9)
- b arg8_next
-arg8_floatp:
- bne t4, FFI_TYPE_FLOAT, arg8_doublep
- l.s $f19, 7*SIZEOF_ARG(t9)
- b arg8_next
-arg8_doublep:
- l.d $f19, 7*SIZEOF_ARG(t9)
-arg8_next:
-
-callit:
- # Load the function pointer
- REG_L t9, 5*SIZEOF_ARG($fp)
-
- # If the return value pointer is NULL, assume no return value.
- REG_L t5, 4*SIZEOF_ARG($fp)
- beqz t5, noretval
-
- # Shift the return type flag over
- SRL t6, 8*FFI_FLAG_BITS
-
- bne t6, FFI_TYPE_INT, retfloat
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- REG_S v0, 0(t4)
- b epilogue
-
-retfloat:
- bne t6, FFI_TYPE_FLOAT, retdouble
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.s $f0, 0(t4)
- b epilogue
-
-retdouble:
- bne t6, FFI_TYPE_DOUBLE, retstruct_d
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.d $f0, 0(t4)
- b epilogue
-
-retstruct_d:
- bne t6, FFI_TYPE_STRUCT_D, retstruct_f
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.d $f0, 0(t4)
- b epilogue
-
-retstruct_f:
- bne t6, FFI_TYPE_STRUCT_F, retstruct_d_d
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.s $f0, 0(t4)
- b epilogue
-
-retstruct_d_d:
- bne t6, FFI_TYPE_STRUCT_DD, retstruct_f_f
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.d $f0, 0(t4)
- s.d $f2, 8(t4)
- b epilogue
-
-retstruct_f_f:
- bne t6, FFI_TYPE_STRUCT_FF, retstruct_d_f
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.s $f0, 0(t4)
- s.s $f2, 4(t4)
- b epilogue
-
-retstruct_d_f:
- bne t6, FFI_TYPE_STRUCT_DF, retstruct_f_d
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.d $f0, 0(t4)
- s.s $f2, 8(t4)
- b epilogue
-
-retstruct_f_d:
- bne t6, FFI_TYPE_STRUCT_FD, retstruct_small
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- s.s $f0, 0(t4)
- s.d $f2, 8(t4)
- b epilogue
-
-retstruct_small:
- bne t6, FFI_TYPE_STRUCT_SMALL, retstruct_small2
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- REG_S v0, 0(t4)
- b epilogue
-
-retstruct_small2:
- bne t6, FFI_TYPE_STRUCT_SMALL2, retstruct
- jal t9
- REG_L t4, 4*SIZEOF_ARG($fp)
- REG_S v0, 0(t4)
- REG_S v1, 8(t4)
- b epilogue
-
-retstruct:
-noretval:
- jal t9
-
- # Epilogue
-epilogue:
- move $sp, $fp
- REG_L $fp, SIZEOF_FRAME - 2*SIZEOF_ARG($sp) # Restore frame pointer
- REG_L ra, SIZEOF_FRAME - 1*SIZEOF_ARG($sp) # Restore return address
- ADDU $sp, SIZEOF_FRAME # Fix stack pointer
- j ra
-
- .end ffi_call_N32
-
-#endif
diff --git a/libffi/src/mips/n32.s b/libffi/src/mips/n32.s
deleted file mode 100644
index 007f0a825b0..00000000000
--- a/libffi/src/mips/n32.s
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "n32.S"
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libffi/src/mips/o32.S b/libffi/src/mips/o32.S
deleted file mode 100644
index 771e8b04451..00000000000
--- a/libffi/src/mips/o32.S
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -----------------------------------------------------------------------
- o32.S - Copyright (c) 1996, 1998 Cygnus Solutions
-
- MIPS Foreign Function Interface
-
- $Id: o32.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-/* Only build this code if we are compiling for o32 */
-
-#if defined(FFI_MIPS_O32)
-
-#define callback a0
-#define bytes a2
-#define flags a3
-
-#define SIZEOF_FRAME ( 4 * SIZEOF_ARG + 2 * SIZEOF_ARG )
-
- .text
- .align 2
- .globl ffi_call_O32
- .ent ffi_call_O32
-ffi_call_O32:
-
- # Prologue
- SUBU $sp, SIZEOF_FRAME # Frame size
- REG_S $fp, SIZEOF_FRAME - 2*SIZEOF_ARG($sp) # Save frame pointer
- REG_S ra, SIZEOF_FRAME - 1*SIZEOF_ARG($sp) # Save return address
- move $fp, $sp
-
- move t9, callback # callback function pointer
- REG_S flags, SIZEOF_FRAME + 3*SIZEOF_ARG($fp) # flags
-
- # Allocate at least 4 words in the argstack
- move v0, bytes
- bge bytes, 4 * SIZEOF_ARG, bigger
- LI v0, 4 * SIZEOF_ARG
- b sixteen
-
-bigger:
- ADDU t0, v0, 2 * SIZEOF_ARG -1 # make sure it is aligned
- and v0, t0, -2 * SIZEOF_ARG # to an 8 byte boundry
-
-sixteen:
- SUBU $sp, $sp, v0 # move the stack pointer to reflect the
- # arg space
-
- ADDU a0, $sp, 4 * SIZEOF_ARG
- ADDU a3, $fp, SIZEOF_FRAME + 3*SIZEOF_ARG
-
- jal t9
-
- REG_L t0, SIZEOF_FRAME + 3*SIZEOF_ARG($fp) # load the flags word
- add t2, t0, 0 # and copy it into t2
-
- and t0, ((1<<4)-1) # mask out the return type
- SRL t2, 4 # shift our arg info
-
- ADDU $sp, $sp, 4 * SIZEOF_ARG # adjust $sp to new args
-
- bnez t0, pass_d # make it quick for int
- REG_L a0, 0*SIZEOF_ARG($sp) # just go ahead and load the
- REG_L a1, 1*SIZEOF_ARG($sp) # four regs.
- REG_L a2, 2*SIZEOF_ARG($sp)
- REG_L a3, 3*SIZEOF_ARG($sp)
- b call_it
-
-pass_d:
- bne t0, FFI_ARGS_D, pass_f
- l.d $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- REG_L a2, 2*SIZEOF_ARG($sp) # passing a double
- REG_L a3, 3*SIZEOF_ARG($sp)
- b call_it
-
-pass_f:
- bne t0, FFI_ARGS_F, pass_d_d
- l.s $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- REG_L a1, 1*SIZEOF_ARG($sp) # passing a float
- REG_L a2, 2*SIZEOF_ARG($sp)
- REG_L a3, 3*SIZEOF_ARG($sp)
- b call_it
-
-pass_d_d:
- bne t0, FFI_ARGS_DD, pass_f_f
- l.d $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- l.d $f14, 2*SIZEOF_ARG($sp) # passing two doubles
- b call_it
-
-pass_f_f:
- bne t0, FFI_ARGS_FF, pass_d_f
- l.s $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- l.s $f14, 1*SIZEOF_ARG($sp) # passing two floats
- REG_L a2, 2*SIZEOF_ARG($sp)
- REG_L a3, 3*SIZEOF_ARG($sp)
- b call_it
-
-pass_d_f:
- bne t0, FFI_ARGS_DF, pass_f_d
- l.d $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- l.s $f14, 2*SIZEOF_ARG($sp) # passing double and float
- REG_L a3, 3*SIZEOF_ARG($sp)
- b call_it
-
-pass_f_d:
- # assume that the only other combination must be float then double
- # bne t0, FFI_ARGS_F_D, call_it
- l.s $f12, 0*SIZEOF_ARG($sp) # load $fp regs from args
- l.d $f14, 2*SIZEOF_ARG($sp) # passing double and float
-
-call_it:
- # Load the function pointer
- REG_L t9, SIZEOF_FRAME + 5*SIZEOF_ARG($fp)
-
- # If the return value pointer is NULL, assume no return value.
- REG_L t1, SIZEOF_FRAME + 4*SIZEOF_ARG($fp)
- beqz t1, noretval
-
- bne t2, FFI_TYPE_INT, retfloat
- jal t9
- REG_L t0, SIZEOF_FRAME + 4*SIZEOF_ARG($fp)
- REG_S v0, 0(t0)
- b epilogue
-
-retfloat:
- bne t2, FFI_TYPE_FLOAT, retdouble
- jal t9
- REG_L t0, SIZEOF_FRAME + 4*SIZEOF_ARG($fp)
- s.s $f0, 0(t0)
- b epilogue
-
-retdouble:
- bne t2, FFI_TYPE_DOUBLE, noretval
- jal t9
- REG_L t0, SIZEOF_FRAME + 4*SIZEOF_ARG($fp)
- s.d $f0, 0(t0)
- b epilogue
-
-noretval:
- jal t9
-
- # Epilogue
-epilogue:
- move $sp, $fp
- REG_L $fp, SIZEOF_FRAME - 2*SIZEOF_ARG($sp) # Restore frame pointer
- REG_L ra, SIZEOF_FRAME - 1*SIZEOF_ARG($sp) # Restore return address
- ADDU $sp, SIZEOF_FRAME # Fix stack pointer
- j ra
-
- .end ffi_call_O32
-
-#endif
diff --git a/libffi/src/mips/o32.s b/libffi/src/mips/o32.s
deleted file mode 100644
index ff505a1ede1..00000000000
--- a/libffi/src/mips/o32.s
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "o32.S"
-
diff --git a/libffi/src/powerpc/asm.h b/libffi/src/powerpc/asm.h
deleted file mode 100644
index 2ccdc020f58..00000000000
--- a/libffi/src/powerpc/asm.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* -----------------------------------------------------------------------
- asm.h - Copyright (c) 1998 Geoffrey Keating
-
- PowerPC Assembly glue.
-
- $Id: asm.h,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define ASM_GLOBAL_DIRECTIVE .globl
-
-
-#define C_SYMBOL_NAME(name) name
-/* Macro for a label. */
-#ifdef __STDC__
-#define C_LABEL(name) name##:
-#else
-#define C_LABEL(name) name/**/:
-#endif
-
-/* This seems to always be the case on PPC. */
-#define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right. */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-/* If compiled for profiling, call `_mcount' at the start of each function. */
-#ifdef PROF
-/* The mcount code relies on a the return address being on the stack
- to locate our caller and so it can restore it; so store one just
- for its benefit. */
-#ifdef PIC
-#define CALL_MCOUNT \
- .pushsection; \
- .section ".data"; \
- .align ALIGNARG(2); \
-0:.long 0; \
- .previous; \
- mflr %r0; \
- stw %r0,4(%r1); \
- bl _GLOBAL_OFFSET_TABLE_@local-4; \
- mflr %r11; \
- lwz %r0,0b@got(%r11); \
- bl JUMPTARGET(_mcount);
-#else /* PIC */
-#define CALL_MCOUNT \
- .section ".data"; \
- .align ALIGNARG(2); \
-0:.long 0; \
- .previous; \
- mflr %r0; \
- lis %r11,0b@ha; \
- stw %r0,4(%r1); \
- addi %r0,%r11,0b@l; \
- bl JUMPTARGET(_mcount);
-#endif /* PIC */
-#else /* PROF */
-#define CALL_MCOUNT /* Do nothing. */
-#endif /* PROF */
-
-#define ENTRY(name) \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
- .align ALIGNARG(2); \
- C_LABEL(name) \
- CALL_MCOUNT
-
-#define EALIGN_W_0 /* No words to insert. */
-#define EALIGN_W_1 nop
-#define EALIGN_W_2 nop;nop
-#define EALIGN_W_3 nop;nop;nop
-#define EALIGN_W_4 EALIGN_W_3;nop
-#define EALIGN_W_5 EALIGN_W_4;nop
-#define EALIGN_W_6 EALIGN_W_5;nop
-#define EALIGN_W_7 EALIGN_W_6;nop
-
-/* EALIGN is like ENTRY, but does alignment to 'words'*4 bytes
- past a 2^align boundary. */
-#ifdef PROF
-#define EALIGN(name, alignt, words) \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
- .align ALIGNARG(2); \
- C_LABEL(name) \
- CALL_MCOUNT \
- b 0f; \
- .align ALIGNARG(alignt); \
- EALIGN_W_##words; \
- 0:
-#else /* PROF */
-#define EALIGN(name, alignt, words) \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
- .align ALIGNARG(alignt); \
- EALIGN_W_##words; \
- C_LABEL(name)
-#endif
-
-#define END(name) \
- ASM_SIZE_DIRECTIVE(name)
-
-#ifdef PIC
-#define JUMPTARGET(name) name##@plt
-#else
-#define JUMPTARGET(name) name
-#endif
-
-/* Local labels stripped out by the linker. */
-#define L(x) .L##x
-
diff --git a/libffi/src/powerpc/ffi.c b/libffi/src/powerpc/ffi.c
deleted file mode 100644
index 6d12d653baa..00000000000
--- a/libffi/src/powerpc/ffi.c
+++ /dev/null
@@ -1,423 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998 Geoffrey Keating
-
- PowerPC Foreign Function Interface
-
- $Id: ffi.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-enum {
- /* The assembly depends on these exact flags. */
- FLAG_RETURNS_NOTHING = 1 << (31-30), /* These go in cr7 */
- FLAG_RETURNS_FP = 1 << (31-29),
- FLAG_RETURNS_64BITS = 1 << (31-28),
-
- FLAG_ARG_NEEDS_COPY = 1 << (31- 7),
- FLAG_FP_ARGUMENTS = 1 << (31- 6), /* cr1.eq; specified by ABI */
- FLAG_4_GPR_ARGUMENTS = 1 << (31- 5),
- FLAG_RETVAL_REFERENCE = 1 << (31- 4)
-};
-
-/* About the SYSV ABI. */
-enum {
- NUM_GPR_ARG_REGISTERS = 8,
- NUM_FPR_ARG_REGISTERS = 8
-};
-enum { ASM_NEEDS_REGISTERS = 4 };
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments.
-
- The stack layout we want looks like this:
-
- | Return address from ffi_call_SYSV 4bytes | higher addresses
- |--------------------------------------------|
- | Previous backchain pointer 4 | stack pointer here
- |--------------------------------------------|<+ <<< on entry to
- | Saved r28-r31 4*4 | | ffi_call_SYSV
- |--------------------------------------------| |
- | GPR registers r3-r10 8*4 | | ffi_call_SYSV
- |--------------------------------------------| |
- | FPR registers f1-f8 (optional) 8*8 | |
- |--------------------------------------------| | stack |
- | Space for copied structures | | grows |
- |--------------------------------------------| | down V
- | Parameters that didn't fit in registers | |
- |--------------------------------------------| | lower addresses
- | Space for callee's LR 4 | |
- |--------------------------------------------| | stack pointer here
- | Current backchain pointer 4 |-/ during
- |--------------------------------------------| <<< ffi_call_SYSV
-
- */
-
-/*@-exportheader@*/
-void ffi_prep_args(extended_cif *ecif, unsigned *const stack)
-/*@=exportheader@*/
-{
- const unsigned bytes = ecif->cif->bytes;
- const unsigned flags = ecif->cif->flags;
-
- /* 'stacktop' points at the previous backchain pointer. */
- unsigned *const stacktop = stack + (ecif->cif->bytes / sizeof(unsigned));
-
- /* 'gpr_base' points at the space for gpr3, and grows upwards as
- we use GPR registers. */
- unsigned *gpr_base = stacktop - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS;
- int intarg_count = 0;
-
- /* 'fpr_base' points at the space for fpr1, and grows upwards as
- we use FPR registers. */
- double *fpr_base = (double *)gpr_base - NUM_FPR_ARG_REGISTERS;
- int fparg_count = 0;
-
- /* 'copy_space' grows down as we put structures in it. It should
- stay 16-byte aligned. */
- char *copy_space = ((flags & FLAG_FP_ARGUMENTS)
- ? (char *)fpr_base
- : (char *)gpr_base);
-
- /* 'next_arg' grows up as we put parameters in it. */
- unsigned *next_arg = stack + 2;
-
- int i;
- ffi_type **ptr;
- double double_tmp;
- void **p_argv;
- size_t struct_copy_size;
- unsigned gprvalue;
-
- /* Check that everything starts aligned properly. */
- FFI_ASSERT(((unsigned)(char *)stack & 0xF) == 0);
- FFI_ASSERT(((unsigned)(char *)copy_space & 0xF) == 0);
- FFI_ASSERT(((unsigned)(char *)stacktop & 0xF) == 0);
- FFI_ASSERT((bytes & 0xF) == 0);
- FFI_ASSERT(copy_space >= (char *)next_arg);
-
- /* Deal with return values that are actually pass-by-reference. */
- if (flags & FLAG_RETVAL_REFERENCE)
- {
- *gpr_base++ = (unsigned)(char *)ecif->rvalue;
- intarg_count++;
- }
-
- /* Now for the arguments. */
- p_argv = ecif->avalue;
- for (ptr = ecif->cif->arg_types, i = ecif->cif->nargs;
- i > 0;
- i--, ptr++, p_argv++)
- {
- switch ((*ptr)->type)
- {
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- if ((*ptr)->type == FFI_TYPE_FLOAT)
- double_tmp = *(float *)*p_argv;
- else
- double_tmp = *(double *)*p_argv;
-
- if (fparg_count >= NUM_FPR_ARG_REGISTERS)
- {
- if (intarg_count%2 != 0)
- {
- intarg_count++;
- next_arg++;
- }
- *(double *)next_arg = double_tmp;
- next_arg += 2;
- }
- else
- *fpr_base++ = double_tmp;
- fparg_count++;
- FFI_ASSERT(flags & FLAG_FP_ARGUMENTS);
- break;
-
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- if (intarg_count == NUM_GPR_ARG_REGISTERS-1)
- intarg_count++;
- if (intarg_count >= NUM_GPR_ARG_REGISTERS)
- {
- if (intarg_count%2 != 0)
- {
- intarg_count++;
- next_arg++;
- }
- *(long long *)next_arg = *(long long *)*p_argv;
- next_arg += 2;
- }
- else
- {
- *(long long *)gpr_base = *(long long *)*p_argv;
- gpr_base += 2;
- }
- intarg_count += 2;
- break;
-
- case FFI_TYPE_STRUCT:
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- struct_copy_size = ((*ptr)->size + 15) & ~0xF;
- copy_space -= struct_copy_size;
- memcpy(copy_space, (char *)*p_argv, (*ptr)->size);
-
- gprvalue = (unsigned)copy_space;
-
- FFI_ASSERT(copy_space > (char *)next_arg);
- FFI_ASSERT(flags & FLAG_ARG_NEEDS_COPY);
- goto putgpr;
-
- case FFI_TYPE_UINT8:
- gprvalue = *(unsigned char *)*p_argv;
- goto putgpr;
- case FFI_TYPE_SINT8:
- gprvalue = *(signed char *)*p_argv;
- goto putgpr;
- case FFI_TYPE_UINT16:
- gprvalue = *(unsigned short *)*p_argv;
- goto putgpr;
- case FFI_TYPE_SINT16:
- gprvalue = *(signed short *)*p_argv;
- goto putgpr;
-
- case FFI_TYPE_INT:
- case FFI_TYPE_UINT32:
- case FFI_TYPE_SINT32:
- case FFI_TYPE_POINTER:
- gprvalue = *(unsigned *)*p_argv;
- putgpr:
- if (intarg_count >= NUM_GPR_ARG_REGISTERS)
- *next_arg++ = gprvalue;
- else
- *gpr_base++ = gprvalue;
- intarg_count++;
- break;
- }
- }
-
- /* Check that we didn't overrun the stack... */
- FFI_ASSERT(copy_space >= (char *)next_arg);
- FFI_ASSERT(gpr_base <= stacktop - ASM_NEEDS_REGISTERS);
- FFI_ASSERT((unsigned *)fpr_base
- <= stacktop - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS);
- FFI_ASSERT(flags & FLAG_4_GPR_ARGUMENTS || intarg_count <= 4);
-}
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
-{
- /* All this is for the SYSV ABI. */
- int i;
- ffi_type **ptr;
- unsigned bytes;
- int fparg_count = 0, intarg_count = 0;
- unsigned flags = 0;
- unsigned struct_copy_size = 0;
-
- /* All the machine-independent calculation of cif->bytes will be wrong.
- Redo the calculation for SYSV. */
-
- /* Space for the frame pointer, callee's LR, and the asm's temp regs. */
- bytes = (2 + ASM_NEEDS_REGISTERS) * sizeof(int);
-
- /* Space for the GPR registers. */
- bytes += NUM_GPR_ARG_REGISTERS * sizeof(int);
-
- /* Return value handling. The rules are as follows:
- - 32-bit (or less) integer values are returned in gpr3;
- - Structures of size <= 4 bytes also returned in gpr3;
- - 64-bit integer values and structures between 5 and 8 bytes are returned
- in gpr3 and gpr4;
- - Single/double FP values are returned in fpr1;
- - Larger structures and long double (if not equivalent to double) values
- are allocated space and a pointer is passed as the first argument. */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_DOUBLE:
- flags |= FLAG_RETURNS_64BITS;
- /* Fall through. */
- case FFI_TYPE_FLOAT:
- flags |= FLAG_RETURNS_FP;
- break;
-
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- flags |= FLAG_RETURNS_64BITS;
- break;
-
- case FFI_TYPE_STRUCT:
- if (cif->abi != FFI_GCC_SYSV)
- if (cif->rtype->size <= 4)
- break;
- else if (cif->rtype->size <= 8)
- {
- flags |= FLAG_RETURNS_64BITS;
- break;
- }
- /* else fall through. */
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- intarg_count++;
- flags |= FLAG_RETVAL_REFERENCE;
- /* Fall through. */
- case FFI_TYPE_VOID:
- flags |= FLAG_RETURNS_NOTHING;
- break;
-
- default:
- /* Returns 32-bit integer, or similar. Nothing to do here. */
- break;
- }
-
- /* The first NUM_GPR_ARG_REGISTERS words of integer arguments, and the
- first NUM_FPR_ARG_REGISTERS fp arguments, go in registers; the rest
- goes on the stack. Structures and long doubles (if not equivalent
- to double) are passed as a pointer to a copy of the structure.
- Stuff on the stack needs to keep proper alignment. */
- for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++)
- {
- switch ((*ptr)->type)
- {
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- fparg_count++;
- /* If this FP arg is going on the stack, it must be
- 8-byte-aligned. */
- if (fparg_count > NUM_FPR_ARG_REGISTERS
- && intarg_count%2 != 0)
- intarg_count++;
- break;
-
- case FFI_TYPE_UINT64:
- case FFI_TYPE_SINT64:
- /* 'long long' arguments are passed as two words, but
- either both words must fit in registers or both go
- on the stack. If they go on the stack, they must
- be 8-byte-aligned. */
- if (intarg_count == NUM_GPR_ARG_REGISTERS-1
- || intarg_count >= NUM_GPR_ARG_REGISTERS && intarg_count%2 != 0)
- intarg_count++;
- intarg_count += 2;
- break;
-
- case FFI_TYPE_STRUCT:
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- /* We must allocate space for a copy of these to enforce
- pass-by-value. Pad the space up to a multiple of 16
- bytes (the maximum alignment required for anything under
- the SYSV ABI). */
- struct_copy_size += ((*ptr)->size + 15) & ~0xF;
- /* Fall through (allocate space for the pointer). */
-
- default:
- /* Everything else is passed as a 4-byte word in a GPR, either
- the object itself or a pointer to it. */
- intarg_count++;
- break;
- }
- }
-
- if (fparg_count != 0)
- flags |= FLAG_FP_ARGUMENTS;
- if (intarg_count > 4)
- flags |= FLAG_4_GPR_ARGUMENTS;
- if (struct_copy_size != 0)
- flags |= FLAG_ARG_NEEDS_COPY;
-
- /* Space for the FPR registers, if needed. */
- if (fparg_count != 0)
- bytes += NUM_FPR_ARG_REGISTERS * sizeof(double);
-
- /* Stack space. */
- if (intarg_count > NUM_GPR_ARG_REGISTERS)
- bytes += (intarg_count - NUM_GPR_ARG_REGISTERS) * sizeof(int);
- if (fparg_count > NUM_FPR_ARG_REGISTERS)
- bytes += (fparg_count - NUM_FPR_ARG_REGISTERS) * sizeof(double);
-
- /* The stack space allocated needs to be a multiple of 16 bytes. */
- bytes = (bytes + 15) & ~0xF;
-
- /* Add in the space for the copied structures. */
- bytes += struct_copy_size;
-
- cif->flags = flags;
- cif->bytes = bytes;
-
- return FFI_OK;
-}
-
-/*@-declundef@*/
-/*@-exportheader@*/
-extern void ffi_call_SYSV(/*@out@*/ extended_cif *,
- unsigned, unsigned,
- /*@out@*/ unsigned *,
- void (*fn)());
-/*@=declundef@*/
-/*@=exportheader@*/
-
-void ffi_call(/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- if ((rvalue == NULL) &&
- (cif->rtype->type == FFI_TYPE_STRUCT))
- {
- /*@-sysunrecog@*/
- ecif.rvalue = alloca(cif->rtype->size);
- /*@=sysunrecog@*/
- }
- else
- ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
- {
- case FFI_SYSV:
- case FFI_GCC_SYSV:
- /*@-usedef@*/
- ffi_call_SYSV(&ecif, -cif->bytes,
- cif->flags, ecif.rvalue, fn);
- /*@=usedef@*/
- break;
- default:
- FFI_ASSERT(0);
- break;
- }
-}
diff --git a/libffi/src/powerpc/sysv.S b/libffi/src/powerpc/sysv.S
deleted file mode 100644
index 88b037844f3..00000000000
--- a/libffi/src/powerpc/sysv.S
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -----------------------------------------------------------------------
- sysv.h - Copyright (c) 1998 Geoffrey Keating
-
- PowerPC Assembly glue.
-
- $Id: sysv.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-#include <powerpc/asm.h>
-
- .globl ffi_prep_args
-ENTRY(ffi_call_SYSV)
- /* Save the old stack pointer as AP. */
- mr %r8,%r1
-
- /* Allocate the stack space we need. */
- stwux %r1,%r1,%r4
- /* Save registers we use. */
- mflr %r9
- stw %r28,-16(%r8)
- stw %r29,-12(%r8)
- stw %r30, -8(%r8)
- stw %r31, -4(%r8)
- stw %r9, 4(%r8)
-
- /* Save arguments over call... */
- mr %r31,%r5 /* flags, */
- mr %r30,%r6 /* rvalue, */
- mr %r29,%r7 /* function address, */
- mr %r28,%r8 /* our AP. */
-
- /* Call ffi_prep_args. */
- mr %r4,%r1
- bl JUMPTARGET(ffi_prep_args)
-
- /* Now do the call. */
- /* Set up cr1 with bits 4-7 of the flags. */
- mtcrf 0x40,%r31
- /* Get the address to call into CTR. */
- mtctr %r29
- /* Load all those argument registers. */
- lwz %r3,-16-(8*4)(%r28)
- lwz %r4,-16-(7*4)(%r28)
- lwz %r5,-16-(6*4)(%r28)
- lwz %r6,-16-(5*4)(%r28)
- bf- 5,1f
- nop
- lwz %r7,-16-(4*4)(%r28)
- lwz %r8,-16-(3*4)(%r28)
- lwz %r9,-16-(2*4)(%r28)
- lwz %r10,-16-(1*4)(%r28)
- nop
-1:
-
- /* Load all the FP registers. */
- bf- 6,2f
- lfd %f1,-16-(8*4)-(8*8)(%r28)
- lfd %f2,-16-(8*4)-(7*8)(%r28)
- lfd %f3,-16-(8*4)-(6*8)(%r28)
- lfd %f4,-16-(8*4)-(5*8)(%r28)
- nop
- lfd %f5,-16-(8*4)-(4*8)(%r28)
- lfd %f6,-16-(8*4)-(3*8)(%r28)
- lfd %f7,-16-(8*4)-(2*8)(%r28)
- lfd %f8,-16-(8*4)-(1*8)(%r28)
-2:
-
- /* Make the call. */
- bctrl
-
- /* Now, deal with the return value. */
- mtcrf 0x01,%r31
- bt- 30,L(done_return_value)
- bt- 29,L(fp_return_value)
- stw %r3,0(%r30)
- bf+ 28,L(done_return_value)
- stw %r4,4(%r30)
- /* Fall through... */
-
-L(done_return_value):
- /* Restore the registers we used and return. */
- lwz %r9, 4(%r28)
- lwz %r31, -4(%r28)
- mtlr %r9
- lwz %r30, -8(%r28)
- lwz %r29,-12(%r28)
- lwz %r28,-16(%r28)
- lwz %r1,0(%r1)
- blr
-
-L(fp_return_value):
- bf 28,L(float_return_value)
- stfd %f1,0(%r30)
- b L(done_return_value)
-L(float_return_value):
- stfs %f1,0(%r30)
- b L(done_return_value)
-END(ffi_call_SYSV)
diff --git a/libffi/src/prep_cif.c b/libffi/src/prep_cif.c
deleted file mode 100644
index 3f21411a6cb..00000000000
--- a/libffi/src/prep_cif.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -----------------------------------------------------------------------
- prep_cif.c - Copyright (c) 1996, 1998 Cygnus Solutions
-
- $Id: prep_cif.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-#include <stdlib.h>
-
-
-/* Round up to SIZEOF_ARG. */
-
-#define STACK_ARG_SIZE(x) ALIGN(x, SIZEOF_ARG)
-
-/* Perform machine independent initialization of aggregate type
- specifications. */
-
-static ffi_status initialize_aggregate(/*@out@*/ ffi_type *arg)
-{
- ffi_type **ptr;
-
- FFI_ASSERT(arg != NULL);
-
- /*@-usedef@*/
-
- FFI_ASSERT(arg->elements != NULL);
- FFI_ASSERT(arg->size == 0);
- FFI_ASSERT(arg->alignment == 0);
-
- ptr = &(arg->elements[0]);
-
- while ((*ptr) != NULL)
- {
- if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK))
- return FFI_BAD_TYPEDEF;
-
- /* Perform a sanity check on the argument type */
- FFI_ASSERT(ffi_type_test((*ptr)));
-
- arg->size = ALIGN(arg->size, (*ptr)->alignment);
- arg->size += (*ptr)->size;
-
- arg->alignment = (arg->alignment > (*ptr)->alignment) ?
- arg->alignment : (*ptr)->alignment;
-
- ptr++;
- }
-
- if (arg->size == 0)
- return FFI_BAD_TYPEDEF;
- else
- return FFI_OK;
-
- /*@=usedef@*/
-}
-
-/* Perform machine independent ffi_cif preparation, then call
- machine dependent routine. */
-
-ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
- ffi_abi abi, unsigned int nargs,
- /*@dependent@*/ /*@out@*/ /*@partial@*/ ffi_type *rtype,
- /*@dependent@*/ ffi_type **atypes)
-{
- unsigned bytes = 0;
- unsigned int i;
- ffi_type **ptr;
-
- FFI_ASSERT(cif != NULL);
- FFI_ASSERT((abi > FFI_FIRST_ABI) && (abi < FFI_LAST_ABI));
-
- cif->abi = abi;
- cif->arg_types = atypes;
- cif->nargs = nargs;
- cif->rtype = rtype;
-
- cif->flags = 0;
-
- /* Initialize the return type if necessary */
- /*@-usedef@*/
- if ((cif->rtype->size == 0) && (initialize_aggregate(cif->rtype) != FFI_OK))
- return FFI_BAD_TYPEDEF;
- /*@=usedef@*/
-
- /* Perform a sanity check on the return type */
- FFI_ASSERT(ffi_type_test(cif->rtype));
-
-#ifndef M68K
- /* Make space for the return structure pointer */
- if (cif->rtype->type == FFI_TYPE_STRUCT
-#ifdef SPARC
- && (cif->abi != FFI_V9 || cif->rtype->size > 32)
-#endif
- )
- bytes = STACK_ARG_SIZE(sizeof(void*));
-#endif
-
- for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++)
- {
- /* Perform a sanity check on the argument type */
- FFI_ASSERT(ffi_type_test(*ptr));
-
- /* Initialize any uninitialized aggregate type definitions */
- if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK))
- return FFI_BAD_TYPEDEF;
-
-#ifdef SPARC
- if (((*ptr)->type == FFI_TYPE_STRUCT
- && ((*ptr)->size > 16 || cif->abi != FFI_V9))
- || ((*ptr)->type == FFI_TYPE_LONGDOUBLE
- && cif->abi != FFI_V9))
- bytes += sizeof(void*);
- else
-#endif
- {
- /* Add any padding if necessary */
- if (((*ptr)->alignment - 1) & bytes)
- bytes = ALIGN(bytes, (*ptr)->alignment);
-
- bytes += STACK_ARG_SIZE((*ptr)->size);
- }
- }
-
- cif->bytes = bytes;
-
- /* Perform machine dependent cif processing */
- return ffi_prep_cif_machdep(cif);
-}
diff --git a/libffi/src/raw_api.c b/libffi/src/raw_api.c
deleted file mode 100644
index 45cb0043c4d..00000000000
--- a/libffi/src/raw_api.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -----------------------------------------------------------------------
- raw_api.c - Copyright (c) 1999 Cygnus Solutions
-
- Author: Kresten Krab Thorup <krab@gnu.org>
-
- $Id $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-/* This file defines generic functions for use with the raw api. */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#if !FFI_NO_RAW_API
-
-size_t
-ffi_raw_size (ffi_cif *cif)
-{
- size_t result = 0;
- int i;
-
- ffi_type **at = cif->arg_types;
-
- for (i = cif->nargs-1; i >= 0; i--, at++)
- {
-#if !FFI_NO_STRUCTS
- if ((*at)->type == FFI_TYPE_STRUCT)
- result += ALIGN (sizeof (void*), SIZEOF_ARG);
- else
-#endif
- result += ALIGN ((*at)->size, SIZEOF_ARG);
- }
-
- return result;
-}
-
-
-void
-ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args)
-{
- unsigned i;
- ffi_type **tp = cif->arg_types;
-
-#if WORDS_BIGENDIAN
-
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
- switch ((*tp)->type)
- {
- case FFI_TYPE_UINT8:
- case FFI_TYPE_SINT8:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 1);
- break;
-
- case FFI_TYPE_UINT16:
- case FFI_TYPE_SINT16:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 2);
- break;
-
-#if SIZEOF_ARG >= 4
- case FFI_TYPE_UINT32:
- case FFI_TYPE_SINT32:
- *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 4);
- break;
-#endif
-
-#if !FFI_NO_STRUCTS
- case FFI_TYPE_STRUCT:
- *args = (raw++)->ptr;
- break;
-#endif
-
- case FFI_TYPE_POINTER:
- *args = (void*) &(raw++)->ptr;
- break;
-
- default:
- *args = raw;
- raw += ALIGN ((*tp)->size, SIZEOF_ARG) / SIZEOF_ARG;
- }
- }
-
-#else /* WORDS_BIGENDIAN */
-
-#if !PDP
-
- /* then assume little endian */
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
-#if !FFI_NO_STRUCTS
- if ((*tp)->type == FFI_TYPE_STRUCT)
- {
- *args = (raw++)->ptr;
- }
- else
-#endif
- {
- *args = (void*) raw;
- raw += ALIGN ((*tp)->size, sizeof (void*)) / sizeof (void*);
- }
- }
-
-#else
-#error "pdp endian not supported"
-#endif /* ! PDP */
-
-#endif /* WORDS_BIGENDIAN */
-}
-
-void
-ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw)
-{
- unsigned i;
- ffi_type **tp = cif->arg_types;
-
- for (i = 0; i < cif->nargs; i++, tp++, args++)
- {
- switch ((*tp)->type)
- {
- case FFI_TYPE_UINT8:
- (raw++)->uint = *(UINT8*) (*args);
- break;
-
- case FFI_TYPE_SINT8:
- (raw++)->sint = *(SINT8*) (*args);
- break;
-
- case FFI_TYPE_UINT16:
- (raw++)->uint = *(UINT16*) (*args);
- break;
-
- case FFI_TYPE_SINT16:
- (raw++)->sint = *(SINT16*) (*args);
- break;
-
-#if SIZEOF_ARG >= 4
- case FFI_TYPE_UINT32:
- (raw++)->uint = *(UINT32*) (*args);
- break;
-
- case FFI_TYPE_SINT32:
- (raw++)->sint = *(SINT32*) (*args);
- break;
-#endif
-
-#if !FFI_NO_STRUCTS
- case FFI_TYPE_STRUCT:
- (raw++)->ptr = *args;
- break;
-#endif
-
- case FFI_TYPE_POINTER:
- (raw++)->ptr = **(void***) args;
- break;
-
- default:
- memcpy ((void*) raw->data, (void*)*args, (*tp)->size);
- raw += ALIGN ((*tp)->size, SIZEOF_ARG) / SIZEOF_ARG;
- }
- }
-}
-
-#if !FFI_NATIVE_RAW_API
-
-
-/* This is a generic definition of ffi_raw_call, to be used if the
- * native system does not provide a machine-specific implementation.
- * Having this, allows code to be written for the raw API, without
- * the need for system-specific code to handle input in that format;
- * these following couple of functions will handle the translation forth
- * and back automatically. */
-
-void ffi_raw_call (/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ ffi_raw *raw)
-{
- void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
- ffi_raw_to_ptrarray (cif, raw, avalue);
- ffi_call (cif, fn, rvalue, avalue);
-}
-
-#if FFI_CLOSURES /* base system provides closures */
-
-static void
-ffi_translate_args (ffi_cif *cif, void *rvalue,
- void **avalue, void *user_data)
-{
- ffi_raw *raw = (ffi_raw*)alloca (ffi_raw_size (cif));
- ffi_raw_closure *cl = (ffi_raw_closure*)user_data;
-
- ffi_ptrarray_to_raw (cif, avalue, raw);
- (*cl->fun) (cif, rvalue, raw, cl->user_data);
-}
-
-/* Again, here is the generic version of ffi_prep_raw_closure, which
- * will install an intermediate "hub" for translation of arguments from
- * the pointer-array format, to the raw format */
-
-ffi_status
-ffi_prep_raw_closure (ffi_raw_closure* cl,
- ffi_cif *cif,
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
- void *user_data)
-{
- ffi_status status;
-
- status = ffi_prep_closure ((ffi_closure*) cl,
- cif,
- &ffi_translate_args,
- (void*)cl);
- if (status == FFI_OK)
- {
- cl->fun = fun;
- cl->user_data = user_data;
- }
-
- return status;
-}
-
-#endif /* FFI_CLOSURES */
-#endif /* !FFI_NATIVE_RAW_API */
-#endif /* !FFI_NO_RAW_API */
diff --git a/libffi/src/sparc/ffi.c b/libffi/src/sparc/ffi.c
deleted file mode 100644
index 647063686b9..00000000000
--- a/libffi/src/sparc/ffi.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1996 Cygnus Solutions
-
- Sparc Foreign Function Interface
-
- $Id: ffi.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments */
-
-void ffi_prep_args_v8(char *stack, extended_cif *ecif)
-{
- int i;
- int tmp;
- int avn;
- void **p_argv;
- char *argp;
- ffi_type **p_arg;
-
- tmp = 0;
-
- /* Skip 16 words for the window save area */
- argp = stack + 16*sizeof(int);
-
- /* This should only really be done when we are returning a structure,
- however, it's faster just to do it all the time...
-
- if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT ) */
- *(int *) argp = (long)ecif->rvalue;
-
- /* And 1 word for the structure return value. */
- argp += sizeof(int);
-
-#ifdef USING_PURIFY
- /* Purify will probably complain in our assembly routine, unless we
- zero out this memory. */
-
- ((int*)argp)[0] = 0;
- ((int*)argp)[1] = 0;
- ((int*)argp)[2] = 0;
- ((int*)argp)[3] = 0;
- ((int*)argp)[4] = 0;
- ((int*)argp)[5] = 0;
-#endif
-
- avn = ecif->cif->nargs;
- p_argv = ecif->avalue;
-
- for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
- i && avn;
- i--, p_arg++)
- {
- size_t z;
-
- if (avn)
- {
- avn--;
- if ((*p_arg)->type == FFI_TYPE_STRUCT
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- || (*p_arg)->type == FFI_TYPE_LONGDOUBLE
-#endif
- )
- {
- *(unsigned int *) argp = (unsigned long)(* p_argv);
- z = sizeof(int);
- }
- else
- {
- z = (*p_arg)->size;
- if (z < sizeof(int))
- {
- z = sizeof(int);
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(signed int *) argp = *(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(unsigned int *) argp = *(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(signed int *) argp = *(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(unsigned int *) argp = *(UINT16 *)(* p_argv);
- break;
-
- default:
- FFI_ASSERT(0);
- }
- }
- else
- {
- memcpy(argp, *p_argv, z);
- }
- }
- p_argv++;
- argp += z;
- }
- }
-
- return;
-}
-
-int ffi_prep_args_v9(char *stack, extended_cif *ecif)
-{
- int i, ret = 0;
- int tmp;
- void **p_argv;
- char *argp;
- ffi_type **p_arg;
-
- tmp = 0;
-
- /* Skip 16 words for the window save area */
- argp = stack + 16*sizeof(long long);
-
-#ifdef USING_PURIFY
- /* Purify will probably complain in our assembly routine, unless we
- zero out this memory. */
-
- ((long long*)argp)[0] = 0;
- ((long long*)argp)[1] = 0;
- ((long long*)argp)[2] = 0;
- ((long long*)argp)[3] = 0;
- ((long long*)argp)[4] = 0;
- ((long long*)argp)[5] = 0;
-#endif
-
- p_argv = ecif->avalue;
-
- if (ecif->cif->rtype->type == FFI_TYPE_STRUCT &&
- ecif->cif->rtype->size > 32)
- {
- *(unsigned long long *) argp = (unsigned long)ecif->rvalue;
- tmp = 1;
- }
-
- for (i = 0, p_arg = ecif->cif->arg_types; i < ecif->cif->nargs;
- i++, p_arg++)
- {
- size_t z;
-
- z = (*p_arg)->size;
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_STRUCT:
- if (z > 16)
- {
- /* For structures larger than 16 bytes we pass reference. */
- *(unsigned long long *) argp = (unsigned long)* p_argv;
- argp += sizeof(long long);
- tmp++;
- p_argv++;
- continue;
- }
- /* FALLTHROUGH */
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- ret = 1; /* We should promote into FP regs as well as integer. */
- break;
- }
- if (z < sizeof(long long))
- {
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(signed long long *) argp = *(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(unsigned long long *) argp = *(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(signed long long *) argp = *(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(unsigned long long *) argp = *(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT32:
- *(signed long long *) argp = *(SINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT32:
- *(unsigned long long *) argp = *(UINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_FLOAT:
- *(float *) (argp + 4) = *(FLOAT32 *)(* p_argv); /* Right justify */
- break;
-
- case FFI_TYPE_STRUCT:
- memcpy(argp, *p_argv, z);
- break;
-
- default:
- FFI_ASSERT(0);
- }
- z = sizeof(long long);
- tmp++;
- }
- else if (z == sizeof(long long))
- {
- memcpy(argp, *p_argv, z);
- z = sizeof(long long);
- tmp++;
- }
- else
- {
- if ((tmp & 1) && (*p_arg)->alignment > 8)
- {
- tmp++;
- argp += sizeof(long long);
- }
- memcpy(argp, *p_argv, z);
- z = 2 * sizeof(long long);
- tmp += 2;
- }
- p_argv++;
- argp += z;
- }
-
- return ret;
-}
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
-{
- int wordsize;
-
- if (cif->abi != FFI_V9)
- {
- wordsize = 4;
-
- /* If we are returning a struct, this will already have been added.
- Otherwise we need to add it because it's always got to be there! */
-
- if (cif->rtype->type != FFI_TYPE_STRUCT)
- cif->bytes += wordsize;
-
- /* sparc call frames require that space is allocated for 6 args,
- even if they aren't used. Make that space if necessary. */
-
- if (cif->bytes < 4*6+4)
- cif->bytes = 4*6+4;
- }
- else
- {
- wordsize = 8;
-
- /* sparc call frames require that space is allocated for 6 args,
- even if they aren't used. Make that space if necessary. */
-
- if (cif->bytes < 8*6)
- cif->bytes = 8*6;
- }
-
- /* Adjust cif->bytes. to include 16 words for the window save area,
- and maybe the struct/union return pointer area, */
-
- cif->bytes += 16 * wordsize;
-
- /* The stack must be 2 word aligned, so round bytes up
- appropriately. */
-
- cif->bytes = ALIGN(cif->bytes, 2 * wordsize);
-
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- cif->flags = cif->rtype->type;
- break;
-
- case FFI_TYPE_STRUCT:
- if (cif->abi == FFI_V9 && cif->rtype->size > 32)
- cif->flags = FFI_TYPE_VOID;
- else
- cif->flags = FFI_TYPE_STRUCT;
- break;
-
- case FFI_TYPE_SINT64:
- case FFI_TYPE_UINT64:
- if (cif->abi != FFI_V9)
- {
- cif->flags = FFI_TYPE_SINT64;
- break;
- }
- /* FALLTHROUGH */
- default:
- cif->flags = FFI_TYPE_INT;
- break;
- }
- return FFI_OK;
-}
-
-int ffi_V9_return_struct(ffi_type *arg, int off, char *ret, char *intg, char *flt)
-{
- ffi_type **ptr = &arg->elements[0];
-
- while (*ptr != NULL)
- {
- if (off & ((*ptr)->alignment - 1))
- off = ALIGN(off, (*ptr)->alignment);
-
- switch ((*ptr)->type)
- {
- case FFI_TYPE_STRUCT:
- off = ffi_V9_return_struct(*ptr, off, ret, intg, flt);
- break;
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
- case FFI_TYPE_LONGDOUBLE:
-#endif
- memcpy(ret + off, flt + off, (*ptr)->size);
- off += (*ptr)->size;
- break;
- default:
- memcpy(ret + off, intg + off, (*ptr)->size);
- off += (*ptr)->size;
- break;
- }
- ptr++;
- }
- return off;
-}
-
-extern int ffi_call_V8(void *, extended_cif *, unsigned,
- unsigned, unsigned *, void (*fn)());
-extern int ffi_call_V9(void *, extended_cif *, unsigned,
- unsigned, unsigned *, void (*fn)());
-
-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
-{
- extended_cif ecif;
- void *rval = rvalue;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- ecif.rvalue = rvalue;
- if (cif->rtype->type == FFI_TYPE_STRUCT)
- {
- if (cif->rtype->size <= 32)
- rval = alloca(64);
- else
- {
- rval = NULL;
- if (rvalue == NULL)
- ecif.rvalue = alloca(cif->rtype->size);
- }
- }
-
- switch (cif->abi)
- {
- case FFI_V8:
-#ifdef SPARC64
- /* We don't yet support calling 32bit code from 64bit */
- FFI_ASSERT(0);
-#else
- ffi_call_V8(ffi_prep_args_v8, &ecif, cif->bytes,
- cif->flags, rvalue, fn);
-#endif
- break;
- case FFI_V9:
-#ifdef SPARC64
- ffi_call_V9(ffi_prep_args_v9, &ecif, cif->bytes,
- cif->flags, rval, fn);
- if (rvalue && rval && cif->rtype->type == FFI_TYPE_STRUCT)
- ffi_V9_return_struct(cif->rtype, 0, (char *)rvalue, (char *)rval, ((char *)rval)+32);
-#else
- /* And vice versa */
- FFI_ASSERT(0);
-#endif
- break;
- default:
- FFI_ASSERT(0);
- break;
- }
-
-}
diff --git a/libffi/src/sparc/v8.S b/libffi/src/sparc/v8.S
deleted file mode 100644
index e4b2ba96a6c..00000000000
--- a/libffi/src/sparc/v8.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -----------------------------------------------------------------------
- v8.S - Copyright (c) 1996, 1997 Cygnus Solutions
-
- Sparc Foreign Function Interface
-
- $Id: v8.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-#define STACKFRAME 96 /* Minimum stack framesize for SPARC */
-#define ARGS (64+4) /* Offset of register area in frame */
-
-.text
- .align 8
-.globl ffi_call_V8
-.globl _ffi_call_V8
-
-ffi_call_V8:
-_ffi_call_V8:
- save %sp, -STACKFRAME, %sp
-
- sub %sp, %i2, %sp ! alloca() space in stack for frame to set up
- add %sp, STACKFRAME, %l0 ! %l0 has start of
- ! frame to set up
-
- mov %l0, %o0 ! call routine to set up frame
- call %i0
- mov %i1, %o1 ! (delay)
-
- ld [%l0+ARGS], %o0 ! call foreign function
- ld [%l0+ARGS+4], %o1
- ld [%l0+ARGS+8], %o2
- ld [%l0+ARGS+12], %o3
- ld [%l0+ARGS+16], %o4
- ld [%l0+ARGS+20], %o5
- call %i5
- mov %l0, %sp ! (delay) switch to frame
- nop ! STRUCT returning functions skip 12 instead of 8 bytes
-
- ! If the return value pointer is NULL, assume no return value.
- tst %i4
- bz done
- nop
-
- cmp %i3, FFI_TYPE_INT
- be,a done
- st %o0, [%i4] ! (delay)
-
- cmp %i3, FFI_TYPE_FLOAT
- be,a done
- st %f0, [%i4+0] ! (delay)
-
- cmp %i3, FFI_TYPE_SINT64
- be longlong
-
- cmp %i3, FFI_TYPE_DOUBLE
- bne done
- nop
- st %f0, [%i4+0]
- st %f1, [%i4+4]
-
-done:
- ret
- restore
-
-longlong:
- st %o0, [%i4+0]
- st %o1, [%i4+4]
- ret
- restore
-
-.ffi_call_V8_end:
- .size ffi_call_V8,.ffi_call_V8_end-ffi_call_V8
-
diff --git a/libffi/src/sparc/v9.S b/libffi/src/sparc/v9.S
deleted file mode 100644
index 38494344dbb..00000000000
--- a/libffi/src/sparc/v9.S
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -----------------------------------------------------------------------
- v9.S - Copyright (c) 2000 Cygnus Solutions
-
- Sparc 64bit Foreign Function Interface
-
- $Id:$
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-#ifdef SPARC64
-/* Only compile this in for 64bit builds, because otherwise the object file
- will have inproper architecture due to used instructions. */
-
-#define STACKFRAME 128 /* Minimum stack framesize for SPARC */
-#define STACK_BIAS 2047
-#define ARGS (128) /* Offset of register area in frame */
-
-.text
- .align 8
-.globl ffi_call_V9
-.globl _ffi_call_V9
-
-ffi_call_V9:
-_ffi_call_V9:
- save %sp, -STACKFRAME, %sp
-
- sub %sp, %i2, %sp ! alloca() space in stack for frame to set up
- add %sp, STACKFRAME+STACK_BIAS, %l0 ! %l0 has start of
- ! frame to set up
-
- mov %l0, %o0 ! call routine to set up frame
- call %i0
- mov %i1, %o1 ! (delay)
- brz,pt %o0, 1f
- ldx [%l0+ARGS], %o0 ! call foreign function
-
- ldd [%l0+ARGS], %f0
- ldd [%l0+ARGS+8], %f2
- ldd [%l0+ARGS+16], %f4
- ldd [%l0+ARGS+24], %f6
- ldd [%l0+ARGS+32], %f8
- ldd [%l0+ARGS+40], %f10
- ldd [%l0+ARGS+48], %f12
- ldd [%l0+ARGS+56], %f14
- ldd [%l0+ARGS+64], %f16
- ldd [%l0+ARGS+72], %f18
- ldd [%l0+ARGS+80], %f20
- ldd [%l0+ARGS+88], %f22
- ldd [%l0+ARGS+96], %f24
- ldd [%l0+ARGS+104], %f26
- ldd [%l0+ARGS+112], %f28
- ldd [%l0+ARGS+120], %f30
-
-1: ldx [%l0+ARGS+8], %o1
- ldx [%l0+ARGS+16], %o2
- ldx [%l0+ARGS+24], %o3
- ldx [%l0+ARGS+32], %o4
- ldx [%l0+ARGS+40], %o5
- call %i5
- sub %l0, STACK_BIAS, %sp ! (delay) switch to frame
-
- ! If the return value pointer is NULL, assume no return value.
- brz,pn %i4, done
- nop
-
- cmp %i3, FFI_TYPE_INT
- be,a,pt %icc, done
- stx %o0, [%i4] ! (delay)
-
- cmp %i3, FFI_TYPE_FLOAT
- be,a,pn %icc, done
- st %f0, [%i4+0] ! (delay)
-
- cmp %i3, FFI_TYPE_DOUBLE
- be,a,pn %icc, done
- std %f0, [%i4+0] ! (delay)
-
- cmp %i3, FFI_TYPE_STRUCT
- be,pn %icc, dostruct
-
- cmp %i3, FFI_TYPE_LONGDOUBLE
- bne,pt %icc, done
- nop
- std %f0, [%i4+0]
- std %f2, [%i4+8]
-
-done: ret
- restore
-
-dostruct:
- /* This will not work correctly for unions. */
- stx %o0, [%i4+0]
- stx %o1, [%i4+8]
- stx %o2, [%i4+16]
- stx %o3, [%i4+24]
- std %f0, [%i4+32]
- std %f2, [%i4+40]
- std %f4, [%i4+48]
- std %f6, [%i4+56]
- ret
- restore
-
-.ffi_call_V9_end:
- .size ffi_call_V9,.ffi_call_V9_end-ffi_call_V9
-
-#endif
diff --git a/libffi/src/types.c b/libffi/src/types.c
deleted file mode 100644
index 43aab913130..00000000000
--- a/libffi/src/types.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -----------------------------------------------------------------------
- types.c - Copyright (c) 1996, 1998 Cygnus Solutions
-
- Predefined ffi_types needed by libffi.
-
- $Id: types.c,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-/* Type definitions */
-
-#define FFI_INTEGRAL_TYPEDEF(n, s, a, t) ffi_type ffi_type_##n = { s, a, t, NULL }
-#define FFI_AGGREGATE_TYPEDEF(n, e) ffi_type ffi_type_##n = { 0, 0, FFI_TYPE_STRUCT, e }
-
-/* Size and alignment are fake here. They must not be 0. */
-FFI_INTEGRAL_TYPEDEF(void, 1, 1, FFI_TYPE_VOID);
-
-FFI_INTEGRAL_TYPEDEF(uint8, 1, 1, FFI_TYPE_UINT8);
-FFI_INTEGRAL_TYPEDEF(sint8, 1, 1, FFI_TYPE_SINT8);
-FFI_INTEGRAL_TYPEDEF(uint16, 2, 2, FFI_TYPE_UINT16);
-FFI_INTEGRAL_TYPEDEF(sint16, 2, 2, FFI_TYPE_SINT16);
-FFI_INTEGRAL_TYPEDEF(uint32, 4, 4, FFI_TYPE_UINT32);
-FFI_INTEGRAL_TYPEDEF(sint32, 4, 4, FFI_TYPE_SINT32);
-FFI_INTEGRAL_TYPEDEF(float, 4, 4, FFI_TYPE_FLOAT);
-
-#if defined ALPHA || defined SPARC64
-
-FFI_INTEGRAL_TYPEDEF(pointer, 8, 8, FFI_TYPE_POINTER);
-
-#else
-
-FFI_INTEGRAL_TYPEDEF(pointer, 4, 4, FFI_TYPE_POINTER);
-
-#endif
-
-#ifdef X86
-
-FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
-FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
-
-#elif defined ARM
-
-FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
-FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
-
-#elif defined M68K
-
-FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
-FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
-
-#else
-
-FFI_INTEGRAL_TYPEDEF(uint64, 8, 8, FFI_TYPE_UINT64);
-FFI_INTEGRAL_TYPEDEF(sint64, 8, 8, FFI_TYPE_SINT64);
-
-#endif
-
-
-#ifdef X86
-
-FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
-FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
-
-#elif defined ARM
-
-FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
-FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE);
-
-#elif defined M68K
-
-FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
-FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
-
-#elif defined SPARC
-
-FFI_INTEGRAL_TYPEDEF(double, 8, 8, FFI_TYPE_DOUBLE);
-
-#ifdef SPARC64
-
-FFI_INTEGRAL_TYPEDEF(longdouble, 16, 16, FFI_TYPE_LONGDOUBLE);
-
-#else
-
-FFI_INTEGRAL_TYPEDEF(longdouble, 16, 8, FFI_TYPE_LONGDOUBLE);
-
-#endif
-
-#else
-
-FFI_INTEGRAL_TYPEDEF(double, 8, 8, FFI_TYPE_DOUBLE);
-FFI_INTEGRAL_TYPEDEF(longdouble, 8, 8, FFI_TYPE_LONGDOUBLE);
-
-#endif
-
diff --git a/libffi/src/x86/ffi.c b/libffi/src/x86/ffi.c
deleted file mode 100644
index 1e58e031e63..00000000000
--- a/libffi/src/x86/ffi.c
+++ /dev/null
@@ -1,510 +0,0 @@
-/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1996, 1998, 1999 Cygnus Solutions
-
- x86 Foreign Function Interface
-
- $Id: ffi.c,v 1.3 1999/08/08 13:05:12 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#include <ffi.h>
-#include <ffi_common.h>
-
-#include <stdlib.h>
-
-/* ffi_prep_args is called by the assembly routine once stack space
- has been allocated for the function's arguments */
-
-/*@-exportheader@*/
-void ffi_prep_args(char *stack, extended_cif *ecif)
-/*@=exportheader@*/
-{
- register unsigned int i;
- register int tmp;
- register unsigned int avn;
- register void **p_argv;
- register char *argp;
- register ffi_type **p_arg;
-
- tmp = 0;
- argp = stack;
-
- if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT ) {
- *(void **) argp = ecif->rvalue;
- argp += 4;
- }
-
- avn = ecif->cif->nargs;
- p_argv = ecif->avalue;
-
- for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
- (i != 0) && (avn != 0);
- i--, p_arg++)
- {
- size_t z;
-
- /* Align if necessary */
- if (((*p_arg)->alignment - 1) & (unsigned) argp) {
- argp = (char *) ALIGN(argp, (*p_arg)->alignment);
- }
-
- if (avn != 0)
- {
- avn--;
- z = (*p_arg)->size;
- if (z < sizeof(int))
- {
- z = sizeof(int);
- switch ((*p_arg)->type)
- {
- case FFI_TYPE_SINT8:
- *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT8:
- *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT16:
- *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT16:
- *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
- break;
-
- case FFI_TYPE_SINT32:
- *(signed int *) argp = (signed int)*(SINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_UINT32:
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
- break;
-
- case FFI_TYPE_STRUCT:
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
- break;
-
- default:
- FFI_ASSERT(0);
- }
- }
- else
- {
- memcpy(argp, *p_argv, z);
- }
- p_argv++;
- argp += z;
- }
- }
-
- return;
-}
-
-/* Perform machine dependent cif processing */
-ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
-{
- /* Set the return type flag */
- switch (cif->rtype->type)
- {
- case FFI_TYPE_VOID:
- case FFI_TYPE_STRUCT:
- case FFI_TYPE_SINT64:
- case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- case FFI_TYPE_LONGDOUBLE:
- cif->flags = (unsigned) cif->rtype->type;
- break;
-
- case FFI_TYPE_UINT64:
- cif->flags = FFI_TYPE_SINT64;
- break;
-
- default:
- cif->flags = FFI_TYPE_INT;
- break;
- }
-
- return FFI_OK;
-}
-
-/*@-declundef@*/
-/*@-exportheader@*/
-extern void ffi_call_SYSV(void (*)(char *, extended_cif *),
- /*@out@*/ extended_cif *,
- unsigned, unsigned,
- /*@out@*/ unsigned *,
- void (*fn)());
-/*@=declundef@*/
-/*@=exportheader@*/
-
-void ffi_call(/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ void **avalue)
-{
- extended_cif ecif;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- if ((rvalue == NULL) &&
- (cif->rtype->type == FFI_TYPE_STRUCT))
- {
- /*@-sysunrecog@*/
- ecif.rvalue = alloca(cif->rtype->size);
- /*@=sysunrecog@*/
- }
- else
- ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
- {
- case FFI_SYSV:
- /*@-usedef@*/
- ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes,
- cif->flags, ecif.rvalue, fn);
- /*@=usedef@*/
- break;
- default:
- FFI_ASSERT(0);
- break;
- }
-}
-
-
-/** private members **/
-
-static void ffi_prep_incoming_args_SYSV (char *stack, void **ret,
- void** args, ffi_cif* cif);
-static void ffi_closure_SYSV ();
-static void ffi_closure_raw_SYSV ();
-
-/* This function is jumped to by the trampoline, on entry, %ecx (a
- * caller-save register) holds the address of the closure.
- * Clearly, this requires __GNUC__, so perhaps we should translate this
- * into an assembly file if this is to be distributed with ffi.
- */
-
-static void
-ffi_closure_SYSV ()
-{
- // this is our return value storage
- long double res;
-
- // our various things...
- void *args;
- ffi_cif *cif;
- void **arg_area;
- ffi_closure *closure;
- unsigned short rtype;
- void *resp = (void*)&res;
-
- /* grab the trampoline context pointer */
- asm ("movl %%ecx,%0" : "=r" (closure));
-
- cif = closure->cif;
- arg_area = (void**) alloca (cif->nargs * sizeof (void*));
- asm ("leal 8(%%ebp),%0" : "=q" (args));
-
- /* this call will initialize ARG_AREA, such that each
- * element in that array points to the corresponding
- * value on the stack; and if the function returns
- * a structure, it will re-set RESP to point to the
- * structure return address. */
-
- ffi_prep_incoming_args_SYSV(args, (void**)&resp, arg_area, cif);
-
- (closure->fun) (cif, resp, arg_area, closure->user_data);
-
- rtype = cif->flags;
-
- /* now, do a generic return based on the value of rtype */
- if (rtype == FFI_TYPE_INT)
- {
- asm ("movl (%0),%%eax" : : "r" (resp) : "eax");
- }
- else if (rtype == FFI_TYPE_FLOAT)
- {
- asm ("flds (%0)" : : "r" (resp) : "st" );
- }
- else if (rtype == FFI_TYPE_DOUBLE)
- {
- asm ("fldl (%0)" : : "r" (resp) : "st", "st(1)" );
- }
- else if (rtype == FFI_TYPE_LONGDOUBLE)
- {
- asm ("fldt (%0)" : : "r" (resp) : "st", "st(1)" );
- }
- else if (rtype == FFI_TYPE_SINT64)
- {
- asm ("movl 0(%0),%%eax;"
- "movl 4(%0),%%edx"
- : : "r"(resp)
- : "eax", "edx");
- }
-}
-
-/*@-exportheader@*/
-static void
-ffi_prep_incoming_args_SYSV(char *stack, void **rvalue,
- void **avalue, ffi_cif *cif)
-/*@=exportheader@*/
-{
- register unsigned int i;
- register int tmp;
- register unsigned int avn;
- register void **p_argv;
- register char *argp;
- register ffi_type **p_arg;
-
- tmp = 0;
- argp = stack;
-
- if ( cif->rtype->type == FFI_TYPE_STRUCT ) {
- *rvalue = *(void **) argp;
- argp += 4;
- }
-
- avn = cif->nargs;
- p_argv = avalue;
-
- for (i = cif->nargs, p_arg = cif->arg_types;
- (i != 0) && (avn != 0);
- i--, p_arg++)
- {
- size_t z;
-
- /* Align if necessary */
- if (((*p_arg)->alignment - 1) & (unsigned) argp) {
- argp = (char *) ALIGN(argp, (*p_arg)->alignment);
- }
-
- if (avn != 0)
- {
- avn--;
- z = (*p_arg)->size;
-
- /* because we're little endian, this is
- what it turns into. */
-
- *p_argv = (void*) argp;
-
- p_argv++;
- argp += z;
- }
- }
-
- return;
-}
-
-/* How to make a trampoline. Derived from gcc/config/i386/i386.c. */
-
-#define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \
-({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
- unsigned int __fun = (unsigned int)(FUN); \
- unsigned int __ctx = (unsigned int)(CTX); \
- unsigned int __dis = __fun - ((unsigned int) __tramp + 10); \
- *(unsigned char*) &__tramp[0] = 0xb9; \
- *(unsigned int*) &__tramp[1] = __ctx; \
- *(unsigned char*) &__tramp[5] = 0xe9; \
- *(unsigned int*) &__tramp[6] = __dis; \
- })
-
-
-/* the cif must already be prep'ed */
-
-ffi_status
-ffi_prep_closure (ffi_closure* closure,
- ffi_cif* cif,
- void (*fun)(ffi_cif*,void*,void**,void*),
- void *user_data)
-{
- FFI_ASSERT (cif->abi == FFI_SYSV);
-
- FFI_INIT_TRAMPOLINE (&closure->tramp[0], \
- &ffi_closure_SYSV, \
- (void*)closure);
-
- closure->cif = cif;
- closure->user_data = user_data;
- closure->fun = fun;
-
- return FFI_OK;
-}
-
-/* ------- Native raw API support -------------------------------- */
-
-#if !FFI_NO_RAW_API
-
-static void
-ffi_closure_raw_SYSV ()
-{
- // this is our return value storage
- long double res;
-
- // our various things...
- void *args;
- ffi_raw *raw_args;
- ffi_cif *cif;
- ffi_raw_closure *closure;
- unsigned short rtype;
- void *resp = (void*)&res;
-
- /* grab the trampoline context pointer */
- asm ("movl %%ecx,%0" : "=r" (closure));
-
- /* take the argument pointer */
- asm ("leal 8(%%ebp),%0" : "=q" (args));
-
- /* get the cif */
- cif = closure->cif;
-
- /* the SYSV/X86 abi matches the RAW API exactly, well.. almost */
- raw_args = (ffi_raw*) args;
-
- (closure->fun) (cif, resp, raw_args, closure->user_data);
-
- rtype = cif->flags;
-
- /* now, do a generic return based on the value of rtype */
- if (rtype == FFI_TYPE_INT)
- {
- asm ("movl (%0),%%eax" : : "r" (resp) : "eax");
- }
- else if (rtype == FFI_TYPE_FLOAT)
- {
- asm ("flds (%0)" : : "r" (resp) : "st" );
- }
- else if (rtype == FFI_TYPE_DOUBLE)
- {
- asm ("fldl (%0)" : : "r" (resp) : "st", "st(1)" );
- }
- else if (rtype == FFI_TYPE_LONGDOUBLE)
- {
- asm ("fldt (%0)" : : "r" (resp) : "st", "st(1)" );
- }
- else if (rtype == FFI_TYPE_SINT64)
- {
- asm ("movl 0(%0),%%eax; movl 4(%0),%%edx"
- : : "r"(resp)
- : "eax", "edx");
- }
-}
-
-
-
-
-ffi_status
-ffi_prep_raw_closure (ffi_raw_closure* closure,
- ffi_cif* cif,
- void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
- void *user_data)
-{
- int i;
-
- FFI_ASSERT (cif->abi == FFI_SYSV);
-
- // we currently don't support certain kinds of arguments for raw
- // closures. This should be implemented by a seperate assembly language
- // routine, since it would require argument processing, something we
- // don't do now for performance.
-
- for (i = cif->nargs-1; i >= 0; i--)
- {
- FFI_ASSERT (cif->arg_types[i]->type != FFI_TYPE_STRUCT);
- FFI_ASSERT (cif->arg_types[i]->type != FFI_TYPE_LONGDOUBLE);
- }
-
-
- FFI_INIT_TRAMPOLINE (&closure->tramp[0], &ffi_closure_raw_SYSV,
- (void*)closure);
-
- closure->cif = cif;
- closure->user_data = user_data;
- closure->fun = fun;
-
- return FFI_OK;
-}
-
-static void
-ffi_prep_args_raw(char *stack, extended_cif *ecif)
-{
- memcpy (stack, ecif->avalue, ecif->cif->bytes);
-}
-
-/* we borrow this routine from libffi (it must be changed, though, to
- * actually call the function passed in the first argument. as of
- * libffi-1.20, this is not the case.)
- */
-
-extern void
-ffi_call_SYSV(void (*)(char *, extended_cif *),
- /*@out@*/ extended_cif *,
- unsigned, unsigned,
- /*@out@*/ unsigned *,
- void (*fn)());
-
-void
-ffi_raw_call(/*@dependent@*/ ffi_cif *cif,
- void (*fn)(),
- /*@out@*/ void *rvalue,
- /*@dependent@*/ ffi_raw *fake_avalue)
-{
- extended_cif ecif;
- void **avalue = (void **)fake_avalue;
-
- ecif.cif = cif;
- ecif.avalue = avalue;
-
- /* If the return value is a struct and we don't have a return */
- /* value address then we need to make one */
-
- if ((rvalue == NULL) &&
- (cif->rtype->type == FFI_TYPE_STRUCT))
- {
- /*@-sysunrecog@*/
- ecif.rvalue = alloca(cif->rtype->size);
- /*@=sysunrecog@*/
- }
- else
- ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
- {
- case FFI_SYSV:
- /*@-usedef@*/
- ffi_call_SYSV(ffi_prep_args_raw, &ecif, cif->bytes,
- cif->flags, ecif.rvalue, fn);
- /*@=usedef@*/
- break;
- default:
- FFI_ASSERT(0);
- break;
- }
-}
-
-#endif
diff --git a/libffi/src/x86/sysv.S b/libffi/src/x86/sysv.S
deleted file mode 100644
index 4c8473ae901..00000000000
--- a/libffi/src/x86/sysv.S
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -----------------------------------------------------------------------
- sysv.S - Copyright (c) 1996, 1998 Cygnus Solutions
-
- X86 Foreign Function Interface
-
- $Id: sysv.S,v 1.2 1999/08/04 18:00:05 green Exp $
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <ffi.h>
-
-.text
-
-.globl ffi_prep_args
-
- # This assumes we are using gas.
- .balign 16
-.globl ffi_call_SYSV
- .type ffi_call_SYSV,@function
-
-ffi_call_SYSV:
-.LFB1:
- pushl %ebp
-.LCFI0:
- movl %esp,%ebp
-.LCFI1:
- # Make room for all of the new args.
- movl 16(%ebp),%ecx
- subl %ecx,%esp
-
- movl %esp,%eax
-
- # Place all of the ffi_prep_args in position
- pushl 12(%ebp)
- pushl %eax
- call *8(%ebp)
-
- # Return stack to previous state and call the function
- addl $8,%esp
-
- call *28(%ebp)
-
- # Remove the space we pushed for the args
- movl 16(%ebp),%ecx
- addl %ecx,%esp
-
- # Load %ecx with the return type code
- movl 20(%ebp),%ecx
-
- # If the return value pointer is NULL, assume no return value.
- cmpl $0,24(%ebp)
- jne retint
-
- # Even if there is no space for the return value, we are
- # obliged to handle floating-point values.
- cmpl $FFI_TYPE_FLOAT,%ecx
- jne noretval
- fstp %st(0)
-
- jmp epilogue
-
-retint:
- cmpl $FFI_TYPE_INT,%ecx
- jne retfloat
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- movl %eax,0(%ecx)
- jmp epilogue
-
-retfloat:
- cmpl $FFI_TYPE_FLOAT,%ecx
- jne retdouble
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstps (%ecx)
- jmp epilogue
-
-retdouble:
- cmpl $FFI_TYPE_DOUBLE,%ecx
- jne retlongdouble
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstpl (%ecx)
- jmp epilogue
-
-retlongdouble:
- cmpl $FFI_TYPE_LONGDOUBLE,%ecx
- jne retint64
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstpt (%ecx)
- jmp epilogue
-
-retint64:
- cmpl $FFI_TYPE_SINT64,%ecx
- jne retstruct
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- movl %eax,0(%ecx)
- movl %edx,4(%ecx)
-
-retstruct:
- # Nothing to do!
-
-noretval:
-epilogue:
- movl %ebp,%esp
- popl %ebp
- ret
-.LFE1:
-.ffi_call_SYSV_end:
- .size ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
-
-.section .eh_frame,"aw",@progbits
-__FRAME_BEGIN__:
- .4byte .LLCIE1
-.LSCIE1:
- .4byte 0x0
- .byte 0x1
- .byte 0x0
- .byte 0x1
- .byte 0x7c
- .byte 0x8
- .byte 0xc
- .byte 0x4
- .byte 0x4
- .byte 0x88
- .byte 0x1
- .align 4
-.LECIE1:
- .set .LLCIE1,.LECIE1-.LSCIE1
- .4byte .LLFDE1
-.LSFDE1:
- .4byte .LSFDE1-__FRAME_BEGIN__
- .4byte .LFB1
- .4byte .LFE1-.LFB1
- .byte 0x4
- .4byte .LCFI0-.LFB1
- .byte 0xe
- .byte 0x8
- .byte 0x85
- .byte 0x2
- .byte 0x4
- .4byte .LCFI1-.LCFI0
- .byte 0xd
- .byte 0x5
- .align 4
-.LEFDE1:
- .set .LLFDE1,.LEFDE1-.LSFDE1
diff --git a/libffi/stamp-h.in b/libffi/stamp-h.in
deleted file mode 100644
index 9788f70238c..00000000000
--- a/libffi/stamp-h.in
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/libjava/COPYING b/libjava/COPYING
deleted file mode 100644
index 60549be514a..00000000000
--- a/libjava/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
deleted file mode 100644
index 6327de5be46..00000000000
--- a/libjava/ChangeLog
+++ /dev/null
@@ -1,3590 +0,0 @@
-2000-09-14 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.am: Re-work shell commands that exceeded command-line
- length limits.
- * Makefile.in: Rebuilt.
-
- * java/lang/natRuntime.cc (lt_preloaded_symbols): Define as `extern'.
-
- * defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
- * java/lang/natDouble.cc: Likewise.
- * java/lang/reflect/natMethod.cc: Likewise.
- * interpret.cc: Likewise. Fix NULLCHECKs that tested a _Jv_word.
-
-2000-09-13 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (LIBDATASTARTSPEC): Use `%s' to search for
- libgcjdata.a.
- (GCJ): Support single-tree builds. Add -B`pwd`/ and -I$srcdir.
- * acinclude.m4: Arrange for automake to not bring in a new
- libtool.m4 for LT_AC_PROG_GCJ. AC_SUBST GCJ.
- * Makefile.am: Leave it up to automake to subst GCJ.
- * aclocal.m4, configure, Makefile.in: Rebuilt.
-
-2000-09-13 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/natArray.cc (BooleanClass): New define.
- (get): Ensure Boolean class is initialized.
- * java/lang/reflect/natField.cc (BooleanClass): New define.
- (get): Ensure Boolean class is initialized.
-
-2000-09-13 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/String.java (CASE_INSENSITIVE_ORDER): New static field.
- Initialize with anonymous class.
- (compareToIgnoreCase): New method.
-
- * java/lang/ThreadGroup.java (had_uncaught_exception): New field.
- (uncaughtException): Set had_uncaught_exception.
- * prims.cc (JvRunMain): Check value of had_uncaught_exception and
- exit with error status if set.
- (_Jv_RunMain): Ditto.
-
-2000-09-12 Alexandre Oliva <aoliva@redhat.com>
-
- * configure: Rebuilt with new ../libtool.m4.
-
-2000-09-11 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Field.java (toString): Don't rely on
- Class.toString.
-
-2000-09-08 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/convert/BytesToUnicode.java (getDefaultDecoder): Let
- default decoder use iconv.
- * gnu/gcj/convert/UnicodeToBytes.java (getDefaultEncoder):
- Let default encoder use iconv.
- * configure: Rebuilt.
- * configure.in: Check for nl_langinfo and <langinfo.h>.
- * java/lang/natSystem.cc (file_encoding): New function.
- (DEFAULT_FILE_ENCODING): Define to file_encoding() if possible.
-
-2000-09-10 Alexandre Oliva <aoliva@redhat.com>
-
- * acinclude.m4: Simplify the tests for CC and CXX.
- * aclocal.m4, configure: Rebuilt.
-
- * acinclude.m4: Include libtool macros from the source tree.
- * aclocal.m4, configure: Rebuilt.
-
-2000-09-08 Warren Levy <warrenl@cygnus.com>
-
- * java/beans/PropertyChangeEvent.java (serialVersionUID): Added.
- * java/beans/PropertyVetoException.java (serialVersionUID): Added.
- * java/io/File.java (writeObject): Added.
- (readObject): Added.
- (serialVersionUID): Added.
- * java/io/ObjectOutputStream.java (writeObject): Initialized
- fieldsAlreadyWritten before recursion rather than after.
- * java/io/ObjectStreamClass.java (serialVersionUID): Added.
- * java/io/OptionalDataException.java (serialVersionUID): Added.
- (OptionalDataException): Made package private.
- * java/io/SyncFailedException.java (SyncFailedException): Removed
- default constructor to match spec.
- * java/lang/Boolean.java (serialVersionUID): Added.
- * java/lang/Byte.java (serialVersionUID): Added.
- * java/lang/Character.java (serialVersionUID): Added.
- * java/lang/Double.java (serialVersionUID): Added.
- * java/lang/Float.java (serialVersionUID): Added.
- * java/lang/Integer.java (serialVersionUID): Added.
- * java/lang/Long.java (serialVersionUID): Added.
- * java/lang/Number.java (serialVersionUID): Added.
- * java/lang/Short.java (serialVersionUID): Added.
- * java/lang/String.java (serialVersionUID): Added.
- * java/lang/ThreadDeath.java (ThreadDeath): Removed constructor
- to match spec.
- * java/lang/reflect/InvocationTargetException.java
- (serialVersionUID): Added.
- * java/net/URL.java (handler): Made transient.
- (hashCode): Added field for serialization, per spec. and use
- cached value if available.
- (serialVersionUID): Added.
- (URL): Initialize hashCode.
- (set): Adjust hashCode.
- (readObject): New Method to initialize the protocol handler when
- deserializing.
- (writeObject): New method.
- * java/text/BreakIterator.java: Removed 'implements Serializable'.
- * java/text/Collator.java: Removed 'implements Serializable'.
- * java/util/GregorianCalendar.java (serialVersionUID): Added.
- * java/util/Properties.java (serialVersionUID): Added.
- * java/util/Random.java (serialVersionUID): Added.
- (seed): Made private.
- (nextNextGaussian): Made private.
- (haveNextNextGaussian): Made private.
- * java/util/Stack.java (serialVersionUID): Added.
- * java/util/TimeZone.java (serialVersionUID): Added.
- * java/util/Vector.java (serialVersionUID): Added.
-
-2000-09-07 Bryce McKinlay <bryce@albatross.co.nz>
-
- * Makefile.am (Thread.h): Don't be friends with native threads
- functions.
- * Makefile.in: Rebuilt.
- * java/lang/Thread.java (interrupt_flag): Make package-private.
-
-2000-09-06 Jeff Sturm <jeff.sturm@appnet.com>
-
- * include/jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long'
- to avoid long long division.
-
-2000-09-06 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Constructor.java (toString): Use `getName' for
- parameter types.
- * java/lang/reflect/Method.java (toString): Use `getName' for
- return type.
-
- * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
- `args' if method takes no parameters.
-
- Fix for PR java.lang/339:
- * java/lang/natPosixProcess.cc (fail): New function.
- (cleanup): New function.
- (startProcess): Use them. Create pipe so child can communicate
- exec failure back to parent.
-
-2000-09-05 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/natPlainDatagramSocketImpl.cc: Change various `JvThrow'
- calls to `throw'.
- (send): Undo last patch. Remove the label only.
- (mcastGrp): Ditto.
- * java/net/natPlainSocketImpl.cc: Change various `JvThrow' calls to
- `throw'.
- * java/net/natInetAdress.cc: Ditto.
-
- * java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Fix typo.
-
-2000-09-05 Tom Tromey <tromey@cygnus.com>
-
- * doc/cni.sgml: Updated from master copy.
-
-2000-09-05 Bryce McKinlay <bryce@albatross.co.nz>
-
- * gnu/gcj/convert/natIconv.cc (read): Remove unused local.
- (write): Ditto.
- * gnu/gcj/runtime/FileDeleter.java (deleteOnExitNow): Check for null
- stack. Synchronize.
- * java/lang/fdlibm.h: #undef __P if previously defined.
- * java/lang/natSystem.cc (currentTimeMillis): Remove unused local.
- * java/net/natPlainDatagramSocketImpl.cc (send): Remove unreachable
- block.
- (mcastGrp): Ditto.
-
-2000-09-04 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/ZipFile.java (ZipFile): Delete file when opened in
- DELETE mode.
-
-2000-09-04 Anthony Green <green@redhat.com>
-
- Fix for PR java.io/203:
- * java/io/File.java (createTempFile): Obey directory argument.
- Use java.io.tmpdir if needed. Don't leave FileDescripators open.
- * java/lang/natSystem.cc (init_properties): Use TMPDIR environment
- variable to set java.io.tmpdir on non-WIN32 systems.
-
-2000-09-04 Anthony Green <green@redhat.com>
-
- * java/io/File.java (deleteOnExit): New method.
- * gnu/gcj/runtime/FileDeleter.java: New class.
- * java/lang/natRuntime.cc (exit): Call
- FileDeleter.deleteOnExitNow()
- * Makefile.am: Add FileDeleter.java.
- * Makefile.in: Rebuilt.
-
-2000-09-02 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GCJCOMPILE): Use -fclasspath, not the CLASSPATH
- environment variable.
-
-2000-09-01 Andrew Haley <aph@redhat.com>
-
- * java/io/StreamTokenizer.java: Don't throw a
- NumberFormatException if a field is numeric as far as the
- StreamTokenizer is concerned but not as far as Double.valueOf() is
- concerned: return a zero instead.
-
-2000-08-30 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CXXFLAGS): Added -fdollars-in-identifiers.
-
-2000-08-28 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/awt/BitMaskExtent.java, gnu/gcj/awt/Buffers.java,
- gnu/gcj/awt/ComponentDataBlitOp.java,
- gnu/gcj/awt/GLightweightPeer.java, java/awt/Graphics2D.java,
- java/awt/RenderingHints.java, java/awt/color/ColorSpace.java,
- java/awt/color/ICC_ColorSpace.java,
- java/awt/color/ICC_Profile.java,
- java/awt/image/BufferedImage.java, java/awt/image/ColorModel.java,
- java/awt/image/ComponentColorModel.java,
- java/awt/image/ComponentSampleModel.java,
- java/awt/image/DataBuffer.java,
- java/awt/image/DataBufferByte.java,
- java/awt/image/DataBufferInt.java,
- java/awt/image/DataBufferUShort.java,
- java/awt/image/DirectColorModel.java,
- java/awt/image/IndexColorModel.java,
- java/awt/image/PackedColorModel.java, java/awt/image/Raster.java,
- java/awt/image/RasterOp.java, java/awt/image/SampleModel.java,
- java/awt/image/SinglePixelPackedSampleModel.java,
- java/awt/image/WritableRaster.java, java/util/zip/ZipFile.java:
- Removed Latin-1 copyright symbols.
- * java/util/zip/ZipFile.java: Indentation fixes.
-
-2000-08-27 Mark Wielaard <mark@klomp.org>
-
- * java/util/zip/ZipFile.java: Implement OPEN_DELETE mode, new
- constructor, close can delete the file, finalize calls close.
- * java/util/jar/JarFile.java: Constructor that takes mode now
- calls super.
-
-2000-08-27 Anthony Green <green@redhat.com>
-
- * java/util/ArrayList.java, java/util/Timer.java,
- java/util/LinkedList.java, java/util/TimerTask.java,
- java/util/HashMap.java, java/util/AbstractMap.java,
- java/util/SortedMap.java, java/util/AbstractSequentialList.java,
- java/util/SortedSet.java: Imported from GNU Classpath.
- * Makefile.in: Rebuilt.
- * Makefile.am: Added new files.
-
-2000-08-26 Anthony Green <green@redhat.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/ClassLoader.h): Make _Jv_RunMain a
- friend.
-
- * prims.cc: Include ClassLoader.h.
- (_Jv_RunMain): When executing jar files, classpath must be the jar
- file only. Lose our reference to the system ClassLoader in order
- to get a new one with the correct classpath.
- * java/lang/natSystem.cc (init_properties): When executing a jar
- file, only use the jar file for java.class.path.
-
- * gnu/gcj/runtime/VMClassLoader.java: Use the canonical file name
- for bytecode archives.
-
- * gnu/gcj/runtime/FirstThread.java: Handle case where manifest
- exists, but not Main-Class.
-
-2000-08-23 Mark Wielaard <mark@klomp.org>
-
- * java/util/zip/InflaterInputStream.java (read(byte[],int,int)):
- return -1 when fill() has no more data for the Inflater.
-
-2000-08-23 Mark Wielaard <mark@klomp.org>
-
- * java/io/PrintWriter.java (print(String)): Don't catch IOException,
- write(String) already does.
-
-2000-08-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * gnu/gcj/jni/NativeThread.java (NativeThread): Removed assignment
- to `alive_flag', call `init'.
- (init): New native method.
- * gnu/gcj/jni/natNativeThread.cc (init): New native method
- implementation.
-
-2000-08-21 Mark Wielaard <mark@klomp.org>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/reflect/Constructor.h): Declare Class as
- a `friend class'.
- (java/lang/reflect/Field.h): Likewise.
- (java/lang/reflect/Method.h): Likewise.
- (gnu/gcj/runtime/VMClassLoader.h): Declare ClassLoader as a
- `friend class'.
-
-2000-08-21 Tom Tromey <tromey@cygnus.com>
-
- * java/util/ResourceBundle.java (trySomeGetBundle): Removed
- debugging prints.
-
-Sun Aug 20 21:02:48 2000 Anthony Green <green@redhat.com>
-
- * java/lang/natSystem.cc (init_properties): Change sourceware
- reference to sources.redhat.com.
-
- * include/java-props.h: Add _Jv_Jar_Class_Path.
- * prims.cc: Ditto. Set it from `gij -jar file' option.
-
- * java/lang/natSystem.cc (init_properties): Set java.class.path
- from
- {gij -jar file}:{CLASSPATH variable}:{-Djava.class.path= or .}
-
- * java/util/PropertyPermission.java: Import from GNU Classpath.
- * Makefile.in: Rebuilt.
- * Makefile.am: Add java/util/PropertyPermission.java.
- * java/lang/System.java: Add setProperty method.
-
- * gij.cc (main): Add -jar option to execute jar files.
- (help): Describe -jar option.
- * prims.cc (_Jv_RunMain): Add support for jar execution mode.
- * include/jvm.h: Add is_jar argument to _Jv_RunMain.
- * gnu/gcj/runtime/FirstThread.java (main): New method.
-
- * java/util/jar/Attributes.java: Correct comment spelling.
-
-2000-08-20 Mark Wielaard <mark@klomp.org>
-
- * java/util/zip/Adler32.java: Make private variables really private
- * java/util/zip/CRC32.java: Make private variables really private
- * java/util/zip/CheckedInputStream.java: skip() could skip to much
- bytes
- * java/util/zip/InflaterInputStream.java: skip() could skip to
- much bytes
- * java/util/zip/ZipEntry.java: setCompressedSize() didn't check input
- * java/util/zip/ZipFile.java: size() new 1.2 method
- * java/util/zip/ZipInputStream.java: Use createZipEntry not new
- ZipEntry. since 1.2 available() always returns just 1 or 0 when
- closed
-
-Sun Aug 20 12:33:43 2000 Anthony Green <green@redhat.com>
-
- * java/util/jar/JarFile.java: Don't call
- java.util.zip.ZipFile.getEntry twice. From Mark Wielaard
- <mark@klomp.org>.
-
-Sun Aug 20 09:51:48 2000 Anthony Green <green@redhat.com>
-
- * java/net/URLClassLoader.java: Find the JarEntry via the JarFile.
- Read the entire contents of the class file, not just what is
- available().
-
- * java/net/JarURLConnection.java: getEntry doesn't take any
- arguments. Return null if element is null.
-
- * java/util/zip/ZipFile.java (getInputStream): Read the compressed
- size from the archive, not the inflated size.
-
- * java/util/jar/JarFile.java (getEntry): Don't recurse. Call
- java.util.zip.ZipFile.getEntry.
-
- * gij.cc (help): Change sourceware reference to
- sources.redhat.com.
-
-2000-08-19 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/ZipInputStream.java (createZipEntry):
- Implemented.
-
-Sat Aug 19 11:00:53 2000 Anthony Green <green@redhat.com>
-
- * java/util/jar/Attributes.java, java/util/jar/JarEntry.java,
- java/util/jar/JarException.java, java/util/jar/JarFile.java,
- java/util/jar/JarInputStream.java,
- java/util/jar/JarOutputStream.java, java/util/jar/Manifest.java,
- java/util/Set.java, java/util/Map.java, java/util/Bucket.java,
- java/util/AbstractSet.java, java/util/BasicMapEntry.java,
- java/security/cert/CRL.java, java/security/cert/CRLException.java,
- java/security/cert/Certificate.java,
- java/security/cert/CertificateEncodingException.java,
- java/security/cert/CertificateException.java,
- java/security/cert/CertificateExpiredException.java,
- java/security/cert/CertificateFactory.java,
- java/security/cert/CertificateFactorySpi.java,
- java/security/cert/CertificateNotYetValidException.java,
- java/security/cert/CertificateParsingException.java,
- java/security/cert/X509CRL.java,
- java/security/cert/X509CRLEntry.java,
- java/security/cert/X509Certificate.java,
- java/security/cert/X509Extension.java: Imported from Classpath.
- * java/util/Hashtable.java: Imported from Classpath.
-
- * java/util/zip/ZipInputStream.java: Create stub for
- createZipEntry.
-
- * gcj/javaprims.h: Updated class list.
-
- * Makefile.in, gcj/Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Add these new classes.
-
-2000-08-16 Rolf W. Rasmussen <rolfwr@ii.uib.no>
-
- * gnu/gcj/awt/ComponentDataBlitOp.java: New file.
- * gnu/gcj/awt/GLightweightPeer.java: New file.
- * java/awt/BorderLayout.java: Implemented all methods.
- * java/awt/Button.java (actionListener, actionCommand): Renamed
- and modifier change.
- (addNotify): Call super.
- (dispatchEventImpl): New method.
- (getListeners): New method.
- (label): Made package-private, not private.
- * java/awt/Canvas.java: Implemented class body.
- * java/awt/Color.java (brighter): New method.
- (darker): New method.
- (hashCode): New method.
- * java/awt/Component.java (visible, enabled, eventMask): Set defaults.
- (getGraphicsConfiguration): Delegate to
- getGraphicsConfigurationImpl().
- (getGraphicsConfigurationImpl): New method.
- (getToolkit): Only return value from peer if not null.
- (isDisplayable): Check with parent.
- (isShowing): No parent implies not showing.
- (getForeground): Check parent property if local is null.
- (getBackground): Likewise.
- (getFont): Likewise.
- (setForeground): Inform peer.
- (setBackground): Likewise
- (setLocale): Invalidate component.
- (getColorModel): Implemented.
- (setLocation): Invalidate, or ignore if no change.
- (setSize): Invalidate, or ignore if no change.
- (setBounds): Invalidate, or ignore if no change.
- (isOpaque): By default, heavyweight implies opaque.
- (isLightweight): Implemented.
- (getMaximumSize): Implemented.
- (doLayout): Implemented, NOP.
- (validate): Implemented, NOP.
- (invalidate): Only propagate to parent if parent was valid.
- (getGraphics): Implemented.
- (getFontMetrics): Implemented.
- (update): Implemented.
- (paintAll): Implemented.
- (repaint): Implemented all repaint methods.
- (print): Implemented.
- (printAll): Implemented.
- (createImage): Implemented.
- (dispatchEvent): Give the peer a chance to handle the event.
- (dispatchEventImpl): Dispatch paint events.
- (enableEvents): Lightweights enable events on parent component.
- (coalesceEvents): Coalesce paint events, and select event type
- using a switch.
- (coalescePaintEvents): New method.
- (processEvent): Fix unfortunate ordering of statements, and call
- correct method for MOUSE_CLICKED.
- (processPaintEvent): New method.
- (addNotify): Allow container to notify children before event
- mask is set in peer.
- (addNotifyContainerChildren): New method.
- (removeNotify): Visibility should not change on removeNotify.
- (paramString): Implemented.
- (list): Implemented two of the list methods.
- * Container (myInsets): Removed, insets are managed by peer.
- (getInsets): Query peer.
- (addImpl): Fix reparenting, enable events for lightweights,
- initialize component array.
- (validate): Call doLayout in validateTree() instead.
- (validateTree): Do nothing if already valid. Call beginValidate(),
- endValidate() on peer. Call validateTree() instead of validate()
- for children that are containers. Mark valid after validation of
- children.
- (setFont): Partial implementation.
- (paint): Implemented.
- (visitChildren): New method.
- (visitChild): New method.
- (update): Implemented.
- (print): Implemented.
- (paintComponents): Implemented.
- (printComponents): Consider translation and clipping.
- (getComponentAt): Ignore invisible children. Return this if no
- child match.
- (addNotify): Call super.
- (addNotifyContainerChildren): New method.
- (paramString): Implemented.
- (list): Implemented.
- * java/awt/EventQueue (invokeAndWait): Get system event queue the
- right way.
- (invokeLater): Likewise.
- (isDispatchThread): Likewise.
- * java/awt/FontMetrics (getLeading): Formula change.
- (getDescent): Consider leading also.
- (getMaxAscent): Default to getAscent().
- (getMaxDescent): Default to getDescent.
- (getMaxAdvance): Return value signifying unknown.
- (charWidth): Both methods implemented.
- (charsWidth): Implemented.
- (bytesWidth): Implemented.
- (getWidths): Implemented.
- * java/awt/Frame.java (NORMAL, ICONIFIED, iconImage, isResizable,
- state): New fields.
- (Frame): Rearragend constuctor chaining to disallow null being
- passed as a graphics configuration.
- (getTitle): Return empty string if null.
- (dispose): Removed.
- (getIconImage): New method.
- (setIconImage): New method.
- (finalize): New method.
- (setMenuBar): Notify peer.
- (isResizable): New method.
- (setResizable): New method.
- (getState): New method.
- (getFont): Removed.
- (remove): Implemented.
- (removeNotify): New method.
- (getFrames): New method.
- * java/awt/Graphics.java: Implemented body of class.
- * java/awt/Graphics2D.java: New file.
- * java/awt/GraphicsConfiguration.java: Enabled part of the API.
- * java/awt/Image.java: Implemented body of class.
- * java/awt/Panel.java (Panel): Call correct super constructor.
- (addNotify): Implemented.
- * java/awt/Rectangle.java (isEmpty): Fixed reversed logic.
- * java/awt/RenderingHints.java: New file.
- * java/awt/Toolkit.java (createComponent): Implemented.
- (getSystemEventQueue): Delegate to getSystemEventQueueImpl().
- * java/awt/Window.java (Window): Two new constructors. Reordered
- constructor chaining.
- (getGraphicsConfigurationImpl): New method.
- (finalize): Call super.
- (addNotify): Call super.
- (pack): Do layout stuff.
- (show): Ensure that peer exists and that component is valid.
- (dispose): Dispose owned children.
- (getOwner): Simplify code, casting null pointers is valid.
- (getGraphicsConfiguration): Ask peer if local value is null.
- * java/awt/event/ActionEvent.java (getActionCommand): Renamed from
- getcmd().
- * java/awt/image/BufferedImage.java: New file.
- * java/awt/image/RasterOp.java: New file.
- * java/awt/peer/ComponentPeer.java (getGraphicsConfiguration):
- More powerfull replacement for getColorModel().
- (getColorModel) Removed.
- (setEventMask) New method.
- * Makefile.am: Added new files.
- * Makefile.in: Rebuilt.
-
-2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * java/lang/natClass.cc (finit_name): Initialized with `finit$'.
- (finit_leg_name): New global.
- (java::lang::Class::getDeclaredMethods): Test for `finit$' or
- `$finit$'. This is a backward compatibility hack.
- (java::lang::Class::_getMethods): Likewise.
-
-2000-08-15 Andrew Haley <aph@cygnus.com>
-
- * include/jvm.h (_Jv_HashCode): New hash code.
-
-2000-08-15 Tom Tromey <tromey@cygnus.com>
-
- * java/io/ByteArrayOutputStream.java: Merged with Classpath.
-
-Sun Aug 13 19:53:01 2000 Anthony Green <green@redhat.com>
-
- * THANKS: More thanks.
-
-2000-08-10 Tom Tromey <tromey@cygnus.com>
-
- * java/net/natPlainSocketImpl.cc (bind): Don't go to error case
- when errno not set.
- (connect): Likewise.
- (accept): Likewise.
- (getOption): Likewise.
- * java/net/natPlainDatagramSocketImpl.cc (bind): Don't go to error
- case when errno not set.
- (peek): Likewise.
- (send): Likewise.
- (receive): Likewise.
- (mcastGrp): Likewise.
- (setOption): Likewise.
- (getOption): Likewise.
-
-2000-08-10 Bryce McKinlay <bryce@albatross.co.nz>
- John Stracke <francis@ecal.com>
-
- * gnu/gcj/protocol/http/Connection.java (gotHeaders): Removed.
- (connect): Don't falsely claim HTTP/1.1 compliance. Call
- getHttpHeaders().
- (disconnect): Don't unset connected flag.
- (getHeaderField (String)): Call connect() if not connected.
- (getHeaderField (int)): Ditto.
- (getHeaderFieldKey): Ditto.
- (getHttpHeaders): Don't call connect().
- * java/net/HttpURLConnection.java (instanceFollowRedirects,
- gotResponseVals): New fields.
- (getResponseCode): Call getResponseVals() conditionally.
- (getResponseMessage): Ditto.
- (getResponseVals): Call connect(). Don't throw FileNotFoundException.
-
-2000-08-09 Bryce McKinlay <bryce@albatross.co.nz>
-
- * Makefile.am: Move beans and applet classes to awt_java_source_files.
- * Makefile.in: Rebuilt.
- * java/awt/Color.java (getTransparency): New method.
- * java/awt/Component.java: Various updates.
- * java/awt/Container.java (removeNotify): Call super.removeNotify()
- after dealing with children.
- * java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
- * java/awt/Window.java: Various new methods and updates.
- * java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
- to int for switch.
- * java/awt/event/KeyEvent.java (paramString): Initialize `r'.
- * java/awt/event/WindowEvent.java (paramString): Ditto.
- * java/awt/geom/Dimension2D.java (clone): Wrap super call with
- try/catch block.
- * java/awt/geom/Point2D.java (clone): Ditto.
- * java/awt/geom/RectangularShape.java (clone): Ditto.
- * java/awt/image/ColorModel.java (bits, cspace, transparency, hasAlpha,
- isAlphaPremultiplied): Make package-private, not private.
-
-2000-08-08 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/convert/Input_UTF8.java (read): Fixed handling of
- surrogate characters.
- * gnu/gcj/convert/Output_UTF8.java (standardUTF8): Default to
- true.
- (write): Correct handling of surrogate characters.
-
-2000-08-07 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Method.java (hashCode): Use getName().
- (toString): Likewise.
- * java/lang/reflect/natMethod.cc (getType): Initialize
- exception_types.
-
- * java/lang/reflect/Method.java (toString): Use Class.getName, not
- Class.toString.
- * java/lang/reflect/Field.java (toString): Correct formatting.
- From Corey Minyard.
-
- * java/io/PipedInputStream.java (read(byte[],int,int)): Mostly
- rewrote.
- (receive): Streamlined.
-
-2000-08-05 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PrintWriter.java: Merged comments from Classpath.
- (printlnUnsynchronized): Removed.
- (println()): Print the separator.
- (println): Call println(), not printlnUnsynchronized.
- (out): Now protected, to match spec.
-
-2000-08-04 Tom Tromey <tromey@cygnus.com>
-
- * java/io/StreamTokenizer.java (TT_NONE): Now private.
- (nextToken): Handle backslashed newline. From Oskar Liljeblad.
- For PR java.io/301.
-
-2000-08-03 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectInputStream.java (readFields): Turn off
- readDataFromBlock while reading via GetField.
- (GetField$1.get(String, Object)): Pass Class of default value to
- getField.
- (getField): Allow for null default values.
-
- * java/io/ObjectOutputStream.java: Fixed typo in comment.
- (PutField$1.put): Fixed calls of checkType in most of the put
- methods to pass the correct parameter.
- (PutField$1.put(String, Object)): Allow for null value arg.
- (PutField$1.write): Turn off writeDataAsBlocks while writing via
- PutField.
-
- * java/io/ObjectStreamClass.java (serialPersistentFields): Fixed
- typo in spec'ed field name.
- (getSerialPersistentFields): Changed spelling of method to match
- the correct spelling of the spec'ed field name.
-
-2000-08-03 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (awt_java_source_files): Added new files.
-
-2000-08-03 Bryce McKinlay <bryce@albatross.co.nz>
-
- * Makefile.am: Add new AWT stubs.
- * java/awt/Canvas.java: New placeholder class.
- * java/awt/Checkbox.java: Ditto.
- * java/awt/CheckboxMenuItem.java: Ditto.
- * java/awt/Choice.java: Ditto.
- * java/awt/Dialog.java: Ditto.
- * java/awt/FileDialog.java: Ditto.
- * java/awt/List.java: Ditto.
- * java/awt/ScrollPane.java: Ditto.
- * java/awt/TextField.java: Ditto.
- * java/awt/datatransfer/Clipboard.java: Ditto.
- * java/awt/Component.java (treeLock): Now a static String. Add comment.
- * java/awt/MenuItem.java (MenuItem): Add default constructor.
- * java/awt/Toolkit.java: Added all methods from J2SE 1.3 API docs.
- Some commented out. Partially implemented.
- * java/awt/natToolkit.cc: Removed file.
-
-2000-08-03 Bryce McKinlay <bryce@albatross.co.nz>
-
- * Makefile.am: Make inner class CNI headers depend on libgcj.zip only.
- Fixes "make -j" builds.
- * Makefile.in: Rebuild.
-
-2000-08-02 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcj_la_SOURCES): Added posix.cc.
- * java/net/natPlainSocketImpl.cc: Include posix.h.
- (accept): Use _Jv_select.
- * java/net/natPlainDatagramSocketImpl.cc: Include posix.h.
- (receive): Use _Jv_select.
- * java/io/natFileDescriptorPosix.cc: Include posix.h.
- (available): Use _Jv_select.
- * java/lang/natSystem.cc: Include posix.h.
- (currentTimeMillis): Use _Jv_gettimeofday.
- * include/posix.h: New file.
- * posix.cc: New file.
-
- * scripts/encodings.pl: New file.
- * Makefile.in: Rebuilt.
- * Makefile.am (convert_source_files): Added IOConverter.java.
- * gnu/gcj/convert/UnicodeToBytes.java (UnicodeToBytes): Extend
- IOConverter.
- (getDefaultDecodingClass): Canonicalize default encoding name.
- (getEncoder): Likewise.
- * gnu/gcj/convert/BytesToUnicode.java (BytesToUnicode): Extend
- IOConverter.
- (getDefaultDecodingClass): Canonicalize default encoding name.
- (getDecoder): Likewise.
- * gnu/gcj/convert/IOConverter.java: New file.
-
-2000-08-02 Bryce McKinlay <bryce@albatross.co.nz>
-
- * interpret.cc (_Jv_InterpMethod::continue1): Type of `fun' changed
- to match C declaration in ffi.h.
- * Makefile.am: Add java/awt/Button.java.
- * Makefile.in: Rebuilt.
-
-2000-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Type of the
- cast of the second argument to `ffi_raw_call' changed to match
- prototype.
-
-2000-07-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * jni.cc (_Jv_JNIMethod::call): Type of the cast of the second
- argument to `ffi_raw_call' changed to match prototype.
-
-2000-07-31 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/awt/Component.java (toString): Implemented.
- * java/awt/Container.java (addImpl): Remove FIXME. Only call
- dispatchEvent() to dispatch the event.
- (removeImpl): Ditto.
-
-2000-07-30 Anthony Green <green@redhat.com>
-
- * java/awt/Component.java: Add treeLock object.
- (getTreeLock): Implement.
- (isShowing): Implement.
-
-2000-07-30 Tom Tromey <tromey@cygnus.com>
-
- * java/awt/BorderLayout.java (BorderLayout()): New constructor.
-
- * java/awt/Frame.java (Frame): Pass `null' to Window constructor.
-
- * java/awt/Window.java (addNotify): Wrote.
- (addWindowListener): Wrote.
- (getLocale): Wrote.
- (getWarningString): Wrote.
- (processEvent): Wrote.
- (processWindowEvent): Wrote.
- (removeWindowListener): Wrote.
- (show): Call validate(), setVisible().
- (toBack): Wrote.
- (toFront): Wrote.
-
- * java/awt/Toolkit.java (createWindow): Declare.
-
- * java/awt/Frame.java (addNotify): Use getToolkit to find
- toolkit.
-
- * java/awt/Component.java (invalidate): Wrote.
- (isValid): Wrote.
- (getToolkit): Wrote.
-
- * java/awt/Container.java (addContainerListener): Removed
- unnecessary cast.
- (removeContainerListener): Likewise.
- (addImpl): Wrote.
- (add(Component)): Use it.
- (add(String,Component)): Likewise.
- (add(Component,int)): Likewise.
- (add(Component,Object)): Likewise.
- (add(Component,Object,int)): Likewise.
- (doLayout): Wrote.
- (getAlignmentX): Wrote.
- (getAlignmentY): Wrote.
- (getComponentAt): Wrote.
- (getMaximumSize): Wrote.
- (invalidate): Wrote.
- (list(PrintStream,int)): Wrote.
- (list(PrintWriter,int)): Wrote.
- (getMinimumSize): Wrote.
- (getPreferredSize): Wrote.
- (printComponents): Wrote.
- (processContainerEvent): Look at containerListener, not
- componentListener.
- (remove): Added event processing and peer destruction.
- (removeAll): Use remove.
- (removeNotify): Wrote.
- (validate): Wrote.
- (validateTree): Wrote.
-
- * java/awt/Scrollbar.java (addNotify): Do nothing if peer exists.
- * java/awt/Label.java (addNotify): Do nothing if peer exists.
- * java/awt/Container.java (addNotify): Don't create Container
- peer.
- * java/awt/Button.java (addNotify): Do nothing if peer exists.
-
-2000-07-30 Tom Tromey <tromey@cygnus.com>
-
- * java/awt/Container.java (remove(int)): Wrote.
- (remove(Component)): Wrote.
- (add(Component)): Wrote.
- (add(Component,int)): Wrote.
- (removeAll): Wrote.
- (addNotify): Set our own peer.
- * java/awt/Scrollbar.java (listeners): Changed type.
- (Scrollbar): Don't initialize listeners.
- (addNotify): Wrote.
- (setValue): Call setValues.
- (setMinimum): Likewise.
- (setMaxPriority): Likewise.
- (setVisibleAmount): Likewise.
- (setValues): Wrote.
- (setUnitIncrement): Forward to peer.
- (setLineIncrement): Call setUnitIncrement.
- (setPageIncrement): Call setBlockIncrement.
- (setBlockIncrement): Forward to peer.
- (addAdjustmentListener): Rewrote.
- (removeAdjustmentListener): Rewrote.
- (processAdjustmentEvent): Rewrote.
- (paramString): Wrote.
- * Makefile.in: Rebuilt.
- * Makefile.am (awt_java_source_files): Added Button.java.
- * java/awt/Button.java: New file.
- * java/awt/Toolkit.java (createLabel): Declare.
- (createButton): Likewise.
- (createScrollbar): Likewise.
- (createContainer): Likewise.
- * java/awt/Label.java (addNotify): Wrote.
- (setAlignment): Call setAlignment in the peer.
- (setText): Call setText in the peer.
-
-2000-07-28 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectOutputStream.java (writeObject): Per spec, call
- NotSerializableException with just the class name.
-
-2000-07-26 Andrew Haley <aph@cygnus.com>
-
- * interpret.cc (continue1): Insert missing break into switch.
-
-2000-07-28 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectStreamException.java: Made constructors protected.
-
-2000-07-27 Tom Tromey <tromey@cygnus.com>
-
- * java/io/OutputStreamWriter.java (close): Only flush if not
- closed.
-
-2000-07-27 Warren Levy <warrenl@cygnus.com>
-
- * mauve-libgcj: Activated serialization tests.
- * gcj/field.h (getModifiers): Mask off unknown flags.
- * gnu/java/security/provider/SHA.java (munch): Reset buffer to 0 so
- spurious bits don't cause discrepancies.
- * java/io/ObjectOutputStream.java: Fixed typo in comment.
- * java/io/ObjectStreamClass.java: Fixed typos in comments.
- (lookup): Applied patch from Brian Jones <cbj@gnu.org> to optimize.
- (hasClassInitializer): Call getDeclaredMethod instead of getMethod.
- * java/lang/Throwable.java (serialVersionUID): New field.
- * java/lang/reflect/Modifier.java (ALL_FLAGS): Preserve STRICT if used.
- * java/lang/reflect/natConstructor.cc (getModifiers): Mask off
- unknown flags.
- * java/lang/reflect/natMethod.cc: Ditto.
- * java/security/Key.java (serialVersionUID): Removed field for now.
- * java/security/interfaces/DSAPrivateKey.java (serialVersionUID): Ditto.
- * java/security/interfaces/DSAPublicKey.java (serialVersionUID): Ditto.
-
-2000-07-22 Tom Tromey <tromey@cygnus.com>
-
- * java/awt/geom/RectangularShape.java (getPathIterator):
- Wrote.
-
-2000-07-23 Rolf W. Rasmussen <rolfwr@ii.uib.no>
-
- * libjava/java/awt/image/ColorModel.java: New file, replaces the
- stub libjava/java/awt/ColorModel.java which was located in the
- wrong package.
- * libjava/java/awt/image/ComponentColorModel.java: New file.
- * libjava/java/awt/image/ComponentSampleModel.java: New file.
- * libjava/java/awt/image/DataBuffer.java: New file.
- * libjava/java/awt/image/DataBufferByte.java: New file.
- * libjava/java/awt/image/DataBufferInt.java: New file.
- * libjava/java/awt/image/DataBufferUShort.java: New file.
- * libjava/java/awt/image/DirectColorModel.java: New file.
- * libjava/java/awt/image/PackedColorModel.java: New file.
- * libjava/java/awt/image/Raster.java: New file.
- * libjava/java/awt/image/SampleModel.java: New file.
- * libjava/java/awt/image/SinglePixelPackedSampleModel.java: New
- file.
- * libjava/java/awt/image/IndexColorModel.java: New file.
- * libjava/java/awt/image/ImageConsumer.java: Removed import of
- java.awt.ColorModel stub.
-
- * gnu/gcj/util/BitMaskExtent.java: New file, utility class.
- * gnu/gcj/util/Buffers.java: New file, utility class.
-
- * libjava/Makefile.am: Updated to include new files.
- * libjava/Makefile.in: Rebuilt.
-
-2000-07-23 Oskar Liljeblad <osk@hem.passagen.se>
-
- * java/io/StreamTokenizer.java: Merged with classpath.
-
-2000-07-20 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (awt_java_source_files): Updated for new files.
- * java/awt/Adjustable.java (HORIZONTAL, VERTICAL): Set values.
- * java/awt/Label.java: New file.
- * java/awt/Rectangle.java (Rectangle): Extend Rectangle2D.
- (createIntersection, createUnion, getBounds2D): New methods.
- * java/awt/Scrollbar.java: New file.
- * java/awt/Shape.java: Updated to 1.2.
- * java/awt/geom/AffineTransform.java: New file.
- * java/awt/geom/Ellipse2D.java: New file.
- * java/awt/geom/NoninvertibleTransformException.java: New file.
- * java/awt/geom/PathIterator.java: New file.
- * java/awt/geom/Rectangle2D.java: New file.
- * java/awt/geom/RectangularShape.java: New file.
- * java/awt/geom/Point2D.java (Double, Float): New inner classes.
- * java/awt/geom/IllegalPathStateException.java: New file.
-
- * scripts/showval.java: New file.
-
- * scripts/classes.pl (scan): Print inner classes properly.
- * gcj/javaprims.h: Updated class list.
-
- * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
- initialize String fields for interpreted classes. Fixes bug
- reported by Hans Boehm.
-
- * java/io/File.java (getParentFile): New method, from Classpath
- via Oskar Liljeblad.
-
- * java/util/Vector.java (remove(Object)): Implemented.
-
-2000-07-19 Jeff Sturm <jeff.sturm@appnet.com>
-
- * java/lang/natThrowable.cc (fillInStackTrace): Check for
- zero return from backtrace().
-
-2000-07-15 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/awt/EventQueue.java (invokeAndWait): Call postEvent() within
- synchronized block.
- * java/awt/event/InvocationEvent (dispatch): Synchronize on notifier
- before calling notifyAll().
-
-2000-07-13 Bryce McKinlay <bryce@albatross.co.nz>
-
- Add missing files from last check-in:
- * java/awt/image/ImageConsumer.java: New file.
- * java/awt/image/ImageProducer.java: New file.
- * java/awt/image/ImageObserver.java: New file.
-
-2000-07-12 Bryce McKinlay <bryce@albatross.co.nz>
-
- Merged implementation of java.applet from classpath:
- * java/applet/Applet.java: New file.
- * java/applet/AppletContext.java: New file.
- * java/applet/AppletStub.java: New file.
- * java/applet/AudioClip.java: New file.
-
- * Makefile.am: Added new java.applet classes.
- * Makefile.in: Rebuilt.
-
-2000-07-12 Bryce McKinlay <bryce@albatross.co.nz>
-
- AWT Stuff:
- * java/util/ResourceBundle.java (getLocale): stub.
- * Makefile.am: Added new AWT classes.
- * Makefile.in: Rebuilt.
- * java/awt/AWTEvent.java: Add EVENT_MASK constants, isConsumed,
- constructors. Fix toString() and paramString().
- * java/awt/AWTEventMulticaster.java: New class. Implemented.
- * java/awt/CheckboxGroup.java: New class.
- * java/awt/ColorModel.java: New class.
- * java/awt/Component.java: Added stubs for most methods. Implemented
- event dispatch.
- * java/awt/Container.java: ditto.
- * java/awt/ComponentOrientation.java: New class. Partly implemented.
- * java/awt/Cursor.java: ditto.
- * java/awt/Event.java: Fix paramString().
- * java/awt/EventQueue.java: New class. Implemented.
- * java/awt/Font.java: Added additional stub methods. Implemented
- toString().
- * java/awt/FontMetrics.java: New class. Stubbed.
- * java/awt/GraphicsConfiguration.java: New class. Complete, except for
- Java2D parts.
- * java/awt/Insets.java: New class. Implemented.
- * java/awt/Menu.java: Add new methods. Partially implemented.
- * java/awt/MenuItem.java: Add new methods and fields. Partially
- implemented.
- * java/awt/MenuShortcut.java: New class. Implemented.
- * java/awt/Panel.java: New class. Placeholder.
- * java/awt/PopupMenu.java: New class. Stubbed.
- * java/awt/Rectangle.java: New class. Implemented.
- * java/awt/Toolkit.java: Added getSystemEventQueue() stub.
- * java/awt/event/ActionEvent.java: Implement paramString().
- * java/awt/event/AdjustmentEvent.java: Implement paramString().
- * java/awt/event/ComponentEvent.java: Implement paramString().
- * java/awt/event/ContainerEvent.java: Implement paramString().
- * java/awt/event/FocusEvent.java: Implement paramString().
- * java/awt/event/HierarchyBoundsAdapter.java: New class.
- * java/awt/event/HierarchyBoundsListener.java: New class.
- * java/awt/event/HierarchyEvent.java: New class.
- * java/awt/event/HierarchyListener.java: New class.
- * java/awt/event/InputMethodEvent.java: Implement paramString().
- * java/awt/event/InvocationEvent.java: Implement paramString(). Throw
- exception if !catchExceptions.
- * java/awt/event/ItemEvent.java: Implement paramString().
- * java/awt/event/KeyEvent.java: Implement paramString().
- * java/awt/event/MouseEvent.java: Implement paramString().
- * java/awt/event/PaintEvent.java: Implement paramString().
- * java/awt/event/TextEvent.java: Implement paramString().
- * java/awt/event/WindowEvent.java: Implement paramString().
-
- AWT Peer interfaces:
- * java/awt/peer/ButtonPeer.java: New file.
- * java/awt/peer/ListPeer.java: New file.
- * java/awt/peer/CanvasPeer.java: New file.
- * java/awt/peer/MenuBarPeer.java: New file.
- * java/awt/peer/CheckboxMenuItemPeer.java: New file.
- * java/awt/peer/MenuComponentPeer.java: New file.
- * java/awt/peer/CheckboxPeer.java: New file.
- * java/awt/peer/MenuItemPeer.java: New file.
- * java/awt/peer/ChoicePeer.java: New file.
- * java/awt/peer/MenuPeer.java: New file.
- * java/awt/peer/ComponentPeer.java: Implemented.
- * java/awt/peer/PanelPeer.java: New file.
- * java/awt/peer/ContainerPeer.java: Implemented.
- * java/awt/peer/PopupMenuPeer.java: New file.
- * java/awt/peer/DialogPeer.java: New file.
- * java/awt/peer/ScrollPanePeer.java: New file.
- * java/awt/peer/FileDialogPeer.java: New file.
- * java/awt/peer/ScrollbarPeer.java: New file.
- * java/awt/peer/FontPeer.java: New file.
- * java/awt/peer/TextAreaPeer.java: New file.
- * java/awt/peer/FramePeer.java: Implemented.
- * java/awt/peer/TextComponentPeer.java: New file.
- * java/awt/peer/LabelPeer.java: New file.
- * java/awt/peer/TextFieldPeer.java: New file.
- * java/awt/peer/LightweightPeer.java: New file.
- * java/awt/peer/WindowPeer.java: Implemented.
-
-2000-07-06 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
- Initialize static final String fields.
-
-2000-07-03 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PrintWriter.java (print): Call write(String), not
- print(String). See PR libgcj/277.
- (print(String)): Use write, not out.write.
-
-2000-06-30 Tom Tromey <tromey@cygnus.com>
-
- * include/jni.h: Include <gcj/array.h>. Fixes PR libgcj/270.
-
-2000-06-27 Andrew Haley <aph@cygnus.com>
-
- * java/io/File.java (createTempFile): Close the FileDescriptor
- used to create a temp file. Fixes some of PR 203.
- * java/io/natFileDescriptorPosix.cc (open): Call garbage
- collection if we run out of file handles.
-
-2000-06-28 Warren Levy <warrenl@cygnus.com>
-
- * gnu/java/security/provider/Gnu.java: New file.
- * gnu/java/security/provider/SHA.java: New file.
- * gnu/java/security/provider/SHA1PRNG.java: New file.
- * Makefile.am: Added the above files.
- * Makefile.in: Rebuilt.
-
- * java/io/ObjectStreamClass.java (setUID): Use Gnu SHA instead of SHS.
-
-2000-06-28 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/ThreadGroup.java: Added synchronized flag to many methods.
- (destroyed_flag): Removed.
- (isDestroyed, removeGroup, removeThread): Test for parent == null.
- (activeCount): Added spec note.
-
-2000-06-27 Warren Levy <warrenl@cygnus.com>
-
- * java/security/Principal.java: New file.
- * Makefile.am: Added Principal.java.
- * Makefile.in: Rebuilt.
-
-2000-06-27 Rolf W. Rasmussen <rolfwr@ii.uib.no>
-
- * java/awt/event/MouseEvent.java: Fixed coordinate space
- confusion.
-
-2000-06-27 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PushbackInputStream.java (read): If there are characters
- in the buffer, don't also call super.read().
- * java/io/PushbackReader.java (read): If there are characters in
- the buffer, don't also call super.read().
-
- * java/lang/Double.java (valueOf): Call parseDouble().
-
-2000-06-26 Warren Levy <warrenl@cygnus.com>
-
- * java/beans/PropertyChangeEvent.java (oldVal): Renamed to oldValue.
- (newVal): Renamed to newValue.
- * java/beans/PropertyVetoException.java (changeEvent): Renamed to evt.
- * java/beans/beancontext/BeanContextServiceRevokedEvent.java
- (revokeNow): Renamed to invalidateRefs.
- * java/io/OptionalDataException.java: Updated FIXME.
- (eof): New placeholder field.
- (length); Ditto.
- * java/io/WriteAbortedException.java (message): Made transient.
- * java/lang/ClassNotFoundException.java: Updated comments for JDK 1.2.
- * java/lang/Throwable.java (stackTrace): Made transient.
- * java/net/InetAddress.java: Made Serializable.
- * java/security/KeyPair.java: Made Serializable.
- * java/security/Provider.java: Replaced with Classpath version that
- implements serialization and proper methods.
- * java/text/ChoiceFormat.java (strings): Renamed to choiceFormats.
- (limits): Renamed to choiceLimits.
-
-2000-06-24 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natDouble.cc (parseDouble): Renamed from
- doubleValueOf.
- * java/lang/Double.java (parseDouble): Renamed from
- doubleValueOf. Now public.
-
-2000-06-23 Andrew Haley <aph@cygnus.com>
-
- * java/lang/ieeefp.h: Handle ia64, fr30, mcore.
- * java/lang/natThrowable.cc: On IA-64, use __ia64_backtrace.
-
-2000-06-23 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/natMethod.cc: Include <alloca.h>.
- * java/lang/natDouble.cc: Always include <alloca.h>.
- Fix for PR libgcj/267.
-
-2000-06-21 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/ThreadGroup.java (add(Thread)): Rename to addThread() to
- comply with classpath VM spec.
- (add(Group)): Rename to addGroup().
- * java/lang/Thread.java (Thread): Use addThread().
- * java/lang/natThread.cc (finish_): Use removeThread().
-
-2000-06-20 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/ThreadGroup.java: Merged with classpath.
- * prims.cc (_Jv_RunMain): Don't use `main_group'.
- * gnu/gcj/runtime/FirstThread.java: Remove ThreadGroup constructor
- argument.
- * java/lang/Thread.java (Thread): Bootstrap initial thread from
- ThreadGroup.root if Thread.currentThread is null. Honour the
- ThreadGroup's max priority setting.
-
-2000-06-18 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (forName): Removed dead code. Initialize
- returned class. For PR gcj/260.
-
-2000-06-16 Tom Tromey <tromey@cygnus.com>
-
- Fix for PR libgcj/261:
- * include/win32-signal.h (MAKE_THROW_FRAME): Added `_exception'
- argument.
- * include/sparc-signal.h (MAKE_THROW_FRAME): Added `_exception'
- argument. (This is a patch from long ago that somehow went
- missing.)
-
-2000-06-15 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/convert/natIconv.cc (iconv_adapter): New function.
- (read): Use it.
- (write): Likewise.
-
-2000-06-15 Bryce McKinlay <bryce@albatross.co.nz>
-
- Fix for PR java.lang/258:
- * prims.cc (_Jv_PrimClass): Set state of primitive class to
- JV_STATE_DONE, to prevent accidental initialization.
- * java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
- _Jv_InterfaceAssignableFrom if target is an interface and source is an
- interface or an abstract class. Remove redundant initializeClass calls.
- Remove duplicate if_idt test.
- (_Jv_InterfaceAssignableFrom): New function.
- * java/lang/Class.h (_Jv_InterfaceAssignableFrom): Prototype.
-
-2000-05-31 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (DECLARE_PRIM_TYPE): Define a vtable as well.
- (_Jv_PrimClass): Set `methods' by calling _Jv_FindArrayClass.
- * include/jvm.h (struct _Jv_ArrayVTable): Declare.
- (NUM_OBJECT_METHODS): New define.
- * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
- `array_vtable' parameter. Added assertion.
- * java/lang/Class.h (_Jv_FindArrayClass): Added `array_vtable'
- parameter.
-
-2000-05-31 Bryce McKinlay <bryce@albatross.co.nz>
-
- * gcj/cni.h: Include <string.h>.
- * defineclass.cc: Include <alloca.h>.
- * interpret.cc: Ditto.
- * gij.cc: Include <stdlib.h>.
-
-2000-05-30 Tom Tromey <tromey@cygnus.com>
-
- * include/name-finder.h: Include <sys/wait.h>.
- (_Jv_name_finder::pid): Now of type `pid_t'.
- (_Jv_name_finder::~_Jv_name_finder): Call waitpid().
- * java/lang/Throwable.java (CPlusPlusDemangler.close): Call
- `proc.waitFor()'.
-
-2000-05-24 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectOutputStream.java (writeObject): Use component type
- when writing arrays.
- Fixed typo.
-
-2000-05-20 Bryce McKinlay <bryce@albatross.co.nz>
-
- Fix for PR libgcj/226:
- * java/lang/Class.h (_Jv_InitClass): Don't call __builtin_expect,
- since this is an installed header.
-
- Fix for PR libgcj/228:
- * java/util/zip/ZipFile (getInputStream): Create inflater with
- nowrapper option.
-
- * java/util/zip/natInflater.cc (inflate): Throw zlib's error message
- with DataFormatException.
-
-2000-05-20 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (hack1): Removed.
- (awto_files): Likewise.
- (libgcjawt_la_SOURCES): Likewise.
- (EXTRA_libgcjawt_la_SOURCES): Likewise.
- (libgcjawt_la_DEPENDENCIES): Likewise.
- (libgcjawt_la_LIBADD): Likewise.
- (libgcjawt_la_LDFLAGS): Likewise.
- (libgcjawt_la_LINK): Likewise.
- ($(awt_java_source_files:.java=.class)): Likewise.
- (libgcj.zip): Don't depend on AWT files.
- (MOSTLYCLEANFILES): Don't include AWT files.
- ($(awto_files)): Removed.
- (nat_headers): Removed AWT files.
- (cond_awt_java_source_files): Removed.
- (ordinary_java_source_files): Added awt_java_source_files.
- * libgcj.spec.in (*lib): Removed -lgcjawt.
- * configure: Rebuilt.
- * configure.in: Removed --enable-java-awt option.
-
-2000-05-20 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/util/zip/ZipEntry.java: Implement Cloneable, per JDK1.2 docs.
- (ZipEntry): Copy the `name' field.
- (clone): Implement JDK1.2 method.
- (setCompressedSize): ditto.
- (hashCode): ditto.
-
-2000-05-19 Tom Tromey <tromey@cygnus.com>
-
- * java/io/BufferedWriter.java: Merged with Classpath.
- * java/io/BufferedOutputStream.java: Merged with Classpath.
-
-2000-05-16 Andrew Haley <aph@cygnus.com>
-
- * sysdep/ia64.c (ia64_backtrace_helper): Pass NULL pointer to
- build_ia64_frame_state.
- * sysdep/ia64-frame.h (build_ia64_frame_state): Match with
- defintion in gcc.
-
-2000-05-15 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/beans/BeanInfoEmbryo.java: Removed.
- * gnu/gcj/beans/EmptyBeanInfo.java: Removed.
- * gnu/gcj/beans/ExplicitBeanInfo.java: Removed.
- * gnu/gcj/beans/IntrospectionIncubator.java: Removed.
- * gnu/gcj/beans/editors/ColorEditor.java: Removed.
- * gnu/gcj/beans/editors/FontEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeBooleanEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeByteEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeDoubleEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeFloatEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeIntEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeLongEditor.java: Removed.
- * gnu/gcj/beans/editors/NativeShortEditor.java: Removed.
- * gnu/gcj/beans/editors/StringEditor.java: Removed.
- * gnu/gcj/beans/info/ComponentBeanInfo.java: Removed.
- * gnu/gcj/io/ClassLoaderObjectInputStream.java: Removed.
- * gnu/gcj/io/NullOutputStream.java: Removed.
- * gnu/gcj/io/ObjectIdentityWrapper.java: Removed.
- * gnu/gcj/lang/ArrayHelper.java: Removed.
- * gnu/gcj/lang/ClassHelper.java: Removed.
- * gnu/gcj/lang/reflect/TypeSignature.java: Removed.
-
- * gnu/java/beans/BeanInfoEmbryo.java: New file.
- * gnu/java/beans/EmptyBeanInfo.java: New file.
- * gnu/java/beans/ExplicitBeanInfo.java: New file.
- * gnu/java/beans/IntrospectionIncubator.java: New file.
- * gnu/java/beans/editors/ColorEditor.java: New file.
- * gnu/java/beans/editors/FontEditor.java: New file.
- * gnu/java/beans/editors/NativeBooleanEditor.java: New file.
- * gnu/java/beans/editors/NativeByteEditor.java: New file.
- * gnu/java/beans/editors/NativeDoubleEditor.java: New file.
- * gnu/java/beans/editors/NativeFloatEditor.java: New file.
- * gnu/java/beans/editors/NativeIntEditor.java: New file.
- * gnu/java/beans/editors/NativeLongEditor.java: New file.
- * gnu/java/beans/editors/NativeShortEditor.java: New file.
- * gnu/java/beans/editors/StringEditor.java: New file.
- * gnu/java/beans/info/ComponentBeanInfo.java: New file.
- * gnu/java/io/ClassLoaderObjectInputStream.java: New file.
- * gnu/java/io/NullOutputStream.java: New file.
- * gnu/java/io/ObjectIdentityWrapper.java: New file.
- * gnu/java/lang/ArrayHelper.java: New file.
- * gnu/java/lang/ClassHelper.java: New file.
- * gnu/java/lang/reflect/TypeSignature.java: New file.
-
- * Makefile.am: Updated for moving Classpath files from gnu/gcj
- namespace back to the original Classpath gnu/java namespace.
- * Makefile.in: Rebuilt.
-
- * java/beans/Beans.java: Namespace change.
- * java/beans/EventSetDescriptor.java: Namespace change.
- * java/beans/Introspector.java: Namespace change.
- * java/beans/PropertyEditorManager.java: Namespace change.
- * java/io/ObjectInputStream.java: Namespace change.
- * java/io/ObjectOutputStream.java: Namespace change.
- * java/io/ObjectStreamClass.java: Namespace change.
- * java/io/ObjectStreamField.java: Namespace change.
-
-2000-04-21 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectInputStream.java: Reverted workarounds of 2000-04-13
- now that compiler patch is available.
- Removed unneeded System.loadLibrary.
- * java/io/ObjectOutputStream.java: Removed unneeded System.loadLibrary.
- * java/io/ObjectStreamClass.java: Removed unneeded System.loadLibrary.
-
-2000-04-19 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natClass.cc (_Jv_IsAssignableFrom): Make sure source
- and target classes have been initialized.
-
-2000-04-19 Andrew Haley <aph@cygnus.com>
-
- * java/lang/String.java: implement Serializable, Comparable.
- (compareTo (Object)): New method.
-
-2000-04-19 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectStreamClass.java (getDefinedSUID): Use getDeclaredField
- instead of getField to retrieve non-public field.
- (getSerialPersistantFields): Ditto.
-
-2000-04-18 Warren Levy <warrenl@cygnus.com>
-
- * mauve-libgcj: Turned off object serialization tests temporarily
- due to compiler error.
-
-2000-04-17 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectInputStream.java (DEBUG): Disabled unused method
- to avoid build problem.
- (DEBUGln): Ditto.
- * mauve-libgcj: Turned on object serialization tests.
-
-2000-04-17 Tom Tromey <tromey@cygnus.com>
-
- * libgcj.spec.in (*lib): Added -lgcjawt.
-
-2000-04-17 Andrew Haley <aph@cygnus.com>
-
- * Makefile.am: Add new files:
- gnu/gcj/io/SimpleSHSStream.java, gnu/gcj/io/natSimpleSHSStream.cc,
- gnu/gcj/io/shs.cc.
- * Makefile.in: Rebuilt.
-
- * java/lang/natClass.cc (_Jv_IsAssignableFrom): Check for an
- interface that has no implementations.
- Check for an attempt to assign an abstract class to an interface.
-
- * java/io/ObjectStreamClass.java (setUID): Use a SimpleSHSStream
- if we fail to find MessageDigest.getInstance ("SHA").
-
- * gnu/gcj/io/SimpleSHSStream.java: New file.
- * gnu/gcj/io/natSimpleSHSStream.java: New file.
- * gnu/gcj/io/shs.cc: New file.
- * gnu/gcj/io/shs.h: new file.
-
- * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Make arrays
- serializable.
-
- * gnu/gcj/lang/reflect/TypeSignature.java: Don't remove
- punctuation from the classname of an array element.
-
- * gcj/javaprims.h: Add SimpleDigestStream.
-
-2000-04-17 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natClass.cc (getPrivateField): Make recursive calls
- to getPrivateField for superclasses.
-
-2000-04-14 Andrew Haley <aph@cygnus.com>
-
- * Makefile.am: Add new files:
- java/io/ObjectOutputStream$PutField.h,
- java/io/ObjectInputStream$GetField.h,java/io/natObjectInputStream.cc,
- java/io/natObjectOutputStream.cc
- * Makefile.in: Rebuilt.
- * gcj/Makefile.in: Rebuilt.
- * include/Makefile.in: Rebuilt.
- * java/lang/Class.h (getPrivateField): New method.
- (getPrivateMethod): Ditto.
- Make java::io::ObjectOutputStream, java::io::ObjectInputStream,
- and java::io::ObjectStreamClass our friends.
- * java/lang/natClass.cc (getPrivateField): New method.
- (getPrivateMethod): Ditto.
- (_Jv_IsAssignableFrom): Return false for Interface with no IDT.
- * gcj/javaprims.h: Add serialization classes.
- * java/io/ObjectInputStream.java (setBooleanField): Rewrite in Java.
- (setByteField): Ditto.
- (setCharField): Ditto.
- (setDoubleField): Ditto.
- (setFloatField): Ditto.
- (setIntField): Ditto.
- (setLongField): Ditto.
- (setShortField): Ditto.
- (setObjectField): Ditto.
- * java/io/ObjectOutputStream.java: (getBooleanField): Rewrite in
- Java.
- (getByteField): Ditto.
- (getCharField): Ditto.
- (getDoubleField): Ditto.
- (getFloatField): Ditto.
- (getIntField): Ditto.
- (getLongField): Ditto.
- (getShortField): Ditto.
- (getObjectField): Ditto.
- * java/io/ObjectStreamClass.java (hasClassInitializer): Rewrite in
- Java.
- (getSerialPersistantFields): Ditto.
- (getDefinedSUID): Ditto.
- * java/io/natObjectOutputStream.cc: New file.
- * java/io/natObjectInputStream.cc: New file.
-
-2000-04-13 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectInputStream.java: Temporary workarounds for compiler
- problems. Revert to previous version to reproduce and when fixed.
-
-2000-04-13 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/io/ClassLoaderObjectInputStream.java: New file.
- * gnu/gcj/io/NullOutputStream.java: New file.
- * gnu/gcj/lang/reflect/TypeSignature.java: New file.
- * java/io/BlockDataException.java: New file.
- * java/io/Externalizable.java: New file.
- * java/io/InvalidClassException.java: New file.
- * java/io/InvalidObjectException.java: New file.
- * java/io/NotActiveException.java: New file.
- * java/io/NotSerializableException.java: New file.
- * java/io/ObjectInput.java: New file.
- * java/io/ObjectInputStream.java: New file.
- * java/io/ObjectInputValidation.java: New file.
- * java/io/ObjectOutput.java: New file.
- * java/io/ObjectOutputStream.java: New file.
- * java/io/ObjectStreamClass.java: New file.
- * java/io/ObjectStreamConstants.java: New file.
- * java/io/ObjectStreamField.java: New file.
- * java/io/Replaceable.java: New file.
- * java/io/Resolvable.java: New file.
- * java/io/SerializablePermission.java: New file.
- * java/io/WriteAbortedException.java: New file.
- * java/security/BasicPermission.java: New file.
- * java/security/DigestOutputStream.java: New file.
- * java/security/Guard.java: New file.
- * java/security/Permission.java: New file.
- * java/security/PermissionCollection.java: New file.
- * Makefile.am: Added above files.
- * Makefile.in: Rebuilt.
-
- * java/beans/Beans.java (instantiate): Activated serialization code.
- * java/lang/SecurityManager.java (checkPermission): New method.
-
-2000-04-12 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/beans/BeanInfoEmbryo.java: New file.
- * gnu/gcj/beans/EmptyBeanInfo.java: New file.
- * gnu/gcj/beans/ExplicitBeanInfo.java: New file.
- * gnu/gcj/beans/IntrospectionIncubator.java: New file.
- * gnu/gcj/beans/editors/ColorEditor.java: New file.
- * gnu/gcj/beans/editors/FontEditor.java: New file.
- * gnu/gcj/beans/editors/NativeBooleanEditor.java: New file.
- * gnu/gcj/beans/editors/NativeByteEditor.java: New file.
- * gnu/gcj/beans/editors/NativeDoubleEditor.java: New file.
- * gnu/gcj/beans/editors/NativeFloatEditor.java: New file.
- * gnu/gcj/beans/editors/NativeIntEditor.java: New file.
- * gnu/gcj/beans/editors/NativeLongEditor.java: New file.
- * gnu/gcj/beans/editors/NativeShortEditor.java: New file.
- * gnu/gcj/beans/editors/StringEditor.java: New file.
- * gnu/gcj/beans/info/ComponentBeanInfo.java: New file.
- * gnu/gcj/io/ObjectIdentityWrapper.java: New file.
- * gnu/gcj/lang/ArrayHelper.java: New file.
- * gnu/gcj/lang/ClassHelper.java: New file.
- * java/beans/BeanDescriptor.java: New file.
- * java/beans/BeanInfo.java: New file.
- * java/beans/Beans.java: New file.
- * java/beans/Customizer.java: New file.
- * java/beans/DesignMode.java: New file.
- * java/beans/EventSetDescriptor.java: New file.
- * java/beans/FeatureDescriptor.java: New file.
- * java/beans/IndexedPropertyDescriptor.java: New file.
- * java/beans/IntrospectionException.java: New file.
- * java/beans/Introspector.java: New file.
- * java/beans/MethodDescriptor.java: New file.
- * java/beans/ParameterDescriptor.java: New file.
- * java/beans/PropertyChangeEvent.java: New file.
- * java/beans/PropertyChangeListener.java: New file.
- * java/beans/PropertyChangeSupport.java: New file.
- * java/beans/PropertyDescriptor.java: New file.
- * java/beans/PropertyEditor.java: New file.
- * java/beans/PropertyEditorManager.java: New file.
- * java/beans/PropertyEditorSupport.java: New file.
- * java/beans/PropertyVetoException.java: New file.
- * java/beans/SimpleBeanInfo.java: New file.
- * java/beans/VetoableChangeListener.java: New file.
- * java/beans/VetoableChangeSupport.java: New file.
- * java/beans/Visibility.java: New file.
- * java/beans/beancontext/BeanContext.java: New file.
- * java/beans/beancontext/BeanContextChild.java: New file.
- * java/beans/beancontext/BeanContextChildComponentProxy.java: New file.
- * java/beans/beancontext/BeanContextChildSupport.java: New file.
- * java/beans/beancontext/BeanContextContainerProxy.java: New file.
- * java/beans/beancontext/BeanContextEvent.java: New file.
- * java/beans/beancontext/BeanContextMembershipEvent.java: New file.
- * java/beans/beancontext/BeanContextMembershipListener.java: New file.
- * java/beans/beancontext/BeanContextProxy.java: New file.
- * java/beans/beancontext/BeanContextServiceAvailableEvent.java:
- New file.
- * java/beans/beancontext/BeanContextServiceProvider.java: New file.
- * java/beans/beancontext/BeanContextServiceProviderBeanInfo.java:
- New file.
- * java/beans/beancontext/BeanContextServiceRevokedEvent.java: New file.
- * java/beans/beancontext/BeanContextServiceRevokedListener.java:
- New file.
- * java/beans/beancontext/BeanContextServices.java: New file.
- * java/beans/beancontext/BeanContextServicesListener.java: New file.
- * java/util/AbstractCollection.java: New file.
- * java/util/AbstractList.java: New file.
- * java/util/Arrays.java: New file.
- * Makefile.am: Added above files.
- * Makefile.in: Rebuilt.
-
-2000-04-11 Warren Levy <warrenl@cygnus.com>
-
- * java/awt/AWTError.java: New file.
- * java/awt/AWTEvent.java: New file.
- * java/awt/AWTException.java: New file.
- * java/awt/ActiveEvent.java: New file.
- * java/awt/Adjustable.java: New file.
- * java/awt/BorderLayout.java: New file.
- * java/awt/Color.java: New file.
- * java/awt/Component.java: New file.
- * java/awt/Container.java: New file.
- * java/awt/Dimension.java: New file.
- * java/awt/Event.java: New file.
- * java/awt/Font.java: New file.
- * java/awt/Frame.java: New file.
- * java/awt/Graphics.java: New file.
- * java/awt/IllegalComponentStateException.java: New file.
- * java/awt/Image.java: New file.
- * java/awt/ItemSelectable.java: New file.
- * java/awt/LayoutManager.java: New file.
- * java/awt/LayoutManager2.java: New file.
- * java/awt/Menu.java: New file.
- * java/awt/MenuBar.java: New file.
- * java/awt/MenuComponent.java: New file.
- * java/awt/MenuContainer.java: New file.
- * java/awt/MenuItem.java: New file.
- * java/awt/Paint.java: New file.
- * java/awt/PaintContext.java: New file.
- * java/awt/Point.java: New file.
- * java/awt/Rectangle.java: New file.
- * java/awt/Shape.java: New file.
- * java/awt/TextArea.java: New file.
- * java/awt/TextComponent.java: New file.
- * java/awt/Toolkit.java: New file.
- * java/awt/Transparency.java: New file.
- * java/awt/Window.java: New file.
- * java/awt/natToolkit.cc: New file.
- * java/awt/event/AWTEventListener.java: New file.
- * java/awt/event/ActionEvent.java: New file.
- * java/awt/event/ActionListener.java: New file.
- * java/awt/event/AdjustmentEvent.java: New file.
- * java/awt/event/AdjustmentListener.java: New file.
- * java/awt/event/ComponentAdapter.java: New file.
- * java/awt/event/ComponentEvent.java: New file.
- * java/awt/event/ComponentListener.java: New file.
- * java/awt/event/ContainerAdapter.java: New file.
- * java/awt/event/ContainerEvent.java: New file.
- * java/awt/event/ContainerListener.java: New file.
- * java/awt/event/FocusAdapter.java: New file.
- * java/awt/event/FocusEvent.java: New file.
- * java/awt/event/FocusListener.java: New file.
- * java/awt/event/InputEvent.java: New file.
- * java/awt/event/InputMethodEvent.java: New file.
- * java/awt/event/InputMethodListener.java: New file.
- * java/awt/event/InvocationEvent.java: New file.
- * java/awt/event/ItemEvent.java: New file.
- * java/awt/event/ItemListener.java: New file.
- * java/awt/event/KeyAdapter.java: New file.
- * java/awt/event/KeyEvent.java: New file.
- * java/awt/event/KeyListener.java: New file.
- * java/awt/event/MouseAdapter.java: New file.
- * java/awt/event/MouseEvent.java: New file.
- * java/awt/event/MouseListener.java: New file.
- * java/awt/event/MouseMotionAdapter.java: New file.
- * java/awt/event/MouseMotionListener.java: New file.
- * java/awt/event/PaintEvent.java: New file.
- * java/awt/event/TextEvent.java: New file.
- * java/awt/event/TextListener.java: New file.
- * java/awt/event/WindowAdapter.java: New file.
- * java/awt/event/WindowEvent.java: New file.
- * java/awt/event/WindowListener.java: New file.
- * java/awt/geom/Dimension2D.java: New file.
- * java/awt/geom/Point2D.java: New file.
- * java/awt/peer/ComponentPeer.java: New file.
- * java/awt/peer/ContainerPeer.java: New file.
- * java/awt/peer/FramePeer.java: New file.
- * java/awt/peer/WindowPeer.java: New file.
- * java/util/Collection.java: New file.
- * java/util/Comparator.java: New file.
- * java/util/Iterator.java: New file.
- * java/util/List.java: New file.
- * java/util/ListIterator.java: New file.
- * Makefile.am: Added above files.
- * Makefile.in: Rebuilt.
-
-2000-04-10 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/runtime/MethodInvocation.java: Fixed copyright.
- * java/lang/FirstThread.java: Ditto.
- * java/lang/StringBuffer.java: Ditto.
- * mauve-libgcj: Turned on java.math, java.sql and java.security tests.
-
- * gnu/gcj/math/MPN.java (rshift): Undid Boehm's patch of 03-14.
- Special case handled in java.math.BigInteger.
- * java/math/BigInteger.java (divide): Handle the special case when
- dividing by 1 and the high bit of the dividend is set.
- (setShiftRight): Handle case when count == 0.
-
-2000-04-05 Andrew Haley <aph@cygnus.com>
-
- * java/net/URL.java (setURLStreamHandler): Make "file" protocol a
- special case.
-
-2000-04-05 Andrew Haley <aph@cygnus.com>
-
- * sysdep/ia64.c (rse_address_add): Delete.
- (IS_NaT_COLLECTION_ADDR): Delete.
- (ia64_backtrace_helper): check for null unwind_info.
-
- * sysdep/ia64-frame.h: add calc_caller_bsp.
-
- * java/lang/natThrowable.cc (printRawStackTrace): Flush
- PrintWriter.
-
- * prims.cc (_Jv_divI): Use _Jv_ThrowSignal.
- (_Jv_remI): Likewise.
- (_Jv_divJ): Likewise.
- (_Jv_remJ): Likewise.
-
- * interpret.cc (continue1): Use divide subroutines to guarantee
- correct Java standard behaviour.
- Floating-point division should not abort; make it so.
-
-2000-03-29 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Test against `libgcj_sjlj', not
- `enable_sjlj_exceptions'. Rearranged code to allow SYSDEP_SOURCES
- to be set even when using sjlj.
-
-2000-03-24 Andrew Haley <aph@cygnus.com>
-
- * Makefile.am: Add file addr2name.awk.
- * Makefile.in: Rebuilt.
- * addr2name.awk: New file.
- * name-finder.cc (_Jv_name_finder): Call addr2name.awk to do name
- lookups on ia64.
- * java/lang/natThrowable.cc(printRawStackTrace): Don't print out a
- blank line.
-
-2000-03-22 Andrew Haley <aph@cygnus.com>
-
- * configure.host: Add -funwind-tables for IA64.
- * Makefile.am (c_source_files): Add SYSDEP_SORCES.
- * Makefile.in: Rebuilt.
- * java/lang/natThrowable.cc (fillInStackTrace): Add ia64 case.
- * sysdep/ia64.c: New file.
- * sysdep/ia64-frame.h: New file.
- * configure.in: Add sysdep/ia64.c for ia64.
- * configure: Rebuilt.
-
-2000-03-17 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natString.cc: Remove `register' keyword.
- interpret.cc: ditto.
-
-2000-03-16 Andrew Haley <aph@cygnus.com>
-
- * configure.host (ia64): Enable interpreter.
-
-2000-03-14 Hans Boehm <boehm@acm.org>
-
- * gnu/gcj/math/MPN.java (rshift): Handle shift 32 specially.
-
-2000-03-14 Andrew Haley <aph@cygnus.com>
-
- * include/default-signal.h (MAKE_THROW_FRAME): Add arg
- `_exception'.
-
-2000-03-10 Andrew Haley <aph@cygnus.com>
-
- * java/lang/ieeefp.h: Import latest version from fdlibm.
-
-2000-03-14 Andrew Haley <aph@cygnus.com>
-
- * prims.cc (_Jv_ThrowSignal): New function.
- (catch_segv): Add arg `_exception' to MAKE_THROW_FRAME.
- (catch_fpe): Ditto.
- * include/sparc-signal.h (MAKE_THROW_FRAME): Ditto
- * include/i386-signal.h (MAKE_THROW_FRAME): Ditto.
- * include/ppc-signal.h: New file.
-
-2000-05-18 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/Thread.java: Declare `data' as Object, not RawData.
- * java/lang/natThread.java (initialize_native): Cast `data' to
- jobject.
- * gnu/gcj/RawData.java: Clarify documentation.
-
- From Gregory R. Warnes <warnes@biostat.washington.edu>:
- * gnu/gcj/protocol/jar/Connection.java (getJarFile): Test for null
- `jarFile', not `jarFileURL'.
-
-2000-05-15 Andrew Haley <aph@cygnus.com>
-
- * include/ppc-signal.h: New file.
-
-2000-05-11 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/ZipInputStream.java (getNextEntry): When reading
- file headers, don't include `size' in the skip call.
-
-2000-05-10 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/StringBuffer.java (delete): Call arrayCopy() correctly.
- Avoid arrayCopy() call where possible. Update `count' _after_ calling
- arrayCopy().
- (replace): Reimplemented. Fix javadoc.
- (reverse): Call ensureCapacity_unsynchronized().
- (StringBuffer (String)): Use DEFAULT_CAPACITY.
-
- (replace): Calculate length for arraycopy() correctly.
-
-2000-05-09 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/StringBuffer.java (toString): Don't mark buffer as
- shared.
- (insert(int,char[],int,int): New method.
- (delete): New method from Classpath.
- (deleteCharAt): Likewise.
- (substring): Likewise.
- (shared): No longer private.
- Added JavaDoc comments from Classpath.
- * java/lang/String.java (String(StringBuffer)): Ensure `buffer' is
- shared.
-
-2000-05-07 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (LIBLINK): New macro.
- (libgcj_la_LINK): Use it.
- (libgcjawt_la_LINK): Likewise.
-
-2000-05-06 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcj.zip): Don't pass -L to javac.
-
-2000-05-05 Tom Tromey <tromey@cygnus.com>
-
- Fix for PR libgcj/220:
- * Makefile.in: Rebuilt.
- * Makefile.am (gij_LDFLAGS): Don't use libstdc++.
- (jv_convert_LDFLAGS): Likewise.
- (libgcj_la_LDFLAGS): Likewise.
- (GCJLINK): New macro.
- (jv_convert_LINK): Use it.
- (gij_LINK): Likewise.
- (libgcj_la_LINK): New macro.
- (libgcjawt_la_LINK): Likewise.
-
-2000-05-04 Tom Tromey <tromey@cygnus.com>
-
- * gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
- field.
- * boehm.cc (_Jv_MarkObj): Removed dead code. Use `STATIC', not
- `0x0008'.
- Include Modifier.h.
-
-2000-05-05 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/natClass.cc (isInstance): Use __builtin_expect.
- (_Jv_IsAssignableFrom): Ditto.
- (_Jv_IsInstanceOf): Ditto.
- (_Jv_CheckCast): Ditto.
- (_Jv_CheckArrayStore): Ditto.
- * java/lang/Class.h (_Jv_InitClass): Ditto.
- * java/lang/natObject.cc (_Jv_MonitorEnter): __builtin_expect `false',
- not `0'.
- (notify): Ditto.
- (notifyAll): Ditto.
- (wait): Ditto.
- (_Jv_MonitorExit): Ditto.
- * boehm.cc (_Jv_MarkObj): Ditto.
- (_Jv_MarkObj): Ditto.
- (_Jv_MarkArray): Ditto.
- * prims.cc (_Jv_AllocObject): Ditto.
- (_Jv_NewObjectArray): Ditto.
- (_Jv_NewPrimArray): Ditto.
- (_Jv_Malloc): Ditto.
- (_Jv_Realloc): Ditto.
- (_Jv_MallocUnchecked): Ditto.
- (_Jv_divI): Ditto.
- (_Jv_remI): Ditto.
- (_Jv_divJ): Ditto.
- (_Jv_remJ): Ditto.
-
-2000-05-04 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Locale.java (Locale): Don't explicitly check for
- null.
- * java/util/Hashtable.java (containsKey): Don't explicitly check
- for null.
- (get): Likewise.
- * java/util/BitSet.java (and, or, xor): Don't explicitly check for
- null.
- * java/util/zip/ZipEntry.java (ZipEntry): Don't explicitly check
- for null.
- * java/text/StringCharacterIterator.java
- (StringCharacterIterator): Don't check for null.
- * java/text/ChoiceFormat.java (setChoices): Don't explicitly check
- for null pointer.
- * java/net/MulticastSocket.java (joinGroup): Don't explicitly
- check for null pointer.
- (leaveGroup): Likewise.
- * java/net/DatagramPacket.java (DatagramPacket): Removed erroneous
- comment.
- (setData): Likewise.
- * java/lang/ThreadGroup.java (ThreadGroup): Don't explicitly check
- for `p==null'.
-
-2000-04-28 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.am (GCJCOMPILE, JCFLAGS, JF1CLAGS, jv_convert_LINK,
- gij_LINK, libgcj.zip, .java=.class): Move -L option out of FLAGS.
- (libgcj_la_LDFLAGS): Add -L../libstdc++ for in-gcc builds.
- (jv_convert_LDFLAGS, gij_LDFLAGS): Add `pwd`/../libstdc++ to
- -rpath for in-gcc builds.
- * Makefile.in: Rebuilt.
-
-2000-04-28 Tom Tromey <tromey@cygnus.com>
-
- * libgcj.spec.in (*jc1): Added -fasynchronous-exceptions.
- Fix for PR gcj/218.
-
-2000-04-28 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava/java/lang/String.java (toString): Remove `final' hack.
-
-2000-04-05 Tom Tromey <tromey@cygnus.com>
-
- Runtime support for PR gcj/2:
- * prims.cc (_Jv_ThrowNullPointerException): New function.
- * include/jvm.h (_Jv_ThrowNullPointerException): Declare.
-
-2000-04-27 Bryce McKinlay <bryce@albatross.co.nz>
-
- * prims.cc (_Jv_NewObjectArray): Fix typo.
-
-2000-04-26 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CXXFLAGS): Added -fasynchronous-exceptions.
-
-2000-04-24 Jeff Sturm <jsturm@sigma6.com>
-
- * gnu/gcj/runtime/natFirstThread.cc (run): Initialize class before
- calling main.
-
-2000-04-22 Anthony Green <green@cygnus.com>
-
- * include/jvm.h (__builtin_expect): Define as unused for now.
- * java/lang/natObject.cc (_Jv_MonitorEnter): Add __builtin_expect.
- (notify): Ditto.
- (notifyAll): Ditto.
- (wait): Ditto.
- (_Jv_MonitorExit): Ditto.
- * boehm.cc (_Jv_MarkObj): Ditto.
- (_Jv_MarkObj): Ditto.
- (_Jv_MarkArray): Ditto.
- (_Jv_AllocBytes): Ditto.
- * prims.cc (_Jv_AllocObject): Ditto.
- (_Jv_NewObjectArray): Ditto.
- (_Jv_NewPrimArray): Ditto.
- (_Jv_Malloc): Ditto.
- (_Jv_Realloc): Ditto.
- (_Jv_MallocUnchecked): Ditto.
- (_Jv_divI): Ditto.
- (_Jv_remI): Ditto.
- (_Jv_divJ): Ditto.
- (_Jv_remJ): Ditto.
-
- * include/Makefile.in: Rebuilt.
- * include/Makefile.am (include_HEADERS): Add jvmpi.h.
-
-2000-04-21 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
- Yet another new version from Classpath.
-
- Fix for PR libgcj/15:
- * java/util/natGregorianCalendar.cc (_REENTRANT,
- _POSIX_PTHREAD_SEMANTICS): Don't define.
- * java/net/natInetAddress.cc (_REENTRANT): Don't define.
- * java/lang/natSystem.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS):
- Don't define.
- * java/io/natFile.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS): Don't
- define.
- * configure: Rebuilt.
- * configure.in: If using POSIX threads, define _REENTRANT if
- needed. Define _POSIX_PTHREAD_SEMANTICS. Don't define
- GETHOSTBYNAME_R_NEEDS_REENTRANT.
-
- * java/io/PipedInputStream.java, java/io/PipedReader.java,
- java/io/PipedOutputStream.java, java/io/PipedWriter.java: New
- version from Classpath.
-
- Fix for PR libgcj/213:
- * Makefile.in: Rebuilt.
- * Makefile.am (gij_SOURCES): Added gij.cc.
- (EXTRA_gij_SOURCES): Removed.
- (gij_LDADD): Removed gij.lo.
- (gij_DEPENDENCIES): Likewise.
- ($(gij_OBJECTS)): Depend on nat_headers.
-
- * gnu/gcj/protocol/file/Handler.java (openConnection): Use
- `setURL', not `url.set'.
-
-2000-04-20 Tom Tromey <tromey@cygnus.com>
-
- Fix for PR java.io/204:
- * java/io/PipedInputStream.java, java/io/PipedReader.java,
- java/io/PipedOutputStream.java, java/io/PipedWriter.java: Imported
- from Classpath.
-
- Fix for PR libgcj/212:
- * gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
- * include/jvm.h (_Jv_word, _Jv_word2): Define.
- * java/lang/Class.h (_Jv_word): Declare.
-
- * jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.
-
-2000-04-19 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (_Jv_JNI_FindClass): Use system class loader if class
- doesn't have a loader.
-
-2000-04-19 Bryce McKinlay <bryce@albatross.co.nz>
-
- * boehm.cc: (_Jv_MarkObj, _Jv_MarkArray): Cast pointers for
- MAYBE_MARK to ptr_t, for compatibility with new GC version.
-
-2000-04-16 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/io/natFileDescriptorPosix.cc (open): Use mode 0666. Fix for PR
- libgcj/202.
- (available): Initialize `where' to prevent bogus compiler warning.
-
-2000-04-12 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (intern): Temporarily disable finalizer
- registration.
-
- * java/lang/natString.cc (unintern): Added `obj' argument.
- (intern): Register finalizer for string.
- * java/lang/String.java (unintern): Now static; added obj
- argument.
-
-2000-04-11 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Vector.java (VectorEnumeration): Now `final'.
- * java/util/Hashtable.java (HashtableEntry): Now `final'.
- (HashtableEnumeration): Likewise.
- * java/util/zip/ZipFile.java (ZipEnumeration): Now `final'.
- * java/text/RuleBasedCollator.java (RBCElement): Now `final'.
-
-2000-04-10 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ObjectStreamException.java: New file.
- * java/io/OptionalDataException.java: New file.
- * java/io/StreamCorruptedException.java: New file.
- * java/math/BigDecimal.java: New file.
- * java/sql/CallableStatement.java: New file.
- * java/sql/Connection.java: New file.
- * java/sql/DataTruncation.java: New file.
- * java/sql/DatabaseMetaData.java: New file.
- * java/sql/Date.java: New file.
- * java/sql/Driver.java: New file.
- * java/sql/DriverManager.java: New file.
- * java/sql/DriverPropertyInfo.java: New file.
- * java/sql/PreparedStatement.java: New file.
- * java/sql/ResultSet.java: New file.
- * java/sql/ResultSetMetaData.java: New file.
- * java/sql/SQLException.java: New file.
- * java/sql/SQLWarning.java: New file.
- * java/sql/Statement.java: New file.
- * java/sql/Time.java: New file.
- * java/sql/Timestamp.java: New file.
- * java/sql/Types.java: New file.
- * Makefile.am: Added above new files.
- * Makefile.in: Rebuilt.
-
- * mauve-libgcj: Turned on java.math, java.sql and java.security tests.
- * java/net/MulticastSocket.java (MulticastSocket): Pass values a la
- DatagramSocket constructor instead of null.
-
-2000-04-08 Anthony Green <green@cygnus.com>
-
- * include/posix-threads.h (_Jv_MutexUnlock): Replace
- _JV_NOT_OWNER.
-
-2000-04-08 Anthony Green <green@cygnus.com>
-
- * posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
- (_Jv_MutexUnlock): Ditto.
- * include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
- (_Jv_MutexUnlock): Ditto.
-
-2000-04-08 Anthony Green <green@cygnus.com>
-
- * java/lang/StringBuffer.java (ensureCapacity): Don't call Math::max.
- (ensureCapacity_unsynchronized): New private method.
- (append): Use ensureCapacity_unsynchronized.
-
-2000-04-08 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (awt_java_source_files): Added new files.
- * java/awt/IllegalComponentStateException.java: New file.
- * java/awt/ItemSelectable.java: New file.
- * java/awt/event/WindowEvent.java: Finished.
- * java/awt/event/TextEvent.java: Finished.
- * java/awt/event/ContainerEvent.java: New file.
- * java/awt/Component.java (getX, getY): New methods.
- * java/awt/event/PaintEvent.java: New file.
- * java/awt/event/MouseEvent.java: New file.
- * java/awt/ActiveEvent.java: New file.
- * java/awt/event/KeyEvent.java: Finished.
- * java/awt/event/ItemEvent.java: New file.
- * java/awt/Adjustable.java: New file.
- * java/awt/event/InputMethodEvent.java: New file.
- * java/awt/event/InputEvent.java: Finished.
- * java/awt/event/FocusEvent.java: New file.
- * java/awt/event/MouseMotionAdapter.java: New file.
- * java/awt/event/MouseAdapter.java: New file.
- * java/awt/event/KeyAdapter.java: New file.
- * java/awt/event/FocusAdapter.java: New file.
- * java/awt/event/ContainerAdapter.java: New file.
- * java/awt/event/ComponentEvent.java: Finished.
- * java/awt/event/AdjustmentEvent.java: New file.
- * java/awt/event/ComponentAdapter.java: New file.
- * java/awt/event/ActionEvent.java: Finished.
- * java/awt/event/MouseMotionListener.java: New file.
- * java/awt/event/MouseListener.java: New file.
- * java/awt/event/ItemListener.java: New file.
- * java/awt/event/InputMethodListener.java: New file.
- * java/awt/event/ContainerListener.java: New file.
- * java/awt/event/FocusListener.java: New file.
- * java/awt/event/ComponentListener.java: New file.
- * java/awt/event/AWTEventListener.java: New file.
- * java/awt/event/AdjustmentListener.java: New file.
-
-2000-04-08 Anthony Green <green@cygnus.com>
-
- * java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null
- check when we have to.
-
- * gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>*
- x) as `inline'.
-
- * java/util/StringTokenizer.java: Minor optimization. Eliminates
- one method call.
-
- * java/util/Vector.java (VectorEnumeration.nextElement): Manually
- inline hasMoreElements.
-
-2000-04-05 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Recognize --enable-java-awt.
- (AWT): New conditional.
- * Makefile.in: Rebuilt.
- * Makefile.am (toolexeclib_LTLIBRARIES): Build libgcjawt.la if
- requested.
- (libgcjawt_la_SOURCES): New macro.
- (EXTRA_libgcjawt_la_SOURCES): Likewise.
- (libgcjawt_la_DEPENDENCIES): Likewise.
- (libgcjawt_la_LIBADD): Likewise.
- (libgcjawt_la_LDFLAGS): Likewise.
- (libgcj.zip): Depend on cond_java_awt_source_files
- (cond_awt_java_source_files): New macro.
- (MOSTLYCLEANFILES): Added awto_files.
- (awto_files): New macro. Use where javao_files used.
- (nat_headers): Use cond_awt_java_source_files.
-
-2000-04-04 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (awt_java_source_files): Added AWTException.java.
- * java/awt/AWTException.java: New file.
-
-2000-04-03 Tom Tromey <tromey@cygnus.com>
-
- * include/jvm.h (_Jv_GetArrayElementFromElementType): More
- commentary from Alex.
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(javao_files)): Depend on libgcj.zip.
- From H.J. Lu.
-
-Sun Apr 2 08:27:18 2000 Anthony Green <green@redhat.com>
-
- * configure: Rebuilt.
- * configure.in: Add --disable-jvmpi.
- * include/config.h.in: Rebuilt.
- * acconfig.h: Add ENABLE_JVMPI.
-
- * include/jvm.h: Declare _Jv_DisableGC and _Jv_EnableGC.
- (_Jv_JVMPI_Notify_OBJECT_ALLOC): New define.
- (_Jv_JVMPI_Notify_THREAD_END): New define.
- (_Jv_JVMPI_Notify_THREAD_END): New define.
- * prims.cc (_Jv_JVMPI_Notify_OBJECT_ALLOC): Declare.
- (_Jv_JVMPI_Notify_THREAD_END): Declare.
- (_Jv_JVMPI_Notify_THREAD_END): Declare.
-
- * prims.cc (_Jv_AllocObject): Generate JVMPI object allocation
- events.
-
- * java/lang/natThread.cc: Include JVMPI headers if necessary.
- (finish_): Generate JVMPI thread end events.
- (run_): Generate JVMPI thread start events.
- * gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
- preloaded JNI library.
- Include JVMPI headers if necessary.
- (run): Generate JVMPI thread start events.
-
- * boehm.cc: Define GC_disable and GC_enable.
- (_Jv_DisableGC): New function.
- (_Jv_EnableGC): New function.
- (disable_gc_mutex): Declare.
- * nogc.cc (_Jv_DisableGC): New function.
- (_Jv_EnableGC): New function.
-
- * jni.cc (_Jv_JNI_GetEnv): Handle JVMPI interface requests.
- (_Jv_JVMPI_Interface): Define.
- (jvmpiEnableEvent): New function.
- (_Jv_JNI_Init): Initialize _Jv_JVMPI_Interface.
-
- * include/jvmpi.h: New file.
-
-2000-03-27 Bryce McKinlay <bryce@albatross.co.nz>
-
- * Makefile.in: New #defines and friends for Thread.h.
- * Makefile.am: Ditto.
- * posix-threads.cc: (struct starter): Remove `object'.
- (_Jv_CondWait): Use interruptable condition variables and new
- recursive mutexes. New return codes on interrupt or non-ownership
- of mutex.
- (_Jv_CondNotify): Ditto.
- (_Jv_CondNotifyAll): Ditto.
- (_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
- the target thread by signaling its wait condition.
- (_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
- not the starter struct. Initialize wait_mutex and wait_cond.
- (_Jv_MutexLock): New recursive mutex implementation. Moved from
- posix-threads.h.
- (_Jv_MutexUnlock): Ditto.
- (really_start): Set info->data->thread from pthread_self() to work
- around a race condition. Destroy wait_mutex and wait_cond when run()
- returns.
- * java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
- `isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
- set.
- startable_flag: New private field.
- (Thread): Initialize `startable_flag'.
- (toString): Check for null thread group.
- * java/lang/natThread.cc: (struct natThread): New fields
- `join_mutex', `join_cond'. Removed fields `joiner', `next'.
- (class locker): Removed.
- (initialize_native): Initialize `join_cond' and `join_mutex'.
- (interrupt): Now just calls _Jv_ThreadInterrupt().
- (join): Simplified. Just wait on the target thread's join condition.
- (finish_): Remove join list code. Unset thread group. Signal
- potential joiners by notifying the dying threads join_cond.
- (start): Check for illegal restarts.
- * java/lang/natObject.cc: Check for return value of _Jv_CondWait and
- act appropriatly.
- * include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
- #defines and #ifdefs.
- (struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
- `wait_mutex', `next'.
- (struct _Jv_ConditionVariable_t): Define as a struct instead of
- directly mapping to pthread_cond_t.
- (struct _Jv_Mutex_t): New recursive implementation.
- (_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
- _Jv_HaveCondDestroy: Never define this for posix-threads.
- (_Jv_CondNotify): Remove inline implementation(s), prototype instead.
- (_Jv_CondNotifyAll): Ditto.
- (_Jv_MutexLock): Ditto.
- (_Jv_MutexUnlock): Ditto.
- (_Jv_MutexInit): Changed to reflect new mutex implementation.
- (_Jv_MutexDestroy): Ditto.
- (_Jv_CondDestroy): Removed.
- (_Jv_PthreadGetMutex): Removed.
- * include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an
- error. Add a FIXME about this.
- (_Jv_CondNotifyAll): Ditto.
- * win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess
- _JV_NOT_OWNER on other errors. Add FIXME.
-
-2000-03-26 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception
- set, throw it.
- (call): Don't throw exception here.
-
-2000-03-26 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/mprec.h: Use SIZEOF_VOID_P.
- * interpret.cc: Use SIZEOF_VOID_P.
- * include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
- (_Jv_loadLong): Likewise.
- (_Jv_storeDouble): Likewise.
- * configure: Rebuilt.
- * configure.in: Check size of void*.
-
- * resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.
-
-2000-03-26 Hans Boehm <boehm@acm.org>
-
- * include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
- _Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
- machine.
- * java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
- __IEEE_LITTLE_ENDIAN appropriately on IA64.
- * java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
- * javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
- case.
- * resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
- (FFI_RAW_SIZE): Likewise.
- (_Jv_InterpMethod::ncode): Use them.
- * interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
- STORED): Define differently on a 64 bit machine.
- (continue1): Use ffi_java_raw_call when appropriate.
-
-2000-03-24 Warren Levy <warrenl@cygnus.com>
-
- * java/math/BigInteger.java(divide): Handle the special case when
- dividing by 1 and the high bit of the dividend is set.
- (setShiftRight): Handle case when count == 0.
-
-2000-03-24 Warren Levy <warrenl@cygnus.com>
-
- * java/awt/Font.java(isBold): Fix syntax error.
- (isItalic): ditto.
- * java/awt/Frame.java(postEvent): ditto.
- * java/awt/Menu.java(postEvent): ditto.
- * java/awt/MenuBar.java(postEvent): ditto.
- * java/awt/Toolkit.java(init): Included a stub.
-
-2000-03-21 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/awt/Event.java: Add all the event type constants.
- (Event): Implemented constructors.
- (controlDown): Implemented.
- (metaDown): Implemented.
- (paramString): Stubbed.
- (shiftDown): Implemented.
- (toString): Implemented.
- (translate): Implemented.
-
-2000-03-21 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/natClass.cc (isInstance): Initialize `this'.
- (isAssignableFrom): Initialize `this' and `klass'.
- (_Jv_IsAssignableFrom): If an interface has no idt, it is not
- implemented by any loaded class, so return false.
- * java/lang/natClass.cc (isInstance): Use _Jv_IsAssignableFrom(),
- not Class.isAssignableFrom(). Use JV_CLASS, not getClass().
-
-2000-03-19 Warren Levy <warrenl@cygnus.com>
-
- * java/awt/Color.java: Specified java.io for Serializable.
- * java/awt/Toolkit.java: Imported java.net.URL.
-
-2000-03-19 Warren Levy <warrenl@cygnus.com>
-
- * java/awt/Color.java: Rewrote to be more memory efficient (& compile).
-
-2000-03-16 Warren Levy <warrenl@cygnus.com>
-
- * java/awt/Color.java: New file.
- * java/awt/Graphics.java: New file.
- * java/awt/Image.java: New file.
- * java/awt/Paint.java: New file.
- * java/awt/PaintContext.java: New file.
- * java/awt/Transparency.java: New file.
- * java/util/Collection.java: New file.
- * java/util/Comparator.java: New file.
- * java/util/Iterator.java: New file.
- * java/util/List.java: New file.
- * java/util/ListIterator.java: New file.
- * Makefile.am: Added above new files.
- * Makefile.in: Rebuilt.
-
- * java/awt/Font.java (PLAIN): New field.
- (BOLD): New field.
- (ITALIC): New field.
- (ROMAN_BASELINE): New field.
- (CENTER_BASELINE): New field.
- (HANGING_BASELINE): New field.
- (name): New field.
- (style): New field.
- (size): New field.
- (pointSize): New field.
- (Font): Implemented constructor.
- (isPlain): Implemented method.
- (isBold): Implemented method.
- (isItalic): Implemented method.
- (getName): Implemented method.
- (getStyle): Implemented method.
- (getSize): Implemented method.
- (getSize2D): Implemented method.
- (decode): Stubbed.
- * java/awt/Frame.java (getFont): Stubbed.
- (postEvent): Stubbed.
- (remove): Stubbed.
- * java/awt/Menu.java (postEvent): Stubbed.
- * java/awt/MenuBar.java (getFont): Stubbed.
- (postEvent): Stubbed.
- * java/awt/Toolkit.java (getImage): Added abstract method.
-
-2000-03-15 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptorWin32.cc (winerr): Now static.
-
- * prims.cc (win32_exception_handler): Reformatted.
-
- * include/win32-threads.h (_Jv_HaveCondDestroy): New define.
- (_Jv_HaveMutexDestroy): Likewise.
-
-2000-03-15 Jon Beniston <jb7216@bristol.ac.uk>
-
- * java/io/natFileDescriptorWin32.cc: New file.
- * java/io/natFileWin32.cc: New file.
- * java/net/natInetAddress.cc: Added conditional inclusion of
- Windows / Winsock headers.
- * java/net/natPlainDatagramSocketImpl.cc: Added conditional
- inclusion of Windows / Winsock headers.
- * java/net/natPlainSocketImpl.cc: Added conditional inclusion of
- Windows / Winsock headers.
- * include/win32-signal.h: New file.
- * include/win32-threads.h: New file.
- * win32-threads.cc: New file.
- * exception.cc (win32_get_restart_frame): New function.
- * prims.cc (win32_exception_handler): New function.
- (main_init) Performs Winsock initialisation.
- (main_init) Installs exeception handler.
-
-2000-03-14 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (mangled_name): Fixed assertion.
- (JNI_GetCreatedJavaVMs): Don't comment out `buf_len' argument;
- turned assert into actual failure.
-
-2000-03-09 Warren Levy <warrenl@cygnus.com>
-
- * java/security/Key.java(serialVersionUID): Set to 0 for now.
- * java/security/interfaces/DSAPrivateKey.java(serialVersionUID): Ditto.
- * java/security/interfaces/DSAPublicKey.java(serialVersionUID): Ditto.
-
-2000-03-09 Warren Levy <warrenl@cygnus.com>
-
- * java/security/AlgorithmParameterGeneratorSpi.java: New file.
- * java/security/DigestException.java: New file.
- * java/security/GeneralSecurityException.java: New file.
- * java/security/InvalidAlgorithmParameterException.java: New file.
- * java/security/InvalidKeyException.java: New file.
- * java/security/InvalidParameterException.java: New file.
- * java/security/Key.java: New file.
- * java/security/KeyException.java: New file.
- * java/security/KeyPair.java: New file.
- * java/security/KeyPairGenerator.java: New file.
- * java/security/KeyPairGeneratorSpi.java: New file.
- * java/security/NoSuchProviderException.java: New file.
- * java/security/PrivateKey.java: New file.
- * java/security/Provider.java: New file.
- * java/security/PublicKey.java: New file.
- * java/security/SecureRandom.java: New file.
- * java/security/Security.java: New file.
- * java/security/Signature.java: New file.
- * java/security/SignatureException.java: New file.
- * java/security/interfaces/DSAKey.java: New file.
- * java/security/interfaces/DSAParams.java: New file.
- * java/security/interfaces/DSAPrivateKey.java: New file.
- * java/security/interfaces/DSAPublicKey.java: New file.
- * java/security/interfaces/RSAPrivateCrtKey.java: New file.
- * java/security/interfaces/RSAPrivateKey.java: New file.
- * java/security/interfaces/RSAPublicKey.java: New file.
- * java/security/spec/AlgorithmParameterSpec.java: New file.
- * java/security/spec/InvalidKeySpecException.java: New file.
- * java/security/spec/InvalidParameterSpecException.java: New file.
- * java/security/spec/KeySpec.java: New file.
- * java/security/spec/RSAPrivateCrtKeySpec.java: New file.
- * java/security/spec/RSAPrivateKeySpec.java: New file.
- * java/security/spec/RSAPublicKeySpec.java: New file.
- * Makefile.am: Added above java.security files.
- * Makefile.in: Rebuilt.
-
- * java/security/MessageDigest.java: Rewritten.
- * java/security/SecureClassLoader.java: Added JDK1.2 comment.
-
-2000-03-09 Bryce McKinlay <bryce@albatross.co.nz>
-
- * README: Updated.
-
-2000-03-09 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
- _Jv_PrepareConstantTimeTables.
- * java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
- classes should have an IDT, so don't return if klass is an array
- class.
-
-2000-03-08 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/natArray.cc (newInstance): Don't allow array
- of `void' to be created.
-
-2000-03-08 Warren Levy <warrenl@cygnus.com>
-
- * java/math/BigInteger.java(signum): Handle zero properly.
-
-2000-03-07 Tom Tromey <tromey@cygnus.com>
-
- * All files: Updated copyright information.
- * COPYING: New file.
- * COPYING.LIB: Removed.
- * LIBGCJ_LICENSE: We now use GPL + special exception.
-
-2000-03-07 Bryce McKinlay <bryce@albatross.co.nz>
-
- * resolve.cc (_Jv_SearchMethodInClass): New function.
- (_Jv_ResolvePoolEntry): Search superinterfaces for interface methods.
- * java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.
-
-2000-03-07 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
- (struct _Jv_ifaces): New declaration.
- JV_CLASS: New macro definition.
- (getComponentType): Relocate below isArray() for inlining.
- (getModifiers): Declare `inline'.
- (getSuperclass): Ditto.
- (isArray): Ditto.
- (isPrimitive): Ditto.
- (_Jv_IsAssignableFrom): New prototype.
- (_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
- linkage.
- (_Jv_InitClass): Move from natClass.cc. Declare `inline'.
- Check for JV_STATE_DONE before invoking initializeClass().
- (_Jv_PrepareConstantTimeTables): New prototype.
- (_Jv_GetInterfaces): Ditto.
- (_Jv_GenerateITable): Ditto.
- (_Jv_GetMethodString): Ditto.
- (_Jv_AppendPartialITable): Ditto.
- (_Jv_FindIIndex): Ditto.
- depth, ancestors, idt: New class fields.
-
- * java/lang/natClass.cc (isAssignableFrom): Move functionality to
- inline function `_Jv_IsAssignableFrom'. Use that function.
- (isInstance): Declare `inline'.
- (initializeClass): Get lock on class before checking `state'. Unlock
- before calling resolveClass0. Call _Jv_PrepareConstantTimeTables with
- the lock held.
- (_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
- (_Jv_IsAssignableFrom): New inline function. Test assignability using
- class->depth and ancestor table.
- (_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
- (_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
- _Jv_IsAssignableFrom.
- (_Jv_CheckArrayStore): Ditto.
- (_Jv_LookupInterfaceMethodIdx): New function.
- INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
- (_Jv_PrepareConstantTimeTables): New function.
- (_Jv_IndexOf): Ditto.
- (_Jv_GetInterfaces): Ditto.
- (_Jv_GenerateITable): Ditto.
- (_Jv_GetMethodString): Ditto.
- (_Jv_AppendPartialITable): Ditto.
- iindex_mutex, iindex_mutex_initialized: New static fields.
- (_Jv_FindIIndex): New function.
-
- * java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.
-
- * prims.cc (_Jv_CheckCast): Moved to natClass.cc.
- (_Jv_CheckArrayStore): Ditto.
- (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
- JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
- Moved to gcj/array.h.
- (_Jv_Realloc): New function.
-
- * gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.
-
- * gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
- (JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
- JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
- JvNewDoubleArray): Implementations moved from prims.cc and
- declared `inline'.
-
- * gcj/javaprims.h (_Jv_Realloc): Prototype.
-
- * include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.
-
-2000-03-06 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (MARK_NONE): New define.
- (MARK_USER): Likewise.
- (MARK_SYSTEM): Likewise.
- (struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
- smaller.
- (_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
- (_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
- (_Jv_JNI_PushLocalFrame): Use MARK_USER.
- (_Jv_JNI_PopLocalFrame): New version with additional `stop'
- argument.
- (call): Use MARK_SYSTEM.
- (_Jv_GetJNIEnvNewFrame): New function.
- (_Jv_LookupJNIMethod): New function.
- (_Jv_JNI_PopSystemFrame): New function.
- (call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.
-
-2000-03-05 Tom Tromey <tromey@cygnus.com>
-
- Fix for PR libgcj/43:
- * include/Makefile.in: Rebuilt.
- * include/Makefile.am (include_HEADERS): New define.
-
-2000-03-05 Anthony Green <green@redhat.com>
-
- * gcj/javaprims.h ("Java"): Remove FirstThread.
-
- * configure.host: Fix __NO_MATH_INLNES botch.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_source_files): Move natFirstThread.cc.
- (gnu/gcj/runtime/FirstThread.h): Moved.
- (ordinary_java_source_files): Move FirstThread.java.
- * prims.cc: Deal with FirstThread movement.
- (JvRunMain): Ditto.
- (_Jv_RunMain): Ditto.
-
- * gnu/gcj/runtime/FirstThread.java: Moved from java/lang.
- * gnu/gcj/runtime/natFirstThread.cc: Ditto.
-
-2000-03-05 Warren Levy <warrenl@cygnus.com>
-
- * java/net/DatagramSocket.java(DatagramSocket(int,InetAddress)):
- Handle null addresses.
-
-2000-03-04 Anthony Green <green@redhat.com>
-
- * configure.host (libgcj_flags): Define __NO_MATH_INLINES.
- See PR gcj/151.
-
-2000-03-04 Anthony Green <green@redhat.com>
-
- * configure: Rebuilt.
- * configure.in (ZLIBTESTSPEC): New macro.
- (GCTESTSPEC): New macro.
- (LIBGCJTESTSPEC): New macro.
- * libgcj-test.spec.in: New file.
-
-2000-03-02 Tom Tromey <tromey@cygnus.com>
-
- * include/java-interp.h: Don't include MethodInvocation.h.
- (class _Jv_InterpMethod): Don't make MethodInvocation a friend.
- * Makefile.in: Rebuilt.
- * Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
- (ordinary_java_source_files): Don't mention
- MethodInvocation.java.
- * gnu/gcj/runtime/MethodInvocation.java: Removed.
- * interpret.cc (MethodInvocation::continue1): Removed.
- (run): Handle exceptions here.
- * java/lang/ClassLoader.java (defineClass1, defineClass2):
- Removed.
- * java/lang/natClassLoader.cc (defineClass0): Catch exceptions
- here.
- (defineClass2): Removed.
-
- * java/lang/reflect/Method.java (hack_trampoline, hack_call):
- Removed.
- * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
- exceptions here.
- (hack_call): Removed.
-
- * java/lang/Class.h (Class): Removed hackRunInitializers,
- hackTrampoline.
- * java/lang/natClass.cc (hackRunInitializers): Removed.
- (initializeClass): Catch exceptions here.
- Include ExceptionInInitializerError.h.
- * java/lang/Class.java (hackTrampoline, hackRunInitializers):
- Removed.
-
- * java/lang/Object.h (Object): Don't mention hack12_6.
- * java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
- here.
- * java/lang/Object.java (hack12_6): Removed.
-
- * java/lang/natThread.cc (run_): Renamed. Catch exceptions here.
- (start): Use run_, not run__.
- * java/lang/Thread.java (run_): Renamed from run__; old run_
- removed.
-
- * jni.cc (_Jv_JNI_FindClass): Handle exceptions.
- (_Jv_JNI_EnsureLocalCapacity): Likewise.
- (_Jv_JNI_DefineClass): Likewise.
- (_Jv_JNI_ThrowNew): Likewise.
- (_Jv_JNI_AllocObject): Likewise.
- (_Jv_JNI_GetAnyMethodID): Likewise.
- (_Jv_JNI_CallAnyMethodV): Likewise.
- (_Jv_JNI_CallAnyMethodA): Likewise.
- (_Jv_JNI_CallAnyVoidMethodV): Likewise.
- (_Jv_JNI_CallAnyVoidMethodA): Likewise.
- (_Jv_JNI_GetAnyFieldID): Likewise.
- (_Jv_JNI_NewString): Likewise.
- (_Jv_JNI_NewStringUTF): Likewise.
- (_Jv_JNI_GetStringUTFChars): Likewise.
- (_Jv_JNI_NewObjectArray): Likewise.
- (_Jv_JNI_NewPrimitiveArray): Likewise.
- (_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
- (_Jv_JNI_GetStringRegion): Likewise.
- (_Jv_JNI_GetStringUTFRegion): Likewise.
- (_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
- (_Jv_JNI_MonitorEnter): Likewise.
- (_Jv_JNI_MonitorExit): Likewise.
- (_Jv_JNI_ToReflectedField): Likewise.
- (_Jv_JNI_ToReflectedMethod): Likewise.
- (_Jv_JNI_RegisterNatives): Likewise.
- (_Jv_JNI_AttachCurrentThread): Likewise.
- (_Jv_JNI_DestroyJavaVM): Likewise.
-
-2000-02-28 Mo DeJong <mdejong@cygnus.com>
-
- * java/util/zip/ZipOutputStream.java(closeEntry) : Fixed
- error caused by the incorrect casting of a long to an int.
-
-2000-02-28 Mo DeJong <mdejong@cygnus.com>
-
- * java/util/zip/ZipOutputStream.java(write_entry) : Fixed
- SIGSEV caused by use of the wrong instance variable.
-
-2000-02-27 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/io/File.java (File(String, String)): For dirPath, treat an
- empty String the same as `null'.
-
-2000-02-26 Anthony Green <green@cygnus.com>
-
- * gnu/gcj/io/MimeTypes.java: Test for null.
-
- * jni.cc (_Jv_JNI_AttachCurrentThread): Minor cleanup.
- (JNI_GetCreatedJavaVMs): Remove compiler warning.
-
- * java/net/URLConnection.java: Update copyright notice.
-
-2000-02-25 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on
- `INTERPRETER'.
-
-2000-02-25 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/URLConnection.java (initializeDateFormats): New
- private method.
- (getHeaderFieldDate): Call initializeDateFormats if required.
- locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize
- these.
- Fix for PR libgcj/38.
-
-2000-02-24 Warren Levy <warrenl@cygnus.com>
-
- * java/math/BigInteger.java(ival): Made private.
- (words): Ditto.
- (neg): Ditto.
-
-2000-02-20 Anthony Green <green@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Add
- gnu/gcj/io/DefaultMimeTypes.java and gnu/gcj/io/MimeTypes.java
-
- * scripts/MakeDefaultMimeTypes.java: New file.
- * scripts/mime.types: New file.
- * scripts/classes.pl: Moved from top level.
- * classes.pl: Moved to scripts directory.
-
- * java/net/URLConnection.java: Implement guessContentTypeFromName.
-
- * gnu/gcj/io/MimeTypes.java: New file.
- * gnu/gcj/io/DefaultMimeTypes.java: New file.
-
-2000-02-20 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (_Jv_AllocBytes): Clear returned memory.
-
-2000-02-19 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/util/zip/ZipEntry.java (setCrc): Fix overflow.
- (setSize): ditto.
-
-2000-02-18 Tom Tromey <tromey@cygnus.com>
-
- * include/jvm.h (_Jv_GetJavaVM): Declare.
- * include/java-interp.h (_Jv_GetFirstMethod): New function.
- (_Jv_MethodBase::get_method): New method.
- (_Jv_JNIMethod::set_function): New method.
- * jni.cc (_Jv_JNI_UnregisterNatives): New function.
- (_Jv_JNI_RegisterNatives): New function.
- (_Jv_JNIFunctions): Updated for new functions.
- (_Jv_GetJavaVM): New function.
- (_Jv_JNI_GetJavaVM): Use it. Now static.
- (_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
- is already a Java thread but does not have a JNIEnv yet.
-
- * java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
- function.
-
-2000-02-17 Tom Tromey <tromey@cygnus.com>
-
- * gcj/field.h (_Jv_Field::getClass): Don't use JvAssert.
- Fixes PR gcj/152.
-
-2000-02-16 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc (_Jv_JNI_CallStaticMethodV): Added some assertions.
-
- * jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
- (_Jv_JNI_NewObject): Likewise.
- (_Jv_JNI_NewObjectA): Likewise.
- (_Jv_JNI_CallAnyMethodV): In constructor case, pass correct value
- as "return" type to _Jv_CallAnyMethodA.
- (_Jv_JNI_CallAnyMethodA): Likewise.
- (_Jv_JNI_CallAnyVoidMethodV): Likewise.
-
- * jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not
- findClass.
-
-2000-02-15 Tom Tromey <tromey@cygnus.com>
-
- * resolve.cc (ncode): Set args_raw_size. Compute jni_cif and
- jni_arg_types.
- (init_cif): Added `rtype_p' argument.
- * include/java-interp.h (class _Jv_MethodBase): Added
- args_raw_size.
- (class _Jv_InterpMethod): Removed args_raw_size.
- (class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
- * jni.cc (call): Pass JNIEnv and (for static methods only) the
- class pointer as well as the ordinary arguments.
-
- * jni.cc (mangled_name): Skip leading `(' in signature.
-
- * jni.cc (add_char): Added missing `else'.
-
- * jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
- fails.
-
-2000-02-15 Bryce McKinlay <bryce@albatross.co.nz>
-
- * NEWS: Updated.
-
- * java/lang/natRuntime.cc (_load): Include library path with
- exception message.
-
- * java/lang/natSystem.cc (init_properties): set java.lang.classpath
- property.
-
- * java/lang/natThread.cc (dumpStack): Removed.
- * java/lang/Thread.java (dumpStack): Implemented.
-
-2000-02-15 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natRuntime.cc (_load): On Unix, prefix library name
- with `lib' for loadLibrary. Fixes PR gcj/150.
-
-2000-02-14 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/math/MPN.java(findLowestBit): Made methods public.
-
- * java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
- New constructor.
- (min): Implemented.
- (max): Implemented.
- (modPow): Rewritten to not use the naive, slow, brute force approach.
- (isProbablePrime): Implemented.
- (testBit): Implemented.
- (flipBit): Implemented.
- (getLowestSetBit): Implemented.
-
-2000-02-16 Anthony Green <green@redhat.com>
-
- * configure.host: Use the same options for i386 and i486 as we do
- for i586 and i686.
-
-2000-02-12 Tom Tromey <tromey@cygnus.com>
-
- * java/io/File.java (createTempFile): Use low bits from counter,
- not high bits.
-
-Fri Feb 11 19:48:08 2000 Anthony Green <green@cygnus.com>
-
- * THANKS: More thanks.
-
-2000-02-11 Tom Tromey <tromey@cygnus.com>
-
- * interpret.cc (continue1): Use STOREA, not STOREI, to implement
- astore instruction. From Hans Boehm.
-
-2000-02-11 Warren Levy <warrenl@cygnus.com>
-
- * java/math/BigInteger.java(BigInteger(String, int)): New constructor.
- (BigInteger(String)): New constructor.
- (not): Rewritten using version from Kawa's BitOps class.
- (valueOf): New private methods from Kawa's BitOps class.
- (swappedOp): ditto.
- (bitOp): ditto.
- (setBitOp): ditto.
- (and): Implemented.
- (or): Implemented.
- (xor): Implemented.
- (andNot): Implemented.
- (clearBit): Implemented.
- (setBit): Implemented.
- (bitCount): Implemented.
- (toByteArray): Implemented.
-
-2000-02-11 Tom Tromey <tromey@cygnus.com>
-
- * java/io/File.java (nextValue): Now synchronized.
-
-2000-02-10 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptorPosix.cc (open): Recognize EXCL flag.
- * java/io/FileDescriptor.java (EXCL): New static field.
- * java/io/File.java (tmpdir): New static field.
- (createTempFile): New method.
- (nextValue): New method.
- * java/lang/natSystem.cc (init_properties): Set java.io.tmpdir
- property.
-
- * include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
- (jboolean): Declare as an attributed int, not a bool.
- (_Jv_func): Declare differently for C.
-
- * gnu/gcj/jni/natNativeThread.cc: New file.
- * gnu/gcj/jni/NativeThread.java: New file.
- * java/lang/Thread.java (data): Now a RawData.
- * include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
- Declare.
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/Thread.h): New target.
- (ordinary_java_source_files): Added NativeThread.java.
- (nat_source_files): Added natNativeThread.cc.
- * java/lang/natThread.cc: Include <jni.h>
- (struct natThread): Added `jni_env' field.
- (_Jv_GetCurrentJNIEnv): New function.
- (_Jv_SetCurrentJNIEnv): Likewise.
- (initialize_native): Initialize jni_env.
- Include RawData.h.
- * jni.cc (ThreadGroupClass): New define.
- (_Jv_JNI_InvokeFunctions): New structure.
- (JNI_GetCreatedJavaVMs): New function.
- (the_vm): New global.
- (JNI_GetDefaultJavaVMInitArgs): New function.
- Include NativeThread.h.
- (NativeThreadClass): New define.
- (_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
- (_Jv_JNI_DestroyJavaVM): New function.
- (_Jv_JNI_AttachCurrentThread): New function.
- (_Jv_JNI_DetachCurrentThread): New function.
- (_Jv_JNI_GetEnv): New function.
- (JNI_CreateJavaVM): New function.
- (_Jv_JNI_GetJavaVM): New function.
- (_Jv_JNIFunctions): Added entry for GetJavaVM.
- * include/jni.h (JavaVMAttachArgs): New structure.
- (JNI_EDETACHED): New define.
- (JNI_EVERSION): Likewise.
- (JavaVM): Define properly.
- (struct JNIInvokeInterface): New structure.
- (class _Jv_JavaVM): New class.
- (JNI_OnLoad, JNI_OnUnload): Declare.
- (JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
- JNI_GetCreatedJavaVMs): Declare.
- (JavaVMInitArgs): New typedef.
- (JavaVMOption): Likewise.
- (JNI_ERR): New define.
- (JNI_OK): Likewise.
-
-2000-02-10 Andrew Haley <aph@cygnus.com>
-
- * interpret.cc: Don't include fdlibm.h.
- Replace #if with #ifdef throughout.
- Declare extern __ieee754_fmod.
- (continue1): Remove op_getfield, op_getstatic, op_putfield,
- op_putstatic insns.
- * resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
- Search class hierarchy for superclass vtable.
-
- * java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
- off the end of a pointer list.
-
- * java/lang/natThread.cc (stop): Don't abort, throw an exception
- instead.
- (suspend): Ditto.
-
-2000-02-09 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natRuntime.cc (_load): Call add_library.
- (loadLibraryInternal): Likewise.
-
- * gnu/gcj/convert/natIconv.cc (Input_iconv::finalize): Call
- iconv_close when handle is not NULL. Thanks to Andrew Haley.
- (Output_iconv::finalize): Likewise.
-
-2000-02-08 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Properties.java (setProperty): New method.
- (store): New method.
-
-2000-02-07 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Runtime.java (_load): Declare.
- (load, loadLibrary): Wrote in terms of _load.
- * java/lang/natRuntime.cc (load): Call JNI_OnLoad if it appears in
- library.
- (loadLibrary): Likewise.
- Include <jni.h>.
- (_load): New method.
- (loadLibrary, load): Removed.
-
- * jni.cc (ThrowableClass): New define.
- (_Jv_JNI_Throw): Check argument.
- (_Jv_JNI_ThrowNew): Likewise.
- (wrap_value): Don't wrap object if it is NULL.
- (_Jv_JNI_DefineClass): Use wrap_value.
- (_Jv_JNI_FindClass): Likewise.
- (_Jv_JNI_GetSuperclass): Likewise.
- (_Jv_JNI_ExceptionOccurred): Likewise.
- (_Jv_JNI_AllocObject): Likewise.
- (_Jv_JNI_GetObjectClass): Likewise.
- (_Jv_JNI_NewString): Likewise.
- (_Jv_JNI_NewStringUTF): Likewise.
- (_Jv_JNI_NewObjectArray): Likewise.
- (_Jv_JNI_GetObjectArrayElement): Likewise.
- (_Jv_JNI_NewPrimitiveArray): Likewise.
- (_Jv_JNI_ToReflectedField): Likewise.
- (_Jv_JNI_ToReflectedMethod): Likewise.
- (_Jv_JNI_AllocObject): Check argument.
- (_Jv_JNI_NewObjectV): Likewise.
- (_Jv_JNI_NewObject): Likewise.
- (_Jv_JNI_NewObjectA): Likewise.
- (_Jv_JNI_GetObjectClass): Likewise.
- (_Jv_JNI_GetField): Likewise.
- (_Jv_JNI_SetField): Likewise.
-
- * interpret.cc (PUSHL): Don't use expression statement.
- (PUSHD): Likewise.
- (LOADL): Likewise.
- (STOREL): Likewise.
-
- * jni.cc (add_char): Conditional on INTERPRETER.
- (mangled_name): Likewise.
- (call): Likewise.
- * include/java-interp.h (class _Jv_MethodBase): Conditional on
- INTERPRETER.
- (class _Jv_JNIMethod): Likewise.
-
-2000-02-04 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am: Added MPN.java and BigInteger.java.
- * Makefile.in: Rebuilt.
- * gnu/gcj/math/MPN.java: New file. From Kawa by Per Bothner
- <per@bothner.com>.
- * java/math/BigInteger.java: New file. Based primarily on
- Kawa's IntNum.java by Per Bothner <per@bothner.com>.
-
-2000-02-04 Tom Tromey <tromey@cygnus.com>
-
- * defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase
- pointers.
- (handleMethodsEnd): Fixed error messages. Create a _Jv_JNIMethod
- if the method is native.
- * resolve.cc (ncode): Don't handle native methods.
- (_Jv_JNIMethod::ncode): New method.
- (_Jv_PrepareClass): Handle native methods.
- * jni.cc (call): Renamed from _Jv_JNI_conversion_call.
- Include AbstractMethodError.h.
- (add_char): New function.
- (mangled_name): Likewise.
- * include/java-interp.h (class _Jv_JNIMethod): New class.
- (class _Jv_MethodBase): New class.
- (class _Jv_InterpMethod): Derive from _Jv_MethodBase.
- (_Jv_InterpClass): Changed `interpreted_methods' field to type
- `_Jv_MethodBase'.
-
- * include/jvm.h (_Jv_FindSymbolInExecutable): Declare.
- * java/lang/natRuntime.cc (libraries_size, libraries_count,
- libraries): New globals.
- (add_library): New function.
- (_Jv_FindSymbolInExecutable): New function.
-
- * java/lang/natClassLoader.cc (initiated_classes, loaded_classes):
- Now static.
-
-2000-02-04 Andrew Haley <aph@cygnus.com>
-
- * java/lang/Throwable.java (CPlusPlusDemangler): New class.
- (printStackTrace): Use a CPlusPlusDemangler to demangle names.
- * java/lang/natThrowable.cc (printRawStackTrace): Rename
- printStackTrace to printRawStackTrace.
-
-2000-02-03 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Calendar.java (toString): New method.
- * java/util/SimpleTimeZone.java (clone): New method.
- (toString): New method.
- * java/util/TimeZone.java (clone): New method.
- * java/text/SimpleDateFormat.java (clone): New method.
- * java/text/NumberFormat.java (clone): New method.
- (equals): New method.
- * java/text/Format.java (clone): New method.
- * java/text/DateFormatSymbols.java (DateFormatSymbols): New
- constructor.
- (clone): New method.
- * java/text/DateFormat.java (clone): New method.
- * java/text/Collator.java (clone): New method.
-
-2000-02-03 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PipedOutputStream.java (write(byte[], int, int)): New
- method.
-
-2000-02-01 Tom Tromey <tromey@cygnus.com>
-
- * include/java-interp.h (_Jv_JNI_conversion_call): Declare.
- * resolve.cc (ncode): Use _Jv_JNI_conversion_call when
- constructing the closure if the function is native.
- * jni.cc (_Jv_JNI_conversion_call): Now returns `void'. No longer
- a template function, #if'd out, or static.
- Include <java-interp.h>.
-
- * include/jni.h (class _Jv_JNIEnv): Corrected calls using `...'.
-
- * include/jni.h (class _Jv_JNIEnv): Added all C++ inline methods.
-
- * jni.cc (_Jv_JNI_PopLocalFrame): Leave loop when `n == NULL'.
- (_Jv_JNI_conversion_call): _Jv_JNI_PopLocalFrame will never leave
- `locals == NULL'.
- (wrap_value): New function.
- (_Jv_JNI_CallAnyMethodV): Use it.
- (_Jv_JNI_CallAnyMethodA): Likewise.
- (_Jv_JNI_GetField): Use wrap_value; removed specialized version.
- (_Jv_JNI_GetStaticField): Likewise.
-
- * jni.cc (_Jv_JNI_GetField): Specialize for jobject.
- (_Jv_JNI_GetStaticField): Likewise.
-
-2000-01-31 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_MallocUnchecked): New function.
- (main_init): Call _Jv_JNI_Init.
- * include/jvm.h (_Jv_MallocUnchecked): Declare.
- (_Jv_JNI_Init): Declare.
- * jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
- <string.h>.
- (_Jv_JNI_NewGlobalRef): New function.
- (_Jv_JNI_DeleteGlobalRef): New function.
- (_Jv_JNI_DeleteLocalRef): New function.
- (_Jv_JNI_conversion_call): Initialize and clear local reference
- frame.
- (_Jv_JNI_NewLocalRef): New function.
- (struct _Jv_JNI_LocalFrame): New structure.
- (_Jv_JNI_PushLocalFrame): New function.
- (_Jv_JNI_EnsureLocalCapacity): New function.
- (FRAME_SIZE): New define.
- (_Jv_JNI_GetStringChars): Mark string, not characters.
- (_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
- (_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
- (_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
- elements.
- (_Jv_JNI_DefineClass): Make return value a local ref.
- (_Jv_JNI_FindClass): Likewise.
- (_Jv_JNI_GetSuperclass): Likewise.
- (_Jv_JNI_ExceptionOccurred): Likewise.
- (_Jv_JNI_AllocObject): Likewise.
- (_Jv_JNI_GetObjectClass): Likewise.
- (_Jv_JNI_CallAnyMethodV): Likewise.
- (_Jv_JNI_NewString): Likewise.
- (_Jv_JNI_NewStringUTF): Likewise.
- (_Jv_JNI_NewObjectArray): Likewise.
- (_Jv_JNI_GetObjectArrayElement): Likewise.
- (_Jv_JNI_ToReflectedField): Likewise.
- (_Jv_JNI_ToReflectedMethod): Likewise.
- (_Jv_JNIFunctions): Updated table for new functions.
- (_Jv_JNI_Init): New function.
- (mark_for_gc): Wrote.
- (unmark_for_gc): Wrote.
- * include/jni.h (struct JNINativeInterface): Removed name from
- PopLocalFrame parameter.
- (class _Jv_JNIEnv): Added `locals' field.
-
-Mon Jan 31 00:43:15 2000 Anthony Green <green@redhat.com>
-
- * gnu/gcj/convert/natIconv.cc (read): Minor fixes.
- (write): Ditto.
-
-2000-01-30 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_ICONV): Define.
- * configure: Rebuilt.
- * configure.in: Check for `iconv' function.
- * gnu/gcj/convert/BytesToUnicode.java (getDecoder): Try iconv if
- no specific encoder exists.
- * gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Try iconv if
- no specific encoder exists.
- * Makefile.in: Rebuilt.
- * Makefile.am (convert_source_files): Mention Input_iconv.java and
- Output_iconv.java.
- (nat_source_files): Added natIconv.cc.
- * gnu/gcj/convert/natIconv.cc: New file.
- * gnu/gcj/convert/Input_iconv.java: New file.
- * gnu/gcj/convert/Output_iconv.java: New file.
-
-2000-01-28 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (LIBFFIINCS): Added MULTIBUILDTOP.
-
-2000-01-26 Tom Tromey <tromey@cygnus.com>
-
- * gcj/method.h (JvNumMethods): Moved from Class.h.
- (JvGetFirstMethod): Likewise.
- * java/lang/Class.h (Object): Updated decl of
- _Jv_JNI_ToReflectedField.
- (Object): Added _Jv_JNI_ToReflectedMethod as a friend.
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/reflect/Field.h): Added `jboolean'
- argument of _Jv_JNI_ToReflectedField.
- (java/lang/reflect/Constructor.h): Added _Jv_JNI_ToReflectedMethod
- as a friend.
- (java/lang/reflect/Method.h): Likewise.
- * include/jni.h (class _Jv_JNIEnv): Added `klass' member. Use
- __GCJ_JNI_IMPL__.
- (jweak): New typedef.
- (struct JNINativeInterface): Correctly declare remaining entries.
- * jni.cc: Include Class.h, ClassLoader.h.
- (_Jv_JNI_FindClass): New function.
- (_Jv_JNI_DefineClass): New function.
- (_Jv_JNI_conversion_call): New function.
- (_Jv_JNI_FindClass): Use current class loader to find class.
- (_Jv_JNI_ExceptionCheck): New function.
- (_Jv_JNI_FromReflectedField): Now static.
- (MethodClass): New define.
- (_Jv_JNI_FromReflectedMethod): New function.
- (_Jv_JNI_ToReflectedMethod): Likewise.
- Include Method.h.
- (_Jv_JNI_IsAssignableFrom): Renamed.
- (_Jv_JNI_GetStringRegion): New function.
- Include StringIndexOutOfBoundsException.h.
- (_Jv_JNI_GetStringUTFRegion): New function.
- (_Jv_JNIFunctions): Updated for new functions.
- (_Jv_JNI_GetPrimitiveArrayCritical): New function
- (_Jv_JNI_ReleasePrimitiveArrayCritical): Likewise.
- (_Jv_JNI_GetStringCritical): New function.
- (_Jv_JNI_ReleaseStringCritical): Likewise.
- (get_throwable): Removed.
- (GCJ_JV_JNIENV_FRIEND): Removed.
- (__GCJ_JNI_IMPL__): Define.
- Include method.h.
-
- * resolve.cc (get_ffi_type_from_signature): Handle case where
- boolean is an int.
-
-Tue Jan 25 08:51:16 2000 Tom Tromey <tromey@ferrule.cygnus.com>
-
- * interpret.cc (run): Don't call println.
- Don't include PrintStream.h.
-
- * gcj/field.h (struct _Jv_Field): Use "jshort" as type for
- nameIndex. Use "jint" as type for boffset.
- * java/lang/Class.h (struct _Jv_Method): Made accflags a
- _Jv_ushort.
- (Class): Likewise. Also changed type of method_count,
- vtable_method_count, size_in_bytes, field_count,
- static_field_count, interface_count.
- * gcj/array.h (__JArray): Made `length' a const jsize, not an
- int.
-
-2000-01-21 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/natConstructor.cc (newInstance): Use
- _Jv_CallAnyMethodA.
- * include/jvm.h: Declare _Jv_CallAnyMethodA.
- * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Renamed
- from _Jv_CallNonvirtualMethodA. Changed interface; overloaded.
- Include <jni.h>.
- (COPY): Removed.
- (invoke): Use _Jv_CallAnyMethodA.
- (VAL): Redefined.
- * java/lang/Class.h (Class): Declare JvGetFirstStaticField,
- JvNumStaticFields, JvNumMethods, and JvGetFirstMethod as friend
- functions.
- (struct _Jv_Method): Added getNextMethod method.
- (JvNumMethods): New function.
- (JvGetFirstMethod): Likewise.
- * gcj/field.h (JvGetFirstStaticField): New function.
- (JvNumStaticFields): Likewise.
- (getNextField): Renamed from getNextInstanceField.
- (struct _Jv_Field): New method getClass.
- * jni.cc: Wrote many new functions.
- * include/jni.h (JNI_TRUE): Define.
- (JNI_FALSE): Likewise.
- (jobject, jclass, jstring, jarray, jthrowable, jobjectArray,
- jbyteArray, jshortArray, jintArray, jlongArray, jbooleanArray,
- jcharArray, jfloatArray, jdoubleArray): New typedefs.
- (jfieldID, jmethodID): Likewise.
- (JNI_COMMIT, JNI_ABORT): New defines.
- (JNINativeMethod): New struct.
- (struct JNINativeInterface): Correctly declared more entries.
- (class _Jv_JNIEnv): Added `ex' member.
- (JNI_VERSION_1_1): New define.
- (JNI_VERSION_1_2): Likewise.
-
- * boehm.cc (_Jv_MarkObj): Use getNextField, not
- getNextInstanceField.
-
-2000-01-20 Tom Tromey <tromey@cygnus.com>
-
- * resolve.cc (StringClass): Removed.
- * defineclass.cc (StringClass): Removed.
-
-2000-01-19 Bryce McKinlay <bryce@albatross.co.nz>
-
- * NEWS: updated.
-
-2000-01-19 Tom Tromey <tromey@cygnus.com>
-
- * interpret.cc (PC_REGISTER_ASM): Removed.
-
- * java/lang/natThrowable.cc: Don't use `#pragma implementation'.
- From Bryce McKinlay.
-
- * All files: Updated copyright to reflect Cygnus purchase.
-
-2000-01-18 Bryce McKinlay <bryce@albatross.co.nz>
-
- * configure: Rebuilt.
- * configure.in: Recognize --disable-interpreter.
-
-2000-01-18 Andrew Haley <aph@cygnus.com>
-
- * name-finder.cc (lookup): Check for dladdr function.
- acconfig.h (HAVE_DLADDR): Add.
- configure.in: Check for HAVE_DLADDR
- configure: Rebuilt.
- include/config.h.in: Rebuilt.
-
-2000-01-17 Andrew Haley <aph@cygnus.com>
-
- * prims.cc (_Jv_RunMain): Set the name of this executable.
-
-2000-01-17 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThrowable.cc (fillInStackTrace): Return `this' even
- when backtrace can't be computed.
-
- * configure: Rebuilt.
- * configure.in: Fixed typo in AC_CONFIG_SUBDIRS call.
-
- * java/lang/Runtime.java (loadLibraryInternal): Declare.
- * java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy.
- (_Jv_FindClassInCache): Likewise.
- (_Jv_FindClass): Don't conditionalize body on INTERPRETER.
- (findSystemClass): Try to load class from compiled module.
- Include Runtime.h.
- * java/lang/natRuntime.cc (load): Use UTF-8 copy of filename.
- (loadLibrary): Likewise.
- (lt_preloaded_symbols): Define.
- (loadLibraryInternal): New method.
- * include/config.h.in: Rebuilt.
- * acconfig.h (USE_LTDL): Added.
- * Makefile.am (SUBDIRS): Added $(DIRLTDL).
- (INCLUDES): Added $(INCLTDL).
- (libgcj_la_DEPENDENCIES): Added $(LIBLTDL).
- (libgcj_la_LIBADD): Likewise.
- * aclocal.m4, configure: Rebuilt.
- * configure.in: Added libltdl support.
-
-2000-01-15 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_PrimClass): Use `JV_STATE_NOTHING', not `0'.
-
-2000-01-14 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natThrowable.cc: New file.
-
- * java/lang/Throwable.java (fillInStackTrace): Make native.
- (printStackTrace): Call native method to do this.
- (Throwable): Call fillInStackTrace.
- (stackTrace): New variable.
-
- * include/jvm.h: Add _Jv_ThisExecutable functions.
-
- * prims.cc: (_Jv_execName): New variable.
- (catch_segv): Call fillInStackTrace.
- (catch_fpe): Ditto.
- (_Jv_ThisExecutable): New functions.
- (JvRunMain): Set the name of this executable.
-
- * Makefile.am: Add java/lang/natThrowable.cc.
- Add name-finder.cc.
- * Makefile.in: Rebuilt.
-
- * acconfig.h: Add HAVE_PROC_SELF_EXE.
-
- * configure.in: Force link with __frame_state_for in
- FORCELIBGCCSPEC. Add new checks for backtrace.
- * include/config.h.in: Rebuilt.
-
- * name-finder.cc: New file.
- * include/name-finder.h: New file.
-
-2000-01-16 Anthony Green <green@cygnus.com>
-
- * java/lang/StringBuffer.java (StringBuffer): Don't special case
- null argument.
-
-2000-01-16 Jeff Sturm <jsturm@sigma6.com>
-
- * java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).
-
-2000-01-13 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClassLoader.cc (_Jv_FindClass): Register `loader',
- not system loader, as initiating loader.
-
-2000-01-11 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (getpwuid_adaptor): New adaptor for
- HP/UX. From David Scott Urban.
-
-2000-01-10 Jeff Sturm <jsturm@sigma6.com>
-
- * java/lang/natMath.cc (pow): Cast args to `double', not
- `jdouble'.
- (atan2): Likewise.
- (IEEEremainder): Likewise.
- * java/lang/mprec.h: Don't wrap includes in `extern "C"'.
- * java/lang/fdlibm.h: Don't wrap includes in `extern "C"'.
-
-2000-01-09 Anthony Green <green@cygnus.com>
-
- * java/lang/natString.cc (init): Test for overflow condition
- during out of bounds check.
- (getChars): Throw StringIndexOutOfBoundsException, not
- ArrayIndexOutOfBoundsException.
- (getBytes): Ditto.
- (regionMatches): Obey case option during string comparison.
-
- * configure.host (ligcj_interpreter): New variable. Enable
- interpreter by default on IA-32.
- * configure.in: Examine libgcj_interpreter.
- * configure: Rebuilt.
-
-2000-01-07 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libgcj: Don't disable ClassTest.
-
- * java/lang/natClass.cc (getClasses): Wrote.
-
-2000-01-06 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (_getConstructors): Correctly check
- whether method name is the init name.
- (getMethod): Look at accflags on method in `klass', not `this'.
-
-2000-01-05 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (getMethod): Compute offset relative to
- `klass's methods table, not `this's table.
-
- * java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA):
- In unwrapping/widening case, check whether `k' is null, not
- whether it is primitive. Initialize `num' from `argelts', not
- `paramelts'. Correct create and pass arguments to ffi_call.
- Don't let presence of `this' argument affect index used to look in
- argument arrays.
- (COPY): Set appropriate element in `values' vector.
-
- * java/lang/natClass.cc: Include <gcj/method.h>.
-
- * java/lang/Class.h (_getMethods): Correctly declare as private,
- not public.
-
- * java/lang/Class.h (_getMethods): Declare.
- * java/lang/Class.java (_getMethods): Declare.
- * java/lang/natClass.cc (getDeclaringClass): Always return NULL.
- (getDeclaredClasses): Always return empty array.
- (_getMethods): New method.
- (getMethods): Wrote.
- (getDeclaredMethod): Return `rmethod'.
- (finit_name): New global.
- (getDeclaredMethods): Check for finit_name.
- (_getMethods): Likewise.
- (getMethod): Only return public methods.
-
- * java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
- jboolean and select correct ffi type on that basis.
- (_Jv_CallNonvirtualMethodA): Handle `void' return type.
- Constructor call always has `void' return type.
-
-2000-01-04 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Class.h (getSignature): Updated.
- * java/lang/Class.java (getSignature): Updated.
- * java/lang/natClass.cc (getSignature): Added `is_constructor'
- argument.
- (getConstructor): Ensure constructor is public.
- (_getConstructors): Check for public-ness of constructor when
- `declared' is false, not when it is true.
-
-2000-01-04 Warren Levy <warrenl@cygnus.com>
-
- * java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
- comment.
- (receive): Set the sender's address in the DatagramPacket.
-
-2000-01-04 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/natConstructor.cc (newInstance): Pass
- declaring class as return_type argument to
- _Jv_CallNonvirtualMethodA.
- * java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
- constructor case, create object and use it as `this' argument.
- * java/lang/Class.h (_getConstructors): Declare.
- (_getFields): Declare.
- * java/lang/Class.java (getConstructors): Wrote.
- (_getConstructors): New native method.
- (getDeclaredConstructors): Wrote.
- (_getFields): Declare new native method.
- * java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
- incorrect comment.
- (getMethod): Work correctly when class is primitive.
- (getDeclaredMethods): Likewise. Compute offset using `method',
- not `mptr'.
- (getDeclaredMethod): Likewise.
- (getConstructor): Wrote.
- (ConstructorClass): New define.
- (getDeclaredConstructor): Wrote.
- (_getConstructors): New method.
- (_getFields): New method.
- (getFields): Wrote.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.
-
- * prims.cc: Remove `#pragma implementation'.
- * gcj/array.h: Remove `#pragma interface'.
-
- * prims.cc (_Jv_equaln): New function.
- * java/lang/Class.java (getSignature): Declare.
- * resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
- * java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
- resolve.cc.
- (getSignature): New method.
- (getDeclaredMethod): Wrote.
- (getMethod): Wrote.
- Include StringBuffer.h.
- * java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
- as a friend. Unconditionally declare _Jv_LookupDeclaredMethod as
- a friend.
- (getSignature): Declare.
- * include/jvm.h (_Jv_GetTypesFromSignature): Declare.
- (_Jv_equaln): Declare.
- (_Jv_CallNonvirtualMethodA): Declare.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_source_files): Added natConstructor.cc.
- (java/lang/reflect/Constructor.h): New target.
- * java/lang/reflect/natConstructor.cc: New file.
- * java/lang/reflect/Constructor.java (newInstance): Now native.
- (declaringClass): Renamed from decl_class.
- (offset): Renamed from index.
- (getType): New native method.
- (getModifiers): Now native.
- (getParameterTypes): Call getType if required.
- (hashCode): Include hash code from declaring class.
- (modifiers): Removed.
- (toString): Call getType if required.
- * gcj/method.h (_Jv_FromReflectedConstructor): New function.
- * java/lang/reflect/natMethod.cc (hack_call): New method.
- Removed `#if 0' around FFI code.
- Include <gnu/gcj/RawData.h>.
- (invoke): Use _Jv_CallNonvirtualMethodA. Throw
- IllegalArgumentException when argument object and class disagree.
- (_Jv_GetTypesFromSignature): New function.
- (getType): Use it.
- (ObjectClass): New define.
- (_Jv_CallNonvirtualMethodA): New function.
- * java/lang/reflect/Method.java (hack_trampoline): New method.
- (hack_call): New native method.
diff --git a/libjava/ChangeLog-1999 b/libjava/ChangeLog-1999
deleted file mode 100644
index 522025e85bb..00000000000
--- a/libjava/ChangeLog-1999
+++ /dev/null
@@ -1,7108 +0,0 @@
-1999-12-21 Per Bothner <per@bothner.com>
-
- * java/lang/natClass.cc (getDeclaredMethods): Correctly compute
- offset in new Method.
-
-1999-12-22 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/natObject.cc (notify): Throw message with
- IllegalMonitorStateException.
- (notifyAll): Ditto.
- (wait): Ditto.
- * java/lang/Thread.java (isInterrupted): Don't clear interrupt_flag.
- (isInterrupted_): New function, which does clear interrupt_flag.
- (interrupt): Use `isInterrupted_'.
- * java/lang/natThread.cc (interrupt): Add comment.
- (join): Set `prev' in joiner loop.
- Change various calls to `isInterrupted' to use `isInterrupted_'.
- * posix-threads.cc (_Jv_CondWait): Allways use pthread_cond_timedwait
- on linux. Set result to 0 on an interrupt. Test interrupted status
- of java Thread object directly.
- FLAG_INTERRUPTED: removed.
- (_Jv_ThreadStart): Throw OutOfMemoryError if pthread_create fails.
- (_Jv_ThreadInterrupt): Don't set FLAG_INTERRUPTED.
- (_Jv_InitThreads): Don't block SIGINT.
- (_Jv_ThreadWait): Don't configure SIGINT handler.
-
-1999-12-21 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libgcj: Added java.lang.reflect.Modifier.toString12.
-
-1999-12-20 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Modifier.java (STRICT): New constant.
- (isStrict): New method.
- (toString): Added `strict'.
-
-1999-12-23 Anthony Green <green@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (LIBDATASTARTSPEC): Force data_start in with
- linker trick.
-
-1999-12-19 Anthony Green <green@cygnus.com>
-
- * libgcjdata.c: New file.
- * libgcj.spec.in: Use @LIBDATASTARTSPEC@ in startfile.
- * configure: Rebuilt.
- * configure.in (LIBDATASTARTSPEC): Force data with a known name
- into the program.
- * Makefile.in: Rebuilt.
- * Makefile.am: Build libgcjdata.a.
-
- * libgcj.spec.in: Use @FORCELIBGCCSPEC@ in startfile.
- * configure: Rebuilt.
- * configure.in (FORCELIBGCCSPEC): Force important parts of libgcc
- into every program.
-
-1999-12-17 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Method.java (toString): Call getType if
- required. Partial fix for PR libgcj/111. From Per Bothner.
-
- * java/lang/natPosixProcess.cc (startProcess): Don't use sprintf.
-
-1999-12-16 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/Boolean.java (Boolean(String)): Set `value' to false on a
- null String constructor parameter.
- * java/net/natPlainSocketImpl.cc: Remove unneccessary sprintf calls
- for exception messages.
- BooleanClass: declare.
- (setOption): Use BooleanClass instead of Class.forName() for
- instanceof test.
- (bind): Cast 4th parameter of setsockopt to `char *' for
- compatibility with older Solaris headers.
- * java/net/natPlainDatagramSocketImpl.cc: Remove unneccessary
- sprintf calls for exception messages.
- BooleanClass, IntegerClass: declare.
- (setOption): Use BooleanClass and IntegerClass, not Class.forName()
- for instanceof test.
-
-1999-12-15 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (init_properties): Don't set user.name or
- user.home if NO_GETUID defined. Only set user.dir if getcwd
- exists.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (NO_GETUID): New define.
- * configure.in: Rebuilt.
- * configure.in: Define NO_GETUID in cross case. Check for getcwd
- in native case.
-
-1999-12-08 Tom Tromey <tromey@cygnus.com>
-
- * include/posix-threads.h (_Jv_PthreadCheckMonitor): Handle case
- where no recursive mutexes exist. Fixes PR libgcj/117.
-
-1999-12-05 Anthony Green <green@cygnus.com>
-
- * include/jvm.h: Declare many functions with
- __attribute__((__malloc__)).
- * gcj/javaprims.h: Ditto.
-
-Thu Dec 2 17:26:47 1999 Anthony Green <green@cygnus.com>
-
- * THANKS: Giving credit where credit is due.
-
-1999-12-02 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/ServerSocket.java (ServerSocket): Bind to any interface
- if bindAddr is null.
- * java/lang/natString.cc (equalsIgnoreCase): return false if
- anotherString is null.
- * java/lang/Boolean.java (valueOf): return FALSE if argument is
- null.
-
-1999-11-30 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex to get
- mutex to initialize. Initialize `count' if required.
- Fixes PR libgcj/98.
-
-1999-11-27 Per Bothner <per@bothner.com>
-
- * exception.cc: Remove prototype declarations for malloc and free.
- These clash with recent versions of glibc, which specifies `throws ()'
- when __cplusplus is defined. Instead, #include <stdlib.h>.
-
-1999-11-24 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_NewObjectArray): Use
- _Jv_GetArrayElementFromElementType.
- (_Jv_NewPrimArray): Likewise.
- * java/lang/natObject.cc (clone): Use
- _Jv_GetArrayElementFromElementType instead of sizeof.
- * java/lang/natSystem.cc (arraycopy): Use
- _Jv_GetArrayElementFromElementType.
- * include/jvm.h (_Jv_GetArrayElementFromElementType): New
- function.
-
-1999-11-23 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/natPlainSocketImpl.cc: Fix potential buffer overruns in
- Exception messages. PR java.net/57.
- (bind): set SO_REUSEADDR before bind.
- * java/net/natPlainDatagramSocketImpl.cc: Fix potential buffer
- overruns. PR java.net/57.
-
-1999-11-19 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.am (DIVIDESPEC): Removed.
- (EXCEPTIONSPEC): Removed.
-
-1999-11-19 Andrew Haley <aph@cygnus.com>
-
- * Makefile.am (JCFLAGS): Add -L$(here)
- (JC1FLAGS): Ditto.
- * Makefile.in: Rebuild.
-
-1999-11-18 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natDouble.cc: Include <config.h>.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (SJLJ_EXCEPTIONS): Undefine.
- * configure.host: Force -fsjlj-exceptions on non-sparc, non-x86
- targets.
- * configure: Rebuilt.
- * configure.in (EXCEPTIONSPEC): Allow -fsjlj-exceptions to be
- requested by configure.host. Don't put `-D' option into
- libgcj.spec; instead, define SJLJ_EXCEPTIONS with AC_DEFINE.
-
- * configure: Rebuilt.
- * configure.in (EXCEPTIONSPEC): Changed `_' to `-' in
- sjlj-exceptions.
-
-1999-11-18 Andrew Haley <aph@cygnus.com>
-
- * Makefile.am: rename SJLJ_EXCEPTIONS to EXCEPTIONSPEC.
- (AM_CFLAGS): remove SJLJ_EXCEPTIONS.
- (JC1FLAGS): Ditto.
- * Makefile.in: Rebuild
- * acconfig.h: remove SJLJ_EXCEPTIONS
- * configure.in: rename SJLJ_EXCEPTIONS to EXCEPTIONSPEC.
- Do not AC_DEFINE SJLJ_EXCEPTIONS.
- * libgcj.spec.in: Add EXCEPTIONSPEC to jc1.
- * gcj/Makefile.in, include/Makefile.in: rebuild.
- * include/config.h.in: remove SJLJ_EXCEPTIONS.
-
-1999-11-18 Andrew Haley <aph@cygnus.com>
-
- * gij.cc (main): Rename label to prevent conflict.
-
- * exception.cc (_Jv_type_matcher): Don't check the table if we're
- using setjmp/longjmp exceptions: there isn't one.
-
-1999-11-17 Andrew Haley <aph@cygnus.com>
-
- * exception.cc (_Jv_type_matcher): Ignore null exception tables.
- (_Jv_Throw ): Add SJLJ_EXCEPTIONS.
- (__sjthrow): Add declaration.
- * Makefile.am (JCFLAGS): Add SJLJ_EXCEPTIONS
- (JC1FLAGS): Ditto
- (AM_CFLAGS): Ditto
- (AM_CXXFLAGS): Ditto
- * Makefile.in: Rebuild
- * acconfig.h: Add SJLJ_EXCEPTIONS
- * configure.in: Add SJLJ_EXCEPTIONS
- * configure: Rebuild.
- * gcj/Makefile.in: Rebuild.
- * gcj/cni.h: Add support for sjlj-exceptions.
- * gcj/javaprims.h: Add _Jv_Sjlj_Throw.
- * include/Makefile.in: Rebuild.
- * include/default-signal.h: Add support for sjlj-exceptions.
-
-1999-11-18 Tom Tromey <tromey@cygnus.com>
-
- * no-threads.cc (_Jv_ThreadStart): Use JvFail and not JvAssert.
-
- * java/lang/natClass.cc (MCACHE_SIZE): Define as a power of 2
- minus 1.
- (method_cache): Made larger.
-
-1999-11-11 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex when
- initializing mutex. Initialize `count' when required.
-
-1999-11-07 Anthony Green <green@trip.cygnus.com>
-
- * java/util/zip/ZipFile.java: Compute the offset of the ZipEntry
- data correctly.
-
-1999-11-05 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (destroy): Removed incorrect comment.
-
-1999-11-05 Jeff Sturm <jsturm@sigma6.com>
-
- * boehm.cc (_Jv_GCSetInitialHeapSize): Swapped size & current.
- * prims.cc (parse_heap_size): Use end, not spec. Use 1024
- multipler for `k'.
-
-1999-11-05 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (stop): Removed argument name.
-
- * java/lang/ThreadGroup.java (ThreadGroup(int)): No longer
- `private'; now has default access.
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/ThreadGroup.h): Removed.
-
-1999-11-04 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (method_cache_count): Removed.
- (_Jv_FindMethodInCache): Don't loop looking for the hash entry.
- (_Jv_AddMethodToCache): Don't loop.
-
- * configure.in: Removed `qt' threads case.
- * include/quick-threads.h: Removed.
- * quick-threads.cc: Removed.
-
- * include/quick-threads.h (_Jv_ThreadCancel): Removed.
- (_Jv_ThreadDestroy): Likewise.
- * include/no-threads.h (_Jv_ThreadCancel): Removed.
- (_Jv_ThreadDestroy): Likewise.
- * include/posix-threads.h (struct _Jv_Thread_t): Removed
- `exception' field.
- (_Jv_ThreadCancel): Removed decl.
- (_Jv_ThreadDestroy): Removed.
- * posix-threads.cc (_Jv_ThreadCancel): Removed.
- (throw_cleanup): Removed.
- (really_start): Don't push or pop cleanup.
- (_Jv_ThreadInitData): Don't initialize `exception' field.
- * java/lang/Thread.java (stop): Officially unimplemented.
- * java/lang/natThread.cc (stop): Officially unimplemented.
-
-1999-11-02 Bryce McKinlay <bryce@albatross.co.nz>
-
- * posix-threads.cc: Don't include boehm-config.h. Include gcconfig.h
- instead.
-
-1999-11-02 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc: Don't include boehm-config.h.
-
-1999-11-01 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (_Jv_InitGC): Set GC_java_finalization.
- (sum_blocks): Removed.
- (_Jv_GCFreeMemory): Use GC_get_free_bytes.
-
-1999-11-01 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/io/PrintStream (PrintStream): Fix illegal usage of "this"
- before "super".
- * java/io/OutputStreamWriter (OutputStreamWriter): ditto.
- * java/io/InputStreamReader (InputStreamReader): ditto.
-
-1999-10-22 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/ClassLoader.h): New target.
- * java/lang/natClassLoader.cc (_Jv_FindClass): Removed reference
- to `redirect'.
-
- * include/java-props.h (_Jv_Compiler_Properties): Changed
- declaration.
- * gcj/array.h (JvRunMain, _Jv_RunMain): Don't declare.
- * include/jvm.h (_Jv_GCSetInitialHeapSize,
- _Jv_GCSetMaximumHeapSize): Declare.
- (JvRunMain, _Jv_RunMain): Declare.
- (_Jv_SetMaximumHeapSize, _Jv_SetInitialHeapSize): Declare.
- * nogc.cc (_Jv_GCSetInitialHeapSize): New function.
- (_Jv_GCSetMaximumHeapSize): Likewise.
- * boehm.cc (_Jv_GCSetInitialHeapSize): New function.
- (_Jv_GCSetMaximumHeapSize): Likewise.
- * prims.cc (parse_heap_size): New function.
- (_Jv_SetInitialHeapSize): Likewise.
- (_Jv_SetMaximumHeapSize): Likewise.
- (_Jv_Compiler_Properties): New global.
- * gij.cc (help): New function.
- (version): Likewise.
- (heap_size): Likewise.
- (heap_max_size): Likewise.
- (main): Parse arguments. Set _Jv_Compiler_Properties.
- Include <config.h>, <java-props.h>.
- (_Jv_Compiler_Properties): Removed.
-
-1999-10-18 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): New
- method.
- (redirect): New static field.
- * java/lang/ClassLoader.java (getSystemClassLoader): Now
- native
- (getVMClassLoader0): Removed.
- * java/lang/natClassLoader.cc (getVMClassLoader0): Removed.
- (redirect): Removed.
- (getSystemClassLoader): Implemented.
-
-1999-10-16 Anthony Green <green@cygnus.com>
-
- * java/lang/ClassLoader.java (getSystemResource): Use
- getSystemClassLoader instead of ClassLoader.system.
- (getSystemResourceAsStream): Ditto.
-
- * java/lang/natClassLoader.cc (redirect): Make static and
- remove #ifdef INTERPRETER so it is always defined.
- (getVMClassLoader0): Remove #ifdef INTERPRETER so it always
- returns a VMClassLoader.
-
- * java/util/ResourceBundle.java (trySomeGetBundle): Create a
- PropertyResourceBundle if a properties file is found before a
- ResourceBundle class.
-
-1999-10-15 Tom Tromey <tromey@cygnus.com>
-
- * gij.cc (main): Formatting fixes.
- (_Jv_Compiler_Properties): Define.
- * java/lang/natSystem.cc (_Jv_Environment_Properties): Don't
- declare.
- (init_properties): Set properites from _Jv_Compiler_Properties.
- * include/java-props.h (_Jv_Compiler_Properties,
- _Jv_Environment_Properties): Declare.
-
- * include/java-props.h: Added copyright.
-
-1999-10-13 Anthony Green <green@cygnus.com>
-
- * libtool-version: Catch up by incrementing current.
-
- * configure.host: Disable use of GCJ_PROPERTIES for mips-tx39.
- * configure, include/config.h.in: Rebuilt.
- * acconfig.h (DISABLE_GETENV_PROPERTIES): Undefine.
- * configure.in: Added --disable-getenv-properties and new define
- `DISABLE_GETENV_PROPERTIES'.
-
- * prims.cc (PROCESS_GCJ_PROPERTIES): Define.
- (next_property_key): New function.
- (next_property_value): New function.
- (process_gcj_properties): New function.
- (JvRunMain): Call process_gcj_properties.
- (_JvRunMain): Ditto.
-
- * java/lang/natSystem.cc (init_properties): Set properties defined
- in GCJ_PROPERTIES.
-
- * include/java-props.h: New file.
-
- * java/lang/natSystem.cc (init_properties): Add new properties to
- conform with Java Product Versioning Specification.
-
-1999-10-12 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Fixed test for --disable-java-net.
-
-1999-10-06 Tom Tromey <tromey@cygnus.com>
-
- * configure.in (GCJ): Define as "target-gcj", not "target/gcj"
- when building Canadian cross.
- (NATIVE): Don't define when cross-compiling.
-
-1999-10-04 Tom Tromey <tromey@cygnus.com>
-
- * java/net/natPlainSocketImpl.cc: Don't include headers if
- java.net is disabled.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ZINCS): Removed. This is defined in configure.in
- when needed, and must be left empty when not needed.
-
-1999-10-01 Anthony Green <green@cygnus.com>
-
- * THANKS: Refreshed from htdocs version.
-
-1999-10-01 Steve Chamberlain <sac@pobox.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ZINCS): Define
-
- * configure: Rebuilt.
- * configure.in (ZLIBSPEC): Spell -lzgcj correctly.
-
- * java/lang/ieeefp.h: Add definitions for picoJava.
-
-1999-10-01 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Set classpath when invoking gcj. Use changequote
- around sed invocation.
-
- * java/net/natPlainSocketImpl.cc: Stub native functions if
- DISABLE_JAVA_NET is defined.
- * java/net/natPlainDatagramSocketImpl.cc (setTimeToLive): Fixed
- typo in exception string.
- (getTimeToLive): Likewise.
- Stub native functions if DISABLE_JAVA_NET is defined.
- * java/net/natInetAddress.cc: Stub native functions if
- DISABLE_JAVA_NET is defined.
- * configure.host: Disable java.net for mips-tx39.
- * configure, include/config.h.in: Rebuilt.
- * acconfig.h (DISABLE_JAVA_NET): Undefine.
- * configure.in: Added --disable-java-net and new define
- `DISABLE_JAVA_NET'.
-
-1999-09-30 Tom Tromey <tromey@cygnus.com>
-
- * java/net/natPlainDatagramSocketImpl.cc: Indentation fix.
-
-1999-09-29 Bryce McKinlay <bryce@albatross.co.nz>
-
- * README: New file.
-
-1999-09-28 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (PROCESS): In POSIX case, only set if not already
- set.
- * configure.host (PROCESS): Set in mips-tx39 case.
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4 (LIB_AC_PROG_CC, LIB_AC_PROG_CXX): Provide
- appropriate AC_PROG_ symbol.
-
-1999-09-24 Tom Tromey <tromey@cygnus.com>
-
- * include/sparc-signal.h (SIGNAL_HANDLER): Third argument now a
- `void *'.
- (MAKE_THROW_FRAME): Cast third argument back to `ucontext_t *'.
-
- Fix for PR java.util/47:
- * configure, include/config.h: Rebuilt.
- * configure.in: Don't look for ctime or ctime_r.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_source_files): Don't mention natDate.cc.
- * java/util/natDate.cc: Removed.
- * java/util/TimeZone.java (tzIDs, rawOffsets, timeZones): New
- static fields.
- (getAvailableIDs): Rewrote.
- (getTimeZone): Rewrote.
- * java/util/Date.java (toGMTString): New method.
- (toLocaleString): New method.
- (toString): Rewrote.
-
-1999-09-23 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Print message when checking to see if gcj can
- handle -fuse-divide-subroutine.
-
- * java/lang/natFirstThread.cc (run): Renamed from `run0'. Removed
- dead code.
- * java/lang/FirstThread.java (run0): Renamed to `run'.
- (run): Removed.
-
- * prims.cc (main_init): New function.
- (JvRunMain): Call it.
- (_Jv_RunMain): Likewise.
- Include <signal.h>.
- (main_init): Ignore SIGPIPE. Fixes PR 51.
-
-1999-09-22 Tom Tromey <tromey@cygnus.com>
-
- * libgcj.spec.in: Use `jc1' spec, not `cc1' spec.
-
-1999-09-16 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/text/MessageFormat.java (MessageFormat(String)): Set the
- default locale.
- * java/text/NumberFormat.java: Check that object is a Number. If
- not, throw IllegialArgumentException.
-
-1999-09-21 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/convert/Output_UTF8.java (write): Don't exit loop unless
- both `inlength' and `bytes_todo' are 0. Simplified 2-byte case.
-
- * include/posix-threads.h (_Jv_MutexDestroy): Use
- _Jv_PthreadGetMutex.
- (_Jv_MutexLock): Likewise.
- (_Jv_MutexUnlock): Likewise.
-
- * java/io/OutputStreamWriter.java (OutputStreamWriter): Reverted
- previous patch; it too was incorrect.
- * java/io/PrintStream.java (PrintStream): Likewise.
-
- * java/io/OutputStreamWriter.java (OutputStreamWriter): Don't
- refer to `this' before calling superclass constructor.
- * java/io/PrintStream.java (PrintStream): Don't refer to `this'
- before calling superclass constructor.
-
-1999-09-20 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Send output of `-fuse-divide-subroutine' test
- compilation to /dev/null.
-
-1999-09-14 Tom Tromey <tromey@cygnus.com>
-
- * include/java-insns.h: Turned constants into an enum. Added
- multiple-inclusion protection.
-
-1999-09-10 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Build include/Makefile.
- * Makefile.in: Rebuilt.
- * Makefile.am (SUBDIRS): Added gcj and include.
- (install-data-local): New target.
- (extra_headers): New macro.
- * include/Makefile.in: New file.
- * include/Makefile.am: New file.
-
- * interpret.cc: Don't include gcj/field.h or gcj/cni.h.
- * java/lang/reflect/natField.cc: Don't include gcj/field.h or
- gcj/cni.h.
- * boehm.cc: Don't include java-threads.h or gcj/field.h.
- * resolve.cc: Include config.h.
- * defineclass.cc: Include config.h.
- * include/java-interp.h: Don't include config.h.
- * include/jvm.h: Include java-threads.h, Object.h, java-gc.h,
- cni.h.
-
- * gcj/javaprims.h: Regenerated namespace decls.
- * classes.pl (scan): Don't put `;' after closing brace.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Added -I for top_srcdir.
- * configure.in: Create gcj/Makefile.
- * gcj/Makefile.in: New file.
- * gcj/Makefile.am: New file.
- * java/lang/Object.h: Don't include any other headers.
- * gcj/array.h: Renamed from include/java-array.h.
- * gcj/field.h: Renamed from include/java-field.h.
- * gcj/method.h: Renamed from include/java-method.h.
- * gcj/cni.h, gcj/javaprims.h: Moved from include/.
- Updated all files to reflect new include structure.
-
-1999-09-09 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Fixed typo; variable is THREADSPEC and not
- THREADSPECS.
-
-1999-09-08 Tom Tromey <tromey@cygnus.com>
-
- * include/posix-threads.h (_Jv_PthreadCheckMonitor): Reverted
- previous change and implemented a correct test in the __m_count
- case.
-
- * include/posix-threads.h (_Jv_PthreadCheckMonitor): Changed test
- in __m_count case.
-
-1999-09-07 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_CondWait): pthread_ calls return error
- code and don't set errno.
-
- * posix-threads.cc (_Jv_CondWait): Check `errno' against EINTR,
- not `r'. Changed `done_sleeping' to a `bool'.
-
-1999-09-07 Matt Welsh <mdw@cs.berkeley.edu>
-
- * libjava/posix-threads.cc: Added _Jv_ThreadDataKey.
- Added FLAG_INTERRUPTED to indicate that a thread was interrupted
- by another thread, rather than by the GC.
- (_Jv_CondWait): Prevent premature thread wakeup by GC.
- (_Jv_InitThreads): Initialize _Jv_ThreadDataKey.
- * libjava/include/posix-threads.h (_Jv_ThreadCurrentData): New
- function.
-
-1999-09-03 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Check for fstat function.
- * java/io/natFileDescriptorPosix.cc (available): Use fstat() if
- FIONREAD fails.
-
-1999-09-02 Tom Tromey <tromey@cygnus.com>
-
- * include/java-array.h (jobjectArrayjchar): Removed unused
- declaration.
-
- * java/lang/natClassLoader.cc (_Jv_WaitForState): Call
- _Jv_PrepareCompiledClass while holding class mutex.
-
-1999-09-01 Tom Tromey <tromey@cygnus.com>
-
- * include/posix-threads.h (PTHREAD_MUTEX_IS_STRUCT): New define.
- (_Jv_PthreadGetMutex): Use it.
- (_Jv_PthreadCheckMonitor): Use new M_COUNT macros.
- (_Jv_MutexInit): Use PTHREAD_MUTEX_IS_STRUCT.
- (_Jv_MutexLock): Likewise.
- (_Jv_MutexUnlock): Likewise.
- * include/config.h.in: Rebuilt.
- * acconfig.h (PTHREAD_MUTEX_HAVE_M_COUNT,
- PTHREAD_MUTEX_HAVE___M_COUNT): New undefs.
- * configure: Rebuilt.
- * libgcj.spec.in: Don't mention INTERPSPEC.
- * configure.in (INTERPSPEC): Removed.
- Only run pthreads-related checks when using POSIX threads. Check
- for m_count and __m_count in mutex structure.
-
-1999-09-01 Matt Welsh <mdw@cs.berkeley.edu>
-
- * java/lang/natClass.cc: Fixed notification of threads
- when class initialization is complete.
-
-1999-09-01 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Modifier.java (ALL_FLAGS): New constant.
- * resolve.cc: Removed constants defined by
- java.lang.reflect.Modifier.
- Include <java/lang/reflect/Modifier.h>.
- (_Jv_ResolvePoolEntry): Use values from Modifier.
- (_Jv_DetermineVTableIndex): Likewise.
- (_Jv_PrepareClass): Likewise.
- (ncode): Likewise.
- * defineclass.cc (_Jv_ClassReader): Removed constants defined by
- java.lang.reflect.Modifier.
- Include <java/lang/reflect/Modifier.h>.
- (checkExtends): Use values from Modifier.
- (checkImplements): Likewise.
- (handleField): Likewise.
- (handleConstantValueAttribute): Likewise.
- (handleFieldsEnd): Likewise.
- (handleMethod ): Likewise.
- (handleMethodsEnd): Likewise.
- (handleClassBegin): Likewise.
- * interpret.cc: Removed constants defined by
- java.lang.reflect.Modifier.
- (continue1): Use values from Modifier.
- * java/lang/natClassLoader.cc: Removed constants defined by
- java.lang.reflect.Modifier.
-
- * java/lang/natClassLoader.cc (_Jv_NewClass): Use
- JV_STATE_NOTHING, not `0'.
- * java/lang/Class.h: Replaced JV_STATE_ defines with enum.
-
- * posix-threads.cc (_Jv_CondWait): Use _Jv_PthreadGetMutex.
- * include/posix-threads.h (_Jv_Mutex_t): Define as structure,
- except on Linux.
- (_Jv_PthreadGetMutex): New function.
- (_Jv_PthreadCheckMonitor): Use it.
- (_Jv_MutexInit): Likewise. ALso, initialize `count'.
- (_Jv_MutexLock): Update `count'.
- (_Jv_MutexUnlock): Likewise.
- (_Jv_PthreadCheckMonitor): Use Linux-specific knowledge when
- appropriate.
-
-1999-09-01 Kresten Krab Thorup <krab@gnu.org>
-
- * Makefile.am (.java.lo): Add rule.
-
- * Makefile.in: Rebuilt.
-
-1999-09-01 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_CondWait): Call _Jv_PthreadCheckMonitor.
- * include/posix-threads.h (_Jv_PthreadCheckMonitor): New
- function.
- (_Jv_CondNotify): Use it.
- (_Jv_CondNotifyAll): Likewise.
-
- * java/lang/Class.h (JV_STATE_NOTHING): Correct misspelling.
-
-1999-08-31 Tom Tromey <tromey@cygnus.com>
-
- * include/jvm.h (_Jv_makeUtf8TypeConst): Removed unused
- declaration.
-
-1999-08-24 Bryce McKinlay <bryce@albatross.co.nz>
-
- * posix-threads.cc: Include <errno.h>.
-
-1999-08-23 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc: Undefine TRUE and FALSE.
-
- * posix-threads.cc (_Jv_CondWait): Use ETIMEDOUT, not ETIME.
-
-1999-08-21 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_CondWait): Treat a timeout as a normal
- result. PR 40.
-
-1999-08-21 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * configure.in: Check for in_addr_t in netinet/in.h too. Check
- for ip_mreq too.
- * acconfig.h: Define HAVE_IN_ADDR_T instead of in_addr_t.
- (HAVE_STRUCT_IP_MREQ): Added.
- * configure, include/config.h.in: Rebuilt.
- * java/net/natInetAddress.cc (aton): Typedef in_addr_t to jint
- if needed.
- * java/net/natPlainDatagramSocketImpl.cc (McastReq, mcastGrp):
- Disable if ip_mreq is not available.
-
- * configure.in: Check types ssize_t and in_addr_t.
- * acconfig.h: Undefine them.
- * configure, include/config.h.in: Rebuilt.
-
- * java/lang/natSystem.cc (getpwuid_adaptor): New overloaded
- function that detects the signature of getpwuid_r.
- (init_properties): Use it.
- * java/util/natDate.cc (ctime_adaptor): Likewise for ctime_r.
- (toString): Use it.
-
-1999-08-20 Kresten Krab Thorup <krab@samam.daimi.au.dk>
-
- * interpret.cc (continue1): Implement explicit dispatch table.
- insn_target: Explicit interpreter switch table.
- SAVE_PC: New macro, moves pc saving code into instructions that
- require so.
- NEXT_INSN: New macro, replaces `goto next_insn' in all insns.
- PC_REGISTER_ASM: New macro.
- INLINE_SWITCH: New macro. Constrols dispatching strategy.
- opcode: Remove local variable.
- {i,l,f,d}{load,store}_{0,1,2,3}: Expand definitions.
- (POKEI): Use _Jv_word.
- (iinc): Use _Jv_word.
- (dupx): Change reference argument (sp) to pointer.
- (jvdump): Remove
-
- * interpret.cc: Remove instruction timing instrumentation.
-
- * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Changed
- comment. Don't use _Jv_ClassNameSamePackage.
-
- * gnu/gcj/util/path/{SearchPath,ZipFileEntry,DirectoryPathEntry,
- URLPathEntry, CacheEntry}: Removed.
-
- * Makefile.am (ordinary_java_source_files): Remove gnu/gcj/util/path
- package.
- (.java.lo): Rule removed.
-
- * Makefile.in: Rebuilt.
-
-1999-08-19 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (class locker): New class.
- (join): Use a locker around _Jv_CondWait.
- (sleep): Likewise.
-
-1999-08-18 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/ThreadGroup.java: Fixed now-erroneous comment.
- * java/lang/natThread.cc (finish_): Call ThreadGroup.remove.
-
-1999-08-18 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h ("Java"): Regenerated namespace decls.
-
-1999-08-18 Kresten Krab Thorup <krab@gnu.org>
-
- * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed
- from _Jv_InternClassStrings.
-
- * prims.cc (_Jv_RunMain): New function.
- (JvRunMain): Remove gij-support.
-
- * gij.cc (main): Use _Jv_RunMain.
-
- * java/util/zip/ZipFile.java: Call readDirectory in constructor.
-
- * interpret.cc (PUSHA, PUSHI, PUSHF, PUSHL, PUSHD): Don't store
- argument in temp variable.
- (continue1): For all op_x2y insns, use temp variable for
- intermediate value. Also remove some comments.
-
- * java/lang/natClass.cc (newInstance): Call _Jv_InitClass.
- (forName): Don't call _Jv_InitClass.
-
- * java/lang/Class.java (getResource,getResourceAsStream): Implement.
-
- * java/util/zip/ZipEntry.java (ZipEntry(ZipEntry)): New construcor.
-
- * java/util/jar/JarInputStream.java: New file.
-
- * java/util/jar/JarEntry.java: New file.
-
- * java/util/jar/JarFile.java: New file.
-
- * java/net/URLClassLoader.java: New file.
-
- * java/net/JarURLConnection.java: New file.
-
- * gnu/gcj/protocol/jar/Handler.java: New file.
-
- * gnu/gcj/protocol/jar/Connection.java: New file.
-
- * java/security/SecureClassLoader.java: New file.
-
- * java/lang/ClassLoader.java (parent): New variable.
- (ClassLoader (ClassLoader)): new constructor.
- (findClass): New method.
- (loadClass): Add default 1.2 implementation.
- (getSystemResourceAsBytes, getResourceAsBytes): Removed.
- (readfully): Removed.
-
- * gnu/gcj/runtime/VMClassLoader.java: Moved from java/lang.
- (findSystemClass): New method.
- (VMClassLoader): Constructor rewritten.
- (init): New method.
- All other methods removed.
-
- * java/lang/natClassLoader.cc: Change use of java::lang::VMClassLoader
- to gnu::gcj::runtime::VMClassLoader.
- (_Jv_InternClassStrings): Use _Jv_ResolvePoolEntry. Also handle
- class entries.
- (VMClassLoader::findSystemClass): renamed from findBootClass.
-
- * Makefile.am: Add new files.
- (FirstThread.h, ThreadGroup.h): Add _Jv_Main friend.
-
- * Makefile.in: Rebuilt.
-
-1999-08-17 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (sleep): Turn 0 millis and 0 nanos into 1
- nano.
- * include/quick-threads.h (_Jv_CondWait): Don't round to 0
- inappropriately.
-
-1999-08-16 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Set DIVIDESPEC to empty string if compiler does
- not support -fuse-divide-subroutine.
-
-1999-08-14 Per Bothner <per@bothner.com>
-
- * resolve.cc (_Jv_PrepareClass): Use ClassLoader::resolveClass0.
- * java/lang/natClass.cc (initializeClass): Likewise.
- * java/lang/ClassLoader.java (resolveClass0): New static method.
- (resolveClass): Call resolveClass0.
- (findSystemClass): No longer static.
-
-1999-08-12 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * include/javaprims.h (TRUE, FALSE): Redefine as themselves.
-
-1999-08-11 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/util/BitSet.java (set, clear, hashCode): specify "1" constant
- as long.
-
-Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * Makefile: Rebuilt.
- * Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
- builds.
-
- * java/net/natPlainSocketImpl.cc: Include <sys/select.h> only if
- present.
-
- * configure: Rebuilt.
- * configure.in: Properly align --help output, fix capitalization
- and punctuation.
- * acinclude.m4: Likewise.
-
-1999-08-09 Kresten Krab Thorup <krab@gnu.org>
-
- * include/javaprims.h (_Jv_word, _Jv_word2): New types.
-
- * include/java-interp.h (_Jv_InterpMethodInvocation): Use _Jv_word.
- (_Jv_callInterpretedMethod): Unused. Remove.
- (_Jv_InterpMethod::run,run_normal,run_synch_object,run_synch_class):
- Use ffi_raw.
- * include/java-cpool.h (_Jv_get, _Jv_put): Remove.
- (_Jv_{store,load}{Indexes,Int,Float,Long,Double}): Use _Jv_word.
- * boehm.cc (_Jv_MarkObj): Use _Jv_word.
- * interpret.cc: use _Jv_word.
- * defineclass.cc: use_Jv_word.
- * resolve.cc: Use _Jv_word.
- (_Jv_ResolvePoolEntry): Return _Jv_word.
- * java/lang/Class.h (_Jv_Constants): Use _Jv_word for cpool.
- * java/lang/natClassLoader.cc (_Jv_InternClassStrings): Use _Jv_word.
-
- * interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
- Change comment.
-
-Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * configure: Rebuilt.
- * configure.in (sched_yield): Try librt first, then libposix4.
- Add -lrt, -lposix4 to THREADSPEC.
-
-1999-08-08 Anthony Green <green@cygnus.com>
-
- * gnu/gcj/util/path/SearchPath.java: Comment out verbose output.
-
-1999-08-08 Anthony Green <green@cygnus.com>
-
- * defineclass.cc (_Jv_VerifyClassName): Verify array names
- correctly.
-
-1999-08-08 Anthony Green <green@cygnus.com>
-
- * gij.cc: New file.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h: Add INTERPRETER.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libffi_files): Identify the libffi object files for
- inclusion in libgcj.
- (LIBFFIINCS): Define.
-
- * interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
- Dummy definition for configurations without an interpreter.
-
- * java/net/natPlainSocketImpl.cc (getOption): Disamiguate call to
- java::lang::Boolean constructor.
-
- * include/java-interp.h: Always include java-cpool.h.
-
- * java/lang/natClassLoader.cc (getVMClassLoader0): Always return 0
- when INTERPRETER not defined.
-
- * java/lang/Class.h (finalize): Define.
-
- * gnu/gcj/util/path/DirectoryPathEntry.java (getURL): Catch
- IOException from File.getCanonicalPath.
- (getStream): Likewise.
-
- * NEWS: More news.
- * THANKS: More thanks.
-
-1999-08-08 Kresten Krab Thorup <krab@gnu.org>
-
- * resolve.cc (get_ffi_type_from_signature): Generate uint16 for
- jchar type.
- (_Jv_PrepareClass): Allow non-abstract classes to
- have abstract subclasses.
- (_Jv_ResolvePoolEntry): Revert subclass check for protected
- fields and methods.
- * interpret.cc (continue1/perform_invoke): Don't sign extend
- uint16 return val.
- (continue1/lshl,lshr): Push long, not int.
- (continue1/ulshr): Use UINT64, not long long.
- * defineclass.cc (handleFieldsEnd): Handle case when all fields
- are static.
- * java/lang/natClass.cc (forName): Add call to _Jv_InitClass.
- * java/lang/FirstThread.java (run): Add top-level exception
- handler.
- (run0): Renamed from run.
-
-1999-08-08 Kresten Krab Thorup <krab@gnu.org>
-
- * configure.in (--with-interpreter): Added.
- * include/config.h.in (INTERPRETER): Added.
-
- * java/lang/ClassLoader.java: File replaced.
- * java/lang/VMClassLoader.java: New file.
- * java/lang/natClassLoader.cc: New file.
- * gnu/gcj/runtime/MethodInvocation.java: New file.
- * gnu/gcj/util/path/SearchPath.java: New file.
- * gnu/gcj/util/path/PathEntry.java: New file.
- * gnu/gcj/util/path/DirectoryPathEntry.java: New file.
- * gnu/gcj/util/path/ZipPathEntry.java: New file.
- * gnu/gcj/util/path/URLPathEntry.java: New file.
- * gnu/gcj/util/path/CacheEntry.java: New file.
- * include/java-interp.h: New file.
- * include/java-cpool.h: New file.
- * include/java-insns.h: New file.
- * defineclass.cc: New file.
- * interpret.cc: New file.
- * resolve.cc: New file.
-
- * java/lang/natClass.cc (loaded_classes, _Jv_RegisterClass,
- _Jv_RegisterClasses, _Jv_FindClassInCache, _Jv_FindClass,
- _Jv_NewClass, _Jv_FindArrayClass): Moved to natClassLoader.cc.
- (finalize): New.
- (STATE_NOTHING, STATE_RESOLVED, STATE_IN_PROGRESS, STATE_DONE,
- STATE_ERROR): Moved to java/lang/Class.h and renamed with JV_
- prefix.
- (initializeClass): Use new JV_ prefixed names. Also, call
- ClassLoader::resolveClass instead of _Jv_ResolveClass.
-
- * java/lang/Class.h (JV_STATE_PRELOADING, JV_STATE_LOADING,
- JV_STATE_LOADED, JV_STATE_COMPILED, JV_STATE_PREPARED,
- JV_STATE_LINKED): New.
- (_Jv_WaitForState, _Jv_RegisterInitiatingLoader,
- _Jv_UnregisterClass, _Jv_InternClassStrings): New friends.
- (_Jv_IsInterpretedClass, _Jv_InitField, _Jv_LookupDeclaredMethod,
- _Jv_DetermineVTableIndex, _Jv_ResolvePoolEntry, _Jv_PrepareClass,
- _Jv_ClassReader, _Jv_InterpClass, _Jv_InterpMethod,
- _Jv_InterpMethodInvocation): New friends for interpreter.
- (finalize): New.
- (CONSTANT_Class, CONSTANT_String, etc.): Moved to
- include/java-cpool.h and renamed with JV_ prefix.
-
- * include/jvm.h (_Jv_makeUtf8Const, _Jv_makeUtf8TypeConst): New
- decls.
- (_Jv_UnregisterClass): New decl.
-
- * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
- class loader argument.
- (_Jv_FindClass): Use class loader.
-
- * prims.cc (_Jv_makeUtf8Const): New function.
- (_Jv_NewObjectArray): Change use of _Jv_FindArrayClass.
- (_Jv_NewPrimArray): Ditto.
- (_Jv_FindClassFromSignature): Ditto.
- * java/lang/reflect/natArray.cc (newInstance): Ditto.
- * java/lang/reflect/natMethod.cc (getType): Ditto.
-
- * include/java-field.h (_Jv_Field::isRef): Make robust for
- non-resolved contexts.
-
- * boehm.cc (_Jv_MarkObj): Mark interpreter-related fields.
- Also, don't mark class->next field.
-
- * java/lang/VirtualMachineError.java: Added FIXME note.
-
- * configure.in (INTERPSPEC): New spec.
- * libgcj.spec.in: Added INTERPSPEC.
- * Makefile.am: Added gcjh friends for java/lang/VMClassLoader and
- gnu/gcj/runtime/MethodInvocation.
- (libgcj_la_SOURCES): Added resolve.cc defineclass.cc interpret.cc.
- (ordinary_java_source_files): Added above mentioned java classes.
-
- * configure: Rebuilt.
- * Makefile.in: Rebuilt.
-
-1999-08-06 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Look for sched_yield in -lrt.
-
-1999-08-06 Mojo Jojo <mojojojo@pacbell.net>
-
- * java/util/Locale.java, CHINESE, ENGLISH, FRENCH, GERMAN,
- ITALIAN, JAPANESE, KOREAN, CANADA_FRENCH, GERMANY, ITALY, KOREA,
- SIMPLIFIED_CHINESE, TRADITIONAL_CHINESE, PRC, TAIWAN, CHINA): New
- locales.
- (toString): Print correctly when `country' is empty.
-
-1999-08-04 Per Bothner <per@bothner.com>
-
- * configure.in: Also do AC_SUBST for DIVIDESPEC.
-
-1999-08-02 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt for new libtool.
-
-1999-08-02 Bryce McKinlay <bryce@albatross.co.nz>
-
- * boehm.cc (_Jv_RegisterFinalizer): Cast `meth' to GC_PTR.
- * exception.cc (_Jv_Throw): Cast `_Jv_type_matcher' to __eh_matcher.
- * java/net/ServerSocket.java: Define ANY_IF.
- (ServerSocket (int,int)): Use ANY_IF instead of null to bind to
- all network interfaces.
- * java/net/DatagramSocket.java (DatagramSocket): ditto.
- * java/net/natPlainSocketImpl.cc (bind): Expect `0.0.0.0' instead of
- null.
- * java/net/natPlainDatagramSocketImpl (bind): Expect `0.0.0.0'
- instead of null.
- * java/io/natFile.cc (performMkdir): Remove FIXME.
- * java/io/natFileDescriptorPosix.cc (open): Use 0644 file mode.
-
-1999-08-01 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * configure.in: Check for bstring.h.
- * configure, include/config.h.in: Rebuilt.
- * java/net/natPlainDatagramSocketImpl.cc: #include bstring.h.
- * java/net/natPlainSocketImpl.cc: Likewise.
-
-1999-07-31 Tom Tromey <tromey@cygnus.com>
-
- * NEWS: Likewise.
- * THANKS: New file.
-
-1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * configure.in: Check for struct hostent_data and need for
- -D_REENTRANT for gethostbyname_r declaration.
- * java/net/natInetAddress.cc: Define _REENTRANT if needed.
- (lookup): Use hostent_data for fixed_buffer.
- * configure, include/config.h.in: Rebuilt.
-
-1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * java/lang/natSystem.cc (arraycopy): Use bcopy if memmove is not
- available. Don't cast memmove args to (void*).
- * configure.in: Do not abort if memmove is not available.
-
-1999-07-22 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/natString.cc (substring): optimize where substring is
- entire String.
- * java/io/File.java (getName): don't return separator with file name.
- * java/io/natFile.cc (attr): fix overflow.
-
-Sun Jul 25 01:43:34 1999 Anthony Green <green@cygnus.com>
-
- * mauve-libgcj: Disable Object Serialization tests.
-
-1999-07-20 Warren Levy <warrenl@cygnus.com>
-
- * java/net/DatagramSocket.java (DatagramSocket(int, InetAddress)):
- Default to using PlainDatagramSocketImpl.
- * java/net/PlainDatagramSocketImpl.java (close): Catch IOException.
-
-1999-07-19 Tom Tromey <tromey@cygnus.com>
-
- * include/stamp-h.in: New file.
-
-1999-07-12 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/mprec.h: Protect definition of uint32_t with #ifndef
- _UINT32_T.
-
-1999-07-07 Andrew Haley <aph@cygnus.com>
-
- * include/i386-signal.h (MAKE_THROW_FRAME): Advance EIP by two
- bytes to make it point after the instruction where the trap
- occurred.
- (HANDLE_DIVIDE_OVERFLOW): Ditto.
-
-1999-07-07 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libgcj: Explicitly enable formerly disabled java.text
- tests.
-
- * mauve-libgcj: Turn off ClassTest test. Enable java.text tests
- again.
-
-Mon Jul 5 12:01:35 1999 Anthony Green <green@cygnus.com>
-
- * java/net/URL.java (equals): Compare strings using String.equals.
- * java/net/URL.java (sameFile): Ditto.
-
-1999-07-02 Warren Levy <warrenl@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Added inet_ntoa to AC_CHECK_FUNCS.
- * include/config.h.in: Rebuilt.
- * java/net/natPlainDatagramSocketImpl.cc: Added header checking.
- (mcastGrp): Updated FIXME comments.
- (setOption): Fixed typo.
- (getOption):Implemented IP_MULTICAST_IF.
-
-1999-07-02 Warren Levy <warrenl@cygnus.com>
-
- * java/net/PlainDatagramSocketImpl.java (ttl): Removed.
- * java/net/natPlainDatagramSocketImpl.cc (setTimeToLive): Implemented.
- (getTimeToLive): Implemented.
- (setOption): Implemented IP_MULTICAST_IF.
-
-1999-07-01 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/String.java (toString): Check for this == null and throw
- NullPointerException.
-
-1999-07-01 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/convert/BytesToUnicode.java (read): Changed outlength
- to count and revised comments to match.
- * gnu/gcj/convert/Input_EUCJIS.java (read): Same as Input_8859_1.java.
- * gnu/gcj/convert/Input_JavaSrc.java (read): ditto.
- * gnu/gcj/convert/Input_SJIS.java (read): ditto.
- * gnu/gcj/convert/Input_UTF8.java (read): ditto.
- * gnu/gcj/convert/natInput_EUCJIS.cc (read): ditto.
- * gnu/gcj/convert/natInput_SJIS.cc (read): ditto.
-
-1999-07-01 John-Marc Chandonia <jmc@cmpharm.ucsf.edu>
-
- * gnu/gcj/convert/Input_8859_1.java (read): Use 3rd parameter
- properly as count rather than outlength.
- * java/io/BufferedOutputStream.java (write(byte[],int,int): Flush
- output on overflow rather than buffer fill.
- * java/io/BufferedReader.java (fill): Don't clear out the buffer
- if markPos is 0 and there is still room in the buffer.
-
-1999-07-01 Andrew Haley <aph@cygnus.com>
-
- * include/i386-signal.h: Replace sigaction () with __sigaction ().
- This is a workaround for a bug in glibc's pthreads package which
- doesn't deliver any sigcontext information to a signal handler.
-
-1999-06-24 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/e_asin.c: Don't use __int32_t or __uint32_t.
- * java/lang/fdlibm.h (HUGE): Conditionally define.
-
-Fri May 28 22:20:03 1999 Anthony Green <green@cygnus.com>
-
- * java/lang/fdlibm.h: Don't use __uint32_t. Include mprec.h.
- * java/lang/e_log.c: Don't use __uint32_t.
-
-1999-05-27 Eric Christopher <echristo@cygnus.com>
-
- * configure: Rebuilt
- * configure.in: Fixed ISO C9X and namespace collision with __uint32_t
- * acconfig.h: Rebuilt
- * include/config.h.in: Rebuilt
-
- * java/lang/mprec.h, java/lang/e_acos.c, java/lang/e_asin.c,
- java/lang/e_atan2.c, java/lang/e_exp.c, java/lang/e_fmod.c,
- e_log.c, java/lang/e_pow.c, java/lang/e_rem_pio2.c,
- java/lang/e_remainder.c, java/lang/e_sqrt.c, java/lang/fdlibm.h,
- k_tan.c, java/lang/mprec.h, java/lang/s_atan.c,
- java/lang/s_ceil.c, java/lang/s_copysign.c, java/lang/s_fabs.c,
- s_floor.c, java/lang/s_rint.c, java/lang/sf_rint.c: Fixed ISO C9X
- and namespace collision with __uint32_t
-
-1999-06-23 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/InflaterInputStream.java (read): Throw
- ZipException if inflater throws a DataFormatException.
-
-1999-06-23 Warren Levy <warrenl@cygnus.com>
-
- * java/net/DatagramSocketImpl.java (localPort): Fixed typo to match JDK.
- * java/net/natPlainDatagramSocketImpl.cc (bind): ditto.
- * java/text/ChoiceFormat.java (nextDouble(double, boolean)): Method
- is not final per JDK.
- * java/util/PropertyResourceBundle.java (handleGetObject): Method is
- public per JDK.
- * java/util/zip/DataFormatException.java: Class extends Exception.
- * java/util/zip/Deflater.java (finalize): Method is protected per JDK.
- * java/util/zip/ZipEntry.java: Class implements ZipConstants.
- * java/util/zip/ZipInputStream.java: ditto.
- (closeEntry): Changed method name to match JDK spec.
-
-1999-06-21 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/ieeefp.h (__IEEE_LITTLE_ENDIAN): Define for alpha.
- From Jeff Sturm.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (toolexeclibdir): Define as libdir when
- appropriate.
- * configure: Rebuilt.
- * configure.in (USE_LIBDIR): New conditional.
-
-1999-06-18 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/natInetAddress.cc (lookup): Preserve caller-supplied
- hostname in returned InetAddress objects.
- (getLocalHostname): Fix typo.
- * java/net/InetAddress.java (getByName): Set hostname on return
- object.
- (getLocalHost): Call lookup directly to ensure that a fully-qualified
- name is returned.
-
-1999-06-17 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/natPlainSocketImpl.cc (bind): Bind to any/all network
- interfaces if host==NULL.
- (accept): Throw message with InterruptedIOException.
- (getOption): Cache localAddress.
- * java/net/natPlainDatagramSocketImpl.cc (bind): Don't need
- 'address' for DatagramSocket.
- (setTimeToLive): Fix compiler warnings.
- (getOption): Cache localAddress.
- * java/net/Socket.java (getLocalAddress): Don't need local
- InetAddress object. Add FIXME comment about calling checkConnect().
- * java/net/ServerSocket.java (ServerSocket(int)): Initialize
- connection queue to 50 as per JDK 1.2 docs.
- (ServerSocket(int,int)): Listen on all network interfaces by
- default, per JDK 1.2 docs.
- * java/net/PlainDatagramSocketImpl.java: Don't need 'address'.
- Add localAddress caching.
-
-1999-06-15 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/io/FilterOutputStream.java (write(byte[])): Rewrite according
- to JDK 1.2 docs.
- (write(byte[],int,int)): ditto.
-
-1999-06-14 Bryce McKinlay <bryce@albatross.co.nz>
-
- * posix-threads.cc (_Jv_CondWait): Fix currentTimeMillis() overflow.
-
-1999-06-11 Warren Levy <warrenl@cygnus.com>
-
- * mauve-libgcj: Activated java.net Mauve tests.
-
-1999-06-10 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/natInetAddress.cc (aton): Fix typos.
- (lookup): Use a bigger buffer size for gethostbyname_r on all
- versions of glibc. Updated FIXME comment explaining this.
- Modified while loops to not set herr = ERANGE to work around glibc
- problems. Use user specified hostname in InetAddress result when
- available (consistent with JDK).
-
-1999-06-10 Warren Levy <warrenl@cygnus.com>
-
- * java/io/FileDescriptor.java (FileDescriptor(String, int)):
- Throw FileNotFoundException instead of IOException.
- (open): ditto.
- * java/io/FileInputStream.java (FileInputStream): Doesn't throw
- IOException.
- * java/text/Collator.java (CANONICAL_DECOMPOSITION): Fixed typo
- in static field name.
- * java/text/DecimalFormat.java: Throw IllegalArgumentException
- throughout rather than ParseException.
-
-1999-06-09 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/lang/Runtime.java (exec): Convert prog name and arguments
- to string array.
- * java/lang/natPosixProcess.cc (startProcess): Fix typo in
- environment array conversion. Preserve current environment if envp
- not passed. Preserve PATH unless explicitly specified.
- * java/io/DataInputStream.java (readLine): Fix case where '\r' is
- followed by EOF. Set a flag when a line is terminated by '\r' and
- ignore following '\n' if set.
-
-1999-06-02 Warren Levy <warrenl@cygnus.com>
-
- * java/net/URL.java (URL(URL,String)): Initialize port to -1.
- Ignore context if spec is an absolute URL. Fix braindead
- string comparison.
- (hashCode): Use JDK 1.2 style algorithm.
- * java/net/URLStreamHandler.java (parseURL): Reimplement to handle
- context URL properly.
-
-1999-05-30 Anthony Green <green@cygnus.com>
-
- * java/net/URLStreamHandler.java (parseURL): Parse relative URLs
- correctly. Clean up "/../" and "/./" path fragments.
-
-1999-05-28 Warren Levy <warrenl@cygnus.com>
-
- * java/net/DatagramSocket.java (laddr): Removed.
- (DatagramSocket): Removed attempts to get or set laddr if null.
- (getLocalAddress): Reimplemented per spec.
- * java/net/MulticastSocket.java (setTimeToLive): Throw exception
- when ttl is 0.
- (joinGroup): Throw NullPointerException if any argument is null.
- (leaveGroup): ditto.
- * java/net/PlainDatagramSocketImpl.java: Updated comments.
- * java/net/PlainSocketImpl.java (timeout): Added.
- (getInputStream): Added FIXME comment on how to support timeouts
- for TCP.
- * java/net/ServerSocket.java (ServerSocket): Added FIXME comment.
- * java/net/Socket.java: Added FIXME comments to identify
- conflicting specs between the JCL and JDK 1.2 documents.
- * java/net/natPlainDatagramSocketImpl.cc (bind): Use INADDR_ANY
- if host is null. Get localport value resolved by kernel if bind
- lport is 0.
- (receive): Implemented support for timeouts in UDP.
- (setOption): Implemented based on natPlainSocketImpl version.
- (getOption): ditto.
- * java/net/natPlainSocketImpl.cc (bind): Get localport value
- resolved by kernel if bind lport is 0.
- (connect): Get localport value resolved by kernel if bind wasn't
- done to set localport.
- (accept): Implemented support for timeouts for ServerSocket.
- (setOption): Save value for SO_TIMEOUT.
- (getOption): Return timeout for SO_TIMEOUT.
-
-1999-05-26 Bryce McKinlay <bryce@albatross.co.nz>
-
- * java/net/DatagramSocket.java (getSoTimeout): Verify class type.
- * java/net/DatagramSocketImpl.java (getOption): Made abstract.
- (setOption): Made abstract.
- * java/net/PlainDatagramSocketImpl.java: Mirror SocketOptions fields
- to avoid cpp conflicts in native code.
- * java/net/PlainSocketImpl.java: Mirror SocketOptions fields to avoid
- cpp conflicts in native code.
- * java/net/ServerSocket.java (toString): Prepended "ServerSocket".
- * java/net/Socket.java (getLocalAddress): Implemented.
- (setTcpNoDelay): Implemented.
- (getTcpNoDelay): Implemented.
- (setSoLinger): Implemented.
- (getSoLinger): Implemented.
- (getSoTimeout): Verify class type.
- (setSendBufferSize): Implemented.
- (getSendBufferSize): Implemented.
- (setReceiveBufferSize): Implemented.
- (getReceiveBufferSize): Implemented.
- (toString): Prepended "Socket".
- * java/net/SocketImpl.java (toString): Rewritten.
- (getOption): Made abstract.
- (setOption): Made abstract.
- * java/net/natPlainSocketImpl.cc (connect): Set localport properly.
- (setOption): Implemented.
- (getOption): Implemented.
-
-1999-05-26 Warren Levy <warrenl@cygnus.com>
-
- * java/net/DatagramSocket.java (DatagramSocket): Get local host
- address when null. Set SO_REUSEADDR for multicasts.
- (getSoTimeout): Implemented.
- (setSoTimeout): Implemented.
- * java/net/DatagramSocketImpl.java: Implement SocketOptions interface.
- * java/net/MulticastSocket.java (getInterface): Implemented.
- (setInterface): Implemented.
- (setTimeToLive): Check for invalid ttl.
- (joinGroup): Verify multicast address and security.
- (leaveGroup): Verify multicast address and security.
- (send): Implemented.
- * java/net/PlainDatagramSocketImpl.java (timeout): Added.
- (iface): Added.
- (ttl): Added.
- (setOption): Added.
- (getOption): Added.
- (mcastGrp): Added.
- (getTTL): Implemented as non-native.
- (setTTL): ditto.
- (join): ditto.
- (leave): ditto.
- * java/net/ServerSocket.java (setSoTimeout): Implemented.
- (getSoTimeout): Implemented.
- (setSocketFactory): Made synchronized.
- * java/net/Socket.java (setSoTimeout): Implemented.
- (getSoTimeout): Implemented.
- (close): Made synchronized.
- (setSocketImplFactory): Made synchronized.
- * java/net/SocketImpl.java: Implement SocketOptions interface.
- * java/net/natInetAddress.cc: Corrected module name at top of file.
- * java/net/natPlainDatagramSocketImpl.cc (McastReq): Added union.
- (bind): Added FIXME.
- (peek): Implemented.
- (setTTL): Removed.
- (getTTL): Removed.
- (join): Removed.
- (leave): Removed.
- (mcastGrp): Added.
- (setOption): Implemented for SO_REUSEADDR.
- (getOption): Implemented for SO_REUSEADDR.
-
-1999-05-24 Tom Tromey <tromey@cygnus.com>
-
- * java/util/ResourceBundle.java (getBundle): Throw
- NullPointerException if baseName is null.
-
-1999-05-22 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/ZipInputStream.java (fill): New method.
- (compressed_len): New instance variable.
- (getNextStream): Set it.
- (read): Reset inflater on EOF. Only read via `super' if entry is
- deflated.
- (skip): Only skip via `super' if entry is deflated.
- * java/util/zip/Deflater.java (last_input_count): Removed.
- * java/util/zip/natDeflater.cc (deflate): Return 0 if input array
- is length 0.
- (needsInput): Don't use last_input_count.
- (setInput): Don't set last_input_count.
- * java/util/zip/natInflater.cc (getRemaining): Return correct
- result.
- (inflate): Return 0 if input array is length 0.
- (setInput): Don't set last_input_count.
- * java/util/zip/Inflater.java (last_input_count): Removed.
-
-1999-05-21 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Added $(ZINCS).
- * configure: Rebuilt.
- * configure.in (ZINCS): New subst.
-
-1999-05-21 Andrew Haley <aph@cygnus.com>
-
- * include/sparc-signal.h (INIT_FPE, INIT_SEGV): SA_NODEFER added
- to signal options to allow the same exceptions to be rethrown
- later.
-
-1999-05-20 Andrew Haley <aph@cygnus.com>
-
- * libjava/prims.cc (catch_fpe): Call to HANDLE_DIVIDE_OVERFLOW
- added.
- * include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): New macro.
- (INIT_FPE): Exception string made more informative.
- * include/sparc-signal.h (INIT_FPE): Exception string made more
- informative.
- * testsuite/libjava.lang/Divide_1.java: New file.
- * testsuite/libjava.lang/Divide_1.out: New file.
-
-1999-05-19 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4 (version): New variable; pass to AM_INIT_AUTOMAKE.
-
- * java/util/zip/GZIPOutputStream.java (write(byte[])): New
- method.
-
- * java/util/zip/natInflater.cc (inflate): Cast `len' to unsigned.
- Include <stdlib.h>.
- * java/util/zip/natDeflater.cc (deflate): Cast `len' to unsigned.
- Include <stdlib.h>.
- (update): Fail in default case. Always initialize `strat'.
-
- * mauve-libgcj: Enable java.util.zip.
-
-1999-05-18 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am (ordinary_java_source_files): Added DatagramPacket.java,
- DatagramSocket.java, DatagramSocketImpl.java, MulticastSocket.java,
- PlainDatagramSocketImpl.java, and SocketOptions.java.
- (nat_source_files): Added natPlainDatagramSocketImpl.cc.
- * Makefile.in: Rebuilt.
-
- * java/net/DatagramPacket.java: New file.
- * java/net/DatagramSocket.java: New file.
- * java/net/DatagramSocketImpl.java: New file.
- * java/net/MulticastSocket.java: New file.
- * java/net/PlainDatagramSocketImpl.java: New file.
- * java/net/SocketOptions.java: New file.
- * java/net/natPlainDatagramSocketImpl.cc: New file.
-
-1999-05-18 Tom Tromey <tromey@cygnus.com>
-
- * java/util/zip/ZipOutputStream.java (level): Initial value is
- Deflater.DEFAULT_COMPRESSION.
- (close): New method.
- (closeEntry): Likewise.
- (finish): Likewise.
- (put_version): Likewise.
- (write_entry): Likewise.
- (put2, put4): Now return `int'.
- (comment): Default to empty string.
- (bytes_written): New instance variable.
- (chain): Likewise.
- * java/util/zip/ZipEntry.java (setComment): Limit length of
- comment string.
- (setCrc): Check CRC validity.
- (setExtra): Check argument validity.
- (setMethod): Likewise.
- (setSize): Likewise.
- (ZipEntry): Likewise.
- * include/javaprims.h: Updated namespace declarations.
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Mention new files.
- (nat_source_files): Likewise.
- * java/util/zip/ZipFile.java (readu2): Throw ZipException, not
- EOFException.
- (read4): Likewise.
- (getInputStream): Handle compressed entries.
- * java/util/zip/GZIPOutputStream.java: New file.
- * java/util/zip/GZIPInputStream.java: New file.
- * java/util/zip/DataFormatException.java: New file.
- * java/util/zip/CheckedInputStream.java: New file.
- * java/util/zip/CheckedOutputStream.java: New file.
- * java/util/zip/InflaterInputStream.java: Implemented.
- * java/util/zip/natInflater.cc: New file.
- * java/util/zip/Deflater.java: Implemented.
- * java/util/zip/natDeflater.cc: New file.
- * java/util/zip/DeflaterOutputStream.java: Implemented.
-
- * java/util/zip/ZipInputStream.java (closeZipEntry): Throw
- ZipException, not IOException.
- * java/util/zip/ZipFile.java (readDirectory): Throw ZipException,
- not IOException.
-
-1999-05-17 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (init_properties): URL now points to
- sourceware.
-
-1999-05-12 Per Bothner <bothner@cygnus.com>
-
- * java/util/Calendar.java (set): First call computeFields if needed.
- * java/util/natGregorianCalendar.cc (computeTime): Cast 1000 to jlong.
-
-1999-05-12 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Look for -ldl when using the Boehm collector.
- Look for sched_yield in -lposix4.
-
-1999-05-12 Per Bothner <bothner@cygnus.com>
-
- * java/io/File.java (mkdirs): Handle a null parent directory.
-
-1999-05-12 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h: Updated namespace declarations.
- * classes.pl (scan): Uniquify class list.
- * Makefile.in, configure: Rebuilt.
- * Makefile.am (nat_source_files): Added natConcreteProcess.cc.
- (built_java_source_files): New macro.
- (nat_headers): Added built_java_source_files.
- (javao_files): Likewise.
- (EXTRA_libgcj_la_SOURCES): Likewise.
- (libgcj.zip): Create built class files.
- ($(built_java_source_files:.java=.class)): New target.
- (jv_convert_LDADD): Added -L$(here)/.libs.
- * configure.in: Create links for ConcreteProcess.java and
- natConcreteProcess.cc.
- * java/lang/Runtime.java (exec): Create a ConcreteProcess.
- * java/lang/natEcosProcess.cc: New file.
- * java/lang/EcosProcess.java: New file.
- * java/lang/PosixProcess.java: New file.
- * java/lang/natPosixProcess.cc: New file.
-
-1999-05-12 Warren Levy <warrenl@cygnus.com>
-
- * java/net/PlainSocketImpl.java: Corrected copyright & header comments.
- * java/net/SocketImpl.java: Added marker for JDK 1.2 work.
- * java/net/natPlainSocketImpl.cc (bind): Throw BindException.
- (connect): Throw ConnectException.
-
-1999-05-11 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (jv_convert_DEPENDENCIES): Include libgcj.spec.
- * libgcj.spec.in: Don't use `+'. Instead, put old lib spec after
- our libraries.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (jv_convert_LDADD): Removed `-L.'; it is not needed
- and it causes problems with libtool.
-
- * Makefile.in, configure: Rebuilt.
- * Makefile.am (jv_convert_LDFLAGS): Removed -nodefaultlibs.
- (jv_convert_LDADD): Added ZLIBS. Removed -lm, -lc, -lgcc.
- (jv_convert_DEPENDENCIES): Added ZDEPS.
- * configure.in (GCSPEC): Added `-L' to point to boehm-gc build
- directory.
- (THREADSPEC): Added `-L' to point to qthreads build directory.
- (ZLIBS): New subst.
- (ZDEPS): New subst.
-
- * configure, Makefile.in: Rebuilt.
- * Makefile.am (toolexeclib_DATA): New macro.
- * configure.in: Create libgcj.spec. Look for -lsocket and -lnsl.
- Recognize --with-system-zlib.
- (GCSPEC): New subst.
- (THREADSPEC): New subst.
- (SYSTEMSPEC): New subst.
- (ZLIBSPEC): New subst.
- * libgcj.spec.in: New file.
-
-1999-05-10 Tom Tromey <tromey@cygnus.com>
-
- * java/io/InputStreamReader.java (read): If length is 0, return
- 0. Reset `wpos' and `wcount' when buffer has been filled and
- emptied.
-
- * java/util/Properties.java (save): Removed `FIXME' comment.
- (load): Invalid characters in \u now treated as terminators.
- Make sure to append character resulting from `\' handling.
- Cast to `char' when appending to key or value.
- (skip_ws): Inverted test for whitespace.
-
- * java/io/RandomAccessFile.java (RandomAccessFile): Removed
- `FIXME' comment.
- (readLine): Likewise.
- (readFully): Implemented.
-
- * java/lang/natObject.cc (sync_init): Use _Jv_AllocBytesChecked.
-
- * java/awt/natToolkit.cc: Added copyright header.
- * java/util/zip/InflaterInputStream.java: Added copyright header.
-
- * java/io/FilterWriter.java (FilterWriter): Removed `FIXME'
- comment.
- * java/io/SequenceInputStream.java (SequenceInputStream): Removed
- `FIXME' comment.
- (getNextStream): Likewise.
-
- * java/util/ResourceBundle.java (partialGetBundle): Explicitly use
- locale.toString().
- (getBundle): Don't explicitly throw null pointer exception.
-
- * gnu/gcj/RawData.java: Added copyright header.
-
- * include/jni.h (_Jv_va_list): Always define as va_list.
-
-1999-05-9 Anthony Green <green@cygnus.com>
-
- * java/text/DateFormat.java (computeInstance): Separate time
- and date styles.
- (getDateTimeInstance): Ditto.
- (getDateTimeInstance(int,int)): New method.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Add new classes.
-
- * java/util/PropertyResourceBundle.java: New file.
- * gnu/gcj/util/EnumerationChain.java: New file.
-
-1999-05-07 Tom Tromey <tromey@cygnus.com>
-
- * acconfig.h (GCJVERSION): New undef.
- * java/lang/natSystem.cc (init_properties): Define java.version,
- java.class.version, os.name, os.arch, os.version.
- Include <sys/utsname.h> if required.
- * configure: Rebuilt.
- * configure.in: Compute and define GCJVERSION.
-
- * java/lang/natSystem.cc (default_file_encoding): Now static.
-
- * java/lang/natCharacter.cc (isLowerCase): Use a binary search.
-
- * libtool-version: New file.
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcj_la_LDFLAGS): Use -version-info, not
- -release.
-
- * mauve-libgcj: Don't omit Utf8Encoding or StringTest.
- Comment out FieldPosition, ParsePosition, and SimpleDateFormat
- again (oops).
-
- * mauve-libgcj: Test more from java.text. Don't mention 1.1 tests
- (we pick those up already).
-
-1999-05-05 Per Bothner <bothner@cygnus.com>
-
- * java/awt/*: Check a bunch of classes, a few complete, but mostly
- stub classes. (This is enough to get Kawa to compile against libgcj.)
-
- * gnu/gcj/RawData.java: New class.
- * doc/cni.sgml: Document RawData.
-
- * java/util/zip/InflaterInputStream.java: New stub class.
- * java/util/zip/ZipInputStream.java: New class. Partly works.
- * java/util/zip/ZipConstants.java: Add two (internal) constants.
- * java/util/zip/ZipEntry.java (timeFromDOS): New static method.
- * java/util/zip/ZipFile.java: Now mostly works (unless compressed).
- * java/util/zip/ZipOutputStream.java: Start implementation.
-
- * java/lang/natSystem.cc (DEFAULT_FILE_ENCODING): New macro.
- (default_file_encoding): New global, initial value is above macro.
- (init_properties): Default file.encoding to default_file_encoding.
-
- * Makefile.am: Add new classes.
-
-1999-05-05 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (CLEANFILES): Don't mention $(class_files).
- (clean-local): New target
-
- * java/lang/natRuntime.cc: Include <ltdl.h> if required.
- (load, loadLibrary): Now native.
- (init): New method.
- * java/lang/Runtime.java (load, loadLibrary): Now native.
- (init): New native method.
- (Runtime): Use init.
- * prims.cc: Include <ltdl.h> if required.
- (JvRunMain): Call LTDL_SET_PRELOADED_SYMBOLS.
-
-1999-05-05 Gilles Zunino <Gilles.Zunino@hei.fr>
-
- * configure.in: Switch from irix threads to posix threads
- * configure: Regenerate.
-
-1999-04-30 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (jv_convert_LDADD): Added -lgcc.
-
-1999-04-29 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/StringBuffer.java (ensureCapacity): Don't resize
- vector when shared.
-
- * java/util/Locale.java (Locale(String,String)): Implement in
- terms of 3-argument version; variant now defaults to empty
- string.
- (toString): Assume variant is not null.
- (equals): Assume all strings are not null.
- (Locale): Throw NullPointerException if any argument is null.
-
- * java/util/ResourceBundle.java (getBundle): Don't try the base
- name; now implicit in partialGetBundle call.
- (trySomeGetBundle): Search for parent bundles and call setParent
- as required.
- (partialGetBundle): Added `langStop' argument. Use
- `Locale.toString' to compute bundleName.
- (resource_cache): New static field.
- (partialGetBundle): Cache the returned resource bundle. Now
- synchronized.
-
- * gnu/gcj/text/LocaleData_en.java (contents): [collatorRule] Added
- missing `<'.
-
- * mauve-libgcj: Enable Collator and RuleBasedCollator.
- * java/text/natCollator.cc (decomposeCharacter): `base' now
- `const'.
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Added
- CollationElementIterator, CollationKey, Collator,
- RuleBasedCollator.
- (nat_source_files): Added natCollator.cc.
- * java/text/RuleBasedCollator.java (ceiNext): No longer static.
- (compare): Pass `this' to CollationElementIterator constructor.
- (getCollationElementIterator): Likewise.
- (ceiNext): Fix off-by-one error when finding initial substring.
- (next): Correctly mask off bits when computing return value.
- Fixed return values when one string is shorter than the other.
- * java/text/CollationElementIterator.java (collator): New field.
- (CollationElementIterator): Added collator argument.
- (next): Call ceiNext on collator object.
-
-1999-04-26 Tom Tromey <tromey@cygnus.com>
-
- * natCollator.cc: New file.
-
- * java/util/GregorianCalendar.java (setDefaultTime): New method.
- (GregorianCalendar): Use it in all constructors.
- * java/util/Calendar.java (Calendar): Changed argument name to
- `zone' to match code.
-
- * gnu/gcj/text/LocaleData_en.java: Added collatorRule element.
- * java/text/CollationKey.java: New file.
- * java/text/CollationElementIterator.java: New file.
- * java/text/Collator.java: New file.
- * java/text/RuleBasedCollator.java: New file.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (jv_convert_LDFLAGS): Added -nodefaultlibs.
- (jv_convert_LDADD): Explicltly add -lm -lc.
-
-1999-04-26 Tom Tromey <tromey@cygnus.com>
-
- * configure, Makefile.in: Rebuilt.
- * configure.in: Added AM_PROG_LIBTOOL.
- (GCOBJS): Use `.lo' form of files.
- (THREADOBJS): Likewise.
- (GCDEPS): Use `.la' form of library.
- (GCLIBS): Set to be the same as GCDEPS.
- (THREADDEPS): Use `.la' form of library.
- (THREADLIBS): Set to be the same as THREADDEPS.
- * Makefile.am (toolexeclib_LTLIBRARIES): Renamed from
- toolexeclib_LIBRARIES.
- (libgcj_la_SOURCES): Renamed for libtoolization.
- (EXTRA_libgcj_la_SOURCES): Likewise.
- (libgcj_la_DEPENDENCIES): Likewise.
- (libgcj_la_LIBADD): Likewise.
- ($(nat_files)): Use LTCXXCOMPILE.
- ($(c_files)): Use LTCOMPILE.
- (GCJCOMPILE): New macro.
- (.class.o): Use it.
- (.java.o): Likewise.
- ($(javao_files)): Likewise.
- (jv_convert_LINK): Use LIBTOOL.
- (nat_files): Use `.lo' files.
- (c_files): Likewise.
- (javao_files): Likewise.
- (.class.lo): Renamed.
- (.java.lo): Likewise.
- ($(nat_files)): Depend on %.lo.
- ($(c_files)): Likewise.
- ($(javao_files)): Likewise.
- (jv_convert_LDADD): Link against .lo files.
- (jv_convert_DEPENDENCIES): Depend on .lo files.
- (maintainer-check): Depend on libgcj.la, but examine .a file.
- (jv_convert_DEPENDENCIES): Depend on libgcj.la.
- (libgcj_la_LDFLAGS): New macro.
-
-1999-04-23 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am: Added URLDecoder and URLEncoder.
- * Makefile.in: Rebuilt.
-
- * java/net/ServerSocket.java (setSocketFactory): Renamed from
- setSocketImplFactory to match spec.
- * java/net/Socket.java (getSoLinger): Changed return type to
- match spec.
-
- * java/net/URLDecoder.java: New file.
- * java/net/URLEncoder.java: New file.
-
-1999-04-21 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (getBytes): Reverted earlier change and
- applied correct fix from Per Bothner.
-
- * java/lang/String.java: Don't throw
- UnsupportedEncodingException.
-
- * java/lang/natString.cc (getBytes): Correctly size result
- buffer. From Bryce McKinlay <bryce@albatross.co.nz>.
-
-1999-04-20 Andrew Haley <aph@cygnus.com>
-
- * include/sparc-signal.h: new file.
- * configure.in: include/sparc-signal.h added.
- * configure: regenerated.
- * prims.cc (JvRunMain): signal handling code rewritten to be more
- portable.
- (catch_segv): ditto.
- (catch_fpe): ditto.
- * include/i386-signal.h: reorganized.
- * include/default-signal.h: reorganized.
-
-1999-04-19 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (init_properties): Only declare pwd_entry
- once. From Anthony Green.
-
-1999-04-19 Andrew Haley <aph@cygnus.com>
-
- * Makefile.in: Processed with new automake.
-
-1999-04-19 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h: Removed security namespace.
-
-1999-04-20 Anthony Green <green@cygnus.com>
-
- * java/io/PrintStream.java (println): Remove extra println.
-
-1999-04-19 Anthony Green <green@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Add new security files.
-
- * java/security/NoSuchAlgorithmException.java,
- java/security/MessageDigest.java: New files.
-
- * include/javaprims.h: Add security namespace.
-
-1999-04-16 Per Bothner <bothner@cygnus.com>
-
- * gnu/gcj/convert/JIS0201.h: New file, generated from Unicode table.
- * gnu/gcj/convert/Input_JavaSrc.java: New BytesToUnicode class.
- * gnu/gcj/convert/Input_SJIS.java: New BytesToUnicode class.
- * gnu/gcj/convert/Output_EUCJIS.java: New UnicodeToBytes class.
- * gnu/gcj/convert/Output_SJIS.java: New UnicodeToBytes class.
- * gnu/gcj/convert/natInput_EUCJIS.cc: New file.
- * gnu/gcj/convert/natInput_SJIS.cc: New file.
- * gnu/gcj/convert/natOutput_EUCJIS.cc: New file.
- * gnu/gcj/convert/natOutput_SJIS.cc: New file.
- * gnu/gcj/convert/make-trie.c: New file: functions to make a trie.
- * gnu/gcj/convert/gen-from-JIS.c: Invoke make-trie for output.
- * gnu/gcj/convert/Unicode_to_JIS.cc: New generated trie table.
- * Makefile.am: Various changes for new files and conversions.
-
- * gnu/gcj/convert/UnicodeToBytes.java (write(String,int,int,char[])):
- New overloading, allows greater efficiency.
- * gnu/gcj/convert/Output_8859_1.java (write(String,int,int,char[])):
- New overloading (for efficiency - avoids copying).
-
- * gnu/gcj/convert/Output_UTF8.java: Fix typo: 0xC0 -> 0c3F.
- * gnu/gcj/convert/Input_UTF8.java: Fix typos in bit masks.
-
- * java/io/InputStreamReader.java (<init>): Set super.in correctly.
- * java/io/OutputStreamWriter.java (<init>): Set super.in correctly.
- (writeChars): Don't be quite so eager to flush.
- * java/io/PrintStream.java: Rewrite. Now more similar to
- OutputStreamWriter, using explicit UnicodeToBytes converter.
- Also, autoflush does not need to flush so often.
- * java/lang/natString.cc (getBytes): More efficient algorithm.
- (init(jbyteArray,jint,jint,jstring)): More efficient.
-
-1999-04-15 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am (ordinary_java_source_files): Added new Connection
- and Handler classes in gnu.gcj.protocol.file package.
- * Makefile.in: Rebuilt.
-
- * gnu/gcj/protocol/file/Connection.java: New file.
- * gnu/gcj/protocol/file/Handler.java: New file.
- * gnu/gcj/protocol/http/Connection.java (getInputStream): Check
- if doInput allows input.
- (getOutputStream): Check if doOutput allows output.
- * java/net/URLStreamHandler.java (parseURL): Fix indentation.
-
-1999-04-14 Tom Tromey <tromey@cygnus.com>
-
- * java/net/natInetAddress.cc (lookup): On glibc2.0 systems, make
- buffer larger to work around bug.
- From Bryce McKinlay <bryce@albatross.co.nz>.
-
-1999-04-14 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natDouble.java (doubleToLongBits): ensure that all
- NaNs are always converted to the same long value.
- * java/lang/natFloat.java (floatToIntBits): ditto, but for float
- converted to int.
-
-1999-04-13 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (arraycopy): Don't always use jbyteArray;
- instead switch on actual element type.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_MAKEFLAGS): Added JC1FLAGS.
-
-1999-04-13 Andrew Haley <aph@cygnus.com>
-
- * include/i386-signal.h, include/default-signal.h: New files.
- * prims.cc (catch_segv): Call MAKE_THROW_FRAME in exception
- handler.
- (catch_fpe): New function.
- * configure.in: Make link to appropriate include/java-signal.h.
- * configure: Rebuilt.
- * Makefile.am: include/java-signal.h added to dependency list.
- * Makefile.in: Rebuilt.
-
-1999-04-12 Urban Widmark <urban@svenskatest.se>
-
- * java/io/DataInputStream.java (readLine): Corrected handling of
- empty lines, from null to "".
-
-1999-04-12 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libgcj.zip): Put `gnu' classes into zip file.
-
- * java/lang/natSystem.cc (SystemClass): New define.
- (init_properties): Synchronize.
-
-1999-04-08 Geoff Berry <gcb@gnu.org>
-
- * natInetAddress.cc (lookup): Fix typo (AF_INET16 -> AF_INET6).
- * natPlainSocketImpl.cc (accept): Add missing else if check
- for AF_INET6.
-
-1999-04-08 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Long.java (parseLong): Corrected overflow detection
- code.
- * java/lang/Integer.java (parseInt): Corrected overflow detection
- code.
-
- * java/io/PrintStream.java (print): Handle null string argument.
- (println): Likewise.
-
-1999-04-07 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/natString.cc (init(jbyteArray,jint,jint,jstring)):
- Set count to 0 when InputStreamReader returns -1 for EOF.
-
-1999-04-07 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libgcj: Omit java.text.Collator,
- java.text.RuleBasedCollator.
-
-1999-04-06 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/protocol/http/Connection.java (getHeaderField): Catch
- IOException from getHttpHeaders().
- (getHeaderFieldKey): Likewise.
-
- * include/javaprims.h: Regenerated declarations.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ordinary_java_source_files): Updated for removed
- files.
-
-1999-04-06 Per Bothner <bothner@cygnus.com>
-
- * java/util/zip/Adler32.java: New class.
- * java/util/zip/CRC32.java: Add working method bodies.
- * Makefile.am (ordinary_java_source_files): Add new Adler32 class.
- * Makefile.in: Re-generate.
-
-Tue Apr 6 18:28:42 1999 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/protocol/http/Connection.java: New file. Rewritten
- from version in removed www hierarchy.
- * gnu/gcj/protocol/http/Handler.java: New file. Copied from
- version in removed www hierarchy.
-
- * gnu/gcj/www/protocol/http/Connection.java: Removed.
- * gnu/gcj/www/protocol/http/Handler.java: Removed.
- * gnu/gcj/www/protocol/http: Removed dir.
- * gnu/gcj/www/protocol: Removed dir.
- * gnu/gcj/www: Removed dir.
-
- * java/net/HttpURLConnection.java: Revised comments to indicate
- missing JDK 1.2 methods.
-
- * java/net/URL.java (setURLStreamHandler): Look in gnu/gcj/protocol
- hierarchy rather than the gnu/gcj/www/protocol one.
- * java/net/URLConnection.java: Updated status comments.
- (setContentHandler): Look in gnu/gcj/content hierarchy rather than
- the gnu/gcj/www/content one.
-
-1999-04-06 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am (JIS0208_to_Unicode.cc, JIS0212_to_Unicode.cc):
- The gen-from-JIS program is in $(CONVERT_DIR).
-
-1999-04-06 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libgcj: Renamed from mauve-libjava.
-
-Tue Apr 6 03:18:38 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/HttpURLConnection.java (getResponseCode): Implemented.
- (getResponseMessage): Implemented.
- (getResponseVals): New private method.
-
- * java/net/URLConnection.java (getContent): Implemented.
- (setContentHandler): Convert non-alphabetic/numeric chars per spec.
-
-1999-04-05 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.am (bin_PROGRAMS): Renamed convert to jv-convert.
- (jv_convert_SOURCES): Renamed.
- (EXTRA_jv_convert_SOURCES): Likewise.
- (jv_convert_LDFLAGS): Likewise.
- (jv_convert_LINK): Likewise.
- (jv_convert_LDADD): Likewise.
- (jv_convert_DEPENDENCIES): Likewise.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (toolexeclibdir): Reference toolexecdir, not
- tooldir.
-
-Mon Apr 5 02:14:35 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/HttpURLConnection.java (setRequestMethod): Use String.equals
- method for comparison.
-
- * java/net/URLConnection.java (getContentLength): Implemented.
- (getContentType): Implemented.
- (getContentEncoding): Implemented.
- (getExpiration): Implemented.
- (getDate): Implemented.
- (getLastModified): Implemented.
- (getHeaderFieldInt): Implemented.
- (getHeaderFieldDate): Implemented.
-
-Fri Apr 2 18:04:52 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/URLConnection.java (toString): Implemented.
- (setContentHandlerFactory): Implemented.
- (setContentHandler): Wrote new private helper method.
-
-1999-04-01 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(java_source_files:.java=.class): Reverted change
- of 1999-03-31; we always want to build all the .class files.
- Depend on java_source_files, not libgcj.zip.
- (nat_headers): Define in terms of ordinary_java_source_files.
-
-1999-03-31 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (special_java_source_files): New macro.
- (java_source_files): Use it.
- (ordinary_java_source_files): New macro.
- (java_source_files): Use it.
- ($(ordinary_java_source_files:.java=.class)): Renamed to avoid
- creating headers for those files with hand-maintained headers.
-
- * include/javaprims.h: Regenerated namespace declarations.
- * classes.pl (scan): Include [0-9] in regexp for matching class
- names; for java.util.zip.CRC32.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Redefined to generate all possible
- header files.
-
- * java/util/zip/ZipException.java: In package java.util.zip, not
- java.net.
-
-1999-03-30 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (EH_COMMON_INCLUDE): Look in ../compat-include for
- eh-common.h when not building in tree with gcc.
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(nat_files) $(GCOBJS) $(THREADOBJS)
- $(libgcj_a_OBJECTS)): Changed how we list files that depend on
- nat_headers.
- ($(java_source_files:.java=.class)): New target.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (java_source_files): Added
- java/net/HttpURLConnection.java and
- gnu/gcj/www/protocol/http/Connection.java.
-
-Tue Mar 30 15:20:45 1999 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/www/protocol/http/Connection.java: New file.
- * gnu/gcj/www/protocol/http/Handler.java (openConnection): Implemented.
- * java/net/HttpURLConnection.java: New file.
- * java/net/URLConnection.java (getHeaderField): Implemented default.
- (getHeaderFieldKey): Implemented default method.
-
-1999-03-30 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/convert/JIS0212.h, gnu/gcj/convert/JIS0208.h: Rebuilt.
-
- * java/util/zip/Deflater.java: Added copyright header.
- * java/util/zip/CRC32.java: Added copyright header.
-
- * Makefile.am ($(srcdir)/$(CONVERT_DIR)/JIS0208.h): Note in file
- that it is automatically generated.
- ($(srcdir)/$(CONVERT_DIR)/JIS0212.h): Likewise.
-
- * gnu/gcj/convert/BytesToUnicode.java,
- gnu/gcj/convert/Convert.java, gnu/gcj/convert/Input_8859_1.java,
- gnu/gcj/convert/Input_EUCJIS.java,
- gnu/gcj/convert/Input_UTF8.java,
- gnu/gcj/convert/JIS0208_to_Unicode.cc,
- gnu/gcj/convert/JIS0212_to_Unicode.cc,
- gnu/gcj/convert/Output_8859_1.java,
- gnu/gcj/convert/Output_JavaSrc.java,
- gnu/gcj/convert/Output_UTF8.java,
- gnu/gcj/convert/UnicodeToBytes.java,
- gnu/gcj/convert/natInput_EUCJIS.cc: Added copyright headers.
-
- * gnu/gcj/convert/gen-from-JIS.c (main): Fixed incorrect fprintf.
-
- * Makefile.in, configure: Rebuilt.
- * configure.in (TESTSUBDIR): Enable if testsuite subdir exists,
- not if test subdir exists.
- (--enable-gcj-classes): Removed; gcj always used to generate
- .class files.
- (JAVA, JAVAC): Removed.
- (--enable-single-compilation, --enable-source-compilation):
- Removed.
- (here): New subst.
- (NATIVE): New conditional.
- * Makefile.am (toolexecdir): Renamed from tooldir to allow
- `install-exec' to work.
- (toolexeclibdir): Likewise.
- (toollib_LIBRARIES): Likewise.
- (AM_MAKEFLAGS): Don't pass tooldir.
- (JAVAC): New macro.
- (javao_files): Redefined.
- (java_source_files): New macro.
- (c_source_files): New macro.
- (c_files): Redefined in terms of c_source_files.
- (java_io_files, java_lang_files, java_net_files, java_text_files,
- java_util_files, gnu_files, java_files): Removed.
- (class_io_files, class_lang_files, class_net_files,
- class_text_files, class_util_files, class_gnu_files, class_files):
- Removed.
- (nat_source_files): New macro.
- (nat_files): Redefined in terms of nat_source_files.
- (EXTRA_libgcj_a_SOURCES): Added c_source_files,
- java_source_files. Removed no-such-file.c.
- (here): Removed.
- (ETAGS_ARGS): Removed.
- (TAGS_DEPENDENCIES): Likewise.
- (libgcj.zip): Depend on java_source_files. Use $(here) and not
- pwd in rule.
- (src_io_files, src_lang_files, src_text_files, src_util_files,
- src_gnu_files): Removed.
- Removed ALL_AT_ONCE and COMPILE_FROM_CLASS code.
- (BUILT_SOURCES): Removed.
- (header-check): New target.
- (javadir): Removed.
- (noinst_PROGRAMS): New macro.
- ($(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc): Conditionalize
- on MAINTAINER_MODE.
- ($(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc): Likewise.
- (gen-from-JIS): Build in top directory.
- (convert_source_files): New macro.
- (convert_SOURCES): New macro.
- (convert_LDFLAGS): Likewise.
- (convert_LINK): Likewise.
- (convert_LDADD): Likewise.
- (convert_DEPENDENCIES): Likewise.
- (convert): Removed.
- (gen-from-JIS): Removed.
- (gen_from_JIS_SOURCES): New macro.
- (gen_from_JIS_LDADD): Likewise.
- (gen_from_JIS_DEPENDENCIES): Likewise.
-
- * configure: Rebuilt.
- * configure.in (CANADIAN): Set to `yes', not `canadian'.
- (NULL_TARGET): Initialize to `no'. Correctly examine $NULL_TARGET
- when defining conditional.
-
-Tue Mar 30 10:36:27 1999 Per Bothner <bothner@cygnus.com>
-
- * gnu/gcj/convert/{JIS0208.TXT,JIS0212.TXT}: Remove these files.
- The Unicode Consortium does not permit their re-distribution.
- * Makefile.am, Makefile.in: Add comments with URLs for removed files.
- (JIS0208.h, JIS0212.h): Do not depend on removed files.
-
-Mon Mar 29 18:58:13 1999 Per Bothner <bothner@cygnus.com>
-
- * natSystem.c (init_properties): Use malloc, realloc, free after all.
-
-Mon Mar 29 13:41:02 1999 Per Bothner <bothner@cygnus.com>
-
- * gnu/gcj/convert/{JIS0208.TXT,JIS0212.TXT}: New mapping tables
- from Unicode Consortium.
- * gnu/gcj/convert/{JIS0208.h,JIS0212.h}: New generated headers.
- * gnu/gcj/convert/gen-from-JIS.c: New utility for maintainers only.
- * gnu/gcj/convert/{JIS0208_to_Unicode.cc,JIS0212_to_Unicode.cc}:
- New tables, generated using gen-from-JIS.
- * gnu/gcj/convert/Output_JavaSrc.java: New UnicodeToBytes class.
- * gnu/gcj/convert/Output_UTF8.java: Fix bug.
- * gnu/gcj/convert/Input_EUCJIS.java: New BytesToUnicode class.
- * gnu/gcj/convert/natInput_EUCJIS.cc: Native methods for new class.
-
- * gnu/gcj/convert/Convert.java: New application.
- * Makefile.am, Makefile.in (convert): New program, using Convert.
- Build the various JIS conversion tables (in maintainer mode).
-
-Fri Mar 26 16:51:30 1999 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/www/protocol/http/Handler.java: New file - stubbed.
-
- * java/net/URL.java (URL): Deal with null property value. Use "."
- as separator in building class name.
- * java/net/URLConnection.java: Implemented majority of stubbed methods.
- * java/net/URLStreamHandler.java (parseURL): Use "" in string
- manipulations instead of 'null'. Comment cleanup. Use 0 for the
- beginning of the substring rather than 'start'.
-
-1999-03-26 Tom Tromey <tromey@cygnus.com>
-
- * include/java-chartables.h: Rebuilt.
- * include/java-chardecomp.h: New file.
- * chartables.pl: Generate output files directly. Added support
- for generating decomposition header.
- (canonical_decomposition, full_decomposition): New globals.
- (DECOMPOSITION): New constant.
- (process_char): Call add_decomposition.
- (add_decomposition): New sub.
- (write_decompositions): New sub.
-
-1999-03-25 Tom Tromey <tromey@cygnus.com>
-
- * java/text/CollationElementIterator.java: New file.
-
- * mauve-libjava: Omit StringTest.
-
-Wed Mar 24 15:17:49 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/URL.java (URL(URL, String, URLStreamHandler)): Allow URLs
- without a '/' when parsing protocol. Handle ref outside of parseURL.
- (hashCode): Implemented.
- (set): Don't expand -1 to default port.
- (getDefaultPort): Removed.
-
- * java/net/URLStreamHandler.java (parseURL): Implemented.
- (toExternalForm): Implemented.
-
-1999-03-23 Tom Tromey <tromey@cygnus.com>
-
- * java/text/BreakIterator.java (getSentenceInstance):
- Implemented.
- * gnu/gcj/text/SentenceBreakIterator.java: New file.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added IllegalAccessException.
- * java/lang/natClass.cc (newInstance): Throw
- IllegalAccessException, not IllegalAccessError.
- Include IllegalAccessException.h.
-
-1999-03-22 Tom Tromey <tromey@cygnus.com>
-
- * gnu/gcj/text/LineBreakIterator.java: New file.
- * java/text/BreakIterator.java (getLineInstance): Implemented.
-
- * gnu/gcj/text/WordBreakIterator.java (WordBreakIterator): Made
- copy constructor private.
- (previous, next): Removed erroneous comment about line
- separators.
- (previous): Correctly recognize break between non-letter on the
- left and letter on the right. Handle apostrophes correctly.
-
- * java/text/BreakIterator.java (getWordInstance): Implemented.
- * gnu/gcj/text/WordBreakIterator.java: New file.
- * gnu/gcj/text/CharacterBreakIterator.java: Extend
- BaseBreakIterator.
- * gnu/gcj/text/BaseBreakIterator.java: New file.
-
-1999-03-19 Tom Tromey <tromey@cygnus.com>
-
- * java/text/BreakIterator.java: New file (partially stubbed out).
- * gnu/gcj/text/CharacterBreakIterator.java: New file.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (STRUCT_TM_HAS_GMTOFF): New define.
- (HAVE_TIMEZONE): Likewise.
- * configure: Rebuilt.
- * configure.in: Added timezone checks.
- * java/util/natGregorianCalendar.cc (computeTime): Adjust for
- timezone.
-
-Fri Mar 19 15:26:35 1999 Per Bothner <bothner@cygnus.com>
-
- * gnu/gcj/convert/BytesToUnicode.java: New abstract class.
- * gnu/gcj/convert/UnicodeToBytes.java: New abstract class.
- * gnu/gcj/convert/Input_8859_1.java: New BytesToUnicode sub-class.
- * gnu/gcj/convert/Input_UTF8.java: New BytesToUnicode sub-class.
- * gnu/gcj/convert/Output_8859_1.java: New UnicodeToBytes sub-class.
- * gnu/gcj/convert/Output_UTF8.java: New UnicodeToBytes sub-class.
- * java/io/InputStreamReader.java: Rewrite to use BytesToUnicode.
- * java/io/OutputStreamWriter.java: Rewrite to use UnicodeToBytes.
-
- * java/io/natFileDescriptorPosix.cc (open): Use O_BINARY flag.
- (BSD_COMP): Kludge needed for Solaris2.
-
-Fri Mar 19 01:49:46 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/URL.java (URL(java.net.URL, string): Moved code to
- URL(java.net.URL, string, URLStreamHandler) and call it with a
- null handler. In latter constructor, added SecurityManager check.
- (set): Expect null handler on bad protocol rather than an exception.
- (setURLStreamHandler): Simplified exception handling; return null
- on invalid protocol.
-
-1999-03-18 Tom Tromey <tromey@cygnus.com>
-
- * java/text/DecimalFormat.java (format(long,...)): Rewrote.
-
- * java/lang/natSystem.cc (setOut, setIn, setErr): New native
- methods.
- Include PrintStream.h, InputStream.h.
- * java/lang/System.java (ForwardingInputStream,
- ForwardingOutputStream): Removed.
- (setErr, setIn, setOut): Now native.
-
- Reverted patch from 1999-02-12 to work around problem in
- libgcc2.c.
- * exception.cc (_Jv_eh_alloc): Use malloc, not _Jv_AllocBytes.
- (_Jv_eh_free): Use free.
-
- * java/io/natFileDescriptorPosix.cc (open): Allocate enough space
- for path name. Minor formatting fixes.
-
- * boehm.cc (_Jv_MarkObj): Always mark `methods' field.
-
- * prims.cc (fail_on_finalization): New function.
- (_Jv_GCWatch): Likewise.
-
- * prims.cc (JvRunMain): Initialize `nullp'.
- (nullp): New global.
- (catch_segv): Throw nullp.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ZIP): In "null target" case, zip is found in the
- build tree.
-
- * prims.cc (_Jv_PrimClass): Initialize all elements of class
- object.
- Include Modifier.h.
-
- * java/lang/StringBuffer.java (StringBuffer): Don't use
- ensureCapacity to set initial capacity.
- (capacity): Subtract `length' from return result.
-
-Thu Mar 18 01:53:35 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/io/natFileDescriptorPosix.cc (open): Throw
- FileNotFoundException, but with filename and errno in msg.
-
-Wed Mar 17 11:09:30 1999 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/www/protocol/URLStreamHandlerFactory.java: Removed;
- functionality folded into java/net/URL.java per spec.
-
- * java/io/natFileDescriptorPosix.cc (open): Check for ENOENT rather
- than EEXIST for throwing FileNotFoundException.
-
- * java/net/URL.java: Folded in default URLStreamHandlerFactory
- algorithm per JDK 1.2 doc. Added SecurityManager checks.
-
- * java/net/URLStreamHandler.java (parseURL): Added stub.
-
-1999-03-15 Andrew Haley <aph@cygnus.com>
-
- * java/text/ChoiceFormat.java (nextDouble): Simplify and fix off
- by one errors.
-
-1999-03-15 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natSystem.cc (currentTimeMillis): Restore eCos clock
- support.
-
-1999-03-12 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (catch_segv): New function.
- Include <signal.h> if HANDLE_SEGV defined. Include
- NullPointerException.h.
- (JvRunMain): If HANDLE_SEGV defined, install catch_segv as SIGSEGV
- handler.
-
- * java/text/SimpleDateFormat.java (equals): Ensure that object is
- a SimpleDateFormat, not just a DateFormat.
- (defaultCenturyStart, formatData, pattern): Now private.
- (append): Now `final'. Use `NumberFormat.format'.
- (parse): Wrote.
- (SimpleDateFormat): Turn off groupin in NumberFormat object.
-
- * java/lang/natString.cc (indexOf): Add `fromIndex' to successful
- result.
-
- * java/text/MessageFormat.java (format): Use default MessageFormat
- constructor.
- (parse, parseObject): Wrote.
-
- * java/text/SimpleDateFormat.java (SimpleDateFormat): Wrote no-arg
- constructor.
-
-1999-03-12 Andrew Haley <aph@cygnus.com>
-
- * java/lang/String.java (indexOf): Replace with native method for
- better performance.
- * java/lang/natString.cc (IndexOf): As above.
-
- * java/lang/natString.cc (init(jbyteArray,jint,jint,jint)):
- Argument check corrected.
- (init(jbyteArray,jint,jint,jstring)): Likewise.
-
- * java/lang/StringBuffer.java (ensureCapacity): Replace with JDK
- 1.2 compliant method.
-
- * java/lang/Double.java (byteValue, shortValue): JDK 1.1 methods
- added.
- * java/lang/Float.java (byteValue, shortValue): Likewise.
-
-1999-03-11 Tom Tromey <tromey@cygnus.com>
-
- * java/text/DecimalFormat.java (parse): Wrote.
-
- * java/text/ChoiceFormat.java (parse): Set error index on
- ParsePosition object.
-
- * java/lang/Integer.java (parseInt): Throw exception on overflow
- when intermediate result is most negative number. Changed
- overflow detection as well.
- * java/lang/Long.java (parseLong): Likewise.
-
- * configure, Makefile.in: Rebuilt.
- * configure.in (NULL_TARGET, CANADIAN): New conditionals. Set
- CANADIAN when building in source tree that doesn't include gcc.
- * Makefile.am (ZIP, GCJ, GCJH): Use automake conditionals to
- define.
-
- * java/text/ChoiceFormat.java (nextDouble): Correct some
- off-by-one errors when masking or adding.
-
- * java/text/DecimalFormat.java (format): Fill in FieldPosition
- parameter, if given. Use `%', not IEEEremainder.
- (scanFix): Throw error if multiplier already set.
- (computePattern): Wrote.
-
-1999-03-11 Andrew Haley <aph@cygnus.com>
-
- * java/text/ChoiceFormat.java (mantissaBits): Use correct value of
- 52.
- (nextDouble): Corrected masking logic. Handle interaction between
- `next' and negative numbers.
-
-Wed Mar 10 18:58:37 1999 Warren Levy <warrenl@cygnus.com>
-
- * gnu/gcj/www/protocol/URLStreamHandlerFactory.java: Created.
- * java/net/URL.java: Added general comments.
-
-1999-03-10 Tom Tromey <tromey@cygnus.com>
-
- * java/text/ChoiceFormat.java (parse): Wrote.
-
- * java/text/ChoiceFormat.java (toPattern): Use `#', not `<'.
-
- * java/text/MessageFormat.java (MessageFormatElement.setLocale):
- Create ChoiceFormat objects.
- (format): Special-case ChoiceFormat.
- (scanFormatElement): Include { and } in generated style string.
-
-1999-03-09 Tom Tromey <tromey@cygnus.com>
-
- * java/text/ChoiceFormat.java: New file.
-
-Tue Mar 9 17:09:18 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/net/BindException.java: Created.
- * java/net/ConnectException.java: Created.
- * java/net/ContentHandler.java: Created.
- * java/net/ContentHandlerFactory.java: Created.
- * java/net/FileNameMap.java: Created.
- * java/net/MalformedURLException.java: Created.
- * java/net/NoRouteToHostException.java: Created.
- * java/net/ProtocolException.java: Created.
- * java/net/ServerSocket.java (@author): Fixed typo.
- * java/net/Socket.java (@author): Fixed typo.
- * java/net/SocketImpl.java (@author): Fixed typo.
- * java/net/SocketImplFactory.java (@author): Fixed typo.
- * java/net/URL.java: Created - nearly complete.
- * java/net/URLConnection.java: Created - near-empty stub.
- * java/net/URLStreamHandler.java: Created - incomplete stub.
- * java/net/URLStreamHandlerFactory.java: Created.
- * java/net/UnknownServiceException.java: Created.
-
-1999-03-09 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/System.java (ForwardingInputStream): New class.
- (ForwardingOutputStream): Likewise.
- (in, out, err): Now `final' forwarding streams.
- (setIn, setOut, setErr): Use appropriate method on forwarding
- streams.
-
- * java/text/MessageFormat.java (MessageFormatElement): Now `final'
- class.
-
-Tue Mar 9 12:16:53 1999 Per Bothner <bothner@cygnus.com>
-
- * java/util/zip/CRC32.java: New class (just an incomplete stub).
- * java/util/zip/Checksum.java: New interface (complete).
- * java/util/zip/Deflater.java: New class (near-empty stub).
- * java/util/zip/DeflaterOutputStream.java: New class (incomplete stub).
- * java/util/zip/ZipConstants.java: New interface (near-empty stub).
- * java/util/zip/ZipEntry.java: New class (complete).
- * java/util/zip/ZipException.java: New class (complete).
- * java/util/zip/ZipFile.java: New class (incomplete stub).
- * java/util/zip/ZipOutputStream.java: New class (incomplete stub).
-
-1999-03-09 Tom Tromey <tromey@cygnus.com>
-
- * java/text/MessageFormat.java (MessageFormatElement): Removed
- `public' specifiers.
-
- * java/text/DecimalFormat.java (scanFormat): Increment index
- before processing exponential format. Fixed a couple typos in
- exception messages.
- (format): Correct normalization of exponent.
-
-1999-03-08 Tom Tromey <tromey@cygnus.com>
-
- * java/text/SimpleDateFormat.java (parse): Throw
- IllegalArgumentException, not ParseException.
-
-1999-03-05 Tom Tromey <tromey@cygnus.com>
-
- * java/text/SimpleDateFormat.java (SimpleDateFormat): Use locale
- when constructing DateFormatSymbols. Initialize numberFormat
- field of superclass.
-
- * java/text/DateFormat.java (equals): Rewrote.
- (getAvailableLocales): New method.
- (getDateInstance): New methods.
- (getDateTimeInstance): Likewise.
- (getTimeInstance): Likewise.
- (getInstance): New method.
- (computeInstance): New method.
-
- * java/text/DateFormatSymbols.java (zoneStringsDefault): Completed
- for US.
- (safeGetResource): New method.
- (DateFormatSymbols): Use Locale paramater.
- (equals): Now protected.
- Made instance variables private.
-
-1999-03-04 Tom Tromey <tromey@cygnus.com>
-
- * java/text/DecimalFormat.java: New file.
-
- * java/text/NumberFormat.java (groupingUsed,
- maximumFractionDigits, maximumIntegerDigits,
- minimumFractionDigits, minimumIntegerDigits, parseIntegerOnly):
- New fields.
- (setDecimalSeparatorAlwaysShown, setMultiplier,
- setPositivePrefix): Removed.
- (setMinimumFractionDigits, setMaximumFractionDigits):
- Implemented.
- (format): Now final.
- Added many new methods.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (gnu_files): New macro.
- (java_files): Added gnu_files.
- (class_gnu_files): New macro.
- (class_files): Use it.
- (src_gnu_files): New macro.
- (gnu.o): New target.
- (javao_files): Added gnu.o.
-
- * gnu/gcj/text/LocaleData_en_US.java: New file.
- * gnu/gcj/text/LocaleData_en.java: New file.
- * java/text/DecimalFormatSymbols.java: Import ResourceBundle.
- (DecimalFormatSymbols): Use ResourceBundle to find resources.
- (safeGetString): New method.
- (safeGetChar): Likewise.
-
-1999-03-03 Tom Tromey <tromey@cygnus.com>
-
- * java/text/NumberFormat.java (INTEGER_FIELD, FRACTION_FIELD): New
- constants.
-
- * java/text/FieldPosition.java (equals): Don't check for null
- object; instanceof does this.
-
- * java/util/Locale.java (clone): New method.
- (equals): Likewise.
-
-Wed Mar 3 17:20:15 1999 Anthony Green <green@cygnus.com>
-
- * doc/cni.sgml: New file.
-
-1999-03-03 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_Abort): Mention libgcj, not libjava.
-
- * java/text/DecimalFormatSymbols.java: New file.
-
-1999-03-02 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptorPosix.cc: Include sys/filio.h if it
- exists.
- * configure: Rebuilt.
- * configure.in: Check for sys/filio.h.
-
- * java/lang/Runtime.java (checkLink): Throw NullPointerException
- if required.
- (load): Always throw UnsatisfiedLinkError.
- (loadLibrary): Likewise.
-
-1999-03-02 Anthony Green <green@cygnus.com>
-
- * LIBGCJ_LICENSE: New file.
- * LIBJAVA_LICENSE: Removed.
- * Many files: libjava now libgcj.
-
-1999-03-02 Tom Tromey <tromey@cygnus.com>
-
- * include/java-chartables.h: Rebuilt.
- * chartables.pl (print_block): Make table `const'.
- (print_numerics): Likewise.
- (print_single_map): Likewise.
- (print_all_block): Likewise.
- (print_case_table): Likewise.
- (print_fast_tables): Likewise.
- * java/lang/natCharacter.cc (table_search): `table' argument now
- const.
-
-1999-03-01 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Date.java (before, after): Inverted logic.
-
- * java/util/Date.java (parse): Handle case where first character
- in string is open parenthesis.
- (skipParens): Rewrote.
-
- * java/lang/reflect/natArray.cc: Include <stdlib.h>.
- * java/lang/reflect/natField.cc: Include <stdlib.h>.
-
- * java/util/Date.java (parse): Correctly compute beginning of
- punctuation.
-
- * java/util/Hashtable.java (get): Throw NullPointerException if
- key is null.
- (containsKey): Likewise.
-
- * java/util/Properties.java (list): Truncate value to 37
- characters and add `...'.
-
- * java/lang/Byte.java (parseByte): Pass `radix' to
- Integer.parseInt.
-
- * prims.cc (_Jv_Abort): In non-DEBUG case, use System.err, not
- fprintf.
- Include System.h, PrintStream.h.
-
- * java/lang/natSystem.cc (init_properties): Don't use malloc,
- realloc, or free.
-
- * java/lang/natSystem.cc (init_properties): Use getpwuid_r if it
- exists.
- * configure: Rebuilt.
- * configure.in: Check for getpwuid_r. Look for `pwd.h', not
- `pwd.d'.
-
- * mauve-libjava: Omit AttibutedCharacterIterator, ACIAttribute.
-
- * java/lang/SecurityManager.java: Import java.net.*.
- (checkMulticast): New methods.
-
-Fri Feb 26 14:54:52 1999 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am, Makefile.in (java/lang/reflect/Method.h): New rule.
- (nat_files): Add java/lang/reflect/natArray.o.
- (nat_headers): Add Field.h and NoSuchFieldException.h.
-
- * include/java-field.h (_Jv_GetStaticLongField, _Jv_GetStaticIntField,
- _Jv_GetStaticShortField, _Jv_GetStaticByteField): New inline methods.
- (_Jv_FromReflectedField): Fix buglet.
- * include/jvm.h (_Jv_NewMultiArray): New declaration.
- * include/java-assert.h (JvFail): Pass message string to _Jv_Abort.
- * prims.cc (_Jv_Abort): Include message in print-out.
-
- * prims.cc (_Jv_equal): New method (compare Utf8Const and jstring).
- (new_multi_array): Rename to _Jv_NewMultiArray. Make non-static.
- * include/jvm.h (_Jv_NewMultiArray, _Jv_equal): New declarations.
-
- * configure.in (AC_CHECK_HEADERS), configure: Add pwd.h.
- * include/config.h.in (HAVE_PWD_H): New feature macro.
- * java/lang/natSystem.cc (init_properties): Set file.encoding,
- user.name, user.home, user.dir.
-
- * java/lang/reflect/Array.java: New class.
- * java/lang/reflect/natArray.cc: New native methods.
- * include/javaprims.h: Declare java::lang::reflect::Array.
-
- * java/lang/Class.h (getField): New private method. Add friends.
- * java/lang/Class.java (getField): Add private overload.
- * java/lang/natClass.cc (getField, getField, getDeclaredField,
- getDeclaredMethods): Add working implementations.
- * java/lang/reflect/Field.java, java/lang/reflect/natField.cc:
- Finish implementation, except for access control.
-
- * java/lang/reflect/Modifier.java (toString): New overload.
- * include/java-method.h: New file.
- * java/lang/reflect/Method.java (index): Replaced by offset field.
- Remove various private fields - get them from _Jv_Field instead.
- * java/lang/reflect/natMethod.cc (getModifiers, getName, getType):
- New method implementations.
-
- * java/text/NumberFormat.java: Add a bunch of methods.
-
-Mon Feb 22 17:52:34 1999 Per Bothner <bothner@cygnus.com>
-
- * java/lang/StringBuffer.java (getChars): Fix bounds checks.
-
-1999-02-26 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (GETHOSTBYNAME_R_RETURNS_INT,
- GETHOSTBYADDR_R_RETURNS_INT, HAVE_GETHOSTBYNAME_R,
- HAVE_GETHOSTBYADDR_R): New defines.
- * java/net/natInetAddress.cc (lookup): Use gethostbyname_r and
- gethostbyaddr_r if available.
- Include <errno.h>.
- * configure: Rebuilt.
- * configure.in: Check for gethostbyname_r, gethostbyaddr_r.
-
- * java/net/natInetAddress.cc (aton): Use _Jv_AllocBytesChecked.
- Don't use JvFree.
- (lookup): Likewise.
- Include <jvm.h>.
- * include/jvm.h (_Jv_AllocBytesChecked): Declare.
- * prims.cc (_Jv_AllocBytesChecked): New function.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (SUBDIRS): Removed `test'.
- * configure: Rebuilt.
- * configure.in: Don't build test/Makefile.
- * test/*: Removed all files.
-
-Thu Feb 25 17:27:37 1999 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/reflect/Constructor.java: Make class final to match spec.
- * java/lang/reflect/Method.java: Ditto.
-
-1999-02-25 Tom Tromey <tromey@cygnus.com>
-
- * java/net/natInetAddress.cc: Include <sys/types.h> before
- <sys/socket.h>.
- * java/net/natPlainSocketImpl.cc: Include <sys/types.h> before
- <sys/socket.h>.
-
- * java/net/natInetAddress.cc: Declare gethostname if required.
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_GETHOSTNAME_DECL): New define.
- * configure: Rebuilt.
- * configure.in: Define HAVE_GETHOSTNAME_DECL when gethostname is
- declared in unistd.h.
-
-1999-02-24 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (java/io/FileDescriptor.h): Removed target.
- * java/io/FileDescriptor.java (FileDescriptor): Changed protection
- from private to "none".
-
- * include/javaprims.h: Regenerated class declarations with new
- classes.pl.
- * classes.pl (scan): Only generate decls for java.lang, java.io,
- and java.util.
-
-1999-02-24 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_InitThreads): Mask SIGINT in all threads.
- (_Jv_ThreadWait): Allow SIGINT to be delivered to waiting thread.
-
-1999-02-23 Tom Tromey <tromey@cygnus.com>
-
- * java/util/natGregorianCalendar.cc (_REENTRANT): Only define if
- not already defined.
- * java/io/natFile.cc (_REENTRANT): Only define if not already
- defined.
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_BOEHM_GC): New define.
- * configure: Rebuilt.
- * configure.in: Define HAVE_BOEHM_GC if using it.
- * posix-threads.cc: Include boehm-config.h and gc.h if
- HAVE_BOEHM_GC.
- * include/posix-threads.h: Added explanatory note about Boehm GC.
-
- * java/io/BufferedReader.java (readLine): Only return null when
- EOF seen before any characters read. (In particular, an empty
- line should not return null.)
-
- * java/io/BufferedInputStream.java (read): Only refill once per
- invocation.
-
- * mauve-libjava: Added java.text.StringCharacterIterator.iter,
- java.lang.Character.classify12, java.lang.String.hash,
- java.text.FieldPosition.Test, java.text.ParsePosition.Test,
- java.text.SimpleDateFormat.getAndSet2DigitYearStart
-
- * java/text/StringCharacterIterator.java (setIndex): No error if
- index == end.
- (next): Check for `pos == end', not `end - 1'.
- (StringCharacterIterator): Allow `pos == end'. Explicitly check
- for null text in each constructor.
- (clone): Fixed order of arguments to constructor.
-
-1999-02-22 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_INET6): New define.
- (HAVE_SOCKLEN_T): Likewise.
- * java/net/PlainSocketImpl.java: Added copyright header.
- * java/net/natPlainSocketImpl.cc: Added copyright header.
- (union SockAddr): Use HAVE_INET6, not AF_INET6.
- (bind): Likewise.
- (connect): Likewise.
- (accept): Likewise.
- (socklen_t): New typedef.
- (accept): Use socklen_t.
- * java/net/natInetAddress.cc: Added copyright header.
- (HAVE_GETHOSTNAME): Don't define.
- (HAVE_INET_ADDR): Likewise.
- (lookup): Fixed typo.
- (aton): Don't use `address' as name of local variable.
- (lookup): Use HAVE_INET6, not AF_INET6.
-
- * configure: Rebuilt.
- * configure.in: Look for functions inet_aton, inet_addr,
- gethostname, inet_pton, uname. Check for sockaddr_in6 structure.
- Check for socklen_t typedef.
-
- * exception.cc (__throw): Declare as __noreturn__.
-
-Mon Feb 22 15:27:35 1999 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am, Makefile.in: Also build java/net.
- (java/io/FileDescriptor.h): Add friend java::net::PlainSocketImpl.
-
- * java/io/natFile.cc: #define _POSIX_PTHREAD_SEMANTICS and _REENTRANT.
- * java/util/natGregorianCalendar.cc: #define _REENTRANT.
-
- * prims.cc (_Jv_malloc, _Jv_Free): New functions.
- * include/cni.h (JvMalloc, JvFree): New inline functions.
- (JvThrow): Add __noreturn__ attribute.
- * include/javaprims.h (_Jv_Malloc, _Jv_Free): New declarations.
- (_Jv_Throw): Add __noreturn__ attribute.
-
- * java/net/PlainSocketImpl.java: Init fnum to -1.
- * java/net/ServerSocket.java: Add missing throws clauses.
- * java/lang/Socket.java: For the constructor taking a SocketImpl,
- don't call create on the latter. Instead, other constructors
- have to explicitly call SocketImpl.create.
- * java/net/natPlainSocketImpl.cc (accept): Change variable addrlen
- from size_t to int, to match ::accept prototype.
- * java/net/natInetAddress.cc: Use JvFree rather than free.
-
-
-1999-02-22 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h: Added new classes.
- * java/text/StringCharacterIterator.java: New file.
- * java/text/CharacterIterator.java: New file.
-
- * java/text/ParseException.java (errorOffset): Now private.
-
-Mon Feb 22 12:54:53 1999 Per Bothner <bothner@cygnus.com>
-
- * java/net: New package.
- * java/net/{InetAddress.java,PlainSocketImpl.java,ServerSocket.java,
- Socket.java,SocketException.java,SocketImpl.java,
- SocketImplFactory.java,UnknownHostException.java,natInetAddress.cc,
- natPlainSocketImpl.cc}: New classes.
-
- * configure.in (AC_CHECK_HEADERS): Also check for <sys/socket.h>,
- <netinet.in.h>, <arpa/inet.h> and <netdb.h>.
- * include/config.h.in: Add place-holders for HAVE_ARPA_INET_H,
- HAVE_NETDB_H, HAVE_NETINET_IN_H, and HAVE_SYS_SOCKET_H.
-
- * classes.pl: Translate package into "namespace", not "class".
- * include/javaprims.h: Update class list, using "namespace".
-
-1999-02-21 Tom Tromey <tromey@cygnus.com>
-
- * java/util/natGregorianCalendar.cc (_POSIX_PTHREAD_SEMANTICS):
- Define when appropriate.
-
-1999-02-20 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (_Jv_GetStringUTFRegion): Encode \u007f
- as a single byte and \u07ff as two bytes.
- (_Jv_GetStringUTFLength): Likewise.
- * include/jvm.h (UTF8_GET): Mask first byte of 3-byte encoding
- with 0x0f, not 0x1f.
-
-1999-02-19 Tom Tromey <tromey@cygnus.com>
-
- * java/io/DataOutputStream.java (writeUTF): When encoding
- character as 3 bytes, `or' first byte with 0xe0, not 0xc0.
- * java/io/DataInputStream.java (readUTF): Mask second byte of
- 3-byte character with 0x3f, not 0x1f.
-
- * java/io/DataInputStream.java (readLong): Cast result of
- readUnsignedByte to long before using.
-
- * java/io/FileInputStream.java (finalize): Only finalize `fd' if
- it is not null.
-
- * mauve-libjava: Re-enabled java.io.DataInputOutput.
- * include/no-threads.h (_Jv_ThreadInterrupt): Removed name of
- argument to avoid warning.
- * include/quick-threads.h (_Jv_ThreadInterrupt): Removed name of
- argument to avoid warning.
-
-1999-02-18 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libjava: Omit java.io.DataInputOutput and
- java.io.Utf8Encoding.
-
-1999-02-17 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added InterruptedIOException.h.
- * java/io/natFileDescriptorPosix.cc: Include
- InterruptedIOException.h, Thread.h.
- (write): Throw InterruptedIOException when required.
- (read): Likewise.
- * posix-threads.cc: Include <signal.h>.
- (_Jv_ThreadInterrupt): New function.
- (INTR): New define.
- (handle_intr): New function.
- (_Jv_InitThreads): Register handle_intr via sigaction.
- * java/lang/natThread.cc (interrupt): Call _Jv_ThreadInterrupt.
- * include/posix-threads.h (_Jv_ThreadInterrupt): Declare.
- * include/quick-threads.h (_Jv_ThreadInterrupt): New function.
- * include/no-threads.h (_Jv_ThreadInterrupt): New function.
-
-1999-02-19 Andrew Haley <aph@cygnus.com>
-
- * java/lang/ThreadGroup (setMaxPriority): Set the maximum priority
- of subgroups.
- (ThreadGroup (int)): Set the maximum priority of the initial
- ThreadGroup.
-
-1999-02-18 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natClass.cc (forName): Check for the case where a
- classname is the name of an array and call FindClassFromSignature
- to find the Class.
-
-1999-02-18 Andrew Haley <aph@cygnus.com>
-
- * java/lang/StringBuffer (insert (int, String)): Move up any
- characters above the insert position and increase the length of
- the string buffer by the length of the argument.
- (insert (int, char[])): Likewise.
- (insert (int, char)): Likewise.
- (StringBuffer (String)): The initial capacity of the string buffer
- is 16 plus the length of the argument.
- (getChars): Add a JDK 1.2 FIXME.
-
-1999-02-18 Andrew Haley <aph@cygnus.com>
-
- * java/lang/Short.java (parseShort(String, int)): Pass radix to
- Integer.parseInt.
-
-1999-02-18 Andrew Haley <aph@cygnus.com>
-
- * java/lang/Double.java (equals): Use a bit-by-bit comparision
- instead of floating-point equality. This is necessary for
- correct floating-point Hashtables.
- * java/lang/Float.java (equals): Ditto.
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Properties.java (list): Truncate value to 37
- characters and add "...".
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Vector.java (Vector): Throw IllegalArgumentException
- if initCap is negative.
- (contains): Implement JDK1.2-style handling of null argument.
- (removeElement): Likewise.
- (indexOf): Likewise. Also, correctly handle case where idx is
- negative.
- (lastIndexOf): Likewise.
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (init): Increment source pointer in
- loop.
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * exception.cc: Include NullPointerException.h.
- (_Jv_Throw): If `value' is NULL, throw a NullPointerException.
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AUTOMAKE_OPTIONS): Added `no-installinfo.
-
-Sat Feb 13 20:25:09 1999 Bonzo Armstrong <bonzo@cygnus.com>
-
- * configure.in: Don't undefine EH_COMMON_INCLUDE just because
- we're compiling canadian.
- * configure: Regenerated.
-
-1999-02-12 Andrew Haley <aph@cygnus.com>
-
- * java/lang/sf_rint.c: Resurrected. This file shouldn't have been
- deleted from libgcj.
-
-1999-02-12 Tom Tromey <tromey@cygnus.com>
-
- * exception.cc (_Jv_eh_alloc): Use _Jv_AllocBytes, not malloc.
- (_Jv_eh_free): Don't call free.
- Don't declare malloc or free.
-
-1999-02-11 Tom Tromey <tromey@cygnus.com>
-
- * configure.host: Use `libgcj', not `libjava'. Removed `echo'.
-
-1999-02-11 Andrew Haley <aph@cygnus.com>
-
- * ef_fmod.c, sf_ceil.c, sf_fabs.c, sf_floor.c, sf_rint.c,
- wf_fmod.c: Deleted. These are all files from fdlibm which aren't
- needed by java.lang.*.
- * Makefile.am: ef_fmod.o, sf_ceil.o, sf_fabs.o, sf_floor.o, sf_rint.o,
- wf_fmod.o: Removed from libjava.a.
-
-1999-02-11 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h: Reverted previous change; with it
- exception.cc can't compile.
-
- * include/javaprims.h (_Jv_Throw): Mark as noreturn.
-
- * include/config.h.in: Rebuilt.
- * include/posix-threads.h (_Jv_ThreadYield): Conditionalize on
- HAVE_SCHED_YIELD.
- * configure: Rebuilt.
- * configure.in: Check for sched_yield. Look in thread library for
- all thread functions.
-
- * posix-threads.cc (_Jv_MutexInit): Handle case where system has
- no recursive mutexes.
- (_Jv_MutexDestroy): Define when required.
- (_Jv_MutexLock): Likewise.
- (_Jv_MutexUnlock): Likewise.
- (_Jv_CondWait): Conditionalize on HAVE_RECURSIVE_MUTEX.
- * include/posix-threads.h (HAVE_RECURSIVE_MUTEX): New define.
- (_Jv_Mutex_t): New structure.
- (_Jv_MutexDestroy): Only define if recursive mutexes available.
- (_Jv_MutexLock): Likewise.
- (_Jv_MutexUnlock): Likewise.
-
-1999-02-10 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure, Makefile.in: Rebuilt.
- * acinclude.m4: Renamed libjava to libgcj. Updated to use
- automake 1.4.
- * configure.in: Changed to track library changes.
- * Makefile.am (toollib_LIBRARIES): Renamed libjava to libgcj.
- (AM_CXXFLAGS): Likewise.
- (data_DATA): Likewise.
- (AM_CFLAGS): Likewise.
- (JC1FLAGS): Likewise.
- (libgcj_a_SOURCES): Likewise.
- (EXTRA_libgcj_a_SOURCES): Likewise.
- (libgcj_a_DEPENDENCIES): Likewise.
- (libgcj_a_LIBADD): Likewise.
- (libgcj.zip): Likewise.
- (CLEANFILES): Likewise.
- ($(nat_headers)): Likewise.
- (java/lang/FirstThread.h): Likewise.
- (java/lang/ThreadGroup.h): Likewise.
- (java/lang/String.h): Likewise.
- (java/lang/reflect/Field.h): Likewise.
- (BUILT_SOURCES): Likewise.
- (maintainer-check): Likewise.
- (CONFIG_STATUS_DEPENDENCIES): Likewise.
-Tue Feb 9 11:06:38 1999 Anthony Green <green@cygnus.com>
-
- * java/util/natGregorianCalendar.cc (computeFields): Only use
- gmtime_r and localtime_r when configured for posix threads.
-
- * java/io/natFile.cc (get_entry): Only use readdir_r when
- configured for posix threads.
-
- * java/util/natGregorianCalendar.cc: Update copyright notice.
- * java/util/TimeZone.java: Ditto.
- * java/util/SimpleTimeZone.java: Ditto.
-
-1999-02-08 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PrintStream.java (line_separator): New constant.
- (print): Use line_separator, not `file.separator' property.
- (println): Use line_separator.
-
- * java/lang/natClass.cc (newInstance): Throw IllegalAccessError
- when trying to instantiate Class.
-
- * java/lang/ThreadGroup.java (ThreadGroup): Throw
- NullPointerException if argument is null.
-
- * java/lang/Thread.java (setName): Throw NullPointerException, not
- IllegalArgumentException.
- (Thread): Likewise.
-
-1999-02-08 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natClass.cc (newInstance): Don't allow anyone to
- create new Classes with Class.newInstance().
-
- * java/lang/natClass.cc (_Jv_FindArrayClass): Only add a
- semiciolon to end of an array Class's signature if the elements of
- the array aren't themselves arrays.
-
- * java/lang/natSystem.cc (arraycopy): The size of an element of an
- array of objects is always sizeof(jobject), not the size of the
- object to which the reference points.
-
-1999-02-08 Tom Tromey <tromey@cygnus.com>
-
- * java/util/BitSet.java (and): Throw NullPointerException when
- required.
- (or): Likewise.
- (xor): Likewise.
-
- * java/util/BitSet.java (BitSet): Throw NegativeArraySizeException
- if argument is negative.
- (clear): Correctly compute `offset'. Throw
- IndexOutOfBoundsException when required.
- (set): Likewise.
- (get): Likewise. Also, return correct value.
- (ensure): Changed meaning of argument.
- (toString): Wrap contents in `{}'; put spaces after commas.
- (hashCode): Don't try to examine elements off the end of array.
- (or): Correctly include bits past the end of this bit set.
- (xor): Likewise.
-
-Thu Feb 4 12:48:03 1999 Warren Levy <warrenl@cygnus.com>
-
- * configure.host (mips-tx39-*): Use jmr3904dram.ld link script
- instead of the jmr3904app.ld script (i.e. use DRAM instead of SRAM).
-
-1999-02-04 Andrew Haley <aph@cygnus.com>
-
- * java/lang/natClass.cc (Class::forName): Remove code which mapped
- '/' in signatures to '.'
- (Class::getName): Likewise,
- (_Jv_FindArrayClass): Add a semiciolon to end of an array Class's
- signature.
- * java/lang/natFirstThread.cc (run): Change '/' in main's
- signature to '.'.
-
-1999-02-03 Andrew Haley <aph@cygnus.com>
-
- * configure.host: -ffloat-store added when compiling libjava on
- x86. fdlibm apparently relies on this.
-
- * java/lang/ThreadGroup.java (add): throw an exception if the
- ThreadGroup has been destroyed.
-
- * java/lang/natMath.cc (round): Ensure correct NaN and overflow
- behaviour.
-
-1999-01-27 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/StringBuffer.java (StringBuffer): Handle null
- argument.
-
-1999-01-21 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natFirstThread.cc (run): Don't require main to be
- public.
-
-Wed Jan 20 15:44:56 1999 Anthony Green <green@cygnus.com>
-
- * boehm.cc (_Jv_InitGC): Clear out the free lists correctly.
-
-1999-01-20 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (_Jv_StringFindSlot): Synchronize on
- StringClass.
- (rehash): Likewise.
- (intern): Likewise.
- (unintern): Likewise.
- (_Jv_NewStringUtf8Const): Likewise.
-
- * java/text/SimpleDateFormat.java (format): Use [a-zA-z], not
- Character.isLetter, to see if character is self-quoting. Also,
- correctly handle quoted characters.
- (parse): Fixed typo. Also now throws ParseException.
-
-1999-01-15 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natObject.cc (INIT_NEEDED): Added missing close paren.
-
- * java/lang/natObject.cc (INIT_NEEDED): Added cast in case where
- _Jv_SyncInfo has `init' member.
-
- * include/quick-threads.h (_Jv_MutexUnlock): Return result of
- coop_mutex_unlock.
-
- * java/lang/natObject.cc (_Jv_MonitorExit): Throw
- IllegalMonitorStateException if unlock fails.
-
- * prims.cc (_Jv_NewPrimArray): Assume allocated memory is all
- zero.
- (_Jv_NewObjectArray): Likewise.
-
-1999-01-14 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Character.java (isJavaIdentifierPart): Allow
- LETTER_NUMBER characters.
-
- * chartables.pl (process_char): Fixed error messages.
-
- * include/java-chartables.h: Rebuilt with UniData 2.1.8.
- * chartables.pl: Updated comments. Changed detection of non-digit
- numeric values (no longer miss \u00b2 and friends).
-
- * java/lang/Character.java (isJavaIdentifierPart): Recognize
- currency symbols and connector punctuation.
- (isIdentifierIgnorable): Make 7f-9f ignorable.
-
- * prims.cc (_Jv_NewObjectArray): Check for overflow.
- (_Jv_NewPrimArray): Likewise.
- (SIZE_T_MAX): New define.
-
- * java/lang/ClassLoader.java (system): Now private and final.
-
- * boehm.cc (_Jv_MarkObj): Handle case where object's class is
- null.
-
- * configure: Rebuilt.
- * configure.in (EH_COMMON_INCLUDE): Add -I for `../include' as
- well.
- * exception.cc: Include gansidecl.h.
-
-1999-01-14 Andrew Haley <aph@cygnus.com>
-
- * java/lang/Math.java, java/lang/natMath.cc: min and max routines
- corrected: they didn't treat -0.0 and NaNs correctly.
-
-Wed Jan 13 13:32:22 1999 Anthony Green <green@cygnus.com>
-
- * nogc.cc: Use calloc to zero out memory.
-
-1999-01-11 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (isInstance): Return false if this class
- is primitive, not if class of `obj' is primitive.
- (_Jv_IsInstanceOf): Rewrote to use Class.isInstance.
-
- * java/io/SequenceInputStream.java (close): Handle case where `in'
- is already null.
-
- * java/text/DateFormat.java (format): New method.
-
- * mauve-libjava: Omit java.text.DateFormat.
-
-1999-01-08 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (_Jv_ThreadInitData): Removed name of unused
- argument.
- * include/posix-threads.h (_Jv_CondNotify): Removed name of unused
- argument.
- (_Jv_CondNotifyAll): Likewise.
-
- * configure: Rebuilt.
- * configure.in: Change --enable-source-compilation logic to work
- correctly.
-
-1999-01-07 Andrew Haley <aph@cygnus.co.uk>
-
- * Makefile.am (AM_MAKEFLAGS): Remove RUNTEST, EXPECT,
- and RUNTESTFLAGS from AM_MAKEFLAGS.
- * configure.in: AM_RUNTESTFLAGS added.
- * configure.host: AM_RUNTESTFLAGS added.
- * Makefile.in, test/Makefile.in, testsuite/Makefile.in: rebuilt.
- * configure: rebuilt.
- * testsuite/Makefile.am: RUNTESTFLAGS set from AM_RUNTESTFLAGS.
-
- * testsuite/libjava.mauve/DejaGNUTestHarness.java (main): use of
- argv[] made conditional because embedded targets may not have
- argv[].
- * testsuite/libjava.mauve/DejaGNUTestHarness.java (main):
- explanatory comments added in call to super.
-
- * testsuite/libjava.mauve/test.exp (test_mauve): Test for an
- exception thrown in the test harness itself added.
- * testsuite/libjava.mauve/test.exp (test_mauve_sim): New routine.
-
-Wed Jan 6 17:27:39 1999 Per Bothner <bothner@cygnus.com>
-
- * java/text/DateFormatSymbols.java (zoneStringsDefault): Make static.
-
-1999-01-06 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFile.cc (get_entry): New function.
- (performList): Use get_entry.
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_READDIR_R): New define.
- * configure: Rebuilt.
- * configure.in: Look for readdir_r.
-
- * java/util/natGregorianCalendar.cc (computeFields): Fixed comment.
-
- * java/util/natDate.cc: Added copyright header.
-
-1999-01-05 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_ACCESS, HAVE_STAT, HAVE_REALPATH, HAVE_MKDIR,
- HAVE_REALPATH, HAVE_RMDIR, HAVE_UNLINK): New macros.
- * configure: Rebuilt.
- * configure.in: Check for access, stat, mkdir, rename, rmdir,
- unlink, and realpath.
- * java/io/natFile.cc (access): Conditionalize on HAVE_ACCESS.
- (stat): Conditionalize on HAVE_STAT.
- (attr): Likewise.
- (getCanonicalPath): Conditionalize on HAVE_REALPATH.
- (performMkdir): Conditionalize on HAVE_MKDIR.
- (performRenameTo): Conditionalize on HAVE_RENAME.
- (performDelete): Conditionalize on HAVE_RMDIR and HAVE_UNLINK.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_GMTIME_R, HAVE_LOCALTIME_R): New defines.
- * configure: Rebuilt.
- * configure.in: Check for gmtime_r and localtime_r. For cross
- builds, assume they exist.
-
- * mauve-libjava: Include java.text.DateFormatSymbols again.
- * java/text/DateFormatSymbols.java (setLocalPatternChars): Renamed
- from setAmPmStrings.
-
- * mauve-libjava: Omit java.text.DateFormatSymbols.
-
-1999-01-04 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PushbackReader.java: `off' already includes `numBytes'.
-
- * java/io/LineNumberReader.java (read): Decrement `count' in
- loop.
-
- * java/io/BufferedWriter.java (write): Correctly determine when
- incoming data would overrun buffer. Flush buffer if write causes
- it to become full.
-
- * java/io/BufferedOutputStream.java (write): Increment `count'
- after copying data into buffer.
-
- * java/io/FilterOutputStream.java (close): Call flush first.
-
- * java/io/PipedReader.java (read): If read causes `out' to catch
- up with `in', then set `in' to -1.
-
- * java/io/LineNumberInputStream.java (read): If no bytes read,
- return -1. If no bytes requested, return 0.
-
- * java/lang/StringBuffer.java (insert): If `str' is null, use
- string "null".
-
-1998-12-30 Anthony Green <green@cygnus.com>
-
- * README: Removed.
- * LIBJAVA_LICENSE, COPYING.LIB: Created.
-
-1998-12-23 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PushbackInputStream.java (read): `off' already includes
- `numBytes'.
-
-1998-12-17 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GCJ_canadian): Include target_alias.
-
- * java/lang/natFirstThread.cc (run): Require main's class to be
- public.
-
-1998-12-16 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Locale.java (JAPAN): Language is `ja', not `jp'.
-
- * java/util/ResourceBundle.java (getBundle): Throw
- NullPointerException if locale argument is null.
-
- * java/lang/natClass.cc (forName): Throw NullPointerException if
- argument is null.
- Include NullPointerException.h.
-
-1998-12-14 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Character.java (Character): Implement Comparable.
- (compareTo): New methods.
-
- * java/util/Locale.java (CANADA, FRANCE, JAPAN): Now `final'. Use
- correct country and language codes.
- (UK, US): New constants.
- (setDefault): Language codes are lower-case.
-
- * java/lang/natClass.cc (getDeclaredConstructor): New method.
- (getDeclaredConstructors): Likewise.
- (getDeclaredField): Likewise.
- (getDeclaredFields): Likewise.
- (getDeclaredMethod): Likewise.
- (getDeclaredMethods): Likewise.
- (getField): Likewise.
- (getFields): Likewise.
- (getMethod): Likewise.
- (getMethods): Likewise.
- * java/lang/Class.java: Declare new methods.
- * java/lang/Class.h: Declare new methods.
-
- * java/lang/natString.cc: Removed `#pragma implementation'.
- * include/cni.h (_Jv_GetStringChars): New function.
- * Makefile.in: Rebuilt.
- * Makefile.am (java/lang/String.h): Don't generate definition for
- _Jv_GetStringChars.
-
- * java/lang/natString.cc: Added `#pragma implementation'.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libjava.zip): Put build directory first in class
- path to avoid bug in compiler.
-
-1998-12-14 Anthony Green <green@cygnus.com>
-
- * java/util/Locale.java: Add CANADA, FRANCE and JAPAN.
-
- * include/javaprims.h: Add EventObject, ListResourceBundle and
- ResourceBundle.
-
-1998-12-13 Anthony Green <green@cygnus.com>
-
- * mauve-libjava: Run the ResourceBundle tests.
-
- * java/lang/natClass.cc (_Jv_FindClass): Don't fail when loader is
- NULL.
-
-Sun Dec 13 18:11:21 1998 Per Bothner <bothner@cygnus.com>
-
- * configure.in, configure: Make --enable-gcj-classes and
- --enable-source-compilation the default. (Nervously...) Yeah!
- Based on a patch from Tom Tromey.
-
-1998-12-13 Tom Tromey <tromey@cygnus.com>
-
- * java/util/EventObject.java: New file.
- * java/util/EventListener.java: New file.
-
- * include/javaprims.h: Updated class declarations.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added Constructor.h.
- (java/lang/String.h): Don't inline String::length().
- * java/lang/Class.h (getConstructor, getConstructors): Declare.
- * java/lang/Class.java (initializeClass, hackRunInitializers,
- hackTrampoline): No need to mark `final'.
- (getConstructor, getConstructors): Declare.
- * java/lang/reflect/Field.java (equals): New method.
- * java/lang/natClass.cc (getConstructor): New method.
- (getConstructors): Likewise.
- Include Method.h, Field.h, Constructor.h.
- * java/lang/reflect/Constructor.java: New file.
- * java/lang/reflect/Method.java (toString): No space before open
- paren.
- (equals): Simplified.
-
-1998-12-13 Anthony Green <green@cygnus.com>
-
- * java/util/ResourceBundle.java: New file.
- * java/util/ListResourceBundle.java: New file.
-
-1998-12-12 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/System.java (in, out, err): Now buffered streams by
- default.
-
- * include/javaprims.h: Updated class declarations.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added AccessibleObject.h, Method.h,
- InvocationTargetException.h, Void.h, Byte.h, Short.h, Integer.h,
- Long.h, Boolean.h.
- (nat_files): Added natMethod.o.
- * java/lang/reflect/natMethod.cc: New file.
- * java/lang/reflect/Field.java (Field): Now extends
- AccessibleObject.
- * java/lang/reflect/AccessibleObject.java: New file.
- * java/lang/reflect/InvocationTargetException.java: New file.
-
-1998-12-11 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc, prims.cc, include/jvm.h, java/lang/Class.h,
- java/lang/Object.h, java/lang/natClass.cc, java/lang/natObject.cc:
- Renamed dtable -> vtable and _Jv_DispatchTable -> _Jv_VTable.
-
- * java/io/OutputStreamWriter.java (buffer): Size at 8192 bytes.
-
-1998-12-09 Tom Tromey <tromey@cygnus.com>
-
- * java/util/natDate.cc (_POSIX_THREAD_SEMANTICS): Define if
- HAVE_CTIME_R.
-
- * java/lang/natCharacter.cc (toTitleCase): Handle case where
- character is already titlecase.
-
- * java/lang/Character.java (isJavaLetter): Follow spec.
- (isJavaLetterOrDigit): Likewise.
-
- * java/util/GregorianCalendar.java (gregorianCutover): Append
- `L'.
-
- * java/lang/Character.java (isWhitespace): Use \r and not \u000d.
-
-1998-12-08 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Modifier.java (toString): Replace second
- `static' with `synchronized'.
-
- * java/lang/natObject.cc (_Jv_FinalizeObject): Call hack12_6.
- * java/lang/Object.h (Object::hack12_6): Declare.
- * java/lang/Object.java (hack12_6): New function.
-
-1998-12-07 Tom Tromey <tromey@cygnus.com>
-
- * include/java-array.h (__JArray::clone): Removed decl.
- * prims.cc (__JArray::clone): Removed.
- * java/lang/natObject.cc (clone): Incorporate code to clone an
- array.
-
- * java/lang/natClass.cc (_Jv_NewClass): Set class loader.
- (_Jv_FindArrayClass): Set dtable_method_count on new class.
- Correctly use dtable_method_count.
-
-1998-12-07 Andrew Haley <aph@cygnus.co.uk>
-
- * java/lang/Double.java (isInfinite, isNaN): Handle correct
- IEEE754 values.
-
-1998-12-06 Anthony Green <green@cygnus.com>
-
- * mauve-libjava: Don't test ResourceBundle.
-
-1998-12-04 Tom Tromey <tromey@cygnus.com>
-
- More JDK 1.2 spec fixes:
- * java/util/Date.java (millis): Now private.
- * java/text/DateFormat.java (DateFormat): Constructor now
- protected.
- * java/lang/Void.java (Void): New private constructor.
- * java/lang/System.java (System): New private constructor.
- * java/lang/SecurityManager.java (classLoaderDepth): Uncommented
- body.
- (currentClassLoader): New method.
- (currentLoadedClass): New method.
- * java/lang/Math.java (Math): New private constructor.
- * java/lang/Compiler.java (Compiler): New private constructor.
- * java/lang/Class.java (Class): New private constructor.
- * java/lang/Double.java (toString): Removed access specifier from
- two-argument `toString' method.
-
-1998-12-04 Andrew Haley <aph@cygnus.co.uk>
-
- * java/lang/s_rint.c (rint): Make the variable w volatile; this
- causes it to be flushed from an fp register (where it may be
- longer than double precision) to a double in memory. This is
- essential to ensure correct rounding behaviour.
-
-1998-12-04 Tom Tromey <tromey@cygnus.com>
-
- * include/java-assert.h (_Jv_Abort): Declare as `noreturn'
- function.
-
- * java/lang/Character.java (isIdentifierIgnorable): Added comment
- explaining apparent divergence from JDK 1.2.
-
-1998-12-04 Per Bothner <bothner@cygnus.com>
-
- * include/no-threads.h: Remove unused parameter names.
- This silences a bunch of warnings.
-
-1998-12-04 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_CTIME_R): New symbol.
-
-1998-12-03 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libjava: Added many more categories to reject.
-
- Changes to follow JDK1.2 spec:
- * java/lang/System.java (arraycopy, init_properties, checkSetIO,
- setErr, setIn, setOut): No need to be `final'.
- * java/lang/natObject.cc (wait): `nanos' argument is an int.
- * java/lang/Object.h (Object::wait): `nanos' argument is an int.
- * java/lang/Object.java (wait): `nanos' argument is an int.
- * java/lang/VirtualMachineError.java: Class is abstract.
- * java/lang/ThreadDeath.java: Made constructors public.
- * java/io/FileDescriptor.java (FileDescriptor): Added missing
- constructor.
-
-Thu Dec 3 20:29:38 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/text/DateFormatSymbols.java (getAmPmStrings,
- getLocalPatternChars, setShortWeekdays): Fixed typos in method names.
-
-Thu Dec 3 19:21:53 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/RandomAccessFile.java (writeInt, writeLong, writeFloat,
- writeDouble, writeByte, writeBytes, writeChar, writeChars,
- writeShort, writeUTF): Added 'final' to signature to match JDK 1.1
- and 1.2.
-
- * java/lang/IllegalThreadStateException.java
- (IllegalThreadStateException): Changed extending class to match spec.
-
- * java/lang/NumberFormatException.java
- (java/lang/NumberFormatException): Changed extending class to match
- spec.
-
- * java/util/Observer.java (Observer): Changed sig to match JCL.
-
-Thu Dec 3 19:05:26 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/DataOutputStream.java (writeInt, writeLong, writeFloat,
- writeDouble, writeBytes, writeChars, writeUTF): Added 'final' to
- signature to match JDK 1.1 and 1.2.
-
-Thu Dec 3 16:47:42 1998 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am: Changed to use $(PERL) rather than hardcoded 'perl'.
- * configure.in (PERL): Added AC_CHECK_PROGS to look for installed perl.
- * Makefile.in, configure: Rebuilt.
-
- * java/text/ParsePosition.java (setErrorIndex): Fixed typo in method
- name.
-
-1998-12-02 Tom Tromey <tromey@cygnus.com>
-
- * mauve-libjava: New file.
-
- The remaining `-W -Wall' fixes:
- * java/lang/e_sqrt.c (__ieee754_sqrt): Added cast to unsigned to
- avoid warning.
- * java/lang/s_scalbn.c (scalbn): Added braces to avoid ambiguous
- `else'.
- * java/lang/s_floor.c (floor): Added cast to unsigned to avoid
- warning.
- * java/lang/e_pow.c (__ieee754_pow): Added cast to unsigned to
- avoid warning.
- * java/lang/e_log.c (__ieee754_log): Added braces to avoid
- ambiguous `else'.
- * java/lang/s_ceil.c (ceil): Cast `i1' to unsigned to avoid
- warning.
- * java/lang/e_atan2.c (__ieee754_atan2): Added parentheses per gcc
- suggestion.
- * java/lang/strtod.c (_strtod_r): Added parentheses per gcc
- suggestion.
- * java/lang/mprec.c (Balloc): Removed unused variable.
- (mult): Added parentheses per gcc suggestion.
- (pow5mult): Likewise.
- (lshift): Likewise.
- (ulp): Likewise.
- (b2d): Likewise.
- (d2b): Likewise.
- * java/lang/dtoa.c (_dtoa_r): Added some parentheses per gcc
- suggestion. Added cast to `int' to avoid signed/unsigned
- comparison.
- * jni.cc (_Jv_JNI_GetSuperclass): Removed name of unused
- parameter.
- (IsAssignableFrom): Likewise.
- (_Jv_JNI_GetObjectField): Likewise.
- (_Jv_JNI_GetByteField): Likewise.
- (_Jv_JNI_GetShortField): Likewise.
- (_Jv_JNI_GetIntField): Likewise.
- (_Jv_JNI_GetLongField): Likewise.
- (_Jv_JNI_GetStringLength): Likewise.
- (_Jv_JNI_ToReflectedField): Likewise.
- (_Jv_JNI_FromReflectedField): Likewise.
- (_Jv_JNIFunctions): Uncommented IsAssignableFrom.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CFLAGS): Define conditionally.
- (WARNINGS): New macro.
- (AM_CXXFLAGS): Include WARNINGS.
- * configure: Rebuilt.
- * configure.in (USING_GCC): New conditional.
-
- * prims.cc (_Jv_Abort): Declare twice, to avoid warnings.
-
- * java/lang/Character.java: Changed classification constants to
- type `byte' to match JDK 1.2 docs.
-
-1998-12-01 Tom Tromey <tromey@cygnus.com>
-
- Some fixes to be `-W -Wall' clean:
- * boehm.cc (_Jv_MarkObj): Removed name of unused parameter.
- (_Jv_MarkArray): Likewise.
- * java/lang/natCharacter.cc (to_lower_title): `i' is unsigned.
- (to_upper_title): Likewise.
- (isTitleCase): Likewise.
- (toTitleCase): Likewise.
- (getNumericValue): Likewise.
- (isLowerCase): Likewise.
- * java/lang/natString.cc (charAt): Don't cast `i' to unsigned
- (avoids compiler warning).
- * java/lang/natClass.cc (getDeclaredClasses): Always return a
- value.
- (getDeclaringClass): Likewise.
- (_Jv_LookupInterfaceMethod): Likewise.
- (_Jv_NewClass): Removed name of unused parameter.
- * exception.cc (_Jv_type_matcher): Removed unused variable.
- (_Jv_setup_eh_info): Removed name of unused parameter.
- * prims.cc (_Jv_NewArray): Always return a value.
- (_Jv_FindClassFromSignature): Likewise.
- * include/java-field.h (getNameUtf8Const): Removed name of unused
- parameter.
- * include/quick-threads.h (_Jv_ThreadInitData): Removed name of
- unused parameter.
- (_Jv_ThreadSetPriority): Likewise.
-
- * java/lang/natString.cc (hashChars): Now static.
-
- * java/lang/FirstThread.java (FirstThread): Now final.
-
- * java/io/File.java (performMkdir, performRenameTo): Now private.
-
- * java/lang/natSystem.cc (currentTimeMillis): Return a value even
- if no time function defined.
-
- * configure: Rebuilt.
- * configure.in: Look for ctime_r, ctime.
- * java/util/Date.java (toString): Now native.
- * java/util/natDate.cc (toString): Rewrote.
-
-1998-11-27 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * Add LDFLAGS line to allow TX39 test cases to link when cross
- compiling.
-
-1998-11-23 Anthony Green <green@cygnus.com>
-
- * boehm.cc, chartables.pl, classes.pl, exception.cc, jni.cc,
- no-threads.cc, nogc.cc, posix-threads.cc, prims.cc,
- quick-threads.cc, include/boehm-gc.h, include/cni.h,
- include/java-array.h, include/java-assert.h, include/java-field.h,
- include/javaprims.h, include/jni.h, include/jvm.h,
- include/no-gc.h, include/no-threads.h, include/posix-threads.h,
- include/quick-threads.h, java/io/BufferedInputStream.java,
- java/io/BufferedOutputStream.java, java/io/BufferedReader.java,
- java/io/BufferedWriter.java, java/io/ByteArrayInputStream.java,
- java/io/ByteArrayOutputStream.java, java/io/CharArrayReader.java,
- java/io/CharArrayWriter.java,
- java/io/CharConversionException.java, java/io/DataInput.java,
- java/io/DataInputStream.java, java/io/DataOutput.java,
- java/io/DataOutputStream.java, java/io/EOFException.java,
- java/io/File.java, java/io/FileDescriptor.java,
- java/io/FileInputStream.java, java/io/FileNotFoundException.java,
- java/io/FileOutputStream.java, java/io/FileReader.java,
- java/io/FileWriter.java, java/io/FilenameFilter.java,
- java/io/FilterInputStream.java, java/io/FilterOutputStream.java,
- java/io/FilterReader.java, java/io/FilterWriter.java,
- java/io/IOException.java, java/io/InputStream.java,
- java/io/InputStreamReader.java,
- java/io/InterruptedIOException.java,
- java/io/LineNumberInputStream.java, java/io/LineNumberReader.java,
- java/io/OutputStream.java, java/io/OutputStreamWriter.java,
- java/io/PipedInputStream.java, java/io/PipedOutputStream.java,
- java/io/PipedReader.java, java/io/PipedWriter.java,
- java/io/PrintStream.java, java/io/PrintWriter.java,
- java/io/PushbackInputStream.java, java/io/PushbackReader.java,
- java/io/RandomAccessFile.java, java/io/Reader.java,
- java/io/SequenceInputStream.java, java/io/Serializable.java,
- java/io/StreamTokenizer.java,
- java/io/StringBufferInputStream.java, java/io/StringReader.java,
- java/io/StringWriter.java, java/io/SyncFailedException.java,
- java/io/UTFDataFormatException.java,
- java/io/UnsupportedEncodingException.java, java/io/Writer.java,
- java/io/natFile.cc, java/io/natFileDescriptorEcos.cc,
- java/io/natFileDescriptorPosix.cc,
- java/lang/AbstractMethodError.java,
- java/lang/ArithmeticException.java,
- java/lang/ArrayIndexOutOfBoundsException.java,
- java/lang/ArrayStoreException.java, java/lang/Boolean.java,
- java/lang/Byte.java, java/lang/Character.java, java/lang/Class.h,
- java/lang/Class.java, java/lang/ClassCastException.java,
- java/lang/ClassCircularityError.java,
- java/lang/ClassFormatError.java, java/lang/ClassLoader.java,
- java/lang/ClassNotFoundException.java,
- java/lang/CloneNotSupportedException.java,
- java/lang/Cloneable.java, java/lang/Comparable.java,
- java/lang/Compiler.java, java/lang/Double.java,
- java/lang/Error.java, java/lang/Exception.java,
- java/lang/ExceptionInInitializerError.java,
- java/lang/FirstThread.java, java/lang/Float.java,
- java/lang/IllegalAccessError.java,
- java/lang/IllegalAccessException.java,
- java/lang/IllegalArgumentException.java,
- java/lang/IllegalMonitorStateException.java,
- java/lang/IllegalStateException.java,
- java/lang/IllegalThreadStateException.java,
- java/lang/IncompatibleClassChangeError.java,
- java/lang/IndexOutOfBoundsException.java,
- java/lang/InstantiationError.java,
- java/lang/InstantiationException.java, java/lang/Integer.java,
- java/lang/InternalError.java, java/lang/InterruptedException.java,
- java/lang/LinkageError.java, java/lang/Long.java,
- java/lang/Math.java, java/lang/NegativeArraySizeException.java,
- java/lang/NoClassDefFoundError.java,
- java/lang/NoSuchFieldError.java,
- java/lang/NoSuchFieldException.java,
- java/lang/NoSuchMethodError.java,
- java/lang/NoSuchMethodException.java,
- java/lang/NullPointerException.java, java/lang/Number.java,
- java/lang/NumberFormatException.java, java/lang/Object.h,
- java/lang/Object.java, java/lang/OutOfMemoryError.java,
- java/lang/Process.java, java/lang/Runnable.java,
- java/lang/Runtime.java, java/lang/RuntimeException.java,
- java/lang/SecurityException.java, java/lang/SecurityManager.java,
- java/lang/Short.java, java/lang/StackOverflowError.java,
- java/lang/String.java, java/lang/StringBuffer.java,
- java/lang/StringIndexOutOfBoundsException.java,
- java/lang/System.java, java/lang/Thread.java,
- java/lang/ThreadDeath.java, java/lang/ThreadGroup.java,
- java/lang/Throwable.java, java/lang/UnknownError.java,
- java/lang/UnsatisfiedLinkError.java,
- java/lang/UnsupportedOperationException.java,
- java/lang/VerifyError.java, java/lang/VirtualMachineError.java,
- java/lang/Void.java, java/lang/natCharacter.cc,
- java/lang/natClass.cc, java/lang/natDouble.cc,
- java/lang/natFirstThread.cc, java/lang/natFloat.cc,
- java/lang/natMath.cc, java/lang/natObject.cc,
- java/lang/natRuntime.cc, java/lang/natString.cc,
- java/lang/natSystem.cc, java/lang/natThread.cc,
- java/lang/reflect/Field.java, java/lang/reflect/Member.java,
- java/lang/reflect/Modifier.java, java/lang/reflect/natField.cc,
- java/text/DateFormat.java, java/text/DateFormatSymbols.java,
- java/text/FieldPosition.java, java/text/Format.java,
- java/text/NumberFormat.java, java/text/ParseException.java,
- java/text/ParsePosition.java, java/text/SimpleDateFormat.java,
- java/util/BitSet.java, java/util/Calendar.java,
- java/util/ConcurrentModificationException.java,
- java/util/Date.java, java/util/Dictionary.java,
- java/util/EmptyStackException.java, java/util/Enumeration.java,
- java/util/GregorianCalendar.java, java/util/Hashtable.java,
- java/util/Locale.java, java/util/MissingResourceException.java,
- java/util/NoSuchElementException.java, java/util/Observable.java,
- java/util/Observer.java, java/util/Properties.java,
- java/util/Random.java, java/util/SimpleTimeZone.java,
- java/util/Stack.java, java/util/StringTokenizer.java,
- java/util/TimeZone.java, java/util/TooManyListenersException.java,
- java/util/Vector.java, java/util/natGregorianCalendar.cc: Updated
- copyright notices.
-
- * exception.cc: Include eh-common.h instead of duplicating
- code.
-
-1998-11-23 Tom Tromey <tromey@cygnus.com>
-
- * configure.host: Don't add `-O2' to libjava_flags. Only add
- `-Os' to libjava_flags once.
-
-1998-11-17 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * Makefile.am: add LIBJAVA_JAVAFLAGS.
- * Makefile.in: likewise
- * acconfig.h: add ECOS conditional for configure.h
- * config.h.in: likewise
- * configure: add test for --with-ecos
- * configure.in: likewise
- * java/io/natFileDescriptorEcos.cc (java::io::FileDescriptor::write):
- rename call to avoid name clash.
- * java/lang/natSystem.cc: add eCos clock support.
- * java/util/natGregorianCalendar.cc: add eCos support.
-
-1998-11-20 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * Makefile.am, Makefile.in, configure.host: tx39 build option
- "-G 0" added.
-
-Wed Nov 18 18:55:25 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/BufferedReader.java: Added more comments for clarity.
- (mark): Used more mnemonic name for local var extraBuffSpace.
-
- * java/io/LineNumberReader.java (lineEnd): Removed method to avoid
- confusion with private method of same name in superclass.
- (skipRedundantLF): Set fields in special case to avoid infinite
- recursion. Check if markPos has been invalidated in special case.
- (readLine): Rewritten to use readLine method of superclass.
- (skip): Incorporated code from lineEnd.
-
-Wed Nov 18 02:46:03 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/BufferedReader.java (readLine): New method.
- (lineEnd): new private method.
- (mark): Track special case for readLine of getting '\r' at the
- end of the buffer.
- (reset): Ditto.
- (read): Ditto.
- (fill): Ditto.
- (skip): Ditto.
-
- * java/io/InputStreamReader.java (read): Return number chars skipped
- rather than requested.
-
- * java/lang/StringBuffer.java (append): Update count and differentiate
- between field and local variable.
-
- * java/util/Date.java (parseTz): Evaluate in minutes rather than
- seconds. Deal with military style time.
- (parse): Consistently treat all timezones in minutes until final
- calculation. Flag as non-local timezone. Return value in milliseconds.
- (setTime): Adjust for year offset from 1900.
- (UTC): Adjust for year offset from 1900.
-
-1998-11-17 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Switch on host, not target.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GCJ_no): New macro.
- (GCJ): Use @CANADIAN@.
- (GCJH_no): New macro
- (GCJH_canadian): New macro.
- (GCJH): Use @CANADIAN@.
- (ZIP_no): New macro.
- (ZIP_canadian): New macro.
- (ZIP): Use @CANADIAN@.
- * aclocal.m4, configure: Rebuilt.
- * configure.in (CANADIAN): Compute and subst.
-
-Tue Nov 17 12:44:37 1998 Anthony Green <green@cygnus.com>
-
- * java/io/FileDescriptor.java (finalize): Only close file
- descriptor if valid.
-
-1998-11-17 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_InitRuntime): Removed.
-
-1998-11-16 Tom Tromey <tromey@cygnus.com>
-
- * java/io/FileOutputStream.java (close): Only close file
- descriptor if valid.
- (finalize): New method.
-
- * prims.cc (_Jv_NewObjectArray): Set vtbl last.
- (_Jv_NewPrimArray): Likewise.
- * boehm.cc (_Jv_RegisterFinalizer): Use
- GC_REGISTER_FINALIZER_NO_ORDER.
- (GC_GENERIC_MALLOC): New define.
- (_Jv_AllocObj): Use it.
- (_Jv_AllocArray): Likewise.
- (_Jv_AllocBytes): Likewise.
- (_Jv_MarkObj): Just return if vtbl not set.
- (_Jv_MarkArray): Likewise.
- (MAYBE_MARK): New macro; use everywhere.
- (_Jv_MarkObj): Mark fields belonging to superclasses as well.
-
-Mon Nov 16 14:57:53 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/natGregorianCalendar.cc (computeTime): Cast a time_t
- to a jlong before calculation to prevent overflow.
-
-1998-11-16 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Fixed typo.
-
-1998-11-15 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Class.h (Class::getName): Removed definition.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added InstantiationException.h,
- NoSuchMethodException.h.
- * java/lang/natClass.cc (clinit_name): Renamed from init_name.
- (init_name): New global.
- (hackRunInitializers): Use clinit_name.
- Include InstantiationException.h, NoSuchMethodException.h.
- (newInstance): Do some error checking (but not all). Call
- constructor.
- (forName): Throw exception if class not found.
- (getName): New method.
- (forName): Transform class name from external format to internal
- format before lookup.
-
-1998-11-15 Anthony Green <green@cygnus.com>
-
- * java/lang/Class.h (Class::forName): Method is static.
-
- * java/lang/natClass.cc (newInstance): Add simple implementation.
- (forName): Ditto.
-
-Sat Nov 14 18:25:13 1998 Per Bothner <bothner@cygnus.com>
-
- * java/lang/Class.h (Class::accflags): Must be unsigned short (not
- int), for compatibility with jc1.
-
-1998-11-14 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (LINUX_THREADS): New define.
- * configure: Rebuilt.
- * configure.in: Define LINUX_THREADS if using POSIX threads on
- Linux. Look for pthread_mutexattr_setkind_np function.
- * posix-threads.cc (throw_cleanup): New function.
- (really_start): Push cleanup function.
- (_Jv_ThreadCancel): New function.
- (daemon_mutex, daemon_cond, non_daemon_count): New globals.
- (_Jv_ThreadInitData): Set `exception' field in new structure.
- (_Jv_ThreadStart): Increment non_daemon_count if not a daemon
- thread.
- (_Jv_ThreadWait): New function.
- (_Jv_InitThreads): Initialize daemon globals.
- (FLAG_DAEMON): New macro.
- (really_start): Notify daemon_cond when non-daemon thread exits.
- Include <java/lang/System.h>.
- (struct starter): `object' field now a thread.
- (_Jv_MutexInit): Use pthread_mutexattr_setkind_np if it exists.
- * include/posix-threads.h (_Jv_CondInit): Use `0', not NULL.
- (_Jv_ThreadWait): Removed definition.
- (_Jv_Thread_t): Added `exception' field.
- (_Jv_ThreadCancel): Removed definition.
-
-1998-11-13 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libjava.zip): Compute javac before changing
- directory.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libjava.zip): Include directory entries.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (expanded): New macro.
- (GCJ): Use it.
-
-1998-11-12 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (clone): New function.
- * include/java-array.h (__JArray::clone): Removed definition.
-
- * java/lang/natObject.cc (clone): Don't assert that class is not
- an array; array's `clone' method just calls this one.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libjava.zip): Renamed target from classes.stamp.
- Now creates zip file. Changed all users.
- (ZIP): New macro.
- (data_DATA): New macro.
-
-1998-11-11 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Recognize --enable-java-gc, not --enable-gc.
-
-Wed Nov 11 18:13:46 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/InputStream.java (reset): Add msg to thrown exception.
-
-Wed Nov 11 17:57:02 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/LineNumberInputStream.java: Rewritten.
-
- * java/io/StringBufferInputStream.java: Removed extraneous import.
-
-Wed Nov 11 15:19:33 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/StringBufferInputStream.java: Rewritten.
-
- * java/util/Date.java (parseMonth): Optimize.
- (parseDayOfWeek): Created.
- (parse): Optimize to use parseDayOfWeek.
-
-1998-11-11 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/StringBuffer.java (append): Handle case where STR is
- `null'.
-
- * include/javaprims.h: Regenerated class declarations.
-
- * configure: Rebuilt.
- * configure.in: Added --enable-gcj-classes,
- --enable-single-compilation, --enable-source-compilation flags.
- * Makefile.in: Rebuilt.
- * Makefile.am (java_io_files): New macro.
- (java_lang_files): Likewise.
- (java_text_files): Likewise.
- (java_util_files): Likewise.
- (java_files): Use new macros.
- (java-io.o): New target.
- (java-lang.o): Likewise.
- (java-text.o): Likewise.
- (java-util.o): Likewise.
- (src_io_files): New macro.
- (src_lang_files): Likewise.
- (src_text_files): Likewise.
- (src_util_files): Likewise.
- (class_io_files): New macro.
- (class_lang_files): Likewise.
- (class_text_files): Likewise.
- (class_util_files): Likewise.
- (class_files): Use new macros.
- (javao_files): Define conditionally.
- (.java.o): New target.
- ($(javao_files)): New target.
- (GCJ): new macro.
- (GCJH): Added $(EXEEXT).
- (CLASSPATH_ENV): Removed.
- (GCJCOMPILE): New macro.
-
-Wed Nov 11 12:03:15 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Date.java (parse): Written from scratch.
-
-1998-11-11 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Throwable.java (toString): Correct sense of test for
- determining when to include detail message in result.
-
- * java/lang/ThreadDeath.java (ThreadDeath): Added missing
- constructor.
-
-Fri Nov 6 16:30:20 1998 Tom Tromey <tromey@ferrule.cygnus.com>
-
- * java/lang/Class.h: Use _Jv_RegisterClasses, not
- _Jv_RegisterClass.
- * java/lang/natClass.cc (_Jv_RegisterClasses): New function.
- (_Jv_RegisterClass): Use it.
- * include/jvm.h (_Jv_RegisterClasses): Declare.
- * java/lang/natObject.cc (init): Removed.
- (sync_init): Never call _Jv_InitializeSyncMutex.
- (_Jv_InitializeSyncMutex): Don't set `init'.
- * prims.cc (JvRunMain): Don't run init functions.
-
-Thu Nov 5 17:14:37 1998 Tom Tromey <tromey@sanguine.cygnus.com>
-
- * java/lang/natClass.cc (initializeClass): Set state before
- resolving constants.
-
- * java/lang/natClass.cc (STATE_CONST_INIT): Removed.
- (STATE_RESOLVED): New macro.
- (initializeClass): Call resolveConstants.
- (hackRunInitializers): Don't call resolveConstants.
- (_Jv_FindArrayClass): Move short-circuit return for primitive
- element types earlier in function.
-
-1998-11-03 Tom Tromey <tromey@hoser.cygnus.com>
-
- * prims.cc (no_memory): New global.
- (_Jv_makeUtf8Const): Throw no_memory.
- (_Jv_AllocObject): Likewise.
- (_Jv_NewObjectArray): Likewise.
- (_Jv_NewPrimArray): Likewise.
- (JvRunMain): Initialize no_memory.
-
-Tue Nov 3 17:15:45 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/FileInputStream.java: Corrected date comment.
- * java/io/SequenceInputStream.java: Rewritten.
-
-Mon Nov 2 17:20:31 1998 Tom Tromey (tromey@cygnus.com)
-
- * java/lang/FirstThread.java (die): New method.
- * java/lang/natFirstThread.cc (die): Removed.
- (DIE): New macro.
- (run): Use `DIE', not `die'.
-
-Mon Nov 2 16:23:41 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/CharArrayReader.java (read): Move check into synchronized
- block to prevent a close while in progress.
- (reset): Ditto.
- (skip): Ditto.
- * java/io/PushbackReader.java (read): Ditto.
- (ready): Ditto.
- (unread): Ditto.
- * java/io/StringReader.java (mark): Ditto.
- (read): Ditto.
- (reset): Ditto.
- (skip): Ditto.
-
-Mon Nov 2 15:56:20 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PipedInputStream.java: Updated status.
- (connect): Added code to prevent infinite recursion and to
- differentiate exception causes.
- (read): Added code to differentiate exception causes.
- (receive): Made exception pass string with the cause.
-
- * java/io/PipedOutputStream.java: Updated status.
- (connect): Added code to call connect at the other end of the pipe.
-
-Mon Nov 2 00:22:12 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PipedInputStream.java (connect): Throw exception if
- already connected to the same output stream.
- (read): Do bounds checking first.
-
-Sun Nov 1 22:48:55 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PipedInputStream.java: Added private boolean outClosed.
- (available): Removed check if output stream is open.
- (close): Mark the buffer as empty so available returns 0.
- (read): Check if the output stream was closed and then return EOF
- when the buffer is empty.
- (receive): Mark the output stream as closed when passed a -1.
-
- * java/io/PipedOutputStream.java (close): Notify the input stream
- that there's no more data coming.
- (connect): Added a FIXME comment to note more coordination needed
- with PipedInputStream.
- (flush): Added a FIXME comment to mark what this method might do
- instead of nothing.
-
-Fri Oct 30 14:27:21 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PipedInputStream.java: Rewritten.
-
-1998-10-30 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Throwable.java: Rewrote from scratch.
-
- * java/lang/Class.h (Class): Don't mention newMultiArray.
- * prims.cc (newMultiArray): Removed.
- (_Jv_NewMultiArray): Removed.
- (newArray): Removed.
- (new_multi_array): New function.
- (_Jv_NewMultiArray): Rewrote from scratch.
-
- * include/javaprims.h: Regenerated class declarations.
- * classes.pl (scan): Don't declare PrimClass.
- * include/cni.h (JvPrimClass): Use new names for classes.
- * java/lang/Class.h (Class): Removed _Jv_initPrimClass as friend;
- added _Jv_PrimClass.
- * prims.cc (_Jv_PrimClass): Renamed from PrimClass.
- (_Jv_initPrimClass): Removed.
- (DECLARE_PRIM_TYPE): Generated globals now start with `_Jv_'.
- (_Jv_AllocObject): Added comment.
- (_Jv_NewObjectArray): Likewise.
- (_Jv_NewPrimArray): Likewise.
-
-1998-10-29 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc (_Jv_NewClass): Initialize new field.
- (_Jv_FindArrayClass): Use dtable_method_count to compute size of
- new dtable.
- * java/lang/Class.h (Class): Added `dtable_method_count' field.
-
- * java/lang/natObject.cc (init): New global.
- (sync_init): Call _Jv_InitializeSyncMutex if required.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added ClassLoader.h.
- * include/jvm.h (_Jv_FindClassFromSignature): Declare.
- * java/lang/Class.h (Class): simpleLookupClass, insertClass,
- internalAddClass, lookupArray no longer friends.
- _Jv_RegisterClass, _Jv_FindClassInCache, _Jv_NewClass,
- _Jv_FindArrayClass now friends.
- * java/lang/natClass.cc (HASH_LEN): New macro.
- (HASH_UTF): Likewise.
- (loaded_classes): New global.
- (_Jv_FindClass): New function.
- (ClassClass): New define.
- (_Jv_FindClassInCache): New function.
- (_Jv_RegisterClass): Likewise.
- (_Jv_NewClass): Likewise.
- Include <string.h>
- (ObjectClass): New define.
- (CloneableClass): New define.
- * prims.cc (_Jv_FindClass): Removed.
- (simpleLookupClass): Removed.
- (insertClass): Removed.
- (CLASSHASHSZ): Removed.
- (classPool): Removed.
- (_Jv_RegisterClass): Removed.
- (internalAddClass): Removed.
- (ClassClass): Removed.
- (RuntimeClass): Removed.
- (lookupArray): Removed.
- (CloneableClass): Removed.
- (CLASSMAXSIG): Removed.
- Rearranged file to group related functions together.
- (_Jv_IsInstanceOf): Moved to natClass.cc.
- (abort_final): Removed.
- Removed some unused includes.
- (classFromSig): Removed.
- (_Jv_FindClassFromSignature): New function.
- (_Jv_initPrimClass): Renamed.
- (getClass): Removed.
-
-Thu Oct 29 23:17:17 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/FileDescriptor.java (finalize): Throws IOException
- instead of Throwable.
-
- * java/io/FileInputStream.java: Rewritten.
-
- * java/io/StreamTokenizer.java (nextToken): Unread newline character
- at the end of a comment.
-
-1998-10-29 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h: Regenerated class declarations.
- * classes.pl (scan): Don't special-case ClassLoader.
-
- * prims.cc (processClass): Removed.
- (_Jv_InitClass): Removed.
- Removed all CSTATE_ macros.
- (resolveConstants): Removed.
- (MAXDIMS): Removed.
- (_Jv_NewMultiArray): Cleaned up.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added NoClassDefFoundError.h.
- * java/lang/Class.h (Class): Declare new methods. processClass no
- longer a friend.
- * java/lang/Class.java (hackTrampoline): New method.
- (initializeClass): Declare.
- (hackRunInitializers): Declare.
- * java/lang/natClass.cc (getClassLoader): Moved into Class.h.
- (initializeClass): New method.
- (hackRunInitializers): New method.
- (init_name, void_signature): Moved from prims.cc.
- (_Jv_InitClass): New function.
- (isAssignableFrom): Don't call processClass.
- (STATE_NOTHING): New macro.
- (resolveConstants): New function.
- Include Thread.h.
- (ErrorClass): New define.
-
- * java/lang/Class.java (getClassLoader): Declare.
- * java/lang/ClassLoader.java: Rewrote from scratch.
-
- * java/lang/natClass.cc: Include IncompatibleClassChangeError.h,
- AbstractMethodError.h, IllegalAccessError.h,
- NoClassDefFoundError.h.
- * include/jvm.h (StringClass): Declare _Jv_equalUtf8Consts.
- * prims.cc (_Jv_equalUtf8Consts): Renamed from equalUtf8Consts; no
- longer static. Changed return type.
- * java/lang/natFirstThread.cc (run): Use _Jv_GetMethodLocal.
- * java/lang/Class.h (Class): findMethodLocal no longer a friend.
- * prims.cc (findMethodLocal): Removed.
- (processClass): Use _Jv_GetMethodLocal.
-
-1998-10-28 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_LookupInterfaceMethod): Removed.
- * java/lang/Class.h (Class): Declare _Jv_GetMethodLocal as
- friend.
- * java/lang/natClass.cc (_Jv_GetMethodLocal): New function.
- (_Jv_LookupInterfaceMethod): New function (rewrote from scratch).
-
- * include/jni.h: Added copyright header.
- * include/javaprims.h: Added copyright header.
- * include/java-field.h: Added copyright header.
- * include/java-array.h: Added copyright header.
- * include/cni.h: Added copyright header.
-
- * include/javaprims.h: Regenerated class declarations using
- classes.pl; now they are complete.
- * classes.pl: New file.
-
- * java/lang/natMath.cc: Include <config.h>.
- * java/lang/reflect/natField.cc: Include <config.h>.
- * java/util/NativeUtil.java: Removed.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added Math.h.
- * java/lang/Math.h: Removed.
- * java/util/natGregorianCalendar.cc: Added copyright header.
- Include <config.h>.
- * java/lang/natFloat.cc: Added copyright header.
- * java/lang/Byte.java: Added copyright header.
- * java/lang/Void.java: Added copyright header.
- * java/lang/Short.java: Added copyright header.
-
-Wed Oct 28 12:55:47 1998 Warren Levy <warrenl@cygnus.com>
-
- * include/javaprims.h (java::io): Added bunch of missing classes.
-
- * java/io/DataInputStream.java (readLine): Added a special case
- for handling BufferedInputStream data to reduce the likelihood
- of a pushback error.
- (skipBytes): Added code to handle negative number of skip bytes.
-
- * java/io/StreamTokenizer.java: Rewritten.
-
-1998-10-28 Tom Tromey <tromey@cygnus.com>
-
- * java/util/natGregorianCalendar.cc (computeFields): Call
- getRawOffset as a method.
-
- * include/javaprims.h (java::io): Added FilterOutputStream.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added PrintStream.h,
- FilterOutputStream.h.
- * java/lang/natFirstThread.cc: Include System.h, Modifier.h,
- PrintStream.h.
- (die): New function.
- (run): Die if `main' not found, is not public, or is not static.
-
- * boehm.cc (_Jv_MarkObj): Use new field names.
- * include/java-field.h (JvGetFirstInstanceField): Use new field
- names.
- (JvNumInstanceFields): Likewise.
- * java/lang/natClass.cc (isAssignableFrom): Use new field names.
- (getInterfaces): Likewise.
- * prims.cc (CLASS_CONSTANTS): Removed.
- (CLASS_CONST_SIZE): Likewise.
- (CLASS_CONST_TAG): Likewise.
- (CLASS_CONST_DATA): Likewise.
- (CLASS_CONST_UTF8): Likewise.
- (WORD2UTF): Likewise.
- (CLASS_CLASS): Likewise.
- (CLASS_PRIM_SIG): Likewise.
- (CLASS_ARRAY_CACHE): Likewise.
- (HASH_CHARS): Likewise.
- (hashClassName): Likewise.
- Many changes to use new field names.
- * java/lang/Class.h (Class): Renamed fields to track compiler.
-
-1998-10-27 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natClass.cc: Use #pragma implementation.
- (getComponentType): Moved into header.
- (getModifiers): Likewise.
- (getName): Likewise.
- (getSuperclass): Likewise.
- (isArray): Likewise.
- (isPrimitive): Likewise.
- * include/jvm.h (_Jv_FindClass): Declare.
- * java/lang/natFirstThread.cc (run): Updated for new Class.h.
- * java/lang/natSystem.cc (arraycopy): Updated for new Class.h.
- * include/javaprims.h: Use _Jv_Method, not JvMethod.
- * java/lang/Class.h: Rewrote from scratch.
- * prims.cc: Many changes to work with new Class.h.
- * include/java-field.h (CLASS_FIELDS): Removed.
- (CLASS_SFIELDS): Likewise.
- (CLASS_IFIELDS): Likewise.
- (CLASS_NFIELDS): Likewise.
- (CLASS_NIFIELDS): Likewise.
- (CLASS_NSFIELDS): Likewise.
- (CLASS_FSIZE): Likewise.
- (JvGetFirstInstanceField): Rewrote.
- (JvNumInstanceFields): Likewise.
-
- * java/lang/Object.h: Added copyright comment.
-
-Wed Oct 28 00:32:23 1998 Per Bothner <bothner@cygnus.com>
-
- * java/text: New package directory.
- * java/text/FieldPosition.java: New class.
- * java/text/ParsePosition.java: New class.
- * java/text/ParseException.java: New Exception class.
- * java/text/Format.java: New class.
- * java/text/NumberFormat.java: New (empty placeholder) class.
- * java/text/DateFormatSymbols.java: New class (no Locales support).
- * java/text/DateFormat.java: New Format class (incomplete).
- * java/text/SimpleDateFormat.java: New DateFormat class.
-
- * include/javaprims.h (java::test): Added new package and classes.
- * java/util/Calendar.java (clone): New method.
- * java/util/Date.java (toString): Added non-native implementation.
- (parse): Made public instead of synchronized.
- * java/util/natDate.cc (toString): Removed.
- * java/util/natGregorianCalendar.cc (computeFields):
- Use gmtime (or gmtime_r) if no zone offset (the default, for now!).
-
-1998-10-27 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (_Jv_MarkObj): Correctly mark a class' interfaces.
-
- * prims.cc (lookupArray): Added explanatory comment.
- * boehm.cc (_Jv_MarkObj): Correctly scan methods and fields of
- class. Mark the class of each object.
- (_Jv_MarkArray): Mark the object's class.
-
- * configure: Rebuilt.
- * configure.in: Create java-gc.h.
- * include/boehm-gc.h: New file.
- * include/no-gc.h: New file.
- * java/lang/Class.h (Class): Declare JV_MARKOBJ_DECL as friend, if
- defined.
- * java/lang/Object.h: Include java-gc.h.
- (Object): Declare JV_MARKOBJ_DECL and JV_MARKARRAY_DECL as
- friends, if defined.
- * boehm.cc (_Jv_MarkObj): Renamed from mark_obj; changed
- signature.
- (_Jv_MarkArray): Renamed from mark_array; changed signature.
-
-1998-10-26 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natCharacter.cc (isSpaceChar): Look for line and
- paragraph separators, not numbers.
-
- * java/io/Writer.java (write): Removed write(char) to avoid
- ambiguity.
- * java/util/Properties.java: Rewrote from scratch.
- * include/javaprims.h (java::io): Added PrintWriter,
- BufferedWriter, PushbackReader.
-
-Mon Oct 26 13:13:28 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/System.java: exit() is a static method.
-
-1998-10-26 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (_Jv_NewStringUTF): Use
- _Jv_strLengthUtf8.
- (_Jv_NewStringUtf8Const): Likewise.
- * include/jvm.h (_Jv_strLengthUtf8): Declare.
- * prims.cc (_Jv_strLengthUtf8): Renamed from strLengthUtf8.
-
- * java/lang/Object.h (Object): Add mark_array as friend function.
- * prims.cc (_Jv_NewPrimArray): Use _Jv_AllocObj, not
- _Jv_AllocBytes, to ensure that header is marked.
- * boehm.cc (mark_obj): Push sync_info field for all objects, not
- just Objects.
- (mark_array): Push sync_info field for array.
-
-1998-10-24 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/String.java (String): Updated for StringBuffer
- change.
- * java/util/BitSet.java: Renamed field (data->bits) to conform to
- serialization spec.
- * java/lang/StringBuffer.java: Renamed fields to conform to
- serialization spec: buffer->value, next->count, copy->shared.
-
-Wed Oct 21 18:24:57 1998 Per Bothner <bothner@cygnus.com>
-
- * java/util/TimeZone.java: New class.
- * java/util/SimpleTimeZone.java: New class.
- * java/util/Locale.java: New file.
- * java/util/Calendar.java: Make almost complete.
- * java/util/GregorianCalendar.java
- * java/util/natGregorianCalendar.cc: New file.
- * java/util/Date.java: Re-written from scratch.
- * java/util/natDate.cc (setTime): Removed - no longer native.
- * include/javaprims.h (java::util): Add new classes.
- * Makefile.am (nat_files): Add java/util/natGregorianCalendar.o.
- (nat_headers); Add TimeZone.h, Calendar.h, GregorianCalendar.h.
-
-Sat Oct 24 22:58:25 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/natFileDescriptorPosix.cc (read): Zero extend jbyte b before
- returning it as a jint.
-
-1998-10-23 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (arg_vec, main_group, main_thread): New globals.
- (JvRunMain): Use them.
-
-Fri Oct 23 17:10:12 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/DataInputStream.java: Rewritten.
-
- * java/io/DataOutputStream.java (writeUTF): OR secondary and
- tertiary bytes with 0x80 per spec.
-
-1998-10-23 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/String.java (init): Changed name of `copy' argument.
- * java/lang/natString.cc (init): Inverted sense of `copy'
- argument.
-
- * java/lang/Object.h (Object): Declare mark_obj as a friend.
- * java/lang/Class.h (Class): Declare mark_obj as a friend.
- * boehm.cc (ObjectClass): New define.
- (ClassClass): Likewise.
- (mark_obj): Special-case Object and Class.
-
- * prims.cc (_Jv_NewPrimArray): Pass correct args to memset.
-
- * java/util/BitSet.java: Rewrote from scratch.
-
- * prims.cc (lookupArray): Removed useless cast.
-
- * java/lang/natObject.cc: Use `#pragma implementation'.
-
- * java/lang/String.java (init): Added `copy' argument.
- (String): Look in StringBuffer to find char array.
- * java/lang/natString.cc (init): Added `copy' argument.
- * java/lang/StringBuffer.java: Rewrote from scratch.
-
- * java/lang/Compiler.java: Rewrote from scratch.
- * java/lang/Throwable.java: Don't use NativeLang.
- * include/javaprims.h (java::lang): Don't mention NativeLang.
- * java/lang/Process.java: Rewrote from scratch.
- * java/lang/SecurityManager.java (classLoaderDepth): Commented
- out.
- (currentClassLoader): Likewise.
- (currentLoadedClass): Likewise.
- * java/lang/natClass.cc (getClassLoader): Commented out.
- * java/lang/Class.java (getClassLoader): Commented out.
- * java/lang/Compiler.java: Removed.
- * java/lang/NativeLang.java: Removed.
-
- * java/lang/natFirstThread.cc (run): Use _Jv_makeUtf8Const.
- * include/jvm.h (StringClass): Declare _Jv_makeUtf8Const.
- * prims.cc (_Jv_makeUtf8Const): Renamed from makeUtf8Const.
- (_Jv_hashUtf8String): Now static.
- * include/java-field.h (getNameUtf8Const): Use `_Jv_Utf8Const' as
- name of return type.
-
- * java/lang/Class.h (Class): Declare checkMemberAccess.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added Member.h.
- * java/lang/natClass.cc: Include Member.h.
- (getDeclaredClasses): Call checkMemberAccess.
- * java/lang/Class.java (checkMemberAccess): Call
- SecurityManager.checkMemberAccess.
-
-Fri Oct 23 08:01:54 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/SecurityManager.java: Rewritten.
-
-Thu Oct 22 17:16:10 1998 Anthony Green <green@cygnus.com>
-
- * java/applet/Applet.java, java/applet/AppletContext.java,
- java/applet/AppletStub.java, java/applet/AudioClip.java,
- java/awt/AWTError.java, java/awt/AWTException.java,
- java/awt/BorderLayout.java, java/awt/Button.java,
- java/awt/Canvas.java, java/awt/CardLayout.java,
- java/awt/Checkbox.java, java/awt/CheckboxGroup.java,
- java/awt/CheckboxMenuItem.java, java/awt/Choice.java,
- java/awt/Color.java, java/awt/Component.java,
- java/awt/Container.java, java/awt/Dialog.java,
- java/awt/Dimension.java, java/awt/Event.java,
- java/awt/FileDialog.java, java/awt/FlowLayout.java,
- java/awt/Font.java, java/awt/FontMetrics.java,
- java/awt/Frame.java, java/awt/Graphics.java,
- java/awt/GridBagConstraints.java, java/awt/GridBagLayout.java,
- java/awt/GridLayout.java, java/awt/Image.java,
- java/awt/Insets.java, java/awt/Label.java,
- java/awt/LayoutManager.java, java/awt/List.java,
- java/awt/MediaTracker.java, java/awt/Menu.java,
- java/awt/MenuBar.java, java/awt/MenuComponent.java,
- java/awt/MenuContainer.java, java/awt/MenuItem.java,
- java/awt/Panel.java, java/awt/Point.java, java/awt/Polygon.java,
- java/awt/Rectangle.java, java/awt/Scrollbar.java,
- java/awt/TextArea.java, java/awt/TextComponent.java,
- java/awt/TextField.java, java/awt/Toolkit.java,
- java/awt/Window.java, java/awt/image/ColorModel.java,
- java/awt/image/CropImageFilter.java,
- java/awt/image/DirectColorModel.java,
- java/awt/image/FilteredImageSource.java,
- java/awt/image/ImageConsumer.java,
- java/awt/image/ImageFilter.java,
- java/awt/image/ImageObserver.java,
- java/awt/image/ImageProducer.java,
- java/awt/image/IndexColorModel.java,
- java/awt/image/MemoryImageSource.java,
- java/awt/image/PixelGrabber.java,
- java/awt/image/RGBImageFilter.java, java/awt/peer/ButtonPeer.java,
- java/awt/peer/CanvasPeer.java,
- java/awt/peer/CheckboxMenuItemPeer.java,
- java/awt/peer/CheckboxPeer.java, java/awt/peer/ChoicePeer.java,
- java/awt/peer/ComponentPeer.java,
- java/awt/peer/ContainerPeer.java, java/awt/peer/DialogPeer.java,
- java/awt/peer/FileDialogPeer.java, java/awt/peer/FramePeer.java,
- java/awt/peer/LabelPeer.java, java/awt/peer/ListPeer.java,
- java/awt/peer/MenuBarPeer.java,
- java/awt/peer/MenuComponentPeer.java,
- java/awt/peer/MenuItemPeer.java, java/awt/peer/MenuPeer.java,
- java/awt/peer/PanelPeer.java, java/awt/peer/ScrollbarPeer.java,
- java/awt/peer/TextAreaPeer.java,
- java/awt/peer/TextComponentPeer.java,
- java/awt/peer/TextFieldPeer.java, java/awt/peer/WindowPeer.java,
- java/net/ContentHandler.java, java/net/ContentHandlerFactory.java,
- java/net/DatagramPacket.java, java/net/DatagramSocket.java,
- java/net/DefaultSocketImpl.java, java/net/InetAddress.java,
- java/net/MalformedURLException.java, java/net/NativeNet.java,
- java/net/ProtocolException.java, java/net/ServerSocket.java,
- java/net/Socket.java, java/net/SocketException.java,
- java/net/SocketImpl.java, java/net/SocketImplFactory.java,
- java/net/URL.java, java/net/URLConnection.java,
- java/net/URLEncoder.java, java/net/URLStreamHandler.java,
- java/net/URLStreamHandlerFactory.java,
- java/net/UnknownHostException.java,
- java/net/UnknownServiceException.java: Removed.
-
-1998-10-22 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_AllocObject): Register finalizer if class'
- finalizer is not Object.finalize.
- (internalAddClass): Don't set `final' member of class.
- * java/lang/Object.h: Updated _JvObjectPrefix comment to mention
- other places that know about finalize() location.
- * java/lang/Class.h (Class): Removed `final' field.
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4 (LIB_AC_PROG_CXX): Unconditionally use
- AC_CHECK_PROGS; otherwise the CXX cache variable might not be
- set.
- * configure.in (AC_OUTPUT): Pass CXX to config.status.
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_MAKEFLAGS): Added CXX, CXXFLAGS.
-
-1998-10-21 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Object.java (finalize): Move to be first method in
- class.
-
- * configure: Rebuilt.
- * configure.in (GCINCS): Include contents of boehm-cflags file.
-
-Tue Oct 20 13:11:04 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * java/lang/ArrayIndexOutOfBoundsException.java
- (ArrayIndexOutOfBoundsException): Fixed string literal.
- * java/lang/StringIndexOutOfBoundsException.java
- (StringIndexOutOfBoundsException): Fixed string literal.
-
-1998-10-20 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * natFileDescriptorEcos.cc added.
- * natFileDescriptor.cc renamed natFileDescriptorPosix.cc.
-
-1998-10-20 Andrew Haley <aph@viagra.cygnus.co.uk>
-
- * acconfig.h: test for __int32_t and __uint32_t added.
- * include/config.h.in: test for __int32_t and __uint32_t added.
- * java/lang/fdlibm.h: test for __int32_t and __uint32_t added.
- * java/lang/mprec.h: test for __int32_t and __uint32_t added.
- * configure.in: test for __int32_t and __uint32_t added.
- * configure: test for __int32_t and __uint32_t added.
-
- * natFileDescriptor.cc renamed natFileDescriptorPosix.cc.
-
- * configure.in: Test for --enable ecos and link
- natFileDescriptor.cc to natFileDescriptorEcos.cc or
- natFileDescriptorPosix.cc
-
- * java/lang/dtoa.c: #include <stdio.h> moved inside #ifdef DEBUG.
-
-Mon Oct 19 18:13:58 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ByteArrayInputStream.java (skip): Ensure that arg passed
- in isn't negative.
-
- * java/io/CharArrayReader.java (close): Synchronize on lock
- object per Reader contract.
- (read): Synchronize on lock obj. Verify that reader wasn't closed.
- (reset): Synchronize on lock obj. Verify that reader wasn't closed.
- (skip): Synchronize on lock obj. Verify that reader wasn't closed.
- Ensure that arg passed in isn't negative.
-
- * java/io/FilterReader.java (FilterReader): Use the lock obj when
- constructing the superclass.
-
- * java/io/PushbackReader.java (close): Synchronize on lock
- object per Reader contract.
- (read): Synchronize on lock obj. Verify that reader wasn't closed.
- (ready): Synchronize on lock obj. Throw IOException if reader
- wasn't closed.
- (reset): Synchronize on lock obj. Verify that reader wasn't closed.
- (skip): Synchronize on lock obj. Verify that reader wasn't closed.
- Ensure that arg passed in isn't negative.
- (unread): Synchronize on lock obj. Verify that reader wasn't closed.
-
- * java/io/StringReader.java: Created.
-
-Sun Oct 18 02:19:11 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/CharArrayReader.java (mark): Removed synchronized modifier
- to match JCL.
- (read): Removed synchronized modifier to match JCL.
- (reset): Removed synchronized modifier to match JCL.
- (skip): Removed synchronized modifier to match JCL.
-
-Sun Oct 18 02:01:54 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PushbackReader.java (PushbackReader): Made
- constructors public.
-
-1998-10-17 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PushbackInputStream.java (PushbackInputStream): Made
- constructors public.
-
-1998-10-16 Anthony Green <green@cygnus.com>
-
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4 (LIBJAVA_CONFIGURE): Changed for new
- configure.host.
- * configure.host: Rewrote.
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CXXFLAGS): Added LIBJAVA_CXXFLAGS.
- (AM_CFLAGS): New macro.
- ($(c_files)): Use COMPILE macro.
- (EXTRA_libjava_a_SOURCES): Added dummy file to work around
- automake problem(s).
-
-Fri Oct 16 16:36:28 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/ByteArrayInputStream.java (mark): Removed temp. comment.
-
- * java/io/CharArrayReader.java: Created.
-
-Fri Oct 16 15:17:01 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PushbackInputStream.java (PushbackInputStream): Changed
- size check to allow 0 per JCL.
-
- * java/io/PushbackReader.java: Created.
-
-1998-10-16 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptor.cc: Conditionalize <unistd.h>,
- <sys/time.h> includes.
- * java/io/natFile.cc: Conditionalize <unistd.h> include.
- * include/no-threads.h: Conditionalize <unistd.h> include on
- HAVE_UNISTD_H.
-
-Fri Oct 16 14:39:51 1998 Andrew Haley <aph@madras.cygnus.co.uk>
-
- * include/no-threads.h: Don't include <unistd.h> unless HAVE_SLEEP
- is defined.
-
-Thu Oct 15 19:27:54 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/FilterReader.java: Created.
-
-Thu Oct 15 17:49:43 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/PushbackInputStream.java: Rewritten.
-
- * java/io/BufferedInputStream.java (BufferedInputStream): Check
- that size passed to constructor is legal.
- (read): Check that args passed in are legal.
- (skip): Rewritten to get rid of the temporary buffer.
- (refill): Added marklimit check to grow the buffer.
-
- * java/io/ByteArrayInputStream.java (read): Optimized invalid args
- check.
- (bytesAvail): Removed.
- (read): Changed bytesAvail to Math.min.
- (skip): Changed bytesAvail to Math.min.
-
- * java/io/InputStream.java (read): Got rid of extraneous exceptions
- from the throws clause.
- (skip): Rewritten to use a temporary buffer.
-
-Thu Oct 15 19:42:55 1998 Andrew Haley <aph@madras.cygnus.co.uk>
-
- * prims.cc: (JvConvertArgv): Check added for argc < 0; possible on
- some target OSes
-
- * java/lang/dtoa.c: (print): Made #ifdef DEBUG only.
-
- * java/lang/strtod.c: (_strtod_r): Don't use HUGE_VAL: it's faster
- to write the double one word at a time.
-
-Tue Oct 13 14:41:47 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/BufferedInputStream.java: Rewritten.
-
-1998-10-12 Tom Tromey <tromey@cygnus.com>
-
- * jni.cc: Include config.h and stddef.h.
-
- * java/lang/Class.h (_dispatchTable): Removed again.
- Removed all ACC_* defines again.
-
-Fri Oct 9 17:08:34 1998 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am (nat_files): Add netField.o.
- (libjava_a_SOURCES): Add jni.cc.
- (java/lang/reflect/Field.h): New rule.
- * Makefile.in: Re-generated.
- * include/javaprims.h: Add some extra class and typedefs.
- * include/jni.h: New file.
- * jni.cc: New file.
-
- * include/java-field.h: New file.
- * include/jvm.h: #include <java-field.h>.
- * boehm.cc: #include <java-field.h>.
- * java/lang/Class.h (JvField, inline numbers): Moved to java-field.h.
- * java/lang/reflect/Member.java: New class.
- * java/lang/reflect/Field.java: New class. (Very incomplete.)
- * java/lang/reflect/natField.cc: New file. (Very incomplete.)
-
-Sun Oct 11 00:34:44 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.in, aclocal.m4, configure, test/Makefile.in,
- testsuite/Makefile.in: Rebuilt.
- * Makefile.am, acinclude.m4, configure.in: Add multilib support.
- * configure.host: Created.
-
-1998-10-10 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natObject.cc (sync_init): Always allocate a new
- sync_info.
-
-1998-10-09 Tom Tromey <tromey@cygnus.com>
-
- * java/io/ByteArrayInputStream.java (mark): Renamed from
- `mark_FIXME'.
-
- * java/io/FileOutputStream.java (finalize): Removed.
- * java/io/FileDescriptor.java (finalize): New method.
-
-Thu Oct 8 17:59:43 1998 Warren Levy <warrenl@cygnus.com>
-
- * ByteArrayInputStream.java: Corrected status comment.
-
-Thu Oct 8 17:22:49 1998 Warren Levy <warrenl@cygnus.com>
-
- * ByteArrayInputStream.java, FilterInputStream.java: Rewritten.
-
-1998-10-08 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (lookupArray): Use static array to initialize list of
- interfaces.
-
-Thu Oct 8 12:45:03 1998 Anthony Green <green@cygnus.com>
-
- * prims.cc (lookupArray): Initialize the msize for new
- array classes.
-
-Wed Oct 7 12:13:59 1998 Anthony Green <green@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Check for fsync and sleep.
- * acconfig.h (HAVE_SLEEP, HAVE_FSYNC): Added.
-
- * include/no-threads.h (_Jv_CondWait): Wrap sleep() use with
- HAVE_SLEEP. Include config.h.
-
- * java/io/natFileDescriptor.cc (NO_FSYNC_MESSAGE): Added.
- * java/io/natFileDescriptor.cc (sync): Wrap fsync() use
- with HAVE_FSYNC.
-
-1998-10-08 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFile.cc: Don't include SecurityManager.h.
- (performList): Renamed.
- (performMkdir): Likewise.
- (performRenameTo): Likewise.
- (performDelete): Likewise.
- Include <stdlib.h>.
- * java/io/File.java (performDelete): Renamed from natDelete.
- (list): Now written in Java.
- (performList): New method.
- (performMkdir): New method.
- (mkdir): Now written in Java.
- (performRenameTo): New method.
- (renameTo): Now written in Java.
-
-1998-10-06 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (ETAGS_ARGS): New macro.
- (TAGS_DEPENDENCIES): Likewise.
-
-Tue Oct 6 22:04:44 PDT 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am: Use -classpath option with javac.
-
-Tue Oct 6 18:51:31 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/FileOutputStream.java (finalize): Call
- super.finalize().
-
-Tue Oct 6 16:02:45 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/mprec.h: Remove unused _mprec_log10 which conflicts
- with newlib's libm.
- * java/lang/mprec.c: Ditto.
-
- * java/lang/mprec.h: Include math.h for HUGE_VAL when
- cross-compiling.
-
-Tue Oct 6 14:27:00 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/InputStream.java (skip): Make local var i a long.
-
-Mon Oct 5 09:44:24 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natObject.cc (clone): Use memcpy, not memmove.
- * prims.cc (lookupArray): Use memcpy, not memmove.
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_MEMCPY): Added.
- * configure: Rebuilt.
- * configure.in: Check for memcpy again.
-
- * java/io/RandomAccessFile.java (RandomAccessFile): Use
- String.compareTo, not ==.
-
- * java/lang/Class.h (Class): Use _Jv_DispatchTable.
- (_PRIMITIVE_DTABLE): Use _Jv_DispatchTable.
- * java/lang/natObject.cc (struct _dispatchTable): Removed.
- * include/jvm.h (struct _Jv_DispatchTable): New structure.
- * prims.cc (lookupArray): Removed dead code. Copy Object's dtable
- into new array's dtable.
- (_Jv_AllocObject): Use _Jv_DispatchTable.
- (_Jv_NewPrimArray): Likewise.
- (_Jv_NewObjectArray): Likewise.
-
-Fri Oct 2 18:57:14 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * prims.cc (_Jv_ThrowBadArrayIndex): Construct a string with the
- offending index value.
- (_Jv_NewPrimArray): Throw NegativeArraySizeException when
- appropriate.
- * include/jvm.h (_Jv_ThrowBadArrayIndex): Added declaration.
- * java/lang/Throwable.java: (Throwable): fixed argument to this().
-
-Fri Oct 2 15:58:23 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/io/DataInput.java, java/io/InputStream.java: Rewritten.
-
- * java/io/OutputStream.java (write): Use off and len parameters to
- output partial byte array.
-
- * java/io/BufferedReader.java, java/io/FileReader.java,
- java/io/InputStreamReader.java, java/io/LineNumberReader.java,
- java/io/OutputStreamWriter.java, java/io/PrintWriter.java,
- java/io/Reader.java, java/io/UnsupportedEncodingException.java,
- java/io/Writer.java: Added COPYRIGHT-TBD comment.
-
- * include/javaprims.h (java::lang): Added
- ExceptionInInitializerError, IllegalStateException,
- NoSuchFieldException, and UnsupportedOperationException.
-
-Fri Oct 2 01:05:38 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natObject.cc (CloneableClass): Is a Class, not a
- Class*.
-
- * include/java-array.h (__JArray): Added clone method.
- * prims.cc (CloneableClass): New define.
- (lookupArray): Initialize array class to indicate that it
- implements Cloneable.
-
- * java/lang/Class.h: Removed all ACC_* defines.
- * prims.cc: Include Modifier.h.
- (_Jv_LookupInterfaceMethod): Use methods in
- java.lang.reflect.Modifier, not ACC_ defines.
-
- * java/lang/Class.h (Class): Declare getClasses,
- getDeclaredClasses, getDeclaringClass, getModifiers,
- * java/lang/Class.java: Rewrote from scratch.
-
- * include/javaprims.h (java::lang): Added reflect and
- reflect::Modifier.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added Modifier.h.
-
- * prims.cc (_Jv_IsInstanceOf): Return false if class is
- primitive.
-
-Fri Oct 2 06:49:00 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/natString.cc (_Jv_StringFindSlot): Use JvAssert
- instead of test and abort.
-
- * java/lang/natString.cc (_Jv_NewStringUtf8Const): Add cast to
- remove compiler warning.
-
-Fri Oct 2 12:33:44 1998 Andrew Haley <aph@korai.cygnus.co.uk>
-
- * java/lang/natDouble.cc: zero terminate string.
- * strtod.c: Set errno if no digits are found in fraction.
-
-Thu Oct 1 11:48:28 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/reflect/Modifier.java: New file.
-
- * java/lang/VirtualMachineError.java: Rewrote from scratch.
- * java/lang/VerifyError.java: Rewrote from scratch.
- * java/lang/UnsatisfiedLinkError.java: Rewrote from scratch.
- * java/lang/UnknownError.java: Rewrote from scratch.
- * java/lang/StackOverflowError.java: Rewrote from scratch.
- * java/lang/OutOfMemoryError.java: Rewrote from scratch.
- * java/lang/InternalError.java: Rewrote from scratch.
- * java/lang/IllegalAccessError.java: Rewrote from scratch.
- * java/lang/ExceptionInInitializerError.java: New file.
- * java/lang/Error.java: Rewrote from scratch.
- * java/lang/ClassFormatError.java: Rewrote from scratch.
- * java/lang/ClassCircularityError.java: Rewrote from scratch.
- * java/lang/AbstractMethodError.java: Rewrote from scratch.
- * java/lang/NoClassDefFoundError.java: Rewrote from scratch.
- * java/lang/NoSuchFieldError.java: Rewrote from scratch.
- * java/lang/LinkageError.java: Rewrote from scratch.
- * java/lang/IncompatibleClassChangeError.java: Rewrote from
- scratch.
- * java/lang/NoSuchMethodError.java: Rewrote from scratch.
-
- * java/lang/natObject.cc (_Jv_FinalizeObject): New function.
- * java/lang/Object.h (Object): Declare _Jv_FinalizeObject as a
- friend.
- * include/cni.h (JvAllocObject): Moved from prims.cc.
- Include Class.h.
- * prims.cc (JvAllocObject): Moved to cni.h.
- (_Jv_AllocObject): Use _Jv_FinalizeObject.
- (finalize_name): Removed.
-
-Wed Sep 30 12:09:34 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Class.h (Class): Added size() method.
- * prims.cc (_Jv_MonitorEnter): Removed.
- (_Jv_MonitorExit): Removed.
- * java/lang/Object.h (JvSyncInfo): Removed.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added Cloneable.h,
- CloneNotSupportedException.h.
- * java/lang/Object.h: Rewrote.
- * java/lang/natObject.cc: Rewrote from scratch.
- * java/lang/Object.java: Rewrote from scratch.
-
- * java/io/natFile.cc: Conditionally include <dirent.h>.
- (list): If no <dirent.h>, always return NULL.
- * configure: Rebuilt.
- * configure.in: Check for dirent.h.
-
- * prims.cc (lookupArray): Don't use sprintf.
-
- * java/util/Hashtable.java (containsKey): Use `abs' to compute
- initial index.
- (get): Likewise.
- (put): Likewise.
- (rehash): Likewise.
- (remove): Likewise.
-
- * java/util/Hashtable.java (hsize): Renamed from size to avoid
- name conflict with method.
-
- * include/javaprims.h (java::util): Added HashtableEntry.
-
-Tue Sep 29 16:48:01 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Hashtable.java: Rewritten.
-
-Tue Sep 29 00:28:42 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptor.cc (write): Correctly test `write'
- return value.
- (write): Likewise.
-
- * java/lang/natThread.cc (join): Fixed assertion to refer to `nt',
- not `curr_nt'.
-
- * posix-threads.cc (_Jv_CondWait): Now returns int.
- * include/javaprims.h (java::lang): Added
- IllegalMonitorStateException.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added IllegalMonitorStateException.h.
- * include/no-threads.h (_Jv_CondDestroy): Removed.
- (_Jv_MutexDestroy): Removed.
- (_Jv_CondWait): Now returns int.
- (_Jv_CondNotify): Likewise. Added mutex argument.
- (_Jv_CondNotifyAll): Likewise.
- (_Jv_MutexLock): Always succeed.
- (_Jv_MutexUnlock): Likewise.
- * include/posix-threads.h (_Jv_HaveCondDestroy): Define.
- (_Jv_HaveMutexDestroy): Define.
- (_Jv_CondNotify): Now returns int. Added mutex argument.
- (_Jv_CondNotifyAll): Likewise.
- * include/quick-threads.h (_Jv_CondDestroy): Removed.
- (_Jv_MutexDestroy): Removed.
- (_Jv_CondWait): Now returns int.
- (_Jv_CondNotify): Likewise. Added mutex argument.
- (_Jv_CondNotifyAll): Likewise.
- * java/lang/natObject.cc (finalize_sync_info): New function.
- (init_mutex): Initialize `init' and register finalizer if
- required.
- (CHECK): New macro.
- (init_mutex): Use it.
- (notify): Use it.
- (notifyAll): Use it.
- (wait): Use it.
- (notify): Throw IllegalMonitorStateException on failure.
- (notifyAll): Likewise.
- (wait): Likewise. Also, throw InterruptedException if
- appropriate.
- Include cni.h, Thread.h, IllegalMonitorStateException.h,
- InterruptedException.h, IllegalArgumentException.h.
- * java/lang/Object.h (struct JvSyncInfo): Added `init' member.
-
- * java/lang/natString.cc: Renamed all `JvPriv' functions.
- * java/lang/natRuntime.cc: Renamed all `JvPriv' functions.
- * java/lang/Object.h: Renamed all `JvPriv' functions (and types).
- * java/lang/natObject.cc: Renamed all `JvPriv' functions.
- * java/lang/natThread.cc: Renamed all `JvPriv' functions.
- * quick-threads.cc: Renamed all `JvPriv' functions.
- * prims.cc: Renamed all `JvPriv' functions.
- * posix-threads.cc: Renamed all `JvPriv' functions.
- * nogc.cc: Renamed all `JvPriv' functions.
- * no-threads.cc: Renamed all `JvPriv' functions.
- * boehm.cc: Renamed all `JvPriv' functions.
- * include/quick-threads.h: Renamed all `JvPriv' functions.
- * include/posix-threads.h: Renamed all `JvPriv' functions.
- * include/no-threads.h: Renamed all `JvPriv' functions.
- * include/jvm.h: Renamed all `JvPrivXXX' functions to `_Jv_XXX'.
-
- * include/no-threads.h (JvPrivCondWait): Wrote minimal
- implementation.
- (JvPrivCondNotify): Do nothing.
- (JvPrivCondNotifyAll): Do nothing.
-
- * prims.cc (processClass): Handle case where state is
- DOING_CONSTINIT.
-
- * java/lang/natFirstThread.cc: Include <stdlib.h>
-
- * configure: Rebuilt.
- * configure.in: Fixed sense of --enable-libjava-debug.
-
- * java/lang/natThread.cc (join): Declare `t' outside the loop so
- it can be used afterward by the assertion.
-
- * configure: Rebuilt.
- * configure.in: When cross-compiling, assume alloca.
-
- * java/lang/natDouble.cc: Updated alloca magic to avoid use of
- __builtin_alloca (autoconf docs are wrong here).
-
- * java/io/natFileDescriptor.cc (close): Set fd to -1 before
- closing.
- (available): Use `FD_ZERO' (typo fix).
-
-Tue Sep 29 17:43:30 1998 Andrew Haley <aph@tikka.cygnus.co.uk>
-
- * java/lang/mprec.h, java/lang/mprec.c, java/lang/dtoa.c,
- java/lang/natDouble.cc, java/lang/strtod.c: struct _Bigint renamed
- struct _Jv_Bigint.
- * java/lang/mprec.h, java/lang/mprec.c, java/lang/dtoa.c,
- java/lang/natDouble.cc, java/lang/strtod.c: struct _reent renamed
- struct _Jv_reent.
-
- * java/lang/natDouble.cc: layout changed to match GNU coding standard.
-
-Tue Sep 29 07:57:13 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/natDouble.cc: Declare alloca safely.
-
- * configure, include/config.h.in: Rebuilt.
- * configure.in: Add alloca check.
-
-Tue Sep 29 00:28:42 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (finish_): Hold mutex for interrupt
- condition while calling notify.
- (join): Remove `curr_nt' from `nt's join list, not vice versa.
- (interrupt): Hold mutex for interrupt condition while calling
- notify.
-
- * java/lang/natString.cc (init): Allocate and try to read `count'
- characters, not `count - offset' characters.
-
- * java/io/ByteArrayInputStream.java (ByteArrayInputStream):
- Correctly compute `count'.
-
- * java/lang/Boolean.java (getBoolean): Return false if property
- not found.
-
- * java/lang/System.java (setProperties): Set prop_init.
-
-Mon Sep 28 12:39:25 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/PrintStream.java (println): Use line.separator, not
- file.separator.
- * java/lang/System.java (out, err): Make both autoflush streams.
- * java/io/ByteArrayOutputStream.java (write): Increment `count'.
-
- * include/config.h.in: Rebuilt.
- * acconfig.h (HAVE_MEMCPY): Removed.
- * configure: Rebuilt.
- * configure.in: Never define HAVE_MEMCPY.
-
- * java/lang/natString.cc: Don't include OutOfMemoryError.h or
- Class.h.
- (_Jv_AllocString): Use JvAllocObject again.
- * java/lang/Class.h (thread): New field.
- (_Jv_AllocString): No longer a friend.
- * prims.cc (processClass): Removed dead code. Changed to more
- closely follow the Java Language Specification.
- (processClass): Return early if already at the right state.
-
- * prims.cc (JvNewStringUTF): Removed.
- * include/cni.h (JvNewStringUTF): New function.
- (_Jv_NewStringUTF): Declare as `extern "C"'.
- * java/lang/natString.cc (_Jv_NewStringUTF): New function.
-
- * java/lang/natDouble.cc: Added copyright info and header
- comment. Include <stdlib.h>.
- (doubleValueOf): Use alloca, not malloc. Allocate 3 times as many
- bytes as are chars in string.
-
-Sat Sep 26 00:19:27 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/util/Hashtable.java (hkeys): Member renamed from to avoid
- clash with method.
- (hsize): Likewise.
-
- * java/lang/System.java (init_properties): Now native.
- * java/lang/natSystem.cc (init_properties): New method.
- Include java/util/Properties.h.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added ByteArrayOutputStream.h,
- OutputStreamWriter.h, ByteArrayInputStream.h,
- InputStreamReader.h, Writer.h, InputStream.h, OutputStream.h,
- Reader.h, Vector.h, SecurityManager.h, FilenameFilter.h,
- SyncFailedException.h, EOFException.h, FileNotFoundException.h,
- Properties.h, Hashtable.h, Dictionary.h.
- (CFLAGS): Removed.
-
- * include/javaprims.h (java::io): Added Reader, Writer,
- InputStreamReader, OutputStreamWriter,
- UnsupportedEncodingException, ByteArrayInputStream,
- ByteArrayOutputStream, EOFException, SyncFailedException,
- PushbackInputStream.
- (java::lang): Added Cloneable.
- (java::util): Added NoSuchElementException, VectorEnumeration,
- Dictionary, HashtableEnumeration, PropertiesEnumeration.
-
- * java/io/PipedReader.java: New file.
-
-Fri Sep 25 00:11:25 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natCharacter.cc (getNumericValue): Use `digit' to pick
- up A-Z.
-
- * java/io/io-defs.h: Removed.
-
- * java/io/FileInputStream.java (skip): Use FileDescriptor.seek.
- (FileInputStream): Use new constructor. Can throw IOException.
-
- * java/lang/System.java (getProperty): Don't throw
- NullPointerException.
-
- * java/io/RandomAccessFile.java: Rewrote from scratch.
-
- * java/io/natFileDescriptor.cc: Include EOFException.h.
- (seek): New method.
- (length): New method.
- (getFilePointer): New method.
- (read): New method.
- (available): New method.
- * java/io/FileDescriptor.java (SET, CUR): New constants.
- (seek, length, getFilePointer, read, available): New decls.
-
- * java/io/PipedWriter.java: New file.
- * java/io/StringWriter.java: New file.
- * java/io/CharArrayWriter.java: New file.
- * java/io/CharConversionException.java: New file.
- * java/io/BufferedWriter.java: New file.
- * java/io/FilterWriter.java: New file.
- * java/io/FileWriter.java: New file.
-
- * java/lang/natString.cc: Include ByteArrayOutputStream.h,
- OutputStreamWriter.h, NullPointerException.h,
- ByteArrayInputStream.h, InputStreamReader.h.
- (getBytes): New method.
- (init): Throw NullPointerException.
- (init): New function.
- * java/lang/String.java (getBytes): Added missing decl.
- (getBytes): New method.
- (String): Added byte[]-based constructors.
- (copyValueOf): Wrote.
- (init): Declare variant which takes byte array and encoding.
- Import java.io.UnsupportedEncodingException.
-
- * java/io/File.java: Rewrote from scratch.
- * java/io/natFileDescriptor.cc: Rewrote from scratch.
- * java/io/FileDescriptor.java: Rewrote from scratch.
- * java/io/FilenameFilter.java: Rewrote from scratch.
-
-Thu Sep 24 13:30:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/SyncFailedException.java: New file.
- * java/io/UTFDataFormatException.java: Rewrote from scratch.
- * java/io/InterruptedIOException.java: Rewrote from scratch.
- * java/io/FileNotFoundException.java: Rewrote from scratch.
- * java/io/EOFException.java: Rewrote from scratch.
- * java/io/IOException.java: Rewrote from scratch.
- * java/io/PrintStream.java: Rewrote from scratch.
- * java/io/DataOutputStream.java: Rewrote from scratch.
- * java/io/BufferedOutputStream.java: Rewrote from scratch.
- * java/io/FilterOutputStream.java: Rewrote from scratch.
- * java/io/ByteArrayOutputStream.java: Rewrote from scratch.
- * java/io/PipedOutputStream.java: Rewrote from scratch.
- * java/io/FileOutputStream.java: Rewrote from scratch.
- * java/io/OutputStream.java: Rewrote from scratch.
- * java/io/DataOutput.java: Rewrote from scratch.
-
-Mon Sep 28 22:59:54 1998 Per Bothner <bothner@cygnus.com>
-
- * prims.cc (_Jv_CheckCast): Add missing ! operator.
-
-Mon Sep 28 15:50:06 1998 Anthony Green <green@cygnus.com>
-
- * configure.in: Add --enable-libjava-debug
-
- * Makefile.am (nat_headers): Add java/lang/Float.h and
- java/lang/Double.h
-
- * acconfig.h: Add DEBUG and HAVE_MEMCPY.
-
- * Makefile.in, configure, include/config.h.in: Rebuilt.
-
-Mon Sep 28 17:05:58 1998 Andrew Haley <aph@korai.cygnus.co.uk>
-
- * java/lang/Float.java: Rewritten
- * java/lang/Double.java: Rewritten
- * java/lang/natFloat.cc: toString() added.
- * java/lang/natDouble.cc: toString() added.
- * java/lang/natDouble.cc: doubleValueOf() added.
- * java/lang/dtoa.c, java/lang/mprec.c, java/lang/mprec.h,
- java/lang/strtod.c: added.
- * ieeefp.h: __sparc added.
- * Makefile.am: java/lang/Float.h and java/lang/Double.h added.
-
-Thu Sep 24 13:30:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h (java::lang): Added
- CloneNotSupportedException.
-
- * java/lang/Object.java (clone): No longer native. Implemented.
- * java/lang/natObject.cc (clone): Removed.
-
-Wed Sep 23 12:03:38 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc: Don't make definitions `extern "C"'.
- (_Jv_RegisterClass): Renamed from registerClass.
- * include/jvm.h (_Jv_ThrowBadArrayIndex): Declare.
- (_Jv_NewArray): Likewise.
- (_Jv_NewMultiArray): Likewise.
- (_Jv_CheckCast): Likewise.
- (_Jv_LookupInterfaceMethod): Likewise.
- (_Jv_CheckArrayStore): Likewise.
- (_Jv_RegisterClass): Likewise.
-
- * acconfig.h (HAVE_FMOD, HAVE_MEMCPY): Removed.
- * configure: Rebuilt.
- * configure.in: Don't check for fmod; it is provided by the fdlibm
- code.
- * prims.cc (fmod): Removed.
-
- * java/lang/natString.cc (charAt): Use _Jv_uint.
- * java/lang/Class.h (class JvField): Use _Jv_ushort.
- * prims.cc (HASH_CHARS): Use _Jv_ushort.
- (equalUtf8Consts): Likewise.
- (internalAddClass): Use _Jv_uint.
- (processClass): Likewise.
- * include/javaprims.h (_Jv_ushort): Renamed from uint16.
- (_Jv_uint): Renamed from uint32.
- (struct _Jv_Utf8Const): Changed members to use new type names.
-
- * configure: Rebuilt.
- * configure.in: Don't check for memcpy. Require memmove and a way
- to get the time.
- * java/lang/natSystem.cc (arraycopy): Removed dead code, and
- #error.
- (currentTimeMillis): Don't use #error.
-
-Tue Sep 22 18:00:16 1998 Andrew Haley <aph@korai.cygnus.co.uk>
-
- * java/lang/Math.java: static member random renamed to random_ to
- avoid conflict with member function of the same name.
- * include/javaprims.h: java.util.Random added.
-
-Tue Sep 22 13:53:14 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-chartables.h: Regenerated.
- * chartables.pl: End COMPACT_CHARACTER #if after fast tables
- printed.
-
-Tue Sep 22 17:17:52 1998 Andrew Haley <aph@tikka.cygnus.co.uk>
-
- * java/lang/Math.java: Rewritten.
- * java/lang/natMath.cc: New file.
- * Files added from fdlibm:
- java/lang/e_acos.c, java/lang/k_sin.c, java/lang/sf_floor.c,
- java/lang/e_asin.c, java/lang/k_tan.c, java/lang/sf_rint.c,
- java/lang/e_atan2.c, java/lang/s_atan.c, java/lang/w_acos.c,
- java/lang/e_exp.c, java/lang/s_ceil.c, java/lang/w_asin.c,
- java/lang/e_fmod.c, java/lang/s_copysign.c, java/lang/w_atan2.c,
- java/lang/e_log.c, java/lang/s_cos.c, java/lang/w_exp.c,
- java/lang/e_pow.c, java/lang/s_fabs.c, java/lang/w_fmod.c,
- java/lang/e_rem_pio2.c, java/lang/s_floor.c, java/lang/w_log.c,
- java/lang/e_remainder.c, java/lang/s_rint.c, java/lang/w_pow.c,
- java/lang/e_scalb.c, java/lang/s_scalbn.c, java/lang/w_remainder.c,
- java/lang/e_sqrt.c, java/lang/s_sin.c, java/lang/w_sqrt.c,
- java/lang/ef_fmod.c, java/lang/s_tan.c, java/lang/wf_fmod.c,
- java/lang/k_cos.c, java/lang/sf_ceil.c,
- java/lang/k_rem_pio2.c, java/lang/sf_fabs.c,
- java/lang/ieeefp.h, java/lang/fdlibm.h
- * Makefile.am: rules added for compiling C files from fdlibm.
-
-Mon Sep 21 15:40:58 1998 Tom Tromey <tromey@cygnus.com>
-
- * chartables.pl: Minor documentation fixes.
-
- * configure: Rebuilt.
- * configure.in: Fixed --help output for --enable-fast-character.
-
-Thu Sep 17 11:03:27 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Recognize --enable-fast-character.
- * acconfig.h (COMPACT_CHARACTER): New define.
- * include/config.h.in: Rebuilt.
- * include/java-chartables.h: New file.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_files): Added natCharacter.o.
- * java/lang/natCharacter.cc: New file.
- * chartables.pl (set_attribute): New function.
- (@attributes, @second_attributes): New globals.
- ($ROMAN_START, $ROMAN_END): Likewise.
- (process_char): Call set_attribute when required.
- (print_char): Just print hex value.
- (print_block): Generate C++ syntax.
- (print_numerics): Likewise.
- (print_single_map): Likewise.
- (print_all_block): Likewise.
- (print_case_table): Likewise.
- (print_fast_tables): New function.
- Generate C++ code suitable for a header file.
- * java/lang/Character.java (table_search): Removed.
- (digit_value): Now native.
- (getNumericValue): Likewise.
- (getType): Likewise.
- Removed all automatically-generated tables.
- (Tamil_Digit_One): Removed.
- (isSpaceChar): Now native.
- (isTitleCase): Likewise.
- (isLowerCase): Likewise.
- (isUpperCase): Likewise.
- (toLowerCase): Likewise.
- (toTitleCase): Likewise.
- (toUpperCase): Likewise.
- (isDefined): Fixed sense of test.
-
-Wed Sep 16 12:00:19 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (equalsIgnoreCase): Removed obsolete
- FIXME comment.
- (regionMatches): Likewise.
-
-Tue Sep 15 14:35:12 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_AllocObject): Call _Jv_InitClass on the class.
-
- * java/lang/Class.h (Object): For now, declare _Jv_AllocString as
- a friend.
- * java/lang/natString.cc (_Jv_AllocString): For now, don't call
- _Jv_AllocObject.
-
- * java/lang/natString.cc (toUpperCase): Declare `ch' as a jchar,
- not a char.
-
- * java/lang/natClass.cc (isAssignableFrom): Handle arrays.
-
-Fri Sep 11 14:01:08 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (instanceof_class): Removed.
- (instanceof_array): Likewise.
- (instanceof): Likewise.
- (_Jv_IsInstanceOf): Use Class::isAssignableFrom.
- (_Jv_CheckCast): Likewise.
- * java/lang/natClass.cc (isAssignableFrom): New method.
- * java/lang/Class.java (isAssignableFrom): Now native.
-
- * include/cni.h (JvThrow): Use `extern inline'.
- (JvAllocObject): Likewise.
- (JvInitClass): Likewise.
-
- * java/lang/natSystem.cc (arraycopy): Only check class of source
- object if not null.
-
- * prims.cc (_Jv_CheckArrayStore): Wrote.
- (_Jv_MonitorEnter): Prefer `JvThrow'.
- Include ArrayStoreException.h.
- (_Jv_CheckCast): Indentation cleanup.
-
-Thu Sep 10 18:59:29 1998 Tom Tromey <tromey@cygnus.com>
-
- * chartables.pl: New file.
- * java/lang/Character.java: Rewrote from scratch.
-
-Fri Sep 18 18:15:58 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/ArithmeticException.java,
- java/lang/ArrayIndexOutOfBoundsException.java,
- java/lang/ArrayStoreException.java,
- java/lang/ClassCastException.java,
- java/lang/ClassNotFoundException.java,
- java/lang/CloneNotSupportedException.java,
- java/lang/Exception.java, java/lang/IllegalAccessException.java,
- java/lang/IllegalArgumentException.java,
- java/lang/IllegalMonitorStateException.java,
- java/lang/IllegalThreadStateException.java,
- java/lang/IndexOutOfBoundsException.java,
- java/lang/InstantiationException.java,
- java/lang/InterruptedException.java,
- java/lang/NegativeArraySizeException.java,
- java/lang/NoSuchMethodException.java,
- java/lang/NullPointerException.java,
- java/lang/NumberFormatException.java,
- java/lang/RuntimeException.java, java/lang/SecurityException.java,
- java/lang/StringIndexOutOfBoundsException.java: Rewritten.
-
- * java/lang/IllegalStateException.java,
- java/lang/NoSuchFieldException.java,
- java/lang/UnsupportedOperationException.java: Created.
-
-Fri Sep 18 15:01:42 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/Integer.java, java/lang/Long.java: Rewritten.
- * java/lang/Byte.java, java/lang/Short.java (decode): Uncommented.
-
-Fri Sep 11 16:49:19 1998 Per Bothner <bothner@cygnus.com>
-
- * prims.cc (JvRunMain): No longer need to call _Jv_InitClass.
-
-Thu Sep 10 12:23:55 1998 Warren Levy <warrenl@cygnus.com>
-
- * Makefile.am (nat_headers): Added StringIndexOutOfBoundsException.h.
-
- * Makefile.in: Rebuilt.
-
- * include/javaprims.h (java::lang): Added
- StringIndexOutOfBoundsException.
-
- * java/lang/String.java: Added header comment and FIXME comment for
- missing constructors/methods.
- (endsWith): Adjusted offset into string to look at just the last chars.
- Commented out undocumented method.
-
- * java/lang/natString.cc: Added includes for
- ArrayIndexOutOfBoundsException.h & StringIndexOutOfBoundsException.h.
- (String::init): Throw StringIndexOutOfBoundsException.
- (String::charAt): Throw StringIndexOutOfBoundsException.
- (String::substring): Throw StringIndexOutOfBoundsException.
- (String::getChars): Throw ArrayIndexOutOfBoundsException.
- (String::getBytes): Throw ArrayIndexOutOfBoundsException.
- (String::compareTo): Return difference/offset between chars/strings.
-
-Tue Sep 8 13:22:33 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/Boolean.java (TYPE): Added comment.
-
- * java/lang/Byte.java (decode): Added - commented out until dependent
- code for Integer is written.
- (compareTo): JDK 1.2 methods written.
- (hashCode): Added comment to note that values have been verified.
-
- * java/lang/Short.java (decode): Added - commented out until dependent
- code for Integer is written.
- (compareTo): JDK 1.2 methods written.
- (hashCode): Added comment to note that values have been verified.
-
- * java/lang/Comparable.java: Created - JDK 1.2 interface.
-
-Fri Sep 4 10:36:35 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h (java::lang): Added VirtualMachineError,
- OutOfMemoryError.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added OutOfMemoryError.h,
- VirtualMachineError.h.
- * prims.cc (_Jv_NewPrimArray): Throw OutOfMemoryError.
- (lookupArray): Likewise.
- (makeUtf8Const): Likewise.
- (_Jv_AllocObject): Likewise.
- (_Jv_NewObjectArray): Likewise.
- Include OutOfMemoryError.h.
-
- * java/io/natFileDescriptor.cc (newstr): Removed. Changed callers
- to use JvNewStringLatin1.
-
- * java/io/io-defs.h: Include java/lang/IOException.h.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added
- ArrayIndexOutOfBoundsException.h,
- ClassFormatError.h,ClassNotFoundException.h,
- ClassCircularityError.h, ClassCastException.h,
- IncompatibleClassChangeError.h, AbstractMethodError.h,
- IllegalAccessError.h, LinkageError.h, Error.h,
- NegativeArraySizeException.h, IOException.h.
- * include/cni.h (SignalError): Removed declaration.
- * java/util/natDate.cc (setTime): Use JvFail, not sorry.
- * java/lang/natObject.cc (clone): Use JvFail, not sorry.
- * java/lang/natClass.cc (getInterfaces): Use JvFail, not sorry.
- (newInstance): Likewise.
- (forName): Likewise.
- * java/io/natFileDescriptor.cc (open_read_write): Use JvFail, not
- sorry.
- (read): Use JvThrow, not SignalError.
- (read): Likewise.
- (write): Likewise.
- (skip): Likewise.
- (close): Likewise.
- (open_read): Likewise.
- (open_write): Likewise.
- (ftell): Likewise.
- (fseek): Likewise.
- (newstr): New function.
- * java/io/natFile.cc (isDirectoryUnchecked): Use JvFail, not
- sorry.
- (lastModifiedUnchecked): Likewise.
- (lengthUnchecked): Likewise.
- * include/javaprims.h (sorry): Removed declaration.
- (java::lang): Added ArrayIndexOutOfBoundsException, LinkageError,
- ClassFormatError, ClassNotFoundException, ClassCircularityError,
- ClassCastException, IncompatibleClassChangeError,
- AbstractMethodError, IllegalAccessError, NegativeArraySizeException.
- * prims.cc (instanceof_array): Use JvFail, not sorry.
- (sorry): Removed.
- Include ArrayIndexOutOfBoundsException.h,
- ClassFormatError.h,ClassNotFoundException.h,
- ClassCircularityError.h, ClassCastException.h,
- IncompatibleClassChangeError.h, AbstractMethodError.h,
- IllegalAccessError.h, NegativeArraySizeException.h.
- (_Jv_ThrowBadArrayIndex): Implemented.
- (JvNewStringUTF): Use JvFail, not sorry.
- (_Jv_FindClass): Likewise.
- (_Jv_NewArray): Likewise.
- (throwException): Removed.
- (getClass): Use JvThrow.
- (processClass): Likewise.
- (_Jv_NewObjectArray): Likewise.
- (_Jv_NewMultiArray): Likewise.
- (_Jv_CheckCast): Likewise.
- (_Jv_LookupInterfaceMethod): Likewise.
- (SignalError): Removed.
- (getClass): Use _Jv_NewStringUtf8Const to create String.
-
- * java/lang/natSystem.cc (arraycopy): Throw
- ArrayIndexOutOfBoundsException, not IndexOutOfBoundsException.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GCJH): Renamed. Now use `gcjh'. Changed all
- users.
- * include/java-array.h: Mention gcjh, not gjavah.
-
- * java/io/natFile.cc (existsUnchecked): Use JvGetStringUTFRegion.
- (canReadUnchecked): Likewise.
- (canWriteUnchecked): Likewise.
- (isFileUnchecked): Likewise.
- * java/io/natFileDescriptor.cc: Don't include cni.h.
-
- * java/lang/Thread.java (run__): Declare.
- * java/lang/natThread.cc (run__): New method, to avoid compiler
- warning.
- (start): Use run__, not run_.
-
- * java/io/io-defs.h: Include cni.h and jvm.h.
-
-Thu Sep 3 18:20:08 1998 Per Bothner <bothner@cygnus.com>
-
- Re-implement java.lang.String, using "COMPACT_STRINGS" representation.
- * prims.cc (JvAllocString, JvNewString, JvNewStringlatin1): Moved
- to natString.cc (with suitable renaming, inlines etc).
- (javaString2CString): Removed. Subsumed by _Jv_GetStringUTFRegion.
- * java/lang/Class.h: Renamed Utf8Const to _Jv_Utf8Const.
- * java/lang/String.h: Removed - now generated using gjavah.
- * java/lang/String.java: Re-written from scratch. Many native methods.
- * java/lang/natDouble.cc, java/util/natDate.cc: #include <cni.h>.
- * java/lang/natString.cc: Many functions re-written for "compact
- strings" representation, or native java.lang.String methods added.
- (Utf8Const2JavaString): Renamed to _Jv_NewStringUtf8Const.
- (_Jv_GetStringUTFLength, _Jv_GetStringUTFRegion): New methods.
- * java/lang/natClass.cc (getName): Use new _Jv_NewStringUtf8Const.
- * java/io/natFileDescriptor.cc: Use new JvGetStringUTFRegion.
- * include/cni.h: Add inline method.
- * include/java-array.h (jobjectArrayjchar): gjavah bug work-around.
- * include/javaprims.h: Moved some stuff frm String.h.
- * include/jvm.h (UTF8_GET, Utf8Const, StringClass): Moved here.
- * Makefile.am (nat_header): Added Character.h and String.h.
- (String.h): Add new rule.
-
-Thu Sep 3 10:28:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * no-threads.cc: Include config.h, cni.h, jvm.h. Don't include
- java-assert.h.
- * posix-threads.cc: Include cni.h, jvm.h.
- * quick-threads.cc: Include cni.h, jvm.h.
- * nogc.cc: Include cni.h, not javaprims.h.
- * java/lang/natFirstThread.cc: Include cni.h, jvm.h.
- * java/lang/natThread.cc: Rearranged #include ordering. Don't
- include java-assert.h.
- * java/lang/natSystem.cc: Include cni.h. Don't include
- java-assert.h.
- * java/lang/natRuntime.cc: Include cni.h. Don't include
- java-assert.h.
- * prims.cc: Rearranged #include ordering. Don't include
- java-array.h or java-assert.h.
- * boehm.cc: Include config.h, cni.h.
- * exception.cc: Include config.h, cni.h.
- * include/jvm.h: Include java-assert.h.
- * include/cni.h: Include java/lang/Object.h. Don't include
- java-threads.h or java-array.h.
-
-Thu Sep 3 16:03:08 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/Boolean.java: Rewritten.
-
-Thu Sep 3 10:28:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natFirstThread.cc (main_func): New typedef.
- (run): Use main_func, not JvPrivThreadStartFunc.
- * include/no-threads.h (JvPrivThreadStartFunc): Use correct
- argument type.
- * include/posix-threads.h (JvPrivThreadStartFunc): Use correct
- argument type.
- * include/quick-threads.h (JvPrivThreadStartFunc): Use correct
- argument type.
-
- Can't throw Java exceptions with C++ `throw':
- * quick-threads.cc (qthrow): Use _Jv_Throw, not throw.
- * java/lang/natThread.cc (join): Use _Jv_Throw, not throw.
- (setPriority): Likewise.
- (sleep): Likewise.
- (start): Likewise.
- (stop): Likewise.
- * java/lang/natSystem.cc (arraycopy): Use _Jv_Throw, not throw.
- * prims.cc (_Jv_MonitorEnter): Use _Jv_Throw, not throw.
-
- Can't catch Java exceptions from C++:
- * java/lang/natThread.cc (finish_): New method.
- (run_): Removed.
- * java/lang/Thread.java (run_): Rewrote in Java.
- (finish_): New native method.
-
-Wed Sep 2 17:30:39 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/Cloneable.java, java/lang/Number.java: Rewritten.
-
- * include/javaprims.h (java::io): Added Serializable.
-
-Wed Sep 2 15:22:00 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/EmptyStackException.java,
- java/util/NoSuchElementException.java: Rewritten.
-
- * java/util/ConcurrentModificationException.java,
- java/util/MissingResourceException.java,
- java/util/TooManyListenersException.java: Created.
-
-Wed Sep 2 13:36:57 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/cni.h (JvThrow): New function.
- * include/javaprims.h (_Jv_Throw): Declare.
-
-Wed Sep 2 14:07:48 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Observable.java: Rewritten.
-
-Wed Sep 2 13:36:57 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (_Jv_MonitorExit): Assert that object is non-null.
- (_Jv_MonitorEnter): Throw NullPointerException if object is null.
- Include NullPointerException.h.
-
-Tue Sep 1 12:07:35 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc (arraycopy): Removed overlapping-copy
- assignability checks. Don't bother using memcpy.
-
- * quick-threads.cc (JvPrivThreadStart): Don't call coop_start.
- (started): Removed.
- * include/quick-threads.h (JvPrivThreadWait): New function.
- * include/no-threads.h (JvPrivThreadWait): New function.
- * include/posix-threads.h (JvPrivThreadWait): New function.
- * prims.cc (JvRunMain): Call JvPrivThreadWait.
-
- * java/lang/natSystem.cc (arraycopy): Do nothing if count is 0.
-
- * java/lang/natSystem.cc (arraycopy): Multiply both src and dst
- offsets by size of type that is being copied.
-
- * java/lang/natThread.cc (start): Don't pass `object' argument to
- JvPrivThreadStart.
- * no-threads.cc (JvPrivThreadStart): Removed `object' argument.
- * posix-threads.cc (JvPrivThreadStart): Removed `object'
- argument.
- * quick-threads.cc (JvPrivThreadStart): Removed `object' argument;
- always pass thread as object.
- * include/quick-threads.h, include/posix-threads.h,
- include/no-threads.h (JvPrivThreadStart): Removed `object'
- argument.
-
-Mon Aug 31 19:11:53 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Dictionary.java: Rewritten.
-
-Mon Aug 31 14:35:55 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/quick-threads.h (JvPrivThreadInitData): Use 0, not NULL.
- (JvPrivThreadDestroy): Likewise.
-
-Mon Aug 31 12:56:01 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/lang/natRuntime.cc (exit): Changed final call to ::exit.
-
-Thu Aug 27 12:24:40 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natSystem.cc: Rewrote from scratch.
- * java/lang/System.java: Rewrote from scratch.
- * java/lang/Class.h (Class): Declare isAssignableFrom.
- * include/javaprims.h (java::lang): Added ArrayStoreException,
- IndexOutOfBoundsException.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added ArrayStoreException.h,
- IndexOutOfBoundsException.h.
- * java/lang/natObject.cc (hashCode): Use _Jv_HashCode.
- * include/jvm.h (_Jv_HashCode): New function.
-
- * java/lang/natThread.cc (suspend): Call checkAccess.
- (resume): Likewise.
- * java/lang/Thread.java (setDaemon): Call checkAccess.
-
-Thu Aug 27 12:24:40 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Runtime.java: Rewrote from scratch.
- * java/lang/natRuntime.cc: Rewrote from scratch.
-
- * nogc.cc (JvPrivGCTotalMemory): New function.
- (JvPrivGCFreeMemory): Likewise.
- (total): New global.
- (JvPrivAllocObj): Increment total.
- (JvPrivAllocArray): Likewise.
- (JvPrivAllocBytes): Likewise.
- * include/jvm.h: Declare JvPrivGCTotalMemory, JvPrivGCFreeMemory.
- * boehm.cc (JvPrivGCTotalMemory): New function.
- (sum_blocks): Likewise.
- (JvPrivGCFreeMemory): Likewise.
-
-Wed Aug 26 12:30:32 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h (java::lang): Added FirstThread.
- * java/lang/natFirstThread.cc: New file.
- * java/lang/FirstThread.java: New file.
- * prims.cc (main_signature): Removed.
- (main_name): Removed.
- #include FirstThread.h.
- * Makefile.in: Rebuilt.
- * Makefile.am (TFRIEND): Removed.
- (java/lang/Thread.h): Likewise.
- (FTFRIEND): New macro.
- (java/lang/FirstThread.h): New target.
- (nat_files): Added natFirstThread.o.
- (nat_headers): Added FirstThread.h.
- * include/jvm.h (_Jv_StartFirstThread): Don't declare.
- * java/lang/natThread.cc (_Jv_StartFirstThread): Removed.
-
- * java/lang/Thread.java (setName): Throw IllegalArgumentException
- if name is null.
- (Thread): Likewise.
-
- * java/lang/natThread.cc (start): Synchronize the thread.
- (stop): Synchronize the thread.
-
- * java/lang/ThreadDeath.java: Rewrote from scratch.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (TGFRIEND): New macro.
- (java/lang/ThreadGroup.h): New target.
- ($(nat_files) prims.o boehm.o nogc.o): Native files depend on the
- native headers.
- ($(javao_files) $(nat_files) prims.o boehm.o nogc.o): Removed.
-
- * nogc.cc: Include config.h.
-
- * java/lang/ThreadGroup.java: Rewrote from scratch.
-
-Tue Aug 25 00:12:54 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Thread.java (checkAccess): Only call in to security
- manager if it exists.
- (Thread): Don't check access when creating the first thread. Add
- this thread to the appropriate ThreadGroup.
-
- * java/lang/natThread.cc (run_): Call uncaughtException method on
- the ThreadGroup.
-
- * java/lang/Runnable.java: Rewrote from scratch.
- * java/lang/Thread.java: Updated copyright comment to correct
- form.
-
-Wed Aug 26 15:16:18 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Random.java: Rewritten.
-
-Wed Aug 26 14:25:39 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * prims.cc (_Jv_NewMultiArray): Need one more slot to store
- trailing 0 in array[].
-
-Wed Aug 26 12:21:06 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.am (AM_MAKEFLAGS): Remove RUNTEST, EXPECT,
- and RUNTESTFLAGS from AM_MAKEFLAGS.
- (SUBDIRS): Conditionally include testsuite.
- * Makefile.in: Rebuilt.
-
-Tue Aug 25 18:14:53 1998 Anthony Green <green@cygnus.com>
-
- * java/lang/Object.h: Include java-assert.h.
-
-Tue Aug 25 17:33:57 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.am: Add testsuite directory.
- * configure.in: Build testsuite/Makefile.
- * Makefile.in, configure: Rebuilt.
-
-Tue Aug 25 00:12:54 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (JvRunMain): Use _Jv_StartFirstThread.
- * include/jvm.h (_Jv_StartFirstThread): Declare.
-
- * include/javaprims.h (java::lang): Added Exception,
- RuntimeException.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added NullPointerException.h,
- InterruptedException.h, IllegalArgumentException.h, Exception.h,
- Throwable.h, RuntimeException.h, IllegalThreadStateException.h.
- (java/lang/Thread.h): New target.
- (TFRIEND): New macro
-
- * include/java-assert.h (JvFail): Use 0 and not NULL.
-
- * posix-threads.cc (JvPrivThreadStart): Use getPriority() method
- instead of assuming we are a friend of Thread.
- * quick-threads.cc (JvPrivThreadStart): Use isDaemon() method
- instead of assuming we are a friend of Thread.
-
-Mon Aug 24 15:58:36 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc: Rewrote from scratch.
- * java/lang/Thread.java: Rewrote from scratch.
- * prims.cc (JvRunMain): Use new Thread constructor.
- * include/javaprims.h (java::lang): Added InterruptedException.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added java/lang/Thread.h.
- * java/lang/Thread.h: Removed.
- * quick-threads.cc (JvPrivThreadStart): Added `data' argument.
- * no-threads.cc (JvPrivThreadStart): Added JvPrivThread_t
- argument.
- * posix-threads.cc (JvPrivThreadJoin): Removed.
- (JvPrivThreadInitData): Don't initialize join_mutex or join_cond.
- (really_start): Don't notify join_cond.
- (JvPrivThreadStart): Added `data' argument.
- * include/no-threads.h (JvPrivThreadInterrupt): Removed.
- (JvPrivThreadJoin): Likewise.
- Use JvFail instead of sorry.
- (JvPrivThreadSuspend): Removed.
- (JvPrivThreadResume): Removed.
- * include/quick-threads.h (JvPrivThreadInterrupt): Removed.
- (JvPrivThreadJoin): Likewise.
- (JvPrivThreadSuspend): Use JvFail.
- (JvPrivThreadResume): Likewise.
- (JvPrivThreadSuspend): Removed.
- (JvPrivThreadResume): Likewise.
- * include/posix-threads.h (JvPrivThreadInterrupt): Removed.
- (JvPrivThread_t): Removed join_mutex, join_cond.
- Use JvFail instead of sorry.
- (JvPrivThreadSuspend): Removed.
- (JvPrivThreadResume): Likewise.
-
-Tue Aug 25 12:50:13 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Observer.java: Rewritten
- * java/util/Enumeration.java: Rewritten
-
-Tue Aug 25 11:33:54 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/StringTokenizer.java: Rewritten
- * java/util/Stack.java: Added COPYRIGHT-TBD comment
- * java/util/Vector.java: Added COPYRIGHT-TBD comment
- * java/io/Serializable.java: Added COPYRIGHT-TBD comment
-
-Fri Aug 21 10:14:22 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-assert.h (JvFail): Call _Jv_Abort even when DEBUG
- not defined.
-
- * no-threads.cc (JvPrivThreadStart): Use JvAssert.
- Include java-assert.h.
- * include/java-assert.h: New file.
- * prims.cc (_Jv_Abort): New function.
- Include java-assert.h, not assert.h.
- (_Jv_MonitorExit): Use JvAssert.
- (resolveConstants): Likewise.
- (processClass): Likewise.
- (JvRunMain): Assert that method is found.
-
- * configure: Rebuilt.
- * configure.in: Check for test subdir.
- * Makefile.in: Rebuilt.
- * Makefile.am (SUBDIRS): Conditional on TESTSUBDIR.
-
- * prims.cc (JvRunMain): Use NORM_PRIORITY.
- * java/lang/Thread.h (Thread): Added NORM_PRIORITY.
-
- * prims.cc (resolveConstants): Removed unused variables.
- (processClass): Likewise.
-
- * include/quick-threads.h (JvPrivThreadCurrent): Use
- coop_getspecific.
- * quick-threads.cc (destroy_data): New function.
- (JvPrivInitThreads): Create key.
- (JvPrivThreadKey): New global.
- (JvPrivThreadStart): Use coop_setspecific.
-
- * include/quick-threads.h, include/posix-threads.h,
- include/no-threads.h, no-threads.cc, quick-threads.cc,
- posix-threads.cc, nogc.cc, boehm.cc: Added copyright comment.
-
-Thu Aug 20 10:57:30 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/no-threads.h (JvPrivThreadInitData): Don't set
- JvPrivOnlyThread.
-
- * include/quick-threads.h (JvPrivCondWait): coop function now
- takes microseconds.
- (JvPrivThreadJoin): Likewise.
-
- * java/lang/Thread.h (Thread): Updated declaration of
- JvPrivThreadStart.
- * include/quick-threads.h, include/posix-threads.h: Updated
- declaration of JvPrivThreadStart.
- * include/no-threads.h (JvPrivThreadStart): Changed definition
- into declaration.
- * no-threads.cc (JvPrivThreadStart): Removed `data' argument.
- * quick-threads.cc (JvPrivThreadStart): Removed `data' argument.
- * posix-threads.cc (JvPrivThreadStart): Removed `data' argument.
-
-Wed Aug 19 14:53:59 1998 Tom Tromey <tromey@cygnus.com>
-
- * quick-threads.cc (qthrow): New function.
- (JvPrivInitThreads): New function.
- (started): New global.
- (JvPrivThreadStart): Call coop_start if required.
- * include/quick-threads.h (JvPrivThreadCancel): Implement.
- (JvPrivThreadDestroy): Likewise.
- (JvPrivInitThreads): Removed.
- * include/posix-threads.h (JvPrivThreadCancel): Added error
- argument.
- * java/lang/natThread.cc (stop_): Pass exception to
- JvPrivThreadCancel.
-
-Tue Aug 18 12:58:22 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/javaprims.h (java::lang): Added
- IllegalArgumentException, IllegalThreadStateException, Math,
- NullPointerException, ThreadDeath.
- (java::util): Added Enumeration.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added java/lang/ThreadGroup.h.
-
- * java/lang/ThreadGroup.java (ThreadGroup): No-args constructor
- now public.
- (threadsv): Renamed from threads to avoid clash in C++ header.
- (groupsv): Likewise.
- * include/no-threads.h (JvPrivThreadStart): Removed.
- * no-threads.cc (JvPrivThreadStart): New function.
- * java/lang/Thread.java (Thread): New constructor for internal use.
- * java/lang/Thread.h (Thread): Declare JvRunMain as friend.
- (Thread): Declare constructor.
- * prims.cc (JvRunMain): Create the initial Thread and
- ThreadGroup.
- Include <java/lang/Thread.h> and <java/lang/ThreadGroup.h>.
- * posix-threads.cc (JvPrivThreadStart): Added `thread' argument.
- Removed `daemon' argument.
-
- * prims.cc (JvRunMain): Call _Jv_InitializeSyncMutex.
- * java/lang/Object.h (Object): Declare _Jv_InitializeSyncMutex as
- a friend.
- * java/lang/natObject.cc (_Jv_InitializeSyncMutex): New function.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Include THREADINCS.
-
- * configure: Rebuilt.
- * configure.in: Recognize `qt' as a threads package.
-
-Thu Aug 20 12:42:32 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Stack.java (pop): Null out topmost node for robustness.
-
-Thu Aug 20 12:30:30 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Stack.java: Rewritten.
- * java/util/Vector.java (isEmpty): Simplified expression.
-
-Wed Aug 19 18:02:19 1998 Warren Levy <warrenl@cygnus.com>
-
- * prims.cc (_Jv_NewObjectArray): Renamed from JvNewObjectArray.
- (soft_anewarray): Removed, _Jv_NewObjectArray used instead.
-
- * include/java-array.h (JvNewObjectArray): Created inline to
- _Jv_NewObjectArray.
-
- * java/lang/Class.h (_Jv_NewObjectArray): Renamed from
- JvNewObjectArray.
-
-Wed Aug 19 14:12:02 1998 Warren Levy <warrenl@cygnus.com>
-
- * java/util/Vector.java: Rewritten.
- * java/io/Serializable.java: Created.
-
-Fri Aug 14 10:31:54 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/Float.java (NEGATIVE_INFINITY, POSITIVE_INFINITY):
- Infinity is 1/0, not 1/1.
-
- * boehm.cc (JvPrivAllocArray): Use GC_generic_malloc.
-
- * configure: Rebuilt.
- * configure.in: Removed duplicate AC_ARG_WITH.
-
-Thu Aug 13 14:51:47 1998 Warren Levy <warrenl@cygnus.com>
-
- * prims.cc (_Jv_ThrowBadArrayIndex): Renamed from
- soft_badarrayindex.
- (_Jv_InitClass): Renamed from soft_initialise_class.
- (_Jv_NewMultiArray): Renamed from soft_multianewarray.
- (_Jv_CheckCast): Renamed from soft_checkcast.
- (_Jv_LookupInterfaceMethod): Renamed from soft_lookupinterfacemethod.
- (_Jv_CheckArrayStore): Renamed from soft_checkarraystore.
- (JvRunMain): Call JvInitClass instead of soft_initialise_class.
- * include/cni.h (JvInitClass): New function.
- (_Jv_InitClass): Renamed from soft_initialise_class.
-
-Wed Aug 12 10:07:04 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (CXX): Don't set.
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CXXFLAGS): New macro.
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(javao_files) $(nat_files) prims.o boehm.o
- nogc.o): New target.
-
- * boehm.cc (mark_obj): Update PUSH_CONTENTS call for new Boehm
- GC.
- (mark_array): Likewise.
-
-Tue Aug 11 11:44:53 1998 Per Bothner <bothner@cygnus.com>
-
- * java/lang/Class.h (JvMethod): Removed some unused fields.
- (JvField.info): Removed unused idx union variant.
-
-Mon Aug 10 15:00:14 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (makeUtf8Const): Mask off high bits of hash value to
- match compiler.
-
-Mon Aug 3 16:13:54 1998 Per Bothner <bothner@cygnus.com>
-
- * configure.in, configure (CXX): Add -fvtable-thunks.
-
-Thu Jul 30 14:34:47 1998 Per Bothner <bothner@cygnus.com>
-
- * java/lang/Object.java (finalize): Move first.
- * java/lang/Object.h (_JvObjectPrefix): New dummy base class.
- (Object): Re-arrange order to match Object.java.
-
-Tue Jul 28 21:42:16 1998 Per Bothner <bothner@cygnus.com>
-
- * prims.cc (hashUtf8String): Fix - use new JavaSoft specification.
- * java/lang/natString.cc (hashChars): Likewise.
-
- * prims.cc (RuntimeClass): New macro.
- (JvRunMain): Do soft_initialise_class of RuntimeClass before exit.
-
-Mon Jul 27 22:20:10 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_MAKEFLAGS): New macro.
-
-Fri Jul 24 11:21:24 1998 Tom Tromey <tromey@cygnus.com>
-
- * nogc.cc: Include <javaprims.h>.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GJAVAH): gjavah no longer in java subdir.
-
-Thu Jul 23 11:38:40 1998 Tom Tromey <tromey@cygnus.com>
-
- * exception.cc (terminate): Removed.
- (unexpected): Removed.
-
- * configure: Rebuilt.
- * configure.in: Handle case where target subdir is ".".
-
- * configure: Rebuilt.
- * configure.in: Compute COMPPATH based on --with-target-subdir
- option. Added --with-target-subdir and --with-cross-host. Use
- --with-cross-host to determine when a cross compiler is in use.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GJAVAH): Include COMPPATH.
- * configure: Rebuilt.
- * configure.in: Subst COMPPATH.
-
-Mon Jul 20 16:13:43 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (lockMutex): Removed.
- (unlockMutex): Likewise.
- (processClass): Lock the class using a JvSynchronize object.
-
-Fri Jul 17 11:27:48 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natString.cc (gc_calloc_fixed): Removed.
- (gc_free_fixed): Removed.
- (rehash): Use JvPrivAllocBytes, not gc_calloc_fixed; don't bother
- freeing old value of strhash.
-
- * exception.cc (_Jv_type_matcher): Cast first argument to
- _Jv_IsInstanceOf.
-
-Thu Jul 16 14:51:44 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-array.h (jstringArray): New type.
- * java/lang/natSystem.cc (setProperty): Removed.
- (initProperties): Directly call JvNewStringLatin1 for arguments.
- * java/util/natDate.cc: Include java/util/Date.h, not
- java-util.h.
- (setTime): Removed.
- * java/io/FileDescriptor.java (available): No longer static.
- * java/lang/natDouble.cc (Double): Removed class definition.
- * include/javaprims.h (java::lang::Number): Declare.
- (java::lang::NumberFormatException): Likewise.
- (java::io::FilenameFilter): Likewise.
- (java::lang::Character): Likewise.
- (java::lang::Error): Likewise.
- (java::lang::SecurityManager): Likewise.
- (java::util::Vector): Likewise.
- (java::io::FileNotFoundException): Likewise.
- (java::io::IOException): Likewise.
- (java::lang::NativeLang): Likewise.
- (java::lang::UnsatisfiedLinkError): Likewise.
- (java::util::StringTokenizer): Likewise.
- (java::io::InputStream, java::io::OutputStream): Likewise.
- (java::io::PrintStream, java::lang::SecurityException): Likewise.
- (java::util::Hashtable): Likewise.
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_headers): Added java/lang/Double.h,
- java/lang/Number.h, java/lang/System.h, java/lang/Runtime.h.
- (MOSTLYCLEANFILES): Added nat_headers.
- * include/jvm.h: Moved many defines, declarations, and functions
- to java/lang/Class.h.
- (struct JvSyncInfo): Moved to java/lang/Object.h.
- (UTF8_GET): Moved to java/lang/String.h.
-
-Wed Jul 15 09:02:31 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/io-defs.h: Don't include java-io.h.
- * include/java-io.h: Removed.
- * include/javaprims.h: Include java::io.
-
-Tue Jul 14 17:04:26 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-io.h (File): Removed
- (FileDescriptor): Likewise.
-
- * java/io/io-defs.h: Include java/io/File.h and
- java/io/FileDescriptor.h.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (GJAVAH): New macro.
- (.class.h): New rule.
- (SUFFIXES): Added .h.
- (nat_headers): New macro.
- ($(nat_headers)): New target.
- (BUILT_SOURCES): Added nat_headers.
-
- * include/java-util.h: Removed.
-
-Fri Jul 3 10:17:14 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-io.h: Changed to avoid java-lang.h.
- * java/lang/natThread.cc: Include java/lang/Thread.h, not
- java-lang.h.
- * java/lang/natSystem.cc: Include java/lang/System.h, not
- java-lang.h.
- * java/lang/natString.cc: Include java/lang/String.h, not
- java-lang.h.
- * java/lang/natRuntime.cc: Include java/lang/Runtime.h, not
- java-lang.h.
- * java/lang/natClass.cc: Include java/lang/Class.h, not
- java-lang.h.
- * java/lang/natDouble.cc: Include java/lang/Object.h, not
- java-lang.h.
- * java/lang/natObject.cc: Include java/lang/Object.h, not
- java-lang.h.
- * exception.cc: Don't include java-lang.h.
- * posix-threads.cc: Include java/lang/Thread.h, not java-lang.h.
- * no-threads.cc: Include java/lang/Thread.h, not java-lang.h.
- * nogc.cc: Don't include java-lang.h.
- * boehm.cc: Include java/lang/Class.h, not java-lang.h.
- * prims.cc (processClass): Don't use `init_type'; just cast to
- type directly.
- Include java/lang/Class.h and jvm.h, not java-lang.h.
- (JvAllocObject): Wrote single-argument version.
- (PrimClass): Inherit from Class.
- (initPrimClass): Removed.
- * include/java-lang.h: Removed.
- * include/jvm.h: Declare struct _dispatchTable.
- * include/cni.h: Don't declare _Jv_MonitorEnter,
- _Jv_MonitorExit, struct _dispatchTable.
- * include/javaprims.h: Moved all typedefs here, from cni.h.
- * java/lang/Class.h: New file.
- * include/java-array.h: New file.
- * java/lang/Object.h: New file.
-
- * prims.cc (classFromSig): Now static.
-
-Wed Jul 1 12:28:48 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/cni.h: Don't mention soft_new.
- * include/java-lang.h (Object): Don't mention soft_new. Mention
- _Jv_NewPrimArray, not newPrimArray.
- * prims.cc (soft_new): Removed.
- (_Jv_NewArray): Renamed from soft_newarray.
- (soft_anewarray): Use JvNewObjectArray.
- (newArray): Likewise.
- (newRefArray): Removed.
- (_Jv_NewPrimArray): Renamed from newPrimArray.
- (equalUtf8Consts): Now static.
- (soft_instanceof): Removed.
- * java/lang/natDouble.cc (doubleToString): Now static.
-
- * java/lang/natDouble.cc (java_lang_Double_doubleToLongBits,
- java_lang_Double_longBitsToDouble, java_lang_Double_toString):
- Removed.
-
-Tue Jun 30 10:54:57 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-lang.h: Renamed functions to _Jv_MonitorEnter and
- _Jv_MonitorExit.
- * include/cni.h: Renamed functions to _Jv_MonitorEnter and
- _Jv_MonitorExit.
- * include/no-threads.h (JvPrivMutexLock): Always return -1.
- (JvPrivMutexUnlock): Likewise.
- * prims.cc (_Jv_MonitorEnter): Renamed from soft_monitorenter.
- Return value now jint.
- (_Jv_MonitorExit): Renamed from soft_monitorexit. Return value
- now jint.
-
- * Makefile.in: Rebuilt.
- * Makefile.am: Don't allow `jV' names.
- (maintainer-check): Depend on libjava.a.
- * exception.cc (_Jv_eh_free): Renamed from __jV_eh_free.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (NM): New macro.
- (maintainer-check): New target.
-
- * include/posix-threads.h (_MIT_POSIX_THREADS): Removed.
-
- * configure: Rebuilt.
- * configure.in: Use --enable-threads, not --enable-gc. Fix
- documentation for --enable-threads. Changed option to work like
- identical option in gcc/configure.
-
-Mon Jun 29 10:44:29 1998 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (mark_array): Use JvGetArrayLength.
-
-Thu Jun 25 11:56:21 1998 Per Bothner <bothner@cygnus.com>
-
- * exception.cc: New file (mostly written by Andrew MacLeod),
- exception handling support.
- * Makefile.am (libjava_a_SOURCES), Makefile.in: Add exception.cc.
- Remove -fexceptions - it is now the default.
-
- * prims.cc (JvIsInstanceOf): Renamed to _Jv_IsInstanceOf.
- (JvAllocObject): Renamed to _Jv_AllocObject.
- (soft_athrow): Removed. Replaced by _Jv_Throw in exception.cc.
- (loadClass): Renamed to _Jv_FindClass.
- * include/cni.h (JvIsInstanceOf, JvAllocObject). Make into
- inline methods that call _Jv_IsInstanceOf and _Jv_AllocObject.
- * include/java-lang.h (JvGetArrayLength): New CNI function.
- * include/jvm.h (_Jv_FindClass): Added declaration.
-
- * java/lang/natString.cc: More implementation if COMPACT_STRINGS.
-
-Wed Jun 24 16:41:30 1998 Per Bothner <bothner@cygnus.com>
-
- * java/lang/natClass.cc (getName): Add implementation.
- * java/lang/Throwable.java (printStackTrace): Handle missing backtrace.
-
-Tue Jun 23 15:56:24 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (.class.o): Added -fexceptions.
-
-Mon Jun 15 14:54:06 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Don't check for __nanosleep.
- * posix-threads.cc (nanosleep): Never define.
-
-Sun Jun 14 22:37:23 1998 Tom Tromey <tromey@cygnus.com>
-
- * posix-threads.cc (JvPrivCondWait): Fixed computation of
- timespec.
-
-Thu Jun 11 10:51:44 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natThread.cc (enumerate): Uncommented.
- * java/lang/Thread.java (interrupted_): Renamed from `interrupt_'.
- (interrupt): Call it.
-
-Wed Jun 10 15:57:16 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (GCLIBS): Use `-lgc' so gjavac can recognize it.
-
-Mon Jun 8 12:04:11 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/no-threads.h (JvPrivThreadInterrupt): New method.
- * include/java-lang.h (Thread): Added `interrupted_' method.
- * java/lang/Thread.java (interrupted_): New method.
- * java/lang/natThread.cc (join): Possibly throw interrupted
- exception after join finishes.
- (interrupted_): New method.
- * posix-threads.cc (JvPrivThreadInitData): Initialize join_mutex,
- join_cond.
- (JvPrivThreadJoin): New function.
- (really_start): Notify all threads waiting for this thread.
- (struct starter): Added `data' member.
- (JvPrivThreadStart): Set it.
- * include/posix-threads.h (JvPrivThread_t): Added join_mutex,
- join_cond.
- (JvPrivThreadJoin): No longer inline.
- (JvPrivThreadInterrupt): New function.
-
- * include/no-threads.h (JvPrivThreadSleep): Removed.
- * posix-threads.cc (JvPrivThreadSleep): Removed.
-
-Fri Jun 5 13:51:25 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (THREADOBJS): Initialize to no-threads.o in
- no-threads case.
- * posix-threads.cc (key): New global.
- (JvPrivInitThreads): New function.
- (really_start): Set thread-specific data to point to object.
- (JvPrivThreadStart): Added `daemon' argument.
- (JvPrivThreadSleep): Added `data' argument.
- * include/posix-threads.h (JvPrivInitThreads): Removed
- implementation.
- (JvPrivThreadCurrent): New function.
- * include/no-threads.h (JvPrivThreadInitData): Initialize
- JvPrivOnlyThread. Added `thread' argument.
- (JvPrivThreadCurrent): New function.
- (JvPrivThreadStart): Added `daemon' argument.
- * no-threads.cc: New file.
- * java/lang/natThread.cc (init_data): New function.
- (isAlive): Removed.
- (start): Set `alive' member.
- (stop_): Clear `alive' member.
- (destroy): Likewise.
- (currentThread): Implemented.
- (start): Pass `daemon' argument to JvPrivThreadStart.
- (sleep): Rewrote.
- * include/java-lang.h (Thread): Added `alive', `tsync' members.
- (Thread): Added `init_data' method.
- * java/lang/Thread.java (alive, data): New instance variables.
- (init_data): New private method.
- (isAlive): No longer native.
-
-Thu Jun 4 14:09:32 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-lang.h (JvRunMain): Declare.
- * include/jvm.h (JvPrivInitGC): Revert to C++ linkage.
- * prims.cc (JvRunMain): New function.
- (main_signature, main_name): New globals.
-
- * boehm.cc (mark_array): Use `elements' function and not
- operator[] on jarray.
-
- * posix-threads.cc: Include <config.h>. Define nanosleep if
- required.
-
- * configure: Rebuilt.
- * configure.in: Check for _nanosleep.
-
- * configure: Rebuilt.
- * configure.in: Check for pthread_mutexattr_settype.
-
- * include/cni.h (class JvSynchronize): New class.
- * java/lang/Thread.java (sleep): Throws InterruptedException.
- (join): Throws InterruptedException.
- (resume): Not native.
- (resume_): New method.
- (start): Now synchronized.
- (stop_): New method.
- (Thread): Synchronize when accessing threadNumber.
- (misc): Removed.
- * java/lang/natThread.cc (throwException): New macro.
- (sleep): Throw InterruptedException.
- (resume_): Renamed.
- (stop_): Renamed.
- * include/java-lang.h (Runtime): Added interrupted().
-
- * boehm.cc (call_finalizer): Correctly initialize jobj.
- * include/java-lang.h (Runtime): Added getRuntime() and exit().
-
- * java/lang/natSystem.cc (currentTimeMillis): Use #elif, not
- `#elseif'.
-
- * configure: Rebuilt.
- * configure.in: Added support for --disable-threads.
- * include/no-threads.h: New file.
-
- * acconfig.h (HAVE_PTHREAD_MUTEXATTR_INIT): New macro.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (EXTRA_libjava_a_SOURCES): Added posix-threads.cc.
- (libjava_a_DEPENDENCIES): Added THREADOBJS.
- (libjava_a_LIBADD): Added THREADOBJS.
- * configure: Rebuilt.
- * configure.in: Added --with-threads option.
- * posix-threads.cc: New file.
- * include/posix-threads.h: New file.
- * include/java-lang.h (Object): Added static member sync_mutex,
- member sync_info, method init_mutex.
- (struct JvSyncInfo): New struct.
- Include "java-threads.h".
- * prims.cc (soft_monitorenter): Wrote.
- (soft_monitorexit): Likewise.
- * java/lang/natObject.cc (init_mutex): New method.
- (notify): Wrote.
- (notifyAll): Wrote.
- (wait): Wrote.
- (sync_mutex): Define.
- Include "java-threads.h".
-
-Tue Jun 2 15:24:33 1998 Per Bothner <bothner@cygnus.com>
-
- * include/java-lang.h (JvPrivInitGC): Make extern "C".
- * include/jvm.h (JvConvertArgv, JvNewObjectArray): Likewise.
-
-Mon Jun 1 11:21:34 1998 Per Bothner <bothner@cygnus.com>
-
- * include/cni.h (jbyte etc): Re-define using __java_byte etc.
- Added extern "Java" in places to tell G++ Object is a "Java" type.
- Other minor renaming and fixes.
- * include/java-io.h (FileDescriptor): Add friend class declarations.
- G++ no longer allows non-Java types in method parameters and results
- of Java classes. Converted most offending methods to friends.
- * java/lang/natDouble.cc (Double::toString): Rename to doubleToString.
- * java/lang/natSystem.cc (setProperty): Make friend.
- * java/lang/natString.cc, include/java-lang.h (String): Rename
- methods findInternSlot to __JvStringFindSlot and __JvStringGetSlot.
- * include/java-lang.h (JArray): Remove getData and eoprator[].
- Add elements friend function instead.
- * java/lang/natSystem.cc (arraycopy): Use elements function.
- * java/io/natFileDescriptor.cc (read, write): Likewise.
- * include/java-lang.h (Object): Remove unused make method.
- (System::setProperty(char*,char*)): Turn into friend function.
- (Class): Rename newObject by JvAllocObject.
- * prims.cc: Update to use JvAllocObject, and elements.
-
- * java/lang/natDouble.cc: Fix double -> jdouble.
-
-Wed May 20 16:50:06 1998 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am (INCLUDES): Add -Iinclude (to get config.h).
-
-Mon May 18 13:46:02 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/lang/natRuntime.cc (finalize_on_exit): Define.
- * include/java-lang.h (Runtime): finalize_on_exit and
- runFinalizersOnExit now static.
- * java/lang/Runtime.java (runFinalizersOnExit): Now static, to
- match JDK 1.2b3.
- (finalize_on_exit): Now static.
-
- * boehm.cc (mark_obj): Get class using getClass() method on
- object.
- (_dispatchTable): Removed.
-
-Mon May 11 15:26:52 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptor.cc (open_read): Only call open if
- HAVE_OPEN defined.
- (open_write): Likewise.
-
- * Makefile.in: Rebuilt.
- * Makefile.am ($(nat_files)): Depend on config.h.
-
-Thu May 7 16:22:00 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (ObjectClass): Now a macro; updated for new class name
- mangling scheme.
- (StringClass): Likewise.
- (ClassClass): Likewise.
-
-Wed May 6 00:26:44 1998 Tom Tromey <tromey@cygnus.com>
-
- * java/io/natFileDescriptor.cc (available): Do nothing unless
- HAVE_SELECT defined.
- * java/util/natDate.cc (setTime): Conditional on
- HAVE_GETTIMEOFDAY.
- (toString): Conditional on HAVE_TIME.
- * aclocal.m4, configure: Rebuilt.
- * acinclude.m4: New file.
- * configure.in: Don't actually call AM_EXEEXT. Call
- AC_CANONICAL_HOST. Use LIB_AC_PROG_CC and LIB_AC_PROG_CXX. Added
- --with-target-subdir option. Check for select and open
- functions.
-
-Tue May 5 00:10:45 1998 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (JvPrivRegisterFinalizer): Changed interface.
- (call_finalizer): Likewise.
- * nogc.cc (JvPrivRegisterFinalizer): Changed interface.
- * prims.cc (newObject): Pass actual method pointer to
- JvPrivRegisterFinalizer.
- * include/jvm.h (JvPrivFinalizerFunc): New typedef.
- (JvPrivRegisterFinalizer): Changed interface.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (MOSTLYCLEANFILES): New macro.
- (CLEANFILES): Removed javao_files.
-
-Fri May 1 22:52:24 1998 Tom Tromey <tromey@cygnus.com>
-
- * nogc.cc: New file.
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Use GCINCS, not paths to boehm-gc.
- (EXTRA_libjava_a_SOURCES): New macro.
- (libjava_a_SOURCES): Removed boehm.cc.
- (libjava_a_DEPENDENCIES): Added GCOBJS.
- (libjava_a_LIBADD): Likewise.
- * configure: Rebuilt.
- * configure.in: Added code for --enable-gc=TYPE.
-
-Thu Apr 30 14:54:00 1998 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (mark_array): Don't further dereference pointer from
- array.
-
- * boehm.cc: Include <boehm-config.h>, not <private/config.h>.
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): Removed -I for boehm-gc/include; added
- one for boehm-gc build directory.
-
-Wed Apr 29 09:45:19 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/java-lang.h (finalize_on_exit): New instance variable in
- java::lang::Runtime.
- (runFinalizersOnExit): New method.
- * java/lang/Runtime.java (finalize_on_exit): New instance
- variable.
- (runAllFinalizers_): New private method.
- (runFinalizersOnExit): New method.
- * boehm.cc (JvPrivRunFinalizers): New function.
- (JvPrivRunAllFinalizers): Likewise.
- (JvPrivRunGC): Likewise.
- * java/lang/natRuntime.cc: Include "jvm.h".
- (gc): Call JvPrivRunGC.
- (runFinalization): Call JvPrivRunFinalizers.
- (runFinalizersOnExit): New method.
- (exit_): Call JvPrivRunAllFinalizers if required.
- * include/jvm.h: Declare JvPrivRunFinalizers,
- JvPrivRunAllFinalizers, JvPrivRunGC.
-
-Tue Apr 28 15:06:50 1998 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc (JvPrivRegisterFinalizer): New function.
- (call_finalizer): Likewise.
- * include/jvm.h: Declare JvPrivRegisterFinalizer.
- * prims.cc (finalize_name): New global.
- (newObject): Just call other newObject.
- (newObject): Register finalizer if it exists.
-
-Mon Apr 27 12:47:03 1998 Tom Tromey <tromey@cygnus.com>
-
- * prims.cc (gc_malloc): Removed.
- (makeUtf8Const): Use JvPrivAllocBytes.
- (lookupArray): Likewise.
- (newPrimArray): Likewise.
- (JvNewObjectArray): Use JvPrivAllocArray.
- (newObject): Use JvPrivAllocObj.
- (newObject): Likewise.
- Changed Method -> JvMethod everywhere.
- Changed Field -> JvField everywhere.
- * include/java-lang.h (Object): Changed type of `fields' to
- JvField*.
- (jmethodID, jfieldID): New typedefs.
- (Object): JvGetFirstInstanceField and JvNumInstanceFields now
- friends.
- * include/jvm.h (struct JvMethod): Renamed from Method, and moved
- from java-lang.h.
- (METHOD_NATIVECODE): Moved from java-lang.h.
- (class JvField): New class.
- (JvGetFirstInstanceField): New function.
- (JvFieldIsRef): Likewise.
- (JvGetObjectField): Likewise.
- (JvNumInstanceFields): Likewise.
-
-Thu Apr 23 16:42:11 1998 Tom Tromey <tromey@cygnus.com>
-
- * boehm.cc: New file.
- * Makefile.in: Rebuilt.
- * Makefile.am (libjava_a_SOURCES): Added boehm.cc.
- (INCLUDES): Added -I options to find boehm-gc files.
-
-Wed Apr 29 15:11:37 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in (CXX): Put -fno-rtti here and not in CXXFLAGS.
-
- * Makefile.in: Rebuilt.
- * Makefile.am (nat_files): New macro.
- (libjava_a_DEPENDENCIES): Use it.
- (libjava_a_LIBADD): Likewise.
- ($(nat_files)): New static pattern rule.
- (class_files): Run separate find to find .class files.
- (javao_files): Compute based on class_files.
- (BUILT_SOURCES): New macro.
-
-Thu Apr 23 16:42:11 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.am (java_files): New macro.
- (class_files): Likewise.
- (javao_files): Likewise.
- (libjava_a_DEPENDENCIES): Include $(javao_files).
- (libjava_a_LIBADD): Likewise.
- (classes.stamp): Depend on $(java_files); only recompile changed
- files.
- (here): New macro.
- (CLEANFILES): Don't run find; use macros. Don't mention
- libjava.a.
- (.class.o): New target.
- (compiled.stamp): Removed.
-
-Thu Apr 23 14:17:43 1998 Per Bothner <bothner@cygnus.com>
-
- * java/io/{Reader,InputStreamReader,FileReader,BufferedReader,
- LineNumberReader}>java: Newly-implemented standard classes.
-
-Thu Apr 23 14:02:04 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (compiled.stamp): Use $(CC), not $(GCC).
-
- * Makefile.in: Rebuilt.
- * Makefile.am (hack): New macro.
- (libjava_a_LIBADD): Use $(hack) to work around automake oddity.
-
-Wed Apr 22 16:49:57 1998 Tom Tromey <tromey@cygnus.com>
-
- * include/config.h.in: New file.
- * include/config.h: Removed.
- * acconfig.h: New file.
- * Makefile.am (AR, ARFLAGS, JAVAC, GCC, CXX, CXXFLAGS): Removed.
- (lib_LIBRARIES, libjava_a_SOURCES, libjava_a_DEPENDENCIES,
- libjava_a_LIBADD): New macros.
- (INCLUDES): New macro.
- (prims.o): Removed.
- (.cc.o): Removed.
- (SUFFIXES): Removed.
- (all): Removed.
- (libjava.a): Removed.
-
- * configure: Rebuilt.
- * configure.in: Call AC_PROG_CC, AC_PROG_CXX, AC_PROG_RANLIB.
- Look for headers and functions we require. Create
- include/config.h.
-
-Mon Apr 20 22:25:00 1998 Per Bothner <bothner@cygnus.com>
-
- * prims.cc (instance_class, instanceof, JvIsInstanceOf, JvConvertArgv,
- soft_instanceof, newObject, JbNewObjectArray, soft_checkcast,
- soft_lookupinterfacemethod): New functions.
- (PrimClass): Actually initialize the primitive classes.
- (Utf8Const2JavaString): Moved to java/lang/natString.cc.
-
- * include/java-util.h: Removed java::util definition.
- * include/cni.h: Moved java::util here and added Properties.
- Added more function prototypes.
- * include/java-lang.h: Added mroe methods and friend declarations.
- * include/config.h (HAVE_GETTIMEOFDAY, HAVE_TIME): Added.
- * include/jvm.h (strLengthUtf8): Add declaration.
-
- * java/lang/{Integer,Long,Boolean,Character,Float,Double}.java (TYPE):
- New static field.
- * java/lang/{Byte,Short,Void}.java: New classes.
- * java/lang/Character.java (isJavaIdentifierStart,
- JavaIdentifierPart): New static methods.
- * java/lang/Number.java (byteValue, shortValue): New methods.
-
- * java/lang/String.java (intern, hashCode): Make native.
- * java/lang/natString.cc: New file. Handle the string pool.
- * Makefile.am: Build natString.o. Use CXXFLAGS.
-
- * java/lang/Class.java (isArray, isPrimitive, getComponentType,
- isInstance, isAssignableFrom), java/lang/natClass.cc: New methods.
- * java/lang/Throwable.java (<init>): Don't fillInStackTrace yet.
- * java/lang/System.java (setProperty): New private method.
- (initProperties): Take argument, and make native.
- * java/lang/natSystem.cc: Implement (preliminary) initProperties.
- (currentTimeMillis): Make more robust.
-
- * java/io/{Writer,PrintWriter,OutputStreamWriter}.java: New classes.
- * java/io/UnsupportedEncodingException.java: New exception class.
-
- * java/io/DataInputStream.java: Don't use a PushbackInputStream.
- * java/io/FilterOutputStream.java: Add missing 'extends OutputStream'.
-
-Fri Apr 10 11:52:10 1998 Per Bothner <bothner@cygnus.com>
-
- * Makefile.am (CXXFLAGS, JC1FLAGS): New macro.
- * prims.cc: Added bunch of stuff.
- * include/cni.h: Added various definitions.
- * include/java-lang.h: Added Method, various friends, some macros.
-
- * include/config.h: Added HAVA_MEMMOVE and HAVE_MEMCPY.
- * java/lang/System.java (arraycopy): Make native.
-
-Sun Apr 5 23:58:51 1998 Per Bothner <bothner@cygnus.com>
-
- * java/lang/{netObject.cc,natClass.cc,natDouble.cc,natRuntime.cc,
- natSystem.cc,natThread.cc}: Native (C++) methods for various classes.
- * java/lang/ClassLoader.java (defineClass): Now takes extra argument.
- * java/lang/Double.java (toString, doubleToLongBits, longBitsToDouble):
- Make native.
- * java/lang/Runtime.java: Declare methods as native instead of
- using NativeLang.
- * java/lang/SecurityManager.java (getClassContext): Just throw Error.
- * java/lang/System.java: Comment out some stuff, for now.
- * java/lang/Thread.java: Re-write. Use native methods.
- * java/lang/NativeLang.java: Remove most of it.
-
- * java/util/natDate.cc: Native (C++) methods for Date.
- * java/util/{Calendar.java,GregorianCalendar.java}: New classes.
- * java/util/Date.java: Complete re-write.
-
- * java/io/io-defs.h: New header file.
- * java/io/FileDescriptor.java: Add a bunch of private methods,
- mostly moved from NativeIO.java and natNativeIO.cc.
- * java/io/{natFile.cc,java/io/natFileDescriptor.cc}: New native code.
- * java/io/File.java: Use new code.
- * java/io/{FileInputStream.java.FileOutputStream.java,
- RandomAccessFile.java}: Use new private FileDescriptor methods.
- * java/io/NativeIO.java: Removed, no longer used.
-
- * java/io/StreamTokenizer.java (numericChars): Make char array.
-
- * include/*.h: Various header files used by the C++ native code.
-
- * Makefile.am, Makefile.in, aclocal.m4, configure, configure.in:
- New autoconf+automake-based setup.
- * prims.cc: New file for Java "primitives".
-
diff --git a/libjava/LIBGCJ_LICENSE b/libjava/LIBGCJ_LICENSE
deleted file mode 100644
index f153b448c70..00000000000
--- a/libjava/LIBGCJ_LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-March 7, 2000
-
-The libgcj library is licensed under the terms of the GNU General
-Public License, with this special exception:
-
- As a special exception, if you link this library with other files
- to produce an executable, this library does not by itself cause
- the resulting executable to be covered by the GNU General Public
- License. This exception does not however invalidate any other
- reasons why the executable file might be covered by the GNU
- General Public License.
-
-You should have received a copy of the GNU General Public License
-along with libjava; see the file COPYING. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
deleted file mode 100644
index 8c5c41a50d2..00000000000
--- a/libjava/Makefile.am
+++ /dev/null
@@ -1,1250 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-
-if TESTSUBDIR
-SUBDIRS = $(DIRLTDL) testsuite gcj include
-else
-SUBDIRS = $(DIRLTDL) gcj include
-endif
-
-## ################################################################
-
-##
-## What gets installed, and where.
-##
-
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
-toolexeclib_LTLIBRARIES = libgcj.la
-toolexeclib_DATA = libgcj.spec
-data_DATA = libgcj.zip
-
-if NEEDS_DATA_START
-toolexeclib_LIBRARIES = libgcjdata.a
-libgcjdata_a_SOURCES = libgcjdata.c
-endif
-
-## For now, only on native systems. FIXME.
-if NATIVE
-bin_PROGRAMS = jv-convert gij
-endif
-
-bin_SCRIPTS = addr2name.awk
-
-## ################################################################
-
-##
-## Compilers and compilation flags.
-##
-
-## CANADIAN is a misnomer. Really we check to see if we must pick up
-## the tools from the path.
-if CANADIAN
-if NULL_TARGET
-## In this case, gcj is found outside the build tree. However, zip is
-## found in the build tree.
-ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
-else
-ZIP = zip
-endif
-GCJH = gcjh
-else # CANADIAN
-## JAVAC is set to `$(GCJ) -C'. However, JAVAC is run from the srcdir
-## (due to problems running it in builddir). In this case the obvious
-## definition of GCJ won't work; instead we resort to this ugly
-## definition that gives us absolute paths.
-GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
-ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
-endif # CANADIAN
-
-GCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) -fassume-compiled -fclasspath=$(here) -L$(here) $(JC1FLAGS) -c
-GCJLINK = $(LIBTOOL) --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-LIBLINK = $(LIBTOOL) --mode=link $(CC) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-
-JAVAC = $(GCJ) -C
-
-EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
-
-WARNINGS = -W -Wall
-## We need _GNU_SOURCE defined for some Linux builds. It doesn't hurt
-## to always define it.
-## Note that we need -fasynchronous-exceptions because gcc is
-## currently broken with respect to exception handling in leaf
-## functions.
-AM_CXXFLAGS = -fno-rtti -fvtable-thunks -fasynchronous-exceptions \
-## Some systems don't allow `$' in identifiers by default, so we force it.
- -fdollars-in-identifiers \
- @LIBGCJ_CXXFLAGS@ @EXCEPTIONSPEC@ $(WARNINGS) -D_GNU_SOURCE
-if USING_GCC
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS)
-else
-AM_CFLAGS = @LIBGCJ_CFLAGS@
-endif
-
-JCFLAGS = -g
-JC1FLAGS = -g @LIBGCJ_JAVAFLAGS@
-
-LIBFFIINCS = -I$(top_srcdir)/../libffi/include -I$(MULTIBUILDTOP)../libffi/include
-
-INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
- $(GCINCS) $(THREADINCS) $(INCLTDL) \
- $(EH_COMMON_INCLUDE) $(ZINCS) $(LIBFFIINCS)
-
-
-## ################################################################
-
-##
-## How to build libgcj.a and libgcj.zip
-##
-
-## Objects from C++ sources in subdirs.
-nat_files = $(nat_source_files:.cc=.lo)
-## Objects from C sources in subdirs.
-c_files = $(c_source_files:.c=.lo)
-## Objects from Java sources in subdirs.
-javao_files = $(java_source_files:.java=.lo) \
- $(built_java_source_files:.java=.lo)
-
-## Extract the libffi object file names.
-libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'`
-
-libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
- resolve.cc defineclass.cc interpret.cc name-finder.cc
-EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
- $(c_source_files) $(java_source_files) $(built_java_source_files)
-libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
- $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
-libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
- $(THREADOBJS) $(libffi_files) $(LIBLTDL)
-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) \
-## The mysterious backslash is consumed by make.
- -version-info `grep -v '^\#' $(srcdir)/libtool-version`
-libgcj_la_LINK = $(LIBLINK)
-
-
-## Make the .class files depend on the .zip file. This seems
-## backwards, but is right. This doesn't catch all the .class files,
-## but that is ok, because the ones it fails to pick up are defined in
-## a .java file with some other class which is caught. Note that we
-## only want to create headers for those files which do not have
-## hand-maintained headers.
-$(java_source_files:.java=.class): libgcj.zip
-
-## FIXME: this isn't really correct.
-$(built_java_source_files:.java=.class): $(built_java_source_files)
-## This little nastiness is here so that the backquoted stuff in the
-## GCJ definition can be correctly expanded, if required.
- @javac="$(JAVAC)"; \
- for f in $?; do \
- echo $$javac -L$(here) $(JCFLAGS) -classpath $(here):`cd $(srcdir) && /bin/pwd` -d $(here) $$f; \
- $$javac -L$(here) $(JCFLAGS) -classpath $(here):`cd $(srcdir) && /bin/pwd` \
- -d $(here) $$f; \
- done
-
-## We have the zip file depend on the java sources and not the class
-## files, because we don't know the names of all the class files.
-## FIXME: this method fails in a peculiar case: if libgcj.zip is
-## up-to-date, and foo.class is removed, and bar.java is touched, then
-## `make libgcj.zip' will not rebuilt foo.class. That's because
-## libgcj.zip is not out-of-date with respect to foo.java.
-libgcj.zip: $(java_source_files)
-## Create a list of all Java sources, without exceeding any shell limits.
- @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$(subst $(srcdir)/,,$?),$(shell echo $(source) >> tmp-list))
-## FIXME: this ought to depend on built_java_source_files, but right
-## now it can't. Ugly.
- $(MAKE) $(built_java_source_files:.java=.class)
-## This little nastiness is here so that the backquoted stuff in the
-## GCJ definition can be correctly expanded, if required.
- @javac="$(JAVAC)"; dir=`/bin/pwd`; cd $(srcdir); \
- for f in `cat $$dir/tmp-list`; do \
- echo $$javac $(JCFLAGS) -classpath $(here):`/bin/pwd` -d $(here) $$f; \
- $$javac $(JCFLAGS) -classpath $(here):`/bin/pwd` -d $(here) $$f; \
- done
- -@rm -f tmp-list libgcj.zip
-## Note that we explicitly want to include directory information.
- $(ZIP) -r libgcj java gnu -n .class -i '*.class' -i '*/'
-
-MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files)
-CLEANFILES = tmp-list libgcj.zip
-
-clean-local:
-## We just remove every .class file that was created.
- find . -name '*.class' -print | xargs rm -f
-
-SUFFIXES = .class .java .h
-
-.class.lo:
- $(GCJCOMPILE) -o $@ $<
-
-.java.lo:
- $(GCJCOMPILE) -o $@ $<
-
-## This is GNU make specific. For the .o files in subdirs, use a
-## special rule. The standard automake rule can't be overridden (this
-## is a bug in automake), and it also won't put the .o files into
-## subdirs. FIXME.
-$(nat_files): %.lo: %.cc
- $(LTCXXCOMPILE) -c -o $@ $<
-
-$(nat_files) $(GCOBJS) $(THREADOBJS) $(libgcj_la_OBJECTS) $(gij_OBJECTS): \
- include/config.h include/java-signal.h $(nat_headers)
-
-## FIXME: GNU make.
-$(c_files): %.lo: %.c
- $(LTCOMPILE) -c -o $@ $<
-
-$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
-
-## FIXME: GNU make.
-$(javao_files): %.lo: %.java
- $(GCJCOMPILE) -o $@ $<
-
-$(javao_files): libgcj.zip
-
-## ################################################################
-
-##
-## How to build header files.
-##
-
-.class.h:
-## FIXME: GNU make specific.
- $(GCJH) -classpath $(top_builddir) $(basename $<)
-
-## Header files used when compiling some of the nat* files.
-nat_headers = $(ordinary_java_source_files:.java=.h) \
- $(built_java_source_files:.java=.h) \
- java/io/ObjectOutputStream$$PutField.h \
- java/io/ObjectInputStream$$GetField.h
-
-$(nat_headers): libgcj.zip
-
-java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
- -friend 'void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar);' \
- $(basename $<)
-
-## Our internal main program needs to be able to create a FirstThread.
-gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'void JvRunMain (jclass, int, const char **);' \
- -friend 'void _Jv_RunMain (const char*, int, const char **);' \
- $(basename $<)
-
-java/lang/Thread.h: java/lang/Thread.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -prepend 'class _Jv_JNIEnv;' \
- -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \
- -prepend '#define _JV_NOT_OWNER 1' \
- -prepend '#define _JV_INTERRUPTED 2' \
- -friend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \
- -friend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
- -friend 'class gnu::gcj::jni::NativeThread;' \
- $(basename $<)
-
-java/lang/String.h: java/lang/String.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jchar* _Jv_GetStringChars (jstring str);' \
- -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
- -friend 'jstring* _Jv_StringGetSlot (jstring);' \
- -friend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \
- -friend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \
- -friend 'jstring _Jv_AllocString (jsize);' \
- $(basename $<)
-
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
- -friend 'class java::lang::Class;' \
- -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- $(basename $<)
-
-java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
- -friend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
- -friend 'class java::lang::Class;' \
- $(basename $<)
-
-java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
- -friend 'class java::lang::Class;' \
- -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- $(basename $<)
-
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'class java::lang::ClassLoader;' \
- $(basename $<)
-
-java/io/ObjectInputStream$$GetField.h: libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- 'java/io/ObjectInputStream$$GetField'
-
-java/io/ObjectOutputStream$$PutField.h: libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- 'java/io/ObjectOutputStream$$PutField'
-
-## Headers we maintain by hand and which we want to install.
-extra_headers = java/lang/Object.h java/lang/Class.h
-
-## Install the headers. It is fairly ugly that we have to do this by
-## hand.
-install-data-local:
- $(PRE_INSTALL)
- @for f in $(nat_headers) $(extra_headers); do \
- d="`echo $$f | sed -e 's,/[^/]*$$,,'`"; \
- $(mkinstalldirs) $(DESTDIR)$(includedir)/$$d; \
- if test -f $(srcdir)/$$f; then p=$(srcdir)/$$f; else p=$$f; fi; \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(includedir)/$$f"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(includedir)/$$f; \
- done
-
-## ################################################################
-
-##
-## Additional `check' targets for maintainer convenience.
-##
-
-## This is used for maintainer-check. FIXME: should set from
-## configure using AC_CHECK_TOOL.
-NM = nm
-
-## Try to make sure our library doesn't stomp the namespace.
-maintainer-check: libgcj.la
- $(NM) .libs/libgcj.a | grep ' T ' \
-## Anything with `4java' is assumed to be from .java source.
- | grep -v '4java' \
-## Anything with Jv is ok.
- | grep -v 'Jv' \
-## `terminate' and `unexpected' are part of the runtime.
- | grep -v 'terminate__Fv' | grep -v 'unexpected__Fv'
-
-## This rule can be used to see if the headers are more or less
-## correct.
-header-check: libgcj.zip $(nat_headers)
- rm -f htest.cc; \
- for h in $(nat_headers); do \
- echo "#include \"$$h\"" >> htest.cc; \
- done; \
- $(CXXCOMPILE) -fsyntax-only htest.cc
-
-
-## ################################################################
-
-##
-## The `jv-convert' program and code to rebuild the converter header
-## files.
-##
-
-## it only makes sense to try to rebuild the JIS .h files on native
-## systems.
-if NATIVE
-if MAINTAINER_MODE
-noinst_PROGRAMS = gen-from-JIS
-endif
-endif
-
-CONVERT_DIR = gnu/gcj/convert
-
-jv_convert_SOURCES =
-EXTRA_jv_convert_SOURCES = $(convert_source_files)
-## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We
-## need this because we are explicitly using libtool to link using the
-## `.la' file.
-jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
- -rpath $(toolexeclibdir)
-jv_convert_LINK = $(GCJLINK)
-## We explicitly link in the libraries we need. This way we don't
-## need -nodefaultlibs, so we can still rely on gcj picking up the
-## system libraries we need (via the specs file).
-## We need the -L so that gcj can find libgcj with `-lgcj'.
-## FIXME: should be _libs on some systems.
-jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \
- $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-## Depend on the spec file to make sure it is up to date before
-## linking this program.
-jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \
- $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
-
-gij_SOURCES = gij.cc
-## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We
-## need this because we are explicitly using libtool to link using the
-## `.la' file.
-gij_LDFLAGS = -rpath $(toolexeclibdir)
-gij_LINK = $(GCJLINK)
-## We explicitly link in the libraries we need. This way we don't
-## need -nodefaultlibs, so we can still rely on gcj picking up the
-## system libraries we need (via the specs file).
-## We need the -L so that gcj can find libgcj with `-lgcj'.
-## FIXME: should be _libs on some systems.
-gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-## Depend on the spec file to make sure it is up to date before
-## linking this program.
-gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
-
-# The Unicode consortium does not permit re-distributing the file JIS0201.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0201.h: # $(CONVERT_DIR)/JIS0201.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0201; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0201.TXT \
- | sed -n -e 's|\(0x..\).*\(0x....\).*#\(.*\)$$|MAP(0x00, \1, \2) /*\3 */|p' \
- >> tmp-0201; \
- mv tmp-0201 $(srcdir)/$(CONVERT_DIR)/JIS0201.h
-
-# The Unicode consortium does not permit re-distributing the file JIS0208.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0208.h: # $(CONVERT_DIR)/JIS0208.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0208; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0208.TXT \
- | sed -n -e 's|\(0x....\).*0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\2, 0x\3, \4) /*\5 */|p' \
- >> tmp-0208; \
- mv tmp-0208 $(srcdir)/$(CONVERT_DIR)/JIS0208.h
-
-# The Unicode consortium does not permit re-distributing the file JIS0212.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0212.h: # $(CONVERT_DIR)/JIS0212.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0212; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0212.TXT \
- | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \
- >> tmp-0212; \
- mv tmp-0212 $(srcdir)/$(CONVERT_DIR)/JIS0212.h
-
-
-gen_from_JIS_SOURCES =
-EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \
- $(srcdir)/$(CONVERT_DIR)/make-trie.c \
- $(srcdir)/$(CONVERT_DIR)/JIS0201.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0208.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0212.h
-gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o
-gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o \
- $(CONVERT_DIR)/make-trie.o
-
-$(CONVERT_DIR)/gen-from-JIS.o: $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \
- $(srcdir)/$(CONVERT_DIR)/JIS0201.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0208.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0212.h
- $(COMPILE) -c -o $(CONVERT_DIR)/gen-from-JIS.o \
- $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c
-
-$(CONVERT_DIR)/make-trie.o: $(srcdir)/$(CONVERT_DIR)/make-trie.c
- $(COMPILE) -c -o $(CONVERT_DIR)/make-trie.o \
- $(srcdir)/$(CONVERT_DIR)/make-trie.c
-
-if NATIVE
-if MAINTAINER_MODE
-
-$(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc: ./gen-from-JIS$(EXEEXT)
- ./gen-from-JIS JIS0208>$(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc
-
-$(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc: ./gen-from-JIS$(EXEEXT)
- ./gen-from-JIS JIS0212>$(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc
-
-$(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc: ./gen-from-JIS$(EXEEXT)
- ./gen-from-JIS toJIS>$(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc
-
-endif # MAINTAINER_MODE
-endif # NATIVE
-
-
-## ################################################################
-
-##
-## This section lists all the source files we care about.
-##
-
-convert_source_files = \
-gnu/gcj/convert/BytesToUnicode.java \
-gnu/gcj/convert/Convert.java \
-gnu/gcj/convert/Input_8859_1.java \
-gnu/gcj/convert/Input_EUCJIS.java \
-gnu/gcj/convert/Input_JavaSrc.java \
-gnu/gcj/convert/Input_SJIS.java \
-gnu/gcj/convert/Input_UTF8.java \
-gnu/gcj/convert/Input_iconv.java \
-gnu/gcj/convert/IOConverter.java \
-gnu/gcj/convert/Output_8859_1.java \
-gnu/gcj/convert/Output_EUCJIS.java \
-gnu/gcj/convert/Output_JavaSrc.java \
-gnu/gcj/convert/Output_SJIS.java \
-gnu/gcj/convert/Output_UTF8.java \
-gnu/gcj/convert/Output_iconv.java \
-gnu/gcj/convert/UnicodeToBytes.java
-
-## List of all .java files for which the .h file is maintained by
-## hand.
-special_java_source_files = java/lang/Class.java java/lang/Object.java
-
-awt_java_source_files = \
-gnu/java/beans/editors/ColorEditor.java \
-gnu/java/beans/editors/FontEditor.java \
-gnu/java/beans/editors/NativeBooleanEditor.java \
-gnu/java/beans/editors/NativeByteEditor.java \
-gnu/java/beans/editors/NativeDoubleEditor.java \
-gnu/java/beans/editors/NativeFloatEditor.java \
-gnu/java/beans/editors/NativeIntEditor.java \
-gnu/java/beans/editors/NativeLongEditor.java \
-gnu/java/beans/editors/NativeShortEditor.java \
-gnu/java/beans/editors/StringEditor.java \
-gnu/java/beans/info/ComponentBeanInfo.java \
-gnu/java/beans/BeanInfoEmbryo.java \
-gnu/java/beans/EmptyBeanInfo.java \
-gnu/java/beans/ExplicitBeanInfo.java \
-gnu/java/beans/IntrospectionIncubator.java \
-gnu/gcj/awt/BitMaskExtent.java \
-gnu/gcj/awt/Buffers.java \
-gnu/gcj/awt/ComponentDataBlitOp.java \
-gnu/gcj/awt/GLightweightPeer.java \
-java/applet/Applet.java \
-java/applet/AppletStub.java \
-java/applet/AppletContext.java \
-java/applet/AudioClip.java \
-java/awt/AWTError.java \
-java/awt/AWTEvent.java \
-java/awt/AWTEventMulticaster.java \
-java/awt/AWTException.java \
-java/awt/ActiveEvent.java \
-java/awt/Adjustable.java \
-java/awt/BorderLayout.java \
-java/awt/Button.java \
-java/awt/Canvas.java \
-java/awt/Checkbox.java \
-java/awt/CheckboxGroup.java \
-java/awt/CheckboxMenuItem.java \
-java/awt/Choice.java \
-java/awt/Color.java \
-java/awt/Component.java \
-java/awt/ComponentOrientation.java \
-java/awt/Container.java \
-java/awt/Cursor.java \
-java/awt/Dialog.java \
-java/awt/Dimension.java \
-java/awt/Event.java \
-java/awt/EventDispatchThread.java \
-java/awt/EventQueue.java \
-java/awt/FileDialog.java \
-java/awt/Font.java \
-java/awt/FontMetrics.java \
-java/awt/Frame.java \
-java/awt/Graphics.java \
-java/awt/Graphics2D.java \
-java/awt/GraphicsConfiguration.java \
-java/awt/IllegalComponentStateException.java \
-java/awt/Image.java \
-java/awt/Insets.java \
-java/awt/ItemSelectable.java \
-java/awt/Label.java \
-java/awt/LayoutManager.java \
-java/awt/LayoutManager2.java \
-java/awt/List.java \
-java/awt/Menu.java \
-java/awt/MenuBar.java \
-java/awt/MenuComponent.java \
-java/awt/MenuContainer.java \
-java/awt/MenuItem.java \
-java/awt/MenuShortcut.java \
-java/awt/Paint.java \
-java/awt/PaintContext.java \
-java/awt/Panel.java \
-java/awt/Point.java \
-java/awt/PopupMenu.java \
-java/awt/Rectangle.java \
-java/awt/RenderingHints.java \
-java/awt/ScrollPane.java \
-java/awt/Scrollbar.java \
-java/awt/Shape.java \
-java/awt/TextArea.java \
-java/awt/TextComponent.java \
-java/awt/TextField.java \
-java/awt/Toolkit.java \
-java/awt/Transparency.java \
-java/awt/Window.java \
-java/awt/color/ColorSpace.java \
-java/awt/color/ICC_ColorSpace.java \
-java/awt/color/ICC_Profile.java \
-java/awt/datatransfer/Clipboard.java \
-java/awt/event/AWTEventListener.java \
-java/awt/event/ActionEvent.java \
-java/awt/event/ActionListener.java \
-java/awt/event/AdjustmentEvent.java \
-java/awt/event/AdjustmentListener.java \
-java/awt/event/ComponentAdapter.java \
-java/awt/event/ComponentEvent.java \
-java/awt/event/ComponentListener.java \
-java/awt/event/ContainerAdapter.java \
-java/awt/event/ContainerEvent.java \
-java/awt/event/ContainerListener.java \
-java/awt/event/FocusAdapter.java \
-java/awt/event/FocusEvent.java \
-java/awt/event/FocusListener.java \
-java/awt/event/HierarchyBoundsAdapter.java \
-java/awt/event/HierarchyBoundsListener.java \
-java/awt/event/HierarchyEvent.java \
-java/awt/event/HierarchyListener.java \
-java/awt/event/InputEvent.java \
-java/awt/event/InputMethodEvent.java \
-java/awt/event/InputMethodListener.java \
-java/awt/event/InvocationEvent.java \
-java/awt/event/ItemEvent.java \
-java/awt/event/ItemListener.java \
-java/awt/event/KeyAdapter.java \
-java/awt/event/KeyEvent.java \
-java/awt/event/KeyListener.java \
-java/awt/event/MouseAdapter.java \
-java/awt/event/MouseEvent.java \
-java/awt/event/MouseListener.java \
-java/awt/event/MouseMotionAdapter.java \
-java/awt/event/MouseMotionListener.java \
-java/awt/event/PaintEvent.java \
-java/awt/event/TextEvent.java \
-java/awt/event/TextListener.java \
-java/awt/event/WindowAdapter.java \
-java/awt/event/WindowEvent.java \
-java/awt/event/WindowListener.java \
-java/awt/geom/AffineTransform.java \
-java/awt/geom/Dimension2D.java \
-java/awt/geom/Ellipse2D.java \
-java/awt/geom/IllegalPathStateException.java \
-java/awt/geom/NoninvertibleTransformException.java \
-java/awt/geom/PathIterator.java \
-java/awt/geom/Point2D.java \
-java/awt/geom/Rectangle2D.java \
-java/awt/geom/RectangularShape.java \
-java/awt/image/BufferedImage.java \
-java/awt/image/ColorModel.java \
-java/awt/image/ComponentColorModel.java \
-java/awt/image/ComponentSampleModel.java \
-java/awt/image/DataBuffer.java \
-java/awt/image/DataBufferByte.java \
-java/awt/image/DataBufferInt.java \
-java/awt/image/DataBufferUShort.java \
-java/awt/image/DirectColorModel.java \
-java/awt/image/ImageConsumer.java \
-java/awt/image/ImageObserver.java \
-java/awt/image/ImageProducer.java \
-java/awt/image/IndexColorModel.java \
-java/awt/image/PackedColorModel.java \
-java/awt/image/Raster.java \
-java/awt/image/RasterOp.java \
-java/awt/image/SampleModel.java \
-java/awt/image/SinglePixelPackedSampleModel.java \
-java/awt/image/WritableRaster.java \
-java/awt/peer/ButtonPeer.java \
-java/awt/peer/CanvasPeer.java \
-java/awt/peer/CheckboxMenuItemPeer.java \
-java/awt/peer/CheckboxPeer.java \
-java/awt/peer/ChoicePeer.java \
-java/awt/peer/ComponentPeer.java \
-java/awt/peer/ContainerPeer.java \
-java/awt/peer/DialogPeer.java \
-java/awt/peer/FileDialogPeer.java \
-java/awt/peer/FontPeer.java \
-java/awt/peer/FramePeer.java \
-java/awt/peer/LabelPeer.java \
-java/awt/peer/LightweightPeer.java \
-java/awt/peer/ListPeer.java \
-java/awt/peer/MenuBarPeer.java \
-java/awt/peer/MenuComponentPeer.java \
-java/awt/peer/MenuItemPeer.java \
-java/awt/peer/MenuPeer.java \
-java/awt/peer/PanelPeer.java \
-java/awt/peer/PopupMenuPeer.java \
-java/awt/peer/ScrollPanePeer.java \
-java/awt/peer/ScrollbarPeer.java \
-java/awt/peer/TextAreaPeer.java \
-java/awt/peer/TextComponentPeer.java \
-java/awt/peer/TextFieldPeer.java \
-java/awt/peer/WindowPeer.java \
-java/beans/beancontext/BeanContext.java \
-java/beans/beancontext/BeanContextChild.java \
-java/beans/beancontext/BeanContextChildComponentProxy.java \
-java/beans/beancontext/BeanContextChildSupport.java \
-java/beans/beancontext/BeanContextContainerProxy.java \
-java/beans/beancontext/BeanContextEvent.java \
-java/beans/beancontext/BeanContextMembershipEvent.java \
-java/beans/beancontext/BeanContextMembershipListener.java \
-java/beans/beancontext/BeanContextProxy.java \
-java/beans/beancontext/BeanContextServiceAvailableEvent.java \
-java/beans/beancontext/BeanContextServiceProvider.java \
-java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \
-java/beans/beancontext/BeanContextServiceRevokedEvent.java \
-java/beans/beancontext/BeanContextServiceRevokedListener.java \
-java/beans/beancontext/BeanContextServices.java \
-java/beans/beancontext/BeanContextServicesListener.java \
-java/beans/BeanDescriptor.java \
-java/beans/BeanInfo.java \
-java/beans/Beans.java \
-java/beans/Customizer.java \
-java/beans/DesignMode.java \
-java/beans/EventSetDescriptor.java \
-java/beans/FeatureDescriptor.java \
-java/beans/IndexedPropertyDescriptor.java \
-java/beans/IntrospectionException.java \
-java/beans/Introspector.java \
-java/beans/MethodDescriptor.java \
-java/beans/ParameterDescriptor.java \
-java/beans/PropertyChangeEvent.java \
-java/beans/PropertyChangeListener.java \
-java/beans/PropertyChangeSupport.java \
-java/beans/PropertyDescriptor.java \
-java/beans/PropertyEditor.java \
-java/beans/PropertyEditorManager.java \
-java/beans/PropertyEditorSupport.java \
-java/beans/PropertyVetoException.java \
-java/beans/SimpleBeanInfo.java \
-java/beans/VetoableChangeListener.java \
-java/beans/VetoableChangeSupport.java \
-java/beans/Visibility.java
-
-## Java files which are created by configure and thus are in the build
-## directory.
-built_java_source_files = java/lang/ConcreteProcess.java
-
-## List of all .java files to be compiled. Please keep this list
-## alphabetical. Please put files from gnu/gcj/convert into
-## convert_source_files and files from java/awt into
-## awt_java_source_files. If the .java file has a hand-maintained
-## header, please list it in special_java_source_files.
-ordinary_java_source_files = $(convert_source_files) \
-$(awt_java_source_files) \
-gnu/gcj/RawData.java \
-gnu/gcj/io/DefaultMimeTypes.java \
-gnu/gcj/io/MimeTypes.java \
-gnu/gcj/io/SimpleSHSStream.java \
-gnu/gcj/jni/NativeThread.java \
-gnu/gcj/math/MPN.java \
-gnu/gcj/protocol/file/Connection.java \
-gnu/gcj/protocol/file/Handler.java \
-gnu/gcj/protocol/http/Connection.java \
-gnu/gcj/protocol/http/Handler.java \
-gnu/gcj/protocol/jar/Connection.java \
-gnu/gcj/protocol/jar/Handler.java \
-gnu/gcj/runtime/FileDeleter.java \
-gnu/gcj/runtime/FirstThread.java \
-gnu/gcj/runtime/VMClassLoader.java \
-gnu/gcj/text/BaseBreakIterator.java \
-gnu/gcj/text/CharacterBreakIterator.java \
-gnu/gcj/text/LineBreakIterator.java \
-gnu/gcj/text/LocaleData_en.java \
-gnu/gcj/text/LocaleData_en_US.java \
-gnu/gcj/text/SentenceBreakIterator.java \
-gnu/gcj/text/WordBreakIterator.java \
-gnu/gcj/util/EnumerationChain.java \
-gnu/java/io/ClassLoaderObjectInputStream.java \
-gnu/java/io/NullOutputStream.java \
-gnu/java/io/ObjectIdentityWrapper.java \
-gnu/java/lang/ArrayHelper.java \
-gnu/java/lang/ClassHelper.java \
-gnu/java/lang/reflect/TypeSignature.java \
-gnu/java/security/provider/Gnu.java \
-gnu/java/security/provider/SHA.java \
-gnu/java/security/provider/SHA1PRNG.java \
-java/io/BlockDataException.java \
-java/io/BufferedInputStream.java \
-java/io/BufferedOutputStream.java \
-java/io/BufferedReader.java \
-java/io/BufferedWriter.java \
-java/io/ByteArrayInputStream.java \
-java/io/ByteArrayOutputStream.java \
-java/io/CharArrayReader.java \
-java/io/CharArrayWriter.java \
-java/io/CharConversionException.java \
-java/io/DataInput.java \
-java/io/DataInputStream.java \
-java/io/DataOutput.java \
-java/io/DataOutputStream.java \
-java/io/EOFException.java \
-java/io/Externalizable.java \
-java/io/File.java \
-java/io/FileDescriptor.java \
-java/io/FileInputStream.java \
-java/io/FileNotFoundException.java \
-java/io/FileOutputStream.java \
-java/io/FileReader.java \
-java/io/FileWriter.java \
-java/io/FilenameFilter.java \
-java/io/FilterInputStream.java \
-java/io/FilterOutputStream.java \
-java/io/FilterReader.java \
-java/io/FilterWriter.java \
-java/io/IOException.java \
-java/io/InputStream.java \
-java/io/InputStreamReader.java \
-java/io/InterruptedIOException.java \
-java/io/InvalidClassException.java \
-java/io/InvalidObjectException.java \
-java/io/LineNumberInputStream.java \
-java/io/LineNumberReader.java \
-java/io/NotActiveException.java \
-java/io/NotSerializableException.java \
-java/io/ObjectInput.java \
-java/io/ObjectInputStream.java \
-java/io/ObjectInputValidation.java \
-java/io/ObjectOutput.java \
-java/io/ObjectOutputStream.java \
-java/io/ObjectStreamClass.java \
-java/io/ObjectStreamConstants.java \
-java/io/ObjectStreamException.java \
-java/io/ObjectStreamField.java \
-java/io/OptionalDataException.java \
-java/io/OutputStream.java \
-java/io/OutputStreamWriter.java \
-java/io/PipedInputStream.java \
-java/io/PipedOutputStream.java \
-java/io/PipedReader.java \
-java/io/PipedWriter.java \
-java/io/PrintStream.java \
-java/io/PrintWriter.java \
-java/io/PushbackInputStream.java \
-java/io/PushbackReader.java \
-java/io/RandomAccessFile.java \
-java/io/Reader.java \
-java/io/Replaceable.java \
-java/io/Resolvable.java \
-java/io/SequenceInputStream.java \
-java/io/Serializable.java \
-java/io/SerializablePermission.java \
-java/io/StreamCorruptedException.java \
-java/io/StreamTokenizer.java \
-java/io/StringBufferInputStream.java \
-java/io/StringReader.java \
-java/io/StringWriter.java \
-java/io/SyncFailedException.java \
-java/io/UTFDataFormatException.java \
-java/io/UnsupportedEncodingException.java \
-java/io/WriteAbortedException.java \
-java/io/Writer.java \
-java/lang/AbstractMethodError.java \
-java/lang/ArithmeticException.java \
-java/lang/ArrayIndexOutOfBoundsException.java \
-java/lang/ArrayStoreException.java \
-java/lang/Boolean.java \
-java/lang/Byte.java \
-java/lang/Character.java \
-java/lang/ClassCastException.java \
-java/lang/ClassCircularityError.java \
-java/lang/ClassFormatError.java \
-java/lang/ClassLoader.java \
-java/lang/ClassNotFoundException.java \
-java/lang/CloneNotSupportedException.java \
-java/lang/Cloneable.java \
-java/lang/Comparable.java \
-java/lang/Compiler.java \
-java/lang/Double.java \
-java/lang/Error.java \
-java/lang/Exception.java \
-java/lang/ExceptionInInitializerError.java \
-java/lang/Float.java \
-java/lang/IllegalAccessError.java \
-java/lang/IllegalAccessException.java \
-java/lang/IllegalArgumentException.java \
-java/lang/IllegalMonitorStateException.java \
-java/lang/IllegalStateException.java \
-java/lang/IllegalThreadStateException.java \
-java/lang/IncompatibleClassChangeError.java \
-java/lang/IndexOutOfBoundsException.java \
-java/lang/InstantiationError.java \
-java/lang/InstantiationException.java \
-java/lang/Integer.java \
-java/lang/InternalError.java \
-java/lang/InterruptedException.java \
-java/lang/LinkageError.java \
-java/lang/Long.java \
-java/lang/Math.java \
-java/lang/NegativeArraySizeException.java \
-java/lang/NoClassDefFoundError.java \
-java/lang/NoSuchFieldError.java \
-java/lang/NoSuchFieldException.java \
-java/lang/NoSuchMethodError.java \
-java/lang/NoSuchMethodException.java \
-java/lang/NullPointerException.java \
-java/lang/Number.java \
-java/lang/NumberFormatException.java \
-java/lang/OutOfMemoryError.java \
-java/lang/Process.java \
-java/lang/Runnable.java \
-java/lang/Runtime.java \
-java/lang/RuntimeException.java \
-java/lang/SecurityException.java \
-java/lang/SecurityManager.java \
-java/lang/Short.java \
-java/lang/StackOverflowError.java \
-java/lang/String.java \
-java/lang/StringBuffer.java \
-java/lang/StringIndexOutOfBoundsException.java \
-java/lang/System.java \
-java/lang/Thread.java \
-java/lang/ThreadDeath.java \
-java/lang/ThreadGroup.java \
-java/lang/Throwable.java \
-java/lang/UnknownError.java \
-java/lang/UnsatisfiedLinkError.java \
-java/lang/UnsupportedOperationException.java \
-java/lang/VerifyError.java \
-java/lang/VirtualMachineError.java \
-java/lang/Void.java \
-java/lang/reflect/AccessibleObject.java \
-java/lang/reflect/Array.java \
-java/lang/reflect/Constructor.java \
-java/lang/reflect/Field.java \
-java/lang/reflect/InvocationTargetException.java \
-java/lang/reflect/Member.java \
-java/lang/reflect/Method.java \
-java/lang/reflect/Modifier.java \
-java/math/BigDecimal.java \
-java/math/BigInteger.java \
-java/net/BindException.java \
-java/net/ConnectException.java \
-java/net/ContentHandler.java \
-java/net/ContentHandlerFactory.java \
-java/net/DatagramPacket.java \
-java/net/DatagramSocket.java \
-java/net/DatagramSocketImpl.java \
-java/net/FileNameMap.java \
-java/net/HttpURLConnection.java \
-java/net/InetAddress.java \
-java/net/JarURLConnection.java \
-java/net/MalformedURLException.java \
-java/net/MulticastSocket.java \
-java/net/NoRouteToHostException.java \
-java/net/PlainDatagramSocketImpl.java \
-java/net/PlainSocketImpl.java \
-java/net/ProtocolException.java \
-java/net/ServerSocket.java \
-java/net/Socket.java \
-java/net/SocketException.java \
-java/net/SocketImpl.java \
-java/net/SocketImplFactory.java \
-java/net/SocketOptions.java \
-java/net/URL.java \
-java/net/URLClassLoader.java \
-java/net/URLConnection.java \
-java/net/URLDecoder.java \
-java/net/URLEncoder.java \
-java/net/URLStreamHandler.java \
-java/net/URLStreamHandlerFactory.java \
-java/net/UnknownHostException.java \
-java/net/UnknownServiceException.java \
-java/security/AlgorithmParameterGeneratorSpi.java \
-java/security/BasicPermission.java \
-java/security/DigestException.java \
-java/security/DigestOutputStream.java \
-java/security/GeneralSecurityException.java \
-java/security/Guard.java \
-java/security/InvalidAlgorithmParameterException.java \
-java/security/InvalidKeyException.java \
-java/security/InvalidParameterException.java \
-java/security/Key.java \
-java/security/KeyException.java \
-java/security/KeyPair.java \
-java/security/KeyPairGenerator.java \
-java/security/KeyPairGeneratorSpi.java \
-java/security/MessageDigest.java \
-java/security/NoSuchAlgorithmException.java \
-java/security/NoSuchProviderException.java \
-java/security/Permission.java \
-java/security/PermissionCollection.java \
-java/security/Principal.java \
-java/security/PrivateKey.java \
-java/security/Provider.java \
-java/security/PublicKey.java \
-java/security/SecureClassLoader.java \
-java/security/SecureRandom.java \
-java/security/Security.java \
-java/security/Signature.java \
-java/security/SignatureException.java \
-java/security/cert/CRL.java \
-java/security/cert/CRLException.java \
-java/security/cert/Certificate.java \
-java/security/cert/CertificateEncodingException.java \
-java/security/cert/CertificateException.java \
-java/security/cert/CertificateExpiredException.java \
-java/security/cert/CertificateFactory.java \
-java/security/cert/CertificateFactorySpi.java \
-java/security/cert/CertificateNotYetValidException.java \
-java/security/cert/CertificateParsingException.java \
-java/security/cert/X509CRL.java \
-java/security/cert/X509CRLEntry.java \
-java/security/cert/X509Certificate.java \
-java/security/cert/X509Extension.java \
-java/security/interfaces/DSAKey.java \
-java/security/interfaces/DSAParams.java \
-java/security/interfaces/DSAPrivateKey.java \
-java/security/interfaces/DSAPublicKey.java \
-java/security/interfaces/RSAPrivateCrtKey.java \
-java/security/interfaces/RSAPrivateKey.java \
-java/security/interfaces/RSAPublicKey.java \
-java/security/spec/AlgorithmParameterSpec.java \
-java/security/spec/InvalidKeySpecException.java \
-java/security/spec/InvalidParameterSpecException.java \
-java/security/spec/KeySpec.java \
-java/security/spec/RSAPrivateCrtKeySpec.java \
-java/security/spec/RSAPrivateKeySpec.java \
-java/security/spec/RSAPublicKeySpec.java \
-java/sql/CallableStatement.java \
-java/sql/Connection.java \
-java/sql/DataTruncation.java \
-java/sql/DatabaseMetaData.java \
-java/sql/Date.java \
-java/sql/Driver.java \
-java/sql/DriverManager.java \
-java/sql/DriverPropertyInfo.java \
-java/sql/PreparedStatement.java \
-java/sql/ResultSet.java \
-java/sql/ResultSetMetaData.java \
-java/sql/SQLException.java \
-java/sql/SQLWarning.java \
-java/sql/Statement.java \
-java/sql/Time.java \
-java/sql/Timestamp.java \
-java/sql/Types.java \
-java/text/BreakIterator.java \
-java/text/CharacterIterator.java \
-java/text/ChoiceFormat.java \
-java/text/CollationElementIterator.java \
-java/text/CollationKey.java \
-java/text/Collator.java \
-java/text/DateFormat.java \
-java/text/DateFormatSymbols.java \
-java/text/DecimalFormat.java \
-java/text/DecimalFormatSymbols.java \
-java/text/FieldPosition.java \
-java/text/Format.java \
-java/text/MessageFormat.java \
-java/text/NumberFormat.java \
-java/text/ParseException.java \
-java/text/ParsePosition.java \
-java/text/RuleBasedCollator.java \
-java/text/SimpleDateFormat.java \
-java/text/StringCharacterIterator.java \
-java/util/AbstractCollection.java \
-java/util/AbstractList.java \
-java/util/AbstractMap.java \
-java/util/AbstractSequentialList.java \
-java/util/AbstractSet.java \
-java/util/ArrayList.java \
-java/util/Arrays.java \
-java/util/BasicMapEntry.java \
-java/util/BitSet.java \
-java/util/Bucket.java \
-java/util/Calendar.java \
-java/util/Collection.java \
-java/util/Comparator.java \
-java/util/ConcurrentModificationException.java \
-java/util/Date.java \
-java/util/Dictionary.java \
-java/util/EmptyStackException.java \
-java/util/Enumeration.java \
-java/util/EventListener.java \
-java/util/EventObject.java \
-java/util/GregorianCalendar.java \
-java/util/HashMap.java \
-java/util/Hashtable.java \
-java/util/Iterator.java \
-java/util/List.java \
-java/util/ListIterator.java \
-java/util/ListResourceBundle.java \
-java/util/Locale.java \
-java/util/Map.java \
-java/util/MissingResourceException.java \
-java/util/NoSuchElementException.java \
-java/util/Observable.java \
-java/util/Observer.java \
-java/util/Properties.java \
-java/util/PropertyPermission.java \
-java/util/PropertyResourceBundle.java \
-java/util/Random.java \
-java/util/ResourceBundle.java \
-java/util/Set.java \
-java/util/SimpleTimeZone.java \
-java/util/SortedMap.java \
-java/util/SortedSet.java \
-java/util/Stack.java \
-java/util/StringTokenizer.java \
-java/util/TimeZone.java \
-java/util/Timer.java \
-java/util/TimerTask.java \
-java/util/TooManyListenersException.java \
-java/util/Vector.java \
-java/util/jar/Attributes.java \
-java/util/jar/JarEntry.java \
-java/util/jar/JarException.java \
-java/util/jar/JarFile.java \
-java/util/jar/JarInputStream.java \
-java/util/jar/JarOutputStream.java \
-java/util/jar/Manifest.java \
-java/util/zip/Adler32.java \
-java/util/zip/CRC32.java \
-java/util/zip/CheckedInputStream.java \
-java/util/zip/CheckedOutputStream.java \
-java/util/zip/Checksum.java \
-java/util/zip/DataFormatException.java \
-java/util/zip/Deflater.java \
-java/util/zip/DeflaterOutputStream.java \
-java/util/zip/GZIPInputStream.java \
-java/util/zip/GZIPOutputStream.java \
-java/util/zip/Inflater.java \
-java/util/zip/InflaterInputStream.java \
-java/util/zip/ZipConstants.java \
-java/util/zip/ZipEntry.java \
-java/util/zip/ZipException.java \
-java/util/zip/ZipFile.java \
-java/util/zip/ZipInputStream.java \
-java/util/zip/ZipOutputStream.java
-
-java_source_files = $(ordinary_java_source_files) $(special_java_source_files)
-
-## Math library: C, not C++
-c_source_files = \
- java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \
- java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \
- java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \
- java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \
- java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \
- java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \
- java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \
- java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \
- java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \
- java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c \
- java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \
- java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \
- java/lang/k_cos.c java/lang/s_sin.c
-
-#java/awt/natToolkit.cc
-
-## This lists all the C++ source files in subdirectories.
-nat_source_files = \
-gnu/gcj/convert/JIS0208_to_Unicode.cc \
-gnu/gcj/convert/JIS0212_to_Unicode.cc \
-gnu/gcj/convert/Unicode_to_JIS.cc \
-gnu/gcj/convert/natIconv.cc \
-gnu/gcj/convert/natInput_EUCJIS.cc \
-gnu/gcj/convert/natInput_SJIS.cc \
-gnu/gcj/convert/natOutput_EUCJIS.cc \
-gnu/gcj/convert/natOutput_SJIS.cc \
-gnu/gcj/io/natSimpleSHSStream.cc \
-gnu/gcj/io/shs.cc \
-gnu/gcj/jni/natNativeThread.cc \
-gnu/gcj/runtime/natFirstThread.cc \
-java/io/natFile.cc \
-java/io/natFileDescriptor.cc \
-java/io/natObjectInputStream.cc \
-java/io/natObjectOutputStream.cc \
-java/lang/natCharacter.cc \
-java/lang/natClass.cc \
-java/lang/natClassLoader.cc \
-java/lang/natConcreteProcess.cc \
-java/lang/natDouble.cc \
-java/lang/natFloat.cc \
-java/lang/natMath.cc \
-java/lang/natObject.cc \
-java/lang/natRuntime.cc \
-java/lang/natString.cc \
-java/lang/natSystem.cc \
-java/lang/natThread.cc \
-java/lang/natThrowable.cc \
-java/lang/reflect/natArray.cc \
-java/lang/reflect/natConstructor.cc \
-java/lang/reflect/natField.cc \
-java/lang/reflect/natMethod.cc \
-java/net/natInetAddress.cc \
-java/net/natPlainDatagramSocketImpl.cc \
-java/net/natPlainSocketImpl.cc \
-java/text/natCollator.cc \
-java/util/natGregorianCalendar.cc \
-java/util/zip/natDeflater.cc \
-java/util/zip/natInflater.cc
-
-## ################################################################
-
-##
-## This section is for make and multilib madness.
-##
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "JC1FLAGS=$(JC1FLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-CONFIG_STATUS_DEPENDENCIES = $(libgcj_basedir)/configure.host
-
-MAKEOVERRIDES=
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-recursive: all-multi
-install-recursive: install-multi
-mostlyclean-recursive: mostlyclean-multi
-clean-recursive: clean-multi
-distclean-recursive: distclean-multi
-maintainer-clean-recursive: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
deleted file mode 100644
index 924e2663790..00000000000
--- a/libjava/Makefile.in
+++ /dev/null
@@ -1,2277 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-AR = @AR@
-AS = @AS@
-CC = @CC@
-COMPPATH = @COMPPATH@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DIRLTDL = @DIRLTDL@
-DIVIDESPEC = @DIVIDESPEC@
-DLLTOOL = @DLLTOOL@
-EXCEPTIONSPEC = @EXCEPTIONSPEC@
-EXEEXT = @EXEEXT@
-FORCELIBGCCSPEC = @FORCELIBGCCSPEC@
-GCDEPS = @GCDEPS@
-GCINCS = @GCINCS@
-GCJ = @GCJ@
-GCJFLAGS = @GCJFLAGS@
-GCLIBS = @GCLIBS@
-GCOBJS = @GCOBJS@
-GCSPEC = @GCSPEC@
-GCTESTSPEC = @GCTESTSPEC@
-INCLTDL = @INCLTDL@
-LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
-LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
-LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
-LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
-LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
-LIBLTDL = @LIBLTDL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PERL = @PERL@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-SYSDEP_SOURCES = @SYSDEP_SOURCES@
-SYSTEMSPEC = @SYSTEMSPEC@
-THREADDEPS = @THREADDEPS@
-THREADINCS = @THREADINCS@
-THREADLIBS = @THREADLIBS@
-THREADOBJS = @THREADOBJS@
-THREADSPEC = @THREADSPEC@
-VERSION = @VERSION@
-ZDEPS = @ZDEPS@
-ZINCS = @ZINCS@
-ZLIBS = @ZLIBS@
-ZLIBSPEC = @ZLIBSPEC@
-ZLIBTESTSPEC = @ZLIBTESTSPEC@
-here = @here@
-libgcj_basedir = @libgcj_basedir@
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-@TESTSUBDIR_TRUE@SUBDIRS = \
-@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include
-@TESTSUBDIR_FALSE@SUBDIRS = \
-@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include
-@USE_LIBDIR_TRUE@toolexeclibdir = \
-@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = \
-@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = \
-@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
-
-toolexeclib_LTLIBRARIES = libgcj.la
-toolexeclib_DATA = libgcj.spec
-data_DATA = libgcj.zip
-
-@NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = \
-@NEEDS_DATA_START_TRUE@libgcjdata.a
-@NEEDS_DATA_START_TRUE@libgcjdata_a_SOURCES = \
-@NEEDS_DATA_START_TRUE@libgcjdata.c
-
-@NATIVE_TRUE@bin_PROGRAMS = \
-@NATIVE_TRUE@jv-convert gij
-
-bin_SCRIPTS = addr2name.awk
-@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \
-@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
-@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \
-@CANADIAN_TRUE@@NULL_TARGET_FALSE@zip
-@CANADIAN_FALSE@ZIP = \
-@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
-@CANADIAN_TRUE@GCJH = \
-@CANADIAN_TRUE@gcjh
-@CANADIAN_FALSE@GCJH = \
-@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
-
-GCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) -fassume-compiled -fclasspath=$(here) -L$(here) $(JC1FLAGS) -c
-GCJLINK = $(LIBTOOL) --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-LIBLINK = $(LIBTOOL) --mode=link $(CC) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-
-JAVAC = $(GCJ) -C
-
-EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
-
-WARNINGS = -W -Wall
-AM_CXXFLAGS = -fno-rtti -fvtable-thunks -fasynchronous-exceptions \
- -fdollars-in-identifiers \
- @LIBGCJ_CXXFLAGS@ @EXCEPTIONSPEC@ $(WARNINGS) -D_GNU_SOURCE
-
-@USING_GCC_TRUE@AM_CFLAGS = \
-@USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS)
-@USING_GCC_FALSE@AM_CFLAGS = \
-@USING_GCC_FALSE@@LIBGCJ_CFLAGS@
-
-JCFLAGS = -g
-JC1FLAGS = -g @LIBGCJ_JAVAFLAGS@
-
-LIBFFIINCS = -I$(top_srcdir)/../libffi/include -I$(MULTIBUILDTOP)../libffi/include
-
-INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
- $(GCINCS) $(THREADINCS) $(INCLTDL) \
- $(EH_COMMON_INCLUDE) $(ZINCS) $(LIBFFIINCS)
-
-
-nat_files = $(nat_source_files:.cc=.lo)
-c_files = $(c_source_files:.c=.lo)
-javao_files = $(java_source_files:.java=.lo) \
- $(built_java_source_files:.java=.lo)
-
-
-libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'`
-
-libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
- resolve.cc defineclass.cc interpret.cc name-finder.cc
-
-EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
- $(c_source_files) $(java_source_files) $(built_java_source_files)
-
-libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
- $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
-
-libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
- $(THREADOBJS) $(libffi_files) $(LIBLTDL)
-
-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) \
- -version-info `grep -v '^\#' $(srcdir)/libtool-version`
-
-libgcj_la_LINK = $(LIBLINK)
-
-MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files)
-CLEANFILES = tmp-list libgcj.zip
-
-SUFFIXES = .class .java .h
-
-nat_headers = $(ordinary_java_source_files:.java=.h) \
- $(built_java_source_files:.java=.h) \
- java/io/ObjectOutputStream$$PutField.h \
- java/io/ObjectInputStream$$GetField.h
-
-
-extra_headers = java/lang/Object.h java/lang/Class.h
-
-NM = nm
-
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS
-
-CONVERT_DIR = gnu/gcj/convert
-
-jv_convert_SOURCES =
-EXTRA_jv_convert_SOURCES = $(convert_source_files)
-jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
- -rpath $(toolexeclibdir)
-
-jv_convert_LINK = $(GCJLINK)
-jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \
- $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-
-jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \
- $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
-
-
-gij_SOURCES = gij.cc
-gij_LDFLAGS = -rpath $(toolexeclibdir)
-gij_LINK = $(GCJLINK)
-gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
-
-gen_from_JIS_SOURCES =
-EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \
- $(srcdir)/$(CONVERT_DIR)/make-trie.c \
- $(srcdir)/$(CONVERT_DIR)/JIS0201.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0208.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0212.h
-
-gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o
-gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o \
- $(CONVERT_DIR)/make-trie.o
-
-
-convert_source_files = \
-gnu/gcj/convert/BytesToUnicode.java \
-gnu/gcj/convert/Convert.java \
-gnu/gcj/convert/Input_8859_1.java \
-gnu/gcj/convert/Input_EUCJIS.java \
-gnu/gcj/convert/Input_JavaSrc.java \
-gnu/gcj/convert/Input_SJIS.java \
-gnu/gcj/convert/Input_UTF8.java \
-gnu/gcj/convert/Input_iconv.java \
-gnu/gcj/convert/IOConverter.java \
-gnu/gcj/convert/Output_8859_1.java \
-gnu/gcj/convert/Output_EUCJIS.java \
-gnu/gcj/convert/Output_JavaSrc.java \
-gnu/gcj/convert/Output_SJIS.java \
-gnu/gcj/convert/Output_UTF8.java \
-gnu/gcj/convert/Output_iconv.java \
-gnu/gcj/convert/UnicodeToBytes.java
-
-
-special_java_source_files = java/lang/Class.java java/lang/Object.java
-
-awt_java_source_files = \
-gnu/java/beans/editors/ColorEditor.java \
-gnu/java/beans/editors/FontEditor.java \
-gnu/java/beans/editors/NativeBooleanEditor.java \
-gnu/java/beans/editors/NativeByteEditor.java \
-gnu/java/beans/editors/NativeDoubleEditor.java \
-gnu/java/beans/editors/NativeFloatEditor.java \
-gnu/java/beans/editors/NativeIntEditor.java \
-gnu/java/beans/editors/NativeLongEditor.java \
-gnu/java/beans/editors/NativeShortEditor.java \
-gnu/java/beans/editors/StringEditor.java \
-gnu/java/beans/info/ComponentBeanInfo.java \
-gnu/java/beans/BeanInfoEmbryo.java \
-gnu/java/beans/EmptyBeanInfo.java \
-gnu/java/beans/ExplicitBeanInfo.java \
-gnu/java/beans/IntrospectionIncubator.java \
-gnu/gcj/awt/BitMaskExtent.java \
-gnu/gcj/awt/Buffers.java \
-gnu/gcj/awt/ComponentDataBlitOp.java \
-gnu/gcj/awt/GLightweightPeer.java \
-java/applet/Applet.java \
-java/applet/AppletStub.java \
-java/applet/AppletContext.java \
-java/applet/AudioClip.java \
-java/awt/AWTError.java \
-java/awt/AWTEvent.java \
-java/awt/AWTEventMulticaster.java \
-java/awt/AWTException.java \
-java/awt/ActiveEvent.java \
-java/awt/Adjustable.java \
-java/awt/BorderLayout.java \
-java/awt/Button.java \
-java/awt/Canvas.java \
-java/awt/Checkbox.java \
-java/awt/CheckboxGroup.java \
-java/awt/CheckboxMenuItem.java \
-java/awt/Choice.java \
-java/awt/Color.java \
-java/awt/Component.java \
-java/awt/ComponentOrientation.java \
-java/awt/Container.java \
-java/awt/Cursor.java \
-java/awt/Dialog.java \
-java/awt/Dimension.java \
-java/awt/Event.java \
-java/awt/EventDispatchThread.java \
-java/awt/EventQueue.java \
-java/awt/FileDialog.java \
-java/awt/Font.java \
-java/awt/FontMetrics.java \
-java/awt/Frame.java \
-java/awt/Graphics.java \
-java/awt/Graphics2D.java \
-java/awt/GraphicsConfiguration.java \
-java/awt/IllegalComponentStateException.java \
-java/awt/Image.java \
-java/awt/Insets.java \
-java/awt/ItemSelectable.java \
-java/awt/Label.java \
-java/awt/LayoutManager.java \
-java/awt/LayoutManager2.java \
-java/awt/List.java \
-java/awt/Menu.java \
-java/awt/MenuBar.java \
-java/awt/MenuComponent.java \
-java/awt/MenuContainer.java \
-java/awt/MenuItem.java \
-java/awt/MenuShortcut.java \
-java/awt/Paint.java \
-java/awt/PaintContext.java \
-java/awt/Panel.java \
-java/awt/Point.java \
-java/awt/PopupMenu.java \
-java/awt/Rectangle.java \
-java/awt/RenderingHints.java \
-java/awt/ScrollPane.java \
-java/awt/Scrollbar.java \
-java/awt/Shape.java \
-java/awt/TextArea.java \
-java/awt/TextComponent.java \
-java/awt/TextField.java \
-java/awt/Toolkit.java \
-java/awt/Transparency.java \
-java/awt/Window.java \
-java/awt/color/ColorSpace.java \
-java/awt/color/ICC_ColorSpace.java \
-java/awt/color/ICC_Profile.java \
-java/awt/datatransfer/Clipboard.java \
-java/awt/event/AWTEventListener.java \
-java/awt/event/ActionEvent.java \
-java/awt/event/ActionListener.java \
-java/awt/event/AdjustmentEvent.java \
-java/awt/event/AdjustmentListener.java \
-java/awt/event/ComponentAdapter.java \
-java/awt/event/ComponentEvent.java \
-java/awt/event/ComponentListener.java \
-java/awt/event/ContainerAdapter.java \
-java/awt/event/ContainerEvent.java \
-java/awt/event/ContainerListener.java \
-java/awt/event/FocusAdapter.java \
-java/awt/event/FocusEvent.java \
-java/awt/event/FocusListener.java \
-java/awt/event/HierarchyBoundsAdapter.java \
-java/awt/event/HierarchyBoundsListener.java \
-java/awt/event/HierarchyEvent.java \
-java/awt/event/HierarchyListener.java \
-java/awt/event/InputEvent.java \
-java/awt/event/InputMethodEvent.java \
-java/awt/event/InputMethodListener.java \
-java/awt/event/InvocationEvent.java \
-java/awt/event/ItemEvent.java \
-java/awt/event/ItemListener.java \
-java/awt/event/KeyAdapter.java \
-java/awt/event/KeyEvent.java \
-java/awt/event/KeyListener.java \
-java/awt/event/MouseAdapter.java \
-java/awt/event/MouseEvent.java \
-java/awt/event/MouseListener.java \
-java/awt/event/MouseMotionAdapter.java \
-java/awt/event/MouseMotionListener.java \
-java/awt/event/PaintEvent.java \
-java/awt/event/TextEvent.java \
-java/awt/event/TextListener.java \
-java/awt/event/WindowAdapter.java \
-java/awt/event/WindowEvent.java \
-java/awt/event/WindowListener.java \
-java/awt/geom/AffineTransform.java \
-java/awt/geom/Dimension2D.java \
-java/awt/geom/Ellipse2D.java \
-java/awt/geom/IllegalPathStateException.java \
-java/awt/geom/NoninvertibleTransformException.java \
-java/awt/geom/PathIterator.java \
-java/awt/geom/Point2D.java \
-java/awt/geom/Rectangle2D.java \
-java/awt/geom/RectangularShape.java \
-java/awt/image/BufferedImage.java \
-java/awt/image/ColorModel.java \
-java/awt/image/ComponentColorModel.java \
-java/awt/image/ComponentSampleModel.java \
-java/awt/image/DataBuffer.java \
-java/awt/image/DataBufferByte.java \
-java/awt/image/DataBufferInt.java \
-java/awt/image/DataBufferUShort.java \
-java/awt/image/DirectColorModel.java \
-java/awt/image/ImageConsumer.java \
-java/awt/image/ImageObserver.java \
-java/awt/image/ImageProducer.java \
-java/awt/image/IndexColorModel.java \
-java/awt/image/PackedColorModel.java \
-java/awt/image/Raster.java \
-java/awt/image/RasterOp.java \
-java/awt/image/SampleModel.java \
-java/awt/image/SinglePixelPackedSampleModel.java \
-java/awt/image/WritableRaster.java \
-java/awt/peer/ButtonPeer.java \
-java/awt/peer/CanvasPeer.java \
-java/awt/peer/CheckboxMenuItemPeer.java \
-java/awt/peer/CheckboxPeer.java \
-java/awt/peer/ChoicePeer.java \
-java/awt/peer/ComponentPeer.java \
-java/awt/peer/ContainerPeer.java \
-java/awt/peer/DialogPeer.java \
-java/awt/peer/FileDialogPeer.java \
-java/awt/peer/FontPeer.java \
-java/awt/peer/FramePeer.java \
-java/awt/peer/LabelPeer.java \
-java/awt/peer/LightweightPeer.java \
-java/awt/peer/ListPeer.java \
-java/awt/peer/MenuBarPeer.java \
-java/awt/peer/MenuComponentPeer.java \
-java/awt/peer/MenuItemPeer.java \
-java/awt/peer/MenuPeer.java \
-java/awt/peer/PanelPeer.java \
-java/awt/peer/PopupMenuPeer.java \
-java/awt/peer/ScrollPanePeer.java \
-java/awt/peer/ScrollbarPeer.java \
-java/awt/peer/TextAreaPeer.java \
-java/awt/peer/TextComponentPeer.java \
-java/awt/peer/TextFieldPeer.java \
-java/awt/peer/WindowPeer.java \
-java/beans/beancontext/BeanContext.java \
-java/beans/beancontext/BeanContextChild.java \
-java/beans/beancontext/BeanContextChildComponentProxy.java \
-java/beans/beancontext/BeanContextChildSupport.java \
-java/beans/beancontext/BeanContextContainerProxy.java \
-java/beans/beancontext/BeanContextEvent.java \
-java/beans/beancontext/BeanContextMembershipEvent.java \
-java/beans/beancontext/BeanContextMembershipListener.java \
-java/beans/beancontext/BeanContextProxy.java \
-java/beans/beancontext/BeanContextServiceAvailableEvent.java \
-java/beans/beancontext/BeanContextServiceProvider.java \
-java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \
-java/beans/beancontext/BeanContextServiceRevokedEvent.java \
-java/beans/beancontext/BeanContextServiceRevokedListener.java \
-java/beans/beancontext/BeanContextServices.java \
-java/beans/beancontext/BeanContextServicesListener.java \
-java/beans/BeanDescriptor.java \
-java/beans/BeanInfo.java \
-java/beans/Beans.java \
-java/beans/Customizer.java \
-java/beans/DesignMode.java \
-java/beans/EventSetDescriptor.java \
-java/beans/FeatureDescriptor.java \
-java/beans/IndexedPropertyDescriptor.java \
-java/beans/IntrospectionException.java \
-java/beans/Introspector.java \
-java/beans/MethodDescriptor.java \
-java/beans/ParameterDescriptor.java \
-java/beans/PropertyChangeEvent.java \
-java/beans/PropertyChangeListener.java \
-java/beans/PropertyChangeSupport.java \
-java/beans/PropertyDescriptor.java \
-java/beans/PropertyEditor.java \
-java/beans/PropertyEditorManager.java \
-java/beans/PropertyEditorSupport.java \
-java/beans/PropertyVetoException.java \
-java/beans/SimpleBeanInfo.java \
-java/beans/VetoableChangeListener.java \
-java/beans/VetoableChangeSupport.java \
-java/beans/Visibility.java
-
-
-built_java_source_files = java/lang/ConcreteProcess.java
-
-ordinary_java_source_files = $(convert_source_files) \
-$(awt_java_source_files) \
-gnu/gcj/RawData.java \
-gnu/gcj/io/DefaultMimeTypes.java \
-gnu/gcj/io/MimeTypes.java \
-gnu/gcj/io/SimpleSHSStream.java \
-gnu/gcj/jni/NativeThread.java \
-gnu/gcj/math/MPN.java \
-gnu/gcj/protocol/file/Connection.java \
-gnu/gcj/protocol/file/Handler.java \
-gnu/gcj/protocol/http/Connection.java \
-gnu/gcj/protocol/http/Handler.java \
-gnu/gcj/protocol/jar/Connection.java \
-gnu/gcj/protocol/jar/Handler.java \
-gnu/gcj/runtime/FileDeleter.java \
-gnu/gcj/runtime/FirstThread.java \
-gnu/gcj/runtime/VMClassLoader.java \
-gnu/gcj/text/BaseBreakIterator.java \
-gnu/gcj/text/CharacterBreakIterator.java \
-gnu/gcj/text/LineBreakIterator.java \
-gnu/gcj/text/LocaleData_en.java \
-gnu/gcj/text/LocaleData_en_US.java \
-gnu/gcj/text/SentenceBreakIterator.java \
-gnu/gcj/text/WordBreakIterator.java \
-gnu/gcj/util/EnumerationChain.java \
-gnu/java/io/ClassLoaderObjectInputStream.java \
-gnu/java/io/NullOutputStream.java \
-gnu/java/io/ObjectIdentityWrapper.java \
-gnu/java/lang/ArrayHelper.java \
-gnu/java/lang/ClassHelper.java \
-gnu/java/lang/reflect/TypeSignature.java \
-gnu/java/security/provider/Gnu.java \
-gnu/java/security/provider/SHA.java \
-gnu/java/security/provider/SHA1PRNG.java \
-java/io/BlockDataException.java \
-java/io/BufferedInputStream.java \
-java/io/BufferedOutputStream.java \
-java/io/BufferedReader.java \
-java/io/BufferedWriter.java \
-java/io/ByteArrayInputStream.java \
-java/io/ByteArrayOutputStream.java \
-java/io/CharArrayReader.java \
-java/io/CharArrayWriter.java \
-java/io/CharConversionException.java \
-java/io/DataInput.java \
-java/io/DataInputStream.java \
-java/io/DataOutput.java \
-java/io/DataOutputStream.java \
-java/io/EOFException.java \
-java/io/Externalizable.java \
-java/io/File.java \
-java/io/FileDescriptor.java \
-java/io/FileInputStream.java \
-java/io/FileNotFoundException.java \
-java/io/FileOutputStream.java \
-java/io/FileReader.java \
-java/io/FileWriter.java \
-java/io/FilenameFilter.java \
-java/io/FilterInputStream.java \
-java/io/FilterOutputStream.java \
-java/io/FilterReader.java \
-java/io/FilterWriter.java \
-java/io/IOException.java \
-java/io/InputStream.java \
-java/io/InputStreamReader.java \
-java/io/InterruptedIOException.java \
-java/io/InvalidClassException.java \
-java/io/InvalidObjectException.java \
-java/io/LineNumberInputStream.java \
-java/io/LineNumberReader.java \
-java/io/NotActiveException.java \
-java/io/NotSerializableException.java \
-java/io/ObjectInput.java \
-java/io/ObjectInputStream.java \
-java/io/ObjectInputValidation.java \
-java/io/ObjectOutput.java \
-java/io/ObjectOutputStream.java \
-java/io/ObjectStreamClass.java \
-java/io/ObjectStreamConstants.java \
-java/io/ObjectStreamException.java \
-java/io/ObjectStreamField.java \
-java/io/OptionalDataException.java \
-java/io/OutputStream.java \
-java/io/OutputStreamWriter.java \
-java/io/PipedInputStream.java \
-java/io/PipedOutputStream.java \
-java/io/PipedReader.java \
-java/io/PipedWriter.java \
-java/io/PrintStream.java \
-java/io/PrintWriter.java \
-java/io/PushbackInputStream.java \
-java/io/PushbackReader.java \
-java/io/RandomAccessFile.java \
-java/io/Reader.java \
-java/io/Replaceable.java \
-java/io/Resolvable.java \
-java/io/SequenceInputStream.java \
-java/io/Serializable.java \
-java/io/SerializablePermission.java \
-java/io/StreamCorruptedException.java \
-java/io/StreamTokenizer.java \
-java/io/StringBufferInputStream.java \
-java/io/StringReader.java \
-java/io/StringWriter.java \
-java/io/SyncFailedException.java \
-java/io/UTFDataFormatException.java \
-java/io/UnsupportedEncodingException.java \
-java/io/WriteAbortedException.java \
-java/io/Writer.java \
-java/lang/AbstractMethodError.java \
-java/lang/ArithmeticException.java \
-java/lang/ArrayIndexOutOfBoundsException.java \
-java/lang/ArrayStoreException.java \
-java/lang/Boolean.java \
-java/lang/Byte.java \
-java/lang/Character.java \
-java/lang/ClassCastException.java \
-java/lang/ClassCircularityError.java \
-java/lang/ClassFormatError.java \
-java/lang/ClassLoader.java \
-java/lang/ClassNotFoundException.java \
-java/lang/CloneNotSupportedException.java \
-java/lang/Cloneable.java \
-java/lang/Comparable.java \
-java/lang/Compiler.java \
-java/lang/Double.java \
-java/lang/Error.java \
-java/lang/Exception.java \
-java/lang/ExceptionInInitializerError.java \
-java/lang/Float.java \
-java/lang/IllegalAccessError.java \
-java/lang/IllegalAccessException.java \
-java/lang/IllegalArgumentException.java \
-java/lang/IllegalMonitorStateException.java \
-java/lang/IllegalStateException.java \
-java/lang/IllegalThreadStateException.java \
-java/lang/IncompatibleClassChangeError.java \
-java/lang/IndexOutOfBoundsException.java \
-java/lang/InstantiationError.java \
-java/lang/InstantiationException.java \
-java/lang/Integer.java \
-java/lang/InternalError.java \
-java/lang/InterruptedException.java \
-java/lang/LinkageError.java \
-java/lang/Long.java \
-java/lang/Math.java \
-java/lang/NegativeArraySizeException.java \
-java/lang/NoClassDefFoundError.java \
-java/lang/NoSuchFieldError.java \
-java/lang/NoSuchFieldException.java \
-java/lang/NoSuchMethodError.java \
-java/lang/NoSuchMethodException.java \
-java/lang/NullPointerException.java \
-java/lang/Number.java \
-java/lang/NumberFormatException.java \
-java/lang/OutOfMemoryError.java \
-java/lang/Process.java \
-java/lang/Runnable.java \
-java/lang/Runtime.java \
-java/lang/RuntimeException.java \
-java/lang/SecurityException.java \
-java/lang/SecurityManager.java \
-java/lang/Short.java \
-java/lang/StackOverflowError.java \
-java/lang/String.java \
-java/lang/StringBuffer.java \
-java/lang/StringIndexOutOfBoundsException.java \
-java/lang/System.java \
-java/lang/Thread.java \
-java/lang/ThreadDeath.java \
-java/lang/ThreadGroup.java \
-java/lang/Throwable.java \
-java/lang/UnknownError.java \
-java/lang/UnsatisfiedLinkError.java \
-java/lang/UnsupportedOperationException.java \
-java/lang/VerifyError.java \
-java/lang/VirtualMachineError.java \
-java/lang/Void.java \
-java/lang/reflect/AccessibleObject.java \
-java/lang/reflect/Array.java \
-java/lang/reflect/Constructor.java \
-java/lang/reflect/Field.java \
-java/lang/reflect/InvocationTargetException.java \
-java/lang/reflect/Member.java \
-java/lang/reflect/Method.java \
-java/lang/reflect/Modifier.java \
-java/math/BigDecimal.java \
-java/math/BigInteger.java \
-java/net/BindException.java \
-java/net/ConnectException.java \
-java/net/ContentHandler.java \
-java/net/ContentHandlerFactory.java \
-java/net/DatagramPacket.java \
-java/net/DatagramSocket.java \
-java/net/DatagramSocketImpl.java \
-java/net/FileNameMap.java \
-java/net/HttpURLConnection.java \
-java/net/InetAddress.java \
-java/net/JarURLConnection.java \
-java/net/MalformedURLException.java \
-java/net/MulticastSocket.java \
-java/net/NoRouteToHostException.java \
-java/net/PlainDatagramSocketImpl.java \
-java/net/PlainSocketImpl.java \
-java/net/ProtocolException.java \
-java/net/ServerSocket.java \
-java/net/Socket.java \
-java/net/SocketException.java \
-java/net/SocketImpl.java \
-java/net/SocketImplFactory.java \
-java/net/SocketOptions.java \
-java/net/URL.java \
-java/net/URLClassLoader.java \
-java/net/URLConnection.java \
-java/net/URLDecoder.java \
-java/net/URLEncoder.java \
-java/net/URLStreamHandler.java \
-java/net/URLStreamHandlerFactory.java \
-java/net/UnknownHostException.java \
-java/net/UnknownServiceException.java \
-java/security/AlgorithmParameterGeneratorSpi.java \
-java/security/BasicPermission.java \
-java/security/DigestException.java \
-java/security/DigestOutputStream.java \
-java/security/GeneralSecurityException.java \
-java/security/Guard.java \
-java/security/InvalidAlgorithmParameterException.java \
-java/security/InvalidKeyException.java \
-java/security/InvalidParameterException.java \
-java/security/Key.java \
-java/security/KeyException.java \
-java/security/KeyPair.java \
-java/security/KeyPairGenerator.java \
-java/security/KeyPairGeneratorSpi.java \
-java/security/MessageDigest.java \
-java/security/NoSuchAlgorithmException.java \
-java/security/NoSuchProviderException.java \
-java/security/Permission.java \
-java/security/PermissionCollection.java \
-java/security/Principal.java \
-java/security/PrivateKey.java \
-java/security/Provider.java \
-java/security/PublicKey.java \
-java/security/SecureClassLoader.java \
-java/security/SecureRandom.java \
-java/security/Security.java \
-java/security/Signature.java \
-java/security/SignatureException.java \
-java/security/cert/CRL.java \
-java/security/cert/CRLException.java \
-java/security/cert/Certificate.java \
-java/security/cert/CertificateEncodingException.java \
-java/security/cert/CertificateException.java \
-java/security/cert/CertificateExpiredException.java \
-java/security/cert/CertificateFactory.java \
-java/security/cert/CertificateFactorySpi.java \
-java/security/cert/CertificateNotYetValidException.java \
-java/security/cert/CertificateParsingException.java \
-java/security/cert/X509CRL.java \
-java/security/cert/X509CRLEntry.java \
-java/security/cert/X509Certificate.java \
-java/security/cert/X509Extension.java \
-java/security/interfaces/DSAKey.java \
-java/security/interfaces/DSAParams.java \
-java/security/interfaces/DSAPrivateKey.java \
-java/security/interfaces/DSAPublicKey.java \
-java/security/interfaces/RSAPrivateCrtKey.java \
-java/security/interfaces/RSAPrivateKey.java \
-java/security/interfaces/RSAPublicKey.java \
-java/security/spec/AlgorithmParameterSpec.java \
-java/security/spec/InvalidKeySpecException.java \
-java/security/spec/InvalidParameterSpecException.java \
-java/security/spec/KeySpec.java \
-java/security/spec/RSAPrivateCrtKeySpec.java \
-java/security/spec/RSAPrivateKeySpec.java \
-java/security/spec/RSAPublicKeySpec.java \
-java/sql/CallableStatement.java \
-java/sql/Connection.java \
-java/sql/DataTruncation.java \
-java/sql/DatabaseMetaData.java \
-java/sql/Date.java \
-java/sql/Driver.java \
-java/sql/DriverManager.java \
-java/sql/DriverPropertyInfo.java \
-java/sql/PreparedStatement.java \
-java/sql/ResultSet.java \
-java/sql/ResultSetMetaData.java \
-java/sql/SQLException.java \
-java/sql/SQLWarning.java \
-java/sql/Statement.java \
-java/sql/Time.java \
-java/sql/Timestamp.java \
-java/sql/Types.java \
-java/text/BreakIterator.java \
-java/text/CharacterIterator.java \
-java/text/ChoiceFormat.java \
-java/text/CollationElementIterator.java \
-java/text/CollationKey.java \
-java/text/Collator.java \
-java/text/DateFormat.java \
-java/text/DateFormatSymbols.java \
-java/text/DecimalFormat.java \
-java/text/DecimalFormatSymbols.java \
-java/text/FieldPosition.java \
-java/text/Format.java \
-java/text/MessageFormat.java \
-java/text/NumberFormat.java \
-java/text/ParseException.java \
-java/text/ParsePosition.java \
-java/text/RuleBasedCollator.java \
-java/text/SimpleDateFormat.java \
-java/text/StringCharacterIterator.java \
-java/util/AbstractCollection.java \
-java/util/AbstractList.java \
-java/util/AbstractMap.java \
-java/util/AbstractSequentialList.java \
-java/util/AbstractSet.java \
-java/util/ArrayList.java \
-java/util/Arrays.java \
-java/util/BasicMapEntry.java \
-java/util/BitSet.java \
-java/util/Bucket.java \
-java/util/Calendar.java \
-java/util/Collection.java \
-java/util/Comparator.java \
-java/util/ConcurrentModificationException.java \
-java/util/Date.java \
-java/util/Dictionary.java \
-java/util/EmptyStackException.java \
-java/util/Enumeration.java \
-java/util/EventListener.java \
-java/util/EventObject.java \
-java/util/GregorianCalendar.java \
-java/util/HashMap.java \
-java/util/Hashtable.java \
-java/util/Iterator.java \
-java/util/List.java \
-java/util/ListIterator.java \
-java/util/ListResourceBundle.java \
-java/util/Locale.java \
-java/util/Map.java \
-java/util/MissingResourceException.java \
-java/util/NoSuchElementException.java \
-java/util/Observable.java \
-java/util/Observer.java \
-java/util/Properties.java \
-java/util/PropertyPermission.java \
-java/util/PropertyResourceBundle.java \
-java/util/Random.java \
-java/util/ResourceBundle.java \
-java/util/Set.java \
-java/util/SimpleTimeZone.java \
-java/util/SortedMap.java \
-java/util/SortedSet.java \
-java/util/Stack.java \
-java/util/StringTokenizer.java \
-java/util/TimeZone.java \
-java/util/Timer.java \
-java/util/TimerTask.java \
-java/util/TooManyListenersException.java \
-java/util/Vector.java \
-java/util/jar/Attributes.java \
-java/util/jar/JarEntry.java \
-java/util/jar/JarException.java \
-java/util/jar/JarFile.java \
-java/util/jar/JarInputStream.java \
-java/util/jar/JarOutputStream.java \
-java/util/jar/Manifest.java \
-java/util/zip/Adler32.java \
-java/util/zip/CRC32.java \
-java/util/zip/CheckedInputStream.java \
-java/util/zip/CheckedOutputStream.java \
-java/util/zip/Checksum.java \
-java/util/zip/DataFormatException.java \
-java/util/zip/Deflater.java \
-java/util/zip/DeflaterOutputStream.java \
-java/util/zip/GZIPInputStream.java \
-java/util/zip/GZIPOutputStream.java \
-java/util/zip/Inflater.java \
-java/util/zip/InflaterInputStream.java \
-java/util/zip/ZipConstants.java \
-java/util/zip/ZipEntry.java \
-java/util/zip/ZipException.java \
-java/util/zip/ZipFile.java \
-java/util/zip/ZipInputStream.java \
-java/util/zip/ZipOutputStream.java
-
-
-java_source_files = $(ordinary_java_source_files) $(special_java_source_files)
-
-c_source_files = \
- java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \
- java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \
- java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \
- java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \
- java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \
- java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \
- java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \
- java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \
- java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \
- java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c \
- java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \
- java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \
- java/lang/k_cos.c java/lang/s_sin.c
-
-
-#java/awt/natToolkit.cc
-
-nat_source_files = \
-gnu/gcj/convert/JIS0208_to_Unicode.cc \
-gnu/gcj/convert/JIS0212_to_Unicode.cc \
-gnu/gcj/convert/Unicode_to_JIS.cc \
-gnu/gcj/convert/natIconv.cc \
-gnu/gcj/convert/natInput_EUCJIS.cc \
-gnu/gcj/convert/natInput_SJIS.cc \
-gnu/gcj/convert/natOutput_EUCJIS.cc \
-gnu/gcj/convert/natOutput_SJIS.cc \
-gnu/gcj/io/natSimpleSHSStream.cc \
-gnu/gcj/io/shs.cc \
-gnu/gcj/jni/natNativeThread.cc \
-gnu/gcj/runtime/natFirstThread.cc \
-java/io/natFile.cc \
-java/io/natFileDescriptor.cc \
-java/io/natObjectInputStream.cc \
-java/io/natObjectOutputStream.cc \
-java/lang/natCharacter.cc \
-java/lang/natClass.cc \
-java/lang/natClassLoader.cc \
-java/lang/natConcreteProcess.cc \
-java/lang/natDouble.cc \
-java/lang/natFloat.cc \
-java/lang/natMath.cc \
-java/lang/natObject.cc \
-java/lang/natRuntime.cc \
-java/lang/natString.cc \
-java/lang/natSystem.cc \
-java/lang/natThread.cc \
-java/lang/natThrowable.cc \
-java/lang/reflect/natArray.cc \
-java/lang/reflect/natConstructor.cc \
-java/lang/reflect/natField.cc \
-java/lang/reflect/natMethod.cc \
-java/net/natInetAddress.cc \
-java/net/natPlainDatagramSocketImpl.cc \
-java/net/natPlainSocketImpl.cc \
-java/text/natCollator.cc \
-java/util/natGregorianCalendar.cc \
-java/util/zip/natDeflater.cc \
-java/util/zip/natInflater.cc
-
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "JC1FLAGS=$(JC1FLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
-
-
-CONFIG_STATUS_DEPENDENCIES = $(libgcj_basedir)/configure.host
-
-MAKEOVERRIDES =
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_HEADER = ./include/config.h
-CONFIG_CLEAN_FILES = libgcj.spec libgcj-test.spec
-LIBRARIES = $(toolexeclib_LIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I./include
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libgcjdata_a_LIBADD =
-@NEEDS_DATA_START_TRUE@libgcjdata_a_OBJECTS = libgcjdata.$(OBJEXT)
-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-
-libgcj_la_OBJECTS = prims.lo posix.lo jni.lo exception.lo resolve.lo \
-defineclass.lo interpret.lo name-finder.lo
-@NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT)
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-
-jv_convert_OBJECTS =
-gij_OBJECTS = gij.$(OBJEXT)
-gen_from_JIS_OBJECTS =
-gen_from_JIS_LDFLAGS =
-SCRIPTS = $(bin_SCRIPTS)
-
-CXXFLAGS = @CXXFLAGS@
-CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA = $(data_DATA) $(toolexeclib_DATA)
-
-DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \
-THANKS acinclude.m4 aclocal.m4 configure configure.in \
-libgcj-test.spec.in libgcj.spec.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
-DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
-.deps/$(srcdir)/$(CONVERT_DIR)/make-trie.P .deps/boehm.P \
-.deps/defineclass.P .deps/exception.P .deps/gij.P \
-.deps/gnu/gcj/RawData.P .deps/gnu/gcj/awt/BitMaskExtent.P \
-.deps/gnu/gcj/awt/Buffers.P .deps/gnu/gcj/awt/ComponentDataBlitOp.P \
-.deps/gnu/gcj/awt/GLightweightPeer.P \
-.deps/gnu/gcj/convert/BytesToUnicode.P .deps/gnu/gcj/convert/Convert.P \
-.deps/gnu/gcj/convert/IOConverter.P \
-.deps/gnu/gcj/convert/Input_8859_1.P \
-.deps/gnu/gcj/convert/Input_EUCJIS.P \
-.deps/gnu/gcj/convert/Input_JavaSrc.P \
-.deps/gnu/gcj/convert/Input_SJIS.P .deps/gnu/gcj/convert/Input_UTF8.P \
-.deps/gnu/gcj/convert/Input_iconv.P \
-.deps/gnu/gcj/convert/Output_8859_1.P \
-.deps/gnu/gcj/convert/Output_EUCJIS.P \
-.deps/gnu/gcj/convert/Output_JavaSrc.P \
-.deps/gnu/gcj/convert/Output_SJIS.P .deps/gnu/gcj/convert/Output_UTF8.P \
-.deps/gnu/gcj/convert/Output_iconv.P \
-.deps/gnu/gcj/convert/UnicodeToBytes.P \
-.deps/gnu/gcj/io/DefaultMimeTypes.P .deps/gnu/gcj/io/MimeTypes.P \
-.deps/gnu/gcj/io/SimpleSHSStream.P .deps/gnu/gcj/jni/NativeThread.P \
-.deps/gnu/gcj/math/MPN.P .deps/gnu/gcj/protocol/file/Connection.P \
-.deps/gnu/gcj/protocol/file/Handler.P \
-.deps/gnu/gcj/protocol/http/Connection.P \
-.deps/gnu/gcj/protocol/http/Handler.P \
-.deps/gnu/gcj/protocol/jar/Connection.P \
-.deps/gnu/gcj/protocol/jar/Handler.P \
-.deps/gnu/gcj/runtime/FileDeleter.P .deps/gnu/gcj/runtime/FirstThread.P \
-.deps/gnu/gcj/runtime/VMClassLoader.P \
-.deps/gnu/gcj/text/BaseBreakIterator.P \
-.deps/gnu/gcj/text/CharacterBreakIterator.P \
-.deps/gnu/gcj/text/LineBreakIterator.P \
-.deps/gnu/gcj/text/LocaleData_en.P \
-.deps/gnu/gcj/text/LocaleData_en_US.P \
-.deps/gnu/gcj/text/SentenceBreakIterator.P \
-.deps/gnu/gcj/text/WordBreakIterator.P \
-.deps/gnu/gcj/util/EnumerationChain.P \
-.deps/gnu/java/beans/BeanInfoEmbryo.P \
-.deps/gnu/java/beans/EmptyBeanInfo.P \
-.deps/gnu/java/beans/ExplicitBeanInfo.P \
-.deps/gnu/java/beans/IntrospectionIncubator.P \
-.deps/gnu/java/beans/editors/ColorEditor.P \
-.deps/gnu/java/beans/editors/FontEditor.P \
-.deps/gnu/java/beans/editors/NativeBooleanEditor.P \
-.deps/gnu/java/beans/editors/NativeByteEditor.P \
-.deps/gnu/java/beans/editors/NativeDoubleEditor.P \
-.deps/gnu/java/beans/editors/NativeFloatEditor.P \
-.deps/gnu/java/beans/editors/NativeIntEditor.P \
-.deps/gnu/java/beans/editors/NativeLongEditor.P \
-.deps/gnu/java/beans/editors/NativeShortEditor.P \
-.deps/gnu/java/beans/editors/StringEditor.P \
-.deps/gnu/java/beans/info/ComponentBeanInfo.P \
-.deps/gnu/java/io/ClassLoaderObjectInputStream.P \
-.deps/gnu/java/io/NullOutputStream.P \
-.deps/gnu/java/io/ObjectIdentityWrapper.P \
-.deps/gnu/java/lang/ArrayHelper.P .deps/gnu/java/lang/ClassHelper.P \
-.deps/gnu/java/lang/reflect/TypeSignature.P \
-.deps/gnu/java/security/provider/Gnu.P \
-.deps/gnu/java/security/provider/SHA.P \
-.deps/gnu/java/security/provider/SHA1PRNG.P .deps/interpret.P \
-.deps/java/applet/Applet.P .deps/java/applet/AppletContext.P \
-.deps/java/applet/AppletStub.P .deps/java/applet/AudioClip.P \
-.deps/java/awt/AWTError.P .deps/java/awt/AWTEvent.P \
-.deps/java/awt/AWTEventMulticaster.P .deps/java/awt/AWTException.P \
-.deps/java/awt/ActiveEvent.P .deps/java/awt/Adjustable.P \
-.deps/java/awt/BorderLayout.P .deps/java/awt/Button.P \
-.deps/java/awt/Canvas.P .deps/java/awt/Checkbox.P \
-.deps/java/awt/CheckboxGroup.P .deps/java/awt/CheckboxMenuItem.P \
-.deps/java/awt/Choice.P .deps/java/awt/Color.P \
-.deps/java/awt/Component.P .deps/java/awt/ComponentOrientation.P \
-.deps/java/awt/Container.P .deps/java/awt/Cursor.P \
-.deps/java/awt/Dialog.P .deps/java/awt/Dimension.P \
-.deps/java/awt/Event.P .deps/java/awt/EventDispatchThread.P \
-.deps/java/awt/EventQueue.P .deps/java/awt/FileDialog.P \
-.deps/java/awt/Font.P .deps/java/awt/FontMetrics.P \
-.deps/java/awt/Frame.P .deps/java/awt/Graphics.P \
-.deps/java/awt/Graphics2D.P .deps/java/awt/GraphicsConfiguration.P \
-.deps/java/awt/IllegalComponentStateException.P .deps/java/awt/Image.P \
-.deps/java/awt/Insets.P .deps/java/awt/ItemSelectable.P \
-.deps/java/awt/Label.P .deps/java/awt/LayoutManager.P \
-.deps/java/awt/LayoutManager2.P .deps/java/awt/List.P \
-.deps/java/awt/Menu.P .deps/java/awt/MenuBar.P \
-.deps/java/awt/MenuComponent.P .deps/java/awt/MenuContainer.P \
-.deps/java/awt/MenuItem.P .deps/java/awt/MenuShortcut.P \
-.deps/java/awt/Paint.P .deps/java/awt/PaintContext.P \
-.deps/java/awt/Panel.P .deps/java/awt/Point.P \
-.deps/java/awt/PopupMenu.P .deps/java/awt/Rectangle.P \
-.deps/java/awt/RenderingHints.P .deps/java/awt/ScrollPane.P \
-.deps/java/awt/Scrollbar.P .deps/java/awt/Shape.P \
-.deps/java/awt/TextArea.P .deps/java/awt/TextComponent.P \
-.deps/java/awt/TextField.P .deps/java/awt/Toolkit.P \
-.deps/java/awt/Transparency.P .deps/java/awt/Window.P \
-.deps/java/awt/color/ColorSpace.P .deps/java/awt/color/ICC_ColorSpace.P \
-.deps/java/awt/color/ICC_Profile.P \
-.deps/java/awt/datatransfer/Clipboard.P \
-.deps/java/awt/event/AWTEventListener.P \
-.deps/java/awt/event/ActionEvent.P \
-.deps/java/awt/event/ActionListener.P \
-.deps/java/awt/event/AdjustmentEvent.P \
-.deps/java/awt/event/AdjustmentListener.P \
-.deps/java/awt/event/ComponentAdapter.P \
-.deps/java/awt/event/ComponentEvent.P \
-.deps/java/awt/event/ComponentListener.P \
-.deps/java/awt/event/ContainerAdapter.P \
-.deps/java/awt/event/ContainerEvent.P \
-.deps/java/awt/event/ContainerListener.P \
-.deps/java/awt/event/FocusAdapter.P .deps/java/awt/event/FocusEvent.P \
-.deps/java/awt/event/FocusListener.P \
-.deps/java/awt/event/HierarchyBoundsAdapter.P \
-.deps/java/awt/event/HierarchyBoundsListener.P \
-.deps/java/awt/event/HierarchyEvent.P \
-.deps/java/awt/event/HierarchyListener.P \
-.deps/java/awt/event/InputEvent.P \
-.deps/java/awt/event/InputMethodEvent.P \
-.deps/java/awt/event/InputMethodListener.P \
-.deps/java/awt/event/InvocationEvent.P .deps/java/awt/event/ItemEvent.P \
-.deps/java/awt/event/ItemListener.P .deps/java/awt/event/KeyAdapter.P \
-.deps/java/awt/event/KeyEvent.P .deps/java/awt/event/KeyListener.P \
-.deps/java/awt/event/MouseAdapter.P .deps/java/awt/event/MouseEvent.P \
-.deps/java/awt/event/MouseListener.P \
-.deps/java/awt/event/MouseMotionAdapter.P \
-.deps/java/awt/event/MouseMotionListener.P \
-.deps/java/awt/event/PaintEvent.P .deps/java/awt/event/TextEvent.P \
-.deps/java/awt/event/TextListener.P \
-.deps/java/awt/event/WindowAdapter.P .deps/java/awt/event/WindowEvent.P \
-.deps/java/awt/event/WindowListener.P \
-.deps/java/awt/geom/AffineTransform.P .deps/java/awt/geom/Dimension2D.P \
-.deps/java/awt/geom/Ellipse2D.P \
-.deps/java/awt/geom/IllegalPathStateException.P \
-.deps/java/awt/geom/NoninvertibleTransformException.P \
-.deps/java/awt/geom/PathIterator.P .deps/java/awt/geom/Point2D.P \
-.deps/java/awt/geom/Rectangle2D.P \
-.deps/java/awt/geom/RectangularShape.P \
-.deps/java/awt/image/BufferedImage.P .deps/java/awt/image/ColorModel.P \
-.deps/java/awt/image/ComponentColorModel.P \
-.deps/java/awt/image/ComponentSampleModel.P \
-.deps/java/awt/image/DataBuffer.P .deps/java/awt/image/DataBufferByte.P \
-.deps/java/awt/image/DataBufferInt.P \
-.deps/java/awt/image/DataBufferUShort.P \
-.deps/java/awt/image/DirectColorModel.P \
-.deps/java/awt/image/ImageConsumer.P \
-.deps/java/awt/image/ImageObserver.P \
-.deps/java/awt/image/ImageProducer.P \
-.deps/java/awt/image/IndexColorModel.P \
-.deps/java/awt/image/PackedColorModel.P .deps/java/awt/image/Raster.P \
-.deps/java/awt/image/RasterOp.P .deps/java/awt/image/SampleModel.P \
-.deps/java/awt/image/SinglePixelPackedSampleModel.P \
-.deps/java/awt/image/WritableRaster.P .deps/java/awt/peer/ButtonPeer.P \
-.deps/java/awt/peer/CanvasPeer.P \
-.deps/java/awt/peer/CheckboxMenuItemPeer.P \
-.deps/java/awt/peer/CheckboxPeer.P .deps/java/awt/peer/ChoicePeer.P \
-.deps/java/awt/peer/ComponentPeer.P .deps/java/awt/peer/ContainerPeer.P \
-.deps/java/awt/peer/DialogPeer.P .deps/java/awt/peer/FileDialogPeer.P \
-.deps/java/awt/peer/FontPeer.P .deps/java/awt/peer/FramePeer.P \
-.deps/java/awt/peer/LabelPeer.P .deps/java/awt/peer/LightweightPeer.P \
-.deps/java/awt/peer/ListPeer.P .deps/java/awt/peer/MenuBarPeer.P \
-.deps/java/awt/peer/MenuComponentPeer.P \
-.deps/java/awt/peer/MenuItemPeer.P .deps/java/awt/peer/MenuPeer.P \
-.deps/java/awt/peer/PanelPeer.P .deps/java/awt/peer/PopupMenuPeer.P \
-.deps/java/awt/peer/ScrollPanePeer.P \
-.deps/java/awt/peer/ScrollbarPeer.P .deps/java/awt/peer/TextAreaPeer.P \
-.deps/java/awt/peer/TextComponentPeer.P \
-.deps/java/awt/peer/TextFieldPeer.P .deps/java/awt/peer/WindowPeer.P \
-.deps/java/beans/BeanDescriptor.P .deps/java/beans/BeanInfo.P \
-.deps/java/beans/Beans.P .deps/java/beans/Customizer.P \
-.deps/java/beans/DesignMode.P .deps/java/beans/EventSetDescriptor.P \
-.deps/java/beans/FeatureDescriptor.P \
-.deps/java/beans/IndexedPropertyDescriptor.P \
-.deps/java/beans/IntrospectionException.P \
-.deps/java/beans/Introspector.P .deps/java/beans/MethodDescriptor.P \
-.deps/java/beans/ParameterDescriptor.P \
-.deps/java/beans/PropertyChangeEvent.P \
-.deps/java/beans/PropertyChangeListener.P \
-.deps/java/beans/PropertyChangeSupport.P \
-.deps/java/beans/PropertyDescriptor.P .deps/java/beans/PropertyEditor.P \
-.deps/java/beans/PropertyEditorManager.P \
-.deps/java/beans/PropertyEditorSupport.P \
-.deps/java/beans/PropertyVetoException.P \
-.deps/java/beans/SimpleBeanInfo.P \
-.deps/java/beans/VetoableChangeListener.P \
-.deps/java/beans/VetoableChangeSupport.P .deps/java/beans/Visibility.P \
-.deps/java/beans/beancontext/BeanContext.P \
-.deps/java/beans/beancontext/BeanContextChild.P \
-.deps/java/beans/beancontext/BeanContextChildComponentProxy.P \
-.deps/java/beans/beancontext/BeanContextChildSupport.P \
-.deps/java/beans/beancontext/BeanContextContainerProxy.P \
-.deps/java/beans/beancontext/BeanContextEvent.P \
-.deps/java/beans/beancontext/BeanContextMembershipEvent.P \
-.deps/java/beans/beancontext/BeanContextMembershipListener.P \
-.deps/java/beans/beancontext/BeanContextProxy.P \
-.deps/java/beans/beancontext/BeanContextServiceAvailableEvent.P \
-.deps/java/beans/beancontext/BeanContextServiceProvider.P \
-.deps/java/beans/beancontext/BeanContextServiceProviderBeanInfo.P \
-.deps/java/beans/beancontext/BeanContextServiceRevokedEvent.P \
-.deps/java/beans/beancontext/BeanContextServiceRevokedListener.P \
-.deps/java/beans/beancontext/BeanContextServices.P \
-.deps/java/beans/beancontext/BeanContextServicesListener.P \
-.deps/java/io/BlockDataException.P .deps/java/io/BufferedInputStream.P \
-.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.P \
-.deps/java/io/BufferedWriter.P .deps/java/io/ByteArrayInputStream.P \
-.deps/java/io/ByteArrayOutputStream.P .deps/java/io/CharArrayReader.P \
-.deps/java/io/CharArrayWriter.P .deps/java/io/CharConversionException.P \
-.deps/java/io/DataInput.P .deps/java/io/DataInputStream.P \
-.deps/java/io/DataOutput.P .deps/java/io/DataOutputStream.P \
-.deps/java/io/EOFException.P .deps/java/io/Externalizable.P \
-.deps/java/io/File.P .deps/java/io/FileDescriptor.P \
-.deps/java/io/FileInputStream.P .deps/java/io/FileNotFoundException.P \
-.deps/java/io/FileOutputStream.P .deps/java/io/FileReader.P \
-.deps/java/io/FileWriter.P .deps/java/io/FilenameFilter.P \
-.deps/java/io/FilterInputStream.P .deps/java/io/FilterOutputStream.P \
-.deps/java/io/FilterReader.P .deps/java/io/FilterWriter.P \
-.deps/java/io/IOException.P .deps/java/io/InputStream.P \
-.deps/java/io/InputStreamReader.P \
-.deps/java/io/InterruptedIOException.P \
-.deps/java/io/InvalidClassException.P \
-.deps/java/io/InvalidObjectException.P \
-.deps/java/io/LineNumberInputStream.P .deps/java/io/LineNumberReader.P \
-.deps/java/io/NotActiveException.P \
-.deps/java/io/NotSerializableException.P .deps/java/io/ObjectInput.P \
-.deps/java/io/ObjectInputStream.P .deps/java/io/ObjectInputValidation.P \
-.deps/java/io/ObjectOutput.P .deps/java/io/ObjectOutputStream.P \
-.deps/java/io/ObjectStreamClass.P .deps/java/io/ObjectStreamConstants.P \
-.deps/java/io/ObjectStreamException.P .deps/java/io/ObjectStreamField.P \
-.deps/java/io/OptionalDataException.P .deps/java/io/OutputStream.P \
-.deps/java/io/OutputStreamWriter.P .deps/java/io/PipedInputStream.P \
-.deps/java/io/PipedOutputStream.P .deps/java/io/PipedReader.P \
-.deps/java/io/PipedWriter.P .deps/java/io/PrintStream.P \
-.deps/java/io/PrintWriter.P .deps/java/io/PushbackInputStream.P \
-.deps/java/io/PushbackReader.P .deps/java/io/RandomAccessFile.P \
-.deps/java/io/Reader.P .deps/java/io/Replaceable.P \
-.deps/java/io/Resolvable.P .deps/java/io/SequenceInputStream.P \
-.deps/java/io/Serializable.P .deps/java/io/SerializablePermission.P \
-.deps/java/io/StreamCorruptedException.P \
-.deps/java/io/StreamTokenizer.P .deps/java/io/StringBufferInputStream.P \
-.deps/java/io/StringReader.P .deps/java/io/StringWriter.P \
-.deps/java/io/SyncFailedException.P \
-.deps/java/io/UTFDataFormatException.P \
-.deps/java/io/UnsupportedEncodingException.P \
-.deps/java/io/WriteAbortedException.P .deps/java/io/Writer.P \
-.deps/java/lang/AbstractMethodError.P \
-.deps/java/lang/ArithmeticException.P \
-.deps/java/lang/ArrayIndexOutOfBoundsException.P \
-.deps/java/lang/ArrayStoreException.P .deps/java/lang/Boolean.P \
-.deps/java/lang/Byte.P .deps/java/lang/Character.P \
-.deps/java/lang/Class.P .deps/java/lang/ClassCastException.P \
-.deps/java/lang/ClassCircularityError.P \
-.deps/java/lang/ClassFormatError.P .deps/java/lang/ClassLoader.P \
-.deps/java/lang/ClassNotFoundException.P \
-.deps/java/lang/CloneNotSupportedException.P \
-.deps/java/lang/Cloneable.P .deps/java/lang/Comparable.P \
-.deps/java/lang/Compiler.P .deps/java/lang/ConcreteProcess.P \
-.deps/java/lang/Double.P .deps/java/lang/Error.P \
-.deps/java/lang/Exception.P \
-.deps/java/lang/ExceptionInInitializerError.P .deps/java/lang/Float.P \
-.deps/java/lang/IllegalAccessError.P \
-.deps/java/lang/IllegalAccessException.P \
-.deps/java/lang/IllegalArgumentException.P \
-.deps/java/lang/IllegalMonitorStateException.P \
-.deps/java/lang/IllegalStateException.P \
-.deps/java/lang/IllegalThreadStateException.P \
-.deps/java/lang/IncompatibleClassChangeError.P \
-.deps/java/lang/IndexOutOfBoundsException.P \
-.deps/java/lang/InstantiationError.P \
-.deps/java/lang/InstantiationException.P .deps/java/lang/Integer.P \
-.deps/java/lang/InternalError.P .deps/java/lang/InterruptedException.P \
-.deps/java/lang/LinkageError.P .deps/java/lang/Long.P \
-.deps/java/lang/Math.P .deps/java/lang/NegativeArraySizeException.P \
-.deps/java/lang/NoClassDefFoundError.P \
-.deps/java/lang/NoSuchFieldError.P \
-.deps/java/lang/NoSuchFieldException.P \
-.deps/java/lang/NoSuchMethodError.P \
-.deps/java/lang/NoSuchMethodException.P \
-.deps/java/lang/NullPointerException.P .deps/java/lang/Number.P \
-.deps/java/lang/NumberFormatException.P .deps/java/lang/Object.P \
-.deps/java/lang/OutOfMemoryError.P .deps/java/lang/Process.P \
-.deps/java/lang/Runnable.P .deps/java/lang/Runtime.P \
-.deps/java/lang/RuntimeException.P .deps/java/lang/SecurityException.P \
-.deps/java/lang/SecurityManager.P .deps/java/lang/Short.P \
-.deps/java/lang/StackOverflowError.P .deps/java/lang/String.P \
-.deps/java/lang/StringBuffer.P \
-.deps/java/lang/StringIndexOutOfBoundsException.P \
-.deps/java/lang/System.P .deps/java/lang/Thread.P \
-.deps/java/lang/ThreadDeath.P .deps/java/lang/ThreadGroup.P \
-.deps/java/lang/Throwable.P .deps/java/lang/UnknownError.P \
-.deps/java/lang/UnsatisfiedLinkError.P \
-.deps/java/lang/UnsupportedOperationException.P \
-.deps/java/lang/VerifyError.P .deps/java/lang/VirtualMachineError.P \
-.deps/java/lang/Void.P .deps/java/lang/dtoa.P .deps/java/lang/e_acos.P \
-.deps/java/lang/e_asin.P .deps/java/lang/e_atan2.P \
-.deps/java/lang/e_exp.P .deps/java/lang/e_fmod.P \
-.deps/java/lang/e_log.P .deps/java/lang/e_pow.P \
-.deps/java/lang/e_rem_pio2.P .deps/java/lang/e_remainder.P \
-.deps/java/lang/e_scalb.P .deps/java/lang/e_sqrt.P \
-.deps/java/lang/k_cos.P .deps/java/lang/k_rem_pio2.P \
-.deps/java/lang/k_sin.P .deps/java/lang/k_tan.P .deps/java/lang/mprec.P \
-.deps/java/lang/reflect/AccessibleObject.P \
-.deps/java/lang/reflect/Array.P .deps/java/lang/reflect/Constructor.P \
-.deps/java/lang/reflect/Field.P \
-.deps/java/lang/reflect/InvocationTargetException.P \
-.deps/java/lang/reflect/Member.P .deps/java/lang/reflect/Method.P \
-.deps/java/lang/reflect/Modifier.P .deps/java/lang/s_atan.P \
-.deps/java/lang/s_ceil.P .deps/java/lang/s_copysign.P \
-.deps/java/lang/s_cos.P .deps/java/lang/s_fabs.P \
-.deps/java/lang/s_floor.P .deps/java/lang/s_rint.P \
-.deps/java/lang/s_scalbn.P .deps/java/lang/s_sin.P \
-.deps/java/lang/s_tan.P .deps/java/lang/sf_rint.P \
-.deps/java/lang/strtod.P .deps/java/lang/w_acos.P \
-.deps/java/lang/w_asin.P .deps/java/lang/w_atan2.P \
-.deps/java/lang/w_exp.P .deps/java/lang/w_fmod.P \
-.deps/java/lang/w_log.P .deps/java/lang/w_pow.P \
-.deps/java/lang/w_remainder.P .deps/java/lang/w_sqrt.P \
-.deps/java/math/BigDecimal.P .deps/java/math/BigInteger.P \
-.deps/java/net/BindException.P .deps/java/net/ConnectException.P \
-.deps/java/net/ContentHandler.P .deps/java/net/ContentHandlerFactory.P \
-.deps/java/net/DatagramPacket.P .deps/java/net/DatagramSocket.P \
-.deps/java/net/DatagramSocketImpl.P .deps/java/net/FileNameMap.P \
-.deps/java/net/HttpURLConnection.P .deps/java/net/InetAddress.P \
-.deps/java/net/JarURLConnection.P \
-.deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \
-.deps/java/net/NoRouteToHostException.P \
-.deps/java/net/PlainDatagramSocketImpl.P \
-.deps/java/net/PlainSocketImpl.P .deps/java/net/ProtocolException.P \
-.deps/java/net/ServerSocket.P .deps/java/net/Socket.P \
-.deps/java/net/SocketException.P .deps/java/net/SocketImpl.P \
-.deps/java/net/SocketImplFactory.P .deps/java/net/SocketOptions.P \
-.deps/java/net/URL.P .deps/java/net/URLClassLoader.P \
-.deps/java/net/URLConnection.P .deps/java/net/URLDecoder.P \
-.deps/java/net/URLEncoder.P .deps/java/net/URLStreamHandler.P \
-.deps/java/net/URLStreamHandlerFactory.P \
-.deps/java/net/UnknownHostException.P \
-.deps/java/net/UnknownServiceException.P \
-.deps/java/security/AlgorithmParameterGeneratorSpi.P \
-.deps/java/security/BasicPermission.P \
-.deps/java/security/DigestException.P \
-.deps/java/security/DigestOutputStream.P \
-.deps/java/security/GeneralSecurityException.P \
-.deps/java/security/Guard.P \
-.deps/java/security/InvalidAlgorithmParameterException.P \
-.deps/java/security/InvalidKeyException.P \
-.deps/java/security/InvalidParameterException.P \
-.deps/java/security/Key.P .deps/java/security/KeyException.P \
-.deps/java/security/KeyPair.P .deps/java/security/KeyPairGenerator.P \
-.deps/java/security/KeyPairGeneratorSpi.P \
-.deps/java/security/MessageDigest.P \
-.deps/java/security/NoSuchAlgorithmException.P \
-.deps/java/security/NoSuchProviderException.P \
-.deps/java/security/Permission.P \
-.deps/java/security/PermissionCollection.P \
-.deps/java/security/Principal.P .deps/java/security/PrivateKey.P \
-.deps/java/security/Provider.P .deps/java/security/PublicKey.P \
-.deps/java/security/SecureClassLoader.P \
-.deps/java/security/SecureRandom.P .deps/java/security/Security.P \
-.deps/java/security/Signature.P \
-.deps/java/security/SignatureException.P .deps/java/security/cert/CRL.P \
-.deps/java/security/cert/CRLException.P \
-.deps/java/security/cert/Certificate.P \
-.deps/java/security/cert/CertificateEncodingException.P \
-.deps/java/security/cert/CertificateException.P \
-.deps/java/security/cert/CertificateExpiredException.P \
-.deps/java/security/cert/CertificateFactory.P \
-.deps/java/security/cert/CertificateFactorySpi.P \
-.deps/java/security/cert/CertificateNotYetValidException.P \
-.deps/java/security/cert/CertificateParsingException.P \
-.deps/java/security/cert/X509CRL.P \
-.deps/java/security/cert/X509CRLEntry.P \
-.deps/java/security/cert/X509Certificate.P \
-.deps/java/security/cert/X509Extension.P \
-.deps/java/security/interfaces/DSAKey.P \
-.deps/java/security/interfaces/DSAParams.P \
-.deps/java/security/interfaces/DSAPrivateKey.P \
-.deps/java/security/interfaces/DSAPublicKey.P \
-.deps/java/security/interfaces/RSAPrivateCrtKey.P \
-.deps/java/security/interfaces/RSAPrivateKey.P \
-.deps/java/security/interfaces/RSAPublicKey.P \
-.deps/java/security/spec/AlgorithmParameterSpec.P \
-.deps/java/security/spec/InvalidKeySpecException.P \
-.deps/java/security/spec/InvalidParameterSpecException.P \
-.deps/java/security/spec/KeySpec.P \
-.deps/java/security/spec/RSAPrivateCrtKeySpec.P \
-.deps/java/security/spec/RSAPrivateKeySpec.P \
-.deps/java/security/spec/RSAPublicKeySpec.P \
-.deps/java/sql/CallableStatement.P .deps/java/sql/Connection.P \
-.deps/java/sql/DataTruncation.P .deps/java/sql/DatabaseMetaData.P \
-.deps/java/sql/Date.P .deps/java/sql/Driver.P \
-.deps/java/sql/DriverManager.P .deps/java/sql/DriverPropertyInfo.P \
-.deps/java/sql/PreparedStatement.P .deps/java/sql/ResultSet.P \
-.deps/java/sql/ResultSetMetaData.P .deps/java/sql/SQLException.P \
-.deps/java/sql/SQLWarning.P .deps/java/sql/Statement.P \
-.deps/java/sql/Time.P .deps/java/sql/Timestamp.P .deps/java/sql/Types.P \
-.deps/java/text/BreakIterator.P .deps/java/text/CharacterIterator.P \
-.deps/java/text/ChoiceFormat.P \
-.deps/java/text/CollationElementIterator.P \
-.deps/java/text/CollationKey.P .deps/java/text/Collator.P \
-.deps/java/text/DateFormat.P .deps/java/text/DateFormatSymbols.P \
-.deps/java/text/DecimalFormat.P .deps/java/text/DecimalFormatSymbols.P \
-.deps/java/text/FieldPosition.P .deps/java/text/Format.P \
-.deps/java/text/MessageFormat.P .deps/java/text/NumberFormat.P \
-.deps/java/text/ParseException.P .deps/java/text/ParsePosition.P \
-.deps/java/text/RuleBasedCollator.P .deps/java/text/SimpleDateFormat.P \
-.deps/java/text/StringCharacterIterator.P \
-.deps/java/util/AbstractCollection.P .deps/java/util/AbstractList.P \
-.deps/java/util/AbstractMap.P .deps/java/util/AbstractSequentialList.P \
-.deps/java/util/AbstractSet.P .deps/java/util/ArrayList.P \
-.deps/java/util/Arrays.P .deps/java/util/BasicMapEntry.P \
-.deps/java/util/BitSet.P .deps/java/util/Bucket.P \
-.deps/java/util/Calendar.P .deps/java/util/Collection.P \
-.deps/java/util/Comparator.P \
-.deps/java/util/ConcurrentModificationException.P \
-.deps/java/util/Date.P .deps/java/util/Dictionary.P \
-.deps/java/util/EmptyStackException.P .deps/java/util/Enumeration.P \
-.deps/java/util/EventListener.P .deps/java/util/EventObject.P \
-.deps/java/util/GregorianCalendar.P .deps/java/util/HashMap.P \
-.deps/java/util/Hashtable.P .deps/java/util/Iterator.P \
-.deps/java/util/List.P .deps/java/util/ListIterator.P \
-.deps/java/util/ListResourceBundle.P .deps/java/util/Locale.P \
-.deps/java/util/Map.P .deps/java/util/MissingResourceException.P \
-.deps/java/util/NoSuchElementException.P .deps/java/util/Observable.P \
-.deps/java/util/Observer.P .deps/java/util/Properties.P \
-.deps/java/util/PropertyPermission.P \
-.deps/java/util/PropertyResourceBundle.P .deps/java/util/Random.P \
-.deps/java/util/ResourceBundle.P .deps/java/util/Set.P \
-.deps/java/util/SimpleTimeZone.P .deps/java/util/SortedMap.P \
-.deps/java/util/SortedSet.P .deps/java/util/Stack.P \
-.deps/java/util/StringTokenizer.P .deps/java/util/TimeZone.P \
-.deps/java/util/Timer.P .deps/java/util/TimerTask.P \
-.deps/java/util/TooManyListenersException.P .deps/java/util/Vector.P \
-.deps/java/util/jar/Attributes.P .deps/java/util/jar/JarEntry.P \
-.deps/java/util/jar/JarException.P .deps/java/util/jar/JarFile.P \
-.deps/java/util/jar/JarInputStream.P \
-.deps/java/util/jar/JarOutputStream.P .deps/java/util/jar/Manifest.P \
-.deps/java/util/zip/Adler32.P .deps/java/util/zip/CRC32.P \
-.deps/java/util/zip/CheckedInputStream.P \
-.deps/java/util/zip/CheckedOutputStream.P \
-.deps/java/util/zip/Checksum.P \
-.deps/java/util/zip/DataFormatException.P \
-.deps/java/util/zip/Deflater.P \
-.deps/java/util/zip/DeflaterOutputStream.P \
-.deps/java/util/zip/GZIPInputStream.P \
-.deps/java/util/zip/GZIPOutputStream.P .deps/java/util/zip/Inflater.P \
-.deps/java/util/zip/InflaterInputStream.P \
-.deps/java/util/zip/ZipConstants.P .deps/java/util/zip/ZipEntry.P \
-.deps/java/util/zip/ZipException.P .deps/java/util/zip/ZipFile.P \
-.deps/java/util/zip/ZipInputStream.P \
-.deps/java/util/zip/ZipOutputStream.P .deps/jni.P .deps/libgcjdata.P \
-.deps/name-finder.P .deps/no-threads.P .deps/nogc.P \
-.deps/posix-threads.P .deps/posix.P .deps/prims.P .deps/resolve.P
-SOURCES = $(libgcjdata_a_SOURCES) $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES)
-OBJECTS = $(libgcjdata_a_OBJECTS) $(libgcj_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(gen_from_JIS_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .cc .class .h .java .lo .o .obj .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-libgcj.spec: $(top_builddir)/config.status libgcj.spec.in
- cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-libgcj-test.spec: $(top_builddir)/config.status libgcj-test.spec.in
- cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-mostlyclean-toolexeclibLIBRARIES:
-
-clean-toolexeclibLIBRARIES:
- -test -z "$(toolexeclib_LIBRARIES)" || rm -f $(toolexeclib_LIBRARIES)
-
-distclean-toolexeclibLIBRARIES:
-
-maintainer-clean-toolexeclibLIBRARIES:
-
-install-toolexeclibLIBRARIES: $(toolexeclib_LIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(toolexeclib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(RANLIB) $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(RANLIB) $(DESTDIR)$(toolexeclibdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-toolexeclibLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(toolexeclib_LIBRARIES)'; for p in $$list; do \
- rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
- done
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libgcjdata.a: $(libgcjdata_a_OBJECTS) $(libgcjdata_a_DEPENDENCIES)
- -rm -f libgcjdata.a
- $(AR) cru libgcjdata.a $(libgcjdata_a_OBJECTS) $(libgcjdata_a_LIBADD)
- $(RANLIB) libgcjdata.a
-
-mostlyclean-toolexeclibLTLIBRARIES:
-
-clean-toolexeclibLTLIBRARIES:
- -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
-
-distclean-toolexeclibLTLIBRARIES:
-
-maintainer-clean-toolexeclibLTLIBRARIES:
-
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-toolexeclibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
- done
-
-libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
- $(libgcj_la_LINK) -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(libgcj_la_OBJECTS) $(libgcj_la_LIBADD) $(LIBS)
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- list='$(bin_PROGRAMS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- done
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-jv-convert$(EXEEXT): $(jv_convert_OBJECTS) $(jv_convert_DEPENDENCIES)
- @rm -f jv-convert$(EXEEXT)
- $(jv_convert_LINK) $(jv_convert_LDFLAGS) $(jv_convert_OBJECTS) $(jv_convert_LDADD) $(LIBS)
-
-gij$(EXEEXT): $(gij_OBJECTS) $(gij_DEPENDENCIES)
- @rm -f gij$(EXEEXT)
- $(gij_LINK) $(gij_LDFLAGS) $(gij_OBJECTS) $(gij_LDADD) $(LIBS)
-
-gen-from-JIS$(EXEEXT): $(gen_from_JIS_OBJECTS) $(gen_from_JIS_DEPENDENCIES)
- @rm -f gen-from-JIS$(EXEEXT)
- $(LINK) $(gen_from_JIS_LDFLAGS) $(gen_from_JIS_OBJECTS) $(gen_from_JIS_LDADD) $(LIBS)
-
-install-binSCRIPTS: $(bin_SCRIPTS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
- $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
- else if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
- $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
- else :; fi; fi; \
- done
-
-uninstall-binSCRIPTS:
- @$(NORMAL_UNINSTALL)
- list='$(bin_SCRIPTS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
- done
-.cc.o:
- $(CXXCOMPILE) -c $<
-.cc.obj:
- $(CXXCOMPILE) -c `cygpath -w $<`
-.cc.lo:
- $(LTCXXCOMPILE) -c $<
-
-install-dataDATA: $(data_DATA)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @list='$(data_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p"; \
- $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p; \
- fi; fi; \
- done
-
-uninstall-dataDATA:
- @$(NORMAL_UNINSTALL)
- list='$(data_DATA)'; for p in $$list; do \
- rm -f $(DESTDIR)$(datadir)/$$p; \
- done
-
-install-toolexeclibDATA: $(toolexeclib_DATA)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
- fi; fi; \
- done
-
-uninstall-toolexeclibDATA:
- @$(NORMAL_UNINSTALL)
- list='$(toolexeclib_DATA)'; for p in $$list; do \
- rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
- rev="$$subdir $$rev"; \
- test "$$subdir" = "." && dot_seen=yes; \
- done; \
- test "$$dot_seen" = "no" && rev=". $$rev"; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- here=`cd $(top_builddir) && pwd`; \
- top_distdir=`cd $(distdir) && pwd`; \
- distdir=`cd $(distdir) && pwd`; \
- cd $(top_srcdir) \
- && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- for subdir in $(DIST_SUBDIRS); do \
- if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- chmod 777 $(distdir)/$$subdir; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
- || exit 1; \
- fi; \
- done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
- -rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
- @echo '$(COMPILE) -c $<'; \
- $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-cp .deps/$(*F).pp .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm .deps/$(*F).pp
-
-%.lo: %.c
- @echo '$(LTCOMPILE) -c $<'; \
- $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
-
-%.o: %.cc
- @echo '$(CXXCOMPILE) -c $<'; \
- $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-cp .deps/$(*F).pp .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm .deps/$(*F).pp
-
-%.lo: %.cc
- @echo '$(LTCXXCOMPILE) -c $<'; \
- $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am: all-am
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-install-info-am:
-install-info: install-info-recursive
-install-exec-am: install-toolexeclibLIBRARIES \
- install-toolexeclibLTLIBRARIES install-binPROGRAMS \
- install-binSCRIPTS install-toolexeclibDATA
-install-exec: install-exec-recursive
-
-install-data-am: install-dataDATA install-data-local
-install-data: install-data-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-toolexeclibLIBRARIES \
- uninstall-toolexeclibLTLIBRARIES uninstall-binPROGRAMS \
- uninstall-binSCRIPTS uninstall-dataDATA \
- uninstall-toolexeclibDATA
-uninstall: uninstall-recursive
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) \
- $(DATA)
-all-redirect: all-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir) \
- $(DESTDIR)$(toolexeclibdir) $(DESTDIR)$(bindir) \
- $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
- $(DESTDIR)$(toolexeclibdir)
-
-
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-toolexeclibLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-toolexeclibLTLIBRARIES \
- mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \
- mostlyclean-tags mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am: clean-toolexeclibLIBRARIES clean-compile clean-libtool \
- clean-toolexeclibLTLIBRARIES clean-binPROGRAMS \
- clean-noinstPROGRAMS clean-tags clean-depend \
- clean-generic mostlyclean-am clean-local
-
-clean: clean-recursive
-
-distclean-am: distclean-toolexeclibLIBRARIES distclean-compile \
- distclean-libtool distclean-toolexeclibLTLIBRARIES \
- distclean-binPROGRAMS distclean-noinstPROGRAMS \
- distclean-tags distclean-depend distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-recursive
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-toolexeclibLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-toolexeclibLTLIBRARIES \
- maintainer-clean-binPROGRAMS \
- maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
- maintainer-clean-depend maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f config.status
-
-.PHONY: mostlyclean-toolexeclibLIBRARIES distclean-toolexeclibLIBRARIES \
-clean-toolexeclibLIBRARIES maintainer-clean-toolexeclibLIBRARIES \
-uninstall-toolexeclibLIBRARIES install-toolexeclibLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool \
-mostlyclean-toolexeclibLTLIBRARIES distclean-toolexeclibLTLIBRARIES \
-clean-toolexeclibLTLIBRARIES maintainer-clean-toolexeclibLTLIBRARIES \
-uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \
-mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
-clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
-uninstall-binSCRIPTS install-binSCRIPTS uninstall-dataDATA \
-install-dataDATA uninstall-toolexeclibDATA install-toolexeclibDATA \
-install-data-recursive uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir \
-mostlyclean-depend distclean-depend clean-depend \
-maintainer-clean-depend info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-info-am install-info \
-install-exec-am install-exec install-data-local install-data-am \
-install-data install-am install uninstall-am uninstall all-redirect \
-all-am all installdirs-am installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-$(java_source_files:.java=.class): libgcj.zip
-
-$(built_java_source_files:.java=.class): $(built_java_source_files)
- @javac="$(JAVAC)"; \
- for f in $?; do \
- echo $$javac -L$(here) $(JCFLAGS) -classpath $(here):`cd $(srcdir) && /bin/pwd` -d $(here) $$f; \
- $$javac -L$(here) $(JCFLAGS) -classpath $(here):`cd $(srcdir) && /bin/pwd` \
- -d $(here) $$f; \
- done
-
-libgcj.zip: $(java_source_files)
- @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$(subst $(srcdir)/,,$?),$(shell echo $(source) >> tmp-list))
- $(MAKE) $(built_java_source_files:.java=.class)
- @javac="$(JAVAC)"; dir=`/bin/pwd`; cd $(srcdir); \
- for f in `cat $$dir/tmp-list`; do \
- echo $$javac $(JCFLAGS) -classpath $(here):`/bin/pwd` -d $(here) $$f; \
- $$javac $(JCFLAGS) -classpath $(here):`/bin/pwd` -d $(here) $$f; \
- done
- -@rm -f tmp-list libgcj.zip
- $(ZIP) -r libgcj java gnu -n .class -i '*.class' -i '*/'
-
-clean-local:
- find . -name '*.class' -print | xargs rm -f
-
-.class.lo:
- $(GCJCOMPILE) -o $@ $<
-
-.java.lo:
- $(GCJCOMPILE) -o $@ $<
-
-$(nat_files): %.lo: %.cc
- $(LTCXXCOMPILE) -c -o $@ $<
-
-$(nat_files) $(GCOBJS) $(THREADOBJS) $(libgcj_la_OBJECTS) $(gij_OBJECTS): \
- include/config.h include/java-signal.h $(nat_headers)
-
-$(c_files): %.lo: %.c
- $(LTCOMPILE) -c -o $@ $<
-
-$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
-
-$(javao_files): %.lo: %.java
- $(GCJCOMPILE) -o $@ $<
-
-$(javao_files): libgcj.zip
-
-.class.h:
- $(GCJH) -classpath $(top_builddir) $(basename $<)
-
-$(nat_headers): libgcj.zip
-
-java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
- -friend 'void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar);' \
- $(basename $<)
-
-gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'void JvRunMain (jclass, int, const char **);' \
- -friend 'void _Jv_RunMain (const char*, int, const char **);' \
- $(basename $<)
-
-java/lang/Thread.h: java/lang/Thread.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -prepend 'class _Jv_JNIEnv;' \
- -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \
- -prepend '#define _JV_NOT_OWNER 1' \
- -prepend '#define _JV_INTERRUPTED 2' \
- -friend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \
- -friend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
- -friend 'class gnu::gcj::jni::NativeThread;' \
- $(basename $<)
-
-java/lang/String.h: java/lang/String.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jchar* _Jv_GetStringChars (jstring str);' \
- -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
- -friend 'jstring* _Jv_StringGetSlot (jstring);' \
- -friend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \
- -friend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \
- -friend 'jstring _Jv_AllocString (jsize);' \
- $(basename $<)
-
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
- -friend 'class java::lang::Class;' \
- -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- $(basename $<)
-
-java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
- -friend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
- -friend 'class java::lang::Class;' \
- $(basename $<)
-
-java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
- -friend 'class java::lang::Class;' \
- -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- $(basename $<)
-
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- -friend 'class java::lang::ClassLoader;' \
- $(basename $<)
-
-java/io/ObjectInputStream$$GetField.h: libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- 'java/io/ObjectInputStream$$GetField'
-
-java/io/ObjectOutputStream$$PutField.h: libgcj.zip
- $(GCJH) -classpath $(top_builddir) \
- 'java/io/ObjectOutputStream$$PutField'
-
-install-data-local:
- $(PRE_INSTALL)
- @for f in $(nat_headers) $(extra_headers); do \
- d="`echo $$f | sed -e 's,/[^/]*$$,,'`"; \
- $(mkinstalldirs) $(DESTDIR)$(includedir)/$$d; \
- if test -f $(srcdir)/$$f; then p=$(srcdir)/$$f; else p=$$f; fi; \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(includedir)/$$f"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(includedir)/$$f; \
- done
-
-maintainer-check: libgcj.la
- $(NM) .libs/libgcj.a | grep ' T ' \
- | grep -v '4java' \
- | grep -v 'Jv' \
- | grep -v 'terminate__Fv' | grep -v 'unexpected__Fv'
-
-header-check: libgcj.zip $(nat_headers)
- rm -f htest.cc; \
- for h in $(nat_headers); do \
- echo "#include \"$$h\"" >> htest.cc; \
- done; \
- $(CXXCOMPILE) -fsyntax-only htest.cc
-
-# The Unicode consortium does not permit re-distributing the file JIS0201.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0201.h: # $(CONVERT_DIR)/JIS0201.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0201; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0201.TXT \
- | sed -n -e 's|\(0x..\).*\(0x....\).*#\(.*\)$$|MAP(0x00, \1, \2) /*\3 */|p' \
- >> tmp-0201; \
- mv tmp-0201 $(srcdir)/$(CONVERT_DIR)/JIS0201.h
-
-# The Unicode consortium does not permit re-distributing the file JIS0208.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0208.h: # $(CONVERT_DIR)/JIS0208.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0208; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0208.TXT \
- | sed -n -e 's|\(0x....\).*0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\2, 0x\3, \4) /*\5 */|p' \
- >> tmp-0208; \
- mv tmp-0208 $(srcdir)/$(CONVERT_DIR)/JIS0208.h
-
-# The Unicode consortium does not permit re-distributing the file JIS0212.TXT.
-# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
-
-$(srcdir)/$(CONVERT_DIR)/JIS0212.h: # $(CONVERT_DIR)/JIS0212.TXT
- echo '/* This file is automatically generated from Unicode tables */' > tmp-0212; \
- tr -d '\r' <$(CONVERT_DIR)/JIS0212.TXT \
- | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \
- >> tmp-0212; \
- mv tmp-0212 $(srcdir)/$(CONVERT_DIR)/JIS0212.h
-
-$(CONVERT_DIR)/gen-from-JIS.o: $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \
- $(srcdir)/$(CONVERT_DIR)/JIS0201.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0208.h \
- $(srcdir)/$(CONVERT_DIR)/JIS0212.h
- $(COMPILE) -c -o $(CONVERT_DIR)/gen-from-JIS.o \
- $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c
-
-$(CONVERT_DIR)/make-trie.o: $(srcdir)/$(CONVERT_DIR)/make-trie.c
- $(COMPILE) -c -o $(CONVERT_DIR)/make-trie.o \
- $(srcdir)/$(CONVERT_DIR)/make-trie.c
-
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@$(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc: ./gen-from-JIS$(EXEEXT)
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@ ./gen-from-JIS JIS0208>$(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc
-
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@$(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc: ./gen-from-JIS$(EXEEXT)
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@ ./gen-from-JIS JIS0212>$(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc
-
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@$(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc: ./gen-from-JIS$(EXEEXT)
-@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@ ./gen-from-JIS toJIS>$(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc
-
-# Multilib support.
-.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
- maintainer-clean-multi
-
-all-recursive: all-multi
-install-recursive: install-multi
-mostlyclean-recursive: mostlyclean-multi
-clean-recursive: clean-multi
-distclean-recursive: distclean-multi
-maintainer-clean-recursive: maintainer-clean-multi
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libjava/NEWS b/libjava/NEWS
deleted file mode 100644
index 0541bb4dc54..00000000000
--- a/libjava/NEWS
+++ /dev/null
@@ -1,34 +0,0 @@
-New in libgcj X.XX:
-
-* libgcj now includes a bytecode interpreter. If a compiled version of a class
-is not found in the application binary or linked shared libraries, the
-class loader will search for a bytecode version in the CLASSPATH and execute
-it using the interpreter. A new front end that behaves like the traditional
-`java' command is also provided: `gij'.
-
-* Support for specifying java system properties. Properties can either be set
-at runtime via the GCJ_PROPERTIES environment variable in the format
-"<name>=<value> ..."'; or can be compiled into an application binary using
--D<name>=<value>.
-
-* Support for setjmp/longjmp (sjlj) exception handling has been added, as an
-alternative to the existing range-table based mechanism. sjlj is the default
-on non-sparc, non-x86 targets, or can be specified with the
-`--enable-sjlj-exceptions' configure parameter.
-
-* Complete JDK 1.1 reflection support, including invocation.
-
-* Throwable.printStackTrace() has been implemented.
-
-* Runtime.loadLibrary() has been implemented.
-
-* Class.forName() will now try to load a series of shared objects in order
-to find the requested class. If a class `gnu.quux.whatever' is requested,
-libgcj will search the system shared library path (eg LD_LIBRARY_PATH) for
-`gnu-quux-whatever.so', then `gnu-quux.so', and finally `gnu.so'.
-
-* A pure-java implementation of java.math.BigInteger.
-
-New in libgcj 2.95:
-
-* First public release
diff --git a/libjava/README b/libjava/README
deleted file mode 100644
index d89c4615032..00000000000
--- a/libjava/README
+++ /dev/null
@@ -1,55 +0,0 @@
-This is libgcj: the runtime library for gcj, the GNU Compiler for Java.
-libgcj provides a partial implementation of the Java Class Libraries.
-
-libgcj is free software. See the file LIBGCJ_LICENSE for copying permission.
-
-
-DOCUMENTATION
-=============
-
-All documentation, including detailed installation and usage instructions,
-can be found on the gcj web pages at this URL:
-
- http://sourceware.cygnus.com/java/
-
-
-REQUIREMENTS
-============
-
-libgcj must be built with a compatible version of the gcc compiler. libgcj
-releases are usually numbered according to their corresponding gcc release.
-For example, if this is "libgcj 2.95.3", you need to build it using "gcc
-2.95.3".
-
-
-QUICK INSTALLATION
-==================
-
- > mkdir build
- > cd build
- > ../libgcj/configure --enable-threads=<THREADS_TYPE> --prefix=<DIR>
- > make
- > make install
-
-where:
-
-<THREADS_TYPE> specifies the threads library to be used by libgcj. Currently
-the possible values are "posix" and "none". This value must be the same as
-the value used when configuring gcc itself.
-
-<DIR> specifies the installation directory. This should be the same location
-as where gcc is installed.
-
-Consult the gcj web pages for additional "configure" arguments.
-
-NOTE: libgcj can not be built in the same directory as `configure'. You must
-create a separate build directory.
-
-
-BUGS
-====
-
-Please submit bug reports via this URL:
-
- http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?database=java
-
diff --git a/libjava/THANKS b/libjava/THANKS
deleted file mode 100644
index c671d362d4e..00000000000
--- a/libjava/THANKS
+++ /dev/null
@@ -1,101 +0,0 @@
-Many people contribute to the GCJ project, and in many different
-capacities. Any omissions to this list are accidental. Feel free to
-contact green@cygnus.com if you have been left out or some of your
-contributions are not listed. Please keep this list in alphabetical
-order.
-
-Godmar Back for his improvements and encouragement.
-Scott Bambrough for help porting the compiler.
-Jon Beniston for his Win32 port.
-Geoff Berry for his object serialization work and various patches.
-Hans-J. Boehm for his garbage collector, IA-64 libffi port, and other work.
-Per Bothner for dreaming up, designing and implementing much of gcj.
-Joerg Brunsmann for compiler hacking and help with the FAQ.
-Glenn Chambers for help with the FAQ.
-Steve Chamberlain for config fixes and the picoJava port.
-John-Marc Chandonia for various library patches.
-Eric Christopher for his porting help and clean-ups.
-The GNU Classpath project for all of their merged runtime code.
-Mo DeJong for gcj and libgcj bug fixes.
-The GCC project contributors for all of their great compiler work.
-Ivan Fontes Garcia for the Portugese translation of the FAQ.
-Anthony Green for various contributions.
-Stu Grossman for gdb hacking, allowing us to debug our code.
-Andrew Haley for his amazing compiler and library efforts.
-Jakub Jelinek for improving the build system.
-Oskar Liljeblad for hacking on AWT and his many bug reports and patches.
-Bryce McKinlay for numerous gcj and libgcj fixes and improvements.
-Jason Molenda for establishing the project infrastructure
- on sources.redhat.com.
-Mike Moreton for his various patches.
-Alexandre Oliva for all of this porting and testing efforts.
-Kresten Krab Thorup for his fantastic bytecode interpreter.
-Warren Levy for his tremendous library work.
-All of the Mauve project contributors, for test code.
-Rainer Orth for configuration clean-ups and porting help.
-Alexandre Petit-Bianco for implementing much of the compiler,
- and continued maintainership.
-Rolf W. Rasmussen for hacking on AWT.
-Bradley Schatz for his work on the FAQ.
-Jason Schroeder for jcf-dump patches.
-John Stracke for his HTTP protocol fixes.
-Jeff Sturm for porting help, bug fixes, and encouragement.
-Tom Tromey for his many contributions and libgcj maintainership.
-Matt Welsh for help with Linux Threads.
-Urban Widmark for help fixing java.io.
-Gilles Zunino for help porting to Irix.
-
-We'd also like to thank the folks who have contributed time and energy
-in testing GCJ:
-
-Michael Abd-El-Malek
-Thomas Arend
-Bonzo Armstrong
-Steven Ashe
-Chris Baldwin
-David Billinghurst
-Jim Blandy
-Stephane Bortzmeyer
-Frank Braun
-Sidney Cadot
-Bradford Castalia
-Ralph Doncaster
-Richard Emberson
-Graham Fawcett
-Robert A. French
-Mark K. Gardner
-Charles-Antoine Gauthier
-Simon Gornall
-Fred Gray
-John Griffin
-Phil Hargett
-Bryan W. Headley
-Kevin B. Hendricks
-Patrik Hagglund
-Amancio Hasty
-Joep Jansen
-David Kidd
-Tobias Kuipers
-Anand Krishnaswamy
-H.J. Lu
-Jesse Macnish
-Anon A. Mous
-Stefan Morrell
-Pekka Nikander
-Jon Olson
-Magnus Persson
-Chris Pollard
-Paul Reilly
-Tom Reilly
-Torsten Rueger
-Danny Sadinoff
-Marc Schifer
-Franz Sirl
-Tim Souder
-Adam Sulmicki
-Frederik Warg
-Gregory Warnes
-Mark Wielaard
-David E. Young
-
-Thank you all!
diff --git a/libjava/acconfig.h b/libjava/acconfig.h
deleted file mode 100644
index 0a4d96544a9..00000000000
--- a/libjava/acconfig.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Name of this package. */
-#undef PACKAGE
-
-/* Version number of this package. */
-#undef VERSION
-
-/* Define this if you want runtime debugging enabled. */
-#undef DEBUG
-
-/* Define if using POSIX threads that have the mutexattr functions. */
-#undef HAVE_PTHREAD_MUTEXATTR_INIT
-
-/* Define this if you prefer size over speed for java.lang.Character. */
-#undef COMPACT_CHARACTER
-
-/* Define if you have memcpy. */
-#undef HAVE_MEMCPY
-
-/* Define if you have memmove. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have strerror. */
-#undef HAVE_STRERROR
-
-/* Define if you have fsync. */
-#undef HAVE_FSYNC
-
-/* Define if you have sleep. */
-#undef HAVE_SLEEP
-
-/* Define if you have int32_t and uint32_t. */
-#undef HAVE_INT32_DEFINED
-
-/* Define if you have u_int32_t */
-#undef HAVE_BSD_INT32_DEFINED
-
-/* Define if you're running eCos. */
-#undef ECOS
-
-/* */
-#undef HAVE_LOCALTIME
-
-/* */
-#undef HAVE_MKTIME
-
-/* Define if using POSIX threads on Linux. */
-#undef LINUX_THREADS
-
-/* Define if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* Define if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to `int' if `ssize_t' is not defined. */
-#undef ssize_t
-
-/* Define to 1 if `in_addr_t' is defined in sys/types.h or
- netinet/in.h. */
-#undef HAVE_IN_ADDR_T
-
-/* Define if inet6 structures are defined in netinet/in.h. */
-#undef HAVE_INET6
-
-/* Define if struct ip_mreq is defined in netinet/in.h. */
-#undef HAVE_STRUCT_IP_MREQ
-
-/* Define it socklen_t typedef is in sys/socket.h. */
-#undef HAVE_SOCKLEN_T
-
-/* Define if Boehm GC in use. */
-#undef HAVE_BOEHM_GC
-
-/* Define if gethostname is declared in <unistd.h>. */
-#undef HAVE_GETHOSTNAME_DECL
-
-/* Define if gethostbyname_r returns `int'. */
-#undef GETHOSTBYNAME_R_RETURNS_INT
-
-/* Define if gethostbyaddr_r returns `int'. */
-#undef GETHOSTBYADDR_R_RETURNS_INT
-
-/* Define if struct tm has tm_gmtoff field. */
-#undef STRUCT_TM_HAS_GMTOFF
-
-/* Define if global `timezone' exists. */
-#undef HAVE_TIMEZONE
-
-/* Define to version of GCJ in use. */
-#undef GCJVERSION
-
-/* Define if you have the appropriate function. */
-#undef HAVE_ACCESS
-#undef HAVE_STAT
-#undef HAVE_MKDIR
-#undef HAVE_RENAME
-#undef HAVE_RMDIR
-#undef HAVE_UNLINK
-#undef HAVE_REALPATH
-#undef HAVE_READDIR_R
-#undef HAVE_GETHOSTBYNAME_R
-#undef HAVE_GETHOSTBYADDR_R
-
-/* Define if you want a bytecode interpreter. */
-#undef INTERPRETER
-
-/* Define if pthread_mutex_t has m_count member. */
-#undef PTHREAD_MUTEX_HAVE_M_COUNT
-
-/* Define if pthread_mutex_t has __m_count member. */
-#undef PTHREAD_MUTEX_HAVE___M_COUNT
-
-/* Define if java.net native functions should be stubbed out. */
-#undef DISABLE_JAVA_NET
-
-/* Define if system properties shouldn't be read from
- getenv("GCJ_PROPERTIES"). */
-#undef DISABLE_GETENV_PROPERTIES
-
-/* Define if using setjmp/longjmp exceptions. */
-#undef SJLJ_EXCEPTIONS
-
-/* Define if you have /proc/self/exe */
-#undef HAVE_PROC_SELF_EXE
-
-/* Define if you have dladdr() */
-#undef HAVE_DLADDR
-
-/* Define if getuid() and friends are missing. */
-#undef NO_GETUID
-
-/* Define if libltdl is in use. */
-#undef USE_LTDL
-
-/* Define if g++ has a bug preventing us from inlining math routines. */
-#undef __NO_MATH_INLINES
-
-/* Define if you have working iconv() function. */
-#undef HAVE_ICONV
-
-/* Define if you are using JVMPI. */
-#undef ENABLE_JVMPI
diff --git a/libjava/acinclude.m4 b/libjava/acinclude.m4
deleted file mode 100644
index f8f2423f5eb..00000000000
--- a/libjava/acinclude.m4
+++ /dev/null
@@ -1,102 +0,0 @@
-AC_DEFUN(LIBGCJ_CONFIGURE,
-[
-dnl Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
-dnl We may get other options which we dont document:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-
-if test "[$]{srcdir}" = "."; then
- if test "[$]{with_target_subdir}" != "."; then
- libgcj_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
- else
- libgcj_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
- fi
-else
- libgcj_basedir="[$]{srcdir}/$1"
-fi
-AC_SUBST(libgcj_basedir)
-
-AC_CANONICAL_HOST
-
-dnl This shouldn't be needed, as long as top-level dependencies are
-dnl defined correctly and shared-library paths are set up so that
-dnl execution tests succeed. FIXME.
-define([AC_PROG_CC_WORKS],[])
-define([AC_PROG_CXX_WORKS],[])
-
-AC_PROG_CC
-AC_PROG_CXX
-
-dnl version is pulled out to make it a bit easier to change using sed.
-version=0.0.7
-dnl Still use "libjava" here to placate dejagnu.
-AM_INIT_AUTOMAKE(libjava, $version)
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we dont
-# run it explicitly here, it will be run implicitly before
-# LIBGCJ_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-AC_CANONICAL_BUILD
-
-AC_CHECK_TOOL(AS, as)
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-AC_PROG_INSTALL
-
-AM_MAINTAINER_MODE
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which cant create executables. So we include AC_EXEEXT to keep
-# automake happy, but we dont execute it, since we dont care about
-# the result.
-if false; then
- AC_EXEEXT
-fi
-
-# configure.host sets the following important variables
-# libgcj_cflags - host specific C compiler flags
-# libgcj_cxxflags - host specific C++ compiler flags
-# libgcj_javaflags - host specific Java compiler flags
-
-libgcj_cflags=
-libgcj_cxxflags=
-libgcj_javaflags=
-
-. [$]{libgcj_basedir}/configure.host
-
-case [$]{libgcj_basedir} in
-/* | [A-Za-z]:[/\\]*) libgcj_flagbasedir=[$]{libgcj_basedir} ;;
-*) libgcj_flagbasedir='[$](top_builddir)/'[$]{libgcj_basedir} ;;
-esac
-
-LIBGCJ_CFLAGS="[$]{libgcj_cflags}"
-LIBGCJ_CXXFLAGS="[$]{libgcj_cxxflags}"
-LIBGCJ_JAVAFLAGS="[$]{libgcj_javaflags}"
-AC_SUBST(LIBGCJ_CFLAGS)
-AC_SUBST(LIBGCJ_CXXFLAGS)
-AC_SUBST(LIBGCJ_JAVAFLAGS)
-])dnl
-
-sinclude(../libtool.m4)
-dnl The lines below arrange for aclocal not to bring libtool.m4
-dnl AM_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[
-AC_DEFUN([AM_PROG_LIBTOOL],)
-AC_DEFUN([AC_LIBTOOL_DLOPEN],)
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],)
-AC_DEFUN([LT_AC_PROG_GCJ],)
-AC_SUBST(GCJ)
-AC_SUBST(LIBTOOL)
-])
diff --git a/libjava/aclocal.m4 b/libjava/aclocal.m4
deleted file mode 100644
index a99cac3318e..00000000000
--- a/libjava/aclocal.m4
+++ /dev/null
@@ -1,263 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-AC_DEFUN(LIBGCJ_CONFIGURE,
-[
-dnl Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
-[ --enable-multilib build many library versions (default)],
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
-dnl We may get other options which we dont document:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-
-if test "[$]{srcdir}" = "."; then
- if test "[$]{with_target_subdir}" != "."; then
- libgcj_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
- else
- libgcj_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
- fi
-else
- libgcj_basedir="[$]{srcdir}/$1"
-fi
-AC_SUBST(libgcj_basedir)
-
-AC_CANONICAL_HOST
-
-dnl This shouldn't be needed, as long as top-level dependencies are
-dnl defined correctly and shared-library paths are set up so that
-dnl execution tests succeed. FIXME.
-define([AC_PROG_CC_WORKS],[])
-define([AC_PROG_CXX_WORKS],[])
-
-AC_PROG_CC
-AC_PROG_CXX
-
-dnl version is pulled out to make it a bit easier to change using sed.
-version=0.0.7
-dnl Still use "libjava" here to placate dejagnu.
-AM_INIT_AUTOMAKE(libjava, $version)
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we dont
-# run it explicitly here, it will be run implicitly before
-# LIBGCJ_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-AC_CANONICAL_BUILD
-
-AC_CHECK_TOOL(AS, as)
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-AC_PROG_INSTALL
-
-AM_MAINTAINER_MODE
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which cant create executables. So we include AC_EXEEXT to keep
-# automake happy, but we dont execute it, since we dont care about
-# the result.
-if false; then
- AC_EXEEXT
-fi
-
-# configure.host sets the following important variables
-# libgcj_cflags - host specific C compiler flags
-# libgcj_cxxflags - host specific C++ compiler flags
-# libgcj_javaflags - host specific Java compiler flags
-
-libgcj_cflags=
-libgcj_cxxflags=
-libgcj_javaflags=
-
-. [$]{libgcj_basedir}/configure.host
-
-case [$]{libgcj_basedir} in
-/* | [A-Za-z]:[/\\]*) libgcj_flagbasedir=[$]{libgcj_basedir} ;;
-*) libgcj_flagbasedir='[$](top_builddir)/'[$]{libgcj_basedir} ;;
-esac
-
-LIBGCJ_CFLAGS="[$]{libgcj_cflags}"
-LIBGCJ_CXXFLAGS="[$]{libgcj_cxxflags}"
-LIBGCJ_JAVAFLAGS="[$]{libgcj_javaflags}"
-AC_SUBST(LIBGCJ_CFLAGS)
-AC_SUBST(LIBGCJ_CXXFLAGS)
-AC_SUBST(LIBGCJ_JAVAFLAGS)
-])dnl
-
-sinclude(../libtool.m4)
-dnl The lines below arrange for aclocal not to bring libtool.m4
-dnl AM_PROG_LIBTOOL into aclocal.m4, while still arranging for automake
-dnl to add a definition of LIBTOOL to Makefile.in.
-ifelse(yes,no,[
-AC_DEFUN([AM_PROG_LIBTOOL],)
-AC_DEFUN([AC_LIBTOOL_DLOPEN],)
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],)
-AC_DEFUN([LT_AC_PROG_GCJ],)
-AC_SUBST(GCJ)
-AC_SUBST(LIBTOOL)
-])
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# serial 1
-
-AC_DEFUN(AM_MAINTAINER_MODE,
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
- ;;
- esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
diff --git a/libjava/addr2name.awk b/libjava/addr2name.awk
deleted file mode 100755
index f31befd526d..00000000000
--- a/libjava/addr2name.awk
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/awk -f
-
-# Copyright (C) 2000 Free Software Foundation
-
-# This file is part of libgcj.
-
-# This software is copyrighted work licensed under the terms of the
-# Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-# details.
-
-# This script emulates a little of the functionality of addr2line for
-# those systems that don't have it. The only command line argument is
-# an executable name. The script reads hexadecimal addresses from
-# stdin and prints the corresponding symbol names to stdout. The
-# addresses must begin with "0x" and be fully zero filled or this
-# won't work.
-
-BEGIN {
- object = ARGV[1];
- ARGV[1] = "";
-
- while ("nm " object "| sort" | getline) {
- if ($2 == "t" || $2 == "T") {
- address[i] = "0x" $1; name[i] = $3;
- i++;
- }
- }
- syms = i;
-}
-
-{
- lo = 0;
- hi = syms - 1;
-
- while ((hi-1) > lo)
- {
- try = int ((hi + lo) / 2);
- if ($0 < address[try])
- hi = try;
- else if ($0 >= address[try])
- lo = try;
- }
- print name[lo] "\n"; fflush();
-}
-
-
diff --git a/libjava/boehm.cc b/libjava/boehm.cc
deleted file mode 100644
index 14c4263cd27..00000000000
--- a/libjava/boehm.cc
+++ /dev/null
@@ -1,466 +0,0 @@
-// boehm.cc - interface between libjava and Boehm GC.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdio.h>
-
-#include <jvm.h>
-#include <gcj/cni.h>
-
-#include <java/lang/Class.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java-interp.h>
-
-// More nastiness: the GC wants to define TRUE and FALSE. We don't
-// need the Java definitions (themselves a hack), so we undefine them.
-#undef TRUE
-#undef FALSE
-
-extern "C"
-{
-#include <gc_priv.h>
-#include <gc_mark.h>
-
- // These aren't declared in any Boehm GC header.
- void GC_finalize_all (void);
- ptr_t GC_debug_generic_malloc (size_t size, int k, GC_EXTRA_PARAMS);
-};
-
-// FIXME: this should probably be defined in some GC header.
-#ifdef GC_DEBUG
-# define GC_GENERIC_MALLOC(Size, Type) \
- GC_debug_generic_malloc (Size, Type, GC_EXTRAS)
-#else
-# define GC_GENERIC_MALLOC(Size, Type) GC_generic_malloc (Size, Type)
-#endif
-
-// We must check for plausibility ourselves.
-#define MAYBE_MARK(Obj, Top, Limit, Source, Exit) \
- if ((ptr_t) (Obj) >= GC_least_plausible_heap_addr \
- && (ptr_t) (Obj) <= GC_greatest_plausible_heap_addr) \
- PUSH_CONTENTS (Obj, Top, Limit, Source, Exit)
-
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-
-
-
-// Nonzero if this module has been initialized.
-static int initialized = 0;
-
-// `kind' index used when allocating Java objects.
-static int obj_kind_x;
-
-// `kind' index used when allocating Java arrays.
-static int array_kind_x;
-
-// Freelist used for Java objects.
-static ptr_t *obj_free_list;
-
-// Freelist used for Java arrays.
-static ptr_t *array_free_list;
-
-// Lock used to protect access to Boehm's GC_enable/GC_disable functions.
-static _Jv_Mutex_t disable_gc_mutex;
-
-
-
-// This is called by the GC during the mark phase. It marks a Java
-// object. We use `void *' arguments and return, and not what the
-// Boehm GC wants, to avoid pollution in our headers.
-void *
-_Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/)
-{
- mse *mark_stack_ptr = (mse *) msp;
- mse *mark_stack_limit = (mse *) msl;
- jobject obj = (jobject) addr;
-
- _Jv_VTable *dt = *(_Jv_VTable **) addr;
- // We check this in case a GC occurs before the vtbl is set. FIXME:
- // should use allocation lock while initializing object.
- if (__builtin_expect (! dt, false))
- return mark_stack_ptr;
- jclass klass = dt->clas;
-
- // Every object has a sync_info pointer.
- ptr_t p = (ptr_t) obj->sync_info;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, obj, o1label);
- // Mark the object's class.
- p = (ptr_t) klass;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, obj, o2label);
-
- if (__builtin_expect (klass == &ClassClass, false))
- {
- jclass c = (jclass) addr;
-
- p = (ptr_t) c->name;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c3label);
- p = (ptr_t) c->superclass;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c4label);
- for (int i = 0; i < c->constants.size; ++i)
- {
- /* FIXME: We could make this more precise by using the tags -KKT */
- p = (ptr_t) c->constants.data[i].p;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c5label);
- }
-
-#ifdef INTERPRETER
- if (_Jv_IsInterpretedClass (c))
- {
- p = (ptr_t) c->constants.tags;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c5alabel);
- p = (ptr_t) c->constants.data;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c5blabel);
- }
-#endif
-
- // If the class is an array, then the methods field holds a
- // pointer to the element class. If the class is primitive,
- // then the methods field holds a pointer to the array class.
- p = (ptr_t) c->methods;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c6label);
-
-
- if (! c->isArray() && ! c->isPrimitive())
- {
- // Scan each method in the cases where `methods' really
- // points to a methods structure.
- for (int i = 0; i < c->method_count; ++i)
- {
- p = (ptr_t) c->methods[i].name;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c,
- cm1label);
- p = (ptr_t) c->methods[i].signature;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c,
- cm2label);
-
- // FIXME: `ncode' entry?
-
-#ifdef INTERPRETER
- // The interpreter installs a heap-allocated
- // trampoline here, so we'll mark it.
- if (_Jv_IsInterpretedClass (c))
- {
- p = (ptr_t) c->methods[i].ncode;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c,
- cm3label);
- }
-#endif
- }
- }
-
- // Mark all the fields.
- p = (ptr_t) c->fields;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8label);
- for (int i = 0; i < c->field_count; ++i)
- {
- _Jv_Field* field = &c->fields[i];
-
-#ifndef COMPACT_FIELDS
- p = (ptr_t) field->name;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8alabel);
-#endif
- p = (ptr_t) field->type;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8blabel);
-
- // For the interpreter, we also need to mark the memory
- // containing static members
- if ((field->flags & java::lang::reflect::Modifier::STATIC))
- {
- p = (ptr_t) field->u.addr;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8clabel);
-
- // also, if the static member is a reference,
- // mark also the value pointed to. We check for isResolved
- // since marking can happen before memory is allocated for
- // static members.
- if (JvFieldIsRef (field) && field->isResolved())
- {
- jobject val = *(jobject*) field->u.addr;
- p = (ptr_t) val;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit,
- c, c8elabel);
- }
- }
- }
-
- p = (ptr_t) c->vtable;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c9label);
- p = (ptr_t) c->interfaces;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cAlabel);
- for (int i = 0; i < c->interface_count; ++i)
- {
- p = (ptr_t) c->interfaces[i];
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cClabel);
- }
- p = (ptr_t) c->loader;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cBlabel);
-
-#ifdef INTERPRETER
- if (_Jv_IsInterpretedClass (c))
- {
- _Jv_InterpClass* ic = (_Jv_InterpClass*)c;
-
- p = (ptr_t) ic->interpreted_methods;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, ic, cElabel);
-
- for (int i = 0; i < c->method_count; i++)
- {
- p = (ptr_t) ic->interpreted_methods[i];
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, ic, \
- cFlabel);
- }
-
- p = (ptr_t) ic->field_initializers;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, ic, cGlabel);
-
- }
-#endif
-
- }
- else
- {
- // NOTE: each class only holds information about the class
- // itself. So we must do the marking for the entire inheritance
- // tree in order to mark all fields. FIXME: what about
- // interfaces? We skip Object here, because Object only has a
- // sync_info, and we handled that earlier.
- // Note: occasionally `klass' can be null. For instance, this
- // can happen if a GC occurs between the point where an object
- // is allocated and where the vtbl slot is set.
- while (klass && klass != &ObjectClass)
- {
- jfieldID field = JvGetFirstInstanceField (klass);
- jint max = JvNumInstanceFields (klass);
-
- for (int i = 0; i < max; ++i)
- {
- if (JvFieldIsRef (field))
- {
- jobject val = JvGetObjectField (obj, field);
- p = (ptr_t) val;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit,
- obj, elabel);
- }
- field = field->getNextField ();
- }
- klass = klass->getSuperclass();
- }
- }
-
- return mark_stack_ptr;
-}
-
-// This is called by the GC during the mark phase. It marks a Java
-// array (of objects). We use `void *' arguments and return, and not
-// what the Boehm GC wants, to avoid pollution in our headers.
-void *
-_Jv_MarkArray (void *addr, void *msp, void *msl, void * /*env*/)
-{
- mse *mark_stack_ptr = (mse *) msp;
- mse *mark_stack_limit = (mse *) msl;
- jobjectArray array = (jobjectArray) addr;
-
- _Jv_VTable *dt = *(_Jv_VTable **) addr;
- // We check this in case a GC occurs before the vtbl is set. FIXME:
- // should use allocation lock while initializing object.
- if (__builtin_expect (! dt, false))
- return mark_stack_ptr;
- jclass klass = dt->clas;
-
- // Every object has a sync_info pointer.
- ptr_t p = (ptr_t) array->sync_info;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, array, e1label);
- // Mark the object's class.
- p = (ptr_t) klass;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, obj, o2label);
-
- for (int i = 0; i < JvGetArrayLength (array); ++i)
- {
- jobject obj = elements (array)[i];
- p = (ptr_t) obj;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, array, e2label);
- }
-
- return mark_stack_ptr;
-}
-
-// Allocate space for a new Java object. FIXME: this might be the
-// wrong interface; we might prefer to pass in the object type as
-// well. It isn't important for this collector, but it might be for
-// other collectors.
-void *
-_Jv_AllocObj (jsize size)
-{
- return GC_GENERIC_MALLOC (size, obj_kind_x);
-}
-
-// Allocate space for a new Java array. FIXME: again, this might be
-// the wrong interface.
-void *
-_Jv_AllocArray (jsize size)
-{
- return GC_GENERIC_MALLOC (size, array_kind_x);
-}
-
-// Allocate some space that is known to be pointer-free.
-void *
-_Jv_AllocBytes (jsize size)
-{
- void *r = GC_GENERIC_MALLOC (size, PTRFREE);
- // We have to explicitly zero memory here, as the GC doesn't
- // guarantee that PTRFREE allocations are zeroed. Note that we
- // don't have to do this for other allocation types because we set
- // the `ok_init' flag in the type descriptor.
- if (__builtin_expect (r != NULL, !NULL))
- memset (r, 0, size);
- return r;
-}
-
-static void
-call_finalizer (GC_PTR obj, GC_PTR client_data)
-{
- _Jv_FinalizerFunc *fn = (_Jv_FinalizerFunc *) client_data;
- jobject jobj = (jobject) obj;
-
- (*fn) (jobj);
-}
-
-void
-_Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *meth)
-{
- GC_REGISTER_FINALIZER_NO_ORDER (object, call_finalizer, (GC_PTR) meth,
- NULL, NULL);
-}
-
-void
-_Jv_RunFinalizers (void)
-{
- GC_invoke_finalizers ();
-}
-
-void
-_Jv_RunAllFinalizers (void)
-{
- GC_finalize_all ();
-}
-
-void
-_Jv_RunGC (void)
-{
- GC_gcollect ();
-}
-
-long
-_Jv_GCTotalMemory (void)
-{
- return GC_get_heap_size ();
-}
-
-long
-_Jv_GCFreeMemory (void)
-{
- return GC_get_free_bytes ();
-}
-
-void
-_Jv_GCSetInitialHeapSize (size_t size)
-{
- size_t current = GC_get_heap_size ();
- if (size > current)
- GC_expand_hp (size - current);
-}
-
-void
-_Jv_GCSetMaximumHeapSize (size_t size)
-{
- GC_set_max_heap_size ((GC_word) size);
-}
-
-// From boehm's misc.c
-extern "C" void GC_enable();
-extern "C" void GC_disable();
-
-void
-_Jv_DisableGC (void)
-{
- _Jv_MutexLock (&disable_gc_mutex);
- GC_disable();
- _Jv_MutexUnlock (&disable_gc_mutex);
-}
-
-void
-_Jv_EnableGC (void)
-{
- _Jv_MutexLock (&disable_gc_mutex);
- GC_enable();
- _Jv_MutexUnlock (&disable_gc_mutex);
-}
-
-void
-_Jv_InitGC (void)
-{
- int proc;
- DCL_LOCK_STATE;
-
- DISABLE_SIGNALS ();
- LOCK ();
-
- if (initialized)
- {
- UNLOCK ();
- ENABLE_SIGNALS ();
- return;
- }
- initialized = 1;
-
- GC_java_finalization = 1;
-
- // Set up state for marking and allocation of Java objects.
- obj_free_list = (ptr_t *) GC_generic_malloc_inner ((MAXOBJSZ + 1)
- * sizeof (ptr_t),
- PTRFREE);
- memset (obj_free_list, 0, (MAXOBJSZ + 1) * sizeof (ptr_t));
-
- proc = GC_n_mark_procs++;
- GC_mark_procs[proc] = (mark_proc) _Jv_MarkObj;
-
- obj_kind_x = GC_n_kinds++;
- GC_obj_kinds[obj_kind_x].ok_freelist = obj_free_list;
- GC_obj_kinds[obj_kind_x].ok_reclaim_list = 0;
- GC_obj_kinds[obj_kind_x].ok_descriptor = MAKE_PROC (proc, 0);
- GC_obj_kinds[obj_kind_x].ok_relocate_descr = FALSE;
- GC_obj_kinds[obj_kind_x].ok_init = TRUE;
-
- // Set up state for marking and allocation of arrays of Java
- // objects.
- array_free_list = (ptr_t *) GC_generic_malloc_inner ((MAXOBJSZ + 1)
- * sizeof (ptr_t),
- PTRFREE);
- memset (array_free_list, 0, (MAXOBJSZ + 1) * sizeof (ptr_t));
-
- proc = GC_n_mark_procs++;
- GC_mark_procs[proc] = (mark_proc) _Jv_MarkArray;
-
- array_kind_x = GC_n_kinds++;
- GC_obj_kinds[array_kind_x].ok_freelist = array_free_list;
- GC_obj_kinds[array_kind_x].ok_reclaim_list = 0;
- GC_obj_kinds[array_kind_x].ok_descriptor = MAKE_PROC (proc, 0);
- GC_obj_kinds[array_kind_x].ok_relocate_descr = FALSE;
- GC_obj_kinds[array_kind_x].ok_init = TRUE;
-
- _Jv_MutexInit (&disable_gc_mutex);
-
- UNLOCK ();
- ENABLE_SIGNALS ();
-}
diff --git a/libjava/chartables.pl b/libjava/chartables.pl
deleted file mode 100644
index fef7d8742cf..00000000000
--- a/libjava/chartables.pl
+++ /dev/null
@@ -1,965 +0,0 @@
-# chartables.pl - A perl program to generate tables for use by the
-# Character class.
-
-# Copyright (C) 1998, 1999 Red Hat, Inc.
-#
-# This file is part of libjava.
-#
-# This software is copyrighted work licensed under the terms of the
-# Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-# details.
-
-# This program requires a `unidata.txt' file of the form distributed
-# on the Unicode 2.0 CD ROM. Or, get it more conveniently here:
-# ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData-Latest.txt
-# Version `2.1.8' of this file was last used to update the Character class.
-
-# Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
-# "The Java Language Specification", ISBN 0-201-63451-1
-# plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
-
-# Usage: perl chartables.pl [-n] UnicodeData-VERSION.txt
-# If this exits with nonzero status, then you must investigate the
-# cause of the problem.
-# Diagnostics and other information to stderr.
-# This creates the new include/java-chartables.h and
-# include/java-chardecomp.h files directly.
-# With -n, the files are not created, but all processing
-# still occurs.
-
-# Fields in the table.
-$CODE = 0;
-$NAME = 1;
-$CATEGORY = 2;
-$DECOMPOSITION = 5;
-$DECIMAL = 6;
-$DIGIT = 7;
-$NUMERIC = 8;
-$UPPERCASE = 12;
-$LOWERCASE = 13;
-$TITLECASE = 14;
-
-# A special case.
-$TAMIL_DIGIT_ONE = 0x0be7;
-$TAMIL_DIGIT_NINE = 0x0bef;
-
-# These are endpoints of legitimate gaps in the tables.
-$CJK_IDEOGRAPH_END = 0x9fa5;
-$HANGUL_END = 0xd7a3;
-$HIGH_SURROGATE_END = 0xdb7f;
-$PRIVATE_HIGH_SURROGATE_END = 0xdbff;
-$LOW_SURROGATE_END = 0xdfff;
-$PRIVATE_END = 0xf8ff;
-
-%title_to_upper = ();
-%title_to_lower = ();
-%numerics = ();
-%name = ();
-
-@digit_start = ();
-@digit_end = ();
-
-@space_start = ();
-@space_end = ();
-
-# @letter_start = ();
-# @letter_end = ();
-
-@all_start = ();
-@all_end = ();
-@all_cats = ();
-
-@upper_start = ();
-@upper_end = ();
-@upper_map = ();
-%upper_anom = ();
-
-@lower_start = ();
-@lower_end = ();
-@lower_map = ();
-%lower_anom = ();
-
-@attributes = ();
-
-# There are a few characters which actually need two attributes.
-# These are special-cased.
-$ROMAN_START = 0x2160;
-$ROMAN_END = 0x217f;
-%second_attributes = ();
-
-$prevcode = -1;
-$status = 0;
-
-%category_map =
-(
- 'Mn' => 'NON_SPACING_MARK',
- 'Mc' => 'COMBINING_SPACING_MARK',
- 'Me' => 'ENCLOSING_MARK',
- 'Nd' => 'DECIMAL_DIGIT_NUMBER',
- 'Nl' => 'LETTER_NUMBER',
- 'No' => 'OTHER_NUMBER',
- 'Zs' => 'SPACE_SEPARATOR',
- 'Zl' => 'LINE_SEPARATOR',
- 'Zp' => 'PARAGRAPH_SEPARATOR',
- 'Cc' => 'CONTROL',
- 'Cf' => 'FORMAT',
- 'Cs' => 'SURROGATE',
- 'Co' => 'PRIVATE_USE',
- 'Cn' => 'UNASSIGNED',
- 'Lu' => 'UPPERCASE_LETTER',
- 'Ll' => 'LOWERCASE_LETTER',
- 'Lt' => 'TITLECASE_LETTER',
- 'Lm' => 'MODIFIER_LETTER',
- 'Lo' => 'OTHER_LETTER',
- 'Pc' => 'CONNECTOR_PUNCTUATION',
- 'Pd' => 'DASH_PUNCTUATION',
- 'Ps' => 'START_PUNCTUATION',
- 'Pe' => 'END_PUNCTUATION',
- 'Pi' => 'START_PUNCTUATION',
- 'Pf' => 'END_PUNCTUATION',
- 'Po' => 'OTHER_PUNCTUATION',
- 'Sm' => 'MATH_SYMBOL',
- 'Sc' => 'CURRENCY_SYMBOL',
- 'Sk' => 'MODIFIER_SYMBOL',
- 'So' => 'OTHER_SYMBOL'
- );
-
-# These maps characters to their decompositions.
-%canonical_decomposition = ();
-%full_decomposition = ();
-
-
-# Handle `-n' and open output files.
-local ($f1, $f2) = ('include/java-chartables.h',
- 'include/java-chardecomp.h');
-if ($ARGV[0] eq '-n')
-{
- shift @ARGV;
- $f1 = '/dev/null';
- $f2 = '/dev/null';
-}
-
-open (CHARTABLE, "> $f1");
-open (DECOMP, "> $f2");
-
-# Process the Unicode file.
-while (<>)
-{
- chop;
- # Specify a limit for split so that we pick up trailing fields.
- # We make the limit larger than we need, to catch the case where
- # there are extra fields.
- @fields = split (';', $_, 30);
- # Convert code to number.
- $ncode = hex ($fields[$CODE]);
-
- if ($#fields != 14)
- {
- print STDERR ("Entry for \\u", $fields[$CODE],
- " has wrong number of fields: ", $#fields, "\n");
- }
-
- $name{$fields[$CODE]} = $fields[$NAME];
-
- # If we've found a gap in the table, fill it in.
- if ($ncode != $prevcode + 1)
- {
- &process_gap (*fields, $prevcode, $ncode);
- }
-
- &process_char (*fields, $ncode);
-
- $prevcode = $ncode;
-}
-
-if ($prevcode != 0xffff)
-{
- # Setting of `fields' parameter doesn't matter here.
- &process_gap (*fields, $prevcode, 0x10000);
-}
-
-print CHARTABLE "// java-chartables.h - Character tables for java.lang.Character -*- c++ -*-\n\n";
-print CHARTABLE "#ifndef __JAVA_CHARTABLES_H__\n";
-print CHARTABLE "#define __JAVA_CHARTABLES_H__\n\n";
-print CHARTABLE "// These tables are automatically generated by the chartables.pl\n";
-print CHARTABLE "// script. DO NOT EDIT the tables. Instead, fix the script\n";
-print CHARTABLE "// and run it again.\n\n";
-print CHARTABLE "// This file should only be included by natCharacter.cc\n\n";
-
-
-$bytes = 0;
-
-# Titlecase mapping tables.
-if ($#title_to_lower != $#title_to_upper)
-{
- # If this fails we need to reimplement toTitleCase.
- print STDERR "titlecase mappings have different sizes\n";
- $status = 1;
-}
-# Also ensure that the tables are entirely parallel.
-foreach $key (sort keys %title_to_lower)
-{
- if (! defined $title_to_upper{$key})
- {
- print STDERR "titlecase mappings have different entries\n";
- $status = 1;
- }
-}
-&print_single_map ("title_to_lower_table", %title_to_lower);
-&print_single_map ("title_to_upper_table", %title_to_upper);
-
-print CHARTABLE "#ifdef COMPACT_CHARACTER\n\n";
-
-printf CHARTABLE "#define TAMIL_DIGIT_ONE 0x%04x\n\n", $TAMIL_DIGIT_ONE;
-
-# All numeric values.
-&print_numerics;
-
-# Digits only.
-&print_block ("digit_table", *digit_start, *digit_end);
-
-# Space characters.
-&print_block ("space_table", *space_start, *space_end);
-
-# Letters. We used to generate a separate letter table. But this
-# doesn't really seem worthwhile. Simply using `all_table' saves us
-# about 800 bytes, and only adds 3 table probes to isLetter.
-# &print_block ("letter_table", *letter_start, *letter_end);
-
-# Case tables.
-&print_case_table ("upper", *upper_start, *upper_end, *upper_map, *upper_anom);
-&print_case_table ("lower", *lower_start, *lower_end, *lower_map, *lower_anom);
-
-# Everything else.
-&print_all_block (*all_start, *all_end, *all_cats);
-
-print CHARTABLE "#else /* COMPACT_CHARACTER */\n\n";
-
-printf CHARTABLE "#define ROMAN_START 0x%04x\n", $ROMAN_START;
-printf CHARTABLE "#define ROMAN_END 0x%04x\n\n", $ROMAN_END;
-
-&print_fast_tables (*all_start, *all_end, *all_cats,
- *attributes, *second_attributes);
-
-print CHARTABLE "#endif /* COMPACT_CHARACTER */\n\n";
-
-print CHARTABLE "#endif /* __JAVA_CHARTABLES_H__ */\n";
-
-printf STDERR "Approximately %d bytes of data generated (compact case)\n",
- $bytes;
-
-
-# Now generate decomposition tables.
-printf DECOMP "// java-chardecomp.h - Decomposition character tables -*- c++ -*-\n\n";
-printf DECOMP "#ifndef __JAVA_CHARDECOMP_H__\n";
-printf DECOMP "#define __JAVA_CHARDECOMP_H__\n\n";
-print DECOMP "// These tables are automatically generated by the chartables.pl\n";
-print DECOMP "// script. DO NOT EDIT the tables. Instead, fix the script\n";
-print DECOMP "// and run it again.\n\n";
-print DECOMP "// This file should only be included by natCollator.cc\n\n";
-
-print DECOMP "struct decomp_entry\n{\n";
-print DECOMP " jchar key;\n";
-print DECOMP " const char *value;\n";
-print DECOMP "};\n\n";
-
-&write_decompositions;
-
-printf DECOMP "#endif /* __JAVA_CHARDECOMP_H__ */\n";
-
-
-close (CHARTABLE);
-close (DECOMP);
-
-exit $status;
-
-
-# Process a gap in the space.
-sub process_gap
-{
- local (*fields, $prevcode, $ncode) = @_;
- local (@gap_fields, $i);
-
- if ($ncode == $CJK_IDEOGRAPH_END
- || $ncode == $HANGUL_END
- || $ncode == $HIGH_SURROGATE_END
- || $ncode == $PRIVATE_HIGH_SURROGATE_END
- || $ncode == $LOW_SURROGATE_END
- || $ncode == $PRIVATE_END)
- {
- # The characters in the gap we just found are known to
- # have the same properties as the character at the end of
- # the gap.
- @gap_fields = @fields;
- }
- else
- {
- # This prints too much to be enabled.
- # print STDERR "Gap found at \\u", $fields[$CODE], "\n";
- @gap_fields = ('', '', 'Cn', '', '', '', '', '', '', '', '',
- '', '', '', '');
- }
-
- for ($i = $prevcode + 1; $i < $ncode; ++$i)
- {
- $gap_fields[$CODE] = sprintf ("%04x", $i);
- $gap_fields[$NAME] = "CHARACTER " . $gap_fields[$CODE];
- &process_char (*gap_fields, $i);
- }
-}
-
-# Process a single character.
-sub process_char
-{
- local (*fields, $ncode) = @_;
-
- if ($fields[$DECOMPOSITION] ne '')
- {
- &add_decomposition ($ncode, $fields[$DECOMPOSITION]);
- }
-
- # If this is a titlecase character, mark it.
- if ($fields[$CATEGORY] eq 'Lt')
- {
- $title_to_upper{$fields[$CODE]} = $fields[$UPPERCASE];
- $title_to_lower{$fields[$CODE]} = $fields[$LOWERCASE];
- }
- else
- {
- # For upper and lower case mappings, we try to build compact
- # tables that map range onto range. We specifically want to
- # avoid titlecase characters. Java specifies a range check to
- # make sure the character is not between 0x2000 and 0x2fff.
- # We avoid that here because we need to generate table entries
- # -- toLower and toUpper still work in that range.
- if ($fields[$UPPERCASE] eq ''
- && ($fields[$LOWERCASE] ne ''
- || $fields[$NAME] =~ /CAPITAL (LETTER|LIGATURE)/))
- {
- if ($fields[$LOWERCASE] ne '')
- {
- &update_case_block (*upper_start, *upper_end, *upper_map,
- $fields[$CODE], $fields[$LOWERCASE]);
- &set_attribute ($ncode, hex ($fields[$LOWERCASE]));
- }
- else
- {
- $upper_anom{$fields[$CODE]} = 1;
- }
- }
- elsif ($fields[$LOWERCASE] ne '')
- {
- print STDERR ("Java missed upper case char \\u",
- $fields[$CODE], "\n");
- }
- elsif ($fields[$CATEGORY] eq 'Lu')
- {
- # This case is for letters which are marked as upper case
- # but for which there is no lower case equivalent. For
- # instance, LATIN LETTER YR.
- }
-
- if ($fields[$LOWERCASE] eq ''
- && ($fields[$UPPERCASE] ne ''
- || $fields[$NAME] =~ /SMALL (LETTER|LIGATURE)/))
- {
- if ($fields[$UPPERCASE] ne '')
- {
- &update_case_block (*lower_start, *lower_end, *lower_map,
- $fields[$CODE], $fields[$UPPERCASE]);
- &set_attribute ($ncode, hex ($fields[$UPPERCASE]));
- }
- else
- {
- $lower_anom{$fields[$CODE]} = 1;
- }
- }
- elsif ($fields[$UPPERCASE] ne '')
- {
- print STDERR ("Java missed lower case char \\u",
- $fields[$CODE], "\n");
- }
- elsif ($fields[$CATEGORY] eq 'Ll')
- {
- # This case is for letters which are marked as lower case
- # but for which there is no upper case equivalent. For
- # instance, FEMININE ORDINAL INDICATOR.
- }
- }
-
-
- # If we have a non-decimal numeric value, add it to the list.
- if ($fields[$CATEGORY] eq 'Nd'
- && ($ncode < 0x2000 || $ncode > 0x2fff)
- && $fields[$NAME] =~ /DIGIT/)
- {
- # This is a digit character that is handled elsewhere.
- }
- elsif ($fields[$DIGIT] ne '' || $fields[$NUMERIC] ne '')
- {
- # Do a simple check.
- if ($fields[$DECIMAL] ne '')
- {
- # This catches bugs in an earlier implementation of
- # chartables.pl. Now it is here for historical interest
- # only.
- # print STDERR ("Character \u", $fields[$CODE],
- # " would have been missed as digit\n");
- }
-
- local ($val) = $fields[$DIGIT];
- $val = $fields[$NUMERIC] if $val eq '';
- local ($ok) = 1;
-
- # If we have a value which is not a positive integer, then we
- # set the value to -2 to make life easier for
- # Character.getNumericValue.
- if ($val !~ m/^[0-9]+$/)
- {
- if ($fields[$CATEGORY] ne 'Nl'
- && $fields[$CATEGORY] ne 'No')
- {
- # This shows a few errors in the Unicode table. These
- # characters have a missing Numeric field, and the `N'
- # for the mirrored field shows up there instead. I
- # reported these characters to errata@unicode.org on
- # Thu Sep 10 1998. They said it will be fixed in the
- # 2.1.6 release of the tables.
- print STDERR ("Character \u", $fields[$CODE],
- " has value but is not numeric; val = '",
- $val, "'\n");
- # We skip these.
- $ok = 0;
- }
- $val = "-2";
- }
-
- if ($ok)
- {
- $numerics{$fields[$CODE]} = $val;
- &set_attribute ($ncode, $val);
- }
- }
-
- # We build a table that lists ranges of ordinary decimal values.
- # At each step we make sure that the digits are in the correct
- # order, with no holes, as this is assumed by Character. If this
- # fails, reimplementation is required. This implementation
- # dovetails nicely with the Java Spec, which has strange rules for
- # what constitutes a decimal value. In particular the Unicode
- # name must contain the word `DIGIT'. The spec doesn't directly
- # say that digits must have type `Nd' (or that their value must an
- # integer), but that can be inferred from the list of digits in
- # the book(s). Currently the only Unicode characters whose name
- # includes `DIGIT' which would not fit are the Tibetan "half"
- # digits.
- if ($fields[$CATEGORY] eq 'Nd')
- {
- if (($ncode < 0x2000 || $ncode > 0x2fff)
- && $fields[$NAME] =~ /DIGIT/)
- {
- &update_digit_block (*digit_start, *digit_end, $fields[$CODE],
- $fields[$DECIMAL]);
- &set_attribute ($ncode, $fields[$DECIMAL]);
- }
- else
- {
- # If this fails then Character.getType will fail. We
- # assume that things in `digit_table' are the only
- # category `Nd' characters.
- print STDERR ("Character \u", $fields[$CODE],
- " is class Nd but not in digit table\n");
- $status = 1;
- }
- }
-
- # Keep track of space characters.
- if ($fields[$CATEGORY] =~ /Z[slp]/)
- {
- &update_block (*space_start, *space_end, $fields[$CODE]);
- }
-
- # Keep track of letters.
- # if ($fields[$CATEGORY] =~ /L[ultmo]/)
- # {
- # &update_letter_block (*letter_start, *letter_end, $fields[$CODE],
- # $fields[$CATEGORY]);
- # }
-
- # Keep track of all characters. You might think we wouldn't have
- # to do this for uppercase letters, or other characters we already
- # "classify". The problem is that this classification is
- # different. E.g., \u216f is uppercase by Java rules, but is a
- # LETTER_NUMBER here.
- &update_all_block (*all_start, *all_end, *all_cats,
- $fields[$CODE], $fields[$CATEGORY]);
-}
-
-
-# Called to add a new decomposition.
-sub add_decomposition
-{
- local ($ncode, $value) = @_;
- local ($is_full) = 0;
- local ($first) = 1;
- local (@decomp) = ();
-
- foreach (split (' ', $value))
- {
- if ($first && /^\<.*\>$/)
- {
- $is_full = 1;
- }
- else
- {
- push (@decomp, hex ($_));
- }
- $first = 0;
- }
-
- # We pack the value into a string because this means we can stick
- # with Perl 4 features.
- local ($s) = pack "I*", @decomp;
- if ($is_full)
- {
- $full_decomposition{$ncode} = $s;
- }
- else
- {
- $canonical_decomposition{$ncode} = $s;
- }
-}
-
-# Write a single decomposition table.
-sub write_single_decomposition
-{
- local ($name, $is_canon, %table) = @_;
-
- printf DECOMP "static const decomp_entry ${name}_decomposition[] =\n{\n";
-
- local ($key, @expansion, $char);
- local ($first_line) = 1;
-
- for ($key = 0; $key <= 65535; ++$key)
- {
- next if ! defined $table{$key};
-
- printf DECOMP ",\n"
- unless $first_line;
- $first_line = 0;
-
- printf DECOMP " { 0x%04x, \"", $key;
-
- # We represent the expansion as a series of bytes, terminated
- # with a double nul. This is ugly, but relatively
- # space-efficient. Most expansions are short, but there are a
- # few that are very long (e.g. \uFDFA). This means that if we
- # chose a fixed-space representation we would waste a lot of
- # space.
- @expansion = unpack "I*", $table{$key};
- foreach $char (@expansion)
- {
- printf DECOMP "\\x%02x\\x%02x", ($char / 256), ($char % 256);
- }
-
- printf DECOMP "\" }";
- }
-
- printf DECOMP "\n};\n\n";
-}
-
-sub write_decompositions
-{
- &write_single_decomposition ('canonical', 1, %canonical_decomposition);
- &write_single_decomposition ('full', 0, %full_decomposition);
-}
-
-# We represent a block of characters with a pair of lists. This
-# function updates the pair to account for the new character. Returns
-# 1 if we added to the old block, 0 otherwise.
-sub update_block
-{
- local (*start, *end, $char) = @_;
-
- local ($nchar) = hex ($char);
- local ($count) = $#end;
- if ($count >= 0 && $end[$count] == $nchar - 1)
- {
- ++$end[$count];
- return 1;
- }
- else
- {
- ++$count;
- $start[$count] = $nchar;
- $end[$count] = $nchar;
- }
- return 0;
-}
-
-# Return true if we will be appending this character to the end of the
-# existing block.
-sub block_append_p
-{
- local (*end, $char) = @_;
- return $#end >= 0 && $end[$#end] == $char - 1;
-}
-
-# This updates the digit block. This table is much like an ordinary
-# block, but it has an extra constraint.
-sub update_digit_block
-{
- local (*start, *end, $char, $value) = @_;
-
- &update_block ($start, $end, $char);
- local ($nchar) = hex ($char);
-
- # We want to make sure that the new digit's value is correct for
- # its place in the block. However, we special-case Tamil digits,
- # since Tamil does not have a digit `0'.
- local ($count) = $#start;
- if (($nchar < $TAMIL_DIGIT_ONE || $nchar > $TAMIL_DIGIT_NINE)
- && $nchar - $start[$count] != $value)
- {
- # If this fails then Character.digit_value will be wrong.
- print STDERR "Character \\u", $char, " violates digit constraint\n";
- $status = 1;
- }
-}
-
-# Update letter table. We could be smart about avoiding upper or
-# lower case letters, but it is much simpler to just track them all.
-sub update_letter_block
-{
- local (*start, *end, $char, $category) = @_;
-
- &update_block (*start, *end, $char);
-}
-
-# Update `all' table. This table holds all the characters we don't
-# already categorize for other reasons. FIXME: if a given type has
-# very few characters, we should just inline the code. E.g., there is
-# only one paragraph separator.
-sub update_all_block
-{
- local (*start, *end, *cats, $char, $category) = @_;
-
- local ($nchar) = hex ($char);
- local ($count) = $#end;
- if ($count >= 0
- && $end[$count] == $nchar - 1
- && $cats[$count] eq $category)
- {
- ++$end[$count];
- }
- else
- {
- ++$count;
- $start[$count] = $nchar;
- $end[$count] = $nchar;
- $cats[$count] = $category;
- }
-}
-
-# Update a case table. We handle case tables specially because we
-# want to map (e.g.) a block of uppercase characters directly onto the
-# corresponding block of lowercase characters. Therefore we generate
-# a new entry when the block would no longer map directly.
-sub update_case_block
-{
- local (*start, *end, *map, $char, $mapchar) = @_;
-
- local ($nchar) = hex ($char);
- local ($nmap) = hex ($mapchar);
-
- local ($count) = $#end;
- if ($count >= 0
- && $end[$count] == $nchar - 1
- && $nchar - $start[$count] == $nmap - $map[$count])
- {
- ++$end[$count];
- }
- else
- {
- ++$count;
- $start[$count] = $nchar;
- $end[$count] = $nchar;
- $map[$count] = $nmap;
- }
-}
-
-# Set the attribute value for the character. Each character can have
-# only one attribute.
-sub set_attribute
-{
- local ($ncode, $attr) = @_;
-
- if ($attributes{$ncode} ne '' && $attributes{$ncode} ne $attr)
- {
- if ($ncode >= $ROMAN_START && $ncode <= $ROMAN_END)
- {
- $second_attributes{$ncode} = $attr;
- }
- else
- {
- printf STDERR "character \\u%04x already has attribute\n", $ncode;
- }
- }
- # Attributes can be interpreted as unsigned in some situations,
- # so we check against 65535. This could cause errors -- we need
- # to check the interpretation here.
- elsif ($attr < -32768 || $attr > 65535)
- {
- printf STDERR "attribute out of range for character \\u%04x\n", $ncode;
- }
- else
- {
- $attributes{$ncode} = $attr;
- }
-}
-
-
-# Print a block table.
-sub print_block
-{
- local ($title, *start, *end) = @_;
-
- print CHARTABLE "static const jchar ", $title, "[][2] =\n";
- print CHARTABLE " {\n";
-
- local ($i) = 0;
- while ($i <= $#start)
- {
- print CHARTABLE " { ";
- &print_char ($start[$i]);
- print CHARTABLE ", ";
- &print_char ($end[$i]);
- print CHARTABLE " }";
- print CHARTABLE "," if ($i != $#start);
- print CHARTABLE "\n";
- ++$i;
- $bytes += 4; # Two bytes per char.
- }
-
- print CHARTABLE " };\n\n";
-}
-
-# Print the numerics table.
-sub print_numerics
-{
- local ($i, $key, $count, @keys);
-
- $i = 0;
- @keys = sort keys %numerics;
- $count = @keys;
-
- print CHARTABLE "static const jchar numeric_table[] =\n";
- print CHARTABLE " { ";
- foreach $key (@keys)
- {
- &print_char (hex ($key));
- ++$i;
- print CHARTABLE ", " if $i < $count;
- # Print 5 per line.
- print CHARTABLE "\n " if ($i % 5 == 0);
- $bytes += 2; # One character.
- }
- print CHARTABLE " };\n\n";
-
- print CHARTABLE "static const jshort numeric_value[] =\n";
- print CHARTABLE " { ";
- $i = 0;
- foreach $key (@keys)
- {
- print CHARTABLE $numerics{$key};
- if ($numerics{$key} > 32767 || $numerics{$key} < -32768)
- {
- # This means our generated type info is incorrect. We
- # could just detect and work around this here, but I'm
- # lazy.
- print STDERR "numeric value won't fit in a short\n";
- $status = 1;
- }
- ++$i;
- print CHARTABLE ", " if $i < $count;
- # Print 10 per line.
- print CHARTABLE "\n " if ($i % 10 == 0);
- $bytes += 2; # One short.
- }
- print CHARTABLE " };\n\n";
-}
-
-# Print a table that maps one single letter onto another. It assumes
-# the map is index by char code.
-sub print_single_map
-{
- local ($title, %map) = @_;
-
- local (@keys) = sort keys %map;
- $num = @keys;
- print CHARTABLE "static const jchar ", $title, "[][2] =\n";
- print CHARTABLE " {\n";
- $i = 0;
- for $key (@keys)
- {
- print CHARTABLE " { ";
- &print_char (hex ($key));
- print CHARTABLE ", ";
- &print_char (hex ($map{$key}));
- print CHARTABLE " }";
- ++$i;
- if ($i < $num)
- {
- print CHARTABLE ",";
- }
- else
- {
- print CHARTABLE " ";
- }
- print CHARTABLE " // ", $name{$key}, "\n";
- $bytes += 4; # Two bytes per char.
- }
- print CHARTABLE " };\n\n";
-}
-
-# Print the `all' block.
-sub print_all_block
-{
- local (*start, *end, *cats) = @_;
-
- &print_block ("all_table", *start, *end);
-
- local ($i) = 0;
- local ($sum) = 0;
- while ($i <= $#start)
- {
- $sum += $end[$i] - $start[$i] + 1;
- ++$i;
- }
- # We do this computation just to make sure it isn't cheaper to
- # simply list all the characters individually.
- printf STDERR ("all_table encodes %d characters in %d entries\n",
- $sum, $#start + 1);
-
- print CHARTABLE "static const jbyte category_table[] =\n";
- print CHARTABLE " { ";
-
- $i = 0;
- while ($i <= $#cats)
- {
- if ($i > 0 && $cats[$i] eq $cats[$i - 1])
- {
- # This isn't an error. We can have a duplicate because
- # two ranges are not adjacent while the intervening
- # characters are left out of the table for other reasons.
- # We could exploit this to make the table a little smaller.
- # printf STDERR "Duplicate all entry at \\u%04x\n", $start[$i];
- }
- print CHARTABLE 'java::lang::Character::', $category_map{$cats[$i]};
- print CHARTABLE ", " if ($i < $#cats);
- ++$i;
- print CHARTABLE "\n ";
- ++$bytes;
- }
- print CHARTABLE " };\n\n";
-}
-
-# Print case table.
-sub print_case_table
-{
- local ($title, *start, *end, *map, *anomalous) = @_;
-
- &print_block ($title . '_case_table', *start, *end);
-
- print CHARTABLE "static const jchar ", $title, "_case_map_table[] =\n";
- print CHARTABLE " { ";
-
- local ($i) = 0;
- while ($i <= $#map)
- {
- &print_char ($map[$i]);
- print CHARTABLE ", " if $i < $#map;
- ++$i;
- print CHARTABLE "\n " if $i % 5 == 0;
- $bytes += 2;
- }
- print CHARTABLE " };\n";
-
-
- local ($key, @keys);
- @keys = sort keys %anomalous;
-
- if ($title eq 'upper')
- {
- if ($#keys >= 0)
- {
- # If these are found we need to change Character.isUpperCase.
- print STDERR "Found anomalous upper case characters\n";
- $status = 1;
- }
- }
- else
- {
- print CHARTABLE "\n";
- print CHARTABLE "static const jchar ", $title, "_anomalous_table[] =\n";
- print CHARTABLE " { ";
- $i = 0;
- foreach $key (@keys)
- {
- &print_char (hex ($key));
- print CHARTABLE ", " if $i < $#keys;
- ++$i;
- print CHARTABLE "\n " if $i % 5 == 0;
- $bytes += 2;
- }
- print CHARTABLE " };\n";
- }
-
- print CHARTABLE "\n";
-}
-
-# Print the type table and attributes table for the fast version.
-sub print_fast_tables
-{
- local (*start, *end, *cats, *atts, *second_atts) = @_;
-
- print CHARTABLE "static const jbyte type_table[] =\n{ ";
-
- local ($i, $j);
- for ($i = 0; $i <= $#cats; ++$i)
- {
- for ($j = $start[$i]; $j <= $end[$i]; ++$j)
- {
- print CHARTABLE 'java::lang::Character::', $category_map{$cats[$i]};
- print CHARTABLE "," if ($i < $#cats || $j < $end[$i]);
- print CHARTABLE "\n ";
- }
- }
- print CHARTABLE "\n };\n\n";
-
- print CHARTABLE "static const jshort attribute_table[] =\n{ ";
- for ($i = 0; $i <= 0xffff; ++$i)
- {
- $atts{$i} = 0 if ! defined $atts{$i};
- print CHARTABLE $atts{$i};
- print CHARTABLE ", " if $i < 0xffff;
- print CHARTABLE "\n " if $i % 5 == 1;
- }
- print CHARTABLE "\n };\n\n";
-
- print CHARTABLE "static const jshort secondary_attribute_table[] =\n{ ";
- for ($i = $ROMAN_START; $i <= $ROMAN_END; ++$i)
- {
- print CHARTABLE $second_atts{$i};
- print CHARTABLE ", " if $i < $ROMAN_END;
- print CHARTABLE "\n " if $i % 5 == 1;
- }
- print CHARTABLE "\n };\n\n";
-}
-
-# Print a character constant.
-sub print_char
-{
- local ($ncode) = @_;
- printf CHARTABLE "0x%04x", $ncode;
-}
diff --git a/libjava/configure b/libjava/configure
deleted file mode 100755
index 9e9a78b8ad9..00000000000
--- a/libjava/configure
+++ /dev/null
@@ -1,6447 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- --with-target-subdir=SUBDIR
- configuring in a subdirectory"
-ac_help="$ac_help
- --with-cross-host=HOST configuring with a cross compiler"
-ac_help="$ac_help
- --enable-multilib build many library versions (default)"
-ac_help="$ac_help
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer"
-ac_help="$ac_help
- --enable-shared[=PKGS] build shared libraries [default=yes]"
-ac_help="$ac_help
- --enable-static[=PKGS] build static libraries [default=yes]"
-ac_help="$ac_help
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
-ac_help="$ac_help
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
- --disable-libtool-lock avoid locking (might break parallel builds)"
-ac_help="$ac_help
- --with-pic try to use only PIC/non-PIC objects [default=use both]"
-ac_help="$ac_help
- --enable-fast-character prefer speed over size for Character"
-ac_help="$ac_help
- --disable-getenv-properties
- don't set system properties from GCJ_PROPERTIES"
-ac_help="$ac_help
- --enable-libgcj-debug enable runtime debugging code"
-ac_help="$ac_help
- --enable-interpreter enable interpreter"
-ac_help="$ac_help
- --enable-sjlj-exceptions use setjmp/longjmp exceptions"
-ac_help="$ac_help
- --disable-java-net disable java.net"
-ac_help="$ac_help
- --disable-jvmpi disable JVMPI support"
-ac_help="$ac_help
- --with-ecos enable runtime eCos target support"
-ac_help="$ac_help
- --with-system-zlib use installed libz"
-ac_help="$ac_help
- --enable-java-gc=TYPE choose garbage collector [boehm]"
-ac_help="$ac_help
- --enable-threads=TYPE choose threading package"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-sitefile=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --site-file=FILE use FILE as the site file
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -site-file | --site-file | --site-fil | --site-fi | --site-f)
- ac_prev=sitefile ;;
- -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
- sitefile="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=java/lang/System.java
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$sitefile"; then
- if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
- fi
-else
- CONFIG_SITE="$sitefile"
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-ac_aux_dir=
-for ac_dir in .. $srcdir/..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in .. $srcdir/.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-# same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-# as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:630: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:651: checking target system type" >&5
-
-target_alias=$target
-case "$target_alias" in
-NONE)
- case $nonopt in
- NONE) target_alias=$host_alias ;;
- *) target_alias=$nonopt ;;
- esac ;;
-esac
-
-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:669: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-# Check whether --with-target-subdir or --without-target-subdir was given.
-if test "${with_target_subdir+set}" = set; then
- withval="$with_target_subdir"
- :
-fi
-
-# Check whether --with-cross-host or --without-cross-host was given.
-if test "${with_cross_host+set}" = set; then
- withval="$with_cross_host"
- :
-fi
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:717: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:770: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:827: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test $host != $build; then
- ac_tool_prefix=${host_alias}-
-else
- ac_tool_prefix=
-fi
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:860: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 865 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cygwin=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:893: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 898 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_mingw32=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-# Check whether --enable-multilib or --disable-multilib was given.
-if test "${enable_multilib+set}" = set; then
- enableval="$enable_multilib"
- case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;;
- esac
-else
- multilib=yes
-fi
-
-
-if test "${srcdir}" = "."; then
- if test "${with_target_subdir}" != "."; then
- libgcj_basedir="${srcdir}/${with_multisrctop}../."
- else
- libgcj_basedir="${srcdir}/${with_multisrctop}."
- fi
-else
- libgcj_basedir="${srcdir}/."
-fi
-
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:953: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:980: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1010: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1061: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1094: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1103: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1122: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1158: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CXX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CXX="$ac_cv_prog_CXX"
-if test -n "$CXX"; then
- echo "$ac_t""$CXX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX" && break
-done
-test -n "$CXX" || CXX="gcc"
-
-
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1191: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-else
- GXX=
-fi
-
-ac_test_CXXFLAGS="${CXXFLAGS+set}"
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS=
-echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1219: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-
-
-version=0.0.7
-
-PACKAGE=libjava
-
-VERSION=$version
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:1272: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:1285: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:1298: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1311: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1324: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-
-# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we dont
-# run it explicitly here, it will be run implicitly before
-# LIBGCJ_CONFIGURE, which doesn't work because that means that it will
-# be run before AC_CANONICAL_HOST.
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1343: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-
-# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1364: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as"
-fi
-fi
-AS="$ac_cv_prog_AS"
-if test -n "$AS"; then
- echo "$ac_t""$AS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1396: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-fi
-fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
- echo "$ac_t""$AR" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1428: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1460: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1505: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1559: checking whether to enable maintainer-specific portions of Makefiles" >&5
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which cant create executables. So we include AC_EXEEXT to keep
-# automake happy, but we dont execute it, since we dont care about
-# the result.
-if false; then
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1593: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:1603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-fi
-
-# configure.host sets the following important variables
-# libgcj_cflags - host specific C compiler flags
-# libgcj_cxxflags - host specific C++ compiler flags
-# libgcj_javaflags - host specific Java compiler flags
-
-libgcj_cflags=
-libgcj_cxxflags=
-libgcj_javaflags=
-
-. ${libgcj_basedir}/configure.host
-
-case ${libgcj_basedir} in
-/* | A-Za-z:/\\*) libgcj_flagbasedir=${libgcj_basedir} ;;
-*) libgcj_flagbasedir='$(top_builddir)/'${libgcj_basedir} ;;
-esac
-
-LIBGCJ_CFLAGS="${libgcj_cflags}"
-LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
-LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
-
-
-
-
-
-
-
-
-
-# Only use libltdl for native builds.
-if test -z "${with_cross_host}"; then
- case "$enable_ltdl_convenience" in
- no) { echo "configure: error: this package needs a convenience libltdl" 1>&2; exit 1; } ;;
- "") enable_ltdl_convenience=yes
- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
- esac
- LIBLTDL='${top_builddir}/''libltdl'/libltdlc.la
- INCLTDL='-I${top_srcdir}/''libltdl'
-
-
- DIRLTDL=libltdl
- cat >> confdefs.h <<\EOF
-#define USE_LTDL 1
-EOF
-
- # Sigh. Libtool's macro doesn't do the right thing.
- INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
-fi
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1756: checking for ld used by GCC" >&5
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1786: checking for GNU ld" >&5
-else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1789: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1824: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-with_gnu_ld=$ac_cv_prog_gnu_ld
-
-
-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1841: checking for $LD option to reload object files" >&5
-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-
-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1853: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1891: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1912: checking how to recognise dependant libraries" >&5
-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s0-90-90-9|PA-RISC0-9.0-9) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-
-fi
-
-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:2055: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:2061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:2085: checking for ${ac_tool_prefix}file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:2147: checking for file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- else
- MAGIC=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2218: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2250: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2285: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_STRIP"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2317: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- STRIP=":"
-fi
-fi
-
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-libtool_flags="$libtool_flags --enable-dlopen"
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
- :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 2384 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2406: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
- cat > conftest.$ac_ext <<EOF
-#line 2419 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_needs_belf=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-
-esac
-
-echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2456: checking how to run the C++ preprocessor" >&5
-if test -z "$CXXCPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
- CXXCPP="${CXX-g++} -E"
- cat > conftest.$ac_ext <<EOF
-#line 2469 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2474: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CXXCPP=/lib/cpp
-fi
-rm -f conftest*
- ac_cv_prog_CXXCPP="$CXXCPP"
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-fi
-fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
-|| { echo "configure: error: libtool tag configuration failed" 1>&2; exit 1; }
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-
-
-
-subdirs="$DIRLTDL"
-
-
-if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
- COMPPATH=.
-else
- COMPPATH=..
-fi
-
-
-
-
-if test -d $srcdir/testsuite; then
- TESTSUBDIR_TRUE=
- TESTSUBDIR_FALSE='#'
-else
- TESTSUBDIR_TRUE='#'
- TESTSUBDIR_FALSE=
-fi
-
-# Check whether --enable-fast-character or --disable-fast-character was given.
-if test "${enable_fast_character+set}" = set; then
- enableval="$enable_fast_character"
- # Nothing
-
-else
- cat >> confdefs.h <<\EOF
-#define COMPACT_CHARACTER 1
-EOF
-
-fi
-
-
-# Check whether --enable-getenv-properties or --disable-getenv-properties was given.
-if test "${enable_getenv_properties+set}" = set; then
- enableval="$enable_getenv_properties"
- :
-fi
-
-
-if test -n "$enable_getenv_properties"; then
- enable_getenv_properties=${enable_getenv_properties_default-yes}
-fi
-if test "$enable_getenv_properties" = no; then
- cat >> confdefs.h <<\EOF
-#define DISABLE_GETENV_PROPERTIES 1
-EOF
-
-fi
-
-# Check whether --enable-libgcj-debug or --disable-libgcj-debug was given.
-if test "${enable_libgcj_debug+set}" = set; then
- enableval="$enable_libgcj_debug"
- if test "$enable_libgcj_debug" = yes; then
- cat >> confdefs.h <<\EOF
-#define DEBUG 1
-EOF
-
- fi
-fi
-
-
-# Check whether --enable-interpreter or --disable-interpreter was given.
-if test "${enable_interpreter+set}" = set; then
- enableval="$enable_interpreter"
- if test "$enable_interpreter" = yes; then
- # This can also be set in configure.host.
- libgcj_interpreter=yes
- elif test "$enable_interpreter" = no; then
- libgcj_interpreter=no
- fi
-fi
-
-
-if test "$libgcj_interpreter" = yes; then
- cat >> confdefs.h <<\EOF
-#define INTERPRETER 1
-EOF
-
-fi
-
-EXCEPTIONSPEC=
-# Check whether --enable-sjlj-exceptions or --disable-sjlj-exceptions was given.
-if test "${enable_sjlj_exceptions+set}" = set; then
- enableval="$enable_sjlj_exceptions"
- if test "$enable_sjlj_exceptions" = yes; then
- # This can be set in configure.host.
- libgcj_sjlj=yes
- fi
-fi
-
-
-if test "$libgcj_sjlj" = yes; then
- EXCEPTIONSPEC="-fsjlj-exceptions"
- cat >> confdefs.h <<\EOF
-#define SJLJ_EXCEPTIONS 1
-EOF
-
-fi
-
-FORCELIBGCCSPEC=
-if test "$ac_cv_prog_gnu_ld" = yes; then
- FORCELIBGCCSPEC="-u __rethrow -u __frame_state_for -lgcc"
-fi
-
-echo $ac_n "checking for data_start""... $ac_c" 1>&6
-echo "configure:2714: checking for data_start" >&5
-LIBDATASTARTSPEC=
-NEEDS_DATA_START=
-cat > conftest.$ac_ext <<EOF
-#line 2718 "configure"
-#include "confdefs.h"
-extern int data_start;
-int main() {
-return ((int) &data_start);
-; return 0; }
-EOF
-if { (eval echo configure:2725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""found it" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBDATASTARTSPEC="-u data_start libgcjdata.a%s"
- NEEDS_DATA_START=yes
- echo "$ac_t""missing" 1>&6
-fi
-rm -f conftest*
-
-
-# Check whether --enable-java-net or --disable-java-net was given.
-if test "${enable_java_net+set}" = set; then
- enableval="$enable_java_net"
- :
-fi
-
-
-if test -n "$enable_java_net"; then
- enable_java_net=${enable_java_net_default-yes}
-fi
-if test "$enable_java_net" = no; then
- cat >> confdefs.h <<\EOF
-#define DISABLE_JAVA_NET 1
-EOF
-
-fi
-
-# Check whether --enable-jvmpi or --disable-jvmpi was given.
-if test "${enable_jvmpi+set}" = set; then
- enableval="$enable_jvmpi"
- :
-fi
-
-
-if test "$enable_jvmpi" != no; then
- cat >> confdefs.h <<\EOF
-#define ENABLE_JVMPI 1
-EOF
-
-fi
-
-TARGET_ECOS="no"
-# Check whether --with-ecos or --without-ecos was given.
-if test "${with_ecos+set}" = set; then
- withval="$with_ecos"
- TARGET_ECOS="$with_ecos"
-
-fi
-
-
-case "$TARGET_ECOS" in
- no)
- FILE_DESCRIPTOR=natFileDescriptorPosix.cc
- PROCESS=${PROCESS-Posix}
- ;;
- *)
- FILE_DESCRIPTOR=natFileDescriptorEcos.cc
- PROCESS=Ecos
- cat >> confdefs.h <<\EOF
-#define ECOS 1
-EOF
-
- ;;
-esac
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2795: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 2810 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 2827 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 2844 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-cat > conftest.$ac_ext <<EOF
-#line 2875 "configure"
-#include "confdefs.h"
-#include <stdint.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "uint32_t" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_INT32_DEFINED 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 2890 "configure"
-#include "confdefs.h"
-#include <inttypes.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "uint32_t" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_INT32_DEFINED 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 2905 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "u_int32_t" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_BSD_INT32_DEFINED 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 2920 "configure"
-#include "confdefs.h"
-#include <sys/config.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "u_int32_t" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_BSD_INT32_DEFINED 1
-EOF
-
-fi
-rm -f conftest*
-
-
-
-cat > conftest.$ac_ext <<EOF
-#line 2937 "configure"
-#include "confdefs.h"
-#include <time.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "mktime" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_MKTIME 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 2952 "configure"
-#include "confdefs.h"
-#include <time.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "localtime" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_LOCALTIME 1
-EOF
-
-fi
-rm -f conftest*
-
-
-test -d java || mkdir java
-test -d java/io || mkdir java/io
-
-
-test -d java/lang || mkdir java/lang
-
-
-
-SYSTEMSPEC=
-
-
-LIBGCJTESTSPEC="-L`pwd`/.libs -rpath `pwd`/.libs"
-
-
-# Check whether --with-system-zlib or --without-system-zlib was given.
-if test "${with_system_zlib+set}" = set; then
- withval="$with_system_zlib"
- :
-fi
-
-ZLIBSPEC=
-
-ZLIBTESTSPEC=
-
-
-libsubdir=.libs
-
-echo $ac_n "checking for garbage collector to use""... $ac_c" 1>&6
-echo "configure:2995: checking for garbage collector to use" >&5
-# Check whether --enable-java-gc or --disable-java-gc was given.
-if test "${enable_java_gc+set}" = set; then
- enableval="$enable_java_gc"
-
- GC=$enableval
-else
- GC=boehm
-fi
-
-GCLIBS=
-GCINCS=
-GCDEPS=
-GCOBJS=
-GCSPEC=
-GCTESTSPEC=
-case "$GC" in
- boehm)
- echo "$ac_t""boehm" 1>&6
- GCDEPS='$(top_builddir)/../boehm-gc/libgcjgc.la'
- # We include the path to the boehm-gc build directory.
- # See Makefile.am to understand why.
- GCLIBS="$GCDEPS -L\$(here)/../boehm-gc/$libsubdir"
- GCINCS='-I$(top_srcdir)/../boehm-gc -I$(top_builddir)/../boehm-gc'
- GCSPEC='-lgcjgc'
- GCTESTSPEC="-L`pwd`/../boehm-gc/.libs -rpath `pwd`/../boehm-gc/.libs"
- GCINCS="$GCINCS `cat ../boehm-gc/boehm-cflags`"
- GCOBJS=boehm.lo
- GCHDR=boehm-gc.h
- cat >> confdefs.h <<\EOF
-#define HAVE_BOEHM_GC 1
-EOF
-
- ;;
- no)
- echo "$ac_t""none" 1>&6
- GCOBJS=nogc.lo
- GCHDR=no-gc.h
- ;;
- *)
- { echo "configure: error: unrecognized collector \"$GC\"" 1>&2; exit 1; }
- ;;
-esac
-
-
-
-
-
-
-
-
-
-echo $ac_n "checking for threads package to use""... $ac_c" 1>&6
-echo "configure:3048: checking for threads package to use" >&5
-# Check whether --enable-threads or --disable-threads was given.
-if test "${enable_threads+set}" = set; then
- enableval="$enable_threads"
- THREADS=$enableval
-else
- THREADS=no
-fi
-
-
-if test "$THREADS" = yes; then
- case "$host" in
- *-*-vxworks*)
- THREADS=vxworks
- ;;
- *-*-linux*)
- # FIXME: this isn't correct in all cases.
- THREADS=posix
- ;;
- *-*-win*)
- THREADS=win32
- ;;
- *-*-irix*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose irix threads.
- THREADS=posix
- ;;
- *-*-solaris*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose solaris threads.
- THREADS=posix
- ;;
- *)
- # For now.
- THREADS=none
- ;;
- esac
-fi
-
-case "$THREADS" in
- no | none | single)
- THREADS=none
- ;;
- posix | pthreads)
- THREADS=posix
- case "$host" in
- *-*-linux*)
- cat >> confdefs.h <<\EOF
-#define LINUX_THREADS 1
-EOF
-
- ;;
- esac
- ;;
- decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
- { echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
- ;;
- *)
- { echo "configure: error: $THREADS is an unknown thread package" 1>&2; exit 1; }
- ;;
-esac
-echo "$ac_t""$THREADS" 1>&6
-
-THREADLIBS=
-THREADINCS=
-THREADDEPS=
-THREADOBJS=
-THREADH=
-THREADSPEC=
-case "$THREADS" in
- posix)
- THREADLIBS=-lpthread
- THREADSPEC=-lpthread
- THREADOBJS=posix-threads.lo
- THREADH=posix-threads.h
- # MIT pthreads doesn't seem to have the mutexattr functions.
- # But for now we don't check for it. We just assume you aren't
- # using MIT pthreads.
- cat >> confdefs.h <<\EOF
-#define HAVE_PTHREAD_MUTEXATTR_INIT 1
-EOF
-
-
- # If we're using the Boehm GC, then we happen to know that it
- # defines _REENTRANT, so we don't bother. Eww.
- if test "$GC" != boehm; then
- cat >> confdefs.h <<\EOF
-#define _REENTRANT 1
-EOF
-
- fi
- cat >> confdefs.h <<\EOF
-#define _POSIX_PTHREAD_SEMANTICS 1
-EOF
-
- ;;
-
- none)
- THREADOBJS=no-threads.lo
- THREADH=no-threads.h
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test "$GCC" = yes; then
- USING_GCC_TRUE=
- USING_GCC_FALSE='#'
-else
- USING_GCC_TRUE='#'
- USING_GCC_FALSE=
-fi
-
-CANADIAN=no
-NULL_TARGET=no
-NATIVE=yes
-
-# Find eh-common.h and support headers. If we're in the tree with
-# gcc, then look there. Otherwise look in compat-include. If all else
-# fails, just hope the user has set things up somehow.
-if test -r $srcdir/../gcc/eh-common.h; then
- EH_COMMON_INCLUDE='-I$(top_srcdir)/../gcc -I$(top_srcdir)/../include'
-else
- if test -d $srcdir/../compat-include; then
- EH_COMMON_INCLUDE='-I$(top_srcdir)/../compat-include'
- else
- EH_COMMON_INCLUDE=
- fi
-fi
-
-if test -n "${with_cross_host}"; then
- # We are being configured with a cross compiler. AC_REPLACE_FUNCS
- # may not work correctly, because the compiler may not be able to
- # link executables.
-
- # We assume newlib. This lets us hard-code the functions we know
- # we'll have.
- cat >> confdefs.h <<\EOF
-#define HAVE_MEMMOVE 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_MEMCPY 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_STRERROR 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GMTIME_R 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_LOCALTIME_R 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_PTHREAD_MUTEXATTR_INIT 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-
- cat >> confdefs.h <<\EOF
-#define NO_GETUID 1
-EOF
-
-
- ZLIBSPEC=-lzgcj
- ZLIBTESTSPEC="-L`pwd`/../zlib/.libs -rpath `pwd`/../zlib/.libs"
-
- # If Canadian cross, then don't pick up tools from the build
- # directory.
- if test "$build" != "$with_cross_host"; then
- CANADIAN=yes
- EH_COMMON_INCLUDE=
- GCJ="${target_alias}-gcj"
- else
- GCJ=
- fi
- NATIVE=no
-else
- for ac_func in strerror ioctl select fstat open fsync sleep
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3242: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3247 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in gmtime_r localtime_r readdir_r getpwuid_r getcwd
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3297: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3302 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in access stat mkdir rename rmdir unlink realpath
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3352: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3357 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in iconv nl_langinfo
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3407: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3412 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in inet_aton inet_addr
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3462: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3467 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in inet_pton uname inet_ntoa
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3517: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3522 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_func in backtrace fork execvp pipe
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3572: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3577 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- for ac_hdr in execinfo.h unistd.h dlfcn.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3628: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3633 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3638: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- echo $ac_n "checking for dladdr in -ldl""... $ac_c" 1>&6
-echo "configure:3665: checking for dladdr in -ldl" >&5
-ac_lib_var=`echo dl'_'dladdr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3673 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dladdr();
-
-int main() {
-dladdr()
-; return 0; }
-EOF
-if { (eval echo configure:3684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- cat >> confdefs.h <<\EOF
-#define HAVE_DLADDR 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
- for ac_file in /proc/self/exe
-do
-
-ac_safe=`echo "$ac_file" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_file""... $ac_c" 1>&6
-echo "configure:3713: checking for $ac_file" >&5
-if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: Cannot check for file existence when cross compiling" 1>&2; exit 1; }
-else
- if test -r $ac_file; then
- eval "ac_cv_file_$ac_safe=yes"
- else
- eval "ac_cv_file_$ac_safe=no"
- fi
-fi
-fi
-if eval "test \"`echo '$ac_cv_file_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_file=HAVE_`echo $ac_file | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_file 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_PROC_SELF_EXE 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-
-fi
-done
-
-
- for ac_func in gethostbyname_r
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3748: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3753 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GETHOSTBYNAME_R 1
-EOF
-
- # There are two different kinds of gethostbyname_r.
- # We look for the one that returns `int'.
- # Hopefully this check is robust enough.
- cat > conftest.$ac_ext <<EOF
-#line 3803 "configure"
-#include "confdefs.h"
-#include <netdb.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "int.*gethostbyname_r" >/dev/null 2>&1; then
- rm -rf conftest*
-
- cat >> confdefs.h <<\EOF
-#define GETHOSTBYNAME_R_RETURNS_INT 1
-EOF
-
-fi
-rm -f conftest*
-
-
- case " $GCINCS " in
- *" -D_REENTRANT "*) ;;
- *)
- echo $ac_n "checking whether gethostbyname_r declaration requires -D_REENTRANT""... $ac_c" 1>&6
-echo "configure:3823: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5
-if eval "test \"`echo '$''{'libjava_cv_gethostbyname_r_needs_reentrant'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-
- cat > conftest.$ac_ext <<EOF
-#line 3836 "configure"
-#include "confdefs.h"
-#include <netdb.h>
-int main() {
-gethostbyname_r("", 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:3843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- libjava_cv_gethostbyname_r_needs_reentrant=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPPFLAGS_SAVE="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_REENTRANT"
- cat > conftest.$ac_ext <<EOF
-#line 3853 "configure"
-#include "confdefs.h"
-#include <netdb.h>
-int main() {
-gethostbyname_r("", 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:3860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- libjava_cv_gethostbyname_r_needs_reentrant=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- libjava_cv_gethostbyname_r_needs_reentrant=fail
-fi
-rm -f conftest*
- CPPFLAGS="$CPPFLAGS_SAVE"
-
-fi
-rm -f conftest*
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-
-fi
-
-echo "$ac_t""$libjava_cv_gethostbyname_r_needs_reentrant" 1>&6
- if test "x$libjava_cv_gethostbyname_r_needs_reentrant" = xyes; then
- cat >> confdefs.h <<\EOF
-#define _REENTRANT 1
-EOF
-
- fi
- ;;
- esac
-
- echo $ac_n "checking for struct hostent_data""... $ac_c" 1>&6
-echo "configure:3895: checking for struct hostent_data" >&5
-if eval "test \"`echo '$''{'libjava_cv_struct_hostent_data'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3900 "configure"
-#include "confdefs.h"
-
-#if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
-# define _REENTRANT 1
-#endif
-#include <netdb.h>
-int main() {
-struct hostent_data data;
-; return 0; }
-EOF
-if { (eval echo configure:3911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- libjava_cv_struct_hostent_data=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- libjava_cv_struct_hostent_data=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$libjava_cv_struct_hostent_data" 1>&6
- if test "x$libjava_cv_struct_hostent_data" = xyes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_STRUCT_HOSTENT_DATA 1
-EOF
-
- fi
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
- for ac_func in gethostbyaddr_r
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3940: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3945 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GETHOSTBYADDR_R 1
-EOF
-
- # There are two different kinds of gethostbyaddr_r.
- # We look for the one that returns `int'.
- # Hopefully this check is robust enough.
- cat > conftest.$ac_ext <<EOF
-#line 3995 "configure"
-#include "confdefs.h"
-#include <netdb.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "int.*gethostbyaddr_r" >/dev/null 2>&1; then
- rm -rf conftest*
-
- cat >> confdefs.h <<\EOF
-#define GETHOSTBYADDR_R_RETURNS_INT 1
-EOF
-
-fi
-rm -f conftest*
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
- for ac_func in gethostname
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4019: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4024 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GETHOSTNAME 1
-EOF
-
- cat > conftest.$ac_ext <<EOF
-#line 4071 "configure"
-#include "confdefs.h"
-#include <unistd.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "gethostname" >/dev/null 2>&1; then
- rm -rf conftest*
-
- cat >> confdefs.h <<\EOF
-#define HAVE_GETHOSTNAME_DECL 1
-EOF
-
-fi
-rm -f conftest*
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
- # Look for these functions in the thread library, but only bother
- # if using POSIX threads.
- if test "$THREADS" = posix; then
- save_LIBS="$LIBS"
- LIBS="$LIBS $THREADLIBS"
- # Some POSIX thread systems don't have pthread_mutexattr_settype.
- # E.g., Solaris.
- for ac_func in pthread_mutexattr_settype pthread_mutexattr_setkind_np
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4102: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4107 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
- # Look for sched_yield. Up to Solaris 2.6, it is in libposix4, since
- # Solaris 7 the name librt is preferred.
- for ac_func in sched_yield
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4160: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4165 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6
-echo "configure:4210: checking for sched_yield in -lrt" >&5
-ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lrt $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4218 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char sched_yield();
-
-int main() {
-sched_yield()
-; return 0; }
-EOF
-if { (eval echo configure:4229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- cat >> confdefs.h <<\EOF
-#define HAVE_SCHED_YIELD 1
-EOF
-
- THREADLIBS="$THREADLIBS -lrt"
- THREADSPEC="$THREADSPEC -lrt"
-else
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6
-echo "configure:4255: checking for sched_yield in -lposix4" >&5
-ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lposix4 $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4263 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char sched_yield();
-
-int main() {
-sched_yield()
-; return 0; }
-EOF
-if { (eval echo configure:4274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- cat >> confdefs.h <<\EOF
-#define HAVE_SCHED_YIELD 1
-EOF
-
- THREADLIBS="$THREADLIBS -lposix4"
- THREADSPEC="$THREADSPEC -lposix4"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-fi
-done
-
- LIBS="$save_LIBS"
-
- # We can save a little space at runtime if the mutex has m_count
- # or __m_count. This is a nice hack for Linux.
- cat > conftest.$ac_ext <<EOF
-#line 4310 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-int main() {
-
- extern pthread_mutex_t *mutex; int q = mutex->m_count;
-
-; return 0; }
-EOF
-if { (eval echo configure:4319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define PTHREAD_MUTEX_HAVE_M_COUNT 1
-EOF
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cat > conftest.$ac_ext <<EOF
-#line 4331 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-int main() {
-
- extern pthread_mutex_t *mutex; int q = mutex->__m_count;
-
-; return 0; }
-EOF
-if { (eval echo configure:4340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define PTHREAD_MUTEX_HAVE___M_COUNT 1
-EOF
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- fi
-
- # We require a way to get the time.
- time_found=no
- for ac_func in gettimeofday time ftime
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4360: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4365 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- time_found=yes
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- if test "$time_found" = no; then
- { echo "configure: error: no function found to get the time" 1>&2; exit 1; }
- fi
-
- for ac_func in memmove
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4419: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4424 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
- # We require memcpy.
- memcpy_found=no
- for ac_func in memcpy
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4477: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4482 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- memcpy_found=yes
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- if test "$memcpy_found" = no; then
- { echo "configure: error: memcpy is required" 1>&2; exit 1; }
- fi
-
- # Some library-finding code we stole from Tcl.
- #--------------------------------------------------------------------
- # Check for the existence of the -lsocket and -lnsl libraries.
- # The order here is important, so that they end up in the right
- # order in the command line generated by make. Here are some
- # special considerations:
- # 1. Use "connect" and "accept" to check for -lsocket, and
- # "gethostbyname" to check for -lnsl.
- # 2. Use each function name only once: can't redo a check because
- # autoconf caches the results of the last check and won't redo it.
- # 3. Use -lnsl and -lsocket only if they supply procedures that
- # aren't already present in the normal libraries. This is because
- # IRIX 5.2 has libraries, but they aren't needed and they're
- # bogus: they goof up name resolution if used.
- # 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
- # To get around this problem, check for both libraries together
- # if -lsocket doesn't work by itself.
- #--------------------------------------------------------------------
-
- echo $ac_n "checking for socket libraries""... $ac_c" 1>&6
-echo "configure:4553: checking for socket libraries" >&5
-if eval "test \"`echo '$''{'gcj_cv_lib_sockets'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- gcj_cv_lib_sockets=
- gcj_checkBoth=0
- unset ac_cv_func_connect
- echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:4561: checking for connect" >&5
-if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4566 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char connect(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_connect) || defined (__stub___connect)
-choke me
-#else
-connect();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_connect=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_connect=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- gcj_checkSocket=0
-else
- echo "$ac_t""no" 1>&6
-gcj_checkSocket=1
-fi
-
- if test "$gcj_checkSocket" = 1; then
- unset ac_cv_func_connect
- echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:4612: checking for main in -lsocket" >&5
-ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4620 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- gcj_cv_lib_sockets="-lsocket"
-else
- echo "$ac_t""no" 1>&6
-gcj_checkBoth=1
-fi
-
- fi
- if test "$gcj_checkBoth" = 1; then
- gcj_oldLibs=$LIBS
- LIBS="$LIBS -lsocket -lnsl"
- unset ac_cv_func_accept
- echo $ac_n "checking for accept""... $ac_c" 1>&6
-echo "configure:4654: checking for accept" >&5
-if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4659 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char accept(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char accept();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_accept) || defined (__stub___accept)
-choke me
-#else
-accept();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_accept=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_accept=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'accept`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- gcj_checkNsl=0
- gcj_cv_lib_sockets="-lsocket -lnsl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- unset ac_cv_func_accept
- LIBS=$gcj_oldLibs
- fi
- unset ac_cv_func_gethostbyname
- gcj_oldLibs=$LIBS
- LIBS="$LIBS $gcj_cv_lib_sockets"
- echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:4709: checking for gethostbyname" >&5
-if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4714 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:4755: checking for main in -lnsl" >&5
-ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4763 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- gcj_cv_lib_sockets="$gcj_cv_lib_sockets -lnsl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
- unset ac_cv_func_gethostbyname
- LIBS=$gcj_oldLIBS
-
-fi
-
-echo "$ac_t""$gcj_cv_lib_sockets" 1>&6
- SYSTEMSPEC="$SYSTEMSPEC $gcj_cv_lib_sockets"
-
- if test "$with_system_zlib" = yes; then
- echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:4802: checking for deflate in -lz" >&5
-ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lz $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4810 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char deflate();
-
-int main() {
-deflate()
-; return 0; }
-EOF
-if { (eval echo configure:4821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ZLIBSPEC=-lz
-else
- echo "$ac_t""no" 1>&6
-ZLIBSPEC=-lzgcj
-fi
-
- else
- ZLIBSPEC=-lzgcj
- ZLIBTESTSPEC="-L`pwd`/../zlib/.libs -rpath `pwd`/../zlib/.libs"
- fi
-
- # On Solaris, and maybe other architectures, the Boehm collector
- # requires -ldl.
- if test "$GC" = boehm; then
- echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6
-echo "configure:4851: checking for main in -ldl" >&5
-ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4859 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SYSTEMSPEC="$SYSTEMSPEC -ldl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- if test -z "${with_multisubdir}"; then
- builddotdot=.
- else
-
- builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`
-
- fi
- dir="`cd ${builddotdot}/../../gcc && pwd`"
- if test -x "${dir}/gcj"; then
- GCJ="$dir/gcj -B`pwd`/ -B$dir/"
- else
- CANADIAN=yes
- NULL_TARGET=yes
- GCJ="gcj -B`pwd`/"
- fi
-fi
-
-# Create it, so that compile/link tests don't fail
-test -f libgcj.spec || touch libgcj.spec
-GCJ="$GCJ -I$srcdir"
-
-
- # Extract the first word of "${ac_tool_prefix}gcj", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcj; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4913: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$GCJ"; then
- ac_cv_prog_GCJ="$GCJ" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_GCJ="${ac_tool_prefix}gcj"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-GCJ="$ac_cv_prog_GCJ"
-if test -n "$GCJ"; then
- echo "$ac_t""$GCJ" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_GCJ"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "gcj", so it can be a program name with args.
-set dummy gcj; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4945: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$GCJ"; then
- ac_cv_prog_GCJ="$GCJ" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_GCJ="gcj"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_GCJ" && ac_cv_prog_GCJ="no"
-fi
-fi
-GCJ="$ac_cv_prog_GCJ"
-if test -n "$GCJ"; then
- echo "$ac_t""$GCJ" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- GCJ="no"
-fi
-fi
-
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-
-
-
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=GCJ $ac_aux_dir/ltcf-gcj.sh $host \
-|| { echo "configure: error: libtool tag configuration failed" 1>&2; exit 1; }
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:5005: checking size of void *" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 5013 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(void *));
- exit(0);
-}
-EOF
-if { (eval echo configure:5024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_void_p=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_void_p=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_void_p" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-EOF
-
-
-
-ZLIBS=
-ZDEPS=
-ZINCS=
-if test "x$ZLIBSPEC" = "x-lzgcj"; then
- # We include the path to the zlib build directory.
- # See Makefile.am to understand why.
- ZDEPS='$(top_builddir)/../zlib/libzgcj.la'
- ZLIBS="$ZDEPS -L\$(here)/../zlib/$libsubdir"
- ZINCS='-I$(top_srcdir)/../zlib'
-else
- ZLIBS="$ZLIBSPEC"
-fi
-
-
-
-
-
-
-
-
-
-if test "$CANADIAN" = yes; then
- CANADIAN_TRUE=
- CANADIAN_FALSE='#'
-else
- CANADIAN_TRUE='#'
- CANADIAN_FALSE=
-fi
-
-
-if test "$NULL_TARGET" = yes; then
- NULL_TARGET_TRUE=
- NULL_TARGET_FALSE='#'
-else
- NULL_TARGET_TRUE='#'
- NULL_TARGET_FALSE=
-fi
-
-
-if test "$NATIVE" = yes || test "$NULL_TARGET" = yes; then
- NATIVE_TRUE=
- NATIVE_FALSE='#'
-else
- NATIVE_TRUE='#'
- NATIVE_FALSE=
-fi
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
-else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
-fi
-
-
-if test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes; then
- NEEDS_DATA_START_TRUE=
- NEEDS_DATA_START_FALSE='#'
-else
- NEEDS_DATA_START_TRUE='#'
- NEEDS_DATA_START_FALSE=
-fi
-
-
-# Determine gcj version number.
-
-gcjvers="`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`"
-
-cat >> confdefs.h <<EOF
-#define GCJVERSION "$gcjvers"
-EOF
-
-
-# See if gcj supports -fuse-divide-subroutine. gcc 2.95 does not, and
-# we want to continue to support that version.
-echo $ac_n "checking whether gcj supports -fuse-divide-subroutine""... $ac_c" 1>&6
-echo "configure:5122: checking whether gcj supports -fuse-divide-subroutine" >&5
-cat > conftest.java << 'END'
-public class conftest { }
-END
-use_fuse=yes
-$GCJ -classpath $srcdir -fuse-divide-subroutine -fsyntax-only \
- conftest.java > /dev/null 2>&1 \
- || use_fuse=no
-rm -f conftest.java
-if test "$use_fuse" = no; then
- DIVIDESPEC=
-fi
-echo "$ac_t""$use_fuse" 1>&6
-
-
-
-echo $ac_n "checking for g++ -ffloat-store bug""... $ac_c" 1>&6
-echo "configure:5139: checking for g++ -ffloat-store bug" >&5
-save_CFLAGS="$CFLAGS"
-CFLAGS="-x c++ -O2 -ffloat-store"
-cat > conftest.$ac_ext <<EOF
-#line 5143 "configure"
-#include "confdefs.h"
-#include <math.h>
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:5150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define __NO_MATH_INLINES 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-fi
-rm -f conftest*
-CFLAGS="$save_CFLAGS"
-
-for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h pwd.h sys/config.h inttypes.h stdint.h langinfo.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5170: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5175 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in dirent.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5210: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5215 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:5248: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5253 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5261: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 5278 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 5296 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 5317 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:5328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:5352: checking for ssize_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5357 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_ssize_t=yes
-else
- rm -rf conftest*
- ac_cv_type_ssize_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_ssize_t" 1>&6
-if test $ac_cv_type_ssize_t = no; then
- cat >> confdefs.h <<\EOF
-#define ssize_t int
-EOF
-
-fi
-
-
-echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
-echo "configure:5386: checking for in_addr_t" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5388 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-int main() {
-in_addr_t foo;
-; return 0; }
-EOF
-if { (eval echo configure:5402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_IN_ADDR_T 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:5418: checking whether struct ip_mreq is in netinet/in.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5420 "configure"
-#include "confdefs.h"
-#include <netinet/in.h>
-int main() {
-struct ip_mreq mreq;
-; return 0; }
-EOF
-if { (eval echo configure:5427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_STRUCT_IP_MREQ 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:5443: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5445 "configure"
-#include "confdefs.h"
-#include <netinet/in.h>
-int main() {
-struct sockaddr_in6 addr6;
-; return 0; }
-EOF
-if { (eval echo configure:5452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_INET6 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6
-echo "configure:5468: checking for socklen_t in sys/socket.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5470 "configure"
-#include "confdefs.h"
-#include <sys/socket.h>
-int main() {
-socklen_t x = 5;
-; return 0; }
-EOF
-if { (eval echo configure:5477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKLEN_T 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
-echo "configure:5493: checking for tm_gmtoff in struct tm" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5495 "configure"
-#include "confdefs.h"
-#include <time.h>
-int main() {
-struct tm tim; tim.tm_gmtoff = 0;
-; return 0; }
-EOF
-if { (eval echo configure:5502: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define STRUCT_TM_HAS_GMTOFF 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6
-echo "configure:5515: checking for global timezone variable" >&5
- cat > conftest.$ac_ext <<EOF
-#line 5517 "configure"
-#include "confdefs.h"
-#include <time.h>
-int main() {
-long z2 = timezone;
-; return 0; }
-EOF
-if { (eval echo configure:5524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_TIMEZONE 1
-EOF
-
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:5544: checking for working alloca.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5549 "configure"
-#include "confdefs.h"
-#include <alloca.h>
-int main() {
-char *p = alloca(2 * sizeof(int));
-; return 0; }
-EOF
-if { (eval echo configure:5556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_header_alloca_h=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_alloca_h=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
-if test $ac_cv_header_alloca_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA_H 1
-EOF
-
-fi
-
-echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:5577: checking for alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5582 "configure"
-#include "confdefs.h"
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int main() {
-char *p = (char *) alloca(1);
-; return 0; }
-EOF
-if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_alloca_works=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_func_alloca_works=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-fi
-
-if test $ac_cv_func_alloca_works = no; then
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
- # that cause trouble. Some versions do not even contain alloca or
- # contain a buggy version. If you still want to use their alloca,
- # use ar to extract alloca.o from them instead of compiling alloca.c.
- ALLOCA=alloca.${ac_objext}
- cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
-
-
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:5642: checking whether alloca needs Cray hooks" >&5
-if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5647 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "webecray" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_os_cray=yes
-else
- rm -rf conftest*
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_os_cray" 1>&6
-if test $ac_cv_os_cray = yes; then
-for ac_func in _getb67 GETB67 getb67; do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5672: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5677 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
-
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
-done
-fi
-
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:5727: checking stack direction for C alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 5735 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
- exit (find_stack_direction() < 0);
-}
-EOF
-if { (eval echo configure:5754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_stack_direction=1
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_stack_direction=-1
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >> confdefs.h <<EOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-EOF
-
-fi
-
-
-for ac_prog in perl
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5781: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$PERL"; then
- ac_cv_prog_PERL="$PERL" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_PERL="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-PERL="$ac_cv_prog_PERL"
-if test -n "$PERL"; then
- echo "$ac_t""$PERL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$PERL" && break
-done
-test -n "$PERL" || PERL="false"
-
-
-SYSDEP_SOURCES=
-
-case "${host}" in
- i?86-*-linux*)
- SIGNAL_HANDLER=include/i386-signal.h
- ;;
- sparc-sun-solaris*)
- SIGNAL_HANDLER=include/sparc-signal.h
- ;;
- ia64-*)
- SYSDEP_SOURCES=sysdep/ia64.c
- test -d sysdep || mkdir sysdep
- ;;
- *)
- SIGNAL_HANDLER=include/default-signal.h
- ;;
-esac
-
-# If we're using sjlj exceptions, forget what we just learned.
-if test "$libgcj_sjlj" = yes; then
- SIGNAL_HANDLER=include/default-signal.h
-fi
-
-
-
-
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-here=`pwd`
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@libgcj_basedir@%$libgcj_basedir%g
-s%@CC@%$CC%g
-s%@CXX@%$CXX%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@AS@%$AS%g
-s%@AR@%$AR%g
-s%@RANLIB@%$RANLIB%g
-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-s%@MAINT@%$MAINT%g
-s%@EXEEXT@%$EXEEXT%g
-s%@LIBGCJ_CFLAGS@%$LIBGCJ_CFLAGS%g
-s%@LIBGCJ_CXXFLAGS@%$LIBGCJ_CXXFLAGS%g
-s%@LIBGCJ_JAVAFLAGS@%$LIBGCJ_JAVAFLAGS%g
-s%@INCLTDL@%$INCLTDL%g
-s%@LIBLTDL@%$LIBLTDL%g
-s%@DIRLTDL@%$DIRLTDL%g
-s%@LN_S@%$LN_S%g
-s%@OBJEXT@%$OBJEXT%g
-s%@STRIP@%$STRIP%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@CXXCPP@%$CXXCPP%g
-s%@subdirs@%$subdirs%g
-s%@COMPPATH@%$COMPPATH%g
-s%@TESTSUBDIR_TRUE@%$TESTSUBDIR_TRUE%g
-s%@TESTSUBDIR_FALSE@%$TESTSUBDIR_FALSE%g
-s%@LIBDATASTARTSPEC@%$LIBDATASTARTSPEC%g
-s%@CPP@%$CPP%g
-s%@SYSTEMSPEC@%$SYSTEMSPEC%g
-s%@LIBGCJTESTSPEC@%$LIBGCJTESTSPEC%g
-s%@ZLIBSPEC@%$ZLIBSPEC%g
-s%@ZLIBTESTSPEC@%$ZLIBTESTSPEC%g
-s%@GCLIBS@%$GCLIBS%g
-s%@GCINCS@%$GCINCS%g
-s%@GCDEPS@%$GCDEPS%g
-s%@GCOBJS@%$GCOBJS%g
-s%@GCSPEC@%$GCSPEC%g
-s%@GCTESTSPEC@%$GCTESTSPEC%g
-s%@THREADLIBS@%$THREADLIBS%g
-s%@THREADINCS@%$THREADINCS%g
-s%@THREADDEPS@%$THREADDEPS%g
-s%@THREADOBJS@%$THREADOBJS%g
-s%@THREADSPEC@%$THREADSPEC%g
-s%@USING_GCC_TRUE@%$USING_GCC_TRUE%g
-s%@USING_GCC_FALSE@%$USING_GCC_FALSE%g
-s%@GCJ@%$GCJ%g
-s%@GCJFLAGS@%$GCJFLAGS%g
-s%@ZLIBS@%$ZLIBS%g
-s%@ZDEPS@%$ZDEPS%g
-s%@ZINCS@%$ZINCS%g
-s%@DIVIDESPEC@%$DIVIDESPEC%g
-s%@EXCEPTIONSPEC@%$EXCEPTIONSPEC%g
-s%@FORCELIBGCCSPEC@%$FORCELIBGCCSPEC%g
-s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
-s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
-s%@NULL_TARGET_TRUE@%$NULL_TARGET_TRUE%g
-s%@NULL_TARGET_FALSE@%$NULL_TARGET_FALSE%g
-s%@NATIVE_TRUE@%$NATIVE_TRUE%g
-s%@NATIVE_FALSE@%$NATIVE_FALSE%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
-s%@NEEDS_DATA_START_TRUE@%$NEEDS_DATA_START_TRUE%g
-s%@NEEDS_DATA_START_FALSE@%$NEEDS_DATA_START_FALSE%g
-s%@EH_COMMON_INCLUDE@%$EH_COMMON_INCLUDE%g
-s%@AM_RUNTESTFLAGS@%$AM_RUNTESTFLAGS%g
-s%@ALLOCA@%$ALLOCA%g
-s%@PERL@%$PERL%g
-s%@SYSDEP_SOURCES@%$SYSDEP_SOURCES%g
-s%@here@%$here%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="include/config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-ac_sources="java/io/$FILE_DESCRIPTOR java/lang/${PROCESS}Process.java java/lang/nat${PROCESS}Process.cc include/$GCHDR include/$THREADH $SIGNAL_HANDLER"
-ac_dests="java/io/natFileDescriptor.cc java/lang/ConcreteProcess.java java/lang/natConcreteProcess.cc include/java-gc.h include/java-threads.h include/java-signal.h"
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-srcdir=$ac_given_srcdir
-while test -n "$ac_sources"; do
- set $ac_dests; ac_dest=$1; shift; ac_dests=$*
- set $ac_sources; ac_source=$1; shift; ac_sources=$*
-
- echo "linking $srcdir/$ac_source to $ac_dest"
-
- if test ! -r $srcdir/$ac_source; then
- { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
- fi
- rm -f $ac_dest
-
- # Make relative symlinks.
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
- # The dest file is in a subdirectory.
- test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
- ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dest_dir_suffix.
- ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dest_dir_suffix= ac_dots=
- fi
-
- case "$srcdir" in
- [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
- *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
- esac
-
- # Make a symlink if possible; otherwise try a hard link.
- if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
- ln $srcdir/$ac_source $ac_dest; then :
- else
- { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
- fi
-done
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-libgcj_basedir=${libgcj_basedir}
-CC="${CC}"
-CXX="${CXX}"
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > include/stamp-h
-if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
-fi
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-if test "$no_recursion" != yes; then
-
- # Remove --cache-file and --srcdir arguments so they do not pile up.
- ac_sub_configure_args=
- ac_prev=
- for ac_arg in $ac_configure_args; do
- if test -n "$ac_prev"; then
- ac_prev=
- continue
- fi
- case "$ac_arg" in
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- ;;
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- ;;
- *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
- esac
- done
-
- for ac_config_dir in $DIRLTDL; do
-
- # Do not complain, so a configure script can configure whichever
- # parts of a large source tree are present.
- if test ! -d $srcdir/$ac_config_dir; then
- continue
- fi
-
- echo configuring in $ac_config_dir
-
- case "$srcdir" in
- .) ;;
- *)
- if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
- else
- { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
- fi
- ;;
- esac
-
- ac_popdir=`pwd`
- cd $ac_config_dir
-
- # A "../" for each directory in /$ac_config_dir.
- ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
-
- case "$srcdir" in
- .) # No --srcdir option. We are building in place.
- ac_sub_srcdir=$srcdir ;;
- /*) # Absolute path.
- ac_sub_srcdir=$srcdir/$ac_config_dir ;;
- *) # Relative path.
- ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
- esac
-
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_sub_srcdir/configure; then
- ac_sub_configure=$ac_sub_srcdir/configure
- elif test -f $ac_sub_srcdir/configure.in; then
- ac_sub_configure=$ac_configure
- else
- echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
- ac_sub_configure=
- fi
-
- # The recursion is here.
- if test -n "$ac_sub_configure"; then
-
- # Make the cache file name correct relative to the subdirectory.
- case "$cache_file" in
- /*) ac_sub_cache_file=$cache_file ;;
- *) # Relative path.
- ac_sub_cache_file="$ac_dots$cache_file" ;;
- esac
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
- # The eval makes quoting arguments work.
- if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
- then :
- else
- { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
- fi
- fi
-
- cd $ac_popdir
- done
-fi
-
diff --git a/libjava/configure.host b/libjava/configure.host
deleted file mode 100644
index 39a41bbfe49..00000000000
--- a/libjava/configure.host
+++ /dev/null
@@ -1,81 +0,0 @@
-# configure.host
-
-# This shell script handles all host based configuration for libgcj.
-# It sets various shell variables based on the the host and the
-# configuration options. You can modify this shell script without
-# needing to rerun autoconf.
-
-# This shell script should be invoked as
-# . configure.host
-# If it encounters an error, it will exit with a message.
-
-# It uses the following shell variables:
-# host The configuration host
-# host_cpu The configuration host CPU
-# target_optspace --enable-target-optspace ("yes", "no", "")
-
-# It sets the following shell variables:
-# libgcj_cflags Special CFLAGS to use when building
-# libgcj_cxxflags Special CXXFLAGS to use when building
-# libgcj_javaflags Special JAVAFLAGS to use when building
-
-libgcj_flags=
-libgcj_cflags=
-libgcj_cxxflags=
-libgcj_javaflags=
-libgcj_sjlj=
-libgcj_interpreter=
-
-case "${target_optspace}:${host}" in
- yes:*)
- libgcj_flags="${libgcj_flags} -Os"
- ;;
- :m32r-* | :d10v-* | :d30v-*)
- libgcj_flags="${libgcj_flags} -Os"
- ;;
- no:* | :*)
- # Nothing.
- ;;
-esac
-
-AM_RUNTESTFLAGS=
-
-# Set any host dependent compiler flags.
-# THIS TABLE IS SORTED. KEEP IT THAT WAY.
-
-echo "$target"
-
-DIVIDESPEC=-fuse-divide-subroutine
-
-case "${host}" in
- mips-tx39-*|mipstx39-unknown-*)
- libgcj_flags="${libgcj_flags} -G 0"
- LDFLAGS="$LDFLAGS -Tjmr3904dram.ld"
- AM_RUNTESTFLAGS="--target_board=jmr3904-sim"
- # Use "Ecos" processes since they are a no-op.
- PROCESS=Ecos
- enable_java_net_default=no
- enable_getenv_properties_default=no
- ;;
- i686-*|i586-*|i486-*|i386-*)
- libgcj_flags="${libgcj_flags} -ffloat-store"
- libgcj_interpreter=yes
- libgcj_cxxflags="-D__NO_MATH_INLINES"
- libgcj_cflags="-D__NO_MATH_INLINES"
- DIVIDESPEC=-fno-use-divide-subroutine
- ;;
- sparc-*)
- ;;
- ia64-*)
- libgcj_flags="${libgcj_flags} -funwind-tables"
- libgcj_sjlj=yes
- libgcj_interpreter=yes
- ;;
- *)
- libgcj_sjlj=yes
- ;;
-esac
-
-libgcj_cflags="${libgcj_cflags} ${libgcj_flags}"
-libgcj_cxxflags="${libgcj_cxxflags} ${libgcj_flags}"
-libgcj_javaflags="${libgcj_javaflags} ${libgcj_flags}"
diff --git a/libjava/configure.in b/libjava/configure.in
deleted file mode 100644
index a0723ba4ac7..00000000000
--- a/libjava/configure.in
+++ /dev/null
@@ -1,777 +0,0 @@
-dnl Process this with autoconf to create configure
-AC_INIT(java/lang/System.java)
-
-dnl Can't be done in LIBGCJ_CONFIGURE because that confuses automake.
-AC_CONFIG_AUX_DIR(..)
-
-AC_CANONICAL_SYSTEM
-
-dnl We use these options to decide which functions to include.
-AC_ARG_WITH(target-subdir,
-[ --with-target-subdir=SUBDIR
- configuring in a subdirectory])
-AC_ARG_WITH(cross-host,
-[ --with-cross-host=HOST configuring with a cross compiler])
-
-LIBGCJ_CONFIGURE(.)
-
-AM_CONFIG_HEADER(include/config.h)
-
-# Only use libltdl for native builds.
-if test -z "${with_cross_host}"; then
- AC_LIBLTDL_CONVENIENCE
- AC_LIBTOOL_DLOPEN
- DIRLTDL=libltdl
- AC_DEFINE(USE_LTDL)
- # Sigh. Libtool's macro doesn't do the right thing.
- INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
-fi
-AC_SUBST(INCLTDL)
-AC_SUBST(LIBLTDL)
-AC_SUBST(DIRLTDL)
-AM_PROG_LIBTOOL
-AC_CONFIG_SUBDIRS($DIRLTDL)
-
-if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
- COMPPATH=.
-else
- COMPPATH=..
-fi
-AC_SUBST(COMPPATH)
-
-dnl The -no-testsuite modules omit the test subdir.
-AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
-
-dnl See whether the user prefers size or speed for Character.
-dnl The default is size.
-AC_ARG_ENABLE(fast-character,
-[ --enable-fast-character prefer speed over size for Character],
-# Nothing
-, AC_DEFINE(COMPACT_CHARACTER))
-
-dnl Should the runtime set system properties by examining the
-dnl environment variable GCJ_PROPERTIES?
-AC_ARG_ENABLE(getenv-properties,
-[ --disable-getenv-properties
- don't set system properties from GCJ_PROPERTIES])
-
-dnl Whether GCJ_PROPERTIES is used depends on the target.
-if test -n "$enable_getenv_properties"; then
- enable_getenv_properties=${enable_getenv_properties_default-yes}
-fi
-if test "$enable_getenv_properties" = no; then
- AC_DEFINE(DISABLE_GETENV_PROPERTIES)
-fi
-
-dnl See if the user has requested runtime debugging.
-AC_ARG_ENABLE(libgcj-debug,
-[ --enable-libgcj-debug enable runtime debugging code],
- if test "$enable_libgcj_debug" = yes; then
- AC_DEFINE(DEBUG)
- fi)
-
-dnl See if the user has the interpreter included.
-AC_ARG_ENABLE(interpreter,
-[ --enable-interpreter enable interpreter],
- if test "$enable_interpreter" = yes; then
- # This can also be set in configure.host.
- libgcj_interpreter=yes
- elif test "$enable_interpreter" = no; then
- libgcj_interpreter=no
- fi)
-
-if test "$libgcj_interpreter" = yes; then
- AC_DEFINE(INTERPRETER)
-fi
-
-EXCEPTIONSPEC=
-dnl See if we should use setjmp/longjmp exceptions
-AC_ARG_ENABLE(sjlj-exceptions,
-[ --enable-sjlj-exceptions use setjmp/longjmp exceptions],
- if test "$enable_sjlj_exceptions" = yes; then
- # This can be set in configure.host.
- libgcj_sjlj=yes
- fi)
-
-if test "$libgcj_sjlj" = yes; then
- EXCEPTIONSPEC="-fsjlj-exceptions"
- AC_DEFINE(SJLJ_EXCEPTIONS)
-fi
-
-FORCELIBGCCSPEC=
-dnl Work around libgcc design flaw.
-if test "$ac_cv_prog_gnu_ld" = yes; then
- FORCELIBGCCSPEC="-u __rethrow -u __frame_state_for -lgcc"
-fi
-
-AC_MSG_CHECKING([for data_start])
-LIBDATASTARTSPEC=
-NEEDS_DATA_START=
-AC_TRY_LINK([extern int data_start;], [return ((int) &data_start);],
- [AC_MSG_RESULT(found it)],
- [LIBDATASTARTSPEC="-u data_start libgcjdata.a%s"
- NEEDS_DATA_START=yes
- AC_MSG_RESULT(missing)])
-AC_SUBST(LIBDATASTARTSPEC)
-
-dnl See if the user wants to disable java.net. This is the mildly
-dnl ugly way that we admit that target-side configuration sucks.
-AC_ARG_ENABLE(java-net,
-[ --disable-java-net disable java.net])
-
-dnl Whether java.net is built by default can depend on the target.
-if test -n "$enable_java_net"; then
- enable_java_net=${enable_java_net_default-yes}
-fi
-if test "$enable_java_net" = no; then
- AC_DEFINE(DISABLE_JAVA_NET)
-fi
-
-dnl See if the user wants to disable JVMPI support.
-AC_ARG_ENABLE(jvmpi,
-[ --disable-jvmpi disable JVMPI support])
-
-if test "$enable_jvmpi" != no; then
- AC_DEFINE(ENABLE_JVMPI)
-fi
-
-dnl If the target is an eCos system, use the appropriate eCos
-dnl I/O routines.
-dnl FIXME: this should not be a local option but a global target
-dnl system; at present there is no eCos target.
-TARGET_ECOS="no"
-AC_ARG_WITH(ecos,
-[ --with-ecos enable runtime eCos target support],
-TARGET_ECOS="$with_ecos"
-)
-
-case "$TARGET_ECOS" in
- no)
- FILE_DESCRIPTOR=natFileDescriptorPosix.cc
- PROCESS=${PROCESS-Posix}
- ;;
- *)
- FILE_DESCRIPTOR=natFileDescriptorEcos.cc
- PROCESS=Ecos
- AC_DEFINE(ECOS)
- ;;
-esac
-
-AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED))
-AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED))
-AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
-AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
-
-
-dnl These may not be defined in a non-ANS conformant embedded system.
-dnl FIXME: Should these case a runtime exception in that case?
-AC_EGREP_HEADER(mktime, time.h, AC_DEFINE(HAVE_MKTIME))
-AC_EGREP_HEADER(localtime, time.h, AC_DEFINE(HAVE_LOCALTIME))
-
-dnl Create the subdirectory for natFileDescriptor.cc, or the attempt
-dnl to create the link will fail.
-test -d java || mkdir java
-test -d java/io || mkdir java/io
-AC_LINK_FILES(java/io/$FILE_DESCRIPTOR, java/io/natFileDescriptor.cc)
-
-dnl Likewise for ConcreteProcess.java and natConcreteProcess.cc.
-test -d java/lang || mkdir java/lang
-AC_LINK_FILES(java/lang/${PROCESS}Process.java, java/lang/ConcreteProcess.java)
-AC_LINK_FILES(java/lang/nat${PROCESS}Process.cc, java/lang/natConcreteProcess.cc)
-
-SYSTEMSPEC=
-AC_SUBST(SYSTEMSPEC)
-
-LIBGCJTESTSPEC="-L`pwd`/.libs -rpath `pwd`/.libs"
-AC_SUBST(LIBGCJTESTSPEC)
-
-AC_ARG_WITH(system-zlib,
-[ --with-system-zlib use installed libz])
-ZLIBSPEC=
-AC_SUBST(ZLIBSPEC)
-ZLIBTESTSPEC=
-AC_SUBST(ZLIBTESTSPEC)
-
-dnl FIXME: this should be _libs on some hosts.
-libsubdir=.libs
-
-dnl Allow the GC to be disabled. Can be useful when debugging.
-AC_MSG_CHECKING([for garbage collector to use])
-AC_ARG_ENABLE(java-gc,
-changequote(<<,>>)dnl
-<< --enable-java-gc=TYPE choose garbage collector [boehm]>>,
-changequote([,])
- GC=$enableval,
- GC=boehm)
-GCLIBS=
-GCINCS=
-GCDEPS=
-GCOBJS=
-GCSPEC=
-GCTESTSPEC=
-case "$GC" in
- boehm)
- AC_MSG_RESULT(boehm)
- GCDEPS='$(top_builddir)/../boehm-gc/libgcjgc.la'
- # We include the path to the boehm-gc build directory.
- # See Makefile.am to understand why.
- GCLIBS="$GCDEPS -L\$(here)/../boehm-gc/$libsubdir"
- GCINCS='-I$(top_srcdir)/../boehm-gc -I$(top_builddir)/../boehm-gc'
- GCSPEC='-lgcjgc'
- GCTESTSPEC="-L`pwd`/../boehm-gc/.libs -rpath `pwd`/../boehm-gc/.libs"
- dnl We also want to pick up some cpp flags required when including
- dnl boehm-config.h. Yuck.
- GCINCS="$GCINCS `cat ../boehm-gc/boehm-cflags`"
- GCOBJS=boehm.lo
- GCHDR=boehm-gc.h
- dnl The POSIX thread support needs to know this.
- AC_DEFINE(HAVE_BOEHM_GC)
- ;;
- no)
- AC_MSG_RESULT(none)
- GCOBJS=nogc.lo
- GCHDR=no-gc.h
- ;;
- *)
- AC_MSG_ERROR(unrecognized collector \"$GC\")
- ;;
-esac
-AC_SUBST(GCLIBS)
-AC_SUBST(GCINCS)
-AC_SUBST(GCDEPS)
-AC_SUBST(GCOBJS)
-AC_SUBST(GCSPEC)
-AC_SUBST(GCTESTSPEC)
-AC_LINK_FILES(include/$GCHDR, include/java-gc.h)
-
-
-dnl Note that this code is kept in sync with similar code in gcc/configure.in.
-dnl In particular both packages must make the same decision about which
-dnl thread package to use.
-AC_MSG_CHECKING([for threads package to use])
-AC_ARG_ENABLE(threads, [ --enable-threads=TYPE choose threading package],
- THREADS=$enableval,
- dnl FIXME: figure out native threads to use here.
- THREADS=no)
-
-if test "$THREADS" = yes; then
- case "$host" in
- *-*-vxworks*)
- THREADS=vxworks
- ;;
- *-*-linux*)
- # FIXME: this isn't correct in all cases.
- THREADS=posix
- ;;
- *-*-win*)
- THREADS=win32
- ;;
- *-*-irix*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose irix threads.
- THREADS=posix
- ;;
- *-*-solaris*)
- # FIXME: for now, choose POSIX, because we implement that.
- # Later, choose solaris threads.
- THREADS=posix
- ;;
- *)
- # For now.
- THREADS=none
- ;;
- esac
-fi
-
-case "$THREADS" in
- no | none | single)
- THREADS=none
- ;;
- posix | pthreads)
- THREADS=posix
- case "$host" in
- *-*-linux*)
- AC_DEFINE(LINUX_THREADS)
- ;;
- esac
- ;;
- decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
- AC_MSG_ERROR(thread package $THREADS not yet supported)
- ;;
- *)
- AC_MSG_ERROR($THREADS is an unknown thread package)
- ;;
-esac
-AC_MSG_RESULT($THREADS)
-
-THREADLIBS=
-THREADINCS=
-THREADDEPS=
-THREADOBJS=
-THREADH=
-THREADSPEC=
-case "$THREADS" in
- posix)
- THREADLIBS=-lpthread
- THREADSPEC=-lpthread
- THREADOBJS=posix-threads.lo
- THREADH=posix-threads.h
- # MIT pthreads doesn't seem to have the mutexattr functions.
- # But for now we don't check for it. We just assume you aren't
- # using MIT pthreads.
- AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT)
-
- # If we're using the Boehm GC, then we happen to know that it
- # defines _REENTRANT, so we don't bother. Eww.
- if test "$GC" != boehm; then
- AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
- fi
- AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Required define if using POSIX threads])
- ;;
-
- none)
- THREADOBJS=no-threads.lo
- THREADH=no-threads.h
- ;;
-esac
-AC_LINK_FILES(include/$THREADH, include/java-threads.h)
-AC_SUBST(THREADLIBS)
-AC_SUBST(THREADINCS)
-AC_SUBST(THREADDEPS)
-AC_SUBST(THREADOBJS)
-AC_SUBST(THREADSPEC)
-
-AM_CONDITIONAL(USING_GCC, test "$GCC" = yes)
-
-CANADIAN=no
-NULL_TARGET=no
-NATIVE=yes
-
-# Find eh-common.h and support headers. If we're in the tree with
-# gcc, then look there. Otherwise look in compat-include. If all else
-# fails, just hope the user has set things up somehow.
-if test -r $srcdir/../gcc/eh-common.h; then
- EH_COMMON_INCLUDE='-I$(top_srcdir)/../gcc -I$(top_srcdir)/../include'
-else
- if test -d $srcdir/../compat-include; then
- EH_COMMON_INCLUDE='-I$(top_srcdir)/../compat-include'
- else
- EH_COMMON_INCLUDE=
- fi
-fi
-
-if test -n "${with_cross_host}"; then
- # We are being configured with a cross compiler. AC_REPLACE_FUNCS
- # may not work correctly, because the compiler may not be able to
- # link executables.
-
- # We assume newlib. This lets us hard-code the functions we know
- # we'll have.
- AC_DEFINE(HAVE_MEMMOVE)
- AC_DEFINE(HAVE_MEMCPY)
- AC_DEFINE(HAVE_STRERROR)
- AC_DEFINE(HAVE_GMTIME_R)
- AC_DEFINE(HAVE_LOCALTIME_R)
- dnl This is only for POSIX threads.
- AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT)
- dnl We also assume we are using gcc, which provides alloca.
- AC_DEFINE(HAVE_ALLOCA)
-
- dnl Assume we do not have getuid and friends.
- AC_DEFINE(NO_GETUID)
-
- ZLIBSPEC=-lzgcj
- ZLIBTESTSPEC="-L`pwd`/../zlib/.libs -rpath `pwd`/../zlib/.libs"
-
- # If Canadian cross, then don't pick up tools from the build
- # directory.
- if test "$build" != "$with_cross_host"; then
- CANADIAN=yes
- EH_COMMON_INCLUDE=
- GCJ="${target_alias}-gcj"
- else
- GCJ=
- fi
- NATIVE=no
-else
- AC_CHECK_FUNCS(strerror ioctl select fstat open fsync sleep)
- AC_CHECK_FUNCS(gmtime_r localtime_r readdir_r getpwuid_r getcwd)
- AC_CHECK_FUNCS(access stat mkdir rename rmdir unlink realpath)
- AC_CHECK_FUNCS(iconv nl_langinfo)
- AC_CHECK_FUNCS(inet_aton inet_addr, break)
- AC_CHECK_FUNCS(inet_pton uname inet_ntoa)
- AC_CHECK_FUNCS(backtrace fork execvp pipe)
- AC_CHECK_HEADERS(execinfo.h unistd.h dlfcn.h)
- AC_CHECK_LIB(dl, dladdr, [
- AC_DEFINE(HAVE_DLADDR)])
- AC_CHECK_FILES(/proc/self/exe, [
- AC_DEFINE(HAVE_PROC_SELF_EXE)])
-
- AC_CHECK_FUNCS(gethostbyname_r, [
- AC_DEFINE(HAVE_GETHOSTBYNAME_R)
- # There are two different kinds of gethostbyname_r.
- # We look for the one that returns `int'.
- # Hopefully this check is robust enough.
- AC_EGREP_HEADER(int.*gethostbyname_r, netdb.h, [
- AC_DEFINE(GETHOSTBYNAME_R_RETURNS_INT)])
-
- case " $GCINCS " in
- *" -D_REENTRANT "*) ;;
- *)
- dnl On DU4.0, gethostbyname_r is only declared with -D_REENTRANT
- AC_CACHE_CHECK([whether gethostbyname_r declaration requires -D_REENTRANT],
- [libjava_cv_gethostbyname_r_needs_reentrant],
- [ AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <netdb.h>],
- [gethostbyname_r("", 0, 0);],
- [libjava_cv_gethostbyname_r_needs_reentrant=no], [dnl
- CPPFLAGS_SAVE="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_REENTRANT"
- AC_TRY_COMPILE([#include <netdb.h>], [gethostbyname_r("", 0, 0);],
- [libjava_cv_gethostbyname_r_needs_reentrant=yes],
- [libjava_cv_gethostbyname_r_needs_reentrant=fail])
- CPPFLAGS="$CPPFLAGS_SAVE"
- ])
- AC_LANG_RESTORE
- ])
- if test "x$libjava_cv_gethostbyname_r_needs_reentrant" = xyes; then
- AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
- fi
- ;;
- esac
-
- AC_CACHE_CHECK([for struct hostent_data],
- [libjava_cv_struct_hostent_data], [dnl
- AC_TRY_COMPILE([
-#if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
-# define _REENTRANT 1
-#endif
-#include <netdb.h>], [struct hostent_data data;],
- [libjava_cv_struct_hostent_data=yes],
- [libjava_cv_struct_hostent_data=no])])
- if test "x$libjava_cv_struct_hostent_data" = xyes; then
- AC_DEFINE(HAVE_STRUCT_HOSTENT_DATA, 1,
- [Define if struct hostent_data is defined in netdb.h])
- fi
- ])
-
- AC_CHECK_FUNCS(gethostbyaddr_r, [
- AC_DEFINE(HAVE_GETHOSTBYADDR_R)
- # There are two different kinds of gethostbyaddr_r.
- # We look for the one that returns `int'.
- # Hopefully this check is robust enough.
- AC_EGREP_HEADER(int.*gethostbyaddr_r, netdb.h, [
- AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT)])])
-
- AC_CHECK_FUNCS(gethostname, [
- AC_DEFINE(HAVE_GETHOSTNAME)
- AC_EGREP_HEADER(gethostname, unistd.h, [
- AC_DEFINE(HAVE_GETHOSTNAME_DECL)])])
-
- # Look for these functions in the thread library, but only bother
- # if using POSIX threads.
- if test "$THREADS" = posix; then
- save_LIBS="$LIBS"
- LIBS="$LIBS $THREADLIBS"
- # Some POSIX thread systems don't have pthread_mutexattr_settype.
- # E.g., Solaris.
- AC_CHECK_FUNCS(pthread_mutexattr_settype pthread_mutexattr_setkind_np)
-
- # Look for sched_yield. Up to Solaris 2.6, it is in libposix4, since
- # Solaris 7 the name librt is preferred.
- AC_CHECK_FUNCS(sched_yield, , [
- AC_CHECK_LIB(rt, sched_yield, [
- AC_DEFINE(HAVE_SCHED_YIELD)
- THREADLIBS="$THREADLIBS -lrt"
- THREADSPEC="$THREADSPEC -lrt"], [
- AC_CHECK_LIB(posix4, sched_yield, [
- AC_DEFINE(HAVE_SCHED_YIELD)
- THREADLIBS="$THREADLIBS -lposix4"
- THREADSPEC="$THREADSPEC -lposix4"])])])
- LIBS="$save_LIBS"
-
- # We can save a little space at runtime if the mutex has m_count
- # or __m_count. This is a nice hack for Linux.
- AC_TRY_COMPILE([#include <pthread.h>], [
- extern pthread_mutex_t *mutex; int q = mutex->m_count;
- ], AC_DEFINE(PTHREAD_MUTEX_HAVE_M_COUNT), [
- AC_TRY_COMPILE([#include <pthread.h>], [
- extern pthread_mutex_t *mutex; int q = mutex->__m_count;
- ], AC_DEFINE(PTHREAD_MUTEX_HAVE___M_COUNT))])
- fi
-
- # We require a way to get the time.
- time_found=no
- AC_CHECK_FUNCS(gettimeofday time ftime, time_found=yes)
- if test "$time_found" = no; then
- AC_MSG_ERROR([no function found to get the time])
- fi
-
- AC_CHECK_FUNCS(memmove)
-
- # We require memcpy.
- memcpy_found=no
- AC_CHECK_FUNCS(memcpy, memcpy_found=yes)
- if test "$memcpy_found" = no; then
- AC_MSG_ERROR([memcpy is required])
- fi
-
- # Some library-finding code we stole from Tcl.
- #--------------------------------------------------------------------
- # Check for the existence of the -lsocket and -lnsl libraries.
- # The order here is important, so that they end up in the right
- # order in the command line generated by make. Here are some
- # special considerations:
- # 1. Use "connect" and "accept" to check for -lsocket, and
- # "gethostbyname" to check for -lnsl.
- # 2. Use each function name only once: can't redo a check because
- # autoconf caches the results of the last check and won't redo it.
- # 3. Use -lnsl and -lsocket only if they supply procedures that
- # aren't already present in the normal libraries. This is because
- # IRIX 5.2 has libraries, but they aren't needed and they're
- # bogus: they goof up name resolution if used.
- # 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
- # To get around this problem, check for both libraries together
- # if -lsocket doesn't work by itself.
- #--------------------------------------------------------------------
-
- AC_CACHE_CHECK([for socket libraries], gcj_cv_lib_sockets,
- [gcj_cv_lib_sockets=
- gcj_checkBoth=0
- unset ac_cv_func_connect
- AC_CHECK_FUNC(connect, gcj_checkSocket=0, gcj_checkSocket=1)
- if test "$gcj_checkSocket" = 1; then
- unset ac_cv_func_connect
- AC_CHECK_LIB(socket, main, gcj_cv_lib_sockets="-lsocket",
- gcj_checkBoth=1)
- fi
- if test "$gcj_checkBoth" = 1; then
- gcj_oldLibs=$LIBS
- LIBS="$LIBS -lsocket -lnsl"
- unset ac_cv_func_accept
- AC_CHECK_FUNC(accept,
- [gcj_checkNsl=0
- gcj_cv_lib_sockets="-lsocket -lnsl"])
- unset ac_cv_func_accept
- LIBS=$gcj_oldLibs
- fi
- unset ac_cv_func_gethostbyname
- gcj_oldLibs=$LIBS
- LIBS="$LIBS $gcj_cv_lib_sockets"
- AC_CHECK_FUNC(gethostbyname, ,
- [AC_CHECK_LIB(nsl, main,
- [gcj_cv_lib_sockets="$gcj_cv_lib_sockets -lnsl"])])
- unset ac_cv_func_gethostbyname
- LIBS=$gcj_oldLIBS
- ])
- SYSTEMSPEC="$SYSTEMSPEC $gcj_cv_lib_sockets"
-
- if test "$with_system_zlib" = yes; then
- AC_CHECK_LIB(z, deflate, ZLIBSPEC=-lz, ZLIBSPEC=-lzgcj)
- else
- ZLIBSPEC=-lzgcj
- ZLIBTESTSPEC="-L`pwd`/../zlib/.libs -rpath `pwd`/../zlib/.libs"
- fi
-
- # On Solaris, and maybe other architectures, the Boehm collector
- # requires -ldl.
- if test "$GC" = boehm; then
- AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
- fi
-
- if test -z "${with_multisubdir}"; then
- builddotdot=.
- else
-changequote(<<,>>)
- builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`
-changequote([,])
- fi
- dir="`cd ${builddotdot}/../../gcc && pwd`"
- if test -x "${dir}/gcj"; then
- GCJ="$dir/gcj -B`pwd`/ -B$dir/"
- else
- CANADIAN=yes
- NULL_TARGET=yes
- GCJ="gcj -B`pwd`/"
- fi
-fi
-
-# Create it, so that compile/link tests don't fail
-test -f libgcj.spec || touch libgcj.spec
-GCJ="$GCJ -I$srcdir"
-
-LT_AC_PROG_GCJ
-
-dnl FIXME: cross compilation
-AC_CHECK_SIZEOF(void *)
-
-ZLIBS=
-ZDEPS=
-ZINCS=
-if test "x$ZLIBSPEC" = "x-lzgcj"; then
- # We include the path to the zlib build directory.
- # See Makefile.am to understand why.
- ZDEPS='$(top_builddir)/../zlib/libzgcj.la'
- ZLIBS="$ZDEPS -L\$(here)/../zlib/$libsubdir"
- ZINCS='-I$(top_srcdir)/../zlib'
-else
- ZLIBS="$ZLIBSPEC"
-fi
-AC_SUBST(ZLIBS)
-AC_SUBST(ZDEPS)
-AC_SUBST(ZINCS)
-AC_SUBST(DIVIDESPEC)
-AC_SUBST(EXCEPTIONSPEC)
-AC_SUBST(FORCELIBGCCSPEC)
-
-AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
-AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
-AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes || test "$NULL_TARGET" = yes)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
-AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes)
-AC_SUBST(EH_COMMON_INCLUDE)
-
-# Determine gcj version number.
-changequote(<<,>>)
-gcjvers="`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`"
-changequote([,])
-AC_DEFINE_UNQUOTED(GCJVERSION, "$gcjvers")
-
-# See if gcj supports -fuse-divide-subroutine. gcc 2.95 does not, and
-# we want to continue to support that version.
-AC_MSG_CHECKING([whether gcj supports -fuse-divide-subroutine])
-cat > conftest.java << 'END'
-public class conftest { }
-END
-use_fuse=yes
-$GCJ -classpath $srcdir -fuse-divide-subroutine -fsyntax-only \
- conftest.java > /dev/null 2>&1 \
- || use_fuse=no
-rm -f conftest.java
-if test "$use_fuse" = no; then
- DIVIDESPEC=
-fi
-AC_MSG_RESULT($use_fuse)
-
-AC_SUBST(AM_RUNTESTFLAGS)
-
-dnl Work around a g++ bug. Reported to gcc-bugs@gcc.gnu.org on Jan 22, 2000.
-AC_MSG_CHECKING([for g++ -ffloat-store bug])
-save_CFLAGS="$CFLAGS"
-CFLAGS="-x c++ -O2 -ffloat-store"
-AC_TRY_COMPILE([#include <math.h>], ,
- [AC_MSG_RESULT(no)],
- [AC_DEFINE(__NO_MATH_INLINES)
- AC_MSG_RESULT(yes)])
-CFLAGS="$save_CFLAGS"
-
-dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
-dnl On that system, sys/ioctl.h will not include sys/filio.h unless
-dnl BSD_COMP is defined; just including sys/filio.h is simpler.
-AC_CHECK_HEADERS(unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h pwd.h sys/config.h inttypes.h stdint.h langinfo.h)
-dnl We avoid AC_HEADER_DIRENT since we really only care about dirent.h
-dnl for now. If you change this, you also must update natFile.cc.
-AC_CHECK_HEADERS(dirent.h)
-
-AC_CHECK_TYPE([ssize_t], [int])
-
-AC_MSG_CHECKING([for in_addr_t])
-AC_TRY_COMPILE([#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif], [in_addr_t foo;],
- [AC_DEFINE([HAVE_IN_ADDR_T])
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING([whether struct ip_mreq is in netinet/in.h])
-AC_TRY_COMPILE([#include <netinet/in.h>], [struct ip_mreq mreq;],
- [AC_DEFINE(HAVE_STRUCT_IP_MREQ)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
-AC_TRY_COMPILE([#include <netinet/in.h>], [struct sockaddr_in6 addr6;],
- [AC_DEFINE(HAVE_INET6)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING([for socklen_t in sys/socket.h])
-AC_TRY_COMPILE([#include <sys/socket.h>], [socklen_t x = 5;],
- [AC_DEFINE(HAVE_SOCKLEN_T)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING([for tm_gmtoff in struct tm])
-AC_TRY_COMPILE([#include <time.h>], [struct tm tim; tim.tm_gmtoff = 0;],
- [AC_DEFINE(STRUCT_TM_HAS_GMTOFF)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- AC_MSG_CHECKING([for global timezone variable])
- dnl FIXME: we don't want a link check here because that won't work
- dnl when cross-compiling. So instead we make an assumption that
- dnl the header file will mention timezone if it exists.
- AC_TRY_COMPILE([#include <time.h>], [long z2 = timezone;],
- [AC_DEFINE(HAVE_TIMEZONE)
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])])
-
-AC_FUNC_ALLOCA
-
-AC_CHECK_PROGS(PERL, perl, false)
-
-SYSDEP_SOURCES=
-
-case "${host}" in
- i?86-*-linux*)
- SIGNAL_HANDLER=include/i386-signal.h
- ;;
- sparc-sun-solaris*)
- SIGNAL_HANDLER=include/sparc-signal.h
- ;;
- ia64-*)
- SYSDEP_SOURCES=sysdep/ia64.c
- test -d sysdep || mkdir sysdep
- ;;
- *)
- SIGNAL_HANDLER=include/default-signal.h
- ;;
-esac
-
-# If we're using sjlj exceptions, forget what we just learned.
-if test "$libgcj_sjlj" = yes; then
- SIGNAL_HANDLER=include/default-signal.h
-fi
-
-AC_SUBST(SYSDEP_SOURCES)
-
-AC_LINK_FILES($SIGNAL_HANDLER, include/java-signal.h)
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
-fi
-
-here=`pwd`
-AC_SUBST(here)
-
-AC_OUTPUT(Makefile libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile,
-[if test -n "$CONFIG_FILES"; then
- ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
-fi],
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-libgcj_basedir=${libgcj_basedir}
-CC="${CC}"
-CXX="${CXX}"
-)
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc
deleted file mode 100644
index 7ddead0965b..00000000000
--- a/libjava/defineclass.cc
+++ /dev/null
@@ -1,1590 +0,0 @@
-// defineclass.cc - defining a class from .class format.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/*
- Author: Kresten Krab Thorup <krab@gnu.org>
-
- Written using the online versions of Java Language Specification (1st
- ed.) and The Java Virtual Machine Specification (2nd ed.).
-
- Future work may include reading (and handling) attributes which are
- currently being ignored ("InnerClasses", "LineNumber", etc...).
-*/
-
-#include <config.h>
-
-#include <java-interp.h>
-
-#ifdef INTERPRETER
-
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-#include <java-cpool.h>
-#include <gcj/cni.h>
-
-#include <java/lang/Class.h>
-#include <java/lang/Float.h>
-#include <java/lang/Double.h>
-#include <java/lang/Character.h>
-#include <java/lang/LinkageError.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/ClassFormatError.h>
-#include <java/lang/NoClassDefFoundError.h>
-#include <java/lang/ClassCircularityError.h>
-#include <java/lang/ClassNotFoundException.h>
-#include <java/lang/IncompatibleClassChangeError.h>
-#include <java/lang/reflect/Modifier.h>
-
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-#define ClassObject _CL_Q34java4lang6Object
-extern java::lang::Class ClassObject;
-
-// we don't verify method names that match these.
-static _Jv_Utf8Const *clinit_name = _Jv_makeUtf8Const ("<clinit>", 8);
-static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
-
-
-// these go in some seperate functions, to avoid having _Jv_InitClass
-// inserted all over the place.
-static void throw_internal_error (char *msg)
- __attribute__ ((__noreturn__));
-static void throw_no_class_def_found_error (jstring msg)
- __attribute__ ((__noreturn__));
-static void throw_no_class_def_found_error (char *msg)
- __attribute__ ((__noreturn__));
-static void throw_class_format_error (jstring msg)
- __attribute__ ((__noreturn__));
-static void throw_class_format_error (char *msg)
- __attribute__ ((__noreturn__));
-static void throw_incompatible_class_change_error (jstring msg)
- __attribute__ ((__noreturn__));
-static void throw_class_circularity_error (jstring msg)
- __attribute__ ((__noreturn__));
-
-static jdouble long_bits_to_double (jlong);
-static jfloat int_bits_to_float (jint);
-
-/**
- * We define class reading using a class. It is practical, since then
- * the entire class-reader can be a friend of class Class (it needs to
- * write all it's different structures); but also because this makes it
- * easy to make class definition reentrant, and thus two threads can be
- * defining classes at the same time. This class (_Jv_ClassReader) is
- * never exposed outside this file, so we don't have to worry about
- * public or private members here.
- */
-
-struct _Jv_ClassReader {
-
- // do verification? Currently, there is no option to disable this.
- // This flag just controls the verificaiton done by the class loader;
- // i.e., checking the integrity of the constant pool; and it is
- // allways on. You always want this as far as I can see, but it also
- // controls weither identifiers and type descriptors/signatures are
- // verified as legal. This could be somewhat more expensive since it
- // will call Characher.isJavaIdentifier{Start,Part} for each character
- // in any identifier (field name or method name) it comes by. Thus,
- // it might be useful to turn off this verification for classes that
- // come from a trusted source. However, for GCJ, trusted classes are
- // most likely to be linked in.
-
- bool verify;
-
- // input data.
- unsigned char *bytes;
- int len;
-
- // current input position
- int pos;
-
- // the constant pool data
- int pool_count;
- unsigned char *tags;
- unsigned int *offsets;
-
- // the class to define (see java-interp.h)
- _Jv_InterpClass *def;
-
- /* check that the given number of input bytes are available */
- inline void check (int num)
- {
- if (pos + num > len)
- throw_class_format_error ("Premature end of data");
- }
-
- /* skip a given number of bytes in input */
- inline void skip (int num)
- {
- check (num);
- pos += num;
- }
-
- /* read an unsignend 1-byte unit */
- inline static jint get1u (unsigned char* bytes)
- {
- return bytes[0];
- }
-
- /* read an unsigned 1-byte unit */
- inline jint read1u ()
- {
- skip (1);
- return get1u (bytes+pos-1);
- }
-
- /* read an unsigned 2-byte unit */
- inline static jint get2u (unsigned char *bytes)
- {
- return (((jint)bytes[0]) << 8) | ((jint)bytes[1]);
- }
-
- /* read an unsigned 2-byte unit */
- inline jint read2u ()
- {
- skip (2);
- return get2u (bytes+pos-2);
- }
-
- /* read a 4-byte unit */
- static jint get4 (unsigned char *bytes)
- {
- return (((jint)bytes[0]) << 24)
- | (((jint)bytes[1]) << 16)
- | (((jint)bytes[2]) << 8)
- | (((jint)bytes[3]) << 0);
- }
-
- /* read a 4-byte unit, (we don't do that quite so often) */
- inline jint read4 ()
- {
- skip (4);
- return get4 (bytes+pos-4);
- }
-
- /* read a 8-byte unit */
- static jlong get8 (unsigned char* bytes)
- {
- return (((jlong)bytes[0]) << 56)
- | (((jlong)bytes[1]) << 48)
- | (((jlong)bytes[2]) << 40)
- | (((jlong)bytes[3]) << 32)
- | (((jlong)bytes[4]) << 24)
- | (((jlong)bytes[5]) << 16)
- | (((jlong)bytes[6]) << 8)
- | (((jlong)bytes[7]) << 0);
- }
-
- /* read a 8-byte unit */
- inline jlong read8 ()
- {
- skip (8);
- return get8 (bytes+pos-8);
- }
-
- inline void check_tag (int index, char expected_tag)
- {
- if (index < 0
- || index > pool_count
- || tags[index] != expected_tag)
- throw_class_format_error ("erroneous constant pool tag");
- }
-
- _Jv_ClassReader (jclass klass, jbyteArray data, jint offset, jint length)
- {
- if (klass == 0 || length < 0 || offset+length > data->length)
- throw_internal_error ("arguments to _Jv_DefineClass");
-
- verify = true;
- bytes = (unsigned char*) (elements (data)+offset);
- len = length;
- pos = 0;
- def = (_Jv_InterpClass*) klass;
- }
-
- /** and here goes the parser members defined out-of-line */
- void parse ();
- void read_constpool ();
- void prepare_pool_entry (int index, unsigned char tag);
- void read_fields ();
- void read_methods ();
- void read_one_class_attribute ();
- void read_one_method_attribute (int method);
- void read_one_code_attribute (int method);
- void read_one_field_attribute (int field);
-
- /** check an utf8 entry, without creating a Utf8Const object */
- bool is_attribute_name (int index, char *name);
-
- /** here goes the class-loader members defined out-of-line */
- void handleConstantPool ();
- void handleClassBegin (int, int, int);
- void handleInterfacesBegin (int);
- void handleInterface (int, int);
- void handleFieldsBegin (int);
- void handleField (int, int, int, int);
- void handleFieldsEnd ();
- void handleConstantValueAttribute (int,int);
- void handleMethodsBegin (int);
- void handleMethod (int, int, int, int);
- void handleMethodsEnd ();
- void handleCodeAttribute (int, int, int, int, int, int);
- void handleExceptionTableEntry (int, int, int, int, int, int);
-
- void checkExtends (jclass sub, jclass super);
- void checkImplements (jclass sub, jclass super);
-
- /*
- * FIXME: we should keep a hash table of utf8-strings, since many will
- * be the same. It's a little tricky, however, because the hash table
- * needs to interact gracefully with the garbage collector. Much
- * memory is to be saved by this, however! perhaps the improvement
- * could be implemented in prims.cc (_Jv_makeUtf8Const), since it
- * computes the hash value anyway.
- */
-};
-
-/* This is used for the isJavaIdentifierStart & isJavaIdentifierPart
- methods, so we avoid doing _Jv_InitClass all the time */
-
-static const java::lang::Character *character = 0;
-static void prepare_character ();
-
-void
-_Jv_DefineClass (jclass klass, jbyteArray data, jint offset, jint length)
-{
- if (character == 0)
- prepare_character ();
-
- _Jv_ClassReader reader (klass, data, offset, length);
- reader.parse();
-
- /* that's it! */
-}
-
-/** put it after _Jv_DefineClass, so it doesn't get inlined */
-static void prepare_character ()
-{
- character = new java::lang::Character ('!');
-}
-
-
-/** This section defines the parsing/scanning of the class data */
-
-void
-_Jv_ClassReader::parse ()
-{
- int magic = read4 ();
-
- /* FIXME: Decide which range of version numbers to allow */
-
- /* int minor_version = */ read2u ();
- /* int major_verson = */ read2u ();
-
- if (magic != (int) 0xCAFEBABE)
- throw_class_format_error ("bad magic number");
-
- pool_count = read2u ();
-
- read_constpool ();
-
- int access_flags = read2u ();
- int this_class = read2u ();
- int super_class = read2u ();
-
- check_tag (this_class, JV_CONSTANT_Class);
- if (super_class != 0)
- check_tag (super_class, JV_CONSTANT_Class);
-
- handleClassBegin (access_flags, this_class, super_class);
-
- int interfaces_count = read2u ();
-
- handleInterfacesBegin (interfaces_count);
-
- for (int i = 0; i < interfaces_count; i++)
- {
- int iface = read2u ();
- check_tag (iface, JV_CONSTANT_Class);
- handleInterface (i, iface);
- }
-
- read_fields ();
- read_methods ();
-
- int attributes_count = read2u ();
-
- for (int i = 0; i < attributes_count; i++)
- {
- read_one_class_attribute ();
- }
-
- if (pos != len)
- throw_class_format_error ("unused data before end of file");
-
- // tell everyone we're done.
- def->state = JV_STATE_LOADED;
- def->notifyAll ();
-
-}
-
-void _Jv_ClassReader::read_constpool ()
-{
- tags = (unsigned char*) _Jv_AllocBytesChecked (pool_count);
- offsets = (unsigned int *) _Jv_AllocBytesChecked (sizeof (int)
- * pool_count) ;
-
- /** first, we scan the constant pool, collecting tags and offsets */
- tags[0] = JV_CONSTANT_Undefined;
- offsets[0] = pos;
- for (int c = 1; c < pool_count; c++)
- {
- tags[c] = read1u ();
- offsets[c] = pos;
-
- switch (tags[c])
- {
- case JV_CONSTANT_String:
- case JV_CONSTANT_Class:
- skip (2);
- break;
-
- case JV_CONSTANT_Fieldref:
- case JV_CONSTANT_Methodref:
- case JV_CONSTANT_InterfaceMethodref:
- case JV_CONSTANT_NameAndType:
- case JV_CONSTANT_Integer:
- case JV_CONSTANT_Float:
- skip (4);
- break;
-
- case JV_CONSTANT_Double:
- case JV_CONSTANT_Long:
- skip (8);
- tags[++c] = JV_CONSTANT_Undefined;
- break;
-
- case JV_CONSTANT_Utf8:
- {
- int len = read2u ();
- skip (len);
- }
- break;
-
- case JV_CONSTANT_Unicode:
- throw_class_format_error ("unicode not supported");
- break;
-
- default:
- throw_class_format_error ("erroneous constant pool tag");
- }
- }
-
- handleConstantPool ();
-}
-
-
-void _Jv_ClassReader::read_fields ()
-{
- int fields_count = read2u ();
- handleFieldsBegin (fields_count);
-
- for (int i = 0; i < fields_count; i++)
- {
- int access_flags = read2u ();
- int name_index = read2u ();
- int descriptor_index = read2u ();
- int attributes_count = read2u ();
-
- check_tag (name_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (name_index, JV_CONSTANT_Utf8);
-
- check_tag (descriptor_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (descriptor_index, JV_CONSTANT_Utf8);
-
- handleField (i, access_flags, name_index, descriptor_index);
-
- for (int j = 0; j < attributes_count; j++)
- {
- read_one_field_attribute (i);
- }
- }
-
- handleFieldsEnd ();
-}
-
-bool
-_Jv_ClassReader::is_attribute_name (int index, char *name)
-{
- check_tag (index, JV_CONSTANT_Utf8);
- int len = get2u (bytes+offsets[index]);
- if (len != (int) strlen (name))
- return false;
- else
- return !memcmp (bytes+offsets[index]+2, name, len);
-}
-
-void _Jv_ClassReader::read_one_field_attribute (int field_index)
-{
- int name = read2u ();
- int length = read4 ();
-
- if (is_attribute_name (name, "ConstantValue"))
- {
- int cv = read2u ();
-
- if (cv < pool_count
- && cv > 0
- && (tags[cv] == JV_CONSTANT_Integer
- || tags[cv] == JV_CONSTANT_Float
- || tags[cv] == JV_CONSTANT_Long
- || tags[cv] == JV_CONSTANT_Double
- || tags[cv] == JV_CONSTANT_String))
- {
- handleConstantValueAttribute (field_index, cv);
- }
- else
- {
- throw_class_format_error ("erroneous ConstantValue attribute");
- }
-
- if (length != 2)
- throw_class_format_error ("erroneous ConstantValue attribute");
- }
-
- else
- {
- skip (length);
- }
-}
-
-void _Jv_ClassReader::read_methods ()
-{
- int methods_count = read2u ();
-
- handleMethodsBegin (methods_count);
-
- for (int i = 0; i < methods_count; i++)
- {
- int access_flags = read2u ();
- int name_index = read2u ();
- int descriptor_index = read2u ();
- int attributes_count = read2u ();
-
- check_tag (name_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (descriptor_index, JV_CONSTANT_Utf8);
-
- check_tag (name_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (descriptor_index, JV_CONSTANT_Utf8);
-
- handleMethod (i, access_flags, name_index,
- descriptor_index);
-
- for (int j = 0; j < attributes_count; j++)
- {
- read_one_method_attribute (i);
- }
- }
-
- handleMethodsEnd ();
-}
-
-void _Jv_ClassReader::read_one_method_attribute (int method_index)
-{
- int name = read2u ();
- int length = read4 ();
-
- if (is_attribute_name (name, "Exceptions"))
- {
- /* we ignore this for now */
- skip (length);
- }
-
- else if (is_attribute_name (name, "Code"))
- {
- int start_off = pos;
- int max_stack = read2u ();
- int max_locals = read2u ();
- int code_length = read4 ();
-
- int code_start = pos;
- skip (code_length);
- int exception_table_length = read2u ();
-
- handleCodeAttribute (method_index,
- max_stack, max_locals,
- code_start, code_length,
- exception_table_length);
-
-
- for (int i = 0; i < exception_table_length; i++)
- {
- int start_pc = read2u ();
- int end_pc = read2u ();
- int handler_pc = read2u ();
- int catch_type = read2u ();
-
- if (start_pc > end_pc
- || start_pc < 0
- || end_pc >= code_length
- || handler_pc >= code_length)
- throw_class_format_error ("erroneous exception handler info");
-
- if (! (tags[catch_type] == JV_CONSTANT_Class
- || tags[catch_type] == 0))
- {
- throw_class_format_error ("erroneous exception handler info");
- }
-
- handleExceptionTableEntry (method_index,
- i,
- start_pc,
- end_pc,
- handler_pc,
- catch_type);
-
- }
-
- int attributes_count = read2u ();
-
- for (int i = 0; i < attributes_count; i++)
- {
- read_one_code_attribute (method_index);
- }
-
- if ((pos - start_off) != length)
- throw_class_format_error ("code attribute too short");
- }
-
- else
- {
- /* ignore unknown attributes */
- skip (length);
- }
-}
-
-void _Jv_ClassReader::read_one_code_attribute (int /*method*/)
-{
- /* ignore for now, ... later we may want to pick up
- line number information, for debugging purposes;
- in fact, the whole debugger issue is open! */
-
- /* int name = */ read2u ();
- int length = read4 ();
- skip (length);
-
-}
-
-void _Jv_ClassReader::read_one_class_attribute ()
-{
- /* we also ignore the class attributes, ...
- some day we'll add inner-classes support. */
-
- /* int name = */ read2u ();
- int length = read4 ();
- skip (length);
-}
-
-
-
-
-/* this section defines the semantic actions of the parser */
-
-void _Jv_ClassReader::handleConstantPool ()
-{
- /** now, we actually define the class' constant pool */
-
- // the pool is scanned explicitly by the collector
- jbyte *pool_tags = (jbyte*) _Jv_AllocBytesChecked (pool_count);
- _Jv_word *pool_data
- = (_Jv_word*) _Jv_AllocBytesChecked (pool_count * sizeof (_Jv_word));
-
- def->constants.tags = pool_tags;
- def->constants.data = pool_data;
- def->constants.size = pool_count;
-
- // Here we make a pass to collect the strings! We do this, because
- // internally in the GCJ runtime, classes are encoded with .'s not /'s.
- // Therefore, we first collect the strings, and then translate the rest
- // of the utf8-entries (thus not representing strings) from /-notation
- // to .-notation.
- for (int i = 1; i < pool_count; i++)
- {
- if (tags[i] == JV_CONSTANT_String)
- {
- unsigned char* str_data = bytes + offsets [i];
- int utf_index = get2u (str_data);
- check_tag (utf_index, JV_CONSTANT_Utf8);
- unsigned char *utf_data = bytes + offsets[utf_index];
- int len = get2u (utf_data);
- pool_data[i].utf8 = _Jv_makeUtf8Const ((char*)(utf_data+2), len);
- pool_tags[i] = JV_CONSTANT_String;
- }
- else
- {
- pool_tags[i] = JV_CONSTANT_Undefined;
- }
- }
-
- // and now, we scan everything else but strings & utf8-entries. This
- // leaves out those utf8-entries which are not used; which will be left
- // with a tag of JV_CONSTANT_Undefined in the class definition.
- for (int index = 1; index < pool_count; index++)
- {
- switch (tags[index])
- {
- case JV_CONSTANT_Undefined:
- case JV_CONSTANT_String:
- case JV_CONSTANT_Utf8:
- continue;
-
- default:
- prepare_pool_entry (index, tags[index]);
- }
- }
-
-}
-
-/* this is a recursive procedure, which will prepare pool entries as needed.
- Which is how we avoid initializing those entries which go unused. */
-void
-_Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag)
-{
- /* these two, pool_data and pool_tags, point into the class
- structure we are currently defining */
-
- unsigned char *pool_tags = (unsigned char*) def->constants.tags;
- _Jv_word *pool_data = def->constants.data;
-
- /* this entry was already prepared */
- if (pool_tags[index] == this_tag)
- return;
-
- /* this_data points to the constant-pool information for the current
- constant-pool entry */
-
- unsigned char *this_data = bytes + offsets[index];
-
- switch (this_tag)
- {
- case JV_CONSTANT_Utf8:
- {
- // If we came here, it is because some other tag needs this
- // utf8-entry for type information! Thus, we translate /'s to .'s in
- // order to accomondate gcj's internal representation.
-
- int len = get2u (this_data);
- char *buffer = (char*) alloca (len);
- char *s = ((char*) this_data)+2;
-
- /* FIXME: avoid using a buffer here */
- for (int i = 0; i < len; i++)
- {
- if (s[i] == '/')
- buffer[i] = '.';
- else
- buffer[i] = (char) s[i];
- }
-
- pool_data[index].utf8 = _Jv_makeUtf8Const (buffer, len);
- pool_tags[index] = JV_CONSTANT_Utf8;
- }
- break;
-
- case JV_CONSTANT_Class:
- {
- int utf_index = get2u (this_data);
- check_tag (utf_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (utf_index, JV_CONSTANT_Utf8);
-
- if (verify)
- _Jv_VerifyClassName (pool_data[utf_index].utf8);
-
- pool_data[index].utf8 = pool_data[utf_index].utf8;
- pool_tags[index] = JV_CONSTANT_Class;
- }
- break;
-
- case JV_CONSTANT_String:
- // already handled before...
- break;
-
- case JV_CONSTANT_Fieldref:
- case JV_CONSTANT_Methodref:
- case JV_CONSTANT_InterfaceMethodref:
- {
- int class_index = get2u (this_data);
- int nat_index = get2u (this_data+2);
-
- check_tag (class_index, JV_CONSTANT_Class);
- prepare_pool_entry (class_index, JV_CONSTANT_Class);
-
- check_tag (nat_index, JV_CONSTANT_NameAndType);
- prepare_pool_entry (nat_index, JV_CONSTANT_NameAndType);
-
- // here, verify the signature and identifier name
- if (verify)
- {
- _Jv_ushort name_index, type_index;
- _Jv_loadIndexes (&pool_data[nat_index],
- name_index, type_index);
-
- if (this_tag == JV_CONSTANT_Fieldref)
- _Jv_VerifyFieldSignature (pool_data[type_index].utf8);
- else
- _Jv_VerifyMethodSignature (pool_data[type_index].utf8);
-
- _Jv_Utf8Const* name = pool_data[name_index].utf8;
-
- if (this_tag != JV_CONSTANT_Fieldref
- && ( _Jv_equalUtf8Consts (name, clinit_name)
- || _Jv_equalUtf8Consts (name, init_name)))
- /* ignore */;
- else
- _Jv_VerifyIdentifier (pool_data[name_index].utf8);
- }
-
- _Jv_storeIndexes (&pool_data[index], class_index, nat_index);
- pool_tags[index] = this_tag;
- }
- break;
-
- case JV_CONSTANT_NameAndType:
- {
- _Jv_ushort name_index = get2u (this_data);
- _Jv_ushort type_index = get2u (this_data+2);
-
- check_tag (name_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (name_index, JV_CONSTANT_Utf8);
-
- check_tag (type_index, JV_CONSTANT_Utf8);
- prepare_pool_entry (type_index, JV_CONSTANT_Utf8);
-
- _Jv_storeIndexes (&pool_data[index], name_index, type_index);
- pool_tags[index] = JV_CONSTANT_NameAndType;
- }
- break;
-
- case JV_CONSTANT_Float:
- {
- jfloat f = int_bits_to_float ((jint) get4 (this_data));
- _Jv_storeFloat (&pool_data[index], f);
- pool_tags[index] = JV_CONSTANT_Float;
- }
- break;
-
- case JV_CONSTANT_Integer:
- {
- int i = get4 (this_data);
- _Jv_storeInt (&pool_data[index], i);
- pool_tags[index] = JV_CONSTANT_Integer;
- }
- break;
-
- case JV_CONSTANT_Double:
- {
- jdouble d = long_bits_to_double ((jlong) get8 (this_data));
- _Jv_storeDouble (&pool_data[index], d);
- pool_tags[index] = JV_CONSTANT_Double;
- }
- break;
-
- case JV_CONSTANT_Long:
- {
- jlong i = get8 (this_data);
- _Jv_storeLong (&pool_data[index], i);
- pool_tags[index] = JV_CONSTANT_Long;
- }
- break;
-
- default:
- throw_class_format_error ("erroneous constant pool tag");
- }
-}
-
-
-void
-_Jv_ClassReader::handleClassBegin
- (int access_flags, int this_class, int super_class)
-{
- using namespace java::lang::reflect;
-
- unsigned char *pool_tags = (unsigned char*) def->constants.tags;
- _Jv_word *pool_data = def->constants.data;
-
- check_tag (this_class, JV_CONSTANT_Class);
- _Jv_Utf8Const *loadedName = pool_data[this_class].utf8;
-
- // was ClassLoader.defineClass called with an expected class name?
- if (def->name == 0)
- {
- jclass orig = _Jv_FindClassInCache (loadedName, def->loader);
-
- if (orig == 0)
- {
- def->name = loadedName;
- }
- else
- {
- jstring msg = JvNewStringUTF ("anonymous "
- "class data denotes "
- "existing class ");
- msg = msg->concat (orig->getName ());
-
- throw_no_class_def_found_error (msg);
- }
- }
-
- // assert that the loaded class has the expected name, 5.3.5
- else if (! _Jv_equalUtf8Consts (loadedName, def->name))
- {
- jstring msg = JvNewStringUTF ("loaded class ");
- msg = msg->concat (def->getName ());
- msg = msg->concat (_Jv_NewStringUTF (" was in fact named "));
- jstring klass_name = _Jv_NewStringUTF (loadedName->data);
- msg = msg->concat (klass_name);
-
- throw_no_class_def_found_error (msg);
- }
-
- def->accflags = access_flags;
- pool_data[this_class].clazz = def;
- pool_tags[this_class] = JV_CONSTANT_ResolvedClass;
-
- if (super_class == 0)
- {
- // interfaces have java.lang.Object as super.
- if (access_flags & Modifier::INTERFACE)
- {
- def->superclass = (jclass)&ClassObject;
- }
-
- // FIXME: Consider this carefully!
- else if (!_Jv_equalUtf8Consts (def->name, ClassObject.name))
- {
- throw_no_class_def_found_error ("loading java.lang.Object");
- }
- }
-
- // In the pre-loading state, it can be looked up in the
- // cache only by this thread! This allows the super-class
- // to include references to this class.
-
- def->state = JV_STATE_PRELOADING;
- _Jv_RegisterClass (def);
-
- if (super_class != 0)
- {
- // load the super class
- check_tag (super_class, JV_CONSTANT_Class);
- _Jv_Utf8Const* super_name = pool_data[super_class].utf8;
-
- // load the super class using our defining loader
- jclass the_super = _Jv_FindClass (super_name,
- def->loader);
-
- // This will establish that we are allowed to be a subclass,
- // and check for class circularity error
- checkExtends (def, the_super);
-
- def->superclass = the_super;
- pool_data[super_class].clazz = the_super;
- pool_tags[super_class] = JV_CONSTANT_ResolvedClass;
- }
-
- // now we've come past the circularity problem, we can
- // now say that we're loading...
-
- def->state = JV_STATE_LOADING;
- def->notifyAll ();
-}
-
-///// implements the checks described in sect. 5.3.5.3
-void
-_Jv_ClassReader::checkExtends (jclass sub, jclass super)
-{
- using namespace java::lang::reflect;
-
- // having an interface or a final class as a superclass is no good
- if ((super->accflags & (Modifier::INTERFACE | Modifier::FINAL)) != 0)
- {
- throw_incompatible_class_change_error (sub->getName ());
- }
-
- // if the super class is not public, we need to check some more
- if ((super->accflags & Modifier::PUBLIC) == 0)
- {
- // With package scope, the classes must have the same
- // class loader.
- if ( sub->loader != super->loader
- || !_Jv_ClassNameSamePackage (sub->name, super->name))
- {
- throw_incompatible_class_change_error (sub->getName ());
- }
- }
-
- for (; super != 0; super = super->superclass)
- {
- if (super == sub)
- throw_class_circularity_error (sub->getName ());
- }
-}
-
-
-
-void _Jv_ClassReader::handleInterfacesBegin (int count)
-{
- def->interfaces = (jclass*) _Jv_AllocBytesChecked (count*sizeof (jclass));
- def->interface_count = count;
-}
-
-void _Jv_ClassReader::handleInterface (int if_number, int offset)
-{
- _Jv_word * pool_data = def->constants.data;
- unsigned char * pool_tags = (unsigned char*) def->constants.tags;
-
- jclass the_interface;
-
- if (pool_tags[offset] == JV_CONSTANT_Class)
- {
- _Jv_Utf8Const* name = pool_data[offset].utf8;
- the_interface = _Jv_FindClass (name, def->loader);
- }
- else if (pool_tags[offset] == JV_CONSTANT_ResolvedClass)
- {
- the_interface = pool_data[offset].clazz;
- }
- else
- {
- throw_no_class_def_found_error ("erroneous constant pool tag");
- }
-
- // checks the validity of the_interface, and that we are in fact
- // allowed to implement that interface.
- checkImplements (def, the_interface);
-
- pool_data[offset].clazz = the_interface;
- pool_tags[offset] = JV_CONSTANT_ResolvedClass;
-
- def->interfaces[if_number] = the_interface;
-}
-
-void
-_Jv_ClassReader::checkImplements (jclass sub, jclass super)
-{
- using namespace java::lang::reflect;
-
- // well, it *must* be an interface
- if ((super->accflags & Modifier::INTERFACE) == 0)
- {
- throw_incompatible_class_change_error (sub->getName ());
- }
-
- // if it has package scope, it must also be defined by the
- // same loader.
- if ((super->accflags & Modifier::PUBLIC) == 0)
- {
- if ( sub->loader != super->loader
- || !_Jv_ClassNameSamePackage (sub->name, super->name))
- {
- throw_incompatible_class_change_error (sub->getName ());
- }
- }
-
- // FIXME: add interface circularity check here
- if (sub == super)
- {
- throw_class_circularity_error (sub->getName ());
- }
-}
-
-void _Jv_ClassReader::handleFieldsBegin (int count)
-{
- def->fields = (_Jv_Field*)
- _Jv_AllocBytesChecked (count * sizeof (_Jv_Field));
- def->field_count = count;
- def->field_initializers = (_Jv_ushort*)
- _Jv_AllocBytesChecked (count * sizeof (_Jv_ushort));
- for (int i = 0; i < count; i++)
- def->field_initializers[i] = (_Jv_ushort) 0;
-}
-
-void _Jv_ClassReader::handleField (int field_no,
- int flags,
- int name,
- int desc)
-{
- using namespace java::lang::reflect;
-
- _Jv_word *pool_data = def->constants.data;
-
- _Jv_Field *field = &def->fields[field_no];
- _Jv_Utf8Const *field_name = pool_data[name].utf8;
-
-#ifndef COMPACT_FIELDS
- field->name = field_name;
-#else
- field->nameIndex = name;
-#endif
-
- if (verify)
- _Jv_VerifyIdentifier (field_name);
-
- // ignore flags we don't know about.
- field->flags = flags & Modifier::ALL_FLAGS;
-
- if (verify)
- {
- if (field->flags & (Modifier::SYNCHRONIZED
- | Modifier::NATIVE
- | Modifier::INTERFACE
- | Modifier::ABSTRACT))
- throw_class_format_error ("erroneous field access flags");
-
- if (1 < ( ((field->flags & Modifier::PUBLIC) ? 1 : 0)
- +((field->flags & Modifier::PRIVATE) ? 1 : 0)
- +((field->flags & Modifier::PROTECTED) ? 1 : 0)))
- throw_class_format_error ("erroneous field access flags");
- }
-
- _Jv_Utf8Const* sig = pool_data[desc].utf8;
-
- if (verify)
- _Jv_VerifyFieldSignature (sig);
-
- // field->type is really a jclass, but while it is still
- // unresolved we keep an _Jv_Utf8Const* instead.
- field->type = (jclass) sig;
- field->flags |= _Jv_FIELD_UNRESOLVED_FLAG;
- field->u.boffset = 0;
-}
-
-
-void _Jv_ClassReader::handleConstantValueAttribute (int field_index,
- int value)
-{
- using namespace java::lang::reflect;
-
- _Jv_Field *field = &def->fields[field_index];
-
- if ((field->flags & (Modifier::STATIC
- | Modifier::FINAL
- | Modifier::PRIVATE)) == 0)
- {
- // Ignore, as per vmspec #4.7.2
- return;
- }
-
- // do not allow multiple constant fields!
- if (field->flags & _Jv_FIELD_CONSTANT_VALUE)
- throw_class_format_error ("field has multiple ConstantValue attributes");
-
- field->flags |= _Jv_FIELD_CONSTANT_VALUE;
- def->field_initializers[field_index] = value;
-
- /* type check the initializer */
-
- if (value <= 0 || value >= pool_count)
- throw_class_format_error ("erroneous ConstantValue attribute");
-
- /* FIXME: do the rest */
-}
-
-void _Jv_ClassReader::handleFieldsEnd ()
-{
- using namespace java::lang::reflect;
-
- // We need to reorganize the fields so that the static ones are first,
- // to conform to GCJ class layout.
-
- int low = 0;
- int high = def->field_count-1;
- _Jv_Field *fields = def->fields;
- _Jv_ushort *inits = def->field_initializers;
-
- // this is kind of a raw version of quicksort.
- while (low < high)
- {
- // go forward on low, while it's a static
- while (low < high && (fields[low].flags & Modifier::STATIC) != 0)
- low++;
-
- // go backwards on high, while it's a non-static
- while (low < high && (fields[high].flags & Modifier::STATIC) == 0)
- high--;
-
- if (low==high)
- break;
-
- _Jv_Field tmp = fields[low];
- _Jv_ushort itmp = inits[low];
-
- fields[low] = fields[high];
- inits[low] = inits[high];
-
- fields[high] = tmp;
- inits[high] = itmp;
-
- high -= 1;
- low += 1;
- }
-
- if ((fields[low].flags & Modifier::STATIC) != 0)
- low += 1;
-
- def->static_field_count = low;
-}
-
-
-
-void
-_Jv_ClassReader::handleMethodsBegin (int count)
-{
- def->methods = (_Jv_Method*)
- _Jv_AllocBytesChecked (sizeof (_Jv_Method)*count);
-
- def->interpreted_methods
- = (_Jv_MethodBase **) _Jv_AllocBytesChecked (sizeof (_Jv_MethodBase *)
- * count);
-
- for (int i = 0; i < count; i++)
- def->interpreted_methods[i] = 0;
-
- def->method_count = count;
-}
-
-
-void _Jv_ClassReader::handleMethod
- (int mth_index, int accflags, int name, int desc)
-{
- using namespace java::lang::reflect;
-
- _Jv_word *pool_data = def->constants.data;
- _Jv_Method *method = &def->methods[mth_index];
-
- check_tag (name, JV_CONSTANT_Utf8);
- prepare_pool_entry (name, JV_CONSTANT_Utf8);
- method->name = pool_data[name].utf8;
-
- check_tag (desc, JV_CONSTANT_Utf8);
- prepare_pool_entry (desc, JV_CONSTANT_Utf8);
- method->signature = pool_data[desc].utf8;
-
- // ignore unknown flags
- method->accflags = accflags & Modifier::ALL_FLAGS;
-
- // intialize...
- method->ncode = 0;
-
- if (verify)
- {
- if (_Jv_equalUtf8Consts (method->name, clinit_name)
- || _Jv_equalUtf8Consts (method->name, init_name))
- /* ignore */;
- else
- _Jv_VerifyIdentifier (method->name);
-
- _Jv_VerifyMethodSignature (method->signature);
-
- if (method->accflags & (Modifier::VOLATILE
- | Modifier::TRANSIENT
- | Modifier::INTERFACE))
- throw_class_format_error ("erroneous method access flags");
-
- if (1 < ( ((method->accflags & Modifier::PUBLIC) ? 1 : 0)
- +((method->accflags & Modifier::PRIVATE) ? 1 : 0)
- +((method->accflags & Modifier::PROTECTED) ? 1 : 0)))
- throw_class_format_error ("erroneous method access flags");
- }
-}
-
-void _Jv_ClassReader::handleCodeAttribute
- (int method_index, int max_stack, int max_locals,
- int code_start, int code_length, int exc_table_length)
-{
- int size = _Jv_InterpMethod::size (exc_table_length, code_length);
- _Jv_InterpMethod *method =
- (_Jv_InterpMethod*) (_Jv_AllocBytesChecked (size));
-
- method->max_stack = max_stack;
- method->max_locals = max_locals;
- method->code_length = code_length;
- method->exc_count = exc_table_length;
- method->defining_class = def;
- method->self = &def->methods[method_index];
-
- // grab the byte code!
- memcpy ((void*) method->bytecode (),
- (void*) (bytes+code_start),
- code_length);
-
- def->interpreted_methods[method_index] = method;
-
- /* that's all we do for now */
-}
-
-void _Jv_ClassReader::handleExceptionTableEntry
- (int method_index, int exc_index,
- int start_pc, int end_pc, int handler_pc, int catch_type)
-{
- _Jv_InterpMethod *method = reinterpret_cast<_Jv_InterpMethod *>
- (def->interpreted_methods[method_index]);
- _Jv_InterpException *exc = method->exceptions ();
-
- exc[exc_index].start_pc = start_pc;
- exc[exc_index].end_pc = end_pc;
- exc[exc_index].handler_pc = handler_pc;
- exc[exc_index].handler_type = catch_type;
-}
-
-void _Jv_ClassReader::handleMethodsEnd ()
-{
- using namespace java::lang::reflect;
-
- for (int i = 0; i < def->method_count; i++)
- {
- _Jv_Method *method = &def->methods[i];
- if ((method->accflags & Modifier::NATIVE) != 0)
- {
- if (def->interpreted_methods[i] != 0)
- throw_class_format_error ("code provided for native method");
- else
- {
- _Jv_JNIMethod *m = (_Jv_JNIMethod *)
- _Jv_AllocBytesChecked (sizeof (_Jv_JNIMethod));
- m->defining_class = def;
- m->self = method;
- m->function = NULL;
- def->interpreted_methods[i] = m;
- }
- }
- else if ((method->accflags & Modifier::ABSTRACT) != 0)
- {
- if (def->interpreted_methods[i] != 0)
- throw_class_format_error ("code provided for abstract method");
- }
- else
- {
- if (def->interpreted_methods[i] == 0)
- throw_class_format_error ("method with no code");
- }
- }
-
-}
-
-
-/** This section takes care of verifying integrity of identifiers,
- signatures, field ddescriptors, and class names */
-
-#define UTF8_PEEK(PTR, LIMIT) \
- ({ unsigned char* xxkeep = (PTR); \
- int xxch = UTF8_GET(PTR,LIMIT); \
- PTR = xxkeep; xxch; })
-
-/* verify one element of a type descriptor or signature */
-static unsigned char*
-_Jv_VerifyOne (unsigned char* ptr, unsigned char* limit, bool void_ok)
-{
- if (ptr >= limit)
- return 0;
-
- int ch = UTF8_GET (ptr, limit);
-
- switch (ch)
- {
- case 'V':
- if (! void_ok) return 0;
-
- case 'S': case 'B': case 'I': case 'J':
- case 'Z': case 'C': case 'F': case 'D':
- break;
-
- case 'L':
- {
- unsigned char *start = ptr, *end;
- do {
- if (ptr > limit)
- return 0;
-
- end = ptr;
-
- if ((ch = UTF8_GET (ptr, limit)) == -1)
- return 0;
-
- } while (ch != ';');
- _Jv_VerifyClassName (start, (unsigned short) (end-start));
- }
- break;
-
- case '[':
- return _Jv_VerifyOne (ptr, limit, false);
- break;
-
- default:
- return 0;
- }
-
- return ptr;
-
-}
-
-
-/** verification and loading procedures **/
-
-void
-_Jv_VerifyFieldSignature (_Jv_Utf8Const*sig)
-{
- unsigned char* ptr = (unsigned char*) sig->data;
- unsigned char* limit = ptr + sig->length;
-
- ptr = _Jv_VerifyOne (ptr, limit, false);
-
- if (ptr != limit)
- throw_class_format_error ("erroneous type descriptor");
-}
-
-void
-_Jv_VerifyMethodSignature (_Jv_Utf8Const*sig)
-{
- unsigned char* ptr = (unsigned char*) sig->data;
- unsigned char* limit = ptr + sig->length;
-
- if (ptr == limit)
- throw_class_format_error ("erroneous type descriptor");
-
- if (UTF8_GET(ptr,limit) != '(')
- throw_class_format_error ("erroneous type descriptor");
-
- while (ptr && UTF8_PEEK (ptr, limit) != ')')
- ptr = _Jv_VerifyOne (ptr, limit, false);
-
- if (UTF8_GET (ptr, limit) != ')')
- throw_class_format_error ("erroneous type descriptor");
-
- // get the return type
- ptr = _Jv_VerifyOne (ptr, limit, true);
-
- if (ptr != limit)
- throw_class_format_error ("erroneous type descriptor");
-
- return;
-
-}
-
-/* we try to avoid calling the Character methods all the time,
- in fact, they will only be called for non-standard things */
-
-static __inline__ int
-is_identifier_start (int c)
-{
- unsigned int ch = (unsigned)c;
-
- if ((ch - 0x41U) < 29U) /* A ... Z */
- return 1;
- if ((ch - 0x61U) < 29U) /* a ... z */
- return 1;
- if (ch == 0x5FU) /* _ */
- return 1;
-
- return character->isJavaIdentifierStart ((jchar) ch);
-}
-
-static __inline__ int
-is_identifier_part (int c)
-{
- unsigned int ch = (unsigned)c;
-
- if ((ch - 0x41U) < 29U) /* A ... Z */
- return 1;
- if ((ch - 0x61U) < 29U) /* a ... z */
- return 1;
- if ((ch - 0x30) < 10U) /* 0 .. 9 */
- return 1;
- if (ch == 0x5FU || ch == 0x24U) /* _ $ */
- return 1;
-
- return character->isJavaIdentifierStart ((jchar) ch);
-}
-
-void
-_Jv_VerifyIdentifier (_Jv_Utf8Const* name)
-{
- unsigned char *ptr = (unsigned char*) name->data;
- unsigned char *limit = ptr + name->length;
- int ch;
-
- if ((ch = UTF8_GET (ptr, limit))==-1
- || ! is_identifier_start (ch))
- throw_class_format_error ("erroneous identifier");
-
- while (ptr != limit)
- {
- if ((ch = UTF8_GET (ptr, limit))==-1
- || ! is_identifier_part (ch))
- throw_class_format_error ("erroneous identifier");
- }
-}
-
-
-void
-_Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length)
-{
- unsigned char *limit = ptr+length;
- int ch;
-
- if ('[' == UTF8_PEEK (ptr, limit))
- {
- if (! _Jv_VerifyOne (++ptr, limit, false))
- throw_class_format_error ("erroneous class name");
- else
- return;
- }
-
- next_level:
- do {
- if ((ch = UTF8_GET (ptr, limit))==-1)
- throw_class_format_error ("erroneous class name");
- if (! is_identifier_start (ch))
- throw_class_format_error ("erroneous class name");
- do {
- if (ptr == limit)
- return;
- else if ((ch = UTF8_GET (ptr, limit))==-1)
- throw_class_format_error ("erroneous class name");
- else if (ch == '.')
- goto next_level;
- else if (! is_identifier_part (ch))
- throw_class_format_error ("erroneous class name");
- } while (true);
- } while (true);
-
-}
-
-void
-_Jv_VerifyClassName (_Jv_Utf8Const *name)
-{
- _Jv_VerifyClassName ((unsigned char*)&name->data[0],
- (_Jv_ushort) name->length);
-}
-
-
-/** returns true, if name1 and name2 represents classes in the same
- package. */
-
-bool
-_Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2)
-{
- unsigned char* ptr1 = (unsigned char*) name1->data;
- unsigned char* limit1 = ptr1 + name1->length;
-
- unsigned char* last1 = ptr1;
-
- // scan name1, and find the last occurrence of '.'
- while (ptr1 < limit1) {
- int ch1 = UTF8_GET (ptr1, limit1);
-
- if (ch1 == '.')
- last1 = ptr1;
-
- else if (ch1 == -1)
- return false;
- }
-
- // now the length of name1's package name is len
- int len = last1 - (unsigned char*) name1->data;
-
- // if this is longer than name2, then we're off
- if (len > name2->length)
- return false;
-
- // then compare the first len bytes for equality
- if (memcmp ((void*) name1->data, (void*) name2->data, len) == 0)
- {
- // check that there are no .'s after position len in name2
-
- unsigned char* ptr2 = (unsigned char*) name2->data + len;
- unsigned char* limit2 =
- (unsigned char*) name2->data + name2->length;
-
- while (ptr2 < limit2)
- {
- int ch2 = UTF8_GET (ptr2, limit2);
- if (ch2 == -1 || ch2 == '.')
- return false;
- }
- return true;
- }
- return false;
-}
-
-
-
-/** Here we define the exceptions that can be thrown */
-
-static void
-throw_no_class_def_found_error (jstring msg)
-{
- if (msg == 0)
- JvThrow (new java::lang::NoClassDefFoundError);
- else
- JvThrow (new java::lang::NoClassDefFoundError (msg));
-}
-
-static void
-throw_no_class_def_found_error (char *msg)
-{
- throw_no_class_def_found_error (JvNewStringLatin1 (msg));
-}
-
-static void
-throw_class_format_error (jstring msg)
-{
- if (msg == 0)
- JvThrow (new java::lang::ClassFormatError);
- else
- JvThrow (new java::lang::ClassFormatError (msg));
-}
-
-static void
-throw_class_format_error (char *msg)
-{
- throw_class_format_error (JvNewStringLatin1 (msg));
-}
-
-static void
-throw_internal_error (char *msg)
-{
- JvThrow
- (new java::lang::InternalError (JvNewStringLatin1 (msg)));
-}
-
-static jfloat int_bits_to_float (jint value)
-{
- return java::lang::Float::intBitsToFloat (value);
-}
-
-static jdouble long_bits_to_double (jlong value)
-{
- return java::lang::Double::longBitsToDouble (value);
-}
-
-static void throw_incompatible_class_change_error (jstring msg)
-{
- JvThrow (new java::lang::IncompatibleClassChangeError (msg));
-}
-
-static void throw_class_circularity_error (jstring msg)
-{
- JvThrow (new java::lang::ClassCircularityError (msg));
-}
-
-#endif /* INTERPRETER */
-
diff --git a/libjava/doc/cni.sgml b/libjava/doc/cni.sgml
deleted file mode 100644
index 0c82ca67ddd..00000000000
--- a/libjava/doc/cni.sgml
+++ /dev/null
@@ -1,971 +0,0 @@
-<!DOCTYPE article PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
-<article>
-<artheader>
-<title>The Cygnus Native Interface for C++/Java Integration</title>
-<subtitle>Writing native Java methods in natural C++</subtitle>
-<authorgroup>
-<corpauthor>Cygnus Solutions</corpauthor>
-</authorgroup>
-<date>March, 2000</date>
-</artheader>
-
-<abstract><para>
-This documents CNI, the Cygnus Native Interface,
-which is is a convenient way to write Java native methods using C++.
-This is a more efficient, more convenient, but less portable
-alternative to the standard JNI (Java Native Interface).</para>
-</abstract>
-
-<sect1><title>Basic Concepts</title>
-<para>
-In terms of languages features, Java is mostly a subset
-of C++. Java has a few important extensions, plus a powerful standard
-class library, but on the whole that does not change the basic similarity.
-Java is a hybrid object-oriented language, with a few native types,
-in addition to class types. It is class-based, where a class may have
-static as well as per-object fields, and static as well as instance methods.
-Non-static methods may be virtual, and may be overloaded. Overloading is
-resolved at compile time by matching the actual argument types against
-the parameter types. Virtual methods are implemented using indirect calls
-through a dispatch table (virtual function table). Objects are
-allocated on the heap, and initialized using a constructor method.
-Classes are organized in a package hierarchy.
-</para>
-<para>
-All of the listed attributes are also true of C++, though C++ has
-extra features (for example in C++ objects may be allocated not just
-on the heap, but also statically or in a local stack frame). Because
-<acronym>gcj</acronym> uses the same compiler technology as
-<acronym>g++</acronym> (the GNU C++ compiler), it is possible
-to make the intersection of the two languages use the same
-<acronym>ABI</acronym> (object representation and calling conventions).
-The key idea in <acronym>CNI</acronym> is that Java objects are C++ objects,
-and all Java classes are C++ classes (but not the other way around).
-So the most important task in integrating Java and C++ is to
-remove gratuitous incompatibilities.
-</para>
-<para>
-You write CNI code as a regular C++ source file. (You do have to use
-a Java/CNI-aware C++ compiler, specifically a recent version of G++.)</para>
-<para>
-You start with:
-<programlisting>
-#include &lt;gcj/cni.h&gt;
-</programlisting></para>
-
-<para>
-You then include header files for the various Java classes you need
-to use:
-<programlisting>
-#include &lt;java/lang/Character.h&gt;
-#include &lt;java/util/Date.h&gt;
-#include &lt;java/lang/IndexOutOfBoundsException.h&gt;
-</programlisting></para>
-
-<para>
-In general, <acronym>CNI</acronym> functions and macros start with the
-`<literal>Jv</literal>' prefix, for example the function
-`<literal>JvNewObjectArray</literal>'. This convention is used to
-avoid conflicts with other libraries.
-Internal functions in <acronym>CNI</acronym> start with the prefix
-`<literal>_Jv_</literal>'. You should not call these;
-if you find a need to, let us know and we will try to come up with an
-alternate solution. (This manual lists <literal>_Jv_AllocBytes</literal>
-as an example; <acronym>CNI</acronym> should instead provide
-a <literal>JvAllocBytes</literal> function.)</para>
-<para>
-These header files are automatically generated by <command>gcjh</command>.
-</para>
-</sect1>
-
-<sect1><title>Packages</title>
-<para>
-The only global names in Java are class names, and packages.
-A <firstterm>package</firstterm> can contain zero or more classes, and
-also zero or more sub-packages.
-Every class belongs to either an unnamed package or a package that
-has a hierarchical and globally unique name.
-</para>
-<para>
-A Java package is mapped to a C++ <firstterm>namespace</firstterm>.
-The Java class <literal>java.lang.String</literal>
-is in the package <literal>java.lang</literal>, which is a sub-package
-of <literal>java</literal>. The C++ equivalent is the
-class <literal>java::lang::String</literal>,
-which is in the namespace <literal>java::lang</literal>,
-which is in the namespace <literal>java</literal>.
-</para>
-<para>
-Here is how you could express this:
-<programlisting>
-// Declare the class(es), possibly in a header file:
-namespace java {
- namespace lang {
- class Object;
- class String;
- ...
- }
-}
-
-class java::lang::String : public java::lang::Object
-{
- ...
-};
-</programlisting>
-</para>
-<para>
-The <literal>gcjh</literal> tool automatically generates the
-nessary namespace declarations.</para>
-
-<sect2><title>Nested classes as a substitute for namespaces</title>
-<para>
-<!-- FIXME the next line reads poorly jsm -->
-It is not that long since g++ got complete namespace support,
-and it was very recent (end of February 1999) that <literal>libgcj</literal>
-was changed to uses namespaces. Releases before then used
-nested classes, which are the C++ equivalent of Java inner classes.
-They provide similar (though less convenient) functionality.
-The old syntax is:
-<programlisting>
-class java {
- class lang {
- class Object;
- class String;
- };
-};
-</programlisting>
-The obvious difference is the use of <literal>class</literal> instead
-of <literal>namespace</literal>. The more important difference is
-that all the members of a nested class have to be declared inside
-the parent class definition, while namespaces can be defined in
-multiple places in the source. This is more convenient, since it
-corresponds more closely to how Java packages are defined.
-The main difference is in the declarations; the syntax for
-using a nested class is the same as with namespaces:
-<programlisting>
-class java::lang::String : public java::lang::Object
-{ ... }
-</programlisting>
-Note that the generated code (including name mangling)
-using nested classes is the same as that using namespaces.</para>
-</sect2>
-
-<sect2><title>Leaving out package names</title>
-<para>
-<!-- FIXME next line reads poorly jsm -->
-Having to always type the fully-qualified class name is verbose.
-It also makes it more difficult to change the package containing a class.
-The Java <literal>package</literal> declaration specifies that the
-following class declarations are in the named package, without having
-to explicitly name the full package qualifiers.
-The <literal>package</literal> declaration can be followed by zero or
-more <literal>import</literal> declarations, which allows either
-a single class or all the classes in a package to be named by a simple
-identifier. C++ provides something similar
-with the <literal>using</literal> declaration and directive.
-</para>
-<para>
-A Java simple-type-import declaration:
-<programlisting>
-import <replaceable>PackageName</replaceable>.<replaceable>TypeName</replaceable>;
-</programlisting>
-allows using <replaceable>TypeName</replaceable> as a shorthand for
-<literal><replaceable>PackageName</replaceable>.<replaceable>TypeName</replaceable></literal>.
-The C++ (more-or-less) equivalent is a <literal>using</literal>-declaration:
-<programlisting>
-using <replaceable>PackageName</replaceable>::<replaceable>TypeName</replaceable>;
-</programlisting>
-</para>
-<para>
-A Java import-on-demand declaration:
-<programlisting>
-import <replaceable>PackageName</replaceable>.*;
-</programlisting>
-allows using <replaceable>TypeName</replaceable> as a shorthand for
-<literal><replaceable>PackageName</replaceable>.<replaceable>TypeName</replaceable></literal>
-The C++ (more-or-less) equivalent is a <literal>using</literal>-directive:
-<programlisting>
-using namespace <replaceable>PackageName</replaceable>;
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1><title>Primitive types</title>
-<para>
-Java provides 8 <quote>primitives</quote> types:
-<literal>byte</literal>, <literal>short</literal>, <literal>int</literal>,
-<literal>long</literal>, <literal>float</literal>, <literal>double</literal>,
-<literal>char</literal>, and <literal>boolean</literal>.
-These are the same as the following C++ <literal>typedef</literal>s
-(which are defined by <literal>gcj/cni.h</literal>):
-<literal>jbyte</literal>, <literal>jshort</literal>, <literal>jint</literal>,
-<literal>jlong</literal>, <literal>jfloat</literal>,
-<literal>jdouble</literal>,
-<literal>jchar</literal>, and <literal>jboolean</literal>.
-You should use the C++ typenames
-(<ForeignPhrase><Abbrev>e.g.</Abbrev></ForeignPhrase> <literal>jint</literal>),
-and not the Java types names
-(<ForeignPhrase><Abbrev>e.g.</Abbrev></ForeignPhrase> <literal>int</literal>),
-even if they are <quote>the same</quote>.
-This is because there is no guarantee that the C++ type
-<literal>int</literal> is a 32-bit type, but <literal>jint</literal>
-<emphasis>is</emphasis> guaranteed to be a 32-bit type.
-
-<informaltable frame="all" colsep="1" rowsep="0">
-<tgroup cols="3">
-<thead>
-<row>
-<entry>Java type</entry>
-<entry>C/C++ typename</entry>
-<entry>Description</entry>
-</thead>
-<tbody>
-<row>
-<entry>byte</entry>
-<entry>jbyte</entry>
-<entry>8-bit signed integer</entry>
-</row>
-<row>
-<entry>short</entry>
-<entry>jshort</entry>
-<entry>16-bit signed integer</entry>
-</row>
-<row>
-<entry>int</entry>
-<entry>jint</entry>
-<entry>32-bit signed integer</entry>
-</row>
-<row>
-<entry>long</entry>
-<entry>jlong</entry>
-<entry>64-bit signed integer</entry>
-</row>
-<row>
-<entry>float</entry>
-<entry>jfloat</entry>
-<entry>32-bit IEEE floating-point number</entry>
-</row>
-<row>
-<entry>double</entry>
-<entry>jdouble</entry>
-<entry>64-bit IEEE floating-point number</entry>
-</row>
-<row>
-<entry>char</entry>
-<entry>jchar</entry>
-<entry>16-bit Unicode character</entry>
-</row>
-<row>
-<entry>boolean</entry>
-<entry>jboolean</entry>
-<entry>logical (Boolean) values</entry>
-</row>
-<row>
-<entry>void</entry>
-<entry>void</entry>
-<entry>no value</entry>
-</row>
-</tbody></tgroup>
-</informaltable>
-</para>
-
-<para>
-<funcsynopsis>
-<funcdef><function>JvPrimClass</function></funcdef>
-<paramdef><parameter>primtype</parameter></paramdef>
-</funcsynopsis>
-This is a macro whose argument should be the name of a primitive
-type, <ForeignPhrase><Abbrev>e.g.</Abbrev></ForeignPhrase>
-<literal>byte</literal>.
-The macro expands to a pointer to the <literal>Class</literal> object
-corresponding to the primitive type.
-<ForeignPhrase><Abbrev>E.g.</Abbrev></ForeignPhrase>,
-<literal>JvPrimClass(void)</literal>
-has the same value as the Java expression
-<literal>Void.TYPE</literal> (or <literal>void.class</literal>).
-</para>
-
-</sect1>
-
-<sect1><title>Objects and Classes</title>
-<sect2><title>Classes</title>
-<para>
-All Java classes are derived from <literal>java.lang.Object</literal>.
-C++ does not have a unique <quote>root</quote>class, but we use
-a C++ <literal>java::lang::Object</literal> as the C++ version
-of the <literal>java.lang.Object</literal> Java class. All
-other Java classes are mapped into corresponding C++ classes
-derived from <literal>java::lang::Object</literal>.</para>
-<para>
-Interface inheritance (the <quote><literal>implements</literal></quote>
-keyword) is currently not reflected in the C++ mapping.</para>
-</sect2>
-<sect2><title>Object references</title>
-<para>
-We implement a Java object reference as a pointer to the start
-of the referenced object. It maps to a C++ pointer.
-(We cannot use C++ references for Java references, since
-once a C++ reference has been initialized, you cannot change it to
-point to another object.)
-The <literal>null</literal> Java reference maps to the <literal>NULL</literal>
-C++ pointer.
-</para>
-<para>
-Note that in some Java implementations an object reference is implemented as
-a pointer to a two-word <quote>handle</quote>. One word of the handle
-points to the fields of the object, while the other points
-to a method table. Gcj does not use this extra indirection.
-</para>
-</sect2>
-<sect2><title>Object fields</title>
-<para>
-Each object contains an object header, followed by the instance
-fields of the class, in order. The object header consists of
-a single pointer to a dispatch or virtual function table.
-(There may be extra fields <quote>in front of</quote> the object,
-for example for
-memory management, but this is invisible to the application, and
-the reference to the object points to the dispatch table pointer.)
-</para>
-<para>
-The fields are laid out in the same order, alignment, and size
-as in C++. Specifically, 8-bite and 16-bit native types
-(<literal>byte</literal>, <literal>short</literal>, <literal>char</literal>,
-and <literal>boolean</literal>) are <emphasis>not</emphasis>
-widened to 32 bits.
-Note that the Java VM does extend 8-bit and 16-bit types to 32 bits
-when on the VM stack or temporary registers.</para>
-<para>
-If you include the <literal>gcjh</literal>-generated header for a
-class, you can access fields of Java classes in the <quote>natural</quote>
-way. Given the following Java class:
-<programlisting>
-public class Int
-{
- public int i;
- public Integer (int i) { this.i = i; }
- public static zero = new Integer(0);
-}
-</programlisting>
-you can write:
-<programlisting>
-#include &lt;gcj/cni.h&gt;
-#include &lt;Int.h&gt;
-Int*
-mult (Int *p, jint k)
-{
- if (k == 0)
- return Int::zero; // static member access.
- return new Int(p->i * k);
-}
-</programlisting>
-</para>
-<para>
-<acronym>CNI</acronym> does not strictly enforce the Java access
-specifiers, because Java permissions cannot be directly mapped
-into C++ permission. Private Java fields and methods are mapped
-to private C++ fields and methods, but other fields and methods
-are mapped to public fields and methods.
-</para>
-</sect2>
-</sect1>
-
-<sect1><title>Arrays</title>
-<para>
-While in many ways Java is similar to C and C++,
-it is quite different in its treatment of arrays.
-C arrays are based on the idea of pointer arithmetic,
-which would be incompatible with Java's security requirements.
-Java arrays are true objects (array types inherit from
-<literal>java.lang.Object</literal>). An array-valued variable
-is one that contains a reference (pointer) to an array object.
-</para>
-<para>
-Referencing a Java array in C++ code is done using the
-<literal>JArray</literal> template, which as defined as follows:
-<programlisting>
-class __JArray : public java::lang::Object
-{
-public:
- int length;
-};
-
-template&lt;class T&gt;
-class JArray : public __JArray
-{
- T data[0];
-public:
- T&amp; operator[](jint i) { return data[i]; }
-};
-</programlisting></para>
-<para>
-<funcsynopsis>
- <funcdef>template&lt;class T&gt; T *<function>elements</function></funcdef>
- <paramdef>JArray&lt;T&gt; &amp;<parameter>array</parameter></paramdef>
-</funcsynopsis>
- This template function can be used to get a pointer to the
- elements of the <parameter>array</parameter>.
- For instance, you can fetch a pointer
- to the integers that make up an <literal>int[]</literal> like so:
-<programlisting>
-extern jintArray foo;
-jint *intp = elements (foo);
-</programlisting>
-The name of this function may change in the future.</para>
-<para>
-There are a number of typedefs which correspond to typedefs from JNI.
-Each is the type of an array holding objects of the appropriate type:
-<programlisting>
-typedef __JArray *jarray;
-typedef JArray&lt;jobject&gt; *jobjectArray;
-typedef JArray&lt;jboolean&gt; *jbooleanArray;
-typedef JArray&lt;jbyte&gt; *jbyteArray;
-typedef JArray&lt;jchar&gt; *jcharArray;
-typedef JArray&lt;jshort&gt; *jshortArray;
-typedef JArray&lt;jint&gt; *jintArray;
-typedef JArray&lt;jlong&gt; *jlongArray;
-typedef JArray&lt;jfloat&gt; *jfloatArray;
-typedef JArray&lt;jdouble&gt; *jdoubleArray;
-</programlisting>
-</para>
-<para>
- You can create an array of objects using this function:
-<funcsynopsis>
- <funcdef>jobjectArray <function>JvNewObjectArray</function></funcdef>
- <paramdef>jint <parameter>length</parameter></paramdef>
- <paramdef>jclass <parameter>klass</parameter></paramdef>
- <paramdef>jobject <parameter>init</parameter></paramdef>
- </funcsynopsis>
- Here <parameter>klass</parameter> is the type of elements of the array;
- <parameter>init</parameter> is the initial
- value to be put into every slot in the array.
-</para>
-<para>
-For each primitive type there is a function which can be used
- to create a new array holding that type. The name of the function
- is of the form
- `<literal>JvNew&lt;<replaceable>Type</replaceable>&gt;Array</literal>',
- where `&lt;<replaceable>Type</replaceable>&gt;' is the name of
- the primitive type, with its initial letter in upper-case. For
- instance, `<literal>JvNewBooleanArray</literal>' can be used to create
- a new array of booleans.
- Each such function follows this example:
-<funcsynopsis>
- <funcdef>jbooleanArray <function>JvNewBooleanArray</function></funcdef>
- <paramdef>jint <parameter>length</parameter></paramdef>
-</funcsynopsis>
-</para>
-<para>
-<funcsynopsis>
- <funcdef>jsize <function>JvGetArrayLength</function></funcdef>
- <paramdef>jarray <parameter>array</parameter></paramdef>
- </funcsynopsis>
- Returns the length of <parameter>array</parameter>.</para>
-</sect1>
-
-<sect1><title>Methods</title>
-
-<para>
-Java methods are mapped directly into C++ methods.
-The header files generated by <literal>gcjh</literal>
-include the appropriate method definitions.
-Basically, the generated methods have the same names and
-<quote>corresponding</quote> types as the Java methods,
-and are called in the natural manner.</para>
-
-<sect2><title>Overloading</title>
-<para>
-Both Java and C++ provide method overloading, where multiple
-methods in a class have the same name, and the correct one is chosen
-(at compile time) depending on the argument types.
-The rules for choosing the correct method are (as expected) more complicated
-in C++ than in Java, but given a set of overloaded methods
-generated by <literal>gcjh</literal> the C++ compiler will choose
-the expected one.</para>
-<para>
-Common assemblers and linkers are not aware of C++ overloading,
-so the standard implementation strategy is to encode the
-parameter types of a method into its assembly-level name.
-This encoding is called <firstterm>mangling</firstterm>,
-and the encoded name is the <firstterm>mangled name</firstterm>.
-The same mechanism is used to implement Java overloading.
-For C++/Java interoperability, it is important that both the Java
-and C++ compilers use the <emphasis>same</emphasis> encoding scheme.
-</para>
-</sect2>
-
-<sect2><title>Static methods</title>
-<para>
-Static Java methods are invoked in <acronym>CNI</acronym> using the standard
-C++ syntax, using the `<literal>::</literal>' operator rather
-than the `<literal>.</literal>' operator. For example:
-</para>
-<programlisting>
-jint i = java::lang::Math::round((jfloat) 2.3);
-</programlisting>
-<para>
-<!-- FIXME this next sentence seems ungammatical jsm -->
-Defining a static native method uses standard C++ method
-definition syntax. For example:
-<programlisting>
-#include &lt;java/lang/Integer.h&gt;
-java::lang::Integer*
-java::lang::Integer::getInteger(jstring str)
-{
- ...
-}
-</programlisting>
-</sect2>
-
-<sect2><title>Object Constructors</title>
-<para>
-Constructors are called implicitly as part of object allocation
-using the <literal>new</literal> operator. For example:
-<programlisting>
-java::lang::Int x = new java::lang::Int(234);
-</programlisting>
-</para>
-<para>
-<!-- FIXME rewrite needed here, mine may not be good jsm -->
-Java does not allow a constructor to be a native method.
-Instead, you could define a private method which
-you can have the constructor call.
-</para>
-</sect2>
-
-<sect2><title>Instance methods</title>
-<para>
-<!-- FIXME next para week, I would remove a few words from some sentences jsm -->
-Virtual method dispatch is handled essentially the same way
-in C++ and Java -- <abbrev>i.e.</abbrev> by doing an
-indirect call through a function pointer stored in a per-class virtual
-function table. C++ is more complicated because it has to support
-multiple inheritance, but this does not effect Java classes.
-However, G++ has historically used a different calling convention
-that is not compatible with the one used by <acronym>gcj</acronym>.
-During 1999, G++ will switch to a new ABI that is compatible with
-<acronym>gcj</acronym>. Some platforms (including Linux) have already
-changed. On other platforms, you will have to pass
-the <literal>-fvtable-thunks</literal> flag to g++ when
-compiling <acronym>CNI</acronym> code. Note that you must also compile
-your C++ source code with <literal>-fno-rtti</literal>.
-</para>
-<para>
-Calling a Java instance method in <acronym>CNI</acronym> is done
-using the standard C++ syntax. For example:
-<programlisting>
- java::lang::Number *x;
- if (x-&gt;doubleValue() &gt; 0.0) ...
-</programlisting>
-</para>
-<para>
-Defining a Java native instance method is also done the natural way:
-<programlisting>
-#include &lt;java/lang/Integer.h&gt;
-jdouble
-java::lang:Integer::doubleValue()
-{
- return (jdouble) value;
-}
-</programlisting>
-</para>
-</sect2>
-
-<sect2><title>Interface method calls</title>
-<para>
-In Java you can call a method using an interface reference.
-This is not yet supported in <acronym>CNI</acronym>.</para>
-</sect2>
-</sect1>
-
-<sect1><title>Object allocation</title>
-
-<para>
-New Java objects are allocated using a
-<firstterm>class-instance-creation-expression</firstterm>:
-<programlisting>
-new <replaceable>Type</replaceable> ( <replaceable>arguments</replaceable> )
-</programlisting>
-The same syntax is used in C++. The main difference is that
-C++ objects have to be explicitly deleted; in Java they are
-automatically deleted by the garbage collector.
-Using <acronym>CNI</acronym>, you can allocate a new object
-using standard C++ syntax. The C++ compiler is smart enough to
-realize the class is a Java class, and hence it needs to allocate
-memory from the garbage collector. If you have overloaded
-constructors, the compiler will choose the correct one
-using standard C++ overload resolution rules. For example:
-<programlisting>
-java::util::Hashtable *ht = new java::util::Hashtable(120);
-</programlisting>
-</para>
-<para>
-<funcsynopsis>
- <funcdef>void *<function>_Jv_AllocBytes</function></funcdef>
- <paramdef>jsize <parameter>size</parameter></paramdef>
-</funcsynopsis>
- Allocate <parameter>size</parameter> bytes. This memory is not
- scanned by the garbage collector. However, it will be freed by
-the GC if no references to it are discovered.
-</para>
-</sect1>
-
-<sect1><title>Interfaces</title>
-<para>
-A Java class can <firstterm>implement</firstterm> zero or more
-<firstterm>interfaces</firstterm>, in addition to inheriting from
-a single base class.
-An interface is a collection of constants and method specifications;
-it is similar to the <firstterm>signatures</firstterm> available
-as a G++ extension. An interface provides a subset of the
-functionality of C++ abstract virtual base classes, but they
-are currently implemented differently.
-CNI does not currently provide any support for interfaces,
-or calling methods from an interface pointer.
-This is partly because we are planning to re-do how
-interfaces are implemented in <acronym>gcj</acronym>.
-</para>
-</sect1>
-
-<sect1><title>Strings</title>
-<para>
-<acronym>CNI</acronym> provides a number of utility functions for
-working with Java <literal>String</literal> objects.
-The names and interfaces are analogous to those of <acronym>JNI</acronym>.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef>jstring <function>JvNewString</function></funcdef>
- <paramdef>const jchar *<parameter>chars</parameter></paramdef>
- <paramdef>jsize <parameter>len</parameter></paramdef>
- </funcsynopsis>
- Creates a new Java String object, where
- <parameter>chars</parameter> are the contents, and
- <parameter>len</parameter> is the number of characters.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef>jstring <function>JvNewStringLatin1</function></funcdef>
- <paramdef>const char *<parameter>bytes</parameter></paramdef>
- <paramdef>jsize <parameter>len</parameter></paramdef>
- </funcsynopsis>
- Creates a new Java String object, where <parameter>bytes</parameter>
- are the Latin-1 encoded
- characters, and <parameter>len</parameter> is the length of
- <parameter>bytes</parameter>, in bytes.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef>jstring <function>JvNewStringLatin1</function></funcdef>
- <paramdef>const char *<parameter>bytes</parameter></paramdef>
- </funcsynopsis>
- Like the first JvNewStringLatin1, but computes <parameter>len</parameter>
- using <literal>strlen</literal>.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef>jstring <function>JvNewStringUTF</function></funcdef>
- <paramdef>const char *<parameter>bytes</parameter></paramdef>
- </funcsynopsis>
- Creates a new Java String object, where <parameter>bytes</parameter> are
- the UTF-8 encoded characters of the string, terminated by a null byte.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef>jchar *<function>JvGetStringChars</function></funcdef>
- <paramdef>jstring <parameter>str</parameter></paramdef>
- </funcsynopsis>
- Returns a pointer to the array of characters which make up a string.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef> int <function>JvGetStringUTFLength</function></funcdef>
- <paramdef>jstring <parameter>str</parameter></paramdef>
- </funcsynopsis>
- Returns number of bytes required to encode contents
- of <parameter>str</parameter> as UTF-8.
-</para>
-
-<para>
-<funcsynopsis>
- <funcdef> jsize <function>JvGetStringUTFRegion</function></funcdef>
- <paramdef>jstring <parameter>str</parameter></paramdef>
- <paramdef>jsize <parameter>start</parameter></paramdef>
- <paramdef>jsize <parameter>len</parameter></paramdef>
- <paramdef>char *<parameter>buf</parameter></paramdef>
- </funcsynopsis>
- This puts the UTF-8 encoding of a region of the
- string <parameter>str</parameter> into
- the buffer <parameter>buf</parameter>.
- The region of the string to fetch is specifued by
- <parameter>start</parameter> and <parameter>len</parameter>.
- It is assumed that <parameter>buf</parameter> is big enough
- to hold the result. Note
- that <parameter>buf</parameter> is <emphasis>not</emphasis> null-terminated.
-</para>
-</sect1>
-
-<sect1><title>Class Initialization</title>
-<para>
-Java requires that each class be automatically initialized at the time
-of the first active use. Initializing a class involves
-initializing the static fields, running code in class initializer
-methods, and initializing base classes. There may also be
-some implementation specific actions, such as allocating
-<classname>String</classname> objects corresponding to string literals in
-the code.</para>
-<para>
-The Gcj compiler inserts calls to <literal>JvInitClass</literal> (actually
-<literal>_Jv_InitClass</literal>) at appropriate places to ensure that a
-class is initialized when required. The C++ compiler does not
-insert these calls automatically - it is the programmer's
-responsibility to make sure classes are initialized. However,
-this is fairly painless because of the conventions assumed by the Java
-system.</para>
-<para>
-First, <literal>libgcj</literal> will make sure a class is initialized
-before an instance of that object is created. This is one
-of the responsibilities of the <literal>new</literal> operation. This is
-taken care of both in Java code, and in C++ code. (When the G++
-compiler sees a <literal>new</literal> of a Java class, it will call
-a routine in <literal>libgcj</literal> to allocate the object, and that
-routine will take care of initializing the class.) It follows that you can
-access an instance field, or call an instance (non-static)
-method and be safe in the knowledge that the class and all
-of its base classes have been initialized.</para>
-<para>
-Invoking a static method is also safe. This is because the
-Java compiler adds code to the start of a static method to make sure
-the class is initialized. However, the C++ compiler does not
-add this extra code. Hence, if you write a native static method
-using CNI, you are responsible for calling <literal>JvInitClass</literal>
-before doing anything else in the method (unless you are sure
-it is safe to leave it out).</para>
-<para>
-Accessing a static field also requires the class of the
-field to be initialized. The Java compiler will generate code
-to call <literal>_Jv_InitClass</literal> before getting or setting the field.
-However, the C++ compiler will not generate this extra code,
-so it is your responsibility to make sure the class is
-initialized before you access a static field.</para>
-</sect1>
-<sect1><title>Exception Handling</title>
-<para>
-While C++ and Java share a common exception handling framework,
-things are not yet perfectly integrated. The main issue is that the
-<quote>run-time type information</quote> facilities of the two
-languages are not integrated.</para>
-<para>
-Still, things work fairly well. You can throw a Java exception from
-C++ using the ordinary <literal>throw</literal> construct, and this
-exception can be caught by Java code. Similarly, you can catch an
-exception thrown from Java using the C++ <literal>catch</literal>
-construct.
-<para>
-Note that currently you cannot mix C++ catches and Java catches in
-a single C++ translation unit. We do intend to fix this eventually.
-</para>
-<para>
-Here is an example:
-<programlisting>
-if (i >= count)
- throw new java::lang::IndexOutOfBoundsException();
-</programlisting>
-</para>
-</sect1>
-
-<sect1><title>Synchronization</title>
-<para>
-Each Java object has an implicit monitor.
-The Java VM uses the instruction <literal>monitorenter</literal> to acquire
-and lock a monitor, and <literal>monitorexit</literal> to release it.
-The JNI has corresponding methods <literal>MonitorEnter</literal>
-and <literal>MonitorExit</literal>. The corresponding CNI macros
-are <literal>JvMonitorEnter</literal> and <literal>JvMonitorExit</literal>.
-</para>
-<para>
-The Java source language does not provide direct access to these primitives.
-Instead, there is a <literal>synchronized</literal> statement that does an
-implicit <literal>monitorenter</literal> before entry to the block,
-and does a <literal>monitorexit</literal> on exit from the block.
-Note that the lock has to be released even the block is abnormally
-terminated by an exception, which means there is an implicit
-<literal>try</literal>-<literal>finally</literal>.
-</para>
-<para>
-From C++, it makes sense to use a destructor to release a lock.
-CNI defines the following utility class.
-<programlisting>
-class JvSynchronize() {
- jobject obj;
- JvSynchronize(jobject o) { obj = o; JvMonitorEnter(o); }
- ~JvSynchronize() { JvMonitorExit(obj); }
-};
-</programlisting>
-The equivalent of Java's:
-<programlisting>
-synchronized (OBJ) { CODE; }
-</programlisting>
-can be simply expressed:
-<programlisting>
-{ JvSynchronize dummy(OBJ); CODE; }
-</programlisting>
-</para>
-<para>
-Java also has methods with the <literal>synchronized</literal> attribute.
-This is equivalent to wrapping the entire method body in a
-<literal>synchronized</literal> statement.
-(Alternatively, an implementation could require the caller to do
-the synchronization. This is not practical for a compiler, because
-each virtual method call would have to test at run-time if
-synchronization is needed.) Since in <literal>gcj</literal>
-the <literal>synchronized</literal> attribute is handled by the
-method implementation, it is up to the programmer
-of a synchronized native method to handle the synchronization
-(in the C++ implementation of the method).
-In otherwords, you need to manually add <literal>JvSynchronize</literal>
-in a <literal>native synchornized</literal> method.</para>
-</sect1>
-
-<sect1><title>Reflection</title>
-<para>The types <literal>jfieldID</literal> and <literal>jmethodID</literal>
-are as in JNI.</para>
-<para>
-The function <literal>JvFromReflectedField</literal>,
-<literal>JvFromReflectedMethod</literal>,
-<literal>JvToReflectedField</literal>, and
-<literal>JvToFromReflectedMethod</literal> (as in Java 2 JNI)
-will be added shortly, as will other functions corresponding to JNI.</para>
-
-<sect1><title>Using gcjh</title>
-<para>
- The <command>gcjh</command> is used to generate C++ header files from
- Java class files. By default, <command>gcjh</command> generates
- a relatively straightforward C++ header file. However, there
- are a few caveats to its use, and a few options which can be
- used to change how it operates:
-</para>
-<variablelist>
-<varlistentry>
-<term><literal>--classpath</literal> <replaceable>path</replaceable></term>
-<term><literal>--CLASSPATH</literal> <replaceable>path</replaceable></term>
-<term><literal>-I</literal> <replaceable>dir</replaceable></term>
-<listitem><para>
- These options can be used to set the class path for gcjh.
- Gcjh searches the class path the same way the compiler does;
- these options have their familiar meanings.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-d <replaceable>directory</replaceable></literal></term>
-<listitem><para>
-Puts the generated <literal>.h</literal> files
-beneath <replaceable>directory</replaceable>.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-o <replaceable>file</replaceable></literal></term>
-<listitem><para>
- Sets the name of the <literal>.h</literal> file to be generated.
- By default the <literal>.h</literal> file is named after the class.
- This option only really makes sense if just a single class file
- is specified.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>--verbose</literal></term>
-<listitem><para>
- gcjh will print information to stderr as it works.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-M</literal></term>
-<term><literal>-MM</literal></term>
-<term><literal>-MD</literal></term>
-<term><literal>-MMD</literal></term>
-<listitem><para>
- These options can be used to generate dependency information
- for the generated header file. They work the same way as the
- corresponding compiler options.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-prepend <replaceable>text</replaceable></literal></term>
-<listitem><para>
-This causes the <replaceable>text</replaceable> to be put into the generated
- header just after class declarations (but before declaration
- of the current class). This option should be used with caution.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-friend <replaceable>text</replaceable></literal></term>
-<listitem><para>
-This causes the <replaceable>text</replaceable> to be put into the class
-declaration after a <literal>friend</literal> keyword.
-This can be used to declare some
- other class or function to be a friend of this class.
- This option should be used with caution.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-add <replaceable>text</replaceable></literal></term>
-<listitem><para>
-The <replaceable>text</replaceable> is inserted into the class declaration.
-This option should be used with caution.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><literal>-append <replaceable>text</replaceable></literal></term>
-<listitem><para>
-The <replaceable>text</replaceable> is inserted into the header file
-after the class declaration. One use for this is to generate
-inline functions. This option should be used with caution.
-</listitem>
-</varlistentry>
-</variablelist>
-<para>
-All other options not beginning with a <literal>-</literal> are treated
-as the names of classes for which headers should be generated.</para>
-<para>
-gcjh will generate all the required namespace declarations and
-<literal>#include</literal>'s for the header file.
-In some situations, gcjh will generate simple inline member
-functions. Note that, while gcjh puts <literal>#pragma
-interface</literal> in the generated header file, you should
-<emphasis>not</emphasis> put <literal>#pragma implementation</literal>
-into your C++ source file. If you do, duplicate definitions of
-inline functions will sometimes be created, leading to link-time
-errors.
-</para>
-<para>
-There are a few cases where gcjh will fail to work properly:</para>
-<para>
-gcjh assumes that all the methods and fields of a class have ASCII
-names. The C++ compiler cannot correctly handle non-ASCII
-identifiers. gcjh does not currently diagnose this problem.</para>
-<para>
-gcjh also cannot fully handle classes where a field and a method have
-the same name. If the field is static, an error will result.
-Otherwise, the field will be renamed in the generated header; `__'
-will be appended to the field name.</para>
-<para>
-Eventually we hope to change the C++ compiler so that these
-restrictions can be lifted.</para>
-</sect1>
-
-</article>
diff --git a/libjava/exception.cc b/libjava/exception.cc
deleted file mode 100644
index 30ef55c078c..00000000000
--- a/libjava/exception.cc
+++ /dev/null
@@ -1,196 +0,0 @@
-// Functions for Exception Support for Java.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include "exception"
-#include <stddef.h>
-#include <stdlib.h>
-
-#include <java/lang/Class.h>
-#include <java/lang/NullPointerException.h>
-#include <gcj/cni.h>
-#include <jvm.h>
-
-// eh-common.h needs gansidecl.h.
-#include "gansidecl.h"
-#include "eh-common.h"
-
-typedef struct {
- __eh_info eh_info;
- void *value;
-} java_eh_info;
-
-
-/* Language-specific EH info pointer, throw routine, and language/version
- info routines. All defined in libgcc2. */
-
-extern "C" java_eh_info **__get_eh_info ();
-extern "C" void __throw () __attribute__ ((__noreturn__));
-extern "C" void __sjthrow () __attribute__ ((__noreturn__));
-extern "C" short __get_eh_table_version (void *table);
-extern "C" short __get_eh_table_language (void *table);
-extern "C" void *__get_eh_context ();
-
-extern "C" void *
-_Jv_type_matcher (java_eh_info *info, void* match_info,
- void *exception_table)
-{
-#ifndef SJLJ_EXCEPTIONS
- /* No exception table implies the old style mechanism, so don't check. */
- if (exception_table != NULL
- && __get_eh_table_language (exception_table) != EH_LANG_Java)
- return NULL;
-#endif
-
- /* we don't worry about version info yet, there is only one version! */
-
- if (match_info != NULL)
- {
- // The match_info is either a (java::lang::Class*) or
- // match_info is one more than a (Utf8Const*).
- if (sizeof(void*) != sizeof(size_t))
- abort();
- size_t mi = (size_t) match_info;
- if ((mi & 1) != 0)
- match_info = _Jv_FindClass ((Utf8Const*) (mi - 1), NULL);
- if (! _Jv_IsInstanceOf ((jobject) info->value, (jclass) match_info))
- return NULL;
- }
-
- return info->value;
-}
-
-/* Compiler hook to return a pointer to java exception object. The value
- is cleared, so if the exception needs to be rethrown, it should be set
- again */
-
-extern "C" void *
-_Jv_exception_info (void)
-{
- java_eh_info *info = *(__get_eh_info ());
- void *ptr;
-
- if (info == NULL)
- abort ();
-
- ptr = info->value;
-
- /* clear the value so another throw is an error */
- info->value = NULL;
-
- return ptr;
-}
-
-
-
-/* Allocate an exception info structure for java. Called the first time
- an exception is thrown. */
-
-extern "C" void
-_Jv_eh_alloc ()
-{
- /* FIXME: we should use _Jv_AllocBytes here. However, libgcc2
- apparently can sometimes free() this value itself. */
- java_eh_info *p = (java_eh_info *) malloc (sizeof (java_eh_info));
- if (p == 0)
- terminate ();
-
- p->value = 0;
- java_eh_info ** info_ptr = __get_eh_info ();
-
- /* There should NOT be an exception info pointer already. */
- if (*info_ptr != NULL)
- abort ();
-
- *info_ptr = p;
-}
-
-/* Deallocate the current exception info structure. Called at shutdown time. */
-
-extern "C" void
-_Jv_eh_free ()
-{
- java_eh_info ** info_ptr = __get_eh_info ();
- if (*info_ptr == NULL)
- abort ();
-
- /* FIXME: ideally we should just let the GC handle this. */
- free (*info_ptr);
- *info_ptr = NULL;
-}
-
-/* Initialize an __eh_info structure with this libraries matching info. */
-
-extern "C" void
-_Jv_setup_eh_info (__eh_info *)
-{
-}
-
-/* Perform a throw, Java style. Throw will unwind through this call,
- so there better not be any handlers or exception thrown here. */
-
-extern "C" void
-_Jv_Throw (void *value)
-{
- if (value == NULL)
- value = (void *) new java::lang::NullPointerException ();
- java_eh_info *ehinfo = *(__get_eh_info ());
- if (ehinfo == NULL)
- {
- _Jv_eh_alloc ();
- ehinfo = *(__get_eh_info ());
- }
- ehinfo->eh_info.match_function = (__eh_matcher) _Jv_type_matcher;
- ehinfo->eh_info.language = EH_LANG_Java;
- ehinfo->eh_info.version = 1;
- ehinfo->value = value;
-
-/* We're happy with setjmp/longjmp exceptions or region-based
- exception handlers: entry points are provided here for both. */
-#ifdef SJLJ_EXCEPTIONS
- __sjthrow ();
-#else
- __throw ();
-#endif
-}
-
-#ifdef USE_WIN32_SIGNALLING
-
-// This is a mangled version of _Jv_Throw and __sjthrow except
-// rather than calling longjmp, it returns a pointer to the jmp buffer
-
-extern "C" int *
-win32_get_restart_frame (void *value)
-{
- struct eh_context *eh = (struct eh_context *)__get_eh_context ();
- void ***dhc = &eh->dynamic_handler_chain;
-
- java_eh_info *ehinfo = *(__get_eh_info ());
- if (ehinfo == NULL)
- {
- _Jv_eh_alloc ();
- ehinfo = *(__get_eh_info ());
- }
- ehinfo->eh_info.match_function = (__eh_matcher) _Jv_type_matcher;
- ehinfo->eh_info.language = EH_LANG_Java;
- ehinfo->eh_info.version = 1;
- ehinfo->value = value;
-
- // FIXME: Run clean ups?
-
- int *jmpbuf = (int*)&(*dhc)[2];
-
- *dhc = (void**)(*dhc)[0];
-
- return jmpbuf;
-}
-
-#endif /* USE_WIN32_SIGNALLING */
diff --git a/libjava/gcj/Makefile.am b/libjava/gcj/Makefile.am
deleted file mode 100644
index 35fc7eec67e..00000000000
--- a/libjava/gcj/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-
-gcjdir = $(includedir)/gcj
-gcj_HEADERS = array.h cni.h field.h javaprims.h method.h
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
deleted file mode 100644
index 26fec338ae7..00000000000
--- a/libjava/gcj/Makefile.in
+++ /dev/null
@@ -1,277 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-AR = @AR@
-AS = @AS@
-CC = @CC@
-COMPPATH = @COMPPATH@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DIRLTDL = @DIRLTDL@
-DIVIDESPEC = @DIVIDESPEC@
-DLLTOOL = @DLLTOOL@
-EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
-EXCEPTIONSPEC = @EXCEPTIONSPEC@
-EXEEXT = @EXEEXT@
-FORCELIBGCCSPEC = @FORCELIBGCCSPEC@
-GCDEPS = @GCDEPS@
-GCINCS = @GCINCS@
-GCLIBS = @GCLIBS@
-GCOBJS = @GCOBJS@
-GCSPEC = @GCSPEC@
-GCTESTSPEC = @GCTESTSPEC@
-INCLTDL = @INCLTDL@
-LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
-LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
-LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
-LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
-LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
-LIBLTDL = @LIBLTDL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-PERL = @PERL@
-RANLIB = @RANLIB@
-SYSDEP_SOURCES = @SYSDEP_SOURCES@
-SYSTEMSPEC = @SYSTEMSPEC@
-THREADDEPS = @THREADDEPS@
-THREADINCS = @THREADINCS@
-THREADLIBS = @THREADLIBS@
-THREADOBJS = @THREADOBJS@
-THREADSPEC = @THREADSPEC@
-VERSION = @VERSION@
-ZDEPS = @ZDEPS@
-ZINCS = @ZINCS@
-ZLIBS = @ZLIBS@
-ZLIBSPEC = @ZLIBSPEC@
-ZLIBTESTSPEC = @ZLIBTESTSPEC@
-here = @here@
-libgcj_basedir = @libgcj_basedir@
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-
-gcjdir = $(includedir)/gcj
-gcj_HEADERS = array.h cni.h field.h javaprims.h method.h
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_HEADER = ../include/config.h
-CONFIG_CLEAN_FILES =
-HEADERS = $(gcj_HEADERS)
-
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign gcj/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-install-gcjHEADERS: $(gcj_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(gcjdir)
- @list='$(gcj_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(gcjdir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(gcjdir)/$$p; \
- done
-
-uninstall-gcjHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(gcj_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(gcjdir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = gcj
-
-distdir: $(DISTFILES)
- here=`cd $(top_builddir) && pwd`; \
- top_distdir=`cd $(top_distdir) && pwd`; \
- distdir=`cd $(distdir) && pwd`; \
- cd $(top_srcdir) \
- && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign gcj/Makefile
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am: install-gcjHEADERS
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-gcjHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(HEADERS)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(gcjdir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-tags clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-tags distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: uninstall-gcjHEADERS install-gcjHEADERS tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libjava/gcj/array.h b/libjava/gcj/array.h
deleted file mode 100644
index 8b0a416d758..00000000000
--- a/libjava/gcj/array.h
+++ /dev/null
@@ -1,125 +0,0 @@
-// array.h - Header file for CNI arrays. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __GCJ_ARRAY_H__
-#define __GCJ_ARRAY_H__
-
-#include <java/lang/Object.h>
-
-extern "Java" {
-
-class __JArray : public java::lang::Object
-{
-public:
- // FIXME: we'd like this to be `const' but that causes problems with
- // the C++ compiler.
- jsize length;
- friend jsize JvGetArrayLength (__JArray*);
-};
-
-template<class T>
-class JArray : public __JArray
-{
- T data[0];
-public:
- friend T* elements<>(JArray<T>& x);
- friend T* elements<>(JArray<T>* x);
- // T* getData() { return data; }
- // T& operator[](jint i) { return data[i]; }
-};
-
-template<class T>
-inline T* elements(JArray<T>& x) { return x.data; }
-template<class T>
-inline T* elements(JArray<T>* x) { return x->data; }
-
-}; // end extern "Java"
-
-/* These typesdefs match those in JNI. */
-typedef __JArray *jarray;
-typedef JArray<jobject> *jobjectArray;
-typedef JArray<jboolean> *jbooleanArray;
-typedef JArray<jbyte> *jbyteArray;
-typedef JArray<jchar> *jcharArray;
-typedef JArray<jshort> *jshortArray;
-typedef JArray<jint> *jintArray;
-typedef JArray<jlong> *jlongArray;
-typedef JArray<jfloat> *jfloatArray;
-typedef JArray<jdouble> *jdoubleArray;
-typedef JArray<jstring> *jstringArray;
-
-extern class _Jv_PrimClass _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
- _Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
- _Jv_doubleClass, _Jv_voidClass;
-#define JvPrimClass(TYPE) ((jclass) & _Jv_##TYPE##Class)
-
-extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);
-extern "C" jobject _Jv_NewPrimArray (jclass eltype, jint count);
-
-extern inline jobjectArray
-JvNewObjectArray (jsize length, jclass cls, jobject init)
-{
- return _Jv_NewObjectArray (length, cls, init);
-}
-
-extern inline jcharArray
-JvNewCharArray (jint length)
-{
- return (jcharArray) _Jv_NewPrimArray (JvPrimClass (char), length);
-}
-
-extern inline jbooleanArray
-JvNewBooleanArray (jint length)
-{
- return (jbooleanArray) _Jv_NewPrimArray (JvPrimClass (boolean), length);
-}
-
-extern inline jbyteArray
-JvNewByteArray (jint length)
-{
- return (jbyteArray) _Jv_NewPrimArray (JvPrimClass (byte), length);
-}
-
-extern inline jshortArray
-JvNewShortArray (jint length)
-{
- return (jshortArray) _Jv_NewPrimArray (JvPrimClass (short), length);
-}
-
-extern inline jintArray
-JvNewIntArray (jint length)
-{
- return (jintArray) _Jv_NewPrimArray (JvPrimClass (int), length);
-}
-
-extern inline jlongArray
-JvNewLongArray (jint length)
-{
- return (jlongArray) _Jv_NewPrimArray (JvPrimClass (long), length);
-}
-
-extern inline jfloatArray
-JvNewFloatArray (jint length)
-{
- return (jfloatArray) _Jv_NewPrimArray (JvPrimClass (float), length);
-}
-
-extern inline jdoubleArray
-JvNewDoubleArray (jint length)
-{
- return (jdoubleArray) _Jv_NewPrimArray (JvPrimClass (double), length);
-}
-
-
-extern "C" jstringArray JvConvertArgv(int argc, const char **argv);
-
-inline jsize JvGetArrayLength (jarray array) { return array->length; }
-
-#endif /* __GCJ_ARRAY_H__ */
diff --git a/libjava/gcj/cni.h b/libjava/gcj/cni.h
deleted file mode 100644
index 1dacbd0810d..00000000000
--- a/libjava/gcj/cni.h
+++ /dev/null
@@ -1,133 +0,0 @@
-// gcj/cni.h -*- c++ -*-
-// This file describes the Cygnus Native Interface, CNI.
-// It provides a nicer interface to many of the things in gcj/javaprims.h.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __GCJ_CNI_H__
-#define __GCJ_CNI_H__
-
-#include <java/lang/Object.h>
-#include <java/lang/Class.h>
-
-#include <gcj/array.h>
-
-#include <string.h>
-
-extern inline jobject
-JvAllocObject (jclass cls)
-{
- return _Jv_AllocObject (cls, cls->size());
-}
-
-extern inline jobject
-JvAllocObject (jclass cls, jsize sz)
-{
- return _Jv_AllocObject (cls, sz);
-}
-
-extern "C" jstring _Jv_NewStringUTF (const char *bytes);
-extern "C" void _Jv_InitClass (jclass);
-
-extern inline void
-JvInitClass (jclass cls)
-{
- return _Jv_InitClass (cls);
-}
-
-extern inline jstring
-JvAllocString (jsize sz)
-{
- return _Jv_AllocString (sz);
-}
-
-extern inline jstring
-JvNewString (const jchar *chars, jsize len)
-{
- return _Jv_NewString (chars, len);
-}
-
-extern inline jstring
-JvNewStringLatin1 (const char *bytes, jsize len)
-{
- return _Jv_NewStringLatin1 (bytes, len);
-}
-
-extern inline jstring
-JvNewStringLatin1 (const char *bytes)
-{
- return _Jv_NewStringLatin1 (bytes, strlen (bytes));
-}
-
-extern inline jchar *
-_Jv_GetStringChars (jstring str)
-{
- return (jchar*)((char*) str->data + str->boffset);
-}
-
-extern inline jchar*
-JvGetStringChars (jstring str)
-{
- return _Jv_GetStringChars (str);
-}
-
-extern inline jsize
-JvGetStringUTFLength (jstring string)
-{
- return _Jv_GetStringUTFLength (string);
-}
-
-extern inline jsize
-JvGetStringUTFRegion (jstring str, jsize start, jsize len, char *buf)
-{
- return _Jv_GetStringUTFRegion (str, start, len, buf);
-}
-
-extern inline jstring
-JvNewStringUTF (const char *bytes)
-{
- return _Jv_NewStringUTF (bytes);
-}
-
-class JvSynchronize
-{
-private:
- jobject obj;
-public:
- JvSynchronize (const jobject &o) : obj (o)
- { _Jv_MonitorEnter (obj); }
- ~JvSynchronize ()
- { _Jv_MonitorExit (obj); }
-};
-
-#ifdef SJLJ_EXCEPTIONS
-#define _Jv_Throw _Jv_Sjlj_Throw
-#endif
-
-// Throw some exception.
-extern void JvThrow (jobject obj) __attribute__ ((__noreturn__));
-extern inline void
-JvThrow (jobject obj)
-{
- _Jv_Throw ((void *) obj);
-}
-
-/* Call malloc, but throw exception if insufficient memory. */
-extern inline void *
-JvMalloc (jsize size)
-{
- return _Jv_Malloc (size);
-}
-
-extern inline void
-JvFree (void *ptr)
-{
- return _Jv_Free (ptr);
-}
-#endif /* __GCJ_CNI_H__ */
diff --git a/libjava/gcj/field.h b/libjava/gcj/field.h
deleted file mode 100644
index 0ad381c321f..00000000000
--- a/libjava/gcj/field.h
+++ /dev/null
@@ -1,196 +0,0 @@
-// field.h - Header file for fieldID instances. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __GCJ_FIELD_H__
-#define __GCJ_FIELD_H__
-
-#include <java/lang/Class.h>
-#include <java/lang/reflect/Field.h>
-#include <java/lang/reflect/Modifier.h>
-
-#define _Jv_FIELD_UNRESOLVED_FLAG 0x8000
-#define _Jv_FIELD_CONSTANT_VALUE 0x4000
-
-struct _Jv_Field
-{
-#ifndef COMPACT_FIELDS
- struct _Jv_Utf8Const* name;
-#endif
-
- /* The type of the field, if isResolved().
- If !isResolved(): The fields's signature as a (Utf8Const*). */
- jclass type;
-
- _Jv_ushort flags;
-
-#ifdef COMPACT_FIELDS
- jshort nameIndex; /* offset in class's name table */
-#else
- _Jv_ushort bsize; /* not really needed ... */
-#endif
-
- union {
- jint boffset; /* offset in bytes for instance field */
- void* addr; /* address of static field */
- } u;
-
-#ifdef __cplusplus
- jboolean isResolved ()
- { return ! (flags & _Jv_FIELD_UNRESOLVED_FLAG); }
-
- public:
-
- int getOffset () { return u.boffset; }
-
- jobject getObjectField (jobject obj)
- { return *(jobject *)((char *)obj + getOffset ()); }
-
- jfieldID getNextField () { return this + 1; }
-
- jboolean isRef ()
- {
- if (!isResolved ())
- {
- char first = ((_Jv_Utf8Const*)type)->data[0];
- return first == '[' || first == 'L';
- }
- else
- {
- return ! type->isPrimitive ();
- }
- }
-
- jclass getClass ()
- {
- // We can't use JvAssert here because it is not in a public
- // header.
- // JvAssert (isResolved ());
- return type;
- }
-
- // Need to mask off all unknown/internal flags before returning.
- int getModifiers()
- {
- return flags & java::lang::reflect::Modifier::ALL_FLAGS;
- }
-
-#ifdef COMPACT_FIELDS
- _Jv_Utf8Const * getNameUtf8Const (jclass cls)
- { return clas->fieldNames + nameIndex; }
-#else
- _Jv_Utf8Const * getNameUtf8Const (jclass) { return name; }
-#endif
-#endif
-};
-
-#ifdef __cplusplus
-
-inline jbyte
-_Jv_GetStaticByteField (jclass, _Jv_Field* field)
-{
- return * (jbyte *) field->u.addr;
-}
-
-inline jshort
-_Jv_GetStaticShortField (jclass, _Jv_Field* field)
-{
- return * (jshort *) field->u.addr;
-}
-
-inline jint
-_Jv_GetStaticIntField (jclass, _Jv_Field* field)
-{
- return * (jint *) field->u.addr;
-}
-
-inline jlong
-_Jv_GetStaticLongField (jclass, _Jv_Field* field)
-{
- return * (jlong *) field->u.addr;
-}
-
-inline jobject
-_Jv_GetObjectField (jobject obj, _Jv_Field* field)
-{
- return field->getObjectField (obj);
-}
-
-inline jbyte
-_Jv_GetByteField (jobject obj, _Jv_Field* field)
-{
- return * (jbyte *) ((char*) obj + field->getOffset ());
-}
-
-inline jshort
-_Jv_GetShortField (jobject obj, _Jv_Field* field)
-{
- return * (jshort *) ((char*) obj + field->getOffset ());
-}
-inline jint
-_Jv_GetIntField (jobject obj, _Jv_Field* field)
-{
- return * (jint *) ((char*) obj + field->getOffset ());
-}
-inline jlong
-_Jv_GetLongField (jobject obj, _Jv_Field* field)
-{
- return * (jlong *) ((char*) obj + field->getOffset ());
-}
-
-extern inline jfieldID
-_Jv_FromReflectedField (java::lang::reflect::Field *field)
-{
- return (jfieldID) ((char *) field->declaringClass->fields + field->offset);
-}
-
-
-#ifdef __GCJ_CNI_H__
-extern inline jfieldID
-JvGetFirstInstanceField (jclass klass)
-{
- return &(klass->fields[klass->static_field_count]);
-}
-
-extern inline jint
-JvNumInstanceFields (jclass klass)
-{
- return klass->field_count - klass->static_field_count;
-}
-
-extern inline jfieldID
-JvGetFirstStaticField (jclass klass)
-{
- return &(klass->fields[0]);
-}
-
-extern inline jint
-JvNumStaticFields (jclass klass)
-{
- return klass->static_field_count;
-}
-
-extern inline jboolean
-JvFieldIsRef (jfieldID field)
-{
- // gnu.gcj.RawData.class is _CL_Q33gnu3gcj7RawData
- extern java::lang::Class _CL_Q33gnu3gcj7RawData;
- return field->isRef () && field->type != &_CL_Q33gnu3gcj7RawData;
-}
-
-extern inline jobject
-JvGetObjectField (jobject obj, _Jv_Field* field)
-{
- return _Jv_GetObjectField (obj, field);
-}
-#endif /* defined (__GCJ_CNI_H__) */
-
-#endif /* __cplusplus */
-
-#endif /* __GCJ_FIELD_H */
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
deleted file mode 100644
index e3d01abf1ec..00000000000
--- a/libjava/gcj/javaprims.h
+++ /dev/null
@@ -1,426 +0,0 @@
-// javaprims.h - Main external header file for libgcj. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVAPRIMS_H__
-#define __JAVAPRIMS_H__
-
-// FIXME: this is a hack until we get a proper gcjh.
-// It is needed to work around system header files that define TRUE
-// and FALSE.
-#undef TRUE
-#define TRUE TRUE
-#undef FALSE
-#define FALSE FALSE
-
-// To force selection of correct types that will mangle consistently
-// across platforms.
-extern "Java"
-{
- typedef __java_byte jbyte;
- typedef __java_short jshort;
- typedef __java_int jint;
- typedef __java_long jlong;
- typedef __java_float jfloat;
- typedef __java_double jdouble;
- typedef __java_char jchar;
- typedef __java_boolean jboolean;
- typedef jint jsize;
-
- // The following class declarations are automatically generated by
- // the `classes.pl' script.
- namespace java
- {
- namespace io
- {
- class BlockDataException;
- class BufferedInputStream;
- class BufferedOutputStream;
- class BufferedReader;
- class BufferedWriter;
- class ByteArrayInputStream;
- class ByteArrayOutputStream;
- class CharArrayReader;
- class CharArrayWriter;
- class CharConversionException;
- class DataInput;
- class DataInputStream;
- class DataOutput;
- class DataOutputStream;
- class EOFException;
- class Externalizable;
- class File;
- class FileDescriptor;
- class FileInputStream;
- class FileNotFoundException;
- class FileOutputStream;
- class FileReader;
- class FileWriter;
- class FilenameFilter;
- class FilterInputStream;
- class FilterOutputStream;
- class FilterReader;
- class FilterWriter;
- class IOException;
- class InputStream;
- class InputStreamReader;
- class InterfaceComparator;
- class InterruptedIOException;
- class InvalidClassException;
- class InvalidObjectException;
- class LineNumberInputStream;
- class LineNumberReader;
- class MemberComparator;
- class NotActiveException;
- class NotSerializableException;
- class ObjectInput;
- class ObjectInputStream;
- class ObjectInputStream$GetField;
- class ObjectInputValidation;
- class ObjectOutput;
- class ObjectOutputStream;
- class ObjectOutputStream$PutField;
- class ObjectStreamClass;
- class ObjectStreamConstants;
- class ObjectStreamException;
- class ObjectStreamField;
- class OptionalDataException;
- class OutputStream;
- class OutputStreamWriter;
- class PipedInputStream;
- class PipedOutputStream;
- class PipedReader;
- class PipedWriter;
- class PrintStream;
- class PrintWriter;
- class PushbackInputStream;
- class PushbackReader;
- class RandomAccessFile;
- class Reader;
- class Replaceable;
- class Resolvable;
- class SequenceInputStream;
- class Serializable;
- class SerializablePermission;
- class StreamCorruptedException;
- class StreamTokenizer;
- class StringBufferInputStream;
- class StringReader;
- class StringWriter;
- class SyncFailedException;
- class UTFDataFormatException;
- class UnsupportedEncodingException;
- class ValidatorAndPriority;
- class WriteAbortedException;
- class Writer;
- };
-
- namespace lang
- {
- class AbstractMethodError;
- class ArithmeticException;
- class ArrayIndexOutOfBoundsException;
- class ArrayStoreException;
- class Boolean;
- class Byte;
- class CPlusPlusDemangler;
- class Character;
- class Class;
- class ClassCastException;
- class ClassCircularityError;
- class ClassFormatError;
- class ClassLoader;
- class ClassNotFoundException;
- class CloneNotSupportedException;
- class Cloneable;
- class Comparable;
- class Compiler;
- class ConcreteProcess;
- class Double;
- class Error;
- class Exception;
- class ExceptionInInitializerError;
- class Float;
- class IllegalAccessError;
- class IllegalAccessException;
- class IllegalArgumentException;
- class IllegalMonitorStateException;
- class IllegalStateException;
- class IllegalThreadStateException;
- class IncompatibleClassChangeError;
- class IndexOutOfBoundsException;
- class InstantiationError;
- class InstantiationException;
- class Integer;
- class InternalError;
- class InterruptedException;
- class LinkageError;
- class Long;
- class Math;
- class NegativeArraySizeException;
- class NoClassDefFoundError;
- class NoSuchFieldError;
- class NoSuchFieldException;
- class NoSuchMethodError;
- class NoSuchMethodException;
- class NullPointerException;
- class Number;
- class NumberFormatException;
- class Object;
- class OutOfMemoryError;
- class Process;
- class Runnable;
- class Runtime;
- class RuntimeException;
- class SecurityException;
- class SecurityManager;
- class Short;
- class StackOverflowError;
- class String;
- class StringBuffer;
- class StringIndexOutOfBoundsException;
- class System;
- class Thread;
- class ThreadDeath;
- class ThreadGroup;
- class Throwable;
- class UnknownError;
- class UnsatisfiedLinkError;
- class UnsupportedOperationException;
- class VerifyError;
- class VirtualMachineError;
- class Void;
- namespace reflect
- {
- class AccessibleObject;
- class Array;
- class Constructor;
- class Field;
- class InvocationTargetException;
- class Member;
- class Method;
- class Modifier;
- };
- };
-
- namespace util
- {
- class AbstractCollection;
- class AbstractList;
- class AbstractList$SubList;
- class AbstractSet;
- class Arrays;
- class Arrays$ListImpl;
- class BasicMapEntry;
- class BitSet;
- class Bucket;
- class Bucket$Node;
- class Calendar;
- class Collection;
- class Comparator;
- class ConcurrentModificationException;
- class Date;
- class Dictionary;
- class EmptyStackException;
- class Enumeration;
- class EventListener;
- class EventObject;
- class GregorianCalendar;
- class Hashtable;
- class Hashtable$HashtableCollection;
- class Hashtable$HashtableEntry;
- class Hashtable$HashtableEnumeration;
- class Hashtable$HashtableIterator;
- class Hashtable$HashtableSet;
- class Iterator;
- class List;
- class ListIterator;
- class ListResourceBundle;
- class Locale;
- class Map;
- class Map$Entry;
- class MissingResourceException;
- class NoSuchElementException;
- class Observable;
- class Observer;
- class Properties;
- class PropertyResourceBundle;
- class Random;
- class ResourceBundle;
- class Set;
- class SimpleTimeZone;
- class Stack;
- class StringTokenizer;
- class TimeZone;
- class TooManyListenersException;
- class Vector;
- class VectorEnumeration;
- namespace jar
- {
- class Attributes;
- class JarEntry;
- class JarException;
- class JarFile;
- class JarFile$JarEnumeration;
- class JarInputStream;
- class JarOutputStream;
- class Manifest;
- };
-
- namespace zip
- {
- class Adler32;
- class CRC32;
- class CheckedInputStream;
- class CheckedOutputStream;
- class Checksum;
- class DataFormatException;
- class Deflater;
- class DeflaterOutputStream;
- class GZIPInputStream;
- class GZIPOutputStream;
- class Inflater;
- class InflaterInputStream;
- class ZipConstants;
- class ZipEntry;
- class ZipEnumeration;
- class ZipException;
- class ZipFile;
- class ZipInputStream;
- class ZipOutputStream;
- };
- };
- };
- namespace java
- {
- namespace io
- {
- class BlockDataException;
- class BufferedInputStream;
- class BufferedOutputStream;
- class BufferedReader;
- class BufferedWriter;
- class ByteArrayInputStream;
- class ByteArrayOutputStream;
- class CharArrayReader;
- class CharArrayWriter;
- class CharConversionException;
- class DataInput;
- class DataInputStream;
- class DataOutput;
- class DataOutputStream;
- class EOFException;
- class Externalizable;
- class File;
- class FileDescriptor;
- class FileInputStream;
- class FileNotFoundException;
- class FileOutputStream;
- class FileReader;
- class FileWriter;
- class FilenameFilter;
- class FilterInputStream;
- class FilterOutputStream;
- class FilterReader;
- class FilterWriter;
- class IOException;
- class InputStream;
- class InputStreamReader;
- class InterfaceComparator;
- class InterruptedIOException;
- class InvalidClassException;
- class InvalidObjectException;
- class LineNumberInputStream;
- class LineNumberReader;
- class MemberComparator;
- class NotActiveException;
- class NotSerializableException;
- class ObjectInput;
- class ObjectInputStream;
- class ObjectInputStream$GetField;
- class ObjectInputValidation;
- class ObjectOutput;
- class ObjectOutputStream;
- class ObjectOutputStream$PutField;
- class ObjectStreamClass;
- class ObjectStreamConstants;
- class ObjectStreamException;
- class ObjectStreamField;
- class OptionalDataException;
- class OutputStream;
- class OutputStreamWriter;
- class PipedInputStream;
- class PipedOutputStream;
- class PipedReader;
- class PipedWriter;
- class PrintStream;
- class PrintWriter;
- class PushbackInputStream;
- class PushbackReader;
- class RandomAccessFile;
- class Reader;
- class Replaceable;
- class Resolvable;
- class SequenceInputStream;
- class Serializable;
- class SerializablePermission;
- class StreamCorruptedException;
- class StreamTokenizer;
- class StringBufferInputStream;
- class StringReader;
- class StringWriter;
- class SyncFailedException;
- class UTFDataFormatException;
- class UnsupportedEncodingException;
- class ValidatorAndPriority;
- class WriteAbortedException;
- class Writer;
- };
- };
-};
-
-typedef struct java::lang::Object* jobject;
-typedef class java::lang::Class* jclass;
-typedef class java::lang::Throwable* jthrowable;
-typedef class java::lang::String* jstring;
-struct _Jv_JNIEnv;
-
-typedef struct _Jv_Field *jfieldID;
-typedef struct _Jv_Method *jmethodID;
-
-extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
-extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
-extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
-extern "C" jstring _Jv_NewString (const jchar*, jsize)
- __attribute__((__malloc__));
-extern "C" jchar* _Jv_GetStringChars (jstring str);
-extern "C" jint _Jv_MonitorEnter (jobject);
-extern "C" jint _Jv_MonitorExit (jobject);
-extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
- __attribute__((__malloc__));
-extern "C" jsize _Jv_GetStringUTFLength (jstring);
-extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
-
-extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
-extern "C" void _Jv_Sjlj_Throw (void *) __attribute__ ((__noreturn__));
-extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
-extern "C" void* _Jv_Realloc (void *, jsize);
-extern "C" void _Jv_Free (void*);
-
-typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
-typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
-
-struct _Jv_Utf8Const
-{
- _Jv_ushort hash;
- _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
- char data[1]; /* In Utf8 format, with final '\0'. */
-};
-
-#endif /* __JAVAPRIMS_H__ */
diff --git a/libjava/gcj/method.h b/libjava/gcj/method.h
deleted file mode 100644
index d4246e41ef8..00000000000
--- a/libjava/gcj/method.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// method.h - Header file for methodID instances. -*- c++ -*-
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __GCJ_METHOD_H__
-#define __GCJ_METHOD_H__
-
-#include <java/lang/Class.h>
-
-extern inline jmethodID
-_Jv_FromReflectedMethod (java::lang::reflect::Method *method)
-{
- return (jmethodID)
- ((char *) method->declaringClass->methods + method->offset);
-}
-
-extern inline jmethodID
-_Jv_FromReflectedConstructor (java::lang::reflect::Constructor *constructor)
-{
- return (jmethodID)
- ((char *) constructor->declaringClass->methods + constructor->offset);
-}
-
-extern inline jint
-JvNumMethods (jclass klass)
-{
- return klass->method_count;
-}
-
-extern inline jmethodID
-JvGetFirstMethod (jclass klass)
-{
- return &klass->methods[0];
-}
-
-#endif /* __GCJ_METHOD_H__ */
diff --git a/libjava/gij.cc b/libjava/gij.cc
deleted file mode 100644
index 7d53beb2abb..00000000000
--- a/libjava/gij.cc
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-#include <config.h>
-
-#include <jvm.h>
-#include <gcj/cni.h>
-#include <java-props.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <java/lang/System.h>
-#include <java/util/Properties.h>
-
-static void
-help ()
-{
- printf ("Usage: gij [OPTION] ... CLASS [ARGS] ...\n");
- printf (" to interpret Java bytecodes, or\n");
- printf (" gij -jar [OPTION] ... JARFILE [ARGS] ...\n");
- printf (" to execute a jar file\n\n");
- printf (" -DVAR=VAL define property VAR with value VAL\n");
- printf (" --help print this help, then exit\n");
- printf (" --ms=NUMBER set initial heap size\n");
- printf (" --mx=NUMBER set maximum heap size\n");
- printf (" --version print version number, then exit\n");
- printf ("\nSee http://sources.redhat.com/java/ for information on reporting bugs\n");
- exit (0);
-}
-
-static void
-version ()
-{
- printf ("gij (GNU libgcj) version %s\n\n", VERSION);
- printf ("Copyright (C) 1999, 2000 Free Software Foundation.\n");
- printf ("This is free software; see the source for copying conditions. There is NO\n");
- printf ("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
- exit (0);
-}
-
-int
-main (int argc, const char **argv)
-{
- /* We rearrange ARGV so that all the -D options appear near the
- beginning. */
- int last_D_option = 0;
- bool jar_mode = false;
-
- int i;
- for (i = 1; i < argc; ++i)
- {
- const char *arg = argv[i];
-
- /* A non-option stops processing. */
- if (arg[0] != '-')
- break;
- /* A "--" stops processing. */
- if (! strcmp (arg, "--"))
- {
- ++i;
- break;
- }
-
- if (! strncmp (arg, "-D", 2))
- {
- argv[last_D_option++] = arg + 2;
- continue;
- }
-
- if (! strcmp (arg, "-jar"))
- {
- jar_mode = true;
- continue;
- }
-
- /* Allow both single or double hyphen for all remaining
- options. */
- if (arg[1] == '-')
- ++arg;
-
- if (! strcmp (arg, "-help"))
- help ();
- else if (! strcmp (arg, "-version"))
- version ();
- /* FIXME: use getopt and avoid the ugliness here.
- We at least need to handle the argument in a better way. */
- else if (! strncmp (arg, "-ms=", 4))
- _Jv_SetInitialHeapSize (arg + 4);
- else if (! strcmp (arg, "-ms"))
- {
- if (i >= argc - 1)
- {
- no_arg:
- fprintf (stderr, "gij: option requires an argument -- `%s'\n",
- argv[i]);
- fprintf (stderr, "Try `gij --help' for more information.\n");
- exit (1);
- }
- _Jv_SetInitialHeapSize (argv[++i]);
- }
- else if (! strncmp (arg, "-mx=", 4))
- _Jv_SetMaximumHeapSize (arg + 4);
- else if (! strcmp (arg, "-mx"))
- {
- if (i >= argc - 1)
- goto no_arg;
- _Jv_SetMaximumHeapSize (argv[++i]);
- }
- else
- {
- fprintf (stderr, "gij: unrecognized option -- `%s'\n", argv[i]);
- fprintf (stderr, "Try `gij --help' for more information.\n");
- exit (1);
- }
- }
-
- argv[last_D_option] = NULL;
- _Jv_Compiler_Properties = argv;
-
- if (argc - i < 1)
- {
- fprintf (stderr, "Usage: gij [OPTION] ... CLASS [ARGS] ...\n");
- fprintf (stderr, " to interpret Java bytecodes, or\n");
- fprintf (stderr, " gij -jar [OPTION] ... JARFILE [ARGS] ...\n");
- fprintf (stderr, " to execute a jar file\n");
- fprintf (stderr, "Try `gij --help' for more information.\n");
- exit (1);
- }
-
- _Jv_RunMain (argv[i], argc - i, argv + i, jar_mode);
-}
diff --git a/libjava/gnu/gcj/RawData.java b/libjava/gnu/gcj/RawData.java
deleted file mode 100644
index 341c82fc0c4..00000000000
--- a/libjava/gnu/gcj/RawData.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj;
-
-/** A type used to indicate special data used by native code that should not
- be marked by the garbage collector. */
-
-public final class RawData
-{
- private RawData() { }
-}
diff --git a/libjava/gnu/gcj/awt/BitMaskExtent.java b/libjava/gnu/gcj/awt/BitMaskExtent.java
deleted file mode 100644
index 884ab502dc9..00000000000
--- a/libjava/gnu/gcj/awt/BitMaskExtent.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.awt;
-
-/**
- * Simple transparent utility class that can be used to perform bit
- * mask extent calculations.
- */
-public final class BitMaskExtent
-{
- /** The number of the least significant bit of the bit mask extent. */
- public byte leastSignificantBit;
-
- /** The number of bits in the bit mask extent. */
- public byte bitWidth;
-
- /**
- * Set the bit mask. This will calculate and set the leastSignificantBit
- * and bitWidth fields.
- *
- * @see #leastSignificantBit
- * @see #bitWidth
- */
- public void setMask(long mask)
- {
- leastSignificantBit = 0;
- bitWidth = 0;
- if (mask == 0) return;
- long shiftMask = mask;
- for (; (shiftMask&1) == 0; shiftMask >>>=1) leastSignificantBit++;
- for (; (shiftMask&1) != 0; shiftMask >>>=1) bitWidth++;
-
- if (shiftMask != 0)
- throw new IllegalArgumentException("mask must be continuous");
- }
-
- /**
- * Calculate the bit mask based on the values of the
- * leastSignificantBit and bitWidth fields.
- */
- public long toMask()
- {
- return ((1<<bitWidth)-1) << leastSignificantBit;
- }
-}
diff --git a/libjava/gnu/gcj/awt/Buffers.java b/libjava/gnu/gcj/awt/Buffers.java
deleted file mode 100644
index ca08710a14b..00000000000
--- a/libjava/gnu/gcj/awt/Buffers.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.awt;
-
-import java.awt.image.*;
-
-/**
- * Utility class for creating and accessing data buffers of arbitrary
- * data types.
- */
-public final class Buffers
-{
- /**
- * Create a data buffer of a particular type.
- *
- * @param dataType the desired data type of the buffer.
- * @param data an array containing data, or null
- * @param size the size of the data buffer bank
- */
- public static DataBuffer createBuffer(int dataType, Object data,
- int size)
- {
- if (data == null) return createBuffer(dataType, size, 1);
-
- return createBufferFromData(dataType, data, size);
- }
-
-
- /**
- * Create a data buffer of a particular type.
- *
- * @param dataType the desired data type of the buffer.
- * @param size the size of the data buffer bank
- */
- public static DataBuffer createBuffer(int dataType, int size) {
- return createBuffer(dataType, size, 1);
- }
-
- /**
- * Create a data buffer of a particular type.
- *
- * @param dataType the desired data type of the buffer.
- * @param size the size of the data buffer bank
- * @param numBanks the number of banks the buffer should have
- */
- public static DataBuffer createBuffer(int dataType, int size, int numBanks)
- {
- switch (dataType)
- {
- case DataBuffer.TYPE_BYTE:
- return new DataBufferByte(size, numBanks);
- case DataBuffer.TYPE_USHORT:
- return new DataBufferUShort(size, numBanks);
- case DataBuffer.TYPE_INT:
- return new DataBufferInt(size, numBanks);
- default:
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Create a data buffer of a particular type.
- *
- * @param dataType the desired data type of the buffer
- * @param data an array containing the data
- * @param size the size of the data buffer bank
- */
- public static DataBuffer createBufferFromData(int dataType, Object data,
- int size)
- {
- switch (dataType)
- {
- case DataBuffer.TYPE_BYTE:
- return new DataBufferByte((byte[]) data, size);
- case DataBuffer.TYPE_USHORT:
- return new DataBufferUShort((short[]) data, size);
- case DataBuffer.TYPE_INT:
- return new DataBufferInt((int[]) data, size);
- default:
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Return the data array of a data buffer, regardless of the data
- * type.
- *
- * @return an array of primitive values. The actual array type
- * depends on the data type of the buffer.
- */
- public static Object getData(DataBuffer buffer)
- {
- if (buffer instanceof DataBufferByte)
- return ((DataBufferByte) buffer).getData();
- if (buffer instanceof DataBufferUShort)
- return ((DataBufferUShort) buffer).getData();
- if (buffer instanceof DataBufferInt)
- return ((DataBufferInt) buffer).getData();
- throw new ClassCastException("Unknown data buffer type");
- }
-
-
- /**
- * Copy data from array contained in data buffer, much like
- * System.arraycopy. Create a suitable destination array if the
- * given destination array is null.
- */
- public static Object getData(DataBuffer src, int srcOffset,
- Object dest, int destOffset,
- int length)
- {
- Object from;
- if (src instanceof DataBufferByte)
- {
- from = ((DataBufferByte) src).getData();
- if (dest == null) dest = new byte[length+destOffset];
- }
- else if (src instanceof DataBufferUShort)
- {
- from = ((DataBufferUShort) src).getData();
- if (dest == null) dest = new short[length+destOffset];
- }
- else if (src instanceof DataBufferInt)
- {
- from = ((DataBufferInt) src).getData();
- if (dest == null) dest = new int[length+destOffset];
- }
- else
- {
- throw new ClassCastException("Unknown data buffer type");
- }
-
- System.arraycopy(from, srcOffset, dest, destOffset, length);
- return dest;
- }
-
- /**
- * @param bits the width of a data element measured in bits
- *
- * @return the smallest data type that can store data elements of
- * the given number of bits, without any truncation.
- */
- public static int smallestAppropriateTransferType(int bits)
- {
- if (bits <= 8)
- {
- return DataBuffer.TYPE_BYTE;
- }
- else if (bits <= 16)
- {
- return DataBuffer.TYPE_USHORT;
- }
- else if (bits <= 32)
- {
- return DataBuffer.TYPE_INT;
- }
- else
- {
- return DataBuffer.TYPE_UNDEFINED;
- }
- }
-}
diff --git a/libjava/gnu/gcj/awt/ComponentDataBlitOp.java b/libjava/gnu/gcj/awt/ComponentDataBlitOp.java
deleted file mode 100644
index 1756045ae31..00000000000
--- a/libjava/gnu/gcj/awt/ComponentDataBlitOp.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.awt;
-
-import java.awt.geom.*;
-import java.awt.image.*;
-import java.awt.RenderingHints;
-
-/**
- * This raster copy operation assumes that both source and destination
- * sample models are tightly pixel packed and contain the same number
- * of bands.
- *
- * @throws java.lang.ClassCastException if the sample models of the
- * rasters are not of type ComponentSampleModel.
- *
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class ComponentDataBlitOp implements RasterOp
-{
- public static ComponentDataBlitOp INSTANCE = new ComponentDataBlitOp();
-
- public WritableRaster filter(Raster src, WritableRaster dest)
- {
- if (dest == null)
- dest = createCompatibleDestRaster(src);
-
- DataBuffer srcDB = src.getDataBuffer();
- DataBuffer destDB = dest.getDataBuffer();
-
- ComponentSampleModel srcSM = (ComponentSampleModel) src.getSampleModel();
- ComponentSampleModel destSM = (ComponentSampleModel) dest.getSampleModel();
-
-
- // Calculate offset to data in the underlying arrays:
-
- int srcScanlineStride = srcSM.getScanlineStride();
- int destScanlineStride = destSM.getScanlineStride();
- int srcX = src.getMinX() - src.getSampleModelTranslateX();
- int srcY = src.getMinY() - src.getSampleModelTranslateY();
- int destX = dest.getMinX() - dest.getSampleModelTranslateX();
- int destY = dest.getMinY() - dest.getSampleModelTranslateY();
-
- int numBands = srcSM.getNumBands();
-
- /* We can't use getOffset(x, y) from the sample model since we
- don't want the band offset added in. */
-
- int srcOffset =
- numBands*srcX + srcScanlineStride*srcY + // from sample model
- srcDB.getOffset(); // from data buffer
-
- int destOffset =
- numBands*destX + destScanlineStride*destY + // from sample model
- destDB.getOffset(); // from data buffer
-
- // Determine how much, and how many times to blit.
-
- int rowSize = src.getWidth()*numBands;
- int h = src.getHeight();
-
- if ((rowSize == srcScanlineStride) &&
- (rowSize == destScanlineStride))
- {
- // collapse scan line blits to one large blit.
- rowSize *= h;
- h = 1;
- }
-
-
- // Do blitting
-
- Object srcArray = Buffers.getData(srcDB);
- Object destArray = Buffers.getData(destDB);
-
- for (int yd = 0; yd<h; yd++)
- {
- System.arraycopy(srcArray, srcOffset,
- destArray, destOffset,
- rowSize);
- srcOffset += srcScanlineStride;
- destOffset += destScanlineStride;
- }
-
-
- return dest;
- }
-
- public Rectangle2D getBounds2D(Raster src)
- {
- return src.getBounds();
- }
-
- public WritableRaster createCompatibleDestRaster(Raster src) {
-
- /* FIXME: Maybe we should explicitly create a raster with a
- tightly pixel packed sample model, rather than assuming
- that the createCompatibleWritableRaster() method in Raster
- will create one. */
-
- return src.createCompatibleWritableRaster();
- }
-
- public Point2D getPoint2D(Point2D srcPoint, Point2D destPoint)
- {
- if (destPoint == null)
- return (Point2D) srcPoint.clone();
-
- destPoint.setLocation(srcPoint);
- return destPoint;
- }
-
- public RenderingHints getRenderingHints()
- {
- throw new UnsupportedOperationException("not implemented");
- }
-}
diff --git a/libjava/gnu/gcj/awt/GLightweightPeer.java b/libjava/gnu/gcj/awt/GLightweightPeer.java
deleted file mode 100644
index 330004e7421..00000000000
--- a/libjava/gnu/gcj/awt/GLightweightPeer.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.awt;
-
-import java.awt.*;
-import java.awt.peer.*;
-import java.awt.image.*;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class GLightweightPeer implements LightweightPeer
-{
- public static final GLightweightPeer INSTANCE = new GLightweightPeer();
-
- public GLightweightPeer() {}
-
- // -------- java.awt.peer.ComponentPeer implementation:
-
- public int checkImage(Image img, int width, int height, ImageObserver o)
- {
- return 0;
- }
-
- public Image createImage(ImageProducer prod)
- {
- return null;
- }
-
- public Image createImage(int width, int height)
- {
- return null;
- }
-
- public void disable() {}
-
- public void dispose() {}
-
- public void enable() {}
-
- public GraphicsConfiguration getGraphicsConfiguration()
- {
- return null;
- }
-
- public FontMetrics getFontMetrics(Font f)
- {
- return null;
- }
-
- public Graphics getGraphics()
- {
- return null;
- }
-
- public Point getLocationOnScreen()
- {
- return null;
- }
-
- public Dimension getMinimumSize()
- {
- return null;
- }
-
- public Dimension getPreferredSize()
- {
- return null;
- }
-
- public Toolkit getToolkit()
- {
- return null;
- }
-
- public void handleEvent(AWTEvent e) {}
-
- public void hide() {}
-
- public boolean isFocusTraversable()
- {
- return false;
- }
-
- public Dimension minimumSize()
- {
- return null;
- }
-
- public Dimension preferredSize()
- {
- return null;
- }
-
- public void paint(Graphics graphics) {}
-
- public boolean prepareImage(Image img, int width, int height,
- ImageObserver o)
- {
- return false;
- }
-
- public void print(Graphics graphics) {}
-
- public void repaint(long tm, int x, int y, int width, int height) {}
-
- public void requestFocus() {}
-
- public void reshape(int x, int y, int width, int height) {}
-
- public void setBackground(Color color) {}
-
- public void setBounds(int x, int y, int width, int height) {}
-
- public void setCursor(Cursor cursor) {}
-
- public void setEnabled(boolean enabled) {}
-
- public void setEventMask(long eventMask) {}
-
- public void setFont(Font font) {}
-
- public void setForeground(Color color) {}
-
- public void setVisible(boolean visible) {}
-
- public void show() {}
-}
diff --git a/libjava/gnu/gcj/convert/BytesToUnicode.java b/libjava/gnu/gcj/convert/BytesToUnicode.java
deleted file mode 100644
index de116dd1396..00000000000
--- a/libjava/gnu/gcj/convert/BytesToUnicode.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-public abstract class BytesToUnicode extends IOConverter
-{
- /** Buffer to read bytes from.
- * The characters inbuffer[inpos] ... inbuffer[inlength-1] are available. */
- public byte[] inbuffer;
- /** Starting index in buffer to read bytes from. */
- public int inpos;
- /** End of valid bytes in buffer. */
- public int inlength;
-
- static Class defaultDecodingClass;
-
- static synchronized void getDefaultDecodingClass()
- {
- // Test (defaultDecodingClass == null) again in case of race condition.
- if (defaultDecodingClass == null)
- {
- String encoding = canonicalize (System.getProperty("file.encoding"));
- String className = "gnu.gcj.convert.Input_"+encoding;
- try
- {
- defaultDecodingClass = Class.forName(className);
- }
- catch (ClassNotFoundException ex)
- {
- throw new NoClassDefFoundError("missing default encoding "
- + encoding + " (class "
- + className + " not found)");
- }
- }
- }
-
- public abstract String getName();
-
- public static BytesToUnicode getDefaultDecoder()
- {
- try
- {
- if (defaultDecodingClass == null)
- getDefaultDecodingClass();
- return (BytesToUnicode) defaultDecodingClass.newInstance();
- }
- catch (Throwable ex)
- {
- try
- {
- return new Input_iconv (System.getProperty ("file.encoding"));
- }
- catch (Throwable ex2)
- {
- return new Input_8859_1();
- }
- }
- }
-
- /** Get a byte-stream->char-stream converter given an encoding name. */
- public static BytesToUnicode getDecoder (String encoding)
- throws java.io.UnsupportedEncodingException
- {
- String className = "gnu.gcj.convert.Input_" + canonicalize (encoding);
- Class decodingClass;
- try
- {
- decodingClass = Class.forName(className);
- return (BytesToUnicode) decodingClass.newInstance();
- }
- catch (Throwable ex)
- {
- try
- {
- // We pass the original name to iconv and let it handle
- // its own aliasing.
- return new Input_iconv (encoding);
- }
- catch (Throwable _)
- {
- throw new java.io.UnsupportedEncodingException(encoding
- + " (" + ex + ')');
- }
- }
- }
-
- /** Make input bytes available to the conversion.
- * @param buffer source of input bytes
- * @param pos index of first available byte
- * @param length one more than index of last available byte
- */
- public final void setInput(byte[] buffer, int pos, int length)
- {
- inbuffer = buffer;
- inpos = pos;
- inlength = length;
- }
-
- /** Convert bytes to chars.
- * Input bytes are taken from this.inbuffer. The available input
- * bytes start at inbuffer[inpos], and end at inbuffer[inlength-1].
- * @param outbuffer buffer for the converted character
- * @param outpos position in buffer to start putting converted characters
- * @param count the maximum number of characters to convert
- * @return number of chars placed in outbuffer.
- * Also, this.inpos is incremented by the number of bytes consumed.
- *
- * (Note the asymmetry in that the input upper bound is inbuffer[inlength-1],
- * while the output upper bound is outbuffer[outpos+count-1]. The
- * justification is that inlength is like the count field of a
- * BufferedInputStream, while the count parameter is like the
- * length parameter of a read request.) The count parameter is
- * also defined to be <= outbuffer.length - outpos (per the specification
- * of the length parameter for a read request).
- */
- public abstract int read (char[] outbuffer, int outpos, int count);
-}
diff --git a/libjava/gnu/gcj/convert/Convert.java b/libjava/gnu/gcj/convert/Convert.java
deleted file mode 100644
index ccd6662f11a..00000000000
--- a/libjava/gnu/gcj/convert/Convert.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-import java.io.*;
-
-public class Convert
-{
- static void error (String message)
- {
- System.err.print("convert: ");
- System.err.println(message);
- System.err.println("Usage: convert [--from srcEncoding] [--to dstEncoding]");
- System.err.println(" [inputfile [outputfile]]");
- System.exit(-1);
- }
-
- static void missing (String arg)
- {
- error("missing arg after `" + arg + "' option");
- }
-
- public static void main (String[] args)
- {
- String inName = "-";
- String outName = "-";
- String inEncodingName = null;
- String outEncodingName = "JavaSrc";
- int seenNames = 0;
- boolean reverse = false;
-
- for (int i = 0; i < args.length; i++)
- {
- String arg = args[i];
- if (arg.length() == 0)
- error("zero-length argument");
- if (arg.charAt(0) == '-')
- {
- if (arg.equals("-encoding") || arg.equals("--encoding")
- || args.equals("-from") || arg.equals("--from"))
- {
- if (++i == args.length) missing(arg);
- inEncodingName = args[i];
- }
- else if (arg.equals("-to") || arg.equals("--to"))
- {
- if (++i == args.length) missing(arg);
- outEncodingName = args[i];
- }
- else if (arg.equals("-i"))
- {
- if (++i == args.length) missing(arg);
- inName = args[i];
- }
- else if (arg.equals("-o"))
- {
- if (++i == args.length) missing(arg);
- outName = args[i];
- }
- else if (arg.equals("-reverse") || arg.equals("--reverse"))
- {
- reverse = true;
- }
- else if (arg.equals("-"))
- {
- switch (seenNames)
- {
- case 0:
- inName = "-";
- seenNames++;
- break;
- case 1:
- outName = "-";
- seenNames++;
- break;
- default:
- error("too many `-' arguments");
- }
- }
- else
- error("unrecognized argument `" + arg + "'");
- }
- else
- {
- switch (seenNames)
- {
- case 0:
- inName = arg;
- seenNames++;
- break;
- case 1:
- outName = arg;
- seenNames++;
- break;
- default:
- error("too many filename arguments");
- }
- }
- }
-
- if (reverse)
- {
- String tmp = inEncodingName;
- inEncodingName = outEncodingName;
- outEncodingName = tmp;
- }
-
- try
- {
- BytesToUnicode inDecoder
- = inEncodingName == null ? BytesToUnicode.getDefaultDecoder()
- : BytesToUnicode.getDecoder(inEncodingName);
- UnicodeToBytes outEncoder
- = outEncodingName == null ? UnicodeToBytes.getDefaultEncoder()
- : UnicodeToBytes.getEncoder(outEncodingName);
- InputStream inStream = inName == "-" ? System.in
- : new FileInputStream(inName);
- OutputStream outStream;
- if (outName == "-")
- outStream = System.out;
- else
- outStream = new FileOutputStream(outName);
- InputStreamReader in
- = new InputStreamReader(inStream, inEncodingName);
- OutputStreamWriter out
- = new OutputStreamWriter(outStream, outEncodingName);
- char[] buffer = new char[2048];
- for (;;)
- {
- int count = in.read(buffer);
- if (count < 0)
- break;
- out.write(buffer, 0, count);
- }
-
- in.close();
- out.close();
- }
- catch (java.io.IOException ex)
- {
- System.err.print("convert exception: ");
- System.err.println(ex);
- System.exit(-1);
- }
- }
-}
diff --git a/libjava/gnu/gcj/convert/IOConverter.java b/libjava/gnu/gcj/convert/IOConverter.java
deleted file mode 100644
index c98662485b6..00000000000
--- a/libjava/gnu/gcj/convert/IOConverter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* This is a base class that handles aliasing issues for
- UnicodeToBytes to BytesToUnicode. */
-
-package gnu.gcj.convert;
-
-import java.util.Hashtable;
-
-public abstract class IOConverter
-{
- // Map encoding aliases to our canonical form.
- static private Hashtable hash = new Hashtable ();
-
- static
- {
- // Manually maintained aliases. Note that the value must be our
- // canonical name.
- hash.put ("ISO-Latin-1", "8859_1");
- // All aliases after this point are automatically generated by the
- // `encodings.pl' script. Run it to make any corrections.
- hash.put ("ISO_8859-1:1987", "8859_1");
- hash.put ("iso-ir-100", "8859_1");
- hash.put ("ISO_8859-1", "8859_1");
- hash.put ("ISO-8859-1", "8859_1");
- hash.put ("latin1", "8859_1");
- hash.put ("l1", "8859_1");
- hash.put ("IBM819", "8859_1");
- hash.put ("CP819", "8859_1");
- hash.put ("csISOLatin1", "8859_1");
- hash.put ("UTF-8", "UTF8");
- hash.put ("Shift_JIS", "SJIS");
- hash.put ("MS_Kanji", "SJIS");
- hash.put ("csShiftJIS", "SJIS");
- hash.put ("Extended_UNIX_Code_Packed_Format_for_Japanese", "EUCJIS");
- hash.put ("csEUCPkdFmtJapanese", "EUCJIS");
- hash.put ("EUC-JP", "EUCJIS");
- }
-
- // Turn an alias into the canonical form.
- protected static final String canonicalize (String name)
- {
- String c = (String) hash.get (name);
- return c == null ? name : c;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Input_8859_1.java b/libjava/gnu/gcj/convert/Input_8859_1.java
deleted file mode 100644
index 6c70034f3d9..00000000000
--- a/libjava/gnu/gcj/convert/Input_8859_1.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert ISO-Latin-1 (8851-1) text to Unicode.
- * @author Per Bothner <bothner@cygnus.com>
- * @date March 1999.
- */
-
-public class Input_8859_1 extends BytesToUnicode
-{
- public String getName() { return "8859_1"; }
-
- public int read (char[] outbuffer, int outpos, int count)
- {
- int origpos = outpos;
- // Make sure fields of this are in registers.
- int inpos = this.inpos;
- byte[] inbuffer = this.inbuffer;
- int inavail = this.inlength - inpos;
- int outavail = count;
- if (outavail > inavail)
- outavail = inavail;
- while (--outavail >= 0)
- {
- outbuffer[outpos++] = (char) (inbuffer[inpos++] & 0xFF);
- }
- this.inpos = inpos;
- return outpos - origpos;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Input_EUCJIS.java b/libjava/gnu/gcj/convert/Input_EUCJIS.java
deleted file mode 100644
index d7088e15752..00000000000
--- a/libjava/gnu/gcj/convert/Input_EUCJIS.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert EUCJIS (Extended Unix Code for Japan) to Unicode.
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Input_EUCJIS extends BytesToUnicode
-{
- public String getName() { return "EUCJIS"; }
-
- int codeset = 0;
- int first_byte;
-
- public native int read (char[] outbuffer, int outpos, int count);
-}
diff --git a/libjava/gnu/gcj/convert/Input_JavaSrc.java b/libjava/gnu/gcj/convert/Input_JavaSrc.java
deleted file mode 100644
index 12b8b695bfa..00000000000
--- a/libjava/gnu/gcj/convert/Input_JavaSrc.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Ascii with \ u XXXX-escapes to Unicode.
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Input_JavaSrc extends BytesToUnicode
-{
- public String getName() { return "JavaSrc"; }
-
- // 0: normal
- // 1: seen '\\'
- // 2: seen '\\' and 'u'
- // 3: seen '\\' and need to emit value.
- // 4, 5, 6, 7: seen '\\u', 'u' and (state-3) hex digits.
- int state = 0;
-
- int value;
-
- public int read (char[] outbuffer, int outpos, int count)
- {
- int origpos = outpos;
- for (;;)
- {
- if (inpos >= inlength)
- break;
- if (outpos - origpos >= count)
- break;
- char b = (char) (inbuffer[inpos++] & 0xFF);
- switch (state)
- {
- case 0:
- if (b == '\\')
- {
- state = 1;
- continue;
- }
- break;
- case 1:
- if (b == 'u')
- {
- state = 2;
- continue;
- }
- if (b != '\\')
- {
- value = b;
- b = '\\';
- state = 3;
- }
- break;
- case 3:
- b = (char) value;
- break;
- default: // case 4: case 5: case 6: case 7:
- int digit = Character.digit(b, 16);
- if (digit < 0)
- {
- b = '\uFFFD';
- state = 0;
- }
- else
- {
- value = value * 16 + digit;
- if (state < 7)
- {
- state++;
- continue;
- }
- b = (char) value;
- }
- state = 0;
- }
- outbuffer[outpos++] = b;
- }
- return outpos - origpos;
- }
-}
-
diff --git a/libjava/gnu/gcj/convert/Input_SJIS.java b/libjava/gnu/gcj/convert/Input_SJIS.java
deleted file mode 100644
index 4660322721f..00000000000
--- a/libjava/gnu/gcj/convert/Input_SJIS.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert SJIS (Shift JIS, used on Japanese MS-Windows) to Unicode.
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Input_SJIS extends BytesToUnicode
-{
- public String getName() { return "SJIS"; }
-
- public native int read (char[] outbuffer, int outpos, int count);
-
- int first_byte;
-}
diff --git a/libjava/gnu/gcj/convert/Input_UTF8.java b/libjava/gnu/gcj/convert/Input_UTF8.java
deleted file mode 100644
index 433a0d1e3a6..00000000000
--- a/libjava/gnu/gcj/convert/Input_UTF8.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert UTF8 to Unicode.
- * @author Per Bothner <bothner@cygnus.com>
- * @date March 1999.
- */
-
-public class Input_UTF8 extends BytesToUnicode
-{
- public String getName() { return "UTF8"; }
-
- int partial = 0;
- int partial_bytes_expected = 0;
- //int suggogate_second = -1;
-
- public int read (char[] outbuffer, int outpos, int count)
- {
- int origpos = outpos;
- for (;;)
- {
- if (outpos - origpos >= count)
- break;
- if (inpos >= inlength)
- break;
- int b = inbuffer[inpos++];
- if (b >= 0)
- outbuffer[outpos++] = (char) b;
- else
- {
- if ((b & 0xC0) == 0x80) // Continuation byte
- {
- partial = (partial << 6) | (b & 0x3F);
- --partial_bytes_expected;
- if (partial_bytes_expected == 1)
- {
- if (partial > (0xFFFF>>6))
- {
- // The next continuation byte will cause the result
- // to exceed 0xFFFF, so we must use a surrogate pair.
- // The "Unicode scalar value" (see D28 in section 3.7
- // of the Unicode Standard 2.0) is defined as:
- // value == (hi-0xD800)*0x400+(lo-0xDC00)+0x10000,
- // where (hi, lo) is the Unicode surrogate pair.
- // After reading the first three bytes, we have:
- // partial == (value >> 6).
- // Substituting and simplifying, we get:
- // partial == (hi-0xD800)*0x10+((lo-0xDC00)>>6)+0x400.
- // The definition lo>=0xDC00 && lo<=0xDFFF implies
- // that (lo-0xDC00)>>6 is in the range 0..15.
- // Hence we can solve for `hi' and we can emit
- // the high-surrogate without waiting for the
- // final byte:
- outbuffer[outpos++]
- = (char) (0xD800 + ((partial - 0x400) >> 4));
-
- // Now we want to set it up so that when we read
- // the final byte on the next iteration, we will
- // get the low-surrogate without special handling.
- // I.e. we want:
- // lo == (next_partial << 6) | (next & 0x3F)
- // where next is the next input byte and next_partial
- // is the value of partial at the end of this
- // iteration. This implies: next_partial == lo >> 6.
- // We can simplify the previous:
- // partial == (hi-0xD800)*0x10+((lo-0xDC00)>>6)+0x400,
- // to: partial == (hi-0xD800)*0x10+(lo>>6)+0x90.
- // Inserting the values of hi and next_partial,
- // and simplifying, we get: partial ==
- // ( (partial-0x400)&~0xF) + next_partial + 0x90.
- // Solving for next_partial, we get:
- // next_partial = partial+0x400-0x90-(partial&~0xF):
- // or: next_partial = (partial&0xF) + 0x370. Hence:
- partial = (partial & 0xF) + 0x370;
- }
- }
- else if (partial_bytes_expected == 0)
- {
- outbuffer[outpos++] = (char) partial;
- partial = 0;
- partial_bytes_expected = 0;
- }
- }
- else // prefix byte
- {
- if ((b & 0xE0) == 0xC0)
- {
- partial = b & 0x1F;
- partial_bytes_expected = 1;
- }
- else if ((b & 0xF0) == 0xE0)
- {
- partial = b & 0xF;
- partial_bytes_expected = 2;
- }
- else
- {
- partial = b & 7;
- partial_bytes_expected = 3;
- }
- }
- }
- }
- return outpos - origpos;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Input_iconv.java b/libjava/gnu/gcj/convert/Input_iconv.java
deleted file mode 100644
index cd7b795fe94..00000000000
--- a/libjava/gnu/gcj/convert/Input_iconv.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Input_iconv.java -- Java side of iconv() reader.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-import gnu.gcj.RawData;
-import java.io.UnsupportedEncodingException;
-
-/**
- * Convert bytes in some iconv-supported encoding to Unicode.
- * @author Tom Tromey <tromey@redhat.com>
- * @date January 30, 2000
- */
-
-public class Input_iconv extends BytesToUnicode
-{
- public Input_iconv (String encoding) throws UnsupportedEncodingException
- {
- this.encoding = encoding;
- this.handle = null;
- init (encoding);
- }
-
- public String getName() { return encoding; }
-
- public native void finalize ();
- private native void init (String encoding)
- throws UnsupportedEncodingException;
- public native int read (char[] outbuffer, int outpos, int count);
-
- // The encoding we're using.
- private String encoding;
-
- // The iconv handle.
- private RawData handle;
-}
diff --git a/libjava/gnu/gcj/convert/JIS0201.h b/libjava/gnu/gcj/convert/JIS0201.h
deleted file mode 100644
index 3a3b4f1b85a..00000000000
--- a/libjava/gnu/gcj/convert/JIS0201.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* This file is automatically generated from Unicode tables */
-MAP(0x00, 0x20, 0x0020) /* SPACE */
-MAP(0x00, 0x21, 0x0021) /* EXCLAMATION MARK */
-MAP(0x00, 0x22, 0x0022) /* QUOTATION MARK */
-MAP(0x00, 0x23, 0x0023) /* NUMBER SIGN */
-MAP(0x00, 0x24, 0x0024) /* DOLLAR SIGN */
-MAP(0x00, 0x25, 0x0025) /* PERCENT SIGN */
-MAP(0x00, 0x26, 0x0026) /* AMPERSAND */
-MAP(0x00, 0x27, 0x0027) /* APOSTROPHE */
-MAP(0x00, 0x28, 0x0028) /* LEFT PARENTHESIS */
-MAP(0x00, 0x29, 0x0029) /* RIGHT PARENTHESIS */
-MAP(0x00, 0x2A, 0x002A) /* ASTERISK */
-MAP(0x00, 0x2B, 0x002B) /* PLUS SIGN */
-MAP(0x00, 0x2C, 0x002C) /* COMMA */
-MAP(0x00, 0x2D, 0x002D) /* HYPHEN-MINUS */
-MAP(0x00, 0x2E, 0x002E) /* FULL STOP */
-MAP(0x00, 0x2F, 0x002F) /* SOLIDUS */
-MAP(0x00, 0x30, 0x0030) /* DIGIT ZERO */
-MAP(0x00, 0x31, 0x0031) /* DIGIT ONE */
-MAP(0x00, 0x32, 0x0032) /* DIGIT TWO */
-MAP(0x00, 0x33, 0x0033) /* DIGIT THREE */
-MAP(0x00, 0x34, 0x0034) /* DIGIT FOUR */
-MAP(0x00, 0x35, 0x0035) /* DIGIT FIVE */
-MAP(0x00, 0x36, 0x0036) /* DIGIT SIX */
-MAP(0x00, 0x37, 0x0037) /* DIGIT SEVEN */
-MAP(0x00, 0x38, 0x0038) /* DIGIT EIGHT */
-MAP(0x00, 0x39, 0x0039) /* DIGIT NINE */
-MAP(0x00, 0x3A, 0x003A) /* COLON */
-MAP(0x00, 0x3B, 0x003B) /* SEMICOLON */
-MAP(0x00, 0x3C, 0x003C) /* LESS-THAN SIGN */
-MAP(0x00, 0x3D, 0x003D) /* EQUALS SIGN */
-MAP(0x00, 0x3E, 0x003E) /* GREATER-THAN SIGN */
-MAP(0x00, 0x3F, 0x003F) /* QUESTION MARK */
-MAP(0x00, 0x40, 0x0040) /* COMMERCIAL AT */
-MAP(0x00, 0x41, 0x0041) /* LATIN CAPITAL LETTER A */
-MAP(0x00, 0x42, 0x0042) /* LATIN CAPITAL LETTER B */
-MAP(0x00, 0x43, 0x0043) /* LATIN CAPITAL LETTER C */
-MAP(0x00, 0x44, 0x0044) /* LATIN CAPITAL LETTER D */
-MAP(0x00, 0x45, 0x0045) /* LATIN CAPITAL LETTER E */
-MAP(0x00, 0x46, 0x0046) /* LATIN CAPITAL LETTER F */
-MAP(0x00, 0x47, 0x0047) /* LATIN CAPITAL LETTER G */
-MAP(0x00, 0x48, 0x0048) /* LATIN CAPITAL LETTER H */
-MAP(0x00, 0x49, 0x0049) /* LATIN CAPITAL LETTER I */
-MAP(0x00, 0x4A, 0x004A) /* LATIN CAPITAL LETTER J */
-MAP(0x00, 0x4B, 0x004B) /* LATIN CAPITAL LETTER K */
-MAP(0x00, 0x4C, 0x004C) /* LATIN CAPITAL LETTER L */
-MAP(0x00, 0x4D, 0x004D) /* LATIN CAPITAL LETTER M */
-MAP(0x00, 0x4E, 0x004E) /* LATIN CAPITAL LETTER N */
-MAP(0x00, 0x4F, 0x004F) /* LATIN CAPITAL LETTER O */
-MAP(0x00, 0x50, 0x0050) /* LATIN CAPITAL LETTER P */
-MAP(0x00, 0x51, 0x0051) /* LATIN CAPITAL LETTER Q */
-MAP(0x00, 0x52, 0x0052) /* LATIN CAPITAL LETTER R */
-MAP(0x00, 0x53, 0x0053) /* LATIN CAPITAL LETTER S */
-MAP(0x00, 0x54, 0x0054) /* LATIN CAPITAL LETTER T */
-MAP(0x00, 0x55, 0x0055) /* LATIN CAPITAL LETTER U */
-MAP(0x00, 0x56, 0x0056) /* LATIN CAPITAL LETTER V */
-MAP(0x00, 0x57, 0x0057) /* LATIN CAPITAL LETTER W */
-MAP(0x00, 0x58, 0x0058) /* LATIN CAPITAL LETTER X */
-MAP(0x00, 0x59, 0x0059) /* LATIN CAPITAL LETTER Y */
-MAP(0x00, 0x5A, 0x005A) /* LATIN CAPITAL LETTER Z */
-MAP(0x00, 0x5B, 0x005B) /* LEFT SQUARE BRACKET */
-MAP(0x00, 0x5C, 0x00A5) /* YEN SIGN */
-MAP(0x00, 0x5D, 0x005D) /* RIGHT SQUARE BRACKET */
-MAP(0x00, 0x5E, 0x005E) /* CIRCUMFLEX ACCENT */
-MAP(0x00, 0x5F, 0x005F) /* LOW LINE */
-MAP(0x00, 0x60, 0x0060) /* GRAVE ACCENT */
-MAP(0x00, 0x61, 0x0061) /* LATIN SMALL LETTER A */
-MAP(0x00, 0x62, 0x0062) /* LATIN SMALL LETTER B */
-MAP(0x00, 0x63, 0x0063) /* LATIN SMALL LETTER C */
-MAP(0x00, 0x64, 0x0064) /* LATIN SMALL LETTER D */
-MAP(0x00, 0x65, 0x0065) /* LATIN SMALL LETTER E */
-MAP(0x00, 0x66, 0x0066) /* LATIN SMALL LETTER F */
-MAP(0x00, 0x67, 0x0067) /* LATIN SMALL LETTER G */
-MAP(0x00, 0x68, 0x0068) /* LATIN SMALL LETTER H */
-MAP(0x00, 0x69, 0x0069) /* LATIN SMALL LETTER I */
-MAP(0x00, 0x6A, 0x006A) /* LATIN SMALL LETTER J */
-MAP(0x00, 0x6B, 0x006B) /* LATIN SMALL LETTER K */
-MAP(0x00, 0x6C, 0x006C) /* LATIN SMALL LETTER L */
-MAP(0x00, 0x6D, 0x006D) /* LATIN SMALL LETTER M */
-MAP(0x00, 0x6E, 0x006E) /* LATIN SMALL LETTER N */
-MAP(0x00, 0x6F, 0x006F) /* LATIN SMALL LETTER O */
-MAP(0x00, 0x70, 0x0070) /* LATIN SMALL LETTER P */
-MAP(0x00, 0x71, 0x0071) /* LATIN SMALL LETTER Q */
-MAP(0x00, 0x72, 0x0072) /* LATIN SMALL LETTER R */
-MAP(0x00, 0x73, 0x0073) /* LATIN SMALL LETTER S */
-MAP(0x00, 0x74, 0x0074) /* LATIN SMALL LETTER T */
-MAP(0x00, 0x75, 0x0075) /* LATIN SMALL LETTER U */
-MAP(0x00, 0x76, 0x0076) /* LATIN SMALL LETTER V */
-MAP(0x00, 0x77, 0x0077) /* LATIN SMALL LETTER W */
-MAP(0x00, 0x78, 0x0078) /* LATIN SMALL LETTER X */
-MAP(0x00, 0x79, 0x0079) /* LATIN SMALL LETTER Y */
-MAP(0x00, 0x7A, 0x007A) /* LATIN SMALL LETTER Z */
-MAP(0x00, 0x7B, 0x007B) /* LEFT CURLY BRACKET */
-MAP(0x00, 0x7C, 0x007C) /* VERTICAL LINE */
-MAP(0x00, 0x7D, 0x007D) /* RIGHT CURLY BRACKET */
-MAP(0x00, 0x7E, 0x203E) /* OVERLINE */
-MAP(0x00, 0xA1, 0xFF61) /* HALFWIDTH IDEOGRAPHIC FULL STOP */
-MAP(0x00, 0xA2, 0xFF62) /* HALFWIDTH LEFT CORNER BRACKET */
-MAP(0x00, 0xA3, 0xFF63) /* HALFWIDTH RIGHT CORNER BRACKET */
-MAP(0x00, 0xA4, 0xFF64) /* HALFWIDTH IDEOGRAPHIC COMMA */
-MAP(0x00, 0xA5, 0xFF65) /* HALFWIDTH KATAKANA MIDDLE DOT */
-MAP(0x00, 0xA6, 0xFF66) /* HALFWIDTH KATAKANA LETTER WO */
-MAP(0x00, 0xA7, 0xFF67) /* HALFWIDTH KATAKANA LETTER SMALL A */
-MAP(0x00, 0xA8, 0xFF68) /* HALFWIDTH KATAKANA LETTER SMALL I */
-MAP(0x00, 0xA9, 0xFF69) /* HALFWIDTH KATAKANA LETTER SMALL U */
-MAP(0x00, 0xAA, 0xFF6A) /* HALFWIDTH KATAKANA LETTER SMALL E */
-MAP(0x00, 0xAB, 0xFF6B) /* HALFWIDTH KATAKANA LETTER SMALL O */
-MAP(0x00, 0xAC, 0xFF6C) /* HALFWIDTH KATAKANA LETTER SMALL YA */
-MAP(0x00, 0xAD, 0xFF6D) /* HALFWIDTH KATAKANA LETTER SMALL YU */
-MAP(0x00, 0xAE, 0xFF6E) /* HALFWIDTH KATAKANA LETTER SMALL YO */
-MAP(0x00, 0xAF, 0xFF6F) /* HALFWIDTH KATAKANA LETTER SMALL TU */
-MAP(0x00, 0xB0, 0xFF70) /* HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK */
-MAP(0x00, 0xB1, 0xFF71) /* HALFWIDTH KATAKANA LETTER A */
-MAP(0x00, 0xB2, 0xFF72) /* HALFWIDTH KATAKANA LETTER I */
-MAP(0x00, 0xB3, 0xFF73) /* HALFWIDTH KATAKANA LETTER U */
-MAP(0x00, 0xB4, 0xFF74) /* HALFWIDTH KATAKANA LETTER E */
-MAP(0x00, 0xB5, 0xFF75) /* HALFWIDTH KATAKANA LETTER O */
-MAP(0x00, 0xB6, 0xFF76) /* HALFWIDTH KATAKANA LETTER KA */
-MAP(0x00, 0xB7, 0xFF77) /* HALFWIDTH KATAKANA LETTER KI */
-MAP(0x00, 0xB8, 0xFF78) /* HALFWIDTH KATAKANA LETTER KU */
-MAP(0x00, 0xB9, 0xFF79) /* HALFWIDTH KATAKANA LETTER KE */
-MAP(0x00, 0xBA, 0xFF7A) /* HALFWIDTH KATAKANA LETTER KO */
-MAP(0x00, 0xBB, 0xFF7B) /* HALFWIDTH KATAKANA LETTER SA */
-MAP(0x00, 0xBC, 0xFF7C) /* HALFWIDTH KATAKANA LETTER SI */
-MAP(0x00, 0xBD, 0xFF7D) /* HALFWIDTH KATAKANA LETTER SU */
-MAP(0x00, 0xBE, 0xFF7E) /* HALFWIDTH KATAKANA LETTER SE */
-MAP(0x00, 0xBF, 0xFF7F) /* HALFWIDTH KATAKANA LETTER SO */
-MAP(0x00, 0xC0, 0xFF80) /* HALFWIDTH KATAKANA LETTER TA */
-MAP(0x00, 0xC1, 0xFF81) /* HALFWIDTH KATAKANA LETTER TI */
-MAP(0x00, 0xC2, 0xFF82) /* HALFWIDTH KATAKANA LETTER TU */
-MAP(0x00, 0xC3, 0xFF83) /* HALFWIDTH KATAKANA LETTER TE */
-MAP(0x00, 0xC4, 0xFF84) /* HALFWIDTH KATAKANA LETTER TO */
-MAP(0x00, 0xC5, 0xFF85) /* HALFWIDTH KATAKANA LETTER NA */
-MAP(0x00, 0xC6, 0xFF86) /* HALFWIDTH KATAKANA LETTER NI */
-MAP(0x00, 0xC7, 0xFF87) /* HALFWIDTH KATAKANA LETTER NU */
-MAP(0x00, 0xC8, 0xFF88) /* HALFWIDTH KATAKANA LETTER NE */
-MAP(0x00, 0xC9, 0xFF89) /* HALFWIDTH KATAKANA LETTER NO */
-MAP(0x00, 0xCA, 0xFF8A) /* HALFWIDTH KATAKANA LETTER HA */
-MAP(0x00, 0xCB, 0xFF8B) /* HALFWIDTH KATAKANA LETTER HI */
-MAP(0x00, 0xCC, 0xFF8C) /* HALFWIDTH KATAKANA LETTER HU */
-MAP(0x00, 0xCD, 0xFF8D) /* HALFWIDTH KATAKANA LETTER HE */
-MAP(0x00, 0xCE, 0xFF8E) /* HALFWIDTH KATAKANA LETTER HO */
-MAP(0x00, 0xCF, 0xFF8F) /* HALFWIDTH KATAKANA LETTER MA */
-MAP(0x00, 0xD0, 0xFF90) /* HALFWIDTH KATAKANA LETTER MI */
-MAP(0x00, 0xD1, 0xFF91) /* HALFWIDTH KATAKANA LETTER MU */
-MAP(0x00, 0xD2, 0xFF92) /* HALFWIDTH KATAKANA LETTER ME */
-MAP(0x00, 0xD3, 0xFF93) /* HALFWIDTH KATAKANA LETTER MO */
-MAP(0x00, 0xD4, 0xFF94) /* HALFWIDTH KATAKANA LETTER YA */
-MAP(0x00, 0xD5, 0xFF95) /* HALFWIDTH KATAKANA LETTER YU */
-MAP(0x00, 0xD6, 0xFF96) /* HALFWIDTH KATAKANA LETTER YO */
-MAP(0x00, 0xD7, 0xFF97) /* HALFWIDTH KATAKANA LETTER RA */
-MAP(0x00, 0xD8, 0xFF98) /* HALFWIDTH KATAKANA LETTER RI */
-MAP(0x00, 0xD9, 0xFF99) /* HALFWIDTH KATAKANA LETTER RU */
-MAP(0x00, 0xDA, 0xFF9A) /* HALFWIDTH KATAKANA LETTER RE */
-MAP(0x00, 0xDB, 0xFF9B) /* HALFWIDTH KATAKANA LETTER RO */
-MAP(0x00, 0xDC, 0xFF9C) /* HALFWIDTH KATAKANA LETTER WA */
-MAP(0x00, 0xDD, 0xFF9D) /* HALFWIDTH KATAKANA LETTER N */
-MAP(0x00, 0xDE, 0xFF9E) /* HALFWIDTH KATAKANA VOICED SOUND MARK */
-MAP(0x00, 0xDF, 0xFF9F) /* HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK */
diff --git a/libjava/gnu/gcj/convert/JIS0208.h b/libjava/gnu/gcj/convert/JIS0208.h
deleted file mode 100644
index d0406fa7f4c..00000000000
--- a/libjava/gnu/gcj/convert/JIS0208.h
+++ /dev/null
@@ -1,6880 +0,0 @@
-/* This file is automatically generated from Unicode tables */
-MAP(0x21, 0x21, 0x3000) /* IDEOGRAPHIC SPACE */
-MAP(0x21, 0x22, 0x3001) /* IDEOGRAPHIC COMMA */
-MAP(0x21, 0x23, 0x3002) /* IDEOGRAPHIC FULL STOP */
-MAP(0x21, 0x24, 0xFF0C) /* FULLWIDTH COMMA */
-MAP(0x21, 0x25, 0xFF0E) /* FULLWIDTH FULL STOP */
-MAP(0x21, 0x26, 0x30FB) /* KATAKANA MIDDLE DOT */
-MAP(0x21, 0x27, 0xFF1A) /* FULLWIDTH COLON */
-MAP(0x21, 0x28, 0xFF1B) /* FULLWIDTH SEMICOLON */
-MAP(0x21, 0x29, 0xFF1F) /* FULLWIDTH QUESTION MARK */
-MAP(0x21, 0x2A, 0xFF01) /* FULLWIDTH EXCLAMATION MARK */
-MAP(0x21, 0x2B, 0x309B) /* KATAKANA-HIRAGANA VOICED SOUND MARK */
-MAP(0x21, 0x2C, 0x309C) /* KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
-MAP(0x21, 0x2D, 0x00B4) /* ACUTE ACCENT */
-MAP(0x21, 0x2E, 0xFF40) /* FULLWIDTH GRAVE ACCENT */
-MAP(0x21, 0x2F, 0x00A8) /* DIAERESIS */
-MAP(0x21, 0x30, 0xFF3E) /* FULLWIDTH CIRCUMFLEX ACCENT */
-MAP(0x21, 0x31, 0xFFE3) /* FULLWIDTH MACRON */
-MAP(0x21, 0x32, 0xFF3F) /* FULLWIDTH LOW LINE */
-MAP(0x21, 0x33, 0x30FD) /* KATAKANA ITERATION MARK */
-MAP(0x21, 0x34, 0x30FE) /* KATAKANA VOICED ITERATION MARK */
-MAP(0x21, 0x35, 0x309D) /* HIRAGANA ITERATION MARK */
-MAP(0x21, 0x36, 0x309E) /* HIRAGANA VOICED ITERATION MARK */
-MAP(0x21, 0x37, 0x3003) /* DITTO MARK */
-MAP(0x21, 0x38, 0x4EDD) /* <CJK> */
-MAP(0x21, 0x39, 0x3005) /* IDEOGRAPHIC ITERATION MARK */
-MAP(0x21, 0x3A, 0x3006) /* IDEOGRAPHIC CLOSING MARK */
-MAP(0x21, 0x3B, 0x3007) /* IDEOGRAPHIC NUMBER ZERO */
-MAP(0x21, 0x3C, 0x30FC) /* KATAKANA-HIRAGANA PROLONGED SOUND MARK */
-MAP(0x21, 0x3D, 0x2015) /* HORIZONTAL BAR */
-MAP(0x21, 0x3E, 0x2010) /* HYPHEN */
-MAP(0x21, 0x3F, 0xFF0F) /* FULLWIDTH SOLIDUS */
-MAP(0x21, 0x40, 0x005C) /* REVERSE SOLIDUS */
-MAP(0x21, 0x41, 0x301C) /* WAVE DASH */
-MAP(0x21, 0x42, 0x2016) /* DOUBLE VERTICAL LINE */
-MAP(0x21, 0x43, 0xFF5C) /* FULLWIDTH VERTICAL LINE */
-MAP(0x21, 0x44, 0x2026) /* HORIZONTAL ELLIPSIS */
-MAP(0x21, 0x45, 0x2025) /* TWO DOT LEADER */
-MAP(0x21, 0x46, 0x2018) /* LEFT SINGLE QUOTATION MARK */
-MAP(0x21, 0x47, 0x2019) /* RIGHT SINGLE QUOTATION MARK */
-MAP(0x21, 0x48, 0x201C) /* LEFT DOUBLE QUOTATION MARK */
-MAP(0x21, 0x49, 0x201D) /* RIGHT DOUBLE QUOTATION MARK */
-MAP(0x21, 0x4A, 0xFF08) /* FULLWIDTH LEFT PARENTHESIS */
-MAP(0x21, 0x4B, 0xFF09) /* FULLWIDTH RIGHT PARENTHESIS */
-MAP(0x21, 0x4C, 0x3014) /* LEFT TORTOISE SHELL BRACKET */
-MAP(0x21, 0x4D, 0x3015) /* RIGHT TORTOISE SHELL BRACKET */
-MAP(0x21, 0x4E, 0xFF3B) /* FULLWIDTH LEFT SQUARE BRACKET */
-MAP(0x21, 0x4F, 0xFF3D) /* FULLWIDTH RIGHT SQUARE BRACKET */
-MAP(0x21, 0x50, 0xFF5B) /* FULLWIDTH LEFT CURLY BRACKET */
-MAP(0x21, 0x51, 0xFF5D) /* FULLWIDTH RIGHT CURLY BRACKET */
-MAP(0x21, 0x52, 0x3008) /* LEFT ANGLE BRACKET */
-MAP(0x21, 0x53, 0x3009) /* RIGHT ANGLE BRACKET */
-MAP(0x21, 0x54, 0x300A) /* LEFT DOUBLE ANGLE BRACKET */
-MAP(0x21, 0x55, 0x300B) /* RIGHT DOUBLE ANGLE BRACKET */
-MAP(0x21, 0x56, 0x300C) /* LEFT CORNER BRACKET */
-MAP(0x21, 0x57, 0x300D) /* RIGHT CORNER BRACKET */
-MAP(0x21, 0x58, 0x300E) /* LEFT WHITE CORNER BRACKET */
-MAP(0x21, 0x59, 0x300F) /* RIGHT WHITE CORNER BRACKET */
-MAP(0x21, 0x5A, 0x3010) /* LEFT BLACK LENTICULAR BRACKET */
-MAP(0x21, 0x5B, 0x3011) /* RIGHT BLACK LENTICULAR BRACKET */
-MAP(0x21, 0x5C, 0xFF0B) /* FULLWIDTH PLUS SIGN */
-MAP(0x21, 0x5D, 0x2212) /* MINUS SIGN */
-MAP(0x21, 0x5E, 0x00B1) /* PLUS-MINUS SIGN */
-MAP(0x21, 0x5F, 0x00D7) /* MULTIPLICATION SIGN */
-MAP(0x21, 0x60, 0x00F7) /* DIVISION SIGN */
-MAP(0x21, 0x61, 0xFF1D) /* FULLWIDTH EQUALS SIGN */
-MAP(0x21, 0x62, 0x2260) /* NOT EQUAL TO */
-MAP(0x21, 0x63, 0xFF1C) /* FULLWIDTH LESS-THAN SIGN */
-MAP(0x21, 0x64, 0xFF1E) /* FULLWIDTH GREATER-THAN SIGN */
-MAP(0x21, 0x65, 0x2266) /* LESS-THAN OVER EQUAL TO */
-MAP(0x21, 0x66, 0x2267) /* GREATER-THAN OVER EQUAL TO */
-MAP(0x21, 0x67, 0x221E) /* INFINITY */
-MAP(0x21, 0x68, 0x2234) /* THEREFORE */
-MAP(0x21, 0x69, 0x2642) /* MALE SIGN */
-MAP(0x21, 0x6A, 0x2640) /* FEMALE SIGN */
-MAP(0x21, 0x6B, 0x00B0) /* DEGREE SIGN */
-MAP(0x21, 0x6C, 0x2032) /* PRIME */
-MAP(0x21, 0x6D, 0x2033) /* DOUBLE PRIME */
-MAP(0x21, 0x6E, 0x2103) /* DEGREE CELSIUS */
-MAP(0x21, 0x6F, 0xFFE5) /* FULLWIDTH YEN SIGN */
-MAP(0x21, 0x70, 0xFF04) /* FULLWIDTH DOLLAR SIGN */
-MAP(0x21, 0x71, 0x00A2) /* CENT SIGN */
-MAP(0x21, 0x72, 0x00A3) /* POUND SIGN */
-MAP(0x21, 0x73, 0xFF05) /* FULLWIDTH PERCENT SIGN */
-MAP(0x21, 0x74, 0xFF03) /* FULLWIDTH NUMBER SIGN */
-MAP(0x21, 0x75, 0xFF06) /* FULLWIDTH AMPERSAND */
-MAP(0x21, 0x76, 0xFF0A) /* FULLWIDTH ASTERISK */
-MAP(0x21, 0x77, 0xFF20) /* FULLWIDTH COMMERCIAL AT */
-MAP(0x21, 0x78, 0x00A7) /* SECTION SIGN */
-MAP(0x21, 0x79, 0x2606) /* WHITE STAR */
-MAP(0x21, 0x7A, 0x2605) /* BLACK STAR */
-MAP(0x21, 0x7B, 0x25CB) /* WHITE CIRCLE */
-MAP(0x21, 0x7C, 0x25CF) /* BLACK CIRCLE */
-MAP(0x21, 0x7D, 0x25CE) /* BULLSEYE */
-MAP(0x21, 0x7E, 0x25C7) /* WHITE DIAMOND */
-MAP(0x22, 0x21, 0x25C6) /* BLACK DIAMOND */
-MAP(0x22, 0x22, 0x25A1) /* WHITE SQUARE */
-MAP(0x22, 0x23, 0x25A0) /* BLACK SQUARE */
-MAP(0x22, 0x24, 0x25B3) /* WHITE UP-POINTING TRIANGLE */
-MAP(0x22, 0x25, 0x25B2) /* BLACK UP-POINTING TRIANGLE */
-MAP(0x22, 0x26, 0x25BD) /* WHITE DOWN-POINTING TRIANGLE */
-MAP(0x22, 0x27, 0x25BC) /* BLACK DOWN-POINTING TRIANGLE */
-MAP(0x22, 0x28, 0x203B) /* REFERENCE MARK */
-MAP(0x22, 0x29, 0x3012) /* POSTAL MARK */
-MAP(0x22, 0x2A, 0x2192) /* RIGHTWARDS ARROW */
-MAP(0x22, 0x2B, 0x2190) /* LEFTWARDS ARROW */
-MAP(0x22, 0x2C, 0x2191) /* UPWARDS ARROW */
-MAP(0x22, 0x2D, 0x2193) /* DOWNWARDS ARROW */
-MAP(0x22, 0x2E, 0x3013) /* GETA MARK */
-MAP(0x22, 0x3A, 0x2208) /* ELEMENT OF */
-MAP(0x22, 0x3B, 0x220B) /* CONTAINS AS MEMBER */
-MAP(0x22, 0x3C, 0x2286) /* SUBSET OF OR EQUAL TO */
-MAP(0x22, 0x3D, 0x2287) /* SUPERSET OF OR EQUAL TO */
-MAP(0x22, 0x3E, 0x2282) /* SUBSET OF */
-MAP(0x22, 0x3F, 0x2283) /* SUPERSET OF */
-MAP(0x22, 0x40, 0x222A) /* UNION */
-MAP(0x22, 0x41, 0x2229) /* INTERSECTION */
-MAP(0x22, 0x4A, 0x2227) /* LOGICAL AND */
-MAP(0x22, 0x4B, 0x2228) /* LOGICAL OR */
-MAP(0x22, 0x4C, 0x00AC) /* NOT SIGN */
-MAP(0x22, 0x4D, 0x21D2) /* RIGHTWARDS DOUBLE ARROW */
-MAP(0x22, 0x4E, 0x21D4) /* LEFT RIGHT DOUBLE ARROW */
-MAP(0x22, 0x4F, 0x2200) /* FOR ALL */
-MAP(0x22, 0x50, 0x2203) /* THERE EXISTS */
-MAP(0x22, 0x5C, 0x2220) /* ANGLE */
-MAP(0x22, 0x5D, 0x22A5) /* UP TACK */
-MAP(0x22, 0x5E, 0x2312) /* ARC */
-MAP(0x22, 0x5F, 0x2202) /* PARTIAL DIFFERENTIAL */
-MAP(0x22, 0x60, 0x2207) /* NABLA */
-MAP(0x22, 0x61, 0x2261) /* IDENTICAL TO */
-MAP(0x22, 0x62, 0x2252) /* APPROXIMATELY EQUAL TO OR THE IMAGE OF */
-MAP(0x22, 0x63, 0x226A) /* MUCH LESS-THAN */
-MAP(0x22, 0x64, 0x226B) /* MUCH GREATER-THAN */
-MAP(0x22, 0x65, 0x221A) /* SQUARE ROOT */
-MAP(0x22, 0x66, 0x223D) /* REVERSED TILDE */
-MAP(0x22, 0x67, 0x221D) /* PROPORTIONAL TO */
-MAP(0x22, 0x68, 0x2235) /* BECAUSE */
-MAP(0x22, 0x69, 0x222B) /* INTEGRAL */
-MAP(0x22, 0x6A, 0x222C) /* DOUBLE INTEGRAL */
-MAP(0x22, 0x72, 0x212B) /* ANGSTROM SIGN */
-MAP(0x22, 0x73, 0x2030) /* PER MILLE SIGN */
-MAP(0x22, 0x74, 0x266F) /* MUSIC SHARP SIGN */
-MAP(0x22, 0x75, 0x266D) /* MUSIC FLAT SIGN */
-MAP(0x22, 0x76, 0x266A) /* EIGHTH NOTE */
-MAP(0x22, 0x77, 0x2020) /* DAGGER */
-MAP(0x22, 0x78, 0x2021) /* DOUBLE DAGGER */
-MAP(0x22, 0x79, 0x00B6) /* PILCROW SIGN */
-MAP(0x22, 0x7E, 0x25EF) /* LARGE CIRCLE */
-MAP(0x23, 0x30, 0xFF10) /* FULLWIDTH DIGIT ZERO */
-MAP(0x23, 0x31, 0xFF11) /* FULLWIDTH DIGIT ONE */
-MAP(0x23, 0x32, 0xFF12) /* FULLWIDTH DIGIT TWO */
-MAP(0x23, 0x33, 0xFF13) /* FULLWIDTH DIGIT THREE */
-MAP(0x23, 0x34, 0xFF14) /* FULLWIDTH DIGIT FOUR */
-MAP(0x23, 0x35, 0xFF15) /* FULLWIDTH DIGIT FIVE */
-MAP(0x23, 0x36, 0xFF16) /* FULLWIDTH DIGIT SIX */
-MAP(0x23, 0x37, 0xFF17) /* FULLWIDTH DIGIT SEVEN */
-MAP(0x23, 0x38, 0xFF18) /* FULLWIDTH DIGIT EIGHT */
-MAP(0x23, 0x39, 0xFF19) /* FULLWIDTH DIGIT NINE */
-MAP(0x23, 0x41, 0xFF21) /* FULLWIDTH LATIN CAPITAL LETTER A */
-MAP(0x23, 0x42, 0xFF22) /* FULLWIDTH LATIN CAPITAL LETTER B */
-MAP(0x23, 0x43, 0xFF23) /* FULLWIDTH LATIN CAPITAL LETTER C */
-MAP(0x23, 0x44, 0xFF24) /* FULLWIDTH LATIN CAPITAL LETTER D */
-MAP(0x23, 0x45, 0xFF25) /* FULLWIDTH LATIN CAPITAL LETTER E */
-MAP(0x23, 0x46, 0xFF26) /* FULLWIDTH LATIN CAPITAL LETTER F */
-MAP(0x23, 0x47, 0xFF27) /* FULLWIDTH LATIN CAPITAL LETTER G */
-MAP(0x23, 0x48, 0xFF28) /* FULLWIDTH LATIN CAPITAL LETTER H */
-MAP(0x23, 0x49, 0xFF29) /* FULLWIDTH LATIN CAPITAL LETTER I */
-MAP(0x23, 0x4A, 0xFF2A) /* FULLWIDTH LATIN CAPITAL LETTER J */
-MAP(0x23, 0x4B, 0xFF2B) /* FULLWIDTH LATIN CAPITAL LETTER K */
-MAP(0x23, 0x4C, 0xFF2C) /* FULLWIDTH LATIN CAPITAL LETTER L */
-MAP(0x23, 0x4D, 0xFF2D) /* FULLWIDTH LATIN CAPITAL LETTER M */
-MAP(0x23, 0x4E, 0xFF2E) /* FULLWIDTH LATIN CAPITAL LETTER N */
-MAP(0x23, 0x4F, 0xFF2F) /* FULLWIDTH LATIN CAPITAL LETTER O */
-MAP(0x23, 0x50, 0xFF30) /* FULLWIDTH LATIN CAPITAL LETTER P */
-MAP(0x23, 0x51, 0xFF31) /* FULLWIDTH LATIN CAPITAL LETTER Q */
-MAP(0x23, 0x52, 0xFF32) /* FULLWIDTH LATIN CAPITAL LETTER R */
-MAP(0x23, 0x53, 0xFF33) /* FULLWIDTH LATIN CAPITAL LETTER S */
-MAP(0x23, 0x54, 0xFF34) /* FULLWIDTH LATIN CAPITAL LETTER T */
-MAP(0x23, 0x55, 0xFF35) /* FULLWIDTH LATIN CAPITAL LETTER U */
-MAP(0x23, 0x56, 0xFF36) /* FULLWIDTH LATIN CAPITAL LETTER V */
-MAP(0x23, 0x57, 0xFF37) /* FULLWIDTH LATIN CAPITAL LETTER W */
-MAP(0x23, 0x58, 0xFF38) /* FULLWIDTH LATIN CAPITAL LETTER X */
-MAP(0x23, 0x59, 0xFF39) /* FULLWIDTH LATIN CAPITAL LETTER Y */
-MAP(0x23, 0x5A, 0xFF3A) /* FULLWIDTH LATIN CAPITAL LETTER Z */
-MAP(0x23, 0x61, 0xFF41) /* FULLWIDTH LATIN SMALL LETTER A */
-MAP(0x23, 0x62, 0xFF42) /* FULLWIDTH LATIN SMALL LETTER B */
-MAP(0x23, 0x63, 0xFF43) /* FULLWIDTH LATIN SMALL LETTER C */
-MAP(0x23, 0x64, 0xFF44) /* FULLWIDTH LATIN SMALL LETTER D */
-MAP(0x23, 0x65, 0xFF45) /* FULLWIDTH LATIN SMALL LETTER E */
-MAP(0x23, 0x66, 0xFF46) /* FULLWIDTH LATIN SMALL LETTER F */
-MAP(0x23, 0x67, 0xFF47) /* FULLWIDTH LATIN SMALL LETTER G */
-MAP(0x23, 0x68, 0xFF48) /* FULLWIDTH LATIN SMALL LETTER H */
-MAP(0x23, 0x69, 0xFF49) /* FULLWIDTH LATIN SMALL LETTER I */
-MAP(0x23, 0x6A, 0xFF4A) /* FULLWIDTH LATIN SMALL LETTER J */
-MAP(0x23, 0x6B, 0xFF4B) /* FULLWIDTH LATIN SMALL LETTER K */
-MAP(0x23, 0x6C, 0xFF4C) /* FULLWIDTH LATIN SMALL LETTER L */
-MAP(0x23, 0x6D, 0xFF4D) /* FULLWIDTH LATIN SMALL LETTER M */
-MAP(0x23, 0x6E, 0xFF4E) /* FULLWIDTH LATIN SMALL LETTER N */
-MAP(0x23, 0x6F, 0xFF4F) /* FULLWIDTH LATIN SMALL LETTER O */
-MAP(0x23, 0x70, 0xFF50) /* FULLWIDTH LATIN SMALL LETTER P */
-MAP(0x23, 0x71, 0xFF51) /* FULLWIDTH LATIN SMALL LETTER Q */
-MAP(0x23, 0x72, 0xFF52) /* FULLWIDTH LATIN SMALL LETTER R */
-MAP(0x23, 0x73, 0xFF53) /* FULLWIDTH LATIN SMALL LETTER S */
-MAP(0x23, 0x74, 0xFF54) /* FULLWIDTH LATIN SMALL LETTER T */
-MAP(0x23, 0x75, 0xFF55) /* FULLWIDTH LATIN SMALL LETTER U */
-MAP(0x23, 0x76, 0xFF56) /* FULLWIDTH LATIN SMALL LETTER V */
-MAP(0x23, 0x77, 0xFF57) /* FULLWIDTH LATIN SMALL LETTER W */
-MAP(0x23, 0x78, 0xFF58) /* FULLWIDTH LATIN SMALL LETTER X */
-MAP(0x23, 0x79, 0xFF59) /* FULLWIDTH LATIN SMALL LETTER Y */
-MAP(0x23, 0x7A, 0xFF5A) /* FULLWIDTH LATIN SMALL LETTER Z */
-MAP(0x24, 0x21, 0x3041) /* HIRAGANA LETTER SMALL A */
-MAP(0x24, 0x22, 0x3042) /* HIRAGANA LETTER A */
-MAP(0x24, 0x23, 0x3043) /* HIRAGANA LETTER SMALL I */
-MAP(0x24, 0x24, 0x3044) /* HIRAGANA LETTER I */
-MAP(0x24, 0x25, 0x3045) /* HIRAGANA LETTER SMALL U */
-MAP(0x24, 0x26, 0x3046) /* HIRAGANA LETTER U */
-MAP(0x24, 0x27, 0x3047) /* HIRAGANA LETTER SMALL E */
-MAP(0x24, 0x28, 0x3048) /* HIRAGANA LETTER E */
-MAP(0x24, 0x29, 0x3049) /* HIRAGANA LETTER SMALL O */
-MAP(0x24, 0x2A, 0x304A) /* HIRAGANA LETTER O */
-MAP(0x24, 0x2B, 0x304B) /* HIRAGANA LETTER KA */
-MAP(0x24, 0x2C, 0x304C) /* HIRAGANA LETTER GA */
-MAP(0x24, 0x2D, 0x304D) /* HIRAGANA LETTER KI */
-MAP(0x24, 0x2E, 0x304E) /* HIRAGANA LETTER GI */
-MAP(0x24, 0x2F, 0x304F) /* HIRAGANA LETTER KU */
-MAP(0x24, 0x30, 0x3050) /* HIRAGANA LETTER GU */
-MAP(0x24, 0x31, 0x3051) /* HIRAGANA LETTER KE */
-MAP(0x24, 0x32, 0x3052) /* HIRAGANA LETTER GE */
-MAP(0x24, 0x33, 0x3053) /* HIRAGANA LETTER KO */
-MAP(0x24, 0x34, 0x3054) /* HIRAGANA LETTER GO */
-MAP(0x24, 0x35, 0x3055) /* HIRAGANA LETTER SA */
-MAP(0x24, 0x36, 0x3056) /* HIRAGANA LETTER ZA */
-MAP(0x24, 0x37, 0x3057) /* HIRAGANA LETTER SI */
-MAP(0x24, 0x38, 0x3058) /* HIRAGANA LETTER ZI */
-MAP(0x24, 0x39, 0x3059) /* HIRAGANA LETTER SU */
-MAP(0x24, 0x3A, 0x305A) /* HIRAGANA LETTER ZU */
-MAP(0x24, 0x3B, 0x305B) /* HIRAGANA LETTER SE */
-MAP(0x24, 0x3C, 0x305C) /* HIRAGANA LETTER ZE */
-MAP(0x24, 0x3D, 0x305D) /* HIRAGANA LETTER SO */
-MAP(0x24, 0x3E, 0x305E) /* HIRAGANA LETTER ZO */
-MAP(0x24, 0x3F, 0x305F) /* HIRAGANA LETTER TA */
-MAP(0x24, 0x40, 0x3060) /* HIRAGANA LETTER DA */
-MAP(0x24, 0x41, 0x3061) /* HIRAGANA LETTER TI */
-MAP(0x24, 0x42, 0x3062) /* HIRAGANA LETTER DI */
-MAP(0x24, 0x43, 0x3063) /* HIRAGANA LETTER SMALL TU */
-MAP(0x24, 0x44, 0x3064) /* HIRAGANA LETTER TU */
-MAP(0x24, 0x45, 0x3065) /* HIRAGANA LETTER DU */
-MAP(0x24, 0x46, 0x3066) /* HIRAGANA LETTER TE */
-MAP(0x24, 0x47, 0x3067) /* HIRAGANA LETTER DE */
-MAP(0x24, 0x48, 0x3068) /* HIRAGANA LETTER TO */
-MAP(0x24, 0x49, 0x3069) /* HIRAGANA LETTER DO */
-MAP(0x24, 0x4A, 0x306A) /* HIRAGANA LETTER NA */
-MAP(0x24, 0x4B, 0x306B) /* HIRAGANA LETTER NI */
-MAP(0x24, 0x4C, 0x306C) /* HIRAGANA LETTER NU */
-MAP(0x24, 0x4D, 0x306D) /* HIRAGANA LETTER NE */
-MAP(0x24, 0x4E, 0x306E) /* HIRAGANA LETTER NO */
-MAP(0x24, 0x4F, 0x306F) /* HIRAGANA LETTER HA */
-MAP(0x24, 0x50, 0x3070) /* HIRAGANA LETTER BA */
-MAP(0x24, 0x51, 0x3071) /* HIRAGANA LETTER PA */
-MAP(0x24, 0x52, 0x3072) /* HIRAGANA LETTER HI */
-MAP(0x24, 0x53, 0x3073) /* HIRAGANA LETTER BI */
-MAP(0x24, 0x54, 0x3074) /* HIRAGANA LETTER PI */
-MAP(0x24, 0x55, 0x3075) /* HIRAGANA LETTER HU */
-MAP(0x24, 0x56, 0x3076) /* HIRAGANA LETTER BU */
-MAP(0x24, 0x57, 0x3077) /* HIRAGANA LETTER PU */
-MAP(0x24, 0x58, 0x3078) /* HIRAGANA LETTER HE */
-MAP(0x24, 0x59, 0x3079) /* HIRAGANA LETTER BE */
-MAP(0x24, 0x5A, 0x307A) /* HIRAGANA LETTER PE */
-MAP(0x24, 0x5B, 0x307B) /* HIRAGANA LETTER HO */
-MAP(0x24, 0x5C, 0x307C) /* HIRAGANA LETTER BO */
-MAP(0x24, 0x5D, 0x307D) /* HIRAGANA LETTER PO */
-MAP(0x24, 0x5E, 0x307E) /* HIRAGANA LETTER MA */
-MAP(0x24, 0x5F, 0x307F) /* HIRAGANA LETTER MI */
-MAP(0x24, 0x60, 0x3080) /* HIRAGANA LETTER MU */
-MAP(0x24, 0x61, 0x3081) /* HIRAGANA LETTER ME */
-MAP(0x24, 0x62, 0x3082) /* HIRAGANA LETTER MO */
-MAP(0x24, 0x63, 0x3083) /* HIRAGANA LETTER SMALL YA */
-MAP(0x24, 0x64, 0x3084) /* HIRAGANA LETTER YA */
-MAP(0x24, 0x65, 0x3085) /* HIRAGANA LETTER SMALL YU */
-MAP(0x24, 0x66, 0x3086) /* HIRAGANA LETTER YU */
-MAP(0x24, 0x67, 0x3087) /* HIRAGANA LETTER SMALL YO */
-MAP(0x24, 0x68, 0x3088) /* HIRAGANA LETTER YO */
-MAP(0x24, 0x69, 0x3089) /* HIRAGANA LETTER RA */
-MAP(0x24, 0x6A, 0x308A) /* HIRAGANA LETTER RI */
-MAP(0x24, 0x6B, 0x308B) /* HIRAGANA LETTER RU */
-MAP(0x24, 0x6C, 0x308C) /* HIRAGANA LETTER RE */
-MAP(0x24, 0x6D, 0x308D) /* HIRAGANA LETTER RO */
-MAP(0x24, 0x6E, 0x308E) /* HIRAGANA LETTER SMALL WA */
-MAP(0x24, 0x6F, 0x308F) /* HIRAGANA LETTER WA */
-MAP(0x24, 0x70, 0x3090) /* HIRAGANA LETTER WI */
-MAP(0x24, 0x71, 0x3091) /* HIRAGANA LETTER WE */
-MAP(0x24, 0x72, 0x3092) /* HIRAGANA LETTER WO */
-MAP(0x24, 0x73, 0x3093) /* HIRAGANA LETTER N */
-MAP(0x25, 0x21, 0x30A1) /* KATAKANA LETTER SMALL A */
-MAP(0x25, 0x22, 0x30A2) /* KATAKANA LETTER A */
-MAP(0x25, 0x23, 0x30A3) /* KATAKANA LETTER SMALL I */
-MAP(0x25, 0x24, 0x30A4) /* KATAKANA LETTER I */
-MAP(0x25, 0x25, 0x30A5) /* KATAKANA LETTER SMALL U */
-MAP(0x25, 0x26, 0x30A6) /* KATAKANA LETTER U */
-MAP(0x25, 0x27, 0x30A7) /* KATAKANA LETTER SMALL E */
-MAP(0x25, 0x28, 0x30A8) /* KATAKANA LETTER E */
-MAP(0x25, 0x29, 0x30A9) /* KATAKANA LETTER SMALL O */
-MAP(0x25, 0x2A, 0x30AA) /* KATAKANA LETTER O */
-MAP(0x25, 0x2B, 0x30AB) /* KATAKANA LETTER KA */
-MAP(0x25, 0x2C, 0x30AC) /* KATAKANA LETTER GA */
-MAP(0x25, 0x2D, 0x30AD) /* KATAKANA LETTER KI */
-MAP(0x25, 0x2E, 0x30AE) /* KATAKANA LETTER GI */
-MAP(0x25, 0x2F, 0x30AF) /* KATAKANA LETTER KU */
-MAP(0x25, 0x30, 0x30B0) /* KATAKANA LETTER GU */
-MAP(0x25, 0x31, 0x30B1) /* KATAKANA LETTER KE */
-MAP(0x25, 0x32, 0x30B2) /* KATAKANA LETTER GE */
-MAP(0x25, 0x33, 0x30B3) /* KATAKANA LETTER KO */
-MAP(0x25, 0x34, 0x30B4) /* KATAKANA LETTER GO */
-MAP(0x25, 0x35, 0x30B5) /* KATAKANA LETTER SA */
-MAP(0x25, 0x36, 0x30B6) /* KATAKANA LETTER ZA */
-MAP(0x25, 0x37, 0x30B7) /* KATAKANA LETTER SI */
-MAP(0x25, 0x38, 0x30B8) /* KATAKANA LETTER ZI */
-MAP(0x25, 0x39, 0x30B9) /* KATAKANA LETTER SU */
-MAP(0x25, 0x3A, 0x30BA) /* KATAKANA LETTER ZU */
-MAP(0x25, 0x3B, 0x30BB) /* KATAKANA LETTER SE */
-MAP(0x25, 0x3C, 0x30BC) /* KATAKANA LETTER ZE */
-MAP(0x25, 0x3D, 0x30BD) /* KATAKANA LETTER SO */
-MAP(0x25, 0x3E, 0x30BE) /* KATAKANA LETTER ZO */
-MAP(0x25, 0x3F, 0x30BF) /* KATAKANA LETTER TA */
-MAP(0x25, 0x40, 0x30C0) /* KATAKANA LETTER DA */
-MAP(0x25, 0x41, 0x30C1) /* KATAKANA LETTER TI */
-MAP(0x25, 0x42, 0x30C2) /* KATAKANA LETTER DI */
-MAP(0x25, 0x43, 0x30C3) /* KATAKANA LETTER SMALL TU */
-MAP(0x25, 0x44, 0x30C4) /* KATAKANA LETTER TU */
-MAP(0x25, 0x45, 0x30C5) /* KATAKANA LETTER DU */
-MAP(0x25, 0x46, 0x30C6) /* KATAKANA LETTER TE */
-MAP(0x25, 0x47, 0x30C7) /* KATAKANA LETTER DE */
-MAP(0x25, 0x48, 0x30C8) /* KATAKANA LETTER TO */
-MAP(0x25, 0x49, 0x30C9) /* KATAKANA LETTER DO */
-MAP(0x25, 0x4A, 0x30CA) /* KATAKANA LETTER NA */
-MAP(0x25, 0x4B, 0x30CB) /* KATAKANA LETTER NI */
-MAP(0x25, 0x4C, 0x30CC) /* KATAKANA LETTER NU */
-MAP(0x25, 0x4D, 0x30CD) /* KATAKANA LETTER NE */
-MAP(0x25, 0x4E, 0x30CE) /* KATAKANA LETTER NO */
-MAP(0x25, 0x4F, 0x30CF) /* KATAKANA LETTER HA */
-MAP(0x25, 0x50, 0x30D0) /* KATAKANA LETTER BA */
-MAP(0x25, 0x51, 0x30D1) /* KATAKANA LETTER PA */
-MAP(0x25, 0x52, 0x30D2) /* KATAKANA LETTER HI */
-MAP(0x25, 0x53, 0x30D3) /* KATAKANA LETTER BI */
-MAP(0x25, 0x54, 0x30D4) /* KATAKANA LETTER PI */
-MAP(0x25, 0x55, 0x30D5) /* KATAKANA LETTER HU */
-MAP(0x25, 0x56, 0x30D6) /* KATAKANA LETTER BU */
-MAP(0x25, 0x57, 0x30D7) /* KATAKANA LETTER PU */
-MAP(0x25, 0x58, 0x30D8) /* KATAKANA LETTER HE */
-MAP(0x25, 0x59, 0x30D9) /* KATAKANA LETTER BE */
-MAP(0x25, 0x5A, 0x30DA) /* KATAKANA LETTER PE */
-MAP(0x25, 0x5B, 0x30DB) /* KATAKANA LETTER HO */
-MAP(0x25, 0x5C, 0x30DC) /* KATAKANA LETTER BO */
-MAP(0x25, 0x5D, 0x30DD) /* KATAKANA LETTER PO */
-MAP(0x25, 0x5E, 0x30DE) /* KATAKANA LETTER MA */
-MAP(0x25, 0x5F, 0x30DF) /* KATAKANA LETTER MI */
-MAP(0x25, 0x60, 0x30E0) /* KATAKANA LETTER MU */
-MAP(0x25, 0x61, 0x30E1) /* KATAKANA LETTER ME */
-MAP(0x25, 0x62, 0x30E2) /* KATAKANA LETTER MO */
-MAP(0x25, 0x63, 0x30E3) /* KATAKANA LETTER SMALL YA */
-MAP(0x25, 0x64, 0x30E4) /* KATAKANA LETTER YA */
-MAP(0x25, 0x65, 0x30E5) /* KATAKANA LETTER SMALL YU */
-MAP(0x25, 0x66, 0x30E6) /* KATAKANA LETTER YU */
-MAP(0x25, 0x67, 0x30E7) /* KATAKANA LETTER SMALL YO */
-MAP(0x25, 0x68, 0x30E8) /* KATAKANA LETTER YO */
-MAP(0x25, 0x69, 0x30E9) /* KATAKANA LETTER RA */
-MAP(0x25, 0x6A, 0x30EA) /* KATAKANA LETTER RI */
-MAP(0x25, 0x6B, 0x30EB) /* KATAKANA LETTER RU */
-MAP(0x25, 0x6C, 0x30EC) /* KATAKANA LETTER RE */
-MAP(0x25, 0x6D, 0x30ED) /* KATAKANA LETTER RO */
-MAP(0x25, 0x6E, 0x30EE) /* KATAKANA LETTER SMALL WA */
-MAP(0x25, 0x6F, 0x30EF) /* KATAKANA LETTER WA */
-MAP(0x25, 0x70, 0x30F0) /* KATAKANA LETTER WI */
-MAP(0x25, 0x71, 0x30F1) /* KATAKANA LETTER WE */
-MAP(0x25, 0x72, 0x30F2) /* KATAKANA LETTER WO */
-MAP(0x25, 0x73, 0x30F3) /* KATAKANA LETTER N */
-MAP(0x25, 0x74, 0x30F4) /* KATAKANA LETTER VU */
-MAP(0x25, 0x75, 0x30F5) /* KATAKANA LETTER SMALL KA */
-MAP(0x25, 0x76, 0x30F6) /* KATAKANA LETTER SMALL KE */
-MAP(0x26, 0x21, 0x0391) /* GREEK CAPITAL LETTER ALPHA */
-MAP(0x26, 0x22, 0x0392) /* GREEK CAPITAL LETTER BETA */
-MAP(0x26, 0x23, 0x0393) /* GREEK CAPITAL LETTER GAMMA */
-MAP(0x26, 0x24, 0x0394) /* GREEK CAPITAL LETTER DELTA */
-MAP(0x26, 0x25, 0x0395) /* GREEK CAPITAL LETTER EPSILON */
-MAP(0x26, 0x26, 0x0396) /* GREEK CAPITAL LETTER ZETA */
-MAP(0x26, 0x27, 0x0397) /* GREEK CAPITAL LETTER ETA */
-MAP(0x26, 0x28, 0x0398) /* GREEK CAPITAL LETTER THETA */
-MAP(0x26, 0x29, 0x0399) /* GREEK CAPITAL LETTER IOTA */
-MAP(0x26, 0x2A, 0x039A) /* GREEK CAPITAL LETTER KAPPA */
-MAP(0x26, 0x2B, 0x039B) /* GREEK CAPITAL LETTER LAMDA */
-MAP(0x26, 0x2C, 0x039C) /* GREEK CAPITAL LETTER MU */
-MAP(0x26, 0x2D, 0x039D) /* GREEK CAPITAL LETTER NU */
-MAP(0x26, 0x2E, 0x039E) /* GREEK CAPITAL LETTER XI */
-MAP(0x26, 0x2F, 0x039F) /* GREEK CAPITAL LETTER OMICRON */
-MAP(0x26, 0x30, 0x03A0) /* GREEK CAPITAL LETTER PI */
-MAP(0x26, 0x31, 0x03A1) /* GREEK CAPITAL LETTER RHO */
-MAP(0x26, 0x32, 0x03A3) /* GREEK CAPITAL LETTER SIGMA */
-MAP(0x26, 0x33, 0x03A4) /* GREEK CAPITAL LETTER TAU */
-MAP(0x26, 0x34, 0x03A5) /* GREEK CAPITAL LETTER UPSILON */
-MAP(0x26, 0x35, 0x03A6) /* GREEK CAPITAL LETTER PHI */
-MAP(0x26, 0x36, 0x03A7) /* GREEK CAPITAL LETTER CHI */
-MAP(0x26, 0x37, 0x03A8) /* GREEK CAPITAL LETTER PSI */
-MAP(0x26, 0x38, 0x03A9) /* GREEK CAPITAL LETTER OMEGA */
-MAP(0x26, 0x41, 0x03B1) /* GREEK SMALL LETTER ALPHA */
-MAP(0x26, 0x42, 0x03B2) /* GREEK SMALL LETTER BETA */
-MAP(0x26, 0x43, 0x03B3) /* GREEK SMALL LETTER GAMMA */
-MAP(0x26, 0x44, 0x03B4) /* GREEK SMALL LETTER DELTA */
-MAP(0x26, 0x45, 0x03B5) /* GREEK SMALL LETTER EPSILON */
-MAP(0x26, 0x46, 0x03B6) /* GREEK SMALL LETTER ZETA */
-MAP(0x26, 0x47, 0x03B7) /* GREEK SMALL LETTER ETA */
-MAP(0x26, 0x48, 0x03B8) /* GREEK SMALL LETTER THETA */
-MAP(0x26, 0x49, 0x03B9) /* GREEK SMALL LETTER IOTA */
-MAP(0x26, 0x4A, 0x03BA) /* GREEK SMALL LETTER KAPPA */
-MAP(0x26, 0x4B, 0x03BB) /* GREEK SMALL LETTER LAMDA */
-MAP(0x26, 0x4C, 0x03BC) /* GREEK SMALL LETTER MU */
-MAP(0x26, 0x4D, 0x03BD) /* GREEK SMALL LETTER NU */
-MAP(0x26, 0x4E, 0x03BE) /* GREEK SMALL LETTER XI */
-MAP(0x26, 0x4F, 0x03BF) /* GREEK SMALL LETTER OMICRON */
-MAP(0x26, 0x50, 0x03C0) /* GREEK SMALL LETTER PI */
-MAP(0x26, 0x51, 0x03C1) /* GREEK SMALL LETTER RHO */
-MAP(0x26, 0x52, 0x03C3) /* GREEK SMALL LETTER SIGMA */
-MAP(0x26, 0x53, 0x03C4) /* GREEK SMALL LETTER TAU */
-MAP(0x26, 0x54, 0x03C5) /* GREEK SMALL LETTER UPSILON */
-MAP(0x26, 0x55, 0x03C6) /* GREEK SMALL LETTER PHI */
-MAP(0x26, 0x56, 0x03C7) /* GREEK SMALL LETTER CHI */
-MAP(0x26, 0x57, 0x03C8) /* GREEK SMALL LETTER PSI */
-MAP(0x26, 0x58, 0x03C9) /* GREEK SMALL LETTER OMEGA */
-MAP(0x27, 0x21, 0x0410) /* CYRILLIC CAPITAL LETTER A */
-MAP(0x27, 0x22, 0x0411) /* CYRILLIC CAPITAL LETTER BE */
-MAP(0x27, 0x23, 0x0412) /* CYRILLIC CAPITAL LETTER VE */
-MAP(0x27, 0x24, 0x0413) /* CYRILLIC CAPITAL LETTER GHE */
-MAP(0x27, 0x25, 0x0414) /* CYRILLIC CAPITAL LETTER DE */
-MAP(0x27, 0x26, 0x0415) /* CYRILLIC CAPITAL LETTER IE */
-MAP(0x27, 0x27, 0x0401) /* CYRILLIC CAPITAL LETTER IO */
-MAP(0x27, 0x28, 0x0416) /* CYRILLIC CAPITAL LETTER ZHE */
-MAP(0x27, 0x29, 0x0417) /* CYRILLIC CAPITAL LETTER ZE */
-MAP(0x27, 0x2A, 0x0418) /* CYRILLIC CAPITAL LETTER I */
-MAP(0x27, 0x2B, 0x0419) /* CYRILLIC CAPITAL LETTER SHORT I */
-MAP(0x27, 0x2C, 0x041A) /* CYRILLIC CAPITAL LETTER KA */
-MAP(0x27, 0x2D, 0x041B) /* CYRILLIC CAPITAL LETTER EL */
-MAP(0x27, 0x2E, 0x041C) /* CYRILLIC CAPITAL LETTER EM */
-MAP(0x27, 0x2F, 0x041D) /* CYRILLIC CAPITAL LETTER EN */
-MAP(0x27, 0x30, 0x041E) /* CYRILLIC CAPITAL LETTER O */
-MAP(0x27, 0x31, 0x041F) /* CYRILLIC CAPITAL LETTER PE */
-MAP(0x27, 0x32, 0x0420) /* CYRILLIC CAPITAL LETTER ER */
-MAP(0x27, 0x33, 0x0421) /* CYRILLIC CAPITAL LETTER ES */
-MAP(0x27, 0x34, 0x0422) /* CYRILLIC CAPITAL LETTER TE */
-MAP(0x27, 0x35, 0x0423) /* CYRILLIC CAPITAL LETTER U */
-MAP(0x27, 0x36, 0x0424) /* CYRILLIC CAPITAL LETTER EF */
-MAP(0x27, 0x37, 0x0425) /* CYRILLIC CAPITAL LETTER HA */
-MAP(0x27, 0x38, 0x0426) /* CYRILLIC CAPITAL LETTER TSE */
-MAP(0x27, 0x39, 0x0427) /* CYRILLIC CAPITAL LETTER CHE */
-MAP(0x27, 0x3A, 0x0428) /* CYRILLIC CAPITAL LETTER SHA */
-MAP(0x27, 0x3B, 0x0429) /* CYRILLIC CAPITAL LETTER SHCHA */
-MAP(0x27, 0x3C, 0x042A) /* CYRILLIC CAPITAL LETTER HARD SIGN */
-MAP(0x27, 0x3D, 0x042B) /* CYRILLIC CAPITAL LETTER YERU */
-MAP(0x27, 0x3E, 0x042C) /* CYRILLIC CAPITAL LETTER SOFT SIGN */
-MAP(0x27, 0x3F, 0x042D) /* CYRILLIC CAPITAL LETTER E */
-MAP(0x27, 0x40, 0x042E) /* CYRILLIC CAPITAL LETTER YU */
-MAP(0x27, 0x41, 0x042F) /* CYRILLIC CAPITAL LETTER YA */
-MAP(0x27, 0x51, 0x0430) /* CYRILLIC SMALL LETTER A */
-MAP(0x27, 0x52, 0x0431) /* CYRILLIC SMALL LETTER BE */
-MAP(0x27, 0x53, 0x0432) /* CYRILLIC SMALL LETTER VE */
-MAP(0x27, 0x54, 0x0433) /* CYRILLIC SMALL LETTER GHE */
-MAP(0x27, 0x55, 0x0434) /* CYRILLIC SMALL LETTER DE */
-MAP(0x27, 0x56, 0x0435) /* CYRILLIC SMALL LETTER IE */
-MAP(0x27, 0x57, 0x0451) /* CYRILLIC SMALL LETTER IO */
-MAP(0x27, 0x58, 0x0436) /* CYRILLIC SMALL LETTER ZHE */
-MAP(0x27, 0x59, 0x0437) /* CYRILLIC SMALL LETTER ZE */
-MAP(0x27, 0x5A, 0x0438) /* CYRILLIC SMALL LETTER I */
-MAP(0x27, 0x5B, 0x0439) /* CYRILLIC SMALL LETTER SHORT I */
-MAP(0x27, 0x5C, 0x043A) /* CYRILLIC SMALL LETTER KA */
-MAP(0x27, 0x5D, 0x043B) /* CYRILLIC SMALL LETTER EL */
-MAP(0x27, 0x5E, 0x043C) /* CYRILLIC SMALL LETTER EM */
-MAP(0x27, 0x5F, 0x043D) /* CYRILLIC SMALL LETTER EN */
-MAP(0x27, 0x60, 0x043E) /* CYRILLIC SMALL LETTER O */
-MAP(0x27, 0x61, 0x043F) /* CYRILLIC SMALL LETTER PE */
-MAP(0x27, 0x62, 0x0440) /* CYRILLIC SMALL LETTER ER */
-MAP(0x27, 0x63, 0x0441) /* CYRILLIC SMALL LETTER ES */
-MAP(0x27, 0x64, 0x0442) /* CYRILLIC SMALL LETTER TE */
-MAP(0x27, 0x65, 0x0443) /* CYRILLIC SMALL LETTER U */
-MAP(0x27, 0x66, 0x0444) /* CYRILLIC SMALL LETTER EF */
-MAP(0x27, 0x67, 0x0445) /* CYRILLIC SMALL LETTER HA */
-MAP(0x27, 0x68, 0x0446) /* CYRILLIC SMALL LETTER TSE */
-MAP(0x27, 0x69, 0x0447) /* CYRILLIC SMALL LETTER CHE */
-MAP(0x27, 0x6A, 0x0448) /* CYRILLIC SMALL LETTER SHA */
-MAP(0x27, 0x6B, 0x0449) /* CYRILLIC SMALL LETTER SHCHA */
-MAP(0x27, 0x6C, 0x044A) /* CYRILLIC SMALL LETTER HARD SIGN */
-MAP(0x27, 0x6D, 0x044B) /* CYRILLIC SMALL LETTER YERU */
-MAP(0x27, 0x6E, 0x044C) /* CYRILLIC SMALL LETTER SOFT SIGN */
-MAP(0x27, 0x6F, 0x044D) /* CYRILLIC SMALL LETTER E */
-MAP(0x27, 0x70, 0x044E) /* CYRILLIC SMALL LETTER YU */
-MAP(0x27, 0x71, 0x044F) /* CYRILLIC SMALL LETTER YA */
-MAP(0x28, 0x21, 0x2500) /* BOX DRAWINGS LIGHT HORIZONTAL */
-MAP(0x28, 0x22, 0x2502) /* BOX DRAWINGS LIGHT VERTICAL */
-MAP(0x28, 0x23, 0x250C) /* BOX DRAWINGS LIGHT DOWN AND RIGHT */
-MAP(0x28, 0x24, 0x2510) /* BOX DRAWINGS LIGHT DOWN AND LEFT */
-MAP(0x28, 0x25, 0x2518) /* BOX DRAWINGS LIGHT UP AND LEFT */
-MAP(0x28, 0x26, 0x2514) /* BOX DRAWINGS LIGHT UP AND RIGHT */
-MAP(0x28, 0x27, 0x251C) /* BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
-MAP(0x28, 0x28, 0x252C) /* BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
-MAP(0x28, 0x29, 0x2524) /* BOX DRAWINGS LIGHT VERTICAL AND LEFT */
-MAP(0x28, 0x2A, 0x2534) /* BOX DRAWINGS LIGHT UP AND HORIZONTAL */
-MAP(0x28, 0x2B, 0x253C) /* BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
-MAP(0x28, 0x2C, 0x2501) /* BOX DRAWINGS HEAVY HORIZONTAL */
-MAP(0x28, 0x2D, 0x2503) /* BOX DRAWINGS HEAVY VERTICAL */
-MAP(0x28, 0x2E, 0x250F) /* BOX DRAWINGS HEAVY DOWN AND RIGHT */
-MAP(0x28, 0x2F, 0x2513) /* BOX DRAWINGS HEAVY DOWN AND LEFT */
-MAP(0x28, 0x30, 0x251B) /* BOX DRAWINGS HEAVY UP AND LEFT */
-MAP(0x28, 0x31, 0x2517) /* BOX DRAWINGS HEAVY UP AND RIGHT */
-MAP(0x28, 0x32, 0x2523) /* BOX DRAWINGS HEAVY VERTICAL AND RIGHT */
-MAP(0x28, 0x33, 0x2533) /* BOX DRAWINGS HEAVY DOWN AND HORIZONTAL */
-MAP(0x28, 0x34, 0x252B) /* BOX DRAWINGS HEAVY VERTICAL AND LEFT */
-MAP(0x28, 0x35, 0x253B) /* BOX DRAWINGS HEAVY UP AND HORIZONTAL */
-MAP(0x28, 0x36, 0x254B) /* BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL */
-MAP(0x28, 0x37, 0x2520) /* BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT */
-MAP(0x28, 0x38, 0x252F) /* BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY */
-MAP(0x28, 0x39, 0x2528) /* BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT */
-MAP(0x28, 0x3A, 0x2537) /* BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY */
-MAP(0x28, 0x3B, 0x253F) /* BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY */
-MAP(0x28, 0x3C, 0x251D) /* BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY */
-MAP(0x28, 0x3D, 0x2530) /* BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT */
-MAP(0x28, 0x3E, 0x2525) /* BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY */
-MAP(0x28, 0x3F, 0x2538) /* BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT */
-MAP(0x28, 0x40, 0x2542) /* BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT */
-MAP(0x30, 0x21, 0x4E9C) /* <CJK> */
-MAP(0x30, 0x22, 0x5516) /* <CJK> */
-MAP(0x30, 0x23, 0x5A03) /* <CJK> */
-MAP(0x30, 0x24, 0x963F) /* <CJK> */
-MAP(0x30, 0x25, 0x54C0) /* <CJK> */
-MAP(0x30, 0x26, 0x611B) /* <CJK> */
-MAP(0x30, 0x27, 0x6328) /* <CJK> */
-MAP(0x30, 0x28, 0x59F6) /* <CJK> */
-MAP(0x30, 0x29, 0x9022) /* <CJK> */
-MAP(0x30, 0x2A, 0x8475) /* <CJK> */
-MAP(0x30, 0x2B, 0x831C) /* <CJK> */
-MAP(0x30, 0x2C, 0x7A50) /* <CJK> */
-MAP(0x30, 0x2D, 0x60AA) /* <CJK> */
-MAP(0x30, 0x2E, 0x63E1) /* <CJK> */
-MAP(0x30, 0x2F, 0x6E25) /* <CJK> */
-MAP(0x30, 0x30, 0x65ED) /* <CJK> */
-MAP(0x30, 0x31, 0x8466) /* <CJK> */
-MAP(0x30, 0x32, 0x82A6) /* <CJK> */
-MAP(0x30, 0x33, 0x9BF5) /* <CJK> */
-MAP(0x30, 0x34, 0x6893) /* <CJK> */
-MAP(0x30, 0x35, 0x5727) /* <CJK> */
-MAP(0x30, 0x36, 0x65A1) /* <CJK> */
-MAP(0x30, 0x37, 0x6271) /* <CJK> */
-MAP(0x30, 0x38, 0x5B9B) /* <CJK> */
-MAP(0x30, 0x39, 0x59D0) /* <CJK> */
-MAP(0x30, 0x3A, 0x867B) /* <CJK> */
-MAP(0x30, 0x3B, 0x98F4) /* <CJK> */
-MAP(0x30, 0x3C, 0x7D62) /* <CJK> */
-MAP(0x30, 0x3D, 0x7DBE) /* <CJK> */
-MAP(0x30, 0x3E, 0x9B8E) /* <CJK> */
-MAP(0x30, 0x3F, 0x6216) /* <CJK> */
-MAP(0x30, 0x40, 0x7C9F) /* <CJK> */
-MAP(0x30, 0x41, 0x88B7) /* <CJK> */
-MAP(0x30, 0x42, 0x5B89) /* <CJK> */
-MAP(0x30, 0x43, 0x5EB5) /* <CJK> */
-MAP(0x30, 0x44, 0x6309) /* <CJK> */
-MAP(0x30, 0x45, 0x6697) /* <CJK> */
-MAP(0x30, 0x46, 0x6848) /* <CJK> */
-MAP(0x30, 0x47, 0x95C7) /* <CJK> */
-MAP(0x30, 0x48, 0x978D) /* <CJK> */
-MAP(0x30, 0x49, 0x674F) /* <CJK> */
-MAP(0x30, 0x4A, 0x4EE5) /* <CJK> */
-MAP(0x30, 0x4B, 0x4F0A) /* <CJK> */
-MAP(0x30, 0x4C, 0x4F4D) /* <CJK> */
-MAP(0x30, 0x4D, 0x4F9D) /* <CJK> */
-MAP(0x30, 0x4E, 0x5049) /* <CJK> */
-MAP(0x30, 0x4F, 0x56F2) /* <CJK> */
-MAP(0x30, 0x50, 0x5937) /* <CJK> */
-MAP(0x30, 0x51, 0x59D4) /* <CJK> */
-MAP(0x30, 0x52, 0x5A01) /* <CJK> */
-MAP(0x30, 0x53, 0x5C09) /* <CJK> */
-MAP(0x30, 0x54, 0x60DF) /* <CJK> */
-MAP(0x30, 0x55, 0x610F) /* <CJK> */
-MAP(0x30, 0x56, 0x6170) /* <CJK> */
-MAP(0x30, 0x57, 0x6613) /* <CJK> */
-MAP(0x30, 0x58, 0x6905) /* <CJK> */
-MAP(0x30, 0x59, 0x70BA) /* <CJK> */
-MAP(0x30, 0x5A, 0x754F) /* <CJK> */
-MAP(0x30, 0x5B, 0x7570) /* <CJK> */
-MAP(0x30, 0x5C, 0x79FB) /* <CJK> */
-MAP(0x30, 0x5D, 0x7DAD) /* <CJK> */
-MAP(0x30, 0x5E, 0x7DEF) /* <CJK> */
-MAP(0x30, 0x5F, 0x80C3) /* <CJK> */
-MAP(0x30, 0x60, 0x840E) /* <CJK> */
-MAP(0x30, 0x61, 0x8863) /* <CJK> */
-MAP(0x30, 0x62, 0x8B02) /* <CJK> */
-MAP(0x30, 0x63, 0x9055) /* <CJK> */
-MAP(0x30, 0x64, 0x907A) /* <CJK> */
-MAP(0x30, 0x65, 0x533B) /* <CJK> */
-MAP(0x30, 0x66, 0x4E95) /* <CJK> */
-MAP(0x30, 0x67, 0x4EA5) /* <CJK> */
-MAP(0x30, 0x68, 0x57DF) /* <CJK> */
-MAP(0x30, 0x69, 0x80B2) /* <CJK> */
-MAP(0x30, 0x6A, 0x90C1) /* <CJK> */
-MAP(0x30, 0x6B, 0x78EF) /* <CJK> */
-MAP(0x30, 0x6C, 0x4E00) /* <CJK> */
-MAP(0x30, 0x6D, 0x58F1) /* <CJK> */
-MAP(0x30, 0x6E, 0x6EA2) /* <CJK> */
-MAP(0x30, 0x6F, 0x9038) /* <CJK> */
-MAP(0x30, 0x70, 0x7A32) /* <CJK> */
-MAP(0x30, 0x71, 0x8328) /* <CJK> */
-MAP(0x30, 0x72, 0x828B) /* <CJK> */
-MAP(0x30, 0x73, 0x9C2F) /* <CJK> */
-MAP(0x30, 0x74, 0x5141) /* <CJK> */
-MAP(0x30, 0x75, 0x5370) /* <CJK> */
-MAP(0x30, 0x76, 0x54BD) /* <CJK> */
-MAP(0x30, 0x77, 0x54E1) /* <CJK> */
-MAP(0x30, 0x78, 0x56E0) /* <CJK> */
-MAP(0x30, 0x79, 0x59FB) /* <CJK> */
-MAP(0x30, 0x7A, 0x5F15) /* <CJK> */
-MAP(0x30, 0x7B, 0x98F2) /* <CJK> */
-MAP(0x30, 0x7C, 0x6DEB) /* <CJK> */
-MAP(0x30, 0x7D, 0x80E4) /* <CJK> */
-MAP(0x30, 0x7E, 0x852D) /* <CJK> */
-MAP(0x31, 0x21, 0x9662) /* <CJK> */
-MAP(0x31, 0x22, 0x9670) /* <CJK> */
-MAP(0x31, 0x23, 0x96A0) /* <CJK> */
-MAP(0x31, 0x24, 0x97FB) /* <CJK> */
-MAP(0x31, 0x25, 0x540B) /* <CJK> */
-MAP(0x31, 0x26, 0x53F3) /* <CJK> */
-MAP(0x31, 0x27, 0x5B87) /* <CJK> */
-MAP(0x31, 0x28, 0x70CF) /* <CJK> */
-MAP(0x31, 0x29, 0x7FBD) /* <CJK> */
-MAP(0x31, 0x2A, 0x8FC2) /* <CJK> */
-MAP(0x31, 0x2B, 0x96E8) /* <CJK> */
-MAP(0x31, 0x2C, 0x536F) /* <CJK> */
-MAP(0x31, 0x2D, 0x9D5C) /* <CJK> */
-MAP(0x31, 0x2E, 0x7ABA) /* <CJK> */
-MAP(0x31, 0x2F, 0x4E11) /* <CJK> */
-MAP(0x31, 0x30, 0x7893) /* <CJK> */
-MAP(0x31, 0x31, 0x81FC) /* <CJK> */
-MAP(0x31, 0x32, 0x6E26) /* <CJK> */
-MAP(0x31, 0x33, 0x5618) /* <CJK> */
-MAP(0x31, 0x34, 0x5504) /* <CJK> */
-MAP(0x31, 0x35, 0x6B1D) /* <CJK> */
-MAP(0x31, 0x36, 0x851A) /* <CJK> */
-MAP(0x31, 0x37, 0x9C3B) /* <CJK> */
-MAP(0x31, 0x38, 0x59E5) /* <CJK> */
-MAP(0x31, 0x39, 0x53A9) /* <CJK> */
-MAP(0x31, 0x3A, 0x6D66) /* <CJK> */
-MAP(0x31, 0x3B, 0x74DC) /* <CJK> */
-MAP(0x31, 0x3C, 0x958F) /* <CJK> */
-MAP(0x31, 0x3D, 0x5642) /* <CJK> */
-MAP(0x31, 0x3E, 0x4E91) /* <CJK> */
-MAP(0x31, 0x3F, 0x904B) /* <CJK> */
-MAP(0x31, 0x40, 0x96F2) /* <CJK> */
-MAP(0x31, 0x41, 0x834F) /* <CJK> */
-MAP(0x31, 0x42, 0x990C) /* <CJK> */
-MAP(0x31, 0x43, 0x53E1) /* <CJK> */
-MAP(0x31, 0x44, 0x55B6) /* <CJK> */
-MAP(0x31, 0x45, 0x5B30) /* <CJK> */
-MAP(0x31, 0x46, 0x5F71) /* <CJK> */
-MAP(0x31, 0x47, 0x6620) /* <CJK> */
-MAP(0x31, 0x48, 0x66F3) /* <CJK> */
-MAP(0x31, 0x49, 0x6804) /* <CJK> */
-MAP(0x31, 0x4A, 0x6C38) /* <CJK> */
-MAP(0x31, 0x4B, 0x6CF3) /* <CJK> */
-MAP(0x31, 0x4C, 0x6D29) /* <CJK> */
-MAP(0x31, 0x4D, 0x745B) /* <CJK> */
-MAP(0x31, 0x4E, 0x76C8) /* <CJK> */
-MAP(0x31, 0x4F, 0x7A4E) /* <CJK> */
-MAP(0x31, 0x50, 0x9834) /* <CJK> */
-MAP(0x31, 0x51, 0x82F1) /* <CJK> */
-MAP(0x31, 0x52, 0x885B) /* <CJK> */
-MAP(0x31, 0x53, 0x8A60) /* <CJK> */
-MAP(0x31, 0x54, 0x92ED) /* <CJK> */
-MAP(0x31, 0x55, 0x6DB2) /* <CJK> */
-MAP(0x31, 0x56, 0x75AB) /* <CJK> */
-MAP(0x31, 0x57, 0x76CA) /* <CJK> */
-MAP(0x31, 0x58, 0x99C5) /* <CJK> */
-MAP(0x31, 0x59, 0x60A6) /* <CJK> */
-MAP(0x31, 0x5A, 0x8B01) /* <CJK> */
-MAP(0x31, 0x5B, 0x8D8A) /* <CJK> */
-MAP(0x31, 0x5C, 0x95B2) /* <CJK> */
-MAP(0x31, 0x5D, 0x698E) /* <CJK> */
-MAP(0x31, 0x5E, 0x53AD) /* <CJK> */
-MAP(0x31, 0x5F, 0x5186) /* <CJK> */
-MAP(0x31, 0x60, 0x5712) /* <CJK> */
-MAP(0x31, 0x61, 0x5830) /* <CJK> */
-MAP(0x31, 0x62, 0x5944) /* <CJK> */
-MAP(0x31, 0x63, 0x5BB4) /* <CJK> */
-MAP(0x31, 0x64, 0x5EF6) /* <CJK> */
-MAP(0x31, 0x65, 0x6028) /* <CJK> */
-MAP(0x31, 0x66, 0x63A9) /* <CJK> */
-MAP(0x31, 0x67, 0x63F4) /* <CJK> */
-MAP(0x31, 0x68, 0x6CBF) /* <CJK> */
-MAP(0x31, 0x69, 0x6F14) /* <CJK> */
-MAP(0x31, 0x6A, 0x708E) /* <CJK> */
-MAP(0x31, 0x6B, 0x7114) /* <CJK> */
-MAP(0x31, 0x6C, 0x7159) /* <CJK> */
-MAP(0x31, 0x6D, 0x71D5) /* <CJK> */
-MAP(0x31, 0x6E, 0x733F) /* <CJK> */
-MAP(0x31, 0x6F, 0x7E01) /* <CJK> */
-MAP(0x31, 0x70, 0x8276) /* <CJK> */
-MAP(0x31, 0x71, 0x82D1) /* <CJK> */
-MAP(0x31, 0x72, 0x8597) /* <CJK> */
-MAP(0x31, 0x73, 0x9060) /* <CJK> */
-MAP(0x31, 0x74, 0x925B) /* <CJK> */
-MAP(0x31, 0x75, 0x9D1B) /* <CJK> */
-MAP(0x31, 0x76, 0x5869) /* <CJK> */
-MAP(0x31, 0x77, 0x65BC) /* <CJK> */
-MAP(0x31, 0x78, 0x6C5A) /* <CJK> */
-MAP(0x31, 0x79, 0x7525) /* <CJK> */
-MAP(0x31, 0x7A, 0x51F9) /* <CJK> */
-MAP(0x31, 0x7B, 0x592E) /* <CJK> */
-MAP(0x31, 0x7C, 0x5965) /* <CJK> */
-MAP(0x31, 0x7D, 0x5F80) /* <CJK> */
-MAP(0x31, 0x7E, 0x5FDC) /* <CJK> */
-MAP(0x32, 0x21, 0x62BC) /* <CJK> */
-MAP(0x32, 0x22, 0x65FA) /* <CJK> */
-MAP(0x32, 0x23, 0x6A2A) /* <CJK> */
-MAP(0x32, 0x24, 0x6B27) /* <CJK> */
-MAP(0x32, 0x25, 0x6BB4) /* <CJK> */
-MAP(0x32, 0x26, 0x738B) /* <CJK> */
-MAP(0x32, 0x27, 0x7FC1) /* <CJK> */
-MAP(0x32, 0x28, 0x8956) /* <CJK> */
-MAP(0x32, 0x29, 0x9D2C) /* <CJK> */
-MAP(0x32, 0x2A, 0x9D0E) /* <CJK> */
-MAP(0x32, 0x2B, 0x9EC4) /* <CJK> */
-MAP(0x32, 0x2C, 0x5CA1) /* <CJK> */
-MAP(0x32, 0x2D, 0x6C96) /* <CJK> */
-MAP(0x32, 0x2E, 0x837B) /* <CJK> */
-MAP(0x32, 0x2F, 0x5104) /* <CJK> */
-MAP(0x32, 0x30, 0x5C4B) /* <CJK> */
-MAP(0x32, 0x31, 0x61B6) /* <CJK> */
-MAP(0x32, 0x32, 0x81C6) /* <CJK> */
-MAP(0x32, 0x33, 0x6876) /* <CJK> */
-MAP(0x32, 0x34, 0x7261) /* <CJK> */
-MAP(0x32, 0x35, 0x4E59) /* <CJK> */
-MAP(0x32, 0x36, 0x4FFA) /* <CJK> */
-MAP(0x32, 0x37, 0x5378) /* <CJK> */
-MAP(0x32, 0x38, 0x6069) /* <CJK> */
-MAP(0x32, 0x39, 0x6E29) /* <CJK> */
-MAP(0x32, 0x3A, 0x7A4F) /* <CJK> */
-MAP(0x32, 0x3B, 0x97F3) /* <CJK> */
-MAP(0x32, 0x3C, 0x4E0B) /* <CJK> */
-MAP(0x32, 0x3D, 0x5316) /* <CJK> */
-MAP(0x32, 0x3E, 0x4EEE) /* <CJK> */
-MAP(0x32, 0x3F, 0x4F55) /* <CJK> */
-MAP(0x32, 0x40, 0x4F3D) /* <CJK> */
-MAP(0x32, 0x41, 0x4FA1) /* <CJK> */
-MAP(0x32, 0x42, 0x4F73) /* <CJK> */
-MAP(0x32, 0x43, 0x52A0) /* <CJK> */
-MAP(0x32, 0x44, 0x53EF) /* <CJK> */
-MAP(0x32, 0x45, 0x5609) /* <CJK> */
-MAP(0x32, 0x46, 0x590F) /* <CJK> */
-MAP(0x32, 0x47, 0x5AC1) /* <CJK> */
-MAP(0x32, 0x48, 0x5BB6) /* <CJK> */
-MAP(0x32, 0x49, 0x5BE1) /* <CJK> */
-MAP(0x32, 0x4A, 0x79D1) /* <CJK> */
-MAP(0x32, 0x4B, 0x6687) /* <CJK> */
-MAP(0x32, 0x4C, 0x679C) /* <CJK> */
-MAP(0x32, 0x4D, 0x67B6) /* <CJK> */
-MAP(0x32, 0x4E, 0x6B4C) /* <CJK> */
-MAP(0x32, 0x4F, 0x6CB3) /* <CJK> */
-MAP(0x32, 0x50, 0x706B) /* <CJK> */
-MAP(0x32, 0x51, 0x73C2) /* <CJK> */
-MAP(0x32, 0x52, 0x798D) /* <CJK> */
-MAP(0x32, 0x53, 0x79BE) /* <CJK> */
-MAP(0x32, 0x54, 0x7A3C) /* <CJK> */
-MAP(0x32, 0x55, 0x7B87) /* <CJK> */
-MAP(0x32, 0x56, 0x82B1) /* <CJK> */
-MAP(0x32, 0x57, 0x82DB) /* <CJK> */
-MAP(0x32, 0x58, 0x8304) /* <CJK> */
-MAP(0x32, 0x59, 0x8377) /* <CJK> */
-MAP(0x32, 0x5A, 0x83EF) /* <CJK> */
-MAP(0x32, 0x5B, 0x83D3) /* <CJK> */
-MAP(0x32, 0x5C, 0x8766) /* <CJK> */
-MAP(0x32, 0x5D, 0x8AB2) /* <CJK> */
-MAP(0x32, 0x5E, 0x5629) /* <CJK> */
-MAP(0x32, 0x5F, 0x8CA8) /* <CJK> */
-MAP(0x32, 0x60, 0x8FE6) /* <CJK> */
-MAP(0x32, 0x61, 0x904E) /* <CJK> */
-MAP(0x32, 0x62, 0x971E) /* <CJK> */
-MAP(0x32, 0x63, 0x868A) /* <CJK> */
-MAP(0x32, 0x64, 0x4FC4) /* <CJK> */
-MAP(0x32, 0x65, 0x5CE8) /* <CJK> */
-MAP(0x32, 0x66, 0x6211) /* <CJK> */
-MAP(0x32, 0x67, 0x7259) /* <CJK> */
-MAP(0x32, 0x68, 0x753B) /* <CJK> */
-MAP(0x32, 0x69, 0x81E5) /* <CJK> */
-MAP(0x32, 0x6A, 0x82BD) /* <CJK> */
-MAP(0x32, 0x6B, 0x86FE) /* <CJK> */
-MAP(0x32, 0x6C, 0x8CC0) /* <CJK> */
-MAP(0x32, 0x6D, 0x96C5) /* <CJK> */
-MAP(0x32, 0x6E, 0x9913) /* <CJK> */
-MAP(0x32, 0x6F, 0x99D5) /* <CJK> */
-MAP(0x32, 0x70, 0x4ECB) /* <CJK> */
-MAP(0x32, 0x71, 0x4F1A) /* <CJK> */
-MAP(0x32, 0x72, 0x89E3) /* <CJK> */
-MAP(0x32, 0x73, 0x56DE) /* <CJK> */
-MAP(0x32, 0x74, 0x584A) /* <CJK> */
-MAP(0x32, 0x75, 0x58CA) /* <CJK> */
-MAP(0x32, 0x76, 0x5EFB) /* <CJK> */
-MAP(0x32, 0x77, 0x5FEB) /* <CJK> */
-MAP(0x32, 0x78, 0x602A) /* <CJK> */
-MAP(0x32, 0x79, 0x6094) /* <CJK> */
-MAP(0x32, 0x7A, 0x6062) /* <CJK> */
-MAP(0x32, 0x7B, 0x61D0) /* <CJK> */
-MAP(0x32, 0x7C, 0x6212) /* <CJK> */
-MAP(0x32, 0x7D, 0x62D0) /* <CJK> */
-MAP(0x32, 0x7E, 0x6539) /* <CJK> */
-MAP(0x33, 0x21, 0x9B41) /* <CJK> */
-MAP(0x33, 0x22, 0x6666) /* <CJK> */
-MAP(0x33, 0x23, 0x68B0) /* <CJK> */
-MAP(0x33, 0x24, 0x6D77) /* <CJK> */
-MAP(0x33, 0x25, 0x7070) /* <CJK> */
-MAP(0x33, 0x26, 0x754C) /* <CJK> */
-MAP(0x33, 0x27, 0x7686) /* <CJK> */
-MAP(0x33, 0x28, 0x7D75) /* <CJK> */
-MAP(0x33, 0x29, 0x82A5) /* <CJK> */
-MAP(0x33, 0x2A, 0x87F9) /* <CJK> */
-MAP(0x33, 0x2B, 0x958B) /* <CJK> */
-MAP(0x33, 0x2C, 0x968E) /* <CJK> */
-MAP(0x33, 0x2D, 0x8C9D) /* <CJK> */
-MAP(0x33, 0x2E, 0x51F1) /* <CJK> */
-MAP(0x33, 0x2F, 0x52BE) /* <CJK> */
-MAP(0x33, 0x30, 0x5916) /* <CJK> */
-MAP(0x33, 0x31, 0x54B3) /* <CJK> */
-MAP(0x33, 0x32, 0x5BB3) /* <CJK> */
-MAP(0x33, 0x33, 0x5D16) /* <CJK> */
-MAP(0x33, 0x34, 0x6168) /* <CJK> */
-MAP(0x33, 0x35, 0x6982) /* <CJK> */
-MAP(0x33, 0x36, 0x6DAF) /* <CJK> */
-MAP(0x33, 0x37, 0x788D) /* <CJK> */
-MAP(0x33, 0x38, 0x84CB) /* <CJK> */
-MAP(0x33, 0x39, 0x8857) /* <CJK> */
-MAP(0x33, 0x3A, 0x8A72) /* <CJK> */
-MAP(0x33, 0x3B, 0x93A7) /* <CJK> */
-MAP(0x33, 0x3C, 0x9AB8) /* <CJK> */
-MAP(0x33, 0x3D, 0x6D6C) /* <CJK> */
-MAP(0x33, 0x3E, 0x99A8) /* <CJK> */
-MAP(0x33, 0x3F, 0x86D9) /* <CJK> */
-MAP(0x33, 0x40, 0x57A3) /* <CJK> */
-MAP(0x33, 0x41, 0x67FF) /* <CJK> */
-MAP(0x33, 0x42, 0x86CE) /* <CJK> */
-MAP(0x33, 0x43, 0x920E) /* <CJK> */
-MAP(0x33, 0x44, 0x5283) /* <CJK> */
-MAP(0x33, 0x45, 0x5687) /* <CJK> */
-MAP(0x33, 0x46, 0x5404) /* <CJK> */
-MAP(0x33, 0x47, 0x5ED3) /* <CJK> */
-MAP(0x33, 0x48, 0x62E1) /* <CJK> */
-MAP(0x33, 0x49, 0x64B9) /* <CJK> */
-MAP(0x33, 0x4A, 0x683C) /* <CJK> */
-MAP(0x33, 0x4B, 0x6838) /* <CJK> */
-MAP(0x33, 0x4C, 0x6BBB) /* <CJK> */
-MAP(0x33, 0x4D, 0x7372) /* <CJK> */
-MAP(0x33, 0x4E, 0x78BA) /* <CJK> */
-MAP(0x33, 0x4F, 0x7A6B) /* <CJK> */
-MAP(0x33, 0x50, 0x899A) /* <CJK> */
-MAP(0x33, 0x51, 0x89D2) /* <CJK> */
-MAP(0x33, 0x52, 0x8D6B) /* <CJK> */
-MAP(0x33, 0x53, 0x8F03) /* <CJK> */
-MAP(0x33, 0x54, 0x90ED) /* <CJK> */
-MAP(0x33, 0x55, 0x95A3) /* <CJK> */
-MAP(0x33, 0x56, 0x9694) /* <CJK> */
-MAP(0x33, 0x57, 0x9769) /* <CJK> */
-MAP(0x33, 0x58, 0x5B66) /* <CJK> */
-MAP(0x33, 0x59, 0x5CB3) /* <CJK> */
-MAP(0x33, 0x5A, 0x697D) /* <CJK> */
-MAP(0x33, 0x5B, 0x984D) /* <CJK> */
-MAP(0x33, 0x5C, 0x984E) /* <CJK> */
-MAP(0x33, 0x5D, 0x639B) /* <CJK> */
-MAP(0x33, 0x5E, 0x7B20) /* <CJK> */
-MAP(0x33, 0x5F, 0x6A2B) /* <CJK> */
-MAP(0x33, 0x60, 0x6A7F) /* <CJK> */
-MAP(0x33, 0x61, 0x68B6) /* <CJK> */
-MAP(0x33, 0x62, 0x9C0D) /* <CJK> */
-MAP(0x33, 0x63, 0x6F5F) /* <CJK> */
-MAP(0x33, 0x64, 0x5272) /* <CJK> */
-MAP(0x33, 0x65, 0x559D) /* <CJK> */
-MAP(0x33, 0x66, 0x6070) /* <CJK> */
-MAP(0x33, 0x67, 0x62EC) /* <CJK> */
-MAP(0x33, 0x68, 0x6D3B) /* <CJK> */
-MAP(0x33, 0x69, 0x6E07) /* <CJK> */
-MAP(0x33, 0x6A, 0x6ED1) /* <CJK> */
-MAP(0x33, 0x6B, 0x845B) /* <CJK> */
-MAP(0x33, 0x6C, 0x8910) /* <CJK> */
-MAP(0x33, 0x6D, 0x8F44) /* <CJK> */
-MAP(0x33, 0x6E, 0x4E14) /* <CJK> */
-MAP(0x33, 0x6F, 0x9C39) /* <CJK> */
-MAP(0x33, 0x70, 0x53F6) /* <CJK> */
-MAP(0x33, 0x71, 0x691B) /* <CJK> */
-MAP(0x33, 0x72, 0x6A3A) /* <CJK> */
-MAP(0x33, 0x73, 0x9784) /* <CJK> */
-MAP(0x33, 0x74, 0x682A) /* <CJK> */
-MAP(0x33, 0x75, 0x515C) /* <CJK> */
-MAP(0x33, 0x76, 0x7AC3) /* <CJK> */
-MAP(0x33, 0x77, 0x84B2) /* <CJK> */
-MAP(0x33, 0x78, 0x91DC) /* <CJK> */
-MAP(0x33, 0x79, 0x938C) /* <CJK> */
-MAP(0x33, 0x7A, 0x565B) /* <CJK> */
-MAP(0x33, 0x7B, 0x9D28) /* <CJK> */
-MAP(0x33, 0x7C, 0x6822) /* <CJK> */
-MAP(0x33, 0x7D, 0x8305) /* <CJK> */
-MAP(0x33, 0x7E, 0x8431) /* <CJK> */
-MAP(0x34, 0x21, 0x7CA5) /* <CJK> */
-MAP(0x34, 0x22, 0x5208) /* <CJK> */
-MAP(0x34, 0x23, 0x82C5) /* <CJK> */
-MAP(0x34, 0x24, 0x74E6) /* <CJK> */
-MAP(0x34, 0x25, 0x4E7E) /* <CJK> */
-MAP(0x34, 0x26, 0x4F83) /* <CJK> */
-MAP(0x34, 0x27, 0x51A0) /* <CJK> */
-MAP(0x34, 0x28, 0x5BD2) /* <CJK> */
-MAP(0x34, 0x29, 0x520A) /* <CJK> */
-MAP(0x34, 0x2A, 0x52D8) /* <CJK> */
-MAP(0x34, 0x2B, 0x52E7) /* <CJK> */
-MAP(0x34, 0x2C, 0x5DFB) /* <CJK> */
-MAP(0x34, 0x2D, 0x559A) /* <CJK> */
-MAP(0x34, 0x2E, 0x582A) /* <CJK> */
-MAP(0x34, 0x2F, 0x59E6) /* <CJK> */
-MAP(0x34, 0x30, 0x5B8C) /* <CJK> */
-MAP(0x34, 0x31, 0x5B98) /* <CJK> */
-MAP(0x34, 0x32, 0x5BDB) /* <CJK> */
-MAP(0x34, 0x33, 0x5E72) /* <CJK> */
-MAP(0x34, 0x34, 0x5E79) /* <CJK> */
-MAP(0x34, 0x35, 0x60A3) /* <CJK> */
-MAP(0x34, 0x36, 0x611F) /* <CJK> */
-MAP(0x34, 0x37, 0x6163) /* <CJK> */
-MAP(0x34, 0x38, 0x61BE) /* <CJK> */
-MAP(0x34, 0x39, 0x63DB) /* <CJK> */
-MAP(0x34, 0x3A, 0x6562) /* <CJK> */
-MAP(0x34, 0x3B, 0x67D1) /* <CJK> */
-MAP(0x34, 0x3C, 0x6853) /* <CJK> */
-MAP(0x34, 0x3D, 0x68FA) /* <CJK> */
-MAP(0x34, 0x3E, 0x6B3E) /* <CJK> */
-MAP(0x34, 0x3F, 0x6B53) /* <CJK> */
-MAP(0x34, 0x40, 0x6C57) /* <CJK> */
-MAP(0x34, 0x41, 0x6F22) /* <CJK> */
-MAP(0x34, 0x42, 0x6F97) /* <CJK> */
-MAP(0x34, 0x43, 0x6F45) /* <CJK> */
-MAP(0x34, 0x44, 0x74B0) /* <CJK> */
-MAP(0x34, 0x45, 0x7518) /* <CJK> */
-MAP(0x34, 0x46, 0x76E3) /* <CJK> */
-MAP(0x34, 0x47, 0x770B) /* <CJK> */
-MAP(0x34, 0x48, 0x7AFF) /* <CJK> */
-MAP(0x34, 0x49, 0x7BA1) /* <CJK> */
-MAP(0x34, 0x4A, 0x7C21) /* <CJK> */
-MAP(0x34, 0x4B, 0x7DE9) /* <CJK> */
-MAP(0x34, 0x4C, 0x7F36) /* <CJK> */
-MAP(0x34, 0x4D, 0x7FF0) /* <CJK> */
-MAP(0x34, 0x4E, 0x809D) /* <CJK> */
-MAP(0x34, 0x4F, 0x8266) /* <CJK> */
-MAP(0x34, 0x50, 0x839E) /* <CJK> */
-MAP(0x34, 0x51, 0x89B3) /* <CJK> */
-MAP(0x34, 0x52, 0x8ACC) /* <CJK> */
-MAP(0x34, 0x53, 0x8CAB) /* <CJK> */
-MAP(0x34, 0x54, 0x9084) /* <CJK> */
-MAP(0x34, 0x55, 0x9451) /* <CJK> */
-MAP(0x34, 0x56, 0x9593) /* <CJK> */
-MAP(0x34, 0x57, 0x9591) /* <CJK> */
-MAP(0x34, 0x58, 0x95A2) /* <CJK> */
-MAP(0x34, 0x59, 0x9665) /* <CJK> */
-MAP(0x34, 0x5A, 0x97D3) /* <CJK> */
-MAP(0x34, 0x5B, 0x9928) /* <CJK> */
-MAP(0x34, 0x5C, 0x8218) /* <CJK> */
-MAP(0x34, 0x5D, 0x4E38) /* <CJK> */
-MAP(0x34, 0x5E, 0x542B) /* <CJK> */
-MAP(0x34, 0x5F, 0x5CB8) /* <CJK> */
-MAP(0x34, 0x60, 0x5DCC) /* <CJK> */
-MAP(0x34, 0x61, 0x73A9) /* <CJK> */
-MAP(0x34, 0x62, 0x764C) /* <CJK> */
-MAP(0x34, 0x63, 0x773C) /* <CJK> */
-MAP(0x34, 0x64, 0x5CA9) /* <CJK> */
-MAP(0x34, 0x65, 0x7FEB) /* <CJK> */
-MAP(0x34, 0x66, 0x8D0B) /* <CJK> */
-MAP(0x34, 0x67, 0x96C1) /* <CJK> */
-MAP(0x34, 0x68, 0x9811) /* <CJK> */
-MAP(0x34, 0x69, 0x9854) /* <CJK> */
-MAP(0x34, 0x6A, 0x9858) /* <CJK> */
-MAP(0x34, 0x6B, 0x4F01) /* <CJK> */
-MAP(0x34, 0x6C, 0x4F0E) /* <CJK> */
-MAP(0x34, 0x6D, 0x5371) /* <CJK> */
-MAP(0x34, 0x6E, 0x559C) /* <CJK> */
-MAP(0x34, 0x6F, 0x5668) /* <CJK> */
-MAP(0x34, 0x70, 0x57FA) /* <CJK> */
-MAP(0x34, 0x71, 0x5947) /* <CJK> */
-MAP(0x34, 0x72, 0x5B09) /* <CJK> */
-MAP(0x34, 0x73, 0x5BC4) /* <CJK> */
-MAP(0x34, 0x74, 0x5C90) /* <CJK> */
-MAP(0x34, 0x75, 0x5E0C) /* <CJK> */
-MAP(0x34, 0x76, 0x5E7E) /* <CJK> */
-MAP(0x34, 0x77, 0x5FCC) /* <CJK> */
-MAP(0x34, 0x78, 0x63EE) /* <CJK> */
-MAP(0x34, 0x79, 0x673A) /* <CJK> */
-MAP(0x34, 0x7A, 0x65D7) /* <CJK> */
-MAP(0x34, 0x7B, 0x65E2) /* <CJK> */
-MAP(0x34, 0x7C, 0x671F) /* <CJK> */
-MAP(0x34, 0x7D, 0x68CB) /* <CJK> */
-MAP(0x34, 0x7E, 0x68C4) /* <CJK> */
-MAP(0x35, 0x21, 0x6A5F) /* <CJK> */
-MAP(0x35, 0x22, 0x5E30) /* <CJK> */
-MAP(0x35, 0x23, 0x6BC5) /* <CJK> */
-MAP(0x35, 0x24, 0x6C17) /* <CJK> */
-MAP(0x35, 0x25, 0x6C7D) /* <CJK> */
-MAP(0x35, 0x26, 0x757F) /* <CJK> */
-MAP(0x35, 0x27, 0x7948) /* <CJK> */
-MAP(0x35, 0x28, 0x5B63) /* <CJK> */
-MAP(0x35, 0x29, 0x7A00) /* <CJK> */
-MAP(0x35, 0x2A, 0x7D00) /* <CJK> */
-MAP(0x35, 0x2B, 0x5FBD) /* <CJK> */
-MAP(0x35, 0x2C, 0x898F) /* <CJK> */
-MAP(0x35, 0x2D, 0x8A18) /* <CJK> */
-MAP(0x35, 0x2E, 0x8CB4) /* <CJK> */
-MAP(0x35, 0x2F, 0x8D77) /* <CJK> */
-MAP(0x35, 0x30, 0x8ECC) /* <CJK> */
-MAP(0x35, 0x31, 0x8F1D) /* <CJK> */
-MAP(0x35, 0x32, 0x98E2) /* <CJK> */
-MAP(0x35, 0x33, 0x9A0E) /* <CJK> */
-MAP(0x35, 0x34, 0x9B3C) /* <CJK> */
-MAP(0x35, 0x35, 0x4E80) /* <CJK> */
-MAP(0x35, 0x36, 0x507D) /* <CJK> */
-MAP(0x35, 0x37, 0x5100) /* <CJK> */
-MAP(0x35, 0x38, 0x5993) /* <CJK> */
-MAP(0x35, 0x39, 0x5B9C) /* <CJK> */
-MAP(0x35, 0x3A, 0x622F) /* <CJK> */
-MAP(0x35, 0x3B, 0x6280) /* <CJK> */
-MAP(0x35, 0x3C, 0x64EC) /* <CJK> */
-MAP(0x35, 0x3D, 0x6B3A) /* <CJK> */
-MAP(0x35, 0x3E, 0x72A0) /* <CJK> */
-MAP(0x35, 0x3F, 0x7591) /* <CJK> */
-MAP(0x35, 0x40, 0x7947) /* <CJK> */
-MAP(0x35, 0x41, 0x7FA9) /* <CJK> */
-MAP(0x35, 0x42, 0x87FB) /* <CJK> */
-MAP(0x35, 0x43, 0x8ABC) /* <CJK> */
-MAP(0x35, 0x44, 0x8B70) /* <CJK> */
-MAP(0x35, 0x45, 0x63AC) /* <CJK> */
-MAP(0x35, 0x46, 0x83CA) /* <CJK> */
-MAP(0x35, 0x47, 0x97A0) /* <CJK> */
-MAP(0x35, 0x48, 0x5409) /* <CJK> */
-MAP(0x35, 0x49, 0x5403) /* <CJK> */
-MAP(0x35, 0x4A, 0x55AB) /* <CJK> */
-MAP(0x35, 0x4B, 0x6854) /* <CJK> */
-MAP(0x35, 0x4C, 0x6A58) /* <CJK> */
-MAP(0x35, 0x4D, 0x8A70) /* <CJK> */
-MAP(0x35, 0x4E, 0x7827) /* <CJK> */
-MAP(0x35, 0x4F, 0x6775) /* <CJK> */
-MAP(0x35, 0x50, 0x9ECD) /* <CJK> */
-MAP(0x35, 0x51, 0x5374) /* <CJK> */
-MAP(0x35, 0x52, 0x5BA2) /* <CJK> */
-MAP(0x35, 0x53, 0x811A) /* <CJK> */
-MAP(0x35, 0x54, 0x8650) /* <CJK> */
-MAP(0x35, 0x55, 0x9006) /* <CJK> */
-MAP(0x35, 0x56, 0x4E18) /* <CJK> */
-MAP(0x35, 0x57, 0x4E45) /* <CJK> */
-MAP(0x35, 0x58, 0x4EC7) /* <CJK> */
-MAP(0x35, 0x59, 0x4F11) /* <CJK> */
-MAP(0x35, 0x5A, 0x53CA) /* <CJK> */
-MAP(0x35, 0x5B, 0x5438) /* <CJK> */
-MAP(0x35, 0x5C, 0x5BAE) /* <CJK> */
-MAP(0x35, 0x5D, 0x5F13) /* <CJK> */
-MAP(0x35, 0x5E, 0x6025) /* <CJK> */
-MAP(0x35, 0x5F, 0x6551) /* <CJK> */
-MAP(0x35, 0x60, 0x673D) /* <CJK> */
-MAP(0x35, 0x61, 0x6C42) /* <CJK> */
-MAP(0x35, 0x62, 0x6C72) /* <CJK> */
-MAP(0x35, 0x63, 0x6CE3) /* <CJK> */
-MAP(0x35, 0x64, 0x7078) /* <CJK> */
-MAP(0x35, 0x65, 0x7403) /* <CJK> */
-MAP(0x35, 0x66, 0x7A76) /* <CJK> */
-MAP(0x35, 0x67, 0x7AAE) /* <CJK> */
-MAP(0x35, 0x68, 0x7B08) /* <CJK> */
-MAP(0x35, 0x69, 0x7D1A) /* <CJK> */
-MAP(0x35, 0x6A, 0x7CFE) /* <CJK> */
-MAP(0x35, 0x6B, 0x7D66) /* <CJK> */
-MAP(0x35, 0x6C, 0x65E7) /* <CJK> */
-MAP(0x35, 0x6D, 0x725B) /* <CJK> */
-MAP(0x35, 0x6E, 0x53BB) /* <CJK> */
-MAP(0x35, 0x6F, 0x5C45) /* <CJK> */
-MAP(0x35, 0x70, 0x5DE8) /* <CJK> */
-MAP(0x35, 0x71, 0x62D2) /* <CJK> */
-MAP(0x35, 0x72, 0x62E0) /* <CJK> */
-MAP(0x35, 0x73, 0x6319) /* <CJK> */
-MAP(0x35, 0x74, 0x6E20) /* <CJK> */
-MAP(0x35, 0x75, 0x865A) /* <CJK> */
-MAP(0x35, 0x76, 0x8A31) /* <CJK> */
-MAP(0x35, 0x77, 0x8DDD) /* <CJK> */
-MAP(0x35, 0x78, 0x92F8) /* <CJK> */
-MAP(0x35, 0x79, 0x6F01) /* <CJK> */
-MAP(0x35, 0x7A, 0x79A6) /* <CJK> */
-MAP(0x35, 0x7B, 0x9B5A) /* <CJK> */
-MAP(0x35, 0x7C, 0x4EA8) /* <CJK> */
-MAP(0x35, 0x7D, 0x4EAB) /* <CJK> */
-MAP(0x35, 0x7E, 0x4EAC) /* <CJK> */
-MAP(0x36, 0x21, 0x4F9B) /* <CJK> */
-MAP(0x36, 0x22, 0x4FA0) /* <CJK> */
-MAP(0x36, 0x23, 0x50D1) /* <CJK> */
-MAP(0x36, 0x24, 0x5147) /* <CJK> */
-MAP(0x36, 0x25, 0x7AF6) /* <CJK> */
-MAP(0x36, 0x26, 0x5171) /* <CJK> */
-MAP(0x36, 0x27, 0x51F6) /* <CJK> */
-MAP(0x36, 0x28, 0x5354) /* <CJK> */
-MAP(0x36, 0x29, 0x5321) /* <CJK> */
-MAP(0x36, 0x2A, 0x537F) /* <CJK> */
-MAP(0x36, 0x2B, 0x53EB) /* <CJK> */
-MAP(0x36, 0x2C, 0x55AC) /* <CJK> */
-MAP(0x36, 0x2D, 0x5883) /* <CJK> */
-MAP(0x36, 0x2E, 0x5CE1) /* <CJK> */
-MAP(0x36, 0x2F, 0x5F37) /* <CJK> */
-MAP(0x36, 0x30, 0x5F4A) /* <CJK> */
-MAP(0x36, 0x31, 0x602F) /* <CJK> */
-MAP(0x36, 0x32, 0x6050) /* <CJK> */
-MAP(0x36, 0x33, 0x606D) /* <CJK> */
-MAP(0x36, 0x34, 0x631F) /* <CJK> */
-MAP(0x36, 0x35, 0x6559) /* <CJK> */
-MAP(0x36, 0x36, 0x6A4B) /* <CJK> */
-MAP(0x36, 0x37, 0x6CC1) /* <CJK> */
-MAP(0x36, 0x38, 0x72C2) /* <CJK> */
-MAP(0x36, 0x39, 0x72ED) /* <CJK> */
-MAP(0x36, 0x3A, 0x77EF) /* <CJK> */
-MAP(0x36, 0x3B, 0x80F8) /* <CJK> */
-MAP(0x36, 0x3C, 0x8105) /* <CJK> */
-MAP(0x36, 0x3D, 0x8208) /* <CJK> */
-MAP(0x36, 0x3E, 0x854E) /* <CJK> */
-MAP(0x36, 0x3F, 0x90F7) /* <CJK> */
-MAP(0x36, 0x40, 0x93E1) /* <CJK> */
-MAP(0x36, 0x41, 0x97FF) /* <CJK> */
-MAP(0x36, 0x42, 0x9957) /* <CJK> */
-MAP(0x36, 0x43, 0x9A5A) /* <CJK> */
-MAP(0x36, 0x44, 0x4EF0) /* <CJK> */
-MAP(0x36, 0x45, 0x51DD) /* <CJK> */
-MAP(0x36, 0x46, 0x5C2D) /* <CJK> */
-MAP(0x36, 0x47, 0x6681) /* <CJK> */
-MAP(0x36, 0x48, 0x696D) /* <CJK> */
-MAP(0x36, 0x49, 0x5C40) /* <CJK> */
-MAP(0x36, 0x4A, 0x66F2) /* <CJK> */
-MAP(0x36, 0x4B, 0x6975) /* <CJK> */
-MAP(0x36, 0x4C, 0x7389) /* <CJK> */
-MAP(0x36, 0x4D, 0x6850) /* <CJK> */
-MAP(0x36, 0x4E, 0x7C81) /* <CJK> */
-MAP(0x36, 0x4F, 0x50C5) /* <CJK> */
-MAP(0x36, 0x50, 0x52E4) /* <CJK> */
-MAP(0x36, 0x51, 0x5747) /* <CJK> */
-MAP(0x36, 0x52, 0x5DFE) /* <CJK> */
-MAP(0x36, 0x53, 0x9326) /* <CJK> */
-MAP(0x36, 0x54, 0x65A4) /* <CJK> */
-MAP(0x36, 0x55, 0x6B23) /* <CJK> */
-MAP(0x36, 0x56, 0x6B3D) /* <CJK> */
-MAP(0x36, 0x57, 0x7434) /* <CJK> */
-MAP(0x36, 0x58, 0x7981) /* <CJK> */
-MAP(0x36, 0x59, 0x79BD) /* <CJK> */
-MAP(0x36, 0x5A, 0x7B4B) /* <CJK> */
-MAP(0x36, 0x5B, 0x7DCA) /* <CJK> */
-MAP(0x36, 0x5C, 0x82B9) /* <CJK> */
-MAP(0x36, 0x5D, 0x83CC) /* <CJK> */
-MAP(0x36, 0x5E, 0x887F) /* <CJK> */
-MAP(0x36, 0x5F, 0x895F) /* <CJK> */
-MAP(0x36, 0x60, 0x8B39) /* <CJK> */
-MAP(0x36, 0x61, 0x8FD1) /* <CJK> */
-MAP(0x36, 0x62, 0x91D1) /* <CJK> */
-MAP(0x36, 0x63, 0x541F) /* <CJK> */
-MAP(0x36, 0x64, 0x9280) /* <CJK> */
-MAP(0x36, 0x65, 0x4E5D) /* <CJK> */
-MAP(0x36, 0x66, 0x5036) /* <CJK> */
-MAP(0x36, 0x67, 0x53E5) /* <CJK> */
-MAP(0x36, 0x68, 0x533A) /* <CJK> */
-MAP(0x36, 0x69, 0x72D7) /* <CJK> */
-MAP(0x36, 0x6A, 0x7396) /* <CJK> */
-MAP(0x36, 0x6B, 0x77E9) /* <CJK> */
-MAP(0x36, 0x6C, 0x82E6) /* <CJK> */
-MAP(0x36, 0x6D, 0x8EAF) /* <CJK> */
-MAP(0x36, 0x6E, 0x99C6) /* <CJK> */
-MAP(0x36, 0x6F, 0x99C8) /* <CJK> */
-MAP(0x36, 0x70, 0x99D2) /* <CJK> */
-MAP(0x36, 0x71, 0x5177) /* <CJK> */
-MAP(0x36, 0x72, 0x611A) /* <CJK> */
-MAP(0x36, 0x73, 0x865E) /* <CJK> */
-MAP(0x36, 0x74, 0x55B0) /* <CJK> */
-MAP(0x36, 0x75, 0x7A7A) /* <CJK> */
-MAP(0x36, 0x76, 0x5076) /* <CJK> */
-MAP(0x36, 0x77, 0x5BD3) /* <CJK> */
-MAP(0x36, 0x78, 0x9047) /* <CJK> */
-MAP(0x36, 0x79, 0x9685) /* <CJK> */
-MAP(0x36, 0x7A, 0x4E32) /* <CJK> */
-MAP(0x36, 0x7B, 0x6ADB) /* <CJK> */
-MAP(0x36, 0x7C, 0x91E7) /* <CJK> */
-MAP(0x36, 0x7D, 0x5C51) /* <CJK> */
-MAP(0x36, 0x7E, 0x5C48) /* <CJK> */
-MAP(0x37, 0x21, 0x6398) /* <CJK> */
-MAP(0x37, 0x22, 0x7A9F) /* <CJK> */
-MAP(0x37, 0x23, 0x6C93) /* <CJK> */
-MAP(0x37, 0x24, 0x9774) /* <CJK> */
-MAP(0x37, 0x25, 0x8F61) /* <CJK> */
-MAP(0x37, 0x26, 0x7AAA) /* <CJK> */
-MAP(0x37, 0x27, 0x718A) /* <CJK> */
-MAP(0x37, 0x28, 0x9688) /* <CJK> */
-MAP(0x37, 0x29, 0x7C82) /* <CJK> */
-MAP(0x37, 0x2A, 0x6817) /* <CJK> */
-MAP(0x37, 0x2B, 0x7E70) /* <CJK> */
-MAP(0x37, 0x2C, 0x6851) /* <CJK> */
-MAP(0x37, 0x2D, 0x936C) /* <CJK> */
-MAP(0x37, 0x2E, 0x52F2) /* <CJK> */
-MAP(0x37, 0x2F, 0x541B) /* <CJK> */
-MAP(0x37, 0x30, 0x85AB) /* <CJK> */
-MAP(0x37, 0x31, 0x8A13) /* <CJK> */
-MAP(0x37, 0x32, 0x7FA4) /* <CJK> */
-MAP(0x37, 0x33, 0x8ECD) /* <CJK> */
-MAP(0x37, 0x34, 0x90E1) /* <CJK> */
-MAP(0x37, 0x35, 0x5366) /* <CJK> */
-MAP(0x37, 0x36, 0x8888) /* <CJK> */
-MAP(0x37, 0x37, 0x7941) /* <CJK> */
-MAP(0x37, 0x38, 0x4FC2) /* <CJK> */
-MAP(0x37, 0x39, 0x50BE) /* <CJK> */
-MAP(0x37, 0x3A, 0x5211) /* <CJK> */
-MAP(0x37, 0x3B, 0x5144) /* <CJK> */
-MAP(0x37, 0x3C, 0x5553) /* <CJK> */
-MAP(0x37, 0x3D, 0x572D) /* <CJK> */
-MAP(0x37, 0x3E, 0x73EA) /* <CJK> */
-MAP(0x37, 0x3F, 0x578B) /* <CJK> */
-MAP(0x37, 0x40, 0x5951) /* <CJK> */
-MAP(0x37, 0x41, 0x5F62) /* <CJK> */
-MAP(0x37, 0x42, 0x5F84) /* <CJK> */
-MAP(0x37, 0x43, 0x6075) /* <CJK> */
-MAP(0x37, 0x44, 0x6176) /* <CJK> */
-MAP(0x37, 0x45, 0x6167) /* <CJK> */
-MAP(0x37, 0x46, 0x61A9) /* <CJK> */
-MAP(0x37, 0x47, 0x63B2) /* <CJK> */
-MAP(0x37, 0x48, 0x643A) /* <CJK> */
-MAP(0x37, 0x49, 0x656C) /* <CJK> */
-MAP(0x37, 0x4A, 0x666F) /* <CJK> */
-MAP(0x37, 0x4B, 0x6842) /* <CJK> */
-MAP(0x37, 0x4C, 0x6E13) /* <CJK> */
-MAP(0x37, 0x4D, 0x7566) /* <CJK> */
-MAP(0x37, 0x4E, 0x7A3D) /* <CJK> */
-MAP(0x37, 0x4F, 0x7CFB) /* <CJK> */
-MAP(0x37, 0x50, 0x7D4C) /* <CJK> */
-MAP(0x37, 0x51, 0x7D99) /* <CJK> */
-MAP(0x37, 0x52, 0x7E4B) /* <CJK> */
-MAP(0x37, 0x53, 0x7F6B) /* <CJK> */
-MAP(0x37, 0x54, 0x830E) /* <CJK> */
-MAP(0x37, 0x55, 0x834A) /* <CJK> */
-MAP(0x37, 0x56, 0x86CD) /* <CJK> */
-MAP(0x37, 0x57, 0x8A08) /* <CJK> */
-MAP(0x37, 0x58, 0x8A63) /* <CJK> */
-MAP(0x37, 0x59, 0x8B66) /* <CJK> */
-MAP(0x37, 0x5A, 0x8EFD) /* <CJK> */
-MAP(0x37, 0x5B, 0x981A) /* <CJK> */
-MAP(0x37, 0x5C, 0x9D8F) /* <CJK> */
-MAP(0x37, 0x5D, 0x82B8) /* <CJK> */
-MAP(0x37, 0x5E, 0x8FCE) /* <CJK> */
-MAP(0x37, 0x5F, 0x9BE8) /* <CJK> */
-MAP(0x37, 0x60, 0x5287) /* <CJK> */
-MAP(0x37, 0x61, 0x621F) /* <CJK> */
-MAP(0x37, 0x62, 0x6483) /* <CJK> */
-MAP(0x37, 0x63, 0x6FC0) /* <CJK> */
-MAP(0x37, 0x64, 0x9699) /* <CJK> */
-MAP(0x37, 0x65, 0x6841) /* <CJK> */
-MAP(0x37, 0x66, 0x5091) /* <CJK> */
-MAP(0x37, 0x67, 0x6B20) /* <CJK> */
-MAP(0x37, 0x68, 0x6C7A) /* <CJK> */
-MAP(0x37, 0x69, 0x6F54) /* <CJK> */
-MAP(0x37, 0x6A, 0x7A74) /* <CJK> */
-MAP(0x37, 0x6B, 0x7D50) /* <CJK> */
-MAP(0x37, 0x6C, 0x8840) /* <CJK> */
-MAP(0x37, 0x6D, 0x8A23) /* <CJK> */
-MAP(0x37, 0x6E, 0x6708) /* <CJK> */
-MAP(0x37, 0x6F, 0x4EF6) /* <CJK> */
-MAP(0x37, 0x70, 0x5039) /* <CJK> */
-MAP(0x37, 0x71, 0x5026) /* <CJK> */
-MAP(0x37, 0x72, 0x5065) /* <CJK> */
-MAP(0x37, 0x73, 0x517C) /* <CJK> */
-MAP(0x37, 0x74, 0x5238) /* <CJK> */
-MAP(0x37, 0x75, 0x5263) /* <CJK> */
-MAP(0x37, 0x76, 0x55A7) /* <CJK> */
-MAP(0x37, 0x77, 0x570F) /* <CJK> */
-MAP(0x37, 0x78, 0x5805) /* <CJK> */
-MAP(0x37, 0x79, 0x5ACC) /* <CJK> */
-MAP(0x37, 0x7A, 0x5EFA) /* <CJK> */
-MAP(0x37, 0x7B, 0x61B2) /* <CJK> */
-MAP(0x37, 0x7C, 0x61F8) /* <CJK> */
-MAP(0x37, 0x7D, 0x62F3) /* <CJK> */
-MAP(0x37, 0x7E, 0x6372) /* <CJK> */
-MAP(0x38, 0x21, 0x691C) /* <CJK> */
-MAP(0x38, 0x22, 0x6A29) /* <CJK> */
-MAP(0x38, 0x23, 0x727D) /* <CJK> */
-MAP(0x38, 0x24, 0x72AC) /* <CJK> */
-MAP(0x38, 0x25, 0x732E) /* <CJK> */
-MAP(0x38, 0x26, 0x7814) /* <CJK> */
-MAP(0x38, 0x27, 0x786F) /* <CJK> */
-MAP(0x38, 0x28, 0x7D79) /* <CJK> */
-MAP(0x38, 0x29, 0x770C) /* <CJK> */
-MAP(0x38, 0x2A, 0x80A9) /* <CJK> */
-MAP(0x38, 0x2B, 0x898B) /* <CJK> */
-MAP(0x38, 0x2C, 0x8B19) /* <CJK> */
-MAP(0x38, 0x2D, 0x8CE2) /* <CJK> */
-MAP(0x38, 0x2E, 0x8ED2) /* <CJK> */
-MAP(0x38, 0x2F, 0x9063) /* <CJK> */
-MAP(0x38, 0x30, 0x9375) /* <CJK> */
-MAP(0x38, 0x31, 0x967A) /* <CJK> */
-MAP(0x38, 0x32, 0x9855) /* <CJK> */
-MAP(0x38, 0x33, 0x9A13) /* <CJK> */
-MAP(0x38, 0x34, 0x9E78) /* <CJK> */
-MAP(0x38, 0x35, 0x5143) /* <CJK> */
-MAP(0x38, 0x36, 0x539F) /* <CJK> */
-MAP(0x38, 0x37, 0x53B3) /* <CJK> */
-MAP(0x38, 0x38, 0x5E7B) /* <CJK> */
-MAP(0x38, 0x39, 0x5F26) /* <CJK> */
-MAP(0x38, 0x3A, 0x6E1B) /* <CJK> */
-MAP(0x38, 0x3B, 0x6E90) /* <CJK> */
-MAP(0x38, 0x3C, 0x7384) /* <CJK> */
-MAP(0x38, 0x3D, 0x73FE) /* <CJK> */
-MAP(0x38, 0x3E, 0x7D43) /* <CJK> */
-MAP(0x38, 0x3F, 0x8237) /* <CJK> */
-MAP(0x38, 0x40, 0x8A00) /* <CJK> */
-MAP(0x38, 0x41, 0x8AFA) /* <CJK> */
-MAP(0x38, 0x42, 0x9650) /* <CJK> */
-MAP(0x38, 0x43, 0x4E4E) /* <CJK> */
-MAP(0x38, 0x44, 0x500B) /* <CJK> */
-MAP(0x38, 0x45, 0x53E4) /* <CJK> */
-MAP(0x38, 0x46, 0x547C) /* <CJK> */
-MAP(0x38, 0x47, 0x56FA) /* <CJK> */
-MAP(0x38, 0x48, 0x59D1) /* <CJK> */
-MAP(0x38, 0x49, 0x5B64) /* <CJK> */
-MAP(0x38, 0x4A, 0x5DF1) /* <CJK> */
-MAP(0x38, 0x4B, 0x5EAB) /* <CJK> */
-MAP(0x38, 0x4C, 0x5F27) /* <CJK> */
-MAP(0x38, 0x4D, 0x6238) /* <CJK> */
-MAP(0x38, 0x4E, 0x6545) /* <CJK> */
-MAP(0x38, 0x4F, 0x67AF) /* <CJK> */
-MAP(0x38, 0x50, 0x6E56) /* <CJK> */
-MAP(0x38, 0x51, 0x72D0) /* <CJK> */
-MAP(0x38, 0x52, 0x7CCA) /* <CJK> */
-MAP(0x38, 0x53, 0x88B4) /* <CJK> */
-MAP(0x38, 0x54, 0x80A1) /* <CJK> */
-MAP(0x38, 0x55, 0x80E1) /* <CJK> */
-MAP(0x38, 0x56, 0x83F0) /* <CJK> */
-MAP(0x38, 0x57, 0x864E) /* <CJK> */
-MAP(0x38, 0x58, 0x8A87) /* <CJK> */
-MAP(0x38, 0x59, 0x8DE8) /* <CJK> */
-MAP(0x38, 0x5A, 0x9237) /* <CJK> */
-MAP(0x38, 0x5B, 0x96C7) /* <CJK> */
-MAP(0x38, 0x5C, 0x9867) /* <CJK> */
-MAP(0x38, 0x5D, 0x9F13) /* <CJK> */
-MAP(0x38, 0x5E, 0x4E94) /* <CJK> */
-MAP(0x38, 0x5F, 0x4E92) /* <CJK> */
-MAP(0x38, 0x60, 0x4F0D) /* <CJK> */
-MAP(0x38, 0x61, 0x5348) /* <CJK> */
-MAP(0x38, 0x62, 0x5449) /* <CJK> */
-MAP(0x38, 0x63, 0x543E) /* <CJK> */
-MAP(0x38, 0x64, 0x5A2F) /* <CJK> */
-MAP(0x38, 0x65, 0x5F8C) /* <CJK> */
-MAP(0x38, 0x66, 0x5FA1) /* <CJK> */
-MAP(0x38, 0x67, 0x609F) /* <CJK> */
-MAP(0x38, 0x68, 0x68A7) /* <CJK> */
-MAP(0x38, 0x69, 0x6A8E) /* <CJK> */
-MAP(0x38, 0x6A, 0x745A) /* <CJK> */
-MAP(0x38, 0x6B, 0x7881) /* <CJK> */
-MAP(0x38, 0x6C, 0x8A9E) /* <CJK> */
-MAP(0x38, 0x6D, 0x8AA4) /* <CJK> */
-MAP(0x38, 0x6E, 0x8B77) /* <CJK> */
-MAP(0x38, 0x6F, 0x9190) /* <CJK> */
-MAP(0x38, 0x70, 0x4E5E) /* <CJK> */
-MAP(0x38, 0x71, 0x9BC9) /* <CJK> */
-MAP(0x38, 0x72, 0x4EA4) /* <CJK> */
-MAP(0x38, 0x73, 0x4F7C) /* <CJK> */
-MAP(0x38, 0x74, 0x4FAF) /* <CJK> */
-MAP(0x38, 0x75, 0x5019) /* <CJK> */
-MAP(0x38, 0x76, 0x5016) /* <CJK> */
-MAP(0x38, 0x77, 0x5149) /* <CJK> */
-MAP(0x38, 0x78, 0x516C) /* <CJK> */
-MAP(0x38, 0x79, 0x529F) /* <CJK> */
-MAP(0x38, 0x7A, 0x52B9) /* <CJK> */
-MAP(0x38, 0x7B, 0x52FE) /* <CJK> */
-MAP(0x38, 0x7C, 0x539A) /* <CJK> */
-MAP(0x38, 0x7D, 0x53E3) /* <CJK> */
-MAP(0x38, 0x7E, 0x5411) /* <CJK> */
-MAP(0x39, 0x21, 0x540E) /* <CJK> */
-MAP(0x39, 0x22, 0x5589) /* <CJK> */
-MAP(0x39, 0x23, 0x5751) /* <CJK> */
-MAP(0x39, 0x24, 0x57A2) /* <CJK> */
-MAP(0x39, 0x25, 0x597D) /* <CJK> */
-MAP(0x39, 0x26, 0x5B54) /* <CJK> */
-MAP(0x39, 0x27, 0x5B5D) /* <CJK> */
-MAP(0x39, 0x28, 0x5B8F) /* <CJK> */
-MAP(0x39, 0x29, 0x5DE5) /* <CJK> */
-MAP(0x39, 0x2A, 0x5DE7) /* <CJK> */
-MAP(0x39, 0x2B, 0x5DF7) /* <CJK> */
-MAP(0x39, 0x2C, 0x5E78) /* <CJK> */
-MAP(0x39, 0x2D, 0x5E83) /* <CJK> */
-MAP(0x39, 0x2E, 0x5E9A) /* <CJK> */
-MAP(0x39, 0x2F, 0x5EB7) /* <CJK> */
-MAP(0x39, 0x30, 0x5F18) /* <CJK> */
-MAP(0x39, 0x31, 0x6052) /* <CJK> */
-MAP(0x39, 0x32, 0x614C) /* <CJK> */
-MAP(0x39, 0x33, 0x6297) /* <CJK> */
-MAP(0x39, 0x34, 0x62D8) /* <CJK> */
-MAP(0x39, 0x35, 0x63A7) /* <CJK> */
-MAP(0x39, 0x36, 0x653B) /* <CJK> */
-MAP(0x39, 0x37, 0x6602) /* <CJK> */
-MAP(0x39, 0x38, 0x6643) /* <CJK> */
-MAP(0x39, 0x39, 0x66F4) /* <CJK> */
-MAP(0x39, 0x3A, 0x676D) /* <CJK> */
-MAP(0x39, 0x3B, 0x6821) /* <CJK> */
-MAP(0x39, 0x3C, 0x6897) /* <CJK> */
-MAP(0x39, 0x3D, 0x69CB) /* <CJK> */
-MAP(0x39, 0x3E, 0x6C5F) /* <CJK> */
-MAP(0x39, 0x3F, 0x6D2A) /* <CJK> */
-MAP(0x39, 0x40, 0x6D69) /* <CJK> */
-MAP(0x39, 0x41, 0x6E2F) /* <CJK> */
-MAP(0x39, 0x42, 0x6E9D) /* <CJK> */
-MAP(0x39, 0x43, 0x7532) /* <CJK> */
-MAP(0x39, 0x44, 0x7687) /* <CJK> */
-MAP(0x39, 0x45, 0x786C) /* <CJK> */
-MAP(0x39, 0x46, 0x7A3F) /* <CJK> */
-MAP(0x39, 0x47, 0x7CE0) /* <CJK> */
-MAP(0x39, 0x48, 0x7D05) /* <CJK> */
-MAP(0x39, 0x49, 0x7D18) /* <CJK> */
-MAP(0x39, 0x4A, 0x7D5E) /* <CJK> */
-MAP(0x39, 0x4B, 0x7DB1) /* <CJK> */
-MAP(0x39, 0x4C, 0x8015) /* <CJK> */
-MAP(0x39, 0x4D, 0x8003) /* <CJK> */
-MAP(0x39, 0x4E, 0x80AF) /* <CJK> */
-MAP(0x39, 0x4F, 0x80B1) /* <CJK> */
-MAP(0x39, 0x50, 0x8154) /* <CJK> */
-MAP(0x39, 0x51, 0x818F) /* <CJK> */
-MAP(0x39, 0x52, 0x822A) /* <CJK> */
-MAP(0x39, 0x53, 0x8352) /* <CJK> */
-MAP(0x39, 0x54, 0x884C) /* <CJK> */
-MAP(0x39, 0x55, 0x8861) /* <CJK> */
-MAP(0x39, 0x56, 0x8B1B) /* <CJK> */
-MAP(0x39, 0x57, 0x8CA2) /* <CJK> */
-MAP(0x39, 0x58, 0x8CFC) /* <CJK> */
-MAP(0x39, 0x59, 0x90CA) /* <CJK> */
-MAP(0x39, 0x5A, 0x9175) /* <CJK> */
-MAP(0x39, 0x5B, 0x9271) /* <CJK> */
-MAP(0x39, 0x5C, 0x783F) /* <CJK> */
-MAP(0x39, 0x5D, 0x92FC) /* <CJK> */
-MAP(0x39, 0x5E, 0x95A4) /* <CJK> */
-MAP(0x39, 0x5F, 0x964D) /* <CJK> */
-MAP(0x39, 0x60, 0x9805) /* <CJK> */
-MAP(0x39, 0x61, 0x9999) /* <CJK> */
-MAP(0x39, 0x62, 0x9AD8) /* <CJK> */
-MAP(0x39, 0x63, 0x9D3B) /* <CJK> */
-MAP(0x39, 0x64, 0x525B) /* <CJK> */
-MAP(0x39, 0x65, 0x52AB) /* <CJK> */
-MAP(0x39, 0x66, 0x53F7) /* <CJK> */
-MAP(0x39, 0x67, 0x5408) /* <CJK> */
-MAP(0x39, 0x68, 0x58D5) /* <CJK> */
-MAP(0x39, 0x69, 0x62F7) /* <CJK> */
-MAP(0x39, 0x6A, 0x6FE0) /* <CJK> */
-MAP(0x39, 0x6B, 0x8C6A) /* <CJK> */
-MAP(0x39, 0x6C, 0x8F5F) /* <CJK> */
-MAP(0x39, 0x6D, 0x9EB9) /* <CJK> */
-MAP(0x39, 0x6E, 0x514B) /* <CJK> */
-MAP(0x39, 0x6F, 0x523B) /* <CJK> */
-MAP(0x39, 0x70, 0x544A) /* <CJK> */
-MAP(0x39, 0x71, 0x56FD) /* <CJK> */
-MAP(0x39, 0x72, 0x7A40) /* <CJK> */
-MAP(0x39, 0x73, 0x9177) /* <CJK> */
-MAP(0x39, 0x74, 0x9D60) /* <CJK> */
-MAP(0x39, 0x75, 0x9ED2) /* <CJK> */
-MAP(0x39, 0x76, 0x7344) /* <CJK> */
-MAP(0x39, 0x77, 0x6F09) /* <CJK> */
-MAP(0x39, 0x78, 0x8170) /* <CJK> */
-MAP(0x39, 0x79, 0x7511) /* <CJK> */
-MAP(0x39, 0x7A, 0x5FFD) /* <CJK> */
-MAP(0x39, 0x7B, 0x60DA) /* <CJK> */
-MAP(0x39, 0x7C, 0x9AA8) /* <CJK> */
-MAP(0x39, 0x7D, 0x72DB) /* <CJK> */
-MAP(0x39, 0x7E, 0x8FBC) /* <CJK> */
-MAP(0x3A, 0x21, 0x6B64) /* <CJK> */
-MAP(0x3A, 0x22, 0x9803) /* <CJK> */
-MAP(0x3A, 0x23, 0x4ECA) /* <CJK> */
-MAP(0x3A, 0x24, 0x56F0) /* <CJK> */
-MAP(0x3A, 0x25, 0x5764) /* <CJK> */
-MAP(0x3A, 0x26, 0x58BE) /* <CJK> */
-MAP(0x3A, 0x27, 0x5A5A) /* <CJK> */
-MAP(0x3A, 0x28, 0x6068) /* <CJK> */
-MAP(0x3A, 0x29, 0x61C7) /* <CJK> */
-MAP(0x3A, 0x2A, 0x660F) /* <CJK> */
-MAP(0x3A, 0x2B, 0x6606) /* <CJK> */
-MAP(0x3A, 0x2C, 0x6839) /* <CJK> */
-MAP(0x3A, 0x2D, 0x68B1) /* <CJK> */
-MAP(0x3A, 0x2E, 0x6DF7) /* <CJK> */
-MAP(0x3A, 0x2F, 0x75D5) /* <CJK> */
-MAP(0x3A, 0x30, 0x7D3A) /* <CJK> */
-MAP(0x3A, 0x31, 0x826E) /* <CJK> */
-MAP(0x3A, 0x32, 0x9B42) /* <CJK> */
-MAP(0x3A, 0x33, 0x4E9B) /* <CJK> */
-MAP(0x3A, 0x34, 0x4F50) /* <CJK> */
-MAP(0x3A, 0x35, 0x53C9) /* <CJK> */
-MAP(0x3A, 0x36, 0x5506) /* <CJK> */
-MAP(0x3A, 0x37, 0x5D6F) /* <CJK> */
-MAP(0x3A, 0x38, 0x5DE6) /* <CJK> */
-MAP(0x3A, 0x39, 0x5DEE) /* <CJK> */
-MAP(0x3A, 0x3A, 0x67FB) /* <CJK> */
-MAP(0x3A, 0x3B, 0x6C99) /* <CJK> */
-MAP(0x3A, 0x3C, 0x7473) /* <CJK> */
-MAP(0x3A, 0x3D, 0x7802) /* <CJK> */
-MAP(0x3A, 0x3E, 0x8A50) /* <CJK> */
-MAP(0x3A, 0x3F, 0x9396) /* <CJK> */
-MAP(0x3A, 0x40, 0x88DF) /* <CJK> */
-MAP(0x3A, 0x41, 0x5750) /* <CJK> */
-MAP(0x3A, 0x42, 0x5EA7) /* <CJK> */
-MAP(0x3A, 0x43, 0x632B) /* <CJK> */
-MAP(0x3A, 0x44, 0x50B5) /* <CJK> */
-MAP(0x3A, 0x45, 0x50AC) /* <CJK> */
-MAP(0x3A, 0x46, 0x518D) /* <CJK> */
-MAP(0x3A, 0x47, 0x6700) /* <CJK> */
-MAP(0x3A, 0x48, 0x54C9) /* <CJK> */
-MAP(0x3A, 0x49, 0x585E) /* <CJK> */
-MAP(0x3A, 0x4A, 0x59BB) /* <CJK> */
-MAP(0x3A, 0x4B, 0x5BB0) /* <CJK> */
-MAP(0x3A, 0x4C, 0x5F69) /* <CJK> */
-MAP(0x3A, 0x4D, 0x624D) /* <CJK> */
-MAP(0x3A, 0x4E, 0x63A1) /* <CJK> */
-MAP(0x3A, 0x4F, 0x683D) /* <CJK> */
-MAP(0x3A, 0x50, 0x6B73) /* <CJK> */
-MAP(0x3A, 0x51, 0x6E08) /* <CJK> */
-MAP(0x3A, 0x52, 0x707D) /* <CJK> */
-MAP(0x3A, 0x53, 0x91C7) /* <CJK> */
-MAP(0x3A, 0x54, 0x7280) /* <CJK> */
-MAP(0x3A, 0x55, 0x7815) /* <CJK> */
-MAP(0x3A, 0x56, 0x7826) /* <CJK> */
-MAP(0x3A, 0x57, 0x796D) /* <CJK> */
-MAP(0x3A, 0x58, 0x658E) /* <CJK> */
-MAP(0x3A, 0x59, 0x7D30) /* <CJK> */
-MAP(0x3A, 0x5A, 0x83DC) /* <CJK> */
-MAP(0x3A, 0x5B, 0x88C1) /* <CJK> */
-MAP(0x3A, 0x5C, 0x8F09) /* <CJK> */
-MAP(0x3A, 0x5D, 0x969B) /* <CJK> */
-MAP(0x3A, 0x5E, 0x5264) /* <CJK> */
-MAP(0x3A, 0x5F, 0x5728) /* <CJK> */
-MAP(0x3A, 0x60, 0x6750) /* <CJK> */
-MAP(0x3A, 0x61, 0x7F6A) /* <CJK> */
-MAP(0x3A, 0x62, 0x8CA1) /* <CJK> */
-MAP(0x3A, 0x63, 0x51B4) /* <CJK> */
-MAP(0x3A, 0x64, 0x5742) /* <CJK> */
-MAP(0x3A, 0x65, 0x962A) /* <CJK> */
-MAP(0x3A, 0x66, 0x583A) /* <CJK> */
-MAP(0x3A, 0x67, 0x698A) /* <CJK> */
-MAP(0x3A, 0x68, 0x80B4) /* <CJK> */
-MAP(0x3A, 0x69, 0x54B2) /* <CJK> */
-MAP(0x3A, 0x6A, 0x5D0E) /* <CJK> */
-MAP(0x3A, 0x6B, 0x57FC) /* <CJK> */
-MAP(0x3A, 0x6C, 0x7895) /* <CJK> */
-MAP(0x3A, 0x6D, 0x9DFA) /* <CJK> */
-MAP(0x3A, 0x6E, 0x4F5C) /* <CJK> */
-MAP(0x3A, 0x6F, 0x524A) /* <CJK> */
-MAP(0x3A, 0x70, 0x548B) /* <CJK> */
-MAP(0x3A, 0x71, 0x643E) /* <CJK> */
-MAP(0x3A, 0x72, 0x6628) /* <CJK> */
-MAP(0x3A, 0x73, 0x6714) /* <CJK> */
-MAP(0x3A, 0x74, 0x67F5) /* <CJK> */
-MAP(0x3A, 0x75, 0x7A84) /* <CJK> */
-MAP(0x3A, 0x76, 0x7B56) /* <CJK> */
-MAP(0x3A, 0x77, 0x7D22) /* <CJK> */
-MAP(0x3A, 0x78, 0x932F) /* <CJK> */
-MAP(0x3A, 0x79, 0x685C) /* <CJK> */
-MAP(0x3A, 0x7A, 0x9BAD) /* <CJK> */
-MAP(0x3A, 0x7B, 0x7B39) /* <CJK> */
-MAP(0x3A, 0x7C, 0x5319) /* <CJK> */
-MAP(0x3A, 0x7D, 0x518A) /* <CJK> */
-MAP(0x3A, 0x7E, 0x5237) /* <CJK> */
-MAP(0x3B, 0x21, 0x5BDF) /* <CJK> */
-MAP(0x3B, 0x22, 0x62F6) /* <CJK> */
-MAP(0x3B, 0x23, 0x64AE) /* <CJK> */
-MAP(0x3B, 0x24, 0x64E6) /* <CJK> */
-MAP(0x3B, 0x25, 0x672D) /* <CJK> */
-MAP(0x3B, 0x26, 0x6BBA) /* <CJK> */
-MAP(0x3B, 0x27, 0x85A9) /* <CJK> */
-MAP(0x3B, 0x28, 0x96D1) /* <CJK> */
-MAP(0x3B, 0x29, 0x7690) /* <CJK> */
-MAP(0x3B, 0x2A, 0x9BD6) /* <CJK> */
-MAP(0x3B, 0x2B, 0x634C) /* <CJK> */
-MAP(0x3B, 0x2C, 0x9306) /* <CJK> */
-MAP(0x3B, 0x2D, 0x9BAB) /* <CJK> */
-MAP(0x3B, 0x2E, 0x76BF) /* <CJK> */
-MAP(0x3B, 0x2F, 0x6652) /* <CJK> */
-MAP(0x3B, 0x30, 0x4E09) /* <CJK> */
-MAP(0x3B, 0x31, 0x5098) /* <CJK> */
-MAP(0x3B, 0x32, 0x53C2) /* <CJK> */
-MAP(0x3B, 0x33, 0x5C71) /* <CJK> */
-MAP(0x3B, 0x34, 0x60E8) /* <CJK> */
-MAP(0x3B, 0x35, 0x6492) /* <CJK> */
-MAP(0x3B, 0x36, 0x6563) /* <CJK> */
-MAP(0x3B, 0x37, 0x685F) /* <CJK> */
-MAP(0x3B, 0x38, 0x71E6) /* <CJK> */
-MAP(0x3B, 0x39, 0x73CA) /* <CJK> */
-MAP(0x3B, 0x3A, 0x7523) /* <CJK> */
-MAP(0x3B, 0x3B, 0x7B97) /* <CJK> */
-MAP(0x3B, 0x3C, 0x7E82) /* <CJK> */
-MAP(0x3B, 0x3D, 0x8695) /* <CJK> */
-MAP(0x3B, 0x3E, 0x8B83) /* <CJK> */
-MAP(0x3B, 0x3F, 0x8CDB) /* <CJK> */
-MAP(0x3B, 0x40, 0x9178) /* <CJK> */
-MAP(0x3B, 0x41, 0x9910) /* <CJK> */
-MAP(0x3B, 0x42, 0x65AC) /* <CJK> */
-MAP(0x3B, 0x43, 0x66AB) /* <CJK> */
-MAP(0x3B, 0x44, 0x6B8B) /* <CJK> */
-MAP(0x3B, 0x45, 0x4ED5) /* <CJK> */
-MAP(0x3B, 0x46, 0x4ED4) /* <CJK> */
-MAP(0x3B, 0x47, 0x4F3A) /* <CJK> */
-MAP(0x3B, 0x48, 0x4F7F) /* <CJK> */
-MAP(0x3B, 0x49, 0x523A) /* <CJK> */
-MAP(0x3B, 0x4A, 0x53F8) /* <CJK> */
-MAP(0x3B, 0x4B, 0x53F2) /* <CJK> */
-MAP(0x3B, 0x4C, 0x55E3) /* <CJK> */
-MAP(0x3B, 0x4D, 0x56DB) /* <CJK> */
-MAP(0x3B, 0x4E, 0x58EB) /* <CJK> */
-MAP(0x3B, 0x4F, 0x59CB) /* <CJK> */
-MAP(0x3B, 0x50, 0x59C9) /* <CJK> */
-MAP(0x3B, 0x51, 0x59FF) /* <CJK> */
-MAP(0x3B, 0x52, 0x5B50) /* <CJK> */
-MAP(0x3B, 0x53, 0x5C4D) /* <CJK> */
-MAP(0x3B, 0x54, 0x5E02) /* <CJK> */
-MAP(0x3B, 0x55, 0x5E2B) /* <CJK> */
-MAP(0x3B, 0x56, 0x5FD7) /* <CJK> */
-MAP(0x3B, 0x57, 0x601D) /* <CJK> */
-MAP(0x3B, 0x58, 0x6307) /* <CJK> */
-MAP(0x3B, 0x59, 0x652F) /* <CJK> */
-MAP(0x3B, 0x5A, 0x5B5C) /* <CJK> */
-MAP(0x3B, 0x5B, 0x65AF) /* <CJK> */
-MAP(0x3B, 0x5C, 0x65BD) /* <CJK> */
-MAP(0x3B, 0x5D, 0x65E8) /* <CJK> */
-MAP(0x3B, 0x5E, 0x679D) /* <CJK> */
-MAP(0x3B, 0x5F, 0x6B62) /* <CJK> */
-MAP(0x3B, 0x60, 0x6B7B) /* <CJK> */
-MAP(0x3B, 0x61, 0x6C0F) /* <CJK> */
-MAP(0x3B, 0x62, 0x7345) /* <CJK> */
-MAP(0x3B, 0x63, 0x7949) /* <CJK> */
-MAP(0x3B, 0x64, 0x79C1) /* <CJK> */
-MAP(0x3B, 0x65, 0x7CF8) /* <CJK> */
-MAP(0x3B, 0x66, 0x7D19) /* <CJK> */
-MAP(0x3B, 0x67, 0x7D2B) /* <CJK> */
-MAP(0x3B, 0x68, 0x80A2) /* <CJK> */
-MAP(0x3B, 0x69, 0x8102) /* <CJK> */
-MAP(0x3B, 0x6A, 0x81F3) /* <CJK> */
-MAP(0x3B, 0x6B, 0x8996) /* <CJK> */
-MAP(0x3B, 0x6C, 0x8A5E) /* <CJK> */
-MAP(0x3B, 0x6D, 0x8A69) /* <CJK> */
-MAP(0x3B, 0x6E, 0x8A66) /* <CJK> */
-MAP(0x3B, 0x6F, 0x8A8C) /* <CJK> */
-MAP(0x3B, 0x70, 0x8AEE) /* <CJK> */
-MAP(0x3B, 0x71, 0x8CC7) /* <CJK> */
-MAP(0x3B, 0x72, 0x8CDC) /* <CJK> */
-MAP(0x3B, 0x73, 0x96CC) /* <CJK> */
-MAP(0x3B, 0x74, 0x98FC) /* <CJK> */
-MAP(0x3B, 0x75, 0x6B6F) /* <CJK> */
-MAP(0x3B, 0x76, 0x4E8B) /* <CJK> */
-MAP(0x3B, 0x77, 0x4F3C) /* <CJK> */
-MAP(0x3B, 0x78, 0x4F8D) /* <CJK> */
-MAP(0x3B, 0x79, 0x5150) /* <CJK> */
-MAP(0x3B, 0x7A, 0x5B57) /* <CJK> */
-MAP(0x3B, 0x7B, 0x5BFA) /* <CJK> */
-MAP(0x3B, 0x7C, 0x6148) /* <CJK> */
-MAP(0x3B, 0x7D, 0x6301) /* <CJK> */
-MAP(0x3B, 0x7E, 0x6642) /* <CJK> */
-MAP(0x3C, 0x21, 0x6B21) /* <CJK> */
-MAP(0x3C, 0x22, 0x6ECB) /* <CJK> */
-MAP(0x3C, 0x23, 0x6CBB) /* <CJK> */
-MAP(0x3C, 0x24, 0x723E) /* <CJK> */
-MAP(0x3C, 0x25, 0x74BD) /* <CJK> */
-MAP(0x3C, 0x26, 0x75D4) /* <CJK> */
-MAP(0x3C, 0x27, 0x78C1) /* <CJK> */
-MAP(0x3C, 0x28, 0x793A) /* <CJK> */
-MAP(0x3C, 0x29, 0x800C) /* <CJK> */
-MAP(0x3C, 0x2A, 0x8033) /* <CJK> */
-MAP(0x3C, 0x2B, 0x81EA) /* <CJK> */
-MAP(0x3C, 0x2C, 0x8494) /* <CJK> */
-MAP(0x3C, 0x2D, 0x8F9E) /* <CJK> */
-MAP(0x3C, 0x2E, 0x6C50) /* <CJK> */
-MAP(0x3C, 0x2F, 0x9E7F) /* <CJK> */
-MAP(0x3C, 0x30, 0x5F0F) /* <CJK> */
-MAP(0x3C, 0x31, 0x8B58) /* <CJK> */
-MAP(0x3C, 0x32, 0x9D2B) /* <CJK> */
-MAP(0x3C, 0x33, 0x7AFA) /* <CJK> */
-MAP(0x3C, 0x34, 0x8EF8) /* <CJK> */
-MAP(0x3C, 0x35, 0x5B8D) /* <CJK> */
-MAP(0x3C, 0x36, 0x96EB) /* <CJK> */
-MAP(0x3C, 0x37, 0x4E03) /* <CJK> */
-MAP(0x3C, 0x38, 0x53F1) /* <CJK> */
-MAP(0x3C, 0x39, 0x57F7) /* <CJK> */
-MAP(0x3C, 0x3A, 0x5931) /* <CJK> */
-MAP(0x3C, 0x3B, 0x5AC9) /* <CJK> */
-MAP(0x3C, 0x3C, 0x5BA4) /* <CJK> */
-MAP(0x3C, 0x3D, 0x6089) /* <CJK> */
-MAP(0x3C, 0x3E, 0x6E7F) /* <CJK> */
-MAP(0x3C, 0x3F, 0x6F06) /* <CJK> */
-MAP(0x3C, 0x40, 0x75BE) /* <CJK> */
-MAP(0x3C, 0x41, 0x8CEA) /* <CJK> */
-MAP(0x3C, 0x42, 0x5B9F) /* <CJK> */
-MAP(0x3C, 0x43, 0x8500) /* <CJK> */
-MAP(0x3C, 0x44, 0x7BE0) /* <CJK> */
-MAP(0x3C, 0x45, 0x5072) /* <CJK> */
-MAP(0x3C, 0x46, 0x67F4) /* <CJK> */
-MAP(0x3C, 0x47, 0x829D) /* <CJK> */
-MAP(0x3C, 0x48, 0x5C61) /* <CJK> */
-MAP(0x3C, 0x49, 0x854A) /* <CJK> */
-MAP(0x3C, 0x4A, 0x7E1E) /* <CJK> */
-MAP(0x3C, 0x4B, 0x820E) /* <CJK> */
-MAP(0x3C, 0x4C, 0x5199) /* <CJK> */
-MAP(0x3C, 0x4D, 0x5C04) /* <CJK> */
-MAP(0x3C, 0x4E, 0x6368) /* <CJK> */
-MAP(0x3C, 0x4F, 0x8D66) /* <CJK> */
-MAP(0x3C, 0x50, 0x659C) /* <CJK> */
-MAP(0x3C, 0x51, 0x716E) /* <CJK> */
-MAP(0x3C, 0x52, 0x793E) /* <CJK> */
-MAP(0x3C, 0x53, 0x7D17) /* <CJK> */
-MAP(0x3C, 0x54, 0x8005) /* <CJK> */
-MAP(0x3C, 0x55, 0x8B1D) /* <CJK> */
-MAP(0x3C, 0x56, 0x8ECA) /* <CJK> */
-MAP(0x3C, 0x57, 0x906E) /* <CJK> */
-MAP(0x3C, 0x58, 0x86C7) /* <CJK> */
-MAP(0x3C, 0x59, 0x90AA) /* <CJK> */
-MAP(0x3C, 0x5A, 0x501F) /* <CJK> */
-MAP(0x3C, 0x5B, 0x52FA) /* <CJK> */
-MAP(0x3C, 0x5C, 0x5C3A) /* <CJK> */
-MAP(0x3C, 0x5D, 0x6753) /* <CJK> */
-MAP(0x3C, 0x5E, 0x707C) /* <CJK> */
-MAP(0x3C, 0x5F, 0x7235) /* <CJK> */
-MAP(0x3C, 0x60, 0x914C) /* <CJK> */
-MAP(0x3C, 0x61, 0x91C8) /* <CJK> */
-MAP(0x3C, 0x62, 0x932B) /* <CJK> */
-MAP(0x3C, 0x63, 0x82E5) /* <CJK> */
-MAP(0x3C, 0x64, 0x5BC2) /* <CJK> */
-MAP(0x3C, 0x65, 0x5F31) /* <CJK> */
-MAP(0x3C, 0x66, 0x60F9) /* <CJK> */
-MAP(0x3C, 0x67, 0x4E3B) /* <CJK> */
-MAP(0x3C, 0x68, 0x53D6) /* <CJK> */
-MAP(0x3C, 0x69, 0x5B88) /* <CJK> */
-MAP(0x3C, 0x6A, 0x624B) /* <CJK> */
-MAP(0x3C, 0x6B, 0x6731) /* <CJK> */
-MAP(0x3C, 0x6C, 0x6B8A) /* <CJK> */
-MAP(0x3C, 0x6D, 0x72E9) /* <CJK> */
-MAP(0x3C, 0x6E, 0x73E0) /* <CJK> */
-MAP(0x3C, 0x6F, 0x7A2E) /* <CJK> */
-MAP(0x3C, 0x70, 0x816B) /* <CJK> */
-MAP(0x3C, 0x71, 0x8DA3) /* <CJK> */
-MAP(0x3C, 0x72, 0x9152) /* <CJK> */
-MAP(0x3C, 0x73, 0x9996) /* <CJK> */
-MAP(0x3C, 0x74, 0x5112) /* <CJK> */
-MAP(0x3C, 0x75, 0x53D7) /* <CJK> */
-MAP(0x3C, 0x76, 0x546A) /* <CJK> */
-MAP(0x3C, 0x77, 0x5BFF) /* <CJK> */
-MAP(0x3C, 0x78, 0x6388) /* <CJK> */
-MAP(0x3C, 0x79, 0x6A39) /* <CJK> */
-MAP(0x3C, 0x7A, 0x7DAC) /* <CJK> */
-MAP(0x3C, 0x7B, 0x9700) /* <CJK> */
-MAP(0x3C, 0x7C, 0x56DA) /* <CJK> */
-MAP(0x3C, 0x7D, 0x53CE) /* <CJK> */
-MAP(0x3C, 0x7E, 0x5468) /* <CJK> */
-MAP(0x3D, 0x21, 0x5B97) /* <CJK> */
-MAP(0x3D, 0x22, 0x5C31) /* <CJK> */
-MAP(0x3D, 0x23, 0x5DDE) /* <CJK> */
-MAP(0x3D, 0x24, 0x4FEE) /* <CJK> */
-MAP(0x3D, 0x25, 0x6101) /* <CJK> */
-MAP(0x3D, 0x26, 0x62FE) /* <CJK> */
-MAP(0x3D, 0x27, 0x6D32) /* <CJK> */
-MAP(0x3D, 0x28, 0x79C0) /* <CJK> */
-MAP(0x3D, 0x29, 0x79CB) /* <CJK> */
-MAP(0x3D, 0x2A, 0x7D42) /* <CJK> */
-MAP(0x3D, 0x2B, 0x7E4D) /* <CJK> */
-MAP(0x3D, 0x2C, 0x7FD2) /* <CJK> */
-MAP(0x3D, 0x2D, 0x81ED) /* <CJK> */
-MAP(0x3D, 0x2E, 0x821F) /* <CJK> */
-MAP(0x3D, 0x2F, 0x8490) /* <CJK> */
-MAP(0x3D, 0x30, 0x8846) /* <CJK> */
-MAP(0x3D, 0x31, 0x8972) /* <CJK> */
-MAP(0x3D, 0x32, 0x8B90) /* <CJK> */
-MAP(0x3D, 0x33, 0x8E74) /* <CJK> */
-MAP(0x3D, 0x34, 0x8F2F) /* <CJK> */
-MAP(0x3D, 0x35, 0x9031) /* <CJK> */
-MAP(0x3D, 0x36, 0x914B) /* <CJK> */
-MAP(0x3D, 0x37, 0x916C) /* <CJK> */
-MAP(0x3D, 0x38, 0x96C6) /* <CJK> */
-MAP(0x3D, 0x39, 0x919C) /* <CJK> */
-MAP(0x3D, 0x3A, 0x4EC0) /* <CJK> */
-MAP(0x3D, 0x3B, 0x4F4F) /* <CJK> */
-MAP(0x3D, 0x3C, 0x5145) /* <CJK> */
-MAP(0x3D, 0x3D, 0x5341) /* <CJK> */
-MAP(0x3D, 0x3E, 0x5F93) /* <CJK> */
-MAP(0x3D, 0x3F, 0x620E) /* <CJK> */
-MAP(0x3D, 0x40, 0x67D4) /* <CJK> */
-MAP(0x3D, 0x41, 0x6C41) /* <CJK> */
-MAP(0x3D, 0x42, 0x6E0B) /* <CJK> */
-MAP(0x3D, 0x43, 0x7363) /* <CJK> */
-MAP(0x3D, 0x44, 0x7E26) /* <CJK> */
-MAP(0x3D, 0x45, 0x91CD) /* <CJK> */
-MAP(0x3D, 0x46, 0x9283) /* <CJK> */
-MAP(0x3D, 0x47, 0x53D4) /* <CJK> */
-MAP(0x3D, 0x48, 0x5919) /* <CJK> */
-MAP(0x3D, 0x49, 0x5BBF) /* <CJK> */
-MAP(0x3D, 0x4A, 0x6DD1) /* <CJK> */
-MAP(0x3D, 0x4B, 0x795D) /* <CJK> */
-MAP(0x3D, 0x4C, 0x7E2E) /* <CJK> */
-MAP(0x3D, 0x4D, 0x7C9B) /* <CJK> */
-MAP(0x3D, 0x4E, 0x587E) /* <CJK> */
-MAP(0x3D, 0x4F, 0x719F) /* <CJK> */
-MAP(0x3D, 0x50, 0x51FA) /* <CJK> */
-MAP(0x3D, 0x51, 0x8853) /* <CJK> */
-MAP(0x3D, 0x52, 0x8FF0) /* <CJK> */
-MAP(0x3D, 0x53, 0x4FCA) /* <CJK> */
-MAP(0x3D, 0x54, 0x5CFB) /* <CJK> */
-MAP(0x3D, 0x55, 0x6625) /* <CJK> */
-MAP(0x3D, 0x56, 0x77AC) /* <CJK> */
-MAP(0x3D, 0x57, 0x7AE3) /* <CJK> */
-MAP(0x3D, 0x58, 0x821C) /* <CJK> */
-MAP(0x3D, 0x59, 0x99FF) /* <CJK> */
-MAP(0x3D, 0x5A, 0x51C6) /* <CJK> */
-MAP(0x3D, 0x5B, 0x5FAA) /* <CJK> */
-MAP(0x3D, 0x5C, 0x65EC) /* <CJK> */
-MAP(0x3D, 0x5D, 0x696F) /* <CJK> */
-MAP(0x3D, 0x5E, 0x6B89) /* <CJK> */
-MAP(0x3D, 0x5F, 0x6DF3) /* <CJK> */
-MAP(0x3D, 0x60, 0x6E96) /* <CJK> */
-MAP(0x3D, 0x61, 0x6F64) /* <CJK> */
-MAP(0x3D, 0x62, 0x76FE) /* <CJK> */
-MAP(0x3D, 0x63, 0x7D14) /* <CJK> */
-MAP(0x3D, 0x64, 0x5DE1) /* <CJK> */
-MAP(0x3D, 0x65, 0x9075) /* <CJK> */
-MAP(0x3D, 0x66, 0x9187) /* <CJK> */
-MAP(0x3D, 0x67, 0x9806) /* <CJK> */
-MAP(0x3D, 0x68, 0x51E6) /* <CJK> */
-MAP(0x3D, 0x69, 0x521D) /* <CJK> */
-MAP(0x3D, 0x6A, 0x6240) /* <CJK> */
-MAP(0x3D, 0x6B, 0x6691) /* <CJK> */
-MAP(0x3D, 0x6C, 0x66D9) /* <CJK> */
-MAP(0x3D, 0x6D, 0x6E1A) /* <CJK> */
-MAP(0x3D, 0x6E, 0x5EB6) /* <CJK> */
-MAP(0x3D, 0x6F, 0x7DD2) /* <CJK> */
-MAP(0x3D, 0x70, 0x7F72) /* <CJK> */
-MAP(0x3D, 0x71, 0x66F8) /* <CJK> */
-MAP(0x3D, 0x72, 0x85AF) /* <CJK> */
-MAP(0x3D, 0x73, 0x85F7) /* <CJK> */
-MAP(0x3D, 0x74, 0x8AF8) /* <CJK> */
-MAP(0x3D, 0x75, 0x52A9) /* <CJK> */
-MAP(0x3D, 0x76, 0x53D9) /* <CJK> */
-MAP(0x3D, 0x77, 0x5973) /* <CJK> */
-MAP(0x3D, 0x78, 0x5E8F) /* <CJK> */
-MAP(0x3D, 0x79, 0x5F90) /* <CJK> */
-MAP(0x3D, 0x7A, 0x6055) /* <CJK> */
-MAP(0x3D, 0x7B, 0x92E4) /* <CJK> */
-MAP(0x3D, 0x7C, 0x9664) /* <CJK> */
-MAP(0x3D, 0x7D, 0x50B7) /* <CJK> */
-MAP(0x3D, 0x7E, 0x511F) /* <CJK> */
-MAP(0x3E, 0x21, 0x52DD) /* <CJK> */
-MAP(0x3E, 0x22, 0x5320) /* <CJK> */
-MAP(0x3E, 0x23, 0x5347) /* <CJK> */
-MAP(0x3E, 0x24, 0x53EC) /* <CJK> */
-MAP(0x3E, 0x25, 0x54E8) /* <CJK> */
-MAP(0x3E, 0x26, 0x5546) /* <CJK> */
-MAP(0x3E, 0x27, 0x5531) /* <CJK> */
-MAP(0x3E, 0x28, 0x5617) /* <CJK> */
-MAP(0x3E, 0x29, 0x5968) /* <CJK> */
-MAP(0x3E, 0x2A, 0x59BE) /* <CJK> */
-MAP(0x3E, 0x2B, 0x5A3C) /* <CJK> */
-MAP(0x3E, 0x2C, 0x5BB5) /* <CJK> */
-MAP(0x3E, 0x2D, 0x5C06) /* <CJK> */
-MAP(0x3E, 0x2E, 0x5C0F) /* <CJK> */
-MAP(0x3E, 0x2F, 0x5C11) /* <CJK> */
-MAP(0x3E, 0x30, 0x5C1A) /* <CJK> */
-MAP(0x3E, 0x31, 0x5E84) /* <CJK> */
-MAP(0x3E, 0x32, 0x5E8A) /* <CJK> */
-MAP(0x3E, 0x33, 0x5EE0) /* <CJK> */
-MAP(0x3E, 0x34, 0x5F70) /* <CJK> */
-MAP(0x3E, 0x35, 0x627F) /* <CJK> */
-MAP(0x3E, 0x36, 0x6284) /* <CJK> */
-MAP(0x3E, 0x37, 0x62DB) /* <CJK> */
-MAP(0x3E, 0x38, 0x638C) /* <CJK> */
-MAP(0x3E, 0x39, 0x6377) /* <CJK> */
-MAP(0x3E, 0x3A, 0x6607) /* <CJK> */
-MAP(0x3E, 0x3B, 0x660C) /* <CJK> */
-MAP(0x3E, 0x3C, 0x662D) /* <CJK> */
-MAP(0x3E, 0x3D, 0x6676) /* <CJK> */
-MAP(0x3E, 0x3E, 0x677E) /* <CJK> */
-MAP(0x3E, 0x3F, 0x68A2) /* <CJK> */
-MAP(0x3E, 0x40, 0x6A1F) /* <CJK> */
-MAP(0x3E, 0x41, 0x6A35) /* <CJK> */
-MAP(0x3E, 0x42, 0x6CBC) /* <CJK> */
-MAP(0x3E, 0x43, 0x6D88) /* <CJK> */
-MAP(0x3E, 0x44, 0x6E09) /* <CJK> */
-MAP(0x3E, 0x45, 0x6E58) /* <CJK> */
-MAP(0x3E, 0x46, 0x713C) /* <CJK> */
-MAP(0x3E, 0x47, 0x7126) /* <CJK> */
-MAP(0x3E, 0x48, 0x7167) /* <CJK> */
-MAP(0x3E, 0x49, 0x75C7) /* <CJK> */
-MAP(0x3E, 0x4A, 0x7701) /* <CJK> */
-MAP(0x3E, 0x4B, 0x785D) /* <CJK> */
-MAP(0x3E, 0x4C, 0x7901) /* <CJK> */
-MAP(0x3E, 0x4D, 0x7965) /* <CJK> */
-MAP(0x3E, 0x4E, 0x79F0) /* <CJK> */
-MAP(0x3E, 0x4F, 0x7AE0) /* <CJK> */
-MAP(0x3E, 0x50, 0x7B11) /* <CJK> */
-MAP(0x3E, 0x51, 0x7CA7) /* <CJK> */
-MAP(0x3E, 0x52, 0x7D39) /* <CJK> */
-MAP(0x3E, 0x53, 0x8096) /* <CJK> */
-MAP(0x3E, 0x54, 0x83D6) /* <CJK> */
-MAP(0x3E, 0x55, 0x848B) /* <CJK> */
-MAP(0x3E, 0x56, 0x8549) /* <CJK> */
-MAP(0x3E, 0x57, 0x885D) /* <CJK> */
-MAP(0x3E, 0x58, 0x88F3) /* <CJK> */
-MAP(0x3E, 0x59, 0x8A1F) /* <CJK> */
-MAP(0x3E, 0x5A, 0x8A3C) /* <CJK> */
-MAP(0x3E, 0x5B, 0x8A54) /* <CJK> */
-MAP(0x3E, 0x5C, 0x8A73) /* <CJK> */
-MAP(0x3E, 0x5D, 0x8C61) /* <CJK> */
-MAP(0x3E, 0x5E, 0x8CDE) /* <CJK> */
-MAP(0x3E, 0x5F, 0x91A4) /* <CJK> */
-MAP(0x3E, 0x60, 0x9266) /* <CJK> */
-MAP(0x3E, 0x61, 0x937E) /* <CJK> */
-MAP(0x3E, 0x62, 0x9418) /* <CJK> */
-MAP(0x3E, 0x63, 0x969C) /* <CJK> */
-MAP(0x3E, 0x64, 0x9798) /* <CJK> */
-MAP(0x3E, 0x65, 0x4E0A) /* <CJK> */
-MAP(0x3E, 0x66, 0x4E08) /* <CJK> */
-MAP(0x3E, 0x67, 0x4E1E) /* <CJK> */
-MAP(0x3E, 0x68, 0x4E57) /* <CJK> */
-MAP(0x3E, 0x69, 0x5197) /* <CJK> */
-MAP(0x3E, 0x6A, 0x5270) /* <CJK> */
-MAP(0x3E, 0x6B, 0x57CE) /* <CJK> */
-MAP(0x3E, 0x6C, 0x5834) /* <CJK> */
-MAP(0x3E, 0x6D, 0x58CC) /* <CJK> */
-MAP(0x3E, 0x6E, 0x5B22) /* <CJK> */
-MAP(0x3E, 0x6F, 0x5E38) /* <CJK> */
-MAP(0x3E, 0x70, 0x60C5) /* <CJK> */
-MAP(0x3E, 0x71, 0x64FE) /* <CJK> */
-MAP(0x3E, 0x72, 0x6761) /* <CJK> */
-MAP(0x3E, 0x73, 0x6756) /* <CJK> */
-MAP(0x3E, 0x74, 0x6D44) /* <CJK> */
-MAP(0x3E, 0x75, 0x72B6) /* <CJK> */
-MAP(0x3E, 0x76, 0x7573) /* <CJK> */
-MAP(0x3E, 0x77, 0x7A63) /* <CJK> */
-MAP(0x3E, 0x78, 0x84B8) /* <CJK> */
-MAP(0x3E, 0x79, 0x8B72) /* <CJK> */
-MAP(0x3E, 0x7A, 0x91B8) /* <CJK> */
-MAP(0x3E, 0x7B, 0x9320) /* <CJK> */
-MAP(0x3E, 0x7C, 0x5631) /* <CJK> */
-MAP(0x3E, 0x7D, 0x57F4) /* <CJK> */
-MAP(0x3E, 0x7E, 0x98FE) /* <CJK> */
-MAP(0x3F, 0x21, 0x62ED) /* <CJK> */
-MAP(0x3F, 0x22, 0x690D) /* <CJK> */
-MAP(0x3F, 0x23, 0x6B96) /* <CJK> */
-MAP(0x3F, 0x24, 0x71ED) /* <CJK> */
-MAP(0x3F, 0x25, 0x7E54) /* <CJK> */
-MAP(0x3F, 0x26, 0x8077) /* <CJK> */
-MAP(0x3F, 0x27, 0x8272) /* <CJK> */
-MAP(0x3F, 0x28, 0x89E6) /* <CJK> */
-MAP(0x3F, 0x29, 0x98DF) /* <CJK> */
-MAP(0x3F, 0x2A, 0x8755) /* <CJK> */
-MAP(0x3F, 0x2B, 0x8FB1) /* <CJK> */
-MAP(0x3F, 0x2C, 0x5C3B) /* <CJK> */
-MAP(0x3F, 0x2D, 0x4F38) /* <CJK> */
-MAP(0x3F, 0x2E, 0x4FE1) /* <CJK> */
-MAP(0x3F, 0x2F, 0x4FB5) /* <CJK> */
-MAP(0x3F, 0x30, 0x5507) /* <CJK> */
-MAP(0x3F, 0x31, 0x5A20) /* <CJK> */
-MAP(0x3F, 0x32, 0x5BDD) /* <CJK> */
-MAP(0x3F, 0x33, 0x5BE9) /* <CJK> */
-MAP(0x3F, 0x34, 0x5FC3) /* <CJK> */
-MAP(0x3F, 0x35, 0x614E) /* <CJK> */
-MAP(0x3F, 0x36, 0x632F) /* <CJK> */
-MAP(0x3F, 0x37, 0x65B0) /* <CJK> */
-MAP(0x3F, 0x38, 0x664B) /* <CJK> */
-MAP(0x3F, 0x39, 0x68EE) /* <CJK> */
-MAP(0x3F, 0x3A, 0x699B) /* <CJK> */
-MAP(0x3F, 0x3B, 0x6D78) /* <CJK> */
-MAP(0x3F, 0x3C, 0x6DF1) /* <CJK> */
-MAP(0x3F, 0x3D, 0x7533) /* <CJK> */
-MAP(0x3F, 0x3E, 0x75B9) /* <CJK> */
-MAP(0x3F, 0x3F, 0x771F) /* <CJK> */
-MAP(0x3F, 0x40, 0x795E) /* <CJK> */
-MAP(0x3F, 0x41, 0x79E6) /* <CJK> */
-MAP(0x3F, 0x42, 0x7D33) /* <CJK> */
-MAP(0x3F, 0x43, 0x81E3) /* <CJK> */
-MAP(0x3F, 0x44, 0x82AF) /* <CJK> */
-MAP(0x3F, 0x45, 0x85AA) /* <CJK> */
-MAP(0x3F, 0x46, 0x89AA) /* <CJK> */
-MAP(0x3F, 0x47, 0x8A3A) /* <CJK> */
-MAP(0x3F, 0x48, 0x8EAB) /* <CJK> */
-MAP(0x3F, 0x49, 0x8F9B) /* <CJK> */
-MAP(0x3F, 0x4A, 0x9032) /* <CJK> */
-MAP(0x3F, 0x4B, 0x91DD) /* <CJK> */
-MAP(0x3F, 0x4C, 0x9707) /* <CJK> */
-MAP(0x3F, 0x4D, 0x4EBA) /* <CJK> */
-MAP(0x3F, 0x4E, 0x4EC1) /* <CJK> */
-MAP(0x3F, 0x4F, 0x5203) /* <CJK> */
-MAP(0x3F, 0x50, 0x5875) /* <CJK> */
-MAP(0x3F, 0x51, 0x58EC) /* <CJK> */
-MAP(0x3F, 0x52, 0x5C0B) /* <CJK> */
-MAP(0x3F, 0x53, 0x751A) /* <CJK> */
-MAP(0x3F, 0x54, 0x5C3D) /* <CJK> */
-MAP(0x3F, 0x55, 0x814E) /* <CJK> */
-MAP(0x3F, 0x56, 0x8A0A) /* <CJK> */
-MAP(0x3F, 0x57, 0x8FC5) /* <CJK> */
-MAP(0x3F, 0x58, 0x9663) /* <CJK> */
-MAP(0x3F, 0x59, 0x976D) /* <CJK> */
-MAP(0x3F, 0x5A, 0x7B25) /* <CJK> */
-MAP(0x3F, 0x5B, 0x8ACF) /* <CJK> */
-MAP(0x3F, 0x5C, 0x9808) /* <CJK> */
-MAP(0x3F, 0x5D, 0x9162) /* <CJK> */
-MAP(0x3F, 0x5E, 0x56F3) /* <CJK> */
-MAP(0x3F, 0x5F, 0x53A8) /* <CJK> */
-MAP(0x3F, 0x60, 0x9017) /* <CJK> */
-MAP(0x3F, 0x61, 0x5439) /* <CJK> */
-MAP(0x3F, 0x62, 0x5782) /* <CJK> */
-MAP(0x3F, 0x63, 0x5E25) /* <CJK> */
-MAP(0x3F, 0x64, 0x63A8) /* <CJK> */
-MAP(0x3F, 0x65, 0x6C34) /* <CJK> */
-MAP(0x3F, 0x66, 0x708A) /* <CJK> */
-MAP(0x3F, 0x67, 0x7761) /* <CJK> */
-MAP(0x3F, 0x68, 0x7C8B) /* <CJK> */
-MAP(0x3F, 0x69, 0x7FE0) /* <CJK> */
-MAP(0x3F, 0x6A, 0x8870) /* <CJK> */
-MAP(0x3F, 0x6B, 0x9042) /* <CJK> */
-MAP(0x3F, 0x6C, 0x9154) /* <CJK> */
-MAP(0x3F, 0x6D, 0x9310) /* <CJK> */
-MAP(0x3F, 0x6E, 0x9318) /* <CJK> */
-MAP(0x3F, 0x6F, 0x968F) /* <CJK> */
-MAP(0x3F, 0x70, 0x745E) /* <CJK> */
-MAP(0x3F, 0x71, 0x9AC4) /* <CJK> */
-MAP(0x3F, 0x72, 0x5D07) /* <CJK> */
-MAP(0x3F, 0x73, 0x5D69) /* <CJK> */
-MAP(0x3F, 0x74, 0x6570) /* <CJK> */
-MAP(0x3F, 0x75, 0x67A2) /* <CJK> */
-MAP(0x3F, 0x76, 0x8DA8) /* <CJK> */
-MAP(0x3F, 0x77, 0x96DB) /* <CJK> */
-MAP(0x3F, 0x78, 0x636E) /* <CJK> */
-MAP(0x3F, 0x79, 0x6749) /* <CJK> */
-MAP(0x3F, 0x7A, 0x6919) /* <CJK> */
-MAP(0x3F, 0x7B, 0x83C5) /* <CJK> */
-MAP(0x3F, 0x7C, 0x9817) /* <CJK> */
-MAP(0x3F, 0x7D, 0x96C0) /* <CJK> */
-MAP(0x3F, 0x7E, 0x88FE) /* <CJK> */
-MAP(0x40, 0x21, 0x6F84) /* <CJK> */
-MAP(0x40, 0x22, 0x647A) /* <CJK> */
-MAP(0x40, 0x23, 0x5BF8) /* <CJK> */
-MAP(0x40, 0x24, 0x4E16) /* <CJK> */
-MAP(0x40, 0x25, 0x702C) /* <CJK> */
-MAP(0x40, 0x26, 0x755D) /* <CJK> */
-MAP(0x40, 0x27, 0x662F) /* <CJK> */
-MAP(0x40, 0x28, 0x51C4) /* <CJK> */
-MAP(0x40, 0x29, 0x5236) /* <CJK> */
-MAP(0x40, 0x2A, 0x52E2) /* <CJK> */
-MAP(0x40, 0x2B, 0x59D3) /* <CJK> */
-MAP(0x40, 0x2C, 0x5F81) /* <CJK> */
-MAP(0x40, 0x2D, 0x6027) /* <CJK> */
-MAP(0x40, 0x2E, 0x6210) /* <CJK> */
-MAP(0x40, 0x2F, 0x653F) /* <CJK> */
-MAP(0x40, 0x30, 0x6574) /* <CJK> */
-MAP(0x40, 0x31, 0x661F) /* <CJK> */
-MAP(0x40, 0x32, 0x6674) /* <CJK> */
-MAP(0x40, 0x33, 0x68F2) /* <CJK> */
-MAP(0x40, 0x34, 0x6816) /* <CJK> */
-MAP(0x40, 0x35, 0x6B63) /* <CJK> */
-MAP(0x40, 0x36, 0x6E05) /* <CJK> */
-MAP(0x40, 0x37, 0x7272) /* <CJK> */
-MAP(0x40, 0x38, 0x751F) /* <CJK> */
-MAP(0x40, 0x39, 0x76DB) /* <CJK> */
-MAP(0x40, 0x3A, 0x7CBE) /* <CJK> */
-MAP(0x40, 0x3B, 0x8056) /* <CJK> */
-MAP(0x40, 0x3C, 0x58F0) /* <CJK> */
-MAP(0x40, 0x3D, 0x88FD) /* <CJK> */
-MAP(0x40, 0x3E, 0x897F) /* <CJK> */
-MAP(0x40, 0x3F, 0x8AA0) /* <CJK> */
-MAP(0x40, 0x40, 0x8A93) /* <CJK> */
-MAP(0x40, 0x41, 0x8ACB) /* <CJK> */
-MAP(0x40, 0x42, 0x901D) /* <CJK> */
-MAP(0x40, 0x43, 0x9192) /* <CJK> */
-MAP(0x40, 0x44, 0x9752) /* <CJK> */
-MAP(0x40, 0x45, 0x9759) /* <CJK> */
-MAP(0x40, 0x46, 0x6589) /* <CJK> */
-MAP(0x40, 0x47, 0x7A0E) /* <CJK> */
-MAP(0x40, 0x48, 0x8106) /* <CJK> */
-MAP(0x40, 0x49, 0x96BB) /* <CJK> */
-MAP(0x40, 0x4A, 0x5E2D) /* <CJK> */
-MAP(0x40, 0x4B, 0x60DC) /* <CJK> */
-MAP(0x40, 0x4C, 0x621A) /* <CJK> */
-MAP(0x40, 0x4D, 0x65A5) /* <CJK> */
-MAP(0x40, 0x4E, 0x6614) /* <CJK> */
-MAP(0x40, 0x4F, 0x6790) /* <CJK> */
-MAP(0x40, 0x50, 0x77F3) /* <CJK> */
-MAP(0x40, 0x51, 0x7A4D) /* <CJK> */
-MAP(0x40, 0x52, 0x7C4D) /* <CJK> */
-MAP(0x40, 0x53, 0x7E3E) /* <CJK> */
-MAP(0x40, 0x54, 0x810A) /* <CJK> */
-MAP(0x40, 0x55, 0x8CAC) /* <CJK> */
-MAP(0x40, 0x56, 0x8D64) /* <CJK> */
-MAP(0x40, 0x57, 0x8DE1) /* <CJK> */
-MAP(0x40, 0x58, 0x8E5F) /* <CJK> */
-MAP(0x40, 0x59, 0x78A9) /* <CJK> */
-MAP(0x40, 0x5A, 0x5207) /* <CJK> */
-MAP(0x40, 0x5B, 0x62D9) /* <CJK> */
-MAP(0x40, 0x5C, 0x63A5) /* <CJK> */
-MAP(0x40, 0x5D, 0x6442) /* <CJK> */
-MAP(0x40, 0x5E, 0x6298) /* <CJK> */
-MAP(0x40, 0x5F, 0x8A2D) /* <CJK> */
-MAP(0x40, 0x60, 0x7A83) /* <CJK> */
-MAP(0x40, 0x61, 0x7BC0) /* <CJK> */
-MAP(0x40, 0x62, 0x8AAC) /* <CJK> */
-MAP(0x40, 0x63, 0x96EA) /* <CJK> */
-MAP(0x40, 0x64, 0x7D76) /* <CJK> */
-MAP(0x40, 0x65, 0x820C) /* <CJK> */
-MAP(0x40, 0x66, 0x8749) /* <CJK> */
-MAP(0x40, 0x67, 0x4ED9) /* <CJK> */
-MAP(0x40, 0x68, 0x5148) /* <CJK> */
-MAP(0x40, 0x69, 0x5343) /* <CJK> */
-MAP(0x40, 0x6A, 0x5360) /* <CJK> */
-MAP(0x40, 0x6B, 0x5BA3) /* <CJK> */
-MAP(0x40, 0x6C, 0x5C02) /* <CJK> */
-MAP(0x40, 0x6D, 0x5C16) /* <CJK> */
-MAP(0x40, 0x6E, 0x5DDD) /* <CJK> */
-MAP(0x40, 0x6F, 0x6226) /* <CJK> */
-MAP(0x40, 0x70, 0x6247) /* <CJK> */
-MAP(0x40, 0x71, 0x64B0) /* <CJK> */
-MAP(0x40, 0x72, 0x6813) /* <CJK> */
-MAP(0x40, 0x73, 0x6834) /* <CJK> */
-MAP(0x40, 0x74, 0x6CC9) /* <CJK> */
-MAP(0x40, 0x75, 0x6D45) /* <CJK> */
-MAP(0x40, 0x76, 0x6D17) /* <CJK> */
-MAP(0x40, 0x77, 0x67D3) /* <CJK> */
-MAP(0x40, 0x78, 0x6F5C) /* <CJK> */
-MAP(0x40, 0x79, 0x714E) /* <CJK> */
-MAP(0x40, 0x7A, 0x717D) /* <CJK> */
-MAP(0x40, 0x7B, 0x65CB) /* <CJK> */
-MAP(0x40, 0x7C, 0x7A7F) /* <CJK> */
-MAP(0x40, 0x7D, 0x7BAD) /* <CJK> */
-MAP(0x40, 0x7E, 0x7DDA) /* <CJK> */
-MAP(0x41, 0x21, 0x7E4A) /* <CJK> */
-MAP(0x41, 0x22, 0x7FA8) /* <CJK> */
-MAP(0x41, 0x23, 0x817A) /* <CJK> */
-MAP(0x41, 0x24, 0x821B) /* <CJK> */
-MAP(0x41, 0x25, 0x8239) /* <CJK> */
-MAP(0x41, 0x26, 0x85A6) /* <CJK> */
-MAP(0x41, 0x27, 0x8A6E) /* <CJK> */
-MAP(0x41, 0x28, 0x8CCE) /* <CJK> */
-MAP(0x41, 0x29, 0x8DF5) /* <CJK> */
-MAP(0x41, 0x2A, 0x9078) /* <CJK> */
-MAP(0x41, 0x2B, 0x9077) /* <CJK> */
-MAP(0x41, 0x2C, 0x92AD) /* <CJK> */
-MAP(0x41, 0x2D, 0x9291) /* <CJK> */
-MAP(0x41, 0x2E, 0x9583) /* <CJK> */
-MAP(0x41, 0x2F, 0x9BAE) /* <CJK> */
-MAP(0x41, 0x30, 0x524D) /* <CJK> */
-MAP(0x41, 0x31, 0x5584) /* <CJK> */
-MAP(0x41, 0x32, 0x6F38) /* <CJK> */
-MAP(0x41, 0x33, 0x7136) /* <CJK> */
-MAP(0x41, 0x34, 0x5168) /* <CJK> */
-MAP(0x41, 0x35, 0x7985) /* <CJK> */
-MAP(0x41, 0x36, 0x7E55) /* <CJK> */
-MAP(0x41, 0x37, 0x81B3) /* <CJK> */
-MAP(0x41, 0x38, 0x7CCE) /* <CJK> */
-MAP(0x41, 0x39, 0x564C) /* <CJK> */
-MAP(0x41, 0x3A, 0x5851) /* <CJK> */
-MAP(0x41, 0x3B, 0x5CA8) /* <CJK> */
-MAP(0x41, 0x3C, 0x63AA) /* <CJK> */
-MAP(0x41, 0x3D, 0x66FE) /* <CJK> */
-MAP(0x41, 0x3E, 0x66FD) /* <CJK> */
-MAP(0x41, 0x3F, 0x695A) /* <CJK> */
-MAP(0x41, 0x40, 0x72D9) /* <CJK> */
-MAP(0x41, 0x41, 0x758F) /* <CJK> */
-MAP(0x41, 0x42, 0x758E) /* <CJK> */
-MAP(0x41, 0x43, 0x790E) /* <CJK> */
-MAP(0x41, 0x44, 0x7956) /* <CJK> */
-MAP(0x41, 0x45, 0x79DF) /* <CJK> */
-MAP(0x41, 0x46, 0x7C97) /* <CJK> */
-MAP(0x41, 0x47, 0x7D20) /* <CJK> */
-MAP(0x41, 0x48, 0x7D44) /* <CJK> */
-MAP(0x41, 0x49, 0x8607) /* <CJK> */
-MAP(0x41, 0x4A, 0x8A34) /* <CJK> */
-MAP(0x41, 0x4B, 0x963B) /* <CJK> */
-MAP(0x41, 0x4C, 0x9061) /* <CJK> */
-MAP(0x41, 0x4D, 0x9F20) /* <CJK> */
-MAP(0x41, 0x4E, 0x50E7) /* <CJK> */
-MAP(0x41, 0x4F, 0x5275) /* <CJK> */
-MAP(0x41, 0x50, 0x53CC) /* <CJK> */
-MAP(0x41, 0x51, 0x53E2) /* <CJK> */
-MAP(0x41, 0x52, 0x5009) /* <CJK> */
-MAP(0x41, 0x53, 0x55AA) /* <CJK> */
-MAP(0x41, 0x54, 0x58EE) /* <CJK> */
-MAP(0x41, 0x55, 0x594F) /* <CJK> */
-MAP(0x41, 0x56, 0x723D) /* <CJK> */
-MAP(0x41, 0x57, 0x5B8B) /* <CJK> */
-MAP(0x41, 0x58, 0x5C64) /* <CJK> */
-MAP(0x41, 0x59, 0x531D) /* <CJK> */
-MAP(0x41, 0x5A, 0x60E3) /* <CJK> */
-MAP(0x41, 0x5B, 0x60F3) /* <CJK> */
-MAP(0x41, 0x5C, 0x635C) /* <CJK> */
-MAP(0x41, 0x5D, 0x6383) /* <CJK> */
-MAP(0x41, 0x5E, 0x633F) /* <CJK> */
-MAP(0x41, 0x5F, 0x63BB) /* <CJK> */
-MAP(0x41, 0x60, 0x64CD) /* <CJK> */
-MAP(0x41, 0x61, 0x65E9) /* <CJK> */
-MAP(0x41, 0x62, 0x66F9) /* <CJK> */
-MAP(0x41, 0x63, 0x5DE3) /* <CJK> */
-MAP(0x41, 0x64, 0x69CD) /* <CJK> */
-MAP(0x41, 0x65, 0x69FD) /* <CJK> */
-MAP(0x41, 0x66, 0x6F15) /* <CJK> */
-MAP(0x41, 0x67, 0x71E5) /* <CJK> */
-MAP(0x41, 0x68, 0x4E89) /* <CJK> */
-MAP(0x41, 0x69, 0x75E9) /* <CJK> */
-MAP(0x41, 0x6A, 0x76F8) /* <CJK> */
-MAP(0x41, 0x6B, 0x7A93) /* <CJK> */
-MAP(0x41, 0x6C, 0x7CDF) /* <CJK> */
-MAP(0x41, 0x6D, 0x7DCF) /* <CJK> */
-MAP(0x41, 0x6E, 0x7D9C) /* <CJK> */
-MAP(0x41, 0x6F, 0x8061) /* <CJK> */
-MAP(0x41, 0x70, 0x8349) /* <CJK> */
-MAP(0x41, 0x71, 0x8358) /* <CJK> */
-MAP(0x41, 0x72, 0x846C) /* <CJK> */
-MAP(0x41, 0x73, 0x84BC) /* <CJK> */
-MAP(0x41, 0x74, 0x85FB) /* <CJK> */
-MAP(0x41, 0x75, 0x88C5) /* <CJK> */
-MAP(0x41, 0x76, 0x8D70) /* <CJK> */
-MAP(0x41, 0x77, 0x9001) /* <CJK> */
-MAP(0x41, 0x78, 0x906D) /* <CJK> */
-MAP(0x41, 0x79, 0x9397) /* <CJK> */
-MAP(0x41, 0x7A, 0x971C) /* <CJK> */
-MAP(0x41, 0x7B, 0x9A12) /* <CJK> */
-MAP(0x41, 0x7C, 0x50CF) /* <CJK> */
-MAP(0x41, 0x7D, 0x5897) /* <CJK> */
-MAP(0x41, 0x7E, 0x618E) /* <CJK> */
-MAP(0x42, 0x21, 0x81D3) /* <CJK> */
-MAP(0x42, 0x22, 0x8535) /* <CJK> */
-MAP(0x42, 0x23, 0x8D08) /* <CJK> */
-MAP(0x42, 0x24, 0x9020) /* <CJK> */
-MAP(0x42, 0x25, 0x4FC3) /* <CJK> */
-MAP(0x42, 0x26, 0x5074) /* <CJK> */
-MAP(0x42, 0x27, 0x5247) /* <CJK> */
-MAP(0x42, 0x28, 0x5373) /* <CJK> */
-MAP(0x42, 0x29, 0x606F) /* <CJK> */
-MAP(0x42, 0x2A, 0x6349) /* <CJK> */
-MAP(0x42, 0x2B, 0x675F) /* <CJK> */
-MAP(0x42, 0x2C, 0x6E2C) /* <CJK> */
-MAP(0x42, 0x2D, 0x8DB3) /* <CJK> */
-MAP(0x42, 0x2E, 0x901F) /* <CJK> */
-MAP(0x42, 0x2F, 0x4FD7) /* <CJK> */
-MAP(0x42, 0x30, 0x5C5E) /* <CJK> */
-MAP(0x42, 0x31, 0x8CCA) /* <CJK> */
-MAP(0x42, 0x32, 0x65CF) /* <CJK> */
-MAP(0x42, 0x33, 0x7D9A) /* <CJK> */
-MAP(0x42, 0x34, 0x5352) /* <CJK> */
-MAP(0x42, 0x35, 0x8896) /* <CJK> */
-MAP(0x42, 0x36, 0x5176) /* <CJK> */
-MAP(0x42, 0x37, 0x63C3) /* <CJK> */
-MAP(0x42, 0x38, 0x5B58) /* <CJK> */
-MAP(0x42, 0x39, 0x5B6B) /* <CJK> */
-MAP(0x42, 0x3A, 0x5C0A) /* <CJK> */
-MAP(0x42, 0x3B, 0x640D) /* <CJK> */
-MAP(0x42, 0x3C, 0x6751) /* <CJK> */
-MAP(0x42, 0x3D, 0x905C) /* <CJK> */
-MAP(0x42, 0x3E, 0x4ED6) /* <CJK> */
-MAP(0x42, 0x3F, 0x591A) /* <CJK> */
-MAP(0x42, 0x40, 0x592A) /* <CJK> */
-MAP(0x42, 0x41, 0x6C70) /* <CJK> */
-MAP(0x42, 0x42, 0x8A51) /* <CJK> */
-MAP(0x42, 0x43, 0x553E) /* <CJK> */
-MAP(0x42, 0x44, 0x5815) /* <CJK> */
-MAP(0x42, 0x45, 0x59A5) /* <CJK> */
-MAP(0x42, 0x46, 0x60F0) /* <CJK> */
-MAP(0x42, 0x47, 0x6253) /* <CJK> */
-MAP(0x42, 0x48, 0x67C1) /* <CJK> */
-MAP(0x42, 0x49, 0x8235) /* <CJK> */
-MAP(0x42, 0x4A, 0x6955) /* <CJK> */
-MAP(0x42, 0x4B, 0x9640) /* <CJK> */
-MAP(0x42, 0x4C, 0x99C4) /* <CJK> */
-MAP(0x42, 0x4D, 0x9A28) /* <CJK> */
-MAP(0x42, 0x4E, 0x4F53) /* <CJK> */
-MAP(0x42, 0x4F, 0x5806) /* <CJK> */
-MAP(0x42, 0x50, 0x5BFE) /* <CJK> */
-MAP(0x42, 0x51, 0x8010) /* <CJK> */
-MAP(0x42, 0x52, 0x5CB1) /* <CJK> */
-MAP(0x42, 0x53, 0x5E2F) /* <CJK> */
-MAP(0x42, 0x54, 0x5F85) /* <CJK> */
-MAP(0x42, 0x55, 0x6020) /* <CJK> */
-MAP(0x42, 0x56, 0x614B) /* <CJK> */
-MAP(0x42, 0x57, 0x6234) /* <CJK> */
-MAP(0x42, 0x58, 0x66FF) /* <CJK> */
-MAP(0x42, 0x59, 0x6CF0) /* <CJK> */
-MAP(0x42, 0x5A, 0x6EDE) /* <CJK> */
-MAP(0x42, 0x5B, 0x80CE) /* <CJK> */
-MAP(0x42, 0x5C, 0x817F) /* <CJK> */
-MAP(0x42, 0x5D, 0x82D4) /* <CJK> */
-MAP(0x42, 0x5E, 0x888B) /* <CJK> */
-MAP(0x42, 0x5F, 0x8CB8) /* <CJK> */
-MAP(0x42, 0x60, 0x9000) /* <CJK> */
-MAP(0x42, 0x61, 0x902E) /* <CJK> */
-MAP(0x42, 0x62, 0x968A) /* <CJK> */
-MAP(0x42, 0x63, 0x9EDB) /* <CJK> */
-MAP(0x42, 0x64, 0x9BDB) /* <CJK> */
-MAP(0x42, 0x65, 0x4EE3) /* <CJK> */
-MAP(0x42, 0x66, 0x53F0) /* <CJK> */
-MAP(0x42, 0x67, 0x5927) /* <CJK> */
-MAP(0x42, 0x68, 0x7B2C) /* <CJK> */
-MAP(0x42, 0x69, 0x918D) /* <CJK> */
-MAP(0x42, 0x6A, 0x984C) /* <CJK> */
-MAP(0x42, 0x6B, 0x9DF9) /* <CJK> */
-MAP(0x42, 0x6C, 0x6EDD) /* <CJK> */
-MAP(0x42, 0x6D, 0x7027) /* <CJK> */
-MAP(0x42, 0x6E, 0x5353) /* <CJK> */
-MAP(0x42, 0x6F, 0x5544) /* <CJK> */
-MAP(0x42, 0x70, 0x5B85) /* <CJK> */
-MAP(0x42, 0x71, 0x6258) /* <CJK> */
-MAP(0x42, 0x72, 0x629E) /* <CJK> */
-MAP(0x42, 0x73, 0x62D3) /* <CJK> */
-MAP(0x42, 0x74, 0x6CA2) /* <CJK> */
-MAP(0x42, 0x75, 0x6FEF) /* <CJK> */
-MAP(0x42, 0x76, 0x7422) /* <CJK> */
-MAP(0x42, 0x77, 0x8A17) /* <CJK> */
-MAP(0x42, 0x78, 0x9438) /* <CJK> */
-MAP(0x42, 0x79, 0x6FC1) /* <CJK> */
-MAP(0x42, 0x7A, 0x8AFE) /* <CJK> */
-MAP(0x42, 0x7B, 0x8338) /* <CJK> */
-MAP(0x42, 0x7C, 0x51E7) /* <CJK> */
-MAP(0x42, 0x7D, 0x86F8) /* <CJK> */
-MAP(0x42, 0x7E, 0x53EA) /* <CJK> */
-MAP(0x43, 0x21, 0x53E9) /* <CJK> */
-MAP(0x43, 0x22, 0x4F46) /* <CJK> */
-MAP(0x43, 0x23, 0x9054) /* <CJK> */
-MAP(0x43, 0x24, 0x8FB0) /* <CJK> */
-MAP(0x43, 0x25, 0x596A) /* <CJK> */
-MAP(0x43, 0x26, 0x8131) /* <CJK> */
-MAP(0x43, 0x27, 0x5DFD) /* <CJK> */
-MAP(0x43, 0x28, 0x7AEA) /* <CJK> */
-MAP(0x43, 0x29, 0x8FBF) /* <CJK> */
-MAP(0x43, 0x2A, 0x68DA) /* <CJK> */
-MAP(0x43, 0x2B, 0x8C37) /* <CJK> */
-MAP(0x43, 0x2C, 0x72F8) /* <CJK> */
-MAP(0x43, 0x2D, 0x9C48) /* <CJK> */
-MAP(0x43, 0x2E, 0x6A3D) /* <CJK> */
-MAP(0x43, 0x2F, 0x8AB0) /* <CJK> */
-MAP(0x43, 0x30, 0x4E39) /* <CJK> */
-MAP(0x43, 0x31, 0x5358) /* <CJK> */
-MAP(0x43, 0x32, 0x5606) /* <CJK> */
-MAP(0x43, 0x33, 0x5766) /* <CJK> */
-MAP(0x43, 0x34, 0x62C5) /* <CJK> */
-MAP(0x43, 0x35, 0x63A2) /* <CJK> */
-MAP(0x43, 0x36, 0x65E6) /* <CJK> */
-MAP(0x43, 0x37, 0x6B4E) /* <CJK> */
-MAP(0x43, 0x38, 0x6DE1) /* <CJK> */
-MAP(0x43, 0x39, 0x6E5B) /* <CJK> */
-MAP(0x43, 0x3A, 0x70AD) /* <CJK> */
-MAP(0x43, 0x3B, 0x77ED) /* <CJK> */
-MAP(0x43, 0x3C, 0x7AEF) /* <CJK> */
-MAP(0x43, 0x3D, 0x7BAA) /* <CJK> */
-MAP(0x43, 0x3E, 0x7DBB) /* <CJK> */
-MAP(0x43, 0x3F, 0x803D) /* <CJK> */
-MAP(0x43, 0x40, 0x80C6) /* <CJK> */
-MAP(0x43, 0x41, 0x86CB) /* <CJK> */
-MAP(0x43, 0x42, 0x8A95) /* <CJK> */
-MAP(0x43, 0x43, 0x935B) /* <CJK> */
-MAP(0x43, 0x44, 0x56E3) /* <CJK> */
-MAP(0x43, 0x45, 0x58C7) /* <CJK> */
-MAP(0x43, 0x46, 0x5F3E) /* <CJK> */
-MAP(0x43, 0x47, 0x65AD) /* <CJK> */
-MAP(0x43, 0x48, 0x6696) /* <CJK> */
-MAP(0x43, 0x49, 0x6A80) /* <CJK> */
-MAP(0x43, 0x4A, 0x6BB5) /* <CJK> */
-MAP(0x43, 0x4B, 0x7537) /* <CJK> */
-MAP(0x43, 0x4C, 0x8AC7) /* <CJK> */
-MAP(0x43, 0x4D, 0x5024) /* <CJK> */
-MAP(0x43, 0x4E, 0x77E5) /* <CJK> */
-MAP(0x43, 0x4F, 0x5730) /* <CJK> */
-MAP(0x43, 0x50, 0x5F1B) /* <CJK> */
-MAP(0x43, 0x51, 0x6065) /* <CJK> */
-MAP(0x43, 0x52, 0x667A) /* <CJK> */
-MAP(0x43, 0x53, 0x6C60) /* <CJK> */
-MAP(0x43, 0x54, 0x75F4) /* <CJK> */
-MAP(0x43, 0x55, 0x7A1A) /* <CJK> */
-MAP(0x43, 0x56, 0x7F6E) /* <CJK> */
-MAP(0x43, 0x57, 0x81F4) /* <CJK> */
-MAP(0x43, 0x58, 0x8718) /* <CJK> */
-MAP(0x43, 0x59, 0x9045) /* <CJK> */
-MAP(0x43, 0x5A, 0x99B3) /* <CJK> */
-MAP(0x43, 0x5B, 0x7BC9) /* <CJK> */
-MAP(0x43, 0x5C, 0x755C) /* <CJK> */
-MAP(0x43, 0x5D, 0x7AF9) /* <CJK> */
-MAP(0x43, 0x5E, 0x7B51) /* <CJK> */
-MAP(0x43, 0x5F, 0x84C4) /* <CJK> */
-MAP(0x43, 0x60, 0x9010) /* <CJK> */
-MAP(0x43, 0x61, 0x79E9) /* <CJK> */
-MAP(0x43, 0x62, 0x7A92) /* <CJK> */
-MAP(0x43, 0x63, 0x8336) /* <CJK> */
-MAP(0x43, 0x64, 0x5AE1) /* <CJK> */
-MAP(0x43, 0x65, 0x7740) /* <CJK> */
-MAP(0x43, 0x66, 0x4E2D) /* <CJK> */
-MAP(0x43, 0x67, 0x4EF2) /* <CJK> */
-MAP(0x43, 0x68, 0x5B99) /* <CJK> */
-MAP(0x43, 0x69, 0x5FE0) /* <CJK> */
-MAP(0x43, 0x6A, 0x62BD) /* <CJK> */
-MAP(0x43, 0x6B, 0x663C) /* <CJK> */
-MAP(0x43, 0x6C, 0x67F1) /* <CJK> */
-MAP(0x43, 0x6D, 0x6CE8) /* <CJK> */
-MAP(0x43, 0x6E, 0x866B) /* <CJK> */
-MAP(0x43, 0x6F, 0x8877) /* <CJK> */
-MAP(0x43, 0x70, 0x8A3B) /* <CJK> */
-MAP(0x43, 0x71, 0x914E) /* <CJK> */
-MAP(0x43, 0x72, 0x92F3) /* <CJK> */
-MAP(0x43, 0x73, 0x99D0) /* <CJK> */
-MAP(0x43, 0x74, 0x6A17) /* <CJK> */
-MAP(0x43, 0x75, 0x7026) /* <CJK> */
-MAP(0x43, 0x76, 0x732A) /* <CJK> */
-MAP(0x43, 0x77, 0x82E7) /* <CJK> */
-MAP(0x43, 0x78, 0x8457) /* <CJK> */
-MAP(0x43, 0x79, 0x8CAF) /* <CJK> */
-MAP(0x43, 0x7A, 0x4E01) /* <CJK> */
-MAP(0x43, 0x7B, 0x5146) /* <CJK> */
-MAP(0x43, 0x7C, 0x51CB) /* <CJK> */
-MAP(0x43, 0x7D, 0x558B) /* <CJK> */
-MAP(0x43, 0x7E, 0x5BF5) /* <CJK> */
-MAP(0x44, 0x21, 0x5E16) /* <CJK> */
-MAP(0x44, 0x22, 0x5E33) /* <CJK> */
-MAP(0x44, 0x23, 0x5E81) /* <CJK> */
-MAP(0x44, 0x24, 0x5F14) /* <CJK> */
-MAP(0x44, 0x25, 0x5F35) /* <CJK> */
-MAP(0x44, 0x26, 0x5F6B) /* <CJK> */
-MAP(0x44, 0x27, 0x5FB4) /* <CJK> */
-MAP(0x44, 0x28, 0x61F2) /* <CJK> */
-MAP(0x44, 0x29, 0x6311) /* <CJK> */
-MAP(0x44, 0x2A, 0x66A2) /* <CJK> */
-MAP(0x44, 0x2B, 0x671D) /* <CJK> */
-MAP(0x44, 0x2C, 0x6F6E) /* <CJK> */
-MAP(0x44, 0x2D, 0x7252) /* <CJK> */
-MAP(0x44, 0x2E, 0x753A) /* <CJK> */
-MAP(0x44, 0x2F, 0x773A) /* <CJK> */
-MAP(0x44, 0x30, 0x8074) /* <CJK> */
-MAP(0x44, 0x31, 0x8139) /* <CJK> */
-MAP(0x44, 0x32, 0x8178) /* <CJK> */
-MAP(0x44, 0x33, 0x8776) /* <CJK> */
-MAP(0x44, 0x34, 0x8ABF) /* <CJK> */
-MAP(0x44, 0x35, 0x8ADC) /* <CJK> */
-MAP(0x44, 0x36, 0x8D85) /* <CJK> */
-MAP(0x44, 0x37, 0x8DF3) /* <CJK> */
-MAP(0x44, 0x38, 0x929A) /* <CJK> */
-MAP(0x44, 0x39, 0x9577) /* <CJK> */
-MAP(0x44, 0x3A, 0x9802) /* <CJK> */
-MAP(0x44, 0x3B, 0x9CE5) /* <CJK> */
-MAP(0x44, 0x3C, 0x52C5) /* <CJK> */
-MAP(0x44, 0x3D, 0x6357) /* <CJK> */
-MAP(0x44, 0x3E, 0x76F4) /* <CJK> */
-MAP(0x44, 0x3F, 0x6715) /* <CJK> */
-MAP(0x44, 0x40, 0x6C88) /* <CJK> */
-MAP(0x44, 0x41, 0x73CD) /* <CJK> */
-MAP(0x44, 0x42, 0x8CC3) /* <CJK> */
-MAP(0x44, 0x43, 0x93AE) /* <CJK> */
-MAP(0x44, 0x44, 0x9673) /* <CJK> */
-MAP(0x44, 0x45, 0x6D25) /* <CJK> */
-MAP(0x44, 0x46, 0x589C) /* <CJK> */
-MAP(0x44, 0x47, 0x690E) /* <CJK> */
-MAP(0x44, 0x48, 0x69CC) /* <CJK> */
-MAP(0x44, 0x49, 0x8FFD) /* <CJK> */
-MAP(0x44, 0x4A, 0x939A) /* <CJK> */
-MAP(0x44, 0x4B, 0x75DB) /* <CJK> */
-MAP(0x44, 0x4C, 0x901A) /* <CJK> */
-MAP(0x44, 0x4D, 0x585A) /* <CJK> */
-MAP(0x44, 0x4E, 0x6802) /* <CJK> */
-MAP(0x44, 0x4F, 0x63B4) /* <CJK> */
-MAP(0x44, 0x50, 0x69FB) /* <CJK> */
-MAP(0x44, 0x51, 0x4F43) /* <CJK> */
-MAP(0x44, 0x52, 0x6F2C) /* <CJK> */
-MAP(0x44, 0x53, 0x67D8) /* <CJK> */
-MAP(0x44, 0x54, 0x8FBB) /* <CJK> */
-MAP(0x44, 0x55, 0x8526) /* <CJK> */
-MAP(0x44, 0x56, 0x7DB4) /* <CJK> */
-MAP(0x44, 0x57, 0x9354) /* <CJK> */
-MAP(0x44, 0x58, 0x693F) /* <CJK> */
-MAP(0x44, 0x59, 0x6F70) /* <CJK> */
-MAP(0x44, 0x5A, 0x576A) /* <CJK> */
-MAP(0x44, 0x5B, 0x58F7) /* <CJK> */
-MAP(0x44, 0x5C, 0x5B2C) /* <CJK> */
-MAP(0x44, 0x5D, 0x7D2C) /* <CJK> */
-MAP(0x44, 0x5E, 0x722A) /* <CJK> */
-MAP(0x44, 0x5F, 0x540A) /* <CJK> */
-MAP(0x44, 0x60, 0x91E3) /* <CJK> */
-MAP(0x44, 0x61, 0x9DB4) /* <CJK> */
-MAP(0x44, 0x62, 0x4EAD) /* <CJK> */
-MAP(0x44, 0x63, 0x4F4E) /* <CJK> */
-MAP(0x44, 0x64, 0x505C) /* <CJK> */
-MAP(0x44, 0x65, 0x5075) /* <CJK> */
-MAP(0x44, 0x66, 0x5243) /* <CJK> */
-MAP(0x44, 0x67, 0x8C9E) /* <CJK> */
-MAP(0x44, 0x68, 0x5448) /* <CJK> */
-MAP(0x44, 0x69, 0x5824) /* <CJK> */
-MAP(0x44, 0x6A, 0x5B9A) /* <CJK> */
-MAP(0x44, 0x6B, 0x5E1D) /* <CJK> */
-MAP(0x44, 0x6C, 0x5E95) /* <CJK> */
-MAP(0x44, 0x6D, 0x5EAD) /* <CJK> */
-MAP(0x44, 0x6E, 0x5EF7) /* <CJK> */
-MAP(0x44, 0x6F, 0x5F1F) /* <CJK> */
-MAP(0x44, 0x70, 0x608C) /* <CJK> */
-MAP(0x44, 0x71, 0x62B5) /* <CJK> */
-MAP(0x44, 0x72, 0x633A) /* <CJK> */
-MAP(0x44, 0x73, 0x63D0) /* <CJK> */
-MAP(0x44, 0x74, 0x68AF) /* <CJK> */
-MAP(0x44, 0x75, 0x6C40) /* <CJK> */
-MAP(0x44, 0x76, 0x7887) /* <CJK> */
-MAP(0x44, 0x77, 0x798E) /* <CJK> */
-MAP(0x44, 0x78, 0x7A0B) /* <CJK> */
-MAP(0x44, 0x79, 0x7DE0) /* <CJK> */
-MAP(0x44, 0x7A, 0x8247) /* <CJK> */
-MAP(0x44, 0x7B, 0x8A02) /* <CJK> */
-MAP(0x44, 0x7C, 0x8AE6) /* <CJK> */
-MAP(0x44, 0x7D, 0x8E44) /* <CJK> */
-MAP(0x44, 0x7E, 0x9013) /* <CJK> */
-MAP(0x45, 0x21, 0x90B8) /* <CJK> */
-MAP(0x45, 0x22, 0x912D) /* <CJK> */
-MAP(0x45, 0x23, 0x91D8) /* <CJK> */
-MAP(0x45, 0x24, 0x9F0E) /* <CJK> */
-MAP(0x45, 0x25, 0x6CE5) /* <CJK> */
-MAP(0x45, 0x26, 0x6458) /* <CJK> */
-MAP(0x45, 0x27, 0x64E2) /* <CJK> */
-MAP(0x45, 0x28, 0x6575) /* <CJK> */
-MAP(0x45, 0x29, 0x6EF4) /* <CJK> */
-MAP(0x45, 0x2A, 0x7684) /* <CJK> */
-MAP(0x45, 0x2B, 0x7B1B) /* <CJK> */
-MAP(0x45, 0x2C, 0x9069) /* <CJK> */
-MAP(0x45, 0x2D, 0x93D1) /* <CJK> */
-MAP(0x45, 0x2E, 0x6EBA) /* <CJK> */
-MAP(0x45, 0x2F, 0x54F2) /* <CJK> */
-MAP(0x45, 0x30, 0x5FB9) /* <CJK> */
-MAP(0x45, 0x31, 0x64A4) /* <CJK> */
-MAP(0x45, 0x32, 0x8F4D) /* <CJK> */
-MAP(0x45, 0x33, 0x8FED) /* <CJK> */
-MAP(0x45, 0x34, 0x9244) /* <CJK> */
-MAP(0x45, 0x35, 0x5178) /* <CJK> */
-MAP(0x45, 0x36, 0x586B) /* <CJK> */
-MAP(0x45, 0x37, 0x5929) /* <CJK> */
-MAP(0x45, 0x38, 0x5C55) /* <CJK> */
-MAP(0x45, 0x39, 0x5E97) /* <CJK> */
-MAP(0x45, 0x3A, 0x6DFB) /* <CJK> */
-MAP(0x45, 0x3B, 0x7E8F) /* <CJK> */
-MAP(0x45, 0x3C, 0x751C) /* <CJK> */
-MAP(0x45, 0x3D, 0x8CBC) /* <CJK> */
-MAP(0x45, 0x3E, 0x8EE2) /* <CJK> */
-MAP(0x45, 0x3F, 0x985B) /* <CJK> */
-MAP(0x45, 0x40, 0x70B9) /* <CJK> */
-MAP(0x45, 0x41, 0x4F1D) /* <CJK> */
-MAP(0x45, 0x42, 0x6BBF) /* <CJK> */
-MAP(0x45, 0x43, 0x6FB1) /* <CJK> */
-MAP(0x45, 0x44, 0x7530) /* <CJK> */
-MAP(0x45, 0x45, 0x96FB) /* <CJK> */
-MAP(0x45, 0x46, 0x514E) /* <CJK> */
-MAP(0x45, 0x47, 0x5410) /* <CJK> */
-MAP(0x45, 0x48, 0x5835) /* <CJK> */
-MAP(0x45, 0x49, 0x5857) /* <CJK> */
-MAP(0x45, 0x4A, 0x59AC) /* <CJK> */
-MAP(0x45, 0x4B, 0x5C60) /* <CJK> */
-MAP(0x45, 0x4C, 0x5F92) /* <CJK> */
-MAP(0x45, 0x4D, 0x6597) /* <CJK> */
-MAP(0x45, 0x4E, 0x675C) /* <CJK> */
-MAP(0x45, 0x4F, 0x6E21) /* <CJK> */
-MAP(0x45, 0x50, 0x767B) /* <CJK> */
-MAP(0x45, 0x51, 0x83DF) /* <CJK> */
-MAP(0x45, 0x52, 0x8CED) /* <CJK> */
-MAP(0x45, 0x53, 0x9014) /* <CJK> */
-MAP(0x45, 0x54, 0x90FD) /* <CJK> */
-MAP(0x45, 0x55, 0x934D) /* <CJK> */
-MAP(0x45, 0x56, 0x7825) /* <CJK> */
-MAP(0x45, 0x57, 0x783A) /* <CJK> */
-MAP(0x45, 0x58, 0x52AA) /* <CJK> */
-MAP(0x45, 0x59, 0x5EA6) /* <CJK> */
-MAP(0x45, 0x5A, 0x571F) /* <CJK> */
-MAP(0x45, 0x5B, 0x5974) /* <CJK> */
-MAP(0x45, 0x5C, 0x6012) /* <CJK> */
-MAP(0x45, 0x5D, 0x5012) /* <CJK> */
-MAP(0x45, 0x5E, 0x515A) /* <CJK> */
-MAP(0x45, 0x5F, 0x51AC) /* <CJK> */
-MAP(0x45, 0x60, 0x51CD) /* <CJK> */
-MAP(0x45, 0x61, 0x5200) /* <CJK> */
-MAP(0x45, 0x62, 0x5510) /* <CJK> */
-MAP(0x45, 0x63, 0x5854) /* <CJK> */
-MAP(0x45, 0x64, 0x5858) /* <CJK> */
-MAP(0x45, 0x65, 0x5957) /* <CJK> */
-MAP(0x45, 0x66, 0x5B95) /* <CJK> */
-MAP(0x45, 0x67, 0x5CF6) /* <CJK> */
-MAP(0x45, 0x68, 0x5D8B) /* <CJK> */
-MAP(0x45, 0x69, 0x60BC) /* <CJK> */
-MAP(0x45, 0x6A, 0x6295) /* <CJK> */
-MAP(0x45, 0x6B, 0x642D) /* <CJK> */
-MAP(0x45, 0x6C, 0x6771) /* <CJK> */
-MAP(0x45, 0x6D, 0x6843) /* <CJK> */
-MAP(0x45, 0x6E, 0x68BC) /* <CJK> */
-MAP(0x45, 0x6F, 0x68DF) /* <CJK> */
-MAP(0x45, 0x70, 0x76D7) /* <CJK> */
-MAP(0x45, 0x71, 0x6DD8) /* <CJK> */
-MAP(0x45, 0x72, 0x6E6F) /* <CJK> */
-MAP(0x45, 0x73, 0x6D9B) /* <CJK> */
-MAP(0x45, 0x74, 0x706F) /* <CJK> */
-MAP(0x45, 0x75, 0x71C8) /* <CJK> */
-MAP(0x45, 0x76, 0x5F53) /* <CJK> */
-MAP(0x45, 0x77, 0x75D8) /* <CJK> */
-MAP(0x45, 0x78, 0x7977) /* <CJK> */
-MAP(0x45, 0x79, 0x7B49) /* <CJK> */
-MAP(0x45, 0x7A, 0x7B54) /* <CJK> */
-MAP(0x45, 0x7B, 0x7B52) /* <CJK> */
-MAP(0x45, 0x7C, 0x7CD6) /* <CJK> */
-MAP(0x45, 0x7D, 0x7D71) /* <CJK> */
-MAP(0x45, 0x7E, 0x5230) /* <CJK> */
-MAP(0x46, 0x21, 0x8463) /* <CJK> */
-MAP(0x46, 0x22, 0x8569) /* <CJK> */
-MAP(0x46, 0x23, 0x85E4) /* <CJK> */
-MAP(0x46, 0x24, 0x8A0E) /* <CJK> */
-MAP(0x46, 0x25, 0x8B04) /* <CJK> */
-MAP(0x46, 0x26, 0x8C46) /* <CJK> */
-MAP(0x46, 0x27, 0x8E0F) /* <CJK> */
-MAP(0x46, 0x28, 0x9003) /* <CJK> */
-MAP(0x46, 0x29, 0x900F) /* <CJK> */
-MAP(0x46, 0x2A, 0x9419) /* <CJK> */
-MAP(0x46, 0x2B, 0x9676) /* <CJK> */
-MAP(0x46, 0x2C, 0x982D) /* <CJK> */
-MAP(0x46, 0x2D, 0x9A30) /* <CJK> */
-MAP(0x46, 0x2E, 0x95D8) /* <CJK> */
-MAP(0x46, 0x2F, 0x50CD) /* <CJK> */
-MAP(0x46, 0x30, 0x52D5) /* <CJK> */
-MAP(0x46, 0x31, 0x540C) /* <CJK> */
-MAP(0x46, 0x32, 0x5802) /* <CJK> */
-MAP(0x46, 0x33, 0x5C0E) /* <CJK> */
-MAP(0x46, 0x34, 0x61A7) /* <CJK> */
-MAP(0x46, 0x35, 0x649E) /* <CJK> */
-MAP(0x46, 0x36, 0x6D1E) /* <CJK> */
-MAP(0x46, 0x37, 0x77B3) /* <CJK> */
-MAP(0x46, 0x38, 0x7AE5) /* <CJK> */
-MAP(0x46, 0x39, 0x80F4) /* <CJK> */
-MAP(0x46, 0x3A, 0x8404) /* <CJK> */
-MAP(0x46, 0x3B, 0x9053) /* <CJK> */
-MAP(0x46, 0x3C, 0x9285) /* <CJK> */
-MAP(0x46, 0x3D, 0x5CE0) /* <CJK> */
-MAP(0x46, 0x3E, 0x9D07) /* <CJK> */
-MAP(0x46, 0x3F, 0x533F) /* <CJK> */
-MAP(0x46, 0x40, 0x5F97) /* <CJK> */
-MAP(0x46, 0x41, 0x5FB3) /* <CJK> */
-MAP(0x46, 0x42, 0x6D9C) /* <CJK> */
-MAP(0x46, 0x43, 0x7279) /* <CJK> */
-MAP(0x46, 0x44, 0x7763) /* <CJK> */
-MAP(0x46, 0x45, 0x79BF) /* <CJK> */
-MAP(0x46, 0x46, 0x7BE4) /* <CJK> */
-MAP(0x46, 0x47, 0x6BD2) /* <CJK> */
-MAP(0x46, 0x48, 0x72EC) /* <CJK> */
-MAP(0x46, 0x49, 0x8AAD) /* <CJK> */
-MAP(0x46, 0x4A, 0x6803) /* <CJK> */
-MAP(0x46, 0x4B, 0x6A61) /* <CJK> */
-MAP(0x46, 0x4C, 0x51F8) /* <CJK> */
-MAP(0x46, 0x4D, 0x7A81) /* <CJK> */
-MAP(0x46, 0x4E, 0x6934) /* <CJK> */
-MAP(0x46, 0x4F, 0x5C4A) /* <CJK> */
-MAP(0x46, 0x50, 0x9CF6) /* <CJK> */
-MAP(0x46, 0x51, 0x82EB) /* <CJK> */
-MAP(0x46, 0x52, 0x5BC5) /* <CJK> */
-MAP(0x46, 0x53, 0x9149) /* <CJK> */
-MAP(0x46, 0x54, 0x701E) /* <CJK> */
-MAP(0x46, 0x55, 0x5678) /* <CJK> */
-MAP(0x46, 0x56, 0x5C6F) /* <CJK> */
-MAP(0x46, 0x57, 0x60C7) /* <CJK> */
-MAP(0x46, 0x58, 0x6566) /* <CJK> */
-MAP(0x46, 0x59, 0x6C8C) /* <CJK> */
-MAP(0x46, 0x5A, 0x8C5A) /* <CJK> */
-MAP(0x46, 0x5B, 0x9041) /* <CJK> */
-MAP(0x46, 0x5C, 0x9813) /* <CJK> */
-MAP(0x46, 0x5D, 0x5451) /* <CJK> */
-MAP(0x46, 0x5E, 0x66C7) /* <CJK> */
-MAP(0x46, 0x5F, 0x920D) /* <CJK> */
-MAP(0x46, 0x60, 0x5948) /* <CJK> */
-MAP(0x46, 0x61, 0x90A3) /* <CJK> */
-MAP(0x46, 0x62, 0x5185) /* <CJK> */
-MAP(0x46, 0x63, 0x4E4D) /* <CJK> */
-MAP(0x46, 0x64, 0x51EA) /* <CJK> */
-MAP(0x46, 0x65, 0x8599) /* <CJK> */
-MAP(0x46, 0x66, 0x8B0E) /* <CJK> */
-MAP(0x46, 0x67, 0x7058) /* <CJK> */
-MAP(0x46, 0x68, 0x637A) /* <CJK> */
-MAP(0x46, 0x69, 0x934B) /* <CJK> */
-MAP(0x46, 0x6A, 0x6962) /* <CJK> */
-MAP(0x46, 0x6B, 0x99B4) /* <CJK> */
-MAP(0x46, 0x6C, 0x7E04) /* <CJK> */
-MAP(0x46, 0x6D, 0x7577) /* <CJK> */
-MAP(0x46, 0x6E, 0x5357) /* <CJK> */
-MAP(0x46, 0x6F, 0x6960) /* <CJK> */
-MAP(0x46, 0x70, 0x8EDF) /* <CJK> */
-MAP(0x46, 0x71, 0x96E3) /* <CJK> */
-MAP(0x46, 0x72, 0x6C5D) /* <CJK> */
-MAP(0x46, 0x73, 0x4E8C) /* <CJK> */
-MAP(0x46, 0x74, 0x5C3C) /* <CJK> */
-MAP(0x46, 0x75, 0x5F10) /* <CJK> */
-MAP(0x46, 0x76, 0x8FE9) /* <CJK> */
-MAP(0x46, 0x77, 0x5302) /* <CJK> */
-MAP(0x46, 0x78, 0x8CD1) /* <CJK> */
-MAP(0x46, 0x79, 0x8089) /* <CJK> */
-MAP(0x46, 0x7A, 0x8679) /* <CJK> */
-MAP(0x46, 0x7B, 0x5EFF) /* <CJK> */
-MAP(0x46, 0x7C, 0x65E5) /* <CJK> */
-MAP(0x46, 0x7D, 0x4E73) /* <CJK> */
-MAP(0x46, 0x7E, 0x5165) /* <CJK> */
-MAP(0x47, 0x21, 0x5982) /* <CJK> */
-MAP(0x47, 0x22, 0x5C3F) /* <CJK> */
-MAP(0x47, 0x23, 0x97EE) /* <CJK> */
-MAP(0x47, 0x24, 0x4EFB) /* <CJK> */
-MAP(0x47, 0x25, 0x598A) /* <CJK> */
-MAP(0x47, 0x26, 0x5FCD) /* <CJK> */
-MAP(0x47, 0x27, 0x8A8D) /* <CJK> */
-MAP(0x47, 0x28, 0x6FE1) /* <CJK> */
-MAP(0x47, 0x29, 0x79B0) /* <CJK> */
-MAP(0x47, 0x2A, 0x7962) /* <CJK> */
-MAP(0x47, 0x2B, 0x5BE7) /* <CJK> */
-MAP(0x47, 0x2C, 0x8471) /* <CJK> */
-MAP(0x47, 0x2D, 0x732B) /* <CJK> */
-MAP(0x47, 0x2E, 0x71B1) /* <CJK> */
-MAP(0x47, 0x2F, 0x5E74) /* <CJK> */
-MAP(0x47, 0x30, 0x5FF5) /* <CJK> */
-MAP(0x47, 0x31, 0x637B) /* <CJK> */
-MAP(0x47, 0x32, 0x649A) /* <CJK> */
-MAP(0x47, 0x33, 0x71C3) /* <CJK> */
-MAP(0x47, 0x34, 0x7C98) /* <CJK> */
-MAP(0x47, 0x35, 0x4E43) /* <CJK> */
-MAP(0x47, 0x36, 0x5EFC) /* <CJK> */
-MAP(0x47, 0x37, 0x4E4B) /* <CJK> */
-MAP(0x47, 0x38, 0x57DC) /* <CJK> */
-MAP(0x47, 0x39, 0x56A2) /* <CJK> */
-MAP(0x47, 0x3A, 0x60A9) /* <CJK> */
-MAP(0x47, 0x3B, 0x6FC3) /* <CJK> */
-MAP(0x47, 0x3C, 0x7D0D) /* <CJK> */
-MAP(0x47, 0x3D, 0x80FD) /* <CJK> */
-MAP(0x47, 0x3E, 0x8133) /* <CJK> */
-MAP(0x47, 0x3F, 0x81BF) /* <CJK> */
-MAP(0x47, 0x40, 0x8FB2) /* <CJK> */
-MAP(0x47, 0x41, 0x8997) /* <CJK> */
-MAP(0x47, 0x42, 0x86A4) /* <CJK> */
-MAP(0x47, 0x43, 0x5DF4) /* <CJK> */
-MAP(0x47, 0x44, 0x628A) /* <CJK> */
-MAP(0x47, 0x45, 0x64AD) /* <CJK> */
-MAP(0x47, 0x46, 0x8987) /* <CJK> */
-MAP(0x47, 0x47, 0x6777) /* <CJK> */
-MAP(0x47, 0x48, 0x6CE2) /* <CJK> */
-MAP(0x47, 0x49, 0x6D3E) /* <CJK> */
-MAP(0x47, 0x4A, 0x7436) /* <CJK> */
-MAP(0x47, 0x4B, 0x7834) /* <CJK> */
-MAP(0x47, 0x4C, 0x5A46) /* <CJK> */
-MAP(0x47, 0x4D, 0x7F75) /* <CJK> */
-MAP(0x47, 0x4E, 0x82AD) /* <CJK> */
-MAP(0x47, 0x4F, 0x99AC) /* <CJK> */
-MAP(0x47, 0x50, 0x4FF3) /* <CJK> */
-MAP(0x47, 0x51, 0x5EC3) /* <CJK> */
-MAP(0x47, 0x52, 0x62DD) /* <CJK> */
-MAP(0x47, 0x53, 0x6392) /* <CJK> */
-MAP(0x47, 0x54, 0x6557) /* <CJK> */
-MAP(0x47, 0x55, 0x676F) /* <CJK> */
-MAP(0x47, 0x56, 0x76C3) /* <CJK> */
-MAP(0x47, 0x57, 0x724C) /* <CJK> */
-MAP(0x47, 0x58, 0x80CC) /* <CJK> */
-MAP(0x47, 0x59, 0x80BA) /* <CJK> */
-MAP(0x47, 0x5A, 0x8F29) /* <CJK> */
-MAP(0x47, 0x5B, 0x914D) /* <CJK> */
-MAP(0x47, 0x5C, 0x500D) /* <CJK> */
-MAP(0x47, 0x5D, 0x57F9) /* <CJK> */
-MAP(0x47, 0x5E, 0x5A92) /* <CJK> */
-MAP(0x47, 0x5F, 0x6885) /* <CJK> */
-MAP(0x47, 0x60, 0x6973) /* <CJK> */
-MAP(0x47, 0x61, 0x7164) /* <CJK> */
-MAP(0x47, 0x62, 0x72FD) /* <CJK> */
-MAP(0x47, 0x63, 0x8CB7) /* <CJK> */
-MAP(0x47, 0x64, 0x58F2) /* <CJK> */
-MAP(0x47, 0x65, 0x8CE0) /* <CJK> */
-MAP(0x47, 0x66, 0x966A) /* <CJK> */
-MAP(0x47, 0x67, 0x9019) /* <CJK> */
-MAP(0x47, 0x68, 0x877F) /* <CJK> */
-MAP(0x47, 0x69, 0x79E4) /* <CJK> */
-MAP(0x47, 0x6A, 0x77E7) /* <CJK> */
-MAP(0x47, 0x6B, 0x8429) /* <CJK> */
-MAP(0x47, 0x6C, 0x4F2F) /* <CJK> */
-MAP(0x47, 0x6D, 0x5265) /* <CJK> */
-MAP(0x47, 0x6E, 0x535A) /* <CJK> */
-MAP(0x47, 0x6F, 0x62CD) /* <CJK> */
-MAP(0x47, 0x70, 0x67CF) /* <CJK> */
-MAP(0x47, 0x71, 0x6CCA) /* <CJK> */
-MAP(0x47, 0x72, 0x767D) /* <CJK> */
-MAP(0x47, 0x73, 0x7B94) /* <CJK> */
-MAP(0x47, 0x74, 0x7C95) /* <CJK> */
-MAP(0x47, 0x75, 0x8236) /* <CJK> */
-MAP(0x47, 0x76, 0x8584) /* <CJK> */
-MAP(0x47, 0x77, 0x8FEB) /* <CJK> */
-MAP(0x47, 0x78, 0x66DD) /* <CJK> */
-MAP(0x47, 0x79, 0x6F20) /* <CJK> */
-MAP(0x47, 0x7A, 0x7206) /* <CJK> */
-MAP(0x47, 0x7B, 0x7E1B) /* <CJK> */
-MAP(0x47, 0x7C, 0x83AB) /* <CJK> */
-MAP(0x47, 0x7D, 0x99C1) /* <CJK> */
-MAP(0x47, 0x7E, 0x9EA6) /* <CJK> */
-MAP(0x48, 0x21, 0x51FD) /* <CJK> */
-MAP(0x48, 0x22, 0x7BB1) /* <CJK> */
-MAP(0x48, 0x23, 0x7872) /* <CJK> */
-MAP(0x48, 0x24, 0x7BB8) /* <CJK> */
-MAP(0x48, 0x25, 0x8087) /* <CJK> */
-MAP(0x48, 0x26, 0x7B48) /* <CJK> */
-MAP(0x48, 0x27, 0x6AE8) /* <CJK> */
-MAP(0x48, 0x28, 0x5E61) /* <CJK> */
-MAP(0x48, 0x29, 0x808C) /* <CJK> */
-MAP(0x48, 0x2A, 0x7551) /* <CJK> */
-MAP(0x48, 0x2B, 0x7560) /* <CJK> */
-MAP(0x48, 0x2C, 0x516B) /* <CJK> */
-MAP(0x48, 0x2D, 0x9262) /* <CJK> */
-MAP(0x48, 0x2E, 0x6E8C) /* <CJK> */
-MAP(0x48, 0x2F, 0x767A) /* <CJK> */
-MAP(0x48, 0x30, 0x9197) /* <CJK> */
-MAP(0x48, 0x31, 0x9AEA) /* <CJK> */
-MAP(0x48, 0x32, 0x4F10) /* <CJK> */
-MAP(0x48, 0x33, 0x7F70) /* <CJK> */
-MAP(0x48, 0x34, 0x629C) /* <CJK> */
-MAP(0x48, 0x35, 0x7B4F) /* <CJK> */
-MAP(0x48, 0x36, 0x95A5) /* <CJK> */
-MAP(0x48, 0x37, 0x9CE9) /* <CJK> */
-MAP(0x48, 0x38, 0x567A) /* <CJK> */
-MAP(0x48, 0x39, 0x5859) /* <CJK> */
-MAP(0x48, 0x3A, 0x86E4) /* <CJK> */
-MAP(0x48, 0x3B, 0x96BC) /* <CJK> */
-MAP(0x48, 0x3C, 0x4F34) /* <CJK> */
-MAP(0x48, 0x3D, 0x5224) /* <CJK> */
-MAP(0x48, 0x3E, 0x534A) /* <CJK> */
-MAP(0x48, 0x3F, 0x53CD) /* <CJK> */
-MAP(0x48, 0x40, 0x53DB) /* <CJK> */
-MAP(0x48, 0x41, 0x5E06) /* <CJK> */
-MAP(0x48, 0x42, 0x642C) /* <CJK> */
-MAP(0x48, 0x43, 0x6591) /* <CJK> */
-MAP(0x48, 0x44, 0x677F) /* <CJK> */
-MAP(0x48, 0x45, 0x6C3E) /* <CJK> */
-MAP(0x48, 0x46, 0x6C4E) /* <CJK> */
-MAP(0x48, 0x47, 0x7248) /* <CJK> */
-MAP(0x48, 0x48, 0x72AF) /* <CJK> */
-MAP(0x48, 0x49, 0x73ED) /* <CJK> */
-MAP(0x48, 0x4A, 0x7554) /* <CJK> */
-MAP(0x48, 0x4B, 0x7E41) /* <CJK> */
-MAP(0x48, 0x4C, 0x822C) /* <CJK> */
-MAP(0x48, 0x4D, 0x85E9) /* <CJK> */
-MAP(0x48, 0x4E, 0x8CA9) /* <CJK> */
-MAP(0x48, 0x4F, 0x7BC4) /* <CJK> */
-MAP(0x48, 0x50, 0x91C6) /* <CJK> */
-MAP(0x48, 0x51, 0x7169) /* <CJK> */
-MAP(0x48, 0x52, 0x9812) /* <CJK> */
-MAP(0x48, 0x53, 0x98EF) /* <CJK> */
-MAP(0x48, 0x54, 0x633D) /* <CJK> */
-MAP(0x48, 0x55, 0x6669) /* <CJK> */
-MAP(0x48, 0x56, 0x756A) /* <CJK> */
-MAP(0x48, 0x57, 0x76E4) /* <CJK> */
-MAP(0x48, 0x58, 0x78D0) /* <CJK> */
-MAP(0x48, 0x59, 0x8543) /* <CJK> */
-MAP(0x48, 0x5A, 0x86EE) /* <CJK> */
-MAP(0x48, 0x5B, 0x532A) /* <CJK> */
-MAP(0x48, 0x5C, 0x5351) /* <CJK> */
-MAP(0x48, 0x5D, 0x5426) /* <CJK> */
-MAP(0x48, 0x5E, 0x5983) /* <CJK> */
-MAP(0x48, 0x5F, 0x5E87) /* <CJK> */
-MAP(0x48, 0x60, 0x5F7C) /* <CJK> */
-MAP(0x48, 0x61, 0x60B2) /* <CJK> */
-MAP(0x48, 0x62, 0x6249) /* <CJK> */
-MAP(0x48, 0x63, 0x6279) /* <CJK> */
-MAP(0x48, 0x64, 0x62AB) /* <CJK> */
-MAP(0x48, 0x65, 0x6590) /* <CJK> */
-MAP(0x48, 0x66, 0x6BD4) /* <CJK> */
-MAP(0x48, 0x67, 0x6CCC) /* <CJK> */
-MAP(0x48, 0x68, 0x75B2) /* <CJK> */
-MAP(0x48, 0x69, 0x76AE) /* <CJK> */
-MAP(0x48, 0x6A, 0x7891) /* <CJK> */
-MAP(0x48, 0x6B, 0x79D8) /* <CJK> */
-MAP(0x48, 0x6C, 0x7DCB) /* <CJK> */
-MAP(0x48, 0x6D, 0x7F77) /* <CJK> */
-MAP(0x48, 0x6E, 0x80A5) /* <CJK> */
-MAP(0x48, 0x6F, 0x88AB) /* <CJK> */
-MAP(0x48, 0x70, 0x8AB9) /* <CJK> */
-MAP(0x48, 0x71, 0x8CBB) /* <CJK> */
-MAP(0x48, 0x72, 0x907F) /* <CJK> */
-MAP(0x48, 0x73, 0x975E) /* <CJK> */
-MAP(0x48, 0x74, 0x98DB) /* <CJK> */
-MAP(0x48, 0x75, 0x6A0B) /* <CJK> */
-MAP(0x48, 0x76, 0x7C38) /* <CJK> */
-MAP(0x48, 0x77, 0x5099) /* <CJK> */
-MAP(0x48, 0x78, 0x5C3E) /* <CJK> */
-MAP(0x48, 0x79, 0x5FAE) /* <CJK> */
-MAP(0x48, 0x7A, 0x6787) /* <CJK> */
-MAP(0x48, 0x7B, 0x6BD8) /* <CJK> */
-MAP(0x48, 0x7C, 0x7435) /* <CJK> */
-MAP(0x48, 0x7D, 0x7709) /* <CJK> */
-MAP(0x48, 0x7E, 0x7F8E) /* <CJK> */
-MAP(0x49, 0x21, 0x9F3B) /* <CJK> */
-MAP(0x49, 0x22, 0x67CA) /* <CJK> */
-MAP(0x49, 0x23, 0x7A17) /* <CJK> */
-MAP(0x49, 0x24, 0x5339) /* <CJK> */
-MAP(0x49, 0x25, 0x758B) /* <CJK> */
-MAP(0x49, 0x26, 0x9AED) /* <CJK> */
-MAP(0x49, 0x27, 0x5F66) /* <CJK> */
-MAP(0x49, 0x28, 0x819D) /* <CJK> */
-MAP(0x49, 0x29, 0x83F1) /* <CJK> */
-MAP(0x49, 0x2A, 0x8098) /* <CJK> */
-MAP(0x49, 0x2B, 0x5F3C) /* <CJK> */
-MAP(0x49, 0x2C, 0x5FC5) /* <CJK> */
-MAP(0x49, 0x2D, 0x7562) /* <CJK> */
-MAP(0x49, 0x2E, 0x7B46) /* <CJK> */
-MAP(0x49, 0x2F, 0x903C) /* <CJK> */
-MAP(0x49, 0x30, 0x6867) /* <CJK> */
-MAP(0x49, 0x31, 0x59EB) /* <CJK> */
-MAP(0x49, 0x32, 0x5A9B) /* <CJK> */
-MAP(0x49, 0x33, 0x7D10) /* <CJK> */
-MAP(0x49, 0x34, 0x767E) /* <CJK> */
-MAP(0x49, 0x35, 0x8B2C) /* <CJK> */
-MAP(0x49, 0x36, 0x4FF5) /* <CJK> */
-MAP(0x49, 0x37, 0x5F6A) /* <CJK> */
-MAP(0x49, 0x38, 0x6A19) /* <CJK> */
-MAP(0x49, 0x39, 0x6C37) /* <CJK> */
-MAP(0x49, 0x3A, 0x6F02) /* <CJK> */
-MAP(0x49, 0x3B, 0x74E2) /* <CJK> */
-MAP(0x49, 0x3C, 0x7968) /* <CJK> */
-MAP(0x49, 0x3D, 0x8868) /* <CJK> */
-MAP(0x49, 0x3E, 0x8A55) /* <CJK> */
-MAP(0x49, 0x3F, 0x8C79) /* <CJK> */
-MAP(0x49, 0x40, 0x5EDF) /* <CJK> */
-MAP(0x49, 0x41, 0x63CF) /* <CJK> */
-MAP(0x49, 0x42, 0x75C5) /* <CJK> */
-MAP(0x49, 0x43, 0x79D2) /* <CJK> */
-MAP(0x49, 0x44, 0x82D7) /* <CJK> */
-MAP(0x49, 0x45, 0x9328) /* <CJK> */
-MAP(0x49, 0x46, 0x92F2) /* <CJK> */
-MAP(0x49, 0x47, 0x849C) /* <CJK> */
-MAP(0x49, 0x48, 0x86ED) /* <CJK> */
-MAP(0x49, 0x49, 0x9C2D) /* <CJK> */
-MAP(0x49, 0x4A, 0x54C1) /* <CJK> */
-MAP(0x49, 0x4B, 0x5F6C) /* <CJK> */
-MAP(0x49, 0x4C, 0x658C) /* <CJK> */
-MAP(0x49, 0x4D, 0x6D5C) /* <CJK> */
-MAP(0x49, 0x4E, 0x7015) /* <CJK> */
-MAP(0x49, 0x4F, 0x8CA7) /* <CJK> */
-MAP(0x49, 0x50, 0x8CD3) /* <CJK> */
-MAP(0x49, 0x51, 0x983B) /* <CJK> */
-MAP(0x49, 0x52, 0x654F) /* <CJK> */
-MAP(0x49, 0x53, 0x74F6) /* <CJK> */
-MAP(0x49, 0x54, 0x4E0D) /* <CJK> */
-MAP(0x49, 0x55, 0x4ED8) /* <CJK> */
-MAP(0x49, 0x56, 0x57E0) /* <CJK> */
-MAP(0x49, 0x57, 0x592B) /* <CJK> */
-MAP(0x49, 0x58, 0x5A66) /* <CJK> */
-MAP(0x49, 0x59, 0x5BCC) /* <CJK> */
-MAP(0x49, 0x5A, 0x51A8) /* <CJK> */
-MAP(0x49, 0x5B, 0x5E03) /* <CJK> */
-MAP(0x49, 0x5C, 0x5E9C) /* <CJK> */
-MAP(0x49, 0x5D, 0x6016) /* <CJK> */
-MAP(0x49, 0x5E, 0x6276) /* <CJK> */
-MAP(0x49, 0x5F, 0x6577) /* <CJK> */
-MAP(0x49, 0x60, 0x65A7) /* <CJK> */
-MAP(0x49, 0x61, 0x666E) /* <CJK> */
-MAP(0x49, 0x62, 0x6D6E) /* <CJK> */
-MAP(0x49, 0x63, 0x7236) /* <CJK> */
-MAP(0x49, 0x64, 0x7B26) /* <CJK> */
-MAP(0x49, 0x65, 0x8150) /* <CJK> */
-MAP(0x49, 0x66, 0x819A) /* <CJK> */
-MAP(0x49, 0x67, 0x8299) /* <CJK> */
-MAP(0x49, 0x68, 0x8B5C) /* <CJK> */
-MAP(0x49, 0x69, 0x8CA0) /* <CJK> */
-MAP(0x49, 0x6A, 0x8CE6) /* <CJK> */
-MAP(0x49, 0x6B, 0x8D74) /* <CJK> */
-MAP(0x49, 0x6C, 0x961C) /* <CJK> */
-MAP(0x49, 0x6D, 0x9644) /* <CJK> */
-MAP(0x49, 0x6E, 0x4FAE) /* <CJK> */
-MAP(0x49, 0x6F, 0x64AB) /* <CJK> */
-MAP(0x49, 0x70, 0x6B66) /* <CJK> */
-MAP(0x49, 0x71, 0x821E) /* <CJK> */
-MAP(0x49, 0x72, 0x8461) /* <CJK> */
-MAP(0x49, 0x73, 0x856A) /* <CJK> */
-MAP(0x49, 0x74, 0x90E8) /* <CJK> */
-MAP(0x49, 0x75, 0x5C01) /* <CJK> */
-MAP(0x49, 0x76, 0x6953) /* <CJK> */
-MAP(0x49, 0x77, 0x98A8) /* <CJK> */
-MAP(0x49, 0x78, 0x847A) /* <CJK> */
-MAP(0x49, 0x79, 0x8557) /* <CJK> */
-MAP(0x49, 0x7A, 0x4F0F) /* <CJK> */
-MAP(0x49, 0x7B, 0x526F) /* <CJK> */
-MAP(0x49, 0x7C, 0x5FA9) /* <CJK> */
-MAP(0x49, 0x7D, 0x5E45) /* <CJK> */
-MAP(0x49, 0x7E, 0x670D) /* <CJK> */
-MAP(0x4A, 0x21, 0x798F) /* <CJK> */
-MAP(0x4A, 0x22, 0x8179) /* <CJK> */
-MAP(0x4A, 0x23, 0x8907) /* <CJK> */
-MAP(0x4A, 0x24, 0x8986) /* <CJK> */
-MAP(0x4A, 0x25, 0x6DF5) /* <CJK> */
-MAP(0x4A, 0x26, 0x5F17) /* <CJK> */
-MAP(0x4A, 0x27, 0x6255) /* <CJK> */
-MAP(0x4A, 0x28, 0x6CB8) /* <CJK> */
-MAP(0x4A, 0x29, 0x4ECF) /* <CJK> */
-MAP(0x4A, 0x2A, 0x7269) /* <CJK> */
-MAP(0x4A, 0x2B, 0x9B92) /* <CJK> */
-MAP(0x4A, 0x2C, 0x5206) /* <CJK> */
-MAP(0x4A, 0x2D, 0x543B) /* <CJK> */
-MAP(0x4A, 0x2E, 0x5674) /* <CJK> */
-MAP(0x4A, 0x2F, 0x58B3) /* <CJK> */
-MAP(0x4A, 0x30, 0x61A4) /* <CJK> */
-MAP(0x4A, 0x31, 0x626E) /* <CJK> */
-MAP(0x4A, 0x32, 0x711A) /* <CJK> */
-MAP(0x4A, 0x33, 0x596E) /* <CJK> */
-MAP(0x4A, 0x34, 0x7C89) /* <CJK> */
-MAP(0x4A, 0x35, 0x7CDE) /* <CJK> */
-MAP(0x4A, 0x36, 0x7D1B) /* <CJK> */
-MAP(0x4A, 0x37, 0x96F0) /* <CJK> */
-MAP(0x4A, 0x38, 0x6587) /* <CJK> */
-MAP(0x4A, 0x39, 0x805E) /* <CJK> */
-MAP(0x4A, 0x3A, 0x4E19) /* <CJK> */
-MAP(0x4A, 0x3B, 0x4F75) /* <CJK> */
-MAP(0x4A, 0x3C, 0x5175) /* <CJK> */
-MAP(0x4A, 0x3D, 0x5840) /* <CJK> */
-MAP(0x4A, 0x3E, 0x5E63) /* <CJK> */
-MAP(0x4A, 0x3F, 0x5E73) /* <CJK> */
-MAP(0x4A, 0x40, 0x5F0A) /* <CJK> */
-MAP(0x4A, 0x41, 0x67C4) /* <CJK> */
-MAP(0x4A, 0x42, 0x4E26) /* <CJK> */
-MAP(0x4A, 0x43, 0x853D) /* <CJK> */
-MAP(0x4A, 0x44, 0x9589) /* <CJK> */
-MAP(0x4A, 0x45, 0x965B) /* <CJK> */
-MAP(0x4A, 0x46, 0x7C73) /* <CJK> */
-MAP(0x4A, 0x47, 0x9801) /* <CJK> */
-MAP(0x4A, 0x48, 0x50FB) /* <CJK> */
-MAP(0x4A, 0x49, 0x58C1) /* <CJK> */
-MAP(0x4A, 0x4A, 0x7656) /* <CJK> */
-MAP(0x4A, 0x4B, 0x78A7) /* <CJK> */
-MAP(0x4A, 0x4C, 0x5225) /* <CJK> */
-MAP(0x4A, 0x4D, 0x77A5) /* <CJK> */
-MAP(0x4A, 0x4E, 0x8511) /* <CJK> */
-MAP(0x4A, 0x4F, 0x7B86) /* <CJK> */
-MAP(0x4A, 0x50, 0x504F) /* <CJK> */
-MAP(0x4A, 0x51, 0x5909) /* <CJK> */
-MAP(0x4A, 0x52, 0x7247) /* <CJK> */
-MAP(0x4A, 0x53, 0x7BC7) /* <CJK> */
-MAP(0x4A, 0x54, 0x7DE8) /* <CJK> */
-MAP(0x4A, 0x55, 0x8FBA) /* <CJK> */
-MAP(0x4A, 0x56, 0x8FD4) /* <CJK> */
-MAP(0x4A, 0x57, 0x904D) /* <CJK> */
-MAP(0x4A, 0x58, 0x4FBF) /* <CJK> */
-MAP(0x4A, 0x59, 0x52C9) /* <CJK> */
-MAP(0x4A, 0x5A, 0x5A29) /* <CJK> */
-MAP(0x4A, 0x5B, 0x5F01) /* <CJK> */
-MAP(0x4A, 0x5C, 0x97AD) /* <CJK> */
-MAP(0x4A, 0x5D, 0x4FDD) /* <CJK> */
-MAP(0x4A, 0x5E, 0x8217) /* <CJK> */
-MAP(0x4A, 0x5F, 0x92EA) /* <CJK> */
-MAP(0x4A, 0x60, 0x5703) /* <CJK> */
-MAP(0x4A, 0x61, 0x6355) /* <CJK> */
-MAP(0x4A, 0x62, 0x6B69) /* <CJK> */
-MAP(0x4A, 0x63, 0x752B) /* <CJK> */
-MAP(0x4A, 0x64, 0x88DC) /* <CJK> */
-MAP(0x4A, 0x65, 0x8F14) /* <CJK> */
-MAP(0x4A, 0x66, 0x7A42) /* <CJK> */
-MAP(0x4A, 0x67, 0x52DF) /* <CJK> */
-MAP(0x4A, 0x68, 0x5893) /* <CJK> */
-MAP(0x4A, 0x69, 0x6155) /* <CJK> */
-MAP(0x4A, 0x6A, 0x620A) /* <CJK> */
-MAP(0x4A, 0x6B, 0x66AE) /* <CJK> */
-MAP(0x4A, 0x6C, 0x6BCD) /* <CJK> */
-MAP(0x4A, 0x6D, 0x7C3F) /* <CJK> */
-MAP(0x4A, 0x6E, 0x83E9) /* <CJK> */
-MAP(0x4A, 0x6F, 0x5023) /* <CJK> */
-MAP(0x4A, 0x70, 0x4FF8) /* <CJK> */
-MAP(0x4A, 0x71, 0x5305) /* <CJK> */
-MAP(0x4A, 0x72, 0x5446) /* <CJK> */
-MAP(0x4A, 0x73, 0x5831) /* <CJK> */
-MAP(0x4A, 0x74, 0x5949) /* <CJK> */
-MAP(0x4A, 0x75, 0x5B9D) /* <CJK> */
-MAP(0x4A, 0x76, 0x5CF0) /* <CJK> */
-MAP(0x4A, 0x77, 0x5CEF) /* <CJK> */
-MAP(0x4A, 0x78, 0x5D29) /* <CJK> */
-MAP(0x4A, 0x79, 0x5E96) /* <CJK> */
-MAP(0x4A, 0x7A, 0x62B1) /* <CJK> */
-MAP(0x4A, 0x7B, 0x6367) /* <CJK> */
-MAP(0x4A, 0x7C, 0x653E) /* <CJK> */
-MAP(0x4A, 0x7D, 0x65B9) /* <CJK> */
-MAP(0x4A, 0x7E, 0x670B) /* <CJK> */
-MAP(0x4B, 0x21, 0x6CD5) /* <CJK> */
-MAP(0x4B, 0x22, 0x6CE1) /* <CJK> */
-MAP(0x4B, 0x23, 0x70F9) /* <CJK> */
-MAP(0x4B, 0x24, 0x7832) /* <CJK> */
-MAP(0x4B, 0x25, 0x7E2B) /* <CJK> */
-MAP(0x4B, 0x26, 0x80DE) /* <CJK> */
-MAP(0x4B, 0x27, 0x82B3) /* <CJK> */
-MAP(0x4B, 0x28, 0x840C) /* <CJK> */
-MAP(0x4B, 0x29, 0x84EC) /* <CJK> */
-MAP(0x4B, 0x2A, 0x8702) /* <CJK> */
-MAP(0x4B, 0x2B, 0x8912) /* <CJK> */
-MAP(0x4B, 0x2C, 0x8A2A) /* <CJK> */
-MAP(0x4B, 0x2D, 0x8C4A) /* <CJK> */
-MAP(0x4B, 0x2E, 0x90A6) /* <CJK> */
-MAP(0x4B, 0x2F, 0x92D2) /* <CJK> */
-MAP(0x4B, 0x30, 0x98FD) /* <CJK> */
-MAP(0x4B, 0x31, 0x9CF3) /* <CJK> */
-MAP(0x4B, 0x32, 0x9D6C) /* <CJK> */
-MAP(0x4B, 0x33, 0x4E4F) /* <CJK> */
-MAP(0x4B, 0x34, 0x4EA1) /* <CJK> */
-MAP(0x4B, 0x35, 0x508D) /* <CJK> */
-MAP(0x4B, 0x36, 0x5256) /* <CJK> */
-MAP(0x4B, 0x37, 0x574A) /* <CJK> */
-MAP(0x4B, 0x38, 0x59A8) /* <CJK> */
-MAP(0x4B, 0x39, 0x5E3D) /* <CJK> */
-MAP(0x4B, 0x3A, 0x5FD8) /* <CJK> */
-MAP(0x4B, 0x3B, 0x5FD9) /* <CJK> */
-MAP(0x4B, 0x3C, 0x623F) /* <CJK> */
-MAP(0x4B, 0x3D, 0x66B4) /* <CJK> */
-MAP(0x4B, 0x3E, 0x671B) /* <CJK> */
-MAP(0x4B, 0x3F, 0x67D0) /* <CJK> */
-MAP(0x4B, 0x40, 0x68D2) /* <CJK> */
-MAP(0x4B, 0x41, 0x5192) /* <CJK> */
-MAP(0x4B, 0x42, 0x7D21) /* <CJK> */
-MAP(0x4B, 0x43, 0x80AA) /* <CJK> */
-MAP(0x4B, 0x44, 0x81A8) /* <CJK> */
-MAP(0x4B, 0x45, 0x8B00) /* <CJK> */
-MAP(0x4B, 0x46, 0x8C8C) /* <CJK> */
-MAP(0x4B, 0x47, 0x8CBF) /* <CJK> */
-MAP(0x4B, 0x48, 0x927E) /* <CJK> */
-MAP(0x4B, 0x49, 0x9632) /* <CJK> */
-MAP(0x4B, 0x4A, 0x5420) /* <CJK> */
-MAP(0x4B, 0x4B, 0x982C) /* <CJK> */
-MAP(0x4B, 0x4C, 0x5317) /* <CJK> */
-MAP(0x4B, 0x4D, 0x50D5) /* <CJK> */
-MAP(0x4B, 0x4E, 0x535C) /* <CJK> */
-MAP(0x4B, 0x4F, 0x58A8) /* <CJK> */
-MAP(0x4B, 0x50, 0x64B2) /* <CJK> */
-MAP(0x4B, 0x51, 0x6734) /* <CJK> */
-MAP(0x4B, 0x52, 0x7267) /* <CJK> */
-MAP(0x4B, 0x53, 0x7766) /* <CJK> */
-MAP(0x4B, 0x54, 0x7A46) /* <CJK> */
-MAP(0x4B, 0x55, 0x91E6) /* <CJK> */
-MAP(0x4B, 0x56, 0x52C3) /* <CJK> */
-MAP(0x4B, 0x57, 0x6CA1) /* <CJK> */
-MAP(0x4B, 0x58, 0x6B86) /* <CJK> */
-MAP(0x4B, 0x59, 0x5800) /* <CJK> */
-MAP(0x4B, 0x5A, 0x5E4C) /* <CJK> */
-MAP(0x4B, 0x5B, 0x5954) /* <CJK> */
-MAP(0x4B, 0x5C, 0x672C) /* <CJK> */
-MAP(0x4B, 0x5D, 0x7FFB) /* <CJK> */
-MAP(0x4B, 0x5E, 0x51E1) /* <CJK> */
-MAP(0x4B, 0x5F, 0x76C6) /* <CJK> */
-MAP(0x4B, 0x60, 0x6469) /* <CJK> */
-MAP(0x4B, 0x61, 0x78E8) /* <CJK> */
-MAP(0x4B, 0x62, 0x9B54) /* <CJK> */
-MAP(0x4B, 0x63, 0x9EBB) /* <CJK> */
-MAP(0x4B, 0x64, 0x57CB) /* <CJK> */
-MAP(0x4B, 0x65, 0x59B9) /* <CJK> */
-MAP(0x4B, 0x66, 0x6627) /* <CJK> */
-MAP(0x4B, 0x67, 0x679A) /* <CJK> */
-MAP(0x4B, 0x68, 0x6BCE) /* <CJK> */
-MAP(0x4B, 0x69, 0x54E9) /* <CJK> */
-MAP(0x4B, 0x6A, 0x69D9) /* <CJK> */
-MAP(0x4B, 0x6B, 0x5E55) /* <CJK> */
-MAP(0x4B, 0x6C, 0x819C) /* <CJK> */
-MAP(0x4B, 0x6D, 0x6795) /* <CJK> */
-MAP(0x4B, 0x6E, 0x9BAA) /* <CJK> */
-MAP(0x4B, 0x6F, 0x67FE) /* <CJK> */
-MAP(0x4B, 0x70, 0x9C52) /* <CJK> */
-MAP(0x4B, 0x71, 0x685D) /* <CJK> */
-MAP(0x4B, 0x72, 0x4EA6) /* <CJK> */
-MAP(0x4B, 0x73, 0x4FE3) /* <CJK> */
-MAP(0x4B, 0x74, 0x53C8) /* <CJK> */
-MAP(0x4B, 0x75, 0x62B9) /* <CJK> */
-MAP(0x4B, 0x76, 0x672B) /* <CJK> */
-MAP(0x4B, 0x77, 0x6CAB) /* <CJK> */
-MAP(0x4B, 0x78, 0x8FC4) /* <CJK> */
-MAP(0x4B, 0x79, 0x4FAD) /* <CJK> */
-MAP(0x4B, 0x7A, 0x7E6D) /* <CJK> */
-MAP(0x4B, 0x7B, 0x9EBF) /* <CJK> */
-MAP(0x4B, 0x7C, 0x4E07) /* <CJK> */
-MAP(0x4B, 0x7D, 0x6162) /* <CJK> */
-MAP(0x4B, 0x7E, 0x6E80) /* <CJK> */
-MAP(0x4C, 0x21, 0x6F2B) /* <CJK> */
-MAP(0x4C, 0x22, 0x8513) /* <CJK> */
-MAP(0x4C, 0x23, 0x5473) /* <CJK> */
-MAP(0x4C, 0x24, 0x672A) /* <CJK> */
-MAP(0x4C, 0x25, 0x9B45) /* <CJK> */
-MAP(0x4C, 0x26, 0x5DF3) /* <CJK> */
-MAP(0x4C, 0x27, 0x7B95) /* <CJK> */
-MAP(0x4C, 0x28, 0x5CAC) /* <CJK> */
-MAP(0x4C, 0x29, 0x5BC6) /* <CJK> */
-MAP(0x4C, 0x2A, 0x871C) /* <CJK> */
-MAP(0x4C, 0x2B, 0x6E4A) /* <CJK> */
-MAP(0x4C, 0x2C, 0x84D1) /* <CJK> */
-MAP(0x4C, 0x2D, 0x7A14) /* <CJK> */
-MAP(0x4C, 0x2E, 0x8108) /* <CJK> */
-MAP(0x4C, 0x2F, 0x5999) /* <CJK> */
-MAP(0x4C, 0x30, 0x7C8D) /* <CJK> */
-MAP(0x4C, 0x31, 0x6C11) /* <CJK> */
-MAP(0x4C, 0x32, 0x7720) /* <CJK> */
-MAP(0x4C, 0x33, 0x52D9) /* <CJK> */
-MAP(0x4C, 0x34, 0x5922) /* <CJK> */
-MAP(0x4C, 0x35, 0x7121) /* <CJK> */
-MAP(0x4C, 0x36, 0x725F) /* <CJK> */
-MAP(0x4C, 0x37, 0x77DB) /* <CJK> */
-MAP(0x4C, 0x38, 0x9727) /* <CJK> */
-MAP(0x4C, 0x39, 0x9D61) /* <CJK> */
-MAP(0x4C, 0x3A, 0x690B) /* <CJK> */
-MAP(0x4C, 0x3B, 0x5A7F) /* <CJK> */
-MAP(0x4C, 0x3C, 0x5A18) /* <CJK> */
-MAP(0x4C, 0x3D, 0x51A5) /* <CJK> */
-MAP(0x4C, 0x3E, 0x540D) /* <CJK> */
-MAP(0x4C, 0x3F, 0x547D) /* <CJK> */
-MAP(0x4C, 0x40, 0x660E) /* <CJK> */
-MAP(0x4C, 0x41, 0x76DF) /* <CJK> */
-MAP(0x4C, 0x42, 0x8FF7) /* <CJK> */
-MAP(0x4C, 0x43, 0x9298) /* <CJK> */
-MAP(0x4C, 0x44, 0x9CF4) /* <CJK> */
-MAP(0x4C, 0x45, 0x59EA) /* <CJK> */
-MAP(0x4C, 0x46, 0x725D) /* <CJK> */
-MAP(0x4C, 0x47, 0x6EC5) /* <CJK> */
-MAP(0x4C, 0x48, 0x514D) /* <CJK> */
-MAP(0x4C, 0x49, 0x68C9) /* <CJK> */
-MAP(0x4C, 0x4A, 0x7DBF) /* <CJK> */
-MAP(0x4C, 0x4B, 0x7DEC) /* <CJK> */
-MAP(0x4C, 0x4C, 0x9762) /* <CJK> */
-MAP(0x4C, 0x4D, 0x9EBA) /* <CJK> */
-MAP(0x4C, 0x4E, 0x6478) /* <CJK> */
-MAP(0x4C, 0x4F, 0x6A21) /* <CJK> */
-MAP(0x4C, 0x50, 0x8302) /* <CJK> */
-MAP(0x4C, 0x51, 0x5984) /* <CJK> */
-MAP(0x4C, 0x52, 0x5B5F) /* <CJK> */
-MAP(0x4C, 0x53, 0x6BDB) /* <CJK> */
-MAP(0x4C, 0x54, 0x731B) /* <CJK> */
-MAP(0x4C, 0x55, 0x76F2) /* <CJK> */
-MAP(0x4C, 0x56, 0x7DB2) /* <CJK> */
-MAP(0x4C, 0x57, 0x8017) /* <CJK> */
-MAP(0x4C, 0x58, 0x8499) /* <CJK> */
-MAP(0x4C, 0x59, 0x5132) /* <CJK> */
-MAP(0x4C, 0x5A, 0x6728) /* <CJK> */
-MAP(0x4C, 0x5B, 0x9ED9) /* <CJK> */
-MAP(0x4C, 0x5C, 0x76EE) /* <CJK> */
-MAP(0x4C, 0x5D, 0x6762) /* <CJK> */
-MAP(0x4C, 0x5E, 0x52FF) /* <CJK> */
-MAP(0x4C, 0x5F, 0x9905) /* <CJK> */
-MAP(0x4C, 0x60, 0x5C24) /* <CJK> */
-MAP(0x4C, 0x61, 0x623B) /* <CJK> */
-MAP(0x4C, 0x62, 0x7C7E) /* <CJK> */
-MAP(0x4C, 0x63, 0x8CB0) /* <CJK> */
-MAP(0x4C, 0x64, 0x554F) /* <CJK> */
-MAP(0x4C, 0x65, 0x60B6) /* <CJK> */
-MAP(0x4C, 0x66, 0x7D0B) /* <CJK> */
-MAP(0x4C, 0x67, 0x9580) /* <CJK> */
-MAP(0x4C, 0x68, 0x5301) /* <CJK> */
-MAP(0x4C, 0x69, 0x4E5F) /* <CJK> */
-MAP(0x4C, 0x6A, 0x51B6) /* <CJK> */
-MAP(0x4C, 0x6B, 0x591C) /* <CJK> */
-MAP(0x4C, 0x6C, 0x723A) /* <CJK> */
-MAP(0x4C, 0x6D, 0x8036) /* <CJK> */
-MAP(0x4C, 0x6E, 0x91CE) /* <CJK> */
-MAP(0x4C, 0x6F, 0x5F25) /* <CJK> */
-MAP(0x4C, 0x70, 0x77E2) /* <CJK> */
-MAP(0x4C, 0x71, 0x5384) /* <CJK> */
-MAP(0x4C, 0x72, 0x5F79) /* <CJK> */
-MAP(0x4C, 0x73, 0x7D04) /* <CJK> */
-MAP(0x4C, 0x74, 0x85AC) /* <CJK> */
-MAP(0x4C, 0x75, 0x8A33) /* <CJK> */
-MAP(0x4C, 0x76, 0x8E8D) /* <CJK> */
-MAP(0x4C, 0x77, 0x9756) /* <CJK> */
-MAP(0x4C, 0x78, 0x67F3) /* <CJK> */
-MAP(0x4C, 0x79, 0x85AE) /* <CJK> */
-MAP(0x4C, 0x7A, 0x9453) /* <CJK> */
-MAP(0x4C, 0x7B, 0x6109) /* <CJK> */
-MAP(0x4C, 0x7C, 0x6108) /* <CJK> */
-MAP(0x4C, 0x7D, 0x6CB9) /* <CJK> */
-MAP(0x4C, 0x7E, 0x7652) /* <CJK> */
-MAP(0x4D, 0x21, 0x8AED) /* <CJK> */
-MAP(0x4D, 0x22, 0x8F38) /* <CJK> */
-MAP(0x4D, 0x23, 0x552F) /* <CJK> */
-MAP(0x4D, 0x24, 0x4F51) /* <CJK> */
-MAP(0x4D, 0x25, 0x512A) /* <CJK> */
-MAP(0x4D, 0x26, 0x52C7) /* <CJK> */
-MAP(0x4D, 0x27, 0x53CB) /* <CJK> */
-MAP(0x4D, 0x28, 0x5BA5) /* <CJK> */
-MAP(0x4D, 0x29, 0x5E7D) /* <CJK> */
-MAP(0x4D, 0x2A, 0x60A0) /* <CJK> */
-MAP(0x4D, 0x2B, 0x6182) /* <CJK> */
-MAP(0x4D, 0x2C, 0x63D6) /* <CJK> */
-MAP(0x4D, 0x2D, 0x6709) /* <CJK> */
-MAP(0x4D, 0x2E, 0x67DA) /* <CJK> */
-MAP(0x4D, 0x2F, 0x6E67) /* <CJK> */
-MAP(0x4D, 0x30, 0x6D8C) /* <CJK> */
-MAP(0x4D, 0x31, 0x7336) /* <CJK> */
-MAP(0x4D, 0x32, 0x7337) /* <CJK> */
-MAP(0x4D, 0x33, 0x7531) /* <CJK> */
-MAP(0x4D, 0x34, 0x7950) /* <CJK> */
-MAP(0x4D, 0x35, 0x88D5) /* <CJK> */
-MAP(0x4D, 0x36, 0x8A98) /* <CJK> */
-MAP(0x4D, 0x37, 0x904A) /* <CJK> */
-MAP(0x4D, 0x38, 0x9091) /* <CJK> */
-MAP(0x4D, 0x39, 0x90F5) /* <CJK> */
-MAP(0x4D, 0x3A, 0x96C4) /* <CJK> */
-MAP(0x4D, 0x3B, 0x878D) /* <CJK> */
-MAP(0x4D, 0x3C, 0x5915) /* <CJK> */
-MAP(0x4D, 0x3D, 0x4E88) /* <CJK> */
-MAP(0x4D, 0x3E, 0x4F59) /* <CJK> */
-MAP(0x4D, 0x3F, 0x4E0E) /* <CJK> */
-MAP(0x4D, 0x40, 0x8A89) /* <CJK> */
-MAP(0x4D, 0x41, 0x8F3F) /* <CJK> */
-MAP(0x4D, 0x42, 0x9810) /* <CJK> */
-MAP(0x4D, 0x43, 0x50AD) /* <CJK> */
-MAP(0x4D, 0x44, 0x5E7C) /* <CJK> */
-MAP(0x4D, 0x45, 0x5996) /* <CJK> */
-MAP(0x4D, 0x46, 0x5BB9) /* <CJK> */
-MAP(0x4D, 0x47, 0x5EB8) /* <CJK> */
-MAP(0x4D, 0x48, 0x63DA) /* <CJK> */
-MAP(0x4D, 0x49, 0x63FA) /* <CJK> */
-MAP(0x4D, 0x4A, 0x64C1) /* <CJK> */
-MAP(0x4D, 0x4B, 0x66DC) /* <CJK> */
-MAP(0x4D, 0x4C, 0x694A) /* <CJK> */
-MAP(0x4D, 0x4D, 0x69D8) /* <CJK> */
-MAP(0x4D, 0x4E, 0x6D0B) /* <CJK> */
-MAP(0x4D, 0x4F, 0x6EB6) /* <CJK> */
-MAP(0x4D, 0x50, 0x7194) /* <CJK> */
-MAP(0x4D, 0x51, 0x7528) /* <CJK> */
-MAP(0x4D, 0x52, 0x7AAF) /* <CJK> */
-MAP(0x4D, 0x53, 0x7F8A) /* <CJK> */
-MAP(0x4D, 0x54, 0x8000) /* <CJK> */
-MAP(0x4D, 0x55, 0x8449) /* <CJK> */
-MAP(0x4D, 0x56, 0x84C9) /* <CJK> */
-MAP(0x4D, 0x57, 0x8981) /* <CJK> */
-MAP(0x4D, 0x58, 0x8B21) /* <CJK> */
-MAP(0x4D, 0x59, 0x8E0A) /* <CJK> */
-MAP(0x4D, 0x5A, 0x9065) /* <CJK> */
-MAP(0x4D, 0x5B, 0x967D) /* <CJK> */
-MAP(0x4D, 0x5C, 0x990A) /* <CJK> */
-MAP(0x4D, 0x5D, 0x617E) /* <CJK> */
-MAP(0x4D, 0x5E, 0x6291) /* <CJK> */
-MAP(0x4D, 0x5F, 0x6B32) /* <CJK> */
-MAP(0x4D, 0x60, 0x6C83) /* <CJK> */
-MAP(0x4D, 0x61, 0x6D74) /* <CJK> */
-MAP(0x4D, 0x62, 0x7FCC) /* <CJK> */
-MAP(0x4D, 0x63, 0x7FFC) /* <CJK> */
-MAP(0x4D, 0x64, 0x6DC0) /* <CJK> */
-MAP(0x4D, 0x65, 0x7F85) /* <CJK> */
-MAP(0x4D, 0x66, 0x87BA) /* <CJK> */
-MAP(0x4D, 0x67, 0x88F8) /* <CJK> */
-MAP(0x4D, 0x68, 0x6765) /* <CJK> */
-MAP(0x4D, 0x69, 0x83B1) /* <CJK> */
-MAP(0x4D, 0x6A, 0x983C) /* <CJK> */
-MAP(0x4D, 0x6B, 0x96F7) /* <CJK> */
-MAP(0x4D, 0x6C, 0x6D1B) /* <CJK> */
-MAP(0x4D, 0x6D, 0x7D61) /* <CJK> */
-MAP(0x4D, 0x6E, 0x843D) /* <CJK> */
-MAP(0x4D, 0x6F, 0x916A) /* <CJK> */
-MAP(0x4D, 0x70, 0x4E71) /* <CJK> */
-MAP(0x4D, 0x71, 0x5375) /* <CJK> */
-MAP(0x4D, 0x72, 0x5D50) /* <CJK> */
-MAP(0x4D, 0x73, 0x6B04) /* <CJK> */
-MAP(0x4D, 0x74, 0x6FEB) /* <CJK> */
-MAP(0x4D, 0x75, 0x85CD) /* <CJK> */
-MAP(0x4D, 0x76, 0x862D) /* <CJK> */
-MAP(0x4D, 0x77, 0x89A7) /* <CJK> */
-MAP(0x4D, 0x78, 0x5229) /* <CJK> */
-MAP(0x4D, 0x79, 0x540F) /* <CJK> */
-MAP(0x4D, 0x7A, 0x5C65) /* <CJK> */
-MAP(0x4D, 0x7B, 0x674E) /* <CJK> */
-MAP(0x4D, 0x7C, 0x68A8) /* <CJK> */
-MAP(0x4D, 0x7D, 0x7406) /* <CJK> */
-MAP(0x4D, 0x7E, 0x7483) /* <CJK> */
-MAP(0x4E, 0x21, 0x75E2) /* <CJK> */
-MAP(0x4E, 0x22, 0x88CF) /* <CJK> */
-MAP(0x4E, 0x23, 0x88E1) /* <CJK> */
-MAP(0x4E, 0x24, 0x91CC) /* <CJK> */
-MAP(0x4E, 0x25, 0x96E2) /* <CJK> */
-MAP(0x4E, 0x26, 0x9678) /* <CJK> */
-MAP(0x4E, 0x27, 0x5F8B) /* <CJK> */
-MAP(0x4E, 0x28, 0x7387) /* <CJK> */
-MAP(0x4E, 0x29, 0x7ACB) /* <CJK> */
-MAP(0x4E, 0x2A, 0x844E) /* <CJK> */
-MAP(0x4E, 0x2B, 0x63A0) /* <CJK> */
-MAP(0x4E, 0x2C, 0x7565) /* <CJK> */
-MAP(0x4E, 0x2D, 0x5289) /* <CJK> */
-MAP(0x4E, 0x2E, 0x6D41) /* <CJK> */
-MAP(0x4E, 0x2F, 0x6E9C) /* <CJK> */
-MAP(0x4E, 0x30, 0x7409) /* <CJK> */
-MAP(0x4E, 0x31, 0x7559) /* <CJK> */
-MAP(0x4E, 0x32, 0x786B) /* <CJK> */
-MAP(0x4E, 0x33, 0x7C92) /* <CJK> */
-MAP(0x4E, 0x34, 0x9686) /* <CJK> */
-MAP(0x4E, 0x35, 0x7ADC) /* <CJK> */
-MAP(0x4E, 0x36, 0x9F8D) /* <CJK> */
-MAP(0x4E, 0x37, 0x4FB6) /* <CJK> */
-MAP(0x4E, 0x38, 0x616E) /* <CJK> */
-MAP(0x4E, 0x39, 0x65C5) /* <CJK> */
-MAP(0x4E, 0x3A, 0x865C) /* <CJK> */
-MAP(0x4E, 0x3B, 0x4E86) /* <CJK> */
-MAP(0x4E, 0x3C, 0x4EAE) /* <CJK> */
-MAP(0x4E, 0x3D, 0x50DA) /* <CJK> */
-MAP(0x4E, 0x3E, 0x4E21) /* <CJK> */
-MAP(0x4E, 0x3F, 0x51CC) /* <CJK> */
-MAP(0x4E, 0x40, 0x5BEE) /* <CJK> */
-MAP(0x4E, 0x41, 0x6599) /* <CJK> */
-MAP(0x4E, 0x42, 0x6881) /* <CJK> */
-MAP(0x4E, 0x43, 0x6DBC) /* <CJK> */
-MAP(0x4E, 0x44, 0x731F) /* <CJK> */
-MAP(0x4E, 0x45, 0x7642) /* <CJK> */
-MAP(0x4E, 0x46, 0x77AD) /* <CJK> */
-MAP(0x4E, 0x47, 0x7A1C) /* <CJK> */
-MAP(0x4E, 0x48, 0x7CE7) /* <CJK> */
-MAP(0x4E, 0x49, 0x826F) /* <CJK> */
-MAP(0x4E, 0x4A, 0x8AD2) /* <CJK> */
-MAP(0x4E, 0x4B, 0x907C) /* <CJK> */
-MAP(0x4E, 0x4C, 0x91CF) /* <CJK> */
-MAP(0x4E, 0x4D, 0x9675) /* <CJK> */
-MAP(0x4E, 0x4E, 0x9818) /* <CJK> */
-MAP(0x4E, 0x4F, 0x529B) /* <CJK> */
-MAP(0x4E, 0x50, 0x7DD1) /* <CJK> */
-MAP(0x4E, 0x51, 0x502B) /* <CJK> */
-MAP(0x4E, 0x52, 0x5398) /* <CJK> */
-MAP(0x4E, 0x53, 0x6797) /* <CJK> */
-MAP(0x4E, 0x54, 0x6DCB) /* <CJK> */
-MAP(0x4E, 0x55, 0x71D0) /* <CJK> */
-MAP(0x4E, 0x56, 0x7433) /* <CJK> */
-MAP(0x4E, 0x57, 0x81E8) /* <CJK> */
-MAP(0x4E, 0x58, 0x8F2A) /* <CJK> */
-MAP(0x4E, 0x59, 0x96A3) /* <CJK> */
-MAP(0x4E, 0x5A, 0x9C57) /* <CJK> */
-MAP(0x4E, 0x5B, 0x9E9F) /* <CJK> */
-MAP(0x4E, 0x5C, 0x7460) /* <CJK> */
-MAP(0x4E, 0x5D, 0x5841) /* <CJK> */
-MAP(0x4E, 0x5E, 0x6D99) /* <CJK> */
-MAP(0x4E, 0x5F, 0x7D2F) /* <CJK> */
-MAP(0x4E, 0x60, 0x985E) /* <CJK> */
-MAP(0x4E, 0x61, 0x4EE4) /* <CJK> */
-MAP(0x4E, 0x62, 0x4F36) /* <CJK> */
-MAP(0x4E, 0x63, 0x4F8B) /* <CJK> */
-MAP(0x4E, 0x64, 0x51B7) /* <CJK> */
-MAP(0x4E, 0x65, 0x52B1) /* <CJK> */
-MAP(0x4E, 0x66, 0x5DBA) /* <CJK> */
-MAP(0x4E, 0x67, 0x601C) /* <CJK> */
-MAP(0x4E, 0x68, 0x73B2) /* <CJK> */
-MAP(0x4E, 0x69, 0x793C) /* <CJK> */
-MAP(0x4E, 0x6A, 0x82D3) /* <CJK> */
-MAP(0x4E, 0x6B, 0x9234) /* <CJK> */
-MAP(0x4E, 0x6C, 0x96B7) /* <CJK> */
-MAP(0x4E, 0x6D, 0x96F6) /* <CJK> */
-MAP(0x4E, 0x6E, 0x970A) /* <CJK> */
-MAP(0x4E, 0x6F, 0x9E97) /* <CJK> */
-MAP(0x4E, 0x70, 0x9F62) /* <CJK> */
-MAP(0x4E, 0x71, 0x66A6) /* <CJK> */
-MAP(0x4E, 0x72, 0x6B74) /* <CJK> */
-MAP(0x4E, 0x73, 0x5217) /* <CJK> */
-MAP(0x4E, 0x74, 0x52A3) /* <CJK> */
-MAP(0x4E, 0x75, 0x70C8) /* <CJK> */
-MAP(0x4E, 0x76, 0x88C2) /* <CJK> */
-MAP(0x4E, 0x77, 0x5EC9) /* <CJK> */
-MAP(0x4E, 0x78, 0x604B) /* <CJK> */
-MAP(0x4E, 0x79, 0x6190) /* <CJK> */
-MAP(0x4E, 0x7A, 0x6F23) /* <CJK> */
-MAP(0x4E, 0x7B, 0x7149) /* <CJK> */
-MAP(0x4E, 0x7C, 0x7C3E) /* <CJK> */
-MAP(0x4E, 0x7D, 0x7DF4) /* <CJK> */
-MAP(0x4E, 0x7E, 0x806F) /* <CJK> */
-MAP(0x4F, 0x21, 0x84EE) /* <CJK> */
-MAP(0x4F, 0x22, 0x9023) /* <CJK> */
-MAP(0x4F, 0x23, 0x932C) /* <CJK> */
-MAP(0x4F, 0x24, 0x5442) /* <CJK> */
-MAP(0x4F, 0x25, 0x9B6F) /* <CJK> */
-MAP(0x4F, 0x26, 0x6AD3) /* <CJK> */
-MAP(0x4F, 0x27, 0x7089) /* <CJK> */
-MAP(0x4F, 0x28, 0x8CC2) /* <CJK> */
-MAP(0x4F, 0x29, 0x8DEF) /* <CJK> */
-MAP(0x4F, 0x2A, 0x9732) /* <CJK> */
-MAP(0x4F, 0x2B, 0x52B4) /* <CJK> */
-MAP(0x4F, 0x2C, 0x5A41) /* <CJK> */
-MAP(0x4F, 0x2D, 0x5ECA) /* <CJK> */
-MAP(0x4F, 0x2E, 0x5F04) /* <CJK> */
-MAP(0x4F, 0x2F, 0x6717) /* <CJK> */
-MAP(0x4F, 0x30, 0x697C) /* <CJK> */
-MAP(0x4F, 0x31, 0x6994) /* <CJK> */
-MAP(0x4F, 0x32, 0x6D6A) /* <CJK> */
-MAP(0x4F, 0x33, 0x6F0F) /* <CJK> */
-MAP(0x4F, 0x34, 0x7262) /* <CJK> */
-MAP(0x4F, 0x35, 0x72FC) /* <CJK> */
-MAP(0x4F, 0x36, 0x7BED) /* <CJK> */
-MAP(0x4F, 0x37, 0x8001) /* <CJK> */
-MAP(0x4F, 0x38, 0x807E) /* <CJK> */
-MAP(0x4F, 0x39, 0x874B) /* <CJK> */
-MAP(0x4F, 0x3A, 0x90CE) /* <CJK> */
-MAP(0x4F, 0x3B, 0x516D) /* <CJK> */
-MAP(0x4F, 0x3C, 0x9E93) /* <CJK> */
-MAP(0x4F, 0x3D, 0x7984) /* <CJK> */
-MAP(0x4F, 0x3E, 0x808B) /* <CJK> */
-MAP(0x4F, 0x3F, 0x9332) /* <CJK> */
-MAP(0x4F, 0x40, 0x8AD6) /* <CJK> */
-MAP(0x4F, 0x41, 0x502D) /* <CJK> */
-MAP(0x4F, 0x42, 0x548C) /* <CJK> */
-MAP(0x4F, 0x43, 0x8A71) /* <CJK> */
-MAP(0x4F, 0x44, 0x6B6A) /* <CJK> */
-MAP(0x4F, 0x45, 0x8CC4) /* <CJK> */
-MAP(0x4F, 0x46, 0x8107) /* <CJK> */
-MAP(0x4F, 0x47, 0x60D1) /* <CJK> */
-MAP(0x4F, 0x48, 0x67A0) /* <CJK> */
-MAP(0x4F, 0x49, 0x9DF2) /* <CJK> */
-MAP(0x4F, 0x4A, 0x4E99) /* <CJK> */
-MAP(0x4F, 0x4B, 0x4E98) /* <CJK> */
-MAP(0x4F, 0x4C, 0x9C10) /* <CJK> */
-MAP(0x4F, 0x4D, 0x8A6B) /* <CJK> */
-MAP(0x4F, 0x4E, 0x85C1) /* <CJK> */
-MAP(0x4F, 0x4F, 0x8568) /* <CJK> */
-MAP(0x4F, 0x50, 0x6900) /* <CJK> */
-MAP(0x4F, 0x51, 0x6E7E) /* <CJK> */
-MAP(0x4F, 0x52, 0x7897) /* <CJK> */
-MAP(0x4F, 0x53, 0x8155) /* <CJK> */
-MAP(0x50, 0x21, 0x5F0C) /* <CJK> */
-MAP(0x50, 0x22, 0x4E10) /* <CJK> */
-MAP(0x50, 0x23, 0x4E15) /* <CJK> */
-MAP(0x50, 0x24, 0x4E2A) /* <CJK> */
-MAP(0x50, 0x25, 0x4E31) /* <CJK> */
-MAP(0x50, 0x26, 0x4E36) /* <CJK> */
-MAP(0x50, 0x27, 0x4E3C) /* <CJK> */
-MAP(0x50, 0x28, 0x4E3F) /* <CJK> */
-MAP(0x50, 0x29, 0x4E42) /* <CJK> */
-MAP(0x50, 0x2A, 0x4E56) /* <CJK> */
-MAP(0x50, 0x2B, 0x4E58) /* <CJK> */
-MAP(0x50, 0x2C, 0x4E82) /* <CJK> */
-MAP(0x50, 0x2D, 0x4E85) /* <CJK> */
-MAP(0x50, 0x2E, 0x8C6B) /* <CJK> */
-MAP(0x50, 0x2F, 0x4E8A) /* <CJK> */
-MAP(0x50, 0x30, 0x8212) /* <CJK> */
-MAP(0x50, 0x31, 0x5F0D) /* <CJK> */
-MAP(0x50, 0x32, 0x4E8E) /* <CJK> */
-MAP(0x50, 0x33, 0x4E9E) /* <CJK> */
-MAP(0x50, 0x34, 0x4E9F) /* <CJK> */
-MAP(0x50, 0x35, 0x4EA0) /* <CJK> */
-MAP(0x50, 0x36, 0x4EA2) /* <CJK> */
-MAP(0x50, 0x37, 0x4EB0) /* <CJK> */
-MAP(0x50, 0x38, 0x4EB3) /* <CJK> */
-MAP(0x50, 0x39, 0x4EB6) /* <CJK> */
-MAP(0x50, 0x3A, 0x4ECE) /* <CJK> */
-MAP(0x50, 0x3B, 0x4ECD) /* <CJK> */
-MAP(0x50, 0x3C, 0x4EC4) /* <CJK> */
-MAP(0x50, 0x3D, 0x4EC6) /* <CJK> */
-MAP(0x50, 0x3E, 0x4EC2) /* <CJK> */
-MAP(0x50, 0x3F, 0x4ED7) /* <CJK> */
-MAP(0x50, 0x40, 0x4EDE) /* <CJK> */
-MAP(0x50, 0x41, 0x4EED) /* <CJK> */
-MAP(0x50, 0x42, 0x4EDF) /* <CJK> */
-MAP(0x50, 0x43, 0x4EF7) /* <CJK> */
-MAP(0x50, 0x44, 0x4F09) /* <CJK> */
-MAP(0x50, 0x45, 0x4F5A) /* <CJK> */
-MAP(0x50, 0x46, 0x4F30) /* <CJK> */
-MAP(0x50, 0x47, 0x4F5B) /* <CJK> */
-MAP(0x50, 0x48, 0x4F5D) /* <CJK> */
-MAP(0x50, 0x49, 0x4F57) /* <CJK> */
-MAP(0x50, 0x4A, 0x4F47) /* <CJK> */
-MAP(0x50, 0x4B, 0x4F76) /* <CJK> */
-MAP(0x50, 0x4C, 0x4F88) /* <CJK> */
-MAP(0x50, 0x4D, 0x4F8F) /* <CJK> */
-MAP(0x50, 0x4E, 0x4F98) /* <CJK> */
-MAP(0x50, 0x4F, 0x4F7B) /* <CJK> */
-MAP(0x50, 0x50, 0x4F69) /* <CJK> */
-MAP(0x50, 0x51, 0x4F70) /* <CJK> */
-MAP(0x50, 0x52, 0x4F91) /* <CJK> */
-MAP(0x50, 0x53, 0x4F6F) /* <CJK> */
-MAP(0x50, 0x54, 0x4F86) /* <CJK> */
-MAP(0x50, 0x55, 0x4F96) /* <CJK> */
-MAP(0x50, 0x56, 0x5118) /* <CJK> */
-MAP(0x50, 0x57, 0x4FD4) /* <CJK> */
-MAP(0x50, 0x58, 0x4FDF) /* <CJK> */
-MAP(0x50, 0x59, 0x4FCE) /* <CJK> */
-MAP(0x50, 0x5A, 0x4FD8) /* <CJK> */
-MAP(0x50, 0x5B, 0x4FDB) /* <CJK> */
-MAP(0x50, 0x5C, 0x4FD1) /* <CJK> */
-MAP(0x50, 0x5D, 0x4FDA) /* <CJK> */
-MAP(0x50, 0x5E, 0x4FD0) /* <CJK> */
-MAP(0x50, 0x5F, 0x4FE4) /* <CJK> */
-MAP(0x50, 0x60, 0x4FE5) /* <CJK> */
-MAP(0x50, 0x61, 0x501A) /* <CJK> */
-MAP(0x50, 0x62, 0x5028) /* <CJK> */
-MAP(0x50, 0x63, 0x5014) /* <CJK> */
-MAP(0x50, 0x64, 0x502A) /* <CJK> */
-MAP(0x50, 0x65, 0x5025) /* <CJK> */
-MAP(0x50, 0x66, 0x5005) /* <CJK> */
-MAP(0x50, 0x67, 0x4F1C) /* <CJK> */
-MAP(0x50, 0x68, 0x4FF6) /* <CJK> */
-MAP(0x50, 0x69, 0x5021) /* <CJK> */
-MAP(0x50, 0x6A, 0x5029) /* <CJK> */
-MAP(0x50, 0x6B, 0x502C) /* <CJK> */
-MAP(0x50, 0x6C, 0x4FFE) /* <CJK> */
-MAP(0x50, 0x6D, 0x4FEF) /* <CJK> */
-MAP(0x50, 0x6E, 0x5011) /* <CJK> */
-MAP(0x50, 0x6F, 0x5006) /* <CJK> */
-MAP(0x50, 0x70, 0x5043) /* <CJK> */
-MAP(0x50, 0x71, 0x5047) /* <CJK> */
-MAP(0x50, 0x72, 0x6703) /* <CJK> */
-MAP(0x50, 0x73, 0x5055) /* <CJK> */
-MAP(0x50, 0x74, 0x5050) /* <CJK> */
-MAP(0x50, 0x75, 0x5048) /* <CJK> */
-MAP(0x50, 0x76, 0x505A) /* <CJK> */
-MAP(0x50, 0x77, 0x5056) /* <CJK> */
-MAP(0x50, 0x78, 0x506C) /* <CJK> */
-MAP(0x50, 0x79, 0x5078) /* <CJK> */
-MAP(0x50, 0x7A, 0x5080) /* <CJK> */
-MAP(0x50, 0x7B, 0x509A) /* <CJK> */
-MAP(0x50, 0x7C, 0x5085) /* <CJK> */
-MAP(0x50, 0x7D, 0x50B4) /* <CJK> */
-MAP(0x50, 0x7E, 0x50B2) /* <CJK> */
-MAP(0x51, 0x21, 0x50C9) /* <CJK> */
-MAP(0x51, 0x22, 0x50CA) /* <CJK> */
-MAP(0x51, 0x23, 0x50B3) /* <CJK> */
-MAP(0x51, 0x24, 0x50C2) /* <CJK> */
-MAP(0x51, 0x25, 0x50D6) /* <CJK> */
-MAP(0x51, 0x26, 0x50DE) /* <CJK> */
-MAP(0x51, 0x27, 0x50E5) /* <CJK> */
-MAP(0x51, 0x28, 0x50ED) /* <CJK> */
-MAP(0x51, 0x29, 0x50E3) /* <CJK> */
-MAP(0x51, 0x2A, 0x50EE) /* <CJK> */
-MAP(0x51, 0x2B, 0x50F9) /* <CJK> */
-MAP(0x51, 0x2C, 0x50F5) /* <CJK> */
-MAP(0x51, 0x2D, 0x5109) /* <CJK> */
-MAP(0x51, 0x2E, 0x5101) /* <CJK> */
-MAP(0x51, 0x2F, 0x5102) /* <CJK> */
-MAP(0x51, 0x30, 0x5116) /* <CJK> */
-MAP(0x51, 0x31, 0x5115) /* <CJK> */
-MAP(0x51, 0x32, 0x5114) /* <CJK> */
-MAP(0x51, 0x33, 0x511A) /* <CJK> */
-MAP(0x51, 0x34, 0x5121) /* <CJK> */
-MAP(0x51, 0x35, 0x513A) /* <CJK> */
-MAP(0x51, 0x36, 0x5137) /* <CJK> */
-MAP(0x51, 0x37, 0x513C) /* <CJK> */
-MAP(0x51, 0x38, 0x513B) /* <CJK> */
-MAP(0x51, 0x39, 0x513F) /* <CJK> */
-MAP(0x51, 0x3A, 0x5140) /* <CJK> */
-MAP(0x51, 0x3B, 0x5152) /* <CJK> */
-MAP(0x51, 0x3C, 0x514C) /* <CJK> */
-MAP(0x51, 0x3D, 0x5154) /* <CJK> */
-MAP(0x51, 0x3E, 0x5162) /* <CJK> */
-MAP(0x51, 0x3F, 0x7AF8) /* <CJK> */
-MAP(0x51, 0x40, 0x5169) /* <CJK> */
-MAP(0x51, 0x41, 0x516A) /* <CJK> */
-MAP(0x51, 0x42, 0x516E) /* <CJK> */
-MAP(0x51, 0x43, 0x5180) /* <CJK> */
-MAP(0x51, 0x44, 0x5182) /* <CJK> */
-MAP(0x51, 0x45, 0x56D8) /* <CJK> */
-MAP(0x51, 0x46, 0x518C) /* <CJK> */
-MAP(0x51, 0x47, 0x5189) /* <CJK> */
-MAP(0x51, 0x48, 0x518F) /* <CJK> */
-MAP(0x51, 0x49, 0x5191) /* <CJK> */
-MAP(0x51, 0x4A, 0x5193) /* <CJK> */
-MAP(0x51, 0x4B, 0x5195) /* <CJK> */
-MAP(0x51, 0x4C, 0x5196) /* <CJK> */
-MAP(0x51, 0x4D, 0x51A4) /* <CJK> */
-MAP(0x51, 0x4E, 0x51A6) /* <CJK> */
-MAP(0x51, 0x4F, 0x51A2) /* <CJK> */
-MAP(0x51, 0x50, 0x51A9) /* <CJK> */
-MAP(0x51, 0x51, 0x51AA) /* <CJK> */
-MAP(0x51, 0x52, 0x51AB) /* <CJK> */
-MAP(0x51, 0x53, 0x51B3) /* <CJK> */
-MAP(0x51, 0x54, 0x51B1) /* <CJK> */
-MAP(0x51, 0x55, 0x51B2) /* <CJK> */
-MAP(0x51, 0x56, 0x51B0) /* <CJK> */
-MAP(0x51, 0x57, 0x51B5) /* <CJK> */
-MAP(0x51, 0x58, 0x51BD) /* <CJK> */
-MAP(0x51, 0x59, 0x51C5) /* <CJK> */
-MAP(0x51, 0x5A, 0x51C9) /* <CJK> */
-MAP(0x51, 0x5B, 0x51DB) /* <CJK> */
-MAP(0x51, 0x5C, 0x51E0) /* <CJK> */
-MAP(0x51, 0x5D, 0x8655) /* <CJK> */
-MAP(0x51, 0x5E, 0x51E9) /* <CJK> */
-MAP(0x51, 0x5F, 0x51ED) /* <CJK> */
-MAP(0x51, 0x60, 0x51F0) /* <CJK> */
-MAP(0x51, 0x61, 0x51F5) /* <CJK> */
-MAP(0x51, 0x62, 0x51FE) /* <CJK> */
-MAP(0x51, 0x63, 0x5204) /* <CJK> */
-MAP(0x51, 0x64, 0x520B) /* <CJK> */
-MAP(0x51, 0x65, 0x5214) /* <CJK> */
-MAP(0x51, 0x66, 0x520E) /* <CJK> */
-MAP(0x51, 0x67, 0x5227) /* <CJK> */
-MAP(0x51, 0x68, 0x522A) /* <CJK> */
-MAP(0x51, 0x69, 0x522E) /* <CJK> */
-MAP(0x51, 0x6A, 0x5233) /* <CJK> */
-MAP(0x51, 0x6B, 0x5239) /* <CJK> */
-MAP(0x51, 0x6C, 0x524F) /* <CJK> */
-MAP(0x51, 0x6D, 0x5244) /* <CJK> */
-MAP(0x51, 0x6E, 0x524B) /* <CJK> */
-MAP(0x51, 0x6F, 0x524C) /* <CJK> */
-MAP(0x51, 0x70, 0x525E) /* <CJK> */
-MAP(0x51, 0x71, 0x5254) /* <CJK> */
-MAP(0x51, 0x72, 0x526A) /* <CJK> */
-MAP(0x51, 0x73, 0x5274) /* <CJK> */
-MAP(0x51, 0x74, 0x5269) /* <CJK> */
-MAP(0x51, 0x75, 0x5273) /* <CJK> */
-MAP(0x51, 0x76, 0x527F) /* <CJK> */
-MAP(0x51, 0x77, 0x527D) /* <CJK> */
-MAP(0x51, 0x78, 0x528D) /* <CJK> */
-MAP(0x51, 0x79, 0x5294) /* <CJK> */
-MAP(0x51, 0x7A, 0x5292) /* <CJK> */
-MAP(0x51, 0x7B, 0x5271) /* <CJK> */
-MAP(0x51, 0x7C, 0x5288) /* <CJK> */
-MAP(0x51, 0x7D, 0x5291) /* <CJK> */
-MAP(0x51, 0x7E, 0x8FA8) /* <CJK> */
-MAP(0x52, 0x21, 0x8FA7) /* <CJK> */
-MAP(0x52, 0x22, 0x52AC) /* <CJK> */
-MAP(0x52, 0x23, 0x52AD) /* <CJK> */
-MAP(0x52, 0x24, 0x52BC) /* <CJK> */
-MAP(0x52, 0x25, 0x52B5) /* <CJK> */
-MAP(0x52, 0x26, 0x52C1) /* <CJK> */
-MAP(0x52, 0x27, 0x52CD) /* <CJK> */
-MAP(0x52, 0x28, 0x52D7) /* <CJK> */
-MAP(0x52, 0x29, 0x52DE) /* <CJK> */
-MAP(0x52, 0x2A, 0x52E3) /* <CJK> */
-MAP(0x52, 0x2B, 0x52E6) /* <CJK> */
-MAP(0x52, 0x2C, 0x98ED) /* <CJK> */
-MAP(0x52, 0x2D, 0x52E0) /* <CJK> */
-MAP(0x52, 0x2E, 0x52F3) /* <CJK> */
-MAP(0x52, 0x2F, 0x52F5) /* <CJK> */
-MAP(0x52, 0x30, 0x52F8) /* <CJK> */
-MAP(0x52, 0x31, 0x52F9) /* <CJK> */
-MAP(0x52, 0x32, 0x5306) /* <CJK> */
-MAP(0x52, 0x33, 0x5308) /* <CJK> */
-MAP(0x52, 0x34, 0x7538) /* <CJK> */
-MAP(0x52, 0x35, 0x530D) /* <CJK> */
-MAP(0x52, 0x36, 0x5310) /* <CJK> */
-MAP(0x52, 0x37, 0x530F) /* <CJK> */
-MAP(0x52, 0x38, 0x5315) /* <CJK> */
-MAP(0x52, 0x39, 0x531A) /* <CJK> */
-MAP(0x52, 0x3A, 0x5323) /* <CJK> */
-MAP(0x52, 0x3B, 0x532F) /* <CJK> */
-MAP(0x52, 0x3C, 0x5331) /* <CJK> */
-MAP(0x52, 0x3D, 0x5333) /* <CJK> */
-MAP(0x52, 0x3E, 0x5338) /* <CJK> */
-MAP(0x52, 0x3F, 0x5340) /* <CJK> */
-MAP(0x52, 0x40, 0x5346) /* <CJK> */
-MAP(0x52, 0x41, 0x5345) /* <CJK> */
-MAP(0x52, 0x42, 0x4E17) /* <CJK> */
-MAP(0x52, 0x43, 0x5349) /* <CJK> */
-MAP(0x52, 0x44, 0x534D) /* <CJK> */
-MAP(0x52, 0x45, 0x51D6) /* <CJK> */
-MAP(0x52, 0x46, 0x535E) /* <CJK> */
-MAP(0x52, 0x47, 0x5369) /* <CJK> */
-MAP(0x52, 0x48, 0x536E) /* <CJK> */
-MAP(0x52, 0x49, 0x5918) /* <CJK> */
-MAP(0x52, 0x4A, 0x537B) /* <CJK> */
-MAP(0x52, 0x4B, 0x5377) /* <CJK> */
-MAP(0x52, 0x4C, 0x5382) /* <CJK> */
-MAP(0x52, 0x4D, 0x5396) /* <CJK> */
-MAP(0x52, 0x4E, 0x53A0) /* <CJK> */
-MAP(0x52, 0x4F, 0x53A6) /* <CJK> */
-MAP(0x52, 0x50, 0x53A5) /* <CJK> */
-MAP(0x52, 0x51, 0x53AE) /* <CJK> */
-MAP(0x52, 0x52, 0x53B0) /* <CJK> */
-MAP(0x52, 0x53, 0x53B6) /* <CJK> */
-MAP(0x52, 0x54, 0x53C3) /* <CJK> */
-MAP(0x52, 0x55, 0x7C12) /* <CJK> */
-MAP(0x52, 0x56, 0x96D9) /* <CJK> */
-MAP(0x52, 0x57, 0x53DF) /* <CJK> */
-MAP(0x52, 0x58, 0x66FC) /* <CJK> */
-MAP(0x52, 0x59, 0x71EE) /* <CJK> */
-MAP(0x52, 0x5A, 0x53EE) /* <CJK> */
-MAP(0x52, 0x5B, 0x53E8) /* <CJK> */
-MAP(0x52, 0x5C, 0x53ED) /* <CJK> */
-MAP(0x52, 0x5D, 0x53FA) /* <CJK> */
-MAP(0x52, 0x5E, 0x5401) /* <CJK> */
-MAP(0x52, 0x5F, 0x543D) /* <CJK> */
-MAP(0x52, 0x60, 0x5440) /* <CJK> */
-MAP(0x52, 0x61, 0x542C) /* <CJK> */
-MAP(0x52, 0x62, 0x542D) /* <CJK> */
-MAP(0x52, 0x63, 0x543C) /* <CJK> */
-MAP(0x52, 0x64, 0x542E) /* <CJK> */
-MAP(0x52, 0x65, 0x5436) /* <CJK> */
-MAP(0x52, 0x66, 0x5429) /* <CJK> */
-MAP(0x52, 0x67, 0x541D) /* <CJK> */
-MAP(0x52, 0x68, 0x544E) /* <CJK> */
-MAP(0x52, 0x69, 0x548F) /* <CJK> */
-MAP(0x52, 0x6A, 0x5475) /* <CJK> */
-MAP(0x52, 0x6B, 0x548E) /* <CJK> */
-MAP(0x52, 0x6C, 0x545F) /* <CJK> */
-MAP(0x52, 0x6D, 0x5471) /* <CJK> */
-MAP(0x52, 0x6E, 0x5477) /* <CJK> */
-MAP(0x52, 0x6F, 0x5470) /* <CJK> */
-MAP(0x52, 0x70, 0x5492) /* <CJK> */
-MAP(0x52, 0x71, 0x547B) /* <CJK> */
-MAP(0x52, 0x72, 0x5480) /* <CJK> */
-MAP(0x52, 0x73, 0x5476) /* <CJK> */
-MAP(0x52, 0x74, 0x5484) /* <CJK> */
-MAP(0x52, 0x75, 0x5490) /* <CJK> */
-MAP(0x52, 0x76, 0x5486) /* <CJK> */
-MAP(0x52, 0x77, 0x54C7) /* <CJK> */
-MAP(0x52, 0x78, 0x54A2) /* <CJK> */
-MAP(0x52, 0x79, 0x54B8) /* <CJK> */
-MAP(0x52, 0x7A, 0x54A5) /* <CJK> */
-MAP(0x52, 0x7B, 0x54AC) /* <CJK> */
-MAP(0x52, 0x7C, 0x54C4) /* <CJK> */
-MAP(0x52, 0x7D, 0x54C8) /* <CJK> */
-MAP(0x52, 0x7E, 0x54A8) /* <CJK> */
-MAP(0x53, 0x21, 0x54AB) /* <CJK> */
-MAP(0x53, 0x22, 0x54C2) /* <CJK> */
-MAP(0x53, 0x23, 0x54A4) /* <CJK> */
-MAP(0x53, 0x24, 0x54BE) /* <CJK> */
-MAP(0x53, 0x25, 0x54BC) /* <CJK> */
-MAP(0x53, 0x26, 0x54D8) /* <CJK> */
-MAP(0x53, 0x27, 0x54E5) /* <CJK> */
-MAP(0x53, 0x28, 0x54E6) /* <CJK> */
-MAP(0x53, 0x29, 0x550F) /* <CJK> */
-MAP(0x53, 0x2A, 0x5514) /* <CJK> */
-MAP(0x53, 0x2B, 0x54FD) /* <CJK> */
-MAP(0x53, 0x2C, 0x54EE) /* <CJK> */
-MAP(0x53, 0x2D, 0x54ED) /* <CJK> */
-MAP(0x53, 0x2E, 0x54FA) /* <CJK> */
-MAP(0x53, 0x2F, 0x54E2) /* <CJK> */
-MAP(0x53, 0x30, 0x5539) /* <CJK> */
-MAP(0x53, 0x31, 0x5540) /* <CJK> */
-MAP(0x53, 0x32, 0x5563) /* <CJK> */
-MAP(0x53, 0x33, 0x554C) /* <CJK> */
-MAP(0x53, 0x34, 0x552E) /* <CJK> */
-MAP(0x53, 0x35, 0x555C) /* <CJK> */
-MAP(0x53, 0x36, 0x5545) /* <CJK> */
-MAP(0x53, 0x37, 0x5556) /* <CJK> */
-MAP(0x53, 0x38, 0x5557) /* <CJK> */
-MAP(0x53, 0x39, 0x5538) /* <CJK> */
-MAP(0x53, 0x3A, 0x5533) /* <CJK> */
-MAP(0x53, 0x3B, 0x555D) /* <CJK> */
-MAP(0x53, 0x3C, 0x5599) /* <CJK> */
-MAP(0x53, 0x3D, 0x5580) /* <CJK> */
-MAP(0x53, 0x3E, 0x54AF) /* <CJK> */
-MAP(0x53, 0x3F, 0x558A) /* <CJK> */
-MAP(0x53, 0x40, 0x559F) /* <CJK> */
-MAP(0x53, 0x41, 0x557B) /* <CJK> */
-MAP(0x53, 0x42, 0x557E) /* <CJK> */
-MAP(0x53, 0x43, 0x5598) /* <CJK> */
-MAP(0x53, 0x44, 0x559E) /* <CJK> */
-MAP(0x53, 0x45, 0x55AE) /* <CJK> */
-MAP(0x53, 0x46, 0x557C) /* <CJK> */
-MAP(0x53, 0x47, 0x5583) /* <CJK> */
-MAP(0x53, 0x48, 0x55A9) /* <CJK> */
-MAP(0x53, 0x49, 0x5587) /* <CJK> */
-MAP(0x53, 0x4A, 0x55A8) /* <CJK> */
-MAP(0x53, 0x4B, 0x55DA) /* <CJK> */
-MAP(0x53, 0x4C, 0x55C5) /* <CJK> */
-MAP(0x53, 0x4D, 0x55DF) /* <CJK> */
-MAP(0x53, 0x4E, 0x55C4) /* <CJK> */
-MAP(0x53, 0x4F, 0x55DC) /* <CJK> */
-MAP(0x53, 0x50, 0x55E4) /* <CJK> */
-MAP(0x53, 0x51, 0x55D4) /* <CJK> */
-MAP(0x53, 0x52, 0x5614) /* <CJK> */
-MAP(0x53, 0x53, 0x55F7) /* <CJK> */
-MAP(0x53, 0x54, 0x5616) /* <CJK> */
-MAP(0x53, 0x55, 0x55FE) /* <CJK> */
-MAP(0x53, 0x56, 0x55FD) /* <CJK> */
-MAP(0x53, 0x57, 0x561B) /* <CJK> */
-MAP(0x53, 0x58, 0x55F9) /* <CJK> */
-MAP(0x53, 0x59, 0x564E) /* <CJK> */
-MAP(0x53, 0x5A, 0x5650) /* <CJK> */
-MAP(0x53, 0x5B, 0x71DF) /* <CJK> */
-MAP(0x53, 0x5C, 0x5634) /* <CJK> */
-MAP(0x53, 0x5D, 0x5636) /* <CJK> */
-MAP(0x53, 0x5E, 0x5632) /* <CJK> */
-MAP(0x53, 0x5F, 0x5638) /* <CJK> */
-MAP(0x53, 0x60, 0x566B) /* <CJK> */
-MAP(0x53, 0x61, 0x5664) /* <CJK> */
-MAP(0x53, 0x62, 0x562F) /* <CJK> */
-MAP(0x53, 0x63, 0x566C) /* <CJK> */
-MAP(0x53, 0x64, 0x566A) /* <CJK> */
-MAP(0x53, 0x65, 0x5686) /* <CJK> */
-MAP(0x53, 0x66, 0x5680) /* <CJK> */
-MAP(0x53, 0x67, 0x568A) /* <CJK> */
-MAP(0x53, 0x68, 0x56A0) /* <CJK> */
-MAP(0x53, 0x69, 0x5694) /* <CJK> */
-MAP(0x53, 0x6A, 0x568F) /* <CJK> */
-MAP(0x53, 0x6B, 0x56A5) /* <CJK> */
-MAP(0x53, 0x6C, 0x56AE) /* <CJK> */
-MAP(0x53, 0x6D, 0x56B6) /* <CJK> */
-MAP(0x53, 0x6E, 0x56B4) /* <CJK> */
-MAP(0x53, 0x6F, 0x56C2) /* <CJK> */
-MAP(0x53, 0x70, 0x56BC) /* <CJK> */
-MAP(0x53, 0x71, 0x56C1) /* <CJK> */
-MAP(0x53, 0x72, 0x56C3) /* <CJK> */
-MAP(0x53, 0x73, 0x56C0) /* <CJK> */
-MAP(0x53, 0x74, 0x56C8) /* <CJK> */
-MAP(0x53, 0x75, 0x56CE) /* <CJK> */
-MAP(0x53, 0x76, 0x56D1) /* <CJK> */
-MAP(0x53, 0x77, 0x56D3) /* <CJK> */
-MAP(0x53, 0x78, 0x56D7) /* <CJK> */
-MAP(0x53, 0x79, 0x56EE) /* <CJK> */
-MAP(0x53, 0x7A, 0x56F9) /* <CJK> */
-MAP(0x53, 0x7B, 0x5700) /* <CJK> */
-MAP(0x53, 0x7C, 0x56FF) /* <CJK> */
-MAP(0x53, 0x7D, 0x5704) /* <CJK> */
-MAP(0x53, 0x7E, 0x5709) /* <CJK> */
-MAP(0x54, 0x21, 0x5708) /* <CJK> */
-MAP(0x54, 0x22, 0x570B) /* <CJK> */
-MAP(0x54, 0x23, 0x570D) /* <CJK> */
-MAP(0x54, 0x24, 0x5713) /* <CJK> */
-MAP(0x54, 0x25, 0x5718) /* <CJK> */
-MAP(0x54, 0x26, 0x5716) /* <CJK> */
-MAP(0x54, 0x27, 0x55C7) /* <CJK> */
-MAP(0x54, 0x28, 0x571C) /* <CJK> */
-MAP(0x54, 0x29, 0x5726) /* <CJK> */
-MAP(0x54, 0x2A, 0x5737) /* <CJK> */
-MAP(0x54, 0x2B, 0x5738) /* <CJK> */
-MAP(0x54, 0x2C, 0x574E) /* <CJK> */
-MAP(0x54, 0x2D, 0x573B) /* <CJK> */
-MAP(0x54, 0x2E, 0x5740) /* <CJK> */
-MAP(0x54, 0x2F, 0x574F) /* <CJK> */
-MAP(0x54, 0x30, 0x5769) /* <CJK> */
-MAP(0x54, 0x31, 0x57C0) /* <CJK> */
-MAP(0x54, 0x32, 0x5788) /* <CJK> */
-MAP(0x54, 0x33, 0x5761) /* <CJK> */
-MAP(0x54, 0x34, 0x577F) /* <CJK> */
-MAP(0x54, 0x35, 0x5789) /* <CJK> */
-MAP(0x54, 0x36, 0x5793) /* <CJK> */
-MAP(0x54, 0x37, 0x57A0) /* <CJK> */
-MAP(0x54, 0x38, 0x57B3) /* <CJK> */
-MAP(0x54, 0x39, 0x57A4) /* <CJK> */
-MAP(0x54, 0x3A, 0x57AA) /* <CJK> */
-MAP(0x54, 0x3B, 0x57B0) /* <CJK> */
-MAP(0x54, 0x3C, 0x57C3) /* <CJK> */
-MAP(0x54, 0x3D, 0x57C6) /* <CJK> */
-MAP(0x54, 0x3E, 0x57D4) /* <CJK> */
-MAP(0x54, 0x3F, 0x57D2) /* <CJK> */
-MAP(0x54, 0x40, 0x57D3) /* <CJK> */
-MAP(0x54, 0x41, 0x580A) /* <CJK> */
-MAP(0x54, 0x42, 0x57D6) /* <CJK> */
-MAP(0x54, 0x43, 0x57E3) /* <CJK> */
-MAP(0x54, 0x44, 0x580B) /* <CJK> */
-MAP(0x54, 0x45, 0x5819) /* <CJK> */
-MAP(0x54, 0x46, 0x581D) /* <CJK> */
-MAP(0x54, 0x47, 0x5872) /* <CJK> */
-MAP(0x54, 0x48, 0x5821) /* <CJK> */
-MAP(0x54, 0x49, 0x5862) /* <CJK> */
-MAP(0x54, 0x4A, 0x584B) /* <CJK> */
-MAP(0x54, 0x4B, 0x5870) /* <CJK> */
-MAP(0x54, 0x4C, 0x6BC0) /* <CJK> */
-MAP(0x54, 0x4D, 0x5852) /* <CJK> */
-MAP(0x54, 0x4E, 0x583D) /* <CJK> */
-MAP(0x54, 0x4F, 0x5879) /* <CJK> */
-MAP(0x54, 0x50, 0x5885) /* <CJK> */
-MAP(0x54, 0x51, 0x58B9) /* <CJK> */
-MAP(0x54, 0x52, 0x589F) /* <CJK> */
-MAP(0x54, 0x53, 0x58AB) /* <CJK> */
-MAP(0x54, 0x54, 0x58BA) /* <CJK> */
-MAP(0x54, 0x55, 0x58DE) /* <CJK> */
-MAP(0x54, 0x56, 0x58BB) /* <CJK> */
-MAP(0x54, 0x57, 0x58B8) /* <CJK> */
-MAP(0x54, 0x58, 0x58AE) /* <CJK> */
-MAP(0x54, 0x59, 0x58C5) /* <CJK> */
-MAP(0x54, 0x5A, 0x58D3) /* <CJK> */
-MAP(0x54, 0x5B, 0x58D1) /* <CJK> */
-MAP(0x54, 0x5C, 0x58D7) /* <CJK> */
-MAP(0x54, 0x5D, 0x58D9) /* <CJK> */
-MAP(0x54, 0x5E, 0x58D8) /* <CJK> */
-MAP(0x54, 0x5F, 0x58E5) /* <CJK> */
-MAP(0x54, 0x60, 0x58DC) /* <CJK> */
-MAP(0x54, 0x61, 0x58E4) /* <CJK> */
-MAP(0x54, 0x62, 0x58DF) /* <CJK> */
-MAP(0x54, 0x63, 0x58EF) /* <CJK> */
-MAP(0x54, 0x64, 0x58FA) /* <CJK> */
-MAP(0x54, 0x65, 0x58F9) /* <CJK> */
-MAP(0x54, 0x66, 0x58FB) /* <CJK> */
-MAP(0x54, 0x67, 0x58FC) /* <CJK> */
-MAP(0x54, 0x68, 0x58FD) /* <CJK> */
-MAP(0x54, 0x69, 0x5902) /* <CJK> */
-MAP(0x54, 0x6A, 0x590A) /* <CJK> */
-MAP(0x54, 0x6B, 0x5910) /* <CJK> */
-MAP(0x54, 0x6C, 0x591B) /* <CJK> */
-MAP(0x54, 0x6D, 0x68A6) /* <CJK> */
-MAP(0x54, 0x6E, 0x5925) /* <CJK> */
-MAP(0x54, 0x6F, 0x592C) /* <CJK> */
-MAP(0x54, 0x70, 0x592D) /* <CJK> */
-MAP(0x54, 0x71, 0x5932) /* <CJK> */
-MAP(0x54, 0x72, 0x5938) /* <CJK> */
-MAP(0x54, 0x73, 0x593E) /* <CJK> */
-MAP(0x54, 0x74, 0x7AD2) /* <CJK> */
-MAP(0x54, 0x75, 0x5955) /* <CJK> */
-MAP(0x54, 0x76, 0x5950) /* <CJK> */
-MAP(0x54, 0x77, 0x594E) /* <CJK> */
-MAP(0x54, 0x78, 0x595A) /* <CJK> */
-MAP(0x54, 0x79, 0x5958) /* <CJK> */
-MAP(0x54, 0x7A, 0x5962) /* <CJK> */
-MAP(0x54, 0x7B, 0x5960) /* <CJK> */
-MAP(0x54, 0x7C, 0x5967) /* <CJK> */
-MAP(0x54, 0x7D, 0x596C) /* <CJK> */
-MAP(0x54, 0x7E, 0x5969) /* <CJK> */
-MAP(0x55, 0x21, 0x5978) /* <CJK> */
-MAP(0x55, 0x22, 0x5981) /* <CJK> */
-MAP(0x55, 0x23, 0x599D) /* <CJK> */
-MAP(0x55, 0x24, 0x4F5E) /* <CJK> */
-MAP(0x55, 0x25, 0x4FAB) /* <CJK> */
-MAP(0x55, 0x26, 0x59A3) /* <CJK> */
-MAP(0x55, 0x27, 0x59B2) /* <CJK> */
-MAP(0x55, 0x28, 0x59C6) /* <CJK> */
-MAP(0x55, 0x29, 0x59E8) /* <CJK> */
-MAP(0x55, 0x2A, 0x59DC) /* <CJK> */
-MAP(0x55, 0x2B, 0x598D) /* <CJK> */
-MAP(0x55, 0x2C, 0x59D9) /* <CJK> */
-MAP(0x55, 0x2D, 0x59DA) /* <CJK> */
-MAP(0x55, 0x2E, 0x5A25) /* <CJK> */
-MAP(0x55, 0x2F, 0x5A1F) /* <CJK> */
-MAP(0x55, 0x30, 0x5A11) /* <CJK> */
-MAP(0x55, 0x31, 0x5A1C) /* <CJK> */
-MAP(0x55, 0x32, 0x5A09) /* <CJK> */
-MAP(0x55, 0x33, 0x5A1A) /* <CJK> */
-MAP(0x55, 0x34, 0x5A40) /* <CJK> */
-MAP(0x55, 0x35, 0x5A6C) /* <CJK> */
-MAP(0x55, 0x36, 0x5A49) /* <CJK> */
-MAP(0x55, 0x37, 0x5A35) /* <CJK> */
-MAP(0x55, 0x38, 0x5A36) /* <CJK> */
-MAP(0x55, 0x39, 0x5A62) /* <CJK> */
-MAP(0x55, 0x3A, 0x5A6A) /* <CJK> */
-MAP(0x55, 0x3B, 0x5A9A) /* <CJK> */
-MAP(0x55, 0x3C, 0x5ABC) /* <CJK> */
-MAP(0x55, 0x3D, 0x5ABE) /* <CJK> */
-MAP(0x55, 0x3E, 0x5ACB) /* <CJK> */
-MAP(0x55, 0x3F, 0x5AC2) /* <CJK> */
-MAP(0x55, 0x40, 0x5ABD) /* <CJK> */
-MAP(0x55, 0x41, 0x5AE3) /* <CJK> */
-MAP(0x55, 0x42, 0x5AD7) /* <CJK> */
-MAP(0x55, 0x43, 0x5AE6) /* <CJK> */
-MAP(0x55, 0x44, 0x5AE9) /* <CJK> */
-MAP(0x55, 0x45, 0x5AD6) /* <CJK> */
-MAP(0x55, 0x46, 0x5AFA) /* <CJK> */
-MAP(0x55, 0x47, 0x5AFB) /* <CJK> */
-MAP(0x55, 0x48, 0x5B0C) /* <CJK> */
-MAP(0x55, 0x49, 0x5B0B) /* <CJK> */
-MAP(0x55, 0x4A, 0x5B16) /* <CJK> */
-MAP(0x55, 0x4B, 0x5B32) /* <CJK> */
-MAP(0x55, 0x4C, 0x5AD0) /* <CJK> */
-MAP(0x55, 0x4D, 0x5B2A) /* <CJK> */
-MAP(0x55, 0x4E, 0x5B36) /* <CJK> */
-MAP(0x55, 0x4F, 0x5B3E) /* <CJK> */
-MAP(0x55, 0x50, 0x5B43) /* <CJK> */
-MAP(0x55, 0x51, 0x5B45) /* <CJK> */
-MAP(0x55, 0x52, 0x5B40) /* <CJK> */
-MAP(0x55, 0x53, 0x5B51) /* <CJK> */
-MAP(0x55, 0x54, 0x5B55) /* <CJK> */
-MAP(0x55, 0x55, 0x5B5A) /* <CJK> */
-MAP(0x55, 0x56, 0x5B5B) /* <CJK> */
-MAP(0x55, 0x57, 0x5B65) /* <CJK> */
-MAP(0x55, 0x58, 0x5B69) /* <CJK> */
-MAP(0x55, 0x59, 0x5B70) /* <CJK> */
-MAP(0x55, 0x5A, 0x5B73) /* <CJK> */
-MAP(0x55, 0x5B, 0x5B75) /* <CJK> */
-MAP(0x55, 0x5C, 0x5B78) /* <CJK> */
-MAP(0x55, 0x5D, 0x6588) /* <CJK> */
-MAP(0x55, 0x5E, 0x5B7A) /* <CJK> */
-MAP(0x55, 0x5F, 0x5B80) /* <CJK> */
-MAP(0x55, 0x60, 0x5B83) /* <CJK> */
-MAP(0x55, 0x61, 0x5BA6) /* <CJK> */
-MAP(0x55, 0x62, 0x5BB8) /* <CJK> */
-MAP(0x55, 0x63, 0x5BC3) /* <CJK> */
-MAP(0x55, 0x64, 0x5BC7) /* <CJK> */
-MAP(0x55, 0x65, 0x5BC9) /* <CJK> */
-MAP(0x55, 0x66, 0x5BD4) /* <CJK> */
-MAP(0x55, 0x67, 0x5BD0) /* <CJK> */
-MAP(0x55, 0x68, 0x5BE4) /* <CJK> */
-MAP(0x55, 0x69, 0x5BE6) /* <CJK> */
-MAP(0x55, 0x6A, 0x5BE2) /* <CJK> */
-MAP(0x55, 0x6B, 0x5BDE) /* <CJK> */
-MAP(0x55, 0x6C, 0x5BE5) /* <CJK> */
-MAP(0x55, 0x6D, 0x5BEB) /* <CJK> */
-MAP(0x55, 0x6E, 0x5BF0) /* <CJK> */
-MAP(0x55, 0x6F, 0x5BF6) /* <CJK> */
-MAP(0x55, 0x70, 0x5BF3) /* <CJK> */
-MAP(0x55, 0x71, 0x5C05) /* <CJK> */
-MAP(0x55, 0x72, 0x5C07) /* <CJK> */
-MAP(0x55, 0x73, 0x5C08) /* <CJK> */
-MAP(0x55, 0x74, 0x5C0D) /* <CJK> */
-MAP(0x55, 0x75, 0x5C13) /* <CJK> */
-MAP(0x55, 0x76, 0x5C20) /* <CJK> */
-MAP(0x55, 0x77, 0x5C22) /* <CJK> */
-MAP(0x55, 0x78, 0x5C28) /* <CJK> */
-MAP(0x55, 0x79, 0x5C38) /* <CJK> */
-MAP(0x55, 0x7A, 0x5C39) /* <CJK> */
-MAP(0x55, 0x7B, 0x5C41) /* <CJK> */
-MAP(0x55, 0x7C, 0x5C46) /* <CJK> */
-MAP(0x55, 0x7D, 0x5C4E) /* <CJK> */
-MAP(0x55, 0x7E, 0x5C53) /* <CJK> */
-MAP(0x56, 0x21, 0x5C50) /* <CJK> */
-MAP(0x56, 0x22, 0x5C4F) /* <CJK> */
-MAP(0x56, 0x23, 0x5B71) /* <CJK> */
-MAP(0x56, 0x24, 0x5C6C) /* <CJK> */
-MAP(0x56, 0x25, 0x5C6E) /* <CJK> */
-MAP(0x56, 0x26, 0x4E62) /* <CJK> */
-MAP(0x56, 0x27, 0x5C76) /* <CJK> */
-MAP(0x56, 0x28, 0x5C79) /* <CJK> */
-MAP(0x56, 0x29, 0x5C8C) /* <CJK> */
-MAP(0x56, 0x2A, 0x5C91) /* <CJK> */
-MAP(0x56, 0x2B, 0x5C94) /* <CJK> */
-MAP(0x56, 0x2C, 0x599B) /* <CJK> */
-MAP(0x56, 0x2D, 0x5CAB) /* <CJK> */
-MAP(0x56, 0x2E, 0x5CBB) /* <CJK> */
-MAP(0x56, 0x2F, 0x5CB6) /* <CJK> */
-MAP(0x56, 0x30, 0x5CBC) /* <CJK> */
-MAP(0x56, 0x31, 0x5CB7) /* <CJK> */
-MAP(0x56, 0x32, 0x5CC5) /* <CJK> */
-MAP(0x56, 0x33, 0x5CBE) /* <CJK> */
-MAP(0x56, 0x34, 0x5CC7) /* <CJK> */
-MAP(0x56, 0x35, 0x5CD9) /* <CJK> */
-MAP(0x56, 0x36, 0x5CE9) /* <CJK> */
-MAP(0x56, 0x37, 0x5CFD) /* <CJK> */
-MAP(0x56, 0x38, 0x5CFA) /* <CJK> */
-MAP(0x56, 0x39, 0x5CED) /* <CJK> */
-MAP(0x56, 0x3A, 0x5D8C) /* <CJK> */
-MAP(0x56, 0x3B, 0x5CEA) /* <CJK> */
-MAP(0x56, 0x3C, 0x5D0B) /* <CJK> */
-MAP(0x56, 0x3D, 0x5D15) /* <CJK> */
-MAP(0x56, 0x3E, 0x5D17) /* <CJK> */
-MAP(0x56, 0x3F, 0x5D5C) /* <CJK> */
-MAP(0x56, 0x40, 0x5D1F) /* <CJK> */
-MAP(0x56, 0x41, 0x5D1B) /* <CJK> */
-MAP(0x56, 0x42, 0x5D11) /* <CJK> */
-MAP(0x56, 0x43, 0x5D14) /* <CJK> */
-MAP(0x56, 0x44, 0x5D22) /* <CJK> */
-MAP(0x56, 0x45, 0x5D1A) /* <CJK> */
-MAP(0x56, 0x46, 0x5D19) /* <CJK> */
-MAP(0x56, 0x47, 0x5D18) /* <CJK> */
-MAP(0x56, 0x48, 0x5D4C) /* <CJK> */
-MAP(0x56, 0x49, 0x5D52) /* <CJK> */
-MAP(0x56, 0x4A, 0x5D4E) /* <CJK> */
-MAP(0x56, 0x4B, 0x5D4B) /* <CJK> */
-MAP(0x56, 0x4C, 0x5D6C) /* <CJK> */
-MAP(0x56, 0x4D, 0x5D73) /* <CJK> */
-MAP(0x56, 0x4E, 0x5D76) /* <CJK> */
-MAP(0x56, 0x4F, 0x5D87) /* <CJK> */
-MAP(0x56, 0x50, 0x5D84) /* <CJK> */
-MAP(0x56, 0x51, 0x5D82) /* <CJK> */
-MAP(0x56, 0x52, 0x5DA2) /* <CJK> */
-MAP(0x56, 0x53, 0x5D9D) /* <CJK> */
-MAP(0x56, 0x54, 0x5DAC) /* <CJK> */
-MAP(0x56, 0x55, 0x5DAE) /* <CJK> */
-MAP(0x56, 0x56, 0x5DBD) /* <CJK> */
-MAP(0x56, 0x57, 0x5D90) /* <CJK> */
-MAP(0x56, 0x58, 0x5DB7) /* <CJK> */
-MAP(0x56, 0x59, 0x5DBC) /* <CJK> */
-MAP(0x56, 0x5A, 0x5DC9) /* <CJK> */
-MAP(0x56, 0x5B, 0x5DCD) /* <CJK> */
-MAP(0x56, 0x5C, 0x5DD3) /* <CJK> */
-MAP(0x56, 0x5D, 0x5DD2) /* <CJK> */
-MAP(0x56, 0x5E, 0x5DD6) /* <CJK> */
-MAP(0x56, 0x5F, 0x5DDB) /* <CJK> */
-MAP(0x56, 0x60, 0x5DEB) /* <CJK> */
-MAP(0x56, 0x61, 0x5DF2) /* <CJK> */
-MAP(0x56, 0x62, 0x5DF5) /* <CJK> */
-MAP(0x56, 0x63, 0x5E0B) /* <CJK> */
-MAP(0x56, 0x64, 0x5E1A) /* <CJK> */
-MAP(0x56, 0x65, 0x5E19) /* <CJK> */
-MAP(0x56, 0x66, 0x5E11) /* <CJK> */
-MAP(0x56, 0x67, 0x5E1B) /* <CJK> */
-MAP(0x56, 0x68, 0x5E36) /* <CJK> */
-MAP(0x56, 0x69, 0x5E37) /* <CJK> */
-MAP(0x56, 0x6A, 0x5E44) /* <CJK> */
-MAP(0x56, 0x6B, 0x5E43) /* <CJK> */
-MAP(0x56, 0x6C, 0x5E40) /* <CJK> */
-MAP(0x56, 0x6D, 0x5E4E) /* <CJK> */
-MAP(0x56, 0x6E, 0x5E57) /* <CJK> */
-MAP(0x56, 0x6F, 0x5E54) /* <CJK> */
-MAP(0x56, 0x70, 0x5E5F) /* <CJK> */
-MAP(0x56, 0x71, 0x5E62) /* <CJK> */
-MAP(0x56, 0x72, 0x5E64) /* <CJK> */
-MAP(0x56, 0x73, 0x5E47) /* <CJK> */
-MAP(0x56, 0x74, 0x5E75) /* <CJK> */
-MAP(0x56, 0x75, 0x5E76) /* <CJK> */
-MAP(0x56, 0x76, 0x5E7A) /* <CJK> */
-MAP(0x56, 0x77, 0x9EBC) /* <CJK> */
-MAP(0x56, 0x78, 0x5E7F) /* <CJK> */
-MAP(0x56, 0x79, 0x5EA0) /* <CJK> */
-MAP(0x56, 0x7A, 0x5EC1) /* <CJK> */
-MAP(0x56, 0x7B, 0x5EC2) /* <CJK> */
-MAP(0x56, 0x7C, 0x5EC8) /* <CJK> */
-MAP(0x56, 0x7D, 0x5ED0) /* <CJK> */
-MAP(0x56, 0x7E, 0x5ECF) /* <CJK> */
-MAP(0x57, 0x21, 0x5ED6) /* <CJK> */
-MAP(0x57, 0x22, 0x5EE3) /* <CJK> */
-MAP(0x57, 0x23, 0x5EDD) /* <CJK> */
-MAP(0x57, 0x24, 0x5EDA) /* <CJK> */
-MAP(0x57, 0x25, 0x5EDB) /* <CJK> */
-MAP(0x57, 0x26, 0x5EE2) /* <CJK> */
-MAP(0x57, 0x27, 0x5EE1) /* <CJK> */
-MAP(0x57, 0x28, 0x5EE8) /* <CJK> */
-MAP(0x57, 0x29, 0x5EE9) /* <CJK> */
-MAP(0x57, 0x2A, 0x5EEC) /* <CJK> */
-MAP(0x57, 0x2B, 0x5EF1) /* <CJK> */
-MAP(0x57, 0x2C, 0x5EF3) /* <CJK> */
-MAP(0x57, 0x2D, 0x5EF0) /* <CJK> */
-MAP(0x57, 0x2E, 0x5EF4) /* <CJK> */
-MAP(0x57, 0x2F, 0x5EF8) /* <CJK> */
-MAP(0x57, 0x30, 0x5EFE) /* <CJK> */
-MAP(0x57, 0x31, 0x5F03) /* <CJK> */
-MAP(0x57, 0x32, 0x5F09) /* <CJK> */
-MAP(0x57, 0x33, 0x5F5D) /* <CJK> */
-MAP(0x57, 0x34, 0x5F5C) /* <CJK> */
-MAP(0x57, 0x35, 0x5F0B) /* <CJK> */
-MAP(0x57, 0x36, 0x5F11) /* <CJK> */
-MAP(0x57, 0x37, 0x5F16) /* <CJK> */
-MAP(0x57, 0x38, 0x5F29) /* <CJK> */
-MAP(0x57, 0x39, 0x5F2D) /* <CJK> */
-MAP(0x57, 0x3A, 0x5F38) /* <CJK> */
-MAP(0x57, 0x3B, 0x5F41) /* <CJK> */
-MAP(0x57, 0x3C, 0x5F48) /* <CJK> */
-MAP(0x57, 0x3D, 0x5F4C) /* <CJK> */
-MAP(0x57, 0x3E, 0x5F4E) /* <CJK> */
-MAP(0x57, 0x3F, 0x5F2F) /* <CJK> */
-MAP(0x57, 0x40, 0x5F51) /* <CJK> */
-MAP(0x57, 0x41, 0x5F56) /* <CJK> */
-MAP(0x57, 0x42, 0x5F57) /* <CJK> */
-MAP(0x57, 0x43, 0x5F59) /* <CJK> */
-MAP(0x57, 0x44, 0x5F61) /* <CJK> */
-MAP(0x57, 0x45, 0x5F6D) /* <CJK> */
-MAP(0x57, 0x46, 0x5F73) /* <CJK> */
-MAP(0x57, 0x47, 0x5F77) /* <CJK> */
-MAP(0x57, 0x48, 0x5F83) /* <CJK> */
-MAP(0x57, 0x49, 0x5F82) /* <CJK> */
-MAP(0x57, 0x4A, 0x5F7F) /* <CJK> */
-MAP(0x57, 0x4B, 0x5F8A) /* <CJK> */
-MAP(0x57, 0x4C, 0x5F88) /* <CJK> */
-MAP(0x57, 0x4D, 0x5F91) /* <CJK> */
-MAP(0x57, 0x4E, 0x5F87) /* <CJK> */
-MAP(0x57, 0x4F, 0x5F9E) /* <CJK> */
-MAP(0x57, 0x50, 0x5F99) /* <CJK> */
-MAP(0x57, 0x51, 0x5F98) /* <CJK> */
-MAP(0x57, 0x52, 0x5FA0) /* <CJK> */
-MAP(0x57, 0x53, 0x5FA8) /* <CJK> */
-MAP(0x57, 0x54, 0x5FAD) /* <CJK> */
-MAP(0x57, 0x55, 0x5FBC) /* <CJK> */
-MAP(0x57, 0x56, 0x5FD6) /* <CJK> */
-MAP(0x57, 0x57, 0x5FFB) /* <CJK> */
-MAP(0x57, 0x58, 0x5FE4) /* <CJK> */
-MAP(0x57, 0x59, 0x5FF8) /* <CJK> */
-MAP(0x57, 0x5A, 0x5FF1) /* <CJK> */
-MAP(0x57, 0x5B, 0x5FDD) /* <CJK> */
-MAP(0x57, 0x5C, 0x60B3) /* <CJK> */
-MAP(0x57, 0x5D, 0x5FFF) /* <CJK> */
-MAP(0x57, 0x5E, 0x6021) /* <CJK> */
-MAP(0x57, 0x5F, 0x6060) /* <CJK> */
-MAP(0x57, 0x60, 0x6019) /* <CJK> */
-MAP(0x57, 0x61, 0x6010) /* <CJK> */
-MAP(0x57, 0x62, 0x6029) /* <CJK> */
-MAP(0x57, 0x63, 0x600E) /* <CJK> */
-MAP(0x57, 0x64, 0x6031) /* <CJK> */
-MAP(0x57, 0x65, 0x601B) /* <CJK> */
-MAP(0x57, 0x66, 0x6015) /* <CJK> */
-MAP(0x57, 0x67, 0x602B) /* <CJK> */
-MAP(0x57, 0x68, 0x6026) /* <CJK> */
-MAP(0x57, 0x69, 0x600F) /* <CJK> */
-MAP(0x57, 0x6A, 0x603A) /* <CJK> */
-MAP(0x57, 0x6B, 0x605A) /* <CJK> */
-MAP(0x57, 0x6C, 0x6041) /* <CJK> */
-MAP(0x57, 0x6D, 0x606A) /* <CJK> */
-MAP(0x57, 0x6E, 0x6077) /* <CJK> */
-MAP(0x57, 0x6F, 0x605F) /* <CJK> */
-MAP(0x57, 0x70, 0x604A) /* <CJK> */
-MAP(0x57, 0x71, 0x6046) /* <CJK> */
-MAP(0x57, 0x72, 0x604D) /* <CJK> */
-MAP(0x57, 0x73, 0x6063) /* <CJK> */
-MAP(0x57, 0x74, 0x6043) /* <CJK> */
-MAP(0x57, 0x75, 0x6064) /* <CJK> */
-MAP(0x57, 0x76, 0x6042) /* <CJK> */
-MAP(0x57, 0x77, 0x606C) /* <CJK> */
-MAP(0x57, 0x78, 0x606B) /* <CJK> */
-MAP(0x57, 0x79, 0x6059) /* <CJK> */
-MAP(0x57, 0x7A, 0x6081) /* <CJK> */
-MAP(0x57, 0x7B, 0x608D) /* <CJK> */
-MAP(0x57, 0x7C, 0x60E7) /* <CJK> */
-MAP(0x57, 0x7D, 0x6083) /* <CJK> */
-MAP(0x57, 0x7E, 0x609A) /* <CJK> */
-MAP(0x58, 0x21, 0x6084) /* <CJK> */
-MAP(0x58, 0x22, 0x609B) /* <CJK> */
-MAP(0x58, 0x23, 0x6096) /* <CJK> */
-MAP(0x58, 0x24, 0x6097) /* <CJK> */
-MAP(0x58, 0x25, 0x6092) /* <CJK> */
-MAP(0x58, 0x26, 0x60A7) /* <CJK> */
-MAP(0x58, 0x27, 0x608B) /* <CJK> */
-MAP(0x58, 0x28, 0x60E1) /* <CJK> */
-MAP(0x58, 0x29, 0x60B8) /* <CJK> */
-MAP(0x58, 0x2A, 0x60E0) /* <CJK> */
-MAP(0x58, 0x2B, 0x60D3) /* <CJK> */
-MAP(0x58, 0x2C, 0x60B4) /* <CJK> */
-MAP(0x58, 0x2D, 0x5FF0) /* <CJK> */
-MAP(0x58, 0x2E, 0x60BD) /* <CJK> */
-MAP(0x58, 0x2F, 0x60C6) /* <CJK> */
-MAP(0x58, 0x30, 0x60B5) /* <CJK> */
-MAP(0x58, 0x31, 0x60D8) /* <CJK> */
-MAP(0x58, 0x32, 0x614D) /* <CJK> */
-MAP(0x58, 0x33, 0x6115) /* <CJK> */
-MAP(0x58, 0x34, 0x6106) /* <CJK> */
-MAP(0x58, 0x35, 0x60F6) /* <CJK> */
-MAP(0x58, 0x36, 0x60F7) /* <CJK> */
-MAP(0x58, 0x37, 0x6100) /* <CJK> */
-MAP(0x58, 0x38, 0x60F4) /* <CJK> */
-MAP(0x58, 0x39, 0x60FA) /* <CJK> */
-MAP(0x58, 0x3A, 0x6103) /* <CJK> */
-MAP(0x58, 0x3B, 0x6121) /* <CJK> */
-MAP(0x58, 0x3C, 0x60FB) /* <CJK> */
-MAP(0x58, 0x3D, 0x60F1) /* <CJK> */
-MAP(0x58, 0x3E, 0x610D) /* <CJK> */
-MAP(0x58, 0x3F, 0x610E) /* <CJK> */
-MAP(0x58, 0x40, 0x6147) /* <CJK> */
-MAP(0x58, 0x41, 0x613E) /* <CJK> */
-MAP(0x58, 0x42, 0x6128) /* <CJK> */
-MAP(0x58, 0x43, 0x6127) /* <CJK> */
-MAP(0x58, 0x44, 0x614A) /* <CJK> */
-MAP(0x58, 0x45, 0x613F) /* <CJK> */
-MAP(0x58, 0x46, 0x613C) /* <CJK> */
-MAP(0x58, 0x47, 0x612C) /* <CJK> */
-MAP(0x58, 0x48, 0x6134) /* <CJK> */
-MAP(0x58, 0x49, 0x613D) /* <CJK> */
-MAP(0x58, 0x4A, 0x6142) /* <CJK> */
-MAP(0x58, 0x4B, 0x6144) /* <CJK> */
-MAP(0x58, 0x4C, 0x6173) /* <CJK> */
-MAP(0x58, 0x4D, 0x6177) /* <CJK> */
-MAP(0x58, 0x4E, 0x6158) /* <CJK> */
-MAP(0x58, 0x4F, 0x6159) /* <CJK> */
-MAP(0x58, 0x50, 0x615A) /* <CJK> */
-MAP(0x58, 0x51, 0x616B) /* <CJK> */
-MAP(0x58, 0x52, 0x6174) /* <CJK> */
-MAP(0x58, 0x53, 0x616F) /* <CJK> */
-MAP(0x58, 0x54, 0x6165) /* <CJK> */
-MAP(0x58, 0x55, 0x6171) /* <CJK> */
-MAP(0x58, 0x56, 0x615F) /* <CJK> */
-MAP(0x58, 0x57, 0x615D) /* <CJK> */
-MAP(0x58, 0x58, 0x6153) /* <CJK> */
-MAP(0x58, 0x59, 0x6175) /* <CJK> */
-MAP(0x58, 0x5A, 0x6199) /* <CJK> */
-MAP(0x58, 0x5B, 0x6196) /* <CJK> */
-MAP(0x58, 0x5C, 0x6187) /* <CJK> */
-MAP(0x58, 0x5D, 0x61AC) /* <CJK> */
-MAP(0x58, 0x5E, 0x6194) /* <CJK> */
-MAP(0x58, 0x5F, 0x619A) /* <CJK> */
-MAP(0x58, 0x60, 0x618A) /* <CJK> */
-MAP(0x58, 0x61, 0x6191) /* <CJK> */
-MAP(0x58, 0x62, 0x61AB) /* <CJK> */
-MAP(0x58, 0x63, 0x61AE) /* <CJK> */
-MAP(0x58, 0x64, 0x61CC) /* <CJK> */
-MAP(0x58, 0x65, 0x61CA) /* <CJK> */
-MAP(0x58, 0x66, 0x61C9) /* <CJK> */
-MAP(0x58, 0x67, 0x61F7) /* <CJK> */
-MAP(0x58, 0x68, 0x61C8) /* <CJK> */
-MAP(0x58, 0x69, 0x61C3) /* <CJK> */
-MAP(0x58, 0x6A, 0x61C6) /* <CJK> */
-MAP(0x58, 0x6B, 0x61BA) /* <CJK> */
-MAP(0x58, 0x6C, 0x61CB) /* <CJK> */
-MAP(0x58, 0x6D, 0x7F79) /* <CJK> */
-MAP(0x58, 0x6E, 0x61CD) /* <CJK> */
-MAP(0x58, 0x6F, 0x61E6) /* <CJK> */
-MAP(0x58, 0x70, 0x61E3) /* <CJK> */
-MAP(0x58, 0x71, 0x61F6) /* <CJK> */
-MAP(0x58, 0x72, 0x61FA) /* <CJK> */
-MAP(0x58, 0x73, 0x61F4) /* <CJK> */
-MAP(0x58, 0x74, 0x61FF) /* <CJK> */
-MAP(0x58, 0x75, 0x61FD) /* <CJK> */
-MAP(0x58, 0x76, 0x61FC) /* <CJK> */
-MAP(0x58, 0x77, 0x61FE) /* <CJK> */
-MAP(0x58, 0x78, 0x6200) /* <CJK> */
-MAP(0x58, 0x79, 0x6208) /* <CJK> */
-MAP(0x58, 0x7A, 0x6209) /* <CJK> */
-MAP(0x58, 0x7B, 0x620D) /* <CJK> */
-MAP(0x58, 0x7C, 0x620C) /* <CJK> */
-MAP(0x58, 0x7D, 0x6214) /* <CJK> */
-MAP(0x58, 0x7E, 0x621B) /* <CJK> */
-MAP(0x59, 0x21, 0x621E) /* <CJK> */
-MAP(0x59, 0x22, 0x6221) /* <CJK> */
-MAP(0x59, 0x23, 0x622A) /* <CJK> */
-MAP(0x59, 0x24, 0x622E) /* <CJK> */
-MAP(0x59, 0x25, 0x6230) /* <CJK> */
-MAP(0x59, 0x26, 0x6232) /* <CJK> */
-MAP(0x59, 0x27, 0x6233) /* <CJK> */
-MAP(0x59, 0x28, 0x6241) /* <CJK> */
-MAP(0x59, 0x29, 0x624E) /* <CJK> */
-MAP(0x59, 0x2A, 0x625E) /* <CJK> */
-MAP(0x59, 0x2B, 0x6263) /* <CJK> */
-MAP(0x59, 0x2C, 0x625B) /* <CJK> */
-MAP(0x59, 0x2D, 0x6260) /* <CJK> */
-MAP(0x59, 0x2E, 0x6268) /* <CJK> */
-MAP(0x59, 0x2F, 0x627C) /* <CJK> */
-MAP(0x59, 0x30, 0x6282) /* <CJK> */
-MAP(0x59, 0x31, 0x6289) /* <CJK> */
-MAP(0x59, 0x32, 0x627E) /* <CJK> */
-MAP(0x59, 0x33, 0x6292) /* <CJK> */
-MAP(0x59, 0x34, 0x6293) /* <CJK> */
-MAP(0x59, 0x35, 0x6296) /* <CJK> */
-MAP(0x59, 0x36, 0x62D4) /* <CJK> */
-MAP(0x59, 0x37, 0x6283) /* <CJK> */
-MAP(0x59, 0x38, 0x6294) /* <CJK> */
-MAP(0x59, 0x39, 0x62D7) /* <CJK> */
-MAP(0x59, 0x3A, 0x62D1) /* <CJK> */
-MAP(0x59, 0x3B, 0x62BB) /* <CJK> */
-MAP(0x59, 0x3C, 0x62CF) /* <CJK> */
-MAP(0x59, 0x3D, 0x62FF) /* <CJK> */
-MAP(0x59, 0x3E, 0x62C6) /* <CJK> */
-MAP(0x59, 0x3F, 0x64D4) /* <CJK> */
-MAP(0x59, 0x40, 0x62C8) /* <CJK> */
-MAP(0x59, 0x41, 0x62DC) /* <CJK> */
-MAP(0x59, 0x42, 0x62CC) /* <CJK> */
-MAP(0x59, 0x43, 0x62CA) /* <CJK> */
-MAP(0x59, 0x44, 0x62C2) /* <CJK> */
-MAP(0x59, 0x45, 0x62C7) /* <CJK> */
-MAP(0x59, 0x46, 0x629B) /* <CJK> */
-MAP(0x59, 0x47, 0x62C9) /* <CJK> */
-MAP(0x59, 0x48, 0x630C) /* <CJK> */
-MAP(0x59, 0x49, 0x62EE) /* <CJK> */
-MAP(0x59, 0x4A, 0x62F1) /* <CJK> */
-MAP(0x59, 0x4B, 0x6327) /* <CJK> */
-MAP(0x59, 0x4C, 0x6302) /* <CJK> */
-MAP(0x59, 0x4D, 0x6308) /* <CJK> */
-MAP(0x59, 0x4E, 0x62EF) /* <CJK> */
-MAP(0x59, 0x4F, 0x62F5) /* <CJK> */
-MAP(0x59, 0x50, 0x6350) /* <CJK> */
-MAP(0x59, 0x51, 0x633E) /* <CJK> */
-MAP(0x59, 0x52, 0x634D) /* <CJK> */
-MAP(0x59, 0x53, 0x641C) /* <CJK> */
-MAP(0x59, 0x54, 0x634F) /* <CJK> */
-MAP(0x59, 0x55, 0x6396) /* <CJK> */
-MAP(0x59, 0x56, 0x638E) /* <CJK> */
-MAP(0x59, 0x57, 0x6380) /* <CJK> */
-MAP(0x59, 0x58, 0x63AB) /* <CJK> */
-MAP(0x59, 0x59, 0x6376) /* <CJK> */
-MAP(0x59, 0x5A, 0x63A3) /* <CJK> */
-MAP(0x59, 0x5B, 0x638F) /* <CJK> */
-MAP(0x59, 0x5C, 0x6389) /* <CJK> */
-MAP(0x59, 0x5D, 0x639F) /* <CJK> */
-MAP(0x59, 0x5E, 0x63B5) /* <CJK> */
-MAP(0x59, 0x5F, 0x636B) /* <CJK> */
-MAP(0x59, 0x60, 0x6369) /* <CJK> */
-MAP(0x59, 0x61, 0x63BE) /* <CJK> */
-MAP(0x59, 0x62, 0x63E9) /* <CJK> */
-MAP(0x59, 0x63, 0x63C0) /* <CJK> */
-MAP(0x59, 0x64, 0x63C6) /* <CJK> */
-MAP(0x59, 0x65, 0x63E3) /* <CJK> */
-MAP(0x59, 0x66, 0x63C9) /* <CJK> */
-MAP(0x59, 0x67, 0x63D2) /* <CJK> */
-MAP(0x59, 0x68, 0x63F6) /* <CJK> */
-MAP(0x59, 0x69, 0x63C4) /* <CJK> */
-MAP(0x59, 0x6A, 0x6416) /* <CJK> */
-MAP(0x59, 0x6B, 0x6434) /* <CJK> */
-MAP(0x59, 0x6C, 0x6406) /* <CJK> */
-MAP(0x59, 0x6D, 0x6413) /* <CJK> */
-MAP(0x59, 0x6E, 0x6426) /* <CJK> */
-MAP(0x59, 0x6F, 0x6436) /* <CJK> */
-MAP(0x59, 0x70, 0x651D) /* <CJK> */
-MAP(0x59, 0x71, 0x6417) /* <CJK> */
-MAP(0x59, 0x72, 0x6428) /* <CJK> */
-MAP(0x59, 0x73, 0x640F) /* <CJK> */
-MAP(0x59, 0x74, 0x6467) /* <CJK> */
-MAP(0x59, 0x75, 0x646F) /* <CJK> */
-MAP(0x59, 0x76, 0x6476) /* <CJK> */
-MAP(0x59, 0x77, 0x644E) /* <CJK> */
-MAP(0x59, 0x78, 0x652A) /* <CJK> */
-MAP(0x59, 0x79, 0x6495) /* <CJK> */
-MAP(0x59, 0x7A, 0x6493) /* <CJK> */
-MAP(0x59, 0x7B, 0x64A5) /* <CJK> */
-MAP(0x59, 0x7C, 0x64A9) /* <CJK> */
-MAP(0x59, 0x7D, 0x6488) /* <CJK> */
-MAP(0x59, 0x7E, 0x64BC) /* <CJK> */
-MAP(0x5A, 0x21, 0x64DA) /* <CJK> */
-MAP(0x5A, 0x22, 0x64D2) /* <CJK> */
-MAP(0x5A, 0x23, 0x64C5) /* <CJK> */
-MAP(0x5A, 0x24, 0x64C7) /* <CJK> */
-MAP(0x5A, 0x25, 0x64BB) /* <CJK> */
-MAP(0x5A, 0x26, 0x64D8) /* <CJK> */
-MAP(0x5A, 0x27, 0x64C2) /* <CJK> */
-MAP(0x5A, 0x28, 0x64F1) /* <CJK> */
-MAP(0x5A, 0x29, 0x64E7) /* <CJK> */
-MAP(0x5A, 0x2A, 0x8209) /* <CJK> */
-MAP(0x5A, 0x2B, 0x64E0) /* <CJK> */
-MAP(0x5A, 0x2C, 0x64E1) /* <CJK> */
-MAP(0x5A, 0x2D, 0x62AC) /* <CJK> */
-MAP(0x5A, 0x2E, 0x64E3) /* <CJK> */
-MAP(0x5A, 0x2F, 0x64EF) /* <CJK> */
-MAP(0x5A, 0x30, 0x652C) /* <CJK> */
-MAP(0x5A, 0x31, 0x64F6) /* <CJK> */
-MAP(0x5A, 0x32, 0x64F4) /* <CJK> */
-MAP(0x5A, 0x33, 0x64F2) /* <CJK> */
-MAP(0x5A, 0x34, 0x64FA) /* <CJK> */
-MAP(0x5A, 0x35, 0x6500) /* <CJK> */
-MAP(0x5A, 0x36, 0x64FD) /* <CJK> */
-MAP(0x5A, 0x37, 0x6518) /* <CJK> */
-MAP(0x5A, 0x38, 0x651C) /* <CJK> */
-MAP(0x5A, 0x39, 0x6505) /* <CJK> */
-MAP(0x5A, 0x3A, 0x6524) /* <CJK> */
-MAP(0x5A, 0x3B, 0x6523) /* <CJK> */
-MAP(0x5A, 0x3C, 0x652B) /* <CJK> */
-MAP(0x5A, 0x3D, 0x6534) /* <CJK> */
-MAP(0x5A, 0x3E, 0x6535) /* <CJK> */
-MAP(0x5A, 0x3F, 0x6537) /* <CJK> */
-MAP(0x5A, 0x40, 0x6536) /* <CJK> */
-MAP(0x5A, 0x41, 0x6538) /* <CJK> */
-MAP(0x5A, 0x42, 0x754B) /* <CJK> */
-MAP(0x5A, 0x43, 0x6548) /* <CJK> */
-MAP(0x5A, 0x44, 0x6556) /* <CJK> */
-MAP(0x5A, 0x45, 0x6555) /* <CJK> */
-MAP(0x5A, 0x46, 0x654D) /* <CJK> */
-MAP(0x5A, 0x47, 0x6558) /* <CJK> */
-MAP(0x5A, 0x48, 0x655E) /* <CJK> */
-MAP(0x5A, 0x49, 0x655D) /* <CJK> */
-MAP(0x5A, 0x4A, 0x6572) /* <CJK> */
-MAP(0x5A, 0x4B, 0x6578) /* <CJK> */
-MAP(0x5A, 0x4C, 0x6582) /* <CJK> */
-MAP(0x5A, 0x4D, 0x6583) /* <CJK> */
-MAP(0x5A, 0x4E, 0x8B8A) /* <CJK> */
-MAP(0x5A, 0x4F, 0x659B) /* <CJK> */
-MAP(0x5A, 0x50, 0x659F) /* <CJK> */
-MAP(0x5A, 0x51, 0x65AB) /* <CJK> */
-MAP(0x5A, 0x52, 0x65B7) /* <CJK> */
-MAP(0x5A, 0x53, 0x65C3) /* <CJK> */
-MAP(0x5A, 0x54, 0x65C6) /* <CJK> */
-MAP(0x5A, 0x55, 0x65C1) /* <CJK> */
-MAP(0x5A, 0x56, 0x65C4) /* <CJK> */
-MAP(0x5A, 0x57, 0x65CC) /* <CJK> */
-MAP(0x5A, 0x58, 0x65D2) /* <CJK> */
-MAP(0x5A, 0x59, 0x65DB) /* <CJK> */
-MAP(0x5A, 0x5A, 0x65D9) /* <CJK> */
-MAP(0x5A, 0x5B, 0x65E0) /* <CJK> */
-MAP(0x5A, 0x5C, 0x65E1) /* <CJK> */
-MAP(0x5A, 0x5D, 0x65F1) /* <CJK> */
-MAP(0x5A, 0x5E, 0x6772) /* <CJK> */
-MAP(0x5A, 0x5F, 0x660A) /* <CJK> */
-MAP(0x5A, 0x60, 0x6603) /* <CJK> */
-MAP(0x5A, 0x61, 0x65FB) /* <CJK> */
-MAP(0x5A, 0x62, 0x6773) /* <CJK> */
-MAP(0x5A, 0x63, 0x6635) /* <CJK> */
-MAP(0x5A, 0x64, 0x6636) /* <CJK> */
-MAP(0x5A, 0x65, 0x6634) /* <CJK> */
-MAP(0x5A, 0x66, 0x661C) /* <CJK> */
-MAP(0x5A, 0x67, 0x664F) /* <CJK> */
-MAP(0x5A, 0x68, 0x6644) /* <CJK> */
-MAP(0x5A, 0x69, 0x6649) /* <CJK> */
-MAP(0x5A, 0x6A, 0x6641) /* <CJK> */
-MAP(0x5A, 0x6B, 0x665E) /* <CJK> */
-MAP(0x5A, 0x6C, 0x665D) /* <CJK> */
-MAP(0x5A, 0x6D, 0x6664) /* <CJK> */
-MAP(0x5A, 0x6E, 0x6667) /* <CJK> */
-MAP(0x5A, 0x6F, 0x6668) /* <CJK> */
-MAP(0x5A, 0x70, 0x665F) /* <CJK> */
-MAP(0x5A, 0x71, 0x6662) /* <CJK> */
-MAP(0x5A, 0x72, 0x6670) /* <CJK> */
-MAP(0x5A, 0x73, 0x6683) /* <CJK> */
-MAP(0x5A, 0x74, 0x6688) /* <CJK> */
-MAP(0x5A, 0x75, 0x668E) /* <CJK> */
-MAP(0x5A, 0x76, 0x6689) /* <CJK> */
-MAP(0x5A, 0x77, 0x6684) /* <CJK> */
-MAP(0x5A, 0x78, 0x6698) /* <CJK> */
-MAP(0x5A, 0x79, 0x669D) /* <CJK> */
-MAP(0x5A, 0x7A, 0x66C1) /* <CJK> */
-MAP(0x5A, 0x7B, 0x66B9) /* <CJK> */
-MAP(0x5A, 0x7C, 0x66C9) /* <CJK> */
-MAP(0x5A, 0x7D, 0x66BE) /* <CJK> */
-MAP(0x5A, 0x7E, 0x66BC) /* <CJK> */
-MAP(0x5B, 0x21, 0x66C4) /* <CJK> */
-MAP(0x5B, 0x22, 0x66B8) /* <CJK> */
-MAP(0x5B, 0x23, 0x66D6) /* <CJK> */
-MAP(0x5B, 0x24, 0x66DA) /* <CJK> */
-MAP(0x5B, 0x25, 0x66E0) /* <CJK> */
-MAP(0x5B, 0x26, 0x663F) /* <CJK> */
-MAP(0x5B, 0x27, 0x66E6) /* <CJK> */
-MAP(0x5B, 0x28, 0x66E9) /* <CJK> */
-MAP(0x5B, 0x29, 0x66F0) /* <CJK> */
-MAP(0x5B, 0x2A, 0x66F5) /* <CJK> */
-MAP(0x5B, 0x2B, 0x66F7) /* <CJK> */
-MAP(0x5B, 0x2C, 0x670F) /* <CJK> */
-MAP(0x5B, 0x2D, 0x6716) /* <CJK> */
-MAP(0x5B, 0x2E, 0x671E) /* <CJK> */
-MAP(0x5B, 0x2F, 0x6726) /* <CJK> */
-MAP(0x5B, 0x30, 0x6727) /* <CJK> */
-MAP(0x5B, 0x31, 0x9738) /* <CJK> */
-MAP(0x5B, 0x32, 0x672E) /* <CJK> */
-MAP(0x5B, 0x33, 0x673F) /* <CJK> */
-MAP(0x5B, 0x34, 0x6736) /* <CJK> */
-MAP(0x5B, 0x35, 0x6741) /* <CJK> */
-MAP(0x5B, 0x36, 0x6738) /* <CJK> */
-MAP(0x5B, 0x37, 0x6737) /* <CJK> */
-MAP(0x5B, 0x38, 0x6746) /* <CJK> */
-MAP(0x5B, 0x39, 0x675E) /* <CJK> */
-MAP(0x5B, 0x3A, 0x6760) /* <CJK> */
-MAP(0x5B, 0x3B, 0x6759) /* <CJK> */
-MAP(0x5B, 0x3C, 0x6763) /* <CJK> */
-MAP(0x5B, 0x3D, 0x6764) /* <CJK> */
-MAP(0x5B, 0x3E, 0x6789) /* <CJK> */
-MAP(0x5B, 0x3F, 0x6770) /* <CJK> */
-MAP(0x5B, 0x40, 0x67A9) /* <CJK> */
-MAP(0x5B, 0x41, 0x677C) /* <CJK> */
-MAP(0x5B, 0x42, 0x676A) /* <CJK> */
-MAP(0x5B, 0x43, 0x678C) /* <CJK> */
-MAP(0x5B, 0x44, 0x678B) /* <CJK> */
-MAP(0x5B, 0x45, 0x67A6) /* <CJK> */
-MAP(0x5B, 0x46, 0x67A1) /* <CJK> */
-MAP(0x5B, 0x47, 0x6785) /* <CJK> */
-MAP(0x5B, 0x48, 0x67B7) /* <CJK> */
-MAP(0x5B, 0x49, 0x67EF) /* <CJK> */
-MAP(0x5B, 0x4A, 0x67B4) /* <CJK> */
-MAP(0x5B, 0x4B, 0x67EC) /* <CJK> */
-MAP(0x5B, 0x4C, 0x67B3) /* <CJK> */
-MAP(0x5B, 0x4D, 0x67E9) /* <CJK> */
-MAP(0x5B, 0x4E, 0x67B8) /* <CJK> */
-MAP(0x5B, 0x4F, 0x67E4) /* <CJK> */
-MAP(0x5B, 0x50, 0x67DE) /* <CJK> */
-MAP(0x5B, 0x51, 0x67DD) /* <CJK> */
-MAP(0x5B, 0x52, 0x67E2) /* <CJK> */
-MAP(0x5B, 0x53, 0x67EE) /* <CJK> */
-MAP(0x5B, 0x54, 0x67B9) /* <CJK> */
-MAP(0x5B, 0x55, 0x67CE) /* <CJK> */
-MAP(0x5B, 0x56, 0x67C6) /* <CJK> */
-MAP(0x5B, 0x57, 0x67E7) /* <CJK> */
-MAP(0x5B, 0x58, 0x6A9C) /* <CJK> */
-MAP(0x5B, 0x59, 0x681E) /* <CJK> */
-MAP(0x5B, 0x5A, 0x6846) /* <CJK> */
-MAP(0x5B, 0x5B, 0x6829) /* <CJK> */
-MAP(0x5B, 0x5C, 0x6840) /* <CJK> */
-MAP(0x5B, 0x5D, 0x684D) /* <CJK> */
-MAP(0x5B, 0x5E, 0x6832) /* <CJK> */
-MAP(0x5B, 0x5F, 0x684E) /* <CJK> */
-MAP(0x5B, 0x60, 0x68B3) /* <CJK> */
-MAP(0x5B, 0x61, 0x682B) /* <CJK> */
-MAP(0x5B, 0x62, 0x6859) /* <CJK> */
-MAP(0x5B, 0x63, 0x6863) /* <CJK> */
-MAP(0x5B, 0x64, 0x6877) /* <CJK> */
-MAP(0x5B, 0x65, 0x687F) /* <CJK> */
-MAP(0x5B, 0x66, 0x689F) /* <CJK> */
-MAP(0x5B, 0x67, 0x688F) /* <CJK> */
-MAP(0x5B, 0x68, 0x68AD) /* <CJK> */
-MAP(0x5B, 0x69, 0x6894) /* <CJK> */
-MAP(0x5B, 0x6A, 0x689D) /* <CJK> */
-MAP(0x5B, 0x6B, 0x689B) /* <CJK> */
-MAP(0x5B, 0x6C, 0x6883) /* <CJK> */
-MAP(0x5B, 0x6D, 0x6AAE) /* <CJK> */
-MAP(0x5B, 0x6E, 0x68B9) /* <CJK> */
-MAP(0x5B, 0x6F, 0x6874) /* <CJK> */
-MAP(0x5B, 0x70, 0x68B5) /* <CJK> */
-MAP(0x5B, 0x71, 0x68A0) /* <CJK> */
-MAP(0x5B, 0x72, 0x68BA) /* <CJK> */
-MAP(0x5B, 0x73, 0x690F) /* <CJK> */
-MAP(0x5B, 0x74, 0x688D) /* <CJK> */
-MAP(0x5B, 0x75, 0x687E) /* <CJK> */
-MAP(0x5B, 0x76, 0x6901) /* <CJK> */
-MAP(0x5B, 0x77, 0x68CA) /* <CJK> */
-MAP(0x5B, 0x78, 0x6908) /* <CJK> */
-MAP(0x5B, 0x79, 0x68D8) /* <CJK> */
-MAP(0x5B, 0x7A, 0x6922) /* <CJK> */
-MAP(0x5B, 0x7B, 0x6926) /* <CJK> */
-MAP(0x5B, 0x7C, 0x68E1) /* <CJK> */
-MAP(0x5B, 0x7D, 0x690C) /* <CJK> */
-MAP(0x5B, 0x7E, 0x68CD) /* <CJK> */
-MAP(0x5C, 0x21, 0x68D4) /* <CJK> */
-MAP(0x5C, 0x22, 0x68E7) /* <CJK> */
-MAP(0x5C, 0x23, 0x68D5) /* <CJK> */
-MAP(0x5C, 0x24, 0x6936) /* <CJK> */
-MAP(0x5C, 0x25, 0x6912) /* <CJK> */
-MAP(0x5C, 0x26, 0x6904) /* <CJK> */
-MAP(0x5C, 0x27, 0x68D7) /* <CJK> */
-MAP(0x5C, 0x28, 0x68E3) /* <CJK> */
-MAP(0x5C, 0x29, 0x6925) /* <CJK> */
-MAP(0x5C, 0x2A, 0x68F9) /* <CJK> */
-MAP(0x5C, 0x2B, 0x68E0) /* <CJK> */
-MAP(0x5C, 0x2C, 0x68EF) /* <CJK> */
-MAP(0x5C, 0x2D, 0x6928) /* <CJK> */
-MAP(0x5C, 0x2E, 0x692A) /* <CJK> */
-MAP(0x5C, 0x2F, 0x691A) /* <CJK> */
-MAP(0x5C, 0x30, 0x6923) /* <CJK> */
-MAP(0x5C, 0x31, 0x6921) /* <CJK> */
-MAP(0x5C, 0x32, 0x68C6) /* <CJK> */
-MAP(0x5C, 0x33, 0x6979) /* <CJK> */
-MAP(0x5C, 0x34, 0x6977) /* <CJK> */
-MAP(0x5C, 0x35, 0x695C) /* <CJK> */
-MAP(0x5C, 0x36, 0x6978) /* <CJK> */
-MAP(0x5C, 0x37, 0x696B) /* <CJK> */
-MAP(0x5C, 0x38, 0x6954) /* <CJK> */
-MAP(0x5C, 0x39, 0x697E) /* <CJK> */
-MAP(0x5C, 0x3A, 0x696E) /* <CJK> */
-MAP(0x5C, 0x3B, 0x6939) /* <CJK> */
-MAP(0x5C, 0x3C, 0x6974) /* <CJK> */
-MAP(0x5C, 0x3D, 0x693D) /* <CJK> */
-MAP(0x5C, 0x3E, 0x6959) /* <CJK> */
-MAP(0x5C, 0x3F, 0x6930) /* <CJK> */
-MAP(0x5C, 0x40, 0x6961) /* <CJK> */
-MAP(0x5C, 0x41, 0x695E) /* <CJK> */
-MAP(0x5C, 0x42, 0x695D) /* <CJK> */
-MAP(0x5C, 0x43, 0x6981) /* <CJK> */
-MAP(0x5C, 0x44, 0x696A) /* <CJK> */
-MAP(0x5C, 0x45, 0x69B2) /* <CJK> */
-MAP(0x5C, 0x46, 0x69AE) /* <CJK> */
-MAP(0x5C, 0x47, 0x69D0) /* <CJK> */
-MAP(0x5C, 0x48, 0x69BF) /* <CJK> */
-MAP(0x5C, 0x49, 0x69C1) /* <CJK> */
-MAP(0x5C, 0x4A, 0x69D3) /* <CJK> */
-MAP(0x5C, 0x4B, 0x69BE) /* <CJK> */
-MAP(0x5C, 0x4C, 0x69CE) /* <CJK> */
-MAP(0x5C, 0x4D, 0x5BE8) /* <CJK> */
-MAP(0x5C, 0x4E, 0x69CA) /* <CJK> */
-MAP(0x5C, 0x4F, 0x69DD) /* <CJK> */
-MAP(0x5C, 0x50, 0x69BB) /* <CJK> */
-MAP(0x5C, 0x51, 0x69C3) /* <CJK> */
-MAP(0x5C, 0x52, 0x69A7) /* <CJK> */
-MAP(0x5C, 0x53, 0x6A2E) /* <CJK> */
-MAP(0x5C, 0x54, 0x6991) /* <CJK> */
-MAP(0x5C, 0x55, 0x69A0) /* <CJK> */
-MAP(0x5C, 0x56, 0x699C) /* <CJK> */
-MAP(0x5C, 0x57, 0x6995) /* <CJK> */
-MAP(0x5C, 0x58, 0x69B4) /* <CJK> */
-MAP(0x5C, 0x59, 0x69DE) /* <CJK> */
-MAP(0x5C, 0x5A, 0x69E8) /* <CJK> */
-MAP(0x5C, 0x5B, 0x6A02) /* <CJK> */
-MAP(0x5C, 0x5C, 0x6A1B) /* <CJK> */
-MAP(0x5C, 0x5D, 0x69FF) /* <CJK> */
-MAP(0x5C, 0x5E, 0x6B0A) /* <CJK> */
-MAP(0x5C, 0x5F, 0x69F9) /* <CJK> */
-MAP(0x5C, 0x60, 0x69F2) /* <CJK> */
-MAP(0x5C, 0x61, 0x69E7) /* <CJK> */
-MAP(0x5C, 0x62, 0x6A05) /* <CJK> */
-MAP(0x5C, 0x63, 0x69B1) /* <CJK> */
-MAP(0x5C, 0x64, 0x6A1E) /* <CJK> */
-MAP(0x5C, 0x65, 0x69ED) /* <CJK> */
-MAP(0x5C, 0x66, 0x6A14) /* <CJK> */
-MAP(0x5C, 0x67, 0x69EB) /* <CJK> */
-MAP(0x5C, 0x68, 0x6A0A) /* <CJK> */
-MAP(0x5C, 0x69, 0x6A12) /* <CJK> */
-MAP(0x5C, 0x6A, 0x6AC1) /* <CJK> */
-MAP(0x5C, 0x6B, 0x6A23) /* <CJK> */
-MAP(0x5C, 0x6C, 0x6A13) /* <CJK> */
-MAP(0x5C, 0x6D, 0x6A44) /* <CJK> */
-MAP(0x5C, 0x6E, 0x6A0C) /* <CJK> */
-MAP(0x5C, 0x6F, 0x6A72) /* <CJK> */
-MAP(0x5C, 0x70, 0x6A36) /* <CJK> */
-MAP(0x5C, 0x71, 0x6A78) /* <CJK> */
-MAP(0x5C, 0x72, 0x6A47) /* <CJK> */
-MAP(0x5C, 0x73, 0x6A62) /* <CJK> */
-MAP(0x5C, 0x74, 0x6A59) /* <CJK> */
-MAP(0x5C, 0x75, 0x6A66) /* <CJK> */
-MAP(0x5C, 0x76, 0x6A48) /* <CJK> */
-MAP(0x5C, 0x77, 0x6A38) /* <CJK> */
-MAP(0x5C, 0x78, 0x6A22) /* <CJK> */
-MAP(0x5C, 0x79, 0x6A90) /* <CJK> */
-MAP(0x5C, 0x7A, 0x6A8D) /* <CJK> */
-MAP(0x5C, 0x7B, 0x6AA0) /* <CJK> */
-MAP(0x5C, 0x7C, 0x6A84) /* <CJK> */
-MAP(0x5C, 0x7D, 0x6AA2) /* <CJK> */
-MAP(0x5C, 0x7E, 0x6AA3) /* <CJK> */
-MAP(0x5D, 0x21, 0x6A97) /* <CJK> */
-MAP(0x5D, 0x22, 0x8617) /* <CJK> */
-MAP(0x5D, 0x23, 0x6ABB) /* <CJK> */
-MAP(0x5D, 0x24, 0x6AC3) /* <CJK> */
-MAP(0x5D, 0x25, 0x6AC2) /* <CJK> */
-MAP(0x5D, 0x26, 0x6AB8) /* <CJK> */
-MAP(0x5D, 0x27, 0x6AB3) /* <CJK> */
-MAP(0x5D, 0x28, 0x6AAC) /* <CJK> */
-MAP(0x5D, 0x29, 0x6ADE) /* <CJK> */
-MAP(0x5D, 0x2A, 0x6AD1) /* <CJK> */
-MAP(0x5D, 0x2B, 0x6ADF) /* <CJK> */
-MAP(0x5D, 0x2C, 0x6AAA) /* <CJK> */
-MAP(0x5D, 0x2D, 0x6ADA) /* <CJK> */
-MAP(0x5D, 0x2E, 0x6AEA) /* <CJK> */
-MAP(0x5D, 0x2F, 0x6AFB) /* <CJK> */
-MAP(0x5D, 0x30, 0x6B05) /* <CJK> */
-MAP(0x5D, 0x31, 0x8616) /* <CJK> */
-MAP(0x5D, 0x32, 0x6AFA) /* <CJK> */
-MAP(0x5D, 0x33, 0x6B12) /* <CJK> */
-MAP(0x5D, 0x34, 0x6B16) /* <CJK> */
-MAP(0x5D, 0x35, 0x9B31) /* <CJK> */
-MAP(0x5D, 0x36, 0x6B1F) /* <CJK> */
-MAP(0x5D, 0x37, 0x6B38) /* <CJK> */
-MAP(0x5D, 0x38, 0x6B37) /* <CJK> */
-MAP(0x5D, 0x39, 0x76DC) /* <CJK> */
-MAP(0x5D, 0x3A, 0x6B39) /* <CJK> */
-MAP(0x5D, 0x3B, 0x98EE) /* <CJK> */
-MAP(0x5D, 0x3C, 0x6B47) /* <CJK> */
-MAP(0x5D, 0x3D, 0x6B43) /* <CJK> */
-MAP(0x5D, 0x3E, 0x6B49) /* <CJK> */
-MAP(0x5D, 0x3F, 0x6B50) /* <CJK> */
-MAP(0x5D, 0x40, 0x6B59) /* <CJK> */
-MAP(0x5D, 0x41, 0x6B54) /* <CJK> */
-MAP(0x5D, 0x42, 0x6B5B) /* <CJK> */
-MAP(0x5D, 0x43, 0x6B5F) /* <CJK> */
-MAP(0x5D, 0x44, 0x6B61) /* <CJK> */
-MAP(0x5D, 0x45, 0x6B78) /* <CJK> */
-MAP(0x5D, 0x46, 0x6B79) /* <CJK> */
-MAP(0x5D, 0x47, 0x6B7F) /* <CJK> */
-MAP(0x5D, 0x48, 0x6B80) /* <CJK> */
-MAP(0x5D, 0x49, 0x6B84) /* <CJK> */
-MAP(0x5D, 0x4A, 0x6B83) /* <CJK> */
-MAP(0x5D, 0x4B, 0x6B8D) /* <CJK> */
-MAP(0x5D, 0x4C, 0x6B98) /* <CJK> */
-MAP(0x5D, 0x4D, 0x6B95) /* <CJK> */
-MAP(0x5D, 0x4E, 0x6B9E) /* <CJK> */
-MAP(0x5D, 0x4F, 0x6BA4) /* <CJK> */
-MAP(0x5D, 0x50, 0x6BAA) /* <CJK> */
-MAP(0x5D, 0x51, 0x6BAB) /* <CJK> */
-MAP(0x5D, 0x52, 0x6BAF) /* <CJK> */
-MAP(0x5D, 0x53, 0x6BB2) /* <CJK> */
-MAP(0x5D, 0x54, 0x6BB1) /* <CJK> */
-MAP(0x5D, 0x55, 0x6BB3) /* <CJK> */
-MAP(0x5D, 0x56, 0x6BB7) /* <CJK> */
-MAP(0x5D, 0x57, 0x6BBC) /* <CJK> */
-MAP(0x5D, 0x58, 0x6BC6) /* <CJK> */
-MAP(0x5D, 0x59, 0x6BCB) /* <CJK> */
-MAP(0x5D, 0x5A, 0x6BD3) /* <CJK> */
-MAP(0x5D, 0x5B, 0x6BDF) /* <CJK> */
-MAP(0x5D, 0x5C, 0x6BEC) /* <CJK> */
-MAP(0x5D, 0x5D, 0x6BEB) /* <CJK> */
-MAP(0x5D, 0x5E, 0x6BF3) /* <CJK> */
-MAP(0x5D, 0x5F, 0x6BEF) /* <CJK> */
-MAP(0x5D, 0x60, 0x9EBE) /* <CJK> */
-MAP(0x5D, 0x61, 0x6C08) /* <CJK> */
-MAP(0x5D, 0x62, 0x6C13) /* <CJK> */
-MAP(0x5D, 0x63, 0x6C14) /* <CJK> */
-MAP(0x5D, 0x64, 0x6C1B) /* <CJK> */
-MAP(0x5D, 0x65, 0x6C24) /* <CJK> */
-MAP(0x5D, 0x66, 0x6C23) /* <CJK> */
-MAP(0x5D, 0x67, 0x6C5E) /* <CJK> */
-MAP(0x5D, 0x68, 0x6C55) /* <CJK> */
-MAP(0x5D, 0x69, 0x6C62) /* <CJK> */
-MAP(0x5D, 0x6A, 0x6C6A) /* <CJK> */
-MAP(0x5D, 0x6B, 0x6C82) /* <CJK> */
-MAP(0x5D, 0x6C, 0x6C8D) /* <CJK> */
-MAP(0x5D, 0x6D, 0x6C9A) /* <CJK> */
-MAP(0x5D, 0x6E, 0x6C81) /* <CJK> */
-MAP(0x5D, 0x6F, 0x6C9B) /* <CJK> */
-MAP(0x5D, 0x70, 0x6C7E) /* <CJK> */
-MAP(0x5D, 0x71, 0x6C68) /* <CJK> */
-MAP(0x5D, 0x72, 0x6C73) /* <CJK> */
-MAP(0x5D, 0x73, 0x6C92) /* <CJK> */
-MAP(0x5D, 0x74, 0x6C90) /* <CJK> */
-MAP(0x5D, 0x75, 0x6CC4) /* <CJK> */
-MAP(0x5D, 0x76, 0x6CF1) /* <CJK> */
-MAP(0x5D, 0x77, 0x6CD3) /* <CJK> */
-MAP(0x5D, 0x78, 0x6CBD) /* <CJK> */
-MAP(0x5D, 0x79, 0x6CD7) /* <CJK> */
-MAP(0x5D, 0x7A, 0x6CC5) /* <CJK> */
-MAP(0x5D, 0x7B, 0x6CDD) /* <CJK> */
-MAP(0x5D, 0x7C, 0x6CAE) /* <CJK> */
-MAP(0x5D, 0x7D, 0x6CB1) /* <CJK> */
-MAP(0x5D, 0x7E, 0x6CBE) /* <CJK> */
-MAP(0x5E, 0x21, 0x6CBA) /* <CJK> */
-MAP(0x5E, 0x22, 0x6CDB) /* <CJK> */
-MAP(0x5E, 0x23, 0x6CEF) /* <CJK> */
-MAP(0x5E, 0x24, 0x6CD9) /* <CJK> */
-MAP(0x5E, 0x25, 0x6CEA) /* <CJK> */
-MAP(0x5E, 0x26, 0x6D1F) /* <CJK> */
-MAP(0x5E, 0x27, 0x884D) /* <CJK> */
-MAP(0x5E, 0x28, 0x6D36) /* <CJK> */
-MAP(0x5E, 0x29, 0x6D2B) /* <CJK> */
-MAP(0x5E, 0x2A, 0x6D3D) /* <CJK> */
-MAP(0x5E, 0x2B, 0x6D38) /* <CJK> */
-MAP(0x5E, 0x2C, 0x6D19) /* <CJK> */
-MAP(0x5E, 0x2D, 0x6D35) /* <CJK> */
-MAP(0x5E, 0x2E, 0x6D33) /* <CJK> */
-MAP(0x5E, 0x2F, 0x6D12) /* <CJK> */
-MAP(0x5E, 0x30, 0x6D0C) /* <CJK> */
-MAP(0x5E, 0x31, 0x6D63) /* <CJK> */
-MAP(0x5E, 0x32, 0x6D93) /* <CJK> */
-MAP(0x5E, 0x33, 0x6D64) /* <CJK> */
-MAP(0x5E, 0x34, 0x6D5A) /* <CJK> */
-MAP(0x5E, 0x35, 0x6D79) /* <CJK> */
-MAP(0x5E, 0x36, 0x6D59) /* <CJK> */
-MAP(0x5E, 0x37, 0x6D8E) /* <CJK> */
-MAP(0x5E, 0x38, 0x6D95) /* <CJK> */
-MAP(0x5E, 0x39, 0x6FE4) /* <CJK> */
-MAP(0x5E, 0x3A, 0x6D85) /* <CJK> */
-MAP(0x5E, 0x3B, 0x6DF9) /* <CJK> */
-MAP(0x5E, 0x3C, 0x6E15) /* <CJK> */
-MAP(0x5E, 0x3D, 0x6E0A) /* <CJK> */
-MAP(0x5E, 0x3E, 0x6DB5) /* <CJK> */
-MAP(0x5E, 0x3F, 0x6DC7) /* <CJK> */
-MAP(0x5E, 0x40, 0x6DE6) /* <CJK> */
-MAP(0x5E, 0x41, 0x6DB8) /* <CJK> */
-MAP(0x5E, 0x42, 0x6DC6) /* <CJK> */
-MAP(0x5E, 0x43, 0x6DEC) /* <CJK> */
-MAP(0x5E, 0x44, 0x6DDE) /* <CJK> */
-MAP(0x5E, 0x45, 0x6DCC) /* <CJK> */
-MAP(0x5E, 0x46, 0x6DE8) /* <CJK> */
-MAP(0x5E, 0x47, 0x6DD2) /* <CJK> */
-MAP(0x5E, 0x48, 0x6DC5) /* <CJK> */
-MAP(0x5E, 0x49, 0x6DFA) /* <CJK> */
-MAP(0x5E, 0x4A, 0x6DD9) /* <CJK> */
-MAP(0x5E, 0x4B, 0x6DE4) /* <CJK> */
-MAP(0x5E, 0x4C, 0x6DD5) /* <CJK> */
-MAP(0x5E, 0x4D, 0x6DEA) /* <CJK> */
-MAP(0x5E, 0x4E, 0x6DEE) /* <CJK> */
-MAP(0x5E, 0x4F, 0x6E2D) /* <CJK> */
-MAP(0x5E, 0x50, 0x6E6E) /* <CJK> */
-MAP(0x5E, 0x51, 0x6E2E) /* <CJK> */
-MAP(0x5E, 0x52, 0x6E19) /* <CJK> */
-MAP(0x5E, 0x53, 0x6E72) /* <CJK> */
-MAP(0x5E, 0x54, 0x6E5F) /* <CJK> */
-MAP(0x5E, 0x55, 0x6E3E) /* <CJK> */
-MAP(0x5E, 0x56, 0x6E23) /* <CJK> */
-MAP(0x5E, 0x57, 0x6E6B) /* <CJK> */
-MAP(0x5E, 0x58, 0x6E2B) /* <CJK> */
-MAP(0x5E, 0x59, 0x6E76) /* <CJK> */
-MAP(0x5E, 0x5A, 0x6E4D) /* <CJK> */
-MAP(0x5E, 0x5B, 0x6E1F) /* <CJK> */
-MAP(0x5E, 0x5C, 0x6E43) /* <CJK> */
-MAP(0x5E, 0x5D, 0x6E3A) /* <CJK> */
-MAP(0x5E, 0x5E, 0x6E4E) /* <CJK> */
-MAP(0x5E, 0x5F, 0x6E24) /* <CJK> */
-MAP(0x5E, 0x60, 0x6EFF) /* <CJK> */
-MAP(0x5E, 0x61, 0x6E1D) /* <CJK> */
-MAP(0x5E, 0x62, 0x6E38) /* <CJK> */
-MAP(0x5E, 0x63, 0x6E82) /* <CJK> */
-MAP(0x5E, 0x64, 0x6EAA) /* <CJK> */
-MAP(0x5E, 0x65, 0x6E98) /* <CJK> */
-MAP(0x5E, 0x66, 0x6EC9) /* <CJK> */
-MAP(0x5E, 0x67, 0x6EB7) /* <CJK> */
-MAP(0x5E, 0x68, 0x6ED3) /* <CJK> */
-MAP(0x5E, 0x69, 0x6EBD) /* <CJK> */
-MAP(0x5E, 0x6A, 0x6EAF) /* <CJK> */
-MAP(0x5E, 0x6B, 0x6EC4) /* <CJK> */
-MAP(0x5E, 0x6C, 0x6EB2) /* <CJK> */
-MAP(0x5E, 0x6D, 0x6ED4) /* <CJK> */
-MAP(0x5E, 0x6E, 0x6ED5) /* <CJK> */
-MAP(0x5E, 0x6F, 0x6E8F) /* <CJK> */
-MAP(0x5E, 0x70, 0x6EA5) /* <CJK> */
-MAP(0x5E, 0x71, 0x6EC2) /* <CJK> */
-MAP(0x5E, 0x72, 0x6E9F) /* <CJK> */
-MAP(0x5E, 0x73, 0x6F41) /* <CJK> */
-MAP(0x5E, 0x74, 0x6F11) /* <CJK> */
-MAP(0x5E, 0x75, 0x704C) /* <CJK> */
-MAP(0x5E, 0x76, 0x6EEC) /* <CJK> */
-MAP(0x5E, 0x77, 0x6EF8) /* <CJK> */
-MAP(0x5E, 0x78, 0x6EFE) /* <CJK> */
-MAP(0x5E, 0x79, 0x6F3F) /* <CJK> */
-MAP(0x5E, 0x7A, 0x6EF2) /* <CJK> */
-MAP(0x5E, 0x7B, 0x6F31) /* <CJK> */
-MAP(0x5E, 0x7C, 0x6EEF) /* <CJK> */
-MAP(0x5E, 0x7D, 0x6F32) /* <CJK> */
-MAP(0x5E, 0x7E, 0x6ECC) /* <CJK> */
-MAP(0x5F, 0x21, 0x6F3E) /* <CJK> */
-MAP(0x5F, 0x22, 0x6F13) /* <CJK> */
-MAP(0x5F, 0x23, 0x6EF7) /* <CJK> */
-MAP(0x5F, 0x24, 0x6F86) /* <CJK> */
-MAP(0x5F, 0x25, 0x6F7A) /* <CJK> */
-MAP(0x5F, 0x26, 0x6F78) /* <CJK> */
-MAP(0x5F, 0x27, 0x6F81) /* <CJK> */
-MAP(0x5F, 0x28, 0x6F80) /* <CJK> */
-MAP(0x5F, 0x29, 0x6F6F) /* <CJK> */
-MAP(0x5F, 0x2A, 0x6F5B) /* <CJK> */
-MAP(0x5F, 0x2B, 0x6FF3) /* <CJK> */
-MAP(0x5F, 0x2C, 0x6F6D) /* <CJK> */
-MAP(0x5F, 0x2D, 0x6F82) /* <CJK> */
-MAP(0x5F, 0x2E, 0x6F7C) /* <CJK> */
-MAP(0x5F, 0x2F, 0x6F58) /* <CJK> */
-MAP(0x5F, 0x30, 0x6F8E) /* <CJK> */
-MAP(0x5F, 0x31, 0x6F91) /* <CJK> */
-MAP(0x5F, 0x32, 0x6FC2) /* <CJK> */
-MAP(0x5F, 0x33, 0x6F66) /* <CJK> */
-MAP(0x5F, 0x34, 0x6FB3) /* <CJK> */
-MAP(0x5F, 0x35, 0x6FA3) /* <CJK> */
-MAP(0x5F, 0x36, 0x6FA1) /* <CJK> */
-MAP(0x5F, 0x37, 0x6FA4) /* <CJK> */
-MAP(0x5F, 0x38, 0x6FB9) /* <CJK> */
-MAP(0x5F, 0x39, 0x6FC6) /* <CJK> */
-MAP(0x5F, 0x3A, 0x6FAA) /* <CJK> */
-MAP(0x5F, 0x3B, 0x6FDF) /* <CJK> */
-MAP(0x5F, 0x3C, 0x6FD5) /* <CJK> */
-MAP(0x5F, 0x3D, 0x6FEC) /* <CJK> */
-MAP(0x5F, 0x3E, 0x6FD4) /* <CJK> */
-MAP(0x5F, 0x3F, 0x6FD8) /* <CJK> */
-MAP(0x5F, 0x40, 0x6FF1) /* <CJK> */
-MAP(0x5F, 0x41, 0x6FEE) /* <CJK> */
-MAP(0x5F, 0x42, 0x6FDB) /* <CJK> */
-MAP(0x5F, 0x43, 0x7009) /* <CJK> */
-MAP(0x5F, 0x44, 0x700B) /* <CJK> */
-MAP(0x5F, 0x45, 0x6FFA) /* <CJK> */
-MAP(0x5F, 0x46, 0x7011) /* <CJK> */
-MAP(0x5F, 0x47, 0x7001) /* <CJK> */
-MAP(0x5F, 0x48, 0x700F) /* <CJK> */
-MAP(0x5F, 0x49, 0x6FFE) /* <CJK> */
-MAP(0x5F, 0x4A, 0x701B) /* <CJK> */
-MAP(0x5F, 0x4B, 0x701A) /* <CJK> */
-MAP(0x5F, 0x4C, 0x6F74) /* <CJK> */
-MAP(0x5F, 0x4D, 0x701D) /* <CJK> */
-MAP(0x5F, 0x4E, 0x7018) /* <CJK> */
-MAP(0x5F, 0x4F, 0x701F) /* <CJK> */
-MAP(0x5F, 0x50, 0x7030) /* <CJK> */
-MAP(0x5F, 0x51, 0x703E) /* <CJK> */
-MAP(0x5F, 0x52, 0x7032) /* <CJK> */
-MAP(0x5F, 0x53, 0x7051) /* <CJK> */
-MAP(0x5F, 0x54, 0x7063) /* <CJK> */
-MAP(0x5F, 0x55, 0x7099) /* <CJK> */
-MAP(0x5F, 0x56, 0x7092) /* <CJK> */
-MAP(0x5F, 0x57, 0x70AF) /* <CJK> */
-MAP(0x5F, 0x58, 0x70F1) /* <CJK> */
-MAP(0x5F, 0x59, 0x70AC) /* <CJK> */
-MAP(0x5F, 0x5A, 0x70B8) /* <CJK> */
-MAP(0x5F, 0x5B, 0x70B3) /* <CJK> */
-MAP(0x5F, 0x5C, 0x70AE) /* <CJK> */
-MAP(0x5F, 0x5D, 0x70DF) /* <CJK> */
-MAP(0x5F, 0x5E, 0x70CB) /* <CJK> */
-MAP(0x5F, 0x5F, 0x70DD) /* <CJK> */
-MAP(0x5F, 0x60, 0x70D9) /* <CJK> */
-MAP(0x5F, 0x61, 0x7109) /* <CJK> */
-MAP(0x5F, 0x62, 0x70FD) /* <CJK> */
-MAP(0x5F, 0x63, 0x711C) /* <CJK> */
-MAP(0x5F, 0x64, 0x7119) /* <CJK> */
-MAP(0x5F, 0x65, 0x7165) /* <CJK> */
-MAP(0x5F, 0x66, 0x7155) /* <CJK> */
-MAP(0x5F, 0x67, 0x7188) /* <CJK> */
-MAP(0x5F, 0x68, 0x7166) /* <CJK> */
-MAP(0x5F, 0x69, 0x7162) /* <CJK> */
-MAP(0x5F, 0x6A, 0x714C) /* <CJK> */
-MAP(0x5F, 0x6B, 0x7156) /* <CJK> */
-MAP(0x5F, 0x6C, 0x716C) /* <CJK> */
-MAP(0x5F, 0x6D, 0x718F) /* <CJK> */
-MAP(0x5F, 0x6E, 0x71FB) /* <CJK> */
-MAP(0x5F, 0x6F, 0x7184) /* <CJK> */
-MAP(0x5F, 0x70, 0x7195) /* <CJK> */
-MAP(0x5F, 0x71, 0x71A8) /* <CJK> */
-MAP(0x5F, 0x72, 0x71AC) /* <CJK> */
-MAP(0x5F, 0x73, 0x71D7) /* <CJK> */
-MAP(0x5F, 0x74, 0x71B9) /* <CJK> */
-MAP(0x5F, 0x75, 0x71BE) /* <CJK> */
-MAP(0x5F, 0x76, 0x71D2) /* <CJK> */
-MAP(0x5F, 0x77, 0x71C9) /* <CJK> */
-MAP(0x5F, 0x78, 0x71D4) /* <CJK> */
-MAP(0x5F, 0x79, 0x71CE) /* <CJK> */
-MAP(0x5F, 0x7A, 0x71E0) /* <CJK> */
-MAP(0x5F, 0x7B, 0x71EC) /* <CJK> */
-MAP(0x5F, 0x7C, 0x71E7) /* <CJK> */
-MAP(0x5F, 0x7D, 0x71F5) /* <CJK> */
-MAP(0x5F, 0x7E, 0x71FC) /* <CJK> */
-MAP(0x60, 0x21, 0x71F9) /* <CJK> */
-MAP(0x60, 0x22, 0x71FF) /* <CJK> */
-MAP(0x60, 0x23, 0x720D) /* <CJK> */
-MAP(0x60, 0x24, 0x7210) /* <CJK> */
-MAP(0x60, 0x25, 0x721B) /* <CJK> */
-MAP(0x60, 0x26, 0x7228) /* <CJK> */
-MAP(0x60, 0x27, 0x722D) /* <CJK> */
-MAP(0x60, 0x28, 0x722C) /* <CJK> */
-MAP(0x60, 0x29, 0x7230) /* <CJK> */
-MAP(0x60, 0x2A, 0x7232) /* <CJK> */
-MAP(0x60, 0x2B, 0x723B) /* <CJK> */
-MAP(0x60, 0x2C, 0x723C) /* <CJK> */
-MAP(0x60, 0x2D, 0x723F) /* <CJK> */
-MAP(0x60, 0x2E, 0x7240) /* <CJK> */
-MAP(0x60, 0x2F, 0x7246) /* <CJK> */
-MAP(0x60, 0x30, 0x724B) /* <CJK> */
-MAP(0x60, 0x31, 0x7258) /* <CJK> */
-MAP(0x60, 0x32, 0x7274) /* <CJK> */
-MAP(0x60, 0x33, 0x727E) /* <CJK> */
-MAP(0x60, 0x34, 0x7282) /* <CJK> */
-MAP(0x60, 0x35, 0x7281) /* <CJK> */
-MAP(0x60, 0x36, 0x7287) /* <CJK> */
-MAP(0x60, 0x37, 0x7292) /* <CJK> */
-MAP(0x60, 0x38, 0x7296) /* <CJK> */
-MAP(0x60, 0x39, 0x72A2) /* <CJK> */
-MAP(0x60, 0x3A, 0x72A7) /* <CJK> */
-MAP(0x60, 0x3B, 0x72B9) /* <CJK> */
-MAP(0x60, 0x3C, 0x72B2) /* <CJK> */
-MAP(0x60, 0x3D, 0x72C3) /* <CJK> */
-MAP(0x60, 0x3E, 0x72C6) /* <CJK> */
-MAP(0x60, 0x3F, 0x72C4) /* <CJK> */
-MAP(0x60, 0x40, 0x72CE) /* <CJK> */
-MAP(0x60, 0x41, 0x72D2) /* <CJK> */
-MAP(0x60, 0x42, 0x72E2) /* <CJK> */
-MAP(0x60, 0x43, 0x72E0) /* <CJK> */
-MAP(0x60, 0x44, 0x72E1) /* <CJK> */
-MAP(0x60, 0x45, 0x72F9) /* <CJK> */
-MAP(0x60, 0x46, 0x72F7) /* <CJK> */
-MAP(0x60, 0x47, 0x500F) /* <CJK> */
-MAP(0x60, 0x48, 0x7317) /* <CJK> */
-MAP(0x60, 0x49, 0x730A) /* <CJK> */
-MAP(0x60, 0x4A, 0x731C) /* <CJK> */
-MAP(0x60, 0x4B, 0x7316) /* <CJK> */
-MAP(0x60, 0x4C, 0x731D) /* <CJK> */
-MAP(0x60, 0x4D, 0x7334) /* <CJK> */
-MAP(0x60, 0x4E, 0x732F) /* <CJK> */
-MAP(0x60, 0x4F, 0x7329) /* <CJK> */
-MAP(0x60, 0x50, 0x7325) /* <CJK> */
-MAP(0x60, 0x51, 0x733E) /* <CJK> */
-MAP(0x60, 0x52, 0x734E) /* <CJK> */
-MAP(0x60, 0x53, 0x734F) /* <CJK> */
-MAP(0x60, 0x54, 0x9ED8) /* <CJK> */
-MAP(0x60, 0x55, 0x7357) /* <CJK> */
-MAP(0x60, 0x56, 0x736A) /* <CJK> */
-MAP(0x60, 0x57, 0x7368) /* <CJK> */
-MAP(0x60, 0x58, 0x7370) /* <CJK> */
-MAP(0x60, 0x59, 0x7378) /* <CJK> */
-MAP(0x60, 0x5A, 0x7375) /* <CJK> */
-MAP(0x60, 0x5B, 0x737B) /* <CJK> */
-MAP(0x60, 0x5C, 0x737A) /* <CJK> */
-MAP(0x60, 0x5D, 0x73C8) /* <CJK> */
-MAP(0x60, 0x5E, 0x73B3) /* <CJK> */
-MAP(0x60, 0x5F, 0x73CE) /* <CJK> */
-MAP(0x60, 0x60, 0x73BB) /* <CJK> */
-MAP(0x60, 0x61, 0x73C0) /* <CJK> */
-MAP(0x60, 0x62, 0x73E5) /* <CJK> */
-MAP(0x60, 0x63, 0x73EE) /* <CJK> */
-MAP(0x60, 0x64, 0x73DE) /* <CJK> */
-MAP(0x60, 0x65, 0x74A2) /* <CJK> */
-MAP(0x60, 0x66, 0x7405) /* <CJK> */
-MAP(0x60, 0x67, 0x746F) /* <CJK> */
-MAP(0x60, 0x68, 0x7425) /* <CJK> */
-MAP(0x60, 0x69, 0x73F8) /* <CJK> */
-MAP(0x60, 0x6A, 0x7432) /* <CJK> */
-MAP(0x60, 0x6B, 0x743A) /* <CJK> */
-MAP(0x60, 0x6C, 0x7455) /* <CJK> */
-MAP(0x60, 0x6D, 0x743F) /* <CJK> */
-MAP(0x60, 0x6E, 0x745F) /* <CJK> */
-MAP(0x60, 0x6F, 0x7459) /* <CJK> */
-MAP(0x60, 0x70, 0x7441) /* <CJK> */
-MAP(0x60, 0x71, 0x745C) /* <CJK> */
-MAP(0x60, 0x72, 0x7469) /* <CJK> */
-MAP(0x60, 0x73, 0x7470) /* <CJK> */
-MAP(0x60, 0x74, 0x7463) /* <CJK> */
-MAP(0x60, 0x75, 0x746A) /* <CJK> */
-MAP(0x60, 0x76, 0x7476) /* <CJK> */
-MAP(0x60, 0x77, 0x747E) /* <CJK> */
-MAP(0x60, 0x78, 0x748B) /* <CJK> */
-MAP(0x60, 0x79, 0x749E) /* <CJK> */
-MAP(0x60, 0x7A, 0x74A7) /* <CJK> */
-MAP(0x60, 0x7B, 0x74CA) /* <CJK> */
-MAP(0x60, 0x7C, 0x74CF) /* <CJK> */
-MAP(0x60, 0x7D, 0x74D4) /* <CJK> */
-MAP(0x60, 0x7E, 0x73F1) /* <CJK> */
-MAP(0x61, 0x21, 0x74E0) /* <CJK> */
-MAP(0x61, 0x22, 0x74E3) /* <CJK> */
-MAP(0x61, 0x23, 0x74E7) /* <CJK> */
-MAP(0x61, 0x24, 0x74E9) /* <CJK> */
-MAP(0x61, 0x25, 0x74EE) /* <CJK> */
-MAP(0x61, 0x26, 0x74F2) /* <CJK> */
-MAP(0x61, 0x27, 0x74F0) /* <CJK> */
-MAP(0x61, 0x28, 0x74F1) /* <CJK> */
-MAP(0x61, 0x29, 0x74F8) /* <CJK> */
-MAP(0x61, 0x2A, 0x74F7) /* <CJK> */
-MAP(0x61, 0x2B, 0x7504) /* <CJK> */
-MAP(0x61, 0x2C, 0x7503) /* <CJK> */
-MAP(0x61, 0x2D, 0x7505) /* <CJK> */
-MAP(0x61, 0x2E, 0x750C) /* <CJK> */
-MAP(0x61, 0x2F, 0x750E) /* <CJK> */
-MAP(0x61, 0x30, 0x750D) /* <CJK> */
-MAP(0x61, 0x31, 0x7515) /* <CJK> */
-MAP(0x61, 0x32, 0x7513) /* <CJK> */
-MAP(0x61, 0x33, 0x751E) /* <CJK> */
-MAP(0x61, 0x34, 0x7526) /* <CJK> */
-MAP(0x61, 0x35, 0x752C) /* <CJK> */
-MAP(0x61, 0x36, 0x753C) /* <CJK> */
-MAP(0x61, 0x37, 0x7544) /* <CJK> */
-MAP(0x61, 0x38, 0x754D) /* <CJK> */
-MAP(0x61, 0x39, 0x754A) /* <CJK> */
-MAP(0x61, 0x3A, 0x7549) /* <CJK> */
-MAP(0x61, 0x3B, 0x755B) /* <CJK> */
-MAP(0x61, 0x3C, 0x7546) /* <CJK> */
-MAP(0x61, 0x3D, 0x755A) /* <CJK> */
-MAP(0x61, 0x3E, 0x7569) /* <CJK> */
-MAP(0x61, 0x3F, 0x7564) /* <CJK> */
-MAP(0x61, 0x40, 0x7567) /* <CJK> */
-MAP(0x61, 0x41, 0x756B) /* <CJK> */
-MAP(0x61, 0x42, 0x756D) /* <CJK> */
-MAP(0x61, 0x43, 0x7578) /* <CJK> */
-MAP(0x61, 0x44, 0x7576) /* <CJK> */
-MAP(0x61, 0x45, 0x7586) /* <CJK> */
-MAP(0x61, 0x46, 0x7587) /* <CJK> */
-MAP(0x61, 0x47, 0x7574) /* <CJK> */
-MAP(0x61, 0x48, 0x758A) /* <CJK> */
-MAP(0x61, 0x49, 0x7589) /* <CJK> */
-MAP(0x61, 0x4A, 0x7582) /* <CJK> */
-MAP(0x61, 0x4B, 0x7594) /* <CJK> */
-MAP(0x61, 0x4C, 0x759A) /* <CJK> */
-MAP(0x61, 0x4D, 0x759D) /* <CJK> */
-MAP(0x61, 0x4E, 0x75A5) /* <CJK> */
-MAP(0x61, 0x4F, 0x75A3) /* <CJK> */
-MAP(0x61, 0x50, 0x75C2) /* <CJK> */
-MAP(0x61, 0x51, 0x75B3) /* <CJK> */
-MAP(0x61, 0x52, 0x75C3) /* <CJK> */
-MAP(0x61, 0x53, 0x75B5) /* <CJK> */
-MAP(0x61, 0x54, 0x75BD) /* <CJK> */
-MAP(0x61, 0x55, 0x75B8) /* <CJK> */
-MAP(0x61, 0x56, 0x75BC) /* <CJK> */
-MAP(0x61, 0x57, 0x75B1) /* <CJK> */
-MAP(0x61, 0x58, 0x75CD) /* <CJK> */
-MAP(0x61, 0x59, 0x75CA) /* <CJK> */
-MAP(0x61, 0x5A, 0x75D2) /* <CJK> */
-MAP(0x61, 0x5B, 0x75D9) /* <CJK> */
-MAP(0x61, 0x5C, 0x75E3) /* <CJK> */
-MAP(0x61, 0x5D, 0x75DE) /* <CJK> */
-MAP(0x61, 0x5E, 0x75FE) /* <CJK> */
-MAP(0x61, 0x5F, 0x75FF) /* <CJK> */
-MAP(0x61, 0x60, 0x75FC) /* <CJK> */
-MAP(0x61, 0x61, 0x7601) /* <CJK> */
-MAP(0x61, 0x62, 0x75F0) /* <CJK> */
-MAP(0x61, 0x63, 0x75FA) /* <CJK> */
-MAP(0x61, 0x64, 0x75F2) /* <CJK> */
-MAP(0x61, 0x65, 0x75F3) /* <CJK> */
-MAP(0x61, 0x66, 0x760B) /* <CJK> */
-MAP(0x61, 0x67, 0x760D) /* <CJK> */
-MAP(0x61, 0x68, 0x7609) /* <CJK> */
-MAP(0x61, 0x69, 0x761F) /* <CJK> */
-MAP(0x61, 0x6A, 0x7627) /* <CJK> */
-MAP(0x61, 0x6B, 0x7620) /* <CJK> */
-MAP(0x61, 0x6C, 0x7621) /* <CJK> */
-MAP(0x61, 0x6D, 0x7622) /* <CJK> */
-MAP(0x61, 0x6E, 0x7624) /* <CJK> */
-MAP(0x61, 0x6F, 0x7634) /* <CJK> */
-MAP(0x61, 0x70, 0x7630) /* <CJK> */
-MAP(0x61, 0x71, 0x763B) /* <CJK> */
-MAP(0x61, 0x72, 0x7647) /* <CJK> */
-MAP(0x61, 0x73, 0x7648) /* <CJK> */
-MAP(0x61, 0x74, 0x7646) /* <CJK> */
-MAP(0x61, 0x75, 0x765C) /* <CJK> */
-MAP(0x61, 0x76, 0x7658) /* <CJK> */
-MAP(0x61, 0x77, 0x7661) /* <CJK> */
-MAP(0x61, 0x78, 0x7662) /* <CJK> */
-MAP(0x61, 0x79, 0x7668) /* <CJK> */
-MAP(0x61, 0x7A, 0x7669) /* <CJK> */
-MAP(0x61, 0x7B, 0x766A) /* <CJK> */
-MAP(0x61, 0x7C, 0x7667) /* <CJK> */
-MAP(0x61, 0x7D, 0x766C) /* <CJK> */
-MAP(0x61, 0x7E, 0x7670) /* <CJK> */
-MAP(0x62, 0x21, 0x7672) /* <CJK> */
-MAP(0x62, 0x22, 0x7676) /* <CJK> */
-MAP(0x62, 0x23, 0x7678) /* <CJK> */
-MAP(0x62, 0x24, 0x767C) /* <CJK> */
-MAP(0x62, 0x25, 0x7680) /* <CJK> */
-MAP(0x62, 0x26, 0x7683) /* <CJK> */
-MAP(0x62, 0x27, 0x7688) /* <CJK> */
-MAP(0x62, 0x28, 0x768B) /* <CJK> */
-MAP(0x62, 0x29, 0x768E) /* <CJK> */
-MAP(0x62, 0x2A, 0x7696) /* <CJK> */
-MAP(0x62, 0x2B, 0x7693) /* <CJK> */
-MAP(0x62, 0x2C, 0x7699) /* <CJK> */
-MAP(0x62, 0x2D, 0x769A) /* <CJK> */
-MAP(0x62, 0x2E, 0x76B0) /* <CJK> */
-MAP(0x62, 0x2F, 0x76B4) /* <CJK> */
-MAP(0x62, 0x30, 0x76B8) /* <CJK> */
-MAP(0x62, 0x31, 0x76B9) /* <CJK> */
-MAP(0x62, 0x32, 0x76BA) /* <CJK> */
-MAP(0x62, 0x33, 0x76C2) /* <CJK> */
-MAP(0x62, 0x34, 0x76CD) /* <CJK> */
-MAP(0x62, 0x35, 0x76D6) /* <CJK> */
-MAP(0x62, 0x36, 0x76D2) /* <CJK> */
-MAP(0x62, 0x37, 0x76DE) /* <CJK> */
-MAP(0x62, 0x38, 0x76E1) /* <CJK> */
-MAP(0x62, 0x39, 0x76E5) /* <CJK> */
-MAP(0x62, 0x3A, 0x76E7) /* <CJK> */
-MAP(0x62, 0x3B, 0x76EA) /* <CJK> */
-MAP(0x62, 0x3C, 0x862F) /* <CJK> */
-MAP(0x62, 0x3D, 0x76FB) /* <CJK> */
-MAP(0x62, 0x3E, 0x7708) /* <CJK> */
-MAP(0x62, 0x3F, 0x7707) /* <CJK> */
-MAP(0x62, 0x40, 0x7704) /* <CJK> */
-MAP(0x62, 0x41, 0x7729) /* <CJK> */
-MAP(0x62, 0x42, 0x7724) /* <CJK> */
-MAP(0x62, 0x43, 0x771E) /* <CJK> */
-MAP(0x62, 0x44, 0x7725) /* <CJK> */
-MAP(0x62, 0x45, 0x7726) /* <CJK> */
-MAP(0x62, 0x46, 0x771B) /* <CJK> */
-MAP(0x62, 0x47, 0x7737) /* <CJK> */
-MAP(0x62, 0x48, 0x7738) /* <CJK> */
-MAP(0x62, 0x49, 0x7747) /* <CJK> */
-MAP(0x62, 0x4A, 0x775A) /* <CJK> */
-MAP(0x62, 0x4B, 0x7768) /* <CJK> */
-MAP(0x62, 0x4C, 0x776B) /* <CJK> */
-MAP(0x62, 0x4D, 0x775B) /* <CJK> */
-MAP(0x62, 0x4E, 0x7765) /* <CJK> */
-MAP(0x62, 0x4F, 0x777F) /* <CJK> */
-MAP(0x62, 0x50, 0x777E) /* <CJK> */
-MAP(0x62, 0x51, 0x7779) /* <CJK> */
-MAP(0x62, 0x52, 0x778E) /* <CJK> */
-MAP(0x62, 0x53, 0x778B) /* <CJK> */
-MAP(0x62, 0x54, 0x7791) /* <CJK> */
-MAP(0x62, 0x55, 0x77A0) /* <CJK> */
-MAP(0x62, 0x56, 0x779E) /* <CJK> */
-MAP(0x62, 0x57, 0x77B0) /* <CJK> */
-MAP(0x62, 0x58, 0x77B6) /* <CJK> */
-MAP(0x62, 0x59, 0x77B9) /* <CJK> */
-MAP(0x62, 0x5A, 0x77BF) /* <CJK> */
-MAP(0x62, 0x5B, 0x77BC) /* <CJK> */
-MAP(0x62, 0x5C, 0x77BD) /* <CJK> */
-MAP(0x62, 0x5D, 0x77BB) /* <CJK> */
-MAP(0x62, 0x5E, 0x77C7) /* <CJK> */
-MAP(0x62, 0x5F, 0x77CD) /* <CJK> */
-MAP(0x62, 0x60, 0x77D7) /* <CJK> */
-MAP(0x62, 0x61, 0x77DA) /* <CJK> */
-MAP(0x62, 0x62, 0x77DC) /* <CJK> */
-MAP(0x62, 0x63, 0x77E3) /* <CJK> */
-MAP(0x62, 0x64, 0x77EE) /* <CJK> */
-MAP(0x62, 0x65, 0x77FC) /* <CJK> */
-MAP(0x62, 0x66, 0x780C) /* <CJK> */
-MAP(0x62, 0x67, 0x7812) /* <CJK> */
-MAP(0x62, 0x68, 0x7926) /* <CJK> */
-MAP(0x62, 0x69, 0x7820) /* <CJK> */
-MAP(0x62, 0x6A, 0x792A) /* <CJK> */
-MAP(0x62, 0x6B, 0x7845) /* <CJK> */
-MAP(0x62, 0x6C, 0x788E) /* <CJK> */
-MAP(0x62, 0x6D, 0x7874) /* <CJK> */
-MAP(0x62, 0x6E, 0x7886) /* <CJK> */
-MAP(0x62, 0x6F, 0x787C) /* <CJK> */
-MAP(0x62, 0x70, 0x789A) /* <CJK> */
-MAP(0x62, 0x71, 0x788C) /* <CJK> */
-MAP(0x62, 0x72, 0x78A3) /* <CJK> */
-MAP(0x62, 0x73, 0x78B5) /* <CJK> */
-MAP(0x62, 0x74, 0x78AA) /* <CJK> */
-MAP(0x62, 0x75, 0x78AF) /* <CJK> */
-MAP(0x62, 0x76, 0x78D1) /* <CJK> */
-MAP(0x62, 0x77, 0x78C6) /* <CJK> */
-MAP(0x62, 0x78, 0x78CB) /* <CJK> */
-MAP(0x62, 0x79, 0x78D4) /* <CJK> */
-MAP(0x62, 0x7A, 0x78BE) /* <CJK> */
-MAP(0x62, 0x7B, 0x78BC) /* <CJK> */
-MAP(0x62, 0x7C, 0x78C5) /* <CJK> */
-MAP(0x62, 0x7D, 0x78CA) /* <CJK> */
-MAP(0x62, 0x7E, 0x78EC) /* <CJK> */
-MAP(0x63, 0x21, 0x78E7) /* <CJK> */
-MAP(0x63, 0x22, 0x78DA) /* <CJK> */
-MAP(0x63, 0x23, 0x78FD) /* <CJK> */
-MAP(0x63, 0x24, 0x78F4) /* <CJK> */
-MAP(0x63, 0x25, 0x7907) /* <CJK> */
-MAP(0x63, 0x26, 0x7912) /* <CJK> */
-MAP(0x63, 0x27, 0x7911) /* <CJK> */
-MAP(0x63, 0x28, 0x7919) /* <CJK> */
-MAP(0x63, 0x29, 0x792C) /* <CJK> */
-MAP(0x63, 0x2A, 0x792B) /* <CJK> */
-MAP(0x63, 0x2B, 0x7940) /* <CJK> */
-MAP(0x63, 0x2C, 0x7960) /* <CJK> */
-MAP(0x63, 0x2D, 0x7957) /* <CJK> */
-MAP(0x63, 0x2E, 0x795F) /* <CJK> */
-MAP(0x63, 0x2F, 0x795A) /* <CJK> */
-MAP(0x63, 0x30, 0x7955) /* <CJK> */
-MAP(0x63, 0x31, 0x7953) /* <CJK> */
-MAP(0x63, 0x32, 0x797A) /* <CJK> */
-MAP(0x63, 0x33, 0x797F) /* <CJK> */
-MAP(0x63, 0x34, 0x798A) /* <CJK> */
-MAP(0x63, 0x35, 0x799D) /* <CJK> */
-MAP(0x63, 0x36, 0x79A7) /* <CJK> */
-MAP(0x63, 0x37, 0x9F4B) /* <CJK> */
-MAP(0x63, 0x38, 0x79AA) /* <CJK> */
-MAP(0x63, 0x39, 0x79AE) /* <CJK> */
-MAP(0x63, 0x3A, 0x79B3) /* <CJK> */
-MAP(0x63, 0x3B, 0x79B9) /* <CJK> */
-MAP(0x63, 0x3C, 0x79BA) /* <CJK> */
-MAP(0x63, 0x3D, 0x79C9) /* <CJK> */
-MAP(0x63, 0x3E, 0x79D5) /* <CJK> */
-MAP(0x63, 0x3F, 0x79E7) /* <CJK> */
-MAP(0x63, 0x40, 0x79EC) /* <CJK> */
-MAP(0x63, 0x41, 0x79E1) /* <CJK> */
-MAP(0x63, 0x42, 0x79E3) /* <CJK> */
-MAP(0x63, 0x43, 0x7A08) /* <CJK> */
-MAP(0x63, 0x44, 0x7A0D) /* <CJK> */
-MAP(0x63, 0x45, 0x7A18) /* <CJK> */
-MAP(0x63, 0x46, 0x7A19) /* <CJK> */
-MAP(0x63, 0x47, 0x7A20) /* <CJK> */
-MAP(0x63, 0x48, 0x7A1F) /* <CJK> */
-MAP(0x63, 0x49, 0x7980) /* <CJK> */
-MAP(0x63, 0x4A, 0x7A31) /* <CJK> */
-MAP(0x63, 0x4B, 0x7A3B) /* <CJK> */
-MAP(0x63, 0x4C, 0x7A3E) /* <CJK> */
-MAP(0x63, 0x4D, 0x7A37) /* <CJK> */
-MAP(0x63, 0x4E, 0x7A43) /* <CJK> */
-MAP(0x63, 0x4F, 0x7A57) /* <CJK> */
-MAP(0x63, 0x50, 0x7A49) /* <CJK> */
-MAP(0x63, 0x51, 0x7A61) /* <CJK> */
-MAP(0x63, 0x52, 0x7A62) /* <CJK> */
-MAP(0x63, 0x53, 0x7A69) /* <CJK> */
-MAP(0x63, 0x54, 0x9F9D) /* <CJK> */
-MAP(0x63, 0x55, 0x7A70) /* <CJK> */
-MAP(0x63, 0x56, 0x7A79) /* <CJK> */
-MAP(0x63, 0x57, 0x7A7D) /* <CJK> */
-MAP(0x63, 0x58, 0x7A88) /* <CJK> */
-MAP(0x63, 0x59, 0x7A97) /* <CJK> */
-MAP(0x63, 0x5A, 0x7A95) /* <CJK> */
-MAP(0x63, 0x5B, 0x7A98) /* <CJK> */
-MAP(0x63, 0x5C, 0x7A96) /* <CJK> */
-MAP(0x63, 0x5D, 0x7AA9) /* <CJK> */
-MAP(0x63, 0x5E, 0x7AC8) /* <CJK> */
-MAP(0x63, 0x5F, 0x7AB0) /* <CJK> */
-MAP(0x63, 0x60, 0x7AB6) /* <CJK> */
-MAP(0x63, 0x61, 0x7AC5) /* <CJK> */
-MAP(0x63, 0x62, 0x7AC4) /* <CJK> */
-MAP(0x63, 0x63, 0x7ABF) /* <CJK> */
-MAP(0x63, 0x64, 0x9083) /* <CJK> */
-MAP(0x63, 0x65, 0x7AC7) /* <CJK> */
-MAP(0x63, 0x66, 0x7ACA) /* <CJK> */
-MAP(0x63, 0x67, 0x7ACD) /* <CJK> */
-MAP(0x63, 0x68, 0x7ACF) /* <CJK> */
-MAP(0x63, 0x69, 0x7AD5) /* <CJK> */
-MAP(0x63, 0x6A, 0x7AD3) /* <CJK> */
-MAP(0x63, 0x6B, 0x7AD9) /* <CJK> */
-MAP(0x63, 0x6C, 0x7ADA) /* <CJK> */
-MAP(0x63, 0x6D, 0x7ADD) /* <CJK> */
-MAP(0x63, 0x6E, 0x7AE1) /* <CJK> */
-MAP(0x63, 0x6F, 0x7AE2) /* <CJK> */
-MAP(0x63, 0x70, 0x7AE6) /* <CJK> */
-MAP(0x63, 0x71, 0x7AED) /* <CJK> */
-MAP(0x63, 0x72, 0x7AF0) /* <CJK> */
-MAP(0x63, 0x73, 0x7B02) /* <CJK> */
-MAP(0x63, 0x74, 0x7B0F) /* <CJK> */
-MAP(0x63, 0x75, 0x7B0A) /* <CJK> */
-MAP(0x63, 0x76, 0x7B06) /* <CJK> */
-MAP(0x63, 0x77, 0x7B33) /* <CJK> */
-MAP(0x63, 0x78, 0x7B18) /* <CJK> */
-MAP(0x63, 0x79, 0x7B19) /* <CJK> */
-MAP(0x63, 0x7A, 0x7B1E) /* <CJK> */
-MAP(0x63, 0x7B, 0x7B35) /* <CJK> */
-MAP(0x63, 0x7C, 0x7B28) /* <CJK> */
-MAP(0x63, 0x7D, 0x7B36) /* <CJK> */
-MAP(0x63, 0x7E, 0x7B50) /* <CJK> */
-MAP(0x64, 0x21, 0x7B7A) /* <CJK> */
-MAP(0x64, 0x22, 0x7B04) /* <CJK> */
-MAP(0x64, 0x23, 0x7B4D) /* <CJK> */
-MAP(0x64, 0x24, 0x7B0B) /* <CJK> */
-MAP(0x64, 0x25, 0x7B4C) /* <CJK> */
-MAP(0x64, 0x26, 0x7B45) /* <CJK> */
-MAP(0x64, 0x27, 0x7B75) /* <CJK> */
-MAP(0x64, 0x28, 0x7B65) /* <CJK> */
-MAP(0x64, 0x29, 0x7B74) /* <CJK> */
-MAP(0x64, 0x2A, 0x7B67) /* <CJK> */
-MAP(0x64, 0x2B, 0x7B70) /* <CJK> */
-MAP(0x64, 0x2C, 0x7B71) /* <CJK> */
-MAP(0x64, 0x2D, 0x7B6C) /* <CJK> */
-MAP(0x64, 0x2E, 0x7B6E) /* <CJK> */
-MAP(0x64, 0x2F, 0x7B9D) /* <CJK> */
-MAP(0x64, 0x30, 0x7B98) /* <CJK> */
-MAP(0x64, 0x31, 0x7B9F) /* <CJK> */
-MAP(0x64, 0x32, 0x7B8D) /* <CJK> */
-MAP(0x64, 0x33, 0x7B9C) /* <CJK> */
-MAP(0x64, 0x34, 0x7B9A) /* <CJK> */
-MAP(0x64, 0x35, 0x7B8B) /* <CJK> */
-MAP(0x64, 0x36, 0x7B92) /* <CJK> */
-MAP(0x64, 0x37, 0x7B8F) /* <CJK> */
-MAP(0x64, 0x38, 0x7B5D) /* <CJK> */
-MAP(0x64, 0x39, 0x7B99) /* <CJK> */
-MAP(0x64, 0x3A, 0x7BCB) /* <CJK> */
-MAP(0x64, 0x3B, 0x7BC1) /* <CJK> */
-MAP(0x64, 0x3C, 0x7BCC) /* <CJK> */
-MAP(0x64, 0x3D, 0x7BCF) /* <CJK> */
-MAP(0x64, 0x3E, 0x7BB4) /* <CJK> */
-MAP(0x64, 0x3F, 0x7BC6) /* <CJK> */
-MAP(0x64, 0x40, 0x7BDD) /* <CJK> */
-MAP(0x64, 0x41, 0x7BE9) /* <CJK> */
-MAP(0x64, 0x42, 0x7C11) /* <CJK> */
-MAP(0x64, 0x43, 0x7C14) /* <CJK> */
-MAP(0x64, 0x44, 0x7BE6) /* <CJK> */
-MAP(0x64, 0x45, 0x7BE5) /* <CJK> */
-MAP(0x64, 0x46, 0x7C60) /* <CJK> */
-MAP(0x64, 0x47, 0x7C00) /* <CJK> */
-MAP(0x64, 0x48, 0x7C07) /* <CJK> */
-MAP(0x64, 0x49, 0x7C13) /* <CJK> */
-MAP(0x64, 0x4A, 0x7BF3) /* <CJK> */
-MAP(0x64, 0x4B, 0x7BF7) /* <CJK> */
-MAP(0x64, 0x4C, 0x7C17) /* <CJK> */
-MAP(0x64, 0x4D, 0x7C0D) /* <CJK> */
-MAP(0x64, 0x4E, 0x7BF6) /* <CJK> */
-MAP(0x64, 0x4F, 0x7C23) /* <CJK> */
-MAP(0x64, 0x50, 0x7C27) /* <CJK> */
-MAP(0x64, 0x51, 0x7C2A) /* <CJK> */
-MAP(0x64, 0x52, 0x7C1F) /* <CJK> */
-MAP(0x64, 0x53, 0x7C37) /* <CJK> */
-MAP(0x64, 0x54, 0x7C2B) /* <CJK> */
-MAP(0x64, 0x55, 0x7C3D) /* <CJK> */
-MAP(0x64, 0x56, 0x7C4C) /* <CJK> */
-MAP(0x64, 0x57, 0x7C43) /* <CJK> */
-MAP(0x64, 0x58, 0x7C54) /* <CJK> */
-MAP(0x64, 0x59, 0x7C4F) /* <CJK> */
-MAP(0x64, 0x5A, 0x7C40) /* <CJK> */
-MAP(0x64, 0x5B, 0x7C50) /* <CJK> */
-MAP(0x64, 0x5C, 0x7C58) /* <CJK> */
-MAP(0x64, 0x5D, 0x7C5F) /* <CJK> */
-MAP(0x64, 0x5E, 0x7C64) /* <CJK> */
-MAP(0x64, 0x5F, 0x7C56) /* <CJK> */
-MAP(0x64, 0x60, 0x7C65) /* <CJK> */
-MAP(0x64, 0x61, 0x7C6C) /* <CJK> */
-MAP(0x64, 0x62, 0x7C75) /* <CJK> */
-MAP(0x64, 0x63, 0x7C83) /* <CJK> */
-MAP(0x64, 0x64, 0x7C90) /* <CJK> */
-MAP(0x64, 0x65, 0x7CA4) /* <CJK> */
-MAP(0x64, 0x66, 0x7CAD) /* <CJK> */
-MAP(0x64, 0x67, 0x7CA2) /* <CJK> */
-MAP(0x64, 0x68, 0x7CAB) /* <CJK> */
-MAP(0x64, 0x69, 0x7CA1) /* <CJK> */
-MAP(0x64, 0x6A, 0x7CA8) /* <CJK> */
-MAP(0x64, 0x6B, 0x7CB3) /* <CJK> */
-MAP(0x64, 0x6C, 0x7CB2) /* <CJK> */
-MAP(0x64, 0x6D, 0x7CB1) /* <CJK> */
-MAP(0x64, 0x6E, 0x7CAE) /* <CJK> */
-MAP(0x64, 0x6F, 0x7CB9) /* <CJK> */
-MAP(0x64, 0x70, 0x7CBD) /* <CJK> */
-MAP(0x64, 0x71, 0x7CC0) /* <CJK> */
-MAP(0x64, 0x72, 0x7CC5) /* <CJK> */
-MAP(0x64, 0x73, 0x7CC2) /* <CJK> */
-MAP(0x64, 0x74, 0x7CD8) /* <CJK> */
-MAP(0x64, 0x75, 0x7CD2) /* <CJK> */
-MAP(0x64, 0x76, 0x7CDC) /* <CJK> */
-MAP(0x64, 0x77, 0x7CE2) /* <CJK> */
-MAP(0x64, 0x78, 0x9B3B) /* <CJK> */
-MAP(0x64, 0x79, 0x7CEF) /* <CJK> */
-MAP(0x64, 0x7A, 0x7CF2) /* <CJK> */
-MAP(0x64, 0x7B, 0x7CF4) /* <CJK> */
-MAP(0x64, 0x7C, 0x7CF6) /* <CJK> */
-MAP(0x64, 0x7D, 0x7CFA) /* <CJK> */
-MAP(0x64, 0x7E, 0x7D06) /* <CJK> */
-MAP(0x65, 0x21, 0x7D02) /* <CJK> */
-MAP(0x65, 0x22, 0x7D1C) /* <CJK> */
-MAP(0x65, 0x23, 0x7D15) /* <CJK> */
-MAP(0x65, 0x24, 0x7D0A) /* <CJK> */
-MAP(0x65, 0x25, 0x7D45) /* <CJK> */
-MAP(0x65, 0x26, 0x7D4B) /* <CJK> */
-MAP(0x65, 0x27, 0x7D2E) /* <CJK> */
-MAP(0x65, 0x28, 0x7D32) /* <CJK> */
-MAP(0x65, 0x29, 0x7D3F) /* <CJK> */
-MAP(0x65, 0x2A, 0x7D35) /* <CJK> */
-MAP(0x65, 0x2B, 0x7D46) /* <CJK> */
-MAP(0x65, 0x2C, 0x7D73) /* <CJK> */
-MAP(0x65, 0x2D, 0x7D56) /* <CJK> */
-MAP(0x65, 0x2E, 0x7D4E) /* <CJK> */
-MAP(0x65, 0x2F, 0x7D72) /* <CJK> */
-MAP(0x65, 0x30, 0x7D68) /* <CJK> */
-MAP(0x65, 0x31, 0x7D6E) /* <CJK> */
-MAP(0x65, 0x32, 0x7D4F) /* <CJK> */
-MAP(0x65, 0x33, 0x7D63) /* <CJK> */
-MAP(0x65, 0x34, 0x7D93) /* <CJK> */
-MAP(0x65, 0x35, 0x7D89) /* <CJK> */
-MAP(0x65, 0x36, 0x7D5B) /* <CJK> */
-MAP(0x65, 0x37, 0x7D8F) /* <CJK> */
-MAP(0x65, 0x38, 0x7D7D) /* <CJK> */
-MAP(0x65, 0x39, 0x7D9B) /* <CJK> */
-MAP(0x65, 0x3A, 0x7DBA) /* <CJK> */
-MAP(0x65, 0x3B, 0x7DAE) /* <CJK> */
-MAP(0x65, 0x3C, 0x7DA3) /* <CJK> */
-MAP(0x65, 0x3D, 0x7DB5) /* <CJK> */
-MAP(0x65, 0x3E, 0x7DC7) /* <CJK> */
-MAP(0x65, 0x3F, 0x7DBD) /* <CJK> */
-MAP(0x65, 0x40, 0x7DAB) /* <CJK> */
-MAP(0x65, 0x41, 0x7E3D) /* <CJK> */
-MAP(0x65, 0x42, 0x7DA2) /* <CJK> */
-MAP(0x65, 0x43, 0x7DAF) /* <CJK> */
-MAP(0x65, 0x44, 0x7DDC) /* <CJK> */
-MAP(0x65, 0x45, 0x7DB8) /* <CJK> */
-MAP(0x65, 0x46, 0x7D9F) /* <CJK> */
-MAP(0x65, 0x47, 0x7DB0) /* <CJK> */
-MAP(0x65, 0x48, 0x7DD8) /* <CJK> */
-MAP(0x65, 0x49, 0x7DDD) /* <CJK> */
-MAP(0x65, 0x4A, 0x7DE4) /* <CJK> */
-MAP(0x65, 0x4B, 0x7DDE) /* <CJK> */
-MAP(0x65, 0x4C, 0x7DFB) /* <CJK> */
-MAP(0x65, 0x4D, 0x7DF2) /* <CJK> */
-MAP(0x65, 0x4E, 0x7DE1) /* <CJK> */
-MAP(0x65, 0x4F, 0x7E05) /* <CJK> */
-MAP(0x65, 0x50, 0x7E0A) /* <CJK> */
-MAP(0x65, 0x51, 0x7E23) /* <CJK> */
-MAP(0x65, 0x52, 0x7E21) /* <CJK> */
-MAP(0x65, 0x53, 0x7E12) /* <CJK> */
-MAP(0x65, 0x54, 0x7E31) /* <CJK> */
-MAP(0x65, 0x55, 0x7E1F) /* <CJK> */
-MAP(0x65, 0x56, 0x7E09) /* <CJK> */
-MAP(0x65, 0x57, 0x7E0B) /* <CJK> */
-MAP(0x65, 0x58, 0x7E22) /* <CJK> */
-MAP(0x65, 0x59, 0x7E46) /* <CJK> */
-MAP(0x65, 0x5A, 0x7E66) /* <CJK> */
-MAP(0x65, 0x5B, 0x7E3B) /* <CJK> */
-MAP(0x65, 0x5C, 0x7E35) /* <CJK> */
-MAP(0x65, 0x5D, 0x7E39) /* <CJK> */
-MAP(0x65, 0x5E, 0x7E43) /* <CJK> */
-MAP(0x65, 0x5F, 0x7E37) /* <CJK> */
-MAP(0x65, 0x60, 0x7E32) /* <CJK> */
-MAP(0x65, 0x61, 0x7E3A) /* <CJK> */
-MAP(0x65, 0x62, 0x7E67) /* <CJK> */
-MAP(0x65, 0x63, 0x7E5D) /* <CJK> */
-MAP(0x65, 0x64, 0x7E56) /* <CJK> */
-MAP(0x65, 0x65, 0x7E5E) /* <CJK> */
-MAP(0x65, 0x66, 0x7E59) /* <CJK> */
-MAP(0x65, 0x67, 0x7E5A) /* <CJK> */
-MAP(0x65, 0x68, 0x7E79) /* <CJK> */
-MAP(0x65, 0x69, 0x7E6A) /* <CJK> */
-MAP(0x65, 0x6A, 0x7E69) /* <CJK> */
-MAP(0x65, 0x6B, 0x7E7C) /* <CJK> */
-MAP(0x65, 0x6C, 0x7E7B) /* <CJK> */
-MAP(0x65, 0x6D, 0x7E83) /* <CJK> */
-MAP(0x65, 0x6E, 0x7DD5) /* <CJK> */
-MAP(0x65, 0x6F, 0x7E7D) /* <CJK> */
-MAP(0x65, 0x70, 0x8FAE) /* <CJK> */
-MAP(0x65, 0x71, 0x7E7F) /* <CJK> */
-MAP(0x65, 0x72, 0x7E88) /* <CJK> */
-MAP(0x65, 0x73, 0x7E89) /* <CJK> */
-MAP(0x65, 0x74, 0x7E8C) /* <CJK> */
-MAP(0x65, 0x75, 0x7E92) /* <CJK> */
-MAP(0x65, 0x76, 0x7E90) /* <CJK> */
-MAP(0x65, 0x77, 0x7E93) /* <CJK> */
-MAP(0x65, 0x78, 0x7E94) /* <CJK> */
-MAP(0x65, 0x79, 0x7E96) /* <CJK> */
-MAP(0x65, 0x7A, 0x7E8E) /* <CJK> */
-MAP(0x65, 0x7B, 0x7E9B) /* <CJK> */
-MAP(0x65, 0x7C, 0x7E9C) /* <CJK> */
-MAP(0x65, 0x7D, 0x7F38) /* <CJK> */
-MAP(0x65, 0x7E, 0x7F3A) /* <CJK> */
-MAP(0x66, 0x21, 0x7F45) /* <CJK> */
-MAP(0x66, 0x22, 0x7F4C) /* <CJK> */
-MAP(0x66, 0x23, 0x7F4D) /* <CJK> */
-MAP(0x66, 0x24, 0x7F4E) /* <CJK> */
-MAP(0x66, 0x25, 0x7F50) /* <CJK> */
-MAP(0x66, 0x26, 0x7F51) /* <CJK> */
-MAP(0x66, 0x27, 0x7F55) /* <CJK> */
-MAP(0x66, 0x28, 0x7F54) /* <CJK> */
-MAP(0x66, 0x29, 0x7F58) /* <CJK> */
-MAP(0x66, 0x2A, 0x7F5F) /* <CJK> */
-MAP(0x66, 0x2B, 0x7F60) /* <CJK> */
-MAP(0x66, 0x2C, 0x7F68) /* <CJK> */
-MAP(0x66, 0x2D, 0x7F69) /* <CJK> */
-MAP(0x66, 0x2E, 0x7F67) /* <CJK> */
-MAP(0x66, 0x2F, 0x7F78) /* <CJK> */
-MAP(0x66, 0x30, 0x7F82) /* <CJK> */
-MAP(0x66, 0x31, 0x7F86) /* <CJK> */
-MAP(0x66, 0x32, 0x7F83) /* <CJK> */
-MAP(0x66, 0x33, 0x7F88) /* <CJK> */
-MAP(0x66, 0x34, 0x7F87) /* <CJK> */
-MAP(0x66, 0x35, 0x7F8C) /* <CJK> */
-MAP(0x66, 0x36, 0x7F94) /* <CJK> */
-MAP(0x66, 0x37, 0x7F9E) /* <CJK> */
-MAP(0x66, 0x38, 0x7F9D) /* <CJK> */
-MAP(0x66, 0x39, 0x7F9A) /* <CJK> */
-MAP(0x66, 0x3A, 0x7FA3) /* <CJK> */
-MAP(0x66, 0x3B, 0x7FAF) /* <CJK> */
-MAP(0x66, 0x3C, 0x7FB2) /* <CJK> */
-MAP(0x66, 0x3D, 0x7FB9) /* <CJK> */
-MAP(0x66, 0x3E, 0x7FAE) /* <CJK> */
-MAP(0x66, 0x3F, 0x7FB6) /* <CJK> */
-MAP(0x66, 0x40, 0x7FB8) /* <CJK> */
-MAP(0x66, 0x41, 0x8B71) /* <CJK> */
-MAP(0x66, 0x42, 0x7FC5) /* <CJK> */
-MAP(0x66, 0x43, 0x7FC6) /* <CJK> */
-MAP(0x66, 0x44, 0x7FCA) /* <CJK> */
-MAP(0x66, 0x45, 0x7FD5) /* <CJK> */
-MAP(0x66, 0x46, 0x7FD4) /* <CJK> */
-MAP(0x66, 0x47, 0x7FE1) /* <CJK> */
-MAP(0x66, 0x48, 0x7FE6) /* <CJK> */
-MAP(0x66, 0x49, 0x7FE9) /* <CJK> */
-MAP(0x66, 0x4A, 0x7FF3) /* <CJK> */
-MAP(0x66, 0x4B, 0x7FF9) /* <CJK> */
-MAP(0x66, 0x4C, 0x98DC) /* <CJK> */
-MAP(0x66, 0x4D, 0x8006) /* <CJK> */
-MAP(0x66, 0x4E, 0x8004) /* <CJK> */
-MAP(0x66, 0x4F, 0x800B) /* <CJK> */
-MAP(0x66, 0x50, 0x8012) /* <CJK> */
-MAP(0x66, 0x51, 0x8018) /* <CJK> */
-MAP(0x66, 0x52, 0x8019) /* <CJK> */
-MAP(0x66, 0x53, 0x801C) /* <CJK> */
-MAP(0x66, 0x54, 0x8021) /* <CJK> */
-MAP(0x66, 0x55, 0x8028) /* <CJK> */
-MAP(0x66, 0x56, 0x803F) /* <CJK> */
-MAP(0x66, 0x57, 0x803B) /* <CJK> */
-MAP(0x66, 0x58, 0x804A) /* <CJK> */
-MAP(0x66, 0x59, 0x8046) /* <CJK> */
-MAP(0x66, 0x5A, 0x8052) /* <CJK> */
-MAP(0x66, 0x5B, 0x8058) /* <CJK> */
-MAP(0x66, 0x5C, 0x805A) /* <CJK> */
-MAP(0x66, 0x5D, 0x805F) /* <CJK> */
-MAP(0x66, 0x5E, 0x8062) /* <CJK> */
-MAP(0x66, 0x5F, 0x8068) /* <CJK> */
-MAP(0x66, 0x60, 0x8073) /* <CJK> */
-MAP(0x66, 0x61, 0x8072) /* <CJK> */
-MAP(0x66, 0x62, 0x8070) /* <CJK> */
-MAP(0x66, 0x63, 0x8076) /* <CJK> */
-MAP(0x66, 0x64, 0x8079) /* <CJK> */
-MAP(0x66, 0x65, 0x807D) /* <CJK> */
-MAP(0x66, 0x66, 0x807F) /* <CJK> */
-MAP(0x66, 0x67, 0x8084) /* <CJK> */
-MAP(0x66, 0x68, 0x8086) /* <CJK> */
-MAP(0x66, 0x69, 0x8085) /* <CJK> */
-MAP(0x66, 0x6A, 0x809B) /* <CJK> */
-MAP(0x66, 0x6B, 0x8093) /* <CJK> */
-MAP(0x66, 0x6C, 0x809A) /* <CJK> */
-MAP(0x66, 0x6D, 0x80AD) /* <CJK> */
-MAP(0x66, 0x6E, 0x5190) /* <CJK> */
-MAP(0x66, 0x6F, 0x80AC) /* <CJK> */
-MAP(0x66, 0x70, 0x80DB) /* <CJK> */
-MAP(0x66, 0x71, 0x80E5) /* <CJK> */
-MAP(0x66, 0x72, 0x80D9) /* <CJK> */
-MAP(0x66, 0x73, 0x80DD) /* <CJK> */
-MAP(0x66, 0x74, 0x80C4) /* <CJK> */
-MAP(0x66, 0x75, 0x80DA) /* <CJK> */
-MAP(0x66, 0x76, 0x80D6) /* <CJK> */
-MAP(0x66, 0x77, 0x8109) /* <CJK> */
-MAP(0x66, 0x78, 0x80EF) /* <CJK> */
-MAP(0x66, 0x79, 0x80F1) /* <CJK> */
-MAP(0x66, 0x7A, 0x811B) /* <CJK> */
-MAP(0x66, 0x7B, 0x8129) /* <CJK> */
-MAP(0x66, 0x7C, 0x8123) /* <CJK> */
-MAP(0x66, 0x7D, 0x812F) /* <CJK> */
-MAP(0x66, 0x7E, 0x814B) /* <CJK> */
-MAP(0x67, 0x21, 0x968B) /* <CJK> */
-MAP(0x67, 0x22, 0x8146) /* <CJK> */
-MAP(0x67, 0x23, 0x813E) /* <CJK> */
-MAP(0x67, 0x24, 0x8153) /* <CJK> */
-MAP(0x67, 0x25, 0x8151) /* <CJK> */
-MAP(0x67, 0x26, 0x80FC) /* <CJK> */
-MAP(0x67, 0x27, 0x8171) /* <CJK> */
-MAP(0x67, 0x28, 0x816E) /* <CJK> */
-MAP(0x67, 0x29, 0x8165) /* <CJK> */
-MAP(0x67, 0x2A, 0x8166) /* <CJK> */
-MAP(0x67, 0x2B, 0x8174) /* <CJK> */
-MAP(0x67, 0x2C, 0x8183) /* <CJK> */
-MAP(0x67, 0x2D, 0x8188) /* <CJK> */
-MAP(0x67, 0x2E, 0x818A) /* <CJK> */
-MAP(0x67, 0x2F, 0x8180) /* <CJK> */
-MAP(0x67, 0x30, 0x8182) /* <CJK> */
-MAP(0x67, 0x31, 0x81A0) /* <CJK> */
-MAP(0x67, 0x32, 0x8195) /* <CJK> */
-MAP(0x67, 0x33, 0x81A4) /* <CJK> */
-MAP(0x67, 0x34, 0x81A3) /* <CJK> */
-MAP(0x67, 0x35, 0x815F) /* <CJK> */
-MAP(0x67, 0x36, 0x8193) /* <CJK> */
-MAP(0x67, 0x37, 0x81A9) /* <CJK> */
-MAP(0x67, 0x38, 0x81B0) /* <CJK> */
-MAP(0x67, 0x39, 0x81B5) /* <CJK> */
-MAP(0x67, 0x3A, 0x81BE) /* <CJK> */
-MAP(0x67, 0x3B, 0x81B8) /* <CJK> */
-MAP(0x67, 0x3C, 0x81BD) /* <CJK> */
-MAP(0x67, 0x3D, 0x81C0) /* <CJK> */
-MAP(0x67, 0x3E, 0x81C2) /* <CJK> */
-MAP(0x67, 0x3F, 0x81BA) /* <CJK> */
-MAP(0x67, 0x40, 0x81C9) /* <CJK> */
-MAP(0x67, 0x41, 0x81CD) /* <CJK> */
-MAP(0x67, 0x42, 0x81D1) /* <CJK> */
-MAP(0x67, 0x43, 0x81D9) /* <CJK> */
-MAP(0x67, 0x44, 0x81D8) /* <CJK> */
-MAP(0x67, 0x45, 0x81C8) /* <CJK> */
-MAP(0x67, 0x46, 0x81DA) /* <CJK> */
-MAP(0x67, 0x47, 0x81DF) /* <CJK> */
-MAP(0x67, 0x48, 0x81E0) /* <CJK> */
-MAP(0x67, 0x49, 0x81E7) /* <CJK> */
-MAP(0x67, 0x4A, 0x81FA) /* <CJK> */
-MAP(0x67, 0x4B, 0x81FB) /* <CJK> */
-MAP(0x67, 0x4C, 0x81FE) /* <CJK> */
-MAP(0x67, 0x4D, 0x8201) /* <CJK> */
-MAP(0x67, 0x4E, 0x8202) /* <CJK> */
-MAP(0x67, 0x4F, 0x8205) /* <CJK> */
-MAP(0x67, 0x50, 0x8207) /* <CJK> */
-MAP(0x67, 0x51, 0x820A) /* <CJK> */
-MAP(0x67, 0x52, 0x820D) /* <CJK> */
-MAP(0x67, 0x53, 0x8210) /* <CJK> */
-MAP(0x67, 0x54, 0x8216) /* <CJK> */
-MAP(0x67, 0x55, 0x8229) /* <CJK> */
-MAP(0x67, 0x56, 0x822B) /* <CJK> */
-MAP(0x67, 0x57, 0x8238) /* <CJK> */
-MAP(0x67, 0x58, 0x8233) /* <CJK> */
-MAP(0x67, 0x59, 0x8240) /* <CJK> */
-MAP(0x67, 0x5A, 0x8259) /* <CJK> */
-MAP(0x67, 0x5B, 0x8258) /* <CJK> */
-MAP(0x67, 0x5C, 0x825D) /* <CJK> */
-MAP(0x67, 0x5D, 0x825A) /* <CJK> */
-MAP(0x67, 0x5E, 0x825F) /* <CJK> */
-MAP(0x67, 0x5F, 0x8264) /* <CJK> */
-MAP(0x67, 0x60, 0x8262) /* <CJK> */
-MAP(0x67, 0x61, 0x8268) /* <CJK> */
-MAP(0x67, 0x62, 0x826A) /* <CJK> */
-MAP(0x67, 0x63, 0x826B) /* <CJK> */
-MAP(0x67, 0x64, 0x822E) /* <CJK> */
-MAP(0x67, 0x65, 0x8271) /* <CJK> */
-MAP(0x67, 0x66, 0x8277) /* <CJK> */
-MAP(0x67, 0x67, 0x8278) /* <CJK> */
-MAP(0x67, 0x68, 0x827E) /* <CJK> */
-MAP(0x67, 0x69, 0x828D) /* <CJK> */
-MAP(0x67, 0x6A, 0x8292) /* <CJK> */
-MAP(0x67, 0x6B, 0x82AB) /* <CJK> */
-MAP(0x67, 0x6C, 0x829F) /* <CJK> */
-MAP(0x67, 0x6D, 0x82BB) /* <CJK> */
-MAP(0x67, 0x6E, 0x82AC) /* <CJK> */
-MAP(0x67, 0x6F, 0x82E1) /* <CJK> */
-MAP(0x67, 0x70, 0x82E3) /* <CJK> */
-MAP(0x67, 0x71, 0x82DF) /* <CJK> */
-MAP(0x67, 0x72, 0x82D2) /* <CJK> */
-MAP(0x67, 0x73, 0x82F4) /* <CJK> */
-MAP(0x67, 0x74, 0x82F3) /* <CJK> */
-MAP(0x67, 0x75, 0x82FA) /* <CJK> */
-MAP(0x67, 0x76, 0x8393) /* <CJK> */
-MAP(0x67, 0x77, 0x8303) /* <CJK> */
-MAP(0x67, 0x78, 0x82FB) /* <CJK> */
-MAP(0x67, 0x79, 0x82F9) /* <CJK> */
-MAP(0x67, 0x7A, 0x82DE) /* <CJK> */
-MAP(0x67, 0x7B, 0x8306) /* <CJK> */
-MAP(0x67, 0x7C, 0x82DC) /* <CJK> */
-MAP(0x67, 0x7D, 0x8309) /* <CJK> */
-MAP(0x67, 0x7E, 0x82D9) /* <CJK> */
-MAP(0x68, 0x21, 0x8335) /* <CJK> */
-MAP(0x68, 0x22, 0x8334) /* <CJK> */
-MAP(0x68, 0x23, 0x8316) /* <CJK> */
-MAP(0x68, 0x24, 0x8332) /* <CJK> */
-MAP(0x68, 0x25, 0x8331) /* <CJK> */
-MAP(0x68, 0x26, 0x8340) /* <CJK> */
-MAP(0x68, 0x27, 0x8339) /* <CJK> */
-MAP(0x68, 0x28, 0x8350) /* <CJK> */
-MAP(0x68, 0x29, 0x8345) /* <CJK> */
-MAP(0x68, 0x2A, 0x832F) /* <CJK> */
-MAP(0x68, 0x2B, 0x832B) /* <CJK> */
-MAP(0x68, 0x2C, 0x8317) /* <CJK> */
-MAP(0x68, 0x2D, 0x8318) /* <CJK> */
-MAP(0x68, 0x2E, 0x8385) /* <CJK> */
-MAP(0x68, 0x2F, 0x839A) /* <CJK> */
-MAP(0x68, 0x30, 0x83AA) /* <CJK> */
-MAP(0x68, 0x31, 0x839F) /* <CJK> */
-MAP(0x68, 0x32, 0x83A2) /* <CJK> */
-MAP(0x68, 0x33, 0x8396) /* <CJK> */
-MAP(0x68, 0x34, 0x8323) /* <CJK> */
-MAP(0x68, 0x35, 0x838E) /* <CJK> */
-MAP(0x68, 0x36, 0x8387) /* <CJK> */
-MAP(0x68, 0x37, 0x838A) /* <CJK> */
-MAP(0x68, 0x38, 0x837C) /* <CJK> */
-MAP(0x68, 0x39, 0x83B5) /* <CJK> */
-MAP(0x68, 0x3A, 0x8373) /* <CJK> */
-MAP(0x68, 0x3B, 0x8375) /* <CJK> */
-MAP(0x68, 0x3C, 0x83A0) /* <CJK> */
-MAP(0x68, 0x3D, 0x8389) /* <CJK> */
-MAP(0x68, 0x3E, 0x83A8) /* <CJK> */
-MAP(0x68, 0x3F, 0x83F4) /* <CJK> */
-MAP(0x68, 0x40, 0x8413) /* <CJK> */
-MAP(0x68, 0x41, 0x83EB) /* <CJK> */
-MAP(0x68, 0x42, 0x83CE) /* <CJK> */
-MAP(0x68, 0x43, 0x83FD) /* <CJK> */
-MAP(0x68, 0x44, 0x8403) /* <CJK> */
-MAP(0x68, 0x45, 0x83D8) /* <CJK> */
-MAP(0x68, 0x46, 0x840B) /* <CJK> */
-MAP(0x68, 0x47, 0x83C1) /* <CJK> */
-MAP(0x68, 0x48, 0x83F7) /* <CJK> */
-MAP(0x68, 0x49, 0x8407) /* <CJK> */
-MAP(0x68, 0x4A, 0x83E0) /* <CJK> */
-MAP(0x68, 0x4B, 0x83F2) /* <CJK> */
-MAP(0x68, 0x4C, 0x840D) /* <CJK> */
-MAP(0x68, 0x4D, 0x8422) /* <CJK> */
-MAP(0x68, 0x4E, 0x8420) /* <CJK> */
-MAP(0x68, 0x4F, 0x83BD) /* <CJK> */
-MAP(0x68, 0x50, 0x8438) /* <CJK> */
-MAP(0x68, 0x51, 0x8506) /* <CJK> */
-MAP(0x68, 0x52, 0x83FB) /* <CJK> */
-MAP(0x68, 0x53, 0x846D) /* <CJK> */
-MAP(0x68, 0x54, 0x842A) /* <CJK> */
-MAP(0x68, 0x55, 0x843C) /* <CJK> */
-MAP(0x68, 0x56, 0x855A) /* <CJK> */
-MAP(0x68, 0x57, 0x8484) /* <CJK> */
-MAP(0x68, 0x58, 0x8477) /* <CJK> */
-MAP(0x68, 0x59, 0x846B) /* <CJK> */
-MAP(0x68, 0x5A, 0x84AD) /* <CJK> */
-MAP(0x68, 0x5B, 0x846E) /* <CJK> */
-MAP(0x68, 0x5C, 0x8482) /* <CJK> */
-MAP(0x68, 0x5D, 0x8469) /* <CJK> */
-MAP(0x68, 0x5E, 0x8446) /* <CJK> */
-MAP(0x68, 0x5F, 0x842C) /* <CJK> */
-MAP(0x68, 0x60, 0x846F) /* <CJK> */
-MAP(0x68, 0x61, 0x8479) /* <CJK> */
-MAP(0x68, 0x62, 0x8435) /* <CJK> */
-MAP(0x68, 0x63, 0x84CA) /* <CJK> */
-MAP(0x68, 0x64, 0x8462) /* <CJK> */
-MAP(0x68, 0x65, 0x84B9) /* <CJK> */
-MAP(0x68, 0x66, 0x84BF) /* <CJK> */
-MAP(0x68, 0x67, 0x849F) /* <CJK> */
-MAP(0x68, 0x68, 0x84D9) /* <CJK> */
-MAP(0x68, 0x69, 0x84CD) /* <CJK> */
-MAP(0x68, 0x6A, 0x84BB) /* <CJK> */
-MAP(0x68, 0x6B, 0x84DA) /* <CJK> */
-MAP(0x68, 0x6C, 0x84D0) /* <CJK> */
-MAP(0x68, 0x6D, 0x84C1) /* <CJK> */
-MAP(0x68, 0x6E, 0x84C6) /* <CJK> */
-MAP(0x68, 0x6F, 0x84D6) /* <CJK> */
-MAP(0x68, 0x70, 0x84A1) /* <CJK> */
-MAP(0x68, 0x71, 0x8521) /* <CJK> */
-MAP(0x68, 0x72, 0x84FF) /* <CJK> */
-MAP(0x68, 0x73, 0x84F4) /* <CJK> */
-MAP(0x68, 0x74, 0x8517) /* <CJK> */
-MAP(0x68, 0x75, 0x8518) /* <CJK> */
-MAP(0x68, 0x76, 0x852C) /* <CJK> */
-MAP(0x68, 0x77, 0x851F) /* <CJK> */
-MAP(0x68, 0x78, 0x8515) /* <CJK> */
-MAP(0x68, 0x79, 0x8514) /* <CJK> */
-MAP(0x68, 0x7A, 0x84FC) /* <CJK> */
-MAP(0x68, 0x7B, 0x8540) /* <CJK> */
-MAP(0x68, 0x7C, 0x8563) /* <CJK> */
-MAP(0x68, 0x7D, 0x8558) /* <CJK> */
-MAP(0x68, 0x7E, 0x8548) /* <CJK> */
-MAP(0x69, 0x21, 0x8541) /* <CJK> */
-MAP(0x69, 0x22, 0x8602) /* <CJK> */
-MAP(0x69, 0x23, 0x854B) /* <CJK> */
-MAP(0x69, 0x24, 0x8555) /* <CJK> */
-MAP(0x69, 0x25, 0x8580) /* <CJK> */
-MAP(0x69, 0x26, 0x85A4) /* <CJK> */
-MAP(0x69, 0x27, 0x8588) /* <CJK> */
-MAP(0x69, 0x28, 0x8591) /* <CJK> */
-MAP(0x69, 0x29, 0x858A) /* <CJK> */
-MAP(0x69, 0x2A, 0x85A8) /* <CJK> */
-MAP(0x69, 0x2B, 0x856D) /* <CJK> */
-MAP(0x69, 0x2C, 0x8594) /* <CJK> */
-MAP(0x69, 0x2D, 0x859B) /* <CJK> */
-MAP(0x69, 0x2E, 0x85EA) /* <CJK> */
-MAP(0x69, 0x2F, 0x8587) /* <CJK> */
-MAP(0x69, 0x30, 0x859C) /* <CJK> */
-MAP(0x69, 0x31, 0x8577) /* <CJK> */
-MAP(0x69, 0x32, 0x857E) /* <CJK> */
-MAP(0x69, 0x33, 0x8590) /* <CJK> */
-MAP(0x69, 0x34, 0x85C9) /* <CJK> */
-MAP(0x69, 0x35, 0x85BA) /* <CJK> */
-MAP(0x69, 0x36, 0x85CF) /* <CJK> */
-MAP(0x69, 0x37, 0x85B9) /* <CJK> */
-MAP(0x69, 0x38, 0x85D0) /* <CJK> */
-MAP(0x69, 0x39, 0x85D5) /* <CJK> */
-MAP(0x69, 0x3A, 0x85DD) /* <CJK> */
-MAP(0x69, 0x3B, 0x85E5) /* <CJK> */
-MAP(0x69, 0x3C, 0x85DC) /* <CJK> */
-MAP(0x69, 0x3D, 0x85F9) /* <CJK> */
-MAP(0x69, 0x3E, 0x860A) /* <CJK> */
-MAP(0x69, 0x3F, 0x8613) /* <CJK> */
-MAP(0x69, 0x40, 0x860B) /* <CJK> */
-MAP(0x69, 0x41, 0x85FE) /* <CJK> */
-MAP(0x69, 0x42, 0x85FA) /* <CJK> */
-MAP(0x69, 0x43, 0x8606) /* <CJK> */
-MAP(0x69, 0x44, 0x8622) /* <CJK> */
-MAP(0x69, 0x45, 0x861A) /* <CJK> */
-MAP(0x69, 0x46, 0x8630) /* <CJK> */
-MAP(0x69, 0x47, 0x863F) /* <CJK> */
-MAP(0x69, 0x48, 0x864D) /* <CJK> */
-MAP(0x69, 0x49, 0x4E55) /* <CJK> */
-MAP(0x69, 0x4A, 0x8654) /* <CJK> */
-MAP(0x69, 0x4B, 0x865F) /* <CJK> */
-MAP(0x69, 0x4C, 0x8667) /* <CJK> */
-MAP(0x69, 0x4D, 0x8671) /* <CJK> */
-MAP(0x69, 0x4E, 0x8693) /* <CJK> */
-MAP(0x69, 0x4F, 0x86A3) /* <CJK> */
-MAP(0x69, 0x50, 0x86A9) /* <CJK> */
-MAP(0x69, 0x51, 0x86AA) /* <CJK> */
-MAP(0x69, 0x52, 0x868B) /* <CJK> */
-MAP(0x69, 0x53, 0x868C) /* <CJK> */
-MAP(0x69, 0x54, 0x86B6) /* <CJK> */
-MAP(0x69, 0x55, 0x86AF) /* <CJK> */
-MAP(0x69, 0x56, 0x86C4) /* <CJK> */
-MAP(0x69, 0x57, 0x86C6) /* <CJK> */
-MAP(0x69, 0x58, 0x86B0) /* <CJK> */
-MAP(0x69, 0x59, 0x86C9) /* <CJK> */
-MAP(0x69, 0x5A, 0x8823) /* <CJK> */
-MAP(0x69, 0x5B, 0x86AB) /* <CJK> */
-MAP(0x69, 0x5C, 0x86D4) /* <CJK> */
-MAP(0x69, 0x5D, 0x86DE) /* <CJK> */
-MAP(0x69, 0x5E, 0x86E9) /* <CJK> */
-MAP(0x69, 0x5F, 0x86EC) /* <CJK> */
-MAP(0x69, 0x60, 0x86DF) /* <CJK> */
-MAP(0x69, 0x61, 0x86DB) /* <CJK> */
-MAP(0x69, 0x62, 0x86EF) /* <CJK> */
-MAP(0x69, 0x63, 0x8712) /* <CJK> */
-MAP(0x69, 0x64, 0x8706) /* <CJK> */
-MAP(0x69, 0x65, 0x8708) /* <CJK> */
-MAP(0x69, 0x66, 0x8700) /* <CJK> */
-MAP(0x69, 0x67, 0x8703) /* <CJK> */
-MAP(0x69, 0x68, 0x86FB) /* <CJK> */
-MAP(0x69, 0x69, 0x8711) /* <CJK> */
-MAP(0x69, 0x6A, 0x8709) /* <CJK> */
-MAP(0x69, 0x6B, 0x870D) /* <CJK> */
-MAP(0x69, 0x6C, 0x86F9) /* <CJK> */
-MAP(0x69, 0x6D, 0x870A) /* <CJK> */
-MAP(0x69, 0x6E, 0x8734) /* <CJK> */
-MAP(0x69, 0x6F, 0x873F) /* <CJK> */
-MAP(0x69, 0x70, 0x8737) /* <CJK> */
-MAP(0x69, 0x71, 0x873B) /* <CJK> */
-MAP(0x69, 0x72, 0x8725) /* <CJK> */
-MAP(0x69, 0x73, 0x8729) /* <CJK> */
-MAP(0x69, 0x74, 0x871A) /* <CJK> */
-MAP(0x69, 0x75, 0x8760) /* <CJK> */
-MAP(0x69, 0x76, 0x875F) /* <CJK> */
-MAP(0x69, 0x77, 0x8778) /* <CJK> */
-MAP(0x69, 0x78, 0x874C) /* <CJK> */
-MAP(0x69, 0x79, 0x874E) /* <CJK> */
-MAP(0x69, 0x7A, 0x8774) /* <CJK> */
-MAP(0x69, 0x7B, 0x8757) /* <CJK> */
-MAP(0x69, 0x7C, 0x8768) /* <CJK> */
-MAP(0x69, 0x7D, 0x876E) /* <CJK> */
-MAP(0x69, 0x7E, 0x8759) /* <CJK> */
-MAP(0x6A, 0x21, 0x8753) /* <CJK> */
-MAP(0x6A, 0x22, 0x8763) /* <CJK> */
-MAP(0x6A, 0x23, 0x876A) /* <CJK> */
-MAP(0x6A, 0x24, 0x8805) /* <CJK> */
-MAP(0x6A, 0x25, 0x87A2) /* <CJK> */
-MAP(0x6A, 0x26, 0x879F) /* <CJK> */
-MAP(0x6A, 0x27, 0x8782) /* <CJK> */
-MAP(0x6A, 0x28, 0x87AF) /* <CJK> */
-MAP(0x6A, 0x29, 0x87CB) /* <CJK> */
-MAP(0x6A, 0x2A, 0x87BD) /* <CJK> */
-MAP(0x6A, 0x2B, 0x87C0) /* <CJK> */
-MAP(0x6A, 0x2C, 0x87D0) /* <CJK> */
-MAP(0x6A, 0x2D, 0x96D6) /* <CJK> */
-MAP(0x6A, 0x2E, 0x87AB) /* <CJK> */
-MAP(0x6A, 0x2F, 0x87C4) /* <CJK> */
-MAP(0x6A, 0x30, 0x87B3) /* <CJK> */
-MAP(0x6A, 0x31, 0x87C7) /* <CJK> */
-MAP(0x6A, 0x32, 0x87C6) /* <CJK> */
-MAP(0x6A, 0x33, 0x87BB) /* <CJK> */
-MAP(0x6A, 0x34, 0x87EF) /* <CJK> */
-MAP(0x6A, 0x35, 0x87F2) /* <CJK> */
-MAP(0x6A, 0x36, 0x87E0) /* <CJK> */
-MAP(0x6A, 0x37, 0x880F) /* <CJK> */
-MAP(0x6A, 0x38, 0x880D) /* <CJK> */
-MAP(0x6A, 0x39, 0x87FE) /* <CJK> */
-MAP(0x6A, 0x3A, 0x87F6) /* <CJK> */
-MAP(0x6A, 0x3B, 0x87F7) /* <CJK> */
-MAP(0x6A, 0x3C, 0x880E) /* <CJK> */
-MAP(0x6A, 0x3D, 0x87D2) /* <CJK> */
-MAP(0x6A, 0x3E, 0x8811) /* <CJK> */
-MAP(0x6A, 0x3F, 0x8816) /* <CJK> */
-MAP(0x6A, 0x40, 0x8815) /* <CJK> */
-MAP(0x6A, 0x41, 0x8822) /* <CJK> */
-MAP(0x6A, 0x42, 0x8821) /* <CJK> */
-MAP(0x6A, 0x43, 0x8831) /* <CJK> */
-MAP(0x6A, 0x44, 0x8836) /* <CJK> */
-MAP(0x6A, 0x45, 0x8839) /* <CJK> */
-MAP(0x6A, 0x46, 0x8827) /* <CJK> */
-MAP(0x6A, 0x47, 0x883B) /* <CJK> */
-MAP(0x6A, 0x48, 0x8844) /* <CJK> */
-MAP(0x6A, 0x49, 0x8842) /* <CJK> */
-MAP(0x6A, 0x4A, 0x8852) /* <CJK> */
-MAP(0x6A, 0x4B, 0x8859) /* <CJK> */
-MAP(0x6A, 0x4C, 0x885E) /* <CJK> */
-MAP(0x6A, 0x4D, 0x8862) /* <CJK> */
-MAP(0x6A, 0x4E, 0x886B) /* <CJK> */
-MAP(0x6A, 0x4F, 0x8881) /* <CJK> */
-MAP(0x6A, 0x50, 0x887E) /* <CJK> */
-MAP(0x6A, 0x51, 0x889E) /* <CJK> */
-MAP(0x6A, 0x52, 0x8875) /* <CJK> */
-MAP(0x6A, 0x53, 0x887D) /* <CJK> */
-MAP(0x6A, 0x54, 0x88B5) /* <CJK> */
-MAP(0x6A, 0x55, 0x8872) /* <CJK> */
-MAP(0x6A, 0x56, 0x8882) /* <CJK> */
-MAP(0x6A, 0x57, 0x8897) /* <CJK> */
-MAP(0x6A, 0x58, 0x8892) /* <CJK> */
-MAP(0x6A, 0x59, 0x88AE) /* <CJK> */
-MAP(0x6A, 0x5A, 0x8899) /* <CJK> */
-MAP(0x6A, 0x5B, 0x88A2) /* <CJK> */
-MAP(0x6A, 0x5C, 0x888D) /* <CJK> */
-MAP(0x6A, 0x5D, 0x88A4) /* <CJK> */
-MAP(0x6A, 0x5E, 0x88B0) /* <CJK> */
-MAP(0x6A, 0x5F, 0x88BF) /* <CJK> */
-MAP(0x6A, 0x60, 0x88B1) /* <CJK> */
-MAP(0x6A, 0x61, 0x88C3) /* <CJK> */
-MAP(0x6A, 0x62, 0x88C4) /* <CJK> */
-MAP(0x6A, 0x63, 0x88D4) /* <CJK> */
-MAP(0x6A, 0x64, 0x88D8) /* <CJK> */
-MAP(0x6A, 0x65, 0x88D9) /* <CJK> */
-MAP(0x6A, 0x66, 0x88DD) /* <CJK> */
-MAP(0x6A, 0x67, 0x88F9) /* <CJK> */
-MAP(0x6A, 0x68, 0x8902) /* <CJK> */
-MAP(0x6A, 0x69, 0x88FC) /* <CJK> */
-MAP(0x6A, 0x6A, 0x88F4) /* <CJK> */
-MAP(0x6A, 0x6B, 0x88E8) /* <CJK> */
-MAP(0x6A, 0x6C, 0x88F2) /* <CJK> */
-MAP(0x6A, 0x6D, 0x8904) /* <CJK> */
-MAP(0x6A, 0x6E, 0x890C) /* <CJK> */
-MAP(0x6A, 0x6F, 0x890A) /* <CJK> */
-MAP(0x6A, 0x70, 0x8913) /* <CJK> */
-MAP(0x6A, 0x71, 0x8943) /* <CJK> */
-MAP(0x6A, 0x72, 0x891E) /* <CJK> */
-MAP(0x6A, 0x73, 0x8925) /* <CJK> */
-MAP(0x6A, 0x74, 0x892A) /* <CJK> */
-MAP(0x6A, 0x75, 0x892B) /* <CJK> */
-MAP(0x6A, 0x76, 0x8941) /* <CJK> */
-MAP(0x6A, 0x77, 0x8944) /* <CJK> */
-MAP(0x6A, 0x78, 0x893B) /* <CJK> */
-MAP(0x6A, 0x79, 0x8936) /* <CJK> */
-MAP(0x6A, 0x7A, 0x8938) /* <CJK> */
-MAP(0x6A, 0x7B, 0x894C) /* <CJK> */
-MAP(0x6A, 0x7C, 0x891D) /* <CJK> */
-MAP(0x6A, 0x7D, 0x8960) /* <CJK> */
-MAP(0x6A, 0x7E, 0x895E) /* <CJK> */
-MAP(0x6B, 0x21, 0x8966) /* <CJK> */
-MAP(0x6B, 0x22, 0x8964) /* <CJK> */
-MAP(0x6B, 0x23, 0x896D) /* <CJK> */
-MAP(0x6B, 0x24, 0x896A) /* <CJK> */
-MAP(0x6B, 0x25, 0x896F) /* <CJK> */
-MAP(0x6B, 0x26, 0x8974) /* <CJK> */
-MAP(0x6B, 0x27, 0x8977) /* <CJK> */
-MAP(0x6B, 0x28, 0x897E) /* <CJK> */
-MAP(0x6B, 0x29, 0x8983) /* <CJK> */
-MAP(0x6B, 0x2A, 0x8988) /* <CJK> */
-MAP(0x6B, 0x2B, 0x898A) /* <CJK> */
-MAP(0x6B, 0x2C, 0x8993) /* <CJK> */
-MAP(0x6B, 0x2D, 0x8998) /* <CJK> */
-MAP(0x6B, 0x2E, 0x89A1) /* <CJK> */
-MAP(0x6B, 0x2F, 0x89A9) /* <CJK> */
-MAP(0x6B, 0x30, 0x89A6) /* <CJK> */
-MAP(0x6B, 0x31, 0x89AC) /* <CJK> */
-MAP(0x6B, 0x32, 0x89AF) /* <CJK> */
-MAP(0x6B, 0x33, 0x89B2) /* <CJK> */
-MAP(0x6B, 0x34, 0x89BA) /* <CJK> */
-MAP(0x6B, 0x35, 0x89BD) /* <CJK> */
-MAP(0x6B, 0x36, 0x89BF) /* <CJK> */
-MAP(0x6B, 0x37, 0x89C0) /* <CJK> */
-MAP(0x6B, 0x38, 0x89DA) /* <CJK> */
-MAP(0x6B, 0x39, 0x89DC) /* <CJK> */
-MAP(0x6B, 0x3A, 0x89DD) /* <CJK> */
-MAP(0x6B, 0x3B, 0x89E7) /* <CJK> */
-MAP(0x6B, 0x3C, 0x89F4) /* <CJK> */
-MAP(0x6B, 0x3D, 0x89F8) /* <CJK> */
-MAP(0x6B, 0x3E, 0x8A03) /* <CJK> */
-MAP(0x6B, 0x3F, 0x8A16) /* <CJK> */
-MAP(0x6B, 0x40, 0x8A10) /* <CJK> */
-MAP(0x6B, 0x41, 0x8A0C) /* <CJK> */
-MAP(0x6B, 0x42, 0x8A1B) /* <CJK> */
-MAP(0x6B, 0x43, 0x8A1D) /* <CJK> */
-MAP(0x6B, 0x44, 0x8A25) /* <CJK> */
-MAP(0x6B, 0x45, 0x8A36) /* <CJK> */
-MAP(0x6B, 0x46, 0x8A41) /* <CJK> */
-MAP(0x6B, 0x47, 0x8A5B) /* <CJK> */
-MAP(0x6B, 0x48, 0x8A52) /* <CJK> */
-MAP(0x6B, 0x49, 0x8A46) /* <CJK> */
-MAP(0x6B, 0x4A, 0x8A48) /* <CJK> */
-MAP(0x6B, 0x4B, 0x8A7C) /* <CJK> */
-MAP(0x6B, 0x4C, 0x8A6D) /* <CJK> */
-MAP(0x6B, 0x4D, 0x8A6C) /* <CJK> */
-MAP(0x6B, 0x4E, 0x8A62) /* <CJK> */
-MAP(0x6B, 0x4F, 0x8A85) /* <CJK> */
-MAP(0x6B, 0x50, 0x8A82) /* <CJK> */
-MAP(0x6B, 0x51, 0x8A84) /* <CJK> */
-MAP(0x6B, 0x52, 0x8AA8) /* <CJK> */
-MAP(0x6B, 0x53, 0x8AA1) /* <CJK> */
-MAP(0x6B, 0x54, 0x8A91) /* <CJK> */
-MAP(0x6B, 0x55, 0x8AA5) /* <CJK> */
-MAP(0x6B, 0x56, 0x8AA6) /* <CJK> */
-MAP(0x6B, 0x57, 0x8A9A) /* <CJK> */
-MAP(0x6B, 0x58, 0x8AA3) /* <CJK> */
-MAP(0x6B, 0x59, 0x8AC4) /* <CJK> */
-MAP(0x6B, 0x5A, 0x8ACD) /* <CJK> */
-MAP(0x6B, 0x5B, 0x8AC2) /* <CJK> */
-MAP(0x6B, 0x5C, 0x8ADA) /* <CJK> */
-MAP(0x6B, 0x5D, 0x8AEB) /* <CJK> */
-MAP(0x6B, 0x5E, 0x8AF3) /* <CJK> */
-MAP(0x6B, 0x5F, 0x8AE7) /* <CJK> */
-MAP(0x6B, 0x60, 0x8AE4) /* <CJK> */
-MAP(0x6B, 0x61, 0x8AF1) /* <CJK> */
-MAP(0x6B, 0x62, 0x8B14) /* <CJK> */
-MAP(0x6B, 0x63, 0x8AE0) /* <CJK> */
-MAP(0x6B, 0x64, 0x8AE2) /* <CJK> */
-MAP(0x6B, 0x65, 0x8AF7) /* <CJK> */
-MAP(0x6B, 0x66, 0x8ADE) /* <CJK> */
-MAP(0x6B, 0x67, 0x8ADB) /* <CJK> */
-MAP(0x6B, 0x68, 0x8B0C) /* <CJK> */
-MAP(0x6B, 0x69, 0x8B07) /* <CJK> */
-MAP(0x6B, 0x6A, 0x8B1A) /* <CJK> */
-MAP(0x6B, 0x6B, 0x8AE1) /* <CJK> */
-MAP(0x6B, 0x6C, 0x8B16) /* <CJK> */
-MAP(0x6B, 0x6D, 0x8B10) /* <CJK> */
-MAP(0x6B, 0x6E, 0x8B17) /* <CJK> */
-MAP(0x6B, 0x6F, 0x8B20) /* <CJK> */
-MAP(0x6B, 0x70, 0x8B33) /* <CJK> */
-MAP(0x6B, 0x71, 0x97AB) /* <CJK> */
-MAP(0x6B, 0x72, 0x8B26) /* <CJK> */
-MAP(0x6B, 0x73, 0x8B2B) /* <CJK> */
-MAP(0x6B, 0x74, 0x8B3E) /* <CJK> */
-MAP(0x6B, 0x75, 0x8B28) /* <CJK> */
-MAP(0x6B, 0x76, 0x8B41) /* <CJK> */
-MAP(0x6B, 0x77, 0x8B4C) /* <CJK> */
-MAP(0x6B, 0x78, 0x8B4F) /* <CJK> */
-MAP(0x6B, 0x79, 0x8B4E) /* <CJK> */
-MAP(0x6B, 0x7A, 0x8B49) /* <CJK> */
-MAP(0x6B, 0x7B, 0x8B56) /* <CJK> */
-MAP(0x6B, 0x7C, 0x8B5B) /* <CJK> */
-MAP(0x6B, 0x7D, 0x8B5A) /* <CJK> */
-MAP(0x6B, 0x7E, 0x8B6B) /* <CJK> */
-MAP(0x6C, 0x21, 0x8B5F) /* <CJK> */
-MAP(0x6C, 0x22, 0x8B6C) /* <CJK> */
-MAP(0x6C, 0x23, 0x8B6F) /* <CJK> */
-MAP(0x6C, 0x24, 0x8B74) /* <CJK> */
-MAP(0x6C, 0x25, 0x8B7D) /* <CJK> */
-MAP(0x6C, 0x26, 0x8B80) /* <CJK> */
-MAP(0x6C, 0x27, 0x8B8C) /* <CJK> */
-MAP(0x6C, 0x28, 0x8B8E) /* <CJK> */
-MAP(0x6C, 0x29, 0x8B92) /* <CJK> */
-MAP(0x6C, 0x2A, 0x8B93) /* <CJK> */
-MAP(0x6C, 0x2B, 0x8B96) /* <CJK> */
-MAP(0x6C, 0x2C, 0x8B99) /* <CJK> */
-MAP(0x6C, 0x2D, 0x8B9A) /* <CJK> */
-MAP(0x6C, 0x2E, 0x8C3A) /* <CJK> */
-MAP(0x6C, 0x2F, 0x8C41) /* <CJK> */
-MAP(0x6C, 0x30, 0x8C3F) /* <CJK> */
-MAP(0x6C, 0x31, 0x8C48) /* <CJK> */
-MAP(0x6C, 0x32, 0x8C4C) /* <CJK> */
-MAP(0x6C, 0x33, 0x8C4E) /* <CJK> */
-MAP(0x6C, 0x34, 0x8C50) /* <CJK> */
-MAP(0x6C, 0x35, 0x8C55) /* <CJK> */
-MAP(0x6C, 0x36, 0x8C62) /* <CJK> */
-MAP(0x6C, 0x37, 0x8C6C) /* <CJK> */
-MAP(0x6C, 0x38, 0x8C78) /* <CJK> */
-MAP(0x6C, 0x39, 0x8C7A) /* <CJK> */
-MAP(0x6C, 0x3A, 0x8C82) /* <CJK> */
-MAP(0x6C, 0x3B, 0x8C89) /* <CJK> */
-MAP(0x6C, 0x3C, 0x8C85) /* <CJK> */
-MAP(0x6C, 0x3D, 0x8C8A) /* <CJK> */
-MAP(0x6C, 0x3E, 0x8C8D) /* <CJK> */
-MAP(0x6C, 0x3F, 0x8C8E) /* <CJK> */
-MAP(0x6C, 0x40, 0x8C94) /* <CJK> */
-MAP(0x6C, 0x41, 0x8C7C) /* <CJK> */
-MAP(0x6C, 0x42, 0x8C98) /* <CJK> */
-MAP(0x6C, 0x43, 0x621D) /* <CJK> */
-MAP(0x6C, 0x44, 0x8CAD) /* <CJK> */
-MAP(0x6C, 0x45, 0x8CAA) /* <CJK> */
-MAP(0x6C, 0x46, 0x8CBD) /* <CJK> */
-MAP(0x6C, 0x47, 0x8CB2) /* <CJK> */
-MAP(0x6C, 0x48, 0x8CB3) /* <CJK> */
-MAP(0x6C, 0x49, 0x8CAE) /* <CJK> */
-MAP(0x6C, 0x4A, 0x8CB6) /* <CJK> */
-MAP(0x6C, 0x4B, 0x8CC8) /* <CJK> */
-MAP(0x6C, 0x4C, 0x8CC1) /* <CJK> */
-MAP(0x6C, 0x4D, 0x8CE4) /* <CJK> */
-MAP(0x6C, 0x4E, 0x8CE3) /* <CJK> */
-MAP(0x6C, 0x4F, 0x8CDA) /* <CJK> */
-MAP(0x6C, 0x50, 0x8CFD) /* <CJK> */
-MAP(0x6C, 0x51, 0x8CFA) /* <CJK> */
-MAP(0x6C, 0x52, 0x8CFB) /* <CJK> */
-MAP(0x6C, 0x53, 0x8D04) /* <CJK> */
-MAP(0x6C, 0x54, 0x8D05) /* <CJK> */
-MAP(0x6C, 0x55, 0x8D0A) /* <CJK> */
-MAP(0x6C, 0x56, 0x8D07) /* <CJK> */
-MAP(0x6C, 0x57, 0x8D0F) /* <CJK> */
-MAP(0x6C, 0x58, 0x8D0D) /* <CJK> */
-MAP(0x6C, 0x59, 0x8D10) /* <CJK> */
-MAP(0x6C, 0x5A, 0x9F4E) /* <CJK> */
-MAP(0x6C, 0x5B, 0x8D13) /* <CJK> */
-MAP(0x6C, 0x5C, 0x8CCD) /* <CJK> */
-MAP(0x6C, 0x5D, 0x8D14) /* <CJK> */
-MAP(0x6C, 0x5E, 0x8D16) /* <CJK> */
-MAP(0x6C, 0x5F, 0x8D67) /* <CJK> */
-MAP(0x6C, 0x60, 0x8D6D) /* <CJK> */
-MAP(0x6C, 0x61, 0x8D71) /* <CJK> */
-MAP(0x6C, 0x62, 0x8D73) /* <CJK> */
-MAP(0x6C, 0x63, 0x8D81) /* <CJK> */
-MAP(0x6C, 0x64, 0x8D99) /* <CJK> */
-MAP(0x6C, 0x65, 0x8DC2) /* <CJK> */
-MAP(0x6C, 0x66, 0x8DBE) /* <CJK> */
-MAP(0x6C, 0x67, 0x8DBA) /* <CJK> */
-MAP(0x6C, 0x68, 0x8DCF) /* <CJK> */
-MAP(0x6C, 0x69, 0x8DDA) /* <CJK> */
-MAP(0x6C, 0x6A, 0x8DD6) /* <CJK> */
-MAP(0x6C, 0x6B, 0x8DCC) /* <CJK> */
-MAP(0x6C, 0x6C, 0x8DDB) /* <CJK> */
-MAP(0x6C, 0x6D, 0x8DCB) /* <CJK> */
-MAP(0x6C, 0x6E, 0x8DEA) /* <CJK> */
-MAP(0x6C, 0x6F, 0x8DEB) /* <CJK> */
-MAP(0x6C, 0x70, 0x8DDF) /* <CJK> */
-MAP(0x6C, 0x71, 0x8DE3) /* <CJK> */
-MAP(0x6C, 0x72, 0x8DFC) /* <CJK> */
-MAP(0x6C, 0x73, 0x8E08) /* <CJK> */
-MAP(0x6C, 0x74, 0x8E09) /* <CJK> */
-MAP(0x6C, 0x75, 0x8DFF) /* <CJK> */
-MAP(0x6C, 0x76, 0x8E1D) /* <CJK> */
-MAP(0x6C, 0x77, 0x8E1E) /* <CJK> */
-MAP(0x6C, 0x78, 0x8E10) /* <CJK> */
-MAP(0x6C, 0x79, 0x8E1F) /* <CJK> */
-MAP(0x6C, 0x7A, 0x8E42) /* <CJK> */
-MAP(0x6C, 0x7B, 0x8E35) /* <CJK> */
-MAP(0x6C, 0x7C, 0x8E30) /* <CJK> */
-MAP(0x6C, 0x7D, 0x8E34) /* <CJK> */
-MAP(0x6C, 0x7E, 0x8E4A) /* <CJK> */
-MAP(0x6D, 0x21, 0x8E47) /* <CJK> */
-MAP(0x6D, 0x22, 0x8E49) /* <CJK> */
-MAP(0x6D, 0x23, 0x8E4C) /* <CJK> */
-MAP(0x6D, 0x24, 0x8E50) /* <CJK> */
-MAP(0x6D, 0x25, 0x8E48) /* <CJK> */
-MAP(0x6D, 0x26, 0x8E59) /* <CJK> */
-MAP(0x6D, 0x27, 0x8E64) /* <CJK> */
-MAP(0x6D, 0x28, 0x8E60) /* <CJK> */
-MAP(0x6D, 0x29, 0x8E2A) /* <CJK> */
-MAP(0x6D, 0x2A, 0x8E63) /* <CJK> */
-MAP(0x6D, 0x2B, 0x8E55) /* <CJK> */
-MAP(0x6D, 0x2C, 0x8E76) /* <CJK> */
-MAP(0x6D, 0x2D, 0x8E72) /* <CJK> */
-MAP(0x6D, 0x2E, 0x8E7C) /* <CJK> */
-MAP(0x6D, 0x2F, 0x8E81) /* <CJK> */
-MAP(0x6D, 0x30, 0x8E87) /* <CJK> */
-MAP(0x6D, 0x31, 0x8E85) /* <CJK> */
-MAP(0x6D, 0x32, 0x8E84) /* <CJK> */
-MAP(0x6D, 0x33, 0x8E8B) /* <CJK> */
-MAP(0x6D, 0x34, 0x8E8A) /* <CJK> */
-MAP(0x6D, 0x35, 0x8E93) /* <CJK> */
-MAP(0x6D, 0x36, 0x8E91) /* <CJK> */
-MAP(0x6D, 0x37, 0x8E94) /* <CJK> */
-MAP(0x6D, 0x38, 0x8E99) /* <CJK> */
-MAP(0x6D, 0x39, 0x8EAA) /* <CJK> */
-MAP(0x6D, 0x3A, 0x8EA1) /* <CJK> */
-MAP(0x6D, 0x3B, 0x8EAC) /* <CJK> */
-MAP(0x6D, 0x3C, 0x8EB0) /* <CJK> */
-MAP(0x6D, 0x3D, 0x8EC6) /* <CJK> */
-MAP(0x6D, 0x3E, 0x8EB1) /* <CJK> */
-MAP(0x6D, 0x3F, 0x8EBE) /* <CJK> */
-MAP(0x6D, 0x40, 0x8EC5) /* <CJK> */
-MAP(0x6D, 0x41, 0x8EC8) /* <CJK> */
-MAP(0x6D, 0x42, 0x8ECB) /* <CJK> */
-MAP(0x6D, 0x43, 0x8EDB) /* <CJK> */
-MAP(0x6D, 0x44, 0x8EE3) /* <CJK> */
-MAP(0x6D, 0x45, 0x8EFC) /* <CJK> */
-MAP(0x6D, 0x46, 0x8EFB) /* <CJK> */
-MAP(0x6D, 0x47, 0x8EEB) /* <CJK> */
-MAP(0x6D, 0x48, 0x8EFE) /* <CJK> */
-MAP(0x6D, 0x49, 0x8F0A) /* <CJK> */
-MAP(0x6D, 0x4A, 0x8F05) /* <CJK> */
-MAP(0x6D, 0x4B, 0x8F15) /* <CJK> */
-MAP(0x6D, 0x4C, 0x8F12) /* <CJK> */
-MAP(0x6D, 0x4D, 0x8F19) /* <CJK> */
-MAP(0x6D, 0x4E, 0x8F13) /* <CJK> */
-MAP(0x6D, 0x4F, 0x8F1C) /* <CJK> */
-MAP(0x6D, 0x50, 0x8F1F) /* <CJK> */
-MAP(0x6D, 0x51, 0x8F1B) /* <CJK> */
-MAP(0x6D, 0x52, 0x8F0C) /* <CJK> */
-MAP(0x6D, 0x53, 0x8F26) /* <CJK> */
-MAP(0x6D, 0x54, 0x8F33) /* <CJK> */
-MAP(0x6D, 0x55, 0x8F3B) /* <CJK> */
-MAP(0x6D, 0x56, 0x8F39) /* <CJK> */
-MAP(0x6D, 0x57, 0x8F45) /* <CJK> */
-MAP(0x6D, 0x58, 0x8F42) /* <CJK> */
-MAP(0x6D, 0x59, 0x8F3E) /* <CJK> */
-MAP(0x6D, 0x5A, 0x8F4C) /* <CJK> */
-MAP(0x6D, 0x5B, 0x8F49) /* <CJK> */
-MAP(0x6D, 0x5C, 0x8F46) /* <CJK> */
-MAP(0x6D, 0x5D, 0x8F4E) /* <CJK> */
-MAP(0x6D, 0x5E, 0x8F57) /* <CJK> */
-MAP(0x6D, 0x5F, 0x8F5C) /* <CJK> */
-MAP(0x6D, 0x60, 0x8F62) /* <CJK> */
-MAP(0x6D, 0x61, 0x8F63) /* <CJK> */
-MAP(0x6D, 0x62, 0x8F64) /* <CJK> */
-MAP(0x6D, 0x63, 0x8F9C) /* <CJK> */
-MAP(0x6D, 0x64, 0x8F9F) /* <CJK> */
-MAP(0x6D, 0x65, 0x8FA3) /* <CJK> */
-MAP(0x6D, 0x66, 0x8FAD) /* <CJK> */
-MAP(0x6D, 0x67, 0x8FAF) /* <CJK> */
-MAP(0x6D, 0x68, 0x8FB7) /* <CJK> */
-MAP(0x6D, 0x69, 0x8FDA) /* <CJK> */
-MAP(0x6D, 0x6A, 0x8FE5) /* <CJK> */
-MAP(0x6D, 0x6B, 0x8FE2) /* <CJK> */
-MAP(0x6D, 0x6C, 0x8FEA) /* <CJK> */
-MAP(0x6D, 0x6D, 0x8FEF) /* <CJK> */
-MAP(0x6D, 0x6E, 0x9087) /* <CJK> */
-MAP(0x6D, 0x6F, 0x8FF4) /* <CJK> */
-MAP(0x6D, 0x70, 0x9005) /* <CJK> */
-MAP(0x6D, 0x71, 0x8FF9) /* <CJK> */
-MAP(0x6D, 0x72, 0x8FFA) /* <CJK> */
-MAP(0x6D, 0x73, 0x9011) /* <CJK> */
-MAP(0x6D, 0x74, 0x9015) /* <CJK> */
-MAP(0x6D, 0x75, 0x9021) /* <CJK> */
-MAP(0x6D, 0x76, 0x900D) /* <CJK> */
-MAP(0x6D, 0x77, 0x901E) /* <CJK> */
-MAP(0x6D, 0x78, 0x9016) /* <CJK> */
-MAP(0x6D, 0x79, 0x900B) /* <CJK> */
-MAP(0x6D, 0x7A, 0x9027) /* <CJK> */
-MAP(0x6D, 0x7B, 0x9036) /* <CJK> */
-MAP(0x6D, 0x7C, 0x9035) /* <CJK> */
-MAP(0x6D, 0x7D, 0x9039) /* <CJK> */
-MAP(0x6D, 0x7E, 0x8FF8) /* <CJK> */
-MAP(0x6E, 0x21, 0x904F) /* <CJK> */
-MAP(0x6E, 0x22, 0x9050) /* <CJK> */
-MAP(0x6E, 0x23, 0x9051) /* <CJK> */
-MAP(0x6E, 0x24, 0x9052) /* <CJK> */
-MAP(0x6E, 0x25, 0x900E) /* <CJK> */
-MAP(0x6E, 0x26, 0x9049) /* <CJK> */
-MAP(0x6E, 0x27, 0x903E) /* <CJK> */
-MAP(0x6E, 0x28, 0x9056) /* <CJK> */
-MAP(0x6E, 0x29, 0x9058) /* <CJK> */
-MAP(0x6E, 0x2A, 0x905E) /* <CJK> */
-MAP(0x6E, 0x2B, 0x9068) /* <CJK> */
-MAP(0x6E, 0x2C, 0x906F) /* <CJK> */
-MAP(0x6E, 0x2D, 0x9076) /* <CJK> */
-MAP(0x6E, 0x2E, 0x96A8) /* <CJK> */
-MAP(0x6E, 0x2F, 0x9072) /* <CJK> */
-MAP(0x6E, 0x30, 0x9082) /* <CJK> */
-MAP(0x6E, 0x31, 0x907D) /* <CJK> */
-MAP(0x6E, 0x32, 0x9081) /* <CJK> */
-MAP(0x6E, 0x33, 0x9080) /* <CJK> */
-MAP(0x6E, 0x34, 0x908A) /* <CJK> */
-MAP(0x6E, 0x35, 0x9089) /* <CJK> */
-MAP(0x6E, 0x36, 0x908F) /* <CJK> */
-MAP(0x6E, 0x37, 0x90A8) /* <CJK> */
-MAP(0x6E, 0x38, 0x90AF) /* <CJK> */
-MAP(0x6E, 0x39, 0x90B1) /* <CJK> */
-MAP(0x6E, 0x3A, 0x90B5) /* <CJK> */
-MAP(0x6E, 0x3B, 0x90E2) /* <CJK> */
-MAP(0x6E, 0x3C, 0x90E4) /* <CJK> */
-MAP(0x6E, 0x3D, 0x6248) /* <CJK> */
-MAP(0x6E, 0x3E, 0x90DB) /* <CJK> */
-MAP(0x6E, 0x3F, 0x9102) /* <CJK> */
-MAP(0x6E, 0x40, 0x9112) /* <CJK> */
-MAP(0x6E, 0x41, 0x9119) /* <CJK> */
-MAP(0x6E, 0x42, 0x9132) /* <CJK> */
-MAP(0x6E, 0x43, 0x9130) /* <CJK> */
-MAP(0x6E, 0x44, 0x914A) /* <CJK> */
-MAP(0x6E, 0x45, 0x9156) /* <CJK> */
-MAP(0x6E, 0x46, 0x9158) /* <CJK> */
-MAP(0x6E, 0x47, 0x9163) /* <CJK> */
-MAP(0x6E, 0x48, 0x9165) /* <CJK> */
-MAP(0x6E, 0x49, 0x9169) /* <CJK> */
-MAP(0x6E, 0x4A, 0x9173) /* <CJK> */
-MAP(0x6E, 0x4B, 0x9172) /* <CJK> */
-MAP(0x6E, 0x4C, 0x918B) /* <CJK> */
-MAP(0x6E, 0x4D, 0x9189) /* <CJK> */
-MAP(0x6E, 0x4E, 0x9182) /* <CJK> */
-MAP(0x6E, 0x4F, 0x91A2) /* <CJK> */
-MAP(0x6E, 0x50, 0x91AB) /* <CJK> */
-MAP(0x6E, 0x51, 0x91AF) /* <CJK> */
-MAP(0x6E, 0x52, 0x91AA) /* <CJK> */
-MAP(0x6E, 0x53, 0x91B5) /* <CJK> */
-MAP(0x6E, 0x54, 0x91B4) /* <CJK> */
-MAP(0x6E, 0x55, 0x91BA) /* <CJK> */
-MAP(0x6E, 0x56, 0x91C0) /* <CJK> */
-MAP(0x6E, 0x57, 0x91C1) /* <CJK> */
-MAP(0x6E, 0x58, 0x91C9) /* <CJK> */
-MAP(0x6E, 0x59, 0x91CB) /* <CJK> */
-MAP(0x6E, 0x5A, 0x91D0) /* <CJK> */
-MAP(0x6E, 0x5B, 0x91D6) /* <CJK> */
-MAP(0x6E, 0x5C, 0x91DF) /* <CJK> */
-MAP(0x6E, 0x5D, 0x91E1) /* <CJK> */
-MAP(0x6E, 0x5E, 0x91DB) /* <CJK> */
-MAP(0x6E, 0x5F, 0x91FC) /* <CJK> */
-MAP(0x6E, 0x60, 0x91F5) /* <CJK> */
-MAP(0x6E, 0x61, 0x91F6) /* <CJK> */
-MAP(0x6E, 0x62, 0x921E) /* <CJK> */
-MAP(0x6E, 0x63, 0x91FF) /* <CJK> */
-MAP(0x6E, 0x64, 0x9214) /* <CJK> */
-MAP(0x6E, 0x65, 0x922C) /* <CJK> */
-MAP(0x6E, 0x66, 0x9215) /* <CJK> */
-MAP(0x6E, 0x67, 0x9211) /* <CJK> */
-MAP(0x6E, 0x68, 0x925E) /* <CJK> */
-MAP(0x6E, 0x69, 0x9257) /* <CJK> */
-MAP(0x6E, 0x6A, 0x9245) /* <CJK> */
-MAP(0x6E, 0x6B, 0x9249) /* <CJK> */
-MAP(0x6E, 0x6C, 0x9264) /* <CJK> */
-MAP(0x6E, 0x6D, 0x9248) /* <CJK> */
-MAP(0x6E, 0x6E, 0x9295) /* <CJK> */
-MAP(0x6E, 0x6F, 0x923F) /* <CJK> */
-MAP(0x6E, 0x70, 0x924B) /* <CJK> */
-MAP(0x6E, 0x71, 0x9250) /* <CJK> */
-MAP(0x6E, 0x72, 0x929C) /* <CJK> */
-MAP(0x6E, 0x73, 0x9296) /* <CJK> */
-MAP(0x6E, 0x74, 0x9293) /* <CJK> */
-MAP(0x6E, 0x75, 0x929B) /* <CJK> */
-MAP(0x6E, 0x76, 0x925A) /* <CJK> */
-MAP(0x6E, 0x77, 0x92CF) /* <CJK> */
-MAP(0x6E, 0x78, 0x92B9) /* <CJK> */
-MAP(0x6E, 0x79, 0x92B7) /* <CJK> */
-MAP(0x6E, 0x7A, 0x92E9) /* <CJK> */
-MAP(0x6E, 0x7B, 0x930F) /* <CJK> */
-MAP(0x6E, 0x7C, 0x92FA) /* <CJK> */
-MAP(0x6E, 0x7D, 0x9344) /* <CJK> */
-MAP(0x6E, 0x7E, 0x932E) /* <CJK> */
-MAP(0x6F, 0x21, 0x9319) /* <CJK> */
-MAP(0x6F, 0x22, 0x9322) /* <CJK> */
-MAP(0x6F, 0x23, 0x931A) /* <CJK> */
-MAP(0x6F, 0x24, 0x9323) /* <CJK> */
-MAP(0x6F, 0x25, 0x933A) /* <CJK> */
-MAP(0x6F, 0x26, 0x9335) /* <CJK> */
-MAP(0x6F, 0x27, 0x933B) /* <CJK> */
-MAP(0x6F, 0x28, 0x935C) /* <CJK> */
-MAP(0x6F, 0x29, 0x9360) /* <CJK> */
-MAP(0x6F, 0x2A, 0x937C) /* <CJK> */
-MAP(0x6F, 0x2B, 0x936E) /* <CJK> */
-MAP(0x6F, 0x2C, 0x9356) /* <CJK> */
-MAP(0x6F, 0x2D, 0x93B0) /* <CJK> */
-MAP(0x6F, 0x2E, 0x93AC) /* <CJK> */
-MAP(0x6F, 0x2F, 0x93AD) /* <CJK> */
-MAP(0x6F, 0x30, 0x9394) /* <CJK> */
-MAP(0x6F, 0x31, 0x93B9) /* <CJK> */
-MAP(0x6F, 0x32, 0x93D6) /* <CJK> */
-MAP(0x6F, 0x33, 0x93D7) /* <CJK> */
-MAP(0x6F, 0x34, 0x93E8) /* <CJK> */
-MAP(0x6F, 0x35, 0x93E5) /* <CJK> */
-MAP(0x6F, 0x36, 0x93D8) /* <CJK> */
-MAP(0x6F, 0x37, 0x93C3) /* <CJK> */
-MAP(0x6F, 0x38, 0x93DD) /* <CJK> */
-MAP(0x6F, 0x39, 0x93D0) /* <CJK> */
-MAP(0x6F, 0x3A, 0x93C8) /* <CJK> */
-MAP(0x6F, 0x3B, 0x93E4) /* <CJK> */
-MAP(0x6F, 0x3C, 0x941A) /* <CJK> */
-MAP(0x6F, 0x3D, 0x9414) /* <CJK> */
-MAP(0x6F, 0x3E, 0x9413) /* <CJK> */
-MAP(0x6F, 0x3F, 0x9403) /* <CJK> */
-MAP(0x6F, 0x40, 0x9407) /* <CJK> */
-MAP(0x6F, 0x41, 0x9410) /* <CJK> */
-MAP(0x6F, 0x42, 0x9436) /* <CJK> */
-MAP(0x6F, 0x43, 0x942B) /* <CJK> */
-MAP(0x6F, 0x44, 0x9435) /* <CJK> */
-MAP(0x6F, 0x45, 0x9421) /* <CJK> */
-MAP(0x6F, 0x46, 0x943A) /* <CJK> */
-MAP(0x6F, 0x47, 0x9441) /* <CJK> */
-MAP(0x6F, 0x48, 0x9452) /* <CJK> */
-MAP(0x6F, 0x49, 0x9444) /* <CJK> */
-MAP(0x6F, 0x4A, 0x945B) /* <CJK> */
-MAP(0x6F, 0x4B, 0x9460) /* <CJK> */
-MAP(0x6F, 0x4C, 0x9462) /* <CJK> */
-MAP(0x6F, 0x4D, 0x945E) /* <CJK> */
-MAP(0x6F, 0x4E, 0x946A) /* <CJK> */
-MAP(0x6F, 0x4F, 0x9229) /* <CJK> */
-MAP(0x6F, 0x50, 0x9470) /* <CJK> */
-MAP(0x6F, 0x51, 0x9475) /* <CJK> */
-MAP(0x6F, 0x52, 0x9477) /* <CJK> */
-MAP(0x6F, 0x53, 0x947D) /* <CJK> */
-MAP(0x6F, 0x54, 0x945A) /* <CJK> */
-MAP(0x6F, 0x55, 0x947C) /* <CJK> */
-MAP(0x6F, 0x56, 0x947E) /* <CJK> */
-MAP(0x6F, 0x57, 0x9481) /* <CJK> */
-MAP(0x6F, 0x58, 0x947F) /* <CJK> */
-MAP(0x6F, 0x59, 0x9582) /* <CJK> */
-MAP(0x6F, 0x5A, 0x9587) /* <CJK> */
-MAP(0x6F, 0x5B, 0x958A) /* <CJK> */
-MAP(0x6F, 0x5C, 0x9594) /* <CJK> */
-MAP(0x6F, 0x5D, 0x9596) /* <CJK> */
-MAP(0x6F, 0x5E, 0x9598) /* <CJK> */
-MAP(0x6F, 0x5F, 0x9599) /* <CJK> */
-MAP(0x6F, 0x60, 0x95A0) /* <CJK> */
-MAP(0x6F, 0x61, 0x95A8) /* <CJK> */
-MAP(0x6F, 0x62, 0x95A7) /* <CJK> */
-MAP(0x6F, 0x63, 0x95AD) /* <CJK> */
-MAP(0x6F, 0x64, 0x95BC) /* <CJK> */
-MAP(0x6F, 0x65, 0x95BB) /* <CJK> */
-MAP(0x6F, 0x66, 0x95B9) /* <CJK> */
-MAP(0x6F, 0x67, 0x95BE) /* <CJK> */
-MAP(0x6F, 0x68, 0x95CA) /* <CJK> */
-MAP(0x6F, 0x69, 0x6FF6) /* <CJK> */
-MAP(0x6F, 0x6A, 0x95C3) /* <CJK> */
-MAP(0x6F, 0x6B, 0x95CD) /* <CJK> */
-MAP(0x6F, 0x6C, 0x95CC) /* <CJK> */
-MAP(0x6F, 0x6D, 0x95D5) /* <CJK> */
-MAP(0x6F, 0x6E, 0x95D4) /* <CJK> */
-MAP(0x6F, 0x6F, 0x95D6) /* <CJK> */
-MAP(0x6F, 0x70, 0x95DC) /* <CJK> */
-MAP(0x6F, 0x71, 0x95E1) /* <CJK> */
-MAP(0x6F, 0x72, 0x95E5) /* <CJK> */
-MAP(0x6F, 0x73, 0x95E2) /* <CJK> */
-MAP(0x6F, 0x74, 0x9621) /* <CJK> */
-MAP(0x6F, 0x75, 0x9628) /* <CJK> */
-MAP(0x6F, 0x76, 0x962E) /* <CJK> */
-MAP(0x6F, 0x77, 0x962F) /* <CJK> */
-MAP(0x6F, 0x78, 0x9642) /* <CJK> */
-MAP(0x6F, 0x79, 0x964C) /* <CJK> */
-MAP(0x6F, 0x7A, 0x964F) /* <CJK> */
-MAP(0x6F, 0x7B, 0x964B) /* <CJK> */
-MAP(0x6F, 0x7C, 0x9677) /* <CJK> */
-MAP(0x6F, 0x7D, 0x965C) /* <CJK> */
-MAP(0x6F, 0x7E, 0x965E) /* <CJK> */
-MAP(0x70, 0x21, 0x965D) /* <CJK> */
-MAP(0x70, 0x22, 0x965F) /* <CJK> */
-MAP(0x70, 0x23, 0x9666) /* <CJK> */
-MAP(0x70, 0x24, 0x9672) /* <CJK> */
-MAP(0x70, 0x25, 0x966C) /* <CJK> */
-MAP(0x70, 0x26, 0x968D) /* <CJK> */
-MAP(0x70, 0x27, 0x9698) /* <CJK> */
-MAP(0x70, 0x28, 0x9695) /* <CJK> */
-MAP(0x70, 0x29, 0x9697) /* <CJK> */
-MAP(0x70, 0x2A, 0x96AA) /* <CJK> */
-MAP(0x70, 0x2B, 0x96A7) /* <CJK> */
-MAP(0x70, 0x2C, 0x96B1) /* <CJK> */
-MAP(0x70, 0x2D, 0x96B2) /* <CJK> */
-MAP(0x70, 0x2E, 0x96B0) /* <CJK> */
-MAP(0x70, 0x2F, 0x96B4) /* <CJK> */
-MAP(0x70, 0x30, 0x96B6) /* <CJK> */
-MAP(0x70, 0x31, 0x96B8) /* <CJK> */
-MAP(0x70, 0x32, 0x96B9) /* <CJK> */
-MAP(0x70, 0x33, 0x96CE) /* <CJK> */
-MAP(0x70, 0x34, 0x96CB) /* <CJK> */
-MAP(0x70, 0x35, 0x96C9) /* <CJK> */
-MAP(0x70, 0x36, 0x96CD) /* <CJK> */
-MAP(0x70, 0x37, 0x894D) /* <CJK> */
-MAP(0x70, 0x38, 0x96DC) /* <CJK> */
-MAP(0x70, 0x39, 0x970D) /* <CJK> */
-MAP(0x70, 0x3A, 0x96D5) /* <CJK> */
-MAP(0x70, 0x3B, 0x96F9) /* <CJK> */
-MAP(0x70, 0x3C, 0x9704) /* <CJK> */
-MAP(0x70, 0x3D, 0x9706) /* <CJK> */
-MAP(0x70, 0x3E, 0x9708) /* <CJK> */
-MAP(0x70, 0x3F, 0x9713) /* <CJK> */
-MAP(0x70, 0x40, 0x970E) /* <CJK> */
-MAP(0x70, 0x41, 0x9711) /* <CJK> */
-MAP(0x70, 0x42, 0x970F) /* <CJK> */
-MAP(0x70, 0x43, 0x9716) /* <CJK> */
-MAP(0x70, 0x44, 0x9719) /* <CJK> */
-MAP(0x70, 0x45, 0x9724) /* <CJK> */
-MAP(0x70, 0x46, 0x972A) /* <CJK> */
-MAP(0x70, 0x47, 0x9730) /* <CJK> */
-MAP(0x70, 0x48, 0x9739) /* <CJK> */
-MAP(0x70, 0x49, 0x973D) /* <CJK> */
-MAP(0x70, 0x4A, 0x973E) /* <CJK> */
-MAP(0x70, 0x4B, 0x9744) /* <CJK> */
-MAP(0x70, 0x4C, 0x9746) /* <CJK> */
-MAP(0x70, 0x4D, 0x9748) /* <CJK> */
-MAP(0x70, 0x4E, 0x9742) /* <CJK> */
-MAP(0x70, 0x4F, 0x9749) /* <CJK> */
-MAP(0x70, 0x50, 0x975C) /* <CJK> */
-MAP(0x70, 0x51, 0x9760) /* <CJK> */
-MAP(0x70, 0x52, 0x9764) /* <CJK> */
-MAP(0x70, 0x53, 0x9766) /* <CJK> */
-MAP(0x70, 0x54, 0x9768) /* <CJK> */
-MAP(0x70, 0x55, 0x52D2) /* <CJK> */
-MAP(0x70, 0x56, 0x976B) /* <CJK> */
-MAP(0x70, 0x57, 0x9771) /* <CJK> */
-MAP(0x70, 0x58, 0x9779) /* <CJK> */
-MAP(0x70, 0x59, 0x9785) /* <CJK> */
-MAP(0x70, 0x5A, 0x977C) /* <CJK> */
-MAP(0x70, 0x5B, 0x9781) /* <CJK> */
-MAP(0x70, 0x5C, 0x977A) /* <CJK> */
-MAP(0x70, 0x5D, 0x9786) /* <CJK> */
-MAP(0x70, 0x5E, 0x978B) /* <CJK> */
-MAP(0x70, 0x5F, 0x978F) /* <CJK> */
-MAP(0x70, 0x60, 0x9790) /* <CJK> */
-MAP(0x70, 0x61, 0x979C) /* <CJK> */
-MAP(0x70, 0x62, 0x97A8) /* <CJK> */
-MAP(0x70, 0x63, 0x97A6) /* <CJK> */
-MAP(0x70, 0x64, 0x97A3) /* <CJK> */
-MAP(0x70, 0x65, 0x97B3) /* <CJK> */
-MAP(0x70, 0x66, 0x97B4) /* <CJK> */
-MAP(0x70, 0x67, 0x97C3) /* <CJK> */
-MAP(0x70, 0x68, 0x97C6) /* <CJK> */
-MAP(0x70, 0x69, 0x97C8) /* <CJK> */
-MAP(0x70, 0x6A, 0x97CB) /* <CJK> */
-MAP(0x70, 0x6B, 0x97DC) /* <CJK> */
-MAP(0x70, 0x6C, 0x97ED) /* <CJK> */
-MAP(0x70, 0x6D, 0x9F4F) /* <CJK> */
-MAP(0x70, 0x6E, 0x97F2) /* <CJK> */
-MAP(0x70, 0x6F, 0x7ADF) /* <CJK> */
-MAP(0x70, 0x70, 0x97F6) /* <CJK> */
-MAP(0x70, 0x71, 0x97F5) /* <CJK> */
-MAP(0x70, 0x72, 0x980F) /* <CJK> */
-MAP(0x70, 0x73, 0x980C) /* <CJK> */
-MAP(0x70, 0x74, 0x9838) /* <CJK> */
-MAP(0x70, 0x75, 0x9824) /* <CJK> */
-MAP(0x70, 0x76, 0x9821) /* <CJK> */
-MAP(0x70, 0x77, 0x9837) /* <CJK> */
-MAP(0x70, 0x78, 0x983D) /* <CJK> */
-MAP(0x70, 0x79, 0x9846) /* <CJK> */
-MAP(0x70, 0x7A, 0x984F) /* <CJK> */
-MAP(0x70, 0x7B, 0x984B) /* <CJK> */
-MAP(0x70, 0x7C, 0x986B) /* <CJK> */
-MAP(0x70, 0x7D, 0x986F) /* <CJK> */
-MAP(0x70, 0x7E, 0x9870) /* <CJK> */
-MAP(0x71, 0x21, 0x9871) /* <CJK> */
-MAP(0x71, 0x22, 0x9874) /* <CJK> */
-MAP(0x71, 0x23, 0x9873) /* <CJK> */
-MAP(0x71, 0x24, 0x98AA) /* <CJK> */
-MAP(0x71, 0x25, 0x98AF) /* <CJK> */
-MAP(0x71, 0x26, 0x98B1) /* <CJK> */
-MAP(0x71, 0x27, 0x98B6) /* <CJK> */
-MAP(0x71, 0x28, 0x98C4) /* <CJK> */
-MAP(0x71, 0x29, 0x98C3) /* <CJK> */
-MAP(0x71, 0x2A, 0x98C6) /* <CJK> */
-MAP(0x71, 0x2B, 0x98E9) /* <CJK> */
-MAP(0x71, 0x2C, 0x98EB) /* <CJK> */
-MAP(0x71, 0x2D, 0x9903) /* <CJK> */
-MAP(0x71, 0x2E, 0x9909) /* <CJK> */
-MAP(0x71, 0x2F, 0x9912) /* <CJK> */
-MAP(0x71, 0x30, 0x9914) /* <CJK> */
-MAP(0x71, 0x31, 0x9918) /* <CJK> */
-MAP(0x71, 0x32, 0x9921) /* <CJK> */
-MAP(0x71, 0x33, 0x991D) /* <CJK> */
-MAP(0x71, 0x34, 0x991E) /* <CJK> */
-MAP(0x71, 0x35, 0x9924) /* <CJK> */
-MAP(0x71, 0x36, 0x9920) /* <CJK> */
-MAP(0x71, 0x37, 0x992C) /* <CJK> */
-MAP(0x71, 0x38, 0x992E) /* <CJK> */
-MAP(0x71, 0x39, 0x993D) /* <CJK> */
-MAP(0x71, 0x3A, 0x993E) /* <CJK> */
-MAP(0x71, 0x3B, 0x9942) /* <CJK> */
-MAP(0x71, 0x3C, 0x9949) /* <CJK> */
-MAP(0x71, 0x3D, 0x9945) /* <CJK> */
-MAP(0x71, 0x3E, 0x9950) /* <CJK> */
-MAP(0x71, 0x3F, 0x994B) /* <CJK> */
-MAP(0x71, 0x40, 0x9951) /* <CJK> */
-MAP(0x71, 0x41, 0x9952) /* <CJK> */
-MAP(0x71, 0x42, 0x994C) /* <CJK> */
-MAP(0x71, 0x43, 0x9955) /* <CJK> */
-MAP(0x71, 0x44, 0x9997) /* <CJK> */
-MAP(0x71, 0x45, 0x9998) /* <CJK> */
-MAP(0x71, 0x46, 0x99A5) /* <CJK> */
-MAP(0x71, 0x47, 0x99AD) /* <CJK> */
-MAP(0x71, 0x48, 0x99AE) /* <CJK> */
-MAP(0x71, 0x49, 0x99BC) /* <CJK> */
-MAP(0x71, 0x4A, 0x99DF) /* <CJK> */
-MAP(0x71, 0x4B, 0x99DB) /* <CJK> */
-MAP(0x71, 0x4C, 0x99DD) /* <CJK> */
-MAP(0x71, 0x4D, 0x99D8) /* <CJK> */
-MAP(0x71, 0x4E, 0x99D1) /* <CJK> */
-MAP(0x71, 0x4F, 0x99ED) /* <CJK> */
-MAP(0x71, 0x50, 0x99EE) /* <CJK> */
-MAP(0x71, 0x51, 0x99F1) /* <CJK> */
-MAP(0x71, 0x52, 0x99F2) /* <CJK> */
-MAP(0x71, 0x53, 0x99FB) /* <CJK> */
-MAP(0x71, 0x54, 0x99F8) /* <CJK> */
-MAP(0x71, 0x55, 0x9A01) /* <CJK> */
-MAP(0x71, 0x56, 0x9A0F) /* <CJK> */
-MAP(0x71, 0x57, 0x9A05) /* <CJK> */
-MAP(0x71, 0x58, 0x99E2) /* <CJK> */
-MAP(0x71, 0x59, 0x9A19) /* <CJK> */
-MAP(0x71, 0x5A, 0x9A2B) /* <CJK> */
-MAP(0x71, 0x5B, 0x9A37) /* <CJK> */
-MAP(0x71, 0x5C, 0x9A45) /* <CJK> */
-MAP(0x71, 0x5D, 0x9A42) /* <CJK> */
-MAP(0x71, 0x5E, 0x9A40) /* <CJK> */
-MAP(0x71, 0x5F, 0x9A43) /* <CJK> */
-MAP(0x71, 0x60, 0x9A3E) /* <CJK> */
-MAP(0x71, 0x61, 0x9A55) /* <CJK> */
-MAP(0x71, 0x62, 0x9A4D) /* <CJK> */
-MAP(0x71, 0x63, 0x9A5B) /* <CJK> */
-MAP(0x71, 0x64, 0x9A57) /* <CJK> */
-MAP(0x71, 0x65, 0x9A5F) /* <CJK> */
-MAP(0x71, 0x66, 0x9A62) /* <CJK> */
-MAP(0x71, 0x67, 0x9A65) /* <CJK> */
-MAP(0x71, 0x68, 0x9A64) /* <CJK> */
-MAP(0x71, 0x69, 0x9A69) /* <CJK> */
-MAP(0x71, 0x6A, 0x9A6B) /* <CJK> */
-MAP(0x71, 0x6B, 0x9A6A) /* <CJK> */
-MAP(0x71, 0x6C, 0x9AAD) /* <CJK> */
-MAP(0x71, 0x6D, 0x9AB0) /* <CJK> */
-MAP(0x71, 0x6E, 0x9ABC) /* <CJK> */
-MAP(0x71, 0x6F, 0x9AC0) /* <CJK> */
-MAP(0x71, 0x70, 0x9ACF) /* <CJK> */
-MAP(0x71, 0x71, 0x9AD1) /* <CJK> */
-MAP(0x71, 0x72, 0x9AD3) /* <CJK> */
-MAP(0x71, 0x73, 0x9AD4) /* <CJK> */
-MAP(0x71, 0x74, 0x9ADE) /* <CJK> */
-MAP(0x71, 0x75, 0x9ADF) /* <CJK> */
-MAP(0x71, 0x76, 0x9AE2) /* <CJK> */
-MAP(0x71, 0x77, 0x9AE3) /* <CJK> */
-MAP(0x71, 0x78, 0x9AE6) /* <CJK> */
-MAP(0x71, 0x79, 0x9AEF) /* <CJK> */
-MAP(0x71, 0x7A, 0x9AEB) /* <CJK> */
-MAP(0x71, 0x7B, 0x9AEE) /* <CJK> */
-MAP(0x71, 0x7C, 0x9AF4) /* <CJK> */
-MAP(0x71, 0x7D, 0x9AF1) /* <CJK> */
-MAP(0x71, 0x7E, 0x9AF7) /* <CJK> */
-MAP(0x72, 0x21, 0x9AFB) /* <CJK> */
-MAP(0x72, 0x22, 0x9B06) /* <CJK> */
-MAP(0x72, 0x23, 0x9B18) /* <CJK> */
-MAP(0x72, 0x24, 0x9B1A) /* <CJK> */
-MAP(0x72, 0x25, 0x9B1F) /* <CJK> */
-MAP(0x72, 0x26, 0x9B22) /* <CJK> */
-MAP(0x72, 0x27, 0x9B23) /* <CJK> */
-MAP(0x72, 0x28, 0x9B25) /* <CJK> */
-MAP(0x72, 0x29, 0x9B27) /* <CJK> */
-MAP(0x72, 0x2A, 0x9B28) /* <CJK> */
-MAP(0x72, 0x2B, 0x9B29) /* <CJK> */
-MAP(0x72, 0x2C, 0x9B2A) /* <CJK> */
-MAP(0x72, 0x2D, 0x9B2E) /* <CJK> */
-MAP(0x72, 0x2E, 0x9B2F) /* <CJK> */
-MAP(0x72, 0x2F, 0x9B32) /* <CJK> */
-MAP(0x72, 0x30, 0x9B44) /* <CJK> */
-MAP(0x72, 0x31, 0x9B43) /* <CJK> */
-MAP(0x72, 0x32, 0x9B4F) /* <CJK> */
-MAP(0x72, 0x33, 0x9B4D) /* <CJK> */
-MAP(0x72, 0x34, 0x9B4E) /* <CJK> */
-MAP(0x72, 0x35, 0x9B51) /* <CJK> */
-MAP(0x72, 0x36, 0x9B58) /* <CJK> */
-MAP(0x72, 0x37, 0x9B74) /* <CJK> */
-MAP(0x72, 0x38, 0x9B93) /* <CJK> */
-MAP(0x72, 0x39, 0x9B83) /* <CJK> */
-MAP(0x72, 0x3A, 0x9B91) /* <CJK> */
-MAP(0x72, 0x3B, 0x9B96) /* <CJK> */
-MAP(0x72, 0x3C, 0x9B97) /* <CJK> */
-MAP(0x72, 0x3D, 0x9B9F) /* <CJK> */
-MAP(0x72, 0x3E, 0x9BA0) /* <CJK> */
-MAP(0x72, 0x3F, 0x9BA8) /* <CJK> */
-MAP(0x72, 0x40, 0x9BB4) /* <CJK> */
-MAP(0x72, 0x41, 0x9BC0) /* <CJK> */
-MAP(0x72, 0x42, 0x9BCA) /* <CJK> */
-MAP(0x72, 0x43, 0x9BB9) /* <CJK> */
-MAP(0x72, 0x44, 0x9BC6) /* <CJK> */
-MAP(0x72, 0x45, 0x9BCF) /* <CJK> */
-MAP(0x72, 0x46, 0x9BD1) /* <CJK> */
-MAP(0x72, 0x47, 0x9BD2) /* <CJK> */
-MAP(0x72, 0x48, 0x9BE3) /* <CJK> */
-MAP(0x72, 0x49, 0x9BE2) /* <CJK> */
-MAP(0x72, 0x4A, 0x9BE4) /* <CJK> */
-MAP(0x72, 0x4B, 0x9BD4) /* <CJK> */
-MAP(0x72, 0x4C, 0x9BE1) /* <CJK> */
-MAP(0x72, 0x4D, 0x9C3A) /* <CJK> */
-MAP(0x72, 0x4E, 0x9BF2) /* <CJK> */
-MAP(0x72, 0x4F, 0x9BF1) /* <CJK> */
-MAP(0x72, 0x50, 0x9BF0) /* <CJK> */
-MAP(0x72, 0x51, 0x9C15) /* <CJK> */
-MAP(0x72, 0x52, 0x9C14) /* <CJK> */
-MAP(0x72, 0x53, 0x9C09) /* <CJK> */
-MAP(0x72, 0x54, 0x9C13) /* <CJK> */
-MAP(0x72, 0x55, 0x9C0C) /* <CJK> */
-MAP(0x72, 0x56, 0x9C06) /* <CJK> */
-MAP(0x72, 0x57, 0x9C08) /* <CJK> */
-MAP(0x72, 0x58, 0x9C12) /* <CJK> */
-MAP(0x72, 0x59, 0x9C0A) /* <CJK> */
-MAP(0x72, 0x5A, 0x9C04) /* <CJK> */
-MAP(0x72, 0x5B, 0x9C2E) /* <CJK> */
-MAP(0x72, 0x5C, 0x9C1B) /* <CJK> */
-MAP(0x72, 0x5D, 0x9C25) /* <CJK> */
-MAP(0x72, 0x5E, 0x9C24) /* <CJK> */
-MAP(0x72, 0x5F, 0x9C21) /* <CJK> */
-MAP(0x72, 0x60, 0x9C30) /* <CJK> */
-MAP(0x72, 0x61, 0x9C47) /* <CJK> */
-MAP(0x72, 0x62, 0x9C32) /* <CJK> */
-MAP(0x72, 0x63, 0x9C46) /* <CJK> */
-MAP(0x72, 0x64, 0x9C3E) /* <CJK> */
-MAP(0x72, 0x65, 0x9C5A) /* <CJK> */
-MAP(0x72, 0x66, 0x9C60) /* <CJK> */
-MAP(0x72, 0x67, 0x9C67) /* <CJK> */
-MAP(0x72, 0x68, 0x9C76) /* <CJK> */
-MAP(0x72, 0x69, 0x9C78) /* <CJK> */
-MAP(0x72, 0x6A, 0x9CE7) /* <CJK> */
-MAP(0x72, 0x6B, 0x9CEC) /* <CJK> */
-MAP(0x72, 0x6C, 0x9CF0) /* <CJK> */
-MAP(0x72, 0x6D, 0x9D09) /* <CJK> */
-MAP(0x72, 0x6E, 0x9D08) /* <CJK> */
-MAP(0x72, 0x6F, 0x9CEB) /* <CJK> */
-MAP(0x72, 0x70, 0x9D03) /* <CJK> */
-MAP(0x72, 0x71, 0x9D06) /* <CJK> */
-MAP(0x72, 0x72, 0x9D2A) /* <CJK> */
-MAP(0x72, 0x73, 0x9D26) /* <CJK> */
-MAP(0x72, 0x74, 0x9DAF) /* <CJK> */
-MAP(0x72, 0x75, 0x9D23) /* <CJK> */
-MAP(0x72, 0x76, 0x9D1F) /* <CJK> */
-MAP(0x72, 0x77, 0x9D44) /* <CJK> */
-MAP(0x72, 0x78, 0x9D15) /* <CJK> */
-MAP(0x72, 0x79, 0x9D12) /* <CJK> */
-MAP(0x72, 0x7A, 0x9D41) /* <CJK> */
-MAP(0x72, 0x7B, 0x9D3F) /* <CJK> */
-MAP(0x72, 0x7C, 0x9D3E) /* <CJK> */
-MAP(0x72, 0x7D, 0x9D46) /* <CJK> */
-MAP(0x72, 0x7E, 0x9D48) /* <CJK> */
-MAP(0x73, 0x21, 0x9D5D) /* <CJK> */
-MAP(0x73, 0x22, 0x9D5E) /* <CJK> */
-MAP(0x73, 0x23, 0x9D64) /* <CJK> */
-MAP(0x73, 0x24, 0x9D51) /* <CJK> */
-MAP(0x73, 0x25, 0x9D50) /* <CJK> */
-MAP(0x73, 0x26, 0x9D59) /* <CJK> */
-MAP(0x73, 0x27, 0x9D72) /* <CJK> */
-MAP(0x73, 0x28, 0x9D89) /* <CJK> */
-MAP(0x73, 0x29, 0x9D87) /* <CJK> */
-MAP(0x73, 0x2A, 0x9DAB) /* <CJK> */
-MAP(0x73, 0x2B, 0x9D6F) /* <CJK> */
-MAP(0x73, 0x2C, 0x9D7A) /* <CJK> */
-MAP(0x73, 0x2D, 0x9D9A) /* <CJK> */
-MAP(0x73, 0x2E, 0x9DA4) /* <CJK> */
-MAP(0x73, 0x2F, 0x9DA9) /* <CJK> */
-MAP(0x73, 0x30, 0x9DB2) /* <CJK> */
-MAP(0x73, 0x31, 0x9DC4) /* <CJK> */
-MAP(0x73, 0x32, 0x9DC1) /* <CJK> */
-MAP(0x73, 0x33, 0x9DBB) /* <CJK> */
-MAP(0x73, 0x34, 0x9DB8) /* <CJK> */
-MAP(0x73, 0x35, 0x9DBA) /* <CJK> */
-MAP(0x73, 0x36, 0x9DC6) /* <CJK> */
-MAP(0x73, 0x37, 0x9DCF) /* <CJK> */
-MAP(0x73, 0x38, 0x9DC2) /* <CJK> */
-MAP(0x73, 0x39, 0x9DD9) /* <CJK> */
-MAP(0x73, 0x3A, 0x9DD3) /* <CJK> */
-MAP(0x73, 0x3B, 0x9DF8) /* <CJK> */
-MAP(0x73, 0x3C, 0x9DE6) /* <CJK> */
-MAP(0x73, 0x3D, 0x9DED) /* <CJK> */
-MAP(0x73, 0x3E, 0x9DEF) /* <CJK> */
-MAP(0x73, 0x3F, 0x9DFD) /* <CJK> */
-MAP(0x73, 0x40, 0x9E1A) /* <CJK> */
-MAP(0x73, 0x41, 0x9E1B) /* <CJK> */
-MAP(0x73, 0x42, 0x9E1E) /* <CJK> */
-MAP(0x73, 0x43, 0x9E75) /* <CJK> */
-MAP(0x73, 0x44, 0x9E79) /* <CJK> */
-MAP(0x73, 0x45, 0x9E7D) /* <CJK> */
-MAP(0x73, 0x46, 0x9E81) /* <CJK> */
-MAP(0x73, 0x47, 0x9E88) /* <CJK> */
-MAP(0x73, 0x48, 0x9E8B) /* <CJK> */
-MAP(0x73, 0x49, 0x9E8C) /* <CJK> */
-MAP(0x73, 0x4A, 0x9E92) /* <CJK> */
-MAP(0x73, 0x4B, 0x9E95) /* <CJK> */
-MAP(0x73, 0x4C, 0x9E91) /* <CJK> */
-MAP(0x73, 0x4D, 0x9E9D) /* <CJK> */
-MAP(0x73, 0x4E, 0x9EA5) /* <CJK> */
-MAP(0x73, 0x4F, 0x9EA9) /* <CJK> */
-MAP(0x73, 0x50, 0x9EB8) /* <CJK> */
-MAP(0x73, 0x51, 0x9EAA) /* <CJK> */
-MAP(0x73, 0x52, 0x9EAD) /* <CJK> */
-MAP(0x73, 0x53, 0x9761) /* <CJK> */
-MAP(0x73, 0x54, 0x9ECC) /* <CJK> */
-MAP(0x73, 0x55, 0x9ECE) /* <CJK> */
-MAP(0x73, 0x56, 0x9ECF) /* <CJK> */
-MAP(0x73, 0x57, 0x9ED0) /* <CJK> */
-MAP(0x73, 0x58, 0x9ED4) /* <CJK> */
-MAP(0x73, 0x59, 0x9EDC) /* <CJK> */
-MAP(0x73, 0x5A, 0x9EDE) /* <CJK> */
-MAP(0x73, 0x5B, 0x9EDD) /* <CJK> */
-MAP(0x73, 0x5C, 0x9EE0) /* <CJK> */
-MAP(0x73, 0x5D, 0x9EE5) /* <CJK> */
-MAP(0x73, 0x5E, 0x9EE8) /* <CJK> */
-MAP(0x73, 0x5F, 0x9EEF) /* <CJK> */
-MAP(0x73, 0x60, 0x9EF4) /* <CJK> */
-MAP(0x73, 0x61, 0x9EF6) /* <CJK> */
-MAP(0x73, 0x62, 0x9EF7) /* <CJK> */
-MAP(0x73, 0x63, 0x9EF9) /* <CJK> */
-MAP(0x73, 0x64, 0x9EFB) /* <CJK> */
-MAP(0x73, 0x65, 0x9EFC) /* <CJK> */
-MAP(0x73, 0x66, 0x9EFD) /* <CJK> */
-MAP(0x73, 0x67, 0x9F07) /* <CJK> */
-MAP(0x73, 0x68, 0x9F08) /* <CJK> */
-MAP(0x73, 0x69, 0x76B7) /* <CJK> */
-MAP(0x73, 0x6A, 0x9F15) /* <CJK> */
-MAP(0x73, 0x6B, 0x9F21) /* <CJK> */
-MAP(0x73, 0x6C, 0x9F2C) /* <CJK> */
-MAP(0x73, 0x6D, 0x9F3E) /* <CJK> */
-MAP(0x73, 0x6E, 0x9F4A) /* <CJK> */
-MAP(0x73, 0x6F, 0x9F52) /* <CJK> */
-MAP(0x73, 0x70, 0x9F54) /* <CJK> */
-MAP(0x73, 0x71, 0x9F63) /* <CJK> */
-MAP(0x73, 0x72, 0x9F5F) /* <CJK> */
-MAP(0x73, 0x73, 0x9F60) /* <CJK> */
-MAP(0x73, 0x74, 0x9F61) /* <CJK> */
-MAP(0x73, 0x75, 0x9F66) /* <CJK> */
-MAP(0x73, 0x76, 0x9F67) /* <CJK> */
-MAP(0x73, 0x77, 0x9F6C) /* <CJK> */
-MAP(0x73, 0x78, 0x9F6A) /* <CJK> */
-MAP(0x73, 0x79, 0x9F77) /* <CJK> */
-MAP(0x73, 0x7A, 0x9F72) /* <CJK> */
-MAP(0x73, 0x7B, 0x9F76) /* <CJK> */
-MAP(0x73, 0x7C, 0x9F95) /* <CJK> */
-MAP(0x73, 0x7D, 0x9F9C) /* <CJK> */
-MAP(0x73, 0x7E, 0x9FA0) /* <CJK> */
-MAP(0x74, 0x21, 0x582F) /* <CJK> */
-MAP(0x74, 0x22, 0x69C7) /* <CJK> */
-MAP(0x74, 0x23, 0x9059) /* <CJK> */
-MAP(0x74, 0x24, 0x7464) /* <CJK> */
-MAP(0x74, 0x25, 0x51DC) /* <CJK> */
-MAP(0x74, 0x26, 0x7199) /* <CJK> */
diff --git a/libjava/gnu/gcj/convert/JIS0208_to_Unicode.cc b/libjava/gnu/gcj/convert/JIS0208_to_Unicode.cc
deleted file mode 100644
index a10ad4b3c25..00000000000
--- a/libjava/gnu/gcj/convert/JIS0208_to_Unicode.cc
+++ /dev/null
@@ -1,7325 +0,0 @@
-/* This file is automatically generated from JIS0208.TXT. */
-unsigned short JIS0208_to_Unicode[84][94] = {
-/* 1st byte: 33 */ {
- /* 2nd byte: 33 */ 0x3000,
- /* 2nd byte: 34 */ 0x3001,
- /* 2nd byte: 35 */ 0x3002,
- /* 2nd byte: 36 */ 0xff0c,
- /* 2nd byte: 37 */ 0xff0e,
- /* 2nd byte: 38 */ 0x30fb,
- /* 2nd byte: 39 */ 0xff1a,
- /* 2nd byte: 40 */ 0xff1b,
- /* 2nd byte: 41 */ 0xff1f,
- /* 2nd byte: 42 */ 0xff01,
- /* 2nd byte: 43 */ 0x309b,
- /* 2nd byte: 44 */ 0x309c,
- /* 2nd byte: 45 */ 0x00b4,
- /* 2nd byte: 46 */ 0xff40,
- /* 2nd byte: 47 */ 0x00a8,
- /* 2nd byte: 48 */ 0xff3e,
- /* 2nd byte: 49 */ 0xffe3,
- /* 2nd byte: 50 */ 0xff3f,
- /* 2nd byte: 51 */ 0x30fd,
- /* 2nd byte: 52 */ 0x30fe,
- /* 2nd byte: 53 */ 0x309d,
- /* 2nd byte: 54 */ 0x309e,
- /* 2nd byte: 55 */ 0x3003,
- /* 2nd byte: 56 */ 0x4edd,
- /* 2nd byte: 57 */ 0x3005,
- /* 2nd byte: 58 */ 0x3006,
- /* 2nd byte: 59 */ 0x3007,
- /* 2nd byte: 60 */ 0x30fc,
- /* 2nd byte: 61 */ 0x2015,
- /* 2nd byte: 62 */ 0x2010,
- /* 2nd byte: 63 */ 0xff0f,
- /* 2nd byte: 64 */ 0x005c,
- /* 2nd byte: 65 */ 0x301c,
- /* 2nd byte: 66 */ 0x2016,
- /* 2nd byte: 67 */ 0xff5c,
- /* 2nd byte: 68 */ 0x2026,
- /* 2nd byte: 69 */ 0x2025,
- /* 2nd byte: 70 */ 0x2018,
- /* 2nd byte: 71 */ 0x2019,
- /* 2nd byte: 72 */ 0x201c,
- /* 2nd byte: 73 */ 0x201d,
- /* 2nd byte: 74 */ 0xff08,
- /* 2nd byte: 75 */ 0xff09,
- /* 2nd byte: 76 */ 0x3014,
- /* 2nd byte: 77 */ 0x3015,
- /* 2nd byte: 78 */ 0xff3b,
- /* 2nd byte: 79 */ 0xff3d,
- /* 2nd byte: 80 */ 0xff5b,
- /* 2nd byte: 81 */ 0xff5d,
- /* 2nd byte: 82 */ 0x3008,
- /* 2nd byte: 83 */ 0x3009,
- /* 2nd byte: 84 */ 0x300a,
- /* 2nd byte: 85 */ 0x300b,
- /* 2nd byte: 86 */ 0x300c,
- /* 2nd byte: 87 */ 0x300d,
- /* 2nd byte: 88 */ 0x300e,
- /* 2nd byte: 89 */ 0x300f,
- /* 2nd byte: 90 */ 0x3010,
- /* 2nd byte: 91 */ 0x3011,
- /* 2nd byte: 92 */ 0xff0b,
- /* 2nd byte: 93 */ 0x2212,
- /* 2nd byte: 94 */ 0x00b1,
- /* 2nd byte: 95 */ 0x00d7,
- /* 2nd byte: 96 */ 0x00f7,
- /* 2nd byte: 97 */ 0xff1d,
- /* 2nd byte: 98 */ 0x2260,
- /* 2nd byte: 99 */ 0xff1c,
- /* 2nd byte: 100 */ 0xff1e,
- /* 2nd byte: 101 */ 0x2266,
- /* 2nd byte: 102 */ 0x2267,
- /* 2nd byte: 103 */ 0x221e,
- /* 2nd byte: 104 */ 0x2234,
- /* 2nd byte: 105 */ 0x2642,
- /* 2nd byte: 106 */ 0x2640,
- /* 2nd byte: 107 */ 0x00b0,
- /* 2nd byte: 108 */ 0x2032,
- /* 2nd byte: 109 */ 0x2033,
- /* 2nd byte: 110 */ 0x2103,
- /* 2nd byte: 111 */ 0xffe5,
- /* 2nd byte: 112 */ 0xff04,
- /* 2nd byte: 113 */ 0x00a2,
- /* 2nd byte: 114 */ 0x00a3,
- /* 2nd byte: 115 */ 0xff05,
- /* 2nd byte: 116 */ 0xff03,
- /* 2nd byte: 117 */ 0xff06,
- /* 2nd byte: 118 */ 0xff0a,
- /* 2nd byte: 119 */ 0xff20,
- /* 2nd byte: 120 */ 0x00a7,
- /* 2nd byte: 121 */ 0x2606,
- /* 2nd byte: 122 */ 0x2605,
- /* 2nd byte: 123 */ 0x25cb,
- /* 2nd byte: 124 */ 0x25cf,
- /* 2nd byte: 125 */ 0x25ce,
- /* 2nd byte: 126 */ 0x25c7},
-/* 1st byte: 34 */ {
- /* 2nd byte: 33 */ 0x25c6,
- /* 2nd byte: 34 */ 0x25a1,
- /* 2nd byte: 35 */ 0x25a0,
- /* 2nd byte: 36 */ 0x25b3,
- /* 2nd byte: 37 */ 0x25b2,
- /* 2nd byte: 38 */ 0x25bd,
- /* 2nd byte: 39 */ 0x25bc,
- /* 2nd byte: 40 */ 0x203b,
- /* 2nd byte: 41 */ 0x3012,
- /* 2nd byte: 42 */ 0x2192,
- /* 2nd byte: 43 */ 0x2190,
- /* 2nd byte: 44 */ 0x2191,
- /* 2nd byte: 45 */ 0x2193,
- /* 2nd byte: 46 */ 0x3013,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 58 */ 0x2208,
- /* 2nd byte: 59 */ 0x220b,
- /* 2nd byte: 60 */ 0x2286,
- /* 2nd byte: 61 */ 0x2287,
- /* 2nd byte: 62 */ 0x2282,
- /* 2nd byte: 63 */ 0x2283,
- /* 2nd byte: 64 */ 0x222a,
- /* 2nd byte: 65 */ 0x2229,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 74 */ 0x2227,
- /* 2nd byte: 75 */ 0x2228,
- /* 2nd byte: 76 */ 0x00ac,
- /* 2nd byte: 77 */ 0x21d2,
- /* 2nd byte: 78 */ 0x21d4,
- /* 2nd byte: 79 */ 0x2200,
- /* 2nd byte: 80 */ 0x2203,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 92 */ 0x2220,
- /* 2nd byte: 93 */ 0x22a5,
- /* 2nd byte: 94 */ 0x2312,
- /* 2nd byte: 95 */ 0x2202,
- /* 2nd byte: 96 */ 0x2207,
- /* 2nd byte: 97 */ 0x2261,
- /* 2nd byte: 98 */ 0x2252,
- /* 2nd byte: 99 */ 0x226a,
- /* 2nd byte: 100 */ 0x226b,
- /* 2nd byte: 101 */ 0x221a,
- /* 2nd byte: 102 */ 0x223d,
- /* 2nd byte: 103 */ 0x221d,
- /* 2nd byte: 104 */ 0x2235,
- /* 2nd byte: 105 */ 0x222b,
- /* 2nd byte: 106 */ 0x222c,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 114 */ 0x212b,
- /* 2nd byte: 115 */ 0x2030,
- /* 2nd byte: 116 */ 0x266f,
- /* 2nd byte: 117 */ 0x266d,
- /* 2nd byte: 118 */ 0x266a,
- /* 2nd byte: 119 */ 0x2020,
- /* 2nd byte: 120 */ 0x2021,
- /* 2nd byte: 121 */ 0x00b6,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 126 */ 0x25ef},
-/* 1st byte: 35 */ {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 48 */ 0xff10,
- /* 2nd byte: 49 */ 0xff11,
- /* 2nd byte: 50 */ 0xff12,
- /* 2nd byte: 51 */ 0xff13,
- /* 2nd byte: 52 */ 0xff14,
- /* 2nd byte: 53 */ 0xff15,
- /* 2nd byte: 54 */ 0xff16,
- /* 2nd byte: 55 */ 0xff17,
- /* 2nd byte: 56 */ 0xff18,
- /* 2nd byte: 57 */ 0xff19,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 65 */ 0xff21,
- /* 2nd byte: 66 */ 0xff22,
- /* 2nd byte: 67 */ 0xff23,
- /* 2nd byte: 68 */ 0xff24,
- /* 2nd byte: 69 */ 0xff25,
- /* 2nd byte: 70 */ 0xff26,
- /* 2nd byte: 71 */ 0xff27,
- /* 2nd byte: 72 */ 0xff28,
- /* 2nd byte: 73 */ 0xff29,
- /* 2nd byte: 74 */ 0xff2a,
- /* 2nd byte: 75 */ 0xff2b,
- /* 2nd byte: 76 */ 0xff2c,
- /* 2nd byte: 77 */ 0xff2d,
- /* 2nd byte: 78 */ 0xff2e,
- /* 2nd byte: 79 */ 0xff2f,
- /* 2nd byte: 80 */ 0xff30,
- /* 2nd byte: 81 */ 0xff31,
- /* 2nd byte: 82 */ 0xff32,
- /* 2nd byte: 83 */ 0xff33,
- /* 2nd byte: 84 */ 0xff34,
- /* 2nd byte: 85 */ 0xff35,
- /* 2nd byte: 86 */ 0xff36,
- /* 2nd byte: 87 */ 0xff37,
- /* 2nd byte: 88 */ 0xff38,
- /* 2nd byte: 89 */ 0xff39,
- /* 2nd byte: 90 */ 0xff3a,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 97 */ 0xff41,
- /* 2nd byte: 98 */ 0xff42,
- /* 2nd byte: 99 */ 0xff43,
- /* 2nd byte: 100 */ 0xff44,
- /* 2nd byte: 101 */ 0xff45,
- /* 2nd byte: 102 */ 0xff46,
- /* 2nd byte: 103 */ 0xff47,
- /* 2nd byte: 104 */ 0xff48,
- /* 2nd byte: 105 */ 0xff49,
- /* 2nd byte: 106 */ 0xff4a,
- /* 2nd byte: 107 */ 0xff4b,
- /* 2nd byte: 108 */ 0xff4c,
- /* 2nd byte: 109 */ 0xff4d,
- /* 2nd byte: 110 */ 0xff4e,
- /* 2nd byte: 111 */ 0xff4f,
- /* 2nd byte: 112 */ 0xff50,
- /* 2nd byte: 113 */ 0xff51,
- /* 2nd byte: 114 */ 0xff52,
- /* 2nd byte: 115 */ 0xff53,
- /* 2nd byte: 116 */ 0xff54,
- /* 2nd byte: 117 */ 0xff55,
- /* 2nd byte: 118 */ 0xff56,
- /* 2nd byte: 119 */ 0xff57,
- /* 2nd byte: 120 */ 0xff58,
- /* 2nd byte: 121 */ 0xff59,
- /* 2nd byte: 122 */ 0xff5a,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 36 */ {
- /* 2nd byte: 33 */ 0x3041,
- /* 2nd byte: 34 */ 0x3042,
- /* 2nd byte: 35 */ 0x3043,
- /* 2nd byte: 36 */ 0x3044,
- /* 2nd byte: 37 */ 0x3045,
- /* 2nd byte: 38 */ 0x3046,
- /* 2nd byte: 39 */ 0x3047,
- /* 2nd byte: 40 */ 0x3048,
- /* 2nd byte: 41 */ 0x3049,
- /* 2nd byte: 42 */ 0x304a,
- /* 2nd byte: 43 */ 0x304b,
- /* 2nd byte: 44 */ 0x304c,
- /* 2nd byte: 45 */ 0x304d,
- /* 2nd byte: 46 */ 0x304e,
- /* 2nd byte: 47 */ 0x304f,
- /* 2nd byte: 48 */ 0x3050,
- /* 2nd byte: 49 */ 0x3051,
- /* 2nd byte: 50 */ 0x3052,
- /* 2nd byte: 51 */ 0x3053,
- /* 2nd byte: 52 */ 0x3054,
- /* 2nd byte: 53 */ 0x3055,
- /* 2nd byte: 54 */ 0x3056,
- /* 2nd byte: 55 */ 0x3057,
- /* 2nd byte: 56 */ 0x3058,
- /* 2nd byte: 57 */ 0x3059,
- /* 2nd byte: 58 */ 0x305a,
- /* 2nd byte: 59 */ 0x305b,
- /* 2nd byte: 60 */ 0x305c,
- /* 2nd byte: 61 */ 0x305d,
- /* 2nd byte: 62 */ 0x305e,
- /* 2nd byte: 63 */ 0x305f,
- /* 2nd byte: 64 */ 0x3060,
- /* 2nd byte: 65 */ 0x3061,
- /* 2nd byte: 66 */ 0x3062,
- /* 2nd byte: 67 */ 0x3063,
- /* 2nd byte: 68 */ 0x3064,
- /* 2nd byte: 69 */ 0x3065,
- /* 2nd byte: 70 */ 0x3066,
- /* 2nd byte: 71 */ 0x3067,
- /* 2nd byte: 72 */ 0x3068,
- /* 2nd byte: 73 */ 0x3069,
- /* 2nd byte: 74 */ 0x306a,
- /* 2nd byte: 75 */ 0x306b,
- /* 2nd byte: 76 */ 0x306c,
- /* 2nd byte: 77 */ 0x306d,
- /* 2nd byte: 78 */ 0x306e,
- /* 2nd byte: 79 */ 0x306f,
- /* 2nd byte: 80 */ 0x3070,
- /* 2nd byte: 81 */ 0x3071,
- /* 2nd byte: 82 */ 0x3072,
- /* 2nd byte: 83 */ 0x3073,
- /* 2nd byte: 84 */ 0x3074,
- /* 2nd byte: 85 */ 0x3075,
- /* 2nd byte: 86 */ 0x3076,
- /* 2nd byte: 87 */ 0x3077,
- /* 2nd byte: 88 */ 0x3078,
- /* 2nd byte: 89 */ 0x3079,
- /* 2nd byte: 90 */ 0x307a,
- /* 2nd byte: 91 */ 0x307b,
- /* 2nd byte: 92 */ 0x307c,
- /* 2nd byte: 93 */ 0x307d,
- /* 2nd byte: 94 */ 0x307e,
- /* 2nd byte: 95 */ 0x307f,
- /* 2nd byte: 96 */ 0x3080,
- /* 2nd byte: 97 */ 0x3081,
- /* 2nd byte: 98 */ 0x3082,
- /* 2nd byte: 99 */ 0x3083,
- /* 2nd byte: 100 */ 0x3084,
- /* 2nd byte: 101 */ 0x3085,
- /* 2nd byte: 102 */ 0x3086,
- /* 2nd byte: 103 */ 0x3087,
- /* 2nd byte: 104 */ 0x3088,
- /* 2nd byte: 105 */ 0x3089,
- /* 2nd byte: 106 */ 0x308a,
- /* 2nd byte: 107 */ 0x308b,
- /* 2nd byte: 108 */ 0x308c,
- /* 2nd byte: 109 */ 0x308d,
- /* 2nd byte: 110 */ 0x308e,
- /* 2nd byte: 111 */ 0x308f,
- /* 2nd byte: 112 */ 0x3090,
- /* 2nd byte: 113 */ 0x3091,
- /* 2nd byte: 114 */ 0x3092,
- /* 2nd byte: 115 */ 0x3093,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 37 */ {
- /* 2nd byte: 33 */ 0x30a1,
- /* 2nd byte: 34 */ 0x30a2,
- /* 2nd byte: 35 */ 0x30a3,
- /* 2nd byte: 36 */ 0x30a4,
- /* 2nd byte: 37 */ 0x30a5,
- /* 2nd byte: 38 */ 0x30a6,
- /* 2nd byte: 39 */ 0x30a7,
- /* 2nd byte: 40 */ 0x30a8,
- /* 2nd byte: 41 */ 0x30a9,
- /* 2nd byte: 42 */ 0x30aa,
- /* 2nd byte: 43 */ 0x30ab,
- /* 2nd byte: 44 */ 0x30ac,
- /* 2nd byte: 45 */ 0x30ad,
- /* 2nd byte: 46 */ 0x30ae,
- /* 2nd byte: 47 */ 0x30af,
- /* 2nd byte: 48 */ 0x30b0,
- /* 2nd byte: 49 */ 0x30b1,
- /* 2nd byte: 50 */ 0x30b2,
- /* 2nd byte: 51 */ 0x30b3,
- /* 2nd byte: 52 */ 0x30b4,
- /* 2nd byte: 53 */ 0x30b5,
- /* 2nd byte: 54 */ 0x30b6,
- /* 2nd byte: 55 */ 0x30b7,
- /* 2nd byte: 56 */ 0x30b8,
- /* 2nd byte: 57 */ 0x30b9,
- /* 2nd byte: 58 */ 0x30ba,
- /* 2nd byte: 59 */ 0x30bb,
- /* 2nd byte: 60 */ 0x30bc,
- /* 2nd byte: 61 */ 0x30bd,
- /* 2nd byte: 62 */ 0x30be,
- /* 2nd byte: 63 */ 0x30bf,
- /* 2nd byte: 64 */ 0x30c0,
- /* 2nd byte: 65 */ 0x30c1,
- /* 2nd byte: 66 */ 0x30c2,
- /* 2nd byte: 67 */ 0x30c3,
- /* 2nd byte: 68 */ 0x30c4,
- /* 2nd byte: 69 */ 0x30c5,
- /* 2nd byte: 70 */ 0x30c6,
- /* 2nd byte: 71 */ 0x30c7,
- /* 2nd byte: 72 */ 0x30c8,
- /* 2nd byte: 73 */ 0x30c9,
- /* 2nd byte: 74 */ 0x30ca,
- /* 2nd byte: 75 */ 0x30cb,
- /* 2nd byte: 76 */ 0x30cc,
- /* 2nd byte: 77 */ 0x30cd,
- /* 2nd byte: 78 */ 0x30ce,
- /* 2nd byte: 79 */ 0x30cf,
- /* 2nd byte: 80 */ 0x30d0,
- /* 2nd byte: 81 */ 0x30d1,
- /* 2nd byte: 82 */ 0x30d2,
- /* 2nd byte: 83 */ 0x30d3,
- /* 2nd byte: 84 */ 0x30d4,
- /* 2nd byte: 85 */ 0x30d5,
- /* 2nd byte: 86 */ 0x30d6,
- /* 2nd byte: 87 */ 0x30d7,
- /* 2nd byte: 88 */ 0x30d8,
- /* 2nd byte: 89 */ 0x30d9,
- /* 2nd byte: 90 */ 0x30da,
- /* 2nd byte: 91 */ 0x30db,
- /* 2nd byte: 92 */ 0x30dc,
- /* 2nd byte: 93 */ 0x30dd,
- /* 2nd byte: 94 */ 0x30de,
- /* 2nd byte: 95 */ 0x30df,
- /* 2nd byte: 96 */ 0x30e0,
- /* 2nd byte: 97 */ 0x30e1,
- /* 2nd byte: 98 */ 0x30e2,
- /* 2nd byte: 99 */ 0x30e3,
- /* 2nd byte: 100 */ 0x30e4,
- /* 2nd byte: 101 */ 0x30e5,
- /* 2nd byte: 102 */ 0x30e6,
- /* 2nd byte: 103 */ 0x30e7,
- /* 2nd byte: 104 */ 0x30e8,
- /* 2nd byte: 105 */ 0x30e9,
- /* 2nd byte: 106 */ 0x30ea,
- /* 2nd byte: 107 */ 0x30eb,
- /* 2nd byte: 108 */ 0x30ec,
- /* 2nd byte: 109 */ 0x30ed,
- /* 2nd byte: 110 */ 0x30ee,
- /* 2nd byte: 111 */ 0x30ef,
- /* 2nd byte: 112 */ 0x30f0,
- /* 2nd byte: 113 */ 0x30f1,
- /* 2nd byte: 114 */ 0x30f2,
- /* 2nd byte: 115 */ 0x30f3,
- /* 2nd byte: 116 */ 0x30f4,
- /* 2nd byte: 117 */ 0x30f5,
- /* 2nd byte: 118 */ 0x30f6,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 38 */ {
- /* 2nd byte: 33 */ 0x0391,
- /* 2nd byte: 34 */ 0x0392,
- /* 2nd byte: 35 */ 0x0393,
- /* 2nd byte: 36 */ 0x0394,
- /* 2nd byte: 37 */ 0x0395,
- /* 2nd byte: 38 */ 0x0396,
- /* 2nd byte: 39 */ 0x0397,
- /* 2nd byte: 40 */ 0x0398,
- /* 2nd byte: 41 */ 0x0399,
- /* 2nd byte: 42 */ 0x039a,
- /* 2nd byte: 43 */ 0x039b,
- /* 2nd byte: 44 */ 0x039c,
- /* 2nd byte: 45 */ 0x039d,
- /* 2nd byte: 46 */ 0x039e,
- /* 2nd byte: 47 */ 0x039f,
- /* 2nd byte: 48 */ 0x03a0,
- /* 2nd byte: 49 */ 0x03a1,
- /* 2nd byte: 50 */ 0x03a3,
- /* 2nd byte: 51 */ 0x03a4,
- /* 2nd byte: 52 */ 0x03a5,
- /* 2nd byte: 53 */ 0x03a6,
- /* 2nd byte: 54 */ 0x03a7,
- /* 2nd byte: 55 */ 0x03a8,
- /* 2nd byte: 56 */ 0x03a9,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 65 */ 0x03b1,
- /* 2nd byte: 66 */ 0x03b2,
- /* 2nd byte: 67 */ 0x03b3,
- /* 2nd byte: 68 */ 0x03b4,
- /* 2nd byte: 69 */ 0x03b5,
- /* 2nd byte: 70 */ 0x03b6,
- /* 2nd byte: 71 */ 0x03b7,
- /* 2nd byte: 72 */ 0x03b8,
- /* 2nd byte: 73 */ 0x03b9,
- /* 2nd byte: 74 */ 0x03ba,
- /* 2nd byte: 75 */ 0x03bb,
- /* 2nd byte: 76 */ 0x03bc,
- /* 2nd byte: 77 */ 0x03bd,
- /* 2nd byte: 78 */ 0x03be,
- /* 2nd byte: 79 */ 0x03bf,
- /* 2nd byte: 80 */ 0x03c0,
- /* 2nd byte: 81 */ 0x03c1,
- /* 2nd byte: 82 */ 0x03c3,
- /* 2nd byte: 83 */ 0x03c4,
- /* 2nd byte: 84 */ 0x03c5,
- /* 2nd byte: 85 */ 0x03c6,
- /* 2nd byte: 86 */ 0x03c7,
- /* 2nd byte: 87 */ 0x03c8,
- /* 2nd byte: 88 */ 0x03c9,
- 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},
-/* 1st byte: 39 */ {
- /* 2nd byte: 33 */ 0x0410,
- /* 2nd byte: 34 */ 0x0411,
- /* 2nd byte: 35 */ 0x0412,
- /* 2nd byte: 36 */ 0x0413,
- /* 2nd byte: 37 */ 0x0414,
- /* 2nd byte: 38 */ 0x0415,
- /* 2nd byte: 39 */ 0x0401,
- /* 2nd byte: 40 */ 0x0416,
- /* 2nd byte: 41 */ 0x0417,
- /* 2nd byte: 42 */ 0x0418,
- /* 2nd byte: 43 */ 0x0419,
- /* 2nd byte: 44 */ 0x041a,
- /* 2nd byte: 45 */ 0x041b,
- /* 2nd byte: 46 */ 0x041c,
- /* 2nd byte: 47 */ 0x041d,
- /* 2nd byte: 48 */ 0x041e,
- /* 2nd byte: 49 */ 0x041f,
- /* 2nd byte: 50 */ 0x0420,
- /* 2nd byte: 51 */ 0x0421,
- /* 2nd byte: 52 */ 0x0422,
- /* 2nd byte: 53 */ 0x0423,
- /* 2nd byte: 54 */ 0x0424,
- /* 2nd byte: 55 */ 0x0425,
- /* 2nd byte: 56 */ 0x0426,
- /* 2nd byte: 57 */ 0x0427,
- /* 2nd byte: 58 */ 0x0428,
- /* 2nd byte: 59 */ 0x0429,
- /* 2nd byte: 60 */ 0x042a,
- /* 2nd byte: 61 */ 0x042b,
- /* 2nd byte: 62 */ 0x042c,
- /* 2nd byte: 63 */ 0x042d,
- /* 2nd byte: 64 */ 0x042e,
- /* 2nd byte: 65 */ 0x042f,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 81 */ 0x0430,
- /* 2nd byte: 82 */ 0x0431,
- /* 2nd byte: 83 */ 0x0432,
- /* 2nd byte: 84 */ 0x0433,
- /* 2nd byte: 85 */ 0x0434,
- /* 2nd byte: 86 */ 0x0435,
- /* 2nd byte: 87 */ 0x0451,
- /* 2nd byte: 88 */ 0x0436,
- /* 2nd byte: 89 */ 0x0437,
- /* 2nd byte: 90 */ 0x0438,
- /* 2nd byte: 91 */ 0x0439,
- /* 2nd byte: 92 */ 0x043a,
- /* 2nd byte: 93 */ 0x043b,
- /* 2nd byte: 94 */ 0x043c,
- /* 2nd byte: 95 */ 0x043d,
- /* 2nd byte: 96 */ 0x043e,
- /* 2nd byte: 97 */ 0x043f,
- /* 2nd byte: 98 */ 0x0440,
- /* 2nd byte: 99 */ 0x0441,
- /* 2nd byte: 100 */ 0x0442,
- /* 2nd byte: 101 */ 0x0443,
- /* 2nd byte: 102 */ 0x0444,
- /* 2nd byte: 103 */ 0x0445,
- /* 2nd byte: 104 */ 0x0446,
- /* 2nd byte: 105 */ 0x0447,
- /* 2nd byte: 106 */ 0x0448,
- /* 2nd byte: 107 */ 0x0449,
- /* 2nd byte: 108 */ 0x044a,
- /* 2nd byte: 109 */ 0x044b,
- /* 2nd byte: 110 */ 0x044c,
- /* 2nd byte: 111 */ 0x044d,
- /* 2nd byte: 112 */ 0x044e,
- /* 2nd byte: 113 */ 0x044f,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 40 */ {
- /* 2nd byte: 33 */ 0x2500,
- /* 2nd byte: 34 */ 0x2502,
- /* 2nd byte: 35 */ 0x250c,
- /* 2nd byte: 36 */ 0x2510,
- /* 2nd byte: 37 */ 0x2518,
- /* 2nd byte: 38 */ 0x2514,
- /* 2nd byte: 39 */ 0x251c,
- /* 2nd byte: 40 */ 0x252c,
- /* 2nd byte: 41 */ 0x2524,
- /* 2nd byte: 42 */ 0x2534,
- /* 2nd byte: 43 */ 0x253c,
- /* 2nd byte: 44 */ 0x2501,
- /* 2nd byte: 45 */ 0x2503,
- /* 2nd byte: 46 */ 0x250f,
- /* 2nd byte: 47 */ 0x2513,
- /* 2nd byte: 48 */ 0x251b,
- /* 2nd byte: 49 */ 0x2517,
- /* 2nd byte: 50 */ 0x2523,
- /* 2nd byte: 51 */ 0x2533,
- /* 2nd byte: 52 */ 0x252b,
- /* 2nd byte: 53 */ 0x253b,
- /* 2nd byte: 54 */ 0x254b,
- /* 2nd byte: 55 */ 0x2520,
- /* 2nd byte: 56 */ 0x252f,
- /* 2nd byte: 57 */ 0x2528,
- /* 2nd byte: 58 */ 0x2537,
- /* 2nd byte: 59 */ 0x253f,
- /* 2nd byte: 60 */ 0x251d,
- /* 2nd byte: 61 */ 0x2530,
- /* 2nd byte: 62 */ 0x2525,
- /* 2nd byte: 63 */ 0x2538,
- /* 2nd byte: 64 */ 0x2542,
- 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},
-/* 1st byte: 41 */ { 0 }, /* unused row */
-/* 1st byte: 42 */ { 0 }, /* unused row */
-/* 1st byte: 43 */ { 0 }, /* unused row */
-/* 1st byte: 44 */ { 0 }, /* unused row */
-/* 1st byte: 45 */ { 0 }, /* unused row */
-/* 1st byte: 46 */ { 0 }, /* unused row */
-/* 1st byte: 47 */ { 0 }, /* unused row */
-/* 1st byte: 48 */ {
- /* 2nd byte: 33 */ 0x4e9c,
- /* 2nd byte: 34 */ 0x5516,
- /* 2nd byte: 35 */ 0x5a03,
- /* 2nd byte: 36 */ 0x963f,
- /* 2nd byte: 37 */ 0x54c0,
- /* 2nd byte: 38 */ 0x611b,
- /* 2nd byte: 39 */ 0x6328,
- /* 2nd byte: 40 */ 0x59f6,
- /* 2nd byte: 41 */ 0x9022,
- /* 2nd byte: 42 */ 0x8475,
- /* 2nd byte: 43 */ 0x831c,
- /* 2nd byte: 44 */ 0x7a50,
- /* 2nd byte: 45 */ 0x60aa,
- /* 2nd byte: 46 */ 0x63e1,
- /* 2nd byte: 47 */ 0x6e25,
- /* 2nd byte: 48 */ 0x65ed,
- /* 2nd byte: 49 */ 0x8466,
- /* 2nd byte: 50 */ 0x82a6,
- /* 2nd byte: 51 */ 0x9bf5,
- /* 2nd byte: 52 */ 0x6893,
- /* 2nd byte: 53 */ 0x5727,
- /* 2nd byte: 54 */ 0x65a1,
- /* 2nd byte: 55 */ 0x6271,
- /* 2nd byte: 56 */ 0x5b9b,
- /* 2nd byte: 57 */ 0x59d0,
- /* 2nd byte: 58 */ 0x867b,
- /* 2nd byte: 59 */ 0x98f4,
- /* 2nd byte: 60 */ 0x7d62,
- /* 2nd byte: 61 */ 0x7dbe,
- /* 2nd byte: 62 */ 0x9b8e,
- /* 2nd byte: 63 */ 0x6216,
- /* 2nd byte: 64 */ 0x7c9f,
- /* 2nd byte: 65 */ 0x88b7,
- /* 2nd byte: 66 */ 0x5b89,
- /* 2nd byte: 67 */ 0x5eb5,
- /* 2nd byte: 68 */ 0x6309,
- /* 2nd byte: 69 */ 0x6697,
- /* 2nd byte: 70 */ 0x6848,
- /* 2nd byte: 71 */ 0x95c7,
- /* 2nd byte: 72 */ 0x978d,
- /* 2nd byte: 73 */ 0x674f,
- /* 2nd byte: 74 */ 0x4ee5,
- /* 2nd byte: 75 */ 0x4f0a,
- /* 2nd byte: 76 */ 0x4f4d,
- /* 2nd byte: 77 */ 0x4f9d,
- /* 2nd byte: 78 */ 0x5049,
- /* 2nd byte: 79 */ 0x56f2,
- /* 2nd byte: 80 */ 0x5937,
- /* 2nd byte: 81 */ 0x59d4,
- /* 2nd byte: 82 */ 0x5a01,
- /* 2nd byte: 83 */ 0x5c09,
- /* 2nd byte: 84 */ 0x60df,
- /* 2nd byte: 85 */ 0x610f,
- /* 2nd byte: 86 */ 0x6170,
- /* 2nd byte: 87 */ 0x6613,
- /* 2nd byte: 88 */ 0x6905,
- /* 2nd byte: 89 */ 0x70ba,
- /* 2nd byte: 90 */ 0x754f,
- /* 2nd byte: 91 */ 0x7570,
- /* 2nd byte: 92 */ 0x79fb,
- /* 2nd byte: 93 */ 0x7dad,
- /* 2nd byte: 94 */ 0x7def,
- /* 2nd byte: 95 */ 0x80c3,
- /* 2nd byte: 96 */ 0x840e,
- /* 2nd byte: 97 */ 0x8863,
- /* 2nd byte: 98 */ 0x8b02,
- /* 2nd byte: 99 */ 0x9055,
- /* 2nd byte: 100 */ 0x907a,
- /* 2nd byte: 101 */ 0x533b,
- /* 2nd byte: 102 */ 0x4e95,
- /* 2nd byte: 103 */ 0x4ea5,
- /* 2nd byte: 104 */ 0x57df,
- /* 2nd byte: 105 */ 0x80b2,
- /* 2nd byte: 106 */ 0x90c1,
- /* 2nd byte: 107 */ 0x78ef,
- /* 2nd byte: 108 */ 0x4e00,
- /* 2nd byte: 109 */ 0x58f1,
- /* 2nd byte: 110 */ 0x6ea2,
- /* 2nd byte: 111 */ 0x9038,
- /* 2nd byte: 112 */ 0x7a32,
- /* 2nd byte: 113 */ 0x8328,
- /* 2nd byte: 114 */ 0x828b,
- /* 2nd byte: 115 */ 0x9c2f,
- /* 2nd byte: 116 */ 0x5141,
- /* 2nd byte: 117 */ 0x5370,
- /* 2nd byte: 118 */ 0x54bd,
- /* 2nd byte: 119 */ 0x54e1,
- /* 2nd byte: 120 */ 0x56e0,
- /* 2nd byte: 121 */ 0x59fb,
- /* 2nd byte: 122 */ 0x5f15,
- /* 2nd byte: 123 */ 0x98f2,
- /* 2nd byte: 124 */ 0x6deb,
- /* 2nd byte: 125 */ 0x80e4,
- /* 2nd byte: 126 */ 0x852d},
-/* 1st byte: 49 */ {
- /* 2nd byte: 33 */ 0x9662,
- /* 2nd byte: 34 */ 0x9670,
- /* 2nd byte: 35 */ 0x96a0,
- /* 2nd byte: 36 */ 0x97fb,
- /* 2nd byte: 37 */ 0x540b,
- /* 2nd byte: 38 */ 0x53f3,
- /* 2nd byte: 39 */ 0x5b87,
- /* 2nd byte: 40 */ 0x70cf,
- /* 2nd byte: 41 */ 0x7fbd,
- /* 2nd byte: 42 */ 0x8fc2,
- /* 2nd byte: 43 */ 0x96e8,
- /* 2nd byte: 44 */ 0x536f,
- /* 2nd byte: 45 */ 0x9d5c,
- /* 2nd byte: 46 */ 0x7aba,
- /* 2nd byte: 47 */ 0x4e11,
- /* 2nd byte: 48 */ 0x7893,
- /* 2nd byte: 49 */ 0x81fc,
- /* 2nd byte: 50 */ 0x6e26,
- /* 2nd byte: 51 */ 0x5618,
- /* 2nd byte: 52 */ 0x5504,
- /* 2nd byte: 53 */ 0x6b1d,
- /* 2nd byte: 54 */ 0x851a,
- /* 2nd byte: 55 */ 0x9c3b,
- /* 2nd byte: 56 */ 0x59e5,
- /* 2nd byte: 57 */ 0x53a9,
- /* 2nd byte: 58 */ 0x6d66,
- /* 2nd byte: 59 */ 0x74dc,
- /* 2nd byte: 60 */ 0x958f,
- /* 2nd byte: 61 */ 0x5642,
- /* 2nd byte: 62 */ 0x4e91,
- /* 2nd byte: 63 */ 0x904b,
- /* 2nd byte: 64 */ 0x96f2,
- /* 2nd byte: 65 */ 0x834f,
- /* 2nd byte: 66 */ 0x990c,
- /* 2nd byte: 67 */ 0x53e1,
- /* 2nd byte: 68 */ 0x55b6,
- /* 2nd byte: 69 */ 0x5b30,
- /* 2nd byte: 70 */ 0x5f71,
- /* 2nd byte: 71 */ 0x6620,
- /* 2nd byte: 72 */ 0x66f3,
- /* 2nd byte: 73 */ 0x6804,
- /* 2nd byte: 74 */ 0x6c38,
- /* 2nd byte: 75 */ 0x6cf3,
- /* 2nd byte: 76 */ 0x6d29,
- /* 2nd byte: 77 */ 0x745b,
- /* 2nd byte: 78 */ 0x76c8,
- /* 2nd byte: 79 */ 0x7a4e,
- /* 2nd byte: 80 */ 0x9834,
- /* 2nd byte: 81 */ 0x82f1,
- /* 2nd byte: 82 */ 0x885b,
- /* 2nd byte: 83 */ 0x8a60,
- /* 2nd byte: 84 */ 0x92ed,
- /* 2nd byte: 85 */ 0x6db2,
- /* 2nd byte: 86 */ 0x75ab,
- /* 2nd byte: 87 */ 0x76ca,
- /* 2nd byte: 88 */ 0x99c5,
- /* 2nd byte: 89 */ 0x60a6,
- /* 2nd byte: 90 */ 0x8b01,
- /* 2nd byte: 91 */ 0x8d8a,
- /* 2nd byte: 92 */ 0x95b2,
- /* 2nd byte: 93 */ 0x698e,
- /* 2nd byte: 94 */ 0x53ad,
- /* 2nd byte: 95 */ 0x5186,
- /* 2nd byte: 96 */ 0x5712,
- /* 2nd byte: 97 */ 0x5830,
- /* 2nd byte: 98 */ 0x5944,
- /* 2nd byte: 99 */ 0x5bb4,
- /* 2nd byte: 100 */ 0x5ef6,
- /* 2nd byte: 101 */ 0x6028,
- /* 2nd byte: 102 */ 0x63a9,
- /* 2nd byte: 103 */ 0x63f4,
- /* 2nd byte: 104 */ 0x6cbf,
- /* 2nd byte: 105 */ 0x6f14,
- /* 2nd byte: 106 */ 0x708e,
- /* 2nd byte: 107 */ 0x7114,
- /* 2nd byte: 108 */ 0x7159,
- /* 2nd byte: 109 */ 0x71d5,
- /* 2nd byte: 110 */ 0x733f,
- /* 2nd byte: 111 */ 0x7e01,
- /* 2nd byte: 112 */ 0x8276,
- /* 2nd byte: 113 */ 0x82d1,
- /* 2nd byte: 114 */ 0x8597,
- /* 2nd byte: 115 */ 0x9060,
- /* 2nd byte: 116 */ 0x925b,
- /* 2nd byte: 117 */ 0x9d1b,
- /* 2nd byte: 118 */ 0x5869,
- /* 2nd byte: 119 */ 0x65bc,
- /* 2nd byte: 120 */ 0x6c5a,
- /* 2nd byte: 121 */ 0x7525,
- /* 2nd byte: 122 */ 0x51f9,
- /* 2nd byte: 123 */ 0x592e,
- /* 2nd byte: 124 */ 0x5965,
- /* 2nd byte: 125 */ 0x5f80,
- /* 2nd byte: 126 */ 0x5fdc},
-/* 1st byte: 50 */ {
- /* 2nd byte: 33 */ 0x62bc,
- /* 2nd byte: 34 */ 0x65fa,
- /* 2nd byte: 35 */ 0x6a2a,
- /* 2nd byte: 36 */ 0x6b27,
- /* 2nd byte: 37 */ 0x6bb4,
- /* 2nd byte: 38 */ 0x738b,
- /* 2nd byte: 39 */ 0x7fc1,
- /* 2nd byte: 40 */ 0x8956,
- /* 2nd byte: 41 */ 0x9d2c,
- /* 2nd byte: 42 */ 0x9d0e,
- /* 2nd byte: 43 */ 0x9ec4,
- /* 2nd byte: 44 */ 0x5ca1,
- /* 2nd byte: 45 */ 0x6c96,
- /* 2nd byte: 46 */ 0x837b,
- /* 2nd byte: 47 */ 0x5104,
- /* 2nd byte: 48 */ 0x5c4b,
- /* 2nd byte: 49 */ 0x61b6,
- /* 2nd byte: 50 */ 0x81c6,
- /* 2nd byte: 51 */ 0x6876,
- /* 2nd byte: 52 */ 0x7261,
- /* 2nd byte: 53 */ 0x4e59,
- /* 2nd byte: 54 */ 0x4ffa,
- /* 2nd byte: 55 */ 0x5378,
- /* 2nd byte: 56 */ 0x6069,
- /* 2nd byte: 57 */ 0x6e29,
- /* 2nd byte: 58 */ 0x7a4f,
- /* 2nd byte: 59 */ 0x97f3,
- /* 2nd byte: 60 */ 0x4e0b,
- /* 2nd byte: 61 */ 0x5316,
- /* 2nd byte: 62 */ 0x4eee,
- /* 2nd byte: 63 */ 0x4f55,
- /* 2nd byte: 64 */ 0x4f3d,
- /* 2nd byte: 65 */ 0x4fa1,
- /* 2nd byte: 66 */ 0x4f73,
- /* 2nd byte: 67 */ 0x52a0,
- /* 2nd byte: 68 */ 0x53ef,
- /* 2nd byte: 69 */ 0x5609,
- /* 2nd byte: 70 */ 0x590f,
- /* 2nd byte: 71 */ 0x5ac1,
- /* 2nd byte: 72 */ 0x5bb6,
- /* 2nd byte: 73 */ 0x5be1,
- /* 2nd byte: 74 */ 0x79d1,
- /* 2nd byte: 75 */ 0x6687,
- /* 2nd byte: 76 */ 0x679c,
- /* 2nd byte: 77 */ 0x67b6,
- /* 2nd byte: 78 */ 0x6b4c,
- /* 2nd byte: 79 */ 0x6cb3,
- /* 2nd byte: 80 */ 0x706b,
- /* 2nd byte: 81 */ 0x73c2,
- /* 2nd byte: 82 */ 0x798d,
- /* 2nd byte: 83 */ 0x79be,
- /* 2nd byte: 84 */ 0x7a3c,
- /* 2nd byte: 85 */ 0x7b87,
- /* 2nd byte: 86 */ 0x82b1,
- /* 2nd byte: 87 */ 0x82db,
- /* 2nd byte: 88 */ 0x8304,
- /* 2nd byte: 89 */ 0x8377,
- /* 2nd byte: 90 */ 0x83ef,
- /* 2nd byte: 91 */ 0x83d3,
- /* 2nd byte: 92 */ 0x8766,
- /* 2nd byte: 93 */ 0x8ab2,
- /* 2nd byte: 94 */ 0x5629,
- /* 2nd byte: 95 */ 0x8ca8,
- /* 2nd byte: 96 */ 0x8fe6,
- /* 2nd byte: 97 */ 0x904e,
- /* 2nd byte: 98 */ 0x971e,
- /* 2nd byte: 99 */ 0x868a,
- /* 2nd byte: 100 */ 0x4fc4,
- /* 2nd byte: 101 */ 0x5ce8,
- /* 2nd byte: 102 */ 0x6211,
- /* 2nd byte: 103 */ 0x7259,
- /* 2nd byte: 104 */ 0x753b,
- /* 2nd byte: 105 */ 0x81e5,
- /* 2nd byte: 106 */ 0x82bd,
- /* 2nd byte: 107 */ 0x86fe,
- /* 2nd byte: 108 */ 0x8cc0,
- /* 2nd byte: 109 */ 0x96c5,
- /* 2nd byte: 110 */ 0x9913,
- /* 2nd byte: 111 */ 0x99d5,
- /* 2nd byte: 112 */ 0x4ecb,
- /* 2nd byte: 113 */ 0x4f1a,
- /* 2nd byte: 114 */ 0x89e3,
- /* 2nd byte: 115 */ 0x56de,
- /* 2nd byte: 116 */ 0x584a,
- /* 2nd byte: 117 */ 0x58ca,
- /* 2nd byte: 118 */ 0x5efb,
- /* 2nd byte: 119 */ 0x5feb,
- /* 2nd byte: 120 */ 0x602a,
- /* 2nd byte: 121 */ 0x6094,
- /* 2nd byte: 122 */ 0x6062,
- /* 2nd byte: 123 */ 0x61d0,
- /* 2nd byte: 124 */ 0x6212,
- /* 2nd byte: 125 */ 0x62d0,
- /* 2nd byte: 126 */ 0x6539},
-/* 1st byte: 51 */ {
- /* 2nd byte: 33 */ 0x9b41,
- /* 2nd byte: 34 */ 0x6666,
- /* 2nd byte: 35 */ 0x68b0,
- /* 2nd byte: 36 */ 0x6d77,
- /* 2nd byte: 37 */ 0x7070,
- /* 2nd byte: 38 */ 0x754c,
- /* 2nd byte: 39 */ 0x7686,
- /* 2nd byte: 40 */ 0x7d75,
- /* 2nd byte: 41 */ 0x82a5,
- /* 2nd byte: 42 */ 0x87f9,
- /* 2nd byte: 43 */ 0x958b,
- /* 2nd byte: 44 */ 0x968e,
- /* 2nd byte: 45 */ 0x8c9d,
- /* 2nd byte: 46 */ 0x51f1,
- /* 2nd byte: 47 */ 0x52be,
- /* 2nd byte: 48 */ 0x5916,
- /* 2nd byte: 49 */ 0x54b3,
- /* 2nd byte: 50 */ 0x5bb3,
- /* 2nd byte: 51 */ 0x5d16,
- /* 2nd byte: 52 */ 0x6168,
- /* 2nd byte: 53 */ 0x6982,
- /* 2nd byte: 54 */ 0x6daf,
- /* 2nd byte: 55 */ 0x788d,
- /* 2nd byte: 56 */ 0x84cb,
- /* 2nd byte: 57 */ 0x8857,
- /* 2nd byte: 58 */ 0x8a72,
- /* 2nd byte: 59 */ 0x93a7,
- /* 2nd byte: 60 */ 0x9ab8,
- /* 2nd byte: 61 */ 0x6d6c,
- /* 2nd byte: 62 */ 0x99a8,
- /* 2nd byte: 63 */ 0x86d9,
- /* 2nd byte: 64 */ 0x57a3,
- /* 2nd byte: 65 */ 0x67ff,
- /* 2nd byte: 66 */ 0x86ce,
- /* 2nd byte: 67 */ 0x920e,
- /* 2nd byte: 68 */ 0x5283,
- /* 2nd byte: 69 */ 0x5687,
- /* 2nd byte: 70 */ 0x5404,
- /* 2nd byte: 71 */ 0x5ed3,
- /* 2nd byte: 72 */ 0x62e1,
- /* 2nd byte: 73 */ 0x64b9,
- /* 2nd byte: 74 */ 0x683c,
- /* 2nd byte: 75 */ 0x6838,
- /* 2nd byte: 76 */ 0x6bbb,
- /* 2nd byte: 77 */ 0x7372,
- /* 2nd byte: 78 */ 0x78ba,
- /* 2nd byte: 79 */ 0x7a6b,
- /* 2nd byte: 80 */ 0x899a,
- /* 2nd byte: 81 */ 0x89d2,
- /* 2nd byte: 82 */ 0x8d6b,
- /* 2nd byte: 83 */ 0x8f03,
- /* 2nd byte: 84 */ 0x90ed,
- /* 2nd byte: 85 */ 0x95a3,
- /* 2nd byte: 86 */ 0x9694,
- /* 2nd byte: 87 */ 0x9769,
- /* 2nd byte: 88 */ 0x5b66,
- /* 2nd byte: 89 */ 0x5cb3,
- /* 2nd byte: 90 */ 0x697d,
- /* 2nd byte: 91 */ 0x984d,
- /* 2nd byte: 92 */ 0x984e,
- /* 2nd byte: 93 */ 0x639b,
- /* 2nd byte: 94 */ 0x7b20,
- /* 2nd byte: 95 */ 0x6a2b,
- /* 2nd byte: 96 */ 0x6a7f,
- /* 2nd byte: 97 */ 0x68b6,
- /* 2nd byte: 98 */ 0x9c0d,
- /* 2nd byte: 99 */ 0x6f5f,
- /* 2nd byte: 100 */ 0x5272,
- /* 2nd byte: 101 */ 0x559d,
- /* 2nd byte: 102 */ 0x6070,
- /* 2nd byte: 103 */ 0x62ec,
- /* 2nd byte: 104 */ 0x6d3b,
- /* 2nd byte: 105 */ 0x6e07,
- /* 2nd byte: 106 */ 0x6ed1,
- /* 2nd byte: 107 */ 0x845b,
- /* 2nd byte: 108 */ 0x8910,
- /* 2nd byte: 109 */ 0x8f44,
- /* 2nd byte: 110 */ 0x4e14,
- /* 2nd byte: 111 */ 0x9c39,
- /* 2nd byte: 112 */ 0x53f6,
- /* 2nd byte: 113 */ 0x691b,
- /* 2nd byte: 114 */ 0x6a3a,
- /* 2nd byte: 115 */ 0x9784,
- /* 2nd byte: 116 */ 0x682a,
- /* 2nd byte: 117 */ 0x515c,
- /* 2nd byte: 118 */ 0x7ac3,
- /* 2nd byte: 119 */ 0x84b2,
- /* 2nd byte: 120 */ 0x91dc,
- /* 2nd byte: 121 */ 0x938c,
- /* 2nd byte: 122 */ 0x565b,
- /* 2nd byte: 123 */ 0x9d28,
- /* 2nd byte: 124 */ 0x6822,
- /* 2nd byte: 125 */ 0x8305,
- /* 2nd byte: 126 */ 0x8431},
-/* 1st byte: 52 */ {
- /* 2nd byte: 33 */ 0x7ca5,
- /* 2nd byte: 34 */ 0x5208,
- /* 2nd byte: 35 */ 0x82c5,
- /* 2nd byte: 36 */ 0x74e6,
- /* 2nd byte: 37 */ 0x4e7e,
- /* 2nd byte: 38 */ 0x4f83,
- /* 2nd byte: 39 */ 0x51a0,
- /* 2nd byte: 40 */ 0x5bd2,
- /* 2nd byte: 41 */ 0x520a,
- /* 2nd byte: 42 */ 0x52d8,
- /* 2nd byte: 43 */ 0x52e7,
- /* 2nd byte: 44 */ 0x5dfb,
- /* 2nd byte: 45 */ 0x559a,
- /* 2nd byte: 46 */ 0x582a,
- /* 2nd byte: 47 */ 0x59e6,
- /* 2nd byte: 48 */ 0x5b8c,
- /* 2nd byte: 49 */ 0x5b98,
- /* 2nd byte: 50 */ 0x5bdb,
- /* 2nd byte: 51 */ 0x5e72,
- /* 2nd byte: 52 */ 0x5e79,
- /* 2nd byte: 53 */ 0x60a3,
- /* 2nd byte: 54 */ 0x611f,
- /* 2nd byte: 55 */ 0x6163,
- /* 2nd byte: 56 */ 0x61be,
- /* 2nd byte: 57 */ 0x63db,
- /* 2nd byte: 58 */ 0x6562,
- /* 2nd byte: 59 */ 0x67d1,
- /* 2nd byte: 60 */ 0x6853,
- /* 2nd byte: 61 */ 0x68fa,
- /* 2nd byte: 62 */ 0x6b3e,
- /* 2nd byte: 63 */ 0x6b53,
- /* 2nd byte: 64 */ 0x6c57,
- /* 2nd byte: 65 */ 0x6f22,
- /* 2nd byte: 66 */ 0x6f97,
- /* 2nd byte: 67 */ 0x6f45,
- /* 2nd byte: 68 */ 0x74b0,
- /* 2nd byte: 69 */ 0x7518,
- /* 2nd byte: 70 */ 0x76e3,
- /* 2nd byte: 71 */ 0x770b,
- /* 2nd byte: 72 */ 0x7aff,
- /* 2nd byte: 73 */ 0x7ba1,
- /* 2nd byte: 74 */ 0x7c21,
- /* 2nd byte: 75 */ 0x7de9,
- /* 2nd byte: 76 */ 0x7f36,
- /* 2nd byte: 77 */ 0x7ff0,
- /* 2nd byte: 78 */ 0x809d,
- /* 2nd byte: 79 */ 0x8266,
- /* 2nd byte: 80 */ 0x839e,
- /* 2nd byte: 81 */ 0x89b3,
- /* 2nd byte: 82 */ 0x8acc,
- /* 2nd byte: 83 */ 0x8cab,
- /* 2nd byte: 84 */ 0x9084,
- /* 2nd byte: 85 */ 0x9451,
- /* 2nd byte: 86 */ 0x9593,
- /* 2nd byte: 87 */ 0x9591,
- /* 2nd byte: 88 */ 0x95a2,
- /* 2nd byte: 89 */ 0x9665,
- /* 2nd byte: 90 */ 0x97d3,
- /* 2nd byte: 91 */ 0x9928,
- /* 2nd byte: 92 */ 0x8218,
- /* 2nd byte: 93 */ 0x4e38,
- /* 2nd byte: 94 */ 0x542b,
- /* 2nd byte: 95 */ 0x5cb8,
- /* 2nd byte: 96 */ 0x5dcc,
- /* 2nd byte: 97 */ 0x73a9,
- /* 2nd byte: 98 */ 0x764c,
- /* 2nd byte: 99 */ 0x773c,
- /* 2nd byte: 100 */ 0x5ca9,
- /* 2nd byte: 101 */ 0x7feb,
- /* 2nd byte: 102 */ 0x8d0b,
- /* 2nd byte: 103 */ 0x96c1,
- /* 2nd byte: 104 */ 0x9811,
- /* 2nd byte: 105 */ 0x9854,
- /* 2nd byte: 106 */ 0x9858,
- /* 2nd byte: 107 */ 0x4f01,
- /* 2nd byte: 108 */ 0x4f0e,
- /* 2nd byte: 109 */ 0x5371,
- /* 2nd byte: 110 */ 0x559c,
- /* 2nd byte: 111 */ 0x5668,
- /* 2nd byte: 112 */ 0x57fa,
- /* 2nd byte: 113 */ 0x5947,
- /* 2nd byte: 114 */ 0x5b09,
- /* 2nd byte: 115 */ 0x5bc4,
- /* 2nd byte: 116 */ 0x5c90,
- /* 2nd byte: 117 */ 0x5e0c,
- /* 2nd byte: 118 */ 0x5e7e,
- /* 2nd byte: 119 */ 0x5fcc,
- /* 2nd byte: 120 */ 0x63ee,
- /* 2nd byte: 121 */ 0x673a,
- /* 2nd byte: 122 */ 0x65d7,
- /* 2nd byte: 123 */ 0x65e2,
- /* 2nd byte: 124 */ 0x671f,
- /* 2nd byte: 125 */ 0x68cb,
- /* 2nd byte: 126 */ 0x68c4},
-/* 1st byte: 53 */ {
- /* 2nd byte: 33 */ 0x6a5f,
- /* 2nd byte: 34 */ 0x5e30,
- /* 2nd byte: 35 */ 0x6bc5,
- /* 2nd byte: 36 */ 0x6c17,
- /* 2nd byte: 37 */ 0x6c7d,
- /* 2nd byte: 38 */ 0x757f,
- /* 2nd byte: 39 */ 0x7948,
- /* 2nd byte: 40 */ 0x5b63,
- /* 2nd byte: 41 */ 0x7a00,
- /* 2nd byte: 42 */ 0x7d00,
- /* 2nd byte: 43 */ 0x5fbd,
- /* 2nd byte: 44 */ 0x898f,
- /* 2nd byte: 45 */ 0x8a18,
- /* 2nd byte: 46 */ 0x8cb4,
- /* 2nd byte: 47 */ 0x8d77,
- /* 2nd byte: 48 */ 0x8ecc,
- /* 2nd byte: 49 */ 0x8f1d,
- /* 2nd byte: 50 */ 0x98e2,
- /* 2nd byte: 51 */ 0x9a0e,
- /* 2nd byte: 52 */ 0x9b3c,
- /* 2nd byte: 53 */ 0x4e80,
- /* 2nd byte: 54 */ 0x507d,
- /* 2nd byte: 55 */ 0x5100,
- /* 2nd byte: 56 */ 0x5993,
- /* 2nd byte: 57 */ 0x5b9c,
- /* 2nd byte: 58 */ 0x622f,
- /* 2nd byte: 59 */ 0x6280,
- /* 2nd byte: 60 */ 0x64ec,
- /* 2nd byte: 61 */ 0x6b3a,
- /* 2nd byte: 62 */ 0x72a0,
- /* 2nd byte: 63 */ 0x7591,
- /* 2nd byte: 64 */ 0x7947,
- /* 2nd byte: 65 */ 0x7fa9,
- /* 2nd byte: 66 */ 0x87fb,
- /* 2nd byte: 67 */ 0x8abc,
- /* 2nd byte: 68 */ 0x8b70,
- /* 2nd byte: 69 */ 0x63ac,
- /* 2nd byte: 70 */ 0x83ca,
- /* 2nd byte: 71 */ 0x97a0,
- /* 2nd byte: 72 */ 0x5409,
- /* 2nd byte: 73 */ 0x5403,
- /* 2nd byte: 74 */ 0x55ab,
- /* 2nd byte: 75 */ 0x6854,
- /* 2nd byte: 76 */ 0x6a58,
- /* 2nd byte: 77 */ 0x8a70,
- /* 2nd byte: 78 */ 0x7827,
- /* 2nd byte: 79 */ 0x6775,
- /* 2nd byte: 80 */ 0x9ecd,
- /* 2nd byte: 81 */ 0x5374,
- /* 2nd byte: 82 */ 0x5ba2,
- /* 2nd byte: 83 */ 0x811a,
- /* 2nd byte: 84 */ 0x8650,
- /* 2nd byte: 85 */ 0x9006,
- /* 2nd byte: 86 */ 0x4e18,
- /* 2nd byte: 87 */ 0x4e45,
- /* 2nd byte: 88 */ 0x4ec7,
- /* 2nd byte: 89 */ 0x4f11,
- /* 2nd byte: 90 */ 0x53ca,
- /* 2nd byte: 91 */ 0x5438,
- /* 2nd byte: 92 */ 0x5bae,
- /* 2nd byte: 93 */ 0x5f13,
- /* 2nd byte: 94 */ 0x6025,
- /* 2nd byte: 95 */ 0x6551,
- /* 2nd byte: 96 */ 0x673d,
- /* 2nd byte: 97 */ 0x6c42,
- /* 2nd byte: 98 */ 0x6c72,
- /* 2nd byte: 99 */ 0x6ce3,
- /* 2nd byte: 100 */ 0x7078,
- /* 2nd byte: 101 */ 0x7403,
- /* 2nd byte: 102 */ 0x7a76,
- /* 2nd byte: 103 */ 0x7aae,
- /* 2nd byte: 104 */ 0x7b08,
- /* 2nd byte: 105 */ 0x7d1a,
- /* 2nd byte: 106 */ 0x7cfe,
- /* 2nd byte: 107 */ 0x7d66,
- /* 2nd byte: 108 */ 0x65e7,
- /* 2nd byte: 109 */ 0x725b,
- /* 2nd byte: 110 */ 0x53bb,
- /* 2nd byte: 111 */ 0x5c45,
- /* 2nd byte: 112 */ 0x5de8,
- /* 2nd byte: 113 */ 0x62d2,
- /* 2nd byte: 114 */ 0x62e0,
- /* 2nd byte: 115 */ 0x6319,
- /* 2nd byte: 116 */ 0x6e20,
- /* 2nd byte: 117 */ 0x865a,
- /* 2nd byte: 118 */ 0x8a31,
- /* 2nd byte: 119 */ 0x8ddd,
- /* 2nd byte: 120 */ 0x92f8,
- /* 2nd byte: 121 */ 0x6f01,
- /* 2nd byte: 122 */ 0x79a6,
- /* 2nd byte: 123 */ 0x9b5a,
- /* 2nd byte: 124 */ 0x4ea8,
- /* 2nd byte: 125 */ 0x4eab,
- /* 2nd byte: 126 */ 0x4eac},
-/* 1st byte: 54 */ {
- /* 2nd byte: 33 */ 0x4f9b,
- /* 2nd byte: 34 */ 0x4fa0,
- /* 2nd byte: 35 */ 0x50d1,
- /* 2nd byte: 36 */ 0x5147,
- /* 2nd byte: 37 */ 0x7af6,
- /* 2nd byte: 38 */ 0x5171,
- /* 2nd byte: 39 */ 0x51f6,
- /* 2nd byte: 40 */ 0x5354,
- /* 2nd byte: 41 */ 0x5321,
- /* 2nd byte: 42 */ 0x537f,
- /* 2nd byte: 43 */ 0x53eb,
- /* 2nd byte: 44 */ 0x55ac,
- /* 2nd byte: 45 */ 0x5883,
- /* 2nd byte: 46 */ 0x5ce1,
- /* 2nd byte: 47 */ 0x5f37,
- /* 2nd byte: 48 */ 0x5f4a,
- /* 2nd byte: 49 */ 0x602f,
- /* 2nd byte: 50 */ 0x6050,
- /* 2nd byte: 51 */ 0x606d,
- /* 2nd byte: 52 */ 0x631f,
- /* 2nd byte: 53 */ 0x6559,
- /* 2nd byte: 54 */ 0x6a4b,
- /* 2nd byte: 55 */ 0x6cc1,
- /* 2nd byte: 56 */ 0x72c2,
- /* 2nd byte: 57 */ 0x72ed,
- /* 2nd byte: 58 */ 0x77ef,
- /* 2nd byte: 59 */ 0x80f8,
- /* 2nd byte: 60 */ 0x8105,
- /* 2nd byte: 61 */ 0x8208,
- /* 2nd byte: 62 */ 0x854e,
- /* 2nd byte: 63 */ 0x90f7,
- /* 2nd byte: 64 */ 0x93e1,
- /* 2nd byte: 65 */ 0x97ff,
- /* 2nd byte: 66 */ 0x9957,
- /* 2nd byte: 67 */ 0x9a5a,
- /* 2nd byte: 68 */ 0x4ef0,
- /* 2nd byte: 69 */ 0x51dd,
- /* 2nd byte: 70 */ 0x5c2d,
- /* 2nd byte: 71 */ 0x6681,
- /* 2nd byte: 72 */ 0x696d,
- /* 2nd byte: 73 */ 0x5c40,
- /* 2nd byte: 74 */ 0x66f2,
- /* 2nd byte: 75 */ 0x6975,
- /* 2nd byte: 76 */ 0x7389,
- /* 2nd byte: 77 */ 0x6850,
- /* 2nd byte: 78 */ 0x7c81,
- /* 2nd byte: 79 */ 0x50c5,
- /* 2nd byte: 80 */ 0x52e4,
- /* 2nd byte: 81 */ 0x5747,
- /* 2nd byte: 82 */ 0x5dfe,
- /* 2nd byte: 83 */ 0x9326,
- /* 2nd byte: 84 */ 0x65a4,
- /* 2nd byte: 85 */ 0x6b23,
- /* 2nd byte: 86 */ 0x6b3d,
- /* 2nd byte: 87 */ 0x7434,
- /* 2nd byte: 88 */ 0x7981,
- /* 2nd byte: 89 */ 0x79bd,
- /* 2nd byte: 90 */ 0x7b4b,
- /* 2nd byte: 91 */ 0x7dca,
- /* 2nd byte: 92 */ 0x82b9,
- /* 2nd byte: 93 */ 0x83cc,
- /* 2nd byte: 94 */ 0x887f,
- /* 2nd byte: 95 */ 0x895f,
- /* 2nd byte: 96 */ 0x8b39,
- /* 2nd byte: 97 */ 0x8fd1,
- /* 2nd byte: 98 */ 0x91d1,
- /* 2nd byte: 99 */ 0x541f,
- /* 2nd byte: 100 */ 0x9280,
- /* 2nd byte: 101 */ 0x4e5d,
- /* 2nd byte: 102 */ 0x5036,
- /* 2nd byte: 103 */ 0x53e5,
- /* 2nd byte: 104 */ 0x533a,
- /* 2nd byte: 105 */ 0x72d7,
- /* 2nd byte: 106 */ 0x7396,
- /* 2nd byte: 107 */ 0x77e9,
- /* 2nd byte: 108 */ 0x82e6,
- /* 2nd byte: 109 */ 0x8eaf,
- /* 2nd byte: 110 */ 0x99c6,
- /* 2nd byte: 111 */ 0x99c8,
- /* 2nd byte: 112 */ 0x99d2,
- /* 2nd byte: 113 */ 0x5177,
- /* 2nd byte: 114 */ 0x611a,
- /* 2nd byte: 115 */ 0x865e,
- /* 2nd byte: 116 */ 0x55b0,
- /* 2nd byte: 117 */ 0x7a7a,
- /* 2nd byte: 118 */ 0x5076,
- /* 2nd byte: 119 */ 0x5bd3,
- /* 2nd byte: 120 */ 0x9047,
- /* 2nd byte: 121 */ 0x9685,
- /* 2nd byte: 122 */ 0x4e32,
- /* 2nd byte: 123 */ 0x6adb,
- /* 2nd byte: 124 */ 0x91e7,
- /* 2nd byte: 125 */ 0x5c51,
- /* 2nd byte: 126 */ 0x5c48},
-/* 1st byte: 55 */ {
- /* 2nd byte: 33 */ 0x6398,
- /* 2nd byte: 34 */ 0x7a9f,
- /* 2nd byte: 35 */ 0x6c93,
- /* 2nd byte: 36 */ 0x9774,
- /* 2nd byte: 37 */ 0x8f61,
- /* 2nd byte: 38 */ 0x7aaa,
- /* 2nd byte: 39 */ 0x718a,
- /* 2nd byte: 40 */ 0x9688,
- /* 2nd byte: 41 */ 0x7c82,
- /* 2nd byte: 42 */ 0x6817,
- /* 2nd byte: 43 */ 0x7e70,
- /* 2nd byte: 44 */ 0x6851,
- /* 2nd byte: 45 */ 0x936c,
- /* 2nd byte: 46 */ 0x52f2,
- /* 2nd byte: 47 */ 0x541b,
- /* 2nd byte: 48 */ 0x85ab,
- /* 2nd byte: 49 */ 0x8a13,
- /* 2nd byte: 50 */ 0x7fa4,
- /* 2nd byte: 51 */ 0x8ecd,
- /* 2nd byte: 52 */ 0x90e1,
- /* 2nd byte: 53 */ 0x5366,
- /* 2nd byte: 54 */ 0x8888,
- /* 2nd byte: 55 */ 0x7941,
- /* 2nd byte: 56 */ 0x4fc2,
- /* 2nd byte: 57 */ 0x50be,
- /* 2nd byte: 58 */ 0x5211,
- /* 2nd byte: 59 */ 0x5144,
- /* 2nd byte: 60 */ 0x5553,
- /* 2nd byte: 61 */ 0x572d,
- /* 2nd byte: 62 */ 0x73ea,
- /* 2nd byte: 63 */ 0x578b,
- /* 2nd byte: 64 */ 0x5951,
- /* 2nd byte: 65 */ 0x5f62,
- /* 2nd byte: 66 */ 0x5f84,
- /* 2nd byte: 67 */ 0x6075,
- /* 2nd byte: 68 */ 0x6176,
- /* 2nd byte: 69 */ 0x6167,
- /* 2nd byte: 70 */ 0x61a9,
- /* 2nd byte: 71 */ 0x63b2,
- /* 2nd byte: 72 */ 0x643a,
- /* 2nd byte: 73 */ 0x656c,
- /* 2nd byte: 74 */ 0x666f,
- /* 2nd byte: 75 */ 0x6842,
- /* 2nd byte: 76 */ 0x6e13,
- /* 2nd byte: 77 */ 0x7566,
- /* 2nd byte: 78 */ 0x7a3d,
- /* 2nd byte: 79 */ 0x7cfb,
- /* 2nd byte: 80 */ 0x7d4c,
- /* 2nd byte: 81 */ 0x7d99,
- /* 2nd byte: 82 */ 0x7e4b,
- /* 2nd byte: 83 */ 0x7f6b,
- /* 2nd byte: 84 */ 0x830e,
- /* 2nd byte: 85 */ 0x834a,
- /* 2nd byte: 86 */ 0x86cd,
- /* 2nd byte: 87 */ 0x8a08,
- /* 2nd byte: 88 */ 0x8a63,
- /* 2nd byte: 89 */ 0x8b66,
- /* 2nd byte: 90 */ 0x8efd,
- /* 2nd byte: 91 */ 0x981a,
- /* 2nd byte: 92 */ 0x9d8f,
- /* 2nd byte: 93 */ 0x82b8,
- /* 2nd byte: 94 */ 0x8fce,
- /* 2nd byte: 95 */ 0x9be8,
- /* 2nd byte: 96 */ 0x5287,
- /* 2nd byte: 97 */ 0x621f,
- /* 2nd byte: 98 */ 0x6483,
- /* 2nd byte: 99 */ 0x6fc0,
- /* 2nd byte: 100 */ 0x9699,
- /* 2nd byte: 101 */ 0x6841,
- /* 2nd byte: 102 */ 0x5091,
- /* 2nd byte: 103 */ 0x6b20,
- /* 2nd byte: 104 */ 0x6c7a,
- /* 2nd byte: 105 */ 0x6f54,
- /* 2nd byte: 106 */ 0x7a74,
- /* 2nd byte: 107 */ 0x7d50,
- /* 2nd byte: 108 */ 0x8840,
- /* 2nd byte: 109 */ 0x8a23,
- /* 2nd byte: 110 */ 0x6708,
- /* 2nd byte: 111 */ 0x4ef6,
- /* 2nd byte: 112 */ 0x5039,
- /* 2nd byte: 113 */ 0x5026,
- /* 2nd byte: 114 */ 0x5065,
- /* 2nd byte: 115 */ 0x517c,
- /* 2nd byte: 116 */ 0x5238,
- /* 2nd byte: 117 */ 0x5263,
- /* 2nd byte: 118 */ 0x55a7,
- /* 2nd byte: 119 */ 0x570f,
- /* 2nd byte: 120 */ 0x5805,
- /* 2nd byte: 121 */ 0x5acc,
- /* 2nd byte: 122 */ 0x5efa,
- /* 2nd byte: 123 */ 0x61b2,
- /* 2nd byte: 124 */ 0x61f8,
- /* 2nd byte: 125 */ 0x62f3,
- /* 2nd byte: 126 */ 0x6372},
-/* 1st byte: 56 */ {
- /* 2nd byte: 33 */ 0x691c,
- /* 2nd byte: 34 */ 0x6a29,
- /* 2nd byte: 35 */ 0x727d,
- /* 2nd byte: 36 */ 0x72ac,
- /* 2nd byte: 37 */ 0x732e,
- /* 2nd byte: 38 */ 0x7814,
- /* 2nd byte: 39 */ 0x786f,
- /* 2nd byte: 40 */ 0x7d79,
- /* 2nd byte: 41 */ 0x770c,
- /* 2nd byte: 42 */ 0x80a9,
- /* 2nd byte: 43 */ 0x898b,
- /* 2nd byte: 44 */ 0x8b19,
- /* 2nd byte: 45 */ 0x8ce2,
- /* 2nd byte: 46 */ 0x8ed2,
- /* 2nd byte: 47 */ 0x9063,
- /* 2nd byte: 48 */ 0x9375,
- /* 2nd byte: 49 */ 0x967a,
- /* 2nd byte: 50 */ 0x9855,
- /* 2nd byte: 51 */ 0x9a13,
- /* 2nd byte: 52 */ 0x9e78,
- /* 2nd byte: 53 */ 0x5143,
- /* 2nd byte: 54 */ 0x539f,
- /* 2nd byte: 55 */ 0x53b3,
- /* 2nd byte: 56 */ 0x5e7b,
- /* 2nd byte: 57 */ 0x5f26,
- /* 2nd byte: 58 */ 0x6e1b,
- /* 2nd byte: 59 */ 0x6e90,
- /* 2nd byte: 60 */ 0x7384,
- /* 2nd byte: 61 */ 0x73fe,
- /* 2nd byte: 62 */ 0x7d43,
- /* 2nd byte: 63 */ 0x8237,
- /* 2nd byte: 64 */ 0x8a00,
- /* 2nd byte: 65 */ 0x8afa,
- /* 2nd byte: 66 */ 0x9650,
- /* 2nd byte: 67 */ 0x4e4e,
- /* 2nd byte: 68 */ 0x500b,
- /* 2nd byte: 69 */ 0x53e4,
- /* 2nd byte: 70 */ 0x547c,
- /* 2nd byte: 71 */ 0x56fa,
- /* 2nd byte: 72 */ 0x59d1,
- /* 2nd byte: 73 */ 0x5b64,
- /* 2nd byte: 74 */ 0x5df1,
- /* 2nd byte: 75 */ 0x5eab,
- /* 2nd byte: 76 */ 0x5f27,
- /* 2nd byte: 77 */ 0x6238,
- /* 2nd byte: 78 */ 0x6545,
- /* 2nd byte: 79 */ 0x67af,
- /* 2nd byte: 80 */ 0x6e56,
- /* 2nd byte: 81 */ 0x72d0,
- /* 2nd byte: 82 */ 0x7cca,
- /* 2nd byte: 83 */ 0x88b4,
- /* 2nd byte: 84 */ 0x80a1,
- /* 2nd byte: 85 */ 0x80e1,
- /* 2nd byte: 86 */ 0x83f0,
- /* 2nd byte: 87 */ 0x864e,
- /* 2nd byte: 88 */ 0x8a87,
- /* 2nd byte: 89 */ 0x8de8,
- /* 2nd byte: 90 */ 0x9237,
- /* 2nd byte: 91 */ 0x96c7,
- /* 2nd byte: 92 */ 0x9867,
- /* 2nd byte: 93 */ 0x9f13,
- /* 2nd byte: 94 */ 0x4e94,
- /* 2nd byte: 95 */ 0x4e92,
- /* 2nd byte: 96 */ 0x4f0d,
- /* 2nd byte: 97 */ 0x5348,
- /* 2nd byte: 98 */ 0x5449,
- /* 2nd byte: 99 */ 0x543e,
- /* 2nd byte: 100 */ 0x5a2f,
- /* 2nd byte: 101 */ 0x5f8c,
- /* 2nd byte: 102 */ 0x5fa1,
- /* 2nd byte: 103 */ 0x609f,
- /* 2nd byte: 104 */ 0x68a7,
- /* 2nd byte: 105 */ 0x6a8e,
- /* 2nd byte: 106 */ 0x745a,
- /* 2nd byte: 107 */ 0x7881,
- /* 2nd byte: 108 */ 0x8a9e,
- /* 2nd byte: 109 */ 0x8aa4,
- /* 2nd byte: 110 */ 0x8b77,
- /* 2nd byte: 111 */ 0x9190,
- /* 2nd byte: 112 */ 0x4e5e,
- /* 2nd byte: 113 */ 0x9bc9,
- /* 2nd byte: 114 */ 0x4ea4,
- /* 2nd byte: 115 */ 0x4f7c,
- /* 2nd byte: 116 */ 0x4faf,
- /* 2nd byte: 117 */ 0x5019,
- /* 2nd byte: 118 */ 0x5016,
- /* 2nd byte: 119 */ 0x5149,
- /* 2nd byte: 120 */ 0x516c,
- /* 2nd byte: 121 */ 0x529f,
- /* 2nd byte: 122 */ 0x52b9,
- /* 2nd byte: 123 */ 0x52fe,
- /* 2nd byte: 124 */ 0x539a,
- /* 2nd byte: 125 */ 0x53e3,
- /* 2nd byte: 126 */ 0x5411},
-/* 1st byte: 57 */ {
- /* 2nd byte: 33 */ 0x540e,
- /* 2nd byte: 34 */ 0x5589,
- /* 2nd byte: 35 */ 0x5751,
- /* 2nd byte: 36 */ 0x57a2,
- /* 2nd byte: 37 */ 0x597d,
- /* 2nd byte: 38 */ 0x5b54,
- /* 2nd byte: 39 */ 0x5b5d,
- /* 2nd byte: 40 */ 0x5b8f,
- /* 2nd byte: 41 */ 0x5de5,
- /* 2nd byte: 42 */ 0x5de7,
- /* 2nd byte: 43 */ 0x5df7,
- /* 2nd byte: 44 */ 0x5e78,
- /* 2nd byte: 45 */ 0x5e83,
- /* 2nd byte: 46 */ 0x5e9a,
- /* 2nd byte: 47 */ 0x5eb7,
- /* 2nd byte: 48 */ 0x5f18,
- /* 2nd byte: 49 */ 0x6052,
- /* 2nd byte: 50 */ 0x614c,
- /* 2nd byte: 51 */ 0x6297,
- /* 2nd byte: 52 */ 0x62d8,
- /* 2nd byte: 53 */ 0x63a7,
- /* 2nd byte: 54 */ 0x653b,
- /* 2nd byte: 55 */ 0x6602,
- /* 2nd byte: 56 */ 0x6643,
- /* 2nd byte: 57 */ 0x66f4,
- /* 2nd byte: 58 */ 0x676d,
- /* 2nd byte: 59 */ 0x6821,
- /* 2nd byte: 60 */ 0x6897,
- /* 2nd byte: 61 */ 0x69cb,
- /* 2nd byte: 62 */ 0x6c5f,
- /* 2nd byte: 63 */ 0x6d2a,
- /* 2nd byte: 64 */ 0x6d69,
- /* 2nd byte: 65 */ 0x6e2f,
- /* 2nd byte: 66 */ 0x6e9d,
- /* 2nd byte: 67 */ 0x7532,
- /* 2nd byte: 68 */ 0x7687,
- /* 2nd byte: 69 */ 0x786c,
- /* 2nd byte: 70 */ 0x7a3f,
- /* 2nd byte: 71 */ 0x7ce0,
- /* 2nd byte: 72 */ 0x7d05,
- /* 2nd byte: 73 */ 0x7d18,
- /* 2nd byte: 74 */ 0x7d5e,
- /* 2nd byte: 75 */ 0x7db1,
- /* 2nd byte: 76 */ 0x8015,
- /* 2nd byte: 77 */ 0x8003,
- /* 2nd byte: 78 */ 0x80af,
- /* 2nd byte: 79 */ 0x80b1,
- /* 2nd byte: 80 */ 0x8154,
- /* 2nd byte: 81 */ 0x818f,
- /* 2nd byte: 82 */ 0x822a,
- /* 2nd byte: 83 */ 0x8352,
- /* 2nd byte: 84 */ 0x884c,
- /* 2nd byte: 85 */ 0x8861,
- /* 2nd byte: 86 */ 0x8b1b,
- /* 2nd byte: 87 */ 0x8ca2,
- /* 2nd byte: 88 */ 0x8cfc,
- /* 2nd byte: 89 */ 0x90ca,
- /* 2nd byte: 90 */ 0x9175,
- /* 2nd byte: 91 */ 0x9271,
- /* 2nd byte: 92 */ 0x783f,
- /* 2nd byte: 93 */ 0x92fc,
- /* 2nd byte: 94 */ 0x95a4,
- /* 2nd byte: 95 */ 0x964d,
- /* 2nd byte: 96 */ 0x9805,
- /* 2nd byte: 97 */ 0x9999,
- /* 2nd byte: 98 */ 0x9ad8,
- /* 2nd byte: 99 */ 0x9d3b,
- /* 2nd byte: 100 */ 0x525b,
- /* 2nd byte: 101 */ 0x52ab,
- /* 2nd byte: 102 */ 0x53f7,
- /* 2nd byte: 103 */ 0x5408,
- /* 2nd byte: 104 */ 0x58d5,
- /* 2nd byte: 105 */ 0x62f7,
- /* 2nd byte: 106 */ 0x6fe0,
- /* 2nd byte: 107 */ 0x8c6a,
- /* 2nd byte: 108 */ 0x8f5f,
- /* 2nd byte: 109 */ 0x9eb9,
- /* 2nd byte: 110 */ 0x514b,
- /* 2nd byte: 111 */ 0x523b,
- /* 2nd byte: 112 */ 0x544a,
- /* 2nd byte: 113 */ 0x56fd,
- /* 2nd byte: 114 */ 0x7a40,
- /* 2nd byte: 115 */ 0x9177,
- /* 2nd byte: 116 */ 0x9d60,
- /* 2nd byte: 117 */ 0x9ed2,
- /* 2nd byte: 118 */ 0x7344,
- /* 2nd byte: 119 */ 0x6f09,
- /* 2nd byte: 120 */ 0x8170,
- /* 2nd byte: 121 */ 0x7511,
- /* 2nd byte: 122 */ 0x5ffd,
- /* 2nd byte: 123 */ 0x60da,
- /* 2nd byte: 124 */ 0x9aa8,
- /* 2nd byte: 125 */ 0x72db,
- /* 2nd byte: 126 */ 0x8fbc},
-/* 1st byte: 58 */ {
- /* 2nd byte: 33 */ 0x6b64,
- /* 2nd byte: 34 */ 0x9803,
- /* 2nd byte: 35 */ 0x4eca,
- /* 2nd byte: 36 */ 0x56f0,
- /* 2nd byte: 37 */ 0x5764,
- /* 2nd byte: 38 */ 0x58be,
- /* 2nd byte: 39 */ 0x5a5a,
- /* 2nd byte: 40 */ 0x6068,
- /* 2nd byte: 41 */ 0x61c7,
- /* 2nd byte: 42 */ 0x660f,
- /* 2nd byte: 43 */ 0x6606,
- /* 2nd byte: 44 */ 0x6839,
- /* 2nd byte: 45 */ 0x68b1,
- /* 2nd byte: 46 */ 0x6df7,
- /* 2nd byte: 47 */ 0x75d5,
- /* 2nd byte: 48 */ 0x7d3a,
- /* 2nd byte: 49 */ 0x826e,
- /* 2nd byte: 50 */ 0x9b42,
- /* 2nd byte: 51 */ 0x4e9b,
- /* 2nd byte: 52 */ 0x4f50,
- /* 2nd byte: 53 */ 0x53c9,
- /* 2nd byte: 54 */ 0x5506,
- /* 2nd byte: 55 */ 0x5d6f,
- /* 2nd byte: 56 */ 0x5de6,
- /* 2nd byte: 57 */ 0x5dee,
- /* 2nd byte: 58 */ 0x67fb,
- /* 2nd byte: 59 */ 0x6c99,
- /* 2nd byte: 60 */ 0x7473,
- /* 2nd byte: 61 */ 0x7802,
- /* 2nd byte: 62 */ 0x8a50,
- /* 2nd byte: 63 */ 0x9396,
- /* 2nd byte: 64 */ 0x88df,
- /* 2nd byte: 65 */ 0x5750,
- /* 2nd byte: 66 */ 0x5ea7,
- /* 2nd byte: 67 */ 0x632b,
- /* 2nd byte: 68 */ 0x50b5,
- /* 2nd byte: 69 */ 0x50ac,
- /* 2nd byte: 70 */ 0x518d,
- /* 2nd byte: 71 */ 0x6700,
- /* 2nd byte: 72 */ 0x54c9,
- /* 2nd byte: 73 */ 0x585e,
- /* 2nd byte: 74 */ 0x59bb,
- /* 2nd byte: 75 */ 0x5bb0,
- /* 2nd byte: 76 */ 0x5f69,
- /* 2nd byte: 77 */ 0x624d,
- /* 2nd byte: 78 */ 0x63a1,
- /* 2nd byte: 79 */ 0x683d,
- /* 2nd byte: 80 */ 0x6b73,
- /* 2nd byte: 81 */ 0x6e08,
- /* 2nd byte: 82 */ 0x707d,
- /* 2nd byte: 83 */ 0x91c7,
- /* 2nd byte: 84 */ 0x7280,
- /* 2nd byte: 85 */ 0x7815,
- /* 2nd byte: 86 */ 0x7826,
- /* 2nd byte: 87 */ 0x796d,
- /* 2nd byte: 88 */ 0x658e,
- /* 2nd byte: 89 */ 0x7d30,
- /* 2nd byte: 90 */ 0x83dc,
- /* 2nd byte: 91 */ 0x88c1,
- /* 2nd byte: 92 */ 0x8f09,
- /* 2nd byte: 93 */ 0x969b,
- /* 2nd byte: 94 */ 0x5264,
- /* 2nd byte: 95 */ 0x5728,
- /* 2nd byte: 96 */ 0x6750,
- /* 2nd byte: 97 */ 0x7f6a,
- /* 2nd byte: 98 */ 0x8ca1,
- /* 2nd byte: 99 */ 0x51b4,
- /* 2nd byte: 100 */ 0x5742,
- /* 2nd byte: 101 */ 0x962a,
- /* 2nd byte: 102 */ 0x583a,
- /* 2nd byte: 103 */ 0x698a,
- /* 2nd byte: 104 */ 0x80b4,
- /* 2nd byte: 105 */ 0x54b2,
- /* 2nd byte: 106 */ 0x5d0e,
- /* 2nd byte: 107 */ 0x57fc,
- /* 2nd byte: 108 */ 0x7895,
- /* 2nd byte: 109 */ 0x9dfa,
- /* 2nd byte: 110 */ 0x4f5c,
- /* 2nd byte: 111 */ 0x524a,
- /* 2nd byte: 112 */ 0x548b,
- /* 2nd byte: 113 */ 0x643e,
- /* 2nd byte: 114 */ 0x6628,
- /* 2nd byte: 115 */ 0x6714,
- /* 2nd byte: 116 */ 0x67f5,
- /* 2nd byte: 117 */ 0x7a84,
- /* 2nd byte: 118 */ 0x7b56,
- /* 2nd byte: 119 */ 0x7d22,
- /* 2nd byte: 120 */ 0x932f,
- /* 2nd byte: 121 */ 0x685c,
- /* 2nd byte: 122 */ 0x9bad,
- /* 2nd byte: 123 */ 0x7b39,
- /* 2nd byte: 124 */ 0x5319,
- /* 2nd byte: 125 */ 0x518a,
- /* 2nd byte: 126 */ 0x5237},
-/* 1st byte: 59 */ {
- /* 2nd byte: 33 */ 0x5bdf,
- /* 2nd byte: 34 */ 0x62f6,
- /* 2nd byte: 35 */ 0x64ae,
- /* 2nd byte: 36 */ 0x64e6,
- /* 2nd byte: 37 */ 0x672d,
- /* 2nd byte: 38 */ 0x6bba,
- /* 2nd byte: 39 */ 0x85a9,
- /* 2nd byte: 40 */ 0x96d1,
- /* 2nd byte: 41 */ 0x7690,
- /* 2nd byte: 42 */ 0x9bd6,
- /* 2nd byte: 43 */ 0x634c,
- /* 2nd byte: 44 */ 0x9306,
- /* 2nd byte: 45 */ 0x9bab,
- /* 2nd byte: 46 */ 0x76bf,
- /* 2nd byte: 47 */ 0x6652,
- /* 2nd byte: 48 */ 0x4e09,
- /* 2nd byte: 49 */ 0x5098,
- /* 2nd byte: 50 */ 0x53c2,
- /* 2nd byte: 51 */ 0x5c71,
- /* 2nd byte: 52 */ 0x60e8,
- /* 2nd byte: 53 */ 0x6492,
- /* 2nd byte: 54 */ 0x6563,
- /* 2nd byte: 55 */ 0x685f,
- /* 2nd byte: 56 */ 0x71e6,
- /* 2nd byte: 57 */ 0x73ca,
- /* 2nd byte: 58 */ 0x7523,
- /* 2nd byte: 59 */ 0x7b97,
- /* 2nd byte: 60 */ 0x7e82,
- /* 2nd byte: 61 */ 0x8695,
- /* 2nd byte: 62 */ 0x8b83,
- /* 2nd byte: 63 */ 0x8cdb,
- /* 2nd byte: 64 */ 0x9178,
- /* 2nd byte: 65 */ 0x9910,
- /* 2nd byte: 66 */ 0x65ac,
- /* 2nd byte: 67 */ 0x66ab,
- /* 2nd byte: 68 */ 0x6b8b,
- /* 2nd byte: 69 */ 0x4ed5,
- /* 2nd byte: 70 */ 0x4ed4,
- /* 2nd byte: 71 */ 0x4f3a,
- /* 2nd byte: 72 */ 0x4f7f,
- /* 2nd byte: 73 */ 0x523a,
- /* 2nd byte: 74 */ 0x53f8,
- /* 2nd byte: 75 */ 0x53f2,
- /* 2nd byte: 76 */ 0x55e3,
- /* 2nd byte: 77 */ 0x56db,
- /* 2nd byte: 78 */ 0x58eb,
- /* 2nd byte: 79 */ 0x59cb,
- /* 2nd byte: 80 */ 0x59c9,
- /* 2nd byte: 81 */ 0x59ff,
- /* 2nd byte: 82 */ 0x5b50,
- /* 2nd byte: 83 */ 0x5c4d,
- /* 2nd byte: 84 */ 0x5e02,
- /* 2nd byte: 85 */ 0x5e2b,
- /* 2nd byte: 86 */ 0x5fd7,
- /* 2nd byte: 87 */ 0x601d,
- /* 2nd byte: 88 */ 0x6307,
- /* 2nd byte: 89 */ 0x652f,
- /* 2nd byte: 90 */ 0x5b5c,
- /* 2nd byte: 91 */ 0x65af,
- /* 2nd byte: 92 */ 0x65bd,
- /* 2nd byte: 93 */ 0x65e8,
- /* 2nd byte: 94 */ 0x679d,
- /* 2nd byte: 95 */ 0x6b62,
- /* 2nd byte: 96 */ 0x6b7b,
- /* 2nd byte: 97 */ 0x6c0f,
- /* 2nd byte: 98 */ 0x7345,
- /* 2nd byte: 99 */ 0x7949,
- /* 2nd byte: 100 */ 0x79c1,
- /* 2nd byte: 101 */ 0x7cf8,
- /* 2nd byte: 102 */ 0x7d19,
- /* 2nd byte: 103 */ 0x7d2b,
- /* 2nd byte: 104 */ 0x80a2,
- /* 2nd byte: 105 */ 0x8102,
- /* 2nd byte: 106 */ 0x81f3,
- /* 2nd byte: 107 */ 0x8996,
- /* 2nd byte: 108 */ 0x8a5e,
- /* 2nd byte: 109 */ 0x8a69,
- /* 2nd byte: 110 */ 0x8a66,
- /* 2nd byte: 111 */ 0x8a8c,
- /* 2nd byte: 112 */ 0x8aee,
- /* 2nd byte: 113 */ 0x8cc7,
- /* 2nd byte: 114 */ 0x8cdc,
- /* 2nd byte: 115 */ 0x96cc,
- /* 2nd byte: 116 */ 0x98fc,
- /* 2nd byte: 117 */ 0x6b6f,
- /* 2nd byte: 118 */ 0x4e8b,
- /* 2nd byte: 119 */ 0x4f3c,
- /* 2nd byte: 120 */ 0x4f8d,
- /* 2nd byte: 121 */ 0x5150,
- /* 2nd byte: 122 */ 0x5b57,
- /* 2nd byte: 123 */ 0x5bfa,
- /* 2nd byte: 124 */ 0x6148,
- /* 2nd byte: 125 */ 0x6301,
- /* 2nd byte: 126 */ 0x6642},
-/* 1st byte: 60 */ {
- /* 2nd byte: 33 */ 0x6b21,
- /* 2nd byte: 34 */ 0x6ecb,
- /* 2nd byte: 35 */ 0x6cbb,
- /* 2nd byte: 36 */ 0x723e,
- /* 2nd byte: 37 */ 0x74bd,
- /* 2nd byte: 38 */ 0x75d4,
- /* 2nd byte: 39 */ 0x78c1,
- /* 2nd byte: 40 */ 0x793a,
- /* 2nd byte: 41 */ 0x800c,
- /* 2nd byte: 42 */ 0x8033,
- /* 2nd byte: 43 */ 0x81ea,
- /* 2nd byte: 44 */ 0x8494,
- /* 2nd byte: 45 */ 0x8f9e,
- /* 2nd byte: 46 */ 0x6c50,
- /* 2nd byte: 47 */ 0x9e7f,
- /* 2nd byte: 48 */ 0x5f0f,
- /* 2nd byte: 49 */ 0x8b58,
- /* 2nd byte: 50 */ 0x9d2b,
- /* 2nd byte: 51 */ 0x7afa,
- /* 2nd byte: 52 */ 0x8ef8,
- /* 2nd byte: 53 */ 0x5b8d,
- /* 2nd byte: 54 */ 0x96eb,
- /* 2nd byte: 55 */ 0x4e03,
- /* 2nd byte: 56 */ 0x53f1,
- /* 2nd byte: 57 */ 0x57f7,
- /* 2nd byte: 58 */ 0x5931,
- /* 2nd byte: 59 */ 0x5ac9,
- /* 2nd byte: 60 */ 0x5ba4,
- /* 2nd byte: 61 */ 0x6089,
- /* 2nd byte: 62 */ 0x6e7f,
- /* 2nd byte: 63 */ 0x6f06,
- /* 2nd byte: 64 */ 0x75be,
- /* 2nd byte: 65 */ 0x8cea,
- /* 2nd byte: 66 */ 0x5b9f,
- /* 2nd byte: 67 */ 0x8500,
- /* 2nd byte: 68 */ 0x7be0,
- /* 2nd byte: 69 */ 0x5072,
- /* 2nd byte: 70 */ 0x67f4,
- /* 2nd byte: 71 */ 0x829d,
- /* 2nd byte: 72 */ 0x5c61,
- /* 2nd byte: 73 */ 0x854a,
- /* 2nd byte: 74 */ 0x7e1e,
- /* 2nd byte: 75 */ 0x820e,
- /* 2nd byte: 76 */ 0x5199,
- /* 2nd byte: 77 */ 0x5c04,
- /* 2nd byte: 78 */ 0x6368,
- /* 2nd byte: 79 */ 0x8d66,
- /* 2nd byte: 80 */ 0x659c,
- /* 2nd byte: 81 */ 0x716e,
- /* 2nd byte: 82 */ 0x793e,
- /* 2nd byte: 83 */ 0x7d17,
- /* 2nd byte: 84 */ 0x8005,
- /* 2nd byte: 85 */ 0x8b1d,
- /* 2nd byte: 86 */ 0x8eca,
- /* 2nd byte: 87 */ 0x906e,
- /* 2nd byte: 88 */ 0x86c7,
- /* 2nd byte: 89 */ 0x90aa,
- /* 2nd byte: 90 */ 0x501f,
- /* 2nd byte: 91 */ 0x52fa,
- /* 2nd byte: 92 */ 0x5c3a,
- /* 2nd byte: 93 */ 0x6753,
- /* 2nd byte: 94 */ 0x707c,
- /* 2nd byte: 95 */ 0x7235,
- /* 2nd byte: 96 */ 0x914c,
- /* 2nd byte: 97 */ 0x91c8,
- /* 2nd byte: 98 */ 0x932b,
- /* 2nd byte: 99 */ 0x82e5,
- /* 2nd byte: 100 */ 0x5bc2,
- /* 2nd byte: 101 */ 0x5f31,
- /* 2nd byte: 102 */ 0x60f9,
- /* 2nd byte: 103 */ 0x4e3b,
- /* 2nd byte: 104 */ 0x53d6,
- /* 2nd byte: 105 */ 0x5b88,
- /* 2nd byte: 106 */ 0x624b,
- /* 2nd byte: 107 */ 0x6731,
- /* 2nd byte: 108 */ 0x6b8a,
- /* 2nd byte: 109 */ 0x72e9,
- /* 2nd byte: 110 */ 0x73e0,
- /* 2nd byte: 111 */ 0x7a2e,
- /* 2nd byte: 112 */ 0x816b,
- /* 2nd byte: 113 */ 0x8da3,
- /* 2nd byte: 114 */ 0x9152,
- /* 2nd byte: 115 */ 0x9996,
- /* 2nd byte: 116 */ 0x5112,
- /* 2nd byte: 117 */ 0x53d7,
- /* 2nd byte: 118 */ 0x546a,
- /* 2nd byte: 119 */ 0x5bff,
- /* 2nd byte: 120 */ 0x6388,
- /* 2nd byte: 121 */ 0x6a39,
- /* 2nd byte: 122 */ 0x7dac,
- /* 2nd byte: 123 */ 0x9700,
- /* 2nd byte: 124 */ 0x56da,
- /* 2nd byte: 125 */ 0x53ce,
- /* 2nd byte: 126 */ 0x5468},
-/* 1st byte: 61 */ {
- /* 2nd byte: 33 */ 0x5b97,
- /* 2nd byte: 34 */ 0x5c31,
- /* 2nd byte: 35 */ 0x5dde,
- /* 2nd byte: 36 */ 0x4fee,
- /* 2nd byte: 37 */ 0x6101,
- /* 2nd byte: 38 */ 0x62fe,
- /* 2nd byte: 39 */ 0x6d32,
- /* 2nd byte: 40 */ 0x79c0,
- /* 2nd byte: 41 */ 0x79cb,
- /* 2nd byte: 42 */ 0x7d42,
- /* 2nd byte: 43 */ 0x7e4d,
- /* 2nd byte: 44 */ 0x7fd2,
- /* 2nd byte: 45 */ 0x81ed,
- /* 2nd byte: 46 */ 0x821f,
- /* 2nd byte: 47 */ 0x8490,
- /* 2nd byte: 48 */ 0x8846,
- /* 2nd byte: 49 */ 0x8972,
- /* 2nd byte: 50 */ 0x8b90,
- /* 2nd byte: 51 */ 0x8e74,
- /* 2nd byte: 52 */ 0x8f2f,
- /* 2nd byte: 53 */ 0x9031,
- /* 2nd byte: 54 */ 0x914b,
- /* 2nd byte: 55 */ 0x916c,
- /* 2nd byte: 56 */ 0x96c6,
- /* 2nd byte: 57 */ 0x919c,
- /* 2nd byte: 58 */ 0x4ec0,
- /* 2nd byte: 59 */ 0x4f4f,
- /* 2nd byte: 60 */ 0x5145,
- /* 2nd byte: 61 */ 0x5341,
- /* 2nd byte: 62 */ 0x5f93,
- /* 2nd byte: 63 */ 0x620e,
- /* 2nd byte: 64 */ 0x67d4,
- /* 2nd byte: 65 */ 0x6c41,
- /* 2nd byte: 66 */ 0x6e0b,
- /* 2nd byte: 67 */ 0x7363,
- /* 2nd byte: 68 */ 0x7e26,
- /* 2nd byte: 69 */ 0x91cd,
- /* 2nd byte: 70 */ 0x9283,
- /* 2nd byte: 71 */ 0x53d4,
- /* 2nd byte: 72 */ 0x5919,
- /* 2nd byte: 73 */ 0x5bbf,
- /* 2nd byte: 74 */ 0x6dd1,
- /* 2nd byte: 75 */ 0x795d,
- /* 2nd byte: 76 */ 0x7e2e,
- /* 2nd byte: 77 */ 0x7c9b,
- /* 2nd byte: 78 */ 0x587e,
- /* 2nd byte: 79 */ 0x719f,
- /* 2nd byte: 80 */ 0x51fa,
- /* 2nd byte: 81 */ 0x8853,
- /* 2nd byte: 82 */ 0x8ff0,
- /* 2nd byte: 83 */ 0x4fca,
- /* 2nd byte: 84 */ 0x5cfb,
- /* 2nd byte: 85 */ 0x6625,
- /* 2nd byte: 86 */ 0x77ac,
- /* 2nd byte: 87 */ 0x7ae3,
- /* 2nd byte: 88 */ 0x821c,
- /* 2nd byte: 89 */ 0x99ff,
- /* 2nd byte: 90 */ 0x51c6,
- /* 2nd byte: 91 */ 0x5faa,
- /* 2nd byte: 92 */ 0x65ec,
- /* 2nd byte: 93 */ 0x696f,
- /* 2nd byte: 94 */ 0x6b89,
- /* 2nd byte: 95 */ 0x6df3,
- /* 2nd byte: 96 */ 0x6e96,
- /* 2nd byte: 97 */ 0x6f64,
- /* 2nd byte: 98 */ 0x76fe,
- /* 2nd byte: 99 */ 0x7d14,
- /* 2nd byte: 100 */ 0x5de1,
- /* 2nd byte: 101 */ 0x9075,
- /* 2nd byte: 102 */ 0x9187,
- /* 2nd byte: 103 */ 0x9806,
- /* 2nd byte: 104 */ 0x51e6,
- /* 2nd byte: 105 */ 0x521d,
- /* 2nd byte: 106 */ 0x6240,
- /* 2nd byte: 107 */ 0x6691,
- /* 2nd byte: 108 */ 0x66d9,
- /* 2nd byte: 109 */ 0x6e1a,
- /* 2nd byte: 110 */ 0x5eb6,
- /* 2nd byte: 111 */ 0x7dd2,
- /* 2nd byte: 112 */ 0x7f72,
- /* 2nd byte: 113 */ 0x66f8,
- /* 2nd byte: 114 */ 0x85af,
- /* 2nd byte: 115 */ 0x85f7,
- /* 2nd byte: 116 */ 0x8af8,
- /* 2nd byte: 117 */ 0x52a9,
- /* 2nd byte: 118 */ 0x53d9,
- /* 2nd byte: 119 */ 0x5973,
- /* 2nd byte: 120 */ 0x5e8f,
- /* 2nd byte: 121 */ 0x5f90,
- /* 2nd byte: 122 */ 0x6055,
- /* 2nd byte: 123 */ 0x92e4,
- /* 2nd byte: 124 */ 0x9664,
- /* 2nd byte: 125 */ 0x50b7,
- /* 2nd byte: 126 */ 0x511f},
-/* 1st byte: 62 */ {
- /* 2nd byte: 33 */ 0x52dd,
- /* 2nd byte: 34 */ 0x5320,
- /* 2nd byte: 35 */ 0x5347,
- /* 2nd byte: 36 */ 0x53ec,
- /* 2nd byte: 37 */ 0x54e8,
- /* 2nd byte: 38 */ 0x5546,
- /* 2nd byte: 39 */ 0x5531,
- /* 2nd byte: 40 */ 0x5617,
- /* 2nd byte: 41 */ 0x5968,
- /* 2nd byte: 42 */ 0x59be,
- /* 2nd byte: 43 */ 0x5a3c,
- /* 2nd byte: 44 */ 0x5bb5,
- /* 2nd byte: 45 */ 0x5c06,
- /* 2nd byte: 46 */ 0x5c0f,
- /* 2nd byte: 47 */ 0x5c11,
- /* 2nd byte: 48 */ 0x5c1a,
- /* 2nd byte: 49 */ 0x5e84,
- /* 2nd byte: 50 */ 0x5e8a,
- /* 2nd byte: 51 */ 0x5ee0,
- /* 2nd byte: 52 */ 0x5f70,
- /* 2nd byte: 53 */ 0x627f,
- /* 2nd byte: 54 */ 0x6284,
- /* 2nd byte: 55 */ 0x62db,
- /* 2nd byte: 56 */ 0x638c,
- /* 2nd byte: 57 */ 0x6377,
- /* 2nd byte: 58 */ 0x6607,
- /* 2nd byte: 59 */ 0x660c,
- /* 2nd byte: 60 */ 0x662d,
- /* 2nd byte: 61 */ 0x6676,
- /* 2nd byte: 62 */ 0x677e,
- /* 2nd byte: 63 */ 0x68a2,
- /* 2nd byte: 64 */ 0x6a1f,
- /* 2nd byte: 65 */ 0x6a35,
- /* 2nd byte: 66 */ 0x6cbc,
- /* 2nd byte: 67 */ 0x6d88,
- /* 2nd byte: 68 */ 0x6e09,
- /* 2nd byte: 69 */ 0x6e58,
- /* 2nd byte: 70 */ 0x713c,
- /* 2nd byte: 71 */ 0x7126,
- /* 2nd byte: 72 */ 0x7167,
- /* 2nd byte: 73 */ 0x75c7,
- /* 2nd byte: 74 */ 0x7701,
- /* 2nd byte: 75 */ 0x785d,
- /* 2nd byte: 76 */ 0x7901,
- /* 2nd byte: 77 */ 0x7965,
- /* 2nd byte: 78 */ 0x79f0,
- /* 2nd byte: 79 */ 0x7ae0,
- /* 2nd byte: 80 */ 0x7b11,
- /* 2nd byte: 81 */ 0x7ca7,
- /* 2nd byte: 82 */ 0x7d39,
- /* 2nd byte: 83 */ 0x8096,
- /* 2nd byte: 84 */ 0x83d6,
- /* 2nd byte: 85 */ 0x848b,
- /* 2nd byte: 86 */ 0x8549,
- /* 2nd byte: 87 */ 0x885d,
- /* 2nd byte: 88 */ 0x88f3,
- /* 2nd byte: 89 */ 0x8a1f,
- /* 2nd byte: 90 */ 0x8a3c,
- /* 2nd byte: 91 */ 0x8a54,
- /* 2nd byte: 92 */ 0x8a73,
- /* 2nd byte: 93 */ 0x8c61,
- /* 2nd byte: 94 */ 0x8cde,
- /* 2nd byte: 95 */ 0x91a4,
- /* 2nd byte: 96 */ 0x9266,
- /* 2nd byte: 97 */ 0x937e,
- /* 2nd byte: 98 */ 0x9418,
- /* 2nd byte: 99 */ 0x969c,
- /* 2nd byte: 100 */ 0x9798,
- /* 2nd byte: 101 */ 0x4e0a,
- /* 2nd byte: 102 */ 0x4e08,
- /* 2nd byte: 103 */ 0x4e1e,
- /* 2nd byte: 104 */ 0x4e57,
- /* 2nd byte: 105 */ 0x5197,
- /* 2nd byte: 106 */ 0x5270,
- /* 2nd byte: 107 */ 0x57ce,
- /* 2nd byte: 108 */ 0x5834,
- /* 2nd byte: 109 */ 0x58cc,
- /* 2nd byte: 110 */ 0x5b22,
- /* 2nd byte: 111 */ 0x5e38,
- /* 2nd byte: 112 */ 0x60c5,
- /* 2nd byte: 113 */ 0x64fe,
- /* 2nd byte: 114 */ 0x6761,
- /* 2nd byte: 115 */ 0x6756,
- /* 2nd byte: 116 */ 0x6d44,
- /* 2nd byte: 117 */ 0x72b6,
- /* 2nd byte: 118 */ 0x7573,
- /* 2nd byte: 119 */ 0x7a63,
- /* 2nd byte: 120 */ 0x84b8,
- /* 2nd byte: 121 */ 0x8b72,
- /* 2nd byte: 122 */ 0x91b8,
- /* 2nd byte: 123 */ 0x9320,
- /* 2nd byte: 124 */ 0x5631,
- /* 2nd byte: 125 */ 0x57f4,
- /* 2nd byte: 126 */ 0x98fe},
-/* 1st byte: 63 */ {
- /* 2nd byte: 33 */ 0x62ed,
- /* 2nd byte: 34 */ 0x690d,
- /* 2nd byte: 35 */ 0x6b96,
- /* 2nd byte: 36 */ 0x71ed,
- /* 2nd byte: 37 */ 0x7e54,
- /* 2nd byte: 38 */ 0x8077,
- /* 2nd byte: 39 */ 0x8272,
- /* 2nd byte: 40 */ 0x89e6,
- /* 2nd byte: 41 */ 0x98df,
- /* 2nd byte: 42 */ 0x8755,
- /* 2nd byte: 43 */ 0x8fb1,
- /* 2nd byte: 44 */ 0x5c3b,
- /* 2nd byte: 45 */ 0x4f38,
- /* 2nd byte: 46 */ 0x4fe1,
- /* 2nd byte: 47 */ 0x4fb5,
- /* 2nd byte: 48 */ 0x5507,
- /* 2nd byte: 49 */ 0x5a20,
- /* 2nd byte: 50 */ 0x5bdd,
- /* 2nd byte: 51 */ 0x5be9,
- /* 2nd byte: 52 */ 0x5fc3,
- /* 2nd byte: 53 */ 0x614e,
- /* 2nd byte: 54 */ 0x632f,
- /* 2nd byte: 55 */ 0x65b0,
- /* 2nd byte: 56 */ 0x664b,
- /* 2nd byte: 57 */ 0x68ee,
- /* 2nd byte: 58 */ 0x699b,
- /* 2nd byte: 59 */ 0x6d78,
- /* 2nd byte: 60 */ 0x6df1,
- /* 2nd byte: 61 */ 0x7533,
- /* 2nd byte: 62 */ 0x75b9,
- /* 2nd byte: 63 */ 0x771f,
- /* 2nd byte: 64 */ 0x795e,
- /* 2nd byte: 65 */ 0x79e6,
- /* 2nd byte: 66 */ 0x7d33,
- /* 2nd byte: 67 */ 0x81e3,
- /* 2nd byte: 68 */ 0x82af,
- /* 2nd byte: 69 */ 0x85aa,
- /* 2nd byte: 70 */ 0x89aa,
- /* 2nd byte: 71 */ 0x8a3a,
- /* 2nd byte: 72 */ 0x8eab,
- /* 2nd byte: 73 */ 0x8f9b,
- /* 2nd byte: 74 */ 0x9032,
- /* 2nd byte: 75 */ 0x91dd,
- /* 2nd byte: 76 */ 0x9707,
- /* 2nd byte: 77 */ 0x4eba,
- /* 2nd byte: 78 */ 0x4ec1,
- /* 2nd byte: 79 */ 0x5203,
- /* 2nd byte: 80 */ 0x5875,
- /* 2nd byte: 81 */ 0x58ec,
- /* 2nd byte: 82 */ 0x5c0b,
- /* 2nd byte: 83 */ 0x751a,
- /* 2nd byte: 84 */ 0x5c3d,
- /* 2nd byte: 85 */ 0x814e,
- /* 2nd byte: 86 */ 0x8a0a,
- /* 2nd byte: 87 */ 0x8fc5,
- /* 2nd byte: 88 */ 0x9663,
- /* 2nd byte: 89 */ 0x976d,
- /* 2nd byte: 90 */ 0x7b25,
- /* 2nd byte: 91 */ 0x8acf,
- /* 2nd byte: 92 */ 0x9808,
- /* 2nd byte: 93 */ 0x9162,
- /* 2nd byte: 94 */ 0x56f3,
- /* 2nd byte: 95 */ 0x53a8,
- /* 2nd byte: 96 */ 0x9017,
- /* 2nd byte: 97 */ 0x5439,
- /* 2nd byte: 98 */ 0x5782,
- /* 2nd byte: 99 */ 0x5e25,
- /* 2nd byte: 100 */ 0x63a8,
- /* 2nd byte: 101 */ 0x6c34,
- /* 2nd byte: 102 */ 0x708a,
- /* 2nd byte: 103 */ 0x7761,
- /* 2nd byte: 104 */ 0x7c8b,
- /* 2nd byte: 105 */ 0x7fe0,
- /* 2nd byte: 106 */ 0x8870,
- /* 2nd byte: 107 */ 0x9042,
- /* 2nd byte: 108 */ 0x9154,
- /* 2nd byte: 109 */ 0x9310,
- /* 2nd byte: 110 */ 0x9318,
- /* 2nd byte: 111 */ 0x968f,
- /* 2nd byte: 112 */ 0x745e,
- /* 2nd byte: 113 */ 0x9ac4,
- /* 2nd byte: 114 */ 0x5d07,
- /* 2nd byte: 115 */ 0x5d69,
- /* 2nd byte: 116 */ 0x6570,
- /* 2nd byte: 117 */ 0x67a2,
- /* 2nd byte: 118 */ 0x8da8,
- /* 2nd byte: 119 */ 0x96db,
- /* 2nd byte: 120 */ 0x636e,
- /* 2nd byte: 121 */ 0x6749,
- /* 2nd byte: 122 */ 0x6919,
- /* 2nd byte: 123 */ 0x83c5,
- /* 2nd byte: 124 */ 0x9817,
- /* 2nd byte: 125 */ 0x96c0,
- /* 2nd byte: 126 */ 0x88fe},
-/* 1st byte: 64 */ {
- /* 2nd byte: 33 */ 0x6f84,
- /* 2nd byte: 34 */ 0x647a,
- /* 2nd byte: 35 */ 0x5bf8,
- /* 2nd byte: 36 */ 0x4e16,
- /* 2nd byte: 37 */ 0x702c,
- /* 2nd byte: 38 */ 0x755d,
- /* 2nd byte: 39 */ 0x662f,
- /* 2nd byte: 40 */ 0x51c4,
- /* 2nd byte: 41 */ 0x5236,
- /* 2nd byte: 42 */ 0x52e2,
- /* 2nd byte: 43 */ 0x59d3,
- /* 2nd byte: 44 */ 0x5f81,
- /* 2nd byte: 45 */ 0x6027,
- /* 2nd byte: 46 */ 0x6210,
- /* 2nd byte: 47 */ 0x653f,
- /* 2nd byte: 48 */ 0x6574,
- /* 2nd byte: 49 */ 0x661f,
- /* 2nd byte: 50 */ 0x6674,
- /* 2nd byte: 51 */ 0x68f2,
- /* 2nd byte: 52 */ 0x6816,
- /* 2nd byte: 53 */ 0x6b63,
- /* 2nd byte: 54 */ 0x6e05,
- /* 2nd byte: 55 */ 0x7272,
- /* 2nd byte: 56 */ 0x751f,
- /* 2nd byte: 57 */ 0x76db,
- /* 2nd byte: 58 */ 0x7cbe,
- /* 2nd byte: 59 */ 0x8056,
- /* 2nd byte: 60 */ 0x58f0,
- /* 2nd byte: 61 */ 0x88fd,
- /* 2nd byte: 62 */ 0x897f,
- /* 2nd byte: 63 */ 0x8aa0,
- /* 2nd byte: 64 */ 0x8a93,
- /* 2nd byte: 65 */ 0x8acb,
- /* 2nd byte: 66 */ 0x901d,
- /* 2nd byte: 67 */ 0x9192,
- /* 2nd byte: 68 */ 0x9752,
- /* 2nd byte: 69 */ 0x9759,
- /* 2nd byte: 70 */ 0x6589,
- /* 2nd byte: 71 */ 0x7a0e,
- /* 2nd byte: 72 */ 0x8106,
- /* 2nd byte: 73 */ 0x96bb,
- /* 2nd byte: 74 */ 0x5e2d,
- /* 2nd byte: 75 */ 0x60dc,
- /* 2nd byte: 76 */ 0x621a,
- /* 2nd byte: 77 */ 0x65a5,
- /* 2nd byte: 78 */ 0x6614,
- /* 2nd byte: 79 */ 0x6790,
- /* 2nd byte: 80 */ 0x77f3,
- /* 2nd byte: 81 */ 0x7a4d,
- /* 2nd byte: 82 */ 0x7c4d,
- /* 2nd byte: 83 */ 0x7e3e,
- /* 2nd byte: 84 */ 0x810a,
- /* 2nd byte: 85 */ 0x8cac,
- /* 2nd byte: 86 */ 0x8d64,
- /* 2nd byte: 87 */ 0x8de1,
- /* 2nd byte: 88 */ 0x8e5f,
- /* 2nd byte: 89 */ 0x78a9,
- /* 2nd byte: 90 */ 0x5207,
- /* 2nd byte: 91 */ 0x62d9,
- /* 2nd byte: 92 */ 0x63a5,
- /* 2nd byte: 93 */ 0x6442,
- /* 2nd byte: 94 */ 0x6298,
- /* 2nd byte: 95 */ 0x8a2d,
- /* 2nd byte: 96 */ 0x7a83,
- /* 2nd byte: 97 */ 0x7bc0,
- /* 2nd byte: 98 */ 0x8aac,
- /* 2nd byte: 99 */ 0x96ea,
- /* 2nd byte: 100 */ 0x7d76,
- /* 2nd byte: 101 */ 0x820c,
- /* 2nd byte: 102 */ 0x8749,
- /* 2nd byte: 103 */ 0x4ed9,
- /* 2nd byte: 104 */ 0x5148,
- /* 2nd byte: 105 */ 0x5343,
- /* 2nd byte: 106 */ 0x5360,
- /* 2nd byte: 107 */ 0x5ba3,
- /* 2nd byte: 108 */ 0x5c02,
- /* 2nd byte: 109 */ 0x5c16,
- /* 2nd byte: 110 */ 0x5ddd,
- /* 2nd byte: 111 */ 0x6226,
- /* 2nd byte: 112 */ 0x6247,
- /* 2nd byte: 113 */ 0x64b0,
- /* 2nd byte: 114 */ 0x6813,
- /* 2nd byte: 115 */ 0x6834,
- /* 2nd byte: 116 */ 0x6cc9,
- /* 2nd byte: 117 */ 0x6d45,
- /* 2nd byte: 118 */ 0x6d17,
- /* 2nd byte: 119 */ 0x67d3,
- /* 2nd byte: 120 */ 0x6f5c,
- /* 2nd byte: 121 */ 0x714e,
- /* 2nd byte: 122 */ 0x717d,
- /* 2nd byte: 123 */ 0x65cb,
- /* 2nd byte: 124 */ 0x7a7f,
- /* 2nd byte: 125 */ 0x7bad,
- /* 2nd byte: 126 */ 0x7dda},
-/* 1st byte: 65 */ {
- /* 2nd byte: 33 */ 0x7e4a,
- /* 2nd byte: 34 */ 0x7fa8,
- /* 2nd byte: 35 */ 0x817a,
- /* 2nd byte: 36 */ 0x821b,
- /* 2nd byte: 37 */ 0x8239,
- /* 2nd byte: 38 */ 0x85a6,
- /* 2nd byte: 39 */ 0x8a6e,
- /* 2nd byte: 40 */ 0x8cce,
- /* 2nd byte: 41 */ 0x8df5,
- /* 2nd byte: 42 */ 0x9078,
- /* 2nd byte: 43 */ 0x9077,
- /* 2nd byte: 44 */ 0x92ad,
- /* 2nd byte: 45 */ 0x9291,
- /* 2nd byte: 46 */ 0x9583,
- /* 2nd byte: 47 */ 0x9bae,
- /* 2nd byte: 48 */ 0x524d,
- /* 2nd byte: 49 */ 0x5584,
- /* 2nd byte: 50 */ 0x6f38,
- /* 2nd byte: 51 */ 0x7136,
- /* 2nd byte: 52 */ 0x5168,
- /* 2nd byte: 53 */ 0x7985,
- /* 2nd byte: 54 */ 0x7e55,
- /* 2nd byte: 55 */ 0x81b3,
- /* 2nd byte: 56 */ 0x7cce,
- /* 2nd byte: 57 */ 0x564c,
- /* 2nd byte: 58 */ 0x5851,
- /* 2nd byte: 59 */ 0x5ca8,
- /* 2nd byte: 60 */ 0x63aa,
- /* 2nd byte: 61 */ 0x66fe,
- /* 2nd byte: 62 */ 0x66fd,
- /* 2nd byte: 63 */ 0x695a,
- /* 2nd byte: 64 */ 0x72d9,
- /* 2nd byte: 65 */ 0x758f,
- /* 2nd byte: 66 */ 0x758e,
- /* 2nd byte: 67 */ 0x790e,
- /* 2nd byte: 68 */ 0x7956,
- /* 2nd byte: 69 */ 0x79df,
- /* 2nd byte: 70 */ 0x7c97,
- /* 2nd byte: 71 */ 0x7d20,
- /* 2nd byte: 72 */ 0x7d44,
- /* 2nd byte: 73 */ 0x8607,
- /* 2nd byte: 74 */ 0x8a34,
- /* 2nd byte: 75 */ 0x963b,
- /* 2nd byte: 76 */ 0x9061,
- /* 2nd byte: 77 */ 0x9f20,
- /* 2nd byte: 78 */ 0x50e7,
- /* 2nd byte: 79 */ 0x5275,
- /* 2nd byte: 80 */ 0x53cc,
- /* 2nd byte: 81 */ 0x53e2,
- /* 2nd byte: 82 */ 0x5009,
- /* 2nd byte: 83 */ 0x55aa,
- /* 2nd byte: 84 */ 0x58ee,
- /* 2nd byte: 85 */ 0x594f,
- /* 2nd byte: 86 */ 0x723d,
- /* 2nd byte: 87 */ 0x5b8b,
- /* 2nd byte: 88 */ 0x5c64,
- /* 2nd byte: 89 */ 0x531d,
- /* 2nd byte: 90 */ 0x60e3,
- /* 2nd byte: 91 */ 0x60f3,
- /* 2nd byte: 92 */ 0x635c,
- /* 2nd byte: 93 */ 0x6383,
- /* 2nd byte: 94 */ 0x633f,
- /* 2nd byte: 95 */ 0x63bb,
- /* 2nd byte: 96 */ 0x64cd,
- /* 2nd byte: 97 */ 0x65e9,
- /* 2nd byte: 98 */ 0x66f9,
- /* 2nd byte: 99 */ 0x5de3,
- /* 2nd byte: 100 */ 0x69cd,
- /* 2nd byte: 101 */ 0x69fd,
- /* 2nd byte: 102 */ 0x6f15,
- /* 2nd byte: 103 */ 0x71e5,
- /* 2nd byte: 104 */ 0x4e89,
- /* 2nd byte: 105 */ 0x75e9,
- /* 2nd byte: 106 */ 0x76f8,
- /* 2nd byte: 107 */ 0x7a93,
- /* 2nd byte: 108 */ 0x7cdf,
- /* 2nd byte: 109 */ 0x7dcf,
- /* 2nd byte: 110 */ 0x7d9c,
- /* 2nd byte: 111 */ 0x8061,
- /* 2nd byte: 112 */ 0x8349,
- /* 2nd byte: 113 */ 0x8358,
- /* 2nd byte: 114 */ 0x846c,
- /* 2nd byte: 115 */ 0x84bc,
- /* 2nd byte: 116 */ 0x85fb,
- /* 2nd byte: 117 */ 0x88c5,
- /* 2nd byte: 118 */ 0x8d70,
- /* 2nd byte: 119 */ 0x9001,
- /* 2nd byte: 120 */ 0x906d,
- /* 2nd byte: 121 */ 0x9397,
- /* 2nd byte: 122 */ 0x971c,
- /* 2nd byte: 123 */ 0x9a12,
- /* 2nd byte: 124 */ 0x50cf,
- /* 2nd byte: 125 */ 0x5897,
- /* 2nd byte: 126 */ 0x618e},
-/* 1st byte: 66 */ {
- /* 2nd byte: 33 */ 0x81d3,
- /* 2nd byte: 34 */ 0x8535,
- /* 2nd byte: 35 */ 0x8d08,
- /* 2nd byte: 36 */ 0x9020,
- /* 2nd byte: 37 */ 0x4fc3,
- /* 2nd byte: 38 */ 0x5074,
- /* 2nd byte: 39 */ 0x5247,
- /* 2nd byte: 40 */ 0x5373,
- /* 2nd byte: 41 */ 0x606f,
- /* 2nd byte: 42 */ 0x6349,
- /* 2nd byte: 43 */ 0x675f,
- /* 2nd byte: 44 */ 0x6e2c,
- /* 2nd byte: 45 */ 0x8db3,
- /* 2nd byte: 46 */ 0x901f,
- /* 2nd byte: 47 */ 0x4fd7,
- /* 2nd byte: 48 */ 0x5c5e,
- /* 2nd byte: 49 */ 0x8cca,
- /* 2nd byte: 50 */ 0x65cf,
- /* 2nd byte: 51 */ 0x7d9a,
- /* 2nd byte: 52 */ 0x5352,
- /* 2nd byte: 53 */ 0x8896,
- /* 2nd byte: 54 */ 0x5176,
- /* 2nd byte: 55 */ 0x63c3,
- /* 2nd byte: 56 */ 0x5b58,
- /* 2nd byte: 57 */ 0x5b6b,
- /* 2nd byte: 58 */ 0x5c0a,
- /* 2nd byte: 59 */ 0x640d,
- /* 2nd byte: 60 */ 0x6751,
- /* 2nd byte: 61 */ 0x905c,
- /* 2nd byte: 62 */ 0x4ed6,
- /* 2nd byte: 63 */ 0x591a,
- /* 2nd byte: 64 */ 0x592a,
- /* 2nd byte: 65 */ 0x6c70,
- /* 2nd byte: 66 */ 0x8a51,
- /* 2nd byte: 67 */ 0x553e,
- /* 2nd byte: 68 */ 0x5815,
- /* 2nd byte: 69 */ 0x59a5,
- /* 2nd byte: 70 */ 0x60f0,
- /* 2nd byte: 71 */ 0x6253,
- /* 2nd byte: 72 */ 0x67c1,
- /* 2nd byte: 73 */ 0x8235,
- /* 2nd byte: 74 */ 0x6955,
- /* 2nd byte: 75 */ 0x9640,
- /* 2nd byte: 76 */ 0x99c4,
- /* 2nd byte: 77 */ 0x9a28,
- /* 2nd byte: 78 */ 0x4f53,
- /* 2nd byte: 79 */ 0x5806,
- /* 2nd byte: 80 */ 0x5bfe,
- /* 2nd byte: 81 */ 0x8010,
- /* 2nd byte: 82 */ 0x5cb1,
- /* 2nd byte: 83 */ 0x5e2f,
- /* 2nd byte: 84 */ 0x5f85,
- /* 2nd byte: 85 */ 0x6020,
- /* 2nd byte: 86 */ 0x614b,
- /* 2nd byte: 87 */ 0x6234,
- /* 2nd byte: 88 */ 0x66ff,
- /* 2nd byte: 89 */ 0x6cf0,
- /* 2nd byte: 90 */ 0x6ede,
- /* 2nd byte: 91 */ 0x80ce,
- /* 2nd byte: 92 */ 0x817f,
- /* 2nd byte: 93 */ 0x82d4,
- /* 2nd byte: 94 */ 0x888b,
- /* 2nd byte: 95 */ 0x8cb8,
- /* 2nd byte: 96 */ 0x9000,
- /* 2nd byte: 97 */ 0x902e,
- /* 2nd byte: 98 */ 0x968a,
- /* 2nd byte: 99 */ 0x9edb,
- /* 2nd byte: 100 */ 0x9bdb,
- /* 2nd byte: 101 */ 0x4ee3,
- /* 2nd byte: 102 */ 0x53f0,
- /* 2nd byte: 103 */ 0x5927,
- /* 2nd byte: 104 */ 0x7b2c,
- /* 2nd byte: 105 */ 0x918d,
- /* 2nd byte: 106 */ 0x984c,
- /* 2nd byte: 107 */ 0x9df9,
- /* 2nd byte: 108 */ 0x6edd,
- /* 2nd byte: 109 */ 0x7027,
- /* 2nd byte: 110 */ 0x5353,
- /* 2nd byte: 111 */ 0x5544,
- /* 2nd byte: 112 */ 0x5b85,
- /* 2nd byte: 113 */ 0x6258,
- /* 2nd byte: 114 */ 0x629e,
- /* 2nd byte: 115 */ 0x62d3,
- /* 2nd byte: 116 */ 0x6ca2,
- /* 2nd byte: 117 */ 0x6fef,
- /* 2nd byte: 118 */ 0x7422,
- /* 2nd byte: 119 */ 0x8a17,
- /* 2nd byte: 120 */ 0x9438,
- /* 2nd byte: 121 */ 0x6fc1,
- /* 2nd byte: 122 */ 0x8afe,
- /* 2nd byte: 123 */ 0x8338,
- /* 2nd byte: 124 */ 0x51e7,
- /* 2nd byte: 125 */ 0x86f8,
- /* 2nd byte: 126 */ 0x53ea},
-/* 1st byte: 67 */ {
- /* 2nd byte: 33 */ 0x53e9,
- /* 2nd byte: 34 */ 0x4f46,
- /* 2nd byte: 35 */ 0x9054,
- /* 2nd byte: 36 */ 0x8fb0,
- /* 2nd byte: 37 */ 0x596a,
- /* 2nd byte: 38 */ 0x8131,
- /* 2nd byte: 39 */ 0x5dfd,
- /* 2nd byte: 40 */ 0x7aea,
- /* 2nd byte: 41 */ 0x8fbf,
- /* 2nd byte: 42 */ 0x68da,
- /* 2nd byte: 43 */ 0x8c37,
- /* 2nd byte: 44 */ 0x72f8,
- /* 2nd byte: 45 */ 0x9c48,
- /* 2nd byte: 46 */ 0x6a3d,
- /* 2nd byte: 47 */ 0x8ab0,
- /* 2nd byte: 48 */ 0x4e39,
- /* 2nd byte: 49 */ 0x5358,
- /* 2nd byte: 50 */ 0x5606,
- /* 2nd byte: 51 */ 0x5766,
- /* 2nd byte: 52 */ 0x62c5,
- /* 2nd byte: 53 */ 0x63a2,
- /* 2nd byte: 54 */ 0x65e6,
- /* 2nd byte: 55 */ 0x6b4e,
- /* 2nd byte: 56 */ 0x6de1,
- /* 2nd byte: 57 */ 0x6e5b,
- /* 2nd byte: 58 */ 0x70ad,
- /* 2nd byte: 59 */ 0x77ed,
- /* 2nd byte: 60 */ 0x7aef,
- /* 2nd byte: 61 */ 0x7baa,
- /* 2nd byte: 62 */ 0x7dbb,
- /* 2nd byte: 63 */ 0x803d,
- /* 2nd byte: 64 */ 0x80c6,
- /* 2nd byte: 65 */ 0x86cb,
- /* 2nd byte: 66 */ 0x8a95,
- /* 2nd byte: 67 */ 0x935b,
- /* 2nd byte: 68 */ 0x56e3,
- /* 2nd byte: 69 */ 0x58c7,
- /* 2nd byte: 70 */ 0x5f3e,
- /* 2nd byte: 71 */ 0x65ad,
- /* 2nd byte: 72 */ 0x6696,
- /* 2nd byte: 73 */ 0x6a80,
- /* 2nd byte: 74 */ 0x6bb5,
- /* 2nd byte: 75 */ 0x7537,
- /* 2nd byte: 76 */ 0x8ac7,
- /* 2nd byte: 77 */ 0x5024,
- /* 2nd byte: 78 */ 0x77e5,
- /* 2nd byte: 79 */ 0x5730,
- /* 2nd byte: 80 */ 0x5f1b,
- /* 2nd byte: 81 */ 0x6065,
- /* 2nd byte: 82 */ 0x667a,
- /* 2nd byte: 83 */ 0x6c60,
- /* 2nd byte: 84 */ 0x75f4,
- /* 2nd byte: 85 */ 0x7a1a,
- /* 2nd byte: 86 */ 0x7f6e,
- /* 2nd byte: 87 */ 0x81f4,
- /* 2nd byte: 88 */ 0x8718,
- /* 2nd byte: 89 */ 0x9045,
- /* 2nd byte: 90 */ 0x99b3,
- /* 2nd byte: 91 */ 0x7bc9,
- /* 2nd byte: 92 */ 0x755c,
- /* 2nd byte: 93 */ 0x7af9,
- /* 2nd byte: 94 */ 0x7b51,
- /* 2nd byte: 95 */ 0x84c4,
- /* 2nd byte: 96 */ 0x9010,
- /* 2nd byte: 97 */ 0x79e9,
- /* 2nd byte: 98 */ 0x7a92,
- /* 2nd byte: 99 */ 0x8336,
- /* 2nd byte: 100 */ 0x5ae1,
- /* 2nd byte: 101 */ 0x7740,
- /* 2nd byte: 102 */ 0x4e2d,
- /* 2nd byte: 103 */ 0x4ef2,
- /* 2nd byte: 104 */ 0x5b99,
- /* 2nd byte: 105 */ 0x5fe0,
- /* 2nd byte: 106 */ 0x62bd,
- /* 2nd byte: 107 */ 0x663c,
- /* 2nd byte: 108 */ 0x67f1,
- /* 2nd byte: 109 */ 0x6ce8,
- /* 2nd byte: 110 */ 0x866b,
- /* 2nd byte: 111 */ 0x8877,
- /* 2nd byte: 112 */ 0x8a3b,
- /* 2nd byte: 113 */ 0x914e,
- /* 2nd byte: 114 */ 0x92f3,
- /* 2nd byte: 115 */ 0x99d0,
- /* 2nd byte: 116 */ 0x6a17,
- /* 2nd byte: 117 */ 0x7026,
- /* 2nd byte: 118 */ 0x732a,
- /* 2nd byte: 119 */ 0x82e7,
- /* 2nd byte: 120 */ 0x8457,
- /* 2nd byte: 121 */ 0x8caf,
- /* 2nd byte: 122 */ 0x4e01,
- /* 2nd byte: 123 */ 0x5146,
- /* 2nd byte: 124 */ 0x51cb,
- /* 2nd byte: 125 */ 0x558b,
- /* 2nd byte: 126 */ 0x5bf5},
-/* 1st byte: 68 */ {
- /* 2nd byte: 33 */ 0x5e16,
- /* 2nd byte: 34 */ 0x5e33,
- /* 2nd byte: 35 */ 0x5e81,
- /* 2nd byte: 36 */ 0x5f14,
- /* 2nd byte: 37 */ 0x5f35,
- /* 2nd byte: 38 */ 0x5f6b,
- /* 2nd byte: 39 */ 0x5fb4,
- /* 2nd byte: 40 */ 0x61f2,
- /* 2nd byte: 41 */ 0x6311,
- /* 2nd byte: 42 */ 0x66a2,
- /* 2nd byte: 43 */ 0x671d,
- /* 2nd byte: 44 */ 0x6f6e,
- /* 2nd byte: 45 */ 0x7252,
- /* 2nd byte: 46 */ 0x753a,
- /* 2nd byte: 47 */ 0x773a,
- /* 2nd byte: 48 */ 0x8074,
- /* 2nd byte: 49 */ 0x8139,
- /* 2nd byte: 50 */ 0x8178,
- /* 2nd byte: 51 */ 0x8776,
- /* 2nd byte: 52 */ 0x8abf,
- /* 2nd byte: 53 */ 0x8adc,
- /* 2nd byte: 54 */ 0x8d85,
- /* 2nd byte: 55 */ 0x8df3,
- /* 2nd byte: 56 */ 0x929a,
- /* 2nd byte: 57 */ 0x9577,
- /* 2nd byte: 58 */ 0x9802,
- /* 2nd byte: 59 */ 0x9ce5,
- /* 2nd byte: 60 */ 0x52c5,
- /* 2nd byte: 61 */ 0x6357,
- /* 2nd byte: 62 */ 0x76f4,
- /* 2nd byte: 63 */ 0x6715,
- /* 2nd byte: 64 */ 0x6c88,
- /* 2nd byte: 65 */ 0x73cd,
- /* 2nd byte: 66 */ 0x8cc3,
- /* 2nd byte: 67 */ 0x93ae,
- /* 2nd byte: 68 */ 0x9673,
- /* 2nd byte: 69 */ 0x6d25,
- /* 2nd byte: 70 */ 0x589c,
- /* 2nd byte: 71 */ 0x690e,
- /* 2nd byte: 72 */ 0x69cc,
- /* 2nd byte: 73 */ 0x8ffd,
- /* 2nd byte: 74 */ 0x939a,
- /* 2nd byte: 75 */ 0x75db,
- /* 2nd byte: 76 */ 0x901a,
- /* 2nd byte: 77 */ 0x585a,
- /* 2nd byte: 78 */ 0x6802,
- /* 2nd byte: 79 */ 0x63b4,
- /* 2nd byte: 80 */ 0x69fb,
- /* 2nd byte: 81 */ 0x4f43,
- /* 2nd byte: 82 */ 0x6f2c,
- /* 2nd byte: 83 */ 0x67d8,
- /* 2nd byte: 84 */ 0x8fbb,
- /* 2nd byte: 85 */ 0x8526,
- /* 2nd byte: 86 */ 0x7db4,
- /* 2nd byte: 87 */ 0x9354,
- /* 2nd byte: 88 */ 0x693f,
- /* 2nd byte: 89 */ 0x6f70,
- /* 2nd byte: 90 */ 0x576a,
- /* 2nd byte: 91 */ 0x58f7,
- /* 2nd byte: 92 */ 0x5b2c,
- /* 2nd byte: 93 */ 0x7d2c,
- /* 2nd byte: 94 */ 0x722a,
- /* 2nd byte: 95 */ 0x540a,
- /* 2nd byte: 96 */ 0x91e3,
- /* 2nd byte: 97 */ 0x9db4,
- /* 2nd byte: 98 */ 0x4ead,
- /* 2nd byte: 99 */ 0x4f4e,
- /* 2nd byte: 100 */ 0x505c,
- /* 2nd byte: 101 */ 0x5075,
- /* 2nd byte: 102 */ 0x5243,
- /* 2nd byte: 103 */ 0x8c9e,
- /* 2nd byte: 104 */ 0x5448,
- /* 2nd byte: 105 */ 0x5824,
- /* 2nd byte: 106 */ 0x5b9a,
- /* 2nd byte: 107 */ 0x5e1d,
- /* 2nd byte: 108 */ 0x5e95,
- /* 2nd byte: 109 */ 0x5ead,
- /* 2nd byte: 110 */ 0x5ef7,
- /* 2nd byte: 111 */ 0x5f1f,
- /* 2nd byte: 112 */ 0x608c,
- /* 2nd byte: 113 */ 0x62b5,
- /* 2nd byte: 114 */ 0x633a,
- /* 2nd byte: 115 */ 0x63d0,
- /* 2nd byte: 116 */ 0x68af,
- /* 2nd byte: 117 */ 0x6c40,
- /* 2nd byte: 118 */ 0x7887,
- /* 2nd byte: 119 */ 0x798e,
- /* 2nd byte: 120 */ 0x7a0b,
- /* 2nd byte: 121 */ 0x7de0,
- /* 2nd byte: 122 */ 0x8247,
- /* 2nd byte: 123 */ 0x8a02,
- /* 2nd byte: 124 */ 0x8ae6,
- /* 2nd byte: 125 */ 0x8e44,
- /* 2nd byte: 126 */ 0x9013},
-/* 1st byte: 69 */ {
- /* 2nd byte: 33 */ 0x90b8,
- /* 2nd byte: 34 */ 0x912d,
- /* 2nd byte: 35 */ 0x91d8,
- /* 2nd byte: 36 */ 0x9f0e,
- /* 2nd byte: 37 */ 0x6ce5,
- /* 2nd byte: 38 */ 0x6458,
- /* 2nd byte: 39 */ 0x64e2,
- /* 2nd byte: 40 */ 0x6575,
- /* 2nd byte: 41 */ 0x6ef4,
- /* 2nd byte: 42 */ 0x7684,
- /* 2nd byte: 43 */ 0x7b1b,
- /* 2nd byte: 44 */ 0x9069,
- /* 2nd byte: 45 */ 0x93d1,
- /* 2nd byte: 46 */ 0x6eba,
- /* 2nd byte: 47 */ 0x54f2,
- /* 2nd byte: 48 */ 0x5fb9,
- /* 2nd byte: 49 */ 0x64a4,
- /* 2nd byte: 50 */ 0x8f4d,
- /* 2nd byte: 51 */ 0x8fed,
- /* 2nd byte: 52 */ 0x9244,
- /* 2nd byte: 53 */ 0x5178,
- /* 2nd byte: 54 */ 0x586b,
- /* 2nd byte: 55 */ 0x5929,
- /* 2nd byte: 56 */ 0x5c55,
- /* 2nd byte: 57 */ 0x5e97,
- /* 2nd byte: 58 */ 0x6dfb,
- /* 2nd byte: 59 */ 0x7e8f,
- /* 2nd byte: 60 */ 0x751c,
- /* 2nd byte: 61 */ 0x8cbc,
- /* 2nd byte: 62 */ 0x8ee2,
- /* 2nd byte: 63 */ 0x985b,
- /* 2nd byte: 64 */ 0x70b9,
- /* 2nd byte: 65 */ 0x4f1d,
- /* 2nd byte: 66 */ 0x6bbf,
- /* 2nd byte: 67 */ 0x6fb1,
- /* 2nd byte: 68 */ 0x7530,
- /* 2nd byte: 69 */ 0x96fb,
- /* 2nd byte: 70 */ 0x514e,
- /* 2nd byte: 71 */ 0x5410,
- /* 2nd byte: 72 */ 0x5835,
- /* 2nd byte: 73 */ 0x5857,
- /* 2nd byte: 74 */ 0x59ac,
- /* 2nd byte: 75 */ 0x5c60,
- /* 2nd byte: 76 */ 0x5f92,
- /* 2nd byte: 77 */ 0x6597,
- /* 2nd byte: 78 */ 0x675c,
- /* 2nd byte: 79 */ 0x6e21,
- /* 2nd byte: 80 */ 0x767b,
- /* 2nd byte: 81 */ 0x83df,
- /* 2nd byte: 82 */ 0x8ced,
- /* 2nd byte: 83 */ 0x9014,
- /* 2nd byte: 84 */ 0x90fd,
- /* 2nd byte: 85 */ 0x934d,
- /* 2nd byte: 86 */ 0x7825,
- /* 2nd byte: 87 */ 0x783a,
- /* 2nd byte: 88 */ 0x52aa,
- /* 2nd byte: 89 */ 0x5ea6,
- /* 2nd byte: 90 */ 0x571f,
- /* 2nd byte: 91 */ 0x5974,
- /* 2nd byte: 92 */ 0x6012,
- /* 2nd byte: 93 */ 0x5012,
- /* 2nd byte: 94 */ 0x515a,
- /* 2nd byte: 95 */ 0x51ac,
- /* 2nd byte: 96 */ 0x51cd,
- /* 2nd byte: 97 */ 0x5200,
- /* 2nd byte: 98 */ 0x5510,
- /* 2nd byte: 99 */ 0x5854,
- /* 2nd byte: 100 */ 0x5858,
- /* 2nd byte: 101 */ 0x5957,
- /* 2nd byte: 102 */ 0x5b95,
- /* 2nd byte: 103 */ 0x5cf6,
- /* 2nd byte: 104 */ 0x5d8b,
- /* 2nd byte: 105 */ 0x60bc,
- /* 2nd byte: 106 */ 0x6295,
- /* 2nd byte: 107 */ 0x642d,
- /* 2nd byte: 108 */ 0x6771,
- /* 2nd byte: 109 */ 0x6843,
- /* 2nd byte: 110 */ 0x68bc,
- /* 2nd byte: 111 */ 0x68df,
- /* 2nd byte: 112 */ 0x76d7,
- /* 2nd byte: 113 */ 0x6dd8,
- /* 2nd byte: 114 */ 0x6e6f,
- /* 2nd byte: 115 */ 0x6d9b,
- /* 2nd byte: 116 */ 0x706f,
- /* 2nd byte: 117 */ 0x71c8,
- /* 2nd byte: 118 */ 0x5f53,
- /* 2nd byte: 119 */ 0x75d8,
- /* 2nd byte: 120 */ 0x7977,
- /* 2nd byte: 121 */ 0x7b49,
- /* 2nd byte: 122 */ 0x7b54,
- /* 2nd byte: 123 */ 0x7b52,
- /* 2nd byte: 124 */ 0x7cd6,
- /* 2nd byte: 125 */ 0x7d71,
- /* 2nd byte: 126 */ 0x5230},
-/* 1st byte: 70 */ {
- /* 2nd byte: 33 */ 0x8463,
- /* 2nd byte: 34 */ 0x8569,
- /* 2nd byte: 35 */ 0x85e4,
- /* 2nd byte: 36 */ 0x8a0e,
- /* 2nd byte: 37 */ 0x8b04,
- /* 2nd byte: 38 */ 0x8c46,
- /* 2nd byte: 39 */ 0x8e0f,
- /* 2nd byte: 40 */ 0x9003,
- /* 2nd byte: 41 */ 0x900f,
- /* 2nd byte: 42 */ 0x9419,
- /* 2nd byte: 43 */ 0x9676,
- /* 2nd byte: 44 */ 0x982d,
- /* 2nd byte: 45 */ 0x9a30,
- /* 2nd byte: 46 */ 0x95d8,
- /* 2nd byte: 47 */ 0x50cd,
- /* 2nd byte: 48 */ 0x52d5,
- /* 2nd byte: 49 */ 0x540c,
- /* 2nd byte: 50 */ 0x5802,
- /* 2nd byte: 51 */ 0x5c0e,
- /* 2nd byte: 52 */ 0x61a7,
- /* 2nd byte: 53 */ 0x649e,
- /* 2nd byte: 54 */ 0x6d1e,
- /* 2nd byte: 55 */ 0x77b3,
- /* 2nd byte: 56 */ 0x7ae5,
- /* 2nd byte: 57 */ 0x80f4,
- /* 2nd byte: 58 */ 0x8404,
- /* 2nd byte: 59 */ 0x9053,
- /* 2nd byte: 60 */ 0x9285,
- /* 2nd byte: 61 */ 0x5ce0,
- /* 2nd byte: 62 */ 0x9d07,
- /* 2nd byte: 63 */ 0x533f,
- /* 2nd byte: 64 */ 0x5f97,
- /* 2nd byte: 65 */ 0x5fb3,
- /* 2nd byte: 66 */ 0x6d9c,
- /* 2nd byte: 67 */ 0x7279,
- /* 2nd byte: 68 */ 0x7763,
- /* 2nd byte: 69 */ 0x79bf,
- /* 2nd byte: 70 */ 0x7be4,
- /* 2nd byte: 71 */ 0x6bd2,
- /* 2nd byte: 72 */ 0x72ec,
- /* 2nd byte: 73 */ 0x8aad,
- /* 2nd byte: 74 */ 0x6803,
- /* 2nd byte: 75 */ 0x6a61,
- /* 2nd byte: 76 */ 0x51f8,
- /* 2nd byte: 77 */ 0x7a81,
- /* 2nd byte: 78 */ 0x6934,
- /* 2nd byte: 79 */ 0x5c4a,
- /* 2nd byte: 80 */ 0x9cf6,
- /* 2nd byte: 81 */ 0x82eb,
- /* 2nd byte: 82 */ 0x5bc5,
- /* 2nd byte: 83 */ 0x9149,
- /* 2nd byte: 84 */ 0x701e,
- /* 2nd byte: 85 */ 0x5678,
- /* 2nd byte: 86 */ 0x5c6f,
- /* 2nd byte: 87 */ 0x60c7,
- /* 2nd byte: 88 */ 0x6566,
- /* 2nd byte: 89 */ 0x6c8c,
- /* 2nd byte: 90 */ 0x8c5a,
- /* 2nd byte: 91 */ 0x9041,
- /* 2nd byte: 92 */ 0x9813,
- /* 2nd byte: 93 */ 0x5451,
- /* 2nd byte: 94 */ 0x66c7,
- /* 2nd byte: 95 */ 0x920d,
- /* 2nd byte: 96 */ 0x5948,
- /* 2nd byte: 97 */ 0x90a3,
- /* 2nd byte: 98 */ 0x5185,
- /* 2nd byte: 99 */ 0x4e4d,
- /* 2nd byte: 100 */ 0x51ea,
- /* 2nd byte: 101 */ 0x8599,
- /* 2nd byte: 102 */ 0x8b0e,
- /* 2nd byte: 103 */ 0x7058,
- /* 2nd byte: 104 */ 0x637a,
- /* 2nd byte: 105 */ 0x934b,
- /* 2nd byte: 106 */ 0x6962,
- /* 2nd byte: 107 */ 0x99b4,
- /* 2nd byte: 108 */ 0x7e04,
- /* 2nd byte: 109 */ 0x7577,
- /* 2nd byte: 110 */ 0x5357,
- /* 2nd byte: 111 */ 0x6960,
- /* 2nd byte: 112 */ 0x8edf,
- /* 2nd byte: 113 */ 0x96e3,
- /* 2nd byte: 114 */ 0x6c5d,
- /* 2nd byte: 115 */ 0x4e8c,
- /* 2nd byte: 116 */ 0x5c3c,
- /* 2nd byte: 117 */ 0x5f10,
- /* 2nd byte: 118 */ 0x8fe9,
- /* 2nd byte: 119 */ 0x5302,
- /* 2nd byte: 120 */ 0x8cd1,
- /* 2nd byte: 121 */ 0x8089,
- /* 2nd byte: 122 */ 0x8679,
- /* 2nd byte: 123 */ 0x5eff,
- /* 2nd byte: 124 */ 0x65e5,
- /* 2nd byte: 125 */ 0x4e73,
- /* 2nd byte: 126 */ 0x5165},
-/* 1st byte: 71 */ {
- /* 2nd byte: 33 */ 0x5982,
- /* 2nd byte: 34 */ 0x5c3f,
- /* 2nd byte: 35 */ 0x97ee,
- /* 2nd byte: 36 */ 0x4efb,
- /* 2nd byte: 37 */ 0x598a,
- /* 2nd byte: 38 */ 0x5fcd,
- /* 2nd byte: 39 */ 0x8a8d,
- /* 2nd byte: 40 */ 0x6fe1,
- /* 2nd byte: 41 */ 0x79b0,
- /* 2nd byte: 42 */ 0x7962,
- /* 2nd byte: 43 */ 0x5be7,
- /* 2nd byte: 44 */ 0x8471,
- /* 2nd byte: 45 */ 0x732b,
- /* 2nd byte: 46 */ 0x71b1,
- /* 2nd byte: 47 */ 0x5e74,
- /* 2nd byte: 48 */ 0x5ff5,
- /* 2nd byte: 49 */ 0x637b,
- /* 2nd byte: 50 */ 0x649a,
- /* 2nd byte: 51 */ 0x71c3,
- /* 2nd byte: 52 */ 0x7c98,
- /* 2nd byte: 53 */ 0x4e43,
- /* 2nd byte: 54 */ 0x5efc,
- /* 2nd byte: 55 */ 0x4e4b,
- /* 2nd byte: 56 */ 0x57dc,
- /* 2nd byte: 57 */ 0x56a2,
- /* 2nd byte: 58 */ 0x60a9,
- /* 2nd byte: 59 */ 0x6fc3,
- /* 2nd byte: 60 */ 0x7d0d,
- /* 2nd byte: 61 */ 0x80fd,
- /* 2nd byte: 62 */ 0x8133,
- /* 2nd byte: 63 */ 0x81bf,
- /* 2nd byte: 64 */ 0x8fb2,
- /* 2nd byte: 65 */ 0x8997,
- /* 2nd byte: 66 */ 0x86a4,
- /* 2nd byte: 67 */ 0x5df4,
- /* 2nd byte: 68 */ 0x628a,
- /* 2nd byte: 69 */ 0x64ad,
- /* 2nd byte: 70 */ 0x8987,
- /* 2nd byte: 71 */ 0x6777,
- /* 2nd byte: 72 */ 0x6ce2,
- /* 2nd byte: 73 */ 0x6d3e,
- /* 2nd byte: 74 */ 0x7436,
- /* 2nd byte: 75 */ 0x7834,
- /* 2nd byte: 76 */ 0x5a46,
- /* 2nd byte: 77 */ 0x7f75,
- /* 2nd byte: 78 */ 0x82ad,
- /* 2nd byte: 79 */ 0x99ac,
- /* 2nd byte: 80 */ 0x4ff3,
- /* 2nd byte: 81 */ 0x5ec3,
- /* 2nd byte: 82 */ 0x62dd,
- /* 2nd byte: 83 */ 0x6392,
- /* 2nd byte: 84 */ 0x6557,
- /* 2nd byte: 85 */ 0x676f,
- /* 2nd byte: 86 */ 0x76c3,
- /* 2nd byte: 87 */ 0x724c,
- /* 2nd byte: 88 */ 0x80cc,
- /* 2nd byte: 89 */ 0x80ba,
- /* 2nd byte: 90 */ 0x8f29,
- /* 2nd byte: 91 */ 0x914d,
- /* 2nd byte: 92 */ 0x500d,
- /* 2nd byte: 93 */ 0x57f9,
- /* 2nd byte: 94 */ 0x5a92,
- /* 2nd byte: 95 */ 0x6885,
- /* 2nd byte: 96 */ 0x6973,
- /* 2nd byte: 97 */ 0x7164,
- /* 2nd byte: 98 */ 0x72fd,
- /* 2nd byte: 99 */ 0x8cb7,
- /* 2nd byte: 100 */ 0x58f2,
- /* 2nd byte: 101 */ 0x8ce0,
- /* 2nd byte: 102 */ 0x966a,
- /* 2nd byte: 103 */ 0x9019,
- /* 2nd byte: 104 */ 0x877f,
- /* 2nd byte: 105 */ 0x79e4,
- /* 2nd byte: 106 */ 0x77e7,
- /* 2nd byte: 107 */ 0x8429,
- /* 2nd byte: 108 */ 0x4f2f,
- /* 2nd byte: 109 */ 0x5265,
- /* 2nd byte: 110 */ 0x535a,
- /* 2nd byte: 111 */ 0x62cd,
- /* 2nd byte: 112 */ 0x67cf,
- /* 2nd byte: 113 */ 0x6cca,
- /* 2nd byte: 114 */ 0x767d,
- /* 2nd byte: 115 */ 0x7b94,
- /* 2nd byte: 116 */ 0x7c95,
- /* 2nd byte: 117 */ 0x8236,
- /* 2nd byte: 118 */ 0x8584,
- /* 2nd byte: 119 */ 0x8feb,
- /* 2nd byte: 120 */ 0x66dd,
- /* 2nd byte: 121 */ 0x6f20,
- /* 2nd byte: 122 */ 0x7206,
- /* 2nd byte: 123 */ 0x7e1b,
- /* 2nd byte: 124 */ 0x83ab,
- /* 2nd byte: 125 */ 0x99c1,
- /* 2nd byte: 126 */ 0x9ea6},
-/* 1st byte: 72 */ {
- /* 2nd byte: 33 */ 0x51fd,
- /* 2nd byte: 34 */ 0x7bb1,
- /* 2nd byte: 35 */ 0x7872,
- /* 2nd byte: 36 */ 0x7bb8,
- /* 2nd byte: 37 */ 0x8087,
- /* 2nd byte: 38 */ 0x7b48,
- /* 2nd byte: 39 */ 0x6ae8,
- /* 2nd byte: 40 */ 0x5e61,
- /* 2nd byte: 41 */ 0x808c,
- /* 2nd byte: 42 */ 0x7551,
- /* 2nd byte: 43 */ 0x7560,
- /* 2nd byte: 44 */ 0x516b,
- /* 2nd byte: 45 */ 0x9262,
- /* 2nd byte: 46 */ 0x6e8c,
- /* 2nd byte: 47 */ 0x767a,
- /* 2nd byte: 48 */ 0x9197,
- /* 2nd byte: 49 */ 0x9aea,
- /* 2nd byte: 50 */ 0x4f10,
- /* 2nd byte: 51 */ 0x7f70,
- /* 2nd byte: 52 */ 0x629c,
- /* 2nd byte: 53 */ 0x7b4f,
- /* 2nd byte: 54 */ 0x95a5,
- /* 2nd byte: 55 */ 0x9ce9,
- /* 2nd byte: 56 */ 0x567a,
- /* 2nd byte: 57 */ 0x5859,
- /* 2nd byte: 58 */ 0x86e4,
- /* 2nd byte: 59 */ 0x96bc,
- /* 2nd byte: 60 */ 0x4f34,
- /* 2nd byte: 61 */ 0x5224,
- /* 2nd byte: 62 */ 0x534a,
- /* 2nd byte: 63 */ 0x53cd,
- /* 2nd byte: 64 */ 0x53db,
- /* 2nd byte: 65 */ 0x5e06,
- /* 2nd byte: 66 */ 0x642c,
- /* 2nd byte: 67 */ 0x6591,
- /* 2nd byte: 68 */ 0x677f,
- /* 2nd byte: 69 */ 0x6c3e,
- /* 2nd byte: 70 */ 0x6c4e,
- /* 2nd byte: 71 */ 0x7248,
- /* 2nd byte: 72 */ 0x72af,
- /* 2nd byte: 73 */ 0x73ed,
- /* 2nd byte: 74 */ 0x7554,
- /* 2nd byte: 75 */ 0x7e41,
- /* 2nd byte: 76 */ 0x822c,
- /* 2nd byte: 77 */ 0x85e9,
- /* 2nd byte: 78 */ 0x8ca9,
- /* 2nd byte: 79 */ 0x7bc4,
- /* 2nd byte: 80 */ 0x91c6,
- /* 2nd byte: 81 */ 0x7169,
- /* 2nd byte: 82 */ 0x9812,
- /* 2nd byte: 83 */ 0x98ef,
- /* 2nd byte: 84 */ 0x633d,
- /* 2nd byte: 85 */ 0x6669,
- /* 2nd byte: 86 */ 0x756a,
- /* 2nd byte: 87 */ 0x76e4,
- /* 2nd byte: 88 */ 0x78d0,
- /* 2nd byte: 89 */ 0x8543,
- /* 2nd byte: 90 */ 0x86ee,
- /* 2nd byte: 91 */ 0x532a,
- /* 2nd byte: 92 */ 0x5351,
- /* 2nd byte: 93 */ 0x5426,
- /* 2nd byte: 94 */ 0x5983,
- /* 2nd byte: 95 */ 0x5e87,
- /* 2nd byte: 96 */ 0x5f7c,
- /* 2nd byte: 97 */ 0x60b2,
- /* 2nd byte: 98 */ 0x6249,
- /* 2nd byte: 99 */ 0x6279,
- /* 2nd byte: 100 */ 0x62ab,
- /* 2nd byte: 101 */ 0x6590,
- /* 2nd byte: 102 */ 0x6bd4,
- /* 2nd byte: 103 */ 0x6ccc,
- /* 2nd byte: 104 */ 0x75b2,
- /* 2nd byte: 105 */ 0x76ae,
- /* 2nd byte: 106 */ 0x7891,
- /* 2nd byte: 107 */ 0x79d8,
- /* 2nd byte: 108 */ 0x7dcb,
- /* 2nd byte: 109 */ 0x7f77,
- /* 2nd byte: 110 */ 0x80a5,
- /* 2nd byte: 111 */ 0x88ab,
- /* 2nd byte: 112 */ 0x8ab9,
- /* 2nd byte: 113 */ 0x8cbb,
- /* 2nd byte: 114 */ 0x907f,
- /* 2nd byte: 115 */ 0x975e,
- /* 2nd byte: 116 */ 0x98db,
- /* 2nd byte: 117 */ 0x6a0b,
- /* 2nd byte: 118 */ 0x7c38,
- /* 2nd byte: 119 */ 0x5099,
- /* 2nd byte: 120 */ 0x5c3e,
- /* 2nd byte: 121 */ 0x5fae,
- /* 2nd byte: 122 */ 0x6787,
- /* 2nd byte: 123 */ 0x6bd8,
- /* 2nd byte: 124 */ 0x7435,
- /* 2nd byte: 125 */ 0x7709,
- /* 2nd byte: 126 */ 0x7f8e},
-/* 1st byte: 73 */ {
- /* 2nd byte: 33 */ 0x9f3b,
- /* 2nd byte: 34 */ 0x67ca,
- /* 2nd byte: 35 */ 0x7a17,
- /* 2nd byte: 36 */ 0x5339,
- /* 2nd byte: 37 */ 0x758b,
- /* 2nd byte: 38 */ 0x9aed,
- /* 2nd byte: 39 */ 0x5f66,
- /* 2nd byte: 40 */ 0x819d,
- /* 2nd byte: 41 */ 0x83f1,
- /* 2nd byte: 42 */ 0x8098,
- /* 2nd byte: 43 */ 0x5f3c,
- /* 2nd byte: 44 */ 0x5fc5,
- /* 2nd byte: 45 */ 0x7562,
- /* 2nd byte: 46 */ 0x7b46,
- /* 2nd byte: 47 */ 0x903c,
- /* 2nd byte: 48 */ 0x6867,
- /* 2nd byte: 49 */ 0x59eb,
- /* 2nd byte: 50 */ 0x5a9b,
- /* 2nd byte: 51 */ 0x7d10,
- /* 2nd byte: 52 */ 0x767e,
- /* 2nd byte: 53 */ 0x8b2c,
- /* 2nd byte: 54 */ 0x4ff5,
- /* 2nd byte: 55 */ 0x5f6a,
- /* 2nd byte: 56 */ 0x6a19,
- /* 2nd byte: 57 */ 0x6c37,
- /* 2nd byte: 58 */ 0x6f02,
- /* 2nd byte: 59 */ 0x74e2,
- /* 2nd byte: 60 */ 0x7968,
- /* 2nd byte: 61 */ 0x8868,
- /* 2nd byte: 62 */ 0x8a55,
- /* 2nd byte: 63 */ 0x8c79,
- /* 2nd byte: 64 */ 0x5edf,
- /* 2nd byte: 65 */ 0x63cf,
- /* 2nd byte: 66 */ 0x75c5,
- /* 2nd byte: 67 */ 0x79d2,
- /* 2nd byte: 68 */ 0x82d7,
- /* 2nd byte: 69 */ 0x9328,
- /* 2nd byte: 70 */ 0x92f2,
- /* 2nd byte: 71 */ 0x849c,
- /* 2nd byte: 72 */ 0x86ed,
- /* 2nd byte: 73 */ 0x9c2d,
- /* 2nd byte: 74 */ 0x54c1,
- /* 2nd byte: 75 */ 0x5f6c,
- /* 2nd byte: 76 */ 0x658c,
- /* 2nd byte: 77 */ 0x6d5c,
- /* 2nd byte: 78 */ 0x7015,
- /* 2nd byte: 79 */ 0x8ca7,
- /* 2nd byte: 80 */ 0x8cd3,
- /* 2nd byte: 81 */ 0x983b,
- /* 2nd byte: 82 */ 0x654f,
- /* 2nd byte: 83 */ 0x74f6,
- /* 2nd byte: 84 */ 0x4e0d,
- /* 2nd byte: 85 */ 0x4ed8,
- /* 2nd byte: 86 */ 0x57e0,
- /* 2nd byte: 87 */ 0x592b,
- /* 2nd byte: 88 */ 0x5a66,
- /* 2nd byte: 89 */ 0x5bcc,
- /* 2nd byte: 90 */ 0x51a8,
- /* 2nd byte: 91 */ 0x5e03,
- /* 2nd byte: 92 */ 0x5e9c,
- /* 2nd byte: 93 */ 0x6016,
- /* 2nd byte: 94 */ 0x6276,
- /* 2nd byte: 95 */ 0x6577,
- /* 2nd byte: 96 */ 0x65a7,
- /* 2nd byte: 97 */ 0x666e,
- /* 2nd byte: 98 */ 0x6d6e,
- /* 2nd byte: 99 */ 0x7236,
- /* 2nd byte: 100 */ 0x7b26,
- /* 2nd byte: 101 */ 0x8150,
- /* 2nd byte: 102 */ 0x819a,
- /* 2nd byte: 103 */ 0x8299,
- /* 2nd byte: 104 */ 0x8b5c,
- /* 2nd byte: 105 */ 0x8ca0,
- /* 2nd byte: 106 */ 0x8ce6,
- /* 2nd byte: 107 */ 0x8d74,
- /* 2nd byte: 108 */ 0x961c,
- /* 2nd byte: 109 */ 0x9644,
- /* 2nd byte: 110 */ 0x4fae,
- /* 2nd byte: 111 */ 0x64ab,
- /* 2nd byte: 112 */ 0x6b66,
- /* 2nd byte: 113 */ 0x821e,
- /* 2nd byte: 114 */ 0x8461,
- /* 2nd byte: 115 */ 0x856a,
- /* 2nd byte: 116 */ 0x90e8,
- /* 2nd byte: 117 */ 0x5c01,
- /* 2nd byte: 118 */ 0x6953,
- /* 2nd byte: 119 */ 0x98a8,
- /* 2nd byte: 120 */ 0x847a,
- /* 2nd byte: 121 */ 0x8557,
- /* 2nd byte: 122 */ 0x4f0f,
- /* 2nd byte: 123 */ 0x526f,
- /* 2nd byte: 124 */ 0x5fa9,
- /* 2nd byte: 125 */ 0x5e45,
- /* 2nd byte: 126 */ 0x670d},
-/* 1st byte: 74 */ {
- /* 2nd byte: 33 */ 0x798f,
- /* 2nd byte: 34 */ 0x8179,
- /* 2nd byte: 35 */ 0x8907,
- /* 2nd byte: 36 */ 0x8986,
- /* 2nd byte: 37 */ 0x6df5,
- /* 2nd byte: 38 */ 0x5f17,
- /* 2nd byte: 39 */ 0x6255,
- /* 2nd byte: 40 */ 0x6cb8,
- /* 2nd byte: 41 */ 0x4ecf,
- /* 2nd byte: 42 */ 0x7269,
- /* 2nd byte: 43 */ 0x9b92,
- /* 2nd byte: 44 */ 0x5206,
- /* 2nd byte: 45 */ 0x543b,
- /* 2nd byte: 46 */ 0x5674,
- /* 2nd byte: 47 */ 0x58b3,
- /* 2nd byte: 48 */ 0x61a4,
- /* 2nd byte: 49 */ 0x626e,
- /* 2nd byte: 50 */ 0x711a,
- /* 2nd byte: 51 */ 0x596e,
- /* 2nd byte: 52 */ 0x7c89,
- /* 2nd byte: 53 */ 0x7cde,
- /* 2nd byte: 54 */ 0x7d1b,
- /* 2nd byte: 55 */ 0x96f0,
- /* 2nd byte: 56 */ 0x6587,
- /* 2nd byte: 57 */ 0x805e,
- /* 2nd byte: 58 */ 0x4e19,
- /* 2nd byte: 59 */ 0x4f75,
- /* 2nd byte: 60 */ 0x5175,
- /* 2nd byte: 61 */ 0x5840,
- /* 2nd byte: 62 */ 0x5e63,
- /* 2nd byte: 63 */ 0x5e73,
- /* 2nd byte: 64 */ 0x5f0a,
- /* 2nd byte: 65 */ 0x67c4,
- /* 2nd byte: 66 */ 0x4e26,
- /* 2nd byte: 67 */ 0x853d,
- /* 2nd byte: 68 */ 0x9589,
- /* 2nd byte: 69 */ 0x965b,
- /* 2nd byte: 70 */ 0x7c73,
- /* 2nd byte: 71 */ 0x9801,
- /* 2nd byte: 72 */ 0x50fb,
- /* 2nd byte: 73 */ 0x58c1,
- /* 2nd byte: 74 */ 0x7656,
- /* 2nd byte: 75 */ 0x78a7,
- /* 2nd byte: 76 */ 0x5225,
- /* 2nd byte: 77 */ 0x77a5,
- /* 2nd byte: 78 */ 0x8511,
- /* 2nd byte: 79 */ 0x7b86,
- /* 2nd byte: 80 */ 0x504f,
- /* 2nd byte: 81 */ 0x5909,
- /* 2nd byte: 82 */ 0x7247,
- /* 2nd byte: 83 */ 0x7bc7,
- /* 2nd byte: 84 */ 0x7de8,
- /* 2nd byte: 85 */ 0x8fba,
- /* 2nd byte: 86 */ 0x8fd4,
- /* 2nd byte: 87 */ 0x904d,
- /* 2nd byte: 88 */ 0x4fbf,
- /* 2nd byte: 89 */ 0x52c9,
- /* 2nd byte: 90 */ 0x5a29,
- /* 2nd byte: 91 */ 0x5f01,
- /* 2nd byte: 92 */ 0x97ad,
- /* 2nd byte: 93 */ 0x4fdd,
- /* 2nd byte: 94 */ 0x8217,
- /* 2nd byte: 95 */ 0x92ea,
- /* 2nd byte: 96 */ 0x5703,
- /* 2nd byte: 97 */ 0x6355,
- /* 2nd byte: 98 */ 0x6b69,
- /* 2nd byte: 99 */ 0x752b,
- /* 2nd byte: 100 */ 0x88dc,
- /* 2nd byte: 101 */ 0x8f14,
- /* 2nd byte: 102 */ 0x7a42,
- /* 2nd byte: 103 */ 0x52df,
- /* 2nd byte: 104 */ 0x5893,
- /* 2nd byte: 105 */ 0x6155,
- /* 2nd byte: 106 */ 0x620a,
- /* 2nd byte: 107 */ 0x66ae,
- /* 2nd byte: 108 */ 0x6bcd,
- /* 2nd byte: 109 */ 0x7c3f,
- /* 2nd byte: 110 */ 0x83e9,
- /* 2nd byte: 111 */ 0x5023,
- /* 2nd byte: 112 */ 0x4ff8,
- /* 2nd byte: 113 */ 0x5305,
- /* 2nd byte: 114 */ 0x5446,
- /* 2nd byte: 115 */ 0x5831,
- /* 2nd byte: 116 */ 0x5949,
- /* 2nd byte: 117 */ 0x5b9d,
- /* 2nd byte: 118 */ 0x5cf0,
- /* 2nd byte: 119 */ 0x5cef,
- /* 2nd byte: 120 */ 0x5d29,
- /* 2nd byte: 121 */ 0x5e96,
- /* 2nd byte: 122 */ 0x62b1,
- /* 2nd byte: 123 */ 0x6367,
- /* 2nd byte: 124 */ 0x653e,
- /* 2nd byte: 125 */ 0x65b9,
- /* 2nd byte: 126 */ 0x670b},
-/* 1st byte: 75 */ {
- /* 2nd byte: 33 */ 0x6cd5,
- /* 2nd byte: 34 */ 0x6ce1,
- /* 2nd byte: 35 */ 0x70f9,
- /* 2nd byte: 36 */ 0x7832,
- /* 2nd byte: 37 */ 0x7e2b,
- /* 2nd byte: 38 */ 0x80de,
- /* 2nd byte: 39 */ 0x82b3,
- /* 2nd byte: 40 */ 0x840c,
- /* 2nd byte: 41 */ 0x84ec,
- /* 2nd byte: 42 */ 0x8702,
- /* 2nd byte: 43 */ 0x8912,
- /* 2nd byte: 44 */ 0x8a2a,
- /* 2nd byte: 45 */ 0x8c4a,
- /* 2nd byte: 46 */ 0x90a6,
- /* 2nd byte: 47 */ 0x92d2,
- /* 2nd byte: 48 */ 0x98fd,
- /* 2nd byte: 49 */ 0x9cf3,
- /* 2nd byte: 50 */ 0x9d6c,
- /* 2nd byte: 51 */ 0x4e4f,
- /* 2nd byte: 52 */ 0x4ea1,
- /* 2nd byte: 53 */ 0x508d,
- /* 2nd byte: 54 */ 0x5256,
- /* 2nd byte: 55 */ 0x574a,
- /* 2nd byte: 56 */ 0x59a8,
- /* 2nd byte: 57 */ 0x5e3d,
- /* 2nd byte: 58 */ 0x5fd8,
- /* 2nd byte: 59 */ 0x5fd9,
- /* 2nd byte: 60 */ 0x623f,
- /* 2nd byte: 61 */ 0x66b4,
- /* 2nd byte: 62 */ 0x671b,
- /* 2nd byte: 63 */ 0x67d0,
- /* 2nd byte: 64 */ 0x68d2,
- /* 2nd byte: 65 */ 0x5192,
- /* 2nd byte: 66 */ 0x7d21,
- /* 2nd byte: 67 */ 0x80aa,
- /* 2nd byte: 68 */ 0x81a8,
- /* 2nd byte: 69 */ 0x8b00,
- /* 2nd byte: 70 */ 0x8c8c,
- /* 2nd byte: 71 */ 0x8cbf,
- /* 2nd byte: 72 */ 0x927e,
- /* 2nd byte: 73 */ 0x9632,
- /* 2nd byte: 74 */ 0x5420,
- /* 2nd byte: 75 */ 0x982c,
- /* 2nd byte: 76 */ 0x5317,
- /* 2nd byte: 77 */ 0x50d5,
- /* 2nd byte: 78 */ 0x535c,
- /* 2nd byte: 79 */ 0x58a8,
- /* 2nd byte: 80 */ 0x64b2,
- /* 2nd byte: 81 */ 0x6734,
- /* 2nd byte: 82 */ 0x7267,
- /* 2nd byte: 83 */ 0x7766,
- /* 2nd byte: 84 */ 0x7a46,
- /* 2nd byte: 85 */ 0x91e6,
- /* 2nd byte: 86 */ 0x52c3,
- /* 2nd byte: 87 */ 0x6ca1,
- /* 2nd byte: 88 */ 0x6b86,
- /* 2nd byte: 89 */ 0x5800,
- /* 2nd byte: 90 */ 0x5e4c,
- /* 2nd byte: 91 */ 0x5954,
- /* 2nd byte: 92 */ 0x672c,
- /* 2nd byte: 93 */ 0x7ffb,
- /* 2nd byte: 94 */ 0x51e1,
- /* 2nd byte: 95 */ 0x76c6,
- /* 2nd byte: 96 */ 0x6469,
- /* 2nd byte: 97 */ 0x78e8,
- /* 2nd byte: 98 */ 0x9b54,
- /* 2nd byte: 99 */ 0x9ebb,
- /* 2nd byte: 100 */ 0x57cb,
- /* 2nd byte: 101 */ 0x59b9,
- /* 2nd byte: 102 */ 0x6627,
- /* 2nd byte: 103 */ 0x679a,
- /* 2nd byte: 104 */ 0x6bce,
- /* 2nd byte: 105 */ 0x54e9,
- /* 2nd byte: 106 */ 0x69d9,
- /* 2nd byte: 107 */ 0x5e55,
- /* 2nd byte: 108 */ 0x819c,
- /* 2nd byte: 109 */ 0x6795,
- /* 2nd byte: 110 */ 0x9baa,
- /* 2nd byte: 111 */ 0x67fe,
- /* 2nd byte: 112 */ 0x9c52,
- /* 2nd byte: 113 */ 0x685d,
- /* 2nd byte: 114 */ 0x4ea6,
- /* 2nd byte: 115 */ 0x4fe3,
- /* 2nd byte: 116 */ 0x53c8,
- /* 2nd byte: 117 */ 0x62b9,
- /* 2nd byte: 118 */ 0x672b,
- /* 2nd byte: 119 */ 0x6cab,
- /* 2nd byte: 120 */ 0x8fc4,
- /* 2nd byte: 121 */ 0x4fad,
- /* 2nd byte: 122 */ 0x7e6d,
- /* 2nd byte: 123 */ 0x9ebf,
- /* 2nd byte: 124 */ 0x4e07,
- /* 2nd byte: 125 */ 0x6162,
- /* 2nd byte: 126 */ 0x6e80},
-/* 1st byte: 76 */ {
- /* 2nd byte: 33 */ 0x6f2b,
- /* 2nd byte: 34 */ 0x8513,
- /* 2nd byte: 35 */ 0x5473,
- /* 2nd byte: 36 */ 0x672a,
- /* 2nd byte: 37 */ 0x9b45,
- /* 2nd byte: 38 */ 0x5df3,
- /* 2nd byte: 39 */ 0x7b95,
- /* 2nd byte: 40 */ 0x5cac,
- /* 2nd byte: 41 */ 0x5bc6,
- /* 2nd byte: 42 */ 0x871c,
- /* 2nd byte: 43 */ 0x6e4a,
- /* 2nd byte: 44 */ 0x84d1,
- /* 2nd byte: 45 */ 0x7a14,
- /* 2nd byte: 46 */ 0x8108,
- /* 2nd byte: 47 */ 0x5999,
- /* 2nd byte: 48 */ 0x7c8d,
- /* 2nd byte: 49 */ 0x6c11,
- /* 2nd byte: 50 */ 0x7720,
- /* 2nd byte: 51 */ 0x52d9,
- /* 2nd byte: 52 */ 0x5922,
- /* 2nd byte: 53 */ 0x7121,
- /* 2nd byte: 54 */ 0x725f,
- /* 2nd byte: 55 */ 0x77db,
- /* 2nd byte: 56 */ 0x9727,
- /* 2nd byte: 57 */ 0x9d61,
- /* 2nd byte: 58 */ 0x690b,
- /* 2nd byte: 59 */ 0x5a7f,
- /* 2nd byte: 60 */ 0x5a18,
- /* 2nd byte: 61 */ 0x51a5,
- /* 2nd byte: 62 */ 0x540d,
- /* 2nd byte: 63 */ 0x547d,
- /* 2nd byte: 64 */ 0x660e,
- /* 2nd byte: 65 */ 0x76df,
- /* 2nd byte: 66 */ 0x8ff7,
- /* 2nd byte: 67 */ 0x9298,
- /* 2nd byte: 68 */ 0x9cf4,
- /* 2nd byte: 69 */ 0x59ea,
- /* 2nd byte: 70 */ 0x725d,
- /* 2nd byte: 71 */ 0x6ec5,
- /* 2nd byte: 72 */ 0x514d,
- /* 2nd byte: 73 */ 0x68c9,
- /* 2nd byte: 74 */ 0x7dbf,
- /* 2nd byte: 75 */ 0x7dec,
- /* 2nd byte: 76 */ 0x9762,
- /* 2nd byte: 77 */ 0x9eba,
- /* 2nd byte: 78 */ 0x6478,
- /* 2nd byte: 79 */ 0x6a21,
- /* 2nd byte: 80 */ 0x8302,
- /* 2nd byte: 81 */ 0x5984,
- /* 2nd byte: 82 */ 0x5b5f,
- /* 2nd byte: 83 */ 0x6bdb,
- /* 2nd byte: 84 */ 0x731b,
- /* 2nd byte: 85 */ 0x76f2,
- /* 2nd byte: 86 */ 0x7db2,
- /* 2nd byte: 87 */ 0x8017,
- /* 2nd byte: 88 */ 0x8499,
- /* 2nd byte: 89 */ 0x5132,
- /* 2nd byte: 90 */ 0x6728,
- /* 2nd byte: 91 */ 0x9ed9,
- /* 2nd byte: 92 */ 0x76ee,
- /* 2nd byte: 93 */ 0x6762,
- /* 2nd byte: 94 */ 0x52ff,
- /* 2nd byte: 95 */ 0x9905,
- /* 2nd byte: 96 */ 0x5c24,
- /* 2nd byte: 97 */ 0x623b,
- /* 2nd byte: 98 */ 0x7c7e,
- /* 2nd byte: 99 */ 0x8cb0,
- /* 2nd byte: 100 */ 0x554f,
- /* 2nd byte: 101 */ 0x60b6,
- /* 2nd byte: 102 */ 0x7d0b,
- /* 2nd byte: 103 */ 0x9580,
- /* 2nd byte: 104 */ 0x5301,
- /* 2nd byte: 105 */ 0x4e5f,
- /* 2nd byte: 106 */ 0x51b6,
- /* 2nd byte: 107 */ 0x591c,
- /* 2nd byte: 108 */ 0x723a,
- /* 2nd byte: 109 */ 0x8036,
- /* 2nd byte: 110 */ 0x91ce,
- /* 2nd byte: 111 */ 0x5f25,
- /* 2nd byte: 112 */ 0x77e2,
- /* 2nd byte: 113 */ 0x5384,
- /* 2nd byte: 114 */ 0x5f79,
- /* 2nd byte: 115 */ 0x7d04,
- /* 2nd byte: 116 */ 0x85ac,
- /* 2nd byte: 117 */ 0x8a33,
- /* 2nd byte: 118 */ 0x8e8d,
- /* 2nd byte: 119 */ 0x9756,
- /* 2nd byte: 120 */ 0x67f3,
- /* 2nd byte: 121 */ 0x85ae,
- /* 2nd byte: 122 */ 0x9453,
- /* 2nd byte: 123 */ 0x6109,
- /* 2nd byte: 124 */ 0x6108,
- /* 2nd byte: 125 */ 0x6cb9,
- /* 2nd byte: 126 */ 0x7652},
-/* 1st byte: 77 */ {
- /* 2nd byte: 33 */ 0x8aed,
- /* 2nd byte: 34 */ 0x8f38,
- /* 2nd byte: 35 */ 0x552f,
- /* 2nd byte: 36 */ 0x4f51,
- /* 2nd byte: 37 */ 0x512a,
- /* 2nd byte: 38 */ 0x52c7,
- /* 2nd byte: 39 */ 0x53cb,
- /* 2nd byte: 40 */ 0x5ba5,
- /* 2nd byte: 41 */ 0x5e7d,
- /* 2nd byte: 42 */ 0x60a0,
- /* 2nd byte: 43 */ 0x6182,
- /* 2nd byte: 44 */ 0x63d6,
- /* 2nd byte: 45 */ 0x6709,
- /* 2nd byte: 46 */ 0x67da,
- /* 2nd byte: 47 */ 0x6e67,
- /* 2nd byte: 48 */ 0x6d8c,
- /* 2nd byte: 49 */ 0x7336,
- /* 2nd byte: 50 */ 0x7337,
- /* 2nd byte: 51 */ 0x7531,
- /* 2nd byte: 52 */ 0x7950,
- /* 2nd byte: 53 */ 0x88d5,
- /* 2nd byte: 54 */ 0x8a98,
- /* 2nd byte: 55 */ 0x904a,
- /* 2nd byte: 56 */ 0x9091,
- /* 2nd byte: 57 */ 0x90f5,
- /* 2nd byte: 58 */ 0x96c4,
- /* 2nd byte: 59 */ 0x878d,
- /* 2nd byte: 60 */ 0x5915,
- /* 2nd byte: 61 */ 0x4e88,
- /* 2nd byte: 62 */ 0x4f59,
- /* 2nd byte: 63 */ 0x4e0e,
- /* 2nd byte: 64 */ 0x8a89,
- /* 2nd byte: 65 */ 0x8f3f,
- /* 2nd byte: 66 */ 0x9810,
- /* 2nd byte: 67 */ 0x50ad,
- /* 2nd byte: 68 */ 0x5e7c,
- /* 2nd byte: 69 */ 0x5996,
- /* 2nd byte: 70 */ 0x5bb9,
- /* 2nd byte: 71 */ 0x5eb8,
- /* 2nd byte: 72 */ 0x63da,
- /* 2nd byte: 73 */ 0x63fa,
- /* 2nd byte: 74 */ 0x64c1,
- /* 2nd byte: 75 */ 0x66dc,
- /* 2nd byte: 76 */ 0x694a,
- /* 2nd byte: 77 */ 0x69d8,
- /* 2nd byte: 78 */ 0x6d0b,
- /* 2nd byte: 79 */ 0x6eb6,
- /* 2nd byte: 80 */ 0x7194,
- /* 2nd byte: 81 */ 0x7528,
- /* 2nd byte: 82 */ 0x7aaf,
- /* 2nd byte: 83 */ 0x7f8a,
- /* 2nd byte: 84 */ 0x8000,
- /* 2nd byte: 85 */ 0x8449,
- /* 2nd byte: 86 */ 0x84c9,
- /* 2nd byte: 87 */ 0x8981,
- /* 2nd byte: 88 */ 0x8b21,
- /* 2nd byte: 89 */ 0x8e0a,
- /* 2nd byte: 90 */ 0x9065,
- /* 2nd byte: 91 */ 0x967d,
- /* 2nd byte: 92 */ 0x990a,
- /* 2nd byte: 93 */ 0x617e,
- /* 2nd byte: 94 */ 0x6291,
- /* 2nd byte: 95 */ 0x6b32,
- /* 2nd byte: 96 */ 0x6c83,
- /* 2nd byte: 97 */ 0x6d74,
- /* 2nd byte: 98 */ 0x7fcc,
- /* 2nd byte: 99 */ 0x7ffc,
- /* 2nd byte: 100 */ 0x6dc0,
- /* 2nd byte: 101 */ 0x7f85,
- /* 2nd byte: 102 */ 0x87ba,
- /* 2nd byte: 103 */ 0x88f8,
- /* 2nd byte: 104 */ 0x6765,
- /* 2nd byte: 105 */ 0x83b1,
- /* 2nd byte: 106 */ 0x983c,
- /* 2nd byte: 107 */ 0x96f7,
- /* 2nd byte: 108 */ 0x6d1b,
- /* 2nd byte: 109 */ 0x7d61,
- /* 2nd byte: 110 */ 0x843d,
- /* 2nd byte: 111 */ 0x916a,
- /* 2nd byte: 112 */ 0x4e71,
- /* 2nd byte: 113 */ 0x5375,
- /* 2nd byte: 114 */ 0x5d50,
- /* 2nd byte: 115 */ 0x6b04,
- /* 2nd byte: 116 */ 0x6feb,
- /* 2nd byte: 117 */ 0x85cd,
- /* 2nd byte: 118 */ 0x862d,
- /* 2nd byte: 119 */ 0x89a7,
- /* 2nd byte: 120 */ 0x5229,
- /* 2nd byte: 121 */ 0x540f,
- /* 2nd byte: 122 */ 0x5c65,
- /* 2nd byte: 123 */ 0x674e,
- /* 2nd byte: 124 */ 0x68a8,
- /* 2nd byte: 125 */ 0x7406,
- /* 2nd byte: 126 */ 0x7483},
-/* 1st byte: 78 */ {
- /* 2nd byte: 33 */ 0x75e2,
- /* 2nd byte: 34 */ 0x88cf,
- /* 2nd byte: 35 */ 0x88e1,
- /* 2nd byte: 36 */ 0x91cc,
- /* 2nd byte: 37 */ 0x96e2,
- /* 2nd byte: 38 */ 0x9678,
- /* 2nd byte: 39 */ 0x5f8b,
- /* 2nd byte: 40 */ 0x7387,
- /* 2nd byte: 41 */ 0x7acb,
- /* 2nd byte: 42 */ 0x844e,
- /* 2nd byte: 43 */ 0x63a0,
- /* 2nd byte: 44 */ 0x7565,
- /* 2nd byte: 45 */ 0x5289,
- /* 2nd byte: 46 */ 0x6d41,
- /* 2nd byte: 47 */ 0x6e9c,
- /* 2nd byte: 48 */ 0x7409,
- /* 2nd byte: 49 */ 0x7559,
- /* 2nd byte: 50 */ 0x786b,
- /* 2nd byte: 51 */ 0x7c92,
- /* 2nd byte: 52 */ 0x9686,
- /* 2nd byte: 53 */ 0x7adc,
- /* 2nd byte: 54 */ 0x9f8d,
- /* 2nd byte: 55 */ 0x4fb6,
- /* 2nd byte: 56 */ 0x616e,
- /* 2nd byte: 57 */ 0x65c5,
- /* 2nd byte: 58 */ 0x865c,
- /* 2nd byte: 59 */ 0x4e86,
- /* 2nd byte: 60 */ 0x4eae,
- /* 2nd byte: 61 */ 0x50da,
- /* 2nd byte: 62 */ 0x4e21,
- /* 2nd byte: 63 */ 0x51cc,
- /* 2nd byte: 64 */ 0x5bee,
- /* 2nd byte: 65 */ 0x6599,
- /* 2nd byte: 66 */ 0x6881,
- /* 2nd byte: 67 */ 0x6dbc,
- /* 2nd byte: 68 */ 0x731f,
- /* 2nd byte: 69 */ 0x7642,
- /* 2nd byte: 70 */ 0x77ad,
- /* 2nd byte: 71 */ 0x7a1c,
- /* 2nd byte: 72 */ 0x7ce7,
- /* 2nd byte: 73 */ 0x826f,
- /* 2nd byte: 74 */ 0x8ad2,
- /* 2nd byte: 75 */ 0x907c,
- /* 2nd byte: 76 */ 0x91cf,
- /* 2nd byte: 77 */ 0x9675,
- /* 2nd byte: 78 */ 0x9818,
- /* 2nd byte: 79 */ 0x529b,
- /* 2nd byte: 80 */ 0x7dd1,
- /* 2nd byte: 81 */ 0x502b,
- /* 2nd byte: 82 */ 0x5398,
- /* 2nd byte: 83 */ 0x6797,
- /* 2nd byte: 84 */ 0x6dcb,
- /* 2nd byte: 85 */ 0x71d0,
- /* 2nd byte: 86 */ 0x7433,
- /* 2nd byte: 87 */ 0x81e8,
- /* 2nd byte: 88 */ 0x8f2a,
- /* 2nd byte: 89 */ 0x96a3,
- /* 2nd byte: 90 */ 0x9c57,
- /* 2nd byte: 91 */ 0x9e9f,
- /* 2nd byte: 92 */ 0x7460,
- /* 2nd byte: 93 */ 0x5841,
- /* 2nd byte: 94 */ 0x6d99,
- /* 2nd byte: 95 */ 0x7d2f,
- /* 2nd byte: 96 */ 0x985e,
- /* 2nd byte: 97 */ 0x4ee4,
- /* 2nd byte: 98 */ 0x4f36,
- /* 2nd byte: 99 */ 0x4f8b,
- /* 2nd byte: 100 */ 0x51b7,
- /* 2nd byte: 101 */ 0x52b1,
- /* 2nd byte: 102 */ 0x5dba,
- /* 2nd byte: 103 */ 0x601c,
- /* 2nd byte: 104 */ 0x73b2,
- /* 2nd byte: 105 */ 0x793c,
- /* 2nd byte: 106 */ 0x82d3,
- /* 2nd byte: 107 */ 0x9234,
- /* 2nd byte: 108 */ 0x96b7,
- /* 2nd byte: 109 */ 0x96f6,
- /* 2nd byte: 110 */ 0x970a,
- /* 2nd byte: 111 */ 0x9e97,
- /* 2nd byte: 112 */ 0x9f62,
- /* 2nd byte: 113 */ 0x66a6,
- /* 2nd byte: 114 */ 0x6b74,
- /* 2nd byte: 115 */ 0x5217,
- /* 2nd byte: 116 */ 0x52a3,
- /* 2nd byte: 117 */ 0x70c8,
- /* 2nd byte: 118 */ 0x88c2,
- /* 2nd byte: 119 */ 0x5ec9,
- /* 2nd byte: 120 */ 0x604b,
- /* 2nd byte: 121 */ 0x6190,
- /* 2nd byte: 122 */ 0x6f23,
- /* 2nd byte: 123 */ 0x7149,
- /* 2nd byte: 124 */ 0x7c3e,
- /* 2nd byte: 125 */ 0x7df4,
- /* 2nd byte: 126 */ 0x806f},
-/* 1st byte: 79 */ {
- /* 2nd byte: 33 */ 0x84ee,
- /* 2nd byte: 34 */ 0x9023,
- /* 2nd byte: 35 */ 0x932c,
- /* 2nd byte: 36 */ 0x5442,
- /* 2nd byte: 37 */ 0x9b6f,
- /* 2nd byte: 38 */ 0x6ad3,
- /* 2nd byte: 39 */ 0x7089,
- /* 2nd byte: 40 */ 0x8cc2,
- /* 2nd byte: 41 */ 0x8def,
- /* 2nd byte: 42 */ 0x9732,
- /* 2nd byte: 43 */ 0x52b4,
- /* 2nd byte: 44 */ 0x5a41,
- /* 2nd byte: 45 */ 0x5eca,
- /* 2nd byte: 46 */ 0x5f04,
- /* 2nd byte: 47 */ 0x6717,
- /* 2nd byte: 48 */ 0x697c,
- /* 2nd byte: 49 */ 0x6994,
- /* 2nd byte: 50 */ 0x6d6a,
- /* 2nd byte: 51 */ 0x6f0f,
- /* 2nd byte: 52 */ 0x7262,
- /* 2nd byte: 53 */ 0x72fc,
- /* 2nd byte: 54 */ 0x7bed,
- /* 2nd byte: 55 */ 0x8001,
- /* 2nd byte: 56 */ 0x807e,
- /* 2nd byte: 57 */ 0x874b,
- /* 2nd byte: 58 */ 0x90ce,
- /* 2nd byte: 59 */ 0x516d,
- /* 2nd byte: 60 */ 0x9e93,
- /* 2nd byte: 61 */ 0x7984,
- /* 2nd byte: 62 */ 0x808b,
- /* 2nd byte: 63 */ 0x9332,
- /* 2nd byte: 64 */ 0x8ad6,
- /* 2nd byte: 65 */ 0x502d,
- /* 2nd byte: 66 */ 0x548c,
- /* 2nd byte: 67 */ 0x8a71,
- /* 2nd byte: 68 */ 0x6b6a,
- /* 2nd byte: 69 */ 0x8cc4,
- /* 2nd byte: 70 */ 0x8107,
- /* 2nd byte: 71 */ 0x60d1,
- /* 2nd byte: 72 */ 0x67a0,
- /* 2nd byte: 73 */ 0x9df2,
- /* 2nd byte: 74 */ 0x4e99,
- /* 2nd byte: 75 */ 0x4e98,
- /* 2nd byte: 76 */ 0x9c10,
- /* 2nd byte: 77 */ 0x8a6b,
- /* 2nd byte: 78 */ 0x85c1,
- /* 2nd byte: 79 */ 0x8568,
- /* 2nd byte: 80 */ 0x6900,
- /* 2nd byte: 81 */ 0x6e7e,
- /* 2nd byte: 82 */ 0x7897,
- /* 2nd byte: 83 */ 0x8155,
- 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},
-/* 1st byte: 80 */ {
- /* 2nd byte: 33 */ 0x5f0c,
- /* 2nd byte: 34 */ 0x4e10,
- /* 2nd byte: 35 */ 0x4e15,
- /* 2nd byte: 36 */ 0x4e2a,
- /* 2nd byte: 37 */ 0x4e31,
- /* 2nd byte: 38 */ 0x4e36,
- /* 2nd byte: 39 */ 0x4e3c,
- /* 2nd byte: 40 */ 0x4e3f,
- /* 2nd byte: 41 */ 0x4e42,
- /* 2nd byte: 42 */ 0x4e56,
- /* 2nd byte: 43 */ 0x4e58,
- /* 2nd byte: 44 */ 0x4e82,
- /* 2nd byte: 45 */ 0x4e85,
- /* 2nd byte: 46 */ 0x8c6b,
- /* 2nd byte: 47 */ 0x4e8a,
- /* 2nd byte: 48 */ 0x8212,
- /* 2nd byte: 49 */ 0x5f0d,
- /* 2nd byte: 50 */ 0x4e8e,
- /* 2nd byte: 51 */ 0x4e9e,
- /* 2nd byte: 52 */ 0x4e9f,
- /* 2nd byte: 53 */ 0x4ea0,
- /* 2nd byte: 54 */ 0x4ea2,
- /* 2nd byte: 55 */ 0x4eb0,
- /* 2nd byte: 56 */ 0x4eb3,
- /* 2nd byte: 57 */ 0x4eb6,
- /* 2nd byte: 58 */ 0x4ece,
- /* 2nd byte: 59 */ 0x4ecd,
- /* 2nd byte: 60 */ 0x4ec4,
- /* 2nd byte: 61 */ 0x4ec6,
- /* 2nd byte: 62 */ 0x4ec2,
- /* 2nd byte: 63 */ 0x4ed7,
- /* 2nd byte: 64 */ 0x4ede,
- /* 2nd byte: 65 */ 0x4eed,
- /* 2nd byte: 66 */ 0x4edf,
- /* 2nd byte: 67 */ 0x4ef7,
- /* 2nd byte: 68 */ 0x4f09,
- /* 2nd byte: 69 */ 0x4f5a,
- /* 2nd byte: 70 */ 0x4f30,
- /* 2nd byte: 71 */ 0x4f5b,
- /* 2nd byte: 72 */ 0x4f5d,
- /* 2nd byte: 73 */ 0x4f57,
- /* 2nd byte: 74 */ 0x4f47,
- /* 2nd byte: 75 */ 0x4f76,
- /* 2nd byte: 76 */ 0x4f88,
- /* 2nd byte: 77 */ 0x4f8f,
- /* 2nd byte: 78 */ 0x4f98,
- /* 2nd byte: 79 */ 0x4f7b,
- /* 2nd byte: 80 */ 0x4f69,
- /* 2nd byte: 81 */ 0x4f70,
- /* 2nd byte: 82 */ 0x4f91,
- /* 2nd byte: 83 */ 0x4f6f,
- /* 2nd byte: 84 */ 0x4f86,
- /* 2nd byte: 85 */ 0x4f96,
- /* 2nd byte: 86 */ 0x5118,
- /* 2nd byte: 87 */ 0x4fd4,
- /* 2nd byte: 88 */ 0x4fdf,
- /* 2nd byte: 89 */ 0x4fce,
- /* 2nd byte: 90 */ 0x4fd8,
- /* 2nd byte: 91 */ 0x4fdb,
- /* 2nd byte: 92 */ 0x4fd1,
- /* 2nd byte: 93 */ 0x4fda,
- /* 2nd byte: 94 */ 0x4fd0,
- /* 2nd byte: 95 */ 0x4fe4,
- /* 2nd byte: 96 */ 0x4fe5,
- /* 2nd byte: 97 */ 0x501a,
- /* 2nd byte: 98 */ 0x5028,
- /* 2nd byte: 99 */ 0x5014,
- /* 2nd byte: 100 */ 0x502a,
- /* 2nd byte: 101 */ 0x5025,
- /* 2nd byte: 102 */ 0x5005,
- /* 2nd byte: 103 */ 0x4f1c,
- /* 2nd byte: 104 */ 0x4ff6,
- /* 2nd byte: 105 */ 0x5021,
- /* 2nd byte: 106 */ 0x5029,
- /* 2nd byte: 107 */ 0x502c,
- /* 2nd byte: 108 */ 0x4ffe,
- /* 2nd byte: 109 */ 0x4fef,
- /* 2nd byte: 110 */ 0x5011,
- /* 2nd byte: 111 */ 0x5006,
- /* 2nd byte: 112 */ 0x5043,
- /* 2nd byte: 113 */ 0x5047,
- /* 2nd byte: 114 */ 0x6703,
- /* 2nd byte: 115 */ 0x5055,
- /* 2nd byte: 116 */ 0x5050,
- /* 2nd byte: 117 */ 0x5048,
- /* 2nd byte: 118 */ 0x505a,
- /* 2nd byte: 119 */ 0x5056,
- /* 2nd byte: 120 */ 0x506c,
- /* 2nd byte: 121 */ 0x5078,
- /* 2nd byte: 122 */ 0x5080,
- /* 2nd byte: 123 */ 0x509a,
- /* 2nd byte: 124 */ 0x5085,
- /* 2nd byte: 125 */ 0x50b4,
- /* 2nd byte: 126 */ 0x50b2},
-/* 1st byte: 81 */ {
- /* 2nd byte: 33 */ 0x50c9,
- /* 2nd byte: 34 */ 0x50ca,
- /* 2nd byte: 35 */ 0x50b3,
- /* 2nd byte: 36 */ 0x50c2,
- /* 2nd byte: 37 */ 0x50d6,
- /* 2nd byte: 38 */ 0x50de,
- /* 2nd byte: 39 */ 0x50e5,
- /* 2nd byte: 40 */ 0x50ed,
- /* 2nd byte: 41 */ 0x50e3,
- /* 2nd byte: 42 */ 0x50ee,
- /* 2nd byte: 43 */ 0x50f9,
- /* 2nd byte: 44 */ 0x50f5,
- /* 2nd byte: 45 */ 0x5109,
- /* 2nd byte: 46 */ 0x5101,
- /* 2nd byte: 47 */ 0x5102,
- /* 2nd byte: 48 */ 0x5116,
- /* 2nd byte: 49 */ 0x5115,
- /* 2nd byte: 50 */ 0x5114,
- /* 2nd byte: 51 */ 0x511a,
- /* 2nd byte: 52 */ 0x5121,
- /* 2nd byte: 53 */ 0x513a,
- /* 2nd byte: 54 */ 0x5137,
- /* 2nd byte: 55 */ 0x513c,
- /* 2nd byte: 56 */ 0x513b,
- /* 2nd byte: 57 */ 0x513f,
- /* 2nd byte: 58 */ 0x5140,
- /* 2nd byte: 59 */ 0x5152,
- /* 2nd byte: 60 */ 0x514c,
- /* 2nd byte: 61 */ 0x5154,
- /* 2nd byte: 62 */ 0x5162,
- /* 2nd byte: 63 */ 0x7af8,
- /* 2nd byte: 64 */ 0x5169,
- /* 2nd byte: 65 */ 0x516a,
- /* 2nd byte: 66 */ 0x516e,
- /* 2nd byte: 67 */ 0x5180,
- /* 2nd byte: 68 */ 0x5182,
- /* 2nd byte: 69 */ 0x56d8,
- /* 2nd byte: 70 */ 0x518c,
- /* 2nd byte: 71 */ 0x5189,
- /* 2nd byte: 72 */ 0x518f,
- /* 2nd byte: 73 */ 0x5191,
- /* 2nd byte: 74 */ 0x5193,
- /* 2nd byte: 75 */ 0x5195,
- /* 2nd byte: 76 */ 0x5196,
- /* 2nd byte: 77 */ 0x51a4,
- /* 2nd byte: 78 */ 0x51a6,
- /* 2nd byte: 79 */ 0x51a2,
- /* 2nd byte: 80 */ 0x51a9,
- /* 2nd byte: 81 */ 0x51aa,
- /* 2nd byte: 82 */ 0x51ab,
- /* 2nd byte: 83 */ 0x51b3,
- /* 2nd byte: 84 */ 0x51b1,
- /* 2nd byte: 85 */ 0x51b2,
- /* 2nd byte: 86 */ 0x51b0,
- /* 2nd byte: 87 */ 0x51b5,
- /* 2nd byte: 88 */ 0x51bd,
- /* 2nd byte: 89 */ 0x51c5,
- /* 2nd byte: 90 */ 0x51c9,
- /* 2nd byte: 91 */ 0x51db,
- /* 2nd byte: 92 */ 0x51e0,
- /* 2nd byte: 93 */ 0x8655,
- /* 2nd byte: 94 */ 0x51e9,
- /* 2nd byte: 95 */ 0x51ed,
- /* 2nd byte: 96 */ 0x51f0,
- /* 2nd byte: 97 */ 0x51f5,
- /* 2nd byte: 98 */ 0x51fe,
- /* 2nd byte: 99 */ 0x5204,
- /* 2nd byte: 100 */ 0x520b,
- /* 2nd byte: 101 */ 0x5214,
- /* 2nd byte: 102 */ 0x520e,
- /* 2nd byte: 103 */ 0x5227,
- /* 2nd byte: 104 */ 0x522a,
- /* 2nd byte: 105 */ 0x522e,
- /* 2nd byte: 106 */ 0x5233,
- /* 2nd byte: 107 */ 0x5239,
- /* 2nd byte: 108 */ 0x524f,
- /* 2nd byte: 109 */ 0x5244,
- /* 2nd byte: 110 */ 0x524b,
- /* 2nd byte: 111 */ 0x524c,
- /* 2nd byte: 112 */ 0x525e,
- /* 2nd byte: 113 */ 0x5254,
- /* 2nd byte: 114 */ 0x526a,
- /* 2nd byte: 115 */ 0x5274,
- /* 2nd byte: 116 */ 0x5269,
- /* 2nd byte: 117 */ 0x5273,
- /* 2nd byte: 118 */ 0x527f,
- /* 2nd byte: 119 */ 0x527d,
- /* 2nd byte: 120 */ 0x528d,
- /* 2nd byte: 121 */ 0x5294,
- /* 2nd byte: 122 */ 0x5292,
- /* 2nd byte: 123 */ 0x5271,
- /* 2nd byte: 124 */ 0x5288,
- /* 2nd byte: 125 */ 0x5291,
- /* 2nd byte: 126 */ 0x8fa8},
-/* 1st byte: 82 */ {
- /* 2nd byte: 33 */ 0x8fa7,
- /* 2nd byte: 34 */ 0x52ac,
- /* 2nd byte: 35 */ 0x52ad,
- /* 2nd byte: 36 */ 0x52bc,
- /* 2nd byte: 37 */ 0x52b5,
- /* 2nd byte: 38 */ 0x52c1,
- /* 2nd byte: 39 */ 0x52cd,
- /* 2nd byte: 40 */ 0x52d7,
- /* 2nd byte: 41 */ 0x52de,
- /* 2nd byte: 42 */ 0x52e3,
- /* 2nd byte: 43 */ 0x52e6,
- /* 2nd byte: 44 */ 0x98ed,
- /* 2nd byte: 45 */ 0x52e0,
- /* 2nd byte: 46 */ 0x52f3,
- /* 2nd byte: 47 */ 0x52f5,
- /* 2nd byte: 48 */ 0x52f8,
- /* 2nd byte: 49 */ 0x52f9,
- /* 2nd byte: 50 */ 0x5306,
- /* 2nd byte: 51 */ 0x5308,
- /* 2nd byte: 52 */ 0x7538,
- /* 2nd byte: 53 */ 0x530d,
- /* 2nd byte: 54 */ 0x5310,
- /* 2nd byte: 55 */ 0x530f,
- /* 2nd byte: 56 */ 0x5315,
- /* 2nd byte: 57 */ 0x531a,
- /* 2nd byte: 58 */ 0x5323,
- /* 2nd byte: 59 */ 0x532f,
- /* 2nd byte: 60 */ 0x5331,
- /* 2nd byte: 61 */ 0x5333,
- /* 2nd byte: 62 */ 0x5338,
- /* 2nd byte: 63 */ 0x5340,
- /* 2nd byte: 64 */ 0x5346,
- /* 2nd byte: 65 */ 0x5345,
- /* 2nd byte: 66 */ 0x4e17,
- /* 2nd byte: 67 */ 0x5349,
- /* 2nd byte: 68 */ 0x534d,
- /* 2nd byte: 69 */ 0x51d6,
- /* 2nd byte: 70 */ 0x535e,
- /* 2nd byte: 71 */ 0x5369,
- /* 2nd byte: 72 */ 0x536e,
- /* 2nd byte: 73 */ 0x5918,
- /* 2nd byte: 74 */ 0x537b,
- /* 2nd byte: 75 */ 0x5377,
- /* 2nd byte: 76 */ 0x5382,
- /* 2nd byte: 77 */ 0x5396,
- /* 2nd byte: 78 */ 0x53a0,
- /* 2nd byte: 79 */ 0x53a6,
- /* 2nd byte: 80 */ 0x53a5,
- /* 2nd byte: 81 */ 0x53ae,
- /* 2nd byte: 82 */ 0x53b0,
- /* 2nd byte: 83 */ 0x53b6,
- /* 2nd byte: 84 */ 0x53c3,
- /* 2nd byte: 85 */ 0x7c12,
- /* 2nd byte: 86 */ 0x96d9,
- /* 2nd byte: 87 */ 0x53df,
- /* 2nd byte: 88 */ 0x66fc,
- /* 2nd byte: 89 */ 0x71ee,
- /* 2nd byte: 90 */ 0x53ee,
- /* 2nd byte: 91 */ 0x53e8,
- /* 2nd byte: 92 */ 0x53ed,
- /* 2nd byte: 93 */ 0x53fa,
- /* 2nd byte: 94 */ 0x5401,
- /* 2nd byte: 95 */ 0x543d,
- /* 2nd byte: 96 */ 0x5440,
- /* 2nd byte: 97 */ 0x542c,
- /* 2nd byte: 98 */ 0x542d,
- /* 2nd byte: 99 */ 0x543c,
- /* 2nd byte: 100 */ 0x542e,
- /* 2nd byte: 101 */ 0x5436,
- /* 2nd byte: 102 */ 0x5429,
- /* 2nd byte: 103 */ 0x541d,
- /* 2nd byte: 104 */ 0x544e,
- /* 2nd byte: 105 */ 0x548f,
- /* 2nd byte: 106 */ 0x5475,
- /* 2nd byte: 107 */ 0x548e,
- /* 2nd byte: 108 */ 0x545f,
- /* 2nd byte: 109 */ 0x5471,
- /* 2nd byte: 110 */ 0x5477,
- /* 2nd byte: 111 */ 0x5470,
- /* 2nd byte: 112 */ 0x5492,
- /* 2nd byte: 113 */ 0x547b,
- /* 2nd byte: 114 */ 0x5480,
- /* 2nd byte: 115 */ 0x5476,
- /* 2nd byte: 116 */ 0x5484,
- /* 2nd byte: 117 */ 0x5490,
- /* 2nd byte: 118 */ 0x5486,
- /* 2nd byte: 119 */ 0x54c7,
- /* 2nd byte: 120 */ 0x54a2,
- /* 2nd byte: 121 */ 0x54b8,
- /* 2nd byte: 122 */ 0x54a5,
- /* 2nd byte: 123 */ 0x54ac,
- /* 2nd byte: 124 */ 0x54c4,
- /* 2nd byte: 125 */ 0x54c8,
- /* 2nd byte: 126 */ 0x54a8},
-/* 1st byte: 83 */ {
- /* 2nd byte: 33 */ 0x54ab,
- /* 2nd byte: 34 */ 0x54c2,
- /* 2nd byte: 35 */ 0x54a4,
- /* 2nd byte: 36 */ 0x54be,
- /* 2nd byte: 37 */ 0x54bc,
- /* 2nd byte: 38 */ 0x54d8,
- /* 2nd byte: 39 */ 0x54e5,
- /* 2nd byte: 40 */ 0x54e6,
- /* 2nd byte: 41 */ 0x550f,
- /* 2nd byte: 42 */ 0x5514,
- /* 2nd byte: 43 */ 0x54fd,
- /* 2nd byte: 44 */ 0x54ee,
- /* 2nd byte: 45 */ 0x54ed,
- /* 2nd byte: 46 */ 0x54fa,
- /* 2nd byte: 47 */ 0x54e2,
- /* 2nd byte: 48 */ 0x5539,
- /* 2nd byte: 49 */ 0x5540,
- /* 2nd byte: 50 */ 0x5563,
- /* 2nd byte: 51 */ 0x554c,
- /* 2nd byte: 52 */ 0x552e,
- /* 2nd byte: 53 */ 0x555c,
- /* 2nd byte: 54 */ 0x5545,
- /* 2nd byte: 55 */ 0x5556,
- /* 2nd byte: 56 */ 0x5557,
- /* 2nd byte: 57 */ 0x5538,
- /* 2nd byte: 58 */ 0x5533,
- /* 2nd byte: 59 */ 0x555d,
- /* 2nd byte: 60 */ 0x5599,
- /* 2nd byte: 61 */ 0x5580,
- /* 2nd byte: 62 */ 0x54af,
- /* 2nd byte: 63 */ 0x558a,
- /* 2nd byte: 64 */ 0x559f,
- /* 2nd byte: 65 */ 0x557b,
- /* 2nd byte: 66 */ 0x557e,
- /* 2nd byte: 67 */ 0x5598,
- /* 2nd byte: 68 */ 0x559e,
- /* 2nd byte: 69 */ 0x55ae,
- /* 2nd byte: 70 */ 0x557c,
- /* 2nd byte: 71 */ 0x5583,
- /* 2nd byte: 72 */ 0x55a9,
- /* 2nd byte: 73 */ 0x5587,
- /* 2nd byte: 74 */ 0x55a8,
- /* 2nd byte: 75 */ 0x55da,
- /* 2nd byte: 76 */ 0x55c5,
- /* 2nd byte: 77 */ 0x55df,
- /* 2nd byte: 78 */ 0x55c4,
- /* 2nd byte: 79 */ 0x55dc,
- /* 2nd byte: 80 */ 0x55e4,
- /* 2nd byte: 81 */ 0x55d4,
- /* 2nd byte: 82 */ 0x5614,
- /* 2nd byte: 83 */ 0x55f7,
- /* 2nd byte: 84 */ 0x5616,
- /* 2nd byte: 85 */ 0x55fe,
- /* 2nd byte: 86 */ 0x55fd,
- /* 2nd byte: 87 */ 0x561b,
- /* 2nd byte: 88 */ 0x55f9,
- /* 2nd byte: 89 */ 0x564e,
- /* 2nd byte: 90 */ 0x5650,
- /* 2nd byte: 91 */ 0x71df,
- /* 2nd byte: 92 */ 0x5634,
- /* 2nd byte: 93 */ 0x5636,
- /* 2nd byte: 94 */ 0x5632,
- /* 2nd byte: 95 */ 0x5638,
- /* 2nd byte: 96 */ 0x566b,
- /* 2nd byte: 97 */ 0x5664,
- /* 2nd byte: 98 */ 0x562f,
- /* 2nd byte: 99 */ 0x566c,
- /* 2nd byte: 100 */ 0x566a,
- /* 2nd byte: 101 */ 0x5686,
- /* 2nd byte: 102 */ 0x5680,
- /* 2nd byte: 103 */ 0x568a,
- /* 2nd byte: 104 */ 0x56a0,
- /* 2nd byte: 105 */ 0x5694,
- /* 2nd byte: 106 */ 0x568f,
- /* 2nd byte: 107 */ 0x56a5,
- /* 2nd byte: 108 */ 0x56ae,
- /* 2nd byte: 109 */ 0x56b6,
- /* 2nd byte: 110 */ 0x56b4,
- /* 2nd byte: 111 */ 0x56c2,
- /* 2nd byte: 112 */ 0x56bc,
- /* 2nd byte: 113 */ 0x56c1,
- /* 2nd byte: 114 */ 0x56c3,
- /* 2nd byte: 115 */ 0x56c0,
- /* 2nd byte: 116 */ 0x56c8,
- /* 2nd byte: 117 */ 0x56ce,
- /* 2nd byte: 118 */ 0x56d1,
- /* 2nd byte: 119 */ 0x56d3,
- /* 2nd byte: 120 */ 0x56d7,
- /* 2nd byte: 121 */ 0x56ee,
- /* 2nd byte: 122 */ 0x56f9,
- /* 2nd byte: 123 */ 0x5700,
- /* 2nd byte: 124 */ 0x56ff,
- /* 2nd byte: 125 */ 0x5704,
- /* 2nd byte: 126 */ 0x5709},
-/* 1st byte: 84 */ {
- /* 2nd byte: 33 */ 0x5708,
- /* 2nd byte: 34 */ 0x570b,
- /* 2nd byte: 35 */ 0x570d,
- /* 2nd byte: 36 */ 0x5713,
- /* 2nd byte: 37 */ 0x5718,
- /* 2nd byte: 38 */ 0x5716,
- /* 2nd byte: 39 */ 0x55c7,
- /* 2nd byte: 40 */ 0x571c,
- /* 2nd byte: 41 */ 0x5726,
- /* 2nd byte: 42 */ 0x5737,
- /* 2nd byte: 43 */ 0x5738,
- /* 2nd byte: 44 */ 0x574e,
- /* 2nd byte: 45 */ 0x573b,
- /* 2nd byte: 46 */ 0x5740,
- /* 2nd byte: 47 */ 0x574f,
- /* 2nd byte: 48 */ 0x5769,
- /* 2nd byte: 49 */ 0x57c0,
- /* 2nd byte: 50 */ 0x5788,
- /* 2nd byte: 51 */ 0x5761,
- /* 2nd byte: 52 */ 0x577f,
- /* 2nd byte: 53 */ 0x5789,
- /* 2nd byte: 54 */ 0x5793,
- /* 2nd byte: 55 */ 0x57a0,
- /* 2nd byte: 56 */ 0x57b3,
- /* 2nd byte: 57 */ 0x57a4,
- /* 2nd byte: 58 */ 0x57aa,
- /* 2nd byte: 59 */ 0x57b0,
- /* 2nd byte: 60 */ 0x57c3,
- /* 2nd byte: 61 */ 0x57c6,
- /* 2nd byte: 62 */ 0x57d4,
- /* 2nd byte: 63 */ 0x57d2,
- /* 2nd byte: 64 */ 0x57d3,
- /* 2nd byte: 65 */ 0x580a,
- /* 2nd byte: 66 */ 0x57d6,
- /* 2nd byte: 67 */ 0x57e3,
- /* 2nd byte: 68 */ 0x580b,
- /* 2nd byte: 69 */ 0x5819,
- /* 2nd byte: 70 */ 0x581d,
- /* 2nd byte: 71 */ 0x5872,
- /* 2nd byte: 72 */ 0x5821,
- /* 2nd byte: 73 */ 0x5862,
- /* 2nd byte: 74 */ 0x584b,
- /* 2nd byte: 75 */ 0x5870,
- /* 2nd byte: 76 */ 0x6bc0,
- /* 2nd byte: 77 */ 0x5852,
- /* 2nd byte: 78 */ 0x583d,
- /* 2nd byte: 79 */ 0x5879,
- /* 2nd byte: 80 */ 0x5885,
- /* 2nd byte: 81 */ 0x58b9,
- /* 2nd byte: 82 */ 0x589f,
- /* 2nd byte: 83 */ 0x58ab,
- /* 2nd byte: 84 */ 0x58ba,
- /* 2nd byte: 85 */ 0x58de,
- /* 2nd byte: 86 */ 0x58bb,
- /* 2nd byte: 87 */ 0x58b8,
- /* 2nd byte: 88 */ 0x58ae,
- /* 2nd byte: 89 */ 0x58c5,
- /* 2nd byte: 90 */ 0x58d3,
- /* 2nd byte: 91 */ 0x58d1,
- /* 2nd byte: 92 */ 0x58d7,
- /* 2nd byte: 93 */ 0x58d9,
- /* 2nd byte: 94 */ 0x58d8,
- /* 2nd byte: 95 */ 0x58e5,
- /* 2nd byte: 96 */ 0x58dc,
- /* 2nd byte: 97 */ 0x58e4,
- /* 2nd byte: 98 */ 0x58df,
- /* 2nd byte: 99 */ 0x58ef,
- /* 2nd byte: 100 */ 0x58fa,
- /* 2nd byte: 101 */ 0x58f9,
- /* 2nd byte: 102 */ 0x58fb,
- /* 2nd byte: 103 */ 0x58fc,
- /* 2nd byte: 104 */ 0x58fd,
- /* 2nd byte: 105 */ 0x5902,
- /* 2nd byte: 106 */ 0x590a,
- /* 2nd byte: 107 */ 0x5910,
- /* 2nd byte: 108 */ 0x591b,
- /* 2nd byte: 109 */ 0x68a6,
- /* 2nd byte: 110 */ 0x5925,
- /* 2nd byte: 111 */ 0x592c,
- /* 2nd byte: 112 */ 0x592d,
- /* 2nd byte: 113 */ 0x5932,
- /* 2nd byte: 114 */ 0x5938,
- /* 2nd byte: 115 */ 0x593e,
- /* 2nd byte: 116 */ 0x7ad2,
- /* 2nd byte: 117 */ 0x5955,
- /* 2nd byte: 118 */ 0x5950,
- /* 2nd byte: 119 */ 0x594e,
- /* 2nd byte: 120 */ 0x595a,
- /* 2nd byte: 121 */ 0x5958,
- /* 2nd byte: 122 */ 0x5962,
- /* 2nd byte: 123 */ 0x5960,
- /* 2nd byte: 124 */ 0x5967,
- /* 2nd byte: 125 */ 0x596c,
- /* 2nd byte: 126 */ 0x5969},
-/* 1st byte: 85 */ {
- /* 2nd byte: 33 */ 0x5978,
- /* 2nd byte: 34 */ 0x5981,
- /* 2nd byte: 35 */ 0x599d,
- /* 2nd byte: 36 */ 0x4f5e,
- /* 2nd byte: 37 */ 0x4fab,
- /* 2nd byte: 38 */ 0x59a3,
- /* 2nd byte: 39 */ 0x59b2,
- /* 2nd byte: 40 */ 0x59c6,
- /* 2nd byte: 41 */ 0x59e8,
- /* 2nd byte: 42 */ 0x59dc,
- /* 2nd byte: 43 */ 0x598d,
- /* 2nd byte: 44 */ 0x59d9,
- /* 2nd byte: 45 */ 0x59da,
- /* 2nd byte: 46 */ 0x5a25,
- /* 2nd byte: 47 */ 0x5a1f,
- /* 2nd byte: 48 */ 0x5a11,
- /* 2nd byte: 49 */ 0x5a1c,
- /* 2nd byte: 50 */ 0x5a09,
- /* 2nd byte: 51 */ 0x5a1a,
- /* 2nd byte: 52 */ 0x5a40,
- /* 2nd byte: 53 */ 0x5a6c,
- /* 2nd byte: 54 */ 0x5a49,
- /* 2nd byte: 55 */ 0x5a35,
- /* 2nd byte: 56 */ 0x5a36,
- /* 2nd byte: 57 */ 0x5a62,
- /* 2nd byte: 58 */ 0x5a6a,
- /* 2nd byte: 59 */ 0x5a9a,
- /* 2nd byte: 60 */ 0x5abc,
- /* 2nd byte: 61 */ 0x5abe,
- /* 2nd byte: 62 */ 0x5acb,
- /* 2nd byte: 63 */ 0x5ac2,
- /* 2nd byte: 64 */ 0x5abd,
- /* 2nd byte: 65 */ 0x5ae3,
- /* 2nd byte: 66 */ 0x5ad7,
- /* 2nd byte: 67 */ 0x5ae6,
- /* 2nd byte: 68 */ 0x5ae9,
- /* 2nd byte: 69 */ 0x5ad6,
- /* 2nd byte: 70 */ 0x5afa,
- /* 2nd byte: 71 */ 0x5afb,
- /* 2nd byte: 72 */ 0x5b0c,
- /* 2nd byte: 73 */ 0x5b0b,
- /* 2nd byte: 74 */ 0x5b16,
- /* 2nd byte: 75 */ 0x5b32,
- /* 2nd byte: 76 */ 0x5ad0,
- /* 2nd byte: 77 */ 0x5b2a,
- /* 2nd byte: 78 */ 0x5b36,
- /* 2nd byte: 79 */ 0x5b3e,
- /* 2nd byte: 80 */ 0x5b43,
- /* 2nd byte: 81 */ 0x5b45,
- /* 2nd byte: 82 */ 0x5b40,
- /* 2nd byte: 83 */ 0x5b51,
- /* 2nd byte: 84 */ 0x5b55,
- /* 2nd byte: 85 */ 0x5b5a,
- /* 2nd byte: 86 */ 0x5b5b,
- /* 2nd byte: 87 */ 0x5b65,
- /* 2nd byte: 88 */ 0x5b69,
- /* 2nd byte: 89 */ 0x5b70,
- /* 2nd byte: 90 */ 0x5b73,
- /* 2nd byte: 91 */ 0x5b75,
- /* 2nd byte: 92 */ 0x5b78,
- /* 2nd byte: 93 */ 0x6588,
- /* 2nd byte: 94 */ 0x5b7a,
- /* 2nd byte: 95 */ 0x5b80,
- /* 2nd byte: 96 */ 0x5b83,
- /* 2nd byte: 97 */ 0x5ba6,
- /* 2nd byte: 98 */ 0x5bb8,
- /* 2nd byte: 99 */ 0x5bc3,
- /* 2nd byte: 100 */ 0x5bc7,
- /* 2nd byte: 101 */ 0x5bc9,
- /* 2nd byte: 102 */ 0x5bd4,
- /* 2nd byte: 103 */ 0x5bd0,
- /* 2nd byte: 104 */ 0x5be4,
- /* 2nd byte: 105 */ 0x5be6,
- /* 2nd byte: 106 */ 0x5be2,
- /* 2nd byte: 107 */ 0x5bde,
- /* 2nd byte: 108 */ 0x5be5,
- /* 2nd byte: 109 */ 0x5beb,
- /* 2nd byte: 110 */ 0x5bf0,
- /* 2nd byte: 111 */ 0x5bf6,
- /* 2nd byte: 112 */ 0x5bf3,
- /* 2nd byte: 113 */ 0x5c05,
- /* 2nd byte: 114 */ 0x5c07,
- /* 2nd byte: 115 */ 0x5c08,
- /* 2nd byte: 116 */ 0x5c0d,
- /* 2nd byte: 117 */ 0x5c13,
- /* 2nd byte: 118 */ 0x5c20,
- /* 2nd byte: 119 */ 0x5c22,
- /* 2nd byte: 120 */ 0x5c28,
- /* 2nd byte: 121 */ 0x5c38,
- /* 2nd byte: 122 */ 0x5c39,
- /* 2nd byte: 123 */ 0x5c41,
- /* 2nd byte: 124 */ 0x5c46,
- /* 2nd byte: 125 */ 0x5c4e,
- /* 2nd byte: 126 */ 0x5c53},
-/* 1st byte: 86 */ {
- /* 2nd byte: 33 */ 0x5c50,
- /* 2nd byte: 34 */ 0x5c4f,
- /* 2nd byte: 35 */ 0x5b71,
- /* 2nd byte: 36 */ 0x5c6c,
- /* 2nd byte: 37 */ 0x5c6e,
- /* 2nd byte: 38 */ 0x4e62,
- /* 2nd byte: 39 */ 0x5c76,
- /* 2nd byte: 40 */ 0x5c79,
- /* 2nd byte: 41 */ 0x5c8c,
- /* 2nd byte: 42 */ 0x5c91,
- /* 2nd byte: 43 */ 0x5c94,
- /* 2nd byte: 44 */ 0x599b,
- /* 2nd byte: 45 */ 0x5cab,
- /* 2nd byte: 46 */ 0x5cbb,
- /* 2nd byte: 47 */ 0x5cb6,
- /* 2nd byte: 48 */ 0x5cbc,
- /* 2nd byte: 49 */ 0x5cb7,
- /* 2nd byte: 50 */ 0x5cc5,
- /* 2nd byte: 51 */ 0x5cbe,
- /* 2nd byte: 52 */ 0x5cc7,
- /* 2nd byte: 53 */ 0x5cd9,
- /* 2nd byte: 54 */ 0x5ce9,
- /* 2nd byte: 55 */ 0x5cfd,
- /* 2nd byte: 56 */ 0x5cfa,
- /* 2nd byte: 57 */ 0x5ced,
- /* 2nd byte: 58 */ 0x5d8c,
- /* 2nd byte: 59 */ 0x5cea,
- /* 2nd byte: 60 */ 0x5d0b,
- /* 2nd byte: 61 */ 0x5d15,
- /* 2nd byte: 62 */ 0x5d17,
- /* 2nd byte: 63 */ 0x5d5c,
- /* 2nd byte: 64 */ 0x5d1f,
- /* 2nd byte: 65 */ 0x5d1b,
- /* 2nd byte: 66 */ 0x5d11,
- /* 2nd byte: 67 */ 0x5d14,
- /* 2nd byte: 68 */ 0x5d22,
- /* 2nd byte: 69 */ 0x5d1a,
- /* 2nd byte: 70 */ 0x5d19,
- /* 2nd byte: 71 */ 0x5d18,
- /* 2nd byte: 72 */ 0x5d4c,
- /* 2nd byte: 73 */ 0x5d52,
- /* 2nd byte: 74 */ 0x5d4e,
- /* 2nd byte: 75 */ 0x5d4b,
- /* 2nd byte: 76 */ 0x5d6c,
- /* 2nd byte: 77 */ 0x5d73,
- /* 2nd byte: 78 */ 0x5d76,
- /* 2nd byte: 79 */ 0x5d87,
- /* 2nd byte: 80 */ 0x5d84,
- /* 2nd byte: 81 */ 0x5d82,
- /* 2nd byte: 82 */ 0x5da2,
- /* 2nd byte: 83 */ 0x5d9d,
- /* 2nd byte: 84 */ 0x5dac,
- /* 2nd byte: 85 */ 0x5dae,
- /* 2nd byte: 86 */ 0x5dbd,
- /* 2nd byte: 87 */ 0x5d90,
- /* 2nd byte: 88 */ 0x5db7,
- /* 2nd byte: 89 */ 0x5dbc,
- /* 2nd byte: 90 */ 0x5dc9,
- /* 2nd byte: 91 */ 0x5dcd,
- /* 2nd byte: 92 */ 0x5dd3,
- /* 2nd byte: 93 */ 0x5dd2,
- /* 2nd byte: 94 */ 0x5dd6,
- /* 2nd byte: 95 */ 0x5ddb,
- /* 2nd byte: 96 */ 0x5deb,
- /* 2nd byte: 97 */ 0x5df2,
- /* 2nd byte: 98 */ 0x5df5,
- /* 2nd byte: 99 */ 0x5e0b,
- /* 2nd byte: 100 */ 0x5e1a,
- /* 2nd byte: 101 */ 0x5e19,
- /* 2nd byte: 102 */ 0x5e11,
- /* 2nd byte: 103 */ 0x5e1b,
- /* 2nd byte: 104 */ 0x5e36,
- /* 2nd byte: 105 */ 0x5e37,
- /* 2nd byte: 106 */ 0x5e44,
- /* 2nd byte: 107 */ 0x5e43,
- /* 2nd byte: 108 */ 0x5e40,
- /* 2nd byte: 109 */ 0x5e4e,
- /* 2nd byte: 110 */ 0x5e57,
- /* 2nd byte: 111 */ 0x5e54,
- /* 2nd byte: 112 */ 0x5e5f,
- /* 2nd byte: 113 */ 0x5e62,
- /* 2nd byte: 114 */ 0x5e64,
- /* 2nd byte: 115 */ 0x5e47,
- /* 2nd byte: 116 */ 0x5e75,
- /* 2nd byte: 117 */ 0x5e76,
- /* 2nd byte: 118 */ 0x5e7a,
- /* 2nd byte: 119 */ 0x9ebc,
- /* 2nd byte: 120 */ 0x5e7f,
- /* 2nd byte: 121 */ 0x5ea0,
- /* 2nd byte: 122 */ 0x5ec1,
- /* 2nd byte: 123 */ 0x5ec2,
- /* 2nd byte: 124 */ 0x5ec8,
- /* 2nd byte: 125 */ 0x5ed0,
- /* 2nd byte: 126 */ 0x5ecf},
-/* 1st byte: 87 */ {
- /* 2nd byte: 33 */ 0x5ed6,
- /* 2nd byte: 34 */ 0x5ee3,
- /* 2nd byte: 35 */ 0x5edd,
- /* 2nd byte: 36 */ 0x5eda,
- /* 2nd byte: 37 */ 0x5edb,
- /* 2nd byte: 38 */ 0x5ee2,
- /* 2nd byte: 39 */ 0x5ee1,
- /* 2nd byte: 40 */ 0x5ee8,
- /* 2nd byte: 41 */ 0x5ee9,
- /* 2nd byte: 42 */ 0x5eec,
- /* 2nd byte: 43 */ 0x5ef1,
- /* 2nd byte: 44 */ 0x5ef3,
- /* 2nd byte: 45 */ 0x5ef0,
- /* 2nd byte: 46 */ 0x5ef4,
- /* 2nd byte: 47 */ 0x5ef8,
- /* 2nd byte: 48 */ 0x5efe,
- /* 2nd byte: 49 */ 0x5f03,
- /* 2nd byte: 50 */ 0x5f09,
- /* 2nd byte: 51 */ 0x5f5d,
- /* 2nd byte: 52 */ 0x5f5c,
- /* 2nd byte: 53 */ 0x5f0b,
- /* 2nd byte: 54 */ 0x5f11,
- /* 2nd byte: 55 */ 0x5f16,
- /* 2nd byte: 56 */ 0x5f29,
- /* 2nd byte: 57 */ 0x5f2d,
- /* 2nd byte: 58 */ 0x5f38,
- /* 2nd byte: 59 */ 0x5f41,
- /* 2nd byte: 60 */ 0x5f48,
- /* 2nd byte: 61 */ 0x5f4c,
- /* 2nd byte: 62 */ 0x5f4e,
- /* 2nd byte: 63 */ 0x5f2f,
- /* 2nd byte: 64 */ 0x5f51,
- /* 2nd byte: 65 */ 0x5f56,
- /* 2nd byte: 66 */ 0x5f57,
- /* 2nd byte: 67 */ 0x5f59,
- /* 2nd byte: 68 */ 0x5f61,
- /* 2nd byte: 69 */ 0x5f6d,
- /* 2nd byte: 70 */ 0x5f73,
- /* 2nd byte: 71 */ 0x5f77,
- /* 2nd byte: 72 */ 0x5f83,
- /* 2nd byte: 73 */ 0x5f82,
- /* 2nd byte: 74 */ 0x5f7f,
- /* 2nd byte: 75 */ 0x5f8a,
- /* 2nd byte: 76 */ 0x5f88,
- /* 2nd byte: 77 */ 0x5f91,
- /* 2nd byte: 78 */ 0x5f87,
- /* 2nd byte: 79 */ 0x5f9e,
- /* 2nd byte: 80 */ 0x5f99,
- /* 2nd byte: 81 */ 0x5f98,
- /* 2nd byte: 82 */ 0x5fa0,
- /* 2nd byte: 83 */ 0x5fa8,
- /* 2nd byte: 84 */ 0x5fad,
- /* 2nd byte: 85 */ 0x5fbc,
- /* 2nd byte: 86 */ 0x5fd6,
- /* 2nd byte: 87 */ 0x5ffb,
- /* 2nd byte: 88 */ 0x5fe4,
- /* 2nd byte: 89 */ 0x5ff8,
- /* 2nd byte: 90 */ 0x5ff1,
- /* 2nd byte: 91 */ 0x5fdd,
- /* 2nd byte: 92 */ 0x60b3,
- /* 2nd byte: 93 */ 0x5fff,
- /* 2nd byte: 94 */ 0x6021,
- /* 2nd byte: 95 */ 0x6060,
- /* 2nd byte: 96 */ 0x6019,
- /* 2nd byte: 97 */ 0x6010,
- /* 2nd byte: 98 */ 0x6029,
- /* 2nd byte: 99 */ 0x600e,
- /* 2nd byte: 100 */ 0x6031,
- /* 2nd byte: 101 */ 0x601b,
- /* 2nd byte: 102 */ 0x6015,
- /* 2nd byte: 103 */ 0x602b,
- /* 2nd byte: 104 */ 0x6026,
- /* 2nd byte: 105 */ 0x600f,
- /* 2nd byte: 106 */ 0x603a,
- /* 2nd byte: 107 */ 0x605a,
- /* 2nd byte: 108 */ 0x6041,
- /* 2nd byte: 109 */ 0x606a,
- /* 2nd byte: 110 */ 0x6077,
- /* 2nd byte: 111 */ 0x605f,
- /* 2nd byte: 112 */ 0x604a,
- /* 2nd byte: 113 */ 0x6046,
- /* 2nd byte: 114 */ 0x604d,
- /* 2nd byte: 115 */ 0x6063,
- /* 2nd byte: 116 */ 0x6043,
- /* 2nd byte: 117 */ 0x6064,
- /* 2nd byte: 118 */ 0x6042,
- /* 2nd byte: 119 */ 0x606c,
- /* 2nd byte: 120 */ 0x606b,
- /* 2nd byte: 121 */ 0x6059,
- /* 2nd byte: 122 */ 0x6081,
- /* 2nd byte: 123 */ 0x608d,
- /* 2nd byte: 124 */ 0x60e7,
- /* 2nd byte: 125 */ 0x6083,
- /* 2nd byte: 126 */ 0x609a},
-/* 1st byte: 88 */ {
- /* 2nd byte: 33 */ 0x6084,
- /* 2nd byte: 34 */ 0x609b,
- /* 2nd byte: 35 */ 0x6096,
- /* 2nd byte: 36 */ 0x6097,
- /* 2nd byte: 37 */ 0x6092,
- /* 2nd byte: 38 */ 0x60a7,
- /* 2nd byte: 39 */ 0x608b,
- /* 2nd byte: 40 */ 0x60e1,
- /* 2nd byte: 41 */ 0x60b8,
- /* 2nd byte: 42 */ 0x60e0,
- /* 2nd byte: 43 */ 0x60d3,
- /* 2nd byte: 44 */ 0x60b4,
- /* 2nd byte: 45 */ 0x5ff0,
- /* 2nd byte: 46 */ 0x60bd,
- /* 2nd byte: 47 */ 0x60c6,
- /* 2nd byte: 48 */ 0x60b5,
- /* 2nd byte: 49 */ 0x60d8,
- /* 2nd byte: 50 */ 0x614d,
- /* 2nd byte: 51 */ 0x6115,
- /* 2nd byte: 52 */ 0x6106,
- /* 2nd byte: 53 */ 0x60f6,
- /* 2nd byte: 54 */ 0x60f7,
- /* 2nd byte: 55 */ 0x6100,
- /* 2nd byte: 56 */ 0x60f4,
- /* 2nd byte: 57 */ 0x60fa,
- /* 2nd byte: 58 */ 0x6103,
- /* 2nd byte: 59 */ 0x6121,
- /* 2nd byte: 60 */ 0x60fb,
- /* 2nd byte: 61 */ 0x60f1,
- /* 2nd byte: 62 */ 0x610d,
- /* 2nd byte: 63 */ 0x610e,
- /* 2nd byte: 64 */ 0x6147,
- /* 2nd byte: 65 */ 0x613e,
- /* 2nd byte: 66 */ 0x6128,
- /* 2nd byte: 67 */ 0x6127,
- /* 2nd byte: 68 */ 0x614a,
- /* 2nd byte: 69 */ 0x613f,
- /* 2nd byte: 70 */ 0x613c,
- /* 2nd byte: 71 */ 0x612c,
- /* 2nd byte: 72 */ 0x6134,
- /* 2nd byte: 73 */ 0x613d,
- /* 2nd byte: 74 */ 0x6142,
- /* 2nd byte: 75 */ 0x6144,
- /* 2nd byte: 76 */ 0x6173,
- /* 2nd byte: 77 */ 0x6177,
- /* 2nd byte: 78 */ 0x6158,
- /* 2nd byte: 79 */ 0x6159,
- /* 2nd byte: 80 */ 0x615a,
- /* 2nd byte: 81 */ 0x616b,
- /* 2nd byte: 82 */ 0x6174,
- /* 2nd byte: 83 */ 0x616f,
- /* 2nd byte: 84 */ 0x6165,
- /* 2nd byte: 85 */ 0x6171,
- /* 2nd byte: 86 */ 0x615f,
- /* 2nd byte: 87 */ 0x615d,
- /* 2nd byte: 88 */ 0x6153,
- /* 2nd byte: 89 */ 0x6175,
- /* 2nd byte: 90 */ 0x6199,
- /* 2nd byte: 91 */ 0x6196,
- /* 2nd byte: 92 */ 0x6187,
- /* 2nd byte: 93 */ 0x61ac,
- /* 2nd byte: 94 */ 0x6194,
- /* 2nd byte: 95 */ 0x619a,
- /* 2nd byte: 96 */ 0x618a,
- /* 2nd byte: 97 */ 0x6191,
- /* 2nd byte: 98 */ 0x61ab,
- /* 2nd byte: 99 */ 0x61ae,
- /* 2nd byte: 100 */ 0x61cc,
- /* 2nd byte: 101 */ 0x61ca,
- /* 2nd byte: 102 */ 0x61c9,
- /* 2nd byte: 103 */ 0x61f7,
- /* 2nd byte: 104 */ 0x61c8,
- /* 2nd byte: 105 */ 0x61c3,
- /* 2nd byte: 106 */ 0x61c6,
- /* 2nd byte: 107 */ 0x61ba,
- /* 2nd byte: 108 */ 0x61cb,
- /* 2nd byte: 109 */ 0x7f79,
- /* 2nd byte: 110 */ 0x61cd,
- /* 2nd byte: 111 */ 0x61e6,
- /* 2nd byte: 112 */ 0x61e3,
- /* 2nd byte: 113 */ 0x61f6,
- /* 2nd byte: 114 */ 0x61fa,
- /* 2nd byte: 115 */ 0x61f4,
- /* 2nd byte: 116 */ 0x61ff,
- /* 2nd byte: 117 */ 0x61fd,
- /* 2nd byte: 118 */ 0x61fc,
- /* 2nd byte: 119 */ 0x61fe,
- /* 2nd byte: 120 */ 0x6200,
- /* 2nd byte: 121 */ 0x6208,
- /* 2nd byte: 122 */ 0x6209,
- /* 2nd byte: 123 */ 0x620d,
- /* 2nd byte: 124 */ 0x620c,
- /* 2nd byte: 125 */ 0x6214,
- /* 2nd byte: 126 */ 0x621b},
-/* 1st byte: 89 */ {
- /* 2nd byte: 33 */ 0x621e,
- /* 2nd byte: 34 */ 0x6221,
- /* 2nd byte: 35 */ 0x622a,
- /* 2nd byte: 36 */ 0x622e,
- /* 2nd byte: 37 */ 0x6230,
- /* 2nd byte: 38 */ 0x6232,
- /* 2nd byte: 39 */ 0x6233,
- /* 2nd byte: 40 */ 0x6241,
- /* 2nd byte: 41 */ 0x624e,
- /* 2nd byte: 42 */ 0x625e,
- /* 2nd byte: 43 */ 0x6263,
- /* 2nd byte: 44 */ 0x625b,
- /* 2nd byte: 45 */ 0x6260,
- /* 2nd byte: 46 */ 0x6268,
- /* 2nd byte: 47 */ 0x627c,
- /* 2nd byte: 48 */ 0x6282,
- /* 2nd byte: 49 */ 0x6289,
- /* 2nd byte: 50 */ 0x627e,
- /* 2nd byte: 51 */ 0x6292,
- /* 2nd byte: 52 */ 0x6293,
- /* 2nd byte: 53 */ 0x6296,
- /* 2nd byte: 54 */ 0x62d4,
- /* 2nd byte: 55 */ 0x6283,
- /* 2nd byte: 56 */ 0x6294,
- /* 2nd byte: 57 */ 0x62d7,
- /* 2nd byte: 58 */ 0x62d1,
- /* 2nd byte: 59 */ 0x62bb,
- /* 2nd byte: 60 */ 0x62cf,
- /* 2nd byte: 61 */ 0x62ff,
- /* 2nd byte: 62 */ 0x62c6,
- /* 2nd byte: 63 */ 0x64d4,
- /* 2nd byte: 64 */ 0x62c8,
- /* 2nd byte: 65 */ 0x62dc,
- /* 2nd byte: 66 */ 0x62cc,
- /* 2nd byte: 67 */ 0x62ca,
- /* 2nd byte: 68 */ 0x62c2,
- /* 2nd byte: 69 */ 0x62c7,
- /* 2nd byte: 70 */ 0x629b,
- /* 2nd byte: 71 */ 0x62c9,
- /* 2nd byte: 72 */ 0x630c,
- /* 2nd byte: 73 */ 0x62ee,
- /* 2nd byte: 74 */ 0x62f1,
- /* 2nd byte: 75 */ 0x6327,
- /* 2nd byte: 76 */ 0x6302,
- /* 2nd byte: 77 */ 0x6308,
- /* 2nd byte: 78 */ 0x62ef,
- /* 2nd byte: 79 */ 0x62f5,
- /* 2nd byte: 80 */ 0x6350,
- /* 2nd byte: 81 */ 0x633e,
- /* 2nd byte: 82 */ 0x634d,
- /* 2nd byte: 83 */ 0x641c,
- /* 2nd byte: 84 */ 0x634f,
- /* 2nd byte: 85 */ 0x6396,
- /* 2nd byte: 86 */ 0x638e,
- /* 2nd byte: 87 */ 0x6380,
- /* 2nd byte: 88 */ 0x63ab,
- /* 2nd byte: 89 */ 0x6376,
- /* 2nd byte: 90 */ 0x63a3,
- /* 2nd byte: 91 */ 0x638f,
- /* 2nd byte: 92 */ 0x6389,
- /* 2nd byte: 93 */ 0x639f,
- /* 2nd byte: 94 */ 0x63b5,
- /* 2nd byte: 95 */ 0x636b,
- /* 2nd byte: 96 */ 0x6369,
- /* 2nd byte: 97 */ 0x63be,
- /* 2nd byte: 98 */ 0x63e9,
- /* 2nd byte: 99 */ 0x63c0,
- /* 2nd byte: 100 */ 0x63c6,
- /* 2nd byte: 101 */ 0x63e3,
- /* 2nd byte: 102 */ 0x63c9,
- /* 2nd byte: 103 */ 0x63d2,
- /* 2nd byte: 104 */ 0x63f6,
- /* 2nd byte: 105 */ 0x63c4,
- /* 2nd byte: 106 */ 0x6416,
- /* 2nd byte: 107 */ 0x6434,
- /* 2nd byte: 108 */ 0x6406,
- /* 2nd byte: 109 */ 0x6413,
- /* 2nd byte: 110 */ 0x6426,
- /* 2nd byte: 111 */ 0x6436,
- /* 2nd byte: 112 */ 0x651d,
- /* 2nd byte: 113 */ 0x6417,
- /* 2nd byte: 114 */ 0x6428,
- /* 2nd byte: 115 */ 0x640f,
- /* 2nd byte: 116 */ 0x6467,
- /* 2nd byte: 117 */ 0x646f,
- /* 2nd byte: 118 */ 0x6476,
- /* 2nd byte: 119 */ 0x644e,
- /* 2nd byte: 120 */ 0x652a,
- /* 2nd byte: 121 */ 0x6495,
- /* 2nd byte: 122 */ 0x6493,
- /* 2nd byte: 123 */ 0x64a5,
- /* 2nd byte: 124 */ 0x64a9,
- /* 2nd byte: 125 */ 0x6488,
- /* 2nd byte: 126 */ 0x64bc},
-/* 1st byte: 90 */ {
- /* 2nd byte: 33 */ 0x64da,
- /* 2nd byte: 34 */ 0x64d2,
- /* 2nd byte: 35 */ 0x64c5,
- /* 2nd byte: 36 */ 0x64c7,
- /* 2nd byte: 37 */ 0x64bb,
- /* 2nd byte: 38 */ 0x64d8,
- /* 2nd byte: 39 */ 0x64c2,
- /* 2nd byte: 40 */ 0x64f1,
- /* 2nd byte: 41 */ 0x64e7,
- /* 2nd byte: 42 */ 0x8209,
- /* 2nd byte: 43 */ 0x64e0,
- /* 2nd byte: 44 */ 0x64e1,
- /* 2nd byte: 45 */ 0x62ac,
- /* 2nd byte: 46 */ 0x64e3,
- /* 2nd byte: 47 */ 0x64ef,
- /* 2nd byte: 48 */ 0x652c,
- /* 2nd byte: 49 */ 0x64f6,
- /* 2nd byte: 50 */ 0x64f4,
- /* 2nd byte: 51 */ 0x64f2,
- /* 2nd byte: 52 */ 0x64fa,
- /* 2nd byte: 53 */ 0x6500,
- /* 2nd byte: 54 */ 0x64fd,
- /* 2nd byte: 55 */ 0x6518,
- /* 2nd byte: 56 */ 0x651c,
- /* 2nd byte: 57 */ 0x6505,
- /* 2nd byte: 58 */ 0x6524,
- /* 2nd byte: 59 */ 0x6523,
- /* 2nd byte: 60 */ 0x652b,
- /* 2nd byte: 61 */ 0x6534,
- /* 2nd byte: 62 */ 0x6535,
- /* 2nd byte: 63 */ 0x6537,
- /* 2nd byte: 64 */ 0x6536,
- /* 2nd byte: 65 */ 0x6538,
- /* 2nd byte: 66 */ 0x754b,
- /* 2nd byte: 67 */ 0x6548,
- /* 2nd byte: 68 */ 0x6556,
- /* 2nd byte: 69 */ 0x6555,
- /* 2nd byte: 70 */ 0x654d,
- /* 2nd byte: 71 */ 0x6558,
- /* 2nd byte: 72 */ 0x655e,
- /* 2nd byte: 73 */ 0x655d,
- /* 2nd byte: 74 */ 0x6572,
- /* 2nd byte: 75 */ 0x6578,
- /* 2nd byte: 76 */ 0x6582,
- /* 2nd byte: 77 */ 0x6583,
- /* 2nd byte: 78 */ 0x8b8a,
- /* 2nd byte: 79 */ 0x659b,
- /* 2nd byte: 80 */ 0x659f,
- /* 2nd byte: 81 */ 0x65ab,
- /* 2nd byte: 82 */ 0x65b7,
- /* 2nd byte: 83 */ 0x65c3,
- /* 2nd byte: 84 */ 0x65c6,
- /* 2nd byte: 85 */ 0x65c1,
- /* 2nd byte: 86 */ 0x65c4,
- /* 2nd byte: 87 */ 0x65cc,
- /* 2nd byte: 88 */ 0x65d2,
- /* 2nd byte: 89 */ 0x65db,
- /* 2nd byte: 90 */ 0x65d9,
- /* 2nd byte: 91 */ 0x65e0,
- /* 2nd byte: 92 */ 0x65e1,
- /* 2nd byte: 93 */ 0x65f1,
- /* 2nd byte: 94 */ 0x6772,
- /* 2nd byte: 95 */ 0x660a,
- /* 2nd byte: 96 */ 0x6603,
- /* 2nd byte: 97 */ 0x65fb,
- /* 2nd byte: 98 */ 0x6773,
- /* 2nd byte: 99 */ 0x6635,
- /* 2nd byte: 100 */ 0x6636,
- /* 2nd byte: 101 */ 0x6634,
- /* 2nd byte: 102 */ 0x661c,
- /* 2nd byte: 103 */ 0x664f,
- /* 2nd byte: 104 */ 0x6644,
- /* 2nd byte: 105 */ 0x6649,
- /* 2nd byte: 106 */ 0x6641,
- /* 2nd byte: 107 */ 0x665e,
- /* 2nd byte: 108 */ 0x665d,
- /* 2nd byte: 109 */ 0x6664,
- /* 2nd byte: 110 */ 0x6667,
- /* 2nd byte: 111 */ 0x6668,
- /* 2nd byte: 112 */ 0x665f,
- /* 2nd byte: 113 */ 0x6662,
- /* 2nd byte: 114 */ 0x6670,
- /* 2nd byte: 115 */ 0x6683,
- /* 2nd byte: 116 */ 0x6688,
- /* 2nd byte: 117 */ 0x668e,
- /* 2nd byte: 118 */ 0x6689,
- /* 2nd byte: 119 */ 0x6684,
- /* 2nd byte: 120 */ 0x6698,
- /* 2nd byte: 121 */ 0x669d,
- /* 2nd byte: 122 */ 0x66c1,
- /* 2nd byte: 123 */ 0x66b9,
- /* 2nd byte: 124 */ 0x66c9,
- /* 2nd byte: 125 */ 0x66be,
- /* 2nd byte: 126 */ 0x66bc},
-/* 1st byte: 91 */ {
- /* 2nd byte: 33 */ 0x66c4,
- /* 2nd byte: 34 */ 0x66b8,
- /* 2nd byte: 35 */ 0x66d6,
- /* 2nd byte: 36 */ 0x66da,
- /* 2nd byte: 37 */ 0x66e0,
- /* 2nd byte: 38 */ 0x663f,
- /* 2nd byte: 39 */ 0x66e6,
- /* 2nd byte: 40 */ 0x66e9,
- /* 2nd byte: 41 */ 0x66f0,
- /* 2nd byte: 42 */ 0x66f5,
- /* 2nd byte: 43 */ 0x66f7,
- /* 2nd byte: 44 */ 0x670f,
- /* 2nd byte: 45 */ 0x6716,
- /* 2nd byte: 46 */ 0x671e,
- /* 2nd byte: 47 */ 0x6726,
- /* 2nd byte: 48 */ 0x6727,
- /* 2nd byte: 49 */ 0x9738,
- /* 2nd byte: 50 */ 0x672e,
- /* 2nd byte: 51 */ 0x673f,
- /* 2nd byte: 52 */ 0x6736,
- /* 2nd byte: 53 */ 0x6741,
- /* 2nd byte: 54 */ 0x6738,
- /* 2nd byte: 55 */ 0x6737,
- /* 2nd byte: 56 */ 0x6746,
- /* 2nd byte: 57 */ 0x675e,
- /* 2nd byte: 58 */ 0x6760,
- /* 2nd byte: 59 */ 0x6759,
- /* 2nd byte: 60 */ 0x6763,
- /* 2nd byte: 61 */ 0x6764,
- /* 2nd byte: 62 */ 0x6789,
- /* 2nd byte: 63 */ 0x6770,
- /* 2nd byte: 64 */ 0x67a9,
- /* 2nd byte: 65 */ 0x677c,
- /* 2nd byte: 66 */ 0x676a,
- /* 2nd byte: 67 */ 0x678c,
- /* 2nd byte: 68 */ 0x678b,
- /* 2nd byte: 69 */ 0x67a6,
- /* 2nd byte: 70 */ 0x67a1,
- /* 2nd byte: 71 */ 0x6785,
- /* 2nd byte: 72 */ 0x67b7,
- /* 2nd byte: 73 */ 0x67ef,
- /* 2nd byte: 74 */ 0x67b4,
- /* 2nd byte: 75 */ 0x67ec,
- /* 2nd byte: 76 */ 0x67b3,
- /* 2nd byte: 77 */ 0x67e9,
- /* 2nd byte: 78 */ 0x67b8,
- /* 2nd byte: 79 */ 0x67e4,
- /* 2nd byte: 80 */ 0x67de,
- /* 2nd byte: 81 */ 0x67dd,
- /* 2nd byte: 82 */ 0x67e2,
- /* 2nd byte: 83 */ 0x67ee,
- /* 2nd byte: 84 */ 0x67b9,
- /* 2nd byte: 85 */ 0x67ce,
- /* 2nd byte: 86 */ 0x67c6,
- /* 2nd byte: 87 */ 0x67e7,
- /* 2nd byte: 88 */ 0x6a9c,
- /* 2nd byte: 89 */ 0x681e,
- /* 2nd byte: 90 */ 0x6846,
- /* 2nd byte: 91 */ 0x6829,
- /* 2nd byte: 92 */ 0x6840,
- /* 2nd byte: 93 */ 0x684d,
- /* 2nd byte: 94 */ 0x6832,
- /* 2nd byte: 95 */ 0x684e,
- /* 2nd byte: 96 */ 0x68b3,
- /* 2nd byte: 97 */ 0x682b,
- /* 2nd byte: 98 */ 0x6859,
- /* 2nd byte: 99 */ 0x6863,
- /* 2nd byte: 100 */ 0x6877,
- /* 2nd byte: 101 */ 0x687f,
- /* 2nd byte: 102 */ 0x689f,
- /* 2nd byte: 103 */ 0x688f,
- /* 2nd byte: 104 */ 0x68ad,
- /* 2nd byte: 105 */ 0x6894,
- /* 2nd byte: 106 */ 0x689d,
- /* 2nd byte: 107 */ 0x689b,
- /* 2nd byte: 108 */ 0x6883,
- /* 2nd byte: 109 */ 0x6aae,
- /* 2nd byte: 110 */ 0x68b9,
- /* 2nd byte: 111 */ 0x6874,
- /* 2nd byte: 112 */ 0x68b5,
- /* 2nd byte: 113 */ 0x68a0,
- /* 2nd byte: 114 */ 0x68ba,
- /* 2nd byte: 115 */ 0x690f,
- /* 2nd byte: 116 */ 0x688d,
- /* 2nd byte: 117 */ 0x687e,
- /* 2nd byte: 118 */ 0x6901,
- /* 2nd byte: 119 */ 0x68ca,
- /* 2nd byte: 120 */ 0x6908,
- /* 2nd byte: 121 */ 0x68d8,
- /* 2nd byte: 122 */ 0x6922,
- /* 2nd byte: 123 */ 0x6926,
- /* 2nd byte: 124 */ 0x68e1,
- /* 2nd byte: 125 */ 0x690c,
- /* 2nd byte: 126 */ 0x68cd},
-/* 1st byte: 92 */ {
- /* 2nd byte: 33 */ 0x68d4,
- /* 2nd byte: 34 */ 0x68e7,
- /* 2nd byte: 35 */ 0x68d5,
- /* 2nd byte: 36 */ 0x6936,
- /* 2nd byte: 37 */ 0x6912,
- /* 2nd byte: 38 */ 0x6904,
- /* 2nd byte: 39 */ 0x68d7,
- /* 2nd byte: 40 */ 0x68e3,
- /* 2nd byte: 41 */ 0x6925,
- /* 2nd byte: 42 */ 0x68f9,
- /* 2nd byte: 43 */ 0x68e0,
- /* 2nd byte: 44 */ 0x68ef,
- /* 2nd byte: 45 */ 0x6928,
- /* 2nd byte: 46 */ 0x692a,
- /* 2nd byte: 47 */ 0x691a,
- /* 2nd byte: 48 */ 0x6923,
- /* 2nd byte: 49 */ 0x6921,
- /* 2nd byte: 50 */ 0x68c6,
- /* 2nd byte: 51 */ 0x6979,
- /* 2nd byte: 52 */ 0x6977,
- /* 2nd byte: 53 */ 0x695c,
- /* 2nd byte: 54 */ 0x6978,
- /* 2nd byte: 55 */ 0x696b,
- /* 2nd byte: 56 */ 0x6954,
- /* 2nd byte: 57 */ 0x697e,
- /* 2nd byte: 58 */ 0x696e,
- /* 2nd byte: 59 */ 0x6939,
- /* 2nd byte: 60 */ 0x6974,
- /* 2nd byte: 61 */ 0x693d,
- /* 2nd byte: 62 */ 0x6959,
- /* 2nd byte: 63 */ 0x6930,
- /* 2nd byte: 64 */ 0x6961,
- /* 2nd byte: 65 */ 0x695e,
- /* 2nd byte: 66 */ 0x695d,
- /* 2nd byte: 67 */ 0x6981,
- /* 2nd byte: 68 */ 0x696a,
- /* 2nd byte: 69 */ 0x69b2,
- /* 2nd byte: 70 */ 0x69ae,
- /* 2nd byte: 71 */ 0x69d0,
- /* 2nd byte: 72 */ 0x69bf,
- /* 2nd byte: 73 */ 0x69c1,
- /* 2nd byte: 74 */ 0x69d3,
- /* 2nd byte: 75 */ 0x69be,
- /* 2nd byte: 76 */ 0x69ce,
- /* 2nd byte: 77 */ 0x5be8,
- /* 2nd byte: 78 */ 0x69ca,
- /* 2nd byte: 79 */ 0x69dd,
- /* 2nd byte: 80 */ 0x69bb,
- /* 2nd byte: 81 */ 0x69c3,
- /* 2nd byte: 82 */ 0x69a7,
- /* 2nd byte: 83 */ 0x6a2e,
- /* 2nd byte: 84 */ 0x6991,
- /* 2nd byte: 85 */ 0x69a0,
- /* 2nd byte: 86 */ 0x699c,
- /* 2nd byte: 87 */ 0x6995,
- /* 2nd byte: 88 */ 0x69b4,
- /* 2nd byte: 89 */ 0x69de,
- /* 2nd byte: 90 */ 0x69e8,
- /* 2nd byte: 91 */ 0x6a02,
- /* 2nd byte: 92 */ 0x6a1b,
- /* 2nd byte: 93 */ 0x69ff,
- /* 2nd byte: 94 */ 0x6b0a,
- /* 2nd byte: 95 */ 0x69f9,
- /* 2nd byte: 96 */ 0x69f2,
- /* 2nd byte: 97 */ 0x69e7,
- /* 2nd byte: 98 */ 0x6a05,
- /* 2nd byte: 99 */ 0x69b1,
- /* 2nd byte: 100 */ 0x6a1e,
- /* 2nd byte: 101 */ 0x69ed,
- /* 2nd byte: 102 */ 0x6a14,
- /* 2nd byte: 103 */ 0x69eb,
- /* 2nd byte: 104 */ 0x6a0a,
- /* 2nd byte: 105 */ 0x6a12,
- /* 2nd byte: 106 */ 0x6ac1,
- /* 2nd byte: 107 */ 0x6a23,
- /* 2nd byte: 108 */ 0x6a13,
- /* 2nd byte: 109 */ 0x6a44,
- /* 2nd byte: 110 */ 0x6a0c,
- /* 2nd byte: 111 */ 0x6a72,
- /* 2nd byte: 112 */ 0x6a36,
- /* 2nd byte: 113 */ 0x6a78,
- /* 2nd byte: 114 */ 0x6a47,
- /* 2nd byte: 115 */ 0x6a62,
- /* 2nd byte: 116 */ 0x6a59,
- /* 2nd byte: 117 */ 0x6a66,
- /* 2nd byte: 118 */ 0x6a48,
- /* 2nd byte: 119 */ 0x6a38,
- /* 2nd byte: 120 */ 0x6a22,
- /* 2nd byte: 121 */ 0x6a90,
- /* 2nd byte: 122 */ 0x6a8d,
- /* 2nd byte: 123 */ 0x6aa0,
- /* 2nd byte: 124 */ 0x6a84,
- /* 2nd byte: 125 */ 0x6aa2,
- /* 2nd byte: 126 */ 0x6aa3},
-/* 1st byte: 93 */ {
- /* 2nd byte: 33 */ 0x6a97,
- /* 2nd byte: 34 */ 0x8617,
- /* 2nd byte: 35 */ 0x6abb,
- /* 2nd byte: 36 */ 0x6ac3,
- /* 2nd byte: 37 */ 0x6ac2,
- /* 2nd byte: 38 */ 0x6ab8,
- /* 2nd byte: 39 */ 0x6ab3,
- /* 2nd byte: 40 */ 0x6aac,
- /* 2nd byte: 41 */ 0x6ade,
- /* 2nd byte: 42 */ 0x6ad1,
- /* 2nd byte: 43 */ 0x6adf,
- /* 2nd byte: 44 */ 0x6aaa,
- /* 2nd byte: 45 */ 0x6ada,
- /* 2nd byte: 46 */ 0x6aea,
- /* 2nd byte: 47 */ 0x6afb,
- /* 2nd byte: 48 */ 0x6b05,
- /* 2nd byte: 49 */ 0x8616,
- /* 2nd byte: 50 */ 0x6afa,
- /* 2nd byte: 51 */ 0x6b12,
- /* 2nd byte: 52 */ 0x6b16,
- /* 2nd byte: 53 */ 0x9b31,
- /* 2nd byte: 54 */ 0x6b1f,
- /* 2nd byte: 55 */ 0x6b38,
- /* 2nd byte: 56 */ 0x6b37,
- /* 2nd byte: 57 */ 0x76dc,
- /* 2nd byte: 58 */ 0x6b39,
- /* 2nd byte: 59 */ 0x98ee,
- /* 2nd byte: 60 */ 0x6b47,
- /* 2nd byte: 61 */ 0x6b43,
- /* 2nd byte: 62 */ 0x6b49,
- /* 2nd byte: 63 */ 0x6b50,
- /* 2nd byte: 64 */ 0x6b59,
- /* 2nd byte: 65 */ 0x6b54,
- /* 2nd byte: 66 */ 0x6b5b,
- /* 2nd byte: 67 */ 0x6b5f,
- /* 2nd byte: 68 */ 0x6b61,
- /* 2nd byte: 69 */ 0x6b78,
- /* 2nd byte: 70 */ 0x6b79,
- /* 2nd byte: 71 */ 0x6b7f,
- /* 2nd byte: 72 */ 0x6b80,
- /* 2nd byte: 73 */ 0x6b84,
- /* 2nd byte: 74 */ 0x6b83,
- /* 2nd byte: 75 */ 0x6b8d,
- /* 2nd byte: 76 */ 0x6b98,
- /* 2nd byte: 77 */ 0x6b95,
- /* 2nd byte: 78 */ 0x6b9e,
- /* 2nd byte: 79 */ 0x6ba4,
- /* 2nd byte: 80 */ 0x6baa,
- /* 2nd byte: 81 */ 0x6bab,
- /* 2nd byte: 82 */ 0x6baf,
- /* 2nd byte: 83 */ 0x6bb2,
- /* 2nd byte: 84 */ 0x6bb1,
- /* 2nd byte: 85 */ 0x6bb3,
- /* 2nd byte: 86 */ 0x6bb7,
- /* 2nd byte: 87 */ 0x6bbc,
- /* 2nd byte: 88 */ 0x6bc6,
- /* 2nd byte: 89 */ 0x6bcb,
- /* 2nd byte: 90 */ 0x6bd3,
- /* 2nd byte: 91 */ 0x6bdf,
- /* 2nd byte: 92 */ 0x6bec,
- /* 2nd byte: 93 */ 0x6beb,
- /* 2nd byte: 94 */ 0x6bf3,
- /* 2nd byte: 95 */ 0x6bef,
- /* 2nd byte: 96 */ 0x9ebe,
- /* 2nd byte: 97 */ 0x6c08,
- /* 2nd byte: 98 */ 0x6c13,
- /* 2nd byte: 99 */ 0x6c14,
- /* 2nd byte: 100 */ 0x6c1b,
- /* 2nd byte: 101 */ 0x6c24,
- /* 2nd byte: 102 */ 0x6c23,
- /* 2nd byte: 103 */ 0x6c5e,
- /* 2nd byte: 104 */ 0x6c55,
- /* 2nd byte: 105 */ 0x6c62,
- /* 2nd byte: 106 */ 0x6c6a,
- /* 2nd byte: 107 */ 0x6c82,
- /* 2nd byte: 108 */ 0x6c8d,
- /* 2nd byte: 109 */ 0x6c9a,
- /* 2nd byte: 110 */ 0x6c81,
- /* 2nd byte: 111 */ 0x6c9b,
- /* 2nd byte: 112 */ 0x6c7e,
- /* 2nd byte: 113 */ 0x6c68,
- /* 2nd byte: 114 */ 0x6c73,
- /* 2nd byte: 115 */ 0x6c92,
- /* 2nd byte: 116 */ 0x6c90,
- /* 2nd byte: 117 */ 0x6cc4,
- /* 2nd byte: 118 */ 0x6cf1,
- /* 2nd byte: 119 */ 0x6cd3,
- /* 2nd byte: 120 */ 0x6cbd,
- /* 2nd byte: 121 */ 0x6cd7,
- /* 2nd byte: 122 */ 0x6cc5,
- /* 2nd byte: 123 */ 0x6cdd,
- /* 2nd byte: 124 */ 0x6cae,
- /* 2nd byte: 125 */ 0x6cb1,
- /* 2nd byte: 126 */ 0x6cbe},
-/* 1st byte: 94 */ {
- /* 2nd byte: 33 */ 0x6cba,
- /* 2nd byte: 34 */ 0x6cdb,
- /* 2nd byte: 35 */ 0x6cef,
- /* 2nd byte: 36 */ 0x6cd9,
- /* 2nd byte: 37 */ 0x6cea,
- /* 2nd byte: 38 */ 0x6d1f,
- /* 2nd byte: 39 */ 0x884d,
- /* 2nd byte: 40 */ 0x6d36,
- /* 2nd byte: 41 */ 0x6d2b,
- /* 2nd byte: 42 */ 0x6d3d,
- /* 2nd byte: 43 */ 0x6d38,
- /* 2nd byte: 44 */ 0x6d19,
- /* 2nd byte: 45 */ 0x6d35,
- /* 2nd byte: 46 */ 0x6d33,
- /* 2nd byte: 47 */ 0x6d12,
- /* 2nd byte: 48 */ 0x6d0c,
- /* 2nd byte: 49 */ 0x6d63,
- /* 2nd byte: 50 */ 0x6d93,
- /* 2nd byte: 51 */ 0x6d64,
- /* 2nd byte: 52 */ 0x6d5a,
- /* 2nd byte: 53 */ 0x6d79,
- /* 2nd byte: 54 */ 0x6d59,
- /* 2nd byte: 55 */ 0x6d8e,
- /* 2nd byte: 56 */ 0x6d95,
- /* 2nd byte: 57 */ 0x6fe4,
- /* 2nd byte: 58 */ 0x6d85,
- /* 2nd byte: 59 */ 0x6df9,
- /* 2nd byte: 60 */ 0x6e15,
- /* 2nd byte: 61 */ 0x6e0a,
- /* 2nd byte: 62 */ 0x6db5,
- /* 2nd byte: 63 */ 0x6dc7,
- /* 2nd byte: 64 */ 0x6de6,
- /* 2nd byte: 65 */ 0x6db8,
- /* 2nd byte: 66 */ 0x6dc6,
- /* 2nd byte: 67 */ 0x6dec,
- /* 2nd byte: 68 */ 0x6dde,
- /* 2nd byte: 69 */ 0x6dcc,
- /* 2nd byte: 70 */ 0x6de8,
- /* 2nd byte: 71 */ 0x6dd2,
- /* 2nd byte: 72 */ 0x6dc5,
- /* 2nd byte: 73 */ 0x6dfa,
- /* 2nd byte: 74 */ 0x6dd9,
- /* 2nd byte: 75 */ 0x6de4,
- /* 2nd byte: 76 */ 0x6dd5,
- /* 2nd byte: 77 */ 0x6dea,
- /* 2nd byte: 78 */ 0x6dee,
- /* 2nd byte: 79 */ 0x6e2d,
- /* 2nd byte: 80 */ 0x6e6e,
- /* 2nd byte: 81 */ 0x6e2e,
- /* 2nd byte: 82 */ 0x6e19,
- /* 2nd byte: 83 */ 0x6e72,
- /* 2nd byte: 84 */ 0x6e5f,
- /* 2nd byte: 85 */ 0x6e3e,
- /* 2nd byte: 86 */ 0x6e23,
- /* 2nd byte: 87 */ 0x6e6b,
- /* 2nd byte: 88 */ 0x6e2b,
- /* 2nd byte: 89 */ 0x6e76,
- /* 2nd byte: 90 */ 0x6e4d,
- /* 2nd byte: 91 */ 0x6e1f,
- /* 2nd byte: 92 */ 0x6e43,
- /* 2nd byte: 93 */ 0x6e3a,
- /* 2nd byte: 94 */ 0x6e4e,
- /* 2nd byte: 95 */ 0x6e24,
- /* 2nd byte: 96 */ 0x6eff,
- /* 2nd byte: 97 */ 0x6e1d,
- /* 2nd byte: 98 */ 0x6e38,
- /* 2nd byte: 99 */ 0x6e82,
- /* 2nd byte: 100 */ 0x6eaa,
- /* 2nd byte: 101 */ 0x6e98,
- /* 2nd byte: 102 */ 0x6ec9,
- /* 2nd byte: 103 */ 0x6eb7,
- /* 2nd byte: 104 */ 0x6ed3,
- /* 2nd byte: 105 */ 0x6ebd,
- /* 2nd byte: 106 */ 0x6eaf,
- /* 2nd byte: 107 */ 0x6ec4,
- /* 2nd byte: 108 */ 0x6eb2,
- /* 2nd byte: 109 */ 0x6ed4,
- /* 2nd byte: 110 */ 0x6ed5,
- /* 2nd byte: 111 */ 0x6e8f,
- /* 2nd byte: 112 */ 0x6ea5,
- /* 2nd byte: 113 */ 0x6ec2,
- /* 2nd byte: 114 */ 0x6e9f,
- /* 2nd byte: 115 */ 0x6f41,
- /* 2nd byte: 116 */ 0x6f11,
- /* 2nd byte: 117 */ 0x704c,
- /* 2nd byte: 118 */ 0x6eec,
- /* 2nd byte: 119 */ 0x6ef8,
- /* 2nd byte: 120 */ 0x6efe,
- /* 2nd byte: 121 */ 0x6f3f,
- /* 2nd byte: 122 */ 0x6ef2,
- /* 2nd byte: 123 */ 0x6f31,
- /* 2nd byte: 124 */ 0x6eef,
- /* 2nd byte: 125 */ 0x6f32,
- /* 2nd byte: 126 */ 0x6ecc},
-/* 1st byte: 95 */ {
- /* 2nd byte: 33 */ 0x6f3e,
- /* 2nd byte: 34 */ 0x6f13,
- /* 2nd byte: 35 */ 0x6ef7,
- /* 2nd byte: 36 */ 0x6f86,
- /* 2nd byte: 37 */ 0x6f7a,
- /* 2nd byte: 38 */ 0x6f78,
- /* 2nd byte: 39 */ 0x6f81,
- /* 2nd byte: 40 */ 0x6f80,
- /* 2nd byte: 41 */ 0x6f6f,
- /* 2nd byte: 42 */ 0x6f5b,
- /* 2nd byte: 43 */ 0x6ff3,
- /* 2nd byte: 44 */ 0x6f6d,
- /* 2nd byte: 45 */ 0x6f82,
- /* 2nd byte: 46 */ 0x6f7c,
- /* 2nd byte: 47 */ 0x6f58,
- /* 2nd byte: 48 */ 0x6f8e,
- /* 2nd byte: 49 */ 0x6f91,
- /* 2nd byte: 50 */ 0x6fc2,
- /* 2nd byte: 51 */ 0x6f66,
- /* 2nd byte: 52 */ 0x6fb3,
- /* 2nd byte: 53 */ 0x6fa3,
- /* 2nd byte: 54 */ 0x6fa1,
- /* 2nd byte: 55 */ 0x6fa4,
- /* 2nd byte: 56 */ 0x6fb9,
- /* 2nd byte: 57 */ 0x6fc6,
- /* 2nd byte: 58 */ 0x6faa,
- /* 2nd byte: 59 */ 0x6fdf,
- /* 2nd byte: 60 */ 0x6fd5,
- /* 2nd byte: 61 */ 0x6fec,
- /* 2nd byte: 62 */ 0x6fd4,
- /* 2nd byte: 63 */ 0x6fd8,
- /* 2nd byte: 64 */ 0x6ff1,
- /* 2nd byte: 65 */ 0x6fee,
- /* 2nd byte: 66 */ 0x6fdb,
- /* 2nd byte: 67 */ 0x7009,
- /* 2nd byte: 68 */ 0x700b,
- /* 2nd byte: 69 */ 0x6ffa,
- /* 2nd byte: 70 */ 0x7011,
- /* 2nd byte: 71 */ 0x7001,
- /* 2nd byte: 72 */ 0x700f,
- /* 2nd byte: 73 */ 0x6ffe,
- /* 2nd byte: 74 */ 0x701b,
- /* 2nd byte: 75 */ 0x701a,
- /* 2nd byte: 76 */ 0x6f74,
- /* 2nd byte: 77 */ 0x701d,
- /* 2nd byte: 78 */ 0x7018,
- /* 2nd byte: 79 */ 0x701f,
- /* 2nd byte: 80 */ 0x7030,
- /* 2nd byte: 81 */ 0x703e,
- /* 2nd byte: 82 */ 0x7032,
- /* 2nd byte: 83 */ 0x7051,
- /* 2nd byte: 84 */ 0x7063,
- /* 2nd byte: 85 */ 0x7099,
- /* 2nd byte: 86 */ 0x7092,
- /* 2nd byte: 87 */ 0x70af,
- /* 2nd byte: 88 */ 0x70f1,
- /* 2nd byte: 89 */ 0x70ac,
- /* 2nd byte: 90 */ 0x70b8,
- /* 2nd byte: 91 */ 0x70b3,
- /* 2nd byte: 92 */ 0x70ae,
- /* 2nd byte: 93 */ 0x70df,
- /* 2nd byte: 94 */ 0x70cb,
- /* 2nd byte: 95 */ 0x70dd,
- /* 2nd byte: 96 */ 0x70d9,
- /* 2nd byte: 97 */ 0x7109,
- /* 2nd byte: 98 */ 0x70fd,
- /* 2nd byte: 99 */ 0x711c,
- /* 2nd byte: 100 */ 0x7119,
- /* 2nd byte: 101 */ 0x7165,
- /* 2nd byte: 102 */ 0x7155,
- /* 2nd byte: 103 */ 0x7188,
- /* 2nd byte: 104 */ 0x7166,
- /* 2nd byte: 105 */ 0x7162,
- /* 2nd byte: 106 */ 0x714c,
- /* 2nd byte: 107 */ 0x7156,
- /* 2nd byte: 108 */ 0x716c,
- /* 2nd byte: 109 */ 0x718f,
- /* 2nd byte: 110 */ 0x71fb,
- /* 2nd byte: 111 */ 0x7184,
- /* 2nd byte: 112 */ 0x7195,
- /* 2nd byte: 113 */ 0x71a8,
- /* 2nd byte: 114 */ 0x71ac,
- /* 2nd byte: 115 */ 0x71d7,
- /* 2nd byte: 116 */ 0x71b9,
- /* 2nd byte: 117 */ 0x71be,
- /* 2nd byte: 118 */ 0x71d2,
- /* 2nd byte: 119 */ 0x71c9,
- /* 2nd byte: 120 */ 0x71d4,
- /* 2nd byte: 121 */ 0x71ce,
- /* 2nd byte: 122 */ 0x71e0,
- /* 2nd byte: 123 */ 0x71ec,
- /* 2nd byte: 124 */ 0x71e7,
- /* 2nd byte: 125 */ 0x71f5,
- /* 2nd byte: 126 */ 0x71fc},
-/* 1st byte: 96 */ {
- /* 2nd byte: 33 */ 0x71f9,
- /* 2nd byte: 34 */ 0x71ff,
- /* 2nd byte: 35 */ 0x720d,
- /* 2nd byte: 36 */ 0x7210,
- /* 2nd byte: 37 */ 0x721b,
- /* 2nd byte: 38 */ 0x7228,
- /* 2nd byte: 39 */ 0x722d,
- /* 2nd byte: 40 */ 0x722c,
- /* 2nd byte: 41 */ 0x7230,
- /* 2nd byte: 42 */ 0x7232,
- /* 2nd byte: 43 */ 0x723b,
- /* 2nd byte: 44 */ 0x723c,
- /* 2nd byte: 45 */ 0x723f,
- /* 2nd byte: 46 */ 0x7240,
- /* 2nd byte: 47 */ 0x7246,
- /* 2nd byte: 48 */ 0x724b,
- /* 2nd byte: 49 */ 0x7258,
- /* 2nd byte: 50 */ 0x7274,
- /* 2nd byte: 51 */ 0x727e,
- /* 2nd byte: 52 */ 0x7282,
- /* 2nd byte: 53 */ 0x7281,
- /* 2nd byte: 54 */ 0x7287,
- /* 2nd byte: 55 */ 0x7292,
- /* 2nd byte: 56 */ 0x7296,
- /* 2nd byte: 57 */ 0x72a2,
- /* 2nd byte: 58 */ 0x72a7,
- /* 2nd byte: 59 */ 0x72b9,
- /* 2nd byte: 60 */ 0x72b2,
- /* 2nd byte: 61 */ 0x72c3,
- /* 2nd byte: 62 */ 0x72c6,
- /* 2nd byte: 63 */ 0x72c4,
- /* 2nd byte: 64 */ 0x72ce,
- /* 2nd byte: 65 */ 0x72d2,
- /* 2nd byte: 66 */ 0x72e2,
- /* 2nd byte: 67 */ 0x72e0,
- /* 2nd byte: 68 */ 0x72e1,
- /* 2nd byte: 69 */ 0x72f9,
- /* 2nd byte: 70 */ 0x72f7,
- /* 2nd byte: 71 */ 0x500f,
- /* 2nd byte: 72 */ 0x7317,
- /* 2nd byte: 73 */ 0x730a,
- /* 2nd byte: 74 */ 0x731c,
- /* 2nd byte: 75 */ 0x7316,
- /* 2nd byte: 76 */ 0x731d,
- /* 2nd byte: 77 */ 0x7334,
- /* 2nd byte: 78 */ 0x732f,
- /* 2nd byte: 79 */ 0x7329,
- /* 2nd byte: 80 */ 0x7325,
- /* 2nd byte: 81 */ 0x733e,
- /* 2nd byte: 82 */ 0x734e,
- /* 2nd byte: 83 */ 0x734f,
- /* 2nd byte: 84 */ 0x9ed8,
- /* 2nd byte: 85 */ 0x7357,
- /* 2nd byte: 86 */ 0x736a,
- /* 2nd byte: 87 */ 0x7368,
- /* 2nd byte: 88 */ 0x7370,
- /* 2nd byte: 89 */ 0x7378,
- /* 2nd byte: 90 */ 0x7375,
- /* 2nd byte: 91 */ 0x737b,
- /* 2nd byte: 92 */ 0x737a,
- /* 2nd byte: 93 */ 0x73c8,
- /* 2nd byte: 94 */ 0x73b3,
- /* 2nd byte: 95 */ 0x73ce,
- /* 2nd byte: 96 */ 0x73bb,
- /* 2nd byte: 97 */ 0x73c0,
- /* 2nd byte: 98 */ 0x73e5,
- /* 2nd byte: 99 */ 0x73ee,
- /* 2nd byte: 100 */ 0x73de,
- /* 2nd byte: 101 */ 0x74a2,
- /* 2nd byte: 102 */ 0x7405,
- /* 2nd byte: 103 */ 0x746f,
- /* 2nd byte: 104 */ 0x7425,
- /* 2nd byte: 105 */ 0x73f8,
- /* 2nd byte: 106 */ 0x7432,
- /* 2nd byte: 107 */ 0x743a,
- /* 2nd byte: 108 */ 0x7455,
- /* 2nd byte: 109 */ 0x743f,
- /* 2nd byte: 110 */ 0x745f,
- /* 2nd byte: 111 */ 0x7459,
- /* 2nd byte: 112 */ 0x7441,
- /* 2nd byte: 113 */ 0x745c,
- /* 2nd byte: 114 */ 0x7469,
- /* 2nd byte: 115 */ 0x7470,
- /* 2nd byte: 116 */ 0x7463,
- /* 2nd byte: 117 */ 0x746a,
- /* 2nd byte: 118 */ 0x7476,
- /* 2nd byte: 119 */ 0x747e,
- /* 2nd byte: 120 */ 0x748b,
- /* 2nd byte: 121 */ 0x749e,
- /* 2nd byte: 122 */ 0x74a7,
- /* 2nd byte: 123 */ 0x74ca,
- /* 2nd byte: 124 */ 0x74cf,
- /* 2nd byte: 125 */ 0x74d4,
- /* 2nd byte: 126 */ 0x73f1},
-/* 1st byte: 97 */ {
- /* 2nd byte: 33 */ 0x74e0,
- /* 2nd byte: 34 */ 0x74e3,
- /* 2nd byte: 35 */ 0x74e7,
- /* 2nd byte: 36 */ 0x74e9,
- /* 2nd byte: 37 */ 0x74ee,
- /* 2nd byte: 38 */ 0x74f2,
- /* 2nd byte: 39 */ 0x74f0,
- /* 2nd byte: 40 */ 0x74f1,
- /* 2nd byte: 41 */ 0x74f8,
- /* 2nd byte: 42 */ 0x74f7,
- /* 2nd byte: 43 */ 0x7504,
- /* 2nd byte: 44 */ 0x7503,
- /* 2nd byte: 45 */ 0x7505,
- /* 2nd byte: 46 */ 0x750c,
- /* 2nd byte: 47 */ 0x750e,
- /* 2nd byte: 48 */ 0x750d,
- /* 2nd byte: 49 */ 0x7515,
- /* 2nd byte: 50 */ 0x7513,
- /* 2nd byte: 51 */ 0x751e,
- /* 2nd byte: 52 */ 0x7526,
- /* 2nd byte: 53 */ 0x752c,
- /* 2nd byte: 54 */ 0x753c,
- /* 2nd byte: 55 */ 0x7544,
- /* 2nd byte: 56 */ 0x754d,
- /* 2nd byte: 57 */ 0x754a,
- /* 2nd byte: 58 */ 0x7549,
- /* 2nd byte: 59 */ 0x755b,
- /* 2nd byte: 60 */ 0x7546,
- /* 2nd byte: 61 */ 0x755a,
- /* 2nd byte: 62 */ 0x7569,
- /* 2nd byte: 63 */ 0x7564,
- /* 2nd byte: 64 */ 0x7567,
- /* 2nd byte: 65 */ 0x756b,
- /* 2nd byte: 66 */ 0x756d,
- /* 2nd byte: 67 */ 0x7578,
- /* 2nd byte: 68 */ 0x7576,
- /* 2nd byte: 69 */ 0x7586,
- /* 2nd byte: 70 */ 0x7587,
- /* 2nd byte: 71 */ 0x7574,
- /* 2nd byte: 72 */ 0x758a,
- /* 2nd byte: 73 */ 0x7589,
- /* 2nd byte: 74 */ 0x7582,
- /* 2nd byte: 75 */ 0x7594,
- /* 2nd byte: 76 */ 0x759a,
- /* 2nd byte: 77 */ 0x759d,
- /* 2nd byte: 78 */ 0x75a5,
- /* 2nd byte: 79 */ 0x75a3,
- /* 2nd byte: 80 */ 0x75c2,
- /* 2nd byte: 81 */ 0x75b3,
- /* 2nd byte: 82 */ 0x75c3,
- /* 2nd byte: 83 */ 0x75b5,
- /* 2nd byte: 84 */ 0x75bd,
- /* 2nd byte: 85 */ 0x75b8,
- /* 2nd byte: 86 */ 0x75bc,
- /* 2nd byte: 87 */ 0x75b1,
- /* 2nd byte: 88 */ 0x75cd,
- /* 2nd byte: 89 */ 0x75ca,
- /* 2nd byte: 90 */ 0x75d2,
- /* 2nd byte: 91 */ 0x75d9,
- /* 2nd byte: 92 */ 0x75e3,
- /* 2nd byte: 93 */ 0x75de,
- /* 2nd byte: 94 */ 0x75fe,
- /* 2nd byte: 95 */ 0x75ff,
- /* 2nd byte: 96 */ 0x75fc,
- /* 2nd byte: 97 */ 0x7601,
- /* 2nd byte: 98 */ 0x75f0,
- /* 2nd byte: 99 */ 0x75fa,
- /* 2nd byte: 100 */ 0x75f2,
- /* 2nd byte: 101 */ 0x75f3,
- /* 2nd byte: 102 */ 0x760b,
- /* 2nd byte: 103 */ 0x760d,
- /* 2nd byte: 104 */ 0x7609,
- /* 2nd byte: 105 */ 0x761f,
- /* 2nd byte: 106 */ 0x7627,
- /* 2nd byte: 107 */ 0x7620,
- /* 2nd byte: 108 */ 0x7621,
- /* 2nd byte: 109 */ 0x7622,
- /* 2nd byte: 110 */ 0x7624,
- /* 2nd byte: 111 */ 0x7634,
- /* 2nd byte: 112 */ 0x7630,
- /* 2nd byte: 113 */ 0x763b,
- /* 2nd byte: 114 */ 0x7647,
- /* 2nd byte: 115 */ 0x7648,
- /* 2nd byte: 116 */ 0x7646,
- /* 2nd byte: 117 */ 0x765c,
- /* 2nd byte: 118 */ 0x7658,
- /* 2nd byte: 119 */ 0x7661,
- /* 2nd byte: 120 */ 0x7662,
- /* 2nd byte: 121 */ 0x7668,
- /* 2nd byte: 122 */ 0x7669,
- /* 2nd byte: 123 */ 0x766a,
- /* 2nd byte: 124 */ 0x7667,
- /* 2nd byte: 125 */ 0x766c,
- /* 2nd byte: 126 */ 0x7670},
-/* 1st byte: 98 */ {
- /* 2nd byte: 33 */ 0x7672,
- /* 2nd byte: 34 */ 0x7676,
- /* 2nd byte: 35 */ 0x7678,
- /* 2nd byte: 36 */ 0x767c,
- /* 2nd byte: 37 */ 0x7680,
- /* 2nd byte: 38 */ 0x7683,
- /* 2nd byte: 39 */ 0x7688,
- /* 2nd byte: 40 */ 0x768b,
- /* 2nd byte: 41 */ 0x768e,
- /* 2nd byte: 42 */ 0x7696,
- /* 2nd byte: 43 */ 0x7693,
- /* 2nd byte: 44 */ 0x7699,
- /* 2nd byte: 45 */ 0x769a,
- /* 2nd byte: 46 */ 0x76b0,
- /* 2nd byte: 47 */ 0x76b4,
- /* 2nd byte: 48 */ 0x76b8,
- /* 2nd byte: 49 */ 0x76b9,
- /* 2nd byte: 50 */ 0x76ba,
- /* 2nd byte: 51 */ 0x76c2,
- /* 2nd byte: 52 */ 0x76cd,
- /* 2nd byte: 53 */ 0x76d6,
- /* 2nd byte: 54 */ 0x76d2,
- /* 2nd byte: 55 */ 0x76de,
- /* 2nd byte: 56 */ 0x76e1,
- /* 2nd byte: 57 */ 0x76e5,
- /* 2nd byte: 58 */ 0x76e7,
- /* 2nd byte: 59 */ 0x76ea,
- /* 2nd byte: 60 */ 0x862f,
- /* 2nd byte: 61 */ 0x76fb,
- /* 2nd byte: 62 */ 0x7708,
- /* 2nd byte: 63 */ 0x7707,
- /* 2nd byte: 64 */ 0x7704,
- /* 2nd byte: 65 */ 0x7729,
- /* 2nd byte: 66 */ 0x7724,
- /* 2nd byte: 67 */ 0x771e,
- /* 2nd byte: 68 */ 0x7725,
- /* 2nd byte: 69 */ 0x7726,
- /* 2nd byte: 70 */ 0x771b,
- /* 2nd byte: 71 */ 0x7737,
- /* 2nd byte: 72 */ 0x7738,
- /* 2nd byte: 73 */ 0x7747,
- /* 2nd byte: 74 */ 0x775a,
- /* 2nd byte: 75 */ 0x7768,
- /* 2nd byte: 76 */ 0x776b,
- /* 2nd byte: 77 */ 0x775b,
- /* 2nd byte: 78 */ 0x7765,
- /* 2nd byte: 79 */ 0x777f,
- /* 2nd byte: 80 */ 0x777e,
- /* 2nd byte: 81 */ 0x7779,
- /* 2nd byte: 82 */ 0x778e,
- /* 2nd byte: 83 */ 0x778b,
- /* 2nd byte: 84 */ 0x7791,
- /* 2nd byte: 85 */ 0x77a0,
- /* 2nd byte: 86 */ 0x779e,
- /* 2nd byte: 87 */ 0x77b0,
- /* 2nd byte: 88 */ 0x77b6,
- /* 2nd byte: 89 */ 0x77b9,
- /* 2nd byte: 90 */ 0x77bf,
- /* 2nd byte: 91 */ 0x77bc,
- /* 2nd byte: 92 */ 0x77bd,
- /* 2nd byte: 93 */ 0x77bb,
- /* 2nd byte: 94 */ 0x77c7,
- /* 2nd byte: 95 */ 0x77cd,
- /* 2nd byte: 96 */ 0x77d7,
- /* 2nd byte: 97 */ 0x77da,
- /* 2nd byte: 98 */ 0x77dc,
- /* 2nd byte: 99 */ 0x77e3,
- /* 2nd byte: 100 */ 0x77ee,
- /* 2nd byte: 101 */ 0x77fc,
- /* 2nd byte: 102 */ 0x780c,
- /* 2nd byte: 103 */ 0x7812,
- /* 2nd byte: 104 */ 0x7926,
- /* 2nd byte: 105 */ 0x7820,
- /* 2nd byte: 106 */ 0x792a,
- /* 2nd byte: 107 */ 0x7845,
- /* 2nd byte: 108 */ 0x788e,
- /* 2nd byte: 109 */ 0x7874,
- /* 2nd byte: 110 */ 0x7886,
- /* 2nd byte: 111 */ 0x787c,
- /* 2nd byte: 112 */ 0x789a,
- /* 2nd byte: 113 */ 0x788c,
- /* 2nd byte: 114 */ 0x78a3,
- /* 2nd byte: 115 */ 0x78b5,
- /* 2nd byte: 116 */ 0x78aa,
- /* 2nd byte: 117 */ 0x78af,
- /* 2nd byte: 118 */ 0x78d1,
- /* 2nd byte: 119 */ 0x78c6,
- /* 2nd byte: 120 */ 0x78cb,
- /* 2nd byte: 121 */ 0x78d4,
- /* 2nd byte: 122 */ 0x78be,
- /* 2nd byte: 123 */ 0x78bc,
- /* 2nd byte: 124 */ 0x78c5,
- /* 2nd byte: 125 */ 0x78ca,
- /* 2nd byte: 126 */ 0x78ec},
-/* 1st byte: 99 */ {
- /* 2nd byte: 33 */ 0x78e7,
- /* 2nd byte: 34 */ 0x78da,
- /* 2nd byte: 35 */ 0x78fd,
- /* 2nd byte: 36 */ 0x78f4,
- /* 2nd byte: 37 */ 0x7907,
- /* 2nd byte: 38 */ 0x7912,
- /* 2nd byte: 39 */ 0x7911,
- /* 2nd byte: 40 */ 0x7919,
- /* 2nd byte: 41 */ 0x792c,
- /* 2nd byte: 42 */ 0x792b,
- /* 2nd byte: 43 */ 0x7940,
- /* 2nd byte: 44 */ 0x7960,
- /* 2nd byte: 45 */ 0x7957,
- /* 2nd byte: 46 */ 0x795f,
- /* 2nd byte: 47 */ 0x795a,
- /* 2nd byte: 48 */ 0x7955,
- /* 2nd byte: 49 */ 0x7953,
- /* 2nd byte: 50 */ 0x797a,
- /* 2nd byte: 51 */ 0x797f,
- /* 2nd byte: 52 */ 0x798a,
- /* 2nd byte: 53 */ 0x799d,
- /* 2nd byte: 54 */ 0x79a7,
- /* 2nd byte: 55 */ 0x9f4b,
- /* 2nd byte: 56 */ 0x79aa,
- /* 2nd byte: 57 */ 0x79ae,
- /* 2nd byte: 58 */ 0x79b3,
- /* 2nd byte: 59 */ 0x79b9,
- /* 2nd byte: 60 */ 0x79ba,
- /* 2nd byte: 61 */ 0x79c9,
- /* 2nd byte: 62 */ 0x79d5,
- /* 2nd byte: 63 */ 0x79e7,
- /* 2nd byte: 64 */ 0x79ec,
- /* 2nd byte: 65 */ 0x79e1,
- /* 2nd byte: 66 */ 0x79e3,
- /* 2nd byte: 67 */ 0x7a08,
- /* 2nd byte: 68 */ 0x7a0d,
- /* 2nd byte: 69 */ 0x7a18,
- /* 2nd byte: 70 */ 0x7a19,
- /* 2nd byte: 71 */ 0x7a20,
- /* 2nd byte: 72 */ 0x7a1f,
- /* 2nd byte: 73 */ 0x7980,
- /* 2nd byte: 74 */ 0x7a31,
- /* 2nd byte: 75 */ 0x7a3b,
- /* 2nd byte: 76 */ 0x7a3e,
- /* 2nd byte: 77 */ 0x7a37,
- /* 2nd byte: 78 */ 0x7a43,
- /* 2nd byte: 79 */ 0x7a57,
- /* 2nd byte: 80 */ 0x7a49,
- /* 2nd byte: 81 */ 0x7a61,
- /* 2nd byte: 82 */ 0x7a62,
- /* 2nd byte: 83 */ 0x7a69,
- /* 2nd byte: 84 */ 0x9f9d,
- /* 2nd byte: 85 */ 0x7a70,
- /* 2nd byte: 86 */ 0x7a79,
- /* 2nd byte: 87 */ 0x7a7d,
- /* 2nd byte: 88 */ 0x7a88,
- /* 2nd byte: 89 */ 0x7a97,
- /* 2nd byte: 90 */ 0x7a95,
- /* 2nd byte: 91 */ 0x7a98,
- /* 2nd byte: 92 */ 0x7a96,
- /* 2nd byte: 93 */ 0x7aa9,
- /* 2nd byte: 94 */ 0x7ac8,
- /* 2nd byte: 95 */ 0x7ab0,
- /* 2nd byte: 96 */ 0x7ab6,
- /* 2nd byte: 97 */ 0x7ac5,
- /* 2nd byte: 98 */ 0x7ac4,
- /* 2nd byte: 99 */ 0x7abf,
- /* 2nd byte: 100 */ 0x9083,
- /* 2nd byte: 101 */ 0x7ac7,
- /* 2nd byte: 102 */ 0x7aca,
- /* 2nd byte: 103 */ 0x7acd,
- /* 2nd byte: 104 */ 0x7acf,
- /* 2nd byte: 105 */ 0x7ad5,
- /* 2nd byte: 106 */ 0x7ad3,
- /* 2nd byte: 107 */ 0x7ad9,
- /* 2nd byte: 108 */ 0x7ada,
- /* 2nd byte: 109 */ 0x7add,
- /* 2nd byte: 110 */ 0x7ae1,
- /* 2nd byte: 111 */ 0x7ae2,
- /* 2nd byte: 112 */ 0x7ae6,
- /* 2nd byte: 113 */ 0x7aed,
- /* 2nd byte: 114 */ 0x7af0,
- /* 2nd byte: 115 */ 0x7b02,
- /* 2nd byte: 116 */ 0x7b0f,
- /* 2nd byte: 117 */ 0x7b0a,
- /* 2nd byte: 118 */ 0x7b06,
- /* 2nd byte: 119 */ 0x7b33,
- /* 2nd byte: 120 */ 0x7b18,
- /* 2nd byte: 121 */ 0x7b19,
- /* 2nd byte: 122 */ 0x7b1e,
- /* 2nd byte: 123 */ 0x7b35,
- /* 2nd byte: 124 */ 0x7b28,
- /* 2nd byte: 125 */ 0x7b36,
- /* 2nd byte: 126 */ 0x7b50},
-/* 1st byte: 100 */ {
- /* 2nd byte: 33 */ 0x7b7a,
- /* 2nd byte: 34 */ 0x7b04,
- /* 2nd byte: 35 */ 0x7b4d,
- /* 2nd byte: 36 */ 0x7b0b,
- /* 2nd byte: 37 */ 0x7b4c,
- /* 2nd byte: 38 */ 0x7b45,
- /* 2nd byte: 39 */ 0x7b75,
- /* 2nd byte: 40 */ 0x7b65,
- /* 2nd byte: 41 */ 0x7b74,
- /* 2nd byte: 42 */ 0x7b67,
- /* 2nd byte: 43 */ 0x7b70,
- /* 2nd byte: 44 */ 0x7b71,
- /* 2nd byte: 45 */ 0x7b6c,
- /* 2nd byte: 46 */ 0x7b6e,
- /* 2nd byte: 47 */ 0x7b9d,
- /* 2nd byte: 48 */ 0x7b98,
- /* 2nd byte: 49 */ 0x7b9f,
- /* 2nd byte: 50 */ 0x7b8d,
- /* 2nd byte: 51 */ 0x7b9c,
- /* 2nd byte: 52 */ 0x7b9a,
- /* 2nd byte: 53 */ 0x7b8b,
- /* 2nd byte: 54 */ 0x7b92,
- /* 2nd byte: 55 */ 0x7b8f,
- /* 2nd byte: 56 */ 0x7b5d,
- /* 2nd byte: 57 */ 0x7b99,
- /* 2nd byte: 58 */ 0x7bcb,
- /* 2nd byte: 59 */ 0x7bc1,
- /* 2nd byte: 60 */ 0x7bcc,
- /* 2nd byte: 61 */ 0x7bcf,
- /* 2nd byte: 62 */ 0x7bb4,
- /* 2nd byte: 63 */ 0x7bc6,
- /* 2nd byte: 64 */ 0x7bdd,
- /* 2nd byte: 65 */ 0x7be9,
- /* 2nd byte: 66 */ 0x7c11,
- /* 2nd byte: 67 */ 0x7c14,
- /* 2nd byte: 68 */ 0x7be6,
- /* 2nd byte: 69 */ 0x7be5,
- /* 2nd byte: 70 */ 0x7c60,
- /* 2nd byte: 71 */ 0x7c00,
- /* 2nd byte: 72 */ 0x7c07,
- /* 2nd byte: 73 */ 0x7c13,
- /* 2nd byte: 74 */ 0x7bf3,
- /* 2nd byte: 75 */ 0x7bf7,
- /* 2nd byte: 76 */ 0x7c17,
- /* 2nd byte: 77 */ 0x7c0d,
- /* 2nd byte: 78 */ 0x7bf6,
- /* 2nd byte: 79 */ 0x7c23,
- /* 2nd byte: 80 */ 0x7c27,
- /* 2nd byte: 81 */ 0x7c2a,
- /* 2nd byte: 82 */ 0x7c1f,
- /* 2nd byte: 83 */ 0x7c37,
- /* 2nd byte: 84 */ 0x7c2b,
- /* 2nd byte: 85 */ 0x7c3d,
- /* 2nd byte: 86 */ 0x7c4c,
- /* 2nd byte: 87 */ 0x7c43,
- /* 2nd byte: 88 */ 0x7c54,
- /* 2nd byte: 89 */ 0x7c4f,
- /* 2nd byte: 90 */ 0x7c40,
- /* 2nd byte: 91 */ 0x7c50,
- /* 2nd byte: 92 */ 0x7c58,
- /* 2nd byte: 93 */ 0x7c5f,
- /* 2nd byte: 94 */ 0x7c64,
- /* 2nd byte: 95 */ 0x7c56,
- /* 2nd byte: 96 */ 0x7c65,
- /* 2nd byte: 97 */ 0x7c6c,
- /* 2nd byte: 98 */ 0x7c75,
- /* 2nd byte: 99 */ 0x7c83,
- /* 2nd byte: 100 */ 0x7c90,
- /* 2nd byte: 101 */ 0x7ca4,
- /* 2nd byte: 102 */ 0x7cad,
- /* 2nd byte: 103 */ 0x7ca2,
- /* 2nd byte: 104 */ 0x7cab,
- /* 2nd byte: 105 */ 0x7ca1,
- /* 2nd byte: 106 */ 0x7ca8,
- /* 2nd byte: 107 */ 0x7cb3,
- /* 2nd byte: 108 */ 0x7cb2,
- /* 2nd byte: 109 */ 0x7cb1,
- /* 2nd byte: 110 */ 0x7cae,
- /* 2nd byte: 111 */ 0x7cb9,
- /* 2nd byte: 112 */ 0x7cbd,
- /* 2nd byte: 113 */ 0x7cc0,
- /* 2nd byte: 114 */ 0x7cc5,
- /* 2nd byte: 115 */ 0x7cc2,
- /* 2nd byte: 116 */ 0x7cd8,
- /* 2nd byte: 117 */ 0x7cd2,
- /* 2nd byte: 118 */ 0x7cdc,
- /* 2nd byte: 119 */ 0x7ce2,
- /* 2nd byte: 120 */ 0x9b3b,
- /* 2nd byte: 121 */ 0x7cef,
- /* 2nd byte: 122 */ 0x7cf2,
- /* 2nd byte: 123 */ 0x7cf4,
- /* 2nd byte: 124 */ 0x7cf6,
- /* 2nd byte: 125 */ 0x7cfa,
- /* 2nd byte: 126 */ 0x7d06},
-/* 1st byte: 101 */ {
- /* 2nd byte: 33 */ 0x7d02,
- /* 2nd byte: 34 */ 0x7d1c,
- /* 2nd byte: 35 */ 0x7d15,
- /* 2nd byte: 36 */ 0x7d0a,
- /* 2nd byte: 37 */ 0x7d45,
- /* 2nd byte: 38 */ 0x7d4b,
- /* 2nd byte: 39 */ 0x7d2e,
- /* 2nd byte: 40 */ 0x7d32,
- /* 2nd byte: 41 */ 0x7d3f,
- /* 2nd byte: 42 */ 0x7d35,
- /* 2nd byte: 43 */ 0x7d46,
- /* 2nd byte: 44 */ 0x7d73,
- /* 2nd byte: 45 */ 0x7d56,
- /* 2nd byte: 46 */ 0x7d4e,
- /* 2nd byte: 47 */ 0x7d72,
- /* 2nd byte: 48 */ 0x7d68,
- /* 2nd byte: 49 */ 0x7d6e,
- /* 2nd byte: 50 */ 0x7d4f,
- /* 2nd byte: 51 */ 0x7d63,
- /* 2nd byte: 52 */ 0x7d93,
- /* 2nd byte: 53 */ 0x7d89,
- /* 2nd byte: 54 */ 0x7d5b,
- /* 2nd byte: 55 */ 0x7d8f,
- /* 2nd byte: 56 */ 0x7d7d,
- /* 2nd byte: 57 */ 0x7d9b,
- /* 2nd byte: 58 */ 0x7dba,
- /* 2nd byte: 59 */ 0x7dae,
- /* 2nd byte: 60 */ 0x7da3,
- /* 2nd byte: 61 */ 0x7db5,
- /* 2nd byte: 62 */ 0x7dc7,
- /* 2nd byte: 63 */ 0x7dbd,
- /* 2nd byte: 64 */ 0x7dab,
- /* 2nd byte: 65 */ 0x7e3d,
- /* 2nd byte: 66 */ 0x7da2,
- /* 2nd byte: 67 */ 0x7daf,
- /* 2nd byte: 68 */ 0x7ddc,
- /* 2nd byte: 69 */ 0x7db8,
- /* 2nd byte: 70 */ 0x7d9f,
- /* 2nd byte: 71 */ 0x7db0,
- /* 2nd byte: 72 */ 0x7dd8,
- /* 2nd byte: 73 */ 0x7ddd,
- /* 2nd byte: 74 */ 0x7de4,
- /* 2nd byte: 75 */ 0x7dde,
- /* 2nd byte: 76 */ 0x7dfb,
- /* 2nd byte: 77 */ 0x7df2,
- /* 2nd byte: 78 */ 0x7de1,
- /* 2nd byte: 79 */ 0x7e05,
- /* 2nd byte: 80 */ 0x7e0a,
- /* 2nd byte: 81 */ 0x7e23,
- /* 2nd byte: 82 */ 0x7e21,
- /* 2nd byte: 83 */ 0x7e12,
- /* 2nd byte: 84 */ 0x7e31,
- /* 2nd byte: 85 */ 0x7e1f,
- /* 2nd byte: 86 */ 0x7e09,
- /* 2nd byte: 87 */ 0x7e0b,
- /* 2nd byte: 88 */ 0x7e22,
- /* 2nd byte: 89 */ 0x7e46,
- /* 2nd byte: 90 */ 0x7e66,
- /* 2nd byte: 91 */ 0x7e3b,
- /* 2nd byte: 92 */ 0x7e35,
- /* 2nd byte: 93 */ 0x7e39,
- /* 2nd byte: 94 */ 0x7e43,
- /* 2nd byte: 95 */ 0x7e37,
- /* 2nd byte: 96 */ 0x7e32,
- /* 2nd byte: 97 */ 0x7e3a,
- /* 2nd byte: 98 */ 0x7e67,
- /* 2nd byte: 99 */ 0x7e5d,
- /* 2nd byte: 100 */ 0x7e56,
- /* 2nd byte: 101 */ 0x7e5e,
- /* 2nd byte: 102 */ 0x7e59,
- /* 2nd byte: 103 */ 0x7e5a,
- /* 2nd byte: 104 */ 0x7e79,
- /* 2nd byte: 105 */ 0x7e6a,
- /* 2nd byte: 106 */ 0x7e69,
- /* 2nd byte: 107 */ 0x7e7c,
- /* 2nd byte: 108 */ 0x7e7b,
- /* 2nd byte: 109 */ 0x7e83,
- /* 2nd byte: 110 */ 0x7dd5,
- /* 2nd byte: 111 */ 0x7e7d,
- /* 2nd byte: 112 */ 0x8fae,
- /* 2nd byte: 113 */ 0x7e7f,
- /* 2nd byte: 114 */ 0x7e88,
- /* 2nd byte: 115 */ 0x7e89,
- /* 2nd byte: 116 */ 0x7e8c,
- /* 2nd byte: 117 */ 0x7e92,
- /* 2nd byte: 118 */ 0x7e90,
- /* 2nd byte: 119 */ 0x7e93,
- /* 2nd byte: 120 */ 0x7e94,
- /* 2nd byte: 121 */ 0x7e96,
- /* 2nd byte: 122 */ 0x7e8e,
- /* 2nd byte: 123 */ 0x7e9b,
- /* 2nd byte: 124 */ 0x7e9c,
- /* 2nd byte: 125 */ 0x7f38,
- /* 2nd byte: 126 */ 0x7f3a},
-/* 1st byte: 102 */ {
- /* 2nd byte: 33 */ 0x7f45,
- /* 2nd byte: 34 */ 0x7f4c,
- /* 2nd byte: 35 */ 0x7f4d,
- /* 2nd byte: 36 */ 0x7f4e,
- /* 2nd byte: 37 */ 0x7f50,
- /* 2nd byte: 38 */ 0x7f51,
- /* 2nd byte: 39 */ 0x7f55,
- /* 2nd byte: 40 */ 0x7f54,
- /* 2nd byte: 41 */ 0x7f58,
- /* 2nd byte: 42 */ 0x7f5f,
- /* 2nd byte: 43 */ 0x7f60,
- /* 2nd byte: 44 */ 0x7f68,
- /* 2nd byte: 45 */ 0x7f69,
- /* 2nd byte: 46 */ 0x7f67,
- /* 2nd byte: 47 */ 0x7f78,
- /* 2nd byte: 48 */ 0x7f82,
- /* 2nd byte: 49 */ 0x7f86,
- /* 2nd byte: 50 */ 0x7f83,
- /* 2nd byte: 51 */ 0x7f88,
- /* 2nd byte: 52 */ 0x7f87,
- /* 2nd byte: 53 */ 0x7f8c,
- /* 2nd byte: 54 */ 0x7f94,
- /* 2nd byte: 55 */ 0x7f9e,
- /* 2nd byte: 56 */ 0x7f9d,
- /* 2nd byte: 57 */ 0x7f9a,
- /* 2nd byte: 58 */ 0x7fa3,
- /* 2nd byte: 59 */ 0x7faf,
- /* 2nd byte: 60 */ 0x7fb2,
- /* 2nd byte: 61 */ 0x7fb9,
- /* 2nd byte: 62 */ 0x7fae,
- /* 2nd byte: 63 */ 0x7fb6,
- /* 2nd byte: 64 */ 0x7fb8,
- /* 2nd byte: 65 */ 0x8b71,
- /* 2nd byte: 66 */ 0x7fc5,
- /* 2nd byte: 67 */ 0x7fc6,
- /* 2nd byte: 68 */ 0x7fca,
- /* 2nd byte: 69 */ 0x7fd5,
- /* 2nd byte: 70 */ 0x7fd4,
- /* 2nd byte: 71 */ 0x7fe1,
- /* 2nd byte: 72 */ 0x7fe6,
- /* 2nd byte: 73 */ 0x7fe9,
- /* 2nd byte: 74 */ 0x7ff3,
- /* 2nd byte: 75 */ 0x7ff9,
- /* 2nd byte: 76 */ 0x98dc,
- /* 2nd byte: 77 */ 0x8006,
- /* 2nd byte: 78 */ 0x8004,
- /* 2nd byte: 79 */ 0x800b,
- /* 2nd byte: 80 */ 0x8012,
- /* 2nd byte: 81 */ 0x8018,
- /* 2nd byte: 82 */ 0x8019,
- /* 2nd byte: 83 */ 0x801c,
- /* 2nd byte: 84 */ 0x8021,
- /* 2nd byte: 85 */ 0x8028,
- /* 2nd byte: 86 */ 0x803f,
- /* 2nd byte: 87 */ 0x803b,
- /* 2nd byte: 88 */ 0x804a,
- /* 2nd byte: 89 */ 0x8046,
- /* 2nd byte: 90 */ 0x8052,
- /* 2nd byte: 91 */ 0x8058,
- /* 2nd byte: 92 */ 0x805a,
- /* 2nd byte: 93 */ 0x805f,
- /* 2nd byte: 94 */ 0x8062,
- /* 2nd byte: 95 */ 0x8068,
- /* 2nd byte: 96 */ 0x8073,
- /* 2nd byte: 97 */ 0x8072,
- /* 2nd byte: 98 */ 0x8070,
- /* 2nd byte: 99 */ 0x8076,
- /* 2nd byte: 100 */ 0x8079,
- /* 2nd byte: 101 */ 0x807d,
- /* 2nd byte: 102 */ 0x807f,
- /* 2nd byte: 103 */ 0x8084,
- /* 2nd byte: 104 */ 0x8086,
- /* 2nd byte: 105 */ 0x8085,
- /* 2nd byte: 106 */ 0x809b,
- /* 2nd byte: 107 */ 0x8093,
- /* 2nd byte: 108 */ 0x809a,
- /* 2nd byte: 109 */ 0x80ad,
- /* 2nd byte: 110 */ 0x5190,
- /* 2nd byte: 111 */ 0x80ac,
- /* 2nd byte: 112 */ 0x80db,
- /* 2nd byte: 113 */ 0x80e5,
- /* 2nd byte: 114 */ 0x80d9,
- /* 2nd byte: 115 */ 0x80dd,
- /* 2nd byte: 116 */ 0x80c4,
- /* 2nd byte: 117 */ 0x80da,
- /* 2nd byte: 118 */ 0x80d6,
- /* 2nd byte: 119 */ 0x8109,
- /* 2nd byte: 120 */ 0x80ef,
- /* 2nd byte: 121 */ 0x80f1,
- /* 2nd byte: 122 */ 0x811b,
- /* 2nd byte: 123 */ 0x8129,
- /* 2nd byte: 124 */ 0x8123,
- /* 2nd byte: 125 */ 0x812f,
- /* 2nd byte: 126 */ 0x814b},
-/* 1st byte: 103 */ {
- /* 2nd byte: 33 */ 0x968b,
- /* 2nd byte: 34 */ 0x8146,
- /* 2nd byte: 35 */ 0x813e,
- /* 2nd byte: 36 */ 0x8153,
- /* 2nd byte: 37 */ 0x8151,
- /* 2nd byte: 38 */ 0x80fc,
- /* 2nd byte: 39 */ 0x8171,
- /* 2nd byte: 40 */ 0x816e,
- /* 2nd byte: 41 */ 0x8165,
- /* 2nd byte: 42 */ 0x8166,
- /* 2nd byte: 43 */ 0x8174,
- /* 2nd byte: 44 */ 0x8183,
- /* 2nd byte: 45 */ 0x8188,
- /* 2nd byte: 46 */ 0x818a,
- /* 2nd byte: 47 */ 0x8180,
- /* 2nd byte: 48 */ 0x8182,
- /* 2nd byte: 49 */ 0x81a0,
- /* 2nd byte: 50 */ 0x8195,
- /* 2nd byte: 51 */ 0x81a4,
- /* 2nd byte: 52 */ 0x81a3,
- /* 2nd byte: 53 */ 0x815f,
- /* 2nd byte: 54 */ 0x8193,
- /* 2nd byte: 55 */ 0x81a9,
- /* 2nd byte: 56 */ 0x81b0,
- /* 2nd byte: 57 */ 0x81b5,
- /* 2nd byte: 58 */ 0x81be,
- /* 2nd byte: 59 */ 0x81b8,
- /* 2nd byte: 60 */ 0x81bd,
- /* 2nd byte: 61 */ 0x81c0,
- /* 2nd byte: 62 */ 0x81c2,
- /* 2nd byte: 63 */ 0x81ba,
- /* 2nd byte: 64 */ 0x81c9,
- /* 2nd byte: 65 */ 0x81cd,
- /* 2nd byte: 66 */ 0x81d1,
- /* 2nd byte: 67 */ 0x81d9,
- /* 2nd byte: 68 */ 0x81d8,
- /* 2nd byte: 69 */ 0x81c8,
- /* 2nd byte: 70 */ 0x81da,
- /* 2nd byte: 71 */ 0x81df,
- /* 2nd byte: 72 */ 0x81e0,
- /* 2nd byte: 73 */ 0x81e7,
- /* 2nd byte: 74 */ 0x81fa,
- /* 2nd byte: 75 */ 0x81fb,
- /* 2nd byte: 76 */ 0x81fe,
- /* 2nd byte: 77 */ 0x8201,
- /* 2nd byte: 78 */ 0x8202,
- /* 2nd byte: 79 */ 0x8205,
- /* 2nd byte: 80 */ 0x8207,
- /* 2nd byte: 81 */ 0x820a,
- /* 2nd byte: 82 */ 0x820d,
- /* 2nd byte: 83 */ 0x8210,
- /* 2nd byte: 84 */ 0x8216,
- /* 2nd byte: 85 */ 0x8229,
- /* 2nd byte: 86 */ 0x822b,
- /* 2nd byte: 87 */ 0x8238,
- /* 2nd byte: 88 */ 0x8233,
- /* 2nd byte: 89 */ 0x8240,
- /* 2nd byte: 90 */ 0x8259,
- /* 2nd byte: 91 */ 0x8258,
- /* 2nd byte: 92 */ 0x825d,
- /* 2nd byte: 93 */ 0x825a,
- /* 2nd byte: 94 */ 0x825f,
- /* 2nd byte: 95 */ 0x8264,
- /* 2nd byte: 96 */ 0x8262,
- /* 2nd byte: 97 */ 0x8268,
- /* 2nd byte: 98 */ 0x826a,
- /* 2nd byte: 99 */ 0x826b,
- /* 2nd byte: 100 */ 0x822e,
- /* 2nd byte: 101 */ 0x8271,
- /* 2nd byte: 102 */ 0x8277,
- /* 2nd byte: 103 */ 0x8278,
- /* 2nd byte: 104 */ 0x827e,
- /* 2nd byte: 105 */ 0x828d,
- /* 2nd byte: 106 */ 0x8292,
- /* 2nd byte: 107 */ 0x82ab,
- /* 2nd byte: 108 */ 0x829f,
- /* 2nd byte: 109 */ 0x82bb,
- /* 2nd byte: 110 */ 0x82ac,
- /* 2nd byte: 111 */ 0x82e1,
- /* 2nd byte: 112 */ 0x82e3,
- /* 2nd byte: 113 */ 0x82df,
- /* 2nd byte: 114 */ 0x82d2,
- /* 2nd byte: 115 */ 0x82f4,
- /* 2nd byte: 116 */ 0x82f3,
- /* 2nd byte: 117 */ 0x82fa,
- /* 2nd byte: 118 */ 0x8393,
- /* 2nd byte: 119 */ 0x8303,
- /* 2nd byte: 120 */ 0x82fb,
- /* 2nd byte: 121 */ 0x82f9,
- /* 2nd byte: 122 */ 0x82de,
- /* 2nd byte: 123 */ 0x8306,
- /* 2nd byte: 124 */ 0x82dc,
- /* 2nd byte: 125 */ 0x8309,
- /* 2nd byte: 126 */ 0x82d9},
-/* 1st byte: 104 */ {
- /* 2nd byte: 33 */ 0x8335,
- /* 2nd byte: 34 */ 0x8334,
- /* 2nd byte: 35 */ 0x8316,
- /* 2nd byte: 36 */ 0x8332,
- /* 2nd byte: 37 */ 0x8331,
- /* 2nd byte: 38 */ 0x8340,
- /* 2nd byte: 39 */ 0x8339,
- /* 2nd byte: 40 */ 0x8350,
- /* 2nd byte: 41 */ 0x8345,
- /* 2nd byte: 42 */ 0x832f,
- /* 2nd byte: 43 */ 0x832b,
- /* 2nd byte: 44 */ 0x8317,
- /* 2nd byte: 45 */ 0x8318,
- /* 2nd byte: 46 */ 0x8385,
- /* 2nd byte: 47 */ 0x839a,
- /* 2nd byte: 48 */ 0x83aa,
- /* 2nd byte: 49 */ 0x839f,
- /* 2nd byte: 50 */ 0x83a2,
- /* 2nd byte: 51 */ 0x8396,
- /* 2nd byte: 52 */ 0x8323,
- /* 2nd byte: 53 */ 0x838e,
- /* 2nd byte: 54 */ 0x8387,
- /* 2nd byte: 55 */ 0x838a,
- /* 2nd byte: 56 */ 0x837c,
- /* 2nd byte: 57 */ 0x83b5,
- /* 2nd byte: 58 */ 0x8373,
- /* 2nd byte: 59 */ 0x8375,
- /* 2nd byte: 60 */ 0x83a0,
- /* 2nd byte: 61 */ 0x8389,
- /* 2nd byte: 62 */ 0x83a8,
- /* 2nd byte: 63 */ 0x83f4,
- /* 2nd byte: 64 */ 0x8413,
- /* 2nd byte: 65 */ 0x83eb,
- /* 2nd byte: 66 */ 0x83ce,
- /* 2nd byte: 67 */ 0x83fd,
- /* 2nd byte: 68 */ 0x8403,
- /* 2nd byte: 69 */ 0x83d8,
- /* 2nd byte: 70 */ 0x840b,
- /* 2nd byte: 71 */ 0x83c1,
- /* 2nd byte: 72 */ 0x83f7,
- /* 2nd byte: 73 */ 0x8407,
- /* 2nd byte: 74 */ 0x83e0,
- /* 2nd byte: 75 */ 0x83f2,
- /* 2nd byte: 76 */ 0x840d,
- /* 2nd byte: 77 */ 0x8422,
- /* 2nd byte: 78 */ 0x8420,
- /* 2nd byte: 79 */ 0x83bd,
- /* 2nd byte: 80 */ 0x8438,
- /* 2nd byte: 81 */ 0x8506,
- /* 2nd byte: 82 */ 0x83fb,
- /* 2nd byte: 83 */ 0x846d,
- /* 2nd byte: 84 */ 0x842a,
- /* 2nd byte: 85 */ 0x843c,
- /* 2nd byte: 86 */ 0x855a,
- /* 2nd byte: 87 */ 0x8484,
- /* 2nd byte: 88 */ 0x8477,
- /* 2nd byte: 89 */ 0x846b,
- /* 2nd byte: 90 */ 0x84ad,
- /* 2nd byte: 91 */ 0x846e,
- /* 2nd byte: 92 */ 0x8482,
- /* 2nd byte: 93 */ 0x8469,
- /* 2nd byte: 94 */ 0x8446,
- /* 2nd byte: 95 */ 0x842c,
- /* 2nd byte: 96 */ 0x846f,
- /* 2nd byte: 97 */ 0x8479,
- /* 2nd byte: 98 */ 0x8435,
- /* 2nd byte: 99 */ 0x84ca,
- /* 2nd byte: 100 */ 0x8462,
- /* 2nd byte: 101 */ 0x84b9,
- /* 2nd byte: 102 */ 0x84bf,
- /* 2nd byte: 103 */ 0x849f,
- /* 2nd byte: 104 */ 0x84d9,
- /* 2nd byte: 105 */ 0x84cd,
- /* 2nd byte: 106 */ 0x84bb,
- /* 2nd byte: 107 */ 0x84da,
- /* 2nd byte: 108 */ 0x84d0,
- /* 2nd byte: 109 */ 0x84c1,
- /* 2nd byte: 110 */ 0x84c6,
- /* 2nd byte: 111 */ 0x84d6,
- /* 2nd byte: 112 */ 0x84a1,
- /* 2nd byte: 113 */ 0x8521,
- /* 2nd byte: 114 */ 0x84ff,
- /* 2nd byte: 115 */ 0x84f4,
- /* 2nd byte: 116 */ 0x8517,
- /* 2nd byte: 117 */ 0x8518,
- /* 2nd byte: 118 */ 0x852c,
- /* 2nd byte: 119 */ 0x851f,
- /* 2nd byte: 120 */ 0x8515,
- /* 2nd byte: 121 */ 0x8514,
- /* 2nd byte: 122 */ 0x84fc,
- /* 2nd byte: 123 */ 0x8540,
- /* 2nd byte: 124 */ 0x8563,
- /* 2nd byte: 125 */ 0x8558,
- /* 2nd byte: 126 */ 0x8548},
-/* 1st byte: 105 */ {
- /* 2nd byte: 33 */ 0x8541,
- /* 2nd byte: 34 */ 0x8602,
- /* 2nd byte: 35 */ 0x854b,
- /* 2nd byte: 36 */ 0x8555,
- /* 2nd byte: 37 */ 0x8580,
- /* 2nd byte: 38 */ 0x85a4,
- /* 2nd byte: 39 */ 0x8588,
- /* 2nd byte: 40 */ 0x8591,
- /* 2nd byte: 41 */ 0x858a,
- /* 2nd byte: 42 */ 0x85a8,
- /* 2nd byte: 43 */ 0x856d,
- /* 2nd byte: 44 */ 0x8594,
- /* 2nd byte: 45 */ 0x859b,
- /* 2nd byte: 46 */ 0x85ea,
- /* 2nd byte: 47 */ 0x8587,
- /* 2nd byte: 48 */ 0x859c,
- /* 2nd byte: 49 */ 0x8577,
- /* 2nd byte: 50 */ 0x857e,
- /* 2nd byte: 51 */ 0x8590,
- /* 2nd byte: 52 */ 0x85c9,
- /* 2nd byte: 53 */ 0x85ba,
- /* 2nd byte: 54 */ 0x85cf,
- /* 2nd byte: 55 */ 0x85b9,
- /* 2nd byte: 56 */ 0x85d0,
- /* 2nd byte: 57 */ 0x85d5,
- /* 2nd byte: 58 */ 0x85dd,
- /* 2nd byte: 59 */ 0x85e5,
- /* 2nd byte: 60 */ 0x85dc,
- /* 2nd byte: 61 */ 0x85f9,
- /* 2nd byte: 62 */ 0x860a,
- /* 2nd byte: 63 */ 0x8613,
- /* 2nd byte: 64 */ 0x860b,
- /* 2nd byte: 65 */ 0x85fe,
- /* 2nd byte: 66 */ 0x85fa,
- /* 2nd byte: 67 */ 0x8606,
- /* 2nd byte: 68 */ 0x8622,
- /* 2nd byte: 69 */ 0x861a,
- /* 2nd byte: 70 */ 0x8630,
- /* 2nd byte: 71 */ 0x863f,
- /* 2nd byte: 72 */ 0x864d,
- /* 2nd byte: 73 */ 0x4e55,
- /* 2nd byte: 74 */ 0x8654,
- /* 2nd byte: 75 */ 0x865f,
- /* 2nd byte: 76 */ 0x8667,
- /* 2nd byte: 77 */ 0x8671,
- /* 2nd byte: 78 */ 0x8693,
- /* 2nd byte: 79 */ 0x86a3,
- /* 2nd byte: 80 */ 0x86a9,
- /* 2nd byte: 81 */ 0x86aa,
- /* 2nd byte: 82 */ 0x868b,
- /* 2nd byte: 83 */ 0x868c,
- /* 2nd byte: 84 */ 0x86b6,
- /* 2nd byte: 85 */ 0x86af,
- /* 2nd byte: 86 */ 0x86c4,
- /* 2nd byte: 87 */ 0x86c6,
- /* 2nd byte: 88 */ 0x86b0,
- /* 2nd byte: 89 */ 0x86c9,
- /* 2nd byte: 90 */ 0x8823,
- /* 2nd byte: 91 */ 0x86ab,
- /* 2nd byte: 92 */ 0x86d4,
- /* 2nd byte: 93 */ 0x86de,
- /* 2nd byte: 94 */ 0x86e9,
- /* 2nd byte: 95 */ 0x86ec,
- /* 2nd byte: 96 */ 0x86df,
- /* 2nd byte: 97 */ 0x86db,
- /* 2nd byte: 98 */ 0x86ef,
- /* 2nd byte: 99 */ 0x8712,
- /* 2nd byte: 100 */ 0x8706,
- /* 2nd byte: 101 */ 0x8708,
- /* 2nd byte: 102 */ 0x8700,
- /* 2nd byte: 103 */ 0x8703,
- /* 2nd byte: 104 */ 0x86fb,
- /* 2nd byte: 105 */ 0x8711,
- /* 2nd byte: 106 */ 0x8709,
- /* 2nd byte: 107 */ 0x870d,
- /* 2nd byte: 108 */ 0x86f9,
- /* 2nd byte: 109 */ 0x870a,
- /* 2nd byte: 110 */ 0x8734,
- /* 2nd byte: 111 */ 0x873f,
- /* 2nd byte: 112 */ 0x8737,
- /* 2nd byte: 113 */ 0x873b,
- /* 2nd byte: 114 */ 0x8725,
- /* 2nd byte: 115 */ 0x8729,
- /* 2nd byte: 116 */ 0x871a,
- /* 2nd byte: 117 */ 0x8760,
- /* 2nd byte: 118 */ 0x875f,
- /* 2nd byte: 119 */ 0x8778,
- /* 2nd byte: 120 */ 0x874c,
- /* 2nd byte: 121 */ 0x874e,
- /* 2nd byte: 122 */ 0x8774,
- /* 2nd byte: 123 */ 0x8757,
- /* 2nd byte: 124 */ 0x8768,
- /* 2nd byte: 125 */ 0x876e,
- /* 2nd byte: 126 */ 0x8759},
-/* 1st byte: 106 */ {
- /* 2nd byte: 33 */ 0x8753,
- /* 2nd byte: 34 */ 0x8763,
- /* 2nd byte: 35 */ 0x876a,
- /* 2nd byte: 36 */ 0x8805,
- /* 2nd byte: 37 */ 0x87a2,
- /* 2nd byte: 38 */ 0x879f,
- /* 2nd byte: 39 */ 0x8782,
- /* 2nd byte: 40 */ 0x87af,
- /* 2nd byte: 41 */ 0x87cb,
- /* 2nd byte: 42 */ 0x87bd,
- /* 2nd byte: 43 */ 0x87c0,
- /* 2nd byte: 44 */ 0x87d0,
- /* 2nd byte: 45 */ 0x96d6,
- /* 2nd byte: 46 */ 0x87ab,
- /* 2nd byte: 47 */ 0x87c4,
- /* 2nd byte: 48 */ 0x87b3,
- /* 2nd byte: 49 */ 0x87c7,
- /* 2nd byte: 50 */ 0x87c6,
- /* 2nd byte: 51 */ 0x87bb,
- /* 2nd byte: 52 */ 0x87ef,
- /* 2nd byte: 53 */ 0x87f2,
- /* 2nd byte: 54 */ 0x87e0,
- /* 2nd byte: 55 */ 0x880f,
- /* 2nd byte: 56 */ 0x880d,
- /* 2nd byte: 57 */ 0x87fe,
- /* 2nd byte: 58 */ 0x87f6,
- /* 2nd byte: 59 */ 0x87f7,
- /* 2nd byte: 60 */ 0x880e,
- /* 2nd byte: 61 */ 0x87d2,
- /* 2nd byte: 62 */ 0x8811,
- /* 2nd byte: 63 */ 0x8816,
- /* 2nd byte: 64 */ 0x8815,
- /* 2nd byte: 65 */ 0x8822,
- /* 2nd byte: 66 */ 0x8821,
- /* 2nd byte: 67 */ 0x8831,
- /* 2nd byte: 68 */ 0x8836,
- /* 2nd byte: 69 */ 0x8839,
- /* 2nd byte: 70 */ 0x8827,
- /* 2nd byte: 71 */ 0x883b,
- /* 2nd byte: 72 */ 0x8844,
- /* 2nd byte: 73 */ 0x8842,
- /* 2nd byte: 74 */ 0x8852,
- /* 2nd byte: 75 */ 0x8859,
- /* 2nd byte: 76 */ 0x885e,
- /* 2nd byte: 77 */ 0x8862,
- /* 2nd byte: 78 */ 0x886b,
- /* 2nd byte: 79 */ 0x8881,
- /* 2nd byte: 80 */ 0x887e,
- /* 2nd byte: 81 */ 0x889e,
- /* 2nd byte: 82 */ 0x8875,
- /* 2nd byte: 83 */ 0x887d,
- /* 2nd byte: 84 */ 0x88b5,
- /* 2nd byte: 85 */ 0x8872,
- /* 2nd byte: 86 */ 0x8882,
- /* 2nd byte: 87 */ 0x8897,
- /* 2nd byte: 88 */ 0x8892,
- /* 2nd byte: 89 */ 0x88ae,
- /* 2nd byte: 90 */ 0x8899,
- /* 2nd byte: 91 */ 0x88a2,
- /* 2nd byte: 92 */ 0x888d,
- /* 2nd byte: 93 */ 0x88a4,
- /* 2nd byte: 94 */ 0x88b0,
- /* 2nd byte: 95 */ 0x88bf,
- /* 2nd byte: 96 */ 0x88b1,
- /* 2nd byte: 97 */ 0x88c3,
- /* 2nd byte: 98 */ 0x88c4,
- /* 2nd byte: 99 */ 0x88d4,
- /* 2nd byte: 100 */ 0x88d8,
- /* 2nd byte: 101 */ 0x88d9,
- /* 2nd byte: 102 */ 0x88dd,
- /* 2nd byte: 103 */ 0x88f9,
- /* 2nd byte: 104 */ 0x8902,
- /* 2nd byte: 105 */ 0x88fc,
- /* 2nd byte: 106 */ 0x88f4,
- /* 2nd byte: 107 */ 0x88e8,
- /* 2nd byte: 108 */ 0x88f2,
- /* 2nd byte: 109 */ 0x8904,
- /* 2nd byte: 110 */ 0x890c,
- /* 2nd byte: 111 */ 0x890a,
- /* 2nd byte: 112 */ 0x8913,
- /* 2nd byte: 113 */ 0x8943,
- /* 2nd byte: 114 */ 0x891e,
- /* 2nd byte: 115 */ 0x8925,
- /* 2nd byte: 116 */ 0x892a,
- /* 2nd byte: 117 */ 0x892b,
- /* 2nd byte: 118 */ 0x8941,
- /* 2nd byte: 119 */ 0x8944,
- /* 2nd byte: 120 */ 0x893b,
- /* 2nd byte: 121 */ 0x8936,
- /* 2nd byte: 122 */ 0x8938,
- /* 2nd byte: 123 */ 0x894c,
- /* 2nd byte: 124 */ 0x891d,
- /* 2nd byte: 125 */ 0x8960,
- /* 2nd byte: 126 */ 0x895e},
-/* 1st byte: 107 */ {
- /* 2nd byte: 33 */ 0x8966,
- /* 2nd byte: 34 */ 0x8964,
- /* 2nd byte: 35 */ 0x896d,
- /* 2nd byte: 36 */ 0x896a,
- /* 2nd byte: 37 */ 0x896f,
- /* 2nd byte: 38 */ 0x8974,
- /* 2nd byte: 39 */ 0x8977,
- /* 2nd byte: 40 */ 0x897e,
- /* 2nd byte: 41 */ 0x8983,
- /* 2nd byte: 42 */ 0x8988,
- /* 2nd byte: 43 */ 0x898a,
- /* 2nd byte: 44 */ 0x8993,
- /* 2nd byte: 45 */ 0x8998,
- /* 2nd byte: 46 */ 0x89a1,
- /* 2nd byte: 47 */ 0x89a9,
- /* 2nd byte: 48 */ 0x89a6,
- /* 2nd byte: 49 */ 0x89ac,
- /* 2nd byte: 50 */ 0x89af,
- /* 2nd byte: 51 */ 0x89b2,
- /* 2nd byte: 52 */ 0x89ba,
- /* 2nd byte: 53 */ 0x89bd,
- /* 2nd byte: 54 */ 0x89bf,
- /* 2nd byte: 55 */ 0x89c0,
- /* 2nd byte: 56 */ 0x89da,
- /* 2nd byte: 57 */ 0x89dc,
- /* 2nd byte: 58 */ 0x89dd,
- /* 2nd byte: 59 */ 0x89e7,
- /* 2nd byte: 60 */ 0x89f4,
- /* 2nd byte: 61 */ 0x89f8,
- /* 2nd byte: 62 */ 0x8a03,
- /* 2nd byte: 63 */ 0x8a16,
- /* 2nd byte: 64 */ 0x8a10,
- /* 2nd byte: 65 */ 0x8a0c,
- /* 2nd byte: 66 */ 0x8a1b,
- /* 2nd byte: 67 */ 0x8a1d,
- /* 2nd byte: 68 */ 0x8a25,
- /* 2nd byte: 69 */ 0x8a36,
- /* 2nd byte: 70 */ 0x8a41,
- /* 2nd byte: 71 */ 0x8a5b,
- /* 2nd byte: 72 */ 0x8a52,
- /* 2nd byte: 73 */ 0x8a46,
- /* 2nd byte: 74 */ 0x8a48,
- /* 2nd byte: 75 */ 0x8a7c,
- /* 2nd byte: 76 */ 0x8a6d,
- /* 2nd byte: 77 */ 0x8a6c,
- /* 2nd byte: 78 */ 0x8a62,
- /* 2nd byte: 79 */ 0x8a85,
- /* 2nd byte: 80 */ 0x8a82,
- /* 2nd byte: 81 */ 0x8a84,
- /* 2nd byte: 82 */ 0x8aa8,
- /* 2nd byte: 83 */ 0x8aa1,
- /* 2nd byte: 84 */ 0x8a91,
- /* 2nd byte: 85 */ 0x8aa5,
- /* 2nd byte: 86 */ 0x8aa6,
- /* 2nd byte: 87 */ 0x8a9a,
- /* 2nd byte: 88 */ 0x8aa3,
- /* 2nd byte: 89 */ 0x8ac4,
- /* 2nd byte: 90 */ 0x8acd,
- /* 2nd byte: 91 */ 0x8ac2,
- /* 2nd byte: 92 */ 0x8ada,
- /* 2nd byte: 93 */ 0x8aeb,
- /* 2nd byte: 94 */ 0x8af3,
- /* 2nd byte: 95 */ 0x8ae7,
- /* 2nd byte: 96 */ 0x8ae4,
- /* 2nd byte: 97 */ 0x8af1,
- /* 2nd byte: 98 */ 0x8b14,
- /* 2nd byte: 99 */ 0x8ae0,
- /* 2nd byte: 100 */ 0x8ae2,
- /* 2nd byte: 101 */ 0x8af7,
- /* 2nd byte: 102 */ 0x8ade,
- /* 2nd byte: 103 */ 0x8adb,
- /* 2nd byte: 104 */ 0x8b0c,
- /* 2nd byte: 105 */ 0x8b07,
- /* 2nd byte: 106 */ 0x8b1a,
- /* 2nd byte: 107 */ 0x8ae1,
- /* 2nd byte: 108 */ 0x8b16,
- /* 2nd byte: 109 */ 0x8b10,
- /* 2nd byte: 110 */ 0x8b17,
- /* 2nd byte: 111 */ 0x8b20,
- /* 2nd byte: 112 */ 0x8b33,
- /* 2nd byte: 113 */ 0x97ab,
- /* 2nd byte: 114 */ 0x8b26,
- /* 2nd byte: 115 */ 0x8b2b,
- /* 2nd byte: 116 */ 0x8b3e,
- /* 2nd byte: 117 */ 0x8b28,
- /* 2nd byte: 118 */ 0x8b41,
- /* 2nd byte: 119 */ 0x8b4c,
- /* 2nd byte: 120 */ 0x8b4f,
- /* 2nd byte: 121 */ 0x8b4e,
- /* 2nd byte: 122 */ 0x8b49,
- /* 2nd byte: 123 */ 0x8b56,
- /* 2nd byte: 124 */ 0x8b5b,
- /* 2nd byte: 125 */ 0x8b5a,
- /* 2nd byte: 126 */ 0x8b6b},
-/* 1st byte: 108 */ {
- /* 2nd byte: 33 */ 0x8b5f,
- /* 2nd byte: 34 */ 0x8b6c,
- /* 2nd byte: 35 */ 0x8b6f,
- /* 2nd byte: 36 */ 0x8b74,
- /* 2nd byte: 37 */ 0x8b7d,
- /* 2nd byte: 38 */ 0x8b80,
- /* 2nd byte: 39 */ 0x8b8c,
- /* 2nd byte: 40 */ 0x8b8e,
- /* 2nd byte: 41 */ 0x8b92,
- /* 2nd byte: 42 */ 0x8b93,
- /* 2nd byte: 43 */ 0x8b96,
- /* 2nd byte: 44 */ 0x8b99,
- /* 2nd byte: 45 */ 0x8b9a,
- /* 2nd byte: 46 */ 0x8c3a,
- /* 2nd byte: 47 */ 0x8c41,
- /* 2nd byte: 48 */ 0x8c3f,
- /* 2nd byte: 49 */ 0x8c48,
- /* 2nd byte: 50 */ 0x8c4c,
- /* 2nd byte: 51 */ 0x8c4e,
- /* 2nd byte: 52 */ 0x8c50,
- /* 2nd byte: 53 */ 0x8c55,
- /* 2nd byte: 54 */ 0x8c62,
- /* 2nd byte: 55 */ 0x8c6c,
- /* 2nd byte: 56 */ 0x8c78,
- /* 2nd byte: 57 */ 0x8c7a,
- /* 2nd byte: 58 */ 0x8c82,
- /* 2nd byte: 59 */ 0x8c89,
- /* 2nd byte: 60 */ 0x8c85,
- /* 2nd byte: 61 */ 0x8c8a,
- /* 2nd byte: 62 */ 0x8c8d,
- /* 2nd byte: 63 */ 0x8c8e,
- /* 2nd byte: 64 */ 0x8c94,
- /* 2nd byte: 65 */ 0x8c7c,
- /* 2nd byte: 66 */ 0x8c98,
- /* 2nd byte: 67 */ 0x621d,
- /* 2nd byte: 68 */ 0x8cad,
- /* 2nd byte: 69 */ 0x8caa,
- /* 2nd byte: 70 */ 0x8cbd,
- /* 2nd byte: 71 */ 0x8cb2,
- /* 2nd byte: 72 */ 0x8cb3,
- /* 2nd byte: 73 */ 0x8cae,
- /* 2nd byte: 74 */ 0x8cb6,
- /* 2nd byte: 75 */ 0x8cc8,
- /* 2nd byte: 76 */ 0x8cc1,
- /* 2nd byte: 77 */ 0x8ce4,
- /* 2nd byte: 78 */ 0x8ce3,
- /* 2nd byte: 79 */ 0x8cda,
- /* 2nd byte: 80 */ 0x8cfd,
- /* 2nd byte: 81 */ 0x8cfa,
- /* 2nd byte: 82 */ 0x8cfb,
- /* 2nd byte: 83 */ 0x8d04,
- /* 2nd byte: 84 */ 0x8d05,
- /* 2nd byte: 85 */ 0x8d0a,
- /* 2nd byte: 86 */ 0x8d07,
- /* 2nd byte: 87 */ 0x8d0f,
- /* 2nd byte: 88 */ 0x8d0d,
- /* 2nd byte: 89 */ 0x8d10,
- /* 2nd byte: 90 */ 0x9f4e,
- /* 2nd byte: 91 */ 0x8d13,
- /* 2nd byte: 92 */ 0x8ccd,
- /* 2nd byte: 93 */ 0x8d14,
- /* 2nd byte: 94 */ 0x8d16,
- /* 2nd byte: 95 */ 0x8d67,
- /* 2nd byte: 96 */ 0x8d6d,
- /* 2nd byte: 97 */ 0x8d71,
- /* 2nd byte: 98 */ 0x8d73,
- /* 2nd byte: 99 */ 0x8d81,
- /* 2nd byte: 100 */ 0x8d99,
- /* 2nd byte: 101 */ 0x8dc2,
- /* 2nd byte: 102 */ 0x8dbe,
- /* 2nd byte: 103 */ 0x8dba,
- /* 2nd byte: 104 */ 0x8dcf,
- /* 2nd byte: 105 */ 0x8dda,
- /* 2nd byte: 106 */ 0x8dd6,
- /* 2nd byte: 107 */ 0x8dcc,
- /* 2nd byte: 108 */ 0x8ddb,
- /* 2nd byte: 109 */ 0x8dcb,
- /* 2nd byte: 110 */ 0x8dea,
- /* 2nd byte: 111 */ 0x8deb,
- /* 2nd byte: 112 */ 0x8ddf,
- /* 2nd byte: 113 */ 0x8de3,
- /* 2nd byte: 114 */ 0x8dfc,
- /* 2nd byte: 115 */ 0x8e08,
- /* 2nd byte: 116 */ 0x8e09,
- /* 2nd byte: 117 */ 0x8dff,
- /* 2nd byte: 118 */ 0x8e1d,
- /* 2nd byte: 119 */ 0x8e1e,
- /* 2nd byte: 120 */ 0x8e10,
- /* 2nd byte: 121 */ 0x8e1f,
- /* 2nd byte: 122 */ 0x8e42,
- /* 2nd byte: 123 */ 0x8e35,
- /* 2nd byte: 124 */ 0x8e30,
- /* 2nd byte: 125 */ 0x8e34,
- /* 2nd byte: 126 */ 0x8e4a},
-/* 1st byte: 109 */ {
- /* 2nd byte: 33 */ 0x8e47,
- /* 2nd byte: 34 */ 0x8e49,
- /* 2nd byte: 35 */ 0x8e4c,
- /* 2nd byte: 36 */ 0x8e50,
- /* 2nd byte: 37 */ 0x8e48,
- /* 2nd byte: 38 */ 0x8e59,
- /* 2nd byte: 39 */ 0x8e64,
- /* 2nd byte: 40 */ 0x8e60,
- /* 2nd byte: 41 */ 0x8e2a,
- /* 2nd byte: 42 */ 0x8e63,
- /* 2nd byte: 43 */ 0x8e55,
- /* 2nd byte: 44 */ 0x8e76,
- /* 2nd byte: 45 */ 0x8e72,
- /* 2nd byte: 46 */ 0x8e7c,
- /* 2nd byte: 47 */ 0x8e81,
- /* 2nd byte: 48 */ 0x8e87,
- /* 2nd byte: 49 */ 0x8e85,
- /* 2nd byte: 50 */ 0x8e84,
- /* 2nd byte: 51 */ 0x8e8b,
- /* 2nd byte: 52 */ 0x8e8a,
- /* 2nd byte: 53 */ 0x8e93,
- /* 2nd byte: 54 */ 0x8e91,
- /* 2nd byte: 55 */ 0x8e94,
- /* 2nd byte: 56 */ 0x8e99,
- /* 2nd byte: 57 */ 0x8eaa,
- /* 2nd byte: 58 */ 0x8ea1,
- /* 2nd byte: 59 */ 0x8eac,
- /* 2nd byte: 60 */ 0x8eb0,
- /* 2nd byte: 61 */ 0x8ec6,
- /* 2nd byte: 62 */ 0x8eb1,
- /* 2nd byte: 63 */ 0x8ebe,
- /* 2nd byte: 64 */ 0x8ec5,
- /* 2nd byte: 65 */ 0x8ec8,
- /* 2nd byte: 66 */ 0x8ecb,
- /* 2nd byte: 67 */ 0x8edb,
- /* 2nd byte: 68 */ 0x8ee3,
- /* 2nd byte: 69 */ 0x8efc,
- /* 2nd byte: 70 */ 0x8efb,
- /* 2nd byte: 71 */ 0x8eeb,
- /* 2nd byte: 72 */ 0x8efe,
- /* 2nd byte: 73 */ 0x8f0a,
- /* 2nd byte: 74 */ 0x8f05,
- /* 2nd byte: 75 */ 0x8f15,
- /* 2nd byte: 76 */ 0x8f12,
- /* 2nd byte: 77 */ 0x8f19,
- /* 2nd byte: 78 */ 0x8f13,
- /* 2nd byte: 79 */ 0x8f1c,
- /* 2nd byte: 80 */ 0x8f1f,
- /* 2nd byte: 81 */ 0x8f1b,
- /* 2nd byte: 82 */ 0x8f0c,
- /* 2nd byte: 83 */ 0x8f26,
- /* 2nd byte: 84 */ 0x8f33,
- /* 2nd byte: 85 */ 0x8f3b,
- /* 2nd byte: 86 */ 0x8f39,
- /* 2nd byte: 87 */ 0x8f45,
- /* 2nd byte: 88 */ 0x8f42,
- /* 2nd byte: 89 */ 0x8f3e,
- /* 2nd byte: 90 */ 0x8f4c,
- /* 2nd byte: 91 */ 0x8f49,
- /* 2nd byte: 92 */ 0x8f46,
- /* 2nd byte: 93 */ 0x8f4e,
- /* 2nd byte: 94 */ 0x8f57,
- /* 2nd byte: 95 */ 0x8f5c,
- /* 2nd byte: 96 */ 0x8f62,
- /* 2nd byte: 97 */ 0x8f63,
- /* 2nd byte: 98 */ 0x8f64,
- /* 2nd byte: 99 */ 0x8f9c,
- /* 2nd byte: 100 */ 0x8f9f,
- /* 2nd byte: 101 */ 0x8fa3,
- /* 2nd byte: 102 */ 0x8fad,
- /* 2nd byte: 103 */ 0x8faf,
- /* 2nd byte: 104 */ 0x8fb7,
- /* 2nd byte: 105 */ 0x8fda,
- /* 2nd byte: 106 */ 0x8fe5,
- /* 2nd byte: 107 */ 0x8fe2,
- /* 2nd byte: 108 */ 0x8fea,
- /* 2nd byte: 109 */ 0x8fef,
- /* 2nd byte: 110 */ 0x9087,
- /* 2nd byte: 111 */ 0x8ff4,
- /* 2nd byte: 112 */ 0x9005,
- /* 2nd byte: 113 */ 0x8ff9,
- /* 2nd byte: 114 */ 0x8ffa,
- /* 2nd byte: 115 */ 0x9011,
- /* 2nd byte: 116 */ 0x9015,
- /* 2nd byte: 117 */ 0x9021,
- /* 2nd byte: 118 */ 0x900d,
- /* 2nd byte: 119 */ 0x901e,
- /* 2nd byte: 120 */ 0x9016,
- /* 2nd byte: 121 */ 0x900b,
- /* 2nd byte: 122 */ 0x9027,
- /* 2nd byte: 123 */ 0x9036,
- /* 2nd byte: 124 */ 0x9035,
- /* 2nd byte: 125 */ 0x9039,
- /* 2nd byte: 126 */ 0x8ff8},
-/* 1st byte: 110 */ {
- /* 2nd byte: 33 */ 0x904f,
- /* 2nd byte: 34 */ 0x9050,
- /* 2nd byte: 35 */ 0x9051,
- /* 2nd byte: 36 */ 0x9052,
- /* 2nd byte: 37 */ 0x900e,
- /* 2nd byte: 38 */ 0x9049,
- /* 2nd byte: 39 */ 0x903e,
- /* 2nd byte: 40 */ 0x9056,
- /* 2nd byte: 41 */ 0x9058,
- /* 2nd byte: 42 */ 0x905e,
- /* 2nd byte: 43 */ 0x9068,
- /* 2nd byte: 44 */ 0x906f,
- /* 2nd byte: 45 */ 0x9076,
- /* 2nd byte: 46 */ 0x96a8,
- /* 2nd byte: 47 */ 0x9072,
- /* 2nd byte: 48 */ 0x9082,
- /* 2nd byte: 49 */ 0x907d,
- /* 2nd byte: 50 */ 0x9081,
- /* 2nd byte: 51 */ 0x9080,
- /* 2nd byte: 52 */ 0x908a,
- /* 2nd byte: 53 */ 0x9089,
- /* 2nd byte: 54 */ 0x908f,
- /* 2nd byte: 55 */ 0x90a8,
- /* 2nd byte: 56 */ 0x90af,
- /* 2nd byte: 57 */ 0x90b1,
- /* 2nd byte: 58 */ 0x90b5,
- /* 2nd byte: 59 */ 0x90e2,
- /* 2nd byte: 60 */ 0x90e4,
- /* 2nd byte: 61 */ 0x6248,
- /* 2nd byte: 62 */ 0x90db,
- /* 2nd byte: 63 */ 0x9102,
- /* 2nd byte: 64 */ 0x9112,
- /* 2nd byte: 65 */ 0x9119,
- /* 2nd byte: 66 */ 0x9132,
- /* 2nd byte: 67 */ 0x9130,
- /* 2nd byte: 68 */ 0x914a,
- /* 2nd byte: 69 */ 0x9156,
- /* 2nd byte: 70 */ 0x9158,
- /* 2nd byte: 71 */ 0x9163,
- /* 2nd byte: 72 */ 0x9165,
- /* 2nd byte: 73 */ 0x9169,
- /* 2nd byte: 74 */ 0x9173,
- /* 2nd byte: 75 */ 0x9172,
- /* 2nd byte: 76 */ 0x918b,
- /* 2nd byte: 77 */ 0x9189,
- /* 2nd byte: 78 */ 0x9182,
- /* 2nd byte: 79 */ 0x91a2,
- /* 2nd byte: 80 */ 0x91ab,
- /* 2nd byte: 81 */ 0x91af,
- /* 2nd byte: 82 */ 0x91aa,
- /* 2nd byte: 83 */ 0x91b5,
- /* 2nd byte: 84 */ 0x91b4,
- /* 2nd byte: 85 */ 0x91ba,
- /* 2nd byte: 86 */ 0x91c0,
- /* 2nd byte: 87 */ 0x91c1,
- /* 2nd byte: 88 */ 0x91c9,
- /* 2nd byte: 89 */ 0x91cb,
- /* 2nd byte: 90 */ 0x91d0,
- /* 2nd byte: 91 */ 0x91d6,
- /* 2nd byte: 92 */ 0x91df,
- /* 2nd byte: 93 */ 0x91e1,
- /* 2nd byte: 94 */ 0x91db,
- /* 2nd byte: 95 */ 0x91fc,
- /* 2nd byte: 96 */ 0x91f5,
- /* 2nd byte: 97 */ 0x91f6,
- /* 2nd byte: 98 */ 0x921e,
- /* 2nd byte: 99 */ 0x91ff,
- /* 2nd byte: 100 */ 0x9214,
- /* 2nd byte: 101 */ 0x922c,
- /* 2nd byte: 102 */ 0x9215,
- /* 2nd byte: 103 */ 0x9211,
- /* 2nd byte: 104 */ 0x925e,
- /* 2nd byte: 105 */ 0x9257,
- /* 2nd byte: 106 */ 0x9245,
- /* 2nd byte: 107 */ 0x9249,
- /* 2nd byte: 108 */ 0x9264,
- /* 2nd byte: 109 */ 0x9248,
- /* 2nd byte: 110 */ 0x9295,
- /* 2nd byte: 111 */ 0x923f,
- /* 2nd byte: 112 */ 0x924b,
- /* 2nd byte: 113 */ 0x9250,
- /* 2nd byte: 114 */ 0x929c,
- /* 2nd byte: 115 */ 0x9296,
- /* 2nd byte: 116 */ 0x9293,
- /* 2nd byte: 117 */ 0x929b,
- /* 2nd byte: 118 */ 0x925a,
- /* 2nd byte: 119 */ 0x92cf,
- /* 2nd byte: 120 */ 0x92b9,
- /* 2nd byte: 121 */ 0x92b7,
- /* 2nd byte: 122 */ 0x92e9,
- /* 2nd byte: 123 */ 0x930f,
- /* 2nd byte: 124 */ 0x92fa,
- /* 2nd byte: 125 */ 0x9344,
- /* 2nd byte: 126 */ 0x932e},
-/* 1st byte: 111 */ {
- /* 2nd byte: 33 */ 0x9319,
- /* 2nd byte: 34 */ 0x9322,
- /* 2nd byte: 35 */ 0x931a,
- /* 2nd byte: 36 */ 0x9323,
- /* 2nd byte: 37 */ 0x933a,
- /* 2nd byte: 38 */ 0x9335,
- /* 2nd byte: 39 */ 0x933b,
- /* 2nd byte: 40 */ 0x935c,
- /* 2nd byte: 41 */ 0x9360,
- /* 2nd byte: 42 */ 0x937c,
- /* 2nd byte: 43 */ 0x936e,
- /* 2nd byte: 44 */ 0x9356,
- /* 2nd byte: 45 */ 0x93b0,
- /* 2nd byte: 46 */ 0x93ac,
- /* 2nd byte: 47 */ 0x93ad,
- /* 2nd byte: 48 */ 0x9394,
- /* 2nd byte: 49 */ 0x93b9,
- /* 2nd byte: 50 */ 0x93d6,
- /* 2nd byte: 51 */ 0x93d7,
- /* 2nd byte: 52 */ 0x93e8,
- /* 2nd byte: 53 */ 0x93e5,
- /* 2nd byte: 54 */ 0x93d8,
- /* 2nd byte: 55 */ 0x93c3,
- /* 2nd byte: 56 */ 0x93dd,
- /* 2nd byte: 57 */ 0x93d0,
- /* 2nd byte: 58 */ 0x93c8,
- /* 2nd byte: 59 */ 0x93e4,
- /* 2nd byte: 60 */ 0x941a,
- /* 2nd byte: 61 */ 0x9414,
- /* 2nd byte: 62 */ 0x9413,
- /* 2nd byte: 63 */ 0x9403,
- /* 2nd byte: 64 */ 0x9407,
- /* 2nd byte: 65 */ 0x9410,
- /* 2nd byte: 66 */ 0x9436,
- /* 2nd byte: 67 */ 0x942b,
- /* 2nd byte: 68 */ 0x9435,
- /* 2nd byte: 69 */ 0x9421,
- /* 2nd byte: 70 */ 0x943a,
- /* 2nd byte: 71 */ 0x9441,
- /* 2nd byte: 72 */ 0x9452,
- /* 2nd byte: 73 */ 0x9444,
- /* 2nd byte: 74 */ 0x945b,
- /* 2nd byte: 75 */ 0x9460,
- /* 2nd byte: 76 */ 0x9462,
- /* 2nd byte: 77 */ 0x945e,
- /* 2nd byte: 78 */ 0x946a,
- /* 2nd byte: 79 */ 0x9229,
- /* 2nd byte: 80 */ 0x9470,
- /* 2nd byte: 81 */ 0x9475,
- /* 2nd byte: 82 */ 0x9477,
- /* 2nd byte: 83 */ 0x947d,
- /* 2nd byte: 84 */ 0x945a,
- /* 2nd byte: 85 */ 0x947c,
- /* 2nd byte: 86 */ 0x947e,
- /* 2nd byte: 87 */ 0x9481,
- /* 2nd byte: 88 */ 0x947f,
- /* 2nd byte: 89 */ 0x9582,
- /* 2nd byte: 90 */ 0x9587,
- /* 2nd byte: 91 */ 0x958a,
- /* 2nd byte: 92 */ 0x9594,
- /* 2nd byte: 93 */ 0x9596,
- /* 2nd byte: 94 */ 0x9598,
- /* 2nd byte: 95 */ 0x9599,
- /* 2nd byte: 96 */ 0x95a0,
- /* 2nd byte: 97 */ 0x95a8,
- /* 2nd byte: 98 */ 0x95a7,
- /* 2nd byte: 99 */ 0x95ad,
- /* 2nd byte: 100 */ 0x95bc,
- /* 2nd byte: 101 */ 0x95bb,
- /* 2nd byte: 102 */ 0x95b9,
- /* 2nd byte: 103 */ 0x95be,
- /* 2nd byte: 104 */ 0x95ca,
- /* 2nd byte: 105 */ 0x6ff6,
- /* 2nd byte: 106 */ 0x95c3,
- /* 2nd byte: 107 */ 0x95cd,
- /* 2nd byte: 108 */ 0x95cc,
- /* 2nd byte: 109 */ 0x95d5,
- /* 2nd byte: 110 */ 0x95d4,
- /* 2nd byte: 111 */ 0x95d6,
- /* 2nd byte: 112 */ 0x95dc,
- /* 2nd byte: 113 */ 0x95e1,
- /* 2nd byte: 114 */ 0x95e5,
- /* 2nd byte: 115 */ 0x95e2,
- /* 2nd byte: 116 */ 0x9621,
- /* 2nd byte: 117 */ 0x9628,
- /* 2nd byte: 118 */ 0x962e,
- /* 2nd byte: 119 */ 0x962f,
- /* 2nd byte: 120 */ 0x9642,
- /* 2nd byte: 121 */ 0x964c,
- /* 2nd byte: 122 */ 0x964f,
- /* 2nd byte: 123 */ 0x964b,
- /* 2nd byte: 124 */ 0x9677,
- /* 2nd byte: 125 */ 0x965c,
- /* 2nd byte: 126 */ 0x965e},
-/* 1st byte: 112 */ {
- /* 2nd byte: 33 */ 0x965d,
- /* 2nd byte: 34 */ 0x965f,
- /* 2nd byte: 35 */ 0x9666,
- /* 2nd byte: 36 */ 0x9672,
- /* 2nd byte: 37 */ 0x966c,
- /* 2nd byte: 38 */ 0x968d,
- /* 2nd byte: 39 */ 0x9698,
- /* 2nd byte: 40 */ 0x9695,
- /* 2nd byte: 41 */ 0x9697,
- /* 2nd byte: 42 */ 0x96aa,
- /* 2nd byte: 43 */ 0x96a7,
- /* 2nd byte: 44 */ 0x96b1,
- /* 2nd byte: 45 */ 0x96b2,
- /* 2nd byte: 46 */ 0x96b0,
- /* 2nd byte: 47 */ 0x96b4,
- /* 2nd byte: 48 */ 0x96b6,
- /* 2nd byte: 49 */ 0x96b8,
- /* 2nd byte: 50 */ 0x96b9,
- /* 2nd byte: 51 */ 0x96ce,
- /* 2nd byte: 52 */ 0x96cb,
- /* 2nd byte: 53 */ 0x96c9,
- /* 2nd byte: 54 */ 0x96cd,
- /* 2nd byte: 55 */ 0x894d,
- /* 2nd byte: 56 */ 0x96dc,
- /* 2nd byte: 57 */ 0x970d,
- /* 2nd byte: 58 */ 0x96d5,
- /* 2nd byte: 59 */ 0x96f9,
- /* 2nd byte: 60 */ 0x9704,
- /* 2nd byte: 61 */ 0x9706,
- /* 2nd byte: 62 */ 0x9708,
- /* 2nd byte: 63 */ 0x9713,
- /* 2nd byte: 64 */ 0x970e,
- /* 2nd byte: 65 */ 0x9711,
- /* 2nd byte: 66 */ 0x970f,
- /* 2nd byte: 67 */ 0x9716,
- /* 2nd byte: 68 */ 0x9719,
- /* 2nd byte: 69 */ 0x9724,
- /* 2nd byte: 70 */ 0x972a,
- /* 2nd byte: 71 */ 0x9730,
- /* 2nd byte: 72 */ 0x9739,
- /* 2nd byte: 73 */ 0x973d,
- /* 2nd byte: 74 */ 0x973e,
- /* 2nd byte: 75 */ 0x9744,
- /* 2nd byte: 76 */ 0x9746,
- /* 2nd byte: 77 */ 0x9748,
- /* 2nd byte: 78 */ 0x9742,
- /* 2nd byte: 79 */ 0x9749,
- /* 2nd byte: 80 */ 0x975c,
- /* 2nd byte: 81 */ 0x9760,
- /* 2nd byte: 82 */ 0x9764,
- /* 2nd byte: 83 */ 0x9766,
- /* 2nd byte: 84 */ 0x9768,
- /* 2nd byte: 85 */ 0x52d2,
- /* 2nd byte: 86 */ 0x976b,
- /* 2nd byte: 87 */ 0x9771,
- /* 2nd byte: 88 */ 0x9779,
- /* 2nd byte: 89 */ 0x9785,
- /* 2nd byte: 90 */ 0x977c,
- /* 2nd byte: 91 */ 0x9781,
- /* 2nd byte: 92 */ 0x977a,
- /* 2nd byte: 93 */ 0x9786,
- /* 2nd byte: 94 */ 0x978b,
- /* 2nd byte: 95 */ 0x978f,
- /* 2nd byte: 96 */ 0x9790,
- /* 2nd byte: 97 */ 0x979c,
- /* 2nd byte: 98 */ 0x97a8,
- /* 2nd byte: 99 */ 0x97a6,
- /* 2nd byte: 100 */ 0x97a3,
- /* 2nd byte: 101 */ 0x97b3,
- /* 2nd byte: 102 */ 0x97b4,
- /* 2nd byte: 103 */ 0x97c3,
- /* 2nd byte: 104 */ 0x97c6,
- /* 2nd byte: 105 */ 0x97c8,
- /* 2nd byte: 106 */ 0x97cb,
- /* 2nd byte: 107 */ 0x97dc,
- /* 2nd byte: 108 */ 0x97ed,
- /* 2nd byte: 109 */ 0x9f4f,
- /* 2nd byte: 110 */ 0x97f2,
- /* 2nd byte: 111 */ 0x7adf,
- /* 2nd byte: 112 */ 0x97f6,
- /* 2nd byte: 113 */ 0x97f5,
- /* 2nd byte: 114 */ 0x980f,
- /* 2nd byte: 115 */ 0x980c,
- /* 2nd byte: 116 */ 0x9838,
- /* 2nd byte: 117 */ 0x9824,
- /* 2nd byte: 118 */ 0x9821,
- /* 2nd byte: 119 */ 0x9837,
- /* 2nd byte: 120 */ 0x983d,
- /* 2nd byte: 121 */ 0x9846,
- /* 2nd byte: 122 */ 0x984f,
- /* 2nd byte: 123 */ 0x984b,
- /* 2nd byte: 124 */ 0x986b,
- /* 2nd byte: 125 */ 0x986f,
- /* 2nd byte: 126 */ 0x9870},
-/* 1st byte: 113 */ {
- /* 2nd byte: 33 */ 0x9871,
- /* 2nd byte: 34 */ 0x9874,
- /* 2nd byte: 35 */ 0x9873,
- /* 2nd byte: 36 */ 0x98aa,
- /* 2nd byte: 37 */ 0x98af,
- /* 2nd byte: 38 */ 0x98b1,
- /* 2nd byte: 39 */ 0x98b6,
- /* 2nd byte: 40 */ 0x98c4,
- /* 2nd byte: 41 */ 0x98c3,
- /* 2nd byte: 42 */ 0x98c6,
- /* 2nd byte: 43 */ 0x98e9,
- /* 2nd byte: 44 */ 0x98eb,
- /* 2nd byte: 45 */ 0x9903,
- /* 2nd byte: 46 */ 0x9909,
- /* 2nd byte: 47 */ 0x9912,
- /* 2nd byte: 48 */ 0x9914,
- /* 2nd byte: 49 */ 0x9918,
- /* 2nd byte: 50 */ 0x9921,
- /* 2nd byte: 51 */ 0x991d,
- /* 2nd byte: 52 */ 0x991e,
- /* 2nd byte: 53 */ 0x9924,
- /* 2nd byte: 54 */ 0x9920,
- /* 2nd byte: 55 */ 0x992c,
- /* 2nd byte: 56 */ 0x992e,
- /* 2nd byte: 57 */ 0x993d,
- /* 2nd byte: 58 */ 0x993e,
- /* 2nd byte: 59 */ 0x9942,
- /* 2nd byte: 60 */ 0x9949,
- /* 2nd byte: 61 */ 0x9945,
- /* 2nd byte: 62 */ 0x9950,
- /* 2nd byte: 63 */ 0x994b,
- /* 2nd byte: 64 */ 0x9951,
- /* 2nd byte: 65 */ 0x9952,
- /* 2nd byte: 66 */ 0x994c,
- /* 2nd byte: 67 */ 0x9955,
- /* 2nd byte: 68 */ 0x9997,
- /* 2nd byte: 69 */ 0x9998,
- /* 2nd byte: 70 */ 0x99a5,
- /* 2nd byte: 71 */ 0x99ad,
- /* 2nd byte: 72 */ 0x99ae,
- /* 2nd byte: 73 */ 0x99bc,
- /* 2nd byte: 74 */ 0x99df,
- /* 2nd byte: 75 */ 0x99db,
- /* 2nd byte: 76 */ 0x99dd,
- /* 2nd byte: 77 */ 0x99d8,
- /* 2nd byte: 78 */ 0x99d1,
- /* 2nd byte: 79 */ 0x99ed,
- /* 2nd byte: 80 */ 0x99ee,
- /* 2nd byte: 81 */ 0x99f1,
- /* 2nd byte: 82 */ 0x99f2,
- /* 2nd byte: 83 */ 0x99fb,
- /* 2nd byte: 84 */ 0x99f8,
- /* 2nd byte: 85 */ 0x9a01,
- /* 2nd byte: 86 */ 0x9a0f,
- /* 2nd byte: 87 */ 0x9a05,
- /* 2nd byte: 88 */ 0x99e2,
- /* 2nd byte: 89 */ 0x9a19,
- /* 2nd byte: 90 */ 0x9a2b,
- /* 2nd byte: 91 */ 0x9a37,
- /* 2nd byte: 92 */ 0x9a45,
- /* 2nd byte: 93 */ 0x9a42,
- /* 2nd byte: 94 */ 0x9a40,
- /* 2nd byte: 95 */ 0x9a43,
- /* 2nd byte: 96 */ 0x9a3e,
- /* 2nd byte: 97 */ 0x9a55,
- /* 2nd byte: 98 */ 0x9a4d,
- /* 2nd byte: 99 */ 0x9a5b,
- /* 2nd byte: 100 */ 0x9a57,
- /* 2nd byte: 101 */ 0x9a5f,
- /* 2nd byte: 102 */ 0x9a62,
- /* 2nd byte: 103 */ 0x9a65,
- /* 2nd byte: 104 */ 0x9a64,
- /* 2nd byte: 105 */ 0x9a69,
- /* 2nd byte: 106 */ 0x9a6b,
- /* 2nd byte: 107 */ 0x9a6a,
- /* 2nd byte: 108 */ 0x9aad,
- /* 2nd byte: 109 */ 0x9ab0,
- /* 2nd byte: 110 */ 0x9abc,
- /* 2nd byte: 111 */ 0x9ac0,
- /* 2nd byte: 112 */ 0x9acf,
- /* 2nd byte: 113 */ 0x9ad1,
- /* 2nd byte: 114 */ 0x9ad3,
- /* 2nd byte: 115 */ 0x9ad4,
- /* 2nd byte: 116 */ 0x9ade,
- /* 2nd byte: 117 */ 0x9adf,
- /* 2nd byte: 118 */ 0x9ae2,
- /* 2nd byte: 119 */ 0x9ae3,
- /* 2nd byte: 120 */ 0x9ae6,
- /* 2nd byte: 121 */ 0x9aef,
- /* 2nd byte: 122 */ 0x9aeb,
- /* 2nd byte: 123 */ 0x9aee,
- /* 2nd byte: 124 */ 0x9af4,
- /* 2nd byte: 125 */ 0x9af1,
- /* 2nd byte: 126 */ 0x9af7},
-/* 1st byte: 114 */ {
- /* 2nd byte: 33 */ 0x9afb,
- /* 2nd byte: 34 */ 0x9b06,
- /* 2nd byte: 35 */ 0x9b18,
- /* 2nd byte: 36 */ 0x9b1a,
- /* 2nd byte: 37 */ 0x9b1f,
- /* 2nd byte: 38 */ 0x9b22,
- /* 2nd byte: 39 */ 0x9b23,
- /* 2nd byte: 40 */ 0x9b25,
- /* 2nd byte: 41 */ 0x9b27,
- /* 2nd byte: 42 */ 0x9b28,
- /* 2nd byte: 43 */ 0x9b29,
- /* 2nd byte: 44 */ 0x9b2a,
- /* 2nd byte: 45 */ 0x9b2e,
- /* 2nd byte: 46 */ 0x9b2f,
- /* 2nd byte: 47 */ 0x9b32,
- /* 2nd byte: 48 */ 0x9b44,
- /* 2nd byte: 49 */ 0x9b43,
- /* 2nd byte: 50 */ 0x9b4f,
- /* 2nd byte: 51 */ 0x9b4d,
- /* 2nd byte: 52 */ 0x9b4e,
- /* 2nd byte: 53 */ 0x9b51,
- /* 2nd byte: 54 */ 0x9b58,
- /* 2nd byte: 55 */ 0x9b74,
- /* 2nd byte: 56 */ 0x9b93,
- /* 2nd byte: 57 */ 0x9b83,
- /* 2nd byte: 58 */ 0x9b91,
- /* 2nd byte: 59 */ 0x9b96,
- /* 2nd byte: 60 */ 0x9b97,
- /* 2nd byte: 61 */ 0x9b9f,
- /* 2nd byte: 62 */ 0x9ba0,
- /* 2nd byte: 63 */ 0x9ba8,
- /* 2nd byte: 64 */ 0x9bb4,
- /* 2nd byte: 65 */ 0x9bc0,
- /* 2nd byte: 66 */ 0x9bca,
- /* 2nd byte: 67 */ 0x9bb9,
- /* 2nd byte: 68 */ 0x9bc6,
- /* 2nd byte: 69 */ 0x9bcf,
- /* 2nd byte: 70 */ 0x9bd1,
- /* 2nd byte: 71 */ 0x9bd2,
- /* 2nd byte: 72 */ 0x9be3,
- /* 2nd byte: 73 */ 0x9be2,
- /* 2nd byte: 74 */ 0x9be4,
- /* 2nd byte: 75 */ 0x9bd4,
- /* 2nd byte: 76 */ 0x9be1,
- /* 2nd byte: 77 */ 0x9c3a,
- /* 2nd byte: 78 */ 0x9bf2,
- /* 2nd byte: 79 */ 0x9bf1,
- /* 2nd byte: 80 */ 0x9bf0,
- /* 2nd byte: 81 */ 0x9c15,
- /* 2nd byte: 82 */ 0x9c14,
- /* 2nd byte: 83 */ 0x9c09,
- /* 2nd byte: 84 */ 0x9c13,
- /* 2nd byte: 85 */ 0x9c0c,
- /* 2nd byte: 86 */ 0x9c06,
- /* 2nd byte: 87 */ 0x9c08,
- /* 2nd byte: 88 */ 0x9c12,
- /* 2nd byte: 89 */ 0x9c0a,
- /* 2nd byte: 90 */ 0x9c04,
- /* 2nd byte: 91 */ 0x9c2e,
- /* 2nd byte: 92 */ 0x9c1b,
- /* 2nd byte: 93 */ 0x9c25,
- /* 2nd byte: 94 */ 0x9c24,
- /* 2nd byte: 95 */ 0x9c21,
- /* 2nd byte: 96 */ 0x9c30,
- /* 2nd byte: 97 */ 0x9c47,
- /* 2nd byte: 98 */ 0x9c32,
- /* 2nd byte: 99 */ 0x9c46,
- /* 2nd byte: 100 */ 0x9c3e,
- /* 2nd byte: 101 */ 0x9c5a,
- /* 2nd byte: 102 */ 0x9c60,
- /* 2nd byte: 103 */ 0x9c67,
- /* 2nd byte: 104 */ 0x9c76,
- /* 2nd byte: 105 */ 0x9c78,
- /* 2nd byte: 106 */ 0x9ce7,
- /* 2nd byte: 107 */ 0x9cec,
- /* 2nd byte: 108 */ 0x9cf0,
- /* 2nd byte: 109 */ 0x9d09,
- /* 2nd byte: 110 */ 0x9d08,
- /* 2nd byte: 111 */ 0x9ceb,
- /* 2nd byte: 112 */ 0x9d03,
- /* 2nd byte: 113 */ 0x9d06,
- /* 2nd byte: 114 */ 0x9d2a,
- /* 2nd byte: 115 */ 0x9d26,
- /* 2nd byte: 116 */ 0x9daf,
- /* 2nd byte: 117 */ 0x9d23,
- /* 2nd byte: 118 */ 0x9d1f,
- /* 2nd byte: 119 */ 0x9d44,
- /* 2nd byte: 120 */ 0x9d15,
- /* 2nd byte: 121 */ 0x9d12,
- /* 2nd byte: 122 */ 0x9d41,
- /* 2nd byte: 123 */ 0x9d3f,
- /* 2nd byte: 124 */ 0x9d3e,
- /* 2nd byte: 125 */ 0x9d46,
- /* 2nd byte: 126 */ 0x9d48},
-/* 1st byte: 115 */ {
- /* 2nd byte: 33 */ 0x9d5d,
- /* 2nd byte: 34 */ 0x9d5e,
- /* 2nd byte: 35 */ 0x9d64,
- /* 2nd byte: 36 */ 0x9d51,
- /* 2nd byte: 37 */ 0x9d50,
- /* 2nd byte: 38 */ 0x9d59,
- /* 2nd byte: 39 */ 0x9d72,
- /* 2nd byte: 40 */ 0x9d89,
- /* 2nd byte: 41 */ 0x9d87,
- /* 2nd byte: 42 */ 0x9dab,
- /* 2nd byte: 43 */ 0x9d6f,
- /* 2nd byte: 44 */ 0x9d7a,
- /* 2nd byte: 45 */ 0x9d9a,
- /* 2nd byte: 46 */ 0x9da4,
- /* 2nd byte: 47 */ 0x9da9,
- /* 2nd byte: 48 */ 0x9db2,
- /* 2nd byte: 49 */ 0x9dc4,
- /* 2nd byte: 50 */ 0x9dc1,
- /* 2nd byte: 51 */ 0x9dbb,
- /* 2nd byte: 52 */ 0x9db8,
- /* 2nd byte: 53 */ 0x9dba,
- /* 2nd byte: 54 */ 0x9dc6,
- /* 2nd byte: 55 */ 0x9dcf,
- /* 2nd byte: 56 */ 0x9dc2,
- /* 2nd byte: 57 */ 0x9dd9,
- /* 2nd byte: 58 */ 0x9dd3,
- /* 2nd byte: 59 */ 0x9df8,
- /* 2nd byte: 60 */ 0x9de6,
- /* 2nd byte: 61 */ 0x9ded,
- /* 2nd byte: 62 */ 0x9def,
- /* 2nd byte: 63 */ 0x9dfd,
- /* 2nd byte: 64 */ 0x9e1a,
- /* 2nd byte: 65 */ 0x9e1b,
- /* 2nd byte: 66 */ 0x9e1e,
- /* 2nd byte: 67 */ 0x9e75,
- /* 2nd byte: 68 */ 0x9e79,
- /* 2nd byte: 69 */ 0x9e7d,
- /* 2nd byte: 70 */ 0x9e81,
- /* 2nd byte: 71 */ 0x9e88,
- /* 2nd byte: 72 */ 0x9e8b,
- /* 2nd byte: 73 */ 0x9e8c,
- /* 2nd byte: 74 */ 0x9e92,
- /* 2nd byte: 75 */ 0x9e95,
- /* 2nd byte: 76 */ 0x9e91,
- /* 2nd byte: 77 */ 0x9e9d,
- /* 2nd byte: 78 */ 0x9ea5,
- /* 2nd byte: 79 */ 0x9ea9,
- /* 2nd byte: 80 */ 0x9eb8,
- /* 2nd byte: 81 */ 0x9eaa,
- /* 2nd byte: 82 */ 0x9ead,
- /* 2nd byte: 83 */ 0x9761,
- /* 2nd byte: 84 */ 0x9ecc,
- /* 2nd byte: 85 */ 0x9ece,
- /* 2nd byte: 86 */ 0x9ecf,
- /* 2nd byte: 87 */ 0x9ed0,
- /* 2nd byte: 88 */ 0x9ed4,
- /* 2nd byte: 89 */ 0x9edc,
- /* 2nd byte: 90 */ 0x9ede,
- /* 2nd byte: 91 */ 0x9edd,
- /* 2nd byte: 92 */ 0x9ee0,
- /* 2nd byte: 93 */ 0x9ee5,
- /* 2nd byte: 94 */ 0x9ee8,
- /* 2nd byte: 95 */ 0x9eef,
- /* 2nd byte: 96 */ 0x9ef4,
- /* 2nd byte: 97 */ 0x9ef6,
- /* 2nd byte: 98 */ 0x9ef7,
- /* 2nd byte: 99 */ 0x9ef9,
- /* 2nd byte: 100 */ 0x9efb,
- /* 2nd byte: 101 */ 0x9efc,
- /* 2nd byte: 102 */ 0x9efd,
- /* 2nd byte: 103 */ 0x9f07,
- /* 2nd byte: 104 */ 0x9f08,
- /* 2nd byte: 105 */ 0x76b7,
- /* 2nd byte: 106 */ 0x9f15,
- /* 2nd byte: 107 */ 0x9f21,
- /* 2nd byte: 108 */ 0x9f2c,
- /* 2nd byte: 109 */ 0x9f3e,
- /* 2nd byte: 110 */ 0x9f4a,
- /* 2nd byte: 111 */ 0x9f52,
- /* 2nd byte: 112 */ 0x9f54,
- /* 2nd byte: 113 */ 0x9f63,
- /* 2nd byte: 114 */ 0x9f5f,
- /* 2nd byte: 115 */ 0x9f60,
- /* 2nd byte: 116 */ 0x9f61,
- /* 2nd byte: 117 */ 0x9f66,
- /* 2nd byte: 118 */ 0x9f67,
- /* 2nd byte: 119 */ 0x9f6c,
- /* 2nd byte: 120 */ 0x9f6a,
- /* 2nd byte: 121 */ 0x9f77,
- /* 2nd byte: 122 */ 0x9f72,
- /* 2nd byte: 123 */ 0x9f76,
- /* 2nd byte: 124 */ 0x9f95,
- /* 2nd byte: 125 */ 0x9f9c,
- /* 2nd byte: 126 */ 0x9fa0},
-/* 1st byte: 116 */ {
- /* 2nd byte: 33 */ 0x582f,
- /* 2nd byte: 34 */ 0x69c7,
- /* 2nd byte: 35 */ 0x9059,
- /* 2nd byte: 36 */ 0x7464,
- /* 2nd byte: 37 */ 0x51dc,
- /* 2nd byte: 38 */ 0x7199,
- 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,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0}
-};
diff --git a/libjava/gnu/gcj/convert/JIS0212.h b/libjava/gnu/gcj/convert/JIS0212.h
deleted file mode 100644
index 215567074bb..00000000000
--- a/libjava/gnu/gcj/convert/JIS0212.h
+++ /dev/null
@@ -1,6068 +0,0 @@
-/* This file is automatically generated from Unicode tables */
-MAP(0x22, 0x2F, 0x02D8) /* BREVE */
-MAP(0x22, 0x30, 0x02C7) /* CARON (Mandarin Chinese third tone) */
-MAP(0x22, 0x31, 0x00B8) /* CEDILLA */
-MAP(0x22, 0x32, 0x02D9) /* DOT ABOVE (Mandarin Chinese light tone) */
-MAP(0x22, 0x33, 0x02DD) /* DOUBLE ACUTE ACCENT */
-MAP(0x22, 0x34, 0x00AF) /* MACRON */
-MAP(0x22, 0x35, 0x02DB) /* OGONEK */
-MAP(0x22, 0x36, 0x02DA) /* RING ABOVE */
-MAP(0x22, 0x37, 0x007E) /* TILDE */
-MAP(0x22, 0x38, 0x0384) /* GREEK TONOS */
-MAP(0x22, 0x39, 0x0385) /* GREEK DIALYTIKA TONOS */
-MAP(0x22, 0x42, 0x00A1) /* INVERTED EXCLAMATION MARK */
-MAP(0x22, 0x43, 0x00A6) /* BROKEN BAR */
-MAP(0x22, 0x44, 0x00BF) /* INVERTED QUESTION MARK */
-MAP(0x22, 0x6B, 0x00BA) /* MASCULINE ORDINAL INDICATOR */
-MAP(0x22, 0x6C, 0x00AA) /* FEMININE ORDINAL INDICATOR */
-MAP(0x22, 0x6D, 0x00A9) /* COPYRIGHT SIGN */
-MAP(0x22, 0x6E, 0x00AE) /* REGISTERED SIGN */
-MAP(0x22, 0x6F, 0x2122) /* TRADE MARK SIGN */
-MAP(0x22, 0x70, 0x00A4) /* CURRENCY SIGN */
-MAP(0x22, 0x71, 0x2116) /* NUMERO SIGN */
-MAP(0x26, 0x61, 0x0386) /* GREEK CAPITAL LETTER ALPHA WITH TONOS */
-MAP(0x26, 0x62, 0x0388) /* GREEK CAPITAL LETTER EPSILON WITH TONOS */
-MAP(0x26, 0x63, 0x0389) /* GREEK CAPITAL LETTER ETA WITH TONOS */
-MAP(0x26, 0x64, 0x038A) /* GREEK CAPITAL LETTER IOTA WITH TONOS */
-MAP(0x26, 0x65, 0x03AA) /* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
-MAP(0x26, 0x67, 0x038C) /* GREEK CAPITAL LETTER OMICRON WITH TONOS */
-MAP(0x26, 0x69, 0x038E) /* GREEK CAPITAL LETTER UPSILON WITH TONOS */
-MAP(0x26, 0x6A, 0x03AB) /* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
-MAP(0x26, 0x6C, 0x038F) /* GREEK CAPITAL LETTER OMEGA WITH TONOS */
-MAP(0x26, 0x71, 0x03AC) /* GREEK SMALL LETTER ALPHA WITH TONOS */
-MAP(0x26, 0x72, 0x03AD) /* GREEK SMALL LETTER EPSILON WITH TONOS */
-MAP(0x26, 0x73, 0x03AE) /* GREEK SMALL LETTER ETA WITH TONOS */
-MAP(0x26, 0x74, 0x03AF) /* GREEK SMALL LETTER IOTA WITH TONOS */
-MAP(0x26, 0x75, 0x03CA) /* GREEK SMALL LETTER IOTA WITH DIALYTIKA */
-MAP(0x26, 0x76, 0x0390) /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
-MAP(0x26, 0x77, 0x03CC) /* GREEK SMALL LETTER OMICRON WITH TONOS */
-MAP(0x26, 0x78, 0x03C2) /* GREEK SMALL LETTER FINAL SIGMA */
-MAP(0x26, 0x79, 0x03CD) /* GREEK SMALL LETTER UPSILON WITH TONOS */
-MAP(0x26, 0x7A, 0x03CB) /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
-MAP(0x26, 0x7B, 0x03B0) /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
-MAP(0x26, 0x7C, 0x03CE) /* GREEK SMALL LETTER OMEGA WITH TONOS */
-MAP(0x27, 0x42, 0x0402) /* CYRILLIC CAPITAL LETTER DJE */
-MAP(0x27, 0x43, 0x0403) /* CYRILLIC CAPITAL LETTER GJE */
-MAP(0x27, 0x44, 0x0404) /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */
-MAP(0x27, 0x45, 0x0405) /* CYRILLIC CAPITAL LETTER DZE */
-MAP(0x27, 0x46, 0x0406) /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
-MAP(0x27, 0x47, 0x0407) /* CYRILLIC CAPITAL LETTER YI */
-MAP(0x27, 0x48, 0x0408) /* CYRILLIC CAPITAL LETTER JE */
-MAP(0x27, 0x49, 0x0409) /* CYRILLIC CAPITAL LETTER LJE */
-MAP(0x27, 0x4A, 0x040A) /* CYRILLIC CAPITAL LETTER NJE */
-MAP(0x27, 0x4B, 0x040B) /* CYRILLIC CAPITAL LETTER TSHE */
-MAP(0x27, 0x4C, 0x040C) /* CYRILLIC CAPITAL LETTER KJE */
-MAP(0x27, 0x4D, 0x040E) /* CYRILLIC CAPITAL LETTER SHORT U */
-MAP(0x27, 0x4E, 0x040F) /* CYRILLIC CAPITAL LETTER DZHE */
-MAP(0x27, 0x72, 0x0452) /* CYRILLIC SMALL LETTER DJE */
-MAP(0x27, 0x73, 0x0453) /* CYRILLIC SMALL LETTER GJE */
-MAP(0x27, 0x74, 0x0454) /* CYRILLIC SMALL LETTER UKRAINIAN IE */
-MAP(0x27, 0x75, 0x0455) /* CYRILLIC SMALL LETTER DZE */
-MAP(0x27, 0x76, 0x0456) /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
-MAP(0x27, 0x77, 0x0457) /* CYRILLIC SMALL LETTER YI */
-MAP(0x27, 0x78, 0x0458) /* CYRILLIC SMALL LETTER JE */
-MAP(0x27, 0x79, 0x0459) /* CYRILLIC SMALL LETTER LJE */
-MAP(0x27, 0x7A, 0x045A) /* CYRILLIC SMALL LETTER NJE */
-MAP(0x27, 0x7B, 0x045B) /* CYRILLIC SMALL LETTER TSHE */
-MAP(0x27, 0x7C, 0x045C) /* CYRILLIC SMALL LETTER KJE */
-MAP(0x27, 0x7D, 0x045E) /* CYRILLIC SMALL LETTER SHORT U */
-MAP(0x27, 0x7E, 0x045F) /* CYRILLIC SMALL LETTER DZHE */
-MAP(0x29, 0x21, 0x00C6) /* LATIN CAPITAL LIGATURE AE */
-MAP(0x29, 0x22, 0x0110) /* LATIN CAPITAL LETTER D WITH STROKE */
-MAP(0x29, 0x24, 0x0126) /* LATIN CAPITAL LETTER H WITH STROKE */
-MAP(0x29, 0x26, 0x0132) /* LATIN CAPITAL LIGATURE IJ */
-MAP(0x29, 0x28, 0x0141) /* LATIN CAPITAL LETTER L WITH STROKE */
-MAP(0x29, 0x29, 0x013F) /* LATIN CAPITAL LETTER L WITH MIDDLE DOT */
-MAP(0x29, 0x2B, 0x014A) /* LATIN CAPITAL LETTER ENG */
-MAP(0x29, 0x2C, 0x00D8) /* LATIN CAPITAL LETTER O WITH STROKE */
-MAP(0x29, 0x2D, 0x0152) /* LATIN CAPITAL LIGATURE OE */
-MAP(0x29, 0x2F, 0x0166) /* LATIN CAPITAL LETTER T WITH STROKE */
-MAP(0x29, 0x30, 0x00DE) /* LATIN CAPITAL LETTER THORN */
-MAP(0x29, 0x41, 0x00E6) /* LATIN SMALL LIGATURE AE */
-MAP(0x29, 0x42, 0x0111) /* LATIN SMALL LETTER D WITH STROKE */
-MAP(0x29, 0x43, 0x00F0) /* LATIN SMALL LETTER ETH */
-MAP(0x29, 0x44, 0x0127) /* LATIN SMALL LETTER H WITH STROKE */
-MAP(0x29, 0x45, 0x0131) /* LATIN SMALL LETTER DOTLESS I */
-MAP(0x29, 0x46, 0x0133) /* LATIN SMALL LIGATURE IJ */
-MAP(0x29, 0x47, 0x0138) /* LATIN SMALL LETTER KRA */
-MAP(0x29, 0x48, 0x0142) /* LATIN SMALL LETTER L WITH STROKE */
-MAP(0x29, 0x49, 0x0140) /* LATIN SMALL LETTER L WITH MIDDLE DOT */
-MAP(0x29, 0x4A, 0x0149) /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
-MAP(0x29, 0x4B, 0x014B) /* LATIN SMALL LETTER ENG */
-MAP(0x29, 0x4C, 0x00F8) /* LATIN SMALL LETTER O WITH STROKE */
-MAP(0x29, 0x4D, 0x0153) /* LATIN SMALL LIGATURE OE */
-MAP(0x29, 0x4E, 0x00DF) /* LATIN SMALL LETTER SHARP S */
-MAP(0x29, 0x4F, 0x0167) /* LATIN SMALL LETTER T WITH STROKE */
-MAP(0x29, 0x50, 0x00FE) /* LATIN SMALL LETTER THORN */
-MAP(0x2A, 0x21, 0x00C1) /* LATIN CAPITAL LETTER A WITH ACUTE */
-MAP(0x2A, 0x22, 0x00C0) /* LATIN CAPITAL LETTER A WITH GRAVE */
-MAP(0x2A, 0x23, 0x00C4) /* LATIN CAPITAL LETTER A WITH DIAERESIS */
-MAP(0x2A, 0x24, 0x00C2) /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
-MAP(0x2A, 0x25, 0x0102) /* LATIN CAPITAL LETTER A WITH BREVE */
-MAP(0x2A, 0x26, 0x01CD) /* LATIN CAPITAL LETTER A WITH CARON */
-MAP(0x2A, 0x27, 0x0100) /* LATIN CAPITAL LETTER A WITH MACRON */
-MAP(0x2A, 0x28, 0x0104) /* LATIN CAPITAL LETTER A WITH OGONEK */
-MAP(0x2A, 0x29, 0x00C5) /* LATIN CAPITAL LETTER A WITH RING ABOVE */
-MAP(0x2A, 0x2A, 0x00C3) /* LATIN CAPITAL LETTER A WITH TILDE */
-MAP(0x2A, 0x2B, 0x0106) /* LATIN CAPITAL LETTER C WITH ACUTE */
-MAP(0x2A, 0x2C, 0x0108) /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
-MAP(0x2A, 0x2D, 0x010C) /* LATIN CAPITAL LETTER C WITH CARON */
-MAP(0x2A, 0x2E, 0x00C7) /* LATIN CAPITAL LETTER C WITH CEDILLA */
-MAP(0x2A, 0x2F, 0x010A) /* LATIN CAPITAL LETTER C WITH DOT ABOVE */
-MAP(0x2A, 0x30, 0x010E) /* LATIN CAPITAL LETTER D WITH CARON */
-MAP(0x2A, 0x31, 0x00C9) /* LATIN CAPITAL LETTER E WITH ACUTE */
-MAP(0x2A, 0x32, 0x00C8) /* LATIN CAPITAL LETTER E WITH GRAVE */
-MAP(0x2A, 0x33, 0x00CB) /* LATIN CAPITAL LETTER E WITH DIAERESIS */
-MAP(0x2A, 0x34, 0x00CA) /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
-MAP(0x2A, 0x35, 0x011A) /* LATIN CAPITAL LETTER E WITH CARON */
-MAP(0x2A, 0x36, 0x0116) /* LATIN CAPITAL LETTER E WITH DOT ABOVE */
-MAP(0x2A, 0x37, 0x0112) /* LATIN CAPITAL LETTER E WITH MACRON */
-MAP(0x2A, 0x38, 0x0118) /* LATIN CAPITAL LETTER E WITH OGONEK */
-MAP(0x2A, 0x3A, 0x011C) /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
-MAP(0x2A, 0x3B, 0x011E) /* LATIN CAPITAL LETTER G WITH BREVE */
-MAP(0x2A, 0x3C, 0x0122) /* LATIN CAPITAL LETTER G WITH CEDILLA */
-MAP(0x2A, 0x3D, 0x0120) /* LATIN CAPITAL LETTER G WITH DOT ABOVE */
-MAP(0x2A, 0x3E, 0x0124) /* LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
-MAP(0x2A, 0x3F, 0x00CD) /* LATIN CAPITAL LETTER I WITH ACUTE */
-MAP(0x2A, 0x40, 0x00CC) /* LATIN CAPITAL LETTER I WITH GRAVE */
-MAP(0x2A, 0x41, 0x00CF) /* LATIN CAPITAL LETTER I WITH DIAERESIS */
-MAP(0x2A, 0x42, 0x00CE) /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
-MAP(0x2A, 0x43, 0x01CF) /* LATIN CAPITAL LETTER I WITH CARON */
-MAP(0x2A, 0x44, 0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
-MAP(0x2A, 0x45, 0x012A) /* LATIN CAPITAL LETTER I WITH MACRON */
-MAP(0x2A, 0x46, 0x012E) /* LATIN CAPITAL LETTER I WITH OGONEK */
-MAP(0x2A, 0x47, 0x0128) /* LATIN CAPITAL LETTER I WITH TILDE */
-MAP(0x2A, 0x48, 0x0134) /* LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
-MAP(0x2A, 0x49, 0x0136) /* LATIN CAPITAL LETTER K WITH CEDILLA */
-MAP(0x2A, 0x4A, 0x0139) /* LATIN CAPITAL LETTER L WITH ACUTE */
-MAP(0x2A, 0x4B, 0x013D) /* LATIN CAPITAL LETTER L WITH CARON */
-MAP(0x2A, 0x4C, 0x013B) /* LATIN CAPITAL LETTER L WITH CEDILLA */
-MAP(0x2A, 0x4D, 0x0143) /* LATIN CAPITAL LETTER N WITH ACUTE */
-MAP(0x2A, 0x4E, 0x0147) /* LATIN CAPITAL LETTER N WITH CARON */
-MAP(0x2A, 0x4F, 0x0145) /* LATIN CAPITAL LETTER N WITH CEDILLA */
-MAP(0x2A, 0x50, 0x00D1) /* LATIN CAPITAL LETTER N WITH TILDE */
-MAP(0x2A, 0x51, 0x00D3) /* LATIN CAPITAL LETTER O WITH ACUTE */
-MAP(0x2A, 0x52, 0x00D2) /* LATIN CAPITAL LETTER O WITH GRAVE */
-MAP(0x2A, 0x53, 0x00D6) /* LATIN CAPITAL LETTER O WITH DIAERESIS */
-MAP(0x2A, 0x54, 0x00D4) /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
-MAP(0x2A, 0x55, 0x01D1) /* LATIN CAPITAL LETTER O WITH CARON */
-MAP(0x2A, 0x56, 0x0150) /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
-MAP(0x2A, 0x57, 0x014C) /* LATIN CAPITAL LETTER O WITH MACRON */
-MAP(0x2A, 0x58, 0x00D5) /* LATIN CAPITAL LETTER O WITH TILDE */
-MAP(0x2A, 0x59, 0x0154) /* LATIN CAPITAL LETTER R WITH ACUTE */
-MAP(0x2A, 0x5A, 0x0158) /* LATIN CAPITAL LETTER R WITH CARON */
-MAP(0x2A, 0x5B, 0x0156) /* LATIN CAPITAL LETTER R WITH CEDILLA */
-MAP(0x2A, 0x5C, 0x015A) /* LATIN CAPITAL LETTER S WITH ACUTE */
-MAP(0x2A, 0x5D, 0x015C) /* LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
-MAP(0x2A, 0x5E, 0x0160) /* LATIN CAPITAL LETTER S WITH CARON */
-MAP(0x2A, 0x5F, 0x015E) /* LATIN CAPITAL LETTER S WITH CEDILLA */
-MAP(0x2A, 0x60, 0x0164) /* LATIN CAPITAL LETTER T WITH CARON */
-MAP(0x2A, 0x61, 0x0162) /* LATIN CAPITAL LETTER T WITH CEDILLA */
-MAP(0x2A, 0x62, 0x00DA) /* LATIN CAPITAL LETTER U WITH ACUTE */
-MAP(0x2A, 0x63, 0x00D9) /* LATIN CAPITAL LETTER U WITH GRAVE */
-MAP(0x2A, 0x64, 0x00DC) /* LATIN CAPITAL LETTER U WITH DIAERESIS */
-MAP(0x2A, 0x65, 0x00DB) /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
-MAP(0x2A, 0x66, 0x016C) /* LATIN CAPITAL LETTER U WITH BREVE */
-MAP(0x2A, 0x67, 0x01D3) /* LATIN CAPITAL LETTER U WITH CARON */
-MAP(0x2A, 0x68, 0x0170) /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
-MAP(0x2A, 0x69, 0x016A) /* LATIN CAPITAL LETTER U WITH MACRON */
-MAP(0x2A, 0x6A, 0x0172) /* LATIN CAPITAL LETTER U WITH OGONEK */
-MAP(0x2A, 0x6B, 0x016E) /* LATIN CAPITAL LETTER U WITH RING ABOVE */
-MAP(0x2A, 0x6C, 0x0168) /* LATIN CAPITAL LETTER U WITH TILDE */
-MAP(0x2A, 0x6D, 0x01D7) /* LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE */
-MAP(0x2A, 0x6E, 0x01DB) /* LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE */
-MAP(0x2A, 0x6F, 0x01D9) /* LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON */
-MAP(0x2A, 0x70, 0x01D5) /* LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON */
-MAP(0x2A, 0x71, 0x0174) /* LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
-MAP(0x2A, 0x72, 0x00DD) /* LATIN CAPITAL LETTER Y WITH ACUTE */
-MAP(0x2A, 0x73, 0x0178) /* LATIN CAPITAL LETTER Y WITH DIAERESIS */
-MAP(0x2A, 0x74, 0x0176) /* LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
-MAP(0x2A, 0x75, 0x0179) /* LATIN CAPITAL LETTER Z WITH ACUTE */
-MAP(0x2A, 0x76, 0x017D) /* LATIN CAPITAL LETTER Z WITH CARON */
-MAP(0x2A, 0x77, 0x017B) /* LATIN CAPITAL LETTER Z WITH DOT ABOVE */
-MAP(0x2B, 0x21, 0x00E1) /* LATIN SMALL LETTER A WITH ACUTE */
-MAP(0x2B, 0x22, 0x00E0) /* LATIN SMALL LETTER A WITH GRAVE */
-MAP(0x2B, 0x23, 0x00E4) /* LATIN SMALL LETTER A WITH DIAERESIS */
-MAP(0x2B, 0x24, 0x00E2) /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
-MAP(0x2B, 0x25, 0x0103) /* LATIN SMALL LETTER A WITH BREVE */
-MAP(0x2B, 0x26, 0x01CE) /* LATIN SMALL LETTER A WITH CARON */
-MAP(0x2B, 0x27, 0x0101) /* LATIN SMALL LETTER A WITH MACRON */
-MAP(0x2B, 0x28, 0x0105) /* LATIN SMALL LETTER A WITH OGONEK */
-MAP(0x2B, 0x29, 0x00E5) /* LATIN SMALL LETTER A WITH RING ABOVE */
-MAP(0x2B, 0x2A, 0x00E3) /* LATIN SMALL LETTER A WITH TILDE */
-MAP(0x2B, 0x2B, 0x0107) /* LATIN SMALL LETTER C WITH ACUTE */
-MAP(0x2B, 0x2C, 0x0109) /* LATIN SMALL LETTER C WITH CIRCUMFLEX */
-MAP(0x2B, 0x2D, 0x010D) /* LATIN SMALL LETTER C WITH CARON */
-MAP(0x2B, 0x2E, 0x00E7) /* LATIN SMALL LETTER C WITH CEDILLA */
-MAP(0x2B, 0x2F, 0x010B) /* LATIN SMALL LETTER C WITH DOT ABOVE */
-MAP(0x2B, 0x30, 0x010F) /* LATIN SMALL LETTER D WITH CARON */
-MAP(0x2B, 0x31, 0x00E9) /* LATIN SMALL LETTER E WITH ACUTE */
-MAP(0x2B, 0x32, 0x00E8) /* LATIN SMALL LETTER E WITH GRAVE */
-MAP(0x2B, 0x33, 0x00EB) /* LATIN SMALL LETTER E WITH DIAERESIS */
-MAP(0x2B, 0x34, 0x00EA) /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
-MAP(0x2B, 0x35, 0x011B) /* LATIN SMALL LETTER E WITH CARON */
-MAP(0x2B, 0x36, 0x0117) /* LATIN SMALL LETTER E WITH DOT ABOVE */
-MAP(0x2B, 0x37, 0x0113) /* LATIN SMALL LETTER E WITH MACRON */
-MAP(0x2B, 0x38, 0x0119) /* LATIN SMALL LETTER E WITH OGONEK */
-MAP(0x2B, 0x39, 0x01F5) /* LATIN SMALL LETTER G WITH ACUTE */
-MAP(0x2B, 0x3A, 0x011D) /* LATIN SMALL LETTER G WITH CIRCUMFLEX */
-MAP(0x2B, 0x3B, 0x011F) /* LATIN SMALL LETTER G WITH BREVE */
-MAP(0x2B, 0x3D, 0x0121) /* LATIN SMALL LETTER G WITH DOT ABOVE */
-MAP(0x2B, 0x3E, 0x0125) /* LATIN SMALL LETTER H WITH CIRCUMFLEX */
-MAP(0x2B, 0x3F, 0x00ED) /* LATIN SMALL LETTER I WITH ACUTE */
-MAP(0x2B, 0x40, 0x00EC) /* LATIN SMALL LETTER I WITH GRAVE */
-MAP(0x2B, 0x41, 0x00EF) /* LATIN SMALL LETTER I WITH DIAERESIS */
-MAP(0x2B, 0x42, 0x00EE) /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
-MAP(0x2B, 0x43, 0x01D0) /* LATIN SMALL LETTER I WITH CARON */
-MAP(0x2B, 0x45, 0x012B) /* LATIN SMALL LETTER I WITH MACRON */
-MAP(0x2B, 0x46, 0x012F) /* LATIN SMALL LETTER I WITH OGONEK */
-MAP(0x2B, 0x47, 0x0129) /* LATIN SMALL LETTER I WITH TILDE */
-MAP(0x2B, 0x48, 0x0135) /* LATIN SMALL LETTER J WITH CIRCUMFLEX */
-MAP(0x2B, 0x49, 0x0137) /* LATIN SMALL LETTER K WITH CEDILLA */
-MAP(0x2B, 0x4A, 0x013A) /* LATIN SMALL LETTER L WITH ACUTE */
-MAP(0x2B, 0x4B, 0x013E) /* LATIN SMALL LETTER L WITH CARON */
-MAP(0x2B, 0x4C, 0x013C) /* LATIN SMALL LETTER L WITH CEDILLA */
-MAP(0x2B, 0x4D, 0x0144) /* LATIN SMALL LETTER N WITH ACUTE */
-MAP(0x2B, 0x4E, 0x0148) /* LATIN SMALL LETTER N WITH CARON */
-MAP(0x2B, 0x4F, 0x0146) /* LATIN SMALL LETTER N WITH CEDILLA */
-MAP(0x2B, 0x50, 0x00F1) /* LATIN SMALL LETTER N WITH TILDE */
-MAP(0x2B, 0x51, 0x00F3) /* LATIN SMALL LETTER O WITH ACUTE */
-MAP(0x2B, 0x52, 0x00F2) /* LATIN SMALL LETTER O WITH GRAVE */
-MAP(0x2B, 0x53, 0x00F6) /* LATIN SMALL LETTER O WITH DIAERESIS */
-MAP(0x2B, 0x54, 0x00F4) /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
-MAP(0x2B, 0x55, 0x01D2) /* LATIN SMALL LETTER O WITH CARON */
-MAP(0x2B, 0x56, 0x0151) /* LATIN SMALL LETTER O WITH DOUBLE ACUTE */
-MAP(0x2B, 0x57, 0x014D) /* LATIN SMALL LETTER O WITH MACRON */
-MAP(0x2B, 0x58, 0x00F5) /* LATIN SMALL LETTER O WITH TILDE */
-MAP(0x2B, 0x59, 0x0155) /* LATIN SMALL LETTER R WITH ACUTE */
-MAP(0x2B, 0x5A, 0x0159) /* LATIN SMALL LETTER R WITH CARON */
-MAP(0x2B, 0x5B, 0x0157) /* LATIN SMALL LETTER R WITH CEDILLA */
-MAP(0x2B, 0x5C, 0x015B) /* LATIN SMALL LETTER S WITH ACUTE */
-MAP(0x2B, 0x5D, 0x015D) /* LATIN SMALL LETTER S WITH CIRCUMFLEX */
-MAP(0x2B, 0x5E, 0x0161) /* LATIN SMALL LETTER S WITH CARON */
-MAP(0x2B, 0x5F, 0x015F) /* LATIN SMALL LETTER S WITH CEDILLA */
-MAP(0x2B, 0x60, 0x0165) /* LATIN SMALL LETTER T WITH CARON */
-MAP(0x2B, 0x61, 0x0163) /* LATIN SMALL LETTER T WITH CEDILLA */
-MAP(0x2B, 0x62, 0x00FA) /* LATIN SMALL LETTER U WITH ACUTE */
-MAP(0x2B, 0x63, 0x00F9) /* LATIN SMALL LETTER U WITH GRAVE */
-MAP(0x2B, 0x64, 0x00FC) /* LATIN SMALL LETTER U WITH DIAERESIS */
-MAP(0x2B, 0x65, 0x00FB) /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
-MAP(0x2B, 0x66, 0x016D) /* LATIN SMALL LETTER U WITH BREVE */
-MAP(0x2B, 0x67, 0x01D4) /* LATIN SMALL LETTER U WITH CARON */
-MAP(0x2B, 0x68, 0x0171) /* LATIN SMALL LETTER U WITH DOUBLE ACUTE */
-MAP(0x2B, 0x69, 0x016B) /* LATIN SMALL LETTER U WITH MACRON */
-MAP(0x2B, 0x6A, 0x0173) /* LATIN SMALL LETTER U WITH OGONEK */
-MAP(0x2B, 0x6B, 0x016F) /* LATIN SMALL LETTER U WITH RING ABOVE */
-MAP(0x2B, 0x6C, 0x0169) /* LATIN SMALL LETTER U WITH TILDE */
-MAP(0x2B, 0x6D, 0x01D8) /* LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE */
-MAP(0x2B, 0x6E, 0x01DC) /* LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE */
-MAP(0x2B, 0x6F, 0x01DA) /* LATIN SMALL LETTER U WITH DIAERESIS AND CARON */
-MAP(0x2B, 0x70, 0x01D6) /* LATIN SMALL LETTER U WITH DIAERESIS AND MACRON */
-MAP(0x2B, 0x71, 0x0175) /* LATIN SMALL LETTER W WITH CIRCUMFLEX */
-MAP(0x2B, 0x72, 0x00FD) /* LATIN SMALL LETTER Y WITH ACUTE */
-MAP(0x2B, 0x73, 0x00FF) /* LATIN SMALL LETTER Y WITH DIAERESIS */
-MAP(0x2B, 0x74, 0x0177) /* LATIN SMALL LETTER Y WITH CIRCUMFLEX */
-MAP(0x2B, 0x75, 0x017A) /* LATIN SMALL LETTER Z WITH ACUTE */
-MAP(0x2B, 0x76, 0x017E) /* LATIN SMALL LETTER Z WITH CARON */
-MAP(0x2B, 0x77, 0x017C) /* LATIN SMALL LETTER Z WITH DOT ABOVE */
-MAP(0x30, 0x21, 0x4E02) /* <CJK> */
-MAP(0x30, 0x22, 0x4E04) /* <CJK> */
-MAP(0x30, 0x23, 0x4E05) /* <CJK> */
-MAP(0x30, 0x24, 0x4E0C) /* <CJK> */
-MAP(0x30, 0x25, 0x4E12) /* <CJK> */
-MAP(0x30, 0x26, 0x4E1F) /* <CJK> */
-MAP(0x30, 0x27, 0x4E23) /* <CJK> */
-MAP(0x30, 0x28, 0x4E24) /* <CJK> */
-MAP(0x30, 0x29, 0x4E28) /* <CJK> */
-MAP(0x30, 0x2A, 0x4E2B) /* <CJK> */
-MAP(0x30, 0x2B, 0x4E2E) /* <CJK> */
-MAP(0x30, 0x2C, 0x4E2F) /* <CJK> */
-MAP(0x30, 0x2D, 0x4E30) /* <CJK> */
-MAP(0x30, 0x2E, 0x4E35) /* <CJK> */
-MAP(0x30, 0x2F, 0x4E40) /* <CJK> */
-MAP(0x30, 0x30, 0x4E41) /* <CJK> */
-MAP(0x30, 0x31, 0x4E44) /* <CJK> */
-MAP(0x30, 0x32, 0x4E47) /* <CJK> */
-MAP(0x30, 0x33, 0x4E51) /* <CJK> */
-MAP(0x30, 0x34, 0x4E5A) /* <CJK> */
-MAP(0x30, 0x35, 0x4E5C) /* <CJK> */
-MAP(0x30, 0x36, 0x4E63) /* <CJK> */
-MAP(0x30, 0x37, 0x4E68) /* <CJK> */
-MAP(0x30, 0x38, 0x4E69) /* <CJK> */
-MAP(0x30, 0x39, 0x4E74) /* <CJK> */
-MAP(0x30, 0x3A, 0x4E75) /* <CJK> */
-MAP(0x30, 0x3B, 0x4E79) /* <CJK> */
-MAP(0x30, 0x3C, 0x4E7F) /* <CJK> */
-MAP(0x30, 0x3D, 0x4E8D) /* <CJK> */
-MAP(0x30, 0x3E, 0x4E96) /* <CJK> */
-MAP(0x30, 0x3F, 0x4E97) /* <CJK> */
-MAP(0x30, 0x40, 0x4E9D) /* <CJK> */
-MAP(0x30, 0x41, 0x4EAF) /* <CJK> */
-MAP(0x30, 0x42, 0x4EB9) /* <CJK> */
-MAP(0x30, 0x43, 0x4EC3) /* <CJK> */
-MAP(0x30, 0x44, 0x4ED0) /* <CJK> */
-MAP(0x30, 0x45, 0x4EDA) /* <CJK> */
-MAP(0x30, 0x46, 0x4EDB) /* <CJK> */
-MAP(0x30, 0x47, 0x4EE0) /* <CJK> */
-MAP(0x30, 0x48, 0x4EE1) /* <CJK> */
-MAP(0x30, 0x49, 0x4EE2) /* <CJK> */
-MAP(0x30, 0x4A, 0x4EE8) /* <CJK> */
-MAP(0x30, 0x4B, 0x4EEF) /* <CJK> */
-MAP(0x30, 0x4C, 0x4EF1) /* <CJK> */
-MAP(0x30, 0x4D, 0x4EF3) /* <CJK> */
-MAP(0x30, 0x4E, 0x4EF5) /* <CJK> */
-MAP(0x30, 0x4F, 0x4EFD) /* <CJK> */
-MAP(0x30, 0x50, 0x4EFE) /* <CJK> */
-MAP(0x30, 0x51, 0x4EFF) /* <CJK> */
-MAP(0x30, 0x52, 0x4F00) /* <CJK> */
-MAP(0x30, 0x53, 0x4F02) /* <CJK> */
-MAP(0x30, 0x54, 0x4F03) /* <CJK> */
-MAP(0x30, 0x55, 0x4F08) /* <CJK> */
-MAP(0x30, 0x56, 0x4F0B) /* <CJK> */
-MAP(0x30, 0x57, 0x4F0C) /* <CJK> */
-MAP(0x30, 0x58, 0x4F12) /* <CJK> */
-MAP(0x30, 0x59, 0x4F15) /* <CJK> */
-MAP(0x30, 0x5A, 0x4F16) /* <CJK> */
-MAP(0x30, 0x5B, 0x4F17) /* <CJK> */
-MAP(0x30, 0x5C, 0x4F19) /* <CJK> */
-MAP(0x30, 0x5D, 0x4F2E) /* <CJK> */
-MAP(0x30, 0x5E, 0x4F31) /* <CJK> */
-MAP(0x30, 0x5F, 0x4F60) /* <CJK> */
-MAP(0x30, 0x60, 0x4F33) /* <CJK> */
-MAP(0x30, 0x61, 0x4F35) /* <CJK> */
-MAP(0x30, 0x62, 0x4F37) /* <CJK> */
-MAP(0x30, 0x63, 0x4F39) /* <CJK> */
-MAP(0x30, 0x64, 0x4F3B) /* <CJK> */
-MAP(0x30, 0x65, 0x4F3E) /* <CJK> */
-MAP(0x30, 0x66, 0x4F40) /* <CJK> */
-MAP(0x30, 0x67, 0x4F42) /* <CJK> */
-MAP(0x30, 0x68, 0x4F48) /* <CJK> */
-MAP(0x30, 0x69, 0x4F49) /* <CJK> */
-MAP(0x30, 0x6A, 0x4F4B) /* <CJK> */
-MAP(0x30, 0x6B, 0x4F4C) /* <CJK> */
-MAP(0x30, 0x6C, 0x4F52) /* <CJK> */
-MAP(0x30, 0x6D, 0x4F54) /* <CJK> */
-MAP(0x30, 0x6E, 0x4F56) /* <CJK> */
-MAP(0x30, 0x6F, 0x4F58) /* <CJK> */
-MAP(0x30, 0x70, 0x4F5F) /* <CJK> */
-MAP(0x30, 0x71, 0x4F63) /* <CJK> */
-MAP(0x30, 0x72, 0x4F6A) /* <CJK> */
-MAP(0x30, 0x73, 0x4F6C) /* <CJK> */
-MAP(0x30, 0x74, 0x4F6E) /* <CJK> */
-MAP(0x30, 0x75, 0x4F71) /* <CJK> */
-MAP(0x30, 0x76, 0x4F77) /* <CJK> */
-MAP(0x30, 0x77, 0x4F78) /* <CJK> */
-MAP(0x30, 0x78, 0x4F79) /* <CJK> */
-MAP(0x30, 0x79, 0x4F7A) /* <CJK> */
-MAP(0x30, 0x7A, 0x4F7D) /* <CJK> */
-MAP(0x30, 0x7B, 0x4F7E) /* <CJK> */
-MAP(0x30, 0x7C, 0x4F81) /* <CJK> */
-MAP(0x30, 0x7D, 0x4F82) /* <CJK> */
-MAP(0x30, 0x7E, 0x4F84) /* <CJK> */
-MAP(0x31, 0x21, 0x4F85) /* <CJK> */
-MAP(0x31, 0x22, 0x4F89) /* <CJK> */
-MAP(0x31, 0x23, 0x4F8A) /* <CJK> */
-MAP(0x31, 0x24, 0x4F8C) /* <CJK> */
-MAP(0x31, 0x25, 0x4F8E) /* <CJK> */
-MAP(0x31, 0x26, 0x4F90) /* <CJK> */
-MAP(0x31, 0x27, 0x4F92) /* <CJK> */
-MAP(0x31, 0x28, 0x4F93) /* <CJK> */
-MAP(0x31, 0x29, 0x4F94) /* <CJK> */
-MAP(0x31, 0x2A, 0x4F97) /* <CJK> */
-MAP(0x31, 0x2B, 0x4F99) /* <CJK> */
-MAP(0x31, 0x2C, 0x4F9A) /* <CJK> */
-MAP(0x31, 0x2D, 0x4F9E) /* <CJK> */
-MAP(0x31, 0x2E, 0x4F9F) /* <CJK> */
-MAP(0x31, 0x2F, 0x4FB2) /* <CJK> */
-MAP(0x31, 0x30, 0x4FB7) /* <CJK> */
-MAP(0x31, 0x31, 0x4FB9) /* <CJK> */
-MAP(0x31, 0x32, 0x4FBB) /* <CJK> */
-MAP(0x31, 0x33, 0x4FBC) /* <CJK> */
-MAP(0x31, 0x34, 0x4FBD) /* <CJK> */
-MAP(0x31, 0x35, 0x4FBE) /* <CJK> */
-MAP(0x31, 0x36, 0x4FC0) /* <CJK> */
-MAP(0x31, 0x37, 0x4FC1) /* <CJK> */
-MAP(0x31, 0x38, 0x4FC5) /* <CJK> */
-MAP(0x31, 0x39, 0x4FC6) /* <CJK> */
-MAP(0x31, 0x3A, 0x4FC8) /* <CJK> */
-MAP(0x31, 0x3B, 0x4FC9) /* <CJK> */
-MAP(0x31, 0x3C, 0x4FCB) /* <CJK> */
-MAP(0x31, 0x3D, 0x4FCC) /* <CJK> */
-MAP(0x31, 0x3E, 0x4FCD) /* <CJK> */
-MAP(0x31, 0x3F, 0x4FCF) /* <CJK> */
-MAP(0x31, 0x40, 0x4FD2) /* <CJK> */
-MAP(0x31, 0x41, 0x4FDC) /* <CJK> */
-MAP(0x31, 0x42, 0x4FE0) /* <CJK> */
-MAP(0x31, 0x43, 0x4FE2) /* <CJK> */
-MAP(0x31, 0x44, 0x4FF0) /* <CJK> */
-MAP(0x31, 0x45, 0x4FF2) /* <CJK> */
-MAP(0x31, 0x46, 0x4FFC) /* <CJK> */
-MAP(0x31, 0x47, 0x4FFD) /* <CJK> */
-MAP(0x31, 0x48, 0x4FFF) /* <CJK> */
-MAP(0x31, 0x49, 0x5000) /* <CJK> */
-MAP(0x31, 0x4A, 0x5001) /* <CJK> */
-MAP(0x31, 0x4B, 0x5004) /* <CJK> */
-MAP(0x31, 0x4C, 0x5007) /* <CJK> */
-MAP(0x31, 0x4D, 0x500A) /* <CJK> */
-MAP(0x31, 0x4E, 0x500C) /* <CJK> */
-MAP(0x31, 0x4F, 0x500E) /* <CJK> */
-MAP(0x31, 0x50, 0x5010) /* <CJK> */
-MAP(0x31, 0x51, 0x5013) /* <CJK> */
-MAP(0x31, 0x52, 0x5017) /* <CJK> */
-MAP(0x31, 0x53, 0x5018) /* <CJK> */
-MAP(0x31, 0x54, 0x501B) /* <CJK> */
-MAP(0x31, 0x55, 0x501C) /* <CJK> */
-MAP(0x31, 0x56, 0x501D) /* <CJK> */
-MAP(0x31, 0x57, 0x501E) /* <CJK> */
-MAP(0x31, 0x58, 0x5022) /* <CJK> */
-MAP(0x31, 0x59, 0x5027) /* <CJK> */
-MAP(0x31, 0x5A, 0x502E) /* <CJK> */
-MAP(0x31, 0x5B, 0x5030) /* <CJK> */
-MAP(0x31, 0x5C, 0x5032) /* <CJK> */
-MAP(0x31, 0x5D, 0x5033) /* <CJK> */
-MAP(0x31, 0x5E, 0x5035) /* <CJK> */
-MAP(0x31, 0x5F, 0x5040) /* <CJK> */
-MAP(0x31, 0x60, 0x5041) /* <CJK> */
-MAP(0x31, 0x61, 0x5042) /* <CJK> */
-MAP(0x31, 0x62, 0x5045) /* <CJK> */
-MAP(0x31, 0x63, 0x5046) /* <CJK> */
-MAP(0x31, 0x64, 0x504A) /* <CJK> */
-MAP(0x31, 0x65, 0x504C) /* <CJK> */
-MAP(0x31, 0x66, 0x504E) /* <CJK> */
-MAP(0x31, 0x67, 0x5051) /* <CJK> */
-MAP(0x31, 0x68, 0x5052) /* <CJK> */
-MAP(0x31, 0x69, 0x5053) /* <CJK> */
-MAP(0x31, 0x6A, 0x5057) /* <CJK> */
-MAP(0x31, 0x6B, 0x5059) /* <CJK> */
-MAP(0x31, 0x6C, 0x505F) /* <CJK> */
-MAP(0x31, 0x6D, 0x5060) /* <CJK> */
-MAP(0x31, 0x6E, 0x5062) /* <CJK> */
-MAP(0x31, 0x6F, 0x5063) /* <CJK> */
-MAP(0x31, 0x70, 0x5066) /* <CJK> */
-MAP(0x31, 0x71, 0x5067) /* <CJK> */
-MAP(0x31, 0x72, 0x506A) /* <CJK> */
-MAP(0x31, 0x73, 0x506D) /* <CJK> */
-MAP(0x31, 0x74, 0x5070) /* <CJK> */
-MAP(0x31, 0x75, 0x5071) /* <CJK> */
-MAP(0x31, 0x76, 0x503B) /* <CJK> */
-MAP(0x31, 0x77, 0x5081) /* <CJK> */
-MAP(0x31, 0x78, 0x5083) /* <CJK> */
-MAP(0x31, 0x79, 0x5084) /* <CJK> */
-MAP(0x31, 0x7A, 0x5086) /* <CJK> */
-MAP(0x31, 0x7B, 0x508A) /* <CJK> */
-MAP(0x31, 0x7C, 0x508E) /* <CJK> */
-MAP(0x31, 0x7D, 0x508F) /* <CJK> */
-MAP(0x31, 0x7E, 0x5090) /* <CJK> */
-MAP(0x32, 0x21, 0x5092) /* <CJK> */
-MAP(0x32, 0x22, 0x5093) /* <CJK> */
-MAP(0x32, 0x23, 0x5094) /* <CJK> */
-MAP(0x32, 0x24, 0x5096) /* <CJK> */
-MAP(0x32, 0x25, 0x509B) /* <CJK> */
-MAP(0x32, 0x26, 0x509C) /* <CJK> */
-MAP(0x32, 0x27, 0x509E) /* <CJK> */
-MAP(0x32, 0x28, 0x509F) /* <CJK> */
-MAP(0x32, 0x29, 0x50A0) /* <CJK> */
-MAP(0x32, 0x2A, 0x50A1) /* <CJK> */
-MAP(0x32, 0x2B, 0x50A2) /* <CJK> */
-MAP(0x32, 0x2C, 0x50AA) /* <CJK> */
-MAP(0x32, 0x2D, 0x50AF) /* <CJK> */
-MAP(0x32, 0x2E, 0x50B0) /* <CJK> */
-MAP(0x32, 0x2F, 0x50B9) /* <CJK> */
-MAP(0x32, 0x30, 0x50BA) /* <CJK> */
-MAP(0x32, 0x31, 0x50BD) /* <CJK> */
-MAP(0x32, 0x32, 0x50C0) /* <CJK> */
-MAP(0x32, 0x33, 0x50C3) /* <CJK> */
-MAP(0x32, 0x34, 0x50C4) /* <CJK> */
-MAP(0x32, 0x35, 0x50C7) /* <CJK> */
-MAP(0x32, 0x36, 0x50CC) /* <CJK> */
-MAP(0x32, 0x37, 0x50CE) /* <CJK> */
-MAP(0x32, 0x38, 0x50D0) /* <CJK> */
-MAP(0x32, 0x39, 0x50D3) /* <CJK> */
-MAP(0x32, 0x3A, 0x50D4) /* <CJK> */
-MAP(0x32, 0x3B, 0x50D8) /* <CJK> */
-MAP(0x32, 0x3C, 0x50DC) /* <CJK> */
-MAP(0x32, 0x3D, 0x50DD) /* <CJK> */
-MAP(0x32, 0x3E, 0x50DF) /* <CJK> */
-MAP(0x32, 0x3F, 0x50E2) /* <CJK> */
-MAP(0x32, 0x40, 0x50E4) /* <CJK> */
-MAP(0x32, 0x41, 0x50E6) /* <CJK> */
-MAP(0x32, 0x42, 0x50E8) /* <CJK> */
-MAP(0x32, 0x43, 0x50E9) /* <CJK> */
-MAP(0x32, 0x44, 0x50EF) /* <CJK> */
-MAP(0x32, 0x45, 0x50F1) /* <CJK> */
-MAP(0x32, 0x46, 0x50F6) /* <CJK> */
-MAP(0x32, 0x47, 0x50FA) /* <CJK> */
-MAP(0x32, 0x48, 0x50FE) /* <CJK> */
-MAP(0x32, 0x49, 0x5103) /* <CJK> */
-MAP(0x32, 0x4A, 0x5106) /* <CJK> */
-MAP(0x32, 0x4B, 0x5107) /* <CJK> */
-MAP(0x32, 0x4C, 0x5108) /* <CJK> */
-MAP(0x32, 0x4D, 0x510B) /* <CJK> */
-MAP(0x32, 0x4E, 0x510C) /* <CJK> */
-MAP(0x32, 0x4F, 0x510D) /* <CJK> */
-MAP(0x32, 0x50, 0x510E) /* <CJK> */
-MAP(0x32, 0x51, 0x50F2) /* <CJK> */
-MAP(0x32, 0x52, 0x5110) /* <CJK> */
-MAP(0x32, 0x53, 0x5117) /* <CJK> */
-MAP(0x32, 0x54, 0x5119) /* <CJK> */
-MAP(0x32, 0x55, 0x511B) /* <CJK> */
-MAP(0x32, 0x56, 0x511C) /* <CJK> */
-MAP(0x32, 0x57, 0x511D) /* <CJK> */
-MAP(0x32, 0x58, 0x511E) /* <CJK> */
-MAP(0x32, 0x59, 0x5123) /* <CJK> */
-MAP(0x32, 0x5A, 0x5127) /* <CJK> */
-MAP(0x32, 0x5B, 0x5128) /* <CJK> */
-MAP(0x32, 0x5C, 0x512C) /* <CJK> */
-MAP(0x32, 0x5D, 0x512D) /* <CJK> */
-MAP(0x32, 0x5E, 0x512F) /* <CJK> */
-MAP(0x32, 0x5F, 0x5131) /* <CJK> */
-MAP(0x32, 0x60, 0x5133) /* <CJK> */
-MAP(0x32, 0x61, 0x5134) /* <CJK> */
-MAP(0x32, 0x62, 0x5135) /* <CJK> */
-MAP(0x32, 0x63, 0x5138) /* <CJK> */
-MAP(0x32, 0x64, 0x5139) /* <CJK> */
-MAP(0x32, 0x65, 0x5142) /* <CJK> */
-MAP(0x32, 0x66, 0x514A) /* <CJK> */
-MAP(0x32, 0x67, 0x514F) /* <CJK> */
-MAP(0x32, 0x68, 0x5153) /* <CJK> */
-MAP(0x32, 0x69, 0x5155) /* <CJK> */
-MAP(0x32, 0x6A, 0x5157) /* <CJK> */
-MAP(0x32, 0x6B, 0x5158) /* <CJK> */
-MAP(0x32, 0x6C, 0x515F) /* <CJK> */
-MAP(0x32, 0x6D, 0x5164) /* <CJK> */
-MAP(0x32, 0x6E, 0x5166) /* <CJK> */
-MAP(0x32, 0x6F, 0x517E) /* <CJK> */
-MAP(0x32, 0x70, 0x5183) /* <CJK> */
-MAP(0x32, 0x71, 0x5184) /* <CJK> */
-MAP(0x32, 0x72, 0x518B) /* <CJK> */
-MAP(0x32, 0x73, 0x518E) /* <CJK> */
-MAP(0x32, 0x74, 0x5198) /* <CJK> */
-MAP(0x32, 0x75, 0x519D) /* <CJK> */
-MAP(0x32, 0x76, 0x51A1) /* <CJK> */
-MAP(0x32, 0x77, 0x51A3) /* <CJK> */
-MAP(0x32, 0x78, 0x51AD) /* <CJK> */
-MAP(0x32, 0x79, 0x51B8) /* <CJK> */
-MAP(0x32, 0x7A, 0x51BA) /* <CJK> */
-MAP(0x32, 0x7B, 0x51BC) /* <CJK> */
-MAP(0x32, 0x7C, 0x51BE) /* <CJK> */
-MAP(0x32, 0x7D, 0x51BF) /* <CJK> */
-MAP(0x32, 0x7E, 0x51C2) /* <CJK> */
-MAP(0x33, 0x21, 0x51C8) /* <CJK> */
-MAP(0x33, 0x22, 0x51CF) /* <CJK> */
-MAP(0x33, 0x23, 0x51D1) /* <CJK> */
-MAP(0x33, 0x24, 0x51D2) /* <CJK> */
-MAP(0x33, 0x25, 0x51D3) /* <CJK> */
-MAP(0x33, 0x26, 0x51D5) /* <CJK> */
-MAP(0x33, 0x27, 0x51D8) /* <CJK> */
-MAP(0x33, 0x28, 0x51DE) /* <CJK> */
-MAP(0x33, 0x29, 0x51E2) /* <CJK> */
-MAP(0x33, 0x2A, 0x51E5) /* <CJK> */
-MAP(0x33, 0x2B, 0x51EE) /* <CJK> */
-MAP(0x33, 0x2C, 0x51F2) /* <CJK> */
-MAP(0x33, 0x2D, 0x51F3) /* <CJK> */
-MAP(0x33, 0x2E, 0x51F4) /* <CJK> */
-MAP(0x33, 0x2F, 0x51F7) /* <CJK> */
-MAP(0x33, 0x30, 0x5201) /* <CJK> */
-MAP(0x33, 0x31, 0x5202) /* <CJK> */
-MAP(0x33, 0x32, 0x5205) /* <CJK> */
-MAP(0x33, 0x33, 0x5212) /* <CJK> */
-MAP(0x33, 0x34, 0x5213) /* <CJK> */
-MAP(0x33, 0x35, 0x5215) /* <CJK> */
-MAP(0x33, 0x36, 0x5216) /* <CJK> */
-MAP(0x33, 0x37, 0x5218) /* <CJK> */
-MAP(0x33, 0x38, 0x5222) /* <CJK> */
-MAP(0x33, 0x39, 0x5228) /* <CJK> */
-MAP(0x33, 0x3A, 0x5231) /* <CJK> */
-MAP(0x33, 0x3B, 0x5232) /* <CJK> */
-MAP(0x33, 0x3C, 0x5235) /* <CJK> */
-MAP(0x33, 0x3D, 0x523C) /* <CJK> */
-MAP(0x33, 0x3E, 0x5245) /* <CJK> */
-MAP(0x33, 0x3F, 0x5249) /* <CJK> */
-MAP(0x33, 0x40, 0x5255) /* <CJK> */
-MAP(0x33, 0x41, 0x5257) /* <CJK> */
-MAP(0x33, 0x42, 0x5258) /* <CJK> */
-MAP(0x33, 0x43, 0x525A) /* <CJK> */
-MAP(0x33, 0x44, 0x525C) /* <CJK> */
-MAP(0x33, 0x45, 0x525F) /* <CJK> */
-MAP(0x33, 0x46, 0x5260) /* <CJK> */
-MAP(0x33, 0x47, 0x5261) /* <CJK> */
-MAP(0x33, 0x48, 0x5266) /* <CJK> */
-MAP(0x33, 0x49, 0x526E) /* <CJK> */
-MAP(0x33, 0x4A, 0x5277) /* <CJK> */
-MAP(0x33, 0x4B, 0x5278) /* <CJK> */
-MAP(0x33, 0x4C, 0x5279) /* <CJK> */
-MAP(0x33, 0x4D, 0x5280) /* <CJK> */
-MAP(0x33, 0x4E, 0x5282) /* <CJK> */
-MAP(0x33, 0x4F, 0x5285) /* <CJK> */
-MAP(0x33, 0x50, 0x528A) /* <CJK> */
-MAP(0x33, 0x51, 0x528C) /* <CJK> */
-MAP(0x33, 0x52, 0x5293) /* <CJK> */
-MAP(0x33, 0x53, 0x5295) /* <CJK> */
-MAP(0x33, 0x54, 0x5296) /* <CJK> */
-MAP(0x33, 0x55, 0x5297) /* <CJK> */
-MAP(0x33, 0x56, 0x5298) /* <CJK> */
-MAP(0x33, 0x57, 0x529A) /* <CJK> */
-MAP(0x33, 0x58, 0x529C) /* <CJK> */
-MAP(0x33, 0x59, 0x52A4) /* <CJK> */
-MAP(0x33, 0x5A, 0x52A5) /* <CJK> */
-MAP(0x33, 0x5B, 0x52A6) /* <CJK> */
-MAP(0x33, 0x5C, 0x52A7) /* <CJK> */
-MAP(0x33, 0x5D, 0x52AF) /* <CJK> */
-MAP(0x33, 0x5E, 0x52B0) /* <CJK> */
-MAP(0x33, 0x5F, 0x52B6) /* <CJK> */
-MAP(0x33, 0x60, 0x52B7) /* <CJK> */
-MAP(0x33, 0x61, 0x52B8) /* <CJK> */
-MAP(0x33, 0x62, 0x52BA) /* <CJK> */
-MAP(0x33, 0x63, 0x52BB) /* <CJK> */
-MAP(0x33, 0x64, 0x52BD) /* <CJK> */
-MAP(0x33, 0x65, 0x52C0) /* <CJK> */
-MAP(0x33, 0x66, 0x52C4) /* <CJK> */
-MAP(0x33, 0x67, 0x52C6) /* <CJK> */
-MAP(0x33, 0x68, 0x52C8) /* <CJK> */
-MAP(0x33, 0x69, 0x52CC) /* <CJK> */
-MAP(0x33, 0x6A, 0x52CF) /* <CJK> */
-MAP(0x33, 0x6B, 0x52D1) /* <CJK> */
-MAP(0x33, 0x6C, 0x52D4) /* <CJK> */
-MAP(0x33, 0x6D, 0x52D6) /* <CJK> */
-MAP(0x33, 0x6E, 0x52DB) /* <CJK> */
-MAP(0x33, 0x6F, 0x52DC) /* <CJK> */
-MAP(0x33, 0x70, 0x52E1) /* <CJK> */
-MAP(0x33, 0x71, 0x52E5) /* <CJK> */
-MAP(0x33, 0x72, 0x52E8) /* <CJK> */
-MAP(0x33, 0x73, 0x52E9) /* <CJK> */
-MAP(0x33, 0x74, 0x52EA) /* <CJK> */
-MAP(0x33, 0x75, 0x52EC) /* <CJK> */
-MAP(0x33, 0x76, 0x52F0) /* <CJK> */
-MAP(0x33, 0x77, 0x52F1) /* <CJK> */
-MAP(0x33, 0x78, 0x52F4) /* <CJK> */
-MAP(0x33, 0x79, 0x52F6) /* <CJK> */
-MAP(0x33, 0x7A, 0x52F7) /* <CJK> */
-MAP(0x33, 0x7B, 0x5300) /* <CJK> */
-MAP(0x33, 0x7C, 0x5303) /* <CJK> */
-MAP(0x33, 0x7D, 0x530A) /* <CJK> */
-MAP(0x33, 0x7E, 0x530B) /* <CJK> */
-MAP(0x34, 0x21, 0x530C) /* <CJK> */
-MAP(0x34, 0x22, 0x5311) /* <CJK> */
-MAP(0x34, 0x23, 0x5313) /* <CJK> */
-MAP(0x34, 0x24, 0x5318) /* <CJK> */
-MAP(0x34, 0x25, 0x531B) /* <CJK> */
-MAP(0x34, 0x26, 0x531C) /* <CJK> */
-MAP(0x34, 0x27, 0x531E) /* <CJK> */
-MAP(0x34, 0x28, 0x531F) /* <CJK> */
-MAP(0x34, 0x29, 0x5325) /* <CJK> */
-MAP(0x34, 0x2A, 0x5327) /* <CJK> */
-MAP(0x34, 0x2B, 0x5328) /* <CJK> */
-MAP(0x34, 0x2C, 0x5329) /* <CJK> */
-MAP(0x34, 0x2D, 0x532B) /* <CJK> */
-MAP(0x34, 0x2E, 0x532C) /* <CJK> */
-MAP(0x34, 0x2F, 0x532D) /* <CJK> */
-MAP(0x34, 0x30, 0x5330) /* <CJK> */
-MAP(0x34, 0x31, 0x5332) /* <CJK> */
-MAP(0x34, 0x32, 0x5335) /* <CJK> */
-MAP(0x34, 0x33, 0x533C) /* <CJK> */
-MAP(0x34, 0x34, 0x533D) /* <CJK> */
-MAP(0x34, 0x35, 0x533E) /* <CJK> */
-MAP(0x34, 0x36, 0x5342) /* <CJK> */
-MAP(0x34, 0x37, 0x534C) /* <CJK> */
-MAP(0x34, 0x38, 0x534B) /* <CJK> */
-MAP(0x34, 0x39, 0x5359) /* <CJK> */
-MAP(0x34, 0x3A, 0x535B) /* <CJK> */
-MAP(0x34, 0x3B, 0x5361) /* <CJK> */
-MAP(0x34, 0x3C, 0x5363) /* <CJK> */
-MAP(0x34, 0x3D, 0x5365) /* <CJK> */
-MAP(0x34, 0x3E, 0x536C) /* <CJK> */
-MAP(0x34, 0x3F, 0x536D) /* <CJK> */
-MAP(0x34, 0x40, 0x5372) /* <CJK> */
-MAP(0x34, 0x41, 0x5379) /* <CJK> */
-MAP(0x34, 0x42, 0x537E) /* <CJK> */
-MAP(0x34, 0x43, 0x5383) /* <CJK> */
-MAP(0x34, 0x44, 0x5387) /* <CJK> */
-MAP(0x34, 0x45, 0x5388) /* <CJK> */
-MAP(0x34, 0x46, 0x538E) /* <CJK> */
-MAP(0x34, 0x47, 0x5393) /* <CJK> */
-MAP(0x34, 0x48, 0x5394) /* <CJK> */
-MAP(0x34, 0x49, 0x5399) /* <CJK> */
-MAP(0x34, 0x4A, 0x539D) /* <CJK> */
-MAP(0x34, 0x4B, 0x53A1) /* <CJK> */
-MAP(0x34, 0x4C, 0x53A4) /* <CJK> */
-MAP(0x34, 0x4D, 0x53AA) /* <CJK> */
-MAP(0x34, 0x4E, 0x53AB) /* <CJK> */
-MAP(0x34, 0x4F, 0x53AF) /* <CJK> */
-MAP(0x34, 0x50, 0x53B2) /* <CJK> */
-MAP(0x34, 0x51, 0x53B4) /* <CJK> */
-MAP(0x34, 0x52, 0x53B5) /* <CJK> */
-MAP(0x34, 0x53, 0x53B7) /* <CJK> */
-MAP(0x34, 0x54, 0x53B8) /* <CJK> */
-MAP(0x34, 0x55, 0x53BA) /* <CJK> */
-MAP(0x34, 0x56, 0x53BD) /* <CJK> */
-MAP(0x34, 0x57, 0x53C0) /* <CJK> */
-MAP(0x34, 0x58, 0x53C5) /* <CJK> */
-MAP(0x34, 0x59, 0x53CF) /* <CJK> */
-MAP(0x34, 0x5A, 0x53D2) /* <CJK> */
-MAP(0x34, 0x5B, 0x53D3) /* <CJK> */
-MAP(0x34, 0x5C, 0x53D5) /* <CJK> */
-MAP(0x34, 0x5D, 0x53DA) /* <CJK> */
-MAP(0x34, 0x5E, 0x53DD) /* <CJK> */
-MAP(0x34, 0x5F, 0x53DE) /* <CJK> */
-MAP(0x34, 0x60, 0x53E0) /* <CJK> */
-MAP(0x34, 0x61, 0x53E6) /* <CJK> */
-MAP(0x34, 0x62, 0x53E7) /* <CJK> */
-MAP(0x34, 0x63, 0x53F5) /* <CJK> */
-MAP(0x34, 0x64, 0x5402) /* <CJK> */
-MAP(0x34, 0x65, 0x5413) /* <CJK> */
-MAP(0x34, 0x66, 0x541A) /* <CJK> */
-MAP(0x34, 0x67, 0x5421) /* <CJK> */
-MAP(0x34, 0x68, 0x5427) /* <CJK> */
-MAP(0x34, 0x69, 0x5428) /* <CJK> */
-MAP(0x34, 0x6A, 0x542A) /* <CJK> */
-MAP(0x34, 0x6B, 0x542F) /* <CJK> */
-MAP(0x34, 0x6C, 0x5431) /* <CJK> */
-MAP(0x34, 0x6D, 0x5434) /* <CJK> */
-MAP(0x34, 0x6E, 0x5435) /* <CJK> */
-MAP(0x34, 0x6F, 0x5443) /* <CJK> */
-MAP(0x34, 0x70, 0x5444) /* <CJK> */
-MAP(0x34, 0x71, 0x5447) /* <CJK> */
-MAP(0x34, 0x72, 0x544D) /* <CJK> */
-MAP(0x34, 0x73, 0x544F) /* <CJK> */
-MAP(0x34, 0x74, 0x545E) /* <CJK> */
-MAP(0x34, 0x75, 0x5462) /* <CJK> */
-MAP(0x34, 0x76, 0x5464) /* <CJK> */
-MAP(0x34, 0x77, 0x5466) /* <CJK> */
-MAP(0x34, 0x78, 0x5467) /* <CJK> */
-MAP(0x34, 0x79, 0x5469) /* <CJK> */
-MAP(0x34, 0x7A, 0x546B) /* <CJK> */
-MAP(0x34, 0x7B, 0x546D) /* <CJK> */
-MAP(0x34, 0x7C, 0x546E) /* <CJK> */
-MAP(0x34, 0x7D, 0x5474) /* <CJK> */
-MAP(0x34, 0x7E, 0x547F) /* <CJK> */
-MAP(0x35, 0x21, 0x5481) /* <CJK> */
-MAP(0x35, 0x22, 0x5483) /* <CJK> */
-MAP(0x35, 0x23, 0x5485) /* <CJK> */
-MAP(0x35, 0x24, 0x5488) /* <CJK> */
-MAP(0x35, 0x25, 0x5489) /* <CJK> */
-MAP(0x35, 0x26, 0x548D) /* <CJK> */
-MAP(0x35, 0x27, 0x5491) /* <CJK> */
-MAP(0x35, 0x28, 0x5495) /* <CJK> */
-MAP(0x35, 0x29, 0x5496) /* <CJK> */
-MAP(0x35, 0x2A, 0x549C) /* <CJK> */
-MAP(0x35, 0x2B, 0x549F) /* <CJK> */
-MAP(0x35, 0x2C, 0x54A1) /* <CJK> */
-MAP(0x35, 0x2D, 0x54A6) /* <CJK> */
-MAP(0x35, 0x2E, 0x54A7) /* <CJK> */
-MAP(0x35, 0x2F, 0x54A9) /* <CJK> */
-MAP(0x35, 0x30, 0x54AA) /* <CJK> */
-MAP(0x35, 0x31, 0x54AD) /* <CJK> */
-MAP(0x35, 0x32, 0x54AE) /* <CJK> */
-MAP(0x35, 0x33, 0x54B1) /* <CJK> */
-MAP(0x35, 0x34, 0x54B7) /* <CJK> */
-MAP(0x35, 0x35, 0x54B9) /* <CJK> */
-MAP(0x35, 0x36, 0x54BA) /* <CJK> */
-MAP(0x35, 0x37, 0x54BB) /* <CJK> */
-MAP(0x35, 0x38, 0x54BF) /* <CJK> */
-MAP(0x35, 0x39, 0x54C6) /* <CJK> */
-MAP(0x35, 0x3A, 0x54CA) /* <CJK> */
-MAP(0x35, 0x3B, 0x54CD) /* <CJK> */
-MAP(0x35, 0x3C, 0x54CE) /* <CJK> */
-MAP(0x35, 0x3D, 0x54E0) /* <CJK> */
-MAP(0x35, 0x3E, 0x54EA) /* <CJK> */
-MAP(0x35, 0x3F, 0x54EC) /* <CJK> */
-MAP(0x35, 0x40, 0x54EF) /* <CJK> */
-MAP(0x35, 0x41, 0x54F6) /* <CJK> */
-MAP(0x35, 0x42, 0x54FC) /* <CJK> */
-MAP(0x35, 0x43, 0x54FE) /* <CJK> */
-MAP(0x35, 0x44, 0x54FF) /* <CJK> */
-MAP(0x35, 0x45, 0x5500) /* <CJK> */
-MAP(0x35, 0x46, 0x5501) /* <CJK> */
-MAP(0x35, 0x47, 0x5505) /* <CJK> */
-MAP(0x35, 0x48, 0x5508) /* <CJK> */
-MAP(0x35, 0x49, 0x5509) /* <CJK> */
-MAP(0x35, 0x4A, 0x550C) /* <CJK> */
-MAP(0x35, 0x4B, 0x550D) /* <CJK> */
-MAP(0x35, 0x4C, 0x550E) /* <CJK> */
-MAP(0x35, 0x4D, 0x5515) /* <CJK> */
-MAP(0x35, 0x4E, 0x552A) /* <CJK> */
-MAP(0x35, 0x4F, 0x552B) /* <CJK> */
-MAP(0x35, 0x50, 0x5532) /* <CJK> */
-MAP(0x35, 0x51, 0x5535) /* <CJK> */
-MAP(0x35, 0x52, 0x5536) /* <CJK> */
-MAP(0x35, 0x53, 0x553B) /* <CJK> */
-MAP(0x35, 0x54, 0x553C) /* <CJK> */
-MAP(0x35, 0x55, 0x553D) /* <CJK> */
-MAP(0x35, 0x56, 0x5541) /* <CJK> */
-MAP(0x35, 0x57, 0x5547) /* <CJK> */
-MAP(0x35, 0x58, 0x5549) /* <CJK> */
-MAP(0x35, 0x59, 0x554A) /* <CJK> */
-MAP(0x35, 0x5A, 0x554D) /* <CJK> */
-MAP(0x35, 0x5B, 0x5550) /* <CJK> */
-MAP(0x35, 0x5C, 0x5551) /* <CJK> */
-MAP(0x35, 0x5D, 0x5558) /* <CJK> */
-MAP(0x35, 0x5E, 0x555A) /* <CJK> */
-MAP(0x35, 0x5F, 0x555B) /* <CJK> */
-MAP(0x35, 0x60, 0x555E) /* <CJK> */
-MAP(0x35, 0x61, 0x5560) /* <CJK> */
-MAP(0x35, 0x62, 0x5561) /* <CJK> */
-MAP(0x35, 0x63, 0x5564) /* <CJK> */
-MAP(0x35, 0x64, 0x5566) /* <CJK> */
-MAP(0x35, 0x65, 0x557F) /* <CJK> */
-MAP(0x35, 0x66, 0x5581) /* <CJK> */
-MAP(0x35, 0x67, 0x5582) /* <CJK> */
-MAP(0x35, 0x68, 0x5586) /* <CJK> */
-MAP(0x35, 0x69, 0x5588) /* <CJK> */
-MAP(0x35, 0x6A, 0x558E) /* <CJK> */
-MAP(0x35, 0x6B, 0x558F) /* <CJK> */
-MAP(0x35, 0x6C, 0x5591) /* <CJK> */
-MAP(0x35, 0x6D, 0x5592) /* <CJK> */
-MAP(0x35, 0x6E, 0x5593) /* <CJK> */
-MAP(0x35, 0x6F, 0x5594) /* <CJK> */
-MAP(0x35, 0x70, 0x5597) /* <CJK> */
-MAP(0x35, 0x71, 0x55A3) /* <CJK> */
-MAP(0x35, 0x72, 0x55A4) /* <CJK> */
-MAP(0x35, 0x73, 0x55AD) /* <CJK> */
-MAP(0x35, 0x74, 0x55B2) /* <CJK> */
-MAP(0x35, 0x75, 0x55BF) /* <CJK> */
-MAP(0x35, 0x76, 0x55C1) /* <CJK> */
-MAP(0x35, 0x77, 0x55C3) /* <CJK> */
-MAP(0x35, 0x78, 0x55C6) /* <CJK> */
-MAP(0x35, 0x79, 0x55C9) /* <CJK> */
-MAP(0x35, 0x7A, 0x55CB) /* <CJK> */
-MAP(0x35, 0x7B, 0x55CC) /* <CJK> */
-MAP(0x35, 0x7C, 0x55CE) /* <CJK> */
-MAP(0x35, 0x7D, 0x55D1) /* <CJK> */
-MAP(0x35, 0x7E, 0x55D2) /* <CJK> */
-MAP(0x36, 0x21, 0x55D3) /* <CJK> */
-MAP(0x36, 0x22, 0x55D7) /* <CJK> */
-MAP(0x36, 0x23, 0x55D8) /* <CJK> */
-MAP(0x36, 0x24, 0x55DB) /* <CJK> */
-MAP(0x36, 0x25, 0x55DE) /* <CJK> */
-MAP(0x36, 0x26, 0x55E2) /* <CJK> */
-MAP(0x36, 0x27, 0x55E9) /* <CJK> */
-MAP(0x36, 0x28, 0x55F6) /* <CJK> */
-MAP(0x36, 0x29, 0x55FF) /* <CJK> */
-MAP(0x36, 0x2A, 0x5605) /* <CJK> */
-MAP(0x36, 0x2B, 0x5608) /* <CJK> */
-MAP(0x36, 0x2C, 0x560A) /* <CJK> */
-MAP(0x36, 0x2D, 0x560D) /* <CJK> */
-MAP(0x36, 0x2E, 0x560E) /* <CJK> */
-MAP(0x36, 0x2F, 0x560F) /* <CJK> */
-MAP(0x36, 0x30, 0x5610) /* <CJK> */
-MAP(0x36, 0x31, 0x5611) /* <CJK> */
-MAP(0x36, 0x32, 0x5612) /* <CJK> */
-MAP(0x36, 0x33, 0x5619) /* <CJK> */
-MAP(0x36, 0x34, 0x562C) /* <CJK> */
-MAP(0x36, 0x35, 0x5630) /* <CJK> */
-MAP(0x36, 0x36, 0x5633) /* <CJK> */
-MAP(0x36, 0x37, 0x5635) /* <CJK> */
-MAP(0x36, 0x38, 0x5637) /* <CJK> */
-MAP(0x36, 0x39, 0x5639) /* <CJK> */
-MAP(0x36, 0x3A, 0x563B) /* <CJK> */
-MAP(0x36, 0x3B, 0x563C) /* <CJK> */
-MAP(0x36, 0x3C, 0x563D) /* <CJK> */
-MAP(0x36, 0x3D, 0x563F) /* <CJK> */
-MAP(0x36, 0x3E, 0x5640) /* <CJK> */
-MAP(0x36, 0x3F, 0x5641) /* <CJK> */
-MAP(0x36, 0x40, 0x5643) /* <CJK> */
-MAP(0x36, 0x41, 0x5644) /* <CJK> */
-MAP(0x36, 0x42, 0x5646) /* <CJK> */
-MAP(0x36, 0x43, 0x5649) /* <CJK> */
-MAP(0x36, 0x44, 0x564B) /* <CJK> */
-MAP(0x36, 0x45, 0x564D) /* <CJK> */
-MAP(0x36, 0x46, 0x564F) /* <CJK> */
-MAP(0x36, 0x47, 0x5654) /* <CJK> */
-MAP(0x36, 0x48, 0x565E) /* <CJK> */
-MAP(0x36, 0x49, 0x5660) /* <CJK> */
-MAP(0x36, 0x4A, 0x5661) /* <CJK> */
-MAP(0x36, 0x4B, 0x5662) /* <CJK> */
-MAP(0x36, 0x4C, 0x5663) /* <CJK> */
-MAP(0x36, 0x4D, 0x5666) /* <CJK> */
-MAP(0x36, 0x4E, 0x5669) /* <CJK> */
-MAP(0x36, 0x4F, 0x566D) /* <CJK> */
-MAP(0x36, 0x50, 0x566F) /* <CJK> */
-MAP(0x36, 0x51, 0x5671) /* <CJK> */
-MAP(0x36, 0x52, 0x5672) /* <CJK> */
-MAP(0x36, 0x53, 0x5675) /* <CJK> */
-MAP(0x36, 0x54, 0x5684) /* <CJK> */
-MAP(0x36, 0x55, 0x5685) /* <CJK> */
-MAP(0x36, 0x56, 0x5688) /* <CJK> */
-MAP(0x36, 0x57, 0x568B) /* <CJK> */
-MAP(0x36, 0x58, 0x568C) /* <CJK> */
-MAP(0x36, 0x59, 0x5695) /* <CJK> */
-MAP(0x36, 0x5A, 0x5699) /* <CJK> */
-MAP(0x36, 0x5B, 0x569A) /* <CJK> */
-MAP(0x36, 0x5C, 0x569D) /* <CJK> */
-MAP(0x36, 0x5D, 0x569E) /* <CJK> */
-MAP(0x36, 0x5E, 0x569F) /* <CJK> */
-MAP(0x36, 0x5F, 0x56A6) /* <CJK> */
-MAP(0x36, 0x60, 0x56A7) /* <CJK> */
-MAP(0x36, 0x61, 0x56A8) /* <CJK> */
-MAP(0x36, 0x62, 0x56A9) /* <CJK> */
-MAP(0x36, 0x63, 0x56AB) /* <CJK> */
-MAP(0x36, 0x64, 0x56AC) /* <CJK> */
-MAP(0x36, 0x65, 0x56AD) /* <CJK> */
-MAP(0x36, 0x66, 0x56B1) /* <CJK> */
-MAP(0x36, 0x67, 0x56B3) /* <CJK> */
-MAP(0x36, 0x68, 0x56B7) /* <CJK> */
-MAP(0x36, 0x69, 0x56BE) /* <CJK> */
-MAP(0x36, 0x6A, 0x56C5) /* <CJK> */
-MAP(0x36, 0x6B, 0x56C9) /* <CJK> */
-MAP(0x36, 0x6C, 0x56CA) /* <CJK> */
-MAP(0x36, 0x6D, 0x56CB) /* <CJK> */
-MAP(0x36, 0x6E, 0x56CF) /* <CJK> */
-MAP(0x36, 0x6F, 0x56D0) /* <CJK> */
-MAP(0x36, 0x70, 0x56CC) /* <CJK> */
-MAP(0x36, 0x71, 0x56CD) /* <CJK> */
-MAP(0x36, 0x72, 0x56D9) /* <CJK> */
-MAP(0x36, 0x73, 0x56DC) /* <CJK> */
-MAP(0x36, 0x74, 0x56DD) /* <CJK> */
-MAP(0x36, 0x75, 0x56DF) /* <CJK> */
-MAP(0x36, 0x76, 0x56E1) /* <CJK> */
-MAP(0x36, 0x77, 0x56E4) /* <CJK> */
-MAP(0x36, 0x78, 0x56E5) /* <CJK> */
-MAP(0x36, 0x79, 0x56E6) /* <CJK> */
-MAP(0x36, 0x7A, 0x56E7) /* <CJK> */
-MAP(0x36, 0x7B, 0x56E8) /* <CJK> */
-MAP(0x36, 0x7C, 0x56F1) /* <CJK> */
-MAP(0x36, 0x7D, 0x56EB) /* <CJK> */
-MAP(0x36, 0x7E, 0x56ED) /* <CJK> */
-MAP(0x37, 0x21, 0x56F6) /* <CJK> */
-MAP(0x37, 0x22, 0x56F7) /* <CJK> */
-MAP(0x37, 0x23, 0x5701) /* <CJK> */
-MAP(0x37, 0x24, 0x5702) /* <CJK> */
-MAP(0x37, 0x25, 0x5707) /* <CJK> */
-MAP(0x37, 0x26, 0x570A) /* <CJK> */
-MAP(0x37, 0x27, 0x570C) /* <CJK> */
-MAP(0x37, 0x28, 0x5711) /* <CJK> */
-MAP(0x37, 0x29, 0x5715) /* <CJK> */
-MAP(0x37, 0x2A, 0x571A) /* <CJK> */
-MAP(0x37, 0x2B, 0x571B) /* <CJK> */
-MAP(0x37, 0x2C, 0x571D) /* <CJK> */
-MAP(0x37, 0x2D, 0x5720) /* <CJK> */
-MAP(0x37, 0x2E, 0x5722) /* <CJK> */
-MAP(0x37, 0x2F, 0x5723) /* <CJK> */
-MAP(0x37, 0x30, 0x5724) /* <CJK> */
-MAP(0x37, 0x31, 0x5725) /* <CJK> */
-MAP(0x37, 0x32, 0x5729) /* <CJK> */
-MAP(0x37, 0x33, 0x572A) /* <CJK> */
-MAP(0x37, 0x34, 0x572C) /* <CJK> */
-MAP(0x37, 0x35, 0x572E) /* <CJK> */
-MAP(0x37, 0x36, 0x572F) /* <CJK> */
-MAP(0x37, 0x37, 0x5733) /* <CJK> */
-MAP(0x37, 0x38, 0x5734) /* <CJK> */
-MAP(0x37, 0x39, 0x573D) /* <CJK> */
-MAP(0x37, 0x3A, 0x573E) /* <CJK> */
-MAP(0x37, 0x3B, 0x573F) /* <CJK> */
-MAP(0x37, 0x3C, 0x5745) /* <CJK> */
-MAP(0x37, 0x3D, 0x5746) /* <CJK> */
-MAP(0x37, 0x3E, 0x574C) /* <CJK> */
-MAP(0x37, 0x3F, 0x574D) /* <CJK> */
-MAP(0x37, 0x40, 0x5752) /* <CJK> */
-MAP(0x37, 0x41, 0x5762) /* <CJK> */
-MAP(0x37, 0x42, 0x5765) /* <CJK> */
-MAP(0x37, 0x43, 0x5767) /* <CJK> */
-MAP(0x37, 0x44, 0x5768) /* <CJK> */
-MAP(0x37, 0x45, 0x576B) /* <CJK> */
-MAP(0x37, 0x46, 0x576D) /* <CJK> */
-MAP(0x37, 0x47, 0x576E) /* <CJK> */
-MAP(0x37, 0x48, 0x576F) /* <CJK> */
-MAP(0x37, 0x49, 0x5770) /* <CJK> */
-MAP(0x37, 0x4A, 0x5771) /* <CJK> */
-MAP(0x37, 0x4B, 0x5773) /* <CJK> */
-MAP(0x37, 0x4C, 0x5774) /* <CJK> */
-MAP(0x37, 0x4D, 0x5775) /* <CJK> */
-MAP(0x37, 0x4E, 0x5777) /* <CJK> */
-MAP(0x37, 0x4F, 0x5779) /* <CJK> */
-MAP(0x37, 0x50, 0x577A) /* <CJK> */
-MAP(0x37, 0x51, 0x577B) /* <CJK> */
-MAP(0x37, 0x52, 0x577C) /* <CJK> */
-MAP(0x37, 0x53, 0x577E) /* <CJK> */
-MAP(0x37, 0x54, 0x5781) /* <CJK> */
-MAP(0x37, 0x55, 0x5783) /* <CJK> */
-MAP(0x37, 0x56, 0x578C) /* <CJK> */
-MAP(0x37, 0x57, 0x5794) /* <CJK> */
-MAP(0x37, 0x58, 0x5797) /* <CJK> */
-MAP(0x37, 0x59, 0x5799) /* <CJK> */
-MAP(0x37, 0x5A, 0x579A) /* <CJK> */
-MAP(0x37, 0x5B, 0x579C) /* <CJK> */
-MAP(0x37, 0x5C, 0x579D) /* <CJK> */
-MAP(0x37, 0x5D, 0x579E) /* <CJK> */
-MAP(0x37, 0x5E, 0x579F) /* <CJK> */
-MAP(0x37, 0x5F, 0x57A1) /* <CJK> */
-MAP(0x37, 0x60, 0x5795) /* <CJK> */
-MAP(0x37, 0x61, 0x57A7) /* <CJK> */
-MAP(0x37, 0x62, 0x57A8) /* <CJK> */
-MAP(0x37, 0x63, 0x57A9) /* <CJK> */
-MAP(0x37, 0x64, 0x57AC) /* <CJK> */
-MAP(0x37, 0x65, 0x57B8) /* <CJK> */
-MAP(0x37, 0x66, 0x57BD) /* <CJK> */
-MAP(0x37, 0x67, 0x57C7) /* <CJK> */
-MAP(0x37, 0x68, 0x57C8) /* <CJK> */
-MAP(0x37, 0x69, 0x57CC) /* <CJK> */
-MAP(0x37, 0x6A, 0x57CF) /* <CJK> */
-MAP(0x37, 0x6B, 0x57D5) /* <CJK> */
-MAP(0x37, 0x6C, 0x57DD) /* <CJK> */
-MAP(0x37, 0x6D, 0x57DE) /* <CJK> */
-MAP(0x37, 0x6E, 0x57E4) /* <CJK> */
-MAP(0x37, 0x6F, 0x57E6) /* <CJK> */
-MAP(0x37, 0x70, 0x57E7) /* <CJK> */
-MAP(0x37, 0x71, 0x57E9) /* <CJK> */
-MAP(0x37, 0x72, 0x57ED) /* <CJK> */
-MAP(0x37, 0x73, 0x57F0) /* <CJK> */
-MAP(0x37, 0x74, 0x57F5) /* <CJK> */
-MAP(0x37, 0x75, 0x57F6) /* <CJK> */
-MAP(0x37, 0x76, 0x57F8) /* <CJK> */
-MAP(0x37, 0x77, 0x57FD) /* <CJK> */
-MAP(0x37, 0x78, 0x57FE) /* <CJK> */
-MAP(0x37, 0x79, 0x57FF) /* <CJK> */
-MAP(0x37, 0x7A, 0x5803) /* <CJK> */
-MAP(0x37, 0x7B, 0x5804) /* <CJK> */
-MAP(0x37, 0x7C, 0x5808) /* <CJK> */
-MAP(0x37, 0x7D, 0x5809) /* <CJK> */
-MAP(0x37, 0x7E, 0x57E1) /* <CJK> */
-MAP(0x38, 0x21, 0x580C) /* <CJK> */
-MAP(0x38, 0x22, 0x580D) /* <CJK> */
-MAP(0x38, 0x23, 0x581B) /* <CJK> */
-MAP(0x38, 0x24, 0x581E) /* <CJK> */
-MAP(0x38, 0x25, 0x581F) /* <CJK> */
-MAP(0x38, 0x26, 0x5820) /* <CJK> */
-MAP(0x38, 0x27, 0x5826) /* <CJK> */
-MAP(0x38, 0x28, 0x5827) /* <CJK> */
-MAP(0x38, 0x29, 0x582D) /* <CJK> */
-MAP(0x38, 0x2A, 0x5832) /* <CJK> */
-MAP(0x38, 0x2B, 0x5839) /* <CJK> */
-MAP(0x38, 0x2C, 0x583F) /* <CJK> */
-MAP(0x38, 0x2D, 0x5849) /* <CJK> */
-MAP(0x38, 0x2E, 0x584C) /* <CJK> */
-MAP(0x38, 0x2F, 0x584D) /* <CJK> */
-MAP(0x38, 0x30, 0x584F) /* <CJK> */
-MAP(0x38, 0x31, 0x5850) /* <CJK> */
-MAP(0x38, 0x32, 0x5855) /* <CJK> */
-MAP(0x38, 0x33, 0x585F) /* <CJK> */
-MAP(0x38, 0x34, 0x5861) /* <CJK> */
-MAP(0x38, 0x35, 0x5864) /* <CJK> */
-MAP(0x38, 0x36, 0x5867) /* <CJK> */
-MAP(0x38, 0x37, 0x5868) /* <CJK> */
-MAP(0x38, 0x38, 0x5878) /* <CJK> */
-MAP(0x38, 0x39, 0x587C) /* <CJK> */
-MAP(0x38, 0x3A, 0x587F) /* <CJK> */
-MAP(0x38, 0x3B, 0x5880) /* <CJK> */
-MAP(0x38, 0x3C, 0x5881) /* <CJK> */
-MAP(0x38, 0x3D, 0x5887) /* <CJK> */
-MAP(0x38, 0x3E, 0x5888) /* <CJK> */
-MAP(0x38, 0x3F, 0x5889) /* <CJK> */
-MAP(0x38, 0x40, 0x588A) /* <CJK> */
-MAP(0x38, 0x41, 0x588C) /* <CJK> */
-MAP(0x38, 0x42, 0x588D) /* <CJK> */
-MAP(0x38, 0x43, 0x588F) /* <CJK> */
-MAP(0x38, 0x44, 0x5890) /* <CJK> */
-MAP(0x38, 0x45, 0x5894) /* <CJK> */
-MAP(0x38, 0x46, 0x5896) /* <CJK> */
-MAP(0x38, 0x47, 0x589D) /* <CJK> */
-MAP(0x38, 0x48, 0x58A0) /* <CJK> */
-MAP(0x38, 0x49, 0x58A1) /* <CJK> */
-MAP(0x38, 0x4A, 0x58A2) /* <CJK> */
-MAP(0x38, 0x4B, 0x58A6) /* <CJK> */
-MAP(0x38, 0x4C, 0x58A9) /* <CJK> */
-MAP(0x38, 0x4D, 0x58B1) /* <CJK> */
-MAP(0x38, 0x4E, 0x58B2) /* <CJK> */
-MAP(0x38, 0x4F, 0x58C4) /* <CJK> */
-MAP(0x38, 0x50, 0x58BC) /* <CJK> */
-MAP(0x38, 0x51, 0x58C2) /* <CJK> */
-MAP(0x38, 0x52, 0x58C8) /* <CJK> */
-MAP(0x38, 0x53, 0x58CD) /* <CJK> */
-MAP(0x38, 0x54, 0x58CE) /* <CJK> */
-MAP(0x38, 0x55, 0x58D0) /* <CJK> */
-MAP(0x38, 0x56, 0x58D2) /* <CJK> */
-MAP(0x38, 0x57, 0x58D4) /* <CJK> */
-MAP(0x38, 0x58, 0x58D6) /* <CJK> */
-MAP(0x38, 0x59, 0x58DA) /* <CJK> */
-MAP(0x38, 0x5A, 0x58DD) /* <CJK> */
-MAP(0x38, 0x5B, 0x58E1) /* <CJK> */
-MAP(0x38, 0x5C, 0x58E2) /* <CJK> */
-MAP(0x38, 0x5D, 0x58E9) /* <CJK> */
-MAP(0x38, 0x5E, 0x58F3) /* <CJK> */
-MAP(0x38, 0x5F, 0x5905) /* <CJK> */
-MAP(0x38, 0x60, 0x5906) /* <CJK> */
-MAP(0x38, 0x61, 0x590B) /* <CJK> */
-MAP(0x38, 0x62, 0x590C) /* <CJK> */
-MAP(0x38, 0x63, 0x5912) /* <CJK> */
-MAP(0x38, 0x64, 0x5913) /* <CJK> */
-MAP(0x38, 0x65, 0x5914) /* <CJK> */
-MAP(0x38, 0x66, 0x8641) /* <CJK> */
-MAP(0x38, 0x67, 0x591D) /* <CJK> */
-MAP(0x38, 0x68, 0x5921) /* <CJK> */
-MAP(0x38, 0x69, 0x5923) /* <CJK> */
-MAP(0x38, 0x6A, 0x5924) /* <CJK> */
-MAP(0x38, 0x6B, 0x5928) /* <CJK> */
-MAP(0x38, 0x6C, 0x592F) /* <CJK> */
-MAP(0x38, 0x6D, 0x5930) /* <CJK> */
-MAP(0x38, 0x6E, 0x5933) /* <CJK> */
-MAP(0x38, 0x6F, 0x5935) /* <CJK> */
-MAP(0x38, 0x70, 0x5936) /* <CJK> */
-MAP(0x38, 0x71, 0x593F) /* <CJK> */
-MAP(0x38, 0x72, 0x5943) /* <CJK> */
-MAP(0x38, 0x73, 0x5946) /* <CJK> */
-MAP(0x38, 0x74, 0x5952) /* <CJK> */
-MAP(0x38, 0x75, 0x5953) /* <CJK> */
-MAP(0x38, 0x76, 0x5959) /* <CJK> */
-MAP(0x38, 0x77, 0x595B) /* <CJK> */
-MAP(0x38, 0x78, 0x595D) /* <CJK> */
-MAP(0x38, 0x79, 0x595E) /* <CJK> */
-MAP(0x38, 0x7A, 0x595F) /* <CJK> */
-MAP(0x38, 0x7B, 0x5961) /* <CJK> */
-MAP(0x38, 0x7C, 0x5963) /* <CJK> */
-MAP(0x38, 0x7D, 0x596B) /* <CJK> */
-MAP(0x38, 0x7E, 0x596D) /* <CJK> */
-MAP(0x39, 0x21, 0x596F) /* <CJK> */
-MAP(0x39, 0x22, 0x5972) /* <CJK> */
-MAP(0x39, 0x23, 0x5975) /* <CJK> */
-MAP(0x39, 0x24, 0x5976) /* <CJK> */
-MAP(0x39, 0x25, 0x5979) /* <CJK> */
-MAP(0x39, 0x26, 0x597B) /* <CJK> */
-MAP(0x39, 0x27, 0x597C) /* <CJK> */
-MAP(0x39, 0x28, 0x598B) /* <CJK> */
-MAP(0x39, 0x29, 0x598C) /* <CJK> */
-MAP(0x39, 0x2A, 0x598E) /* <CJK> */
-MAP(0x39, 0x2B, 0x5992) /* <CJK> */
-MAP(0x39, 0x2C, 0x5995) /* <CJK> */
-MAP(0x39, 0x2D, 0x5997) /* <CJK> */
-MAP(0x39, 0x2E, 0x599F) /* <CJK> */
-MAP(0x39, 0x2F, 0x59A4) /* <CJK> */
-MAP(0x39, 0x30, 0x59A7) /* <CJK> */
-MAP(0x39, 0x31, 0x59AD) /* <CJK> */
-MAP(0x39, 0x32, 0x59AE) /* <CJK> */
-MAP(0x39, 0x33, 0x59AF) /* <CJK> */
-MAP(0x39, 0x34, 0x59B0) /* <CJK> */
-MAP(0x39, 0x35, 0x59B3) /* <CJK> */
-MAP(0x39, 0x36, 0x59B7) /* <CJK> */
-MAP(0x39, 0x37, 0x59BA) /* <CJK> */
-MAP(0x39, 0x38, 0x59BC) /* <CJK> */
-MAP(0x39, 0x39, 0x59C1) /* <CJK> */
-MAP(0x39, 0x3A, 0x59C3) /* <CJK> */
-MAP(0x39, 0x3B, 0x59C4) /* <CJK> */
-MAP(0x39, 0x3C, 0x59C8) /* <CJK> */
-MAP(0x39, 0x3D, 0x59CA) /* <CJK> */
-MAP(0x39, 0x3E, 0x59CD) /* <CJK> */
-MAP(0x39, 0x3F, 0x59D2) /* <CJK> */
-MAP(0x39, 0x40, 0x59DD) /* <CJK> */
-MAP(0x39, 0x41, 0x59DE) /* <CJK> */
-MAP(0x39, 0x42, 0x59DF) /* <CJK> */
-MAP(0x39, 0x43, 0x59E3) /* <CJK> */
-MAP(0x39, 0x44, 0x59E4) /* <CJK> */
-MAP(0x39, 0x45, 0x59E7) /* <CJK> */
-MAP(0x39, 0x46, 0x59EE) /* <CJK> */
-MAP(0x39, 0x47, 0x59EF) /* <CJK> */
-MAP(0x39, 0x48, 0x59F1) /* <CJK> */
-MAP(0x39, 0x49, 0x59F2) /* <CJK> */
-MAP(0x39, 0x4A, 0x59F4) /* <CJK> */
-MAP(0x39, 0x4B, 0x59F7) /* <CJK> */
-MAP(0x39, 0x4C, 0x5A00) /* <CJK> */
-MAP(0x39, 0x4D, 0x5A04) /* <CJK> */
-MAP(0x39, 0x4E, 0x5A0C) /* <CJK> */
-MAP(0x39, 0x4F, 0x5A0D) /* <CJK> */
-MAP(0x39, 0x50, 0x5A0E) /* <CJK> */
-MAP(0x39, 0x51, 0x5A12) /* <CJK> */
-MAP(0x39, 0x52, 0x5A13) /* <CJK> */
-MAP(0x39, 0x53, 0x5A1E) /* <CJK> */
-MAP(0x39, 0x54, 0x5A23) /* <CJK> */
-MAP(0x39, 0x55, 0x5A24) /* <CJK> */
-MAP(0x39, 0x56, 0x5A27) /* <CJK> */
-MAP(0x39, 0x57, 0x5A28) /* <CJK> */
-MAP(0x39, 0x58, 0x5A2A) /* <CJK> */
-MAP(0x39, 0x59, 0x5A2D) /* <CJK> */
-MAP(0x39, 0x5A, 0x5A30) /* <CJK> */
-MAP(0x39, 0x5B, 0x5A44) /* <CJK> */
-MAP(0x39, 0x5C, 0x5A45) /* <CJK> */
-MAP(0x39, 0x5D, 0x5A47) /* <CJK> */
-MAP(0x39, 0x5E, 0x5A48) /* <CJK> */
-MAP(0x39, 0x5F, 0x5A4C) /* <CJK> */
-MAP(0x39, 0x60, 0x5A50) /* <CJK> */
-MAP(0x39, 0x61, 0x5A55) /* <CJK> */
-MAP(0x39, 0x62, 0x5A5E) /* <CJK> */
-MAP(0x39, 0x63, 0x5A63) /* <CJK> */
-MAP(0x39, 0x64, 0x5A65) /* <CJK> */
-MAP(0x39, 0x65, 0x5A67) /* <CJK> */
-MAP(0x39, 0x66, 0x5A6D) /* <CJK> */
-MAP(0x39, 0x67, 0x5A77) /* <CJK> */
-MAP(0x39, 0x68, 0x5A7A) /* <CJK> */
-MAP(0x39, 0x69, 0x5A7B) /* <CJK> */
-MAP(0x39, 0x6A, 0x5A7E) /* <CJK> */
-MAP(0x39, 0x6B, 0x5A8B) /* <CJK> */
-MAP(0x39, 0x6C, 0x5A90) /* <CJK> */
-MAP(0x39, 0x6D, 0x5A93) /* <CJK> */
-MAP(0x39, 0x6E, 0x5A96) /* <CJK> */
-MAP(0x39, 0x6F, 0x5A99) /* <CJK> */
-MAP(0x39, 0x70, 0x5A9C) /* <CJK> */
-MAP(0x39, 0x71, 0x5A9E) /* <CJK> */
-MAP(0x39, 0x72, 0x5A9F) /* <CJK> */
-MAP(0x39, 0x73, 0x5AA0) /* <CJK> */
-MAP(0x39, 0x74, 0x5AA2) /* <CJK> */
-MAP(0x39, 0x75, 0x5AA7) /* <CJK> */
-MAP(0x39, 0x76, 0x5AAC) /* <CJK> */
-MAP(0x39, 0x77, 0x5AB1) /* <CJK> */
-MAP(0x39, 0x78, 0x5AB2) /* <CJK> */
-MAP(0x39, 0x79, 0x5AB3) /* <CJK> */
-MAP(0x39, 0x7A, 0x5AB5) /* <CJK> */
-MAP(0x39, 0x7B, 0x5AB8) /* <CJK> */
-MAP(0x39, 0x7C, 0x5ABA) /* <CJK> */
-MAP(0x39, 0x7D, 0x5ABB) /* <CJK> */
-MAP(0x39, 0x7E, 0x5ABF) /* <CJK> */
-MAP(0x3A, 0x21, 0x5AC4) /* <CJK> */
-MAP(0x3A, 0x22, 0x5AC6) /* <CJK> */
-MAP(0x3A, 0x23, 0x5AC8) /* <CJK> */
-MAP(0x3A, 0x24, 0x5ACF) /* <CJK> */
-MAP(0x3A, 0x25, 0x5ADA) /* <CJK> */
-MAP(0x3A, 0x26, 0x5ADC) /* <CJK> */
-MAP(0x3A, 0x27, 0x5AE0) /* <CJK> */
-MAP(0x3A, 0x28, 0x5AE5) /* <CJK> */
-MAP(0x3A, 0x29, 0x5AEA) /* <CJK> */
-MAP(0x3A, 0x2A, 0x5AEE) /* <CJK> */
-MAP(0x3A, 0x2B, 0x5AF5) /* <CJK> */
-MAP(0x3A, 0x2C, 0x5AF6) /* <CJK> */
-MAP(0x3A, 0x2D, 0x5AFD) /* <CJK> */
-MAP(0x3A, 0x2E, 0x5B00) /* <CJK> */
-MAP(0x3A, 0x2F, 0x5B01) /* <CJK> */
-MAP(0x3A, 0x30, 0x5B08) /* <CJK> */
-MAP(0x3A, 0x31, 0x5B17) /* <CJK> */
-MAP(0x3A, 0x32, 0x5B34) /* <CJK> */
-MAP(0x3A, 0x33, 0x5B19) /* <CJK> */
-MAP(0x3A, 0x34, 0x5B1B) /* <CJK> */
-MAP(0x3A, 0x35, 0x5B1D) /* <CJK> */
-MAP(0x3A, 0x36, 0x5B21) /* <CJK> */
-MAP(0x3A, 0x37, 0x5B25) /* <CJK> */
-MAP(0x3A, 0x38, 0x5B2D) /* <CJK> */
-MAP(0x3A, 0x39, 0x5B38) /* <CJK> */
-MAP(0x3A, 0x3A, 0x5B41) /* <CJK> */
-MAP(0x3A, 0x3B, 0x5B4B) /* <CJK> */
-MAP(0x3A, 0x3C, 0x5B4C) /* <CJK> */
-MAP(0x3A, 0x3D, 0x5B52) /* <CJK> */
-MAP(0x3A, 0x3E, 0x5B56) /* <CJK> */
-MAP(0x3A, 0x3F, 0x5B5E) /* <CJK> */
-MAP(0x3A, 0x40, 0x5B68) /* <CJK> */
-MAP(0x3A, 0x41, 0x5B6E) /* <CJK> */
-MAP(0x3A, 0x42, 0x5B6F) /* <CJK> */
-MAP(0x3A, 0x43, 0x5B7C) /* <CJK> */
-MAP(0x3A, 0x44, 0x5B7D) /* <CJK> */
-MAP(0x3A, 0x45, 0x5B7E) /* <CJK> */
-MAP(0x3A, 0x46, 0x5B7F) /* <CJK> */
-MAP(0x3A, 0x47, 0x5B81) /* <CJK> */
-MAP(0x3A, 0x48, 0x5B84) /* <CJK> */
-MAP(0x3A, 0x49, 0x5B86) /* <CJK> */
-MAP(0x3A, 0x4A, 0x5B8A) /* <CJK> */
-MAP(0x3A, 0x4B, 0x5B8E) /* <CJK> */
-MAP(0x3A, 0x4C, 0x5B90) /* <CJK> */
-MAP(0x3A, 0x4D, 0x5B91) /* <CJK> */
-MAP(0x3A, 0x4E, 0x5B93) /* <CJK> */
-MAP(0x3A, 0x4F, 0x5B94) /* <CJK> */
-MAP(0x3A, 0x50, 0x5B96) /* <CJK> */
-MAP(0x3A, 0x51, 0x5BA8) /* <CJK> */
-MAP(0x3A, 0x52, 0x5BA9) /* <CJK> */
-MAP(0x3A, 0x53, 0x5BAC) /* <CJK> */
-MAP(0x3A, 0x54, 0x5BAD) /* <CJK> */
-MAP(0x3A, 0x55, 0x5BAF) /* <CJK> */
-MAP(0x3A, 0x56, 0x5BB1) /* <CJK> */
-MAP(0x3A, 0x57, 0x5BB2) /* <CJK> */
-MAP(0x3A, 0x58, 0x5BB7) /* <CJK> */
-MAP(0x3A, 0x59, 0x5BBA) /* <CJK> */
-MAP(0x3A, 0x5A, 0x5BBC) /* <CJK> */
-MAP(0x3A, 0x5B, 0x5BC0) /* <CJK> */
-MAP(0x3A, 0x5C, 0x5BC1) /* <CJK> */
-MAP(0x3A, 0x5D, 0x5BCD) /* <CJK> */
-MAP(0x3A, 0x5E, 0x5BCF) /* <CJK> */
-MAP(0x3A, 0x5F, 0x5BD6) /* <CJK> */
-MAP(0x3A, 0x60, 0x5BD7) /* <CJK> */
-MAP(0x3A, 0x61, 0x5BD8) /* <CJK> */
-MAP(0x3A, 0x62, 0x5BD9) /* <CJK> */
-MAP(0x3A, 0x63, 0x5BDA) /* <CJK> */
-MAP(0x3A, 0x64, 0x5BE0) /* <CJK> */
-MAP(0x3A, 0x65, 0x5BEF) /* <CJK> */
-MAP(0x3A, 0x66, 0x5BF1) /* <CJK> */
-MAP(0x3A, 0x67, 0x5BF4) /* <CJK> */
-MAP(0x3A, 0x68, 0x5BFD) /* <CJK> */
-MAP(0x3A, 0x69, 0x5C0C) /* <CJK> */
-MAP(0x3A, 0x6A, 0x5C17) /* <CJK> */
-MAP(0x3A, 0x6B, 0x5C1E) /* <CJK> */
-MAP(0x3A, 0x6C, 0x5C1F) /* <CJK> */
-MAP(0x3A, 0x6D, 0x5C23) /* <CJK> */
-MAP(0x3A, 0x6E, 0x5C26) /* <CJK> */
-MAP(0x3A, 0x6F, 0x5C29) /* <CJK> */
-MAP(0x3A, 0x70, 0x5C2B) /* <CJK> */
-MAP(0x3A, 0x71, 0x5C2C) /* <CJK> */
-MAP(0x3A, 0x72, 0x5C2E) /* <CJK> */
-MAP(0x3A, 0x73, 0x5C30) /* <CJK> */
-MAP(0x3A, 0x74, 0x5C32) /* <CJK> */
-MAP(0x3A, 0x75, 0x5C35) /* <CJK> */
-MAP(0x3A, 0x76, 0x5C36) /* <CJK> */
-MAP(0x3A, 0x77, 0x5C59) /* <CJK> */
-MAP(0x3A, 0x78, 0x5C5A) /* <CJK> */
-MAP(0x3A, 0x79, 0x5C5C) /* <CJK> */
-MAP(0x3A, 0x7A, 0x5C62) /* <CJK> */
-MAP(0x3A, 0x7B, 0x5C63) /* <CJK> */
-MAP(0x3A, 0x7C, 0x5C67) /* <CJK> */
-MAP(0x3A, 0x7D, 0x5C68) /* <CJK> */
-MAP(0x3A, 0x7E, 0x5C69) /* <CJK> */
-MAP(0x3B, 0x21, 0x5C6D) /* <CJK> */
-MAP(0x3B, 0x22, 0x5C70) /* <CJK> */
-MAP(0x3B, 0x23, 0x5C74) /* <CJK> */
-MAP(0x3B, 0x24, 0x5C75) /* <CJK> */
-MAP(0x3B, 0x25, 0x5C7A) /* <CJK> */
-MAP(0x3B, 0x26, 0x5C7B) /* <CJK> */
-MAP(0x3B, 0x27, 0x5C7C) /* <CJK> */
-MAP(0x3B, 0x28, 0x5C7D) /* <CJK> */
-MAP(0x3B, 0x29, 0x5C87) /* <CJK> */
-MAP(0x3B, 0x2A, 0x5C88) /* <CJK> */
-MAP(0x3B, 0x2B, 0x5C8A) /* <CJK> */
-MAP(0x3B, 0x2C, 0x5C8F) /* <CJK> */
-MAP(0x3B, 0x2D, 0x5C92) /* <CJK> */
-MAP(0x3B, 0x2E, 0x5C9D) /* <CJK> */
-MAP(0x3B, 0x2F, 0x5C9F) /* <CJK> */
-MAP(0x3B, 0x30, 0x5CA0) /* <CJK> */
-MAP(0x3B, 0x31, 0x5CA2) /* <CJK> */
-MAP(0x3B, 0x32, 0x5CA3) /* <CJK> */
-MAP(0x3B, 0x33, 0x5CA6) /* <CJK> */
-MAP(0x3B, 0x34, 0x5CAA) /* <CJK> */
-MAP(0x3B, 0x35, 0x5CB2) /* <CJK> */
-MAP(0x3B, 0x36, 0x5CB4) /* <CJK> */
-MAP(0x3B, 0x37, 0x5CB5) /* <CJK> */
-MAP(0x3B, 0x38, 0x5CBA) /* <CJK> */
-MAP(0x3B, 0x39, 0x5CC9) /* <CJK> */
-MAP(0x3B, 0x3A, 0x5CCB) /* <CJK> */
-MAP(0x3B, 0x3B, 0x5CD2) /* <CJK> */
-MAP(0x3B, 0x3C, 0x5CDD) /* <CJK> */
-MAP(0x3B, 0x3D, 0x5CD7) /* <CJK> */
-MAP(0x3B, 0x3E, 0x5CEE) /* <CJK> */
-MAP(0x3B, 0x3F, 0x5CF1) /* <CJK> */
-MAP(0x3B, 0x40, 0x5CF2) /* <CJK> */
-MAP(0x3B, 0x41, 0x5CF4) /* <CJK> */
-MAP(0x3B, 0x42, 0x5D01) /* <CJK> */
-MAP(0x3B, 0x43, 0x5D06) /* <CJK> */
-MAP(0x3B, 0x44, 0x5D0D) /* <CJK> */
-MAP(0x3B, 0x45, 0x5D12) /* <CJK> */
-MAP(0x3B, 0x46, 0x5D2B) /* <CJK> */
-MAP(0x3B, 0x47, 0x5D23) /* <CJK> */
-MAP(0x3B, 0x48, 0x5D24) /* <CJK> */
-MAP(0x3B, 0x49, 0x5D26) /* <CJK> */
-MAP(0x3B, 0x4A, 0x5D27) /* <CJK> */
-MAP(0x3B, 0x4B, 0x5D31) /* <CJK> */
-MAP(0x3B, 0x4C, 0x5D34) /* <CJK> */
-MAP(0x3B, 0x4D, 0x5D39) /* <CJK> */
-MAP(0x3B, 0x4E, 0x5D3D) /* <CJK> */
-MAP(0x3B, 0x4F, 0x5D3F) /* <CJK> */
-MAP(0x3B, 0x50, 0x5D42) /* <CJK> */
-MAP(0x3B, 0x51, 0x5D43) /* <CJK> */
-MAP(0x3B, 0x52, 0x5D46) /* <CJK> */
-MAP(0x3B, 0x53, 0x5D48) /* <CJK> */
-MAP(0x3B, 0x54, 0x5D55) /* <CJK> */
-MAP(0x3B, 0x55, 0x5D51) /* <CJK> */
-MAP(0x3B, 0x56, 0x5D59) /* <CJK> */
-MAP(0x3B, 0x57, 0x5D4A) /* <CJK> */
-MAP(0x3B, 0x58, 0x5D5F) /* <CJK> */
-MAP(0x3B, 0x59, 0x5D60) /* <CJK> */
-MAP(0x3B, 0x5A, 0x5D61) /* <CJK> */
-MAP(0x3B, 0x5B, 0x5D62) /* <CJK> */
-MAP(0x3B, 0x5C, 0x5D64) /* <CJK> */
-MAP(0x3B, 0x5D, 0x5D6A) /* <CJK> */
-MAP(0x3B, 0x5E, 0x5D6D) /* <CJK> */
-MAP(0x3B, 0x5F, 0x5D70) /* <CJK> */
-MAP(0x3B, 0x60, 0x5D79) /* <CJK> */
-MAP(0x3B, 0x61, 0x5D7A) /* <CJK> */
-MAP(0x3B, 0x62, 0x5D7E) /* <CJK> */
-MAP(0x3B, 0x63, 0x5D7F) /* <CJK> */
-MAP(0x3B, 0x64, 0x5D81) /* <CJK> */
-MAP(0x3B, 0x65, 0x5D83) /* <CJK> */
-MAP(0x3B, 0x66, 0x5D88) /* <CJK> */
-MAP(0x3B, 0x67, 0x5D8A) /* <CJK> */
-MAP(0x3B, 0x68, 0x5D92) /* <CJK> */
-MAP(0x3B, 0x69, 0x5D93) /* <CJK> */
-MAP(0x3B, 0x6A, 0x5D94) /* <CJK> */
-MAP(0x3B, 0x6B, 0x5D95) /* <CJK> */
-MAP(0x3B, 0x6C, 0x5D99) /* <CJK> */
-MAP(0x3B, 0x6D, 0x5D9B) /* <CJK> */
-MAP(0x3B, 0x6E, 0x5D9F) /* <CJK> */
-MAP(0x3B, 0x6F, 0x5DA0) /* <CJK> */
-MAP(0x3B, 0x70, 0x5DA7) /* <CJK> */
-MAP(0x3B, 0x71, 0x5DAB) /* <CJK> */
-MAP(0x3B, 0x72, 0x5DB0) /* <CJK> */
-MAP(0x3B, 0x73, 0x5DB4) /* <CJK> */
-MAP(0x3B, 0x74, 0x5DB8) /* <CJK> */
-MAP(0x3B, 0x75, 0x5DB9) /* <CJK> */
-MAP(0x3B, 0x76, 0x5DC3) /* <CJK> */
-MAP(0x3B, 0x77, 0x5DC7) /* <CJK> */
-MAP(0x3B, 0x78, 0x5DCB) /* <CJK> */
-MAP(0x3B, 0x79, 0x5DD0) /* <CJK> */
-MAP(0x3B, 0x7A, 0x5DCE) /* <CJK> */
-MAP(0x3B, 0x7B, 0x5DD8) /* <CJK> */
-MAP(0x3B, 0x7C, 0x5DD9) /* <CJK> */
-MAP(0x3B, 0x7D, 0x5DE0) /* <CJK> */
-MAP(0x3B, 0x7E, 0x5DE4) /* <CJK> */
-MAP(0x3C, 0x21, 0x5DE9) /* <CJK> */
-MAP(0x3C, 0x22, 0x5DF8) /* <CJK> */
-MAP(0x3C, 0x23, 0x5DF9) /* <CJK> */
-MAP(0x3C, 0x24, 0x5E00) /* <CJK> */
-MAP(0x3C, 0x25, 0x5E07) /* <CJK> */
-MAP(0x3C, 0x26, 0x5E0D) /* <CJK> */
-MAP(0x3C, 0x27, 0x5E12) /* <CJK> */
-MAP(0x3C, 0x28, 0x5E14) /* <CJK> */
-MAP(0x3C, 0x29, 0x5E15) /* <CJK> */
-MAP(0x3C, 0x2A, 0x5E18) /* <CJK> */
-MAP(0x3C, 0x2B, 0x5E1F) /* <CJK> */
-MAP(0x3C, 0x2C, 0x5E20) /* <CJK> */
-MAP(0x3C, 0x2D, 0x5E2E) /* <CJK> */
-MAP(0x3C, 0x2E, 0x5E28) /* <CJK> */
-MAP(0x3C, 0x2F, 0x5E32) /* <CJK> */
-MAP(0x3C, 0x30, 0x5E35) /* <CJK> */
-MAP(0x3C, 0x31, 0x5E3E) /* <CJK> */
-MAP(0x3C, 0x32, 0x5E4B) /* <CJK> */
-MAP(0x3C, 0x33, 0x5E50) /* <CJK> */
-MAP(0x3C, 0x34, 0x5E49) /* <CJK> */
-MAP(0x3C, 0x35, 0x5E51) /* <CJK> */
-MAP(0x3C, 0x36, 0x5E56) /* <CJK> */
-MAP(0x3C, 0x37, 0x5E58) /* <CJK> */
-MAP(0x3C, 0x38, 0x5E5B) /* <CJK> */
-MAP(0x3C, 0x39, 0x5E5C) /* <CJK> */
-MAP(0x3C, 0x3A, 0x5E5E) /* <CJK> */
-MAP(0x3C, 0x3B, 0x5E68) /* <CJK> */
-MAP(0x3C, 0x3C, 0x5E6A) /* <CJK> */
-MAP(0x3C, 0x3D, 0x5E6B) /* <CJK> */
-MAP(0x3C, 0x3E, 0x5E6C) /* <CJK> */
-MAP(0x3C, 0x3F, 0x5E6D) /* <CJK> */
-MAP(0x3C, 0x40, 0x5E6E) /* <CJK> */
-MAP(0x3C, 0x41, 0x5E70) /* <CJK> */
-MAP(0x3C, 0x42, 0x5E80) /* <CJK> */
-MAP(0x3C, 0x43, 0x5E8B) /* <CJK> */
-MAP(0x3C, 0x44, 0x5E8E) /* <CJK> */
-MAP(0x3C, 0x45, 0x5EA2) /* <CJK> */
-MAP(0x3C, 0x46, 0x5EA4) /* <CJK> */
-MAP(0x3C, 0x47, 0x5EA5) /* <CJK> */
-MAP(0x3C, 0x48, 0x5EA8) /* <CJK> */
-MAP(0x3C, 0x49, 0x5EAA) /* <CJK> */
-MAP(0x3C, 0x4A, 0x5EAC) /* <CJK> */
-MAP(0x3C, 0x4B, 0x5EB1) /* <CJK> */
-MAP(0x3C, 0x4C, 0x5EB3) /* <CJK> */
-MAP(0x3C, 0x4D, 0x5EBD) /* <CJK> */
-MAP(0x3C, 0x4E, 0x5EBE) /* <CJK> */
-MAP(0x3C, 0x4F, 0x5EBF) /* <CJK> */
-MAP(0x3C, 0x50, 0x5EC6) /* <CJK> */
-MAP(0x3C, 0x51, 0x5ECC) /* <CJK> */
-MAP(0x3C, 0x52, 0x5ECB) /* <CJK> */
-MAP(0x3C, 0x53, 0x5ECE) /* <CJK> */
-MAP(0x3C, 0x54, 0x5ED1) /* <CJK> */
-MAP(0x3C, 0x55, 0x5ED2) /* <CJK> */
-MAP(0x3C, 0x56, 0x5ED4) /* <CJK> */
-MAP(0x3C, 0x57, 0x5ED5) /* <CJK> */
-MAP(0x3C, 0x58, 0x5EDC) /* <CJK> */
-MAP(0x3C, 0x59, 0x5EDE) /* <CJK> */
-MAP(0x3C, 0x5A, 0x5EE5) /* <CJK> */
-MAP(0x3C, 0x5B, 0x5EEB) /* <CJK> */
-MAP(0x3C, 0x5C, 0x5F02) /* <CJK> */
-MAP(0x3C, 0x5D, 0x5F06) /* <CJK> */
-MAP(0x3C, 0x5E, 0x5F07) /* <CJK> */
-MAP(0x3C, 0x5F, 0x5F08) /* <CJK> */
-MAP(0x3C, 0x60, 0x5F0E) /* <CJK> */
-MAP(0x3C, 0x61, 0x5F19) /* <CJK> */
-MAP(0x3C, 0x62, 0x5F1C) /* <CJK> */
-MAP(0x3C, 0x63, 0x5F1D) /* <CJK> */
-MAP(0x3C, 0x64, 0x5F21) /* <CJK> */
-MAP(0x3C, 0x65, 0x5F22) /* <CJK> */
-MAP(0x3C, 0x66, 0x5F23) /* <CJK> */
-MAP(0x3C, 0x67, 0x5F24) /* <CJK> */
-MAP(0x3C, 0x68, 0x5F28) /* <CJK> */
-MAP(0x3C, 0x69, 0x5F2B) /* <CJK> */
-MAP(0x3C, 0x6A, 0x5F2C) /* <CJK> */
-MAP(0x3C, 0x6B, 0x5F2E) /* <CJK> */
-MAP(0x3C, 0x6C, 0x5F30) /* <CJK> */
-MAP(0x3C, 0x6D, 0x5F34) /* <CJK> */
-MAP(0x3C, 0x6E, 0x5F36) /* <CJK> */
-MAP(0x3C, 0x6F, 0x5F3B) /* <CJK> */
-MAP(0x3C, 0x70, 0x5F3D) /* <CJK> */
-MAP(0x3C, 0x71, 0x5F3F) /* <CJK> */
-MAP(0x3C, 0x72, 0x5F40) /* <CJK> */
-MAP(0x3C, 0x73, 0x5F44) /* <CJK> */
-MAP(0x3C, 0x74, 0x5F45) /* <CJK> */
-MAP(0x3C, 0x75, 0x5F47) /* <CJK> */
-MAP(0x3C, 0x76, 0x5F4D) /* <CJK> */
-MAP(0x3C, 0x77, 0x5F50) /* <CJK> */
-MAP(0x3C, 0x78, 0x5F54) /* <CJK> */
-MAP(0x3C, 0x79, 0x5F58) /* <CJK> */
-MAP(0x3C, 0x7A, 0x5F5B) /* <CJK> */
-MAP(0x3C, 0x7B, 0x5F60) /* <CJK> */
-MAP(0x3C, 0x7C, 0x5F63) /* <CJK> */
-MAP(0x3C, 0x7D, 0x5F64) /* <CJK> */
-MAP(0x3C, 0x7E, 0x5F67) /* <CJK> */
-MAP(0x3D, 0x21, 0x5F6F) /* <CJK> */
-MAP(0x3D, 0x22, 0x5F72) /* <CJK> */
-MAP(0x3D, 0x23, 0x5F74) /* <CJK> */
-MAP(0x3D, 0x24, 0x5F75) /* <CJK> */
-MAP(0x3D, 0x25, 0x5F78) /* <CJK> */
-MAP(0x3D, 0x26, 0x5F7A) /* <CJK> */
-MAP(0x3D, 0x27, 0x5F7D) /* <CJK> */
-MAP(0x3D, 0x28, 0x5F7E) /* <CJK> */
-MAP(0x3D, 0x29, 0x5F89) /* <CJK> */
-MAP(0x3D, 0x2A, 0x5F8D) /* <CJK> */
-MAP(0x3D, 0x2B, 0x5F8F) /* <CJK> */
-MAP(0x3D, 0x2C, 0x5F96) /* <CJK> */
-MAP(0x3D, 0x2D, 0x5F9C) /* <CJK> */
-MAP(0x3D, 0x2E, 0x5F9D) /* <CJK> */
-MAP(0x3D, 0x2F, 0x5FA2) /* <CJK> */
-MAP(0x3D, 0x30, 0x5FA7) /* <CJK> */
-MAP(0x3D, 0x31, 0x5FAB) /* <CJK> */
-MAP(0x3D, 0x32, 0x5FA4) /* <CJK> */
-MAP(0x3D, 0x33, 0x5FAC) /* <CJK> */
-MAP(0x3D, 0x34, 0x5FAF) /* <CJK> */
-MAP(0x3D, 0x35, 0x5FB0) /* <CJK> */
-MAP(0x3D, 0x36, 0x5FB1) /* <CJK> */
-MAP(0x3D, 0x37, 0x5FB8) /* <CJK> */
-MAP(0x3D, 0x38, 0x5FC4) /* <CJK> */
-MAP(0x3D, 0x39, 0x5FC7) /* <CJK> */
-MAP(0x3D, 0x3A, 0x5FC8) /* <CJK> */
-MAP(0x3D, 0x3B, 0x5FC9) /* <CJK> */
-MAP(0x3D, 0x3C, 0x5FCB) /* <CJK> */
-MAP(0x3D, 0x3D, 0x5FD0) /* <CJK> */
-MAP(0x3D, 0x3E, 0x5FD1) /* <CJK> */
-MAP(0x3D, 0x3F, 0x5FD2) /* <CJK> */
-MAP(0x3D, 0x40, 0x5FD3) /* <CJK> */
-MAP(0x3D, 0x41, 0x5FD4) /* <CJK> */
-MAP(0x3D, 0x42, 0x5FDE) /* <CJK> */
-MAP(0x3D, 0x43, 0x5FE1) /* <CJK> */
-MAP(0x3D, 0x44, 0x5FE2) /* <CJK> */
-MAP(0x3D, 0x45, 0x5FE8) /* <CJK> */
-MAP(0x3D, 0x46, 0x5FE9) /* <CJK> */
-MAP(0x3D, 0x47, 0x5FEA) /* <CJK> */
-MAP(0x3D, 0x48, 0x5FEC) /* <CJK> */
-MAP(0x3D, 0x49, 0x5FED) /* <CJK> */
-MAP(0x3D, 0x4A, 0x5FEE) /* <CJK> */
-MAP(0x3D, 0x4B, 0x5FEF) /* <CJK> */
-MAP(0x3D, 0x4C, 0x5FF2) /* <CJK> */
-MAP(0x3D, 0x4D, 0x5FF3) /* <CJK> */
-MAP(0x3D, 0x4E, 0x5FF6) /* <CJK> */
-MAP(0x3D, 0x4F, 0x5FFA) /* <CJK> */
-MAP(0x3D, 0x50, 0x5FFC) /* <CJK> */
-MAP(0x3D, 0x51, 0x6007) /* <CJK> */
-MAP(0x3D, 0x52, 0x600A) /* <CJK> */
-MAP(0x3D, 0x53, 0x600D) /* <CJK> */
-MAP(0x3D, 0x54, 0x6013) /* <CJK> */
-MAP(0x3D, 0x55, 0x6014) /* <CJK> */
-MAP(0x3D, 0x56, 0x6017) /* <CJK> */
-MAP(0x3D, 0x57, 0x6018) /* <CJK> */
-MAP(0x3D, 0x58, 0x601A) /* <CJK> */
-MAP(0x3D, 0x59, 0x601F) /* <CJK> */
-MAP(0x3D, 0x5A, 0x6024) /* <CJK> */
-MAP(0x3D, 0x5B, 0x602D) /* <CJK> */
-MAP(0x3D, 0x5C, 0x6033) /* <CJK> */
-MAP(0x3D, 0x5D, 0x6035) /* <CJK> */
-MAP(0x3D, 0x5E, 0x6040) /* <CJK> */
-MAP(0x3D, 0x5F, 0x6047) /* <CJK> */
-MAP(0x3D, 0x60, 0x6048) /* <CJK> */
-MAP(0x3D, 0x61, 0x6049) /* <CJK> */
-MAP(0x3D, 0x62, 0x604C) /* <CJK> */
-MAP(0x3D, 0x63, 0x6051) /* <CJK> */
-MAP(0x3D, 0x64, 0x6054) /* <CJK> */
-MAP(0x3D, 0x65, 0x6056) /* <CJK> */
-MAP(0x3D, 0x66, 0x6057) /* <CJK> */
-MAP(0x3D, 0x67, 0x605D) /* <CJK> */
-MAP(0x3D, 0x68, 0x6061) /* <CJK> */
-MAP(0x3D, 0x69, 0x6067) /* <CJK> */
-MAP(0x3D, 0x6A, 0x6071) /* <CJK> */
-MAP(0x3D, 0x6B, 0x607E) /* <CJK> */
-MAP(0x3D, 0x6C, 0x607F) /* <CJK> */
-MAP(0x3D, 0x6D, 0x6082) /* <CJK> */
-MAP(0x3D, 0x6E, 0x6086) /* <CJK> */
-MAP(0x3D, 0x6F, 0x6088) /* <CJK> */
-MAP(0x3D, 0x70, 0x608A) /* <CJK> */
-MAP(0x3D, 0x71, 0x608E) /* <CJK> */
-MAP(0x3D, 0x72, 0x6091) /* <CJK> */
-MAP(0x3D, 0x73, 0x6093) /* <CJK> */
-MAP(0x3D, 0x74, 0x6095) /* <CJK> */
-MAP(0x3D, 0x75, 0x6098) /* <CJK> */
-MAP(0x3D, 0x76, 0x609D) /* <CJK> */
-MAP(0x3D, 0x77, 0x609E) /* <CJK> */
-MAP(0x3D, 0x78, 0x60A2) /* <CJK> */
-MAP(0x3D, 0x79, 0x60A4) /* <CJK> */
-MAP(0x3D, 0x7A, 0x60A5) /* <CJK> */
-MAP(0x3D, 0x7B, 0x60A8) /* <CJK> */
-MAP(0x3D, 0x7C, 0x60B0) /* <CJK> */
-MAP(0x3D, 0x7D, 0x60B1) /* <CJK> */
-MAP(0x3D, 0x7E, 0x60B7) /* <CJK> */
-MAP(0x3E, 0x21, 0x60BB) /* <CJK> */
-MAP(0x3E, 0x22, 0x60BE) /* <CJK> */
-MAP(0x3E, 0x23, 0x60C2) /* <CJK> */
-MAP(0x3E, 0x24, 0x60C4) /* <CJK> */
-MAP(0x3E, 0x25, 0x60C8) /* <CJK> */
-MAP(0x3E, 0x26, 0x60C9) /* <CJK> */
-MAP(0x3E, 0x27, 0x60CA) /* <CJK> */
-MAP(0x3E, 0x28, 0x60CB) /* <CJK> */
-MAP(0x3E, 0x29, 0x60CE) /* <CJK> */
-MAP(0x3E, 0x2A, 0x60CF) /* <CJK> */
-MAP(0x3E, 0x2B, 0x60D4) /* <CJK> */
-MAP(0x3E, 0x2C, 0x60D5) /* <CJK> */
-MAP(0x3E, 0x2D, 0x60D9) /* <CJK> */
-MAP(0x3E, 0x2E, 0x60DB) /* <CJK> */
-MAP(0x3E, 0x2F, 0x60DD) /* <CJK> */
-MAP(0x3E, 0x30, 0x60DE) /* <CJK> */
-MAP(0x3E, 0x31, 0x60E2) /* <CJK> */
-MAP(0x3E, 0x32, 0x60E5) /* <CJK> */
-MAP(0x3E, 0x33, 0x60F2) /* <CJK> */
-MAP(0x3E, 0x34, 0x60F5) /* <CJK> */
-MAP(0x3E, 0x35, 0x60F8) /* <CJK> */
-MAP(0x3E, 0x36, 0x60FC) /* <CJK> */
-MAP(0x3E, 0x37, 0x60FD) /* <CJK> */
-MAP(0x3E, 0x38, 0x6102) /* <CJK> */
-MAP(0x3E, 0x39, 0x6107) /* <CJK> */
-MAP(0x3E, 0x3A, 0x610A) /* <CJK> */
-MAP(0x3E, 0x3B, 0x610C) /* <CJK> */
-MAP(0x3E, 0x3C, 0x6110) /* <CJK> */
-MAP(0x3E, 0x3D, 0x6111) /* <CJK> */
-MAP(0x3E, 0x3E, 0x6112) /* <CJK> */
-MAP(0x3E, 0x3F, 0x6113) /* <CJK> */
-MAP(0x3E, 0x40, 0x6114) /* <CJK> */
-MAP(0x3E, 0x41, 0x6116) /* <CJK> */
-MAP(0x3E, 0x42, 0x6117) /* <CJK> */
-MAP(0x3E, 0x43, 0x6119) /* <CJK> */
-MAP(0x3E, 0x44, 0x611C) /* <CJK> */
-MAP(0x3E, 0x45, 0x611E) /* <CJK> */
-MAP(0x3E, 0x46, 0x6122) /* <CJK> */
-MAP(0x3E, 0x47, 0x612A) /* <CJK> */
-MAP(0x3E, 0x48, 0x612B) /* <CJK> */
-MAP(0x3E, 0x49, 0x6130) /* <CJK> */
-MAP(0x3E, 0x4A, 0x6131) /* <CJK> */
-MAP(0x3E, 0x4B, 0x6135) /* <CJK> */
-MAP(0x3E, 0x4C, 0x6136) /* <CJK> */
-MAP(0x3E, 0x4D, 0x6137) /* <CJK> */
-MAP(0x3E, 0x4E, 0x6139) /* <CJK> */
-MAP(0x3E, 0x4F, 0x6141) /* <CJK> */
-MAP(0x3E, 0x50, 0x6145) /* <CJK> */
-MAP(0x3E, 0x51, 0x6146) /* <CJK> */
-MAP(0x3E, 0x52, 0x6149) /* <CJK> */
-MAP(0x3E, 0x53, 0x615E) /* <CJK> */
-MAP(0x3E, 0x54, 0x6160) /* <CJK> */
-MAP(0x3E, 0x55, 0x616C) /* <CJK> */
-MAP(0x3E, 0x56, 0x6172) /* <CJK> */
-MAP(0x3E, 0x57, 0x6178) /* <CJK> */
-MAP(0x3E, 0x58, 0x617B) /* <CJK> */
-MAP(0x3E, 0x59, 0x617C) /* <CJK> */
-MAP(0x3E, 0x5A, 0x617F) /* <CJK> */
-MAP(0x3E, 0x5B, 0x6180) /* <CJK> */
-MAP(0x3E, 0x5C, 0x6181) /* <CJK> */
-MAP(0x3E, 0x5D, 0x6183) /* <CJK> */
-MAP(0x3E, 0x5E, 0x6184) /* <CJK> */
-MAP(0x3E, 0x5F, 0x618B) /* <CJK> */
-MAP(0x3E, 0x60, 0x618D) /* <CJK> */
-MAP(0x3E, 0x61, 0x6192) /* <CJK> */
-MAP(0x3E, 0x62, 0x6193) /* <CJK> */
-MAP(0x3E, 0x63, 0x6197) /* <CJK> */
-MAP(0x3E, 0x64, 0x6198) /* <CJK> */
-MAP(0x3E, 0x65, 0x619C) /* <CJK> */
-MAP(0x3E, 0x66, 0x619D) /* <CJK> */
-MAP(0x3E, 0x67, 0x619F) /* <CJK> */
-MAP(0x3E, 0x68, 0x61A0) /* <CJK> */
-MAP(0x3E, 0x69, 0x61A5) /* <CJK> */
-MAP(0x3E, 0x6A, 0x61A8) /* <CJK> */
-MAP(0x3E, 0x6B, 0x61AA) /* <CJK> */
-MAP(0x3E, 0x6C, 0x61AD) /* <CJK> */
-MAP(0x3E, 0x6D, 0x61B8) /* <CJK> */
-MAP(0x3E, 0x6E, 0x61B9) /* <CJK> */
-MAP(0x3E, 0x6F, 0x61BC) /* <CJK> */
-MAP(0x3E, 0x70, 0x61C0) /* <CJK> */
-MAP(0x3E, 0x71, 0x61C1) /* <CJK> */
-MAP(0x3E, 0x72, 0x61C2) /* <CJK> */
-MAP(0x3E, 0x73, 0x61CE) /* <CJK> */
-MAP(0x3E, 0x74, 0x61CF) /* <CJK> */
-MAP(0x3E, 0x75, 0x61D5) /* <CJK> */
-MAP(0x3E, 0x76, 0x61DC) /* <CJK> */
-MAP(0x3E, 0x77, 0x61DD) /* <CJK> */
-MAP(0x3E, 0x78, 0x61DE) /* <CJK> */
-MAP(0x3E, 0x79, 0x61DF) /* <CJK> */
-MAP(0x3E, 0x7A, 0x61E1) /* <CJK> */
-MAP(0x3E, 0x7B, 0x61E2) /* <CJK> */
-MAP(0x3E, 0x7C, 0x61E7) /* <CJK> */
-MAP(0x3E, 0x7D, 0x61E9) /* <CJK> */
-MAP(0x3E, 0x7E, 0x61E5) /* <CJK> */
-MAP(0x3F, 0x21, 0x61EC) /* <CJK> */
-MAP(0x3F, 0x22, 0x61ED) /* <CJK> */
-MAP(0x3F, 0x23, 0x61EF) /* <CJK> */
-MAP(0x3F, 0x24, 0x6201) /* <CJK> */
-MAP(0x3F, 0x25, 0x6203) /* <CJK> */
-MAP(0x3F, 0x26, 0x6204) /* <CJK> */
-MAP(0x3F, 0x27, 0x6207) /* <CJK> */
-MAP(0x3F, 0x28, 0x6213) /* <CJK> */
-MAP(0x3F, 0x29, 0x6215) /* <CJK> */
-MAP(0x3F, 0x2A, 0x621C) /* <CJK> */
-MAP(0x3F, 0x2B, 0x6220) /* <CJK> */
-MAP(0x3F, 0x2C, 0x6222) /* <CJK> */
-MAP(0x3F, 0x2D, 0x6223) /* <CJK> */
-MAP(0x3F, 0x2E, 0x6227) /* <CJK> */
-MAP(0x3F, 0x2F, 0x6229) /* <CJK> */
-MAP(0x3F, 0x30, 0x622B) /* <CJK> */
-MAP(0x3F, 0x31, 0x6239) /* <CJK> */
-MAP(0x3F, 0x32, 0x623D) /* <CJK> */
-MAP(0x3F, 0x33, 0x6242) /* <CJK> */
-MAP(0x3F, 0x34, 0x6243) /* <CJK> */
-MAP(0x3F, 0x35, 0x6244) /* <CJK> */
-MAP(0x3F, 0x36, 0x6246) /* <CJK> */
-MAP(0x3F, 0x37, 0x624C) /* <CJK> */
-MAP(0x3F, 0x38, 0x6250) /* <CJK> */
-MAP(0x3F, 0x39, 0x6251) /* <CJK> */
-MAP(0x3F, 0x3A, 0x6252) /* <CJK> */
-MAP(0x3F, 0x3B, 0x6254) /* <CJK> */
-MAP(0x3F, 0x3C, 0x6256) /* <CJK> */
-MAP(0x3F, 0x3D, 0x625A) /* <CJK> */
-MAP(0x3F, 0x3E, 0x625C) /* <CJK> */
-MAP(0x3F, 0x3F, 0x6264) /* <CJK> */
-MAP(0x3F, 0x40, 0x626D) /* <CJK> */
-MAP(0x3F, 0x41, 0x626F) /* <CJK> */
-MAP(0x3F, 0x42, 0x6273) /* <CJK> */
-MAP(0x3F, 0x43, 0x627A) /* <CJK> */
-MAP(0x3F, 0x44, 0x627D) /* <CJK> */
-MAP(0x3F, 0x45, 0x628D) /* <CJK> */
-MAP(0x3F, 0x46, 0x628E) /* <CJK> */
-MAP(0x3F, 0x47, 0x628F) /* <CJK> */
-MAP(0x3F, 0x48, 0x6290) /* <CJK> */
-MAP(0x3F, 0x49, 0x62A6) /* <CJK> */
-MAP(0x3F, 0x4A, 0x62A8) /* <CJK> */
-MAP(0x3F, 0x4B, 0x62B3) /* <CJK> */
-MAP(0x3F, 0x4C, 0x62B6) /* <CJK> */
-MAP(0x3F, 0x4D, 0x62B7) /* <CJK> */
-MAP(0x3F, 0x4E, 0x62BA) /* <CJK> */
-MAP(0x3F, 0x4F, 0x62BE) /* <CJK> */
-MAP(0x3F, 0x50, 0x62BF) /* <CJK> */
-MAP(0x3F, 0x51, 0x62C4) /* <CJK> */
-MAP(0x3F, 0x52, 0x62CE) /* <CJK> */
-MAP(0x3F, 0x53, 0x62D5) /* <CJK> */
-MAP(0x3F, 0x54, 0x62D6) /* <CJK> */
-MAP(0x3F, 0x55, 0x62DA) /* <CJK> */
-MAP(0x3F, 0x56, 0x62EA) /* <CJK> */
-MAP(0x3F, 0x57, 0x62F2) /* <CJK> */
-MAP(0x3F, 0x58, 0x62F4) /* <CJK> */
-MAP(0x3F, 0x59, 0x62FC) /* <CJK> */
-MAP(0x3F, 0x5A, 0x62FD) /* <CJK> */
-MAP(0x3F, 0x5B, 0x6303) /* <CJK> */
-MAP(0x3F, 0x5C, 0x6304) /* <CJK> */
-MAP(0x3F, 0x5D, 0x630A) /* <CJK> */
-MAP(0x3F, 0x5E, 0x630B) /* <CJK> */
-MAP(0x3F, 0x5F, 0x630D) /* <CJK> */
-MAP(0x3F, 0x60, 0x6310) /* <CJK> */
-MAP(0x3F, 0x61, 0x6313) /* <CJK> */
-MAP(0x3F, 0x62, 0x6316) /* <CJK> */
-MAP(0x3F, 0x63, 0x6318) /* <CJK> */
-MAP(0x3F, 0x64, 0x6329) /* <CJK> */
-MAP(0x3F, 0x65, 0x632A) /* <CJK> */
-MAP(0x3F, 0x66, 0x632D) /* <CJK> */
-MAP(0x3F, 0x67, 0x6335) /* <CJK> */
-MAP(0x3F, 0x68, 0x6336) /* <CJK> */
-MAP(0x3F, 0x69, 0x6339) /* <CJK> */
-MAP(0x3F, 0x6A, 0x633C) /* <CJK> */
-MAP(0x3F, 0x6B, 0x6341) /* <CJK> */
-MAP(0x3F, 0x6C, 0x6342) /* <CJK> */
-MAP(0x3F, 0x6D, 0x6343) /* <CJK> */
-MAP(0x3F, 0x6E, 0x6344) /* <CJK> */
-MAP(0x3F, 0x6F, 0x6346) /* <CJK> */
-MAP(0x3F, 0x70, 0x634A) /* <CJK> */
-MAP(0x3F, 0x71, 0x634B) /* <CJK> */
-MAP(0x3F, 0x72, 0x634E) /* <CJK> */
-MAP(0x3F, 0x73, 0x6352) /* <CJK> */
-MAP(0x3F, 0x74, 0x6353) /* <CJK> */
-MAP(0x3F, 0x75, 0x6354) /* <CJK> */
-MAP(0x3F, 0x76, 0x6358) /* <CJK> */
-MAP(0x3F, 0x77, 0x635B) /* <CJK> */
-MAP(0x3F, 0x78, 0x6365) /* <CJK> */
-MAP(0x3F, 0x79, 0x6366) /* <CJK> */
-MAP(0x3F, 0x7A, 0x636C) /* <CJK> */
-MAP(0x3F, 0x7B, 0x636D) /* <CJK> */
-MAP(0x3F, 0x7C, 0x6371) /* <CJK> */
-MAP(0x3F, 0x7D, 0x6374) /* <CJK> */
-MAP(0x3F, 0x7E, 0x6375) /* <CJK> */
-MAP(0x40, 0x21, 0x6378) /* <CJK> */
-MAP(0x40, 0x22, 0x637C) /* <CJK> */
-MAP(0x40, 0x23, 0x637D) /* <CJK> */
-MAP(0x40, 0x24, 0x637F) /* <CJK> */
-MAP(0x40, 0x25, 0x6382) /* <CJK> */
-MAP(0x40, 0x26, 0x6384) /* <CJK> */
-MAP(0x40, 0x27, 0x6387) /* <CJK> */
-MAP(0x40, 0x28, 0x638A) /* <CJK> */
-MAP(0x40, 0x29, 0x6390) /* <CJK> */
-MAP(0x40, 0x2A, 0x6394) /* <CJK> */
-MAP(0x40, 0x2B, 0x6395) /* <CJK> */
-MAP(0x40, 0x2C, 0x6399) /* <CJK> */
-MAP(0x40, 0x2D, 0x639A) /* <CJK> */
-MAP(0x40, 0x2E, 0x639E) /* <CJK> */
-MAP(0x40, 0x2F, 0x63A4) /* <CJK> */
-MAP(0x40, 0x30, 0x63A6) /* <CJK> */
-MAP(0x40, 0x31, 0x63AD) /* <CJK> */
-MAP(0x40, 0x32, 0x63AE) /* <CJK> */
-MAP(0x40, 0x33, 0x63AF) /* <CJK> */
-MAP(0x40, 0x34, 0x63BD) /* <CJK> */
-MAP(0x40, 0x35, 0x63C1) /* <CJK> */
-MAP(0x40, 0x36, 0x63C5) /* <CJK> */
-MAP(0x40, 0x37, 0x63C8) /* <CJK> */
-MAP(0x40, 0x38, 0x63CE) /* <CJK> */
-MAP(0x40, 0x39, 0x63D1) /* <CJK> */
-MAP(0x40, 0x3A, 0x63D3) /* <CJK> */
-MAP(0x40, 0x3B, 0x63D4) /* <CJK> */
-MAP(0x40, 0x3C, 0x63D5) /* <CJK> */
-MAP(0x40, 0x3D, 0x63DC) /* <CJK> */
-MAP(0x40, 0x3E, 0x63E0) /* <CJK> */
-MAP(0x40, 0x3F, 0x63E5) /* <CJK> */
-MAP(0x40, 0x40, 0x63EA) /* <CJK> */
-MAP(0x40, 0x41, 0x63EC) /* <CJK> */
-MAP(0x40, 0x42, 0x63F2) /* <CJK> */
-MAP(0x40, 0x43, 0x63F3) /* <CJK> */
-MAP(0x40, 0x44, 0x63F5) /* <CJK> */
-MAP(0x40, 0x45, 0x63F8) /* <CJK> */
-MAP(0x40, 0x46, 0x63F9) /* <CJK> */
-MAP(0x40, 0x47, 0x6409) /* <CJK> */
-MAP(0x40, 0x48, 0x640A) /* <CJK> */
-MAP(0x40, 0x49, 0x6410) /* <CJK> */
-MAP(0x40, 0x4A, 0x6412) /* <CJK> */
-MAP(0x40, 0x4B, 0x6414) /* <CJK> */
-MAP(0x40, 0x4C, 0x6418) /* <CJK> */
-MAP(0x40, 0x4D, 0x641E) /* <CJK> */
-MAP(0x40, 0x4E, 0x6420) /* <CJK> */
-MAP(0x40, 0x4F, 0x6422) /* <CJK> */
-MAP(0x40, 0x50, 0x6424) /* <CJK> */
-MAP(0x40, 0x51, 0x6425) /* <CJK> */
-MAP(0x40, 0x52, 0x6429) /* <CJK> */
-MAP(0x40, 0x53, 0x642A) /* <CJK> */
-MAP(0x40, 0x54, 0x642F) /* <CJK> */
-MAP(0x40, 0x55, 0x6430) /* <CJK> */
-MAP(0x40, 0x56, 0x6435) /* <CJK> */
-MAP(0x40, 0x57, 0x643D) /* <CJK> */
-MAP(0x40, 0x58, 0x643F) /* <CJK> */
-MAP(0x40, 0x59, 0x644B) /* <CJK> */
-MAP(0x40, 0x5A, 0x644F) /* <CJK> */
-MAP(0x40, 0x5B, 0x6451) /* <CJK> */
-MAP(0x40, 0x5C, 0x6452) /* <CJK> */
-MAP(0x40, 0x5D, 0x6453) /* <CJK> */
-MAP(0x40, 0x5E, 0x6454) /* <CJK> */
-MAP(0x40, 0x5F, 0x645A) /* <CJK> */
-MAP(0x40, 0x60, 0x645B) /* <CJK> */
-MAP(0x40, 0x61, 0x645C) /* <CJK> */
-MAP(0x40, 0x62, 0x645D) /* <CJK> */
-MAP(0x40, 0x63, 0x645F) /* <CJK> */
-MAP(0x40, 0x64, 0x6460) /* <CJK> */
-MAP(0x40, 0x65, 0x6461) /* <CJK> */
-MAP(0x40, 0x66, 0x6463) /* <CJK> */
-MAP(0x40, 0x67, 0x646D) /* <CJK> */
-MAP(0x40, 0x68, 0x6473) /* <CJK> */
-MAP(0x40, 0x69, 0x6474) /* <CJK> */
-MAP(0x40, 0x6A, 0x647B) /* <CJK> */
-MAP(0x40, 0x6B, 0x647D) /* <CJK> */
-MAP(0x40, 0x6C, 0x6485) /* <CJK> */
-MAP(0x40, 0x6D, 0x6487) /* <CJK> */
-MAP(0x40, 0x6E, 0x648F) /* <CJK> */
-MAP(0x40, 0x6F, 0x6490) /* <CJK> */
-MAP(0x40, 0x70, 0x6491) /* <CJK> */
-MAP(0x40, 0x71, 0x6498) /* <CJK> */
-MAP(0x40, 0x72, 0x6499) /* <CJK> */
-MAP(0x40, 0x73, 0x649B) /* <CJK> */
-MAP(0x40, 0x74, 0x649D) /* <CJK> */
-MAP(0x40, 0x75, 0x649F) /* <CJK> */
-MAP(0x40, 0x76, 0x64A1) /* <CJK> */
-MAP(0x40, 0x77, 0x64A3) /* <CJK> */
-MAP(0x40, 0x78, 0x64A6) /* <CJK> */
-MAP(0x40, 0x79, 0x64A8) /* <CJK> */
-MAP(0x40, 0x7A, 0x64AC) /* <CJK> */
-MAP(0x40, 0x7B, 0x64B3) /* <CJK> */
-MAP(0x40, 0x7C, 0x64BD) /* <CJK> */
-MAP(0x40, 0x7D, 0x64BE) /* <CJK> */
-MAP(0x40, 0x7E, 0x64BF) /* <CJK> */
-MAP(0x41, 0x21, 0x64C4) /* <CJK> */
-MAP(0x41, 0x22, 0x64C9) /* <CJK> */
-MAP(0x41, 0x23, 0x64CA) /* <CJK> */
-MAP(0x41, 0x24, 0x64CB) /* <CJK> */
-MAP(0x41, 0x25, 0x64CC) /* <CJK> */
-MAP(0x41, 0x26, 0x64CE) /* <CJK> */
-MAP(0x41, 0x27, 0x64D0) /* <CJK> */
-MAP(0x41, 0x28, 0x64D1) /* <CJK> */
-MAP(0x41, 0x29, 0x64D5) /* <CJK> */
-MAP(0x41, 0x2A, 0x64D7) /* <CJK> */
-MAP(0x41, 0x2B, 0x64E4) /* <CJK> */
-MAP(0x41, 0x2C, 0x64E5) /* <CJK> */
-MAP(0x41, 0x2D, 0x64E9) /* <CJK> */
-MAP(0x41, 0x2E, 0x64EA) /* <CJK> */
-MAP(0x41, 0x2F, 0x64ED) /* <CJK> */
-MAP(0x41, 0x30, 0x64F0) /* <CJK> */
-MAP(0x41, 0x31, 0x64F5) /* <CJK> */
-MAP(0x41, 0x32, 0x64F7) /* <CJK> */
-MAP(0x41, 0x33, 0x64FB) /* <CJK> */
-MAP(0x41, 0x34, 0x64FF) /* <CJK> */
-MAP(0x41, 0x35, 0x6501) /* <CJK> */
-MAP(0x41, 0x36, 0x6504) /* <CJK> */
-MAP(0x41, 0x37, 0x6508) /* <CJK> */
-MAP(0x41, 0x38, 0x6509) /* <CJK> */
-MAP(0x41, 0x39, 0x650A) /* <CJK> */
-MAP(0x41, 0x3A, 0x650F) /* <CJK> */
-MAP(0x41, 0x3B, 0x6513) /* <CJK> */
-MAP(0x41, 0x3C, 0x6514) /* <CJK> */
-MAP(0x41, 0x3D, 0x6516) /* <CJK> */
-MAP(0x41, 0x3E, 0x6519) /* <CJK> */
-MAP(0x41, 0x3F, 0x651B) /* <CJK> */
-MAP(0x41, 0x40, 0x651E) /* <CJK> */
-MAP(0x41, 0x41, 0x651F) /* <CJK> */
-MAP(0x41, 0x42, 0x6522) /* <CJK> */
-MAP(0x41, 0x43, 0x6526) /* <CJK> */
-MAP(0x41, 0x44, 0x6529) /* <CJK> */
-MAP(0x41, 0x45, 0x652E) /* <CJK> */
-MAP(0x41, 0x46, 0x6531) /* <CJK> */
-MAP(0x41, 0x47, 0x653A) /* <CJK> */
-MAP(0x41, 0x48, 0x653C) /* <CJK> */
-MAP(0x41, 0x49, 0x653D) /* <CJK> */
-MAP(0x41, 0x4A, 0x6543) /* <CJK> */
-MAP(0x41, 0x4B, 0x6547) /* <CJK> */
-MAP(0x41, 0x4C, 0x6549) /* <CJK> */
-MAP(0x41, 0x4D, 0x6550) /* <CJK> */
-MAP(0x41, 0x4E, 0x6552) /* <CJK> */
-MAP(0x41, 0x4F, 0x6554) /* <CJK> */
-MAP(0x41, 0x50, 0x655F) /* <CJK> */
-MAP(0x41, 0x51, 0x6560) /* <CJK> */
-MAP(0x41, 0x52, 0x6567) /* <CJK> */
-MAP(0x41, 0x53, 0x656B) /* <CJK> */
-MAP(0x41, 0x54, 0x657A) /* <CJK> */
-MAP(0x41, 0x55, 0x657D) /* <CJK> */
-MAP(0x41, 0x56, 0x6581) /* <CJK> */
-MAP(0x41, 0x57, 0x6585) /* <CJK> */
-MAP(0x41, 0x58, 0x658A) /* <CJK> */
-MAP(0x41, 0x59, 0x6592) /* <CJK> */
-MAP(0x41, 0x5A, 0x6595) /* <CJK> */
-MAP(0x41, 0x5B, 0x6598) /* <CJK> */
-MAP(0x41, 0x5C, 0x659D) /* <CJK> */
-MAP(0x41, 0x5D, 0x65A0) /* <CJK> */
-MAP(0x41, 0x5E, 0x65A3) /* <CJK> */
-MAP(0x41, 0x5F, 0x65A6) /* <CJK> */
-MAP(0x41, 0x60, 0x65AE) /* <CJK> */
-MAP(0x41, 0x61, 0x65B2) /* <CJK> */
-MAP(0x41, 0x62, 0x65B3) /* <CJK> */
-MAP(0x41, 0x63, 0x65B4) /* <CJK> */
-MAP(0x41, 0x64, 0x65BF) /* <CJK> */
-MAP(0x41, 0x65, 0x65C2) /* <CJK> */
-MAP(0x41, 0x66, 0x65C8) /* <CJK> */
-MAP(0x41, 0x67, 0x65C9) /* <CJK> */
-MAP(0x41, 0x68, 0x65CE) /* <CJK> */
-MAP(0x41, 0x69, 0x65D0) /* <CJK> */
-MAP(0x41, 0x6A, 0x65D4) /* <CJK> */
-MAP(0x41, 0x6B, 0x65D6) /* <CJK> */
-MAP(0x41, 0x6C, 0x65D8) /* <CJK> */
-MAP(0x41, 0x6D, 0x65DF) /* <CJK> */
-MAP(0x41, 0x6E, 0x65F0) /* <CJK> */
-MAP(0x41, 0x6F, 0x65F2) /* <CJK> */
-MAP(0x41, 0x70, 0x65F4) /* <CJK> */
-MAP(0x41, 0x71, 0x65F5) /* <CJK> */
-MAP(0x41, 0x72, 0x65F9) /* <CJK> */
-MAP(0x41, 0x73, 0x65FE) /* <CJK> */
-MAP(0x41, 0x74, 0x65FF) /* <CJK> */
-MAP(0x41, 0x75, 0x6600) /* <CJK> */
-MAP(0x41, 0x76, 0x6604) /* <CJK> */
-MAP(0x41, 0x77, 0x6608) /* <CJK> */
-MAP(0x41, 0x78, 0x6609) /* <CJK> */
-MAP(0x41, 0x79, 0x660D) /* <CJK> */
-MAP(0x41, 0x7A, 0x6611) /* <CJK> */
-MAP(0x41, 0x7B, 0x6612) /* <CJK> */
-MAP(0x41, 0x7C, 0x6615) /* <CJK> */
-MAP(0x41, 0x7D, 0x6616) /* <CJK> */
-MAP(0x41, 0x7E, 0x661D) /* <CJK> */
-MAP(0x42, 0x21, 0x661E) /* <CJK> */
-MAP(0x42, 0x22, 0x6621) /* <CJK> */
-MAP(0x42, 0x23, 0x6622) /* <CJK> */
-MAP(0x42, 0x24, 0x6623) /* <CJK> */
-MAP(0x42, 0x25, 0x6624) /* <CJK> */
-MAP(0x42, 0x26, 0x6626) /* <CJK> */
-MAP(0x42, 0x27, 0x6629) /* <CJK> */
-MAP(0x42, 0x28, 0x662A) /* <CJK> */
-MAP(0x42, 0x29, 0x662B) /* <CJK> */
-MAP(0x42, 0x2A, 0x662C) /* <CJK> */
-MAP(0x42, 0x2B, 0x662E) /* <CJK> */
-MAP(0x42, 0x2C, 0x6630) /* <CJK> */
-MAP(0x42, 0x2D, 0x6631) /* <CJK> */
-MAP(0x42, 0x2E, 0x6633) /* <CJK> */
-MAP(0x42, 0x2F, 0x6639) /* <CJK> */
-MAP(0x42, 0x30, 0x6637) /* <CJK> */
-MAP(0x42, 0x31, 0x6640) /* <CJK> */
-MAP(0x42, 0x32, 0x6645) /* <CJK> */
-MAP(0x42, 0x33, 0x6646) /* <CJK> */
-MAP(0x42, 0x34, 0x664A) /* <CJK> */
-MAP(0x42, 0x35, 0x664C) /* <CJK> */
-MAP(0x42, 0x36, 0x6651) /* <CJK> */
-MAP(0x42, 0x37, 0x664E) /* <CJK> */
-MAP(0x42, 0x38, 0x6657) /* <CJK> */
-MAP(0x42, 0x39, 0x6658) /* <CJK> */
-MAP(0x42, 0x3A, 0x6659) /* <CJK> */
-MAP(0x42, 0x3B, 0x665B) /* <CJK> */
-MAP(0x42, 0x3C, 0x665C) /* <CJK> */
-MAP(0x42, 0x3D, 0x6660) /* <CJK> */
-MAP(0x42, 0x3E, 0x6661) /* <CJK> */
-MAP(0x42, 0x3F, 0x66FB) /* <CJK> */
-MAP(0x42, 0x40, 0x666A) /* <CJK> */
-MAP(0x42, 0x41, 0x666B) /* <CJK> */
-MAP(0x42, 0x42, 0x666C) /* <CJK> */
-MAP(0x42, 0x43, 0x667E) /* <CJK> */
-MAP(0x42, 0x44, 0x6673) /* <CJK> */
-MAP(0x42, 0x45, 0x6675) /* <CJK> */
-MAP(0x42, 0x46, 0x667F) /* <CJK> */
-MAP(0x42, 0x47, 0x6677) /* <CJK> */
-MAP(0x42, 0x48, 0x6678) /* <CJK> */
-MAP(0x42, 0x49, 0x6679) /* <CJK> */
-MAP(0x42, 0x4A, 0x667B) /* <CJK> */
-MAP(0x42, 0x4B, 0x6680) /* <CJK> */
-MAP(0x42, 0x4C, 0x667C) /* <CJK> */
-MAP(0x42, 0x4D, 0x668B) /* <CJK> */
-MAP(0x42, 0x4E, 0x668C) /* <CJK> */
-MAP(0x42, 0x4F, 0x668D) /* <CJK> */
-MAP(0x42, 0x50, 0x6690) /* <CJK> */
-MAP(0x42, 0x51, 0x6692) /* <CJK> */
-MAP(0x42, 0x52, 0x6699) /* <CJK> */
-MAP(0x42, 0x53, 0x669A) /* <CJK> */
-MAP(0x42, 0x54, 0x669B) /* <CJK> */
-MAP(0x42, 0x55, 0x669C) /* <CJK> */
-MAP(0x42, 0x56, 0x669F) /* <CJK> */
-MAP(0x42, 0x57, 0x66A0) /* <CJK> */
-MAP(0x42, 0x58, 0x66A4) /* <CJK> */
-MAP(0x42, 0x59, 0x66AD) /* <CJK> */
-MAP(0x42, 0x5A, 0x66B1) /* <CJK> */
-MAP(0x42, 0x5B, 0x66B2) /* <CJK> */
-MAP(0x42, 0x5C, 0x66B5) /* <CJK> */
-MAP(0x42, 0x5D, 0x66BB) /* <CJK> */
-MAP(0x42, 0x5E, 0x66BF) /* <CJK> */
-MAP(0x42, 0x5F, 0x66C0) /* <CJK> */
-MAP(0x42, 0x60, 0x66C2) /* <CJK> */
-MAP(0x42, 0x61, 0x66C3) /* <CJK> */
-MAP(0x42, 0x62, 0x66C8) /* <CJK> */
-MAP(0x42, 0x63, 0x66CC) /* <CJK> */
-MAP(0x42, 0x64, 0x66CE) /* <CJK> */
-MAP(0x42, 0x65, 0x66CF) /* <CJK> */
-MAP(0x42, 0x66, 0x66D4) /* <CJK> */
-MAP(0x42, 0x67, 0x66DB) /* <CJK> */
-MAP(0x42, 0x68, 0x66DF) /* <CJK> */
-MAP(0x42, 0x69, 0x66E8) /* <CJK> */
-MAP(0x42, 0x6A, 0x66EB) /* <CJK> */
-MAP(0x42, 0x6B, 0x66EC) /* <CJK> */
-MAP(0x42, 0x6C, 0x66EE) /* <CJK> */
-MAP(0x42, 0x6D, 0x66FA) /* <CJK> */
-MAP(0x42, 0x6E, 0x6705) /* <CJK> */
-MAP(0x42, 0x6F, 0x6707) /* <CJK> */
-MAP(0x42, 0x70, 0x670E) /* <CJK> */
-MAP(0x42, 0x71, 0x6713) /* <CJK> */
-MAP(0x42, 0x72, 0x6719) /* <CJK> */
-MAP(0x42, 0x73, 0x671C) /* <CJK> */
-MAP(0x42, 0x74, 0x6720) /* <CJK> */
-MAP(0x42, 0x75, 0x6722) /* <CJK> */
-MAP(0x42, 0x76, 0x6733) /* <CJK> */
-MAP(0x42, 0x77, 0x673E) /* <CJK> */
-MAP(0x42, 0x78, 0x6745) /* <CJK> */
-MAP(0x42, 0x79, 0x6747) /* <CJK> */
-MAP(0x42, 0x7A, 0x6748) /* <CJK> */
-MAP(0x42, 0x7B, 0x674C) /* <CJK> */
-MAP(0x42, 0x7C, 0x6754) /* <CJK> */
-MAP(0x42, 0x7D, 0x6755) /* <CJK> */
-MAP(0x42, 0x7E, 0x675D) /* <CJK> */
-MAP(0x43, 0x21, 0x6766) /* <CJK> */
-MAP(0x43, 0x22, 0x676C) /* <CJK> */
-MAP(0x43, 0x23, 0x676E) /* <CJK> */
-MAP(0x43, 0x24, 0x6774) /* <CJK> */
-MAP(0x43, 0x25, 0x6776) /* <CJK> */
-MAP(0x43, 0x26, 0x677B) /* <CJK> */
-MAP(0x43, 0x27, 0x6781) /* <CJK> */
-MAP(0x43, 0x28, 0x6784) /* <CJK> */
-MAP(0x43, 0x29, 0x678E) /* <CJK> */
-MAP(0x43, 0x2A, 0x678F) /* <CJK> */
-MAP(0x43, 0x2B, 0x6791) /* <CJK> */
-MAP(0x43, 0x2C, 0x6793) /* <CJK> */
-MAP(0x43, 0x2D, 0x6796) /* <CJK> */
-MAP(0x43, 0x2E, 0x6798) /* <CJK> */
-MAP(0x43, 0x2F, 0x6799) /* <CJK> */
-MAP(0x43, 0x30, 0x679B) /* <CJK> */
-MAP(0x43, 0x31, 0x67B0) /* <CJK> */
-MAP(0x43, 0x32, 0x67B1) /* <CJK> */
-MAP(0x43, 0x33, 0x67B2) /* <CJK> */
-MAP(0x43, 0x34, 0x67B5) /* <CJK> */
-MAP(0x43, 0x35, 0x67BB) /* <CJK> */
-MAP(0x43, 0x36, 0x67BC) /* <CJK> */
-MAP(0x43, 0x37, 0x67BD) /* <CJK> */
-MAP(0x43, 0x38, 0x67F9) /* <CJK> */
-MAP(0x43, 0x39, 0x67C0) /* <CJK> */
-MAP(0x43, 0x3A, 0x67C2) /* <CJK> */
-MAP(0x43, 0x3B, 0x67C3) /* <CJK> */
-MAP(0x43, 0x3C, 0x67C5) /* <CJK> */
-MAP(0x43, 0x3D, 0x67C8) /* <CJK> */
-MAP(0x43, 0x3E, 0x67C9) /* <CJK> */
-MAP(0x43, 0x3F, 0x67D2) /* <CJK> */
-MAP(0x43, 0x40, 0x67D7) /* <CJK> */
-MAP(0x43, 0x41, 0x67D9) /* <CJK> */
-MAP(0x43, 0x42, 0x67DC) /* <CJK> */
-MAP(0x43, 0x43, 0x67E1) /* <CJK> */
-MAP(0x43, 0x44, 0x67E6) /* <CJK> */
-MAP(0x43, 0x45, 0x67F0) /* <CJK> */
-MAP(0x43, 0x46, 0x67F2) /* <CJK> */
-MAP(0x43, 0x47, 0x67F6) /* <CJK> */
-MAP(0x43, 0x48, 0x67F7) /* <CJK> */
-MAP(0x43, 0x49, 0x6852) /* <CJK> */
-MAP(0x43, 0x4A, 0x6814) /* <CJK> */
-MAP(0x43, 0x4B, 0x6819) /* <CJK> */
-MAP(0x43, 0x4C, 0x681D) /* <CJK> */
-MAP(0x43, 0x4D, 0x681F) /* <CJK> */
-MAP(0x43, 0x4E, 0x6828) /* <CJK> */
-MAP(0x43, 0x4F, 0x6827) /* <CJK> */
-MAP(0x43, 0x50, 0x682C) /* <CJK> */
-MAP(0x43, 0x51, 0x682D) /* <CJK> */
-MAP(0x43, 0x52, 0x682F) /* <CJK> */
-MAP(0x43, 0x53, 0x6830) /* <CJK> */
-MAP(0x43, 0x54, 0x6831) /* <CJK> */
-MAP(0x43, 0x55, 0x6833) /* <CJK> */
-MAP(0x43, 0x56, 0x683B) /* <CJK> */
-MAP(0x43, 0x57, 0x683F) /* <CJK> */
-MAP(0x43, 0x58, 0x6844) /* <CJK> */
-MAP(0x43, 0x59, 0x6845) /* <CJK> */
-MAP(0x43, 0x5A, 0x684A) /* <CJK> */
-MAP(0x43, 0x5B, 0x684C) /* <CJK> */
-MAP(0x43, 0x5C, 0x6855) /* <CJK> */
-MAP(0x43, 0x5D, 0x6857) /* <CJK> */
-MAP(0x43, 0x5E, 0x6858) /* <CJK> */
-MAP(0x43, 0x5F, 0x685B) /* <CJK> */
-MAP(0x43, 0x60, 0x686B) /* <CJK> */
-MAP(0x43, 0x61, 0x686E) /* <CJK> */
-MAP(0x43, 0x62, 0x686F) /* <CJK> */
-MAP(0x43, 0x63, 0x6870) /* <CJK> */
-MAP(0x43, 0x64, 0x6871) /* <CJK> */
-MAP(0x43, 0x65, 0x6872) /* <CJK> */
-MAP(0x43, 0x66, 0x6875) /* <CJK> */
-MAP(0x43, 0x67, 0x6879) /* <CJK> */
-MAP(0x43, 0x68, 0x687A) /* <CJK> */
-MAP(0x43, 0x69, 0x687B) /* <CJK> */
-MAP(0x43, 0x6A, 0x687C) /* <CJK> */
-MAP(0x43, 0x6B, 0x6882) /* <CJK> */
-MAP(0x43, 0x6C, 0x6884) /* <CJK> */
-MAP(0x43, 0x6D, 0x6886) /* <CJK> */
-MAP(0x43, 0x6E, 0x6888) /* <CJK> */
-MAP(0x43, 0x6F, 0x6896) /* <CJK> */
-MAP(0x43, 0x70, 0x6898) /* <CJK> */
-MAP(0x43, 0x71, 0x689A) /* <CJK> */
-MAP(0x43, 0x72, 0x689C) /* <CJK> */
-MAP(0x43, 0x73, 0x68A1) /* <CJK> */
-MAP(0x43, 0x74, 0x68A3) /* <CJK> */
-MAP(0x43, 0x75, 0x68A5) /* <CJK> */
-MAP(0x43, 0x76, 0x68A9) /* <CJK> */
-MAP(0x43, 0x77, 0x68AA) /* <CJK> */
-MAP(0x43, 0x78, 0x68AE) /* <CJK> */
-MAP(0x43, 0x79, 0x68B2) /* <CJK> */
-MAP(0x43, 0x7A, 0x68BB) /* <CJK> */
-MAP(0x43, 0x7B, 0x68C5) /* <CJK> */
-MAP(0x43, 0x7C, 0x68C8) /* <CJK> */
-MAP(0x43, 0x7D, 0x68CC) /* <CJK> */
-MAP(0x43, 0x7E, 0x68CF) /* <CJK> */
-MAP(0x44, 0x21, 0x68D0) /* <CJK> */
-MAP(0x44, 0x22, 0x68D1) /* <CJK> */
-MAP(0x44, 0x23, 0x68D3) /* <CJK> */
-MAP(0x44, 0x24, 0x68D6) /* <CJK> */
-MAP(0x44, 0x25, 0x68D9) /* <CJK> */
-MAP(0x44, 0x26, 0x68DC) /* <CJK> */
-MAP(0x44, 0x27, 0x68DD) /* <CJK> */
-MAP(0x44, 0x28, 0x68E5) /* <CJK> */
-MAP(0x44, 0x29, 0x68E8) /* <CJK> */
-MAP(0x44, 0x2A, 0x68EA) /* <CJK> */
-MAP(0x44, 0x2B, 0x68EB) /* <CJK> */
-MAP(0x44, 0x2C, 0x68EC) /* <CJK> */
-MAP(0x44, 0x2D, 0x68ED) /* <CJK> */
-MAP(0x44, 0x2E, 0x68F0) /* <CJK> */
-MAP(0x44, 0x2F, 0x68F1) /* <CJK> */
-MAP(0x44, 0x30, 0x68F5) /* <CJK> */
-MAP(0x44, 0x31, 0x68F6) /* <CJK> */
-MAP(0x44, 0x32, 0x68FB) /* <CJK> */
-MAP(0x44, 0x33, 0x68FC) /* <CJK> */
-MAP(0x44, 0x34, 0x68FD) /* <CJK> */
-MAP(0x44, 0x35, 0x6906) /* <CJK> */
-MAP(0x44, 0x36, 0x6909) /* <CJK> */
-MAP(0x44, 0x37, 0x690A) /* <CJK> */
-MAP(0x44, 0x38, 0x6910) /* <CJK> */
-MAP(0x44, 0x39, 0x6911) /* <CJK> */
-MAP(0x44, 0x3A, 0x6913) /* <CJK> */
-MAP(0x44, 0x3B, 0x6916) /* <CJK> */
-MAP(0x44, 0x3C, 0x6917) /* <CJK> */
-MAP(0x44, 0x3D, 0x6931) /* <CJK> */
-MAP(0x44, 0x3E, 0x6933) /* <CJK> */
-MAP(0x44, 0x3F, 0x6935) /* <CJK> */
-MAP(0x44, 0x40, 0x6938) /* <CJK> */
-MAP(0x44, 0x41, 0x693B) /* <CJK> */
-MAP(0x44, 0x42, 0x6942) /* <CJK> */
-MAP(0x44, 0x43, 0x6945) /* <CJK> */
-MAP(0x44, 0x44, 0x6949) /* <CJK> */
-MAP(0x44, 0x45, 0x694E) /* <CJK> */
-MAP(0x44, 0x46, 0x6957) /* <CJK> */
-MAP(0x44, 0x47, 0x695B) /* <CJK> */
-MAP(0x44, 0x48, 0x6963) /* <CJK> */
-MAP(0x44, 0x49, 0x6964) /* <CJK> */
-MAP(0x44, 0x4A, 0x6965) /* <CJK> */
-MAP(0x44, 0x4B, 0x6966) /* <CJK> */
-MAP(0x44, 0x4C, 0x6968) /* <CJK> */
-MAP(0x44, 0x4D, 0x6969) /* <CJK> */
-MAP(0x44, 0x4E, 0x696C) /* <CJK> */
-MAP(0x44, 0x4F, 0x6970) /* <CJK> */
-MAP(0x44, 0x50, 0x6971) /* <CJK> */
-MAP(0x44, 0x51, 0x6972) /* <CJK> */
-MAP(0x44, 0x52, 0x697A) /* <CJK> */
-MAP(0x44, 0x53, 0x697B) /* <CJK> */
-MAP(0x44, 0x54, 0x697F) /* <CJK> */
-MAP(0x44, 0x55, 0x6980) /* <CJK> */
-MAP(0x44, 0x56, 0x698D) /* <CJK> */
-MAP(0x44, 0x57, 0x6992) /* <CJK> */
-MAP(0x44, 0x58, 0x6996) /* <CJK> */
-MAP(0x44, 0x59, 0x6998) /* <CJK> */
-MAP(0x44, 0x5A, 0x69A1) /* <CJK> */
-MAP(0x44, 0x5B, 0x69A5) /* <CJK> */
-MAP(0x44, 0x5C, 0x69A6) /* <CJK> */
-MAP(0x44, 0x5D, 0x69A8) /* <CJK> */
-MAP(0x44, 0x5E, 0x69AB) /* <CJK> */
-MAP(0x44, 0x5F, 0x69AD) /* <CJK> */
-MAP(0x44, 0x60, 0x69AF) /* <CJK> */
-MAP(0x44, 0x61, 0x69B7) /* <CJK> */
-MAP(0x44, 0x62, 0x69B8) /* <CJK> */
-MAP(0x44, 0x63, 0x69BA) /* <CJK> */
-MAP(0x44, 0x64, 0x69BC) /* <CJK> */
-MAP(0x44, 0x65, 0x69C5) /* <CJK> */
-MAP(0x44, 0x66, 0x69C8) /* <CJK> */
-MAP(0x44, 0x67, 0x69D1) /* <CJK> */
-MAP(0x44, 0x68, 0x69D6) /* <CJK> */
-MAP(0x44, 0x69, 0x69D7) /* <CJK> */
-MAP(0x44, 0x6A, 0x69E2) /* <CJK> */
-MAP(0x44, 0x6B, 0x69E5) /* <CJK> */
-MAP(0x44, 0x6C, 0x69EE) /* <CJK> */
-MAP(0x44, 0x6D, 0x69EF) /* <CJK> */
-MAP(0x44, 0x6E, 0x69F1) /* <CJK> */
-MAP(0x44, 0x6F, 0x69F3) /* <CJK> */
-MAP(0x44, 0x70, 0x69F5) /* <CJK> */
-MAP(0x44, 0x71, 0x69FE) /* <CJK> */
-MAP(0x44, 0x72, 0x6A00) /* <CJK> */
-MAP(0x44, 0x73, 0x6A01) /* <CJK> */
-MAP(0x44, 0x74, 0x6A03) /* <CJK> */
-MAP(0x44, 0x75, 0x6A0F) /* <CJK> */
-MAP(0x44, 0x76, 0x6A11) /* <CJK> */
-MAP(0x44, 0x77, 0x6A15) /* <CJK> */
-MAP(0x44, 0x78, 0x6A1A) /* <CJK> */
-MAP(0x44, 0x79, 0x6A1D) /* <CJK> */
-MAP(0x44, 0x7A, 0x6A20) /* <CJK> */
-MAP(0x44, 0x7B, 0x6A24) /* <CJK> */
-MAP(0x44, 0x7C, 0x6A28) /* <CJK> */
-MAP(0x44, 0x7D, 0x6A30) /* <CJK> */
-MAP(0x44, 0x7E, 0x6A32) /* <CJK> */
-MAP(0x45, 0x21, 0x6A34) /* <CJK> */
-MAP(0x45, 0x22, 0x6A37) /* <CJK> */
-MAP(0x45, 0x23, 0x6A3B) /* <CJK> */
-MAP(0x45, 0x24, 0x6A3E) /* <CJK> */
-MAP(0x45, 0x25, 0x6A3F) /* <CJK> */
-MAP(0x45, 0x26, 0x6A45) /* <CJK> */
-MAP(0x45, 0x27, 0x6A46) /* <CJK> */
-MAP(0x45, 0x28, 0x6A49) /* <CJK> */
-MAP(0x45, 0x29, 0x6A4A) /* <CJK> */
-MAP(0x45, 0x2A, 0x6A4E) /* <CJK> */
-MAP(0x45, 0x2B, 0x6A50) /* <CJK> */
-MAP(0x45, 0x2C, 0x6A51) /* <CJK> */
-MAP(0x45, 0x2D, 0x6A52) /* <CJK> */
-MAP(0x45, 0x2E, 0x6A55) /* <CJK> */
-MAP(0x45, 0x2F, 0x6A56) /* <CJK> */
-MAP(0x45, 0x30, 0x6A5B) /* <CJK> */
-MAP(0x45, 0x31, 0x6A64) /* <CJK> */
-MAP(0x45, 0x32, 0x6A67) /* <CJK> */
-MAP(0x45, 0x33, 0x6A6A) /* <CJK> */
-MAP(0x45, 0x34, 0x6A71) /* <CJK> */
-MAP(0x45, 0x35, 0x6A73) /* <CJK> */
-MAP(0x45, 0x36, 0x6A7E) /* <CJK> */
-MAP(0x45, 0x37, 0x6A81) /* <CJK> */
-MAP(0x45, 0x38, 0x6A83) /* <CJK> */
-MAP(0x45, 0x39, 0x6A86) /* <CJK> */
-MAP(0x45, 0x3A, 0x6A87) /* <CJK> */
-MAP(0x45, 0x3B, 0x6A89) /* <CJK> */
-MAP(0x45, 0x3C, 0x6A8B) /* <CJK> */
-MAP(0x45, 0x3D, 0x6A91) /* <CJK> */
-MAP(0x45, 0x3E, 0x6A9B) /* <CJK> */
-MAP(0x45, 0x3F, 0x6A9D) /* <CJK> */
-MAP(0x45, 0x40, 0x6A9E) /* <CJK> */
-MAP(0x45, 0x41, 0x6A9F) /* <CJK> */
-MAP(0x45, 0x42, 0x6AA5) /* <CJK> */
-MAP(0x45, 0x43, 0x6AAB) /* <CJK> */
-MAP(0x45, 0x44, 0x6AAF) /* <CJK> */
-MAP(0x45, 0x45, 0x6AB0) /* <CJK> */
-MAP(0x45, 0x46, 0x6AB1) /* <CJK> */
-MAP(0x45, 0x47, 0x6AB4) /* <CJK> */
-MAP(0x45, 0x48, 0x6ABD) /* <CJK> */
-MAP(0x45, 0x49, 0x6ABE) /* <CJK> */
-MAP(0x45, 0x4A, 0x6ABF) /* <CJK> */
-MAP(0x45, 0x4B, 0x6AC6) /* <CJK> */
-MAP(0x45, 0x4C, 0x6AC9) /* <CJK> */
-MAP(0x45, 0x4D, 0x6AC8) /* <CJK> */
-MAP(0x45, 0x4E, 0x6ACC) /* <CJK> */
-MAP(0x45, 0x4F, 0x6AD0) /* <CJK> */
-MAP(0x45, 0x50, 0x6AD4) /* <CJK> */
-MAP(0x45, 0x51, 0x6AD5) /* <CJK> */
-MAP(0x45, 0x52, 0x6AD6) /* <CJK> */
-MAP(0x45, 0x53, 0x6ADC) /* <CJK> */
-MAP(0x45, 0x54, 0x6ADD) /* <CJK> */
-MAP(0x45, 0x55, 0x6AE4) /* <CJK> */
-MAP(0x45, 0x56, 0x6AE7) /* <CJK> */
-MAP(0x45, 0x57, 0x6AEC) /* <CJK> */
-MAP(0x45, 0x58, 0x6AF0) /* <CJK> */
-MAP(0x45, 0x59, 0x6AF1) /* <CJK> */
-MAP(0x45, 0x5A, 0x6AF2) /* <CJK> */
-MAP(0x45, 0x5B, 0x6AFC) /* <CJK> */
-MAP(0x45, 0x5C, 0x6AFD) /* <CJK> */
-MAP(0x45, 0x5D, 0x6B02) /* <CJK> */
-MAP(0x45, 0x5E, 0x6B03) /* <CJK> */
-MAP(0x45, 0x5F, 0x6B06) /* <CJK> */
-MAP(0x45, 0x60, 0x6B07) /* <CJK> */
-MAP(0x45, 0x61, 0x6B09) /* <CJK> */
-MAP(0x45, 0x62, 0x6B0F) /* <CJK> */
-MAP(0x45, 0x63, 0x6B10) /* <CJK> */
-MAP(0x45, 0x64, 0x6B11) /* <CJK> */
-MAP(0x45, 0x65, 0x6B17) /* <CJK> */
-MAP(0x45, 0x66, 0x6B1B) /* <CJK> */
-MAP(0x45, 0x67, 0x6B1E) /* <CJK> */
-MAP(0x45, 0x68, 0x6B24) /* <CJK> */
-MAP(0x45, 0x69, 0x6B28) /* <CJK> */
-MAP(0x45, 0x6A, 0x6B2B) /* <CJK> */
-MAP(0x45, 0x6B, 0x6B2C) /* <CJK> */
-MAP(0x45, 0x6C, 0x6B2F) /* <CJK> */
-MAP(0x45, 0x6D, 0x6B35) /* <CJK> */
-MAP(0x45, 0x6E, 0x6B36) /* <CJK> */
-MAP(0x45, 0x6F, 0x6B3B) /* <CJK> */
-MAP(0x45, 0x70, 0x6B3F) /* <CJK> */
-MAP(0x45, 0x71, 0x6B46) /* <CJK> */
-MAP(0x45, 0x72, 0x6B4A) /* <CJK> */
-MAP(0x45, 0x73, 0x6B4D) /* <CJK> */
-MAP(0x45, 0x74, 0x6B52) /* <CJK> */
-MAP(0x45, 0x75, 0x6B56) /* <CJK> */
-MAP(0x45, 0x76, 0x6B58) /* <CJK> */
-MAP(0x45, 0x77, 0x6B5D) /* <CJK> */
-MAP(0x45, 0x78, 0x6B60) /* <CJK> */
-MAP(0x45, 0x79, 0x6B67) /* <CJK> */
-MAP(0x45, 0x7A, 0x6B6B) /* <CJK> */
-MAP(0x45, 0x7B, 0x6B6E) /* <CJK> */
-MAP(0x45, 0x7C, 0x6B70) /* <CJK> */
-MAP(0x45, 0x7D, 0x6B75) /* <CJK> */
-MAP(0x45, 0x7E, 0x6B7D) /* <CJK> */
-MAP(0x46, 0x21, 0x6B7E) /* <CJK> */
-MAP(0x46, 0x22, 0x6B82) /* <CJK> */
-MAP(0x46, 0x23, 0x6B85) /* <CJK> */
-MAP(0x46, 0x24, 0x6B97) /* <CJK> */
-MAP(0x46, 0x25, 0x6B9B) /* <CJK> */
-MAP(0x46, 0x26, 0x6B9F) /* <CJK> */
-MAP(0x46, 0x27, 0x6BA0) /* <CJK> */
-MAP(0x46, 0x28, 0x6BA2) /* <CJK> */
-MAP(0x46, 0x29, 0x6BA3) /* <CJK> */
-MAP(0x46, 0x2A, 0x6BA8) /* <CJK> */
-MAP(0x46, 0x2B, 0x6BA9) /* <CJK> */
-MAP(0x46, 0x2C, 0x6BAC) /* <CJK> */
-MAP(0x46, 0x2D, 0x6BAD) /* <CJK> */
-MAP(0x46, 0x2E, 0x6BAE) /* <CJK> */
-MAP(0x46, 0x2F, 0x6BB0) /* <CJK> */
-MAP(0x46, 0x30, 0x6BB8) /* <CJK> */
-MAP(0x46, 0x31, 0x6BB9) /* <CJK> */
-MAP(0x46, 0x32, 0x6BBD) /* <CJK> */
-MAP(0x46, 0x33, 0x6BBE) /* <CJK> */
-MAP(0x46, 0x34, 0x6BC3) /* <CJK> */
-MAP(0x46, 0x35, 0x6BC4) /* <CJK> */
-MAP(0x46, 0x36, 0x6BC9) /* <CJK> */
-MAP(0x46, 0x37, 0x6BCC) /* <CJK> */
-MAP(0x46, 0x38, 0x6BD6) /* <CJK> */
-MAP(0x46, 0x39, 0x6BDA) /* <CJK> */
-MAP(0x46, 0x3A, 0x6BE1) /* <CJK> */
-MAP(0x46, 0x3B, 0x6BE3) /* <CJK> */
-MAP(0x46, 0x3C, 0x6BE6) /* <CJK> */
-MAP(0x46, 0x3D, 0x6BE7) /* <CJK> */
-MAP(0x46, 0x3E, 0x6BEE) /* <CJK> */
-MAP(0x46, 0x3F, 0x6BF1) /* <CJK> */
-MAP(0x46, 0x40, 0x6BF7) /* <CJK> */
-MAP(0x46, 0x41, 0x6BF9) /* <CJK> */
-MAP(0x46, 0x42, 0x6BFF) /* <CJK> */
-MAP(0x46, 0x43, 0x6C02) /* <CJK> */
-MAP(0x46, 0x44, 0x6C04) /* <CJK> */
-MAP(0x46, 0x45, 0x6C05) /* <CJK> */
-MAP(0x46, 0x46, 0x6C09) /* <CJK> */
-MAP(0x46, 0x47, 0x6C0D) /* <CJK> */
-MAP(0x46, 0x48, 0x6C0E) /* <CJK> */
-MAP(0x46, 0x49, 0x6C10) /* <CJK> */
-MAP(0x46, 0x4A, 0x6C12) /* <CJK> */
-MAP(0x46, 0x4B, 0x6C19) /* <CJK> */
-MAP(0x46, 0x4C, 0x6C1F) /* <CJK> */
-MAP(0x46, 0x4D, 0x6C26) /* <CJK> */
-MAP(0x46, 0x4E, 0x6C27) /* <CJK> */
-MAP(0x46, 0x4F, 0x6C28) /* <CJK> */
-MAP(0x46, 0x50, 0x6C2C) /* <CJK> */
-MAP(0x46, 0x51, 0x6C2E) /* <CJK> */
-MAP(0x46, 0x52, 0x6C33) /* <CJK> */
-MAP(0x46, 0x53, 0x6C35) /* <CJK> */
-MAP(0x46, 0x54, 0x6C36) /* <CJK> */
-MAP(0x46, 0x55, 0x6C3A) /* <CJK> */
-MAP(0x46, 0x56, 0x6C3B) /* <CJK> */
-MAP(0x46, 0x57, 0x6C3F) /* <CJK> */
-MAP(0x46, 0x58, 0x6C4A) /* <CJK> */
-MAP(0x46, 0x59, 0x6C4B) /* <CJK> */
-MAP(0x46, 0x5A, 0x6C4D) /* <CJK> */
-MAP(0x46, 0x5B, 0x6C4F) /* <CJK> */
-MAP(0x46, 0x5C, 0x6C52) /* <CJK> */
-MAP(0x46, 0x5D, 0x6C54) /* <CJK> */
-MAP(0x46, 0x5E, 0x6C59) /* <CJK> */
-MAP(0x46, 0x5F, 0x6C5B) /* <CJK> */
-MAP(0x46, 0x60, 0x6C5C) /* <CJK> */
-MAP(0x46, 0x61, 0x6C6B) /* <CJK> */
-MAP(0x46, 0x62, 0x6C6D) /* <CJK> */
-MAP(0x46, 0x63, 0x6C6F) /* <CJK> */
-MAP(0x46, 0x64, 0x6C74) /* <CJK> */
-MAP(0x46, 0x65, 0x6C76) /* <CJK> */
-MAP(0x46, 0x66, 0x6C78) /* <CJK> */
-MAP(0x46, 0x67, 0x6C79) /* <CJK> */
-MAP(0x46, 0x68, 0x6C7B) /* <CJK> */
-MAP(0x46, 0x69, 0x6C85) /* <CJK> */
-MAP(0x46, 0x6A, 0x6C86) /* <CJK> */
-MAP(0x46, 0x6B, 0x6C87) /* <CJK> */
-MAP(0x46, 0x6C, 0x6C89) /* <CJK> */
-MAP(0x46, 0x6D, 0x6C94) /* <CJK> */
-MAP(0x46, 0x6E, 0x6C95) /* <CJK> */
-MAP(0x46, 0x6F, 0x6C97) /* <CJK> */
-MAP(0x46, 0x70, 0x6C98) /* <CJK> */
-MAP(0x46, 0x71, 0x6C9C) /* <CJK> */
-MAP(0x46, 0x72, 0x6C9F) /* <CJK> */
-MAP(0x46, 0x73, 0x6CB0) /* <CJK> */
-MAP(0x46, 0x74, 0x6CB2) /* <CJK> */
-MAP(0x46, 0x75, 0x6CB4) /* <CJK> */
-MAP(0x46, 0x76, 0x6CC2) /* <CJK> */
-MAP(0x46, 0x77, 0x6CC6) /* <CJK> */
-MAP(0x46, 0x78, 0x6CCD) /* <CJK> */
-MAP(0x46, 0x79, 0x6CCF) /* <CJK> */
-MAP(0x46, 0x7A, 0x6CD0) /* <CJK> */
-MAP(0x46, 0x7B, 0x6CD1) /* <CJK> */
-MAP(0x46, 0x7C, 0x6CD2) /* <CJK> */
-MAP(0x46, 0x7D, 0x6CD4) /* <CJK> */
-MAP(0x46, 0x7E, 0x6CD6) /* <CJK> */
-MAP(0x47, 0x21, 0x6CDA) /* <CJK> */
-MAP(0x47, 0x22, 0x6CDC) /* <CJK> */
-MAP(0x47, 0x23, 0x6CE0) /* <CJK> */
-MAP(0x47, 0x24, 0x6CE7) /* <CJK> */
-MAP(0x47, 0x25, 0x6CE9) /* <CJK> */
-MAP(0x47, 0x26, 0x6CEB) /* <CJK> */
-MAP(0x47, 0x27, 0x6CEC) /* <CJK> */
-MAP(0x47, 0x28, 0x6CEE) /* <CJK> */
-MAP(0x47, 0x29, 0x6CF2) /* <CJK> */
-MAP(0x47, 0x2A, 0x6CF4) /* <CJK> */
-MAP(0x47, 0x2B, 0x6D04) /* <CJK> */
-MAP(0x47, 0x2C, 0x6D07) /* <CJK> */
-MAP(0x47, 0x2D, 0x6D0A) /* <CJK> */
-MAP(0x47, 0x2E, 0x6D0E) /* <CJK> */
-MAP(0x47, 0x2F, 0x6D0F) /* <CJK> */
-MAP(0x47, 0x30, 0x6D11) /* <CJK> */
-MAP(0x47, 0x31, 0x6D13) /* <CJK> */
-MAP(0x47, 0x32, 0x6D1A) /* <CJK> */
-MAP(0x47, 0x33, 0x6D26) /* <CJK> */
-MAP(0x47, 0x34, 0x6D27) /* <CJK> */
-MAP(0x47, 0x35, 0x6D28) /* <CJK> */
-MAP(0x47, 0x36, 0x6C67) /* <CJK> */
-MAP(0x47, 0x37, 0x6D2E) /* <CJK> */
-MAP(0x47, 0x38, 0x6D2F) /* <CJK> */
-MAP(0x47, 0x39, 0x6D31) /* <CJK> */
-MAP(0x47, 0x3A, 0x6D39) /* <CJK> */
-MAP(0x47, 0x3B, 0x6D3C) /* <CJK> */
-MAP(0x47, 0x3C, 0x6D3F) /* <CJK> */
-MAP(0x47, 0x3D, 0x6D57) /* <CJK> */
-MAP(0x47, 0x3E, 0x6D5E) /* <CJK> */
-MAP(0x47, 0x3F, 0x6D5F) /* <CJK> */
-MAP(0x47, 0x40, 0x6D61) /* <CJK> */
-MAP(0x47, 0x41, 0x6D65) /* <CJK> */
-MAP(0x47, 0x42, 0x6D67) /* <CJK> */
-MAP(0x47, 0x43, 0x6D6F) /* <CJK> */
-MAP(0x47, 0x44, 0x6D70) /* <CJK> */
-MAP(0x47, 0x45, 0x6D7C) /* <CJK> */
-MAP(0x47, 0x46, 0x6D82) /* <CJK> */
-MAP(0x47, 0x47, 0x6D87) /* <CJK> */
-MAP(0x47, 0x48, 0x6D91) /* <CJK> */
-MAP(0x47, 0x49, 0x6D92) /* <CJK> */
-MAP(0x47, 0x4A, 0x6D94) /* <CJK> */
-MAP(0x47, 0x4B, 0x6D96) /* <CJK> */
-MAP(0x47, 0x4C, 0x6D97) /* <CJK> */
-MAP(0x47, 0x4D, 0x6D98) /* <CJK> */
-MAP(0x47, 0x4E, 0x6DAA) /* <CJK> */
-MAP(0x47, 0x4F, 0x6DAC) /* <CJK> */
-MAP(0x47, 0x50, 0x6DB4) /* <CJK> */
-MAP(0x47, 0x51, 0x6DB7) /* <CJK> */
-MAP(0x47, 0x52, 0x6DB9) /* <CJK> */
-MAP(0x47, 0x53, 0x6DBD) /* <CJK> */
-MAP(0x47, 0x54, 0x6DBF) /* <CJK> */
-MAP(0x47, 0x55, 0x6DC4) /* <CJK> */
-MAP(0x47, 0x56, 0x6DC8) /* <CJK> */
-MAP(0x47, 0x57, 0x6DCA) /* <CJK> */
-MAP(0x47, 0x58, 0x6DCE) /* <CJK> */
-MAP(0x47, 0x59, 0x6DCF) /* <CJK> */
-MAP(0x47, 0x5A, 0x6DD6) /* <CJK> */
-MAP(0x47, 0x5B, 0x6DDB) /* <CJK> */
-MAP(0x47, 0x5C, 0x6DDD) /* <CJK> */
-MAP(0x47, 0x5D, 0x6DDF) /* <CJK> */
-MAP(0x47, 0x5E, 0x6DE0) /* <CJK> */
-MAP(0x47, 0x5F, 0x6DE2) /* <CJK> */
-MAP(0x47, 0x60, 0x6DE5) /* <CJK> */
-MAP(0x47, 0x61, 0x6DE9) /* <CJK> */
-MAP(0x47, 0x62, 0x6DEF) /* <CJK> */
-MAP(0x47, 0x63, 0x6DF0) /* <CJK> */
-MAP(0x47, 0x64, 0x6DF4) /* <CJK> */
-MAP(0x47, 0x65, 0x6DF6) /* <CJK> */
-MAP(0x47, 0x66, 0x6DFC) /* <CJK> */
-MAP(0x47, 0x67, 0x6E00) /* <CJK> */
-MAP(0x47, 0x68, 0x6E04) /* <CJK> */
-MAP(0x47, 0x69, 0x6E1E) /* <CJK> */
-MAP(0x47, 0x6A, 0x6E22) /* <CJK> */
-MAP(0x47, 0x6B, 0x6E27) /* <CJK> */
-MAP(0x47, 0x6C, 0x6E32) /* <CJK> */
-MAP(0x47, 0x6D, 0x6E36) /* <CJK> */
-MAP(0x47, 0x6E, 0x6E39) /* <CJK> */
-MAP(0x47, 0x6F, 0x6E3B) /* <CJK> */
-MAP(0x47, 0x70, 0x6E3C) /* <CJK> */
-MAP(0x47, 0x71, 0x6E44) /* <CJK> */
-MAP(0x47, 0x72, 0x6E45) /* <CJK> */
-MAP(0x47, 0x73, 0x6E48) /* <CJK> */
-MAP(0x47, 0x74, 0x6E49) /* <CJK> */
-MAP(0x47, 0x75, 0x6E4B) /* <CJK> */
-MAP(0x47, 0x76, 0x6E4F) /* <CJK> */
-MAP(0x47, 0x77, 0x6E51) /* <CJK> */
-MAP(0x47, 0x78, 0x6E52) /* <CJK> */
-MAP(0x47, 0x79, 0x6E53) /* <CJK> */
-MAP(0x47, 0x7A, 0x6E54) /* <CJK> */
-MAP(0x47, 0x7B, 0x6E57) /* <CJK> */
-MAP(0x47, 0x7C, 0x6E5C) /* <CJK> */
-MAP(0x47, 0x7D, 0x6E5D) /* <CJK> */
-MAP(0x47, 0x7E, 0x6E5E) /* <CJK> */
-MAP(0x48, 0x21, 0x6E62) /* <CJK> */
-MAP(0x48, 0x22, 0x6E63) /* <CJK> */
-MAP(0x48, 0x23, 0x6E68) /* <CJK> */
-MAP(0x48, 0x24, 0x6E73) /* <CJK> */
-MAP(0x48, 0x25, 0x6E7B) /* <CJK> */
-MAP(0x48, 0x26, 0x6E7D) /* <CJK> */
-MAP(0x48, 0x27, 0x6E8D) /* <CJK> */
-MAP(0x48, 0x28, 0x6E93) /* <CJK> */
-MAP(0x48, 0x29, 0x6E99) /* <CJK> */
-MAP(0x48, 0x2A, 0x6EA0) /* <CJK> */
-MAP(0x48, 0x2B, 0x6EA7) /* <CJK> */
-MAP(0x48, 0x2C, 0x6EAD) /* <CJK> */
-MAP(0x48, 0x2D, 0x6EAE) /* <CJK> */
-MAP(0x48, 0x2E, 0x6EB1) /* <CJK> */
-MAP(0x48, 0x2F, 0x6EB3) /* <CJK> */
-MAP(0x48, 0x30, 0x6EBB) /* <CJK> */
-MAP(0x48, 0x31, 0x6EBF) /* <CJK> */
-MAP(0x48, 0x32, 0x6EC0) /* <CJK> */
-MAP(0x48, 0x33, 0x6EC1) /* <CJK> */
-MAP(0x48, 0x34, 0x6EC3) /* <CJK> */
-MAP(0x48, 0x35, 0x6EC7) /* <CJK> */
-MAP(0x48, 0x36, 0x6EC8) /* <CJK> */
-MAP(0x48, 0x37, 0x6ECA) /* <CJK> */
-MAP(0x48, 0x38, 0x6ECD) /* <CJK> */
-MAP(0x48, 0x39, 0x6ECE) /* <CJK> */
-MAP(0x48, 0x3A, 0x6ECF) /* <CJK> */
-MAP(0x48, 0x3B, 0x6EEB) /* <CJK> */
-MAP(0x48, 0x3C, 0x6EED) /* <CJK> */
-MAP(0x48, 0x3D, 0x6EEE) /* <CJK> */
-MAP(0x48, 0x3E, 0x6EF9) /* <CJK> */
-MAP(0x48, 0x3F, 0x6EFB) /* <CJK> */
-MAP(0x48, 0x40, 0x6EFD) /* <CJK> */
-MAP(0x48, 0x41, 0x6F04) /* <CJK> */
-MAP(0x48, 0x42, 0x6F08) /* <CJK> */
-MAP(0x48, 0x43, 0x6F0A) /* <CJK> */
-MAP(0x48, 0x44, 0x6F0C) /* <CJK> */
-MAP(0x48, 0x45, 0x6F0D) /* <CJK> */
-MAP(0x48, 0x46, 0x6F16) /* <CJK> */
-MAP(0x48, 0x47, 0x6F18) /* <CJK> */
-MAP(0x48, 0x48, 0x6F1A) /* <CJK> */
-MAP(0x48, 0x49, 0x6F1B) /* <CJK> */
-MAP(0x48, 0x4A, 0x6F26) /* <CJK> */
-MAP(0x48, 0x4B, 0x6F29) /* <CJK> */
-MAP(0x48, 0x4C, 0x6F2A) /* <CJK> */
-MAP(0x48, 0x4D, 0x6F2F) /* <CJK> */
-MAP(0x48, 0x4E, 0x6F30) /* <CJK> */
-MAP(0x48, 0x4F, 0x6F33) /* <CJK> */
-MAP(0x48, 0x50, 0x6F36) /* <CJK> */
-MAP(0x48, 0x51, 0x6F3B) /* <CJK> */
-MAP(0x48, 0x52, 0x6F3C) /* <CJK> */
-MAP(0x48, 0x53, 0x6F2D) /* <CJK> */
-MAP(0x48, 0x54, 0x6F4F) /* <CJK> */
-MAP(0x48, 0x55, 0x6F51) /* <CJK> */
-MAP(0x48, 0x56, 0x6F52) /* <CJK> */
-MAP(0x48, 0x57, 0x6F53) /* <CJK> */
-MAP(0x48, 0x58, 0x6F57) /* <CJK> */
-MAP(0x48, 0x59, 0x6F59) /* <CJK> */
-MAP(0x48, 0x5A, 0x6F5A) /* <CJK> */
-MAP(0x48, 0x5B, 0x6F5D) /* <CJK> */
-MAP(0x48, 0x5C, 0x6F5E) /* <CJK> */
-MAP(0x48, 0x5D, 0x6F61) /* <CJK> */
-MAP(0x48, 0x5E, 0x6F62) /* <CJK> */
-MAP(0x48, 0x5F, 0x6F68) /* <CJK> */
-MAP(0x48, 0x60, 0x6F6C) /* <CJK> */
-MAP(0x48, 0x61, 0x6F7D) /* <CJK> */
-MAP(0x48, 0x62, 0x6F7E) /* <CJK> */
-MAP(0x48, 0x63, 0x6F83) /* <CJK> */
-MAP(0x48, 0x64, 0x6F87) /* <CJK> */
-MAP(0x48, 0x65, 0x6F88) /* <CJK> */
-MAP(0x48, 0x66, 0x6F8B) /* <CJK> */
-MAP(0x48, 0x67, 0x6F8C) /* <CJK> */
-MAP(0x48, 0x68, 0x6F8D) /* <CJK> */
-MAP(0x48, 0x69, 0x6F90) /* <CJK> */
-MAP(0x48, 0x6A, 0x6F92) /* <CJK> */
-MAP(0x48, 0x6B, 0x6F93) /* <CJK> */
-MAP(0x48, 0x6C, 0x6F94) /* <CJK> */
-MAP(0x48, 0x6D, 0x6F96) /* <CJK> */
-MAP(0x48, 0x6E, 0x6F9A) /* <CJK> */
-MAP(0x48, 0x6F, 0x6F9F) /* <CJK> */
-MAP(0x48, 0x70, 0x6FA0) /* <CJK> */
-MAP(0x48, 0x71, 0x6FA5) /* <CJK> */
-MAP(0x48, 0x72, 0x6FA6) /* <CJK> */
-MAP(0x48, 0x73, 0x6FA7) /* <CJK> */
-MAP(0x48, 0x74, 0x6FA8) /* <CJK> */
-MAP(0x48, 0x75, 0x6FAE) /* <CJK> */
-MAP(0x48, 0x76, 0x6FAF) /* <CJK> */
-MAP(0x48, 0x77, 0x6FB0) /* <CJK> */
-MAP(0x48, 0x78, 0x6FB5) /* <CJK> */
-MAP(0x48, 0x79, 0x6FB6) /* <CJK> */
-MAP(0x48, 0x7A, 0x6FBC) /* <CJK> */
-MAP(0x48, 0x7B, 0x6FC5) /* <CJK> */
-MAP(0x48, 0x7C, 0x6FC7) /* <CJK> */
-MAP(0x48, 0x7D, 0x6FC8) /* <CJK> */
-MAP(0x48, 0x7E, 0x6FCA) /* <CJK> */
-MAP(0x49, 0x21, 0x6FDA) /* <CJK> */
-MAP(0x49, 0x22, 0x6FDE) /* <CJK> */
-MAP(0x49, 0x23, 0x6FE8) /* <CJK> */
-MAP(0x49, 0x24, 0x6FE9) /* <CJK> */
-MAP(0x49, 0x25, 0x6FF0) /* <CJK> */
-MAP(0x49, 0x26, 0x6FF5) /* <CJK> */
-MAP(0x49, 0x27, 0x6FF9) /* <CJK> */
-MAP(0x49, 0x28, 0x6FFC) /* <CJK> */
-MAP(0x49, 0x29, 0x6FFD) /* <CJK> */
-MAP(0x49, 0x2A, 0x7000) /* <CJK> */
-MAP(0x49, 0x2B, 0x7005) /* <CJK> */
-MAP(0x49, 0x2C, 0x7006) /* <CJK> */
-MAP(0x49, 0x2D, 0x7007) /* <CJK> */
-MAP(0x49, 0x2E, 0x700D) /* <CJK> */
-MAP(0x49, 0x2F, 0x7017) /* <CJK> */
-MAP(0x49, 0x30, 0x7020) /* <CJK> */
-MAP(0x49, 0x31, 0x7023) /* <CJK> */
-MAP(0x49, 0x32, 0x702F) /* <CJK> */
-MAP(0x49, 0x33, 0x7034) /* <CJK> */
-MAP(0x49, 0x34, 0x7037) /* <CJK> */
-MAP(0x49, 0x35, 0x7039) /* <CJK> */
-MAP(0x49, 0x36, 0x703C) /* <CJK> */
-MAP(0x49, 0x37, 0x7043) /* <CJK> */
-MAP(0x49, 0x38, 0x7044) /* <CJK> */
-MAP(0x49, 0x39, 0x7048) /* <CJK> */
-MAP(0x49, 0x3A, 0x7049) /* <CJK> */
-MAP(0x49, 0x3B, 0x704A) /* <CJK> */
-MAP(0x49, 0x3C, 0x704B) /* <CJK> */
-MAP(0x49, 0x3D, 0x7054) /* <CJK> */
-MAP(0x49, 0x3E, 0x7055) /* <CJK> */
-MAP(0x49, 0x3F, 0x705D) /* <CJK> */
-MAP(0x49, 0x40, 0x705E) /* <CJK> */
-MAP(0x49, 0x41, 0x704E) /* <CJK> */
-MAP(0x49, 0x42, 0x7064) /* <CJK> */
-MAP(0x49, 0x43, 0x7065) /* <CJK> */
-MAP(0x49, 0x44, 0x706C) /* <CJK> */
-MAP(0x49, 0x45, 0x706E) /* <CJK> */
-MAP(0x49, 0x46, 0x7075) /* <CJK> */
-MAP(0x49, 0x47, 0x7076) /* <CJK> */
-MAP(0x49, 0x48, 0x707E) /* <CJK> */
-MAP(0x49, 0x49, 0x7081) /* <CJK> */
-MAP(0x49, 0x4A, 0x7085) /* <CJK> */
-MAP(0x49, 0x4B, 0x7086) /* <CJK> */
-MAP(0x49, 0x4C, 0x7094) /* <CJK> */
-MAP(0x49, 0x4D, 0x7095) /* <CJK> */
-MAP(0x49, 0x4E, 0x7096) /* <CJK> */
-MAP(0x49, 0x4F, 0x7097) /* <CJK> */
-MAP(0x49, 0x50, 0x7098) /* <CJK> */
-MAP(0x49, 0x51, 0x709B) /* <CJK> */
-MAP(0x49, 0x52, 0x70A4) /* <CJK> */
-MAP(0x49, 0x53, 0x70AB) /* <CJK> */
-MAP(0x49, 0x54, 0x70B0) /* <CJK> */
-MAP(0x49, 0x55, 0x70B1) /* <CJK> */
-MAP(0x49, 0x56, 0x70B4) /* <CJK> */
-MAP(0x49, 0x57, 0x70B7) /* <CJK> */
-MAP(0x49, 0x58, 0x70CA) /* <CJK> */
-MAP(0x49, 0x59, 0x70D1) /* <CJK> */
-MAP(0x49, 0x5A, 0x70D3) /* <CJK> */
-MAP(0x49, 0x5B, 0x70D4) /* <CJK> */
-MAP(0x49, 0x5C, 0x70D5) /* <CJK> */
-MAP(0x49, 0x5D, 0x70D6) /* <CJK> */
-MAP(0x49, 0x5E, 0x70D8) /* <CJK> */
-MAP(0x49, 0x5F, 0x70DC) /* <CJK> */
-MAP(0x49, 0x60, 0x70E4) /* <CJK> */
-MAP(0x49, 0x61, 0x70FA) /* <CJK> */
-MAP(0x49, 0x62, 0x7103) /* <CJK> */
-MAP(0x49, 0x63, 0x7104) /* <CJK> */
-MAP(0x49, 0x64, 0x7105) /* <CJK> */
-MAP(0x49, 0x65, 0x7106) /* <CJK> */
-MAP(0x49, 0x66, 0x7107) /* <CJK> */
-MAP(0x49, 0x67, 0x710B) /* <CJK> */
-MAP(0x49, 0x68, 0x710C) /* <CJK> */
-MAP(0x49, 0x69, 0x710F) /* <CJK> */
-MAP(0x49, 0x6A, 0x711E) /* <CJK> */
-MAP(0x49, 0x6B, 0x7120) /* <CJK> */
-MAP(0x49, 0x6C, 0x712B) /* <CJK> */
-MAP(0x49, 0x6D, 0x712D) /* <CJK> */
-MAP(0x49, 0x6E, 0x712F) /* <CJK> */
-MAP(0x49, 0x6F, 0x7130) /* <CJK> */
-MAP(0x49, 0x70, 0x7131) /* <CJK> */
-MAP(0x49, 0x71, 0x7138) /* <CJK> */
-MAP(0x49, 0x72, 0x7141) /* <CJK> */
-MAP(0x49, 0x73, 0x7145) /* <CJK> */
-MAP(0x49, 0x74, 0x7146) /* <CJK> */
-MAP(0x49, 0x75, 0x7147) /* <CJK> */
-MAP(0x49, 0x76, 0x714A) /* <CJK> */
-MAP(0x49, 0x77, 0x714B) /* <CJK> */
-MAP(0x49, 0x78, 0x7150) /* <CJK> */
-MAP(0x49, 0x79, 0x7152) /* <CJK> */
-MAP(0x49, 0x7A, 0x7157) /* <CJK> */
-MAP(0x49, 0x7B, 0x715A) /* <CJK> */
-MAP(0x49, 0x7C, 0x715C) /* <CJK> */
-MAP(0x49, 0x7D, 0x715E) /* <CJK> */
-MAP(0x49, 0x7E, 0x7160) /* <CJK> */
-MAP(0x4A, 0x21, 0x7168) /* <CJK> */
-MAP(0x4A, 0x22, 0x7179) /* <CJK> */
-MAP(0x4A, 0x23, 0x7180) /* <CJK> */
-MAP(0x4A, 0x24, 0x7185) /* <CJK> */
-MAP(0x4A, 0x25, 0x7187) /* <CJK> */
-MAP(0x4A, 0x26, 0x718C) /* <CJK> */
-MAP(0x4A, 0x27, 0x7192) /* <CJK> */
-MAP(0x4A, 0x28, 0x719A) /* <CJK> */
-MAP(0x4A, 0x29, 0x719B) /* <CJK> */
-MAP(0x4A, 0x2A, 0x71A0) /* <CJK> */
-MAP(0x4A, 0x2B, 0x71A2) /* <CJK> */
-MAP(0x4A, 0x2C, 0x71AF) /* <CJK> */
-MAP(0x4A, 0x2D, 0x71B0) /* <CJK> */
-MAP(0x4A, 0x2E, 0x71B2) /* <CJK> */
-MAP(0x4A, 0x2F, 0x71B3) /* <CJK> */
-MAP(0x4A, 0x30, 0x71BA) /* <CJK> */
-MAP(0x4A, 0x31, 0x71BF) /* <CJK> */
-MAP(0x4A, 0x32, 0x71C0) /* <CJK> */
-MAP(0x4A, 0x33, 0x71C1) /* <CJK> */
-MAP(0x4A, 0x34, 0x71C4) /* <CJK> */
-MAP(0x4A, 0x35, 0x71CB) /* <CJK> */
-MAP(0x4A, 0x36, 0x71CC) /* <CJK> */
-MAP(0x4A, 0x37, 0x71D3) /* <CJK> */
-MAP(0x4A, 0x38, 0x71D6) /* <CJK> */
-MAP(0x4A, 0x39, 0x71D9) /* <CJK> */
-MAP(0x4A, 0x3A, 0x71DA) /* <CJK> */
-MAP(0x4A, 0x3B, 0x71DC) /* <CJK> */
-MAP(0x4A, 0x3C, 0x71F8) /* <CJK> */
-MAP(0x4A, 0x3D, 0x71FE) /* <CJK> */
-MAP(0x4A, 0x3E, 0x7200) /* <CJK> */
-MAP(0x4A, 0x3F, 0x7207) /* <CJK> */
-MAP(0x4A, 0x40, 0x7208) /* <CJK> */
-MAP(0x4A, 0x41, 0x7209) /* <CJK> */
-MAP(0x4A, 0x42, 0x7213) /* <CJK> */
-MAP(0x4A, 0x43, 0x7217) /* <CJK> */
-MAP(0x4A, 0x44, 0x721A) /* <CJK> */
-MAP(0x4A, 0x45, 0x721D) /* <CJK> */
-MAP(0x4A, 0x46, 0x721F) /* <CJK> */
-MAP(0x4A, 0x47, 0x7224) /* <CJK> */
-MAP(0x4A, 0x48, 0x722B) /* <CJK> */
-MAP(0x4A, 0x49, 0x722F) /* <CJK> */
-MAP(0x4A, 0x4A, 0x7234) /* <CJK> */
-MAP(0x4A, 0x4B, 0x7238) /* <CJK> */
-MAP(0x4A, 0x4C, 0x7239) /* <CJK> */
-MAP(0x4A, 0x4D, 0x7241) /* <CJK> */
-MAP(0x4A, 0x4E, 0x7242) /* <CJK> */
-MAP(0x4A, 0x4F, 0x7243) /* <CJK> */
-MAP(0x4A, 0x50, 0x7245) /* <CJK> */
-MAP(0x4A, 0x51, 0x724E) /* <CJK> */
-MAP(0x4A, 0x52, 0x724F) /* <CJK> */
-MAP(0x4A, 0x53, 0x7250) /* <CJK> */
-MAP(0x4A, 0x54, 0x7253) /* <CJK> */
-MAP(0x4A, 0x55, 0x7255) /* <CJK> */
-MAP(0x4A, 0x56, 0x7256) /* <CJK> */
-MAP(0x4A, 0x57, 0x725A) /* <CJK> */
-MAP(0x4A, 0x58, 0x725C) /* <CJK> */
-MAP(0x4A, 0x59, 0x725E) /* <CJK> */
-MAP(0x4A, 0x5A, 0x7260) /* <CJK> */
-MAP(0x4A, 0x5B, 0x7263) /* <CJK> */
-MAP(0x4A, 0x5C, 0x7268) /* <CJK> */
-MAP(0x4A, 0x5D, 0x726B) /* <CJK> */
-MAP(0x4A, 0x5E, 0x726E) /* <CJK> */
-MAP(0x4A, 0x5F, 0x726F) /* <CJK> */
-MAP(0x4A, 0x60, 0x7271) /* <CJK> */
-MAP(0x4A, 0x61, 0x7277) /* <CJK> */
-MAP(0x4A, 0x62, 0x7278) /* <CJK> */
-MAP(0x4A, 0x63, 0x727B) /* <CJK> */
-MAP(0x4A, 0x64, 0x727C) /* <CJK> */
-MAP(0x4A, 0x65, 0x727F) /* <CJK> */
-MAP(0x4A, 0x66, 0x7284) /* <CJK> */
-MAP(0x4A, 0x67, 0x7289) /* <CJK> */
-MAP(0x4A, 0x68, 0x728D) /* <CJK> */
-MAP(0x4A, 0x69, 0x728E) /* <CJK> */
-MAP(0x4A, 0x6A, 0x7293) /* <CJK> */
-MAP(0x4A, 0x6B, 0x729B) /* <CJK> */
-MAP(0x4A, 0x6C, 0x72A8) /* <CJK> */
-MAP(0x4A, 0x6D, 0x72AD) /* <CJK> */
-MAP(0x4A, 0x6E, 0x72AE) /* <CJK> */
-MAP(0x4A, 0x6F, 0x72B1) /* <CJK> */
-MAP(0x4A, 0x70, 0x72B4) /* <CJK> */
-MAP(0x4A, 0x71, 0x72BE) /* <CJK> */
-MAP(0x4A, 0x72, 0x72C1) /* <CJK> */
-MAP(0x4A, 0x73, 0x72C7) /* <CJK> */
-MAP(0x4A, 0x74, 0x72C9) /* <CJK> */
-MAP(0x4A, 0x75, 0x72CC) /* <CJK> */
-MAP(0x4A, 0x76, 0x72D5) /* <CJK> */
-MAP(0x4A, 0x77, 0x72D6) /* <CJK> */
-MAP(0x4A, 0x78, 0x72D8) /* <CJK> */
-MAP(0x4A, 0x79, 0x72DF) /* <CJK> */
-MAP(0x4A, 0x7A, 0x72E5) /* <CJK> */
-MAP(0x4A, 0x7B, 0x72F3) /* <CJK> */
-MAP(0x4A, 0x7C, 0x72F4) /* <CJK> */
-MAP(0x4A, 0x7D, 0x72FA) /* <CJK> */
-MAP(0x4A, 0x7E, 0x72FB) /* <CJK> */
-MAP(0x4B, 0x21, 0x72FE) /* <CJK> */
-MAP(0x4B, 0x22, 0x7302) /* <CJK> */
-MAP(0x4B, 0x23, 0x7304) /* <CJK> */
-MAP(0x4B, 0x24, 0x7305) /* <CJK> */
-MAP(0x4B, 0x25, 0x7307) /* <CJK> */
-MAP(0x4B, 0x26, 0x730B) /* <CJK> */
-MAP(0x4B, 0x27, 0x730D) /* <CJK> */
-MAP(0x4B, 0x28, 0x7312) /* <CJK> */
-MAP(0x4B, 0x29, 0x7313) /* <CJK> */
-MAP(0x4B, 0x2A, 0x7318) /* <CJK> */
-MAP(0x4B, 0x2B, 0x7319) /* <CJK> */
-MAP(0x4B, 0x2C, 0x731E) /* <CJK> */
-MAP(0x4B, 0x2D, 0x7322) /* <CJK> */
-MAP(0x4B, 0x2E, 0x7324) /* <CJK> */
-MAP(0x4B, 0x2F, 0x7327) /* <CJK> */
-MAP(0x4B, 0x30, 0x7328) /* <CJK> */
-MAP(0x4B, 0x31, 0x732C) /* <CJK> */
-MAP(0x4B, 0x32, 0x7331) /* <CJK> */
-MAP(0x4B, 0x33, 0x7332) /* <CJK> */
-MAP(0x4B, 0x34, 0x7335) /* <CJK> */
-MAP(0x4B, 0x35, 0x733A) /* <CJK> */
-MAP(0x4B, 0x36, 0x733B) /* <CJK> */
-MAP(0x4B, 0x37, 0x733D) /* <CJK> */
-MAP(0x4B, 0x38, 0x7343) /* <CJK> */
-MAP(0x4B, 0x39, 0x734D) /* <CJK> */
-MAP(0x4B, 0x3A, 0x7350) /* <CJK> */
-MAP(0x4B, 0x3B, 0x7352) /* <CJK> */
-MAP(0x4B, 0x3C, 0x7356) /* <CJK> */
-MAP(0x4B, 0x3D, 0x7358) /* <CJK> */
-MAP(0x4B, 0x3E, 0x735D) /* <CJK> */
-MAP(0x4B, 0x3F, 0x735E) /* <CJK> */
-MAP(0x4B, 0x40, 0x735F) /* <CJK> */
-MAP(0x4B, 0x41, 0x7360) /* <CJK> */
-MAP(0x4B, 0x42, 0x7366) /* <CJK> */
-MAP(0x4B, 0x43, 0x7367) /* <CJK> */
-MAP(0x4B, 0x44, 0x7369) /* <CJK> */
-MAP(0x4B, 0x45, 0x736B) /* <CJK> */
-MAP(0x4B, 0x46, 0x736C) /* <CJK> */
-MAP(0x4B, 0x47, 0x736E) /* <CJK> */
-MAP(0x4B, 0x48, 0x736F) /* <CJK> */
-MAP(0x4B, 0x49, 0x7371) /* <CJK> */
-MAP(0x4B, 0x4A, 0x7377) /* <CJK> */
-MAP(0x4B, 0x4B, 0x7379) /* <CJK> */
-MAP(0x4B, 0x4C, 0x737C) /* <CJK> */
-MAP(0x4B, 0x4D, 0x7380) /* <CJK> */
-MAP(0x4B, 0x4E, 0x7381) /* <CJK> */
-MAP(0x4B, 0x4F, 0x7383) /* <CJK> */
-MAP(0x4B, 0x50, 0x7385) /* <CJK> */
-MAP(0x4B, 0x51, 0x7386) /* <CJK> */
-MAP(0x4B, 0x52, 0x738E) /* <CJK> */
-MAP(0x4B, 0x53, 0x7390) /* <CJK> */
-MAP(0x4B, 0x54, 0x7393) /* <CJK> */
-MAP(0x4B, 0x55, 0x7395) /* <CJK> */
-MAP(0x4B, 0x56, 0x7397) /* <CJK> */
-MAP(0x4B, 0x57, 0x7398) /* <CJK> */
-MAP(0x4B, 0x58, 0x739C) /* <CJK> */
-MAP(0x4B, 0x59, 0x739E) /* <CJK> */
-MAP(0x4B, 0x5A, 0x739F) /* <CJK> */
-MAP(0x4B, 0x5B, 0x73A0) /* <CJK> */
-MAP(0x4B, 0x5C, 0x73A2) /* <CJK> */
-MAP(0x4B, 0x5D, 0x73A5) /* <CJK> */
-MAP(0x4B, 0x5E, 0x73A6) /* <CJK> */
-MAP(0x4B, 0x5F, 0x73AA) /* <CJK> */
-MAP(0x4B, 0x60, 0x73AB) /* <CJK> */
-MAP(0x4B, 0x61, 0x73AD) /* <CJK> */
-MAP(0x4B, 0x62, 0x73B5) /* <CJK> */
-MAP(0x4B, 0x63, 0x73B7) /* <CJK> */
-MAP(0x4B, 0x64, 0x73B9) /* <CJK> */
-MAP(0x4B, 0x65, 0x73BC) /* <CJK> */
-MAP(0x4B, 0x66, 0x73BD) /* <CJK> */
-MAP(0x4B, 0x67, 0x73BF) /* <CJK> */
-MAP(0x4B, 0x68, 0x73C5) /* <CJK> */
-MAP(0x4B, 0x69, 0x73C6) /* <CJK> */
-MAP(0x4B, 0x6A, 0x73C9) /* <CJK> */
-MAP(0x4B, 0x6B, 0x73CB) /* <CJK> */
-MAP(0x4B, 0x6C, 0x73CC) /* <CJK> */
-MAP(0x4B, 0x6D, 0x73CF) /* <CJK> */
-MAP(0x4B, 0x6E, 0x73D2) /* <CJK> */
-MAP(0x4B, 0x6F, 0x73D3) /* <CJK> */
-MAP(0x4B, 0x70, 0x73D6) /* <CJK> */
-MAP(0x4B, 0x71, 0x73D9) /* <CJK> */
-MAP(0x4B, 0x72, 0x73DD) /* <CJK> */
-MAP(0x4B, 0x73, 0x73E1) /* <CJK> */
-MAP(0x4B, 0x74, 0x73E3) /* <CJK> */
-MAP(0x4B, 0x75, 0x73E6) /* <CJK> */
-MAP(0x4B, 0x76, 0x73E7) /* <CJK> */
-MAP(0x4B, 0x77, 0x73E9) /* <CJK> */
-MAP(0x4B, 0x78, 0x73F4) /* <CJK> */
-MAP(0x4B, 0x79, 0x73F5) /* <CJK> */
-MAP(0x4B, 0x7A, 0x73F7) /* <CJK> */
-MAP(0x4B, 0x7B, 0x73F9) /* <CJK> */
-MAP(0x4B, 0x7C, 0x73FA) /* <CJK> */
-MAP(0x4B, 0x7D, 0x73FB) /* <CJK> */
-MAP(0x4B, 0x7E, 0x73FD) /* <CJK> */
-MAP(0x4C, 0x21, 0x73FF) /* <CJK> */
-MAP(0x4C, 0x22, 0x7400) /* <CJK> */
-MAP(0x4C, 0x23, 0x7401) /* <CJK> */
-MAP(0x4C, 0x24, 0x7404) /* <CJK> */
-MAP(0x4C, 0x25, 0x7407) /* <CJK> */
-MAP(0x4C, 0x26, 0x740A) /* <CJK> */
-MAP(0x4C, 0x27, 0x7411) /* <CJK> */
-MAP(0x4C, 0x28, 0x741A) /* <CJK> */
-MAP(0x4C, 0x29, 0x741B) /* <CJK> */
-MAP(0x4C, 0x2A, 0x7424) /* <CJK> */
-MAP(0x4C, 0x2B, 0x7426) /* <CJK> */
-MAP(0x4C, 0x2C, 0x7428) /* <CJK> */
-MAP(0x4C, 0x2D, 0x7429) /* <CJK> */
-MAP(0x4C, 0x2E, 0x742A) /* <CJK> */
-MAP(0x4C, 0x2F, 0x742B) /* <CJK> */
-MAP(0x4C, 0x30, 0x742C) /* <CJK> */
-MAP(0x4C, 0x31, 0x742D) /* <CJK> */
-MAP(0x4C, 0x32, 0x742E) /* <CJK> */
-MAP(0x4C, 0x33, 0x742F) /* <CJK> */
-MAP(0x4C, 0x34, 0x7430) /* <CJK> */
-MAP(0x4C, 0x35, 0x7431) /* <CJK> */
-MAP(0x4C, 0x36, 0x7439) /* <CJK> */
-MAP(0x4C, 0x37, 0x7440) /* <CJK> */
-MAP(0x4C, 0x38, 0x7443) /* <CJK> */
-MAP(0x4C, 0x39, 0x7444) /* <CJK> */
-MAP(0x4C, 0x3A, 0x7446) /* <CJK> */
-MAP(0x4C, 0x3B, 0x7447) /* <CJK> */
-MAP(0x4C, 0x3C, 0x744B) /* <CJK> */
-MAP(0x4C, 0x3D, 0x744D) /* <CJK> */
-MAP(0x4C, 0x3E, 0x7451) /* <CJK> */
-MAP(0x4C, 0x3F, 0x7452) /* <CJK> */
-MAP(0x4C, 0x40, 0x7457) /* <CJK> */
-MAP(0x4C, 0x41, 0x745D) /* <CJK> */
-MAP(0x4C, 0x42, 0x7462) /* <CJK> */
-MAP(0x4C, 0x43, 0x7466) /* <CJK> */
-MAP(0x4C, 0x44, 0x7467) /* <CJK> */
-MAP(0x4C, 0x45, 0x7468) /* <CJK> */
-MAP(0x4C, 0x46, 0x746B) /* <CJK> */
-MAP(0x4C, 0x47, 0x746D) /* <CJK> */
-MAP(0x4C, 0x48, 0x746E) /* <CJK> */
-MAP(0x4C, 0x49, 0x7471) /* <CJK> */
-MAP(0x4C, 0x4A, 0x7472) /* <CJK> */
-MAP(0x4C, 0x4B, 0x7480) /* <CJK> */
-MAP(0x4C, 0x4C, 0x7481) /* <CJK> */
-MAP(0x4C, 0x4D, 0x7485) /* <CJK> */
-MAP(0x4C, 0x4E, 0x7486) /* <CJK> */
-MAP(0x4C, 0x4F, 0x7487) /* <CJK> */
-MAP(0x4C, 0x50, 0x7489) /* <CJK> */
-MAP(0x4C, 0x51, 0x748F) /* <CJK> */
-MAP(0x4C, 0x52, 0x7490) /* <CJK> */
-MAP(0x4C, 0x53, 0x7491) /* <CJK> */
-MAP(0x4C, 0x54, 0x7492) /* <CJK> */
-MAP(0x4C, 0x55, 0x7498) /* <CJK> */
-MAP(0x4C, 0x56, 0x7499) /* <CJK> */
-MAP(0x4C, 0x57, 0x749A) /* <CJK> */
-MAP(0x4C, 0x58, 0x749C) /* <CJK> */
-MAP(0x4C, 0x59, 0x749F) /* <CJK> */
-MAP(0x4C, 0x5A, 0x74A0) /* <CJK> */
-MAP(0x4C, 0x5B, 0x74A1) /* <CJK> */
-MAP(0x4C, 0x5C, 0x74A3) /* <CJK> */
-MAP(0x4C, 0x5D, 0x74A6) /* <CJK> */
-MAP(0x4C, 0x5E, 0x74A8) /* <CJK> */
-MAP(0x4C, 0x5F, 0x74A9) /* <CJK> */
-MAP(0x4C, 0x60, 0x74AA) /* <CJK> */
-MAP(0x4C, 0x61, 0x74AB) /* <CJK> */
-MAP(0x4C, 0x62, 0x74AE) /* <CJK> */
-MAP(0x4C, 0x63, 0x74AF) /* <CJK> */
-MAP(0x4C, 0x64, 0x74B1) /* <CJK> */
-MAP(0x4C, 0x65, 0x74B2) /* <CJK> */
-MAP(0x4C, 0x66, 0x74B5) /* <CJK> */
-MAP(0x4C, 0x67, 0x74B9) /* <CJK> */
-MAP(0x4C, 0x68, 0x74BB) /* <CJK> */
-MAP(0x4C, 0x69, 0x74BF) /* <CJK> */
-MAP(0x4C, 0x6A, 0x74C8) /* <CJK> */
-MAP(0x4C, 0x6B, 0x74C9) /* <CJK> */
-MAP(0x4C, 0x6C, 0x74CC) /* <CJK> */
-MAP(0x4C, 0x6D, 0x74D0) /* <CJK> */
-MAP(0x4C, 0x6E, 0x74D3) /* <CJK> */
-MAP(0x4C, 0x6F, 0x74D8) /* <CJK> */
-MAP(0x4C, 0x70, 0x74DA) /* <CJK> */
-MAP(0x4C, 0x71, 0x74DB) /* <CJK> */
-MAP(0x4C, 0x72, 0x74DE) /* <CJK> */
-MAP(0x4C, 0x73, 0x74DF) /* <CJK> */
-MAP(0x4C, 0x74, 0x74E4) /* <CJK> */
-MAP(0x4C, 0x75, 0x74E8) /* <CJK> */
-MAP(0x4C, 0x76, 0x74EA) /* <CJK> */
-MAP(0x4C, 0x77, 0x74EB) /* <CJK> */
-MAP(0x4C, 0x78, 0x74EF) /* <CJK> */
-MAP(0x4C, 0x79, 0x74F4) /* <CJK> */
-MAP(0x4C, 0x7A, 0x74FA) /* <CJK> */
-MAP(0x4C, 0x7B, 0x74FB) /* <CJK> */
-MAP(0x4C, 0x7C, 0x74FC) /* <CJK> */
-MAP(0x4C, 0x7D, 0x74FF) /* <CJK> */
-MAP(0x4C, 0x7E, 0x7506) /* <CJK> */
-MAP(0x4D, 0x21, 0x7512) /* <CJK> */
-MAP(0x4D, 0x22, 0x7516) /* <CJK> */
-MAP(0x4D, 0x23, 0x7517) /* <CJK> */
-MAP(0x4D, 0x24, 0x7520) /* <CJK> */
-MAP(0x4D, 0x25, 0x7521) /* <CJK> */
-MAP(0x4D, 0x26, 0x7524) /* <CJK> */
-MAP(0x4D, 0x27, 0x7527) /* <CJK> */
-MAP(0x4D, 0x28, 0x7529) /* <CJK> */
-MAP(0x4D, 0x29, 0x752A) /* <CJK> */
-MAP(0x4D, 0x2A, 0x752F) /* <CJK> */
-MAP(0x4D, 0x2B, 0x7536) /* <CJK> */
-MAP(0x4D, 0x2C, 0x7539) /* <CJK> */
-MAP(0x4D, 0x2D, 0x753D) /* <CJK> */
-MAP(0x4D, 0x2E, 0x753E) /* <CJK> */
-MAP(0x4D, 0x2F, 0x753F) /* <CJK> */
-MAP(0x4D, 0x30, 0x7540) /* <CJK> */
-MAP(0x4D, 0x31, 0x7543) /* <CJK> */
-MAP(0x4D, 0x32, 0x7547) /* <CJK> */
-MAP(0x4D, 0x33, 0x7548) /* <CJK> */
-MAP(0x4D, 0x34, 0x754E) /* <CJK> */
-MAP(0x4D, 0x35, 0x7550) /* <CJK> */
-MAP(0x4D, 0x36, 0x7552) /* <CJK> */
-MAP(0x4D, 0x37, 0x7557) /* <CJK> */
-MAP(0x4D, 0x38, 0x755E) /* <CJK> */
-MAP(0x4D, 0x39, 0x755F) /* <CJK> */
-MAP(0x4D, 0x3A, 0x7561) /* <CJK> */
-MAP(0x4D, 0x3B, 0x756F) /* <CJK> */
-MAP(0x4D, 0x3C, 0x7571) /* <CJK> */
-MAP(0x4D, 0x3D, 0x7579) /* <CJK> */
-MAP(0x4D, 0x3E, 0x757A) /* <CJK> */
-MAP(0x4D, 0x3F, 0x757B) /* <CJK> */
-MAP(0x4D, 0x40, 0x757C) /* <CJK> */
-MAP(0x4D, 0x41, 0x757D) /* <CJK> */
-MAP(0x4D, 0x42, 0x757E) /* <CJK> */
-MAP(0x4D, 0x43, 0x7581) /* <CJK> */
-MAP(0x4D, 0x44, 0x7585) /* <CJK> */
-MAP(0x4D, 0x45, 0x7590) /* <CJK> */
-MAP(0x4D, 0x46, 0x7592) /* <CJK> */
-MAP(0x4D, 0x47, 0x7593) /* <CJK> */
-MAP(0x4D, 0x48, 0x7595) /* <CJK> */
-MAP(0x4D, 0x49, 0x7599) /* <CJK> */
-MAP(0x4D, 0x4A, 0x759C) /* <CJK> */
-MAP(0x4D, 0x4B, 0x75A2) /* <CJK> */
-MAP(0x4D, 0x4C, 0x75A4) /* <CJK> */
-MAP(0x4D, 0x4D, 0x75B4) /* <CJK> */
-MAP(0x4D, 0x4E, 0x75BA) /* <CJK> */
-MAP(0x4D, 0x4F, 0x75BF) /* <CJK> */
-MAP(0x4D, 0x50, 0x75C0) /* <CJK> */
-MAP(0x4D, 0x51, 0x75C1) /* <CJK> */
-MAP(0x4D, 0x52, 0x75C4) /* <CJK> */
-MAP(0x4D, 0x53, 0x75C6) /* <CJK> */
-MAP(0x4D, 0x54, 0x75CC) /* <CJK> */
-MAP(0x4D, 0x55, 0x75CE) /* <CJK> */
-MAP(0x4D, 0x56, 0x75CF) /* <CJK> */
-MAP(0x4D, 0x57, 0x75D7) /* <CJK> */
-MAP(0x4D, 0x58, 0x75DC) /* <CJK> */
-MAP(0x4D, 0x59, 0x75DF) /* <CJK> */
-MAP(0x4D, 0x5A, 0x75E0) /* <CJK> */
-MAP(0x4D, 0x5B, 0x75E1) /* <CJK> */
-MAP(0x4D, 0x5C, 0x75E4) /* <CJK> */
-MAP(0x4D, 0x5D, 0x75E7) /* <CJK> */
-MAP(0x4D, 0x5E, 0x75EC) /* <CJK> */
-MAP(0x4D, 0x5F, 0x75EE) /* <CJK> */
-MAP(0x4D, 0x60, 0x75EF) /* <CJK> */
-MAP(0x4D, 0x61, 0x75F1) /* <CJK> */
-MAP(0x4D, 0x62, 0x75F9) /* <CJK> */
-MAP(0x4D, 0x63, 0x7600) /* <CJK> */
-MAP(0x4D, 0x64, 0x7602) /* <CJK> */
-MAP(0x4D, 0x65, 0x7603) /* <CJK> */
-MAP(0x4D, 0x66, 0x7604) /* <CJK> */
-MAP(0x4D, 0x67, 0x7607) /* <CJK> */
-MAP(0x4D, 0x68, 0x7608) /* <CJK> */
-MAP(0x4D, 0x69, 0x760A) /* <CJK> */
-MAP(0x4D, 0x6A, 0x760C) /* <CJK> */
-MAP(0x4D, 0x6B, 0x760F) /* <CJK> */
-MAP(0x4D, 0x6C, 0x7612) /* <CJK> */
-MAP(0x4D, 0x6D, 0x7613) /* <CJK> */
-MAP(0x4D, 0x6E, 0x7615) /* <CJK> */
-MAP(0x4D, 0x6F, 0x7616) /* <CJK> */
-MAP(0x4D, 0x70, 0x7619) /* <CJK> */
-MAP(0x4D, 0x71, 0x761B) /* <CJK> */
-MAP(0x4D, 0x72, 0x761C) /* <CJK> */
-MAP(0x4D, 0x73, 0x761D) /* <CJK> */
-MAP(0x4D, 0x74, 0x761E) /* <CJK> */
-MAP(0x4D, 0x75, 0x7623) /* <CJK> */
-MAP(0x4D, 0x76, 0x7625) /* <CJK> */
-MAP(0x4D, 0x77, 0x7626) /* <CJK> */
-MAP(0x4D, 0x78, 0x7629) /* <CJK> */
-MAP(0x4D, 0x79, 0x762D) /* <CJK> */
-MAP(0x4D, 0x7A, 0x7632) /* <CJK> */
-MAP(0x4D, 0x7B, 0x7633) /* <CJK> */
-MAP(0x4D, 0x7C, 0x7635) /* <CJK> */
-MAP(0x4D, 0x7D, 0x7638) /* <CJK> */
-MAP(0x4D, 0x7E, 0x7639) /* <CJK> */
-MAP(0x4E, 0x21, 0x763A) /* <CJK> */
-MAP(0x4E, 0x22, 0x763C) /* <CJK> */
-MAP(0x4E, 0x23, 0x764A) /* <CJK> */
-MAP(0x4E, 0x24, 0x7640) /* <CJK> */
-MAP(0x4E, 0x25, 0x7641) /* <CJK> */
-MAP(0x4E, 0x26, 0x7643) /* <CJK> */
-MAP(0x4E, 0x27, 0x7644) /* <CJK> */
-MAP(0x4E, 0x28, 0x7645) /* <CJK> */
-MAP(0x4E, 0x29, 0x7649) /* <CJK> */
-MAP(0x4E, 0x2A, 0x764B) /* <CJK> */
-MAP(0x4E, 0x2B, 0x7655) /* <CJK> */
-MAP(0x4E, 0x2C, 0x7659) /* <CJK> */
-MAP(0x4E, 0x2D, 0x765F) /* <CJK> */
-MAP(0x4E, 0x2E, 0x7664) /* <CJK> */
-MAP(0x4E, 0x2F, 0x7665) /* <CJK> */
-MAP(0x4E, 0x30, 0x766D) /* <CJK> */
-MAP(0x4E, 0x31, 0x766E) /* <CJK> */
-MAP(0x4E, 0x32, 0x766F) /* <CJK> */
-MAP(0x4E, 0x33, 0x7671) /* <CJK> */
-MAP(0x4E, 0x34, 0x7674) /* <CJK> */
-MAP(0x4E, 0x35, 0x7681) /* <CJK> */
-MAP(0x4E, 0x36, 0x7685) /* <CJK> */
-MAP(0x4E, 0x37, 0x768C) /* <CJK> */
-MAP(0x4E, 0x38, 0x768D) /* <CJK> */
-MAP(0x4E, 0x39, 0x7695) /* <CJK> */
-MAP(0x4E, 0x3A, 0x769B) /* <CJK> */
-MAP(0x4E, 0x3B, 0x769C) /* <CJK> */
-MAP(0x4E, 0x3C, 0x769D) /* <CJK> */
-MAP(0x4E, 0x3D, 0x769F) /* <CJK> */
-MAP(0x4E, 0x3E, 0x76A0) /* <CJK> */
-MAP(0x4E, 0x3F, 0x76A2) /* <CJK> */
-MAP(0x4E, 0x40, 0x76A3) /* <CJK> */
-MAP(0x4E, 0x41, 0x76A4) /* <CJK> */
-MAP(0x4E, 0x42, 0x76A5) /* <CJK> */
-MAP(0x4E, 0x43, 0x76A6) /* <CJK> */
-MAP(0x4E, 0x44, 0x76A7) /* <CJK> */
-MAP(0x4E, 0x45, 0x76A8) /* <CJK> */
-MAP(0x4E, 0x46, 0x76AA) /* <CJK> */
-MAP(0x4E, 0x47, 0x76AD) /* <CJK> */
-MAP(0x4E, 0x48, 0x76BD) /* <CJK> */
-MAP(0x4E, 0x49, 0x76C1) /* <CJK> */
-MAP(0x4E, 0x4A, 0x76C5) /* <CJK> */
-MAP(0x4E, 0x4B, 0x76C9) /* <CJK> */
-MAP(0x4E, 0x4C, 0x76CB) /* <CJK> */
-MAP(0x4E, 0x4D, 0x76CC) /* <CJK> */
-MAP(0x4E, 0x4E, 0x76CE) /* <CJK> */
-MAP(0x4E, 0x4F, 0x76D4) /* <CJK> */
-MAP(0x4E, 0x50, 0x76D9) /* <CJK> */
-MAP(0x4E, 0x51, 0x76E0) /* <CJK> */
-MAP(0x4E, 0x52, 0x76E6) /* <CJK> */
-MAP(0x4E, 0x53, 0x76E8) /* <CJK> */
-MAP(0x4E, 0x54, 0x76EC) /* <CJK> */
-MAP(0x4E, 0x55, 0x76F0) /* <CJK> */
-MAP(0x4E, 0x56, 0x76F1) /* <CJK> */
-MAP(0x4E, 0x57, 0x76F6) /* <CJK> */
-MAP(0x4E, 0x58, 0x76F9) /* <CJK> */
-MAP(0x4E, 0x59, 0x76FC) /* <CJK> */
-MAP(0x4E, 0x5A, 0x7700) /* <CJK> */
-MAP(0x4E, 0x5B, 0x7706) /* <CJK> */
-MAP(0x4E, 0x5C, 0x770A) /* <CJK> */
-MAP(0x4E, 0x5D, 0x770E) /* <CJK> */
-MAP(0x4E, 0x5E, 0x7712) /* <CJK> */
-MAP(0x4E, 0x5F, 0x7714) /* <CJK> */
-MAP(0x4E, 0x60, 0x7715) /* <CJK> */
-MAP(0x4E, 0x61, 0x7717) /* <CJK> */
-MAP(0x4E, 0x62, 0x7719) /* <CJK> */
-MAP(0x4E, 0x63, 0x771A) /* <CJK> */
-MAP(0x4E, 0x64, 0x771C) /* <CJK> */
-MAP(0x4E, 0x65, 0x7722) /* <CJK> */
-MAP(0x4E, 0x66, 0x7728) /* <CJK> */
-MAP(0x4E, 0x67, 0x772D) /* <CJK> */
-MAP(0x4E, 0x68, 0x772E) /* <CJK> */
-MAP(0x4E, 0x69, 0x772F) /* <CJK> */
-MAP(0x4E, 0x6A, 0x7734) /* <CJK> */
-MAP(0x4E, 0x6B, 0x7735) /* <CJK> */
-MAP(0x4E, 0x6C, 0x7736) /* <CJK> */
-MAP(0x4E, 0x6D, 0x7739) /* <CJK> */
-MAP(0x4E, 0x6E, 0x773D) /* <CJK> */
-MAP(0x4E, 0x6F, 0x773E) /* <CJK> */
-MAP(0x4E, 0x70, 0x7742) /* <CJK> */
-MAP(0x4E, 0x71, 0x7745) /* <CJK> */
-MAP(0x4E, 0x72, 0x7746) /* <CJK> */
-MAP(0x4E, 0x73, 0x774A) /* <CJK> */
-MAP(0x4E, 0x74, 0x774D) /* <CJK> */
-MAP(0x4E, 0x75, 0x774E) /* <CJK> */
-MAP(0x4E, 0x76, 0x774F) /* <CJK> */
-MAP(0x4E, 0x77, 0x7752) /* <CJK> */
-MAP(0x4E, 0x78, 0x7756) /* <CJK> */
-MAP(0x4E, 0x79, 0x7757) /* <CJK> */
-MAP(0x4E, 0x7A, 0x775C) /* <CJK> */
-MAP(0x4E, 0x7B, 0x775E) /* <CJK> */
-MAP(0x4E, 0x7C, 0x775F) /* <CJK> */
-MAP(0x4E, 0x7D, 0x7760) /* <CJK> */
-MAP(0x4E, 0x7E, 0x7762) /* <CJK> */
-MAP(0x4F, 0x21, 0x7764) /* <CJK> */
-MAP(0x4F, 0x22, 0x7767) /* <CJK> */
-MAP(0x4F, 0x23, 0x776A) /* <CJK> */
-MAP(0x4F, 0x24, 0x776C) /* <CJK> */
-MAP(0x4F, 0x25, 0x7770) /* <CJK> */
-MAP(0x4F, 0x26, 0x7772) /* <CJK> */
-MAP(0x4F, 0x27, 0x7773) /* <CJK> */
-MAP(0x4F, 0x28, 0x7774) /* <CJK> */
-MAP(0x4F, 0x29, 0x777A) /* <CJK> */
-MAP(0x4F, 0x2A, 0x777D) /* <CJK> */
-MAP(0x4F, 0x2B, 0x7780) /* <CJK> */
-MAP(0x4F, 0x2C, 0x7784) /* <CJK> */
-MAP(0x4F, 0x2D, 0x778C) /* <CJK> */
-MAP(0x4F, 0x2E, 0x778D) /* <CJK> */
-MAP(0x4F, 0x2F, 0x7794) /* <CJK> */
-MAP(0x4F, 0x30, 0x7795) /* <CJK> */
-MAP(0x4F, 0x31, 0x7796) /* <CJK> */
-MAP(0x4F, 0x32, 0x779A) /* <CJK> */
-MAP(0x4F, 0x33, 0x779F) /* <CJK> */
-MAP(0x4F, 0x34, 0x77A2) /* <CJK> */
-MAP(0x4F, 0x35, 0x77A7) /* <CJK> */
-MAP(0x4F, 0x36, 0x77AA) /* <CJK> */
-MAP(0x4F, 0x37, 0x77AE) /* <CJK> */
-MAP(0x4F, 0x38, 0x77AF) /* <CJK> */
-MAP(0x4F, 0x39, 0x77B1) /* <CJK> */
-MAP(0x4F, 0x3A, 0x77B5) /* <CJK> */
-MAP(0x4F, 0x3B, 0x77BE) /* <CJK> */
-MAP(0x4F, 0x3C, 0x77C3) /* <CJK> */
-MAP(0x4F, 0x3D, 0x77C9) /* <CJK> */
-MAP(0x4F, 0x3E, 0x77D1) /* <CJK> */
-MAP(0x4F, 0x3F, 0x77D2) /* <CJK> */
-MAP(0x4F, 0x40, 0x77D5) /* <CJK> */
-MAP(0x4F, 0x41, 0x77D9) /* <CJK> */
-MAP(0x4F, 0x42, 0x77DE) /* <CJK> */
-MAP(0x4F, 0x43, 0x77DF) /* <CJK> */
-MAP(0x4F, 0x44, 0x77E0) /* <CJK> */
-MAP(0x4F, 0x45, 0x77E4) /* <CJK> */
-MAP(0x4F, 0x46, 0x77E6) /* <CJK> */
-MAP(0x4F, 0x47, 0x77EA) /* <CJK> */
-MAP(0x4F, 0x48, 0x77EC) /* <CJK> */
-MAP(0x4F, 0x49, 0x77F0) /* <CJK> */
-MAP(0x4F, 0x4A, 0x77F1) /* <CJK> */
-MAP(0x4F, 0x4B, 0x77F4) /* <CJK> */
-MAP(0x4F, 0x4C, 0x77F8) /* <CJK> */
-MAP(0x4F, 0x4D, 0x77FB) /* <CJK> */
-MAP(0x4F, 0x4E, 0x7805) /* <CJK> */
-MAP(0x4F, 0x4F, 0x7806) /* <CJK> */
-MAP(0x4F, 0x50, 0x7809) /* <CJK> */
-MAP(0x4F, 0x51, 0x780D) /* <CJK> */
-MAP(0x4F, 0x52, 0x780E) /* <CJK> */
-MAP(0x4F, 0x53, 0x7811) /* <CJK> */
-MAP(0x4F, 0x54, 0x781D) /* <CJK> */
-MAP(0x4F, 0x55, 0x7821) /* <CJK> */
-MAP(0x4F, 0x56, 0x7822) /* <CJK> */
-MAP(0x4F, 0x57, 0x7823) /* <CJK> */
-MAP(0x4F, 0x58, 0x782D) /* <CJK> */
-MAP(0x4F, 0x59, 0x782E) /* <CJK> */
-MAP(0x4F, 0x5A, 0x7830) /* <CJK> */
-MAP(0x4F, 0x5B, 0x7835) /* <CJK> */
-MAP(0x4F, 0x5C, 0x7837) /* <CJK> */
-MAP(0x4F, 0x5D, 0x7843) /* <CJK> */
-MAP(0x4F, 0x5E, 0x7844) /* <CJK> */
-MAP(0x4F, 0x5F, 0x7847) /* <CJK> */
-MAP(0x4F, 0x60, 0x7848) /* <CJK> */
-MAP(0x4F, 0x61, 0x784C) /* <CJK> */
-MAP(0x4F, 0x62, 0x784E) /* <CJK> */
-MAP(0x4F, 0x63, 0x7852) /* <CJK> */
-MAP(0x4F, 0x64, 0x785C) /* <CJK> */
-MAP(0x4F, 0x65, 0x785E) /* <CJK> */
-MAP(0x4F, 0x66, 0x7860) /* <CJK> */
-MAP(0x4F, 0x67, 0x7861) /* <CJK> */
-MAP(0x4F, 0x68, 0x7863) /* <CJK> */
-MAP(0x4F, 0x69, 0x7864) /* <CJK> */
-MAP(0x4F, 0x6A, 0x7868) /* <CJK> */
-MAP(0x4F, 0x6B, 0x786A) /* <CJK> */
-MAP(0x4F, 0x6C, 0x786E) /* <CJK> */
-MAP(0x4F, 0x6D, 0x787A) /* <CJK> */
-MAP(0x4F, 0x6E, 0x787E) /* <CJK> */
-MAP(0x4F, 0x6F, 0x788A) /* <CJK> */
-MAP(0x4F, 0x70, 0x788F) /* <CJK> */
-MAP(0x4F, 0x71, 0x7894) /* <CJK> */
-MAP(0x4F, 0x72, 0x7898) /* <CJK> */
-MAP(0x4F, 0x73, 0x78A1) /* <CJK> */
-MAP(0x4F, 0x74, 0x789D) /* <CJK> */
-MAP(0x4F, 0x75, 0x789E) /* <CJK> */
-MAP(0x4F, 0x76, 0x789F) /* <CJK> */
-MAP(0x4F, 0x77, 0x78A4) /* <CJK> */
-MAP(0x4F, 0x78, 0x78A8) /* <CJK> */
-MAP(0x4F, 0x79, 0x78AC) /* <CJK> */
-MAP(0x4F, 0x7A, 0x78AD) /* <CJK> */
-MAP(0x4F, 0x7B, 0x78B0) /* <CJK> */
-MAP(0x4F, 0x7C, 0x78B1) /* <CJK> */
-MAP(0x4F, 0x7D, 0x78B2) /* <CJK> */
-MAP(0x4F, 0x7E, 0x78B3) /* <CJK> */
-MAP(0x50, 0x21, 0x78BB) /* <CJK> */
-MAP(0x50, 0x22, 0x78BD) /* <CJK> */
-MAP(0x50, 0x23, 0x78BF) /* <CJK> */
-MAP(0x50, 0x24, 0x78C7) /* <CJK> */
-MAP(0x50, 0x25, 0x78C8) /* <CJK> */
-MAP(0x50, 0x26, 0x78C9) /* <CJK> */
-MAP(0x50, 0x27, 0x78CC) /* <CJK> */
-MAP(0x50, 0x28, 0x78CE) /* <CJK> */
-MAP(0x50, 0x29, 0x78D2) /* <CJK> */
-MAP(0x50, 0x2A, 0x78D3) /* <CJK> */
-MAP(0x50, 0x2B, 0x78D5) /* <CJK> */
-MAP(0x50, 0x2C, 0x78D6) /* <CJK> */
-MAP(0x50, 0x2D, 0x78E4) /* <CJK> */
-MAP(0x50, 0x2E, 0x78DB) /* <CJK> */
-MAP(0x50, 0x2F, 0x78DF) /* <CJK> */
-MAP(0x50, 0x30, 0x78E0) /* <CJK> */
-MAP(0x50, 0x31, 0x78E1) /* <CJK> */
-MAP(0x50, 0x32, 0x78E6) /* <CJK> */
-MAP(0x50, 0x33, 0x78EA) /* <CJK> */
-MAP(0x50, 0x34, 0x78F2) /* <CJK> */
-MAP(0x50, 0x35, 0x78F3) /* <CJK> */
-MAP(0x50, 0x36, 0x7900) /* <CJK> */
-MAP(0x50, 0x37, 0x78F6) /* <CJK> */
-MAP(0x50, 0x38, 0x78F7) /* <CJK> */
-MAP(0x50, 0x39, 0x78FA) /* <CJK> */
-MAP(0x50, 0x3A, 0x78FB) /* <CJK> */
-MAP(0x50, 0x3B, 0x78FF) /* <CJK> */
-MAP(0x50, 0x3C, 0x7906) /* <CJK> */
-MAP(0x50, 0x3D, 0x790C) /* <CJK> */
-MAP(0x50, 0x3E, 0x7910) /* <CJK> */
-MAP(0x50, 0x3F, 0x791A) /* <CJK> */
-MAP(0x50, 0x40, 0x791C) /* <CJK> */
-MAP(0x50, 0x41, 0x791E) /* <CJK> */
-MAP(0x50, 0x42, 0x791F) /* <CJK> */
-MAP(0x50, 0x43, 0x7920) /* <CJK> */
-MAP(0x50, 0x44, 0x7925) /* <CJK> */
-MAP(0x50, 0x45, 0x7927) /* <CJK> */
-MAP(0x50, 0x46, 0x7929) /* <CJK> */
-MAP(0x50, 0x47, 0x792D) /* <CJK> */
-MAP(0x50, 0x48, 0x7931) /* <CJK> */
-MAP(0x50, 0x49, 0x7934) /* <CJK> */
-MAP(0x50, 0x4A, 0x7935) /* <CJK> */
-MAP(0x50, 0x4B, 0x793B) /* <CJK> */
-MAP(0x50, 0x4C, 0x793D) /* <CJK> */
-MAP(0x50, 0x4D, 0x793F) /* <CJK> */
-MAP(0x50, 0x4E, 0x7944) /* <CJK> */
-MAP(0x50, 0x4F, 0x7945) /* <CJK> */
-MAP(0x50, 0x50, 0x7946) /* <CJK> */
-MAP(0x50, 0x51, 0x794A) /* <CJK> */
-MAP(0x50, 0x52, 0x794B) /* <CJK> */
-MAP(0x50, 0x53, 0x794F) /* <CJK> */
-MAP(0x50, 0x54, 0x7951) /* <CJK> */
-MAP(0x50, 0x55, 0x7954) /* <CJK> */
-MAP(0x50, 0x56, 0x7958) /* <CJK> */
-MAP(0x50, 0x57, 0x795B) /* <CJK> */
-MAP(0x50, 0x58, 0x795C) /* <CJK> */
-MAP(0x50, 0x59, 0x7967) /* <CJK> */
-MAP(0x50, 0x5A, 0x7969) /* <CJK> */
-MAP(0x50, 0x5B, 0x796B) /* <CJK> */
-MAP(0x50, 0x5C, 0x7972) /* <CJK> */
-MAP(0x50, 0x5D, 0x7979) /* <CJK> */
-MAP(0x50, 0x5E, 0x797B) /* <CJK> */
-MAP(0x50, 0x5F, 0x797C) /* <CJK> */
-MAP(0x50, 0x60, 0x797E) /* <CJK> */
-MAP(0x50, 0x61, 0x798B) /* <CJK> */
-MAP(0x50, 0x62, 0x798C) /* <CJK> */
-MAP(0x50, 0x63, 0x7991) /* <CJK> */
-MAP(0x50, 0x64, 0x7993) /* <CJK> */
-MAP(0x50, 0x65, 0x7994) /* <CJK> */
-MAP(0x50, 0x66, 0x7995) /* <CJK> */
-MAP(0x50, 0x67, 0x7996) /* <CJK> */
-MAP(0x50, 0x68, 0x7998) /* <CJK> */
-MAP(0x50, 0x69, 0x799B) /* <CJK> */
-MAP(0x50, 0x6A, 0x799C) /* <CJK> */
-MAP(0x50, 0x6B, 0x79A1) /* <CJK> */
-MAP(0x50, 0x6C, 0x79A8) /* <CJK> */
-MAP(0x50, 0x6D, 0x79A9) /* <CJK> */
-MAP(0x50, 0x6E, 0x79AB) /* <CJK> */
-MAP(0x50, 0x6F, 0x79AF) /* <CJK> */
-MAP(0x50, 0x70, 0x79B1) /* <CJK> */
-MAP(0x50, 0x71, 0x79B4) /* <CJK> */
-MAP(0x50, 0x72, 0x79B8) /* <CJK> */
-MAP(0x50, 0x73, 0x79BB) /* <CJK> */
-MAP(0x50, 0x74, 0x79C2) /* <CJK> */
-MAP(0x50, 0x75, 0x79C4) /* <CJK> */
-MAP(0x50, 0x76, 0x79C7) /* <CJK> */
-MAP(0x50, 0x77, 0x79C8) /* <CJK> */
-MAP(0x50, 0x78, 0x79CA) /* <CJK> */
-MAP(0x50, 0x79, 0x79CF) /* <CJK> */
-MAP(0x50, 0x7A, 0x79D4) /* <CJK> */
-MAP(0x50, 0x7B, 0x79D6) /* <CJK> */
-MAP(0x50, 0x7C, 0x79DA) /* <CJK> */
-MAP(0x50, 0x7D, 0x79DD) /* <CJK> */
-MAP(0x50, 0x7E, 0x79DE) /* <CJK> */
-MAP(0x51, 0x21, 0x79E0) /* <CJK> */
-MAP(0x51, 0x22, 0x79E2) /* <CJK> */
-MAP(0x51, 0x23, 0x79E5) /* <CJK> */
-MAP(0x51, 0x24, 0x79EA) /* <CJK> */
-MAP(0x51, 0x25, 0x79EB) /* <CJK> */
-MAP(0x51, 0x26, 0x79ED) /* <CJK> */
-MAP(0x51, 0x27, 0x79F1) /* <CJK> */
-MAP(0x51, 0x28, 0x79F8) /* <CJK> */
-MAP(0x51, 0x29, 0x79FC) /* <CJK> */
-MAP(0x51, 0x2A, 0x7A02) /* <CJK> */
-MAP(0x51, 0x2B, 0x7A03) /* <CJK> */
-MAP(0x51, 0x2C, 0x7A07) /* <CJK> */
-MAP(0x51, 0x2D, 0x7A09) /* <CJK> */
-MAP(0x51, 0x2E, 0x7A0A) /* <CJK> */
-MAP(0x51, 0x2F, 0x7A0C) /* <CJK> */
-MAP(0x51, 0x30, 0x7A11) /* <CJK> */
-MAP(0x51, 0x31, 0x7A15) /* <CJK> */
-MAP(0x51, 0x32, 0x7A1B) /* <CJK> */
-MAP(0x51, 0x33, 0x7A1E) /* <CJK> */
-MAP(0x51, 0x34, 0x7A21) /* <CJK> */
-MAP(0x51, 0x35, 0x7A27) /* <CJK> */
-MAP(0x51, 0x36, 0x7A2B) /* <CJK> */
-MAP(0x51, 0x37, 0x7A2D) /* <CJK> */
-MAP(0x51, 0x38, 0x7A2F) /* <CJK> */
-MAP(0x51, 0x39, 0x7A30) /* <CJK> */
-MAP(0x51, 0x3A, 0x7A34) /* <CJK> */
-MAP(0x51, 0x3B, 0x7A35) /* <CJK> */
-MAP(0x51, 0x3C, 0x7A38) /* <CJK> */
-MAP(0x51, 0x3D, 0x7A39) /* <CJK> */
-MAP(0x51, 0x3E, 0x7A3A) /* <CJK> */
-MAP(0x51, 0x3F, 0x7A44) /* <CJK> */
-MAP(0x51, 0x40, 0x7A45) /* <CJK> */
-MAP(0x51, 0x41, 0x7A47) /* <CJK> */
-MAP(0x51, 0x42, 0x7A48) /* <CJK> */
-MAP(0x51, 0x43, 0x7A4C) /* <CJK> */
-MAP(0x51, 0x44, 0x7A55) /* <CJK> */
-MAP(0x51, 0x45, 0x7A56) /* <CJK> */
-MAP(0x51, 0x46, 0x7A59) /* <CJK> */
-MAP(0x51, 0x47, 0x7A5C) /* <CJK> */
-MAP(0x51, 0x48, 0x7A5D) /* <CJK> */
-MAP(0x51, 0x49, 0x7A5F) /* <CJK> */
-MAP(0x51, 0x4A, 0x7A60) /* <CJK> */
-MAP(0x51, 0x4B, 0x7A65) /* <CJK> */
-MAP(0x51, 0x4C, 0x7A67) /* <CJK> */
-MAP(0x51, 0x4D, 0x7A6A) /* <CJK> */
-MAP(0x51, 0x4E, 0x7A6D) /* <CJK> */
-MAP(0x51, 0x4F, 0x7A75) /* <CJK> */
-MAP(0x51, 0x50, 0x7A78) /* <CJK> */
-MAP(0x51, 0x51, 0x7A7E) /* <CJK> */
-MAP(0x51, 0x52, 0x7A80) /* <CJK> */
-MAP(0x51, 0x53, 0x7A82) /* <CJK> */
-MAP(0x51, 0x54, 0x7A85) /* <CJK> */
-MAP(0x51, 0x55, 0x7A86) /* <CJK> */
-MAP(0x51, 0x56, 0x7A8A) /* <CJK> */
-MAP(0x51, 0x57, 0x7A8B) /* <CJK> */
-MAP(0x51, 0x58, 0x7A90) /* <CJK> */
-MAP(0x51, 0x59, 0x7A91) /* <CJK> */
-MAP(0x51, 0x5A, 0x7A94) /* <CJK> */
-MAP(0x51, 0x5B, 0x7A9E) /* <CJK> */
-MAP(0x51, 0x5C, 0x7AA0) /* <CJK> */
-MAP(0x51, 0x5D, 0x7AA3) /* <CJK> */
-MAP(0x51, 0x5E, 0x7AAC) /* <CJK> */
-MAP(0x51, 0x5F, 0x7AB3) /* <CJK> */
-MAP(0x51, 0x60, 0x7AB5) /* <CJK> */
-MAP(0x51, 0x61, 0x7AB9) /* <CJK> */
-MAP(0x51, 0x62, 0x7ABB) /* <CJK> */
-MAP(0x51, 0x63, 0x7ABC) /* <CJK> */
-MAP(0x51, 0x64, 0x7AC6) /* <CJK> */
-MAP(0x51, 0x65, 0x7AC9) /* <CJK> */
-MAP(0x51, 0x66, 0x7ACC) /* <CJK> */
-MAP(0x51, 0x67, 0x7ACE) /* <CJK> */
-MAP(0x51, 0x68, 0x7AD1) /* <CJK> */
-MAP(0x51, 0x69, 0x7ADB) /* <CJK> */
-MAP(0x51, 0x6A, 0x7AE8) /* <CJK> */
-MAP(0x51, 0x6B, 0x7AE9) /* <CJK> */
-MAP(0x51, 0x6C, 0x7AEB) /* <CJK> */
-MAP(0x51, 0x6D, 0x7AEC) /* <CJK> */
-MAP(0x51, 0x6E, 0x7AF1) /* <CJK> */
-MAP(0x51, 0x6F, 0x7AF4) /* <CJK> */
-MAP(0x51, 0x70, 0x7AFB) /* <CJK> */
-MAP(0x51, 0x71, 0x7AFD) /* <CJK> */
-MAP(0x51, 0x72, 0x7AFE) /* <CJK> */
-MAP(0x51, 0x73, 0x7B07) /* <CJK> */
-MAP(0x51, 0x74, 0x7B14) /* <CJK> */
-MAP(0x51, 0x75, 0x7B1F) /* <CJK> */
-MAP(0x51, 0x76, 0x7B23) /* <CJK> */
-MAP(0x51, 0x77, 0x7B27) /* <CJK> */
-MAP(0x51, 0x78, 0x7B29) /* <CJK> */
-MAP(0x51, 0x79, 0x7B2A) /* <CJK> */
-MAP(0x51, 0x7A, 0x7B2B) /* <CJK> */
-MAP(0x51, 0x7B, 0x7B2D) /* <CJK> */
-MAP(0x51, 0x7C, 0x7B2E) /* <CJK> */
-MAP(0x51, 0x7D, 0x7B2F) /* <CJK> */
-MAP(0x51, 0x7E, 0x7B30) /* <CJK> */
-MAP(0x52, 0x21, 0x7B31) /* <CJK> */
-MAP(0x52, 0x22, 0x7B34) /* <CJK> */
-MAP(0x52, 0x23, 0x7B3D) /* <CJK> */
-MAP(0x52, 0x24, 0x7B3F) /* <CJK> */
-MAP(0x52, 0x25, 0x7B40) /* <CJK> */
-MAP(0x52, 0x26, 0x7B41) /* <CJK> */
-MAP(0x52, 0x27, 0x7B47) /* <CJK> */
-MAP(0x52, 0x28, 0x7B4E) /* <CJK> */
-MAP(0x52, 0x29, 0x7B55) /* <CJK> */
-MAP(0x52, 0x2A, 0x7B60) /* <CJK> */
-MAP(0x52, 0x2B, 0x7B64) /* <CJK> */
-MAP(0x52, 0x2C, 0x7B66) /* <CJK> */
-MAP(0x52, 0x2D, 0x7B69) /* <CJK> */
-MAP(0x52, 0x2E, 0x7B6A) /* <CJK> */
-MAP(0x52, 0x2F, 0x7B6D) /* <CJK> */
-MAP(0x52, 0x30, 0x7B6F) /* <CJK> */
-MAP(0x52, 0x31, 0x7B72) /* <CJK> */
-MAP(0x52, 0x32, 0x7B73) /* <CJK> */
-MAP(0x52, 0x33, 0x7B77) /* <CJK> */
-MAP(0x52, 0x34, 0x7B84) /* <CJK> */
-MAP(0x52, 0x35, 0x7B89) /* <CJK> */
-MAP(0x52, 0x36, 0x7B8E) /* <CJK> */
-MAP(0x52, 0x37, 0x7B90) /* <CJK> */
-MAP(0x52, 0x38, 0x7B91) /* <CJK> */
-MAP(0x52, 0x39, 0x7B96) /* <CJK> */
-MAP(0x52, 0x3A, 0x7B9B) /* <CJK> */
-MAP(0x52, 0x3B, 0x7B9E) /* <CJK> */
-MAP(0x52, 0x3C, 0x7BA0) /* <CJK> */
-MAP(0x52, 0x3D, 0x7BA5) /* <CJK> */
-MAP(0x52, 0x3E, 0x7BAC) /* <CJK> */
-MAP(0x52, 0x3F, 0x7BAF) /* <CJK> */
-MAP(0x52, 0x40, 0x7BB0) /* <CJK> */
-MAP(0x52, 0x41, 0x7BB2) /* <CJK> */
-MAP(0x52, 0x42, 0x7BB5) /* <CJK> */
-MAP(0x52, 0x43, 0x7BB6) /* <CJK> */
-MAP(0x52, 0x44, 0x7BBA) /* <CJK> */
-MAP(0x52, 0x45, 0x7BBB) /* <CJK> */
-MAP(0x52, 0x46, 0x7BBC) /* <CJK> */
-MAP(0x52, 0x47, 0x7BBD) /* <CJK> */
-MAP(0x52, 0x48, 0x7BC2) /* <CJK> */
-MAP(0x52, 0x49, 0x7BC5) /* <CJK> */
-MAP(0x52, 0x4A, 0x7BC8) /* <CJK> */
-MAP(0x52, 0x4B, 0x7BCA) /* <CJK> */
-MAP(0x52, 0x4C, 0x7BD4) /* <CJK> */
-MAP(0x52, 0x4D, 0x7BD6) /* <CJK> */
-MAP(0x52, 0x4E, 0x7BD7) /* <CJK> */
-MAP(0x52, 0x4F, 0x7BD9) /* <CJK> */
-MAP(0x52, 0x50, 0x7BDA) /* <CJK> */
-MAP(0x52, 0x51, 0x7BDB) /* <CJK> */
-MAP(0x52, 0x52, 0x7BE8) /* <CJK> */
-MAP(0x52, 0x53, 0x7BEA) /* <CJK> */
-MAP(0x52, 0x54, 0x7BF2) /* <CJK> */
-MAP(0x52, 0x55, 0x7BF4) /* <CJK> */
-MAP(0x52, 0x56, 0x7BF5) /* <CJK> */
-MAP(0x52, 0x57, 0x7BF8) /* <CJK> */
-MAP(0x52, 0x58, 0x7BF9) /* <CJK> */
-MAP(0x52, 0x59, 0x7BFA) /* <CJK> */
-MAP(0x52, 0x5A, 0x7BFC) /* <CJK> */
-MAP(0x52, 0x5B, 0x7BFE) /* <CJK> */
-MAP(0x52, 0x5C, 0x7C01) /* <CJK> */
-MAP(0x52, 0x5D, 0x7C02) /* <CJK> */
-MAP(0x52, 0x5E, 0x7C03) /* <CJK> */
-MAP(0x52, 0x5F, 0x7C04) /* <CJK> */
-MAP(0x52, 0x60, 0x7C06) /* <CJK> */
-MAP(0x52, 0x61, 0x7C09) /* <CJK> */
-MAP(0x52, 0x62, 0x7C0B) /* <CJK> */
-MAP(0x52, 0x63, 0x7C0C) /* <CJK> */
-MAP(0x52, 0x64, 0x7C0E) /* <CJK> */
-MAP(0x52, 0x65, 0x7C0F) /* <CJK> */
-MAP(0x52, 0x66, 0x7C19) /* <CJK> */
-MAP(0x52, 0x67, 0x7C1B) /* <CJK> */
-MAP(0x52, 0x68, 0x7C20) /* <CJK> */
-MAP(0x52, 0x69, 0x7C25) /* <CJK> */
-MAP(0x52, 0x6A, 0x7C26) /* <CJK> */
-MAP(0x52, 0x6B, 0x7C28) /* <CJK> */
-MAP(0x52, 0x6C, 0x7C2C) /* <CJK> */
-MAP(0x52, 0x6D, 0x7C31) /* <CJK> */
-MAP(0x52, 0x6E, 0x7C33) /* <CJK> */
-MAP(0x52, 0x6F, 0x7C34) /* <CJK> */
-MAP(0x52, 0x70, 0x7C36) /* <CJK> */
-MAP(0x52, 0x71, 0x7C39) /* <CJK> */
-MAP(0x52, 0x72, 0x7C3A) /* <CJK> */
-MAP(0x52, 0x73, 0x7C46) /* <CJK> */
-MAP(0x52, 0x74, 0x7C4A) /* <CJK> */
-MAP(0x52, 0x75, 0x7C55) /* <CJK> */
-MAP(0x52, 0x76, 0x7C51) /* <CJK> */
-MAP(0x52, 0x77, 0x7C52) /* <CJK> */
-MAP(0x52, 0x78, 0x7C53) /* <CJK> */
-MAP(0x52, 0x79, 0x7C59) /* <CJK> */
-MAP(0x52, 0x7A, 0x7C5A) /* <CJK> */
-MAP(0x52, 0x7B, 0x7C5B) /* <CJK> */
-MAP(0x52, 0x7C, 0x7C5C) /* <CJK> */
-MAP(0x52, 0x7D, 0x7C5D) /* <CJK> */
-MAP(0x52, 0x7E, 0x7C5E) /* <CJK> */
-MAP(0x53, 0x21, 0x7C61) /* <CJK> */
-MAP(0x53, 0x22, 0x7C63) /* <CJK> */
-MAP(0x53, 0x23, 0x7C67) /* <CJK> */
-MAP(0x53, 0x24, 0x7C69) /* <CJK> */
-MAP(0x53, 0x25, 0x7C6D) /* <CJK> */
-MAP(0x53, 0x26, 0x7C6E) /* <CJK> */
-MAP(0x53, 0x27, 0x7C70) /* <CJK> */
-MAP(0x53, 0x28, 0x7C72) /* <CJK> */
-MAP(0x53, 0x29, 0x7C79) /* <CJK> */
-MAP(0x53, 0x2A, 0x7C7C) /* <CJK> */
-MAP(0x53, 0x2B, 0x7C7D) /* <CJK> */
-MAP(0x53, 0x2C, 0x7C86) /* <CJK> */
-MAP(0x53, 0x2D, 0x7C87) /* <CJK> */
-MAP(0x53, 0x2E, 0x7C8F) /* <CJK> */
-MAP(0x53, 0x2F, 0x7C94) /* <CJK> */
-MAP(0x53, 0x30, 0x7C9E) /* <CJK> */
-MAP(0x53, 0x31, 0x7CA0) /* <CJK> */
-MAP(0x53, 0x32, 0x7CA6) /* <CJK> */
-MAP(0x53, 0x33, 0x7CB0) /* <CJK> */
-MAP(0x53, 0x34, 0x7CB6) /* <CJK> */
-MAP(0x53, 0x35, 0x7CB7) /* <CJK> */
-MAP(0x53, 0x36, 0x7CBA) /* <CJK> */
-MAP(0x53, 0x37, 0x7CBB) /* <CJK> */
-MAP(0x53, 0x38, 0x7CBC) /* <CJK> */
-MAP(0x53, 0x39, 0x7CBF) /* <CJK> */
-MAP(0x53, 0x3A, 0x7CC4) /* <CJK> */
-MAP(0x53, 0x3B, 0x7CC7) /* <CJK> */
-MAP(0x53, 0x3C, 0x7CC8) /* <CJK> */
-MAP(0x53, 0x3D, 0x7CC9) /* <CJK> */
-MAP(0x53, 0x3E, 0x7CCD) /* <CJK> */
-MAP(0x53, 0x3F, 0x7CCF) /* <CJK> */
-MAP(0x53, 0x40, 0x7CD3) /* <CJK> */
-MAP(0x53, 0x41, 0x7CD4) /* <CJK> */
-MAP(0x53, 0x42, 0x7CD5) /* <CJK> */
-MAP(0x53, 0x43, 0x7CD7) /* <CJK> */
-MAP(0x53, 0x44, 0x7CD9) /* <CJK> */
-MAP(0x53, 0x45, 0x7CDA) /* <CJK> */
-MAP(0x53, 0x46, 0x7CDD) /* <CJK> */
-MAP(0x53, 0x47, 0x7CE6) /* <CJK> */
-MAP(0x53, 0x48, 0x7CE9) /* <CJK> */
-MAP(0x53, 0x49, 0x7CEB) /* <CJK> */
-MAP(0x53, 0x4A, 0x7CF5) /* <CJK> */
-MAP(0x53, 0x4B, 0x7D03) /* <CJK> */
-MAP(0x53, 0x4C, 0x7D07) /* <CJK> */
-MAP(0x53, 0x4D, 0x7D08) /* <CJK> */
-MAP(0x53, 0x4E, 0x7D09) /* <CJK> */
-MAP(0x53, 0x4F, 0x7D0F) /* <CJK> */
-MAP(0x53, 0x50, 0x7D11) /* <CJK> */
-MAP(0x53, 0x51, 0x7D12) /* <CJK> */
-MAP(0x53, 0x52, 0x7D13) /* <CJK> */
-MAP(0x53, 0x53, 0x7D16) /* <CJK> */
-MAP(0x53, 0x54, 0x7D1D) /* <CJK> */
-MAP(0x53, 0x55, 0x7D1E) /* <CJK> */
-MAP(0x53, 0x56, 0x7D23) /* <CJK> */
-MAP(0x53, 0x57, 0x7D26) /* <CJK> */
-MAP(0x53, 0x58, 0x7D2A) /* <CJK> */
-MAP(0x53, 0x59, 0x7D2D) /* <CJK> */
-MAP(0x53, 0x5A, 0x7D31) /* <CJK> */
-MAP(0x53, 0x5B, 0x7D3C) /* <CJK> */
-MAP(0x53, 0x5C, 0x7D3D) /* <CJK> */
-MAP(0x53, 0x5D, 0x7D3E) /* <CJK> */
-MAP(0x53, 0x5E, 0x7D40) /* <CJK> */
-MAP(0x53, 0x5F, 0x7D41) /* <CJK> */
-MAP(0x53, 0x60, 0x7D47) /* <CJK> */
-MAP(0x53, 0x61, 0x7D48) /* <CJK> */
-MAP(0x53, 0x62, 0x7D4D) /* <CJK> */
-MAP(0x53, 0x63, 0x7D51) /* <CJK> */
-MAP(0x53, 0x64, 0x7D53) /* <CJK> */
-MAP(0x53, 0x65, 0x7D57) /* <CJK> */
-MAP(0x53, 0x66, 0x7D59) /* <CJK> */
-MAP(0x53, 0x67, 0x7D5A) /* <CJK> */
-MAP(0x53, 0x68, 0x7D5C) /* <CJK> */
-MAP(0x53, 0x69, 0x7D5D) /* <CJK> */
-MAP(0x53, 0x6A, 0x7D65) /* <CJK> */
-MAP(0x53, 0x6B, 0x7D67) /* <CJK> */
-MAP(0x53, 0x6C, 0x7D6A) /* <CJK> */
-MAP(0x53, 0x6D, 0x7D70) /* <CJK> */
-MAP(0x53, 0x6E, 0x7D78) /* <CJK> */
-MAP(0x53, 0x6F, 0x7D7A) /* <CJK> */
-MAP(0x53, 0x70, 0x7D7B) /* <CJK> */
-MAP(0x53, 0x71, 0x7D7F) /* <CJK> */
-MAP(0x53, 0x72, 0x7D81) /* <CJK> */
-MAP(0x53, 0x73, 0x7D82) /* <CJK> */
-MAP(0x53, 0x74, 0x7D83) /* <CJK> */
-MAP(0x53, 0x75, 0x7D85) /* <CJK> */
-MAP(0x53, 0x76, 0x7D86) /* <CJK> */
-MAP(0x53, 0x77, 0x7D88) /* <CJK> */
-MAP(0x53, 0x78, 0x7D8B) /* <CJK> */
-MAP(0x53, 0x79, 0x7D8C) /* <CJK> */
-MAP(0x53, 0x7A, 0x7D8D) /* <CJK> */
-MAP(0x53, 0x7B, 0x7D91) /* <CJK> */
-MAP(0x53, 0x7C, 0x7D96) /* <CJK> */
-MAP(0x53, 0x7D, 0x7D97) /* <CJK> */
-MAP(0x53, 0x7E, 0x7D9D) /* <CJK> */
-MAP(0x54, 0x21, 0x7D9E) /* <CJK> */
-MAP(0x54, 0x22, 0x7DA6) /* <CJK> */
-MAP(0x54, 0x23, 0x7DA7) /* <CJK> */
-MAP(0x54, 0x24, 0x7DAA) /* <CJK> */
-MAP(0x54, 0x25, 0x7DB3) /* <CJK> */
-MAP(0x54, 0x26, 0x7DB6) /* <CJK> */
-MAP(0x54, 0x27, 0x7DB7) /* <CJK> */
-MAP(0x54, 0x28, 0x7DB9) /* <CJK> */
-MAP(0x54, 0x29, 0x7DC2) /* <CJK> */
-MAP(0x54, 0x2A, 0x7DC3) /* <CJK> */
-MAP(0x54, 0x2B, 0x7DC4) /* <CJK> */
-MAP(0x54, 0x2C, 0x7DC5) /* <CJK> */
-MAP(0x54, 0x2D, 0x7DC6) /* <CJK> */
-MAP(0x54, 0x2E, 0x7DCC) /* <CJK> */
-MAP(0x54, 0x2F, 0x7DCD) /* <CJK> */
-MAP(0x54, 0x30, 0x7DCE) /* <CJK> */
-MAP(0x54, 0x31, 0x7DD7) /* <CJK> */
-MAP(0x54, 0x32, 0x7DD9) /* <CJK> */
-MAP(0x54, 0x33, 0x7E00) /* <CJK> */
-MAP(0x54, 0x34, 0x7DE2) /* <CJK> */
-MAP(0x54, 0x35, 0x7DE5) /* <CJK> */
-MAP(0x54, 0x36, 0x7DE6) /* <CJK> */
-MAP(0x54, 0x37, 0x7DEA) /* <CJK> */
-MAP(0x54, 0x38, 0x7DEB) /* <CJK> */
-MAP(0x54, 0x39, 0x7DED) /* <CJK> */
-MAP(0x54, 0x3A, 0x7DF1) /* <CJK> */
-MAP(0x54, 0x3B, 0x7DF5) /* <CJK> */
-MAP(0x54, 0x3C, 0x7DF6) /* <CJK> */
-MAP(0x54, 0x3D, 0x7DF9) /* <CJK> */
-MAP(0x54, 0x3E, 0x7DFA) /* <CJK> */
-MAP(0x54, 0x3F, 0x7E08) /* <CJK> */
-MAP(0x54, 0x40, 0x7E10) /* <CJK> */
-MAP(0x54, 0x41, 0x7E11) /* <CJK> */
-MAP(0x54, 0x42, 0x7E15) /* <CJK> */
-MAP(0x54, 0x43, 0x7E17) /* <CJK> */
-MAP(0x54, 0x44, 0x7E1C) /* <CJK> */
-MAP(0x54, 0x45, 0x7E1D) /* <CJK> */
-MAP(0x54, 0x46, 0x7E20) /* <CJK> */
-MAP(0x54, 0x47, 0x7E27) /* <CJK> */
-MAP(0x54, 0x48, 0x7E28) /* <CJK> */
-MAP(0x54, 0x49, 0x7E2C) /* <CJK> */
-MAP(0x54, 0x4A, 0x7E2D) /* <CJK> */
-MAP(0x54, 0x4B, 0x7E2F) /* <CJK> */
-MAP(0x54, 0x4C, 0x7E33) /* <CJK> */
-MAP(0x54, 0x4D, 0x7E36) /* <CJK> */
-MAP(0x54, 0x4E, 0x7E3F) /* <CJK> */
-MAP(0x54, 0x4F, 0x7E44) /* <CJK> */
-MAP(0x54, 0x50, 0x7E45) /* <CJK> */
-MAP(0x54, 0x51, 0x7E47) /* <CJK> */
-MAP(0x54, 0x52, 0x7E4E) /* <CJK> */
-MAP(0x54, 0x53, 0x7E50) /* <CJK> */
-MAP(0x54, 0x54, 0x7E52) /* <CJK> */
-MAP(0x54, 0x55, 0x7E58) /* <CJK> */
-MAP(0x54, 0x56, 0x7E5F) /* <CJK> */
-MAP(0x54, 0x57, 0x7E61) /* <CJK> */
-MAP(0x54, 0x58, 0x7E62) /* <CJK> */
-MAP(0x54, 0x59, 0x7E65) /* <CJK> */
-MAP(0x54, 0x5A, 0x7E6B) /* <CJK> */
-MAP(0x54, 0x5B, 0x7E6E) /* <CJK> */
-MAP(0x54, 0x5C, 0x7E6F) /* <CJK> */
-MAP(0x54, 0x5D, 0x7E73) /* <CJK> */
-MAP(0x54, 0x5E, 0x7E78) /* <CJK> */
-MAP(0x54, 0x5F, 0x7E7E) /* <CJK> */
-MAP(0x54, 0x60, 0x7E81) /* <CJK> */
-MAP(0x54, 0x61, 0x7E86) /* <CJK> */
-MAP(0x54, 0x62, 0x7E87) /* <CJK> */
-MAP(0x54, 0x63, 0x7E8A) /* <CJK> */
-MAP(0x54, 0x64, 0x7E8D) /* <CJK> */
-MAP(0x54, 0x65, 0x7E91) /* <CJK> */
-MAP(0x54, 0x66, 0x7E95) /* <CJK> */
-MAP(0x54, 0x67, 0x7E98) /* <CJK> */
-MAP(0x54, 0x68, 0x7E9A) /* <CJK> */
-MAP(0x54, 0x69, 0x7E9D) /* <CJK> */
-MAP(0x54, 0x6A, 0x7E9E) /* <CJK> */
-MAP(0x54, 0x6B, 0x7F3C) /* <CJK> */
-MAP(0x54, 0x6C, 0x7F3B) /* <CJK> */
-MAP(0x54, 0x6D, 0x7F3D) /* <CJK> */
-MAP(0x54, 0x6E, 0x7F3E) /* <CJK> */
-MAP(0x54, 0x6F, 0x7F3F) /* <CJK> */
-MAP(0x54, 0x70, 0x7F43) /* <CJK> */
-MAP(0x54, 0x71, 0x7F44) /* <CJK> */
-MAP(0x54, 0x72, 0x7F47) /* <CJK> */
-MAP(0x54, 0x73, 0x7F4F) /* <CJK> */
-MAP(0x54, 0x74, 0x7F52) /* <CJK> */
-MAP(0x54, 0x75, 0x7F53) /* <CJK> */
-MAP(0x54, 0x76, 0x7F5B) /* <CJK> */
-MAP(0x54, 0x77, 0x7F5C) /* <CJK> */
-MAP(0x54, 0x78, 0x7F5D) /* <CJK> */
-MAP(0x54, 0x79, 0x7F61) /* <CJK> */
-MAP(0x54, 0x7A, 0x7F63) /* <CJK> */
-MAP(0x54, 0x7B, 0x7F64) /* <CJK> */
-MAP(0x54, 0x7C, 0x7F65) /* <CJK> */
-MAP(0x54, 0x7D, 0x7F66) /* <CJK> */
-MAP(0x54, 0x7E, 0x7F6D) /* <CJK> */
-MAP(0x55, 0x21, 0x7F71) /* <CJK> */
-MAP(0x55, 0x22, 0x7F7D) /* <CJK> */
-MAP(0x55, 0x23, 0x7F7E) /* <CJK> */
-MAP(0x55, 0x24, 0x7F7F) /* <CJK> */
-MAP(0x55, 0x25, 0x7F80) /* <CJK> */
-MAP(0x55, 0x26, 0x7F8B) /* <CJK> */
-MAP(0x55, 0x27, 0x7F8D) /* <CJK> */
-MAP(0x55, 0x28, 0x7F8F) /* <CJK> */
-MAP(0x55, 0x29, 0x7F90) /* <CJK> */
-MAP(0x55, 0x2A, 0x7F91) /* <CJK> */
-MAP(0x55, 0x2B, 0x7F96) /* <CJK> */
-MAP(0x55, 0x2C, 0x7F97) /* <CJK> */
-MAP(0x55, 0x2D, 0x7F9C) /* <CJK> */
-MAP(0x55, 0x2E, 0x7FA1) /* <CJK> */
-MAP(0x55, 0x2F, 0x7FA2) /* <CJK> */
-MAP(0x55, 0x30, 0x7FA6) /* <CJK> */
-MAP(0x55, 0x31, 0x7FAA) /* <CJK> */
-MAP(0x55, 0x32, 0x7FAD) /* <CJK> */
-MAP(0x55, 0x33, 0x7FB4) /* <CJK> */
-MAP(0x55, 0x34, 0x7FBC) /* <CJK> */
-MAP(0x55, 0x35, 0x7FBF) /* <CJK> */
-MAP(0x55, 0x36, 0x7FC0) /* <CJK> */
-MAP(0x55, 0x37, 0x7FC3) /* <CJK> */
-MAP(0x55, 0x38, 0x7FC8) /* <CJK> */
-MAP(0x55, 0x39, 0x7FCE) /* <CJK> */
-MAP(0x55, 0x3A, 0x7FCF) /* <CJK> */
-MAP(0x55, 0x3B, 0x7FDB) /* <CJK> */
-MAP(0x55, 0x3C, 0x7FDF) /* <CJK> */
-MAP(0x55, 0x3D, 0x7FE3) /* <CJK> */
-MAP(0x55, 0x3E, 0x7FE5) /* <CJK> */
-MAP(0x55, 0x3F, 0x7FE8) /* <CJK> */
-MAP(0x55, 0x40, 0x7FEC) /* <CJK> */
-MAP(0x55, 0x41, 0x7FEE) /* <CJK> */
-MAP(0x55, 0x42, 0x7FEF) /* <CJK> */
-MAP(0x55, 0x43, 0x7FF2) /* <CJK> */
-MAP(0x55, 0x44, 0x7FFA) /* <CJK> */
-MAP(0x55, 0x45, 0x7FFD) /* <CJK> */
-MAP(0x55, 0x46, 0x7FFE) /* <CJK> */
-MAP(0x55, 0x47, 0x7FFF) /* <CJK> */
-MAP(0x55, 0x48, 0x8007) /* <CJK> */
-MAP(0x55, 0x49, 0x8008) /* <CJK> */
-MAP(0x55, 0x4A, 0x800A) /* <CJK> */
-MAP(0x55, 0x4B, 0x800D) /* <CJK> */
-MAP(0x55, 0x4C, 0x800E) /* <CJK> */
-MAP(0x55, 0x4D, 0x800F) /* <CJK> */
-MAP(0x55, 0x4E, 0x8011) /* <CJK> */
-MAP(0x55, 0x4F, 0x8013) /* <CJK> */
-MAP(0x55, 0x50, 0x8014) /* <CJK> */
-MAP(0x55, 0x51, 0x8016) /* <CJK> */
-MAP(0x55, 0x52, 0x801D) /* <CJK> */
-MAP(0x55, 0x53, 0x801E) /* <CJK> */
-MAP(0x55, 0x54, 0x801F) /* <CJK> */
-MAP(0x55, 0x55, 0x8020) /* <CJK> */
-MAP(0x55, 0x56, 0x8024) /* <CJK> */
-MAP(0x55, 0x57, 0x8026) /* <CJK> */
-MAP(0x55, 0x58, 0x802C) /* <CJK> */
-MAP(0x55, 0x59, 0x802E) /* <CJK> */
-MAP(0x55, 0x5A, 0x8030) /* <CJK> */
-MAP(0x55, 0x5B, 0x8034) /* <CJK> */
-MAP(0x55, 0x5C, 0x8035) /* <CJK> */
-MAP(0x55, 0x5D, 0x8037) /* <CJK> */
-MAP(0x55, 0x5E, 0x8039) /* <CJK> */
-MAP(0x55, 0x5F, 0x803A) /* <CJK> */
-MAP(0x55, 0x60, 0x803C) /* <CJK> */
-MAP(0x55, 0x61, 0x803E) /* <CJK> */
-MAP(0x55, 0x62, 0x8040) /* <CJK> */
-MAP(0x55, 0x63, 0x8044) /* <CJK> */
-MAP(0x55, 0x64, 0x8060) /* <CJK> */
-MAP(0x55, 0x65, 0x8064) /* <CJK> */
-MAP(0x55, 0x66, 0x8066) /* <CJK> */
-MAP(0x55, 0x67, 0x806D) /* <CJK> */
-MAP(0x55, 0x68, 0x8071) /* <CJK> */
-MAP(0x55, 0x69, 0x8075) /* <CJK> */
-MAP(0x55, 0x6A, 0x8081) /* <CJK> */
-MAP(0x55, 0x6B, 0x8088) /* <CJK> */
-MAP(0x55, 0x6C, 0x808E) /* <CJK> */
-MAP(0x55, 0x6D, 0x809C) /* <CJK> */
-MAP(0x55, 0x6E, 0x809E) /* <CJK> */
-MAP(0x55, 0x6F, 0x80A6) /* <CJK> */
-MAP(0x55, 0x70, 0x80A7) /* <CJK> */
-MAP(0x55, 0x71, 0x80AB) /* <CJK> */
-MAP(0x55, 0x72, 0x80B8) /* <CJK> */
-MAP(0x55, 0x73, 0x80B9) /* <CJK> */
-MAP(0x55, 0x74, 0x80C8) /* <CJK> */
-MAP(0x55, 0x75, 0x80CD) /* <CJK> */
-MAP(0x55, 0x76, 0x80CF) /* <CJK> */
-MAP(0x55, 0x77, 0x80D2) /* <CJK> */
-MAP(0x55, 0x78, 0x80D4) /* <CJK> */
-MAP(0x55, 0x79, 0x80D5) /* <CJK> */
-MAP(0x55, 0x7A, 0x80D7) /* <CJK> */
-MAP(0x55, 0x7B, 0x80D8) /* <CJK> */
-MAP(0x55, 0x7C, 0x80E0) /* <CJK> */
-MAP(0x55, 0x7D, 0x80ED) /* <CJK> */
-MAP(0x55, 0x7E, 0x80EE) /* <CJK> */
-MAP(0x56, 0x21, 0x80F0) /* <CJK> */
-MAP(0x56, 0x22, 0x80F2) /* <CJK> */
-MAP(0x56, 0x23, 0x80F3) /* <CJK> */
-MAP(0x56, 0x24, 0x80F6) /* <CJK> */
-MAP(0x56, 0x25, 0x80F9) /* <CJK> */
-MAP(0x56, 0x26, 0x80FA) /* <CJK> */
-MAP(0x56, 0x27, 0x80FE) /* <CJK> */
-MAP(0x56, 0x28, 0x8103) /* <CJK> */
-MAP(0x56, 0x29, 0x810B) /* <CJK> */
-MAP(0x56, 0x2A, 0x8116) /* <CJK> */
-MAP(0x56, 0x2B, 0x8117) /* <CJK> */
-MAP(0x56, 0x2C, 0x8118) /* <CJK> */
-MAP(0x56, 0x2D, 0x811C) /* <CJK> */
-MAP(0x56, 0x2E, 0x811E) /* <CJK> */
-MAP(0x56, 0x2F, 0x8120) /* <CJK> */
-MAP(0x56, 0x30, 0x8124) /* <CJK> */
-MAP(0x56, 0x31, 0x8127) /* <CJK> */
-MAP(0x56, 0x32, 0x812C) /* <CJK> */
-MAP(0x56, 0x33, 0x8130) /* <CJK> */
-MAP(0x56, 0x34, 0x8135) /* <CJK> */
-MAP(0x56, 0x35, 0x813A) /* <CJK> */
-MAP(0x56, 0x36, 0x813C) /* <CJK> */
-MAP(0x56, 0x37, 0x8145) /* <CJK> */
-MAP(0x56, 0x38, 0x8147) /* <CJK> */
-MAP(0x56, 0x39, 0x814A) /* <CJK> */
-MAP(0x56, 0x3A, 0x814C) /* <CJK> */
-MAP(0x56, 0x3B, 0x8152) /* <CJK> */
-MAP(0x56, 0x3C, 0x8157) /* <CJK> */
-MAP(0x56, 0x3D, 0x8160) /* <CJK> */
-MAP(0x56, 0x3E, 0x8161) /* <CJK> */
-MAP(0x56, 0x3F, 0x8167) /* <CJK> */
-MAP(0x56, 0x40, 0x8168) /* <CJK> */
-MAP(0x56, 0x41, 0x8169) /* <CJK> */
-MAP(0x56, 0x42, 0x816D) /* <CJK> */
-MAP(0x56, 0x43, 0x816F) /* <CJK> */
-MAP(0x56, 0x44, 0x8177) /* <CJK> */
-MAP(0x56, 0x45, 0x8181) /* <CJK> */
-MAP(0x56, 0x46, 0x8190) /* <CJK> */
-MAP(0x56, 0x47, 0x8184) /* <CJK> */
-MAP(0x56, 0x48, 0x8185) /* <CJK> */
-MAP(0x56, 0x49, 0x8186) /* <CJK> */
-MAP(0x56, 0x4A, 0x818B) /* <CJK> */
-MAP(0x56, 0x4B, 0x818E) /* <CJK> */
-MAP(0x56, 0x4C, 0x8196) /* <CJK> */
-MAP(0x56, 0x4D, 0x8198) /* <CJK> */
-MAP(0x56, 0x4E, 0x819B) /* <CJK> */
-MAP(0x56, 0x4F, 0x819E) /* <CJK> */
-MAP(0x56, 0x50, 0x81A2) /* <CJK> */
-MAP(0x56, 0x51, 0x81AE) /* <CJK> */
-MAP(0x56, 0x52, 0x81B2) /* <CJK> */
-MAP(0x56, 0x53, 0x81B4) /* <CJK> */
-MAP(0x56, 0x54, 0x81BB) /* <CJK> */
-MAP(0x56, 0x55, 0x81CB) /* <CJK> */
-MAP(0x56, 0x56, 0x81C3) /* <CJK> */
-MAP(0x56, 0x57, 0x81C5) /* <CJK> */
-MAP(0x56, 0x58, 0x81CA) /* <CJK> */
-MAP(0x56, 0x59, 0x81CE) /* <CJK> */
-MAP(0x56, 0x5A, 0x81CF) /* <CJK> */
-MAP(0x56, 0x5B, 0x81D5) /* <CJK> */
-MAP(0x56, 0x5C, 0x81D7) /* <CJK> */
-MAP(0x56, 0x5D, 0x81DB) /* <CJK> */
-MAP(0x56, 0x5E, 0x81DD) /* <CJK> */
-MAP(0x56, 0x5F, 0x81DE) /* <CJK> */
-MAP(0x56, 0x60, 0x81E1) /* <CJK> */
-MAP(0x56, 0x61, 0x81E4) /* <CJK> */
-MAP(0x56, 0x62, 0x81EB) /* <CJK> */
-MAP(0x56, 0x63, 0x81EC) /* <CJK> */
-MAP(0x56, 0x64, 0x81F0) /* <CJK> */
-MAP(0x56, 0x65, 0x81F1) /* <CJK> */
-MAP(0x56, 0x66, 0x81F2) /* <CJK> */
-MAP(0x56, 0x67, 0x81F5) /* <CJK> */
-MAP(0x56, 0x68, 0x81F6) /* <CJK> */
-MAP(0x56, 0x69, 0x81F8) /* <CJK> */
-MAP(0x56, 0x6A, 0x81F9) /* <CJK> */
-MAP(0x56, 0x6B, 0x81FD) /* <CJK> */
-MAP(0x56, 0x6C, 0x81FF) /* <CJK> */
-MAP(0x56, 0x6D, 0x8200) /* <CJK> */
-MAP(0x56, 0x6E, 0x8203) /* <CJK> */
-MAP(0x56, 0x6F, 0x820F) /* <CJK> */
-MAP(0x56, 0x70, 0x8213) /* <CJK> */
-MAP(0x56, 0x71, 0x8214) /* <CJK> */
-MAP(0x56, 0x72, 0x8219) /* <CJK> */
-MAP(0x56, 0x73, 0x821A) /* <CJK> */
-MAP(0x56, 0x74, 0x821D) /* <CJK> */
-MAP(0x56, 0x75, 0x8221) /* <CJK> */
-MAP(0x56, 0x76, 0x8222) /* <CJK> */
-MAP(0x56, 0x77, 0x8228) /* <CJK> */
-MAP(0x56, 0x78, 0x8232) /* <CJK> */
-MAP(0x56, 0x79, 0x8234) /* <CJK> */
-MAP(0x56, 0x7A, 0x823A) /* <CJK> */
-MAP(0x56, 0x7B, 0x8243) /* <CJK> */
-MAP(0x56, 0x7C, 0x8244) /* <CJK> */
-MAP(0x56, 0x7D, 0x8245) /* <CJK> */
-MAP(0x56, 0x7E, 0x8246) /* <CJK> */
-MAP(0x57, 0x21, 0x824B) /* <CJK> */
-MAP(0x57, 0x22, 0x824E) /* <CJK> */
-MAP(0x57, 0x23, 0x824F) /* <CJK> */
-MAP(0x57, 0x24, 0x8251) /* <CJK> */
-MAP(0x57, 0x25, 0x8256) /* <CJK> */
-MAP(0x57, 0x26, 0x825C) /* <CJK> */
-MAP(0x57, 0x27, 0x8260) /* <CJK> */
-MAP(0x57, 0x28, 0x8263) /* <CJK> */
-MAP(0x57, 0x29, 0x8267) /* <CJK> */
-MAP(0x57, 0x2A, 0x826D) /* <CJK> */
-MAP(0x57, 0x2B, 0x8274) /* <CJK> */
-MAP(0x57, 0x2C, 0x827B) /* <CJK> */
-MAP(0x57, 0x2D, 0x827D) /* <CJK> */
-MAP(0x57, 0x2E, 0x827F) /* <CJK> */
-MAP(0x57, 0x2F, 0x8280) /* <CJK> */
-MAP(0x57, 0x30, 0x8281) /* <CJK> */
-MAP(0x57, 0x31, 0x8283) /* <CJK> */
-MAP(0x57, 0x32, 0x8284) /* <CJK> */
-MAP(0x57, 0x33, 0x8287) /* <CJK> */
-MAP(0x57, 0x34, 0x8289) /* <CJK> */
-MAP(0x57, 0x35, 0x828A) /* <CJK> */
-MAP(0x57, 0x36, 0x828E) /* <CJK> */
-MAP(0x57, 0x37, 0x8291) /* <CJK> */
-MAP(0x57, 0x38, 0x8294) /* <CJK> */
-MAP(0x57, 0x39, 0x8296) /* <CJK> */
-MAP(0x57, 0x3A, 0x8298) /* <CJK> */
-MAP(0x57, 0x3B, 0x829A) /* <CJK> */
-MAP(0x57, 0x3C, 0x829B) /* <CJK> */
-MAP(0x57, 0x3D, 0x82A0) /* <CJK> */
-MAP(0x57, 0x3E, 0x82A1) /* <CJK> */
-MAP(0x57, 0x3F, 0x82A3) /* <CJK> */
-MAP(0x57, 0x40, 0x82A4) /* <CJK> */
-MAP(0x57, 0x41, 0x82A7) /* <CJK> */
-MAP(0x57, 0x42, 0x82A8) /* <CJK> */
-MAP(0x57, 0x43, 0x82A9) /* <CJK> */
-MAP(0x57, 0x44, 0x82AA) /* <CJK> */
-MAP(0x57, 0x45, 0x82AE) /* <CJK> */
-MAP(0x57, 0x46, 0x82B0) /* <CJK> */
-MAP(0x57, 0x47, 0x82B2) /* <CJK> */
-MAP(0x57, 0x48, 0x82B4) /* <CJK> */
-MAP(0x57, 0x49, 0x82B7) /* <CJK> */
-MAP(0x57, 0x4A, 0x82BA) /* <CJK> */
-MAP(0x57, 0x4B, 0x82BC) /* <CJK> */
-MAP(0x57, 0x4C, 0x82BE) /* <CJK> */
-MAP(0x57, 0x4D, 0x82BF) /* <CJK> */
-MAP(0x57, 0x4E, 0x82C6) /* <CJK> */
-MAP(0x57, 0x4F, 0x82D0) /* <CJK> */
-MAP(0x57, 0x50, 0x82D5) /* <CJK> */
-MAP(0x57, 0x51, 0x82DA) /* <CJK> */
-MAP(0x57, 0x52, 0x82E0) /* <CJK> */
-MAP(0x57, 0x53, 0x82E2) /* <CJK> */
-MAP(0x57, 0x54, 0x82E4) /* <CJK> */
-MAP(0x57, 0x55, 0x82E8) /* <CJK> */
-MAP(0x57, 0x56, 0x82EA) /* <CJK> */
-MAP(0x57, 0x57, 0x82ED) /* <CJK> */
-MAP(0x57, 0x58, 0x82EF) /* <CJK> */
-MAP(0x57, 0x59, 0x82F6) /* <CJK> */
-MAP(0x57, 0x5A, 0x82F7) /* <CJK> */
-MAP(0x57, 0x5B, 0x82FD) /* <CJK> */
-MAP(0x57, 0x5C, 0x82FE) /* <CJK> */
-MAP(0x57, 0x5D, 0x8300) /* <CJK> */
-MAP(0x57, 0x5E, 0x8301) /* <CJK> */
-MAP(0x57, 0x5F, 0x8307) /* <CJK> */
-MAP(0x57, 0x60, 0x8308) /* <CJK> */
-MAP(0x57, 0x61, 0x830A) /* <CJK> */
-MAP(0x57, 0x62, 0x830B) /* <CJK> */
-MAP(0x57, 0x63, 0x8354) /* <CJK> */
-MAP(0x57, 0x64, 0x831B) /* <CJK> */
-MAP(0x57, 0x65, 0x831D) /* <CJK> */
-MAP(0x57, 0x66, 0x831E) /* <CJK> */
-MAP(0x57, 0x67, 0x831F) /* <CJK> */
-MAP(0x57, 0x68, 0x8321) /* <CJK> */
-MAP(0x57, 0x69, 0x8322) /* <CJK> */
-MAP(0x57, 0x6A, 0x832C) /* <CJK> */
-MAP(0x57, 0x6B, 0x832D) /* <CJK> */
-MAP(0x57, 0x6C, 0x832E) /* <CJK> */
-MAP(0x57, 0x6D, 0x8330) /* <CJK> */
-MAP(0x57, 0x6E, 0x8333) /* <CJK> */
-MAP(0x57, 0x6F, 0x8337) /* <CJK> */
-MAP(0x57, 0x70, 0x833A) /* <CJK> */
-MAP(0x57, 0x71, 0x833C) /* <CJK> */
-MAP(0x57, 0x72, 0x833D) /* <CJK> */
-MAP(0x57, 0x73, 0x8342) /* <CJK> */
-MAP(0x57, 0x74, 0x8343) /* <CJK> */
-MAP(0x57, 0x75, 0x8344) /* <CJK> */
-MAP(0x57, 0x76, 0x8347) /* <CJK> */
-MAP(0x57, 0x77, 0x834D) /* <CJK> */
-MAP(0x57, 0x78, 0x834E) /* <CJK> */
-MAP(0x57, 0x79, 0x8351) /* <CJK> */
-MAP(0x57, 0x7A, 0x8355) /* <CJK> */
-MAP(0x57, 0x7B, 0x8356) /* <CJK> */
-MAP(0x57, 0x7C, 0x8357) /* <CJK> */
-MAP(0x57, 0x7D, 0x8370) /* <CJK> */
-MAP(0x57, 0x7E, 0x8378) /* <CJK> */
-MAP(0x58, 0x21, 0x837D) /* <CJK> */
-MAP(0x58, 0x22, 0x837F) /* <CJK> */
-MAP(0x58, 0x23, 0x8380) /* <CJK> */
-MAP(0x58, 0x24, 0x8382) /* <CJK> */
-MAP(0x58, 0x25, 0x8384) /* <CJK> */
-MAP(0x58, 0x26, 0x8386) /* <CJK> */
-MAP(0x58, 0x27, 0x838D) /* <CJK> */
-MAP(0x58, 0x28, 0x8392) /* <CJK> */
-MAP(0x58, 0x29, 0x8394) /* <CJK> */
-MAP(0x58, 0x2A, 0x8395) /* <CJK> */
-MAP(0x58, 0x2B, 0x8398) /* <CJK> */
-MAP(0x58, 0x2C, 0x8399) /* <CJK> */
-MAP(0x58, 0x2D, 0x839B) /* <CJK> */
-MAP(0x58, 0x2E, 0x839C) /* <CJK> */
-MAP(0x58, 0x2F, 0x839D) /* <CJK> */
-MAP(0x58, 0x30, 0x83A6) /* <CJK> */
-MAP(0x58, 0x31, 0x83A7) /* <CJK> */
-MAP(0x58, 0x32, 0x83A9) /* <CJK> */
-MAP(0x58, 0x33, 0x83AC) /* <CJK> */
-MAP(0x58, 0x34, 0x83BE) /* <CJK> */
-MAP(0x58, 0x35, 0x83BF) /* <CJK> */
-MAP(0x58, 0x36, 0x83C0) /* <CJK> */
-MAP(0x58, 0x37, 0x83C7) /* <CJK> */
-MAP(0x58, 0x38, 0x83C9) /* <CJK> */
-MAP(0x58, 0x39, 0x83CF) /* <CJK> */
-MAP(0x58, 0x3A, 0x83D0) /* <CJK> */
-MAP(0x58, 0x3B, 0x83D1) /* <CJK> */
-MAP(0x58, 0x3C, 0x83D4) /* <CJK> */
-MAP(0x58, 0x3D, 0x83DD) /* <CJK> */
-MAP(0x58, 0x3E, 0x8353) /* <CJK> */
-MAP(0x58, 0x3F, 0x83E8) /* <CJK> */
-MAP(0x58, 0x40, 0x83EA) /* <CJK> */
-MAP(0x58, 0x41, 0x83F6) /* <CJK> */
-MAP(0x58, 0x42, 0x83F8) /* <CJK> */
-MAP(0x58, 0x43, 0x83F9) /* <CJK> */
-MAP(0x58, 0x44, 0x83FC) /* <CJK> */
-MAP(0x58, 0x45, 0x8401) /* <CJK> */
-MAP(0x58, 0x46, 0x8406) /* <CJK> */
-MAP(0x58, 0x47, 0x840A) /* <CJK> */
-MAP(0x58, 0x48, 0x840F) /* <CJK> */
-MAP(0x58, 0x49, 0x8411) /* <CJK> */
-MAP(0x58, 0x4A, 0x8415) /* <CJK> */
-MAP(0x58, 0x4B, 0x8419) /* <CJK> */
-MAP(0x58, 0x4C, 0x83AD) /* <CJK> */
-MAP(0x58, 0x4D, 0x842F) /* <CJK> */
-MAP(0x58, 0x4E, 0x8439) /* <CJK> */
-MAP(0x58, 0x4F, 0x8445) /* <CJK> */
-MAP(0x58, 0x50, 0x8447) /* <CJK> */
-MAP(0x58, 0x51, 0x8448) /* <CJK> */
-MAP(0x58, 0x52, 0x844A) /* <CJK> */
-MAP(0x58, 0x53, 0x844D) /* <CJK> */
-MAP(0x58, 0x54, 0x844F) /* <CJK> */
-MAP(0x58, 0x55, 0x8451) /* <CJK> */
-MAP(0x58, 0x56, 0x8452) /* <CJK> */
-MAP(0x58, 0x57, 0x8456) /* <CJK> */
-MAP(0x58, 0x58, 0x8458) /* <CJK> */
-MAP(0x58, 0x59, 0x8459) /* <CJK> */
-MAP(0x58, 0x5A, 0x845A) /* <CJK> */
-MAP(0x58, 0x5B, 0x845C) /* <CJK> */
-MAP(0x58, 0x5C, 0x8460) /* <CJK> */
-MAP(0x58, 0x5D, 0x8464) /* <CJK> */
-MAP(0x58, 0x5E, 0x8465) /* <CJK> */
-MAP(0x58, 0x5F, 0x8467) /* <CJK> */
-MAP(0x58, 0x60, 0x846A) /* <CJK> */
-MAP(0x58, 0x61, 0x8470) /* <CJK> */
-MAP(0x58, 0x62, 0x8473) /* <CJK> */
-MAP(0x58, 0x63, 0x8474) /* <CJK> */
-MAP(0x58, 0x64, 0x8476) /* <CJK> */
-MAP(0x58, 0x65, 0x8478) /* <CJK> */
-MAP(0x58, 0x66, 0x847C) /* <CJK> */
-MAP(0x58, 0x67, 0x847D) /* <CJK> */
-MAP(0x58, 0x68, 0x8481) /* <CJK> */
-MAP(0x58, 0x69, 0x8485) /* <CJK> */
-MAP(0x58, 0x6A, 0x8492) /* <CJK> */
-MAP(0x58, 0x6B, 0x8493) /* <CJK> */
-MAP(0x58, 0x6C, 0x8495) /* <CJK> */
-MAP(0x58, 0x6D, 0x849E) /* <CJK> */
-MAP(0x58, 0x6E, 0x84A6) /* <CJK> */
-MAP(0x58, 0x6F, 0x84A8) /* <CJK> */
-MAP(0x58, 0x70, 0x84A9) /* <CJK> */
-MAP(0x58, 0x71, 0x84AA) /* <CJK> */
-MAP(0x58, 0x72, 0x84AF) /* <CJK> */
-MAP(0x58, 0x73, 0x84B1) /* <CJK> */
-MAP(0x58, 0x74, 0x84B4) /* <CJK> */
-MAP(0x58, 0x75, 0x84BA) /* <CJK> */
-MAP(0x58, 0x76, 0x84BD) /* <CJK> */
-MAP(0x58, 0x77, 0x84BE) /* <CJK> */
-MAP(0x58, 0x78, 0x84C0) /* <CJK> */
-MAP(0x58, 0x79, 0x84C2) /* <CJK> */
-MAP(0x58, 0x7A, 0x84C7) /* <CJK> */
-MAP(0x58, 0x7B, 0x84C8) /* <CJK> */
-MAP(0x58, 0x7C, 0x84CC) /* <CJK> */
-MAP(0x58, 0x7D, 0x84CF) /* <CJK> */
-MAP(0x58, 0x7E, 0x84D3) /* <CJK> */
-MAP(0x59, 0x21, 0x84DC) /* <CJK> */
-MAP(0x59, 0x22, 0x84E7) /* <CJK> */
-MAP(0x59, 0x23, 0x84EA) /* <CJK> */
-MAP(0x59, 0x24, 0x84EF) /* <CJK> */
-MAP(0x59, 0x25, 0x84F0) /* <CJK> */
-MAP(0x59, 0x26, 0x84F1) /* <CJK> */
-MAP(0x59, 0x27, 0x84F2) /* <CJK> */
-MAP(0x59, 0x28, 0x84F7) /* <CJK> */
-MAP(0x59, 0x29, 0x8532) /* <CJK> */
-MAP(0x59, 0x2A, 0x84FA) /* <CJK> */
-MAP(0x59, 0x2B, 0x84FB) /* <CJK> */
-MAP(0x59, 0x2C, 0x84FD) /* <CJK> */
-MAP(0x59, 0x2D, 0x8502) /* <CJK> */
-MAP(0x59, 0x2E, 0x8503) /* <CJK> */
-MAP(0x59, 0x2F, 0x8507) /* <CJK> */
-MAP(0x59, 0x30, 0x850C) /* <CJK> */
-MAP(0x59, 0x31, 0x850E) /* <CJK> */
-MAP(0x59, 0x32, 0x8510) /* <CJK> */
-MAP(0x59, 0x33, 0x851C) /* <CJK> */
-MAP(0x59, 0x34, 0x851E) /* <CJK> */
-MAP(0x59, 0x35, 0x8522) /* <CJK> */
-MAP(0x59, 0x36, 0x8523) /* <CJK> */
-MAP(0x59, 0x37, 0x8524) /* <CJK> */
-MAP(0x59, 0x38, 0x8525) /* <CJK> */
-MAP(0x59, 0x39, 0x8527) /* <CJK> */
-MAP(0x59, 0x3A, 0x852A) /* <CJK> */
-MAP(0x59, 0x3B, 0x852B) /* <CJK> */
-MAP(0x59, 0x3C, 0x852F) /* <CJK> */
-MAP(0x59, 0x3D, 0x8533) /* <CJK> */
-MAP(0x59, 0x3E, 0x8534) /* <CJK> */
-MAP(0x59, 0x3F, 0x8536) /* <CJK> */
-MAP(0x59, 0x40, 0x853F) /* <CJK> */
-MAP(0x59, 0x41, 0x8546) /* <CJK> */
-MAP(0x59, 0x42, 0x854F) /* <CJK> */
-MAP(0x59, 0x43, 0x8550) /* <CJK> */
-MAP(0x59, 0x44, 0x8551) /* <CJK> */
-MAP(0x59, 0x45, 0x8552) /* <CJK> */
-MAP(0x59, 0x46, 0x8553) /* <CJK> */
-MAP(0x59, 0x47, 0x8556) /* <CJK> */
-MAP(0x59, 0x48, 0x8559) /* <CJK> */
-MAP(0x59, 0x49, 0x855C) /* <CJK> */
-MAP(0x59, 0x4A, 0x855D) /* <CJK> */
-MAP(0x59, 0x4B, 0x855E) /* <CJK> */
-MAP(0x59, 0x4C, 0x855F) /* <CJK> */
-MAP(0x59, 0x4D, 0x8560) /* <CJK> */
-MAP(0x59, 0x4E, 0x8561) /* <CJK> */
-MAP(0x59, 0x4F, 0x8562) /* <CJK> */
-MAP(0x59, 0x50, 0x8564) /* <CJK> */
-MAP(0x59, 0x51, 0x856B) /* <CJK> */
-MAP(0x59, 0x52, 0x856F) /* <CJK> */
-MAP(0x59, 0x53, 0x8579) /* <CJK> */
-MAP(0x59, 0x54, 0x857A) /* <CJK> */
-MAP(0x59, 0x55, 0x857B) /* <CJK> */
-MAP(0x59, 0x56, 0x857D) /* <CJK> */
-MAP(0x59, 0x57, 0x857F) /* <CJK> */
-MAP(0x59, 0x58, 0x8581) /* <CJK> */
-MAP(0x59, 0x59, 0x8585) /* <CJK> */
-MAP(0x59, 0x5A, 0x8586) /* <CJK> */
-MAP(0x59, 0x5B, 0x8589) /* <CJK> */
-MAP(0x59, 0x5C, 0x858B) /* <CJK> */
-MAP(0x59, 0x5D, 0x858C) /* <CJK> */
-MAP(0x59, 0x5E, 0x858F) /* <CJK> */
-MAP(0x59, 0x5F, 0x8593) /* <CJK> */
-MAP(0x59, 0x60, 0x8598) /* <CJK> */
-MAP(0x59, 0x61, 0x859D) /* <CJK> */
-MAP(0x59, 0x62, 0x859F) /* <CJK> */
-MAP(0x59, 0x63, 0x85A0) /* <CJK> */
-MAP(0x59, 0x64, 0x85A2) /* <CJK> */
-MAP(0x59, 0x65, 0x85A5) /* <CJK> */
-MAP(0x59, 0x66, 0x85A7) /* <CJK> */
-MAP(0x59, 0x67, 0x85B4) /* <CJK> */
-MAP(0x59, 0x68, 0x85B6) /* <CJK> */
-MAP(0x59, 0x69, 0x85B7) /* <CJK> */
-MAP(0x59, 0x6A, 0x85B8) /* <CJK> */
-MAP(0x59, 0x6B, 0x85BC) /* <CJK> */
-MAP(0x59, 0x6C, 0x85BD) /* <CJK> */
-MAP(0x59, 0x6D, 0x85BE) /* <CJK> */
-MAP(0x59, 0x6E, 0x85BF) /* <CJK> */
-MAP(0x59, 0x6F, 0x85C2) /* <CJK> */
-MAP(0x59, 0x70, 0x85C7) /* <CJK> */
-MAP(0x59, 0x71, 0x85CA) /* <CJK> */
-MAP(0x59, 0x72, 0x85CB) /* <CJK> */
-MAP(0x59, 0x73, 0x85CE) /* <CJK> */
-MAP(0x59, 0x74, 0x85AD) /* <CJK> */
-MAP(0x59, 0x75, 0x85D8) /* <CJK> */
-MAP(0x59, 0x76, 0x85DA) /* <CJK> */
-MAP(0x59, 0x77, 0x85DF) /* <CJK> */
-MAP(0x59, 0x78, 0x85E0) /* <CJK> */
-MAP(0x59, 0x79, 0x85E6) /* <CJK> */
-MAP(0x59, 0x7A, 0x85E8) /* <CJK> */
-MAP(0x59, 0x7B, 0x85ED) /* <CJK> */
-MAP(0x59, 0x7C, 0x85F3) /* <CJK> */
-MAP(0x59, 0x7D, 0x85F6) /* <CJK> */
-MAP(0x59, 0x7E, 0x85FC) /* <CJK> */
-MAP(0x5A, 0x21, 0x85FF) /* <CJK> */
-MAP(0x5A, 0x22, 0x8600) /* <CJK> */
-MAP(0x5A, 0x23, 0x8604) /* <CJK> */
-MAP(0x5A, 0x24, 0x8605) /* <CJK> */
-MAP(0x5A, 0x25, 0x860D) /* <CJK> */
-MAP(0x5A, 0x26, 0x860E) /* <CJK> */
-MAP(0x5A, 0x27, 0x8610) /* <CJK> */
-MAP(0x5A, 0x28, 0x8611) /* <CJK> */
-MAP(0x5A, 0x29, 0x8612) /* <CJK> */
-MAP(0x5A, 0x2A, 0x8618) /* <CJK> */
-MAP(0x5A, 0x2B, 0x8619) /* <CJK> */
-MAP(0x5A, 0x2C, 0x861B) /* <CJK> */
-MAP(0x5A, 0x2D, 0x861E) /* <CJK> */
-MAP(0x5A, 0x2E, 0x8621) /* <CJK> */
-MAP(0x5A, 0x2F, 0x8627) /* <CJK> */
-MAP(0x5A, 0x30, 0x8629) /* <CJK> */
-MAP(0x5A, 0x31, 0x8636) /* <CJK> */
-MAP(0x5A, 0x32, 0x8638) /* <CJK> */
-MAP(0x5A, 0x33, 0x863A) /* <CJK> */
-MAP(0x5A, 0x34, 0x863C) /* <CJK> */
-MAP(0x5A, 0x35, 0x863D) /* <CJK> */
-MAP(0x5A, 0x36, 0x8640) /* <CJK> */
-MAP(0x5A, 0x37, 0x8642) /* <CJK> */
-MAP(0x5A, 0x38, 0x8646) /* <CJK> */
-MAP(0x5A, 0x39, 0x8652) /* <CJK> */
-MAP(0x5A, 0x3A, 0x8653) /* <CJK> */
-MAP(0x5A, 0x3B, 0x8656) /* <CJK> */
-MAP(0x5A, 0x3C, 0x8657) /* <CJK> */
-MAP(0x5A, 0x3D, 0x8658) /* <CJK> */
-MAP(0x5A, 0x3E, 0x8659) /* <CJK> */
-MAP(0x5A, 0x3F, 0x865D) /* <CJK> */
-MAP(0x5A, 0x40, 0x8660) /* <CJK> */
-MAP(0x5A, 0x41, 0x8661) /* <CJK> */
-MAP(0x5A, 0x42, 0x8662) /* <CJK> */
-MAP(0x5A, 0x43, 0x8663) /* <CJK> */
-MAP(0x5A, 0x44, 0x8664) /* <CJK> */
-MAP(0x5A, 0x45, 0x8669) /* <CJK> */
-MAP(0x5A, 0x46, 0x866C) /* <CJK> */
-MAP(0x5A, 0x47, 0x866F) /* <CJK> */
-MAP(0x5A, 0x48, 0x8675) /* <CJK> */
-MAP(0x5A, 0x49, 0x8676) /* <CJK> */
-MAP(0x5A, 0x4A, 0x8677) /* <CJK> */
-MAP(0x5A, 0x4B, 0x867A) /* <CJK> */
-MAP(0x5A, 0x4C, 0x868D) /* <CJK> */
-MAP(0x5A, 0x4D, 0x8691) /* <CJK> */
-MAP(0x5A, 0x4E, 0x8696) /* <CJK> */
-MAP(0x5A, 0x4F, 0x8698) /* <CJK> */
-MAP(0x5A, 0x50, 0x869A) /* <CJK> */
-MAP(0x5A, 0x51, 0x869C) /* <CJK> */
-MAP(0x5A, 0x52, 0x86A1) /* <CJK> */
-MAP(0x5A, 0x53, 0x86A6) /* <CJK> */
-MAP(0x5A, 0x54, 0x86A7) /* <CJK> */
-MAP(0x5A, 0x55, 0x86A8) /* <CJK> */
-MAP(0x5A, 0x56, 0x86AD) /* <CJK> */
-MAP(0x5A, 0x57, 0x86B1) /* <CJK> */
-MAP(0x5A, 0x58, 0x86B3) /* <CJK> */
-MAP(0x5A, 0x59, 0x86B4) /* <CJK> */
-MAP(0x5A, 0x5A, 0x86B5) /* <CJK> */
-MAP(0x5A, 0x5B, 0x86B7) /* <CJK> */
-MAP(0x5A, 0x5C, 0x86B8) /* <CJK> */
-MAP(0x5A, 0x5D, 0x86B9) /* <CJK> */
-MAP(0x5A, 0x5E, 0x86BF) /* <CJK> */
-MAP(0x5A, 0x5F, 0x86C0) /* <CJK> */
-MAP(0x5A, 0x60, 0x86C1) /* <CJK> */
-MAP(0x5A, 0x61, 0x86C3) /* <CJK> */
-MAP(0x5A, 0x62, 0x86C5) /* <CJK> */
-MAP(0x5A, 0x63, 0x86D1) /* <CJK> */
-MAP(0x5A, 0x64, 0x86D2) /* <CJK> */
-MAP(0x5A, 0x65, 0x86D5) /* <CJK> */
-MAP(0x5A, 0x66, 0x86D7) /* <CJK> */
-MAP(0x5A, 0x67, 0x86DA) /* <CJK> */
-MAP(0x5A, 0x68, 0x86DC) /* <CJK> */
-MAP(0x5A, 0x69, 0x86E0) /* <CJK> */
-MAP(0x5A, 0x6A, 0x86E3) /* <CJK> */
-MAP(0x5A, 0x6B, 0x86E5) /* <CJK> */
-MAP(0x5A, 0x6C, 0x86E7) /* <CJK> */
-MAP(0x5A, 0x6D, 0x8688) /* <CJK> */
-MAP(0x5A, 0x6E, 0x86FA) /* <CJK> */
-MAP(0x5A, 0x6F, 0x86FC) /* <CJK> */
-MAP(0x5A, 0x70, 0x86FD) /* <CJK> */
-MAP(0x5A, 0x71, 0x8704) /* <CJK> */
-MAP(0x5A, 0x72, 0x8705) /* <CJK> */
-MAP(0x5A, 0x73, 0x8707) /* <CJK> */
-MAP(0x5A, 0x74, 0x870B) /* <CJK> */
-MAP(0x5A, 0x75, 0x870E) /* <CJK> */
-MAP(0x5A, 0x76, 0x870F) /* <CJK> */
-MAP(0x5A, 0x77, 0x8710) /* <CJK> */
-MAP(0x5A, 0x78, 0x8713) /* <CJK> */
-MAP(0x5A, 0x79, 0x8714) /* <CJK> */
-MAP(0x5A, 0x7A, 0x8719) /* <CJK> */
-MAP(0x5A, 0x7B, 0x871E) /* <CJK> */
-MAP(0x5A, 0x7C, 0x871F) /* <CJK> */
-MAP(0x5A, 0x7D, 0x8721) /* <CJK> */
-MAP(0x5A, 0x7E, 0x8723) /* <CJK> */
-MAP(0x5B, 0x21, 0x8728) /* <CJK> */
-MAP(0x5B, 0x22, 0x872E) /* <CJK> */
-MAP(0x5B, 0x23, 0x872F) /* <CJK> */
-MAP(0x5B, 0x24, 0x8731) /* <CJK> */
-MAP(0x5B, 0x25, 0x8732) /* <CJK> */
-MAP(0x5B, 0x26, 0x8739) /* <CJK> */
-MAP(0x5B, 0x27, 0x873A) /* <CJK> */
-MAP(0x5B, 0x28, 0x873C) /* <CJK> */
-MAP(0x5B, 0x29, 0x873D) /* <CJK> */
-MAP(0x5B, 0x2A, 0x873E) /* <CJK> */
-MAP(0x5B, 0x2B, 0x8740) /* <CJK> */
-MAP(0x5B, 0x2C, 0x8743) /* <CJK> */
-MAP(0x5B, 0x2D, 0x8745) /* <CJK> */
-MAP(0x5B, 0x2E, 0x874D) /* <CJK> */
-MAP(0x5B, 0x2F, 0x8758) /* <CJK> */
-MAP(0x5B, 0x30, 0x875D) /* <CJK> */
-MAP(0x5B, 0x31, 0x8761) /* <CJK> */
-MAP(0x5B, 0x32, 0x8764) /* <CJK> */
-MAP(0x5B, 0x33, 0x8765) /* <CJK> */
-MAP(0x5B, 0x34, 0x876F) /* <CJK> */
-MAP(0x5B, 0x35, 0x8771) /* <CJK> */
-MAP(0x5B, 0x36, 0x8772) /* <CJK> */
-MAP(0x5B, 0x37, 0x877B) /* <CJK> */
-MAP(0x5B, 0x38, 0x8783) /* <CJK> */
-MAP(0x5B, 0x39, 0x8784) /* <CJK> */
-MAP(0x5B, 0x3A, 0x8785) /* <CJK> */
-MAP(0x5B, 0x3B, 0x8786) /* <CJK> */
-MAP(0x5B, 0x3C, 0x8787) /* <CJK> */
-MAP(0x5B, 0x3D, 0x8788) /* <CJK> */
-MAP(0x5B, 0x3E, 0x8789) /* <CJK> */
-MAP(0x5B, 0x3F, 0x878B) /* <CJK> */
-MAP(0x5B, 0x40, 0x878C) /* <CJK> */
-MAP(0x5B, 0x41, 0x8790) /* <CJK> */
-MAP(0x5B, 0x42, 0x8793) /* <CJK> */
-MAP(0x5B, 0x43, 0x8795) /* <CJK> */
-MAP(0x5B, 0x44, 0x8797) /* <CJK> */
-MAP(0x5B, 0x45, 0x8798) /* <CJK> */
-MAP(0x5B, 0x46, 0x8799) /* <CJK> */
-MAP(0x5B, 0x47, 0x879E) /* <CJK> */
-MAP(0x5B, 0x48, 0x87A0) /* <CJK> */
-MAP(0x5B, 0x49, 0x87A3) /* <CJK> */
-MAP(0x5B, 0x4A, 0x87A7) /* <CJK> */
-MAP(0x5B, 0x4B, 0x87AC) /* <CJK> */
-MAP(0x5B, 0x4C, 0x87AD) /* <CJK> */
-MAP(0x5B, 0x4D, 0x87AE) /* <CJK> */
-MAP(0x5B, 0x4E, 0x87B1) /* <CJK> */
-MAP(0x5B, 0x4F, 0x87B5) /* <CJK> */
-MAP(0x5B, 0x50, 0x87BE) /* <CJK> */
-MAP(0x5B, 0x51, 0x87BF) /* <CJK> */
-MAP(0x5B, 0x52, 0x87C1) /* <CJK> */
-MAP(0x5B, 0x53, 0x87C8) /* <CJK> */
-MAP(0x5B, 0x54, 0x87C9) /* <CJK> */
-MAP(0x5B, 0x55, 0x87CA) /* <CJK> */
-MAP(0x5B, 0x56, 0x87CE) /* <CJK> */
-MAP(0x5B, 0x57, 0x87D5) /* <CJK> */
-MAP(0x5B, 0x58, 0x87D6) /* <CJK> */
-MAP(0x5B, 0x59, 0x87D9) /* <CJK> */
-MAP(0x5B, 0x5A, 0x87DA) /* <CJK> */
-MAP(0x5B, 0x5B, 0x87DC) /* <CJK> */
-MAP(0x5B, 0x5C, 0x87DF) /* <CJK> */
-MAP(0x5B, 0x5D, 0x87E2) /* <CJK> */
-MAP(0x5B, 0x5E, 0x87E3) /* <CJK> */
-MAP(0x5B, 0x5F, 0x87E4) /* <CJK> */
-MAP(0x5B, 0x60, 0x87EA) /* <CJK> */
-MAP(0x5B, 0x61, 0x87EB) /* <CJK> */
-MAP(0x5B, 0x62, 0x87ED) /* <CJK> */
-MAP(0x5B, 0x63, 0x87F1) /* <CJK> */
-MAP(0x5B, 0x64, 0x87F3) /* <CJK> */
-MAP(0x5B, 0x65, 0x87F8) /* <CJK> */
-MAP(0x5B, 0x66, 0x87FA) /* <CJK> */
-MAP(0x5B, 0x67, 0x87FF) /* <CJK> */
-MAP(0x5B, 0x68, 0x8801) /* <CJK> */
-MAP(0x5B, 0x69, 0x8803) /* <CJK> */
-MAP(0x5B, 0x6A, 0x8806) /* <CJK> */
-MAP(0x5B, 0x6B, 0x8809) /* <CJK> */
-MAP(0x5B, 0x6C, 0x880A) /* <CJK> */
-MAP(0x5B, 0x6D, 0x880B) /* <CJK> */
-MAP(0x5B, 0x6E, 0x8810) /* <CJK> */
-MAP(0x5B, 0x6F, 0x8819) /* <CJK> */
-MAP(0x5B, 0x70, 0x8812) /* <CJK> */
-MAP(0x5B, 0x71, 0x8813) /* <CJK> */
-MAP(0x5B, 0x72, 0x8814) /* <CJK> */
-MAP(0x5B, 0x73, 0x8818) /* <CJK> */
-MAP(0x5B, 0x74, 0x881A) /* <CJK> */
-MAP(0x5B, 0x75, 0x881B) /* <CJK> */
-MAP(0x5B, 0x76, 0x881C) /* <CJK> */
-MAP(0x5B, 0x77, 0x881E) /* <CJK> */
-MAP(0x5B, 0x78, 0x881F) /* <CJK> */
-MAP(0x5B, 0x79, 0x8828) /* <CJK> */
-MAP(0x5B, 0x7A, 0x882D) /* <CJK> */
-MAP(0x5B, 0x7B, 0x882E) /* <CJK> */
-MAP(0x5B, 0x7C, 0x8830) /* <CJK> */
-MAP(0x5B, 0x7D, 0x8832) /* <CJK> */
-MAP(0x5B, 0x7E, 0x8835) /* <CJK> */
-MAP(0x5C, 0x21, 0x883A) /* <CJK> */
-MAP(0x5C, 0x22, 0x883C) /* <CJK> */
-MAP(0x5C, 0x23, 0x8841) /* <CJK> */
-MAP(0x5C, 0x24, 0x8843) /* <CJK> */
-MAP(0x5C, 0x25, 0x8845) /* <CJK> */
-MAP(0x5C, 0x26, 0x8848) /* <CJK> */
-MAP(0x5C, 0x27, 0x8849) /* <CJK> */
-MAP(0x5C, 0x28, 0x884A) /* <CJK> */
-MAP(0x5C, 0x29, 0x884B) /* <CJK> */
-MAP(0x5C, 0x2A, 0x884E) /* <CJK> */
-MAP(0x5C, 0x2B, 0x8851) /* <CJK> */
-MAP(0x5C, 0x2C, 0x8855) /* <CJK> */
-MAP(0x5C, 0x2D, 0x8856) /* <CJK> */
-MAP(0x5C, 0x2E, 0x8858) /* <CJK> */
-MAP(0x5C, 0x2F, 0x885A) /* <CJK> */
-MAP(0x5C, 0x30, 0x885C) /* <CJK> */
-MAP(0x5C, 0x31, 0x885F) /* <CJK> */
-MAP(0x5C, 0x32, 0x8860) /* <CJK> */
-MAP(0x5C, 0x33, 0x8864) /* <CJK> */
-MAP(0x5C, 0x34, 0x8869) /* <CJK> */
-MAP(0x5C, 0x35, 0x8871) /* <CJK> */
-MAP(0x5C, 0x36, 0x8879) /* <CJK> */
-MAP(0x5C, 0x37, 0x887B) /* <CJK> */
-MAP(0x5C, 0x38, 0x8880) /* <CJK> */
-MAP(0x5C, 0x39, 0x8898) /* <CJK> */
-MAP(0x5C, 0x3A, 0x889A) /* <CJK> */
-MAP(0x5C, 0x3B, 0x889B) /* <CJK> */
-MAP(0x5C, 0x3C, 0x889C) /* <CJK> */
-MAP(0x5C, 0x3D, 0x889F) /* <CJK> */
-MAP(0x5C, 0x3E, 0x88A0) /* <CJK> */
-MAP(0x5C, 0x3F, 0x88A8) /* <CJK> */
-MAP(0x5C, 0x40, 0x88AA) /* <CJK> */
-MAP(0x5C, 0x41, 0x88BA) /* <CJK> */
-MAP(0x5C, 0x42, 0x88BD) /* <CJK> */
-MAP(0x5C, 0x43, 0x88BE) /* <CJK> */
-MAP(0x5C, 0x44, 0x88C0) /* <CJK> */
-MAP(0x5C, 0x45, 0x88CA) /* <CJK> */
-MAP(0x5C, 0x46, 0x88CB) /* <CJK> */
-MAP(0x5C, 0x47, 0x88CC) /* <CJK> */
-MAP(0x5C, 0x48, 0x88CD) /* <CJK> */
-MAP(0x5C, 0x49, 0x88CE) /* <CJK> */
-MAP(0x5C, 0x4A, 0x88D1) /* <CJK> */
-MAP(0x5C, 0x4B, 0x88D2) /* <CJK> */
-MAP(0x5C, 0x4C, 0x88D3) /* <CJK> */
-MAP(0x5C, 0x4D, 0x88DB) /* <CJK> */
-MAP(0x5C, 0x4E, 0x88DE) /* <CJK> */
-MAP(0x5C, 0x4F, 0x88E7) /* <CJK> */
-MAP(0x5C, 0x50, 0x88EF) /* <CJK> */
-MAP(0x5C, 0x51, 0x88F0) /* <CJK> */
-MAP(0x5C, 0x52, 0x88F1) /* <CJK> */
-MAP(0x5C, 0x53, 0x88F5) /* <CJK> */
-MAP(0x5C, 0x54, 0x88F7) /* <CJK> */
-MAP(0x5C, 0x55, 0x8901) /* <CJK> */
-MAP(0x5C, 0x56, 0x8906) /* <CJK> */
-MAP(0x5C, 0x57, 0x890D) /* <CJK> */
-MAP(0x5C, 0x58, 0x890E) /* <CJK> */
-MAP(0x5C, 0x59, 0x890F) /* <CJK> */
-MAP(0x5C, 0x5A, 0x8915) /* <CJK> */
-MAP(0x5C, 0x5B, 0x8916) /* <CJK> */
-MAP(0x5C, 0x5C, 0x8918) /* <CJK> */
-MAP(0x5C, 0x5D, 0x8919) /* <CJK> */
-MAP(0x5C, 0x5E, 0x891A) /* <CJK> */
-MAP(0x5C, 0x5F, 0x891C) /* <CJK> */
-MAP(0x5C, 0x60, 0x8920) /* <CJK> */
-MAP(0x5C, 0x61, 0x8926) /* <CJK> */
-MAP(0x5C, 0x62, 0x8927) /* <CJK> */
-MAP(0x5C, 0x63, 0x8928) /* <CJK> */
-MAP(0x5C, 0x64, 0x8930) /* <CJK> */
-MAP(0x5C, 0x65, 0x8931) /* <CJK> */
-MAP(0x5C, 0x66, 0x8932) /* <CJK> */
-MAP(0x5C, 0x67, 0x8935) /* <CJK> */
-MAP(0x5C, 0x68, 0x8939) /* <CJK> */
-MAP(0x5C, 0x69, 0x893A) /* <CJK> */
-MAP(0x5C, 0x6A, 0x893E) /* <CJK> */
-MAP(0x5C, 0x6B, 0x8940) /* <CJK> */
-MAP(0x5C, 0x6C, 0x8942) /* <CJK> */
-MAP(0x5C, 0x6D, 0x8945) /* <CJK> */
-MAP(0x5C, 0x6E, 0x8946) /* <CJK> */
-MAP(0x5C, 0x6F, 0x8949) /* <CJK> */
-MAP(0x5C, 0x70, 0x894F) /* <CJK> */
-MAP(0x5C, 0x71, 0x8952) /* <CJK> */
-MAP(0x5C, 0x72, 0x8957) /* <CJK> */
-MAP(0x5C, 0x73, 0x895A) /* <CJK> */
-MAP(0x5C, 0x74, 0x895B) /* <CJK> */
-MAP(0x5C, 0x75, 0x895C) /* <CJK> */
-MAP(0x5C, 0x76, 0x8961) /* <CJK> */
-MAP(0x5C, 0x77, 0x8962) /* <CJK> */
-MAP(0x5C, 0x78, 0x8963) /* <CJK> */
-MAP(0x5C, 0x79, 0x896B) /* <CJK> */
-MAP(0x5C, 0x7A, 0x896E) /* <CJK> */
-MAP(0x5C, 0x7B, 0x8970) /* <CJK> */
-MAP(0x5C, 0x7C, 0x8973) /* <CJK> */
-MAP(0x5C, 0x7D, 0x8975) /* <CJK> */
-MAP(0x5C, 0x7E, 0x897A) /* <CJK> */
-MAP(0x5D, 0x21, 0x897B) /* <CJK> */
-MAP(0x5D, 0x22, 0x897C) /* <CJK> */
-MAP(0x5D, 0x23, 0x897D) /* <CJK> */
-MAP(0x5D, 0x24, 0x8989) /* <CJK> */
-MAP(0x5D, 0x25, 0x898D) /* <CJK> */
-MAP(0x5D, 0x26, 0x8990) /* <CJK> */
-MAP(0x5D, 0x27, 0x8994) /* <CJK> */
-MAP(0x5D, 0x28, 0x8995) /* <CJK> */
-MAP(0x5D, 0x29, 0x899B) /* <CJK> */
-MAP(0x5D, 0x2A, 0x899C) /* <CJK> */
-MAP(0x5D, 0x2B, 0x899F) /* <CJK> */
-MAP(0x5D, 0x2C, 0x89A0) /* <CJK> */
-MAP(0x5D, 0x2D, 0x89A5) /* <CJK> */
-MAP(0x5D, 0x2E, 0x89B0) /* <CJK> */
-MAP(0x5D, 0x2F, 0x89B4) /* <CJK> */
-MAP(0x5D, 0x30, 0x89B5) /* <CJK> */
-MAP(0x5D, 0x31, 0x89B6) /* <CJK> */
-MAP(0x5D, 0x32, 0x89B7) /* <CJK> */
-MAP(0x5D, 0x33, 0x89BC) /* <CJK> */
-MAP(0x5D, 0x34, 0x89D4) /* <CJK> */
-MAP(0x5D, 0x35, 0x89D5) /* <CJK> */
-MAP(0x5D, 0x36, 0x89D6) /* <CJK> */
-MAP(0x5D, 0x37, 0x89D7) /* <CJK> */
-MAP(0x5D, 0x38, 0x89D8) /* <CJK> */
-MAP(0x5D, 0x39, 0x89E5) /* <CJK> */
-MAP(0x5D, 0x3A, 0x89E9) /* <CJK> */
-MAP(0x5D, 0x3B, 0x89EB) /* <CJK> */
-MAP(0x5D, 0x3C, 0x89ED) /* <CJK> */
-MAP(0x5D, 0x3D, 0x89F1) /* <CJK> */
-MAP(0x5D, 0x3E, 0x89F3) /* <CJK> */
-MAP(0x5D, 0x3F, 0x89F6) /* <CJK> */
-MAP(0x5D, 0x40, 0x89F9) /* <CJK> */
-MAP(0x5D, 0x41, 0x89FD) /* <CJK> */
-MAP(0x5D, 0x42, 0x89FF) /* <CJK> */
-MAP(0x5D, 0x43, 0x8A04) /* <CJK> */
-MAP(0x5D, 0x44, 0x8A05) /* <CJK> */
-MAP(0x5D, 0x45, 0x8A07) /* <CJK> */
-MAP(0x5D, 0x46, 0x8A0F) /* <CJK> */
-MAP(0x5D, 0x47, 0x8A11) /* <CJK> */
-MAP(0x5D, 0x48, 0x8A12) /* <CJK> */
-MAP(0x5D, 0x49, 0x8A14) /* <CJK> */
-MAP(0x5D, 0x4A, 0x8A15) /* <CJK> */
-MAP(0x5D, 0x4B, 0x8A1E) /* <CJK> */
-MAP(0x5D, 0x4C, 0x8A20) /* <CJK> */
-MAP(0x5D, 0x4D, 0x8A22) /* <CJK> */
-MAP(0x5D, 0x4E, 0x8A24) /* <CJK> */
-MAP(0x5D, 0x4F, 0x8A26) /* <CJK> */
-MAP(0x5D, 0x50, 0x8A2B) /* <CJK> */
-MAP(0x5D, 0x51, 0x8A2C) /* <CJK> */
-MAP(0x5D, 0x52, 0x8A2F) /* <CJK> */
-MAP(0x5D, 0x53, 0x8A35) /* <CJK> */
-MAP(0x5D, 0x54, 0x8A37) /* <CJK> */
-MAP(0x5D, 0x55, 0x8A3D) /* <CJK> */
-MAP(0x5D, 0x56, 0x8A3E) /* <CJK> */
-MAP(0x5D, 0x57, 0x8A40) /* <CJK> */
-MAP(0x5D, 0x58, 0x8A43) /* <CJK> */
-MAP(0x5D, 0x59, 0x8A45) /* <CJK> */
-MAP(0x5D, 0x5A, 0x8A47) /* <CJK> */
-MAP(0x5D, 0x5B, 0x8A49) /* <CJK> */
-MAP(0x5D, 0x5C, 0x8A4D) /* <CJK> */
-MAP(0x5D, 0x5D, 0x8A4E) /* <CJK> */
-MAP(0x5D, 0x5E, 0x8A53) /* <CJK> */
-MAP(0x5D, 0x5F, 0x8A56) /* <CJK> */
-MAP(0x5D, 0x60, 0x8A57) /* <CJK> */
-MAP(0x5D, 0x61, 0x8A58) /* <CJK> */
-MAP(0x5D, 0x62, 0x8A5C) /* <CJK> */
-MAP(0x5D, 0x63, 0x8A5D) /* <CJK> */
-MAP(0x5D, 0x64, 0x8A61) /* <CJK> */
-MAP(0x5D, 0x65, 0x8A65) /* <CJK> */
-MAP(0x5D, 0x66, 0x8A67) /* <CJK> */
-MAP(0x5D, 0x67, 0x8A75) /* <CJK> */
-MAP(0x5D, 0x68, 0x8A76) /* <CJK> */
-MAP(0x5D, 0x69, 0x8A77) /* <CJK> */
-MAP(0x5D, 0x6A, 0x8A79) /* <CJK> */
-MAP(0x5D, 0x6B, 0x8A7A) /* <CJK> */
-MAP(0x5D, 0x6C, 0x8A7B) /* <CJK> */
-MAP(0x5D, 0x6D, 0x8A7E) /* <CJK> */
-MAP(0x5D, 0x6E, 0x8A7F) /* <CJK> */
-MAP(0x5D, 0x6F, 0x8A80) /* <CJK> */
-MAP(0x5D, 0x70, 0x8A83) /* <CJK> */
-MAP(0x5D, 0x71, 0x8A86) /* <CJK> */
-MAP(0x5D, 0x72, 0x8A8B) /* <CJK> */
-MAP(0x5D, 0x73, 0x8A8F) /* <CJK> */
-MAP(0x5D, 0x74, 0x8A90) /* <CJK> */
-MAP(0x5D, 0x75, 0x8A92) /* <CJK> */
-MAP(0x5D, 0x76, 0x8A96) /* <CJK> */
-MAP(0x5D, 0x77, 0x8A97) /* <CJK> */
-MAP(0x5D, 0x78, 0x8A99) /* <CJK> */
-MAP(0x5D, 0x79, 0x8A9F) /* <CJK> */
-MAP(0x5D, 0x7A, 0x8AA7) /* <CJK> */
-MAP(0x5D, 0x7B, 0x8AA9) /* <CJK> */
-MAP(0x5D, 0x7C, 0x8AAE) /* <CJK> */
-MAP(0x5D, 0x7D, 0x8AAF) /* <CJK> */
-MAP(0x5D, 0x7E, 0x8AB3) /* <CJK> */
-MAP(0x5E, 0x21, 0x8AB6) /* <CJK> */
-MAP(0x5E, 0x22, 0x8AB7) /* <CJK> */
-MAP(0x5E, 0x23, 0x8ABB) /* <CJK> */
-MAP(0x5E, 0x24, 0x8ABE) /* <CJK> */
-MAP(0x5E, 0x25, 0x8AC3) /* <CJK> */
-MAP(0x5E, 0x26, 0x8AC6) /* <CJK> */
-MAP(0x5E, 0x27, 0x8AC8) /* <CJK> */
-MAP(0x5E, 0x28, 0x8AC9) /* <CJK> */
-MAP(0x5E, 0x29, 0x8ACA) /* <CJK> */
-MAP(0x5E, 0x2A, 0x8AD1) /* <CJK> */
-MAP(0x5E, 0x2B, 0x8AD3) /* <CJK> */
-MAP(0x5E, 0x2C, 0x8AD4) /* <CJK> */
-MAP(0x5E, 0x2D, 0x8AD5) /* <CJK> */
-MAP(0x5E, 0x2E, 0x8AD7) /* <CJK> */
-MAP(0x5E, 0x2F, 0x8ADD) /* <CJK> */
-MAP(0x5E, 0x30, 0x8ADF) /* <CJK> */
-MAP(0x5E, 0x31, 0x8AEC) /* <CJK> */
-MAP(0x5E, 0x32, 0x8AF0) /* <CJK> */
-MAP(0x5E, 0x33, 0x8AF4) /* <CJK> */
-MAP(0x5E, 0x34, 0x8AF5) /* <CJK> */
-MAP(0x5E, 0x35, 0x8AF6) /* <CJK> */
-MAP(0x5E, 0x36, 0x8AFC) /* <CJK> */
-MAP(0x5E, 0x37, 0x8AFF) /* <CJK> */
-MAP(0x5E, 0x38, 0x8B05) /* <CJK> */
-MAP(0x5E, 0x39, 0x8B06) /* <CJK> */
-MAP(0x5E, 0x3A, 0x8B0B) /* <CJK> */
-MAP(0x5E, 0x3B, 0x8B11) /* <CJK> */
-MAP(0x5E, 0x3C, 0x8B1C) /* <CJK> */
-MAP(0x5E, 0x3D, 0x8B1E) /* <CJK> */
-MAP(0x5E, 0x3E, 0x8B1F) /* <CJK> */
-MAP(0x5E, 0x3F, 0x8B0A) /* <CJK> */
-MAP(0x5E, 0x40, 0x8B2D) /* <CJK> */
-MAP(0x5E, 0x41, 0x8B30) /* <CJK> */
-MAP(0x5E, 0x42, 0x8B37) /* <CJK> */
-MAP(0x5E, 0x43, 0x8B3C) /* <CJK> */
-MAP(0x5E, 0x44, 0x8B42) /* <CJK> */
-MAP(0x5E, 0x45, 0x8B43) /* <CJK> */
-MAP(0x5E, 0x46, 0x8B44) /* <CJK> */
-MAP(0x5E, 0x47, 0x8B45) /* <CJK> */
-MAP(0x5E, 0x48, 0x8B46) /* <CJK> */
-MAP(0x5E, 0x49, 0x8B48) /* <CJK> */
-MAP(0x5E, 0x4A, 0x8B52) /* <CJK> */
-MAP(0x5E, 0x4B, 0x8B53) /* <CJK> */
-MAP(0x5E, 0x4C, 0x8B54) /* <CJK> */
-MAP(0x5E, 0x4D, 0x8B59) /* <CJK> */
-MAP(0x5E, 0x4E, 0x8B4D) /* <CJK> */
-MAP(0x5E, 0x4F, 0x8B5E) /* <CJK> */
-MAP(0x5E, 0x50, 0x8B63) /* <CJK> */
-MAP(0x5E, 0x51, 0x8B6D) /* <CJK> */
-MAP(0x5E, 0x52, 0x8B76) /* <CJK> */
-MAP(0x5E, 0x53, 0x8B78) /* <CJK> */
-MAP(0x5E, 0x54, 0x8B79) /* <CJK> */
-MAP(0x5E, 0x55, 0x8B7C) /* <CJK> */
-MAP(0x5E, 0x56, 0x8B7E) /* <CJK> */
-MAP(0x5E, 0x57, 0x8B81) /* <CJK> */
-MAP(0x5E, 0x58, 0x8B84) /* <CJK> */
-MAP(0x5E, 0x59, 0x8B85) /* <CJK> */
-MAP(0x5E, 0x5A, 0x8B8B) /* <CJK> */
-MAP(0x5E, 0x5B, 0x8B8D) /* <CJK> */
-MAP(0x5E, 0x5C, 0x8B8F) /* <CJK> */
-MAP(0x5E, 0x5D, 0x8B94) /* <CJK> */
-MAP(0x5E, 0x5E, 0x8B95) /* <CJK> */
-MAP(0x5E, 0x5F, 0x8B9C) /* <CJK> */
-MAP(0x5E, 0x60, 0x8B9E) /* <CJK> */
-MAP(0x5E, 0x61, 0x8B9F) /* <CJK> */
-MAP(0x5E, 0x62, 0x8C38) /* <CJK> */
-MAP(0x5E, 0x63, 0x8C39) /* <CJK> */
-MAP(0x5E, 0x64, 0x8C3D) /* <CJK> */
-MAP(0x5E, 0x65, 0x8C3E) /* <CJK> */
-MAP(0x5E, 0x66, 0x8C45) /* <CJK> */
-MAP(0x5E, 0x67, 0x8C47) /* <CJK> */
-MAP(0x5E, 0x68, 0x8C49) /* <CJK> */
-MAP(0x5E, 0x69, 0x8C4B) /* <CJK> */
-MAP(0x5E, 0x6A, 0x8C4F) /* <CJK> */
-MAP(0x5E, 0x6B, 0x8C51) /* <CJK> */
-MAP(0x5E, 0x6C, 0x8C53) /* <CJK> */
-MAP(0x5E, 0x6D, 0x8C54) /* <CJK> */
-MAP(0x5E, 0x6E, 0x8C57) /* <CJK> */
-MAP(0x5E, 0x6F, 0x8C58) /* <CJK> */
-MAP(0x5E, 0x70, 0x8C5B) /* <CJK> */
-MAP(0x5E, 0x71, 0x8C5D) /* <CJK> */
-MAP(0x5E, 0x72, 0x8C59) /* <CJK> */
-MAP(0x5E, 0x73, 0x8C63) /* <CJK> */
-MAP(0x5E, 0x74, 0x8C64) /* <CJK> */
-MAP(0x5E, 0x75, 0x8C66) /* <CJK> */
-MAP(0x5E, 0x76, 0x8C68) /* <CJK> */
-MAP(0x5E, 0x77, 0x8C69) /* <CJK> */
-MAP(0x5E, 0x78, 0x8C6D) /* <CJK> */
-MAP(0x5E, 0x79, 0x8C73) /* <CJK> */
-MAP(0x5E, 0x7A, 0x8C75) /* <CJK> */
-MAP(0x5E, 0x7B, 0x8C76) /* <CJK> */
-MAP(0x5E, 0x7C, 0x8C7B) /* <CJK> */
-MAP(0x5E, 0x7D, 0x8C7E) /* <CJK> */
-MAP(0x5E, 0x7E, 0x8C86) /* <CJK> */
-MAP(0x5F, 0x21, 0x8C87) /* <CJK> */
-MAP(0x5F, 0x22, 0x8C8B) /* <CJK> */
-MAP(0x5F, 0x23, 0x8C90) /* <CJK> */
-MAP(0x5F, 0x24, 0x8C92) /* <CJK> */
-MAP(0x5F, 0x25, 0x8C93) /* <CJK> */
-MAP(0x5F, 0x26, 0x8C99) /* <CJK> */
-MAP(0x5F, 0x27, 0x8C9B) /* <CJK> */
-MAP(0x5F, 0x28, 0x8C9C) /* <CJK> */
-MAP(0x5F, 0x29, 0x8CA4) /* <CJK> */
-MAP(0x5F, 0x2A, 0x8CB9) /* <CJK> */
-MAP(0x5F, 0x2B, 0x8CBA) /* <CJK> */
-MAP(0x5F, 0x2C, 0x8CC5) /* <CJK> */
-MAP(0x5F, 0x2D, 0x8CC6) /* <CJK> */
-MAP(0x5F, 0x2E, 0x8CC9) /* <CJK> */
-MAP(0x5F, 0x2F, 0x8CCB) /* <CJK> */
-MAP(0x5F, 0x30, 0x8CCF) /* <CJK> */
-MAP(0x5F, 0x31, 0x8CD6) /* <CJK> */
-MAP(0x5F, 0x32, 0x8CD5) /* <CJK> */
-MAP(0x5F, 0x33, 0x8CD9) /* <CJK> */
-MAP(0x5F, 0x34, 0x8CDD) /* <CJK> */
-MAP(0x5F, 0x35, 0x8CE1) /* <CJK> */
-MAP(0x5F, 0x36, 0x8CE8) /* <CJK> */
-MAP(0x5F, 0x37, 0x8CEC) /* <CJK> */
-MAP(0x5F, 0x38, 0x8CEF) /* <CJK> */
-MAP(0x5F, 0x39, 0x8CF0) /* <CJK> */
-MAP(0x5F, 0x3A, 0x8CF2) /* <CJK> */
-MAP(0x5F, 0x3B, 0x8CF5) /* <CJK> */
-MAP(0x5F, 0x3C, 0x8CF7) /* <CJK> */
-MAP(0x5F, 0x3D, 0x8CF8) /* <CJK> */
-MAP(0x5F, 0x3E, 0x8CFE) /* <CJK> */
-MAP(0x5F, 0x3F, 0x8CFF) /* <CJK> */
-MAP(0x5F, 0x40, 0x8D01) /* <CJK> */
-MAP(0x5F, 0x41, 0x8D03) /* <CJK> */
-MAP(0x5F, 0x42, 0x8D09) /* <CJK> */
-MAP(0x5F, 0x43, 0x8D12) /* <CJK> */
-MAP(0x5F, 0x44, 0x8D17) /* <CJK> */
-MAP(0x5F, 0x45, 0x8D1B) /* <CJK> */
-MAP(0x5F, 0x46, 0x8D65) /* <CJK> */
-MAP(0x5F, 0x47, 0x8D69) /* <CJK> */
-MAP(0x5F, 0x48, 0x8D6C) /* <CJK> */
-MAP(0x5F, 0x49, 0x8D6E) /* <CJK> */
-MAP(0x5F, 0x4A, 0x8D7F) /* <CJK> */
-MAP(0x5F, 0x4B, 0x8D82) /* <CJK> */
-MAP(0x5F, 0x4C, 0x8D84) /* <CJK> */
-MAP(0x5F, 0x4D, 0x8D88) /* <CJK> */
-MAP(0x5F, 0x4E, 0x8D8D) /* <CJK> */
-MAP(0x5F, 0x4F, 0x8D90) /* <CJK> */
-MAP(0x5F, 0x50, 0x8D91) /* <CJK> */
-MAP(0x5F, 0x51, 0x8D95) /* <CJK> */
-MAP(0x5F, 0x52, 0x8D9E) /* <CJK> */
-MAP(0x5F, 0x53, 0x8D9F) /* <CJK> */
-MAP(0x5F, 0x54, 0x8DA0) /* <CJK> */
-MAP(0x5F, 0x55, 0x8DA6) /* <CJK> */
-MAP(0x5F, 0x56, 0x8DAB) /* <CJK> */
-MAP(0x5F, 0x57, 0x8DAC) /* <CJK> */
-MAP(0x5F, 0x58, 0x8DAF) /* <CJK> */
-MAP(0x5F, 0x59, 0x8DB2) /* <CJK> */
-MAP(0x5F, 0x5A, 0x8DB5) /* <CJK> */
-MAP(0x5F, 0x5B, 0x8DB7) /* <CJK> */
-MAP(0x5F, 0x5C, 0x8DB9) /* <CJK> */
-MAP(0x5F, 0x5D, 0x8DBB) /* <CJK> */
-MAP(0x5F, 0x5E, 0x8DC0) /* <CJK> */
-MAP(0x5F, 0x5F, 0x8DC5) /* <CJK> */
-MAP(0x5F, 0x60, 0x8DC6) /* <CJK> */
-MAP(0x5F, 0x61, 0x8DC7) /* <CJK> */
-MAP(0x5F, 0x62, 0x8DC8) /* <CJK> */
-MAP(0x5F, 0x63, 0x8DCA) /* <CJK> */
-MAP(0x5F, 0x64, 0x8DCE) /* <CJK> */
-MAP(0x5F, 0x65, 0x8DD1) /* <CJK> */
-MAP(0x5F, 0x66, 0x8DD4) /* <CJK> */
-MAP(0x5F, 0x67, 0x8DD5) /* <CJK> */
-MAP(0x5F, 0x68, 0x8DD7) /* <CJK> */
-MAP(0x5F, 0x69, 0x8DD9) /* <CJK> */
-MAP(0x5F, 0x6A, 0x8DE4) /* <CJK> */
-MAP(0x5F, 0x6B, 0x8DE5) /* <CJK> */
-MAP(0x5F, 0x6C, 0x8DE7) /* <CJK> */
-MAP(0x5F, 0x6D, 0x8DEC) /* <CJK> */
-MAP(0x5F, 0x6E, 0x8DF0) /* <CJK> */
-MAP(0x5F, 0x6F, 0x8DBC) /* <CJK> */
-MAP(0x5F, 0x70, 0x8DF1) /* <CJK> */
-MAP(0x5F, 0x71, 0x8DF2) /* <CJK> */
-MAP(0x5F, 0x72, 0x8DF4) /* <CJK> */
-MAP(0x5F, 0x73, 0x8DFD) /* <CJK> */
-MAP(0x5F, 0x74, 0x8E01) /* <CJK> */
-MAP(0x5F, 0x75, 0x8E04) /* <CJK> */
-MAP(0x5F, 0x76, 0x8E05) /* <CJK> */
-MAP(0x5F, 0x77, 0x8E06) /* <CJK> */
-MAP(0x5F, 0x78, 0x8E0B) /* <CJK> */
-MAP(0x5F, 0x79, 0x8E11) /* <CJK> */
-MAP(0x5F, 0x7A, 0x8E14) /* <CJK> */
-MAP(0x5F, 0x7B, 0x8E16) /* <CJK> */
-MAP(0x5F, 0x7C, 0x8E20) /* <CJK> */
-MAP(0x5F, 0x7D, 0x8E21) /* <CJK> */
-MAP(0x5F, 0x7E, 0x8E22) /* <CJK> */
-MAP(0x60, 0x21, 0x8E23) /* <CJK> */
-MAP(0x60, 0x22, 0x8E26) /* <CJK> */
-MAP(0x60, 0x23, 0x8E27) /* <CJK> */
-MAP(0x60, 0x24, 0x8E31) /* <CJK> */
-MAP(0x60, 0x25, 0x8E33) /* <CJK> */
-MAP(0x60, 0x26, 0x8E36) /* <CJK> */
-MAP(0x60, 0x27, 0x8E37) /* <CJK> */
-MAP(0x60, 0x28, 0x8E38) /* <CJK> */
-MAP(0x60, 0x29, 0x8E39) /* <CJK> */
-MAP(0x60, 0x2A, 0x8E3D) /* <CJK> */
-MAP(0x60, 0x2B, 0x8E40) /* <CJK> */
-MAP(0x60, 0x2C, 0x8E41) /* <CJK> */
-MAP(0x60, 0x2D, 0x8E4B) /* <CJK> */
-MAP(0x60, 0x2E, 0x8E4D) /* <CJK> */
-MAP(0x60, 0x2F, 0x8E4E) /* <CJK> */
-MAP(0x60, 0x30, 0x8E4F) /* <CJK> */
-MAP(0x60, 0x31, 0x8E54) /* <CJK> */
-MAP(0x60, 0x32, 0x8E5B) /* <CJK> */
-MAP(0x60, 0x33, 0x8E5C) /* <CJK> */
-MAP(0x60, 0x34, 0x8E5D) /* <CJK> */
-MAP(0x60, 0x35, 0x8E5E) /* <CJK> */
-MAP(0x60, 0x36, 0x8E61) /* <CJK> */
-MAP(0x60, 0x37, 0x8E62) /* <CJK> */
-MAP(0x60, 0x38, 0x8E69) /* <CJK> */
-MAP(0x60, 0x39, 0x8E6C) /* <CJK> */
-MAP(0x60, 0x3A, 0x8E6D) /* <CJK> */
-MAP(0x60, 0x3B, 0x8E6F) /* <CJK> */
-MAP(0x60, 0x3C, 0x8E70) /* <CJK> */
-MAP(0x60, 0x3D, 0x8E71) /* <CJK> */
-MAP(0x60, 0x3E, 0x8E79) /* <CJK> */
-MAP(0x60, 0x3F, 0x8E7A) /* <CJK> */
-MAP(0x60, 0x40, 0x8E7B) /* <CJK> */
-MAP(0x60, 0x41, 0x8E82) /* <CJK> */
-MAP(0x60, 0x42, 0x8E83) /* <CJK> */
-MAP(0x60, 0x43, 0x8E89) /* <CJK> */
-MAP(0x60, 0x44, 0x8E90) /* <CJK> */
-MAP(0x60, 0x45, 0x8E92) /* <CJK> */
-MAP(0x60, 0x46, 0x8E95) /* <CJK> */
-MAP(0x60, 0x47, 0x8E9A) /* <CJK> */
-MAP(0x60, 0x48, 0x8E9B) /* <CJK> */
-MAP(0x60, 0x49, 0x8E9D) /* <CJK> */
-MAP(0x60, 0x4A, 0x8E9E) /* <CJK> */
-MAP(0x60, 0x4B, 0x8EA2) /* <CJK> */
-MAP(0x60, 0x4C, 0x8EA7) /* <CJK> */
-MAP(0x60, 0x4D, 0x8EA9) /* <CJK> */
-MAP(0x60, 0x4E, 0x8EAD) /* <CJK> */
-MAP(0x60, 0x4F, 0x8EAE) /* <CJK> */
-MAP(0x60, 0x50, 0x8EB3) /* <CJK> */
-MAP(0x60, 0x51, 0x8EB5) /* <CJK> */
-MAP(0x60, 0x52, 0x8EBA) /* <CJK> */
-MAP(0x60, 0x53, 0x8EBB) /* <CJK> */
-MAP(0x60, 0x54, 0x8EC0) /* <CJK> */
-MAP(0x60, 0x55, 0x8EC1) /* <CJK> */
-MAP(0x60, 0x56, 0x8EC3) /* <CJK> */
-MAP(0x60, 0x57, 0x8EC4) /* <CJK> */
-MAP(0x60, 0x58, 0x8EC7) /* <CJK> */
-MAP(0x60, 0x59, 0x8ECF) /* <CJK> */
-MAP(0x60, 0x5A, 0x8ED1) /* <CJK> */
-MAP(0x60, 0x5B, 0x8ED4) /* <CJK> */
-MAP(0x60, 0x5C, 0x8EDC) /* <CJK> */
-MAP(0x60, 0x5D, 0x8EE8) /* <CJK> */
-MAP(0x60, 0x5E, 0x8EEE) /* <CJK> */
-MAP(0x60, 0x5F, 0x8EF0) /* <CJK> */
-MAP(0x60, 0x60, 0x8EF1) /* <CJK> */
-MAP(0x60, 0x61, 0x8EF7) /* <CJK> */
-MAP(0x60, 0x62, 0x8EF9) /* <CJK> */
-MAP(0x60, 0x63, 0x8EFA) /* <CJK> */
-MAP(0x60, 0x64, 0x8EED) /* <CJK> */
-MAP(0x60, 0x65, 0x8F00) /* <CJK> */
-MAP(0x60, 0x66, 0x8F02) /* <CJK> */
-MAP(0x60, 0x67, 0x8F07) /* <CJK> */
-MAP(0x60, 0x68, 0x8F08) /* <CJK> */
-MAP(0x60, 0x69, 0x8F0F) /* <CJK> */
-MAP(0x60, 0x6A, 0x8F10) /* <CJK> */
-MAP(0x60, 0x6B, 0x8F16) /* <CJK> */
-MAP(0x60, 0x6C, 0x8F17) /* <CJK> */
-MAP(0x60, 0x6D, 0x8F18) /* <CJK> */
-MAP(0x60, 0x6E, 0x8F1E) /* <CJK> */
-MAP(0x60, 0x6F, 0x8F20) /* <CJK> */
-MAP(0x60, 0x70, 0x8F21) /* <CJK> */
-MAP(0x60, 0x71, 0x8F23) /* <CJK> */
-MAP(0x60, 0x72, 0x8F25) /* <CJK> */
-MAP(0x60, 0x73, 0x8F27) /* <CJK> */
-MAP(0x60, 0x74, 0x8F28) /* <CJK> */
-MAP(0x60, 0x75, 0x8F2C) /* <CJK> */
-MAP(0x60, 0x76, 0x8F2D) /* <CJK> */
-MAP(0x60, 0x77, 0x8F2E) /* <CJK> */
-MAP(0x60, 0x78, 0x8F34) /* <CJK> */
-MAP(0x60, 0x79, 0x8F35) /* <CJK> */
-MAP(0x60, 0x7A, 0x8F36) /* <CJK> */
-MAP(0x60, 0x7B, 0x8F37) /* <CJK> */
-MAP(0x60, 0x7C, 0x8F3A) /* <CJK> */
-MAP(0x60, 0x7D, 0x8F40) /* <CJK> */
-MAP(0x60, 0x7E, 0x8F41) /* <CJK> */
-MAP(0x61, 0x21, 0x8F43) /* <CJK> */
-MAP(0x61, 0x22, 0x8F47) /* <CJK> */
-MAP(0x61, 0x23, 0x8F4F) /* <CJK> */
-MAP(0x61, 0x24, 0x8F51) /* <CJK> */
-MAP(0x61, 0x25, 0x8F52) /* <CJK> */
-MAP(0x61, 0x26, 0x8F53) /* <CJK> */
-MAP(0x61, 0x27, 0x8F54) /* <CJK> */
-MAP(0x61, 0x28, 0x8F55) /* <CJK> */
-MAP(0x61, 0x29, 0x8F58) /* <CJK> */
-MAP(0x61, 0x2A, 0x8F5D) /* <CJK> */
-MAP(0x61, 0x2B, 0x8F5E) /* <CJK> */
-MAP(0x61, 0x2C, 0x8F65) /* <CJK> */
-MAP(0x61, 0x2D, 0x8F9D) /* <CJK> */
-MAP(0x61, 0x2E, 0x8FA0) /* <CJK> */
-MAP(0x61, 0x2F, 0x8FA1) /* <CJK> */
-MAP(0x61, 0x30, 0x8FA4) /* <CJK> */
-MAP(0x61, 0x31, 0x8FA5) /* <CJK> */
-MAP(0x61, 0x32, 0x8FA6) /* <CJK> */
-MAP(0x61, 0x33, 0x8FB5) /* <CJK> */
-MAP(0x61, 0x34, 0x8FB6) /* <CJK> */
-MAP(0x61, 0x35, 0x8FB8) /* <CJK> */
-MAP(0x61, 0x36, 0x8FBE) /* <CJK> */
-MAP(0x61, 0x37, 0x8FC0) /* <CJK> */
-MAP(0x61, 0x38, 0x8FC1) /* <CJK> */
-MAP(0x61, 0x39, 0x8FC6) /* <CJK> */
-MAP(0x61, 0x3A, 0x8FCA) /* <CJK> */
-MAP(0x61, 0x3B, 0x8FCB) /* <CJK> */
-MAP(0x61, 0x3C, 0x8FCD) /* <CJK> */
-MAP(0x61, 0x3D, 0x8FD0) /* <CJK> */
-MAP(0x61, 0x3E, 0x8FD2) /* <CJK> */
-MAP(0x61, 0x3F, 0x8FD3) /* <CJK> */
-MAP(0x61, 0x40, 0x8FD5) /* <CJK> */
-MAP(0x61, 0x41, 0x8FE0) /* <CJK> */
-MAP(0x61, 0x42, 0x8FE3) /* <CJK> */
-MAP(0x61, 0x43, 0x8FE4) /* <CJK> */
-MAP(0x61, 0x44, 0x8FE8) /* <CJK> */
-MAP(0x61, 0x45, 0x8FEE) /* <CJK> */
-MAP(0x61, 0x46, 0x8FF1) /* <CJK> */
-MAP(0x61, 0x47, 0x8FF5) /* <CJK> */
-MAP(0x61, 0x48, 0x8FF6) /* <CJK> */
-MAP(0x61, 0x49, 0x8FFB) /* <CJK> */
-MAP(0x61, 0x4A, 0x8FFE) /* <CJK> */
-MAP(0x61, 0x4B, 0x9002) /* <CJK> */
-MAP(0x61, 0x4C, 0x9004) /* <CJK> */
-MAP(0x61, 0x4D, 0x9008) /* <CJK> */
-MAP(0x61, 0x4E, 0x900C) /* <CJK> */
-MAP(0x61, 0x4F, 0x9018) /* <CJK> */
-MAP(0x61, 0x50, 0x901B) /* <CJK> */
-MAP(0x61, 0x51, 0x9028) /* <CJK> */
-MAP(0x61, 0x52, 0x9029) /* <CJK> */
-MAP(0x61, 0x53, 0x902F) /* <CJK> */
-MAP(0x61, 0x54, 0x902A) /* <CJK> */
-MAP(0x61, 0x55, 0x902C) /* <CJK> */
-MAP(0x61, 0x56, 0x902D) /* <CJK> */
-MAP(0x61, 0x57, 0x9033) /* <CJK> */
-MAP(0x61, 0x58, 0x9034) /* <CJK> */
-MAP(0x61, 0x59, 0x9037) /* <CJK> */
-MAP(0x61, 0x5A, 0x903F) /* <CJK> */
-MAP(0x61, 0x5B, 0x9043) /* <CJK> */
-MAP(0x61, 0x5C, 0x9044) /* <CJK> */
-MAP(0x61, 0x5D, 0x904C) /* <CJK> */
-MAP(0x61, 0x5E, 0x905B) /* <CJK> */
-MAP(0x61, 0x5F, 0x905D) /* <CJK> */
-MAP(0x61, 0x60, 0x9062) /* <CJK> */
-MAP(0x61, 0x61, 0x9066) /* <CJK> */
-MAP(0x61, 0x62, 0x9067) /* <CJK> */
-MAP(0x61, 0x63, 0x906C) /* <CJK> */
-MAP(0x61, 0x64, 0x9070) /* <CJK> */
-MAP(0x61, 0x65, 0x9074) /* <CJK> */
-MAP(0x61, 0x66, 0x9079) /* <CJK> */
-MAP(0x61, 0x67, 0x9085) /* <CJK> */
-MAP(0x61, 0x68, 0x9088) /* <CJK> */
-MAP(0x61, 0x69, 0x908B) /* <CJK> */
-MAP(0x61, 0x6A, 0x908C) /* <CJK> */
-MAP(0x61, 0x6B, 0x908E) /* <CJK> */
-MAP(0x61, 0x6C, 0x9090) /* <CJK> */
-MAP(0x61, 0x6D, 0x9095) /* <CJK> */
-MAP(0x61, 0x6E, 0x9097) /* <CJK> */
-MAP(0x61, 0x6F, 0x9098) /* <CJK> */
-MAP(0x61, 0x70, 0x9099) /* <CJK> */
-MAP(0x61, 0x71, 0x909B) /* <CJK> */
-MAP(0x61, 0x72, 0x90A0) /* <CJK> */
-MAP(0x61, 0x73, 0x90A1) /* <CJK> */
-MAP(0x61, 0x74, 0x90A2) /* <CJK> */
-MAP(0x61, 0x75, 0x90A5) /* <CJK> */
-MAP(0x61, 0x76, 0x90B0) /* <CJK> */
-MAP(0x61, 0x77, 0x90B2) /* <CJK> */
-MAP(0x61, 0x78, 0x90B3) /* <CJK> */
-MAP(0x61, 0x79, 0x90B4) /* <CJK> */
-MAP(0x61, 0x7A, 0x90B6) /* <CJK> */
-MAP(0x61, 0x7B, 0x90BD) /* <CJK> */
-MAP(0x61, 0x7C, 0x90CC) /* <CJK> */
-MAP(0x61, 0x7D, 0x90BE) /* <CJK> */
-MAP(0x61, 0x7E, 0x90C3) /* <CJK> */
-MAP(0x62, 0x21, 0x90C4) /* <CJK> */
-MAP(0x62, 0x22, 0x90C5) /* <CJK> */
-MAP(0x62, 0x23, 0x90C7) /* <CJK> */
-MAP(0x62, 0x24, 0x90C8) /* <CJK> */
-MAP(0x62, 0x25, 0x90D5) /* <CJK> */
-MAP(0x62, 0x26, 0x90D7) /* <CJK> */
-MAP(0x62, 0x27, 0x90D8) /* <CJK> */
-MAP(0x62, 0x28, 0x90D9) /* <CJK> */
-MAP(0x62, 0x29, 0x90DC) /* <CJK> */
-MAP(0x62, 0x2A, 0x90DD) /* <CJK> */
-MAP(0x62, 0x2B, 0x90DF) /* <CJK> */
-MAP(0x62, 0x2C, 0x90E5) /* <CJK> */
-MAP(0x62, 0x2D, 0x90D2) /* <CJK> */
-MAP(0x62, 0x2E, 0x90F6) /* <CJK> */
-MAP(0x62, 0x2F, 0x90EB) /* <CJK> */
-MAP(0x62, 0x30, 0x90EF) /* <CJK> */
-MAP(0x62, 0x31, 0x90F0) /* <CJK> */
-MAP(0x62, 0x32, 0x90F4) /* <CJK> */
-MAP(0x62, 0x33, 0x90FE) /* <CJK> */
-MAP(0x62, 0x34, 0x90FF) /* <CJK> */
-MAP(0x62, 0x35, 0x9100) /* <CJK> */
-MAP(0x62, 0x36, 0x9104) /* <CJK> */
-MAP(0x62, 0x37, 0x9105) /* <CJK> */
-MAP(0x62, 0x38, 0x9106) /* <CJK> */
-MAP(0x62, 0x39, 0x9108) /* <CJK> */
-MAP(0x62, 0x3A, 0x910D) /* <CJK> */
-MAP(0x62, 0x3B, 0x9110) /* <CJK> */
-MAP(0x62, 0x3C, 0x9114) /* <CJK> */
-MAP(0x62, 0x3D, 0x9116) /* <CJK> */
-MAP(0x62, 0x3E, 0x9117) /* <CJK> */
-MAP(0x62, 0x3F, 0x9118) /* <CJK> */
-MAP(0x62, 0x40, 0x911A) /* <CJK> */
-MAP(0x62, 0x41, 0x911C) /* <CJK> */
-MAP(0x62, 0x42, 0x911E) /* <CJK> */
-MAP(0x62, 0x43, 0x9120) /* <CJK> */
-MAP(0x62, 0x44, 0x9125) /* <CJK> */
-MAP(0x62, 0x45, 0x9122) /* <CJK> */
-MAP(0x62, 0x46, 0x9123) /* <CJK> */
-MAP(0x62, 0x47, 0x9127) /* <CJK> */
-MAP(0x62, 0x48, 0x9129) /* <CJK> */
-MAP(0x62, 0x49, 0x912E) /* <CJK> */
-MAP(0x62, 0x4A, 0x912F) /* <CJK> */
-MAP(0x62, 0x4B, 0x9131) /* <CJK> */
-MAP(0x62, 0x4C, 0x9134) /* <CJK> */
-MAP(0x62, 0x4D, 0x9136) /* <CJK> */
-MAP(0x62, 0x4E, 0x9137) /* <CJK> */
-MAP(0x62, 0x4F, 0x9139) /* <CJK> */
-MAP(0x62, 0x50, 0x913A) /* <CJK> */
-MAP(0x62, 0x51, 0x913C) /* <CJK> */
-MAP(0x62, 0x52, 0x913D) /* <CJK> */
-MAP(0x62, 0x53, 0x9143) /* <CJK> */
-MAP(0x62, 0x54, 0x9147) /* <CJK> */
-MAP(0x62, 0x55, 0x9148) /* <CJK> */
-MAP(0x62, 0x56, 0x914F) /* <CJK> */
-MAP(0x62, 0x57, 0x9153) /* <CJK> */
-MAP(0x62, 0x58, 0x9157) /* <CJK> */
-MAP(0x62, 0x59, 0x9159) /* <CJK> */
-MAP(0x62, 0x5A, 0x915A) /* <CJK> */
-MAP(0x62, 0x5B, 0x915B) /* <CJK> */
-MAP(0x62, 0x5C, 0x9161) /* <CJK> */
-MAP(0x62, 0x5D, 0x9164) /* <CJK> */
-MAP(0x62, 0x5E, 0x9167) /* <CJK> */
-MAP(0x62, 0x5F, 0x916D) /* <CJK> */
-MAP(0x62, 0x60, 0x9174) /* <CJK> */
-MAP(0x62, 0x61, 0x9179) /* <CJK> */
-MAP(0x62, 0x62, 0x917A) /* <CJK> */
-MAP(0x62, 0x63, 0x917B) /* <CJK> */
-MAP(0x62, 0x64, 0x9181) /* <CJK> */
-MAP(0x62, 0x65, 0x9183) /* <CJK> */
-MAP(0x62, 0x66, 0x9185) /* <CJK> */
-MAP(0x62, 0x67, 0x9186) /* <CJK> */
-MAP(0x62, 0x68, 0x918A) /* <CJK> */
-MAP(0x62, 0x69, 0x918E) /* <CJK> */
-MAP(0x62, 0x6A, 0x9191) /* <CJK> */
-MAP(0x62, 0x6B, 0x9193) /* <CJK> */
-MAP(0x62, 0x6C, 0x9194) /* <CJK> */
-MAP(0x62, 0x6D, 0x9195) /* <CJK> */
-MAP(0x62, 0x6E, 0x9198) /* <CJK> */
-MAP(0x62, 0x6F, 0x919E) /* <CJK> */
-MAP(0x62, 0x70, 0x91A1) /* <CJK> */
-MAP(0x62, 0x71, 0x91A6) /* <CJK> */
-MAP(0x62, 0x72, 0x91A8) /* <CJK> */
-MAP(0x62, 0x73, 0x91AC) /* <CJK> */
-MAP(0x62, 0x74, 0x91AD) /* <CJK> */
-MAP(0x62, 0x75, 0x91AE) /* <CJK> */
-MAP(0x62, 0x76, 0x91B0) /* <CJK> */
-MAP(0x62, 0x77, 0x91B1) /* <CJK> */
-MAP(0x62, 0x78, 0x91B2) /* <CJK> */
-MAP(0x62, 0x79, 0x91B3) /* <CJK> */
-MAP(0x62, 0x7A, 0x91B6) /* <CJK> */
-MAP(0x62, 0x7B, 0x91BB) /* <CJK> */
-MAP(0x62, 0x7C, 0x91BC) /* <CJK> */
-MAP(0x62, 0x7D, 0x91BD) /* <CJK> */
-MAP(0x62, 0x7E, 0x91BF) /* <CJK> */
-MAP(0x63, 0x21, 0x91C2) /* <CJK> */
-MAP(0x63, 0x22, 0x91C3) /* <CJK> */
-MAP(0x63, 0x23, 0x91C5) /* <CJK> */
-MAP(0x63, 0x24, 0x91D3) /* <CJK> */
-MAP(0x63, 0x25, 0x91D4) /* <CJK> */
-MAP(0x63, 0x26, 0x91D7) /* <CJK> */
-MAP(0x63, 0x27, 0x91D9) /* <CJK> */
-MAP(0x63, 0x28, 0x91DA) /* <CJK> */
-MAP(0x63, 0x29, 0x91DE) /* <CJK> */
-MAP(0x63, 0x2A, 0x91E4) /* <CJK> */
-MAP(0x63, 0x2B, 0x91E5) /* <CJK> */
-MAP(0x63, 0x2C, 0x91E9) /* <CJK> */
-MAP(0x63, 0x2D, 0x91EA) /* <CJK> */
-MAP(0x63, 0x2E, 0x91EC) /* <CJK> */
-MAP(0x63, 0x2F, 0x91ED) /* <CJK> */
-MAP(0x63, 0x30, 0x91EE) /* <CJK> */
-MAP(0x63, 0x31, 0x91EF) /* <CJK> */
-MAP(0x63, 0x32, 0x91F0) /* <CJK> */
-MAP(0x63, 0x33, 0x91F1) /* <CJK> */
-MAP(0x63, 0x34, 0x91F7) /* <CJK> */
-MAP(0x63, 0x35, 0x91F9) /* <CJK> */
-MAP(0x63, 0x36, 0x91FB) /* <CJK> */
-MAP(0x63, 0x37, 0x91FD) /* <CJK> */
-MAP(0x63, 0x38, 0x9200) /* <CJK> */
-MAP(0x63, 0x39, 0x9201) /* <CJK> */
-MAP(0x63, 0x3A, 0x9204) /* <CJK> */
-MAP(0x63, 0x3B, 0x9205) /* <CJK> */
-MAP(0x63, 0x3C, 0x9206) /* <CJK> */
-MAP(0x63, 0x3D, 0x9207) /* <CJK> */
-MAP(0x63, 0x3E, 0x9209) /* <CJK> */
-MAP(0x63, 0x3F, 0x920A) /* <CJK> */
-MAP(0x63, 0x40, 0x920C) /* <CJK> */
-MAP(0x63, 0x41, 0x9210) /* <CJK> */
-MAP(0x63, 0x42, 0x9212) /* <CJK> */
-MAP(0x63, 0x43, 0x9213) /* <CJK> */
-MAP(0x63, 0x44, 0x9216) /* <CJK> */
-MAP(0x63, 0x45, 0x9218) /* <CJK> */
-MAP(0x63, 0x46, 0x921C) /* <CJK> */
-MAP(0x63, 0x47, 0x921D) /* <CJK> */
-MAP(0x63, 0x48, 0x9223) /* <CJK> */
-MAP(0x63, 0x49, 0x9224) /* <CJK> */
-MAP(0x63, 0x4A, 0x9225) /* <CJK> */
-MAP(0x63, 0x4B, 0x9226) /* <CJK> */
-MAP(0x63, 0x4C, 0x9228) /* <CJK> */
-MAP(0x63, 0x4D, 0x922E) /* <CJK> */
-MAP(0x63, 0x4E, 0x922F) /* <CJK> */
-MAP(0x63, 0x4F, 0x9230) /* <CJK> */
-MAP(0x63, 0x50, 0x9233) /* <CJK> */
-MAP(0x63, 0x51, 0x9235) /* <CJK> */
-MAP(0x63, 0x52, 0x9236) /* <CJK> */
-MAP(0x63, 0x53, 0x9238) /* <CJK> */
-MAP(0x63, 0x54, 0x9239) /* <CJK> */
-MAP(0x63, 0x55, 0x923A) /* <CJK> */
-MAP(0x63, 0x56, 0x923C) /* <CJK> */
-MAP(0x63, 0x57, 0x923E) /* <CJK> */
-MAP(0x63, 0x58, 0x9240) /* <CJK> */
-MAP(0x63, 0x59, 0x9242) /* <CJK> */
-MAP(0x63, 0x5A, 0x9243) /* <CJK> */
-MAP(0x63, 0x5B, 0x9246) /* <CJK> */
-MAP(0x63, 0x5C, 0x9247) /* <CJK> */
-MAP(0x63, 0x5D, 0x924A) /* <CJK> */
-MAP(0x63, 0x5E, 0x924D) /* <CJK> */
-MAP(0x63, 0x5F, 0x924E) /* <CJK> */
-MAP(0x63, 0x60, 0x924F) /* <CJK> */
-MAP(0x63, 0x61, 0x9251) /* <CJK> */
-MAP(0x63, 0x62, 0x9258) /* <CJK> */
-MAP(0x63, 0x63, 0x9259) /* <CJK> */
-MAP(0x63, 0x64, 0x925C) /* <CJK> */
-MAP(0x63, 0x65, 0x925D) /* <CJK> */
-MAP(0x63, 0x66, 0x9260) /* <CJK> */
-MAP(0x63, 0x67, 0x9261) /* <CJK> */
-MAP(0x63, 0x68, 0x9265) /* <CJK> */
-MAP(0x63, 0x69, 0x9267) /* <CJK> */
-MAP(0x63, 0x6A, 0x9268) /* <CJK> */
-MAP(0x63, 0x6B, 0x9269) /* <CJK> */
-MAP(0x63, 0x6C, 0x926E) /* <CJK> */
-MAP(0x63, 0x6D, 0x926F) /* <CJK> */
-MAP(0x63, 0x6E, 0x9270) /* <CJK> */
-MAP(0x63, 0x6F, 0x9275) /* <CJK> */
-MAP(0x63, 0x70, 0x9276) /* <CJK> */
-MAP(0x63, 0x71, 0x9277) /* <CJK> */
-MAP(0x63, 0x72, 0x9278) /* <CJK> */
-MAP(0x63, 0x73, 0x9279) /* <CJK> */
-MAP(0x63, 0x74, 0x927B) /* <CJK> */
-MAP(0x63, 0x75, 0x927C) /* <CJK> */
-MAP(0x63, 0x76, 0x927D) /* <CJK> */
-MAP(0x63, 0x77, 0x927F) /* <CJK> */
-MAP(0x63, 0x78, 0x9288) /* <CJK> */
-MAP(0x63, 0x79, 0x9289) /* <CJK> */
-MAP(0x63, 0x7A, 0x928A) /* <CJK> */
-MAP(0x63, 0x7B, 0x928D) /* <CJK> */
-MAP(0x63, 0x7C, 0x928E) /* <CJK> */
-MAP(0x63, 0x7D, 0x9292) /* <CJK> */
-MAP(0x63, 0x7E, 0x9297) /* <CJK> */
-MAP(0x64, 0x21, 0x9299) /* <CJK> */
-MAP(0x64, 0x22, 0x929F) /* <CJK> */
-MAP(0x64, 0x23, 0x92A0) /* <CJK> */
-MAP(0x64, 0x24, 0x92A4) /* <CJK> */
-MAP(0x64, 0x25, 0x92A5) /* <CJK> */
-MAP(0x64, 0x26, 0x92A7) /* <CJK> */
-MAP(0x64, 0x27, 0x92A8) /* <CJK> */
-MAP(0x64, 0x28, 0x92AB) /* <CJK> */
-MAP(0x64, 0x29, 0x92AF) /* <CJK> */
-MAP(0x64, 0x2A, 0x92B2) /* <CJK> */
-MAP(0x64, 0x2B, 0x92B6) /* <CJK> */
-MAP(0x64, 0x2C, 0x92B8) /* <CJK> */
-MAP(0x64, 0x2D, 0x92BA) /* <CJK> */
-MAP(0x64, 0x2E, 0x92BB) /* <CJK> */
-MAP(0x64, 0x2F, 0x92BC) /* <CJK> */
-MAP(0x64, 0x30, 0x92BD) /* <CJK> */
-MAP(0x64, 0x31, 0x92BF) /* <CJK> */
-MAP(0x64, 0x32, 0x92C0) /* <CJK> */
-MAP(0x64, 0x33, 0x92C1) /* <CJK> */
-MAP(0x64, 0x34, 0x92C2) /* <CJK> */
-MAP(0x64, 0x35, 0x92C3) /* <CJK> */
-MAP(0x64, 0x36, 0x92C5) /* <CJK> */
-MAP(0x64, 0x37, 0x92C6) /* <CJK> */
-MAP(0x64, 0x38, 0x92C7) /* <CJK> */
-MAP(0x64, 0x39, 0x92C8) /* <CJK> */
-MAP(0x64, 0x3A, 0x92CB) /* <CJK> */
-MAP(0x64, 0x3B, 0x92CC) /* <CJK> */
-MAP(0x64, 0x3C, 0x92CD) /* <CJK> */
-MAP(0x64, 0x3D, 0x92CE) /* <CJK> */
-MAP(0x64, 0x3E, 0x92D0) /* <CJK> */
-MAP(0x64, 0x3F, 0x92D3) /* <CJK> */
-MAP(0x64, 0x40, 0x92D5) /* <CJK> */
-MAP(0x64, 0x41, 0x92D7) /* <CJK> */
-MAP(0x64, 0x42, 0x92D8) /* <CJK> */
-MAP(0x64, 0x43, 0x92D9) /* <CJK> */
-MAP(0x64, 0x44, 0x92DC) /* <CJK> */
-MAP(0x64, 0x45, 0x92DD) /* <CJK> */
-MAP(0x64, 0x46, 0x92DF) /* <CJK> */
-MAP(0x64, 0x47, 0x92E0) /* <CJK> */
-MAP(0x64, 0x48, 0x92E1) /* <CJK> */
-MAP(0x64, 0x49, 0x92E3) /* <CJK> */
-MAP(0x64, 0x4A, 0x92E5) /* <CJK> */
-MAP(0x64, 0x4B, 0x92E7) /* <CJK> */
-MAP(0x64, 0x4C, 0x92E8) /* <CJK> */
-MAP(0x64, 0x4D, 0x92EC) /* <CJK> */
-MAP(0x64, 0x4E, 0x92EE) /* <CJK> */
-MAP(0x64, 0x4F, 0x92F0) /* <CJK> */
-MAP(0x64, 0x50, 0x92F9) /* <CJK> */
-MAP(0x64, 0x51, 0x92FB) /* <CJK> */
-MAP(0x64, 0x52, 0x92FF) /* <CJK> */
-MAP(0x64, 0x53, 0x9300) /* <CJK> */
-MAP(0x64, 0x54, 0x9302) /* <CJK> */
-MAP(0x64, 0x55, 0x9308) /* <CJK> */
-MAP(0x64, 0x56, 0x930D) /* <CJK> */
-MAP(0x64, 0x57, 0x9311) /* <CJK> */
-MAP(0x64, 0x58, 0x9314) /* <CJK> */
-MAP(0x64, 0x59, 0x9315) /* <CJK> */
-MAP(0x64, 0x5A, 0x931C) /* <CJK> */
-MAP(0x64, 0x5B, 0x931D) /* <CJK> */
-MAP(0x64, 0x5C, 0x931E) /* <CJK> */
-MAP(0x64, 0x5D, 0x931F) /* <CJK> */
-MAP(0x64, 0x5E, 0x9321) /* <CJK> */
-MAP(0x64, 0x5F, 0x9324) /* <CJK> */
-MAP(0x64, 0x60, 0x9325) /* <CJK> */
-MAP(0x64, 0x61, 0x9327) /* <CJK> */
-MAP(0x64, 0x62, 0x9329) /* <CJK> */
-MAP(0x64, 0x63, 0x932A) /* <CJK> */
-MAP(0x64, 0x64, 0x9333) /* <CJK> */
-MAP(0x64, 0x65, 0x9334) /* <CJK> */
-MAP(0x64, 0x66, 0x9336) /* <CJK> */
-MAP(0x64, 0x67, 0x9337) /* <CJK> */
-MAP(0x64, 0x68, 0x9347) /* <CJK> */
-MAP(0x64, 0x69, 0x9348) /* <CJK> */
-MAP(0x64, 0x6A, 0x9349) /* <CJK> */
-MAP(0x64, 0x6B, 0x9350) /* <CJK> */
-MAP(0x64, 0x6C, 0x9351) /* <CJK> */
-MAP(0x64, 0x6D, 0x9352) /* <CJK> */
-MAP(0x64, 0x6E, 0x9355) /* <CJK> */
-MAP(0x64, 0x6F, 0x9357) /* <CJK> */
-MAP(0x64, 0x70, 0x9358) /* <CJK> */
-MAP(0x64, 0x71, 0x935A) /* <CJK> */
-MAP(0x64, 0x72, 0x935E) /* <CJK> */
-MAP(0x64, 0x73, 0x9364) /* <CJK> */
-MAP(0x64, 0x74, 0x9365) /* <CJK> */
-MAP(0x64, 0x75, 0x9367) /* <CJK> */
-MAP(0x64, 0x76, 0x9369) /* <CJK> */
-MAP(0x64, 0x77, 0x936A) /* <CJK> */
-MAP(0x64, 0x78, 0x936D) /* <CJK> */
-MAP(0x64, 0x79, 0x936F) /* <CJK> */
-MAP(0x64, 0x7A, 0x9370) /* <CJK> */
-MAP(0x64, 0x7B, 0x9371) /* <CJK> */
-MAP(0x64, 0x7C, 0x9373) /* <CJK> */
-MAP(0x64, 0x7D, 0x9374) /* <CJK> */
-MAP(0x64, 0x7E, 0x9376) /* <CJK> */
-MAP(0x65, 0x21, 0x937A) /* <CJK> */
-MAP(0x65, 0x22, 0x937D) /* <CJK> */
-MAP(0x65, 0x23, 0x937F) /* <CJK> */
-MAP(0x65, 0x24, 0x9380) /* <CJK> */
-MAP(0x65, 0x25, 0x9381) /* <CJK> */
-MAP(0x65, 0x26, 0x9382) /* <CJK> */
-MAP(0x65, 0x27, 0x9388) /* <CJK> */
-MAP(0x65, 0x28, 0x938A) /* <CJK> */
-MAP(0x65, 0x29, 0x938B) /* <CJK> */
-MAP(0x65, 0x2A, 0x938D) /* <CJK> */
-MAP(0x65, 0x2B, 0x938F) /* <CJK> */
-MAP(0x65, 0x2C, 0x9392) /* <CJK> */
-MAP(0x65, 0x2D, 0x9395) /* <CJK> */
-MAP(0x65, 0x2E, 0x9398) /* <CJK> */
-MAP(0x65, 0x2F, 0x939B) /* <CJK> */
-MAP(0x65, 0x30, 0x939E) /* <CJK> */
-MAP(0x65, 0x31, 0x93A1) /* <CJK> */
-MAP(0x65, 0x32, 0x93A3) /* <CJK> */
-MAP(0x65, 0x33, 0x93A4) /* <CJK> */
-MAP(0x65, 0x34, 0x93A6) /* <CJK> */
-MAP(0x65, 0x35, 0x93A8) /* <CJK> */
-MAP(0x65, 0x36, 0x93AB) /* <CJK> */
-MAP(0x65, 0x37, 0x93B4) /* <CJK> */
-MAP(0x65, 0x38, 0x93B5) /* <CJK> */
-MAP(0x65, 0x39, 0x93B6) /* <CJK> */
-MAP(0x65, 0x3A, 0x93BA) /* <CJK> */
-MAP(0x65, 0x3B, 0x93A9) /* <CJK> */
-MAP(0x65, 0x3C, 0x93C1) /* <CJK> */
-MAP(0x65, 0x3D, 0x93C4) /* <CJK> */
-MAP(0x65, 0x3E, 0x93C5) /* <CJK> */
-MAP(0x65, 0x3F, 0x93C6) /* <CJK> */
-MAP(0x65, 0x40, 0x93C7) /* <CJK> */
-MAP(0x65, 0x41, 0x93C9) /* <CJK> */
-MAP(0x65, 0x42, 0x93CA) /* <CJK> */
-MAP(0x65, 0x43, 0x93CB) /* <CJK> */
-MAP(0x65, 0x44, 0x93CC) /* <CJK> */
-MAP(0x65, 0x45, 0x93CD) /* <CJK> */
-MAP(0x65, 0x46, 0x93D3) /* <CJK> */
-MAP(0x65, 0x47, 0x93D9) /* <CJK> */
-MAP(0x65, 0x48, 0x93DC) /* <CJK> */
-MAP(0x65, 0x49, 0x93DE) /* <CJK> */
-MAP(0x65, 0x4A, 0x93DF) /* <CJK> */
-MAP(0x65, 0x4B, 0x93E2) /* <CJK> */
-MAP(0x65, 0x4C, 0x93E6) /* <CJK> */
-MAP(0x65, 0x4D, 0x93E7) /* <CJK> */
-MAP(0x65, 0x4E, 0x93F9) /* <CJK> */
-MAP(0x65, 0x4F, 0x93F7) /* <CJK> */
-MAP(0x65, 0x50, 0x93F8) /* <CJK> */
-MAP(0x65, 0x51, 0x93FA) /* <CJK> */
-MAP(0x65, 0x52, 0x93FB) /* <CJK> */
-MAP(0x65, 0x53, 0x93FD) /* <CJK> */
-MAP(0x65, 0x54, 0x9401) /* <CJK> */
-MAP(0x65, 0x55, 0x9402) /* <CJK> */
-MAP(0x65, 0x56, 0x9404) /* <CJK> */
-MAP(0x65, 0x57, 0x9408) /* <CJK> */
-MAP(0x65, 0x58, 0x9409) /* <CJK> */
-MAP(0x65, 0x59, 0x940D) /* <CJK> */
-MAP(0x65, 0x5A, 0x940E) /* <CJK> */
-MAP(0x65, 0x5B, 0x940F) /* <CJK> */
-MAP(0x65, 0x5C, 0x9415) /* <CJK> */
-MAP(0x65, 0x5D, 0x9416) /* <CJK> */
-MAP(0x65, 0x5E, 0x9417) /* <CJK> */
-MAP(0x65, 0x5F, 0x941F) /* <CJK> */
-MAP(0x65, 0x60, 0x942E) /* <CJK> */
-MAP(0x65, 0x61, 0x942F) /* <CJK> */
-MAP(0x65, 0x62, 0x9431) /* <CJK> */
-MAP(0x65, 0x63, 0x9432) /* <CJK> */
-MAP(0x65, 0x64, 0x9433) /* <CJK> */
-MAP(0x65, 0x65, 0x9434) /* <CJK> */
-MAP(0x65, 0x66, 0x943B) /* <CJK> */
-MAP(0x65, 0x67, 0x943F) /* <CJK> */
-MAP(0x65, 0x68, 0x943D) /* <CJK> */
-MAP(0x65, 0x69, 0x9443) /* <CJK> */
-MAP(0x65, 0x6A, 0x9445) /* <CJK> */
-MAP(0x65, 0x6B, 0x9448) /* <CJK> */
-MAP(0x65, 0x6C, 0x944A) /* <CJK> */
-MAP(0x65, 0x6D, 0x944C) /* <CJK> */
-MAP(0x65, 0x6E, 0x9455) /* <CJK> */
-MAP(0x65, 0x6F, 0x9459) /* <CJK> */
-MAP(0x65, 0x70, 0x945C) /* <CJK> */
-MAP(0x65, 0x71, 0x945F) /* <CJK> */
-MAP(0x65, 0x72, 0x9461) /* <CJK> */
-MAP(0x65, 0x73, 0x9463) /* <CJK> */
-MAP(0x65, 0x74, 0x9468) /* <CJK> */
-MAP(0x65, 0x75, 0x946B) /* <CJK> */
-MAP(0x65, 0x76, 0x946D) /* <CJK> */
-MAP(0x65, 0x77, 0x946E) /* <CJK> */
-MAP(0x65, 0x78, 0x946F) /* <CJK> */
-MAP(0x65, 0x79, 0x9471) /* <CJK> */
-MAP(0x65, 0x7A, 0x9472) /* <CJK> */
-MAP(0x65, 0x7B, 0x9484) /* <CJK> */
-MAP(0x65, 0x7C, 0x9483) /* <CJK> */
-MAP(0x65, 0x7D, 0x9578) /* <CJK> */
-MAP(0x65, 0x7E, 0x9579) /* <CJK> */
-MAP(0x66, 0x21, 0x957E) /* <CJK> */
-MAP(0x66, 0x22, 0x9584) /* <CJK> */
-MAP(0x66, 0x23, 0x9588) /* <CJK> */
-MAP(0x66, 0x24, 0x958C) /* <CJK> */
-MAP(0x66, 0x25, 0x958D) /* <CJK> */
-MAP(0x66, 0x26, 0x958E) /* <CJK> */
-MAP(0x66, 0x27, 0x959D) /* <CJK> */
-MAP(0x66, 0x28, 0x959E) /* <CJK> */
-MAP(0x66, 0x29, 0x959F) /* <CJK> */
-MAP(0x66, 0x2A, 0x95A1) /* <CJK> */
-MAP(0x66, 0x2B, 0x95A6) /* <CJK> */
-MAP(0x66, 0x2C, 0x95A9) /* <CJK> */
-MAP(0x66, 0x2D, 0x95AB) /* <CJK> */
-MAP(0x66, 0x2E, 0x95AC) /* <CJK> */
-MAP(0x66, 0x2F, 0x95B4) /* <CJK> */
-MAP(0x66, 0x30, 0x95B6) /* <CJK> */
-MAP(0x66, 0x31, 0x95BA) /* <CJK> */
-MAP(0x66, 0x32, 0x95BD) /* <CJK> */
-MAP(0x66, 0x33, 0x95BF) /* <CJK> */
-MAP(0x66, 0x34, 0x95C6) /* <CJK> */
-MAP(0x66, 0x35, 0x95C8) /* <CJK> */
-MAP(0x66, 0x36, 0x95C9) /* <CJK> */
-MAP(0x66, 0x37, 0x95CB) /* <CJK> */
-MAP(0x66, 0x38, 0x95D0) /* <CJK> */
-MAP(0x66, 0x39, 0x95D1) /* <CJK> */
-MAP(0x66, 0x3A, 0x95D2) /* <CJK> */
-MAP(0x66, 0x3B, 0x95D3) /* <CJK> */
-MAP(0x66, 0x3C, 0x95D9) /* <CJK> */
-MAP(0x66, 0x3D, 0x95DA) /* <CJK> */
-MAP(0x66, 0x3E, 0x95DD) /* <CJK> */
-MAP(0x66, 0x3F, 0x95DE) /* <CJK> */
-MAP(0x66, 0x40, 0x95DF) /* <CJK> */
-MAP(0x66, 0x41, 0x95E0) /* <CJK> */
-MAP(0x66, 0x42, 0x95E4) /* <CJK> */
-MAP(0x66, 0x43, 0x95E6) /* <CJK> */
-MAP(0x66, 0x44, 0x961D) /* <CJK> */
-MAP(0x66, 0x45, 0x961E) /* <CJK> */
-MAP(0x66, 0x46, 0x9622) /* <CJK> */
-MAP(0x66, 0x47, 0x9624) /* <CJK> */
-MAP(0x66, 0x48, 0x9625) /* <CJK> */
-MAP(0x66, 0x49, 0x9626) /* <CJK> */
-MAP(0x66, 0x4A, 0x962C) /* <CJK> */
-MAP(0x66, 0x4B, 0x9631) /* <CJK> */
-MAP(0x66, 0x4C, 0x9633) /* <CJK> */
-MAP(0x66, 0x4D, 0x9637) /* <CJK> */
-MAP(0x66, 0x4E, 0x9638) /* <CJK> */
-MAP(0x66, 0x4F, 0x9639) /* <CJK> */
-MAP(0x66, 0x50, 0x963A) /* <CJK> */
-MAP(0x66, 0x51, 0x963C) /* <CJK> */
-MAP(0x66, 0x52, 0x963D) /* <CJK> */
-MAP(0x66, 0x53, 0x9641) /* <CJK> */
-MAP(0x66, 0x54, 0x9652) /* <CJK> */
-MAP(0x66, 0x55, 0x9654) /* <CJK> */
-MAP(0x66, 0x56, 0x9656) /* <CJK> */
-MAP(0x66, 0x57, 0x9657) /* <CJK> */
-MAP(0x66, 0x58, 0x9658) /* <CJK> */
-MAP(0x66, 0x59, 0x9661) /* <CJK> */
-MAP(0x66, 0x5A, 0x966E) /* <CJK> */
-MAP(0x66, 0x5B, 0x9674) /* <CJK> */
-MAP(0x66, 0x5C, 0x967B) /* <CJK> */
-MAP(0x66, 0x5D, 0x967C) /* <CJK> */
-MAP(0x66, 0x5E, 0x967E) /* <CJK> */
-MAP(0x66, 0x5F, 0x967F) /* <CJK> */
-MAP(0x66, 0x60, 0x9681) /* <CJK> */
-MAP(0x66, 0x61, 0x9682) /* <CJK> */
-MAP(0x66, 0x62, 0x9683) /* <CJK> */
-MAP(0x66, 0x63, 0x9684) /* <CJK> */
-MAP(0x66, 0x64, 0x9689) /* <CJK> */
-MAP(0x66, 0x65, 0x9691) /* <CJK> */
-MAP(0x66, 0x66, 0x9696) /* <CJK> */
-MAP(0x66, 0x67, 0x969A) /* <CJK> */
-MAP(0x66, 0x68, 0x969D) /* <CJK> */
-MAP(0x66, 0x69, 0x969F) /* <CJK> */
-MAP(0x66, 0x6A, 0x96A4) /* <CJK> */
-MAP(0x66, 0x6B, 0x96A5) /* <CJK> */
-MAP(0x66, 0x6C, 0x96A6) /* <CJK> */
-MAP(0x66, 0x6D, 0x96A9) /* <CJK> */
-MAP(0x66, 0x6E, 0x96AE) /* <CJK> */
-MAP(0x66, 0x6F, 0x96AF) /* <CJK> */
-MAP(0x66, 0x70, 0x96B3) /* <CJK> */
-MAP(0x66, 0x71, 0x96BA) /* <CJK> */
-MAP(0x66, 0x72, 0x96CA) /* <CJK> */
-MAP(0x66, 0x73, 0x96D2) /* <CJK> */
-MAP(0x66, 0x74, 0x5DB2) /* <CJK> */
-MAP(0x66, 0x75, 0x96D8) /* <CJK> */
-MAP(0x66, 0x76, 0x96DA) /* <CJK> */
-MAP(0x66, 0x77, 0x96DD) /* <CJK> */
-MAP(0x66, 0x78, 0x96DE) /* <CJK> */
-MAP(0x66, 0x79, 0x96DF) /* <CJK> */
-MAP(0x66, 0x7A, 0x96E9) /* <CJK> */
-MAP(0x66, 0x7B, 0x96EF) /* <CJK> */
-MAP(0x66, 0x7C, 0x96F1) /* <CJK> */
-MAP(0x66, 0x7D, 0x96FA) /* <CJK> */
-MAP(0x66, 0x7E, 0x9702) /* <CJK> */
-MAP(0x67, 0x21, 0x9703) /* <CJK> */
-MAP(0x67, 0x22, 0x9705) /* <CJK> */
-MAP(0x67, 0x23, 0x9709) /* <CJK> */
-MAP(0x67, 0x24, 0x971A) /* <CJK> */
-MAP(0x67, 0x25, 0x971B) /* <CJK> */
-MAP(0x67, 0x26, 0x971D) /* <CJK> */
-MAP(0x67, 0x27, 0x9721) /* <CJK> */
-MAP(0x67, 0x28, 0x9722) /* <CJK> */
-MAP(0x67, 0x29, 0x9723) /* <CJK> */
-MAP(0x67, 0x2A, 0x9728) /* <CJK> */
-MAP(0x67, 0x2B, 0x9731) /* <CJK> */
-MAP(0x67, 0x2C, 0x9733) /* <CJK> */
-MAP(0x67, 0x2D, 0x9741) /* <CJK> */
-MAP(0x67, 0x2E, 0x9743) /* <CJK> */
-MAP(0x67, 0x2F, 0x974A) /* <CJK> */
-MAP(0x67, 0x30, 0x974E) /* <CJK> */
-MAP(0x67, 0x31, 0x974F) /* <CJK> */
-MAP(0x67, 0x32, 0x9755) /* <CJK> */
-MAP(0x67, 0x33, 0x9757) /* <CJK> */
-MAP(0x67, 0x34, 0x9758) /* <CJK> */
-MAP(0x67, 0x35, 0x975A) /* <CJK> */
-MAP(0x67, 0x36, 0x975B) /* <CJK> */
-MAP(0x67, 0x37, 0x9763) /* <CJK> */
-MAP(0x67, 0x38, 0x9767) /* <CJK> */
-MAP(0x67, 0x39, 0x976A) /* <CJK> */
-MAP(0x67, 0x3A, 0x976E) /* <CJK> */
-MAP(0x67, 0x3B, 0x9773) /* <CJK> */
-MAP(0x67, 0x3C, 0x9776) /* <CJK> */
-MAP(0x67, 0x3D, 0x9777) /* <CJK> */
-MAP(0x67, 0x3E, 0x9778) /* <CJK> */
-MAP(0x67, 0x3F, 0x977B) /* <CJK> */
-MAP(0x67, 0x40, 0x977D) /* <CJK> */
-MAP(0x67, 0x41, 0x977F) /* <CJK> */
-MAP(0x67, 0x42, 0x9780) /* <CJK> */
-MAP(0x67, 0x43, 0x9789) /* <CJK> */
-MAP(0x67, 0x44, 0x9795) /* <CJK> */
-MAP(0x67, 0x45, 0x9796) /* <CJK> */
-MAP(0x67, 0x46, 0x9797) /* <CJK> */
-MAP(0x67, 0x47, 0x9799) /* <CJK> */
-MAP(0x67, 0x48, 0x979A) /* <CJK> */
-MAP(0x67, 0x49, 0x979E) /* <CJK> */
-MAP(0x67, 0x4A, 0x979F) /* <CJK> */
-MAP(0x67, 0x4B, 0x97A2) /* <CJK> */
-MAP(0x67, 0x4C, 0x97AC) /* <CJK> */
-MAP(0x67, 0x4D, 0x97AE) /* <CJK> */
-MAP(0x67, 0x4E, 0x97B1) /* <CJK> */
-MAP(0x67, 0x4F, 0x97B2) /* <CJK> */
-MAP(0x67, 0x50, 0x97B5) /* <CJK> */
-MAP(0x67, 0x51, 0x97B6) /* <CJK> */
-MAP(0x67, 0x52, 0x97B8) /* <CJK> */
-MAP(0x67, 0x53, 0x97B9) /* <CJK> */
-MAP(0x67, 0x54, 0x97BA) /* <CJK> */
-MAP(0x67, 0x55, 0x97BC) /* <CJK> */
-MAP(0x67, 0x56, 0x97BE) /* <CJK> */
-MAP(0x67, 0x57, 0x97BF) /* <CJK> */
-MAP(0x67, 0x58, 0x97C1) /* <CJK> */
-MAP(0x67, 0x59, 0x97C4) /* <CJK> */
-MAP(0x67, 0x5A, 0x97C5) /* <CJK> */
-MAP(0x67, 0x5B, 0x97C7) /* <CJK> */
-MAP(0x67, 0x5C, 0x97C9) /* <CJK> */
-MAP(0x67, 0x5D, 0x97CA) /* <CJK> */
-MAP(0x67, 0x5E, 0x97CC) /* <CJK> */
-MAP(0x67, 0x5F, 0x97CD) /* <CJK> */
-MAP(0x67, 0x60, 0x97CE) /* <CJK> */
-MAP(0x67, 0x61, 0x97D0) /* <CJK> */
-MAP(0x67, 0x62, 0x97D1) /* <CJK> */
-MAP(0x67, 0x63, 0x97D4) /* <CJK> */
-MAP(0x67, 0x64, 0x97D7) /* <CJK> */
-MAP(0x67, 0x65, 0x97D8) /* <CJK> */
-MAP(0x67, 0x66, 0x97D9) /* <CJK> */
-MAP(0x67, 0x67, 0x97DD) /* <CJK> */
-MAP(0x67, 0x68, 0x97DE) /* <CJK> */
-MAP(0x67, 0x69, 0x97E0) /* <CJK> */
-MAP(0x67, 0x6A, 0x97DB) /* <CJK> */
-MAP(0x67, 0x6B, 0x97E1) /* <CJK> */
-MAP(0x67, 0x6C, 0x97E4) /* <CJK> */
-MAP(0x67, 0x6D, 0x97EF) /* <CJK> */
-MAP(0x67, 0x6E, 0x97F1) /* <CJK> */
-MAP(0x67, 0x6F, 0x97F4) /* <CJK> */
-MAP(0x67, 0x70, 0x97F7) /* <CJK> */
-MAP(0x67, 0x71, 0x97F8) /* <CJK> */
-MAP(0x67, 0x72, 0x97FA) /* <CJK> */
-MAP(0x67, 0x73, 0x9807) /* <CJK> */
-MAP(0x67, 0x74, 0x980A) /* <CJK> */
-MAP(0x67, 0x75, 0x9819) /* <CJK> */
-MAP(0x67, 0x76, 0x980D) /* <CJK> */
-MAP(0x67, 0x77, 0x980E) /* <CJK> */
-MAP(0x67, 0x78, 0x9814) /* <CJK> */
-MAP(0x67, 0x79, 0x9816) /* <CJK> */
-MAP(0x67, 0x7A, 0x981C) /* <CJK> */
-MAP(0x67, 0x7B, 0x981E) /* <CJK> */
-MAP(0x67, 0x7C, 0x9820) /* <CJK> */
-MAP(0x67, 0x7D, 0x9823) /* <CJK> */
-MAP(0x67, 0x7E, 0x9826) /* <CJK> */
-MAP(0x68, 0x21, 0x982B) /* <CJK> */
-MAP(0x68, 0x22, 0x982E) /* <CJK> */
-MAP(0x68, 0x23, 0x982F) /* <CJK> */
-MAP(0x68, 0x24, 0x9830) /* <CJK> */
-MAP(0x68, 0x25, 0x9832) /* <CJK> */
-MAP(0x68, 0x26, 0x9833) /* <CJK> */
-MAP(0x68, 0x27, 0x9835) /* <CJK> */
-MAP(0x68, 0x28, 0x9825) /* <CJK> */
-MAP(0x68, 0x29, 0x983E) /* <CJK> */
-MAP(0x68, 0x2A, 0x9844) /* <CJK> */
-MAP(0x68, 0x2B, 0x9847) /* <CJK> */
-MAP(0x68, 0x2C, 0x984A) /* <CJK> */
-MAP(0x68, 0x2D, 0x9851) /* <CJK> */
-MAP(0x68, 0x2E, 0x9852) /* <CJK> */
-MAP(0x68, 0x2F, 0x9853) /* <CJK> */
-MAP(0x68, 0x30, 0x9856) /* <CJK> */
-MAP(0x68, 0x31, 0x9857) /* <CJK> */
-MAP(0x68, 0x32, 0x9859) /* <CJK> */
-MAP(0x68, 0x33, 0x985A) /* <CJK> */
-MAP(0x68, 0x34, 0x9862) /* <CJK> */
-MAP(0x68, 0x35, 0x9863) /* <CJK> */
-MAP(0x68, 0x36, 0x9865) /* <CJK> */
-MAP(0x68, 0x37, 0x9866) /* <CJK> */
-MAP(0x68, 0x38, 0x986A) /* <CJK> */
-MAP(0x68, 0x39, 0x986C) /* <CJK> */
-MAP(0x68, 0x3A, 0x98AB) /* <CJK> */
-MAP(0x68, 0x3B, 0x98AD) /* <CJK> */
-MAP(0x68, 0x3C, 0x98AE) /* <CJK> */
-MAP(0x68, 0x3D, 0x98B0) /* <CJK> */
-MAP(0x68, 0x3E, 0x98B4) /* <CJK> */
-MAP(0x68, 0x3F, 0x98B7) /* <CJK> */
-MAP(0x68, 0x40, 0x98B8) /* <CJK> */
-MAP(0x68, 0x41, 0x98BA) /* <CJK> */
-MAP(0x68, 0x42, 0x98BB) /* <CJK> */
-MAP(0x68, 0x43, 0x98BF) /* <CJK> */
-MAP(0x68, 0x44, 0x98C2) /* <CJK> */
-MAP(0x68, 0x45, 0x98C5) /* <CJK> */
-MAP(0x68, 0x46, 0x98C8) /* <CJK> */
-MAP(0x68, 0x47, 0x98CC) /* <CJK> */
-MAP(0x68, 0x48, 0x98E1) /* <CJK> */
-MAP(0x68, 0x49, 0x98E3) /* <CJK> */
-MAP(0x68, 0x4A, 0x98E5) /* <CJK> */
-MAP(0x68, 0x4B, 0x98E6) /* <CJK> */
-MAP(0x68, 0x4C, 0x98E7) /* <CJK> */
-MAP(0x68, 0x4D, 0x98EA) /* <CJK> */
-MAP(0x68, 0x4E, 0x98F3) /* <CJK> */
-MAP(0x68, 0x4F, 0x98F6) /* <CJK> */
-MAP(0x68, 0x50, 0x9902) /* <CJK> */
-MAP(0x68, 0x51, 0x9907) /* <CJK> */
-MAP(0x68, 0x52, 0x9908) /* <CJK> */
-MAP(0x68, 0x53, 0x9911) /* <CJK> */
-MAP(0x68, 0x54, 0x9915) /* <CJK> */
-MAP(0x68, 0x55, 0x9916) /* <CJK> */
-MAP(0x68, 0x56, 0x9917) /* <CJK> */
-MAP(0x68, 0x57, 0x991A) /* <CJK> */
-MAP(0x68, 0x58, 0x991B) /* <CJK> */
-MAP(0x68, 0x59, 0x991C) /* <CJK> */
-MAP(0x68, 0x5A, 0x991F) /* <CJK> */
-MAP(0x68, 0x5B, 0x9922) /* <CJK> */
-MAP(0x68, 0x5C, 0x9926) /* <CJK> */
-MAP(0x68, 0x5D, 0x9927) /* <CJK> */
-MAP(0x68, 0x5E, 0x992B) /* <CJK> */
-MAP(0x68, 0x5F, 0x9931) /* <CJK> */
-MAP(0x68, 0x60, 0x9932) /* <CJK> */
-MAP(0x68, 0x61, 0x9933) /* <CJK> */
-MAP(0x68, 0x62, 0x9934) /* <CJK> */
-MAP(0x68, 0x63, 0x9935) /* <CJK> */
-MAP(0x68, 0x64, 0x9939) /* <CJK> */
-MAP(0x68, 0x65, 0x993A) /* <CJK> */
-MAP(0x68, 0x66, 0x993B) /* <CJK> */
-MAP(0x68, 0x67, 0x993C) /* <CJK> */
-MAP(0x68, 0x68, 0x9940) /* <CJK> */
-MAP(0x68, 0x69, 0x9941) /* <CJK> */
-MAP(0x68, 0x6A, 0x9946) /* <CJK> */
-MAP(0x68, 0x6B, 0x9947) /* <CJK> */
-MAP(0x68, 0x6C, 0x9948) /* <CJK> */
-MAP(0x68, 0x6D, 0x994D) /* <CJK> */
-MAP(0x68, 0x6E, 0x994E) /* <CJK> */
-MAP(0x68, 0x6F, 0x9954) /* <CJK> */
-MAP(0x68, 0x70, 0x9958) /* <CJK> */
-MAP(0x68, 0x71, 0x9959) /* <CJK> */
-MAP(0x68, 0x72, 0x995B) /* <CJK> */
-MAP(0x68, 0x73, 0x995C) /* <CJK> */
-MAP(0x68, 0x74, 0x995E) /* <CJK> */
-MAP(0x68, 0x75, 0x995F) /* <CJK> */
-MAP(0x68, 0x76, 0x9960) /* <CJK> */
-MAP(0x68, 0x77, 0x999B) /* <CJK> */
-MAP(0x68, 0x78, 0x999D) /* <CJK> */
-MAP(0x68, 0x79, 0x999F) /* <CJK> */
-MAP(0x68, 0x7A, 0x99A6) /* <CJK> */
-MAP(0x68, 0x7B, 0x99B0) /* <CJK> */
-MAP(0x68, 0x7C, 0x99B1) /* <CJK> */
-MAP(0x68, 0x7D, 0x99B2) /* <CJK> */
-MAP(0x68, 0x7E, 0x99B5) /* <CJK> */
-MAP(0x69, 0x21, 0x99B9) /* <CJK> */
-MAP(0x69, 0x22, 0x99BA) /* <CJK> */
-MAP(0x69, 0x23, 0x99BD) /* <CJK> */
-MAP(0x69, 0x24, 0x99BF) /* <CJK> */
-MAP(0x69, 0x25, 0x99C3) /* <CJK> */
-MAP(0x69, 0x26, 0x99C9) /* <CJK> */
-MAP(0x69, 0x27, 0x99D3) /* <CJK> */
-MAP(0x69, 0x28, 0x99D4) /* <CJK> */
-MAP(0x69, 0x29, 0x99D9) /* <CJK> */
-MAP(0x69, 0x2A, 0x99DA) /* <CJK> */
-MAP(0x69, 0x2B, 0x99DC) /* <CJK> */
-MAP(0x69, 0x2C, 0x99DE) /* <CJK> */
-MAP(0x69, 0x2D, 0x99E7) /* <CJK> */
-MAP(0x69, 0x2E, 0x99EA) /* <CJK> */
-MAP(0x69, 0x2F, 0x99EB) /* <CJK> */
-MAP(0x69, 0x30, 0x99EC) /* <CJK> */
-MAP(0x69, 0x31, 0x99F0) /* <CJK> */
-MAP(0x69, 0x32, 0x99F4) /* <CJK> */
-MAP(0x69, 0x33, 0x99F5) /* <CJK> */
-MAP(0x69, 0x34, 0x99F9) /* <CJK> */
-MAP(0x69, 0x35, 0x99FD) /* <CJK> */
-MAP(0x69, 0x36, 0x99FE) /* <CJK> */
-MAP(0x69, 0x37, 0x9A02) /* <CJK> */
-MAP(0x69, 0x38, 0x9A03) /* <CJK> */
-MAP(0x69, 0x39, 0x9A04) /* <CJK> */
-MAP(0x69, 0x3A, 0x9A0B) /* <CJK> */
-MAP(0x69, 0x3B, 0x9A0C) /* <CJK> */
-MAP(0x69, 0x3C, 0x9A10) /* <CJK> */
-MAP(0x69, 0x3D, 0x9A11) /* <CJK> */
-MAP(0x69, 0x3E, 0x9A16) /* <CJK> */
-MAP(0x69, 0x3F, 0x9A1E) /* <CJK> */
-MAP(0x69, 0x40, 0x9A20) /* <CJK> */
-MAP(0x69, 0x41, 0x9A22) /* <CJK> */
-MAP(0x69, 0x42, 0x9A23) /* <CJK> */
-MAP(0x69, 0x43, 0x9A24) /* <CJK> */
-MAP(0x69, 0x44, 0x9A27) /* <CJK> */
-MAP(0x69, 0x45, 0x9A2D) /* <CJK> */
-MAP(0x69, 0x46, 0x9A2E) /* <CJK> */
-MAP(0x69, 0x47, 0x9A33) /* <CJK> */
-MAP(0x69, 0x48, 0x9A35) /* <CJK> */
-MAP(0x69, 0x49, 0x9A36) /* <CJK> */
-MAP(0x69, 0x4A, 0x9A38) /* <CJK> */
-MAP(0x69, 0x4B, 0x9A47) /* <CJK> */
-MAP(0x69, 0x4C, 0x9A41) /* <CJK> */
-MAP(0x69, 0x4D, 0x9A44) /* <CJK> */
-MAP(0x69, 0x4E, 0x9A4A) /* <CJK> */
-MAP(0x69, 0x4F, 0x9A4B) /* <CJK> */
-MAP(0x69, 0x50, 0x9A4C) /* <CJK> */
-MAP(0x69, 0x51, 0x9A4E) /* <CJK> */
-MAP(0x69, 0x52, 0x9A51) /* <CJK> */
-MAP(0x69, 0x53, 0x9A54) /* <CJK> */
-MAP(0x69, 0x54, 0x9A56) /* <CJK> */
-MAP(0x69, 0x55, 0x9A5D) /* <CJK> */
-MAP(0x69, 0x56, 0x9AAA) /* <CJK> */
-MAP(0x69, 0x57, 0x9AAC) /* <CJK> */
-MAP(0x69, 0x58, 0x9AAE) /* <CJK> */
-MAP(0x69, 0x59, 0x9AAF) /* <CJK> */
-MAP(0x69, 0x5A, 0x9AB2) /* <CJK> */
-MAP(0x69, 0x5B, 0x9AB4) /* <CJK> */
-MAP(0x69, 0x5C, 0x9AB5) /* <CJK> */
-MAP(0x69, 0x5D, 0x9AB6) /* <CJK> */
-MAP(0x69, 0x5E, 0x9AB9) /* <CJK> */
-MAP(0x69, 0x5F, 0x9ABB) /* <CJK> */
-MAP(0x69, 0x60, 0x9ABE) /* <CJK> */
-MAP(0x69, 0x61, 0x9ABF) /* <CJK> */
-MAP(0x69, 0x62, 0x9AC1) /* <CJK> */
-MAP(0x69, 0x63, 0x9AC3) /* <CJK> */
-MAP(0x69, 0x64, 0x9AC6) /* <CJK> */
-MAP(0x69, 0x65, 0x9AC8) /* <CJK> */
-MAP(0x69, 0x66, 0x9ACE) /* <CJK> */
-MAP(0x69, 0x67, 0x9AD0) /* <CJK> */
-MAP(0x69, 0x68, 0x9AD2) /* <CJK> */
-MAP(0x69, 0x69, 0x9AD5) /* <CJK> */
-MAP(0x69, 0x6A, 0x9AD6) /* <CJK> */
-MAP(0x69, 0x6B, 0x9AD7) /* <CJK> */
-MAP(0x69, 0x6C, 0x9ADB) /* <CJK> */
-MAP(0x69, 0x6D, 0x9ADC) /* <CJK> */
-MAP(0x69, 0x6E, 0x9AE0) /* <CJK> */
-MAP(0x69, 0x6F, 0x9AE4) /* <CJK> */
-MAP(0x69, 0x70, 0x9AE5) /* <CJK> */
-MAP(0x69, 0x71, 0x9AE7) /* <CJK> */
-MAP(0x69, 0x72, 0x9AE9) /* <CJK> */
-MAP(0x69, 0x73, 0x9AEC) /* <CJK> */
-MAP(0x69, 0x74, 0x9AF2) /* <CJK> */
-MAP(0x69, 0x75, 0x9AF3) /* <CJK> */
-MAP(0x69, 0x76, 0x9AF5) /* <CJK> */
-MAP(0x69, 0x77, 0x9AF9) /* <CJK> */
-MAP(0x69, 0x78, 0x9AFA) /* <CJK> */
-MAP(0x69, 0x79, 0x9AFD) /* <CJK> */
-MAP(0x69, 0x7A, 0x9AFF) /* <CJK> */
-MAP(0x69, 0x7B, 0x9B00) /* <CJK> */
-MAP(0x69, 0x7C, 0x9B01) /* <CJK> */
-MAP(0x69, 0x7D, 0x9B02) /* <CJK> */
-MAP(0x69, 0x7E, 0x9B03) /* <CJK> */
-MAP(0x6A, 0x21, 0x9B04) /* <CJK> */
-MAP(0x6A, 0x22, 0x9B05) /* <CJK> */
-MAP(0x6A, 0x23, 0x9B08) /* <CJK> */
-MAP(0x6A, 0x24, 0x9B09) /* <CJK> */
-MAP(0x6A, 0x25, 0x9B0B) /* <CJK> */
-MAP(0x6A, 0x26, 0x9B0C) /* <CJK> */
-MAP(0x6A, 0x27, 0x9B0D) /* <CJK> */
-MAP(0x6A, 0x28, 0x9B0E) /* <CJK> */
-MAP(0x6A, 0x29, 0x9B10) /* <CJK> */
-MAP(0x6A, 0x2A, 0x9B12) /* <CJK> */
-MAP(0x6A, 0x2B, 0x9B16) /* <CJK> */
-MAP(0x6A, 0x2C, 0x9B19) /* <CJK> */
-MAP(0x6A, 0x2D, 0x9B1B) /* <CJK> */
-MAP(0x6A, 0x2E, 0x9B1C) /* <CJK> */
-MAP(0x6A, 0x2F, 0x9B20) /* <CJK> */
-MAP(0x6A, 0x30, 0x9B26) /* <CJK> */
-MAP(0x6A, 0x31, 0x9B2B) /* <CJK> */
-MAP(0x6A, 0x32, 0x9B2D) /* <CJK> */
-MAP(0x6A, 0x33, 0x9B33) /* <CJK> */
-MAP(0x6A, 0x34, 0x9B34) /* <CJK> */
-MAP(0x6A, 0x35, 0x9B35) /* <CJK> */
-MAP(0x6A, 0x36, 0x9B37) /* <CJK> */
-MAP(0x6A, 0x37, 0x9B39) /* <CJK> */
-MAP(0x6A, 0x38, 0x9B3A) /* <CJK> */
-MAP(0x6A, 0x39, 0x9B3D) /* <CJK> */
-MAP(0x6A, 0x3A, 0x9B48) /* <CJK> */
-MAP(0x6A, 0x3B, 0x9B4B) /* <CJK> */
-MAP(0x6A, 0x3C, 0x9B4C) /* <CJK> */
-MAP(0x6A, 0x3D, 0x9B55) /* <CJK> */
-MAP(0x6A, 0x3E, 0x9B56) /* <CJK> */
-MAP(0x6A, 0x3F, 0x9B57) /* <CJK> */
-MAP(0x6A, 0x40, 0x9B5B) /* <CJK> */
-MAP(0x6A, 0x41, 0x9B5E) /* <CJK> */
-MAP(0x6A, 0x42, 0x9B61) /* <CJK> */
-MAP(0x6A, 0x43, 0x9B63) /* <CJK> */
-MAP(0x6A, 0x44, 0x9B65) /* <CJK> */
-MAP(0x6A, 0x45, 0x9B66) /* <CJK> */
-MAP(0x6A, 0x46, 0x9B68) /* <CJK> */
-MAP(0x6A, 0x47, 0x9B6A) /* <CJK> */
-MAP(0x6A, 0x48, 0x9B6B) /* <CJK> */
-MAP(0x6A, 0x49, 0x9B6C) /* <CJK> */
-MAP(0x6A, 0x4A, 0x9B6D) /* <CJK> */
-MAP(0x6A, 0x4B, 0x9B6E) /* <CJK> */
-MAP(0x6A, 0x4C, 0x9B73) /* <CJK> */
-MAP(0x6A, 0x4D, 0x9B75) /* <CJK> */
-MAP(0x6A, 0x4E, 0x9B77) /* <CJK> */
-MAP(0x6A, 0x4F, 0x9B78) /* <CJK> */
-MAP(0x6A, 0x50, 0x9B79) /* <CJK> */
-MAP(0x6A, 0x51, 0x9B7F) /* <CJK> */
-MAP(0x6A, 0x52, 0x9B80) /* <CJK> */
-MAP(0x6A, 0x53, 0x9B84) /* <CJK> */
-MAP(0x6A, 0x54, 0x9B85) /* <CJK> */
-MAP(0x6A, 0x55, 0x9B86) /* <CJK> */
-MAP(0x6A, 0x56, 0x9B87) /* <CJK> */
-MAP(0x6A, 0x57, 0x9B89) /* <CJK> */
-MAP(0x6A, 0x58, 0x9B8A) /* <CJK> */
-MAP(0x6A, 0x59, 0x9B8B) /* <CJK> */
-MAP(0x6A, 0x5A, 0x9B8D) /* <CJK> */
-MAP(0x6A, 0x5B, 0x9B8F) /* <CJK> */
-MAP(0x6A, 0x5C, 0x9B90) /* <CJK> */
-MAP(0x6A, 0x5D, 0x9B94) /* <CJK> */
-MAP(0x6A, 0x5E, 0x9B9A) /* <CJK> */
-MAP(0x6A, 0x5F, 0x9B9D) /* <CJK> */
-MAP(0x6A, 0x60, 0x9B9E) /* <CJK> */
-MAP(0x6A, 0x61, 0x9BA6) /* <CJK> */
-MAP(0x6A, 0x62, 0x9BA7) /* <CJK> */
-MAP(0x6A, 0x63, 0x9BA9) /* <CJK> */
-MAP(0x6A, 0x64, 0x9BAC) /* <CJK> */
-MAP(0x6A, 0x65, 0x9BB0) /* <CJK> */
-MAP(0x6A, 0x66, 0x9BB1) /* <CJK> */
-MAP(0x6A, 0x67, 0x9BB2) /* <CJK> */
-MAP(0x6A, 0x68, 0x9BB7) /* <CJK> */
-MAP(0x6A, 0x69, 0x9BB8) /* <CJK> */
-MAP(0x6A, 0x6A, 0x9BBB) /* <CJK> */
-MAP(0x6A, 0x6B, 0x9BBC) /* <CJK> */
-MAP(0x6A, 0x6C, 0x9BBE) /* <CJK> */
-MAP(0x6A, 0x6D, 0x9BBF) /* <CJK> */
-MAP(0x6A, 0x6E, 0x9BC1) /* <CJK> */
-MAP(0x6A, 0x6F, 0x9BC7) /* <CJK> */
-MAP(0x6A, 0x70, 0x9BC8) /* <CJK> */
-MAP(0x6A, 0x71, 0x9BCE) /* <CJK> */
-MAP(0x6A, 0x72, 0x9BD0) /* <CJK> */
-MAP(0x6A, 0x73, 0x9BD7) /* <CJK> */
-MAP(0x6A, 0x74, 0x9BD8) /* <CJK> */
-MAP(0x6A, 0x75, 0x9BDD) /* <CJK> */
-MAP(0x6A, 0x76, 0x9BDF) /* <CJK> */
-MAP(0x6A, 0x77, 0x9BE5) /* <CJK> */
-MAP(0x6A, 0x78, 0x9BE7) /* <CJK> */
-MAP(0x6A, 0x79, 0x9BEA) /* <CJK> */
-MAP(0x6A, 0x7A, 0x9BEB) /* <CJK> */
-MAP(0x6A, 0x7B, 0x9BEF) /* <CJK> */
-MAP(0x6A, 0x7C, 0x9BF3) /* <CJK> */
-MAP(0x6A, 0x7D, 0x9BF7) /* <CJK> */
-MAP(0x6A, 0x7E, 0x9BF8) /* <CJK> */
-MAP(0x6B, 0x21, 0x9BF9) /* <CJK> */
-MAP(0x6B, 0x22, 0x9BFA) /* <CJK> */
-MAP(0x6B, 0x23, 0x9BFD) /* <CJK> */
-MAP(0x6B, 0x24, 0x9BFF) /* <CJK> */
-MAP(0x6B, 0x25, 0x9C00) /* <CJK> */
-MAP(0x6B, 0x26, 0x9C02) /* <CJK> */
-MAP(0x6B, 0x27, 0x9C0B) /* <CJK> */
-MAP(0x6B, 0x28, 0x9C0F) /* <CJK> */
-MAP(0x6B, 0x29, 0x9C11) /* <CJK> */
-MAP(0x6B, 0x2A, 0x9C16) /* <CJK> */
-MAP(0x6B, 0x2B, 0x9C18) /* <CJK> */
-MAP(0x6B, 0x2C, 0x9C19) /* <CJK> */
-MAP(0x6B, 0x2D, 0x9C1A) /* <CJK> */
-MAP(0x6B, 0x2E, 0x9C1C) /* <CJK> */
-MAP(0x6B, 0x2F, 0x9C1E) /* <CJK> */
-MAP(0x6B, 0x30, 0x9C22) /* <CJK> */
-MAP(0x6B, 0x31, 0x9C23) /* <CJK> */
-MAP(0x6B, 0x32, 0x9C26) /* <CJK> */
-MAP(0x6B, 0x33, 0x9C27) /* <CJK> */
-MAP(0x6B, 0x34, 0x9C28) /* <CJK> */
-MAP(0x6B, 0x35, 0x9C29) /* <CJK> */
-MAP(0x6B, 0x36, 0x9C2A) /* <CJK> */
-MAP(0x6B, 0x37, 0x9C31) /* <CJK> */
-MAP(0x6B, 0x38, 0x9C35) /* <CJK> */
-MAP(0x6B, 0x39, 0x9C36) /* <CJK> */
-MAP(0x6B, 0x3A, 0x9C37) /* <CJK> */
-MAP(0x6B, 0x3B, 0x9C3D) /* <CJK> */
-MAP(0x6B, 0x3C, 0x9C41) /* <CJK> */
-MAP(0x6B, 0x3D, 0x9C43) /* <CJK> */
-MAP(0x6B, 0x3E, 0x9C44) /* <CJK> */
-MAP(0x6B, 0x3F, 0x9C45) /* <CJK> */
-MAP(0x6B, 0x40, 0x9C49) /* <CJK> */
-MAP(0x6B, 0x41, 0x9C4A) /* <CJK> */
-MAP(0x6B, 0x42, 0x9C4E) /* <CJK> */
-MAP(0x6B, 0x43, 0x9C4F) /* <CJK> */
-MAP(0x6B, 0x44, 0x9C50) /* <CJK> */
-MAP(0x6B, 0x45, 0x9C53) /* <CJK> */
-MAP(0x6B, 0x46, 0x9C54) /* <CJK> */
-MAP(0x6B, 0x47, 0x9C56) /* <CJK> */
-MAP(0x6B, 0x48, 0x9C58) /* <CJK> */
-MAP(0x6B, 0x49, 0x9C5B) /* <CJK> */
-MAP(0x6B, 0x4A, 0x9C5D) /* <CJK> */
-MAP(0x6B, 0x4B, 0x9C5E) /* <CJK> */
-MAP(0x6B, 0x4C, 0x9C5F) /* <CJK> */
-MAP(0x6B, 0x4D, 0x9C63) /* <CJK> */
-MAP(0x6B, 0x4E, 0x9C69) /* <CJK> */
-MAP(0x6B, 0x4F, 0x9C6A) /* <CJK> */
-MAP(0x6B, 0x50, 0x9C5C) /* <CJK> */
-MAP(0x6B, 0x51, 0x9C6B) /* <CJK> */
-MAP(0x6B, 0x52, 0x9C68) /* <CJK> */
-MAP(0x6B, 0x53, 0x9C6E) /* <CJK> */
-MAP(0x6B, 0x54, 0x9C70) /* <CJK> */
-MAP(0x6B, 0x55, 0x9C72) /* <CJK> */
-MAP(0x6B, 0x56, 0x9C75) /* <CJK> */
-MAP(0x6B, 0x57, 0x9C77) /* <CJK> */
-MAP(0x6B, 0x58, 0x9C7B) /* <CJK> */
-MAP(0x6B, 0x59, 0x9CE6) /* <CJK> */
-MAP(0x6B, 0x5A, 0x9CF2) /* <CJK> */
-MAP(0x6B, 0x5B, 0x9CF7) /* <CJK> */
-MAP(0x6B, 0x5C, 0x9CF9) /* <CJK> */
-MAP(0x6B, 0x5D, 0x9D0B) /* <CJK> */
-MAP(0x6B, 0x5E, 0x9D02) /* <CJK> */
-MAP(0x6B, 0x5F, 0x9D11) /* <CJK> */
-MAP(0x6B, 0x60, 0x9D17) /* <CJK> */
-MAP(0x6B, 0x61, 0x9D18) /* <CJK> */
-MAP(0x6B, 0x62, 0x9D1C) /* <CJK> */
-MAP(0x6B, 0x63, 0x9D1D) /* <CJK> */
-MAP(0x6B, 0x64, 0x9D1E) /* <CJK> */
-MAP(0x6B, 0x65, 0x9D2F) /* <CJK> */
-MAP(0x6B, 0x66, 0x9D30) /* <CJK> */
-MAP(0x6B, 0x67, 0x9D32) /* <CJK> */
-MAP(0x6B, 0x68, 0x9D33) /* <CJK> */
-MAP(0x6B, 0x69, 0x9D34) /* <CJK> */
-MAP(0x6B, 0x6A, 0x9D3A) /* <CJK> */
-MAP(0x6B, 0x6B, 0x9D3C) /* <CJK> */
-MAP(0x6B, 0x6C, 0x9D45) /* <CJK> */
-MAP(0x6B, 0x6D, 0x9D3D) /* <CJK> */
-MAP(0x6B, 0x6E, 0x9D42) /* <CJK> */
-MAP(0x6B, 0x6F, 0x9D43) /* <CJK> */
-MAP(0x6B, 0x70, 0x9D47) /* <CJK> */
-MAP(0x6B, 0x71, 0x9D4A) /* <CJK> */
-MAP(0x6B, 0x72, 0x9D53) /* <CJK> */
-MAP(0x6B, 0x73, 0x9D54) /* <CJK> */
-MAP(0x6B, 0x74, 0x9D5F) /* <CJK> */
-MAP(0x6B, 0x75, 0x9D63) /* <CJK> */
-MAP(0x6B, 0x76, 0x9D62) /* <CJK> */
-MAP(0x6B, 0x77, 0x9D65) /* <CJK> */
-MAP(0x6B, 0x78, 0x9D69) /* <CJK> */
-MAP(0x6B, 0x79, 0x9D6A) /* <CJK> */
-MAP(0x6B, 0x7A, 0x9D6B) /* <CJK> */
-MAP(0x6B, 0x7B, 0x9D70) /* <CJK> */
-MAP(0x6B, 0x7C, 0x9D76) /* <CJK> */
-MAP(0x6B, 0x7D, 0x9D77) /* <CJK> */
-MAP(0x6B, 0x7E, 0x9D7B) /* <CJK> */
-MAP(0x6C, 0x21, 0x9D7C) /* <CJK> */
-MAP(0x6C, 0x22, 0x9D7E) /* <CJK> */
-MAP(0x6C, 0x23, 0x9D83) /* <CJK> */
-MAP(0x6C, 0x24, 0x9D84) /* <CJK> */
-MAP(0x6C, 0x25, 0x9D86) /* <CJK> */
-MAP(0x6C, 0x26, 0x9D8A) /* <CJK> */
-MAP(0x6C, 0x27, 0x9D8D) /* <CJK> */
-MAP(0x6C, 0x28, 0x9D8E) /* <CJK> */
-MAP(0x6C, 0x29, 0x9D92) /* <CJK> */
-MAP(0x6C, 0x2A, 0x9D93) /* <CJK> */
-MAP(0x6C, 0x2B, 0x9D95) /* <CJK> */
-MAP(0x6C, 0x2C, 0x9D96) /* <CJK> */
-MAP(0x6C, 0x2D, 0x9D97) /* <CJK> */
-MAP(0x6C, 0x2E, 0x9D98) /* <CJK> */
-MAP(0x6C, 0x2F, 0x9DA1) /* <CJK> */
-MAP(0x6C, 0x30, 0x9DAA) /* <CJK> */
-MAP(0x6C, 0x31, 0x9DAC) /* <CJK> */
-MAP(0x6C, 0x32, 0x9DAE) /* <CJK> */
-MAP(0x6C, 0x33, 0x9DB1) /* <CJK> */
-MAP(0x6C, 0x34, 0x9DB5) /* <CJK> */
-MAP(0x6C, 0x35, 0x9DB9) /* <CJK> */
-MAP(0x6C, 0x36, 0x9DBC) /* <CJK> */
-MAP(0x6C, 0x37, 0x9DBF) /* <CJK> */
-MAP(0x6C, 0x38, 0x9DC3) /* <CJK> */
-MAP(0x6C, 0x39, 0x9DC7) /* <CJK> */
-MAP(0x6C, 0x3A, 0x9DC9) /* <CJK> */
-MAP(0x6C, 0x3B, 0x9DCA) /* <CJK> */
-MAP(0x6C, 0x3C, 0x9DD4) /* <CJK> */
-MAP(0x6C, 0x3D, 0x9DD5) /* <CJK> */
-MAP(0x6C, 0x3E, 0x9DD6) /* <CJK> */
-MAP(0x6C, 0x3F, 0x9DD7) /* <CJK> */
-MAP(0x6C, 0x40, 0x9DDA) /* <CJK> */
-MAP(0x6C, 0x41, 0x9DDE) /* <CJK> */
-MAP(0x6C, 0x42, 0x9DDF) /* <CJK> */
-MAP(0x6C, 0x43, 0x9DE0) /* <CJK> */
-MAP(0x6C, 0x44, 0x9DE5) /* <CJK> */
-MAP(0x6C, 0x45, 0x9DE7) /* <CJK> */
-MAP(0x6C, 0x46, 0x9DE9) /* <CJK> */
-MAP(0x6C, 0x47, 0x9DEB) /* <CJK> */
-MAP(0x6C, 0x48, 0x9DEE) /* <CJK> */
-MAP(0x6C, 0x49, 0x9DF0) /* <CJK> */
-MAP(0x6C, 0x4A, 0x9DF3) /* <CJK> */
-MAP(0x6C, 0x4B, 0x9DF4) /* <CJK> */
-MAP(0x6C, 0x4C, 0x9DFE) /* <CJK> */
-MAP(0x6C, 0x4D, 0x9E0A) /* <CJK> */
-MAP(0x6C, 0x4E, 0x9E02) /* <CJK> */
-MAP(0x6C, 0x4F, 0x9E07) /* <CJK> */
-MAP(0x6C, 0x50, 0x9E0E) /* <CJK> */
-MAP(0x6C, 0x51, 0x9E10) /* <CJK> */
-MAP(0x6C, 0x52, 0x9E11) /* <CJK> */
-MAP(0x6C, 0x53, 0x9E12) /* <CJK> */
-MAP(0x6C, 0x54, 0x9E15) /* <CJK> */
-MAP(0x6C, 0x55, 0x9E16) /* <CJK> */
-MAP(0x6C, 0x56, 0x9E19) /* <CJK> */
-MAP(0x6C, 0x57, 0x9E1C) /* <CJK> */
-MAP(0x6C, 0x58, 0x9E1D) /* <CJK> */
-MAP(0x6C, 0x59, 0x9E7A) /* <CJK> */
-MAP(0x6C, 0x5A, 0x9E7B) /* <CJK> */
-MAP(0x6C, 0x5B, 0x9E7C) /* <CJK> */
-MAP(0x6C, 0x5C, 0x9E80) /* <CJK> */
-MAP(0x6C, 0x5D, 0x9E82) /* <CJK> */
-MAP(0x6C, 0x5E, 0x9E83) /* <CJK> */
-MAP(0x6C, 0x5F, 0x9E84) /* <CJK> */
-MAP(0x6C, 0x60, 0x9E85) /* <CJK> */
-MAP(0x6C, 0x61, 0x9E87) /* <CJK> */
-MAP(0x6C, 0x62, 0x9E8E) /* <CJK> */
-MAP(0x6C, 0x63, 0x9E8F) /* <CJK> */
-MAP(0x6C, 0x64, 0x9E96) /* <CJK> */
-MAP(0x6C, 0x65, 0x9E98) /* <CJK> */
-MAP(0x6C, 0x66, 0x9E9B) /* <CJK> */
-MAP(0x6C, 0x67, 0x9E9E) /* <CJK> */
-MAP(0x6C, 0x68, 0x9EA4) /* <CJK> */
-MAP(0x6C, 0x69, 0x9EA8) /* <CJK> */
-MAP(0x6C, 0x6A, 0x9EAC) /* <CJK> */
-MAP(0x6C, 0x6B, 0x9EAE) /* <CJK> */
-MAP(0x6C, 0x6C, 0x9EAF) /* <CJK> */
-MAP(0x6C, 0x6D, 0x9EB0) /* <CJK> */
-MAP(0x6C, 0x6E, 0x9EB3) /* <CJK> */
-MAP(0x6C, 0x6F, 0x9EB4) /* <CJK> */
-MAP(0x6C, 0x70, 0x9EB5) /* <CJK> */
-MAP(0x6C, 0x71, 0x9EC6) /* <CJK> */
-MAP(0x6C, 0x72, 0x9EC8) /* <CJK> */
-MAP(0x6C, 0x73, 0x9ECB) /* <CJK> */
-MAP(0x6C, 0x74, 0x9ED5) /* <CJK> */
-MAP(0x6C, 0x75, 0x9EDF) /* <CJK> */
-MAP(0x6C, 0x76, 0x9EE4) /* <CJK> */
-MAP(0x6C, 0x77, 0x9EE7) /* <CJK> */
-MAP(0x6C, 0x78, 0x9EEC) /* <CJK> */
-MAP(0x6C, 0x79, 0x9EED) /* <CJK> */
-MAP(0x6C, 0x7A, 0x9EEE) /* <CJK> */
-MAP(0x6C, 0x7B, 0x9EF0) /* <CJK> */
-MAP(0x6C, 0x7C, 0x9EF1) /* <CJK> */
-MAP(0x6C, 0x7D, 0x9EF2) /* <CJK> */
-MAP(0x6C, 0x7E, 0x9EF5) /* <CJK> */
-MAP(0x6D, 0x21, 0x9EF8) /* <CJK> */
-MAP(0x6D, 0x22, 0x9EFF) /* <CJK> */
-MAP(0x6D, 0x23, 0x9F02) /* <CJK> */
-MAP(0x6D, 0x24, 0x9F03) /* <CJK> */
-MAP(0x6D, 0x25, 0x9F09) /* <CJK> */
-MAP(0x6D, 0x26, 0x9F0F) /* <CJK> */
-MAP(0x6D, 0x27, 0x9F10) /* <CJK> */
-MAP(0x6D, 0x28, 0x9F11) /* <CJK> */
-MAP(0x6D, 0x29, 0x9F12) /* <CJK> */
-MAP(0x6D, 0x2A, 0x9F14) /* <CJK> */
-MAP(0x6D, 0x2B, 0x9F16) /* <CJK> */
-MAP(0x6D, 0x2C, 0x9F17) /* <CJK> */
-MAP(0x6D, 0x2D, 0x9F19) /* <CJK> */
-MAP(0x6D, 0x2E, 0x9F1A) /* <CJK> */
-MAP(0x6D, 0x2F, 0x9F1B) /* <CJK> */
-MAP(0x6D, 0x30, 0x9F1F) /* <CJK> */
-MAP(0x6D, 0x31, 0x9F22) /* <CJK> */
-MAP(0x6D, 0x32, 0x9F26) /* <CJK> */
-MAP(0x6D, 0x33, 0x9F2A) /* <CJK> */
-MAP(0x6D, 0x34, 0x9F2B) /* <CJK> */
-MAP(0x6D, 0x35, 0x9F2F) /* <CJK> */
-MAP(0x6D, 0x36, 0x9F31) /* <CJK> */
-MAP(0x6D, 0x37, 0x9F32) /* <CJK> */
-MAP(0x6D, 0x38, 0x9F34) /* <CJK> */
-MAP(0x6D, 0x39, 0x9F37) /* <CJK> */
-MAP(0x6D, 0x3A, 0x9F39) /* <CJK> */
-MAP(0x6D, 0x3B, 0x9F3A) /* <CJK> */
-MAP(0x6D, 0x3C, 0x9F3C) /* <CJK> */
-MAP(0x6D, 0x3D, 0x9F3D) /* <CJK> */
-MAP(0x6D, 0x3E, 0x9F3F) /* <CJK> */
-MAP(0x6D, 0x3F, 0x9F41) /* <CJK> */
-MAP(0x6D, 0x40, 0x9F43) /* <CJK> */
-MAP(0x6D, 0x41, 0x9F44) /* <CJK> */
-MAP(0x6D, 0x42, 0x9F45) /* <CJK> */
-MAP(0x6D, 0x43, 0x9F46) /* <CJK> */
-MAP(0x6D, 0x44, 0x9F47) /* <CJK> */
-MAP(0x6D, 0x45, 0x9F53) /* <CJK> */
-MAP(0x6D, 0x46, 0x9F55) /* <CJK> */
-MAP(0x6D, 0x47, 0x9F56) /* <CJK> */
-MAP(0x6D, 0x48, 0x9F57) /* <CJK> */
-MAP(0x6D, 0x49, 0x9F58) /* <CJK> */
-MAP(0x6D, 0x4A, 0x9F5A) /* <CJK> */
-MAP(0x6D, 0x4B, 0x9F5D) /* <CJK> */
-MAP(0x6D, 0x4C, 0x9F5E) /* <CJK> */
-MAP(0x6D, 0x4D, 0x9F68) /* <CJK> */
-MAP(0x6D, 0x4E, 0x9F69) /* <CJK> */
-MAP(0x6D, 0x4F, 0x9F6D) /* <CJK> */
-MAP(0x6D, 0x50, 0x9F6E) /* <CJK> */
-MAP(0x6D, 0x51, 0x9F6F) /* <CJK> */
-MAP(0x6D, 0x52, 0x9F70) /* <CJK> */
-MAP(0x6D, 0x53, 0x9F71) /* <CJK> */
-MAP(0x6D, 0x54, 0x9F73) /* <CJK> */
-MAP(0x6D, 0x55, 0x9F75) /* <CJK> */
-MAP(0x6D, 0x56, 0x9F7A) /* <CJK> */
-MAP(0x6D, 0x57, 0x9F7D) /* <CJK> */
-MAP(0x6D, 0x58, 0x9F8F) /* <CJK> */
-MAP(0x6D, 0x59, 0x9F90) /* <CJK> */
-MAP(0x6D, 0x5A, 0x9F91) /* <CJK> */
-MAP(0x6D, 0x5B, 0x9F92) /* <CJK> */
-MAP(0x6D, 0x5C, 0x9F94) /* <CJK> */
-MAP(0x6D, 0x5D, 0x9F96) /* <CJK> */
-MAP(0x6D, 0x5E, 0x9F97) /* <CJK> */
-MAP(0x6D, 0x5F, 0x9F9E) /* <CJK> */
-MAP(0x6D, 0x60, 0x9FA1) /* <CJK> */
-MAP(0x6D, 0x61, 0x9FA2) /* <CJK> */
-MAP(0x6D, 0x62, 0x9FA3) /* <CJK> */
-MAP(0x6D, 0x63, 0x9FA5) /* <CJK> */
diff --git a/libjava/gnu/gcj/convert/JIS0212_to_Unicode.cc b/libjava/gnu/gcj/convert/JIS0212_to_Unicode.cc
deleted file mode 100644
index f05ef32c0ea..00000000000
--- a/libjava/gnu/gcj/convert/JIS0212_to_Unicode.cc
+++ /dev/null
@@ -1,6471 +0,0 @@
-/* This file is automatically generated from JIS0212.TXT. */
-unsigned short JIS0212_to_Unicode[76][94] = {
-/* 1st byte: 34 */ {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 47 */ 0x02d8,
- /* 2nd byte: 48 */ 0x02c7,
- /* 2nd byte: 49 */ 0x00b8,
- /* 2nd byte: 50 */ 0x02d9,
- /* 2nd byte: 51 */ 0x02dd,
- /* 2nd byte: 52 */ 0x00af,
- /* 2nd byte: 53 */ 0x02db,
- /* 2nd byte: 54 */ 0x02da,
- /* 2nd byte: 55 */ 0x007e,
- /* 2nd byte: 56 */ 0x0384,
- /* 2nd byte: 57 */ 0x0385,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 66 */ 0x00a1,
- /* 2nd byte: 67 */ 0x00a6,
- /* 2nd byte: 68 */ 0x00bf,
- 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,
- /* 2nd byte: 107 */ 0x00ba,
- /* 2nd byte: 108 */ 0x00aa,
- /* 2nd byte: 109 */ 0x00a9,
- /* 2nd byte: 110 */ 0x00ae,
- /* 2nd byte: 111 */ 0x2122,
- /* 2nd byte: 112 */ 0x00a4,
- /* 2nd byte: 113 */ 0x2116,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 35 */ { 0 }, /* unused row */
-/* 1st byte: 36 */ { 0 }, /* unused row */
-/* 1st byte: 37 */ { 0 }, /* unused row */
-/* 1st byte: 38 */ {
- 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,
- /* 2nd byte: 97 */ 0x0386,
- /* 2nd byte: 98 */ 0x0388,
- /* 2nd byte: 99 */ 0x0389,
- /* 2nd byte: 100 */ 0x038a,
- /* 2nd byte: 101 */ 0x03aa,
- 0,
- /* 2nd byte: 103 */ 0x038c,
- 0,
- /* 2nd byte: 105 */ 0x038e,
- /* 2nd byte: 106 */ 0x03ab,
- 0,
- /* 2nd byte: 108 */ 0x038f,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 113 */ 0x03ac,
- /* 2nd byte: 114 */ 0x03ad,
- /* 2nd byte: 115 */ 0x03ae,
- /* 2nd byte: 116 */ 0x03af,
- /* 2nd byte: 117 */ 0x03ca,
- /* 2nd byte: 118 */ 0x0390,
- /* 2nd byte: 119 */ 0x03cc,
- /* 2nd byte: 120 */ 0x03c2,
- /* 2nd byte: 121 */ 0x03cd,
- /* 2nd byte: 122 */ 0x03cb,
- /* 2nd byte: 123 */ 0x03b0,
- /* 2nd byte: 124 */ 0x03ce,
- 0,
- 0},
-/* 1st byte: 39 */ {
- 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,
- /* 2nd byte: 66 */ 0x0402,
- /* 2nd byte: 67 */ 0x0403,
- /* 2nd byte: 68 */ 0x0404,
- /* 2nd byte: 69 */ 0x0405,
- /* 2nd byte: 70 */ 0x0406,
- /* 2nd byte: 71 */ 0x0407,
- /* 2nd byte: 72 */ 0x0408,
- /* 2nd byte: 73 */ 0x0409,
- /* 2nd byte: 74 */ 0x040a,
- /* 2nd byte: 75 */ 0x040b,
- /* 2nd byte: 76 */ 0x040c,
- /* 2nd byte: 77 */ 0x040e,
- /* 2nd byte: 78 */ 0x040f,
- 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,
- /* 2nd byte: 114 */ 0x0452,
- /* 2nd byte: 115 */ 0x0453,
- /* 2nd byte: 116 */ 0x0454,
- /* 2nd byte: 117 */ 0x0455,
- /* 2nd byte: 118 */ 0x0456,
- /* 2nd byte: 119 */ 0x0457,
- /* 2nd byte: 120 */ 0x0458,
- /* 2nd byte: 121 */ 0x0459,
- /* 2nd byte: 122 */ 0x045a,
- /* 2nd byte: 123 */ 0x045b,
- /* 2nd byte: 124 */ 0x045c,
- /* 2nd byte: 125 */ 0x045e,
- /* 2nd byte: 126 */ 0x045f},
-/* 1st byte: 40 */ { 0 }, /* unused row */
-/* 1st byte: 41 */ {
- /* 2nd byte: 33 */ 0x00c6,
- /* 2nd byte: 34 */ 0x0110,
- 0,
- /* 2nd byte: 36 */ 0x0126,
- 0,
- /* 2nd byte: 38 */ 0x0132,
- 0,
- /* 2nd byte: 40 */ 0x0141,
- /* 2nd byte: 41 */ 0x013f,
- 0,
- /* 2nd byte: 43 */ 0x014a,
- /* 2nd byte: 44 */ 0x00d8,
- /* 2nd byte: 45 */ 0x0152,
- 0,
- /* 2nd byte: 47 */ 0x0166,
- /* 2nd byte: 48 */ 0x00de,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- /* 2nd byte: 65 */ 0x00e6,
- /* 2nd byte: 66 */ 0x0111,
- /* 2nd byte: 67 */ 0x00f0,
- /* 2nd byte: 68 */ 0x0127,
- /* 2nd byte: 69 */ 0x0131,
- /* 2nd byte: 70 */ 0x0133,
- /* 2nd byte: 71 */ 0x0138,
- /* 2nd byte: 72 */ 0x0142,
- /* 2nd byte: 73 */ 0x0140,
- /* 2nd byte: 74 */ 0x0149,
- /* 2nd byte: 75 */ 0x014b,
- /* 2nd byte: 76 */ 0x00f8,
- /* 2nd byte: 77 */ 0x0153,
- /* 2nd byte: 78 */ 0x00df,
- /* 2nd byte: 79 */ 0x0167,
- /* 2nd byte: 80 */ 0x00fe,
- 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},
-/* 1st byte: 42 */ {
- /* 2nd byte: 33 */ 0x00c1,
- /* 2nd byte: 34 */ 0x00c0,
- /* 2nd byte: 35 */ 0x00c4,
- /* 2nd byte: 36 */ 0x00c2,
- /* 2nd byte: 37 */ 0x0102,
- /* 2nd byte: 38 */ 0x01cd,
- /* 2nd byte: 39 */ 0x0100,
- /* 2nd byte: 40 */ 0x0104,
- /* 2nd byte: 41 */ 0x00c5,
- /* 2nd byte: 42 */ 0x00c3,
- /* 2nd byte: 43 */ 0x0106,
- /* 2nd byte: 44 */ 0x0108,
- /* 2nd byte: 45 */ 0x010c,
- /* 2nd byte: 46 */ 0x00c7,
- /* 2nd byte: 47 */ 0x010a,
- /* 2nd byte: 48 */ 0x010e,
- /* 2nd byte: 49 */ 0x00c9,
- /* 2nd byte: 50 */ 0x00c8,
- /* 2nd byte: 51 */ 0x00cb,
- /* 2nd byte: 52 */ 0x00ca,
- /* 2nd byte: 53 */ 0x011a,
- /* 2nd byte: 54 */ 0x0116,
- /* 2nd byte: 55 */ 0x0112,
- /* 2nd byte: 56 */ 0x0118,
- 0,
- /* 2nd byte: 58 */ 0x011c,
- /* 2nd byte: 59 */ 0x011e,
- /* 2nd byte: 60 */ 0x0122,
- /* 2nd byte: 61 */ 0x0120,
- /* 2nd byte: 62 */ 0x0124,
- /* 2nd byte: 63 */ 0x00cd,
- /* 2nd byte: 64 */ 0x00cc,
- /* 2nd byte: 65 */ 0x00cf,
- /* 2nd byte: 66 */ 0x00ce,
- /* 2nd byte: 67 */ 0x01cf,
- /* 2nd byte: 68 */ 0x0130,
- /* 2nd byte: 69 */ 0x012a,
- /* 2nd byte: 70 */ 0x012e,
- /* 2nd byte: 71 */ 0x0128,
- /* 2nd byte: 72 */ 0x0134,
- /* 2nd byte: 73 */ 0x0136,
- /* 2nd byte: 74 */ 0x0139,
- /* 2nd byte: 75 */ 0x013d,
- /* 2nd byte: 76 */ 0x013b,
- /* 2nd byte: 77 */ 0x0143,
- /* 2nd byte: 78 */ 0x0147,
- /* 2nd byte: 79 */ 0x0145,
- /* 2nd byte: 80 */ 0x00d1,
- /* 2nd byte: 81 */ 0x00d3,
- /* 2nd byte: 82 */ 0x00d2,
- /* 2nd byte: 83 */ 0x00d6,
- /* 2nd byte: 84 */ 0x00d4,
- /* 2nd byte: 85 */ 0x01d1,
- /* 2nd byte: 86 */ 0x0150,
- /* 2nd byte: 87 */ 0x014c,
- /* 2nd byte: 88 */ 0x00d5,
- /* 2nd byte: 89 */ 0x0154,
- /* 2nd byte: 90 */ 0x0158,
- /* 2nd byte: 91 */ 0x0156,
- /* 2nd byte: 92 */ 0x015a,
- /* 2nd byte: 93 */ 0x015c,
- /* 2nd byte: 94 */ 0x0160,
- /* 2nd byte: 95 */ 0x015e,
- /* 2nd byte: 96 */ 0x0164,
- /* 2nd byte: 97 */ 0x0162,
- /* 2nd byte: 98 */ 0x00da,
- /* 2nd byte: 99 */ 0x00d9,
- /* 2nd byte: 100 */ 0x00dc,
- /* 2nd byte: 101 */ 0x00db,
- /* 2nd byte: 102 */ 0x016c,
- /* 2nd byte: 103 */ 0x01d3,
- /* 2nd byte: 104 */ 0x0170,
- /* 2nd byte: 105 */ 0x016a,
- /* 2nd byte: 106 */ 0x0172,
- /* 2nd byte: 107 */ 0x016e,
- /* 2nd byte: 108 */ 0x0168,
- /* 2nd byte: 109 */ 0x01d7,
- /* 2nd byte: 110 */ 0x01db,
- /* 2nd byte: 111 */ 0x01d9,
- /* 2nd byte: 112 */ 0x01d5,
- /* 2nd byte: 113 */ 0x0174,
- /* 2nd byte: 114 */ 0x00dd,
- /* 2nd byte: 115 */ 0x0178,
- /* 2nd byte: 116 */ 0x0176,
- /* 2nd byte: 117 */ 0x0179,
- /* 2nd byte: 118 */ 0x017d,
- /* 2nd byte: 119 */ 0x017b,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 43 */ {
- /* 2nd byte: 33 */ 0x00e1,
- /* 2nd byte: 34 */ 0x00e0,
- /* 2nd byte: 35 */ 0x00e4,
- /* 2nd byte: 36 */ 0x00e2,
- /* 2nd byte: 37 */ 0x0103,
- /* 2nd byte: 38 */ 0x01ce,
- /* 2nd byte: 39 */ 0x0101,
- /* 2nd byte: 40 */ 0x0105,
- /* 2nd byte: 41 */ 0x00e5,
- /* 2nd byte: 42 */ 0x00e3,
- /* 2nd byte: 43 */ 0x0107,
- /* 2nd byte: 44 */ 0x0109,
- /* 2nd byte: 45 */ 0x010d,
- /* 2nd byte: 46 */ 0x00e7,
- /* 2nd byte: 47 */ 0x010b,
- /* 2nd byte: 48 */ 0x010f,
- /* 2nd byte: 49 */ 0x00e9,
- /* 2nd byte: 50 */ 0x00e8,
- /* 2nd byte: 51 */ 0x00eb,
- /* 2nd byte: 52 */ 0x00ea,
- /* 2nd byte: 53 */ 0x011b,
- /* 2nd byte: 54 */ 0x0117,
- /* 2nd byte: 55 */ 0x0113,
- /* 2nd byte: 56 */ 0x0119,
- /* 2nd byte: 57 */ 0x01f5,
- /* 2nd byte: 58 */ 0x011d,
- /* 2nd byte: 59 */ 0x011f,
- 0,
- /* 2nd byte: 61 */ 0x0121,
- /* 2nd byte: 62 */ 0x0125,
- /* 2nd byte: 63 */ 0x00ed,
- /* 2nd byte: 64 */ 0x00ec,
- /* 2nd byte: 65 */ 0x00ef,
- /* 2nd byte: 66 */ 0x00ee,
- /* 2nd byte: 67 */ 0x01d0,
- 0,
- /* 2nd byte: 69 */ 0x012b,
- /* 2nd byte: 70 */ 0x012f,
- /* 2nd byte: 71 */ 0x0129,
- /* 2nd byte: 72 */ 0x0135,
- /* 2nd byte: 73 */ 0x0137,
- /* 2nd byte: 74 */ 0x013a,
- /* 2nd byte: 75 */ 0x013e,
- /* 2nd byte: 76 */ 0x013c,
- /* 2nd byte: 77 */ 0x0144,
- /* 2nd byte: 78 */ 0x0148,
- /* 2nd byte: 79 */ 0x0146,
- /* 2nd byte: 80 */ 0x00f1,
- /* 2nd byte: 81 */ 0x00f3,
- /* 2nd byte: 82 */ 0x00f2,
- /* 2nd byte: 83 */ 0x00f6,
- /* 2nd byte: 84 */ 0x00f4,
- /* 2nd byte: 85 */ 0x01d2,
- /* 2nd byte: 86 */ 0x0151,
- /* 2nd byte: 87 */ 0x014d,
- /* 2nd byte: 88 */ 0x00f5,
- /* 2nd byte: 89 */ 0x0155,
- /* 2nd byte: 90 */ 0x0159,
- /* 2nd byte: 91 */ 0x0157,
- /* 2nd byte: 92 */ 0x015b,
- /* 2nd byte: 93 */ 0x015d,
- /* 2nd byte: 94 */ 0x0161,
- /* 2nd byte: 95 */ 0x015f,
- /* 2nd byte: 96 */ 0x0165,
- /* 2nd byte: 97 */ 0x0163,
- /* 2nd byte: 98 */ 0x00fa,
- /* 2nd byte: 99 */ 0x00f9,
- /* 2nd byte: 100 */ 0x00fc,
- /* 2nd byte: 101 */ 0x00fb,
- /* 2nd byte: 102 */ 0x016d,
- /* 2nd byte: 103 */ 0x01d4,
- /* 2nd byte: 104 */ 0x0171,
- /* 2nd byte: 105 */ 0x016b,
- /* 2nd byte: 106 */ 0x0173,
- /* 2nd byte: 107 */ 0x016f,
- /* 2nd byte: 108 */ 0x0169,
- /* 2nd byte: 109 */ 0x01d8,
- /* 2nd byte: 110 */ 0x01dc,
- /* 2nd byte: 111 */ 0x01da,
- /* 2nd byte: 112 */ 0x01d6,
- /* 2nd byte: 113 */ 0x0175,
- /* 2nd byte: 114 */ 0x00fd,
- /* 2nd byte: 115 */ 0x00ff,
- /* 2nd byte: 116 */ 0x0177,
- /* 2nd byte: 117 */ 0x017a,
- /* 2nd byte: 118 */ 0x017e,
- /* 2nd byte: 119 */ 0x017c,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
-/* 1st byte: 44 */ { 0 }, /* unused row */
-/* 1st byte: 45 */ { 0 }, /* unused row */
-/* 1st byte: 46 */ { 0 }, /* unused row */
-/* 1st byte: 47 */ { 0 }, /* unused row */
-/* 1st byte: 48 */ {
- /* 2nd byte: 33 */ 0x4e02,
- /* 2nd byte: 34 */ 0x4e04,
- /* 2nd byte: 35 */ 0x4e05,
- /* 2nd byte: 36 */ 0x4e0c,
- /* 2nd byte: 37 */ 0x4e12,
- /* 2nd byte: 38 */ 0x4e1f,
- /* 2nd byte: 39 */ 0x4e23,
- /* 2nd byte: 40 */ 0x4e24,
- /* 2nd byte: 41 */ 0x4e28,
- /* 2nd byte: 42 */ 0x4e2b,
- /* 2nd byte: 43 */ 0x4e2e,
- /* 2nd byte: 44 */ 0x4e2f,
- /* 2nd byte: 45 */ 0x4e30,
- /* 2nd byte: 46 */ 0x4e35,
- /* 2nd byte: 47 */ 0x4e40,
- /* 2nd byte: 48 */ 0x4e41,
- /* 2nd byte: 49 */ 0x4e44,
- /* 2nd byte: 50 */ 0x4e47,
- /* 2nd byte: 51 */ 0x4e51,
- /* 2nd byte: 52 */ 0x4e5a,
- /* 2nd byte: 53 */ 0x4e5c,
- /* 2nd byte: 54 */ 0x4e63,
- /* 2nd byte: 55 */ 0x4e68,
- /* 2nd byte: 56 */ 0x4e69,
- /* 2nd byte: 57 */ 0x4e74,
- /* 2nd byte: 58 */ 0x4e75,
- /* 2nd byte: 59 */ 0x4e79,
- /* 2nd byte: 60 */ 0x4e7f,
- /* 2nd byte: 61 */ 0x4e8d,
- /* 2nd byte: 62 */ 0x4e96,
- /* 2nd byte: 63 */ 0x4e97,
- /* 2nd byte: 64 */ 0x4e9d,
- /* 2nd byte: 65 */ 0x4eaf,
- /* 2nd byte: 66 */ 0x4eb9,
- /* 2nd byte: 67 */ 0x4ec3,
- /* 2nd byte: 68 */ 0x4ed0,
- /* 2nd byte: 69 */ 0x4eda,
- /* 2nd byte: 70 */ 0x4edb,
- /* 2nd byte: 71 */ 0x4ee0,
- /* 2nd byte: 72 */ 0x4ee1,
- /* 2nd byte: 73 */ 0x4ee2,
- /* 2nd byte: 74 */ 0x4ee8,
- /* 2nd byte: 75 */ 0x4eef,
- /* 2nd byte: 76 */ 0x4ef1,
- /* 2nd byte: 77 */ 0x4ef3,
- /* 2nd byte: 78 */ 0x4ef5,
- /* 2nd byte: 79 */ 0x4efd,
- /* 2nd byte: 80 */ 0x4efe,
- /* 2nd byte: 81 */ 0x4eff,
- /* 2nd byte: 82 */ 0x4f00,
- /* 2nd byte: 83 */ 0x4f02,
- /* 2nd byte: 84 */ 0x4f03,
- /* 2nd byte: 85 */ 0x4f08,
- /* 2nd byte: 86 */ 0x4f0b,
- /* 2nd byte: 87 */ 0x4f0c,
- /* 2nd byte: 88 */ 0x4f12,
- /* 2nd byte: 89 */ 0x4f15,
- /* 2nd byte: 90 */ 0x4f16,
- /* 2nd byte: 91 */ 0x4f17,
- /* 2nd byte: 92 */ 0x4f19,
- /* 2nd byte: 93 */ 0x4f2e,
- /* 2nd byte: 94 */ 0x4f31,
- /* 2nd byte: 95 */ 0x4f60,
- /* 2nd byte: 96 */ 0x4f33,
- /* 2nd byte: 97 */ 0x4f35,
- /* 2nd byte: 98 */ 0x4f37,
- /* 2nd byte: 99 */ 0x4f39,
- /* 2nd byte: 100 */ 0x4f3b,
- /* 2nd byte: 101 */ 0x4f3e,
- /* 2nd byte: 102 */ 0x4f40,
- /* 2nd byte: 103 */ 0x4f42,
- /* 2nd byte: 104 */ 0x4f48,
- /* 2nd byte: 105 */ 0x4f49,
- /* 2nd byte: 106 */ 0x4f4b,
- /* 2nd byte: 107 */ 0x4f4c,
- /* 2nd byte: 108 */ 0x4f52,
- /* 2nd byte: 109 */ 0x4f54,
- /* 2nd byte: 110 */ 0x4f56,
- /* 2nd byte: 111 */ 0x4f58,
- /* 2nd byte: 112 */ 0x4f5f,
- /* 2nd byte: 113 */ 0x4f63,
- /* 2nd byte: 114 */ 0x4f6a,
- /* 2nd byte: 115 */ 0x4f6c,
- /* 2nd byte: 116 */ 0x4f6e,
- /* 2nd byte: 117 */ 0x4f71,
- /* 2nd byte: 118 */ 0x4f77,
- /* 2nd byte: 119 */ 0x4f78,
- /* 2nd byte: 120 */ 0x4f79,
- /* 2nd byte: 121 */ 0x4f7a,
- /* 2nd byte: 122 */ 0x4f7d,
- /* 2nd byte: 123 */ 0x4f7e,
- /* 2nd byte: 124 */ 0x4f81,
- /* 2nd byte: 125 */ 0x4f82,
- /* 2nd byte: 126 */ 0x4f84},
-/* 1st byte: 49 */ {
- /* 2nd byte: 33 */ 0x4f85,
- /* 2nd byte: 34 */ 0x4f89,
- /* 2nd byte: 35 */ 0x4f8a,
- /* 2nd byte: 36 */ 0x4f8c,
- /* 2nd byte: 37 */ 0x4f8e,
- /* 2nd byte: 38 */ 0x4f90,
- /* 2nd byte: 39 */ 0x4f92,
- /* 2nd byte: 40 */ 0x4f93,
- /* 2nd byte: 41 */ 0x4f94,
- /* 2nd byte: 42 */ 0x4f97,
- /* 2nd byte: 43 */ 0x4f99,
- /* 2nd byte: 44 */ 0x4f9a,
- /* 2nd byte: 45 */ 0x4f9e,
- /* 2nd byte: 46 */ 0x4f9f,
- /* 2nd byte: 47 */ 0x4fb2,
- /* 2nd byte: 48 */ 0x4fb7,
- /* 2nd byte: 49 */ 0x4fb9,
- /* 2nd byte: 50 */ 0x4fbb,
- /* 2nd byte: 51 */ 0x4fbc,
- /* 2nd byte: 52 */ 0x4fbd,
- /* 2nd byte: 53 */ 0x4fbe,
- /* 2nd byte: 54 */ 0x4fc0,
- /* 2nd byte: 55 */ 0x4fc1,
- /* 2nd byte: 56 */ 0x4fc5,
- /* 2nd byte: 57 */ 0x4fc6,
- /* 2nd byte: 58 */ 0x4fc8,
- /* 2nd byte: 59 */ 0x4fc9,
- /* 2nd byte: 60 */ 0x4fcb,
- /* 2nd byte: 61 */ 0x4fcc,
- /* 2nd byte: 62 */ 0x4fcd,
- /* 2nd byte: 63 */ 0x4fcf,
- /* 2nd byte: 64 */ 0x4fd2,
- /* 2nd byte: 65 */ 0x4fdc,
- /* 2nd byte: 66 */ 0x4fe0,
- /* 2nd byte: 67 */ 0x4fe2,
- /* 2nd byte: 68 */ 0x4ff0,
- /* 2nd byte: 69 */ 0x4ff2,
- /* 2nd byte: 70 */ 0x4ffc,
- /* 2nd byte: 71 */ 0x4ffd,
- /* 2nd byte: 72 */ 0x4fff,
- /* 2nd byte: 73 */ 0x5000,
- /* 2nd byte: 74 */ 0x5001,
- /* 2nd byte: 75 */ 0x5004,
- /* 2nd byte: 76 */ 0x5007,
- /* 2nd byte: 77 */ 0x500a,
- /* 2nd byte: 78 */ 0x500c,
- /* 2nd byte: 79 */ 0x500e,
- /* 2nd byte: 80 */ 0x5010,
- /* 2nd byte: 81 */ 0x5013,
- /* 2nd byte: 82 */ 0x5017,
- /* 2nd byte: 83 */ 0x5018,
- /* 2nd byte: 84 */ 0x501b,
- /* 2nd byte: 85 */ 0x501c,
- /* 2nd byte: 86 */ 0x501d,
- /* 2nd byte: 87 */ 0x501e,
- /* 2nd byte: 88 */ 0x5022,
- /* 2nd byte: 89 */ 0x5027,
- /* 2nd byte: 90 */ 0x502e,
- /* 2nd byte: 91 */ 0x5030,
- /* 2nd byte: 92 */ 0x5032,
- /* 2nd byte: 93 */ 0x5033,
- /* 2nd byte: 94 */ 0x5035,
- /* 2nd byte: 95 */ 0x5040,
- /* 2nd byte: 96 */ 0x5041,
- /* 2nd byte: 97 */ 0x5042,
- /* 2nd byte: 98 */ 0x5045,
- /* 2nd byte: 99 */ 0x5046,
- /* 2nd byte: 100 */ 0x504a,
- /* 2nd byte: 101 */ 0x504c,
- /* 2nd byte: 102 */ 0x504e,
- /* 2nd byte: 103 */ 0x5051,
- /* 2nd byte: 104 */ 0x5052,
- /* 2nd byte: 105 */ 0x5053,
- /* 2nd byte: 106 */ 0x5057,
- /* 2nd byte: 107 */ 0x5059,
- /* 2nd byte: 108 */ 0x505f,
- /* 2nd byte: 109 */ 0x5060,
- /* 2nd byte: 110 */ 0x5062,
- /* 2nd byte: 111 */ 0x5063,
- /* 2nd byte: 112 */ 0x5066,
- /* 2nd byte: 113 */ 0x5067,
- /* 2nd byte: 114 */ 0x506a,
- /* 2nd byte: 115 */ 0x506d,
- /* 2nd byte: 116 */ 0x5070,
- /* 2nd byte: 117 */ 0x5071,
- /* 2nd byte: 118 */ 0x503b,
- /* 2nd byte: 119 */ 0x5081,
- /* 2nd byte: 120 */ 0x5083,
- /* 2nd byte: 121 */ 0x5084,
- /* 2nd byte: 122 */ 0x5086,
- /* 2nd byte: 123 */ 0x508a,
- /* 2nd byte: 124 */ 0x508e,
- /* 2nd byte: 125 */ 0x508f,
- /* 2nd byte: 126 */ 0x5090},
-/* 1st byte: 50 */ {
- /* 2nd byte: 33 */ 0x5092,
- /* 2nd byte: 34 */ 0x5093,
- /* 2nd byte: 35 */ 0x5094,
- /* 2nd byte: 36 */ 0x5096,
- /* 2nd byte: 37 */ 0x509b,
- /* 2nd byte: 38 */ 0x509c,
- /* 2nd byte: 39 */ 0x509e,
- /* 2nd byte: 40 */ 0x509f,
- /* 2nd byte: 41 */ 0x50a0,
- /* 2nd byte: 42 */ 0x50a1,
- /* 2nd byte: 43 */ 0x50a2,
- /* 2nd byte: 44 */ 0x50aa,
- /* 2nd byte: 45 */ 0x50af,
- /* 2nd byte: 46 */ 0x50b0,
- /* 2nd byte: 47 */ 0x50b9,
- /* 2nd byte: 48 */ 0x50ba,
- /* 2nd byte: 49 */ 0x50bd,
- /* 2nd byte: 50 */ 0x50c0,
- /* 2nd byte: 51 */ 0x50c3,
- /* 2nd byte: 52 */ 0x50c4,
- /* 2nd byte: 53 */ 0x50c7,
- /* 2nd byte: 54 */ 0x50cc,
- /* 2nd byte: 55 */ 0x50ce,
- /* 2nd byte: 56 */ 0x50d0,
- /* 2nd byte: 57 */ 0x50d3,
- /* 2nd byte: 58 */ 0x50d4,
- /* 2nd byte: 59 */ 0x50d8,
- /* 2nd byte: 60 */ 0x50dc,
- /* 2nd byte: 61 */ 0x50dd,
- /* 2nd byte: 62 */ 0x50df,
- /* 2nd byte: 63 */ 0x50e2,
- /* 2nd byte: 64 */ 0x50e4,
- /* 2nd byte: 65 */ 0x50e6,
- /* 2nd byte: 66 */ 0x50e8,
- /* 2nd byte: 67 */ 0x50e9,
- /* 2nd byte: 68 */ 0x50ef,
- /* 2nd byte: 69 */ 0x50f1,
- /* 2nd byte: 70 */ 0x50f6,
- /* 2nd byte: 71 */ 0x50fa,
- /* 2nd byte: 72 */ 0x50fe,
- /* 2nd byte: 73 */ 0x5103,
- /* 2nd byte: 74 */ 0x5106,
- /* 2nd byte: 75 */ 0x5107,
- /* 2nd byte: 76 */ 0x5108,
- /* 2nd byte: 77 */ 0x510b,
- /* 2nd byte: 78 */ 0x510c,
- /* 2nd byte: 79 */ 0x510d,
- /* 2nd byte: 80 */ 0x510e,
- /* 2nd byte: 81 */ 0x50f2,
- /* 2nd byte: 82 */ 0x5110,
- /* 2nd byte: 83 */ 0x5117,
- /* 2nd byte: 84 */ 0x5119,
- /* 2nd byte: 85 */ 0x511b,
- /* 2nd byte: 86 */ 0x511c,
- /* 2nd byte: 87 */ 0x511d,
- /* 2nd byte: 88 */ 0x511e,
- /* 2nd byte: 89 */ 0x5123,
- /* 2nd byte: 90 */ 0x5127,
- /* 2nd byte: 91 */ 0x5128,
- /* 2nd byte: 92 */ 0x512c,
- /* 2nd byte: 93 */ 0x512d,
- /* 2nd byte: 94 */ 0x512f,
- /* 2nd byte: 95 */ 0x5131,
- /* 2nd byte: 96 */ 0x5133,
- /* 2nd byte: 97 */ 0x5134,
- /* 2nd byte: 98 */ 0x5135,
- /* 2nd byte: 99 */ 0x5138,
- /* 2nd byte: 100 */ 0x5139,
- /* 2nd byte: 101 */ 0x5142,
- /* 2nd byte: 102 */ 0x514a,
- /* 2nd byte: 103 */ 0x514f,
- /* 2nd byte: 104 */ 0x5153,
- /* 2nd byte: 105 */ 0x5155,
- /* 2nd byte: 106 */ 0x5157,
- /* 2nd byte: 107 */ 0x5158,
- /* 2nd byte: 108 */ 0x515f,
- /* 2nd byte: 109 */ 0x5164,
- /* 2nd byte: 110 */ 0x5166,
- /* 2nd byte: 111 */ 0x517e,
- /* 2nd byte: 112 */ 0x5183,
- /* 2nd byte: 113 */ 0x5184,
- /* 2nd byte: 114 */ 0x518b,
- /* 2nd byte: 115 */ 0x518e,
- /* 2nd byte: 116 */ 0x5198,
- /* 2nd byte: 117 */ 0x519d,
- /* 2nd byte: 118 */ 0x51a1,
- /* 2nd byte: 119 */ 0x51a3,
- /* 2nd byte: 120 */ 0x51ad,
- /* 2nd byte: 121 */ 0x51b8,
- /* 2nd byte: 122 */ 0x51ba,
- /* 2nd byte: 123 */ 0x51bc,
- /* 2nd byte: 124 */ 0x51be,
- /* 2nd byte: 125 */ 0x51bf,
- /* 2nd byte: 126 */ 0x51c2},
-/* 1st byte: 51 */ {
- /* 2nd byte: 33 */ 0x51c8,
- /* 2nd byte: 34 */ 0x51cf,
- /* 2nd byte: 35 */ 0x51d1,
- /* 2nd byte: 36 */ 0x51d2,
- /* 2nd byte: 37 */ 0x51d3,
- /* 2nd byte: 38 */ 0x51d5,
- /* 2nd byte: 39 */ 0x51d8,
- /* 2nd byte: 40 */ 0x51de,
- /* 2nd byte: 41 */ 0x51e2,
- /* 2nd byte: 42 */ 0x51e5,
- /* 2nd byte: 43 */ 0x51ee,
- /* 2nd byte: 44 */ 0x51f2,
- /* 2nd byte: 45 */ 0x51f3,
- /* 2nd byte: 46 */ 0x51f4,
- /* 2nd byte: 47 */ 0x51f7,
- /* 2nd byte: 48 */ 0x5201,
- /* 2nd byte: 49 */ 0x5202,
- /* 2nd byte: 50 */ 0x5205,
- /* 2nd byte: 51 */ 0x5212,
- /* 2nd byte: 52 */ 0x5213,
- /* 2nd byte: 53 */ 0x5215,
- /* 2nd byte: 54 */ 0x5216,
- /* 2nd byte: 55 */ 0x5218,
- /* 2nd byte: 56 */ 0x5222,
- /* 2nd byte: 57 */ 0x5228,
- /* 2nd byte: 58 */ 0x5231,
- /* 2nd byte: 59 */ 0x5232,
- /* 2nd byte: 60 */ 0x5235,
- /* 2nd byte: 61 */ 0x523c,
- /* 2nd byte: 62 */ 0x5245,
- /* 2nd byte: 63 */ 0x5249,
- /* 2nd byte: 64 */ 0x5255,
- /* 2nd byte: 65 */ 0x5257,
- /* 2nd byte: 66 */ 0x5258,
- /* 2nd byte: 67 */ 0x525a,
- /* 2nd byte: 68 */ 0x525c,
- /* 2nd byte: 69 */ 0x525f,
- /* 2nd byte: 70 */ 0x5260,
- /* 2nd byte: 71 */ 0x5261,
- /* 2nd byte: 72 */ 0x5266,
- /* 2nd byte: 73 */ 0x526e,
- /* 2nd byte: 74 */ 0x5277,
- /* 2nd byte: 75 */ 0x5278,
- /* 2nd byte: 76 */ 0x5279,
- /* 2nd byte: 77 */ 0x5280,
- /* 2nd byte: 78 */ 0x5282,
- /* 2nd byte: 79 */ 0x5285,
- /* 2nd byte: 80 */ 0x528a,
- /* 2nd byte: 81 */ 0x528c,
- /* 2nd byte: 82 */ 0x5293,
- /* 2nd byte: 83 */ 0x5295,
- /* 2nd byte: 84 */ 0x5296,
- /* 2nd byte: 85 */ 0x5297,
- /* 2nd byte: 86 */ 0x5298,
- /* 2nd byte: 87 */ 0x529a,
- /* 2nd byte: 88 */ 0x529c,
- /* 2nd byte: 89 */ 0x52a4,
- /* 2nd byte: 90 */ 0x52a5,
- /* 2nd byte: 91 */ 0x52a6,
- /* 2nd byte: 92 */ 0x52a7,
- /* 2nd byte: 93 */ 0x52af,
- /* 2nd byte: 94 */ 0x52b0,
- /* 2nd byte: 95 */ 0x52b6,
- /* 2nd byte: 96 */ 0x52b7,
- /* 2nd byte: 97 */ 0x52b8,
- /* 2nd byte: 98 */ 0x52ba,
- /* 2nd byte: 99 */ 0x52bb,
- /* 2nd byte: 100 */ 0x52bd,
- /* 2nd byte: 101 */ 0x52c0,
- /* 2nd byte: 102 */ 0x52c4,
- /* 2nd byte: 103 */ 0x52c6,
- /* 2nd byte: 104 */ 0x52c8,
- /* 2nd byte: 105 */ 0x52cc,
- /* 2nd byte: 106 */ 0x52cf,
- /* 2nd byte: 107 */ 0x52d1,
- /* 2nd byte: 108 */ 0x52d4,
- /* 2nd byte: 109 */ 0x52d6,
- /* 2nd byte: 110 */ 0x52db,
- /* 2nd byte: 111 */ 0x52dc,
- /* 2nd byte: 112 */ 0x52e1,
- /* 2nd byte: 113 */ 0x52e5,
- /* 2nd byte: 114 */ 0x52e8,
- /* 2nd byte: 115 */ 0x52e9,
- /* 2nd byte: 116 */ 0x52ea,
- /* 2nd byte: 117 */ 0x52ec,
- /* 2nd byte: 118 */ 0x52f0,
- /* 2nd byte: 119 */ 0x52f1,
- /* 2nd byte: 120 */ 0x52f4,
- /* 2nd byte: 121 */ 0x52f6,
- /* 2nd byte: 122 */ 0x52f7,
- /* 2nd byte: 123 */ 0x5300,
- /* 2nd byte: 124 */ 0x5303,
- /* 2nd byte: 125 */ 0x530a,
- /* 2nd byte: 126 */ 0x530b},
-/* 1st byte: 52 */ {
- /* 2nd byte: 33 */ 0x530c,
- /* 2nd byte: 34 */ 0x5311,
- /* 2nd byte: 35 */ 0x5313,
- /* 2nd byte: 36 */ 0x5318,
- /* 2nd byte: 37 */ 0x531b,
- /* 2nd byte: 38 */ 0x531c,
- /* 2nd byte: 39 */ 0x531e,
- /* 2nd byte: 40 */ 0x531f,
- /* 2nd byte: 41 */ 0x5325,
- /* 2nd byte: 42 */ 0x5327,
- /* 2nd byte: 43 */ 0x5328,
- /* 2nd byte: 44 */ 0x5329,
- /* 2nd byte: 45 */ 0x532b,
- /* 2nd byte: 46 */ 0x532c,
- /* 2nd byte: 47 */ 0x532d,
- /* 2nd byte: 48 */ 0x5330,
- /* 2nd byte: 49 */ 0x5332,
- /* 2nd byte: 50 */ 0x5335,
- /* 2nd byte: 51 */ 0x533c,
- /* 2nd byte: 52 */ 0x533d,
- /* 2nd byte: 53 */ 0x533e,
- /* 2nd byte: 54 */ 0x5342,
- /* 2nd byte: 55 */ 0x534c,
- /* 2nd byte: 56 */ 0x534b,
- /* 2nd byte: 57 */ 0x5359,
- /* 2nd byte: 58 */ 0x535b,
- /* 2nd byte: 59 */ 0x5361,
- /* 2nd byte: 60 */ 0x5363,
- /* 2nd byte: 61 */ 0x5365,
- /* 2nd byte: 62 */ 0x536c,
- /* 2nd byte: 63 */ 0x536d,
- /* 2nd byte: 64 */ 0x5372,
- /* 2nd byte: 65 */ 0x5379,
- /* 2nd byte: 66 */ 0x537e,
- /* 2nd byte: 67 */ 0x5383,
- /* 2nd byte: 68 */ 0x5387,
- /* 2nd byte: 69 */ 0x5388,
- /* 2nd byte: 70 */ 0x538e,
- /* 2nd byte: 71 */ 0x5393,
- /* 2nd byte: 72 */ 0x5394,
- /* 2nd byte: 73 */ 0x5399,
- /* 2nd byte: 74 */ 0x539d,
- /* 2nd byte: 75 */ 0x53a1,
- /* 2nd byte: 76 */ 0x53a4,
- /* 2nd byte: 77 */ 0x53aa,
- /* 2nd byte: 78 */ 0x53ab,
- /* 2nd byte: 79 */ 0x53af,
- /* 2nd byte: 80 */ 0x53b2,
- /* 2nd byte: 81 */ 0x53b4,
- /* 2nd byte: 82 */ 0x53b5,
- /* 2nd byte: 83 */ 0x53b7,
- /* 2nd byte: 84 */ 0x53b8,
- /* 2nd byte: 85 */ 0x53ba,
- /* 2nd byte: 86 */ 0x53bd,
- /* 2nd byte: 87 */ 0x53c0,
- /* 2nd byte: 88 */ 0x53c5,
- /* 2nd byte: 89 */ 0x53cf,
- /* 2nd byte: 90 */ 0x53d2,
- /* 2nd byte: 91 */ 0x53d3,
- /* 2nd byte: 92 */ 0x53d5,
- /* 2nd byte: 93 */ 0x53da,
- /* 2nd byte: 94 */ 0x53dd,
- /* 2nd byte: 95 */ 0x53de,
- /* 2nd byte: 96 */ 0x53e0,
- /* 2nd byte: 97 */ 0x53e6,
- /* 2nd byte: 98 */ 0x53e7,
- /* 2nd byte: 99 */ 0x53f5,
- /* 2nd byte: 100 */ 0x5402,
- /* 2nd byte: 101 */ 0x5413,
- /* 2nd byte: 102 */ 0x541a,
- /* 2nd byte: 103 */ 0x5421,
- /* 2nd byte: 104 */ 0x5427,
- /* 2nd byte: 105 */ 0x5428,
- /* 2nd byte: 106 */ 0x542a,
- /* 2nd byte: 107 */ 0x542f,
- /* 2nd byte: 108 */ 0x5431,
- /* 2nd byte: 109 */ 0x5434,
- /* 2nd byte: 110 */ 0x5435,
- /* 2nd byte: 111 */ 0x5443,
- /* 2nd byte: 112 */ 0x5444,
- /* 2nd byte: 113 */ 0x5447,
- /* 2nd byte: 114 */ 0x544d,
- /* 2nd byte: 115 */ 0x544f,
- /* 2nd byte: 116 */ 0x545e,
- /* 2nd byte: 117 */ 0x5462,
- /* 2nd byte: 118 */ 0x5464,
- /* 2nd byte: 119 */ 0x5466,
- /* 2nd byte: 120 */ 0x5467,
- /* 2nd byte: 121 */ 0x5469,
- /* 2nd byte: 122 */ 0x546b,
- /* 2nd byte: 123 */ 0x546d,
- /* 2nd byte: 124 */ 0x546e,
- /* 2nd byte: 125 */ 0x5474,
- /* 2nd byte: 126 */ 0x547f},
-/* 1st byte: 53 */ {
- /* 2nd byte: 33 */ 0x5481,
- /* 2nd byte: 34 */ 0x5483,
- /* 2nd byte: 35 */ 0x5485,
- /* 2nd byte: 36 */ 0x5488,
- /* 2nd byte: 37 */ 0x5489,
- /* 2nd byte: 38 */ 0x548d,
- /* 2nd byte: 39 */ 0x5491,
- /* 2nd byte: 40 */ 0x5495,
- /* 2nd byte: 41 */ 0x5496,
- /* 2nd byte: 42 */ 0x549c,
- /* 2nd byte: 43 */ 0x549f,
- /* 2nd byte: 44 */ 0x54a1,
- /* 2nd byte: 45 */ 0x54a6,
- /* 2nd byte: 46 */ 0x54a7,
- /* 2nd byte: 47 */ 0x54a9,
- /* 2nd byte: 48 */ 0x54aa,
- /* 2nd byte: 49 */ 0x54ad,
- /* 2nd byte: 50 */ 0x54ae,
- /* 2nd byte: 51 */ 0x54b1,
- /* 2nd byte: 52 */ 0x54b7,
- /* 2nd byte: 53 */ 0x54b9,
- /* 2nd byte: 54 */ 0x54ba,
- /* 2nd byte: 55 */ 0x54bb,
- /* 2nd byte: 56 */ 0x54bf,
- /* 2nd byte: 57 */ 0x54c6,
- /* 2nd byte: 58 */ 0x54ca,
- /* 2nd byte: 59 */ 0x54cd,
- /* 2nd byte: 60 */ 0x54ce,
- /* 2nd byte: 61 */ 0x54e0,
- /* 2nd byte: 62 */ 0x54ea,
- /* 2nd byte: 63 */ 0x54ec,
- /* 2nd byte: 64 */ 0x54ef,
- /* 2nd byte: 65 */ 0x54f6,
- /* 2nd byte: 66 */ 0x54fc,
- /* 2nd byte: 67 */ 0x54fe,
- /* 2nd byte: 68 */ 0x54ff,
- /* 2nd byte: 69 */ 0x5500,
- /* 2nd byte: 70 */ 0x5501,
- /* 2nd byte: 71 */ 0x5505,
- /* 2nd byte: 72 */ 0x5508,
- /* 2nd byte: 73 */ 0x5509,
- /* 2nd byte: 74 */ 0x550c,
- /* 2nd byte: 75 */ 0x550d,
- /* 2nd byte: 76 */ 0x550e,
- /* 2nd byte: 77 */ 0x5515,
- /* 2nd byte: 78 */ 0x552a,
- /* 2nd byte: 79 */ 0x552b,
- /* 2nd byte: 80 */ 0x5532,
- /* 2nd byte: 81 */ 0x5535,
- /* 2nd byte: 82 */ 0x5536,
- /* 2nd byte: 83 */ 0x553b,
- /* 2nd byte: 84 */ 0x553c,
- /* 2nd byte: 85 */ 0x553d,
- /* 2nd byte: 86 */ 0x5541,
- /* 2nd byte: 87 */ 0x5547,
- /* 2nd byte: 88 */ 0x5549,
- /* 2nd byte: 89 */ 0x554a,
- /* 2nd byte: 90 */ 0x554d,
- /* 2nd byte: 91 */ 0x5550,
- /* 2nd byte: 92 */ 0x5551,
- /* 2nd byte: 93 */ 0x5558,
- /* 2nd byte: 94 */ 0x555a,
- /* 2nd byte: 95 */ 0x555b,
- /* 2nd byte: 96 */ 0x555e,
- /* 2nd byte: 97 */ 0x5560,
- /* 2nd byte: 98 */ 0x5561,
- /* 2nd byte: 99 */ 0x5564,
- /* 2nd byte: 100 */ 0x5566,
- /* 2nd byte: 101 */ 0x557f,
- /* 2nd byte: 102 */ 0x5581,
- /* 2nd byte: 103 */ 0x5582,
- /* 2nd byte: 104 */ 0x5586,
- /* 2nd byte: 105 */ 0x5588,
- /* 2nd byte: 106 */ 0x558e,
- /* 2nd byte: 107 */ 0x558f,
- /* 2nd byte: 108 */ 0x5591,
- /* 2nd byte: 109 */ 0x5592,
- /* 2nd byte: 110 */ 0x5593,
- /* 2nd byte: 111 */ 0x5594,
- /* 2nd byte: 112 */ 0x5597,
- /* 2nd byte: 113 */ 0x55a3,
- /* 2nd byte: 114 */ 0x55a4,
- /* 2nd byte: 115 */ 0x55ad,
- /* 2nd byte: 116 */ 0x55b2,
- /* 2nd byte: 117 */ 0x55bf,
- /* 2nd byte: 118 */ 0x55c1,
- /* 2nd byte: 119 */ 0x55c3,
- /* 2nd byte: 120 */ 0x55c6,
- /* 2nd byte: 121 */ 0x55c9,
- /* 2nd byte: 122 */ 0x55cb,
- /* 2nd byte: 123 */ 0x55cc,
- /* 2nd byte: 124 */ 0x55ce,
- /* 2nd byte: 125 */ 0x55d1,
- /* 2nd byte: 126 */ 0x55d2},
-/* 1st byte: 54 */ {
- /* 2nd byte: 33 */ 0x55d3,
- /* 2nd byte: 34 */ 0x55d7,
- /* 2nd byte: 35 */ 0x55d8,
- /* 2nd byte: 36 */ 0x55db,
- /* 2nd byte: 37 */ 0x55de,
- /* 2nd byte: 38 */ 0x55e2,
- /* 2nd byte: 39 */ 0x55e9,
- /* 2nd byte: 40 */ 0x55f6,
- /* 2nd byte: 41 */ 0x55ff,
- /* 2nd byte: 42 */ 0x5605,
- /* 2nd byte: 43 */ 0x5608,
- /* 2nd byte: 44 */ 0x560a,
- /* 2nd byte: 45 */ 0x560d,
- /* 2nd byte: 46 */ 0x560e,
- /* 2nd byte: 47 */ 0x560f,
- /* 2nd byte: 48 */ 0x5610,
- /* 2nd byte: 49 */ 0x5611,
- /* 2nd byte: 50 */ 0x5612,
- /* 2nd byte: 51 */ 0x5619,
- /* 2nd byte: 52 */ 0x562c,
- /* 2nd byte: 53 */ 0x5630,
- /* 2nd byte: 54 */ 0x5633,
- /* 2nd byte: 55 */ 0x5635,
- /* 2nd byte: 56 */ 0x5637,
- /* 2nd byte: 57 */ 0x5639,
- /* 2nd byte: 58 */ 0x563b,
- /* 2nd byte: 59 */ 0x563c,
- /* 2nd byte: 60 */ 0x563d,
- /* 2nd byte: 61 */ 0x563f,
- /* 2nd byte: 62 */ 0x5640,
- /* 2nd byte: 63 */ 0x5641,
- /* 2nd byte: 64 */ 0x5643,
- /* 2nd byte: 65 */ 0x5644,
- /* 2nd byte: 66 */ 0x5646,
- /* 2nd byte: 67 */ 0x5649,
- /* 2nd byte: 68 */ 0x564b,
- /* 2nd byte: 69 */ 0x564d,
- /* 2nd byte: 70 */ 0x564f,
- /* 2nd byte: 71 */ 0x5654,
- /* 2nd byte: 72 */ 0x565e,
- /* 2nd byte: 73 */ 0x5660,
- /* 2nd byte: 74 */ 0x5661,
- /* 2nd byte: 75 */ 0x5662,
- /* 2nd byte: 76 */ 0x5663,
- /* 2nd byte: 77 */ 0x5666,
- /* 2nd byte: 78 */ 0x5669,
- /* 2nd byte: 79 */ 0x566d,
- /* 2nd byte: 80 */ 0x566f,
- /* 2nd byte: 81 */ 0x5671,
- /* 2nd byte: 82 */ 0x5672,
- /* 2nd byte: 83 */ 0x5675,
- /* 2nd byte: 84 */ 0x5684,
- /* 2nd byte: 85 */ 0x5685,
- /* 2nd byte: 86 */ 0x5688,
- /* 2nd byte: 87 */ 0x568b,
- /* 2nd byte: 88 */ 0x568c,
- /* 2nd byte: 89 */ 0x5695,
- /* 2nd byte: 90 */ 0x5699,
- /* 2nd byte: 91 */ 0x569a,
- /* 2nd byte: 92 */ 0x569d,
- /* 2nd byte: 93 */ 0x569e,
- /* 2nd byte: 94 */ 0x569f,
- /* 2nd byte: 95 */ 0x56a6,
- /* 2nd byte: 96 */ 0x56a7,
- /* 2nd byte: 97 */ 0x56a8,
- /* 2nd byte: 98 */ 0x56a9,
- /* 2nd byte: 99 */ 0x56ab,
- /* 2nd byte: 100 */ 0x56ac,
- /* 2nd byte: 101 */ 0x56ad,
- /* 2nd byte: 102 */ 0x56b1,
- /* 2nd byte: 103 */ 0x56b3,
- /* 2nd byte: 104 */ 0x56b7,
- /* 2nd byte: 105 */ 0x56be,
- /* 2nd byte: 106 */ 0x56c5,
- /* 2nd byte: 107 */ 0x56c9,
- /* 2nd byte: 108 */ 0x56ca,
- /* 2nd byte: 109 */ 0x56cb,
- /* 2nd byte: 110 */ 0x56cf,
- /* 2nd byte: 111 */ 0x56d0,
- /* 2nd byte: 112 */ 0x56cc,
- /* 2nd byte: 113 */ 0x56cd,
- /* 2nd byte: 114 */ 0x56d9,
- /* 2nd byte: 115 */ 0x56dc,
- /* 2nd byte: 116 */ 0x56dd,
- /* 2nd byte: 117 */ 0x56df,
- /* 2nd byte: 118 */ 0x56e1,
- /* 2nd byte: 119 */ 0x56e4,
- /* 2nd byte: 120 */ 0x56e5,
- /* 2nd byte: 121 */ 0x56e6,
- /* 2nd byte: 122 */ 0x56e7,
- /* 2nd byte: 123 */ 0x56e8,
- /* 2nd byte: 124 */ 0x56f1,
- /* 2nd byte: 125 */ 0x56eb,
- /* 2nd byte: 126 */ 0x56ed},
-/* 1st byte: 55 */ {
- /* 2nd byte: 33 */ 0x56f6,
- /* 2nd byte: 34 */ 0x56f7,
- /* 2nd byte: 35 */ 0x5701,
- /* 2nd byte: 36 */ 0x5702,
- /* 2nd byte: 37 */ 0x5707,
- /* 2nd byte: 38 */ 0x570a,
- /* 2nd byte: 39 */ 0x570c,
- /* 2nd byte: 40 */ 0x5711,
- /* 2nd byte: 41 */ 0x5715,
- /* 2nd byte: 42 */ 0x571a,
- /* 2nd byte: 43 */ 0x571b,
- /* 2nd byte: 44 */ 0x571d,
- /* 2nd byte: 45 */ 0x5720,
- /* 2nd byte: 46 */ 0x5722,
- /* 2nd byte: 47 */ 0x5723,
- /* 2nd byte: 48 */ 0x5724,
- /* 2nd byte: 49 */ 0x5725,
- /* 2nd byte: 50 */ 0x5729,
- /* 2nd byte: 51 */ 0x572a,
- /* 2nd byte: 52 */ 0x572c,
- /* 2nd byte: 53 */ 0x572e,
- /* 2nd byte: 54 */ 0x572f,
- /* 2nd byte: 55 */ 0x5733,
- /* 2nd byte: 56 */ 0x5734,
- /* 2nd byte: 57 */ 0x573d,
- /* 2nd byte: 58 */ 0x573e,
- /* 2nd byte: 59 */ 0x573f,
- /* 2nd byte: 60 */ 0x5745,
- /* 2nd byte: 61 */ 0x5746,
- /* 2nd byte: 62 */ 0x574c,
- /* 2nd byte: 63 */ 0x574d,
- /* 2nd byte: 64 */ 0x5752,
- /* 2nd byte: 65 */ 0x5762,
- /* 2nd byte: 66 */ 0x5765,
- /* 2nd byte: 67 */ 0x5767,
- /* 2nd byte: 68 */ 0x5768,
- /* 2nd byte: 69 */ 0x576b,
- /* 2nd byte: 70 */ 0x576d,
- /* 2nd byte: 71 */ 0x576e,
- /* 2nd byte: 72 */ 0x576f,
- /* 2nd byte: 73 */ 0x5770,
- /* 2nd byte: 74 */ 0x5771,
- /* 2nd byte: 75 */ 0x5773,
- /* 2nd byte: 76 */ 0x5774,
- /* 2nd byte: 77 */ 0x5775,
- /* 2nd byte: 78 */ 0x5777,
- /* 2nd byte: 79 */ 0x5779,
- /* 2nd byte: 80 */ 0x577a,
- /* 2nd byte: 81 */ 0x577b,
- /* 2nd byte: 82 */ 0x577c,
- /* 2nd byte: 83 */ 0x577e,
- /* 2nd byte: 84 */ 0x5781,
- /* 2nd byte: 85 */ 0x5783,
- /* 2nd byte: 86 */ 0x578c,
- /* 2nd byte: 87 */ 0x5794,
- /* 2nd byte: 88 */ 0x5797,
- /* 2nd byte: 89 */ 0x5799,
- /* 2nd byte: 90 */ 0x579a,
- /* 2nd byte: 91 */ 0x579c,
- /* 2nd byte: 92 */ 0x579d,
- /* 2nd byte: 93 */ 0x579e,
- /* 2nd byte: 94 */ 0x579f,
- /* 2nd byte: 95 */ 0x57a1,
- /* 2nd byte: 96 */ 0x5795,
- /* 2nd byte: 97 */ 0x57a7,
- /* 2nd byte: 98 */ 0x57a8,
- /* 2nd byte: 99 */ 0x57a9,
- /* 2nd byte: 100 */ 0x57ac,
- /* 2nd byte: 101 */ 0x57b8,
- /* 2nd byte: 102 */ 0x57bd,
- /* 2nd byte: 103 */ 0x57c7,
- /* 2nd byte: 104 */ 0x57c8,
- /* 2nd byte: 105 */ 0x57cc,
- /* 2nd byte: 106 */ 0x57cf,
- /* 2nd byte: 107 */ 0x57d5,
- /* 2nd byte: 108 */ 0x57dd,
- /* 2nd byte: 109 */ 0x57de,
- /* 2nd byte: 110 */ 0x57e4,
- /* 2nd byte: 111 */ 0x57e6,
- /* 2nd byte: 112 */ 0x57e7,
- /* 2nd byte: 113 */ 0x57e9,
- /* 2nd byte: 114 */ 0x57ed,
- /* 2nd byte: 115 */ 0x57f0,
- /* 2nd byte: 116 */ 0x57f5,
- /* 2nd byte: 117 */ 0x57f6,
- /* 2nd byte: 118 */ 0x57f8,
- /* 2nd byte: 119 */ 0x57fd,
- /* 2nd byte: 120 */ 0x57fe,
- /* 2nd byte: 121 */ 0x57ff,
- /* 2nd byte: 122 */ 0x5803,
- /* 2nd byte: 123 */ 0x5804,
- /* 2nd byte: 124 */ 0x5808,
- /* 2nd byte: 125 */ 0x5809,
- /* 2nd byte: 126 */ 0x57e1},
-/* 1st byte: 56 */ {
- /* 2nd byte: 33 */ 0x580c,
- /* 2nd byte: 34 */ 0x580d,
- /* 2nd byte: 35 */ 0x581b,
- /* 2nd byte: 36 */ 0x581e,
- /* 2nd byte: 37 */ 0x581f,
- /* 2nd byte: 38 */ 0x5820,
- /* 2nd byte: 39 */ 0x5826,
- /* 2nd byte: 40 */ 0x5827,
- /* 2nd byte: 41 */ 0x582d,
- /* 2nd byte: 42 */ 0x5832,
- /* 2nd byte: 43 */ 0x5839,
- /* 2nd byte: 44 */ 0x583f,
- /* 2nd byte: 45 */ 0x5849,
- /* 2nd byte: 46 */ 0x584c,
- /* 2nd byte: 47 */ 0x584d,
- /* 2nd byte: 48 */ 0x584f,
- /* 2nd byte: 49 */ 0x5850,
- /* 2nd byte: 50 */ 0x5855,
- /* 2nd byte: 51 */ 0x585f,
- /* 2nd byte: 52 */ 0x5861,
- /* 2nd byte: 53 */ 0x5864,
- /* 2nd byte: 54 */ 0x5867,
- /* 2nd byte: 55 */ 0x5868,
- /* 2nd byte: 56 */ 0x5878,
- /* 2nd byte: 57 */ 0x587c,
- /* 2nd byte: 58 */ 0x587f,
- /* 2nd byte: 59 */ 0x5880,
- /* 2nd byte: 60 */ 0x5881,
- /* 2nd byte: 61 */ 0x5887,
- /* 2nd byte: 62 */ 0x5888,
- /* 2nd byte: 63 */ 0x5889,
- /* 2nd byte: 64 */ 0x588a,
- /* 2nd byte: 65 */ 0x588c,
- /* 2nd byte: 66 */ 0x588d,
- /* 2nd byte: 67 */ 0x588f,
- /* 2nd byte: 68 */ 0x5890,
- /* 2nd byte: 69 */ 0x5894,
- /* 2nd byte: 70 */ 0x5896,
- /* 2nd byte: 71 */ 0x589d,
- /* 2nd byte: 72 */ 0x58a0,
- /* 2nd byte: 73 */ 0x58a1,
- /* 2nd byte: 74 */ 0x58a2,
- /* 2nd byte: 75 */ 0x58a6,
- /* 2nd byte: 76 */ 0x58a9,
- /* 2nd byte: 77 */ 0x58b1,
- /* 2nd byte: 78 */ 0x58b2,
- /* 2nd byte: 79 */ 0x58c4,
- /* 2nd byte: 80 */ 0x58bc,
- /* 2nd byte: 81 */ 0x58c2,
- /* 2nd byte: 82 */ 0x58c8,
- /* 2nd byte: 83 */ 0x58cd,
- /* 2nd byte: 84 */ 0x58ce,
- /* 2nd byte: 85 */ 0x58d0,
- /* 2nd byte: 86 */ 0x58d2,
- /* 2nd byte: 87 */ 0x58d4,
- /* 2nd byte: 88 */ 0x58d6,
- /* 2nd byte: 89 */ 0x58da,
- /* 2nd byte: 90 */ 0x58dd,
- /* 2nd byte: 91 */ 0x58e1,
- /* 2nd byte: 92 */ 0x58e2,
- /* 2nd byte: 93 */ 0x58e9,
- /* 2nd byte: 94 */ 0x58f3,
- /* 2nd byte: 95 */ 0x5905,
- /* 2nd byte: 96 */ 0x5906,
- /* 2nd byte: 97 */ 0x590b,
- /* 2nd byte: 98 */ 0x590c,
- /* 2nd byte: 99 */ 0x5912,
- /* 2nd byte: 100 */ 0x5913,
- /* 2nd byte: 101 */ 0x5914,
- /* 2nd byte: 102 */ 0x8641,
- /* 2nd byte: 103 */ 0x591d,
- /* 2nd byte: 104 */ 0x5921,
- /* 2nd byte: 105 */ 0x5923,
- /* 2nd byte: 106 */ 0x5924,
- /* 2nd byte: 107 */ 0x5928,
- /* 2nd byte: 108 */ 0x592f,
- /* 2nd byte: 109 */ 0x5930,
- /* 2nd byte: 110 */ 0x5933,
- /* 2nd byte: 111 */ 0x5935,
- /* 2nd byte: 112 */ 0x5936,
- /* 2nd byte: 113 */ 0x593f,
- /* 2nd byte: 114 */ 0x5943,
- /* 2nd byte: 115 */ 0x5946,
- /* 2nd byte: 116 */ 0x5952,
- /* 2nd byte: 117 */ 0x5953,
- /* 2nd byte: 118 */ 0x5959,
- /* 2nd byte: 119 */ 0x595b,
- /* 2nd byte: 120 */ 0x595d,
- /* 2nd byte: 121 */ 0x595e,
- /* 2nd byte: 122 */ 0x595f,
- /* 2nd byte: 123 */ 0x5961,
- /* 2nd byte: 124 */ 0x5963,
- /* 2nd byte: 125 */ 0x596b,
- /* 2nd byte: 126 */ 0x596d},
-/* 1st byte: 57 */ {
- /* 2nd byte: 33 */ 0x596f,
- /* 2nd byte: 34 */ 0x5972,
- /* 2nd byte: 35 */ 0x5975,
- /* 2nd byte: 36 */ 0x5976,
- /* 2nd byte: 37 */ 0x5979,
- /* 2nd byte: 38 */ 0x597b,
- /* 2nd byte: 39 */ 0x597c,
- /* 2nd byte: 40 */ 0x598b,
- /* 2nd byte: 41 */ 0x598c,
- /* 2nd byte: 42 */ 0x598e,
- /* 2nd byte: 43 */ 0x5992,
- /* 2nd byte: 44 */ 0x5995,
- /* 2nd byte: 45 */ 0x5997,
- /* 2nd byte: 46 */ 0x599f,
- /* 2nd byte: 47 */ 0x59a4,
- /* 2nd byte: 48 */ 0x59a7,
- /* 2nd byte: 49 */ 0x59ad,
- /* 2nd byte: 50 */ 0x59ae,
- /* 2nd byte: 51 */ 0x59af,
- /* 2nd byte: 52 */ 0x59b0,
- /* 2nd byte: 53 */ 0x59b3,
- /* 2nd byte: 54 */ 0x59b7,
- /* 2nd byte: 55 */ 0x59ba,
- /* 2nd byte: 56 */ 0x59bc,
- /* 2nd byte: 57 */ 0x59c1,
- /* 2nd byte: 58 */ 0x59c3,
- /* 2nd byte: 59 */ 0x59c4,
- /* 2nd byte: 60 */ 0x59c8,
- /* 2nd byte: 61 */ 0x59ca,
- /* 2nd byte: 62 */ 0x59cd,
- /* 2nd byte: 63 */ 0x59d2,
- /* 2nd byte: 64 */ 0x59dd,
- /* 2nd byte: 65 */ 0x59de,
- /* 2nd byte: 66 */ 0x59df,
- /* 2nd byte: 67 */ 0x59e3,
- /* 2nd byte: 68 */ 0x59e4,
- /* 2nd byte: 69 */ 0x59e7,
- /* 2nd byte: 70 */ 0x59ee,
- /* 2nd byte: 71 */ 0x59ef,
- /* 2nd byte: 72 */ 0x59f1,
- /* 2nd byte: 73 */ 0x59f2,
- /* 2nd byte: 74 */ 0x59f4,
- /* 2nd byte: 75 */ 0x59f7,
- /* 2nd byte: 76 */ 0x5a00,
- /* 2nd byte: 77 */ 0x5a04,
- /* 2nd byte: 78 */ 0x5a0c,
- /* 2nd byte: 79 */ 0x5a0d,
- /* 2nd byte: 80 */ 0x5a0e,
- /* 2nd byte: 81 */ 0x5a12,
- /* 2nd byte: 82 */ 0x5a13,
- /* 2nd byte: 83 */ 0x5a1e,
- /* 2nd byte: 84 */ 0x5a23,
- /* 2nd byte: 85 */ 0x5a24,
- /* 2nd byte: 86 */ 0x5a27,
- /* 2nd byte: 87 */ 0x5a28,
- /* 2nd byte: 88 */ 0x5a2a,
- /* 2nd byte: 89 */ 0x5a2d,
- /* 2nd byte: 90 */ 0x5a30,
- /* 2nd byte: 91 */ 0x5a44,
- /* 2nd byte: 92 */ 0x5a45,
- /* 2nd byte: 93 */ 0x5a47,
- /* 2nd byte: 94 */ 0x5a48,
- /* 2nd byte: 95 */ 0x5a4c,
- /* 2nd byte: 96 */ 0x5a50,
- /* 2nd byte: 97 */ 0x5a55,
- /* 2nd byte: 98 */ 0x5a5e,
- /* 2nd byte: 99 */ 0x5a63,
- /* 2nd byte: 100 */ 0x5a65,
- /* 2nd byte: 101 */ 0x5a67,
- /* 2nd byte: 102 */ 0x5a6d,
- /* 2nd byte: 103 */ 0x5a77,
- /* 2nd byte: 104 */ 0x5a7a,
- /* 2nd byte: 105 */ 0x5a7b,
- /* 2nd byte: 106 */ 0x5a7e,
- /* 2nd byte: 107 */ 0x5a8b,
- /* 2nd byte: 108 */ 0x5a90,
- /* 2nd byte: 109 */ 0x5a93,
- /* 2nd byte: 110 */ 0x5a96,
- /* 2nd byte: 111 */ 0x5a99,
- /* 2nd byte: 112 */ 0x5a9c,
- /* 2nd byte: 113 */ 0x5a9e,
- /* 2nd byte: 114 */ 0x5a9f,
- /* 2nd byte: 115 */ 0x5aa0,
- /* 2nd byte: 116 */ 0x5aa2,
- /* 2nd byte: 117 */ 0x5aa7,
- /* 2nd byte: 118 */ 0x5aac,
- /* 2nd byte: 119 */ 0x5ab1,
- /* 2nd byte: 120 */ 0x5ab2,
- /* 2nd byte: 121 */ 0x5ab3,
- /* 2nd byte: 122 */ 0x5ab5,
- /* 2nd byte: 123 */ 0x5ab8,
- /* 2nd byte: 124 */ 0x5aba,
- /* 2nd byte: 125 */ 0x5abb,
- /* 2nd byte: 126 */ 0x5abf},
-/* 1st byte: 58 */ {
- /* 2nd byte: 33 */ 0x5ac4,
- /* 2nd byte: 34 */ 0x5ac6,
- /* 2nd byte: 35 */ 0x5ac8,
- /* 2nd byte: 36 */ 0x5acf,
- /* 2nd byte: 37 */ 0x5ada,
- /* 2nd byte: 38 */ 0x5adc,
- /* 2nd byte: 39 */ 0x5ae0,
- /* 2nd byte: 40 */ 0x5ae5,
- /* 2nd byte: 41 */ 0x5aea,
- /* 2nd byte: 42 */ 0x5aee,
- /* 2nd byte: 43 */ 0x5af5,
- /* 2nd byte: 44 */ 0x5af6,
- /* 2nd byte: 45 */ 0x5afd,
- /* 2nd byte: 46 */ 0x5b00,
- /* 2nd byte: 47 */ 0x5b01,
- /* 2nd byte: 48 */ 0x5b08,
- /* 2nd byte: 49 */ 0x5b17,
- /* 2nd byte: 50 */ 0x5b34,
- /* 2nd byte: 51 */ 0x5b19,
- /* 2nd byte: 52 */ 0x5b1b,
- /* 2nd byte: 53 */ 0x5b1d,
- /* 2nd byte: 54 */ 0x5b21,
- /* 2nd byte: 55 */ 0x5b25,
- /* 2nd byte: 56 */ 0x5b2d,
- /* 2nd byte: 57 */ 0x5b38,
- /* 2nd byte: 58 */ 0x5b41,
- /* 2nd byte: 59 */ 0x5b4b,
- /* 2nd byte: 60 */ 0x5b4c,
- /* 2nd byte: 61 */ 0x5b52,
- /* 2nd byte: 62 */ 0x5b56,
- /* 2nd byte: 63 */ 0x5b5e,
- /* 2nd byte: 64 */ 0x5b68,
- /* 2nd byte: 65 */ 0x5b6e,
- /* 2nd byte: 66 */ 0x5b6f,
- /* 2nd byte: 67 */ 0x5b7c,
- /* 2nd byte: 68 */ 0x5b7d,
- /* 2nd byte: 69 */ 0x5b7e,
- /* 2nd byte: 70 */ 0x5b7f,
- /* 2nd byte: 71 */ 0x5b81,
- /* 2nd byte: 72 */ 0x5b84,
- /* 2nd byte: 73 */ 0x5b86,
- /* 2nd byte: 74 */ 0x5b8a,
- /* 2nd byte: 75 */ 0x5b8e,
- /* 2nd byte: 76 */ 0x5b90,
- /* 2nd byte: 77 */ 0x5b91,
- /* 2nd byte: 78 */ 0x5b93,
- /* 2nd byte: 79 */ 0x5b94,
- /* 2nd byte: 80 */ 0x5b96,
- /* 2nd byte: 81 */ 0x5ba8,
- /* 2nd byte: 82 */ 0x5ba9,
- /* 2nd byte: 83 */ 0x5bac,
- /* 2nd byte: 84 */ 0x5bad,
- /* 2nd byte: 85 */ 0x5baf,
- /* 2nd byte: 86 */ 0x5bb1,
- /* 2nd byte: 87 */ 0x5bb2,
- /* 2nd byte: 88 */ 0x5bb7,
- /* 2nd byte: 89 */ 0x5bba,
- /* 2nd byte: 90 */ 0x5bbc,
- /* 2nd byte: 91 */ 0x5bc0,
- /* 2nd byte: 92 */ 0x5bc1,
- /* 2nd byte: 93 */ 0x5bcd,
- /* 2nd byte: 94 */ 0x5bcf,
- /* 2nd byte: 95 */ 0x5bd6,
- /* 2nd byte: 96 */ 0x5bd7,
- /* 2nd byte: 97 */ 0x5bd8,
- /* 2nd byte: 98 */ 0x5bd9,
- /* 2nd byte: 99 */ 0x5bda,
- /* 2nd byte: 100 */ 0x5be0,
- /* 2nd byte: 101 */ 0x5bef,
- /* 2nd byte: 102 */ 0x5bf1,
- /* 2nd byte: 103 */ 0x5bf4,
- /* 2nd byte: 104 */ 0x5bfd,
- /* 2nd byte: 105 */ 0x5c0c,
- /* 2nd byte: 106 */ 0x5c17,
- /* 2nd byte: 107 */ 0x5c1e,
- /* 2nd byte: 108 */ 0x5c1f,
- /* 2nd byte: 109 */ 0x5c23,
- /* 2nd byte: 110 */ 0x5c26,
- /* 2nd byte: 111 */ 0x5c29,
- /* 2nd byte: 112 */ 0x5c2b,
- /* 2nd byte: 113 */ 0x5c2c,
- /* 2nd byte: 114 */ 0x5c2e,
- /* 2nd byte: 115 */ 0x5c30,
- /* 2nd byte: 116 */ 0x5c32,
- /* 2nd byte: 117 */ 0x5c35,
- /* 2nd byte: 118 */ 0x5c36,
- /* 2nd byte: 119 */ 0x5c59,
- /* 2nd byte: 120 */ 0x5c5a,
- /* 2nd byte: 121 */ 0x5c5c,
- /* 2nd byte: 122 */ 0x5c62,
- /* 2nd byte: 123 */ 0x5c63,
- /* 2nd byte: 124 */ 0x5c67,
- /* 2nd byte: 125 */ 0x5c68,
- /* 2nd byte: 126 */ 0x5c69},
-/* 1st byte: 59 */ {
- /* 2nd byte: 33 */ 0x5c6d,
- /* 2nd byte: 34 */ 0x5c70,
- /* 2nd byte: 35 */ 0x5c74,
- /* 2nd byte: 36 */ 0x5c75,
- /* 2nd byte: 37 */ 0x5c7a,
- /* 2nd byte: 38 */ 0x5c7b,
- /* 2nd byte: 39 */ 0x5c7c,
- /* 2nd byte: 40 */ 0x5c7d,
- /* 2nd byte: 41 */ 0x5c87,
- /* 2nd byte: 42 */ 0x5c88,
- /* 2nd byte: 43 */ 0x5c8a,
- /* 2nd byte: 44 */ 0x5c8f,
- /* 2nd byte: 45 */ 0x5c92,
- /* 2nd byte: 46 */ 0x5c9d,
- /* 2nd byte: 47 */ 0x5c9f,
- /* 2nd byte: 48 */ 0x5ca0,
- /* 2nd byte: 49 */ 0x5ca2,
- /* 2nd byte: 50 */ 0x5ca3,
- /* 2nd byte: 51 */ 0x5ca6,
- /* 2nd byte: 52 */ 0x5caa,
- /* 2nd byte: 53 */ 0x5cb2,
- /* 2nd byte: 54 */ 0x5cb4,
- /* 2nd byte: 55 */ 0x5cb5,
- /* 2nd byte: 56 */ 0x5cba,
- /* 2nd byte: 57 */ 0x5cc9,
- /* 2nd byte: 58 */ 0x5ccb,
- /* 2nd byte: 59 */ 0x5cd2,
- /* 2nd byte: 60 */ 0x5cdd,
- /* 2nd byte: 61 */ 0x5cd7,
- /* 2nd byte: 62 */ 0x5cee,
- /* 2nd byte: 63 */ 0x5cf1,
- /* 2nd byte: 64 */ 0x5cf2,
- /* 2nd byte: 65 */ 0x5cf4,
- /* 2nd byte: 66 */ 0x5d01,
- /* 2nd byte: 67 */ 0x5d06,
- /* 2nd byte: 68 */ 0x5d0d,
- /* 2nd byte: 69 */ 0x5d12,
- /* 2nd byte: 70 */ 0x5d2b,
- /* 2nd byte: 71 */ 0x5d23,
- /* 2nd byte: 72 */ 0x5d24,
- /* 2nd byte: 73 */ 0x5d26,
- /* 2nd byte: 74 */ 0x5d27,
- /* 2nd byte: 75 */ 0x5d31,
- /* 2nd byte: 76 */ 0x5d34,
- /* 2nd byte: 77 */ 0x5d39,
- /* 2nd byte: 78 */ 0x5d3d,
- /* 2nd byte: 79 */ 0x5d3f,
- /* 2nd byte: 80 */ 0x5d42,
- /* 2nd byte: 81 */ 0x5d43,
- /* 2nd byte: 82 */ 0x5d46,
- /* 2nd byte: 83 */ 0x5d48,
- /* 2nd byte: 84 */ 0x5d55,
- /* 2nd byte: 85 */ 0x5d51,
- /* 2nd byte: 86 */ 0x5d59,
- /* 2nd byte: 87 */ 0x5d4a,
- /* 2nd byte: 88 */ 0x5d5f,
- /* 2nd byte: 89 */ 0x5d60,
- /* 2nd byte: 90 */ 0x5d61,
- /* 2nd byte: 91 */ 0x5d62,
- /* 2nd byte: 92 */ 0x5d64,
- /* 2nd byte: 93 */ 0x5d6a,
- /* 2nd byte: 94 */ 0x5d6d,
- /* 2nd byte: 95 */ 0x5d70,
- /* 2nd byte: 96 */ 0x5d79,
- /* 2nd byte: 97 */ 0x5d7a,
- /* 2nd byte: 98 */ 0x5d7e,
- /* 2nd byte: 99 */ 0x5d7f,
- /* 2nd byte: 100 */ 0x5d81,
- /* 2nd byte: 101 */ 0x5d83,
- /* 2nd byte: 102 */ 0x5d88,
- /* 2nd byte: 103 */ 0x5d8a,
- /* 2nd byte: 104 */ 0x5d92,
- /* 2nd byte: 105 */ 0x5d93,
- /* 2nd byte: 106 */ 0x5d94,
- /* 2nd byte: 107 */ 0x5d95,
- /* 2nd byte: 108 */ 0x5d99,
- /* 2nd byte: 109 */ 0x5d9b,
- /* 2nd byte: 110 */ 0x5d9f,
- /* 2nd byte: 111 */ 0x5da0,
- /* 2nd byte: 112 */ 0x5da7,
- /* 2nd byte: 113 */ 0x5dab,
- /* 2nd byte: 114 */ 0x5db0,
- /* 2nd byte: 115 */ 0x5db4,
- /* 2nd byte: 116 */ 0x5db8,
- /* 2nd byte: 117 */ 0x5db9,
- /* 2nd byte: 118 */ 0x5dc3,
- /* 2nd byte: 119 */ 0x5dc7,
- /* 2nd byte: 120 */ 0x5dcb,
- /* 2nd byte: 121 */ 0x5dd0,
- /* 2nd byte: 122 */ 0x5dce,
- /* 2nd byte: 123 */ 0x5dd8,
- /* 2nd byte: 124 */ 0x5dd9,
- /* 2nd byte: 125 */ 0x5de0,
- /* 2nd byte: 126 */ 0x5de4},
-/* 1st byte: 60 */ {
- /* 2nd byte: 33 */ 0x5de9,
- /* 2nd byte: 34 */ 0x5df8,
- /* 2nd byte: 35 */ 0x5df9,
- /* 2nd byte: 36 */ 0x5e00,
- /* 2nd byte: 37 */ 0x5e07,
- /* 2nd byte: 38 */ 0x5e0d,
- /* 2nd byte: 39 */ 0x5e12,
- /* 2nd byte: 40 */ 0x5e14,
- /* 2nd byte: 41 */ 0x5e15,
- /* 2nd byte: 42 */ 0x5e18,
- /* 2nd byte: 43 */ 0x5e1f,
- /* 2nd byte: 44 */ 0x5e20,
- /* 2nd byte: 45 */ 0x5e2e,
- /* 2nd byte: 46 */ 0x5e28,
- /* 2nd byte: 47 */ 0x5e32,
- /* 2nd byte: 48 */ 0x5e35,
- /* 2nd byte: 49 */ 0x5e3e,
- /* 2nd byte: 50 */ 0x5e4b,
- /* 2nd byte: 51 */ 0x5e50,
- /* 2nd byte: 52 */ 0x5e49,
- /* 2nd byte: 53 */ 0x5e51,
- /* 2nd byte: 54 */ 0x5e56,
- /* 2nd byte: 55 */ 0x5e58,
- /* 2nd byte: 56 */ 0x5e5b,
- /* 2nd byte: 57 */ 0x5e5c,
- /* 2nd byte: 58 */ 0x5e5e,
- /* 2nd byte: 59 */ 0x5e68,
- /* 2nd byte: 60 */ 0x5e6a,
- /* 2nd byte: 61 */ 0x5e6b,
- /* 2nd byte: 62 */ 0x5e6c,
- /* 2nd byte: 63 */ 0x5e6d,
- /* 2nd byte: 64 */ 0x5e6e,
- /* 2nd byte: 65 */ 0x5e70,
- /* 2nd byte: 66 */ 0x5e80,
- /* 2nd byte: 67 */ 0x5e8b,
- /* 2nd byte: 68 */ 0x5e8e,
- /* 2nd byte: 69 */ 0x5ea2,
- /* 2nd byte: 70 */ 0x5ea4,
- /* 2nd byte: 71 */ 0x5ea5,
- /* 2nd byte: 72 */ 0x5ea8,
- /* 2nd byte: 73 */ 0x5eaa,
- /* 2nd byte: 74 */ 0x5eac,
- /* 2nd byte: 75 */ 0x5eb1,
- /* 2nd byte: 76 */ 0x5eb3,
- /* 2nd byte: 77 */ 0x5ebd,
- /* 2nd byte: 78 */ 0x5ebe,
- /* 2nd byte: 79 */ 0x5ebf,
- /* 2nd byte: 80 */ 0x5ec6,
- /* 2nd byte: 81 */ 0x5ecc,
- /* 2nd byte: 82 */ 0x5ecb,
- /* 2nd byte: 83 */ 0x5ece,
- /* 2nd byte: 84 */ 0x5ed1,
- /* 2nd byte: 85 */ 0x5ed2,
- /* 2nd byte: 86 */ 0x5ed4,
- /* 2nd byte: 87 */ 0x5ed5,
- /* 2nd byte: 88 */ 0x5edc,
- /* 2nd byte: 89 */ 0x5ede,
- /* 2nd byte: 90 */ 0x5ee5,
- /* 2nd byte: 91 */ 0x5eeb,
- /* 2nd byte: 92 */ 0x5f02,
- /* 2nd byte: 93 */ 0x5f06,
- /* 2nd byte: 94 */ 0x5f07,
- /* 2nd byte: 95 */ 0x5f08,
- /* 2nd byte: 96 */ 0x5f0e,
- /* 2nd byte: 97 */ 0x5f19,
- /* 2nd byte: 98 */ 0x5f1c,
- /* 2nd byte: 99 */ 0x5f1d,
- /* 2nd byte: 100 */ 0x5f21,
- /* 2nd byte: 101 */ 0x5f22,
- /* 2nd byte: 102 */ 0x5f23,
- /* 2nd byte: 103 */ 0x5f24,
- /* 2nd byte: 104 */ 0x5f28,
- /* 2nd byte: 105 */ 0x5f2b,
- /* 2nd byte: 106 */ 0x5f2c,
- /* 2nd byte: 107 */ 0x5f2e,
- /* 2nd byte: 108 */ 0x5f30,
- /* 2nd byte: 109 */ 0x5f34,
- /* 2nd byte: 110 */ 0x5f36,
- /* 2nd byte: 111 */ 0x5f3b,
- /* 2nd byte: 112 */ 0x5f3d,
- /* 2nd byte: 113 */ 0x5f3f,
- /* 2nd byte: 114 */ 0x5f40,
- /* 2nd byte: 115 */ 0x5f44,
- /* 2nd byte: 116 */ 0x5f45,
- /* 2nd byte: 117 */ 0x5f47,
- /* 2nd byte: 118 */ 0x5f4d,
- /* 2nd byte: 119 */ 0x5f50,
- /* 2nd byte: 120 */ 0x5f54,
- /* 2nd byte: 121 */ 0x5f58,
- /* 2nd byte: 122 */ 0x5f5b,
- /* 2nd byte: 123 */ 0x5f60,
- /* 2nd byte: 124 */ 0x5f63,
- /* 2nd byte: 125 */ 0x5f64,
- /* 2nd byte: 126 */ 0x5f67},
-/* 1st byte: 61 */ {
- /* 2nd byte: 33 */ 0x5f6f,
- /* 2nd byte: 34 */ 0x5f72,
- /* 2nd byte: 35 */ 0x5f74,
- /* 2nd byte: 36 */ 0x5f75,
- /* 2nd byte: 37 */ 0x5f78,
- /* 2nd byte: 38 */ 0x5f7a,
- /* 2nd byte: 39 */ 0x5f7d,
- /* 2nd byte: 40 */ 0x5f7e,
- /* 2nd byte: 41 */ 0x5f89,
- /* 2nd byte: 42 */ 0x5f8d,
- /* 2nd byte: 43 */ 0x5f8f,
- /* 2nd byte: 44 */ 0x5f96,
- /* 2nd byte: 45 */ 0x5f9c,
- /* 2nd byte: 46 */ 0x5f9d,
- /* 2nd byte: 47 */ 0x5fa2,
- /* 2nd byte: 48 */ 0x5fa7,
- /* 2nd byte: 49 */ 0x5fab,
- /* 2nd byte: 50 */ 0x5fa4,
- /* 2nd byte: 51 */ 0x5fac,
- /* 2nd byte: 52 */ 0x5faf,
- /* 2nd byte: 53 */ 0x5fb0,
- /* 2nd byte: 54 */ 0x5fb1,
- /* 2nd byte: 55 */ 0x5fb8,
- /* 2nd byte: 56 */ 0x5fc4,
- /* 2nd byte: 57 */ 0x5fc7,
- /* 2nd byte: 58 */ 0x5fc8,
- /* 2nd byte: 59 */ 0x5fc9,
- /* 2nd byte: 60 */ 0x5fcb,
- /* 2nd byte: 61 */ 0x5fd0,
- /* 2nd byte: 62 */ 0x5fd1,
- /* 2nd byte: 63 */ 0x5fd2,
- /* 2nd byte: 64 */ 0x5fd3,
- /* 2nd byte: 65 */ 0x5fd4,
- /* 2nd byte: 66 */ 0x5fde,
- /* 2nd byte: 67 */ 0x5fe1,
- /* 2nd byte: 68 */ 0x5fe2,
- /* 2nd byte: 69 */ 0x5fe8,
- /* 2nd byte: 70 */ 0x5fe9,
- /* 2nd byte: 71 */ 0x5fea,
- /* 2nd byte: 72 */ 0x5fec,
- /* 2nd byte: 73 */ 0x5fed,
- /* 2nd byte: 74 */ 0x5fee,
- /* 2nd byte: 75 */ 0x5fef,
- /* 2nd byte: 76 */ 0x5ff2,
- /* 2nd byte: 77 */ 0x5ff3,
- /* 2nd byte: 78 */ 0x5ff6,
- /* 2nd byte: 79 */ 0x5ffa,
- /* 2nd byte: 80 */ 0x5ffc,
- /* 2nd byte: 81 */ 0x6007,
- /* 2nd byte: 82 */ 0x600a,
- /* 2nd byte: 83 */ 0x600d,
- /* 2nd byte: 84 */ 0x6013,
- /* 2nd byte: 85 */ 0x6014,
- /* 2nd byte: 86 */ 0x6017,
- /* 2nd byte: 87 */ 0x6018,
- /* 2nd byte: 88 */ 0x601a,
- /* 2nd byte: 89 */ 0x601f,
- /* 2nd byte: 90 */ 0x6024,
- /* 2nd byte: 91 */ 0x602d,
- /* 2nd byte: 92 */ 0x6033,
- /* 2nd byte: 93 */ 0x6035,
- /* 2nd byte: 94 */ 0x6040,
- /* 2nd byte: 95 */ 0x6047,
- /* 2nd byte: 96 */ 0x6048,
- /* 2nd byte: 97 */ 0x6049,
- /* 2nd byte: 98 */ 0x604c,
- /* 2nd byte: 99 */ 0x6051,
- /* 2nd byte: 100 */ 0x6054,
- /* 2nd byte: 101 */ 0x6056,
- /* 2nd byte: 102 */ 0x6057,
- /* 2nd byte: 103 */ 0x605d,
- /* 2nd byte: 104 */ 0x6061,
- /* 2nd byte: 105 */ 0x6067,
- /* 2nd byte: 106 */ 0x6071,
- /* 2nd byte: 107 */ 0x607e,
- /* 2nd byte: 108 */ 0x607f,
- /* 2nd byte: 109 */ 0x6082,
- /* 2nd byte: 110 */ 0x6086,
- /* 2nd byte: 111 */ 0x6088,
- /* 2nd byte: 112 */ 0x608a,
- /* 2nd byte: 113 */ 0x608e,
- /* 2nd byte: 114 */ 0x6091,
- /* 2nd byte: 115 */ 0x6093,
- /* 2nd byte: 116 */ 0x6095,
- /* 2nd byte: 117 */ 0x6098,
- /* 2nd byte: 118 */ 0x609d,
- /* 2nd byte: 119 */ 0x609e,
- /* 2nd byte: 120 */ 0x60a2,
- /* 2nd byte: 121 */ 0x60a4,
- /* 2nd byte: 122 */ 0x60a5,
- /* 2nd byte: 123 */ 0x60a8,
- /* 2nd byte: 124 */ 0x60b0,
- /* 2nd byte: 125 */ 0x60b1,
- /* 2nd byte: 126 */ 0x60b7},
-/* 1st byte: 62 */ {
- /* 2nd byte: 33 */ 0x60bb,
- /* 2nd byte: 34 */ 0x60be,
- /* 2nd byte: 35 */ 0x60c2,
- /* 2nd byte: 36 */ 0x60c4,
- /* 2nd byte: 37 */ 0x60c8,
- /* 2nd byte: 38 */ 0x60c9,
- /* 2nd byte: 39 */ 0x60ca,
- /* 2nd byte: 40 */ 0x60cb,
- /* 2nd byte: 41 */ 0x60ce,
- /* 2nd byte: 42 */ 0x60cf,
- /* 2nd byte: 43 */ 0x60d4,
- /* 2nd byte: 44 */ 0x60d5,
- /* 2nd byte: 45 */ 0x60d9,
- /* 2nd byte: 46 */ 0x60db,
- /* 2nd byte: 47 */ 0x60dd,
- /* 2nd byte: 48 */ 0x60de,
- /* 2nd byte: 49 */ 0x60e2,
- /* 2nd byte: 50 */ 0x60e5,
- /* 2nd byte: 51 */ 0x60f2,
- /* 2nd byte: 52 */ 0x60f5,
- /* 2nd byte: 53 */ 0x60f8,
- /* 2nd byte: 54 */ 0x60fc,
- /* 2nd byte: 55 */ 0x60fd,
- /* 2nd byte: 56 */ 0x6102,
- /* 2nd byte: 57 */ 0x6107,
- /* 2nd byte: 58 */ 0x610a,
- /* 2nd byte: 59 */ 0x610c,
- /* 2nd byte: 60 */ 0x6110,
- /* 2nd byte: 61 */ 0x6111,
- /* 2nd byte: 62 */ 0x6112,
- /* 2nd byte: 63 */ 0x6113,
- /* 2nd byte: 64 */ 0x6114,
- /* 2nd byte: 65 */ 0x6116,
- /* 2nd byte: 66 */ 0x6117,
- /* 2nd byte: 67 */ 0x6119,
- /* 2nd byte: 68 */ 0x611c,
- /* 2nd byte: 69 */ 0x611e,
- /* 2nd byte: 70 */ 0x6122,
- /* 2nd byte: 71 */ 0x612a,
- /* 2nd byte: 72 */ 0x612b,
- /* 2nd byte: 73 */ 0x6130,
- /* 2nd byte: 74 */ 0x6131,
- /* 2nd byte: 75 */ 0x6135,
- /* 2nd byte: 76 */ 0x6136,
- /* 2nd byte: 77 */ 0x6137,
- /* 2nd byte: 78 */ 0x6139,
- /* 2nd byte: 79 */ 0x6141,
- /* 2nd byte: 80 */ 0x6145,
- /* 2nd byte: 81 */ 0x6146,
- /* 2nd byte: 82 */ 0x6149,
- /* 2nd byte: 83 */ 0x615e,
- /* 2nd byte: 84 */ 0x6160,
- /* 2nd byte: 85 */ 0x616c,
- /* 2nd byte: 86 */ 0x6172,
- /* 2nd byte: 87 */ 0x6178,
- /* 2nd byte: 88 */ 0x617b,
- /* 2nd byte: 89 */ 0x617c,
- /* 2nd byte: 90 */ 0x617f,
- /* 2nd byte: 91 */ 0x6180,
- /* 2nd byte: 92 */ 0x6181,
- /* 2nd byte: 93 */ 0x6183,
- /* 2nd byte: 94 */ 0x6184,
- /* 2nd byte: 95 */ 0x618b,
- /* 2nd byte: 96 */ 0x618d,
- /* 2nd byte: 97 */ 0x6192,
- /* 2nd byte: 98 */ 0x6193,
- /* 2nd byte: 99 */ 0x6197,
- /* 2nd byte: 100 */ 0x6198,
- /* 2nd byte: 101 */ 0x619c,
- /* 2nd byte: 102 */ 0x619d,
- /* 2nd byte: 103 */ 0x619f,
- /* 2nd byte: 104 */ 0x61a0,
- /* 2nd byte: 105 */ 0x61a5,
- /* 2nd byte: 106 */ 0x61a8,
- /* 2nd byte: 107 */ 0x61aa,
- /* 2nd byte: 108 */ 0x61ad,
- /* 2nd byte: 109 */ 0x61b8,
- /* 2nd byte: 110 */ 0x61b9,
- /* 2nd byte: 111 */ 0x61bc,
- /* 2nd byte: 112 */ 0x61c0,
- /* 2nd byte: 113 */ 0x61c1,
- /* 2nd byte: 114 */ 0x61c2,
- /* 2nd byte: 115 */ 0x61ce,
- /* 2nd byte: 116 */ 0x61cf,
- /* 2nd byte: 117 */ 0x61d5,
- /* 2nd byte: 118 */ 0x61dc,
- /* 2nd byte: 119 */ 0x61dd,
- /* 2nd byte: 120 */ 0x61de,
- /* 2nd byte: 121 */ 0x61df,
- /* 2nd byte: 122 */ 0x61e1,
- /* 2nd byte: 123 */ 0x61e2,
- /* 2nd byte: 124 */ 0x61e7,
- /* 2nd byte: 125 */ 0x61e9,
- /* 2nd byte: 126 */ 0x61e5},
-/* 1st byte: 63 */ {
- /* 2nd byte: 33 */ 0x61ec,
- /* 2nd byte: 34 */ 0x61ed,
- /* 2nd byte: 35 */ 0x61ef,
- /* 2nd byte: 36 */ 0x6201,
- /* 2nd byte: 37 */ 0x6203,
- /* 2nd byte: 38 */ 0x6204,
- /* 2nd byte: 39 */ 0x6207,
- /* 2nd byte: 40 */ 0x6213,
- /* 2nd byte: 41 */ 0x6215,
- /* 2nd byte: 42 */ 0x621c,
- /* 2nd byte: 43 */ 0x6220,
- /* 2nd byte: 44 */ 0x6222,
- /* 2nd byte: 45 */ 0x6223,
- /* 2nd byte: 46 */ 0x6227,
- /* 2nd byte: 47 */ 0x6229,
- /* 2nd byte: 48 */ 0x622b,
- /* 2nd byte: 49 */ 0x6239,
- /* 2nd byte: 50 */ 0x623d,
- /* 2nd byte: 51 */ 0x6242,
- /* 2nd byte: 52 */ 0x6243,
- /* 2nd byte: 53 */ 0x6244,
- /* 2nd byte: 54 */ 0x6246,
- /* 2nd byte: 55 */ 0x624c,
- /* 2nd byte: 56 */ 0x6250,
- /* 2nd byte: 57 */ 0x6251,
- /* 2nd byte: 58 */ 0x6252,
- /* 2nd byte: 59 */ 0x6254,
- /* 2nd byte: 60 */ 0x6256,
- /* 2nd byte: 61 */ 0x625a,
- /* 2nd byte: 62 */ 0x625c,
- /* 2nd byte: 63 */ 0x6264,
- /* 2nd byte: 64 */ 0x626d,
- /* 2nd byte: 65 */ 0x626f,
- /* 2nd byte: 66 */ 0x6273,
- /* 2nd byte: 67 */ 0x627a,
- /* 2nd byte: 68 */ 0x627d,
- /* 2nd byte: 69 */ 0x628d,
- /* 2nd byte: 70 */ 0x628e,
- /* 2nd byte: 71 */ 0x628f,
- /* 2nd byte: 72 */ 0x6290,
- /* 2nd byte: 73 */ 0x62a6,
- /* 2nd byte: 74 */ 0x62a8,
- /* 2nd byte: 75 */ 0x62b3,
- /* 2nd byte: 76 */ 0x62b6,
- /* 2nd byte: 77 */ 0x62b7,
- /* 2nd byte: 78 */ 0x62ba,
- /* 2nd byte: 79 */ 0x62be,
- /* 2nd byte: 80 */ 0x62bf,
- /* 2nd byte: 81 */ 0x62c4,
- /* 2nd byte: 82 */ 0x62ce,
- /* 2nd byte: 83 */ 0x62d5,
- /* 2nd byte: 84 */ 0x62d6,
- /* 2nd byte: 85 */ 0x62da,
- /* 2nd byte: 86 */ 0x62ea,
- /* 2nd byte: 87 */ 0x62f2,
- /* 2nd byte: 88 */ 0x62f4,
- /* 2nd byte: 89 */ 0x62fc,
- /* 2nd byte: 90 */ 0x62fd,
- /* 2nd byte: 91 */ 0x6303,
- /* 2nd byte: 92 */ 0x6304,
- /* 2nd byte: 93 */ 0x630a,
- /* 2nd byte: 94 */ 0x630b,
- /* 2nd byte: 95 */ 0x630d,
- /* 2nd byte: 96 */ 0x6310,
- /* 2nd byte: 97 */ 0x6313,
- /* 2nd byte: 98 */ 0x6316,
- /* 2nd byte: 99 */ 0x6318,
- /* 2nd byte: 100 */ 0x6329,
- /* 2nd byte: 101 */ 0x632a,
- /* 2nd byte: 102 */ 0x632d,
- /* 2nd byte: 103 */ 0x6335,
- /* 2nd byte: 104 */ 0x6336,
- /* 2nd byte: 105 */ 0x6339,
- /* 2nd byte: 106 */ 0x633c,
- /* 2nd byte: 107 */ 0x6341,
- /* 2nd byte: 108 */ 0x6342,
- /* 2nd byte: 109 */ 0x6343,
- /* 2nd byte: 110 */ 0x6344,
- /* 2nd byte: 111 */ 0x6346,
- /* 2nd byte: 112 */ 0x634a,
- /* 2nd byte: 113 */ 0x634b,
- /* 2nd byte: 114 */ 0x634e,
- /* 2nd byte: 115 */ 0x6352,
- /* 2nd byte: 116 */ 0x6353,
- /* 2nd byte: 117 */ 0x6354,
- /* 2nd byte: 118 */ 0x6358,
- /* 2nd byte: 119 */ 0x635b,
- /* 2nd byte: 120 */ 0x6365,
- /* 2nd byte: 121 */ 0x6366,
- /* 2nd byte: 122 */ 0x636c,
- /* 2nd byte: 123 */ 0x636d,
- /* 2nd byte: 124 */ 0x6371,
- /* 2nd byte: 125 */ 0x6374,
- /* 2nd byte: 126 */ 0x6375},
-/* 1st byte: 64 */ {
- /* 2nd byte: 33 */ 0x6378,
- /* 2nd byte: 34 */ 0x637c,
- /* 2nd byte: 35 */ 0x637d,
- /* 2nd byte: 36 */ 0x637f,
- /* 2nd byte: 37 */ 0x6382,
- /* 2nd byte: 38 */ 0x6384,
- /* 2nd byte: 39 */ 0x6387,
- /* 2nd byte: 40 */ 0x638a,
- /* 2nd byte: 41 */ 0x6390,
- /* 2nd byte: 42 */ 0x6394,
- /* 2nd byte: 43 */ 0x6395,
- /* 2nd byte: 44 */ 0x6399,
- /* 2nd byte: 45 */ 0x639a,
- /* 2nd byte: 46 */ 0x639e,
- /* 2nd byte: 47 */ 0x63a4,
- /* 2nd byte: 48 */ 0x63a6,
- /* 2nd byte: 49 */ 0x63ad,
- /* 2nd byte: 50 */ 0x63ae,
- /* 2nd byte: 51 */ 0x63af,
- /* 2nd byte: 52 */ 0x63bd,
- /* 2nd byte: 53 */ 0x63c1,
- /* 2nd byte: 54 */ 0x63c5,
- /* 2nd byte: 55 */ 0x63c8,
- /* 2nd byte: 56 */ 0x63ce,
- /* 2nd byte: 57 */ 0x63d1,
- /* 2nd byte: 58 */ 0x63d3,
- /* 2nd byte: 59 */ 0x63d4,
- /* 2nd byte: 60 */ 0x63d5,
- /* 2nd byte: 61 */ 0x63dc,
- /* 2nd byte: 62 */ 0x63e0,
- /* 2nd byte: 63 */ 0x63e5,
- /* 2nd byte: 64 */ 0x63ea,
- /* 2nd byte: 65 */ 0x63ec,
- /* 2nd byte: 66 */ 0x63f2,
- /* 2nd byte: 67 */ 0x63f3,
- /* 2nd byte: 68 */ 0x63f5,
- /* 2nd byte: 69 */ 0x63f8,
- /* 2nd byte: 70 */ 0x63f9,
- /* 2nd byte: 71 */ 0x6409,
- /* 2nd byte: 72 */ 0x640a,
- /* 2nd byte: 73 */ 0x6410,
- /* 2nd byte: 74 */ 0x6412,
- /* 2nd byte: 75 */ 0x6414,
- /* 2nd byte: 76 */ 0x6418,
- /* 2nd byte: 77 */ 0x641e,
- /* 2nd byte: 78 */ 0x6420,
- /* 2nd byte: 79 */ 0x6422,
- /* 2nd byte: 80 */ 0x6424,
- /* 2nd byte: 81 */ 0x6425,
- /* 2nd byte: 82 */ 0x6429,
- /* 2nd byte: 83 */ 0x642a,
- /* 2nd byte: 84 */ 0x642f,
- /* 2nd byte: 85 */ 0x6430,
- /* 2nd byte: 86 */ 0x6435,
- /* 2nd byte: 87 */ 0x643d,
- /* 2nd byte: 88 */ 0x643f,
- /* 2nd byte: 89 */ 0x644b,
- /* 2nd byte: 90 */ 0x644f,
- /* 2nd byte: 91 */ 0x6451,
- /* 2nd byte: 92 */ 0x6452,
- /* 2nd byte: 93 */ 0x6453,
- /* 2nd byte: 94 */ 0x6454,
- /* 2nd byte: 95 */ 0x645a,
- /* 2nd byte: 96 */ 0x645b,
- /* 2nd byte: 97 */ 0x645c,
- /* 2nd byte: 98 */ 0x645d,
- /* 2nd byte: 99 */ 0x645f,
- /* 2nd byte: 100 */ 0x6460,
- /* 2nd byte: 101 */ 0x6461,
- /* 2nd byte: 102 */ 0x6463,
- /* 2nd byte: 103 */ 0x646d,
- /* 2nd byte: 104 */ 0x6473,
- /* 2nd byte: 105 */ 0x6474,
- /* 2nd byte: 106 */ 0x647b,
- /* 2nd byte: 107 */ 0x647d,
- /* 2nd byte: 108 */ 0x6485,
- /* 2nd byte: 109 */ 0x6487,
- /* 2nd byte: 110 */ 0x648f,
- /* 2nd byte: 111 */ 0x6490,
- /* 2nd byte: 112 */ 0x6491,
- /* 2nd byte: 113 */ 0x6498,
- /* 2nd byte: 114 */ 0x6499,
- /* 2nd byte: 115 */ 0x649b,
- /* 2nd byte: 116 */ 0x649d,
- /* 2nd byte: 117 */ 0x649f,
- /* 2nd byte: 118 */ 0x64a1,
- /* 2nd byte: 119 */ 0x64a3,
- /* 2nd byte: 120 */ 0x64a6,
- /* 2nd byte: 121 */ 0x64a8,
- /* 2nd byte: 122 */ 0x64ac,
- /* 2nd byte: 123 */ 0x64b3,
- /* 2nd byte: 124 */ 0x64bd,
- /* 2nd byte: 125 */ 0x64be,
- /* 2nd byte: 126 */ 0x64bf},
-/* 1st byte: 65 */ {
- /* 2nd byte: 33 */ 0x64c4,
- /* 2nd byte: 34 */ 0x64c9,
- /* 2nd byte: 35 */ 0x64ca,
- /* 2nd byte: 36 */ 0x64cb,
- /* 2nd byte: 37 */ 0x64cc,
- /* 2nd byte: 38 */ 0x64ce,
- /* 2nd byte: 39 */ 0x64d0,
- /* 2nd byte: 40 */ 0x64d1,
- /* 2nd byte: 41 */ 0x64d5,
- /* 2nd byte: 42 */ 0x64d7,
- /* 2nd byte: 43 */ 0x64e4,
- /* 2nd byte: 44 */ 0x64e5,
- /* 2nd byte: 45 */ 0x64e9,
- /* 2nd byte: 46 */ 0x64ea,
- /* 2nd byte: 47 */ 0x64ed,
- /* 2nd byte: 48 */ 0x64f0,
- /* 2nd byte: 49 */ 0x64f5,
- /* 2nd byte: 50 */ 0x64f7,
- /* 2nd byte: 51 */ 0x64fb,
- /* 2nd byte: 52 */ 0x64ff,
- /* 2nd byte: 53 */ 0x6501,
- /* 2nd byte: 54 */ 0x6504,
- /* 2nd byte: 55 */ 0x6508,
- /* 2nd byte: 56 */ 0x6509,
- /* 2nd byte: 57 */ 0x650a,
- /* 2nd byte: 58 */ 0x650f,
- /* 2nd byte: 59 */ 0x6513,
- /* 2nd byte: 60 */ 0x6514,
- /* 2nd byte: 61 */ 0x6516,
- /* 2nd byte: 62 */ 0x6519,
- /* 2nd byte: 63 */ 0x651b,
- /* 2nd byte: 64 */ 0x651e,
- /* 2nd byte: 65 */ 0x651f,
- /* 2nd byte: 66 */ 0x6522,
- /* 2nd byte: 67 */ 0x6526,
- /* 2nd byte: 68 */ 0x6529,
- /* 2nd byte: 69 */ 0x652e,
- /* 2nd byte: 70 */ 0x6531,
- /* 2nd byte: 71 */ 0x653a,
- /* 2nd byte: 72 */ 0x653c,
- /* 2nd byte: 73 */ 0x653d,
- /* 2nd byte: 74 */ 0x6543,
- /* 2nd byte: 75 */ 0x6547,
- /* 2nd byte: 76 */ 0x6549,
- /* 2nd byte: 77 */ 0x6550,
- /* 2nd byte: 78 */ 0x6552,
- /* 2nd byte: 79 */ 0x6554,
- /* 2nd byte: 80 */ 0x655f,
- /* 2nd byte: 81 */ 0x6560,
- /* 2nd byte: 82 */ 0x6567,
- /* 2nd byte: 83 */ 0x656b,
- /* 2nd byte: 84 */ 0x657a,
- /* 2nd byte: 85 */ 0x657d,
- /* 2nd byte: 86 */ 0x6581,
- /* 2nd byte: 87 */ 0x6585,
- /* 2nd byte: 88 */ 0x658a,
- /* 2nd byte: 89 */ 0x6592,
- /* 2nd byte: 90 */ 0x6595,
- /* 2nd byte: 91 */ 0x6598,
- /* 2nd byte: 92 */ 0x659d,
- /* 2nd byte: 93 */ 0x65a0,
- /* 2nd byte: 94 */ 0x65a3,
- /* 2nd byte: 95 */ 0x65a6,
- /* 2nd byte: 96 */ 0x65ae,
- /* 2nd byte: 97 */ 0x65b2,
- /* 2nd byte: 98 */ 0x65b3,
- /* 2nd byte: 99 */ 0x65b4,
- /* 2nd byte: 100 */ 0x65bf,
- /* 2nd byte: 101 */ 0x65c2,
- /* 2nd byte: 102 */ 0x65c8,
- /* 2nd byte: 103 */ 0x65c9,
- /* 2nd byte: 104 */ 0x65ce,
- /* 2nd byte: 105 */ 0x65d0,
- /* 2nd byte: 106 */ 0x65d4,
- /* 2nd byte: 107 */ 0x65d6,
- /* 2nd byte: 108 */ 0x65d8,
- /* 2nd byte: 109 */ 0x65df,
- /* 2nd byte: 110 */ 0x65f0,
- /* 2nd byte: 111 */ 0x65f2,
- /* 2nd byte: 112 */ 0x65f4,
- /* 2nd byte: 113 */ 0x65f5,
- /* 2nd byte: 114 */ 0x65f9,
- /* 2nd byte: 115 */ 0x65fe,
- /* 2nd byte: 116 */ 0x65ff,
- /* 2nd byte: 117 */ 0x6600,
- /* 2nd byte: 118 */ 0x6604,
- /* 2nd byte: 119 */ 0x6608,
- /* 2nd byte: 120 */ 0x6609,
- /* 2nd byte: 121 */ 0x660d,
- /* 2nd byte: 122 */ 0x6611,
- /* 2nd byte: 123 */ 0x6612,
- /* 2nd byte: 124 */ 0x6615,
- /* 2nd byte: 125 */ 0x6616,
- /* 2nd byte: 126 */ 0x661d},
-/* 1st byte: 66 */ {
- /* 2nd byte: 33 */ 0x661e,
- /* 2nd byte: 34 */ 0x6621,
- /* 2nd byte: 35 */ 0x6622,
- /* 2nd byte: 36 */ 0x6623,
- /* 2nd byte: 37 */ 0x6624,
- /* 2nd byte: 38 */ 0x6626,
- /* 2nd byte: 39 */ 0x6629,
- /* 2nd byte: 40 */ 0x662a,
- /* 2nd byte: 41 */ 0x662b,
- /* 2nd byte: 42 */ 0x662c,
- /* 2nd byte: 43 */ 0x662e,
- /* 2nd byte: 44 */ 0x6630,
- /* 2nd byte: 45 */ 0x6631,
- /* 2nd byte: 46 */ 0x6633,
- /* 2nd byte: 47 */ 0x6639,
- /* 2nd byte: 48 */ 0x6637,
- /* 2nd byte: 49 */ 0x6640,
- /* 2nd byte: 50 */ 0x6645,
- /* 2nd byte: 51 */ 0x6646,
- /* 2nd byte: 52 */ 0x664a,
- /* 2nd byte: 53 */ 0x664c,
- /* 2nd byte: 54 */ 0x6651,
- /* 2nd byte: 55 */ 0x664e,
- /* 2nd byte: 56 */ 0x6657,
- /* 2nd byte: 57 */ 0x6658,
- /* 2nd byte: 58 */ 0x6659,
- /* 2nd byte: 59 */ 0x665b,
- /* 2nd byte: 60 */ 0x665c,
- /* 2nd byte: 61 */ 0x6660,
- /* 2nd byte: 62 */ 0x6661,
- /* 2nd byte: 63 */ 0x66fb,
- /* 2nd byte: 64 */ 0x666a,
- /* 2nd byte: 65 */ 0x666b,
- /* 2nd byte: 66 */ 0x666c,
- /* 2nd byte: 67 */ 0x667e,
- /* 2nd byte: 68 */ 0x6673,
- /* 2nd byte: 69 */ 0x6675,
- /* 2nd byte: 70 */ 0x667f,
- /* 2nd byte: 71 */ 0x6677,
- /* 2nd byte: 72 */ 0x6678,
- /* 2nd byte: 73 */ 0x6679,
- /* 2nd byte: 74 */ 0x667b,
- /* 2nd byte: 75 */ 0x6680,
- /* 2nd byte: 76 */ 0x667c,
- /* 2nd byte: 77 */ 0x668b,
- /* 2nd byte: 78 */ 0x668c,
- /* 2nd byte: 79 */ 0x668d,
- /* 2nd byte: 80 */ 0x6690,
- /* 2nd byte: 81 */ 0x6692,
- /* 2nd byte: 82 */ 0x6699,
- /* 2nd byte: 83 */ 0x669a,
- /* 2nd byte: 84 */ 0x669b,
- /* 2nd byte: 85 */ 0x669c,
- /* 2nd byte: 86 */ 0x669f,
- /* 2nd byte: 87 */ 0x66a0,
- /* 2nd byte: 88 */ 0x66a4,
- /* 2nd byte: 89 */ 0x66ad,
- /* 2nd byte: 90 */ 0x66b1,
- /* 2nd byte: 91 */ 0x66b2,
- /* 2nd byte: 92 */ 0x66b5,
- /* 2nd byte: 93 */ 0x66bb,
- /* 2nd byte: 94 */ 0x66bf,
- /* 2nd byte: 95 */ 0x66c0,
- /* 2nd byte: 96 */ 0x66c2,
- /* 2nd byte: 97 */ 0x66c3,
- /* 2nd byte: 98 */ 0x66c8,
- /* 2nd byte: 99 */ 0x66cc,
- /* 2nd byte: 100 */ 0x66ce,
- /* 2nd byte: 101 */ 0x66cf,
- /* 2nd byte: 102 */ 0x66d4,
- /* 2nd byte: 103 */ 0x66db,
- /* 2nd byte: 104 */ 0x66df,
- /* 2nd byte: 105 */ 0x66e8,
- /* 2nd byte: 106 */ 0x66eb,
- /* 2nd byte: 107 */ 0x66ec,
- /* 2nd byte: 108 */ 0x66ee,
- /* 2nd byte: 109 */ 0x66fa,
- /* 2nd byte: 110 */ 0x6705,
- /* 2nd byte: 111 */ 0x6707,
- /* 2nd byte: 112 */ 0x670e,
- /* 2nd byte: 113 */ 0x6713,
- /* 2nd byte: 114 */ 0x6719,
- /* 2nd byte: 115 */ 0x671c,
- /* 2nd byte: 116 */ 0x6720,
- /* 2nd byte: 117 */ 0x6722,
- /* 2nd byte: 118 */ 0x6733,
- /* 2nd byte: 119 */ 0x673e,
- /* 2nd byte: 120 */ 0x6745,
- /* 2nd byte: 121 */ 0x6747,
- /* 2nd byte: 122 */ 0x6748,
- /* 2nd byte: 123 */ 0x674c,
- /* 2nd byte: 124 */ 0x6754,
- /* 2nd byte: 125 */ 0x6755,
- /* 2nd byte: 126 */ 0x675d},
-/* 1st byte: 67 */ {
- /* 2nd byte: 33 */ 0x6766,
- /* 2nd byte: 34 */ 0x676c,
- /* 2nd byte: 35 */ 0x676e,
- /* 2nd byte: 36 */ 0x6774,
- /* 2nd byte: 37 */ 0x6776,
- /* 2nd byte: 38 */ 0x677b,
- /* 2nd byte: 39 */ 0x6781,
- /* 2nd byte: 40 */ 0x6784,
- /* 2nd byte: 41 */ 0x678e,
- /* 2nd byte: 42 */ 0x678f,
- /* 2nd byte: 43 */ 0x6791,
- /* 2nd byte: 44 */ 0x6793,
- /* 2nd byte: 45 */ 0x6796,
- /* 2nd byte: 46 */ 0x6798,
- /* 2nd byte: 47 */ 0x6799,
- /* 2nd byte: 48 */ 0x679b,
- /* 2nd byte: 49 */ 0x67b0,
- /* 2nd byte: 50 */ 0x67b1,
- /* 2nd byte: 51 */ 0x67b2,
- /* 2nd byte: 52 */ 0x67b5,
- /* 2nd byte: 53 */ 0x67bb,
- /* 2nd byte: 54 */ 0x67bc,
- /* 2nd byte: 55 */ 0x67bd,
- /* 2nd byte: 56 */ 0x67f9,
- /* 2nd byte: 57 */ 0x67c0,
- /* 2nd byte: 58 */ 0x67c2,
- /* 2nd byte: 59 */ 0x67c3,
- /* 2nd byte: 60 */ 0x67c5,
- /* 2nd byte: 61 */ 0x67c8,
- /* 2nd byte: 62 */ 0x67c9,
- /* 2nd byte: 63 */ 0x67d2,
- /* 2nd byte: 64 */ 0x67d7,
- /* 2nd byte: 65 */ 0x67d9,
- /* 2nd byte: 66 */ 0x67dc,
- /* 2nd byte: 67 */ 0x67e1,
- /* 2nd byte: 68 */ 0x67e6,
- /* 2nd byte: 69 */ 0x67f0,
- /* 2nd byte: 70 */ 0x67f2,
- /* 2nd byte: 71 */ 0x67f6,
- /* 2nd byte: 72 */ 0x67f7,
- /* 2nd byte: 73 */ 0x6852,
- /* 2nd byte: 74 */ 0x6814,
- /* 2nd byte: 75 */ 0x6819,
- /* 2nd byte: 76 */ 0x681d,
- /* 2nd byte: 77 */ 0x681f,
- /* 2nd byte: 78 */ 0x6828,
- /* 2nd byte: 79 */ 0x6827,
- /* 2nd byte: 80 */ 0x682c,
- /* 2nd byte: 81 */ 0x682d,
- /* 2nd byte: 82 */ 0x682f,
- /* 2nd byte: 83 */ 0x6830,
- /* 2nd byte: 84 */ 0x6831,
- /* 2nd byte: 85 */ 0x6833,
- /* 2nd byte: 86 */ 0x683b,
- /* 2nd byte: 87 */ 0x683f,
- /* 2nd byte: 88 */ 0x6844,
- /* 2nd byte: 89 */ 0x6845,
- /* 2nd byte: 90 */ 0x684a,
- /* 2nd byte: 91 */ 0x684c,
- /* 2nd byte: 92 */ 0x6855,
- /* 2nd byte: 93 */ 0x6857,
- /* 2nd byte: 94 */ 0x6858,
- /* 2nd byte: 95 */ 0x685b,
- /* 2nd byte: 96 */ 0x686b,
- /* 2nd byte: 97 */ 0x686e,
- /* 2nd byte: 98 */ 0x686f,
- /* 2nd byte: 99 */ 0x6870,
- /* 2nd byte: 100 */ 0x6871,
- /* 2nd byte: 101 */ 0x6872,
- /* 2nd byte: 102 */ 0x6875,
- /* 2nd byte: 103 */ 0x6879,
- /* 2nd byte: 104 */ 0x687a,
- /* 2nd byte: 105 */ 0x687b,
- /* 2nd byte: 106 */ 0x687c,
- /* 2nd byte: 107 */ 0x6882,
- /* 2nd byte: 108 */ 0x6884,
- /* 2nd byte: 109 */ 0x6886,
- /* 2nd byte: 110 */ 0x6888,
- /* 2nd byte: 111 */ 0x6896,
- /* 2nd byte: 112 */ 0x6898,
- /* 2nd byte: 113 */ 0x689a,
- /* 2nd byte: 114 */ 0x689c,
- /* 2nd byte: 115 */ 0x68a1,
- /* 2nd byte: 116 */ 0x68a3,
- /* 2nd byte: 117 */ 0x68a5,
- /* 2nd byte: 118 */ 0x68a9,
- /* 2nd byte: 119 */ 0x68aa,
- /* 2nd byte: 120 */ 0x68ae,
- /* 2nd byte: 121 */ 0x68b2,
- /* 2nd byte: 122 */ 0x68bb,
- /* 2nd byte: 123 */ 0x68c5,
- /* 2nd byte: 124 */ 0x68c8,
- /* 2nd byte: 125 */ 0x68cc,
- /* 2nd byte: 126 */ 0x68cf},
-/* 1st byte: 68 */ {
- /* 2nd byte: 33 */ 0x68d0,
- /* 2nd byte: 34 */ 0x68d1,
- /* 2nd byte: 35 */ 0x68d3,
- /* 2nd byte: 36 */ 0x68d6,
- /* 2nd byte: 37 */ 0x68d9,
- /* 2nd byte: 38 */ 0x68dc,
- /* 2nd byte: 39 */ 0x68dd,
- /* 2nd byte: 40 */ 0x68e5,
- /* 2nd byte: 41 */ 0x68e8,
- /* 2nd byte: 42 */ 0x68ea,
- /* 2nd byte: 43 */ 0x68eb,
- /* 2nd byte: 44 */ 0x68ec,
- /* 2nd byte: 45 */ 0x68ed,
- /* 2nd byte: 46 */ 0x68f0,
- /* 2nd byte: 47 */ 0x68f1,
- /* 2nd byte: 48 */ 0x68f5,
- /* 2nd byte: 49 */ 0x68f6,
- /* 2nd byte: 50 */ 0x68fb,
- /* 2nd byte: 51 */ 0x68fc,
- /* 2nd byte: 52 */ 0x68fd,
- /* 2nd byte: 53 */ 0x6906,
- /* 2nd byte: 54 */ 0x6909,
- /* 2nd byte: 55 */ 0x690a,
- /* 2nd byte: 56 */ 0x6910,
- /* 2nd byte: 57 */ 0x6911,
- /* 2nd byte: 58 */ 0x6913,
- /* 2nd byte: 59 */ 0x6916,
- /* 2nd byte: 60 */ 0x6917,
- /* 2nd byte: 61 */ 0x6931,
- /* 2nd byte: 62 */ 0x6933,
- /* 2nd byte: 63 */ 0x6935,
- /* 2nd byte: 64 */ 0x6938,
- /* 2nd byte: 65 */ 0x693b,
- /* 2nd byte: 66 */ 0x6942,
- /* 2nd byte: 67 */ 0x6945,
- /* 2nd byte: 68 */ 0x6949,
- /* 2nd byte: 69 */ 0x694e,
- /* 2nd byte: 70 */ 0x6957,
- /* 2nd byte: 71 */ 0x695b,
- /* 2nd byte: 72 */ 0x6963,
- /* 2nd byte: 73 */ 0x6964,
- /* 2nd byte: 74 */ 0x6965,
- /* 2nd byte: 75 */ 0x6966,
- /* 2nd byte: 76 */ 0x6968,
- /* 2nd byte: 77 */ 0x6969,
- /* 2nd byte: 78 */ 0x696c,
- /* 2nd byte: 79 */ 0x6970,
- /* 2nd byte: 80 */ 0x6971,
- /* 2nd byte: 81 */ 0x6972,
- /* 2nd byte: 82 */ 0x697a,
- /* 2nd byte: 83 */ 0x697b,
- /* 2nd byte: 84 */ 0x697f,
- /* 2nd byte: 85 */ 0x6980,
- /* 2nd byte: 86 */ 0x698d,
- /* 2nd byte: 87 */ 0x6992,
- /* 2nd byte: 88 */ 0x6996,
- /* 2nd byte: 89 */ 0x6998,
- /* 2nd byte: 90 */ 0x69a1,
- /* 2nd byte: 91 */ 0x69a5,
- /* 2nd byte: 92 */ 0x69a6,
- /* 2nd byte: 93 */ 0x69a8,
- /* 2nd byte: 94 */ 0x69ab,
- /* 2nd byte: 95 */ 0x69ad,
- /* 2nd byte: 96 */ 0x69af,
- /* 2nd byte: 97 */ 0x69b7,
- /* 2nd byte: 98 */ 0x69b8,
- /* 2nd byte: 99 */ 0x69ba,
- /* 2nd byte: 100 */ 0x69bc,
- /* 2nd byte: 101 */ 0x69c5,
- /* 2nd byte: 102 */ 0x69c8,
- /* 2nd byte: 103 */ 0x69d1,
- /* 2nd byte: 104 */ 0x69d6,
- /* 2nd byte: 105 */ 0x69d7,
- /* 2nd byte: 106 */ 0x69e2,
- /* 2nd byte: 107 */ 0x69e5,
- /* 2nd byte: 108 */ 0x69ee,
- /* 2nd byte: 109 */ 0x69ef,
- /* 2nd byte: 110 */ 0x69f1,
- /* 2nd byte: 111 */ 0x69f3,
- /* 2nd byte: 112 */ 0x69f5,
- /* 2nd byte: 113 */ 0x69fe,
- /* 2nd byte: 114 */ 0x6a00,
- /* 2nd byte: 115 */ 0x6a01,
- /* 2nd byte: 116 */ 0x6a03,
- /* 2nd byte: 117 */ 0x6a0f,
- /* 2nd byte: 118 */ 0x6a11,
- /* 2nd byte: 119 */ 0x6a15,
- /* 2nd byte: 120 */ 0x6a1a,
- /* 2nd byte: 121 */ 0x6a1d,
- /* 2nd byte: 122 */ 0x6a20,
- /* 2nd byte: 123 */ 0x6a24,
- /* 2nd byte: 124 */ 0x6a28,
- /* 2nd byte: 125 */ 0x6a30,
- /* 2nd byte: 126 */ 0x6a32},
-/* 1st byte: 69 */ {
- /* 2nd byte: 33 */ 0x6a34,
- /* 2nd byte: 34 */ 0x6a37,
- /* 2nd byte: 35 */ 0x6a3b,
- /* 2nd byte: 36 */ 0x6a3e,
- /* 2nd byte: 37 */ 0x6a3f,
- /* 2nd byte: 38 */ 0x6a45,
- /* 2nd byte: 39 */ 0x6a46,
- /* 2nd byte: 40 */ 0x6a49,
- /* 2nd byte: 41 */ 0x6a4a,
- /* 2nd byte: 42 */ 0x6a4e,
- /* 2nd byte: 43 */ 0x6a50,
- /* 2nd byte: 44 */ 0x6a51,
- /* 2nd byte: 45 */ 0x6a52,
- /* 2nd byte: 46 */ 0x6a55,
- /* 2nd byte: 47 */ 0x6a56,
- /* 2nd byte: 48 */ 0x6a5b,
- /* 2nd byte: 49 */ 0x6a64,
- /* 2nd byte: 50 */ 0x6a67,
- /* 2nd byte: 51 */ 0x6a6a,
- /* 2nd byte: 52 */ 0x6a71,
- /* 2nd byte: 53 */ 0x6a73,
- /* 2nd byte: 54 */ 0x6a7e,
- /* 2nd byte: 55 */ 0x6a81,
- /* 2nd byte: 56 */ 0x6a83,
- /* 2nd byte: 57 */ 0x6a86,
- /* 2nd byte: 58 */ 0x6a87,
- /* 2nd byte: 59 */ 0x6a89,
- /* 2nd byte: 60 */ 0x6a8b,
- /* 2nd byte: 61 */ 0x6a91,
- /* 2nd byte: 62 */ 0x6a9b,
- /* 2nd byte: 63 */ 0x6a9d,
- /* 2nd byte: 64 */ 0x6a9e,
- /* 2nd byte: 65 */ 0x6a9f,
- /* 2nd byte: 66 */ 0x6aa5,
- /* 2nd byte: 67 */ 0x6aab,
- /* 2nd byte: 68 */ 0x6aaf,
- /* 2nd byte: 69 */ 0x6ab0,
- /* 2nd byte: 70 */ 0x6ab1,
- /* 2nd byte: 71 */ 0x6ab4,
- /* 2nd byte: 72 */ 0x6abd,
- /* 2nd byte: 73 */ 0x6abe,
- /* 2nd byte: 74 */ 0x6abf,
- /* 2nd byte: 75 */ 0x6ac6,
- /* 2nd byte: 76 */ 0x6ac9,
- /* 2nd byte: 77 */ 0x6ac8,
- /* 2nd byte: 78 */ 0x6acc,
- /* 2nd byte: 79 */ 0x6ad0,
- /* 2nd byte: 80 */ 0x6ad4,
- /* 2nd byte: 81 */ 0x6ad5,
- /* 2nd byte: 82 */ 0x6ad6,
- /* 2nd byte: 83 */ 0x6adc,
- /* 2nd byte: 84 */ 0x6add,
- /* 2nd byte: 85 */ 0x6ae4,
- /* 2nd byte: 86 */ 0x6ae7,
- /* 2nd byte: 87 */ 0x6aec,
- /* 2nd byte: 88 */ 0x6af0,
- /* 2nd byte: 89 */ 0x6af1,
- /* 2nd byte: 90 */ 0x6af2,
- /* 2nd byte: 91 */ 0x6afc,
- /* 2nd byte: 92 */ 0x6afd,
- /* 2nd byte: 93 */ 0x6b02,
- /* 2nd byte: 94 */ 0x6b03,
- /* 2nd byte: 95 */ 0x6b06,
- /* 2nd byte: 96 */ 0x6b07,
- /* 2nd byte: 97 */ 0x6b09,
- /* 2nd byte: 98 */ 0x6b0f,
- /* 2nd byte: 99 */ 0x6b10,
- /* 2nd byte: 100 */ 0x6b11,
- /* 2nd byte: 101 */ 0x6b17,
- /* 2nd byte: 102 */ 0x6b1b,
- /* 2nd byte: 103 */ 0x6b1e,
- /* 2nd byte: 104 */ 0x6b24,
- /* 2nd byte: 105 */ 0x6b28,
- /* 2nd byte: 106 */ 0x6b2b,
- /* 2nd byte: 107 */ 0x6b2c,
- /* 2nd byte: 108 */ 0x6b2f,
- /* 2nd byte: 109 */ 0x6b35,
- /* 2nd byte: 110 */ 0x6b36,
- /* 2nd byte: 111 */ 0x6b3b,
- /* 2nd byte: 112 */ 0x6b3f,
- /* 2nd byte: 113 */ 0x6b46,
- /* 2nd byte: 114 */ 0x6b4a,
- /* 2nd byte: 115 */ 0x6b4d,
- /* 2nd byte: 116 */ 0x6b52,
- /* 2nd byte: 117 */ 0x6b56,
- /* 2nd byte: 118 */ 0x6b58,
- /* 2nd byte: 119 */ 0x6b5d,
- /* 2nd byte: 120 */ 0x6b60,
- /* 2nd byte: 121 */ 0x6b67,
- /* 2nd byte: 122 */ 0x6b6b,
- /* 2nd byte: 123 */ 0x6b6e,
- /* 2nd byte: 124 */ 0x6b70,
- /* 2nd byte: 125 */ 0x6b75,
- /* 2nd byte: 126 */ 0x6b7d},
-/* 1st byte: 70 */ {
- /* 2nd byte: 33 */ 0x6b7e,
- /* 2nd byte: 34 */ 0x6b82,
- /* 2nd byte: 35 */ 0x6b85,
- /* 2nd byte: 36 */ 0x6b97,
- /* 2nd byte: 37 */ 0x6b9b,
- /* 2nd byte: 38 */ 0x6b9f,
- /* 2nd byte: 39 */ 0x6ba0,
- /* 2nd byte: 40 */ 0x6ba2,
- /* 2nd byte: 41 */ 0x6ba3,
- /* 2nd byte: 42 */ 0x6ba8,
- /* 2nd byte: 43 */ 0x6ba9,
- /* 2nd byte: 44 */ 0x6bac,
- /* 2nd byte: 45 */ 0x6bad,
- /* 2nd byte: 46 */ 0x6bae,
- /* 2nd byte: 47 */ 0x6bb0,
- /* 2nd byte: 48 */ 0x6bb8,
- /* 2nd byte: 49 */ 0x6bb9,
- /* 2nd byte: 50 */ 0x6bbd,
- /* 2nd byte: 51 */ 0x6bbe,
- /* 2nd byte: 52 */ 0x6bc3,
- /* 2nd byte: 53 */ 0x6bc4,
- /* 2nd byte: 54 */ 0x6bc9,
- /* 2nd byte: 55 */ 0x6bcc,
- /* 2nd byte: 56 */ 0x6bd6,
- /* 2nd byte: 57 */ 0x6bda,
- /* 2nd byte: 58 */ 0x6be1,
- /* 2nd byte: 59 */ 0x6be3,
- /* 2nd byte: 60 */ 0x6be6,
- /* 2nd byte: 61 */ 0x6be7,
- /* 2nd byte: 62 */ 0x6bee,
- /* 2nd byte: 63 */ 0x6bf1,
- /* 2nd byte: 64 */ 0x6bf7,
- /* 2nd byte: 65 */ 0x6bf9,
- /* 2nd byte: 66 */ 0x6bff,
- /* 2nd byte: 67 */ 0x6c02,
- /* 2nd byte: 68 */ 0x6c04,
- /* 2nd byte: 69 */ 0x6c05,
- /* 2nd byte: 70 */ 0x6c09,
- /* 2nd byte: 71 */ 0x6c0d,
- /* 2nd byte: 72 */ 0x6c0e,
- /* 2nd byte: 73 */ 0x6c10,
- /* 2nd byte: 74 */ 0x6c12,
- /* 2nd byte: 75 */ 0x6c19,
- /* 2nd byte: 76 */ 0x6c1f,
- /* 2nd byte: 77 */ 0x6c26,
- /* 2nd byte: 78 */ 0x6c27,
- /* 2nd byte: 79 */ 0x6c28,
- /* 2nd byte: 80 */ 0x6c2c,
- /* 2nd byte: 81 */ 0x6c2e,
- /* 2nd byte: 82 */ 0x6c33,
- /* 2nd byte: 83 */ 0x6c35,
- /* 2nd byte: 84 */ 0x6c36,
- /* 2nd byte: 85 */ 0x6c3a,
- /* 2nd byte: 86 */ 0x6c3b,
- /* 2nd byte: 87 */ 0x6c3f,
- /* 2nd byte: 88 */ 0x6c4a,
- /* 2nd byte: 89 */ 0x6c4b,
- /* 2nd byte: 90 */ 0x6c4d,
- /* 2nd byte: 91 */ 0x6c4f,
- /* 2nd byte: 92 */ 0x6c52,
- /* 2nd byte: 93 */ 0x6c54,
- /* 2nd byte: 94 */ 0x6c59,
- /* 2nd byte: 95 */ 0x6c5b,
- /* 2nd byte: 96 */ 0x6c5c,
- /* 2nd byte: 97 */ 0x6c6b,
- /* 2nd byte: 98 */ 0x6c6d,
- /* 2nd byte: 99 */ 0x6c6f,
- /* 2nd byte: 100 */ 0x6c74,
- /* 2nd byte: 101 */ 0x6c76,
- /* 2nd byte: 102 */ 0x6c78,
- /* 2nd byte: 103 */ 0x6c79,
- /* 2nd byte: 104 */ 0x6c7b,
- /* 2nd byte: 105 */ 0x6c85,
- /* 2nd byte: 106 */ 0x6c86,
- /* 2nd byte: 107 */ 0x6c87,
- /* 2nd byte: 108 */ 0x6c89,
- /* 2nd byte: 109 */ 0x6c94,
- /* 2nd byte: 110 */ 0x6c95,
- /* 2nd byte: 111 */ 0x6c97,
- /* 2nd byte: 112 */ 0x6c98,
- /* 2nd byte: 113 */ 0x6c9c,
- /* 2nd byte: 114 */ 0x6c9f,
- /* 2nd byte: 115 */ 0x6cb0,
- /* 2nd byte: 116 */ 0x6cb2,
- /* 2nd byte: 117 */ 0x6cb4,
- /* 2nd byte: 118 */ 0x6cc2,
- /* 2nd byte: 119 */ 0x6cc6,
- /* 2nd byte: 120 */ 0x6ccd,
- /* 2nd byte: 121 */ 0x6ccf,
- /* 2nd byte: 122 */ 0x6cd0,
- /* 2nd byte: 123 */ 0x6cd1,
- /* 2nd byte: 124 */ 0x6cd2,
- /* 2nd byte: 125 */ 0x6cd4,
- /* 2nd byte: 126 */ 0x6cd6},
-/* 1st byte: 71 */ {
- /* 2nd byte: 33 */ 0x6cda,
- /* 2nd byte: 34 */ 0x6cdc,
- /* 2nd byte: 35 */ 0x6ce0,
- /* 2nd byte: 36 */ 0x6ce7,
- /* 2nd byte: 37 */ 0x6ce9,
- /* 2nd byte: 38 */ 0x6ceb,
- /* 2nd byte: 39 */ 0x6cec,
- /* 2nd byte: 40 */ 0x6cee,
- /* 2nd byte: 41 */ 0x6cf2,
- /* 2nd byte: 42 */ 0x6cf4,
- /* 2nd byte: 43 */ 0x6d04,
- /* 2nd byte: 44 */ 0x6d07,
- /* 2nd byte: 45 */ 0x6d0a,
- /* 2nd byte: 46 */ 0x6d0e,
- /* 2nd byte: 47 */ 0x6d0f,
- /* 2nd byte: 48 */ 0x6d11,
- /* 2nd byte: 49 */ 0x6d13,
- /* 2nd byte: 50 */ 0x6d1a,
- /* 2nd byte: 51 */ 0x6d26,
- /* 2nd byte: 52 */ 0x6d27,
- /* 2nd byte: 53 */ 0x6d28,
- /* 2nd byte: 54 */ 0x6c67,
- /* 2nd byte: 55 */ 0x6d2e,
- /* 2nd byte: 56 */ 0x6d2f,
- /* 2nd byte: 57 */ 0x6d31,
- /* 2nd byte: 58 */ 0x6d39,
- /* 2nd byte: 59 */ 0x6d3c,
- /* 2nd byte: 60 */ 0x6d3f,
- /* 2nd byte: 61 */ 0x6d57,
- /* 2nd byte: 62 */ 0x6d5e,
- /* 2nd byte: 63 */ 0x6d5f,
- /* 2nd byte: 64 */ 0x6d61,
- /* 2nd byte: 65 */ 0x6d65,
- /* 2nd byte: 66 */ 0x6d67,
- /* 2nd byte: 67 */ 0x6d6f,
- /* 2nd byte: 68 */ 0x6d70,
- /* 2nd byte: 69 */ 0x6d7c,
- /* 2nd byte: 70 */ 0x6d82,
- /* 2nd byte: 71 */ 0x6d87,
- /* 2nd byte: 72 */ 0x6d91,
- /* 2nd byte: 73 */ 0x6d92,
- /* 2nd byte: 74 */ 0x6d94,
- /* 2nd byte: 75 */ 0x6d96,
- /* 2nd byte: 76 */ 0x6d97,
- /* 2nd byte: 77 */ 0x6d98,
- /* 2nd byte: 78 */ 0x6daa,
- /* 2nd byte: 79 */ 0x6dac,
- /* 2nd byte: 80 */ 0x6db4,
- /* 2nd byte: 81 */ 0x6db7,
- /* 2nd byte: 82 */ 0x6db9,
- /* 2nd byte: 83 */ 0x6dbd,
- /* 2nd byte: 84 */ 0x6dbf,
- /* 2nd byte: 85 */ 0x6dc4,
- /* 2nd byte: 86 */ 0x6dc8,
- /* 2nd byte: 87 */ 0x6dca,
- /* 2nd byte: 88 */ 0x6dce,
- /* 2nd byte: 89 */ 0x6dcf,
- /* 2nd byte: 90 */ 0x6dd6,
- /* 2nd byte: 91 */ 0x6ddb,
- /* 2nd byte: 92 */ 0x6ddd,
- /* 2nd byte: 93 */ 0x6ddf,
- /* 2nd byte: 94 */ 0x6de0,
- /* 2nd byte: 95 */ 0x6de2,
- /* 2nd byte: 96 */ 0x6de5,
- /* 2nd byte: 97 */ 0x6de9,
- /* 2nd byte: 98 */ 0x6def,
- /* 2nd byte: 99 */ 0x6df0,
- /* 2nd byte: 100 */ 0x6df4,
- /* 2nd byte: 101 */ 0x6df6,
- /* 2nd byte: 102 */ 0x6dfc,
- /* 2nd byte: 103 */ 0x6e00,
- /* 2nd byte: 104 */ 0x6e04,
- /* 2nd byte: 105 */ 0x6e1e,
- /* 2nd byte: 106 */ 0x6e22,
- /* 2nd byte: 107 */ 0x6e27,
- /* 2nd byte: 108 */ 0x6e32,
- /* 2nd byte: 109 */ 0x6e36,
- /* 2nd byte: 110 */ 0x6e39,
- /* 2nd byte: 111 */ 0x6e3b,
- /* 2nd byte: 112 */ 0x6e3c,
- /* 2nd byte: 113 */ 0x6e44,
- /* 2nd byte: 114 */ 0x6e45,
- /* 2nd byte: 115 */ 0x6e48,
- /* 2nd byte: 116 */ 0x6e49,
- /* 2nd byte: 117 */ 0x6e4b,
- /* 2nd byte: 118 */ 0x6e4f,
- /* 2nd byte: 119 */ 0x6e51,
- /* 2nd byte: 120 */ 0x6e52,
- /* 2nd byte: 121 */ 0x6e53,
- /* 2nd byte: 122 */ 0x6e54,
- /* 2nd byte: 123 */ 0x6e57,
- /* 2nd byte: 124 */ 0x6e5c,
- /* 2nd byte: 125 */ 0x6e5d,
- /* 2nd byte: 126 */ 0x6e5e},
-/* 1st byte: 72 */ {
- /* 2nd byte: 33 */ 0x6e62,
- /* 2nd byte: 34 */ 0x6e63,
- /* 2nd byte: 35 */ 0x6e68,
- /* 2nd byte: 36 */ 0x6e73,
- /* 2nd byte: 37 */ 0x6e7b,
- /* 2nd byte: 38 */ 0x6e7d,
- /* 2nd byte: 39 */ 0x6e8d,
- /* 2nd byte: 40 */ 0x6e93,
- /* 2nd byte: 41 */ 0x6e99,
- /* 2nd byte: 42 */ 0x6ea0,
- /* 2nd byte: 43 */ 0x6ea7,
- /* 2nd byte: 44 */ 0x6ead,
- /* 2nd byte: 45 */ 0x6eae,
- /* 2nd byte: 46 */ 0x6eb1,
- /* 2nd byte: 47 */ 0x6eb3,
- /* 2nd byte: 48 */ 0x6ebb,
- /* 2nd byte: 49 */ 0x6ebf,
- /* 2nd byte: 50 */ 0x6ec0,
- /* 2nd byte: 51 */ 0x6ec1,
- /* 2nd byte: 52 */ 0x6ec3,
- /* 2nd byte: 53 */ 0x6ec7,
- /* 2nd byte: 54 */ 0x6ec8,
- /* 2nd byte: 55 */ 0x6eca,
- /* 2nd byte: 56 */ 0x6ecd,
- /* 2nd byte: 57 */ 0x6ece,
- /* 2nd byte: 58 */ 0x6ecf,
- /* 2nd byte: 59 */ 0x6eeb,
- /* 2nd byte: 60 */ 0x6eed,
- /* 2nd byte: 61 */ 0x6eee,
- /* 2nd byte: 62 */ 0x6ef9,
- /* 2nd byte: 63 */ 0x6efb,
- /* 2nd byte: 64 */ 0x6efd,
- /* 2nd byte: 65 */ 0x6f04,
- /* 2nd byte: 66 */ 0x6f08,
- /* 2nd byte: 67 */ 0x6f0a,
- /* 2nd byte: 68 */ 0x6f0c,
- /* 2nd byte: 69 */ 0x6f0d,
- /* 2nd byte: 70 */ 0x6f16,
- /* 2nd byte: 71 */ 0x6f18,
- /* 2nd byte: 72 */ 0x6f1a,
- /* 2nd byte: 73 */ 0x6f1b,
- /* 2nd byte: 74 */ 0x6f26,
- /* 2nd byte: 75 */ 0x6f29,
- /* 2nd byte: 76 */ 0x6f2a,
- /* 2nd byte: 77 */ 0x6f2f,
- /* 2nd byte: 78 */ 0x6f30,
- /* 2nd byte: 79 */ 0x6f33,
- /* 2nd byte: 80 */ 0x6f36,
- /* 2nd byte: 81 */ 0x6f3b,
- /* 2nd byte: 82 */ 0x6f3c,
- /* 2nd byte: 83 */ 0x6f2d,
- /* 2nd byte: 84 */ 0x6f4f,
- /* 2nd byte: 85 */ 0x6f51,
- /* 2nd byte: 86 */ 0x6f52,
- /* 2nd byte: 87 */ 0x6f53,
- /* 2nd byte: 88 */ 0x6f57,
- /* 2nd byte: 89 */ 0x6f59,
- /* 2nd byte: 90 */ 0x6f5a,
- /* 2nd byte: 91 */ 0x6f5d,
- /* 2nd byte: 92 */ 0x6f5e,
- /* 2nd byte: 93 */ 0x6f61,
- /* 2nd byte: 94 */ 0x6f62,
- /* 2nd byte: 95 */ 0x6f68,
- /* 2nd byte: 96 */ 0x6f6c,
- /* 2nd byte: 97 */ 0x6f7d,
- /* 2nd byte: 98 */ 0x6f7e,
- /* 2nd byte: 99 */ 0x6f83,
- /* 2nd byte: 100 */ 0x6f87,
- /* 2nd byte: 101 */ 0x6f88,
- /* 2nd byte: 102 */ 0x6f8b,
- /* 2nd byte: 103 */ 0x6f8c,
- /* 2nd byte: 104 */ 0x6f8d,
- /* 2nd byte: 105 */ 0x6f90,
- /* 2nd byte: 106 */ 0x6f92,
- /* 2nd byte: 107 */ 0x6f93,
- /* 2nd byte: 108 */ 0x6f94,
- /* 2nd byte: 109 */ 0x6f96,
- /* 2nd byte: 110 */ 0x6f9a,
- /* 2nd byte: 111 */ 0x6f9f,
- /* 2nd byte: 112 */ 0x6fa0,
- /* 2nd byte: 113 */ 0x6fa5,
- /* 2nd byte: 114 */ 0x6fa6,
- /* 2nd byte: 115 */ 0x6fa7,
- /* 2nd byte: 116 */ 0x6fa8,
- /* 2nd byte: 117 */ 0x6fae,
- /* 2nd byte: 118 */ 0x6faf,
- /* 2nd byte: 119 */ 0x6fb0,
- /* 2nd byte: 120 */ 0x6fb5,
- /* 2nd byte: 121 */ 0x6fb6,
- /* 2nd byte: 122 */ 0x6fbc,
- /* 2nd byte: 123 */ 0x6fc5,
- /* 2nd byte: 124 */ 0x6fc7,
- /* 2nd byte: 125 */ 0x6fc8,
- /* 2nd byte: 126 */ 0x6fca},
-/* 1st byte: 73 */ {
- /* 2nd byte: 33 */ 0x6fda,
- /* 2nd byte: 34 */ 0x6fde,
- /* 2nd byte: 35 */ 0x6fe8,
- /* 2nd byte: 36 */ 0x6fe9,
- /* 2nd byte: 37 */ 0x6ff0,
- /* 2nd byte: 38 */ 0x6ff5,
- /* 2nd byte: 39 */ 0x6ff9,
- /* 2nd byte: 40 */ 0x6ffc,
- /* 2nd byte: 41 */ 0x6ffd,
- /* 2nd byte: 42 */ 0x7000,
- /* 2nd byte: 43 */ 0x7005,
- /* 2nd byte: 44 */ 0x7006,
- /* 2nd byte: 45 */ 0x7007,
- /* 2nd byte: 46 */ 0x700d,
- /* 2nd byte: 47 */ 0x7017,
- /* 2nd byte: 48 */ 0x7020,
- /* 2nd byte: 49 */ 0x7023,
- /* 2nd byte: 50 */ 0x702f,
- /* 2nd byte: 51 */ 0x7034,
- /* 2nd byte: 52 */ 0x7037,
- /* 2nd byte: 53 */ 0x7039,
- /* 2nd byte: 54 */ 0x703c,
- /* 2nd byte: 55 */ 0x7043,
- /* 2nd byte: 56 */ 0x7044,
- /* 2nd byte: 57 */ 0x7048,
- /* 2nd byte: 58 */ 0x7049,
- /* 2nd byte: 59 */ 0x704a,
- /* 2nd byte: 60 */ 0x704b,
- /* 2nd byte: 61 */ 0x7054,
- /* 2nd byte: 62 */ 0x7055,
- /* 2nd byte: 63 */ 0x705d,
- /* 2nd byte: 64 */ 0x705e,
- /* 2nd byte: 65 */ 0x704e,
- /* 2nd byte: 66 */ 0x7064,
- /* 2nd byte: 67 */ 0x7065,
- /* 2nd byte: 68 */ 0x706c,
- /* 2nd byte: 69 */ 0x706e,
- /* 2nd byte: 70 */ 0x7075,
- /* 2nd byte: 71 */ 0x7076,
- /* 2nd byte: 72 */ 0x707e,
- /* 2nd byte: 73 */ 0x7081,
- /* 2nd byte: 74 */ 0x7085,
- /* 2nd byte: 75 */ 0x7086,
- /* 2nd byte: 76 */ 0x7094,
- /* 2nd byte: 77 */ 0x7095,
- /* 2nd byte: 78 */ 0x7096,
- /* 2nd byte: 79 */ 0x7097,
- /* 2nd byte: 80 */ 0x7098,
- /* 2nd byte: 81 */ 0x709b,
- /* 2nd byte: 82 */ 0x70a4,
- /* 2nd byte: 83 */ 0x70ab,
- /* 2nd byte: 84 */ 0x70b0,
- /* 2nd byte: 85 */ 0x70b1,
- /* 2nd byte: 86 */ 0x70b4,
- /* 2nd byte: 87 */ 0x70b7,
- /* 2nd byte: 88 */ 0x70ca,
- /* 2nd byte: 89 */ 0x70d1,
- /* 2nd byte: 90 */ 0x70d3,
- /* 2nd byte: 91 */ 0x70d4,
- /* 2nd byte: 92 */ 0x70d5,
- /* 2nd byte: 93 */ 0x70d6,
- /* 2nd byte: 94 */ 0x70d8,
- /* 2nd byte: 95 */ 0x70dc,
- /* 2nd byte: 96 */ 0x70e4,
- /* 2nd byte: 97 */ 0x70fa,
- /* 2nd byte: 98 */ 0x7103,
- /* 2nd byte: 99 */ 0x7104,
- /* 2nd byte: 100 */ 0x7105,
- /* 2nd byte: 101 */ 0x7106,
- /* 2nd byte: 102 */ 0x7107,
- /* 2nd byte: 103 */ 0x710b,
- /* 2nd byte: 104 */ 0x710c,
- /* 2nd byte: 105 */ 0x710f,
- /* 2nd byte: 106 */ 0x711e,
- /* 2nd byte: 107 */ 0x7120,
- /* 2nd byte: 108 */ 0x712b,
- /* 2nd byte: 109 */ 0x712d,
- /* 2nd byte: 110 */ 0x712f,
- /* 2nd byte: 111 */ 0x7130,
- /* 2nd byte: 112 */ 0x7131,
- /* 2nd byte: 113 */ 0x7138,
- /* 2nd byte: 114 */ 0x7141,
- /* 2nd byte: 115 */ 0x7145,
- /* 2nd byte: 116 */ 0x7146,
- /* 2nd byte: 117 */ 0x7147,
- /* 2nd byte: 118 */ 0x714a,
- /* 2nd byte: 119 */ 0x714b,
- /* 2nd byte: 120 */ 0x7150,
- /* 2nd byte: 121 */ 0x7152,
- /* 2nd byte: 122 */ 0x7157,
- /* 2nd byte: 123 */ 0x715a,
- /* 2nd byte: 124 */ 0x715c,
- /* 2nd byte: 125 */ 0x715e,
- /* 2nd byte: 126 */ 0x7160},
-/* 1st byte: 74 */ {
- /* 2nd byte: 33 */ 0x7168,
- /* 2nd byte: 34 */ 0x7179,
- /* 2nd byte: 35 */ 0x7180,
- /* 2nd byte: 36 */ 0x7185,
- /* 2nd byte: 37 */ 0x7187,
- /* 2nd byte: 38 */ 0x718c,
- /* 2nd byte: 39 */ 0x7192,
- /* 2nd byte: 40 */ 0x719a,
- /* 2nd byte: 41 */ 0x719b,
- /* 2nd byte: 42 */ 0x71a0,
- /* 2nd byte: 43 */ 0x71a2,
- /* 2nd byte: 44 */ 0x71af,
- /* 2nd byte: 45 */ 0x71b0,
- /* 2nd byte: 46 */ 0x71b2,
- /* 2nd byte: 47 */ 0x71b3,
- /* 2nd byte: 48 */ 0x71ba,
- /* 2nd byte: 49 */ 0x71bf,
- /* 2nd byte: 50 */ 0x71c0,
- /* 2nd byte: 51 */ 0x71c1,
- /* 2nd byte: 52 */ 0x71c4,
- /* 2nd byte: 53 */ 0x71cb,
- /* 2nd byte: 54 */ 0x71cc,
- /* 2nd byte: 55 */ 0x71d3,
- /* 2nd byte: 56 */ 0x71d6,
- /* 2nd byte: 57 */ 0x71d9,
- /* 2nd byte: 58 */ 0x71da,
- /* 2nd byte: 59 */ 0x71dc,
- /* 2nd byte: 60 */ 0x71f8,
- /* 2nd byte: 61 */ 0x71fe,
- /* 2nd byte: 62 */ 0x7200,
- /* 2nd byte: 63 */ 0x7207,
- /* 2nd byte: 64 */ 0x7208,
- /* 2nd byte: 65 */ 0x7209,
- /* 2nd byte: 66 */ 0x7213,
- /* 2nd byte: 67 */ 0x7217,
- /* 2nd byte: 68 */ 0x721a,
- /* 2nd byte: 69 */ 0x721d,
- /* 2nd byte: 70 */ 0x721f,
- /* 2nd byte: 71 */ 0x7224,
- /* 2nd byte: 72 */ 0x722b,
- /* 2nd byte: 73 */ 0x722f,
- /* 2nd byte: 74 */ 0x7234,
- /* 2nd byte: 75 */ 0x7238,
- /* 2nd byte: 76 */ 0x7239,
- /* 2nd byte: 77 */ 0x7241,
- /* 2nd byte: 78 */ 0x7242,
- /* 2nd byte: 79 */ 0x7243,
- /* 2nd byte: 80 */ 0x7245,
- /* 2nd byte: 81 */ 0x724e,
- /* 2nd byte: 82 */ 0x724f,
- /* 2nd byte: 83 */ 0x7250,
- /* 2nd byte: 84 */ 0x7253,
- /* 2nd byte: 85 */ 0x7255,
- /* 2nd byte: 86 */ 0x7256,
- /* 2nd byte: 87 */ 0x725a,
- /* 2nd byte: 88 */ 0x725c,
- /* 2nd byte: 89 */ 0x725e,
- /* 2nd byte: 90 */ 0x7260,
- /* 2nd byte: 91 */ 0x7263,
- /* 2nd byte: 92 */ 0x7268,
- /* 2nd byte: 93 */ 0x726b,
- /* 2nd byte: 94 */ 0x726e,
- /* 2nd byte: 95 */ 0x726f,
- /* 2nd byte: 96 */ 0x7271,
- /* 2nd byte: 97 */ 0x7277,
- /* 2nd byte: 98 */ 0x7278,
- /* 2nd byte: 99 */ 0x727b,
- /* 2nd byte: 100 */ 0x727c,
- /* 2nd byte: 101 */ 0x727f,
- /* 2nd byte: 102 */ 0x7284,
- /* 2nd byte: 103 */ 0x7289,
- /* 2nd byte: 104 */ 0x728d,
- /* 2nd byte: 105 */ 0x728e,
- /* 2nd byte: 106 */ 0x7293,
- /* 2nd byte: 107 */ 0x729b,
- /* 2nd byte: 108 */ 0x72a8,
- /* 2nd byte: 109 */ 0x72ad,
- /* 2nd byte: 110 */ 0x72ae,
- /* 2nd byte: 111 */ 0x72b1,
- /* 2nd byte: 112 */ 0x72b4,
- /* 2nd byte: 113 */ 0x72be,
- /* 2nd byte: 114 */ 0x72c1,
- /* 2nd byte: 115 */ 0x72c7,
- /* 2nd byte: 116 */ 0x72c9,
- /* 2nd byte: 117 */ 0x72cc,
- /* 2nd byte: 118 */ 0x72d5,
- /* 2nd byte: 119 */ 0x72d6,
- /* 2nd byte: 120 */ 0x72d8,
- /* 2nd byte: 121 */ 0x72df,
- /* 2nd byte: 122 */ 0x72e5,
- /* 2nd byte: 123 */ 0x72f3,
- /* 2nd byte: 124 */ 0x72f4,
- /* 2nd byte: 125 */ 0x72fa,
- /* 2nd byte: 126 */ 0x72fb},
-/* 1st byte: 75 */ {
- /* 2nd byte: 33 */ 0x72fe,
- /* 2nd byte: 34 */ 0x7302,
- /* 2nd byte: 35 */ 0x7304,
- /* 2nd byte: 36 */ 0x7305,
- /* 2nd byte: 37 */ 0x7307,
- /* 2nd byte: 38 */ 0x730b,
- /* 2nd byte: 39 */ 0x730d,
- /* 2nd byte: 40 */ 0x7312,
- /* 2nd byte: 41 */ 0x7313,
- /* 2nd byte: 42 */ 0x7318,
- /* 2nd byte: 43 */ 0x7319,
- /* 2nd byte: 44 */ 0x731e,
- /* 2nd byte: 45 */ 0x7322,
- /* 2nd byte: 46 */ 0x7324,
- /* 2nd byte: 47 */ 0x7327,
- /* 2nd byte: 48 */ 0x7328,
- /* 2nd byte: 49 */ 0x732c,
- /* 2nd byte: 50 */ 0x7331,
- /* 2nd byte: 51 */ 0x7332,
- /* 2nd byte: 52 */ 0x7335,
- /* 2nd byte: 53 */ 0x733a,
- /* 2nd byte: 54 */ 0x733b,
- /* 2nd byte: 55 */ 0x733d,
- /* 2nd byte: 56 */ 0x7343,
- /* 2nd byte: 57 */ 0x734d,
- /* 2nd byte: 58 */ 0x7350,
- /* 2nd byte: 59 */ 0x7352,
- /* 2nd byte: 60 */ 0x7356,
- /* 2nd byte: 61 */ 0x7358,
- /* 2nd byte: 62 */ 0x735d,
- /* 2nd byte: 63 */ 0x735e,
- /* 2nd byte: 64 */ 0x735f,
- /* 2nd byte: 65 */ 0x7360,
- /* 2nd byte: 66 */ 0x7366,
- /* 2nd byte: 67 */ 0x7367,
- /* 2nd byte: 68 */ 0x7369,
- /* 2nd byte: 69 */ 0x736b,
- /* 2nd byte: 70 */ 0x736c,
- /* 2nd byte: 71 */ 0x736e,
- /* 2nd byte: 72 */ 0x736f,
- /* 2nd byte: 73 */ 0x7371,
- /* 2nd byte: 74 */ 0x7377,
- /* 2nd byte: 75 */ 0x7379,
- /* 2nd byte: 76 */ 0x737c,
- /* 2nd byte: 77 */ 0x7380,
- /* 2nd byte: 78 */ 0x7381,
- /* 2nd byte: 79 */ 0x7383,
- /* 2nd byte: 80 */ 0x7385,
- /* 2nd byte: 81 */ 0x7386,
- /* 2nd byte: 82 */ 0x738e,
- /* 2nd byte: 83 */ 0x7390,
- /* 2nd byte: 84 */ 0x7393,
- /* 2nd byte: 85 */ 0x7395,
- /* 2nd byte: 86 */ 0x7397,
- /* 2nd byte: 87 */ 0x7398,
- /* 2nd byte: 88 */ 0x739c,
- /* 2nd byte: 89 */ 0x739e,
- /* 2nd byte: 90 */ 0x739f,
- /* 2nd byte: 91 */ 0x73a0,
- /* 2nd byte: 92 */ 0x73a2,
- /* 2nd byte: 93 */ 0x73a5,
- /* 2nd byte: 94 */ 0x73a6,
- /* 2nd byte: 95 */ 0x73aa,
- /* 2nd byte: 96 */ 0x73ab,
- /* 2nd byte: 97 */ 0x73ad,
- /* 2nd byte: 98 */ 0x73b5,
- /* 2nd byte: 99 */ 0x73b7,
- /* 2nd byte: 100 */ 0x73b9,
- /* 2nd byte: 101 */ 0x73bc,
- /* 2nd byte: 102 */ 0x73bd,
- /* 2nd byte: 103 */ 0x73bf,
- /* 2nd byte: 104 */ 0x73c5,
- /* 2nd byte: 105 */ 0x73c6,
- /* 2nd byte: 106 */ 0x73c9,
- /* 2nd byte: 107 */ 0x73cb,
- /* 2nd byte: 108 */ 0x73cc,
- /* 2nd byte: 109 */ 0x73cf,
- /* 2nd byte: 110 */ 0x73d2,
- /* 2nd byte: 111 */ 0x73d3,
- /* 2nd byte: 112 */ 0x73d6,
- /* 2nd byte: 113 */ 0x73d9,
- /* 2nd byte: 114 */ 0x73dd,
- /* 2nd byte: 115 */ 0x73e1,
- /* 2nd byte: 116 */ 0x73e3,
- /* 2nd byte: 117 */ 0x73e6,
- /* 2nd byte: 118 */ 0x73e7,
- /* 2nd byte: 119 */ 0x73e9,
- /* 2nd byte: 120 */ 0x73f4,
- /* 2nd byte: 121 */ 0x73f5,
- /* 2nd byte: 122 */ 0x73f7,
- /* 2nd byte: 123 */ 0x73f9,
- /* 2nd byte: 124 */ 0x73fa,
- /* 2nd byte: 125 */ 0x73fb,
- /* 2nd byte: 126 */ 0x73fd},
-/* 1st byte: 76 */ {
- /* 2nd byte: 33 */ 0x73ff,
- /* 2nd byte: 34 */ 0x7400,
- /* 2nd byte: 35 */ 0x7401,
- /* 2nd byte: 36 */ 0x7404,
- /* 2nd byte: 37 */ 0x7407,
- /* 2nd byte: 38 */ 0x740a,
- /* 2nd byte: 39 */ 0x7411,
- /* 2nd byte: 40 */ 0x741a,
- /* 2nd byte: 41 */ 0x741b,
- /* 2nd byte: 42 */ 0x7424,
- /* 2nd byte: 43 */ 0x7426,
- /* 2nd byte: 44 */ 0x7428,
- /* 2nd byte: 45 */ 0x7429,
- /* 2nd byte: 46 */ 0x742a,
- /* 2nd byte: 47 */ 0x742b,
- /* 2nd byte: 48 */ 0x742c,
- /* 2nd byte: 49 */ 0x742d,
- /* 2nd byte: 50 */ 0x742e,
- /* 2nd byte: 51 */ 0x742f,
- /* 2nd byte: 52 */ 0x7430,
- /* 2nd byte: 53 */ 0x7431,
- /* 2nd byte: 54 */ 0x7439,
- /* 2nd byte: 55 */ 0x7440,
- /* 2nd byte: 56 */ 0x7443,
- /* 2nd byte: 57 */ 0x7444,
- /* 2nd byte: 58 */ 0x7446,
- /* 2nd byte: 59 */ 0x7447,
- /* 2nd byte: 60 */ 0x744b,
- /* 2nd byte: 61 */ 0x744d,
- /* 2nd byte: 62 */ 0x7451,
- /* 2nd byte: 63 */ 0x7452,
- /* 2nd byte: 64 */ 0x7457,
- /* 2nd byte: 65 */ 0x745d,
- /* 2nd byte: 66 */ 0x7462,
- /* 2nd byte: 67 */ 0x7466,
- /* 2nd byte: 68 */ 0x7467,
- /* 2nd byte: 69 */ 0x7468,
- /* 2nd byte: 70 */ 0x746b,
- /* 2nd byte: 71 */ 0x746d,
- /* 2nd byte: 72 */ 0x746e,
- /* 2nd byte: 73 */ 0x7471,
- /* 2nd byte: 74 */ 0x7472,
- /* 2nd byte: 75 */ 0x7480,
- /* 2nd byte: 76 */ 0x7481,
- /* 2nd byte: 77 */ 0x7485,
- /* 2nd byte: 78 */ 0x7486,
- /* 2nd byte: 79 */ 0x7487,
- /* 2nd byte: 80 */ 0x7489,
- /* 2nd byte: 81 */ 0x748f,
- /* 2nd byte: 82 */ 0x7490,
- /* 2nd byte: 83 */ 0x7491,
- /* 2nd byte: 84 */ 0x7492,
- /* 2nd byte: 85 */ 0x7498,
- /* 2nd byte: 86 */ 0x7499,
- /* 2nd byte: 87 */ 0x749a,
- /* 2nd byte: 88 */ 0x749c,
- /* 2nd byte: 89 */ 0x749f,
- /* 2nd byte: 90 */ 0x74a0,
- /* 2nd byte: 91 */ 0x74a1,
- /* 2nd byte: 92 */ 0x74a3,
- /* 2nd byte: 93 */ 0x74a6,
- /* 2nd byte: 94 */ 0x74a8,
- /* 2nd byte: 95 */ 0x74a9,
- /* 2nd byte: 96 */ 0x74aa,
- /* 2nd byte: 97 */ 0x74ab,
- /* 2nd byte: 98 */ 0x74ae,
- /* 2nd byte: 99 */ 0x74af,
- /* 2nd byte: 100 */ 0x74b1,
- /* 2nd byte: 101 */ 0x74b2,
- /* 2nd byte: 102 */ 0x74b5,
- /* 2nd byte: 103 */ 0x74b9,
- /* 2nd byte: 104 */ 0x74bb,
- /* 2nd byte: 105 */ 0x74bf,
- /* 2nd byte: 106 */ 0x74c8,
- /* 2nd byte: 107 */ 0x74c9,
- /* 2nd byte: 108 */ 0x74cc,
- /* 2nd byte: 109 */ 0x74d0,
- /* 2nd byte: 110 */ 0x74d3,
- /* 2nd byte: 111 */ 0x74d8,
- /* 2nd byte: 112 */ 0x74da,
- /* 2nd byte: 113 */ 0x74db,
- /* 2nd byte: 114 */ 0x74de,
- /* 2nd byte: 115 */ 0x74df,
- /* 2nd byte: 116 */ 0x74e4,
- /* 2nd byte: 117 */ 0x74e8,
- /* 2nd byte: 118 */ 0x74ea,
- /* 2nd byte: 119 */ 0x74eb,
- /* 2nd byte: 120 */ 0x74ef,
- /* 2nd byte: 121 */ 0x74f4,
- /* 2nd byte: 122 */ 0x74fa,
- /* 2nd byte: 123 */ 0x74fb,
- /* 2nd byte: 124 */ 0x74fc,
- /* 2nd byte: 125 */ 0x74ff,
- /* 2nd byte: 126 */ 0x7506},
-/* 1st byte: 77 */ {
- /* 2nd byte: 33 */ 0x7512,
- /* 2nd byte: 34 */ 0x7516,
- /* 2nd byte: 35 */ 0x7517,
- /* 2nd byte: 36 */ 0x7520,
- /* 2nd byte: 37 */ 0x7521,
- /* 2nd byte: 38 */ 0x7524,
- /* 2nd byte: 39 */ 0x7527,
- /* 2nd byte: 40 */ 0x7529,
- /* 2nd byte: 41 */ 0x752a,
- /* 2nd byte: 42 */ 0x752f,
- /* 2nd byte: 43 */ 0x7536,
- /* 2nd byte: 44 */ 0x7539,
- /* 2nd byte: 45 */ 0x753d,
- /* 2nd byte: 46 */ 0x753e,
- /* 2nd byte: 47 */ 0x753f,
- /* 2nd byte: 48 */ 0x7540,
- /* 2nd byte: 49 */ 0x7543,
- /* 2nd byte: 50 */ 0x7547,
- /* 2nd byte: 51 */ 0x7548,
- /* 2nd byte: 52 */ 0x754e,
- /* 2nd byte: 53 */ 0x7550,
- /* 2nd byte: 54 */ 0x7552,
- /* 2nd byte: 55 */ 0x7557,
- /* 2nd byte: 56 */ 0x755e,
- /* 2nd byte: 57 */ 0x755f,
- /* 2nd byte: 58 */ 0x7561,
- /* 2nd byte: 59 */ 0x756f,
- /* 2nd byte: 60 */ 0x7571,
- /* 2nd byte: 61 */ 0x7579,
- /* 2nd byte: 62 */ 0x757a,
- /* 2nd byte: 63 */ 0x757b,
- /* 2nd byte: 64 */ 0x757c,
- /* 2nd byte: 65 */ 0x757d,
- /* 2nd byte: 66 */ 0x757e,
- /* 2nd byte: 67 */ 0x7581,
- /* 2nd byte: 68 */ 0x7585,
- /* 2nd byte: 69 */ 0x7590,
- /* 2nd byte: 70 */ 0x7592,
- /* 2nd byte: 71 */ 0x7593,
- /* 2nd byte: 72 */ 0x7595,
- /* 2nd byte: 73 */ 0x7599,
- /* 2nd byte: 74 */ 0x759c,
- /* 2nd byte: 75 */ 0x75a2,
- /* 2nd byte: 76 */ 0x75a4,
- /* 2nd byte: 77 */ 0x75b4,
- /* 2nd byte: 78 */ 0x75ba,
- /* 2nd byte: 79 */ 0x75bf,
- /* 2nd byte: 80 */ 0x75c0,
- /* 2nd byte: 81 */ 0x75c1,
- /* 2nd byte: 82 */ 0x75c4,
- /* 2nd byte: 83 */ 0x75c6,
- /* 2nd byte: 84 */ 0x75cc,
- /* 2nd byte: 85 */ 0x75ce,
- /* 2nd byte: 86 */ 0x75cf,
- /* 2nd byte: 87 */ 0x75d7,
- /* 2nd byte: 88 */ 0x75dc,
- /* 2nd byte: 89 */ 0x75df,
- /* 2nd byte: 90 */ 0x75e0,
- /* 2nd byte: 91 */ 0x75e1,
- /* 2nd byte: 92 */ 0x75e4,
- /* 2nd byte: 93 */ 0x75e7,
- /* 2nd byte: 94 */ 0x75ec,
- /* 2nd byte: 95 */ 0x75ee,
- /* 2nd byte: 96 */ 0x75ef,
- /* 2nd byte: 97 */ 0x75f1,
- /* 2nd byte: 98 */ 0x75f9,
- /* 2nd byte: 99 */ 0x7600,
- /* 2nd byte: 100 */ 0x7602,
- /* 2nd byte: 101 */ 0x7603,
- /* 2nd byte: 102 */ 0x7604,
- /* 2nd byte: 103 */ 0x7607,
- /* 2nd byte: 104 */ 0x7608,
- /* 2nd byte: 105 */ 0x760a,
- /* 2nd byte: 106 */ 0x760c,
- /* 2nd byte: 107 */ 0x760f,
- /* 2nd byte: 108 */ 0x7612,
- /* 2nd byte: 109 */ 0x7613,
- /* 2nd byte: 110 */ 0x7615,
- /* 2nd byte: 111 */ 0x7616,
- /* 2nd byte: 112 */ 0x7619,
- /* 2nd byte: 113 */ 0x761b,
- /* 2nd byte: 114 */ 0x761c,
- /* 2nd byte: 115 */ 0x761d,
- /* 2nd byte: 116 */ 0x761e,
- /* 2nd byte: 117 */ 0x7623,
- /* 2nd byte: 118 */ 0x7625,
- /* 2nd byte: 119 */ 0x7626,
- /* 2nd byte: 120 */ 0x7629,
- /* 2nd byte: 121 */ 0x762d,
- /* 2nd byte: 122 */ 0x7632,
- /* 2nd byte: 123 */ 0x7633,
- /* 2nd byte: 124 */ 0x7635,
- /* 2nd byte: 125 */ 0x7638,
- /* 2nd byte: 126 */ 0x7639},
-/* 1st byte: 78 */ {
- /* 2nd byte: 33 */ 0x763a,
- /* 2nd byte: 34 */ 0x763c,
- /* 2nd byte: 35 */ 0x764a,
- /* 2nd byte: 36 */ 0x7640,
- /* 2nd byte: 37 */ 0x7641,
- /* 2nd byte: 38 */ 0x7643,
- /* 2nd byte: 39 */ 0x7644,
- /* 2nd byte: 40 */ 0x7645,
- /* 2nd byte: 41 */ 0x7649,
- /* 2nd byte: 42 */ 0x764b,
- /* 2nd byte: 43 */ 0x7655,
- /* 2nd byte: 44 */ 0x7659,
- /* 2nd byte: 45 */ 0x765f,
- /* 2nd byte: 46 */ 0x7664,
- /* 2nd byte: 47 */ 0x7665,
- /* 2nd byte: 48 */ 0x766d,
- /* 2nd byte: 49 */ 0x766e,
- /* 2nd byte: 50 */ 0x766f,
- /* 2nd byte: 51 */ 0x7671,
- /* 2nd byte: 52 */ 0x7674,
- /* 2nd byte: 53 */ 0x7681,
- /* 2nd byte: 54 */ 0x7685,
- /* 2nd byte: 55 */ 0x768c,
- /* 2nd byte: 56 */ 0x768d,
- /* 2nd byte: 57 */ 0x7695,
- /* 2nd byte: 58 */ 0x769b,
- /* 2nd byte: 59 */ 0x769c,
- /* 2nd byte: 60 */ 0x769d,
- /* 2nd byte: 61 */ 0x769f,
- /* 2nd byte: 62 */ 0x76a0,
- /* 2nd byte: 63 */ 0x76a2,
- /* 2nd byte: 64 */ 0x76a3,
- /* 2nd byte: 65 */ 0x76a4,
- /* 2nd byte: 66 */ 0x76a5,
- /* 2nd byte: 67 */ 0x76a6,
- /* 2nd byte: 68 */ 0x76a7,
- /* 2nd byte: 69 */ 0x76a8,
- /* 2nd byte: 70 */ 0x76aa,
- /* 2nd byte: 71 */ 0x76ad,
- /* 2nd byte: 72 */ 0x76bd,
- /* 2nd byte: 73 */ 0x76c1,
- /* 2nd byte: 74 */ 0x76c5,
- /* 2nd byte: 75 */ 0x76c9,
- /* 2nd byte: 76 */ 0x76cb,
- /* 2nd byte: 77 */ 0x76cc,
- /* 2nd byte: 78 */ 0x76ce,
- /* 2nd byte: 79 */ 0x76d4,
- /* 2nd byte: 80 */ 0x76d9,
- /* 2nd byte: 81 */ 0x76e0,
- /* 2nd byte: 82 */ 0x76e6,
- /* 2nd byte: 83 */ 0x76e8,
- /* 2nd byte: 84 */ 0x76ec,
- /* 2nd byte: 85 */ 0x76f0,
- /* 2nd byte: 86 */ 0x76f1,
- /* 2nd byte: 87 */ 0x76f6,
- /* 2nd byte: 88 */ 0x76f9,
- /* 2nd byte: 89 */ 0x76fc,
- /* 2nd byte: 90 */ 0x7700,
- /* 2nd byte: 91 */ 0x7706,
- /* 2nd byte: 92 */ 0x770a,
- /* 2nd byte: 93 */ 0x770e,
- /* 2nd byte: 94 */ 0x7712,
- /* 2nd byte: 95 */ 0x7714,
- /* 2nd byte: 96 */ 0x7715,
- /* 2nd byte: 97 */ 0x7717,
- /* 2nd byte: 98 */ 0x7719,
- /* 2nd byte: 99 */ 0x771a,
- /* 2nd byte: 100 */ 0x771c,
- /* 2nd byte: 101 */ 0x7722,
- /* 2nd byte: 102 */ 0x7728,
- /* 2nd byte: 103 */ 0x772d,
- /* 2nd byte: 104 */ 0x772e,
- /* 2nd byte: 105 */ 0x772f,
- /* 2nd byte: 106 */ 0x7734,
- /* 2nd byte: 107 */ 0x7735,
- /* 2nd byte: 108 */ 0x7736,
- /* 2nd byte: 109 */ 0x7739,
- /* 2nd byte: 110 */ 0x773d,
- /* 2nd byte: 111 */ 0x773e,
- /* 2nd byte: 112 */ 0x7742,
- /* 2nd byte: 113 */ 0x7745,
- /* 2nd byte: 114 */ 0x7746,
- /* 2nd byte: 115 */ 0x774a,
- /* 2nd byte: 116 */ 0x774d,
- /* 2nd byte: 117 */ 0x774e,
- /* 2nd byte: 118 */ 0x774f,
- /* 2nd byte: 119 */ 0x7752,
- /* 2nd byte: 120 */ 0x7756,
- /* 2nd byte: 121 */ 0x7757,
- /* 2nd byte: 122 */ 0x775c,
- /* 2nd byte: 123 */ 0x775e,
- /* 2nd byte: 124 */ 0x775f,
- /* 2nd byte: 125 */ 0x7760,
- /* 2nd byte: 126 */ 0x7762},
-/* 1st byte: 79 */ {
- /* 2nd byte: 33 */ 0x7764,
- /* 2nd byte: 34 */ 0x7767,
- /* 2nd byte: 35 */ 0x776a,
- /* 2nd byte: 36 */ 0x776c,
- /* 2nd byte: 37 */ 0x7770,
- /* 2nd byte: 38 */ 0x7772,
- /* 2nd byte: 39 */ 0x7773,
- /* 2nd byte: 40 */ 0x7774,
- /* 2nd byte: 41 */ 0x777a,
- /* 2nd byte: 42 */ 0x777d,
- /* 2nd byte: 43 */ 0x7780,
- /* 2nd byte: 44 */ 0x7784,
- /* 2nd byte: 45 */ 0x778c,
- /* 2nd byte: 46 */ 0x778d,
- /* 2nd byte: 47 */ 0x7794,
- /* 2nd byte: 48 */ 0x7795,
- /* 2nd byte: 49 */ 0x7796,
- /* 2nd byte: 50 */ 0x779a,
- /* 2nd byte: 51 */ 0x779f,
- /* 2nd byte: 52 */ 0x77a2,
- /* 2nd byte: 53 */ 0x77a7,
- /* 2nd byte: 54 */ 0x77aa,
- /* 2nd byte: 55 */ 0x77ae,
- /* 2nd byte: 56 */ 0x77af,
- /* 2nd byte: 57 */ 0x77b1,
- /* 2nd byte: 58 */ 0x77b5,
- /* 2nd byte: 59 */ 0x77be,
- /* 2nd byte: 60 */ 0x77c3,
- /* 2nd byte: 61 */ 0x77c9,
- /* 2nd byte: 62 */ 0x77d1,
- /* 2nd byte: 63 */ 0x77d2,
- /* 2nd byte: 64 */ 0x77d5,
- /* 2nd byte: 65 */ 0x77d9,
- /* 2nd byte: 66 */ 0x77de,
- /* 2nd byte: 67 */ 0x77df,
- /* 2nd byte: 68 */ 0x77e0,
- /* 2nd byte: 69 */ 0x77e4,
- /* 2nd byte: 70 */ 0x77e6,
- /* 2nd byte: 71 */ 0x77ea,
- /* 2nd byte: 72 */ 0x77ec,
- /* 2nd byte: 73 */ 0x77f0,
- /* 2nd byte: 74 */ 0x77f1,
- /* 2nd byte: 75 */ 0x77f4,
- /* 2nd byte: 76 */ 0x77f8,
- /* 2nd byte: 77 */ 0x77fb,
- /* 2nd byte: 78 */ 0x7805,
- /* 2nd byte: 79 */ 0x7806,
- /* 2nd byte: 80 */ 0x7809,
- /* 2nd byte: 81 */ 0x780d,
- /* 2nd byte: 82 */ 0x780e,
- /* 2nd byte: 83 */ 0x7811,
- /* 2nd byte: 84 */ 0x781d,
- /* 2nd byte: 85 */ 0x7821,
- /* 2nd byte: 86 */ 0x7822,
- /* 2nd byte: 87 */ 0x7823,
- /* 2nd byte: 88 */ 0x782d,
- /* 2nd byte: 89 */ 0x782e,
- /* 2nd byte: 90 */ 0x7830,
- /* 2nd byte: 91 */ 0x7835,
- /* 2nd byte: 92 */ 0x7837,
- /* 2nd byte: 93 */ 0x7843,
- /* 2nd byte: 94 */ 0x7844,
- /* 2nd byte: 95 */ 0x7847,
- /* 2nd byte: 96 */ 0x7848,
- /* 2nd byte: 97 */ 0x784c,
- /* 2nd byte: 98 */ 0x784e,
- /* 2nd byte: 99 */ 0x7852,
- /* 2nd byte: 100 */ 0x785c,
- /* 2nd byte: 101 */ 0x785e,
- /* 2nd byte: 102 */ 0x7860,
- /* 2nd byte: 103 */ 0x7861,
- /* 2nd byte: 104 */ 0x7863,
- /* 2nd byte: 105 */ 0x7864,
- /* 2nd byte: 106 */ 0x7868,
- /* 2nd byte: 107 */ 0x786a,
- /* 2nd byte: 108 */ 0x786e,
- /* 2nd byte: 109 */ 0x787a,
- /* 2nd byte: 110 */ 0x787e,
- /* 2nd byte: 111 */ 0x788a,
- /* 2nd byte: 112 */ 0x788f,
- /* 2nd byte: 113 */ 0x7894,
- /* 2nd byte: 114 */ 0x7898,
- /* 2nd byte: 115 */ 0x78a1,
- /* 2nd byte: 116 */ 0x789d,
- /* 2nd byte: 117 */ 0x789e,
- /* 2nd byte: 118 */ 0x789f,
- /* 2nd byte: 119 */ 0x78a4,
- /* 2nd byte: 120 */ 0x78a8,
- /* 2nd byte: 121 */ 0x78ac,
- /* 2nd byte: 122 */ 0x78ad,
- /* 2nd byte: 123 */ 0x78b0,
- /* 2nd byte: 124 */ 0x78b1,
- /* 2nd byte: 125 */ 0x78b2,
- /* 2nd byte: 126 */ 0x78b3},
-/* 1st byte: 80 */ {
- /* 2nd byte: 33 */ 0x78bb,
- /* 2nd byte: 34 */ 0x78bd,
- /* 2nd byte: 35 */ 0x78bf,
- /* 2nd byte: 36 */ 0x78c7,
- /* 2nd byte: 37 */ 0x78c8,
- /* 2nd byte: 38 */ 0x78c9,
- /* 2nd byte: 39 */ 0x78cc,
- /* 2nd byte: 40 */ 0x78ce,
- /* 2nd byte: 41 */ 0x78d2,
- /* 2nd byte: 42 */ 0x78d3,
- /* 2nd byte: 43 */ 0x78d5,
- /* 2nd byte: 44 */ 0x78d6,
- /* 2nd byte: 45 */ 0x78e4,
- /* 2nd byte: 46 */ 0x78db,
- /* 2nd byte: 47 */ 0x78df,
- /* 2nd byte: 48 */ 0x78e0,
- /* 2nd byte: 49 */ 0x78e1,
- /* 2nd byte: 50 */ 0x78e6,
- /* 2nd byte: 51 */ 0x78ea,
- /* 2nd byte: 52 */ 0x78f2,
- /* 2nd byte: 53 */ 0x78f3,
- /* 2nd byte: 54 */ 0x7900,
- /* 2nd byte: 55 */ 0x78f6,
- /* 2nd byte: 56 */ 0x78f7,
- /* 2nd byte: 57 */ 0x78fa,
- /* 2nd byte: 58 */ 0x78fb,
- /* 2nd byte: 59 */ 0x78ff,
- /* 2nd byte: 60 */ 0x7906,
- /* 2nd byte: 61 */ 0x790c,
- /* 2nd byte: 62 */ 0x7910,
- /* 2nd byte: 63 */ 0x791a,
- /* 2nd byte: 64 */ 0x791c,
- /* 2nd byte: 65 */ 0x791e,
- /* 2nd byte: 66 */ 0x791f,
- /* 2nd byte: 67 */ 0x7920,
- /* 2nd byte: 68 */ 0x7925,
- /* 2nd byte: 69 */ 0x7927,
- /* 2nd byte: 70 */ 0x7929,
- /* 2nd byte: 71 */ 0x792d,
- /* 2nd byte: 72 */ 0x7931,
- /* 2nd byte: 73 */ 0x7934,
- /* 2nd byte: 74 */ 0x7935,
- /* 2nd byte: 75 */ 0x793b,
- /* 2nd byte: 76 */ 0x793d,
- /* 2nd byte: 77 */ 0x793f,
- /* 2nd byte: 78 */ 0x7944,
- /* 2nd byte: 79 */ 0x7945,
- /* 2nd byte: 80 */ 0x7946,
- /* 2nd byte: 81 */ 0x794a,
- /* 2nd byte: 82 */ 0x794b,
- /* 2nd byte: 83 */ 0x794f,
- /* 2nd byte: 84 */ 0x7951,
- /* 2nd byte: 85 */ 0x7954,
- /* 2nd byte: 86 */ 0x7958,
- /* 2nd byte: 87 */ 0x795b,
- /* 2nd byte: 88 */ 0x795c,
- /* 2nd byte: 89 */ 0x7967,
- /* 2nd byte: 90 */ 0x7969,
- /* 2nd byte: 91 */ 0x796b,
- /* 2nd byte: 92 */ 0x7972,
- /* 2nd byte: 93 */ 0x7979,
- /* 2nd byte: 94 */ 0x797b,
- /* 2nd byte: 95 */ 0x797c,
- /* 2nd byte: 96 */ 0x797e,
- /* 2nd byte: 97 */ 0x798b,
- /* 2nd byte: 98 */ 0x798c,
- /* 2nd byte: 99 */ 0x7991,
- /* 2nd byte: 100 */ 0x7993,
- /* 2nd byte: 101 */ 0x7994,
- /* 2nd byte: 102 */ 0x7995,
- /* 2nd byte: 103 */ 0x7996,
- /* 2nd byte: 104 */ 0x7998,
- /* 2nd byte: 105 */ 0x799b,
- /* 2nd byte: 106 */ 0x799c,
- /* 2nd byte: 107 */ 0x79a1,
- /* 2nd byte: 108 */ 0x79a8,
- /* 2nd byte: 109 */ 0x79a9,
- /* 2nd byte: 110 */ 0x79ab,
- /* 2nd byte: 111 */ 0x79af,
- /* 2nd byte: 112 */ 0x79b1,
- /* 2nd byte: 113 */ 0x79b4,
- /* 2nd byte: 114 */ 0x79b8,
- /* 2nd byte: 115 */ 0x79bb,
- /* 2nd byte: 116 */ 0x79c2,
- /* 2nd byte: 117 */ 0x79c4,
- /* 2nd byte: 118 */ 0x79c7,
- /* 2nd byte: 119 */ 0x79c8,
- /* 2nd byte: 120 */ 0x79ca,
- /* 2nd byte: 121 */ 0x79cf,
- /* 2nd byte: 122 */ 0x79d4,
- /* 2nd byte: 123 */ 0x79d6,
- /* 2nd byte: 124 */ 0x79da,
- /* 2nd byte: 125 */ 0x79dd,
- /* 2nd byte: 126 */ 0x79de},
-/* 1st byte: 81 */ {
- /* 2nd byte: 33 */ 0x79e0,
- /* 2nd byte: 34 */ 0x79e2,
- /* 2nd byte: 35 */ 0x79e5,
- /* 2nd byte: 36 */ 0x79ea,
- /* 2nd byte: 37 */ 0x79eb,
- /* 2nd byte: 38 */ 0x79ed,
- /* 2nd byte: 39 */ 0x79f1,
- /* 2nd byte: 40 */ 0x79f8,
- /* 2nd byte: 41 */ 0x79fc,
- /* 2nd byte: 42 */ 0x7a02,
- /* 2nd byte: 43 */ 0x7a03,
- /* 2nd byte: 44 */ 0x7a07,
- /* 2nd byte: 45 */ 0x7a09,
- /* 2nd byte: 46 */ 0x7a0a,
- /* 2nd byte: 47 */ 0x7a0c,
- /* 2nd byte: 48 */ 0x7a11,
- /* 2nd byte: 49 */ 0x7a15,
- /* 2nd byte: 50 */ 0x7a1b,
- /* 2nd byte: 51 */ 0x7a1e,
- /* 2nd byte: 52 */ 0x7a21,
- /* 2nd byte: 53 */ 0x7a27,
- /* 2nd byte: 54 */ 0x7a2b,
- /* 2nd byte: 55 */ 0x7a2d,
- /* 2nd byte: 56 */ 0x7a2f,
- /* 2nd byte: 57 */ 0x7a30,
- /* 2nd byte: 58 */ 0x7a34,
- /* 2nd byte: 59 */ 0x7a35,
- /* 2nd byte: 60 */ 0x7a38,
- /* 2nd byte: 61 */ 0x7a39,
- /* 2nd byte: 62 */ 0x7a3a,
- /* 2nd byte: 63 */ 0x7a44,
- /* 2nd byte: 64 */ 0x7a45,
- /* 2nd byte: 65 */ 0x7a47,
- /* 2nd byte: 66 */ 0x7a48,
- /* 2nd byte: 67 */ 0x7a4c,
- /* 2nd byte: 68 */ 0x7a55,
- /* 2nd byte: 69 */ 0x7a56,
- /* 2nd byte: 70 */ 0x7a59,
- /* 2nd byte: 71 */ 0x7a5c,
- /* 2nd byte: 72 */ 0x7a5d,
- /* 2nd byte: 73 */ 0x7a5f,
- /* 2nd byte: 74 */ 0x7a60,
- /* 2nd byte: 75 */ 0x7a65,
- /* 2nd byte: 76 */ 0x7a67,
- /* 2nd byte: 77 */ 0x7a6a,
- /* 2nd byte: 78 */ 0x7a6d,
- /* 2nd byte: 79 */ 0x7a75,
- /* 2nd byte: 80 */ 0x7a78,
- /* 2nd byte: 81 */ 0x7a7e,
- /* 2nd byte: 82 */ 0x7a80,
- /* 2nd byte: 83 */ 0x7a82,
- /* 2nd byte: 84 */ 0x7a85,
- /* 2nd byte: 85 */ 0x7a86,
- /* 2nd byte: 86 */ 0x7a8a,
- /* 2nd byte: 87 */ 0x7a8b,
- /* 2nd byte: 88 */ 0x7a90,
- /* 2nd byte: 89 */ 0x7a91,
- /* 2nd byte: 90 */ 0x7a94,
- /* 2nd byte: 91 */ 0x7a9e,
- /* 2nd byte: 92 */ 0x7aa0,
- /* 2nd byte: 93 */ 0x7aa3,
- /* 2nd byte: 94 */ 0x7aac,
- /* 2nd byte: 95 */ 0x7ab3,
- /* 2nd byte: 96 */ 0x7ab5,
- /* 2nd byte: 97 */ 0x7ab9,
- /* 2nd byte: 98 */ 0x7abb,
- /* 2nd byte: 99 */ 0x7abc,
- /* 2nd byte: 100 */ 0x7ac6,
- /* 2nd byte: 101 */ 0x7ac9,
- /* 2nd byte: 102 */ 0x7acc,
- /* 2nd byte: 103 */ 0x7ace,
- /* 2nd byte: 104 */ 0x7ad1,
- /* 2nd byte: 105 */ 0x7adb,
- /* 2nd byte: 106 */ 0x7ae8,
- /* 2nd byte: 107 */ 0x7ae9,
- /* 2nd byte: 108 */ 0x7aeb,
- /* 2nd byte: 109 */ 0x7aec,
- /* 2nd byte: 110 */ 0x7af1,
- /* 2nd byte: 111 */ 0x7af4,
- /* 2nd byte: 112 */ 0x7afb,
- /* 2nd byte: 113 */ 0x7afd,
- /* 2nd byte: 114 */ 0x7afe,
- /* 2nd byte: 115 */ 0x7b07,
- /* 2nd byte: 116 */ 0x7b14,
- /* 2nd byte: 117 */ 0x7b1f,
- /* 2nd byte: 118 */ 0x7b23,
- /* 2nd byte: 119 */ 0x7b27,
- /* 2nd byte: 120 */ 0x7b29,
- /* 2nd byte: 121 */ 0x7b2a,
- /* 2nd byte: 122 */ 0x7b2b,
- /* 2nd byte: 123 */ 0x7b2d,
- /* 2nd byte: 124 */ 0x7b2e,
- /* 2nd byte: 125 */ 0x7b2f,
- /* 2nd byte: 126 */ 0x7b30},
-/* 1st byte: 82 */ {
- /* 2nd byte: 33 */ 0x7b31,
- /* 2nd byte: 34 */ 0x7b34,
- /* 2nd byte: 35 */ 0x7b3d,
- /* 2nd byte: 36 */ 0x7b3f,
- /* 2nd byte: 37 */ 0x7b40,
- /* 2nd byte: 38 */ 0x7b41,
- /* 2nd byte: 39 */ 0x7b47,
- /* 2nd byte: 40 */ 0x7b4e,
- /* 2nd byte: 41 */ 0x7b55,
- /* 2nd byte: 42 */ 0x7b60,
- /* 2nd byte: 43 */ 0x7b64,
- /* 2nd byte: 44 */ 0x7b66,
- /* 2nd byte: 45 */ 0x7b69,
- /* 2nd byte: 46 */ 0x7b6a,
- /* 2nd byte: 47 */ 0x7b6d,
- /* 2nd byte: 48 */ 0x7b6f,
- /* 2nd byte: 49 */ 0x7b72,
- /* 2nd byte: 50 */ 0x7b73,
- /* 2nd byte: 51 */ 0x7b77,
- /* 2nd byte: 52 */ 0x7b84,
- /* 2nd byte: 53 */ 0x7b89,
- /* 2nd byte: 54 */ 0x7b8e,
- /* 2nd byte: 55 */ 0x7b90,
- /* 2nd byte: 56 */ 0x7b91,
- /* 2nd byte: 57 */ 0x7b96,
- /* 2nd byte: 58 */ 0x7b9b,
- /* 2nd byte: 59 */ 0x7b9e,
- /* 2nd byte: 60 */ 0x7ba0,
- /* 2nd byte: 61 */ 0x7ba5,
- /* 2nd byte: 62 */ 0x7bac,
- /* 2nd byte: 63 */ 0x7baf,
- /* 2nd byte: 64 */ 0x7bb0,
- /* 2nd byte: 65 */ 0x7bb2,
- /* 2nd byte: 66 */ 0x7bb5,
- /* 2nd byte: 67 */ 0x7bb6,
- /* 2nd byte: 68 */ 0x7bba,
- /* 2nd byte: 69 */ 0x7bbb,
- /* 2nd byte: 70 */ 0x7bbc,
- /* 2nd byte: 71 */ 0x7bbd,
- /* 2nd byte: 72 */ 0x7bc2,
- /* 2nd byte: 73 */ 0x7bc5,
- /* 2nd byte: 74 */ 0x7bc8,
- /* 2nd byte: 75 */ 0x7bca,
- /* 2nd byte: 76 */ 0x7bd4,
- /* 2nd byte: 77 */ 0x7bd6,
- /* 2nd byte: 78 */ 0x7bd7,
- /* 2nd byte: 79 */ 0x7bd9,
- /* 2nd byte: 80 */ 0x7bda,
- /* 2nd byte: 81 */ 0x7bdb,
- /* 2nd byte: 82 */ 0x7be8,
- /* 2nd byte: 83 */ 0x7bea,
- /* 2nd byte: 84 */ 0x7bf2,
- /* 2nd byte: 85 */ 0x7bf4,
- /* 2nd byte: 86 */ 0x7bf5,
- /* 2nd byte: 87 */ 0x7bf8,
- /* 2nd byte: 88 */ 0x7bf9,
- /* 2nd byte: 89 */ 0x7bfa,
- /* 2nd byte: 90 */ 0x7bfc,
- /* 2nd byte: 91 */ 0x7bfe,
- /* 2nd byte: 92 */ 0x7c01,
- /* 2nd byte: 93 */ 0x7c02,
- /* 2nd byte: 94 */ 0x7c03,
- /* 2nd byte: 95 */ 0x7c04,
- /* 2nd byte: 96 */ 0x7c06,
- /* 2nd byte: 97 */ 0x7c09,
- /* 2nd byte: 98 */ 0x7c0b,
- /* 2nd byte: 99 */ 0x7c0c,
- /* 2nd byte: 100 */ 0x7c0e,
- /* 2nd byte: 101 */ 0x7c0f,
- /* 2nd byte: 102 */ 0x7c19,
- /* 2nd byte: 103 */ 0x7c1b,
- /* 2nd byte: 104 */ 0x7c20,
- /* 2nd byte: 105 */ 0x7c25,
- /* 2nd byte: 106 */ 0x7c26,
- /* 2nd byte: 107 */ 0x7c28,
- /* 2nd byte: 108 */ 0x7c2c,
- /* 2nd byte: 109 */ 0x7c31,
- /* 2nd byte: 110 */ 0x7c33,
- /* 2nd byte: 111 */ 0x7c34,
- /* 2nd byte: 112 */ 0x7c36,
- /* 2nd byte: 113 */ 0x7c39,
- /* 2nd byte: 114 */ 0x7c3a,
- /* 2nd byte: 115 */ 0x7c46,
- /* 2nd byte: 116 */ 0x7c4a,
- /* 2nd byte: 117 */ 0x7c55,
- /* 2nd byte: 118 */ 0x7c51,
- /* 2nd byte: 119 */ 0x7c52,
- /* 2nd byte: 120 */ 0x7c53,
- /* 2nd byte: 121 */ 0x7c59,
- /* 2nd byte: 122 */ 0x7c5a,
- /* 2nd byte: 123 */ 0x7c5b,
- /* 2nd byte: 124 */ 0x7c5c,
- /* 2nd byte: 125 */ 0x7c5d,
- /* 2nd byte: 126 */ 0x7c5e},
-/* 1st byte: 83 */ {
- /* 2nd byte: 33 */ 0x7c61,
- /* 2nd byte: 34 */ 0x7c63,
- /* 2nd byte: 35 */ 0x7c67,
- /* 2nd byte: 36 */ 0x7c69,
- /* 2nd byte: 37 */ 0x7c6d,
- /* 2nd byte: 38 */ 0x7c6e,
- /* 2nd byte: 39 */ 0x7c70,
- /* 2nd byte: 40 */ 0x7c72,
- /* 2nd byte: 41 */ 0x7c79,
- /* 2nd byte: 42 */ 0x7c7c,
- /* 2nd byte: 43 */ 0x7c7d,
- /* 2nd byte: 44 */ 0x7c86,
- /* 2nd byte: 45 */ 0x7c87,
- /* 2nd byte: 46 */ 0x7c8f,
- /* 2nd byte: 47 */ 0x7c94,
- /* 2nd byte: 48 */ 0x7c9e,
- /* 2nd byte: 49 */ 0x7ca0,
- /* 2nd byte: 50 */ 0x7ca6,
- /* 2nd byte: 51 */ 0x7cb0,
- /* 2nd byte: 52 */ 0x7cb6,
- /* 2nd byte: 53 */ 0x7cb7,
- /* 2nd byte: 54 */ 0x7cba,
- /* 2nd byte: 55 */ 0x7cbb,
- /* 2nd byte: 56 */ 0x7cbc,
- /* 2nd byte: 57 */ 0x7cbf,
- /* 2nd byte: 58 */ 0x7cc4,
- /* 2nd byte: 59 */ 0x7cc7,
- /* 2nd byte: 60 */ 0x7cc8,
- /* 2nd byte: 61 */ 0x7cc9,
- /* 2nd byte: 62 */ 0x7ccd,
- /* 2nd byte: 63 */ 0x7ccf,
- /* 2nd byte: 64 */ 0x7cd3,
- /* 2nd byte: 65 */ 0x7cd4,
- /* 2nd byte: 66 */ 0x7cd5,
- /* 2nd byte: 67 */ 0x7cd7,
- /* 2nd byte: 68 */ 0x7cd9,
- /* 2nd byte: 69 */ 0x7cda,
- /* 2nd byte: 70 */ 0x7cdd,
- /* 2nd byte: 71 */ 0x7ce6,
- /* 2nd byte: 72 */ 0x7ce9,
- /* 2nd byte: 73 */ 0x7ceb,
- /* 2nd byte: 74 */ 0x7cf5,
- /* 2nd byte: 75 */ 0x7d03,
- /* 2nd byte: 76 */ 0x7d07,
- /* 2nd byte: 77 */ 0x7d08,
- /* 2nd byte: 78 */ 0x7d09,
- /* 2nd byte: 79 */ 0x7d0f,
- /* 2nd byte: 80 */ 0x7d11,
- /* 2nd byte: 81 */ 0x7d12,
- /* 2nd byte: 82 */ 0x7d13,
- /* 2nd byte: 83 */ 0x7d16,
- /* 2nd byte: 84 */ 0x7d1d,
- /* 2nd byte: 85 */ 0x7d1e,
- /* 2nd byte: 86 */ 0x7d23,
- /* 2nd byte: 87 */ 0x7d26,
- /* 2nd byte: 88 */ 0x7d2a,
- /* 2nd byte: 89 */ 0x7d2d,
- /* 2nd byte: 90 */ 0x7d31,
- /* 2nd byte: 91 */ 0x7d3c,
- /* 2nd byte: 92 */ 0x7d3d,
- /* 2nd byte: 93 */ 0x7d3e,
- /* 2nd byte: 94 */ 0x7d40,
- /* 2nd byte: 95 */ 0x7d41,
- /* 2nd byte: 96 */ 0x7d47,
- /* 2nd byte: 97 */ 0x7d48,
- /* 2nd byte: 98 */ 0x7d4d,
- /* 2nd byte: 99 */ 0x7d51,
- /* 2nd byte: 100 */ 0x7d53,
- /* 2nd byte: 101 */ 0x7d57,
- /* 2nd byte: 102 */ 0x7d59,
- /* 2nd byte: 103 */ 0x7d5a,
- /* 2nd byte: 104 */ 0x7d5c,
- /* 2nd byte: 105 */ 0x7d5d,
- /* 2nd byte: 106 */ 0x7d65,
- /* 2nd byte: 107 */ 0x7d67,
- /* 2nd byte: 108 */ 0x7d6a,
- /* 2nd byte: 109 */ 0x7d70,
- /* 2nd byte: 110 */ 0x7d78,
- /* 2nd byte: 111 */ 0x7d7a,
- /* 2nd byte: 112 */ 0x7d7b,
- /* 2nd byte: 113 */ 0x7d7f,
- /* 2nd byte: 114 */ 0x7d81,
- /* 2nd byte: 115 */ 0x7d82,
- /* 2nd byte: 116 */ 0x7d83,
- /* 2nd byte: 117 */ 0x7d85,
- /* 2nd byte: 118 */ 0x7d86,
- /* 2nd byte: 119 */ 0x7d88,
- /* 2nd byte: 120 */ 0x7d8b,
- /* 2nd byte: 121 */ 0x7d8c,
- /* 2nd byte: 122 */ 0x7d8d,
- /* 2nd byte: 123 */ 0x7d91,
- /* 2nd byte: 124 */ 0x7d96,
- /* 2nd byte: 125 */ 0x7d97,
- /* 2nd byte: 126 */ 0x7d9d},
-/* 1st byte: 84 */ {
- /* 2nd byte: 33 */ 0x7d9e,
- /* 2nd byte: 34 */ 0x7da6,
- /* 2nd byte: 35 */ 0x7da7,
- /* 2nd byte: 36 */ 0x7daa,
- /* 2nd byte: 37 */ 0x7db3,
- /* 2nd byte: 38 */ 0x7db6,
- /* 2nd byte: 39 */ 0x7db7,
- /* 2nd byte: 40 */ 0x7db9,
- /* 2nd byte: 41 */ 0x7dc2,
- /* 2nd byte: 42 */ 0x7dc3,
- /* 2nd byte: 43 */ 0x7dc4,
- /* 2nd byte: 44 */ 0x7dc5,
- /* 2nd byte: 45 */ 0x7dc6,
- /* 2nd byte: 46 */ 0x7dcc,
- /* 2nd byte: 47 */ 0x7dcd,
- /* 2nd byte: 48 */ 0x7dce,
- /* 2nd byte: 49 */ 0x7dd7,
- /* 2nd byte: 50 */ 0x7dd9,
- /* 2nd byte: 51 */ 0x7e00,
- /* 2nd byte: 52 */ 0x7de2,
- /* 2nd byte: 53 */ 0x7de5,
- /* 2nd byte: 54 */ 0x7de6,
- /* 2nd byte: 55 */ 0x7dea,
- /* 2nd byte: 56 */ 0x7deb,
- /* 2nd byte: 57 */ 0x7ded,
- /* 2nd byte: 58 */ 0x7df1,
- /* 2nd byte: 59 */ 0x7df5,
- /* 2nd byte: 60 */ 0x7df6,
- /* 2nd byte: 61 */ 0x7df9,
- /* 2nd byte: 62 */ 0x7dfa,
- /* 2nd byte: 63 */ 0x7e08,
- /* 2nd byte: 64 */ 0x7e10,
- /* 2nd byte: 65 */ 0x7e11,
- /* 2nd byte: 66 */ 0x7e15,
- /* 2nd byte: 67 */ 0x7e17,
- /* 2nd byte: 68 */ 0x7e1c,
- /* 2nd byte: 69 */ 0x7e1d,
- /* 2nd byte: 70 */ 0x7e20,
- /* 2nd byte: 71 */ 0x7e27,
- /* 2nd byte: 72 */ 0x7e28,
- /* 2nd byte: 73 */ 0x7e2c,
- /* 2nd byte: 74 */ 0x7e2d,
- /* 2nd byte: 75 */ 0x7e2f,
- /* 2nd byte: 76 */ 0x7e33,
- /* 2nd byte: 77 */ 0x7e36,
- /* 2nd byte: 78 */ 0x7e3f,
- /* 2nd byte: 79 */ 0x7e44,
- /* 2nd byte: 80 */ 0x7e45,
- /* 2nd byte: 81 */ 0x7e47,
- /* 2nd byte: 82 */ 0x7e4e,
- /* 2nd byte: 83 */ 0x7e50,
- /* 2nd byte: 84 */ 0x7e52,
- /* 2nd byte: 85 */ 0x7e58,
- /* 2nd byte: 86 */ 0x7e5f,
- /* 2nd byte: 87 */ 0x7e61,
- /* 2nd byte: 88 */ 0x7e62,
- /* 2nd byte: 89 */ 0x7e65,
- /* 2nd byte: 90 */ 0x7e6b,
- /* 2nd byte: 91 */ 0x7e6e,
- /* 2nd byte: 92 */ 0x7e6f,
- /* 2nd byte: 93 */ 0x7e73,
- /* 2nd byte: 94 */ 0x7e78,
- /* 2nd byte: 95 */ 0x7e7e,
- /* 2nd byte: 96 */ 0x7e81,
- /* 2nd byte: 97 */ 0x7e86,
- /* 2nd byte: 98 */ 0x7e87,
- /* 2nd byte: 99 */ 0x7e8a,
- /* 2nd byte: 100 */ 0x7e8d,
- /* 2nd byte: 101 */ 0x7e91,
- /* 2nd byte: 102 */ 0x7e95,
- /* 2nd byte: 103 */ 0x7e98,
- /* 2nd byte: 104 */ 0x7e9a,
- /* 2nd byte: 105 */ 0x7e9d,
- /* 2nd byte: 106 */ 0x7e9e,
- /* 2nd byte: 107 */ 0x7f3c,
- /* 2nd byte: 108 */ 0x7f3b,
- /* 2nd byte: 109 */ 0x7f3d,
- /* 2nd byte: 110 */ 0x7f3e,
- /* 2nd byte: 111 */ 0x7f3f,
- /* 2nd byte: 112 */ 0x7f43,
- /* 2nd byte: 113 */ 0x7f44,
- /* 2nd byte: 114 */ 0x7f47,
- /* 2nd byte: 115 */ 0x7f4f,
- /* 2nd byte: 116 */ 0x7f52,
- /* 2nd byte: 117 */ 0x7f53,
- /* 2nd byte: 118 */ 0x7f5b,
- /* 2nd byte: 119 */ 0x7f5c,
- /* 2nd byte: 120 */ 0x7f5d,
- /* 2nd byte: 121 */ 0x7f61,
- /* 2nd byte: 122 */ 0x7f63,
- /* 2nd byte: 123 */ 0x7f64,
- /* 2nd byte: 124 */ 0x7f65,
- /* 2nd byte: 125 */ 0x7f66,
- /* 2nd byte: 126 */ 0x7f6d},
-/* 1st byte: 85 */ {
- /* 2nd byte: 33 */ 0x7f71,
- /* 2nd byte: 34 */ 0x7f7d,
- /* 2nd byte: 35 */ 0x7f7e,
- /* 2nd byte: 36 */ 0x7f7f,
- /* 2nd byte: 37 */ 0x7f80,
- /* 2nd byte: 38 */ 0x7f8b,
- /* 2nd byte: 39 */ 0x7f8d,
- /* 2nd byte: 40 */ 0x7f8f,
- /* 2nd byte: 41 */ 0x7f90,
- /* 2nd byte: 42 */ 0x7f91,
- /* 2nd byte: 43 */ 0x7f96,
- /* 2nd byte: 44 */ 0x7f97,
- /* 2nd byte: 45 */ 0x7f9c,
- /* 2nd byte: 46 */ 0x7fa1,
- /* 2nd byte: 47 */ 0x7fa2,
- /* 2nd byte: 48 */ 0x7fa6,
- /* 2nd byte: 49 */ 0x7faa,
- /* 2nd byte: 50 */ 0x7fad,
- /* 2nd byte: 51 */ 0x7fb4,
- /* 2nd byte: 52 */ 0x7fbc,
- /* 2nd byte: 53 */ 0x7fbf,
- /* 2nd byte: 54 */ 0x7fc0,
- /* 2nd byte: 55 */ 0x7fc3,
- /* 2nd byte: 56 */ 0x7fc8,
- /* 2nd byte: 57 */ 0x7fce,
- /* 2nd byte: 58 */ 0x7fcf,
- /* 2nd byte: 59 */ 0x7fdb,
- /* 2nd byte: 60 */ 0x7fdf,
- /* 2nd byte: 61 */ 0x7fe3,
- /* 2nd byte: 62 */ 0x7fe5,
- /* 2nd byte: 63 */ 0x7fe8,
- /* 2nd byte: 64 */ 0x7fec,
- /* 2nd byte: 65 */ 0x7fee,
- /* 2nd byte: 66 */ 0x7fef,
- /* 2nd byte: 67 */ 0x7ff2,
- /* 2nd byte: 68 */ 0x7ffa,
- /* 2nd byte: 69 */ 0x7ffd,
- /* 2nd byte: 70 */ 0x7ffe,
- /* 2nd byte: 71 */ 0x7fff,
- /* 2nd byte: 72 */ 0x8007,
- /* 2nd byte: 73 */ 0x8008,
- /* 2nd byte: 74 */ 0x800a,
- /* 2nd byte: 75 */ 0x800d,
- /* 2nd byte: 76 */ 0x800e,
- /* 2nd byte: 77 */ 0x800f,
- /* 2nd byte: 78 */ 0x8011,
- /* 2nd byte: 79 */ 0x8013,
- /* 2nd byte: 80 */ 0x8014,
- /* 2nd byte: 81 */ 0x8016,
- /* 2nd byte: 82 */ 0x801d,
- /* 2nd byte: 83 */ 0x801e,
- /* 2nd byte: 84 */ 0x801f,
- /* 2nd byte: 85 */ 0x8020,
- /* 2nd byte: 86 */ 0x8024,
- /* 2nd byte: 87 */ 0x8026,
- /* 2nd byte: 88 */ 0x802c,
- /* 2nd byte: 89 */ 0x802e,
- /* 2nd byte: 90 */ 0x8030,
- /* 2nd byte: 91 */ 0x8034,
- /* 2nd byte: 92 */ 0x8035,
- /* 2nd byte: 93 */ 0x8037,
- /* 2nd byte: 94 */ 0x8039,
- /* 2nd byte: 95 */ 0x803a,
- /* 2nd byte: 96 */ 0x803c,
- /* 2nd byte: 97 */ 0x803e,
- /* 2nd byte: 98 */ 0x8040,
- /* 2nd byte: 99 */ 0x8044,
- /* 2nd byte: 100 */ 0x8060,
- /* 2nd byte: 101 */ 0x8064,
- /* 2nd byte: 102 */ 0x8066,
- /* 2nd byte: 103 */ 0x806d,
- /* 2nd byte: 104 */ 0x8071,
- /* 2nd byte: 105 */ 0x8075,
- /* 2nd byte: 106 */ 0x8081,
- /* 2nd byte: 107 */ 0x8088,
- /* 2nd byte: 108 */ 0x808e,
- /* 2nd byte: 109 */ 0x809c,
- /* 2nd byte: 110 */ 0x809e,
- /* 2nd byte: 111 */ 0x80a6,
- /* 2nd byte: 112 */ 0x80a7,
- /* 2nd byte: 113 */ 0x80ab,
- /* 2nd byte: 114 */ 0x80b8,
- /* 2nd byte: 115 */ 0x80b9,
- /* 2nd byte: 116 */ 0x80c8,
- /* 2nd byte: 117 */ 0x80cd,
- /* 2nd byte: 118 */ 0x80cf,
- /* 2nd byte: 119 */ 0x80d2,
- /* 2nd byte: 120 */ 0x80d4,
- /* 2nd byte: 121 */ 0x80d5,
- /* 2nd byte: 122 */ 0x80d7,
- /* 2nd byte: 123 */ 0x80d8,
- /* 2nd byte: 124 */ 0x80e0,
- /* 2nd byte: 125 */ 0x80ed,
- /* 2nd byte: 126 */ 0x80ee},
-/* 1st byte: 86 */ {
- /* 2nd byte: 33 */ 0x80f0,
- /* 2nd byte: 34 */ 0x80f2,
- /* 2nd byte: 35 */ 0x80f3,
- /* 2nd byte: 36 */ 0x80f6,
- /* 2nd byte: 37 */ 0x80f9,
- /* 2nd byte: 38 */ 0x80fa,
- /* 2nd byte: 39 */ 0x80fe,
- /* 2nd byte: 40 */ 0x8103,
- /* 2nd byte: 41 */ 0x810b,
- /* 2nd byte: 42 */ 0x8116,
- /* 2nd byte: 43 */ 0x8117,
- /* 2nd byte: 44 */ 0x8118,
- /* 2nd byte: 45 */ 0x811c,
- /* 2nd byte: 46 */ 0x811e,
- /* 2nd byte: 47 */ 0x8120,
- /* 2nd byte: 48 */ 0x8124,
- /* 2nd byte: 49 */ 0x8127,
- /* 2nd byte: 50 */ 0x812c,
- /* 2nd byte: 51 */ 0x8130,
- /* 2nd byte: 52 */ 0x8135,
- /* 2nd byte: 53 */ 0x813a,
- /* 2nd byte: 54 */ 0x813c,
- /* 2nd byte: 55 */ 0x8145,
- /* 2nd byte: 56 */ 0x8147,
- /* 2nd byte: 57 */ 0x814a,
- /* 2nd byte: 58 */ 0x814c,
- /* 2nd byte: 59 */ 0x8152,
- /* 2nd byte: 60 */ 0x8157,
- /* 2nd byte: 61 */ 0x8160,
- /* 2nd byte: 62 */ 0x8161,
- /* 2nd byte: 63 */ 0x8167,
- /* 2nd byte: 64 */ 0x8168,
- /* 2nd byte: 65 */ 0x8169,
- /* 2nd byte: 66 */ 0x816d,
- /* 2nd byte: 67 */ 0x816f,
- /* 2nd byte: 68 */ 0x8177,
- /* 2nd byte: 69 */ 0x8181,
- /* 2nd byte: 70 */ 0x8190,
- /* 2nd byte: 71 */ 0x8184,
- /* 2nd byte: 72 */ 0x8185,
- /* 2nd byte: 73 */ 0x8186,
- /* 2nd byte: 74 */ 0x818b,
- /* 2nd byte: 75 */ 0x818e,
- /* 2nd byte: 76 */ 0x8196,
- /* 2nd byte: 77 */ 0x8198,
- /* 2nd byte: 78 */ 0x819b,
- /* 2nd byte: 79 */ 0x819e,
- /* 2nd byte: 80 */ 0x81a2,
- /* 2nd byte: 81 */ 0x81ae,
- /* 2nd byte: 82 */ 0x81b2,
- /* 2nd byte: 83 */ 0x81b4,
- /* 2nd byte: 84 */ 0x81bb,
- /* 2nd byte: 85 */ 0x81cb,
- /* 2nd byte: 86 */ 0x81c3,
- /* 2nd byte: 87 */ 0x81c5,
- /* 2nd byte: 88 */ 0x81ca,
- /* 2nd byte: 89 */ 0x81ce,
- /* 2nd byte: 90 */ 0x81cf,
- /* 2nd byte: 91 */ 0x81d5,
- /* 2nd byte: 92 */ 0x81d7,
- /* 2nd byte: 93 */ 0x81db,
- /* 2nd byte: 94 */ 0x81dd,
- /* 2nd byte: 95 */ 0x81de,
- /* 2nd byte: 96 */ 0x81e1,
- /* 2nd byte: 97 */ 0x81e4,
- /* 2nd byte: 98 */ 0x81eb,
- /* 2nd byte: 99 */ 0x81ec,
- /* 2nd byte: 100 */ 0x81f0,
- /* 2nd byte: 101 */ 0x81f1,
- /* 2nd byte: 102 */ 0x81f2,
- /* 2nd byte: 103 */ 0x81f5,
- /* 2nd byte: 104 */ 0x81f6,
- /* 2nd byte: 105 */ 0x81f8,
- /* 2nd byte: 106 */ 0x81f9,
- /* 2nd byte: 107 */ 0x81fd,
- /* 2nd byte: 108 */ 0x81ff,
- /* 2nd byte: 109 */ 0x8200,
- /* 2nd byte: 110 */ 0x8203,
- /* 2nd byte: 111 */ 0x820f,
- /* 2nd byte: 112 */ 0x8213,
- /* 2nd byte: 113 */ 0x8214,
- /* 2nd byte: 114 */ 0x8219,
- /* 2nd byte: 115 */ 0x821a,
- /* 2nd byte: 116 */ 0x821d,
- /* 2nd byte: 117 */ 0x8221,
- /* 2nd byte: 118 */ 0x8222,
- /* 2nd byte: 119 */ 0x8228,
- /* 2nd byte: 120 */ 0x8232,
- /* 2nd byte: 121 */ 0x8234,
- /* 2nd byte: 122 */ 0x823a,
- /* 2nd byte: 123 */ 0x8243,
- /* 2nd byte: 124 */ 0x8244,
- /* 2nd byte: 125 */ 0x8245,
- /* 2nd byte: 126 */ 0x8246},
-/* 1st byte: 87 */ {
- /* 2nd byte: 33 */ 0x824b,
- /* 2nd byte: 34 */ 0x824e,
- /* 2nd byte: 35 */ 0x824f,
- /* 2nd byte: 36 */ 0x8251,
- /* 2nd byte: 37 */ 0x8256,
- /* 2nd byte: 38 */ 0x825c,
- /* 2nd byte: 39 */ 0x8260,
- /* 2nd byte: 40 */ 0x8263,
- /* 2nd byte: 41 */ 0x8267,
- /* 2nd byte: 42 */ 0x826d,
- /* 2nd byte: 43 */ 0x8274,
- /* 2nd byte: 44 */ 0x827b,
- /* 2nd byte: 45 */ 0x827d,
- /* 2nd byte: 46 */ 0x827f,
- /* 2nd byte: 47 */ 0x8280,
- /* 2nd byte: 48 */ 0x8281,
- /* 2nd byte: 49 */ 0x8283,
- /* 2nd byte: 50 */ 0x8284,
- /* 2nd byte: 51 */ 0x8287,
- /* 2nd byte: 52 */ 0x8289,
- /* 2nd byte: 53 */ 0x828a,
- /* 2nd byte: 54 */ 0x828e,
- /* 2nd byte: 55 */ 0x8291,
- /* 2nd byte: 56 */ 0x8294,
- /* 2nd byte: 57 */ 0x8296,
- /* 2nd byte: 58 */ 0x8298,
- /* 2nd byte: 59 */ 0x829a,
- /* 2nd byte: 60 */ 0x829b,
- /* 2nd byte: 61 */ 0x82a0,
- /* 2nd byte: 62 */ 0x82a1,
- /* 2nd byte: 63 */ 0x82a3,
- /* 2nd byte: 64 */ 0x82a4,
- /* 2nd byte: 65 */ 0x82a7,
- /* 2nd byte: 66 */ 0x82a8,
- /* 2nd byte: 67 */ 0x82a9,
- /* 2nd byte: 68 */ 0x82aa,
- /* 2nd byte: 69 */ 0x82ae,
- /* 2nd byte: 70 */ 0x82b0,
- /* 2nd byte: 71 */ 0x82b2,
- /* 2nd byte: 72 */ 0x82b4,
- /* 2nd byte: 73 */ 0x82b7,
- /* 2nd byte: 74 */ 0x82ba,
- /* 2nd byte: 75 */ 0x82bc,
- /* 2nd byte: 76 */ 0x82be,
- /* 2nd byte: 77 */ 0x82bf,
- /* 2nd byte: 78 */ 0x82c6,
- /* 2nd byte: 79 */ 0x82d0,
- /* 2nd byte: 80 */ 0x82d5,
- /* 2nd byte: 81 */ 0x82da,
- /* 2nd byte: 82 */ 0x82e0,
- /* 2nd byte: 83 */ 0x82e2,
- /* 2nd byte: 84 */ 0x82e4,
- /* 2nd byte: 85 */ 0x82e8,
- /* 2nd byte: 86 */ 0x82ea,
- /* 2nd byte: 87 */ 0x82ed,
- /* 2nd byte: 88 */ 0x82ef,
- /* 2nd byte: 89 */ 0x82f6,
- /* 2nd byte: 90 */ 0x82f7,
- /* 2nd byte: 91 */ 0x82fd,
- /* 2nd byte: 92 */ 0x82fe,
- /* 2nd byte: 93 */ 0x8300,
- /* 2nd byte: 94 */ 0x8301,
- /* 2nd byte: 95 */ 0x8307,
- /* 2nd byte: 96 */ 0x8308,
- /* 2nd byte: 97 */ 0x830a,
- /* 2nd byte: 98 */ 0x830b,
- /* 2nd byte: 99 */ 0x8354,
- /* 2nd byte: 100 */ 0x831b,
- /* 2nd byte: 101 */ 0x831d,
- /* 2nd byte: 102 */ 0x831e,
- /* 2nd byte: 103 */ 0x831f,
- /* 2nd byte: 104 */ 0x8321,
- /* 2nd byte: 105 */ 0x8322,
- /* 2nd byte: 106 */ 0x832c,
- /* 2nd byte: 107 */ 0x832d,
- /* 2nd byte: 108 */ 0x832e,
- /* 2nd byte: 109 */ 0x8330,
- /* 2nd byte: 110 */ 0x8333,
- /* 2nd byte: 111 */ 0x8337,
- /* 2nd byte: 112 */ 0x833a,
- /* 2nd byte: 113 */ 0x833c,
- /* 2nd byte: 114 */ 0x833d,
- /* 2nd byte: 115 */ 0x8342,
- /* 2nd byte: 116 */ 0x8343,
- /* 2nd byte: 117 */ 0x8344,
- /* 2nd byte: 118 */ 0x8347,
- /* 2nd byte: 119 */ 0x834d,
- /* 2nd byte: 120 */ 0x834e,
- /* 2nd byte: 121 */ 0x8351,
- /* 2nd byte: 122 */ 0x8355,
- /* 2nd byte: 123 */ 0x8356,
- /* 2nd byte: 124 */ 0x8357,
- /* 2nd byte: 125 */ 0x8370,
- /* 2nd byte: 126 */ 0x8378},
-/* 1st byte: 88 */ {
- /* 2nd byte: 33 */ 0x837d,
- /* 2nd byte: 34 */ 0x837f,
- /* 2nd byte: 35 */ 0x8380,
- /* 2nd byte: 36 */ 0x8382,
- /* 2nd byte: 37 */ 0x8384,
- /* 2nd byte: 38 */ 0x8386,
- /* 2nd byte: 39 */ 0x838d,
- /* 2nd byte: 40 */ 0x8392,
- /* 2nd byte: 41 */ 0x8394,
- /* 2nd byte: 42 */ 0x8395,
- /* 2nd byte: 43 */ 0x8398,
- /* 2nd byte: 44 */ 0x8399,
- /* 2nd byte: 45 */ 0x839b,
- /* 2nd byte: 46 */ 0x839c,
- /* 2nd byte: 47 */ 0x839d,
- /* 2nd byte: 48 */ 0x83a6,
- /* 2nd byte: 49 */ 0x83a7,
- /* 2nd byte: 50 */ 0x83a9,
- /* 2nd byte: 51 */ 0x83ac,
- /* 2nd byte: 52 */ 0x83be,
- /* 2nd byte: 53 */ 0x83bf,
- /* 2nd byte: 54 */ 0x83c0,
- /* 2nd byte: 55 */ 0x83c7,
- /* 2nd byte: 56 */ 0x83c9,
- /* 2nd byte: 57 */ 0x83cf,
- /* 2nd byte: 58 */ 0x83d0,
- /* 2nd byte: 59 */ 0x83d1,
- /* 2nd byte: 60 */ 0x83d4,
- /* 2nd byte: 61 */ 0x83dd,
- /* 2nd byte: 62 */ 0x8353,
- /* 2nd byte: 63 */ 0x83e8,
- /* 2nd byte: 64 */ 0x83ea,
- /* 2nd byte: 65 */ 0x83f6,
- /* 2nd byte: 66 */ 0x83f8,
- /* 2nd byte: 67 */ 0x83f9,
- /* 2nd byte: 68 */ 0x83fc,
- /* 2nd byte: 69 */ 0x8401,
- /* 2nd byte: 70 */ 0x8406,
- /* 2nd byte: 71 */ 0x840a,
- /* 2nd byte: 72 */ 0x840f,
- /* 2nd byte: 73 */ 0x8411,
- /* 2nd byte: 74 */ 0x8415,
- /* 2nd byte: 75 */ 0x8419,
- /* 2nd byte: 76 */ 0x83ad,
- /* 2nd byte: 77 */ 0x842f,
- /* 2nd byte: 78 */ 0x8439,
- /* 2nd byte: 79 */ 0x8445,
- /* 2nd byte: 80 */ 0x8447,
- /* 2nd byte: 81 */ 0x8448,
- /* 2nd byte: 82 */ 0x844a,
- /* 2nd byte: 83 */ 0x844d,
- /* 2nd byte: 84 */ 0x844f,
- /* 2nd byte: 85 */ 0x8451,
- /* 2nd byte: 86 */ 0x8452,
- /* 2nd byte: 87 */ 0x8456,
- /* 2nd byte: 88 */ 0x8458,
- /* 2nd byte: 89 */ 0x8459,
- /* 2nd byte: 90 */ 0x845a,
- /* 2nd byte: 91 */ 0x845c,
- /* 2nd byte: 92 */ 0x8460,
- /* 2nd byte: 93 */ 0x8464,
- /* 2nd byte: 94 */ 0x8465,
- /* 2nd byte: 95 */ 0x8467,
- /* 2nd byte: 96 */ 0x846a,
- /* 2nd byte: 97 */ 0x8470,
- /* 2nd byte: 98 */ 0x8473,
- /* 2nd byte: 99 */ 0x8474,
- /* 2nd byte: 100 */ 0x8476,
- /* 2nd byte: 101 */ 0x8478,
- /* 2nd byte: 102 */ 0x847c,
- /* 2nd byte: 103 */ 0x847d,
- /* 2nd byte: 104 */ 0x8481,
- /* 2nd byte: 105 */ 0x8485,
- /* 2nd byte: 106 */ 0x8492,
- /* 2nd byte: 107 */ 0x8493,
- /* 2nd byte: 108 */ 0x8495,
- /* 2nd byte: 109 */ 0x849e,
- /* 2nd byte: 110 */ 0x84a6,
- /* 2nd byte: 111 */ 0x84a8,
- /* 2nd byte: 112 */ 0x84a9,
- /* 2nd byte: 113 */ 0x84aa,
- /* 2nd byte: 114 */ 0x84af,
- /* 2nd byte: 115 */ 0x84b1,
- /* 2nd byte: 116 */ 0x84b4,
- /* 2nd byte: 117 */ 0x84ba,
- /* 2nd byte: 118 */ 0x84bd,
- /* 2nd byte: 119 */ 0x84be,
- /* 2nd byte: 120 */ 0x84c0,
- /* 2nd byte: 121 */ 0x84c2,
- /* 2nd byte: 122 */ 0x84c7,
- /* 2nd byte: 123 */ 0x84c8,
- /* 2nd byte: 124 */ 0x84cc,
- /* 2nd byte: 125 */ 0x84cf,
- /* 2nd byte: 126 */ 0x84d3},
-/* 1st byte: 89 */ {
- /* 2nd byte: 33 */ 0x84dc,
- /* 2nd byte: 34 */ 0x84e7,
- /* 2nd byte: 35 */ 0x84ea,
- /* 2nd byte: 36 */ 0x84ef,
- /* 2nd byte: 37 */ 0x84f0,
- /* 2nd byte: 38 */ 0x84f1,
- /* 2nd byte: 39 */ 0x84f2,
- /* 2nd byte: 40 */ 0x84f7,
- /* 2nd byte: 41 */ 0x8532,
- /* 2nd byte: 42 */ 0x84fa,
- /* 2nd byte: 43 */ 0x84fb,
- /* 2nd byte: 44 */ 0x84fd,
- /* 2nd byte: 45 */ 0x8502,
- /* 2nd byte: 46 */ 0x8503,
- /* 2nd byte: 47 */ 0x8507,
- /* 2nd byte: 48 */ 0x850c,
- /* 2nd byte: 49 */ 0x850e,
- /* 2nd byte: 50 */ 0x8510,
- /* 2nd byte: 51 */ 0x851c,
- /* 2nd byte: 52 */ 0x851e,
- /* 2nd byte: 53 */ 0x8522,
- /* 2nd byte: 54 */ 0x8523,
- /* 2nd byte: 55 */ 0x8524,
- /* 2nd byte: 56 */ 0x8525,
- /* 2nd byte: 57 */ 0x8527,
- /* 2nd byte: 58 */ 0x852a,
- /* 2nd byte: 59 */ 0x852b,
- /* 2nd byte: 60 */ 0x852f,
- /* 2nd byte: 61 */ 0x8533,
- /* 2nd byte: 62 */ 0x8534,
- /* 2nd byte: 63 */ 0x8536,
- /* 2nd byte: 64 */ 0x853f,
- /* 2nd byte: 65 */ 0x8546,
- /* 2nd byte: 66 */ 0x854f,
- /* 2nd byte: 67 */ 0x8550,
- /* 2nd byte: 68 */ 0x8551,
- /* 2nd byte: 69 */ 0x8552,
- /* 2nd byte: 70 */ 0x8553,
- /* 2nd byte: 71 */ 0x8556,
- /* 2nd byte: 72 */ 0x8559,
- /* 2nd byte: 73 */ 0x855c,
- /* 2nd byte: 74 */ 0x855d,
- /* 2nd byte: 75 */ 0x855e,
- /* 2nd byte: 76 */ 0x855f,
- /* 2nd byte: 77 */ 0x8560,
- /* 2nd byte: 78 */ 0x8561,
- /* 2nd byte: 79 */ 0x8562,
- /* 2nd byte: 80 */ 0x8564,
- /* 2nd byte: 81 */ 0x856b,
- /* 2nd byte: 82 */ 0x856f,
- /* 2nd byte: 83 */ 0x8579,
- /* 2nd byte: 84 */ 0x857a,
- /* 2nd byte: 85 */ 0x857b,
- /* 2nd byte: 86 */ 0x857d,
- /* 2nd byte: 87 */ 0x857f,
- /* 2nd byte: 88 */ 0x8581,
- /* 2nd byte: 89 */ 0x8585,
- /* 2nd byte: 90 */ 0x8586,
- /* 2nd byte: 91 */ 0x8589,
- /* 2nd byte: 92 */ 0x858b,
- /* 2nd byte: 93 */ 0x858c,
- /* 2nd byte: 94 */ 0x858f,
- /* 2nd byte: 95 */ 0x8593,
- /* 2nd byte: 96 */ 0x8598,
- /* 2nd byte: 97 */ 0x859d,
- /* 2nd byte: 98 */ 0x859f,
- /* 2nd byte: 99 */ 0x85a0,
- /* 2nd byte: 100 */ 0x85a2,
- /* 2nd byte: 101 */ 0x85a5,
- /* 2nd byte: 102 */ 0x85a7,
- /* 2nd byte: 103 */ 0x85b4,
- /* 2nd byte: 104 */ 0x85b6,
- /* 2nd byte: 105 */ 0x85b7,
- /* 2nd byte: 106 */ 0x85b8,
- /* 2nd byte: 107 */ 0x85bc,
- /* 2nd byte: 108 */ 0x85bd,
- /* 2nd byte: 109 */ 0x85be,
- /* 2nd byte: 110 */ 0x85bf,
- /* 2nd byte: 111 */ 0x85c2,
- /* 2nd byte: 112 */ 0x85c7,
- /* 2nd byte: 113 */ 0x85ca,
- /* 2nd byte: 114 */ 0x85cb,
- /* 2nd byte: 115 */ 0x85ce,
- /* 2nd byte: 116 */ 0x85ad,
- /* 2nd byte: 117 */ 0x85d8,
- /* 2nd byte: 118 */ 0x85da,
- /* 2nd byte: 119 */ 0x85df,
- /* 2nd byte: 120 */ 0x85e0,
- /* 2nd byte: 121 */ 0x85e6,
- /* 2nd byte: 122 */ 0x85e8,
- /* 2nd byte: 123 */ 0x85ed,
- /* 2nd byte: 124 */ 0x85f3,
- /* 2nd byte: 125 */ 0x85f6,
- /* 2nd byte: 126 */ 0x85fc},
-/* 1st byte: 90 */ {
- /* 2nd byte: 33 */ 0x85ff,
- /* 2nd byte: 34 */ 0x8600,
- /* 2nd byte: 35 */ 0x8604,
- /* 2nd byte: 36 */ 0x8605,
- /* 2nd byte: 37 */ 0x860d,
- /* 2nd byte: 38 */ 0x860e,
- /* 2nd byte: 39 */ 0x8610,
- /* 2nd byte: 40 */ 0x8611,
- /* 2nd byte: 41 */ 0x8612,
- /* 2nd byte: 42 */ 0x8618,
- /* 2nd byte: 43 */ 0x8619,
- /* 2nd byte: 44 */ 0x861b,
- /* 2nd byte: 45 */ 0x861e,
- /* 2nd byte: 46 */ 0x8621,
- /* 2nd byte: 47 */ 0x8627,
- /* 2nd byte: 48 */ 0x8629,
- /* 2nd byte: 49 */ 0x8636,
- /* 2nd byte: 50 */ 0x8638,
- /* 2nd byte: 51 */ 0x863a,
- /* 2nd byte: 52 */ 0x863c,
- /* 2nd byte: 53 */ 0x863d,
- /* 2nd byte: 54 */ 0x8640,
- /* 2nd byte: 55 */ 0x8642,
- /* 2nd byte: 56 */ 0x8646,
- /* 2nd byte: 57 */ 0x8652,
- /* 2nd byte: 58 */ 0x8653,
- /* 2nd byte: 59 */ 0x8656,
- /* 2nd byte: 60 */ 0x8657,
- /* 2nd byte: 61 */ 0x8658,
- /* 2nd byte: 62 */ 0x8659,
- /* 2nd byte: 63 */ 0x865d,
- /* 2nd byte: 64 */ 0x8660,
- /* 2nd byte: 65 */ 0x8661,
- /* 2nd byte: 66 */ 0x8662,
- /* 2nd byte: 67 */ 0x8663,
- /* 2nd byte: 68 */ 0x8664,
- /* 2nd byte: 69 */ 0x8669,
- /* 2nd byte: 70 */ 0x866c,
- /* 2nd byte: 71 */ 0x866f,
- /* 2nd byte: 72 */ 0x8675,
- /* 2nd byte: 73 */ 0x8676,
- /* 2nd byte: 74 */ 0x8677,
- /* 2nd byte: 75 */ 0x867a,
- /* 2nd byte: 76 */ 0x868d,
- /* 2nd byte: 77 */ 0x8691,
- /* 2nd byte: 78 */ 0x8696,
- /* 2nd byte: 79 */ 0x8698,
- /* 2nd byte: 80 */ 0x869a,
- /* 2nd byte: 81 */ 0x869c,
- /* 2nd byte: 82 */ 0x86a1,
- /* 2nd byte: 83 */ 0x86a6,
- /* 2nd byte: 84 */ 0x86a7,
- /* 2nd byte: 85 */ 0x86a8,
- /* 2nd byte: 86 */ 0x86ad,
- /* 2nd byte: 87 */ 0x86b1,
- /* 2nd byte: 88 */ 0x86b3,
- /* 2nd byte: 89 */ 0x86b4,
- /* 2nd byte: 90 */ 0x86b5,
- /* 2nd byte: 91 */ 0x86b7,
- /* 2nd byte: 92 */ 0x86b8,
- /* 2nd byte: 93 */ 0x86b9,
- /* 2nd byte: 94 */ 0x86bf,
- /* 2nd byte: 95 */ 0x86c0,
- /* 2nd byte: 96 */ 0x86c1,
- /* 2nd byte: 97 */ 0x86c3,
- /* 2nd byte: 98 */ 0x86c5,
- /* 2nd byte: 99 */ 0x86d1,
- /* 2nd byte: 100 */ 0x86d2,
- /* 2nd byte: 101 */ 0x86d5,
- /* 2nd byte: 102 */ 0x86d7,
- /* 2nd byte: 103 */ 0x86da,
- /* 2nd byte: 104 */ 0x86dc,
- /* 2nd byte: 105 */ 0x86e0,
- /* 2nd byte: 106 */ 0x86e3,
- /* 2nd byte: 107 */ 0x86e5,
- /* 2nd byte: 108 */ 0x86e7,
- /* 2nd byte: 109 */ 0x8688,
- /* 2nd byte: 110 */ 0x86fa,
- /* 2nd byte: 111 */ 0x86fc,
- /* 2nd byte: 112 */ 0x86fd,
- /* 2nd byte: 113 */ 0x8704,
- /* 2nd byte: 114 */ 0x8705,
- /* 2nd byte: 115 */ 0x8707,
- /* 2nd byte: 116 */ 0x870b,
- /* 2nd byte: 117 */ 0x870e,
- /* 2nd byte: 118 */ 0x870f,
- /* 2nd byte: 119 */ 0x8710,
- /* 2nd byte: 120 */ 0x8713,
- /* 2nd byte: 121 */ 0x8714,
- /* 2nd byte: 122 */ 0x8719,
- /* 2nd byte: 123 */ 0x871e,
- /* 2nd byte: 124 */ 0x871f,
- /* 2nd byte: 125 */ 0x8721,
- /* 2nd byte: 126 */ 0x8723},
-/* 1st byte: 91 */ {
- /* 2nd byte: 33 */ 0x8728,
- /* 2nd byte: 34 */ 0x872e,
- /* 2nd byte: 35 */ 0x872f,
- /* 2nd byte: 36 */ 0x8731,
- /* 2nd byte: 37 */ 0x8732,
- /* 2nd byte: 38 */ 0x8739,
- /* 2nd byte: 39 */ 0x873a,
- /* 2nd byte: 40 */ 0x873c,
- /* 2nd byte: 41 */ 0x873d,
- /* 2nd byte: 42 */ 0x873e,
- /* 2nd byte: 43 */ 0x8740,
- /* 2nd byte: 44 */ 0x8743,
- /* 2nd byte: 45 */ 0x8745,
- /* 2nd byte: 46 */ 0x874d,
- /* 2nd byte: 47 */ 0x8758,
- /* 2nd byte: 48 */ 0x875d,
- /* 2nd byte: 49 */ 0x8761,
- /* 2nd byte: 50 */ 0x8764,
- /* 2nd byte: 51 */ 0x8765,
- /* 2nd byte: 52 */ 0x876f,
- /* 2nd byte: 53 */ 0x8771,
- /* 2nd byte: 54 */ 0x8772,
- /* 2nd byte: 55 */ 0x877b,
- /* 2nd byte: 56 */ 0x8783,
- /* 2nd byte: 57 */ 0x8784,
- /* 2nd byte: 58 */ 0x8785,
- /* 2nd byte: 59 */ 0x8786,
- /* 2nd byte: 60 */ 0x8787,
- /* 2nd byte: 61 */ 0x8788,
- /* 2nd byte: 62 */ 0x8789,
- /* 2nd byte: 63 */ 0x878b,
- /* 2nd byte: 64 */ 0x878c,
- /* 2nd byte: 65 */ 0x8790,
- /* 2nd byte: 66 */ 0x8793,
- /* 2nd byte: 67 */ 0x8795,
- /* 2nd byte: 68 */ 0x8797,
- /* 2nd byte: 69 */ 0x8798,
- /* 2nd byte: 70 */ 0x8799,
- /* 2nd byte: 71 */ 0x879e,
- /* 2nd byte: 72 */ 0x87a0,
- /* 2nd byte: 73 */ 0x87a3,
- /* 2nd byte: 74 */ 0x87a7,
- /* 2nd byte: 75 */ 0x87ac,
- /* 2nd byte: 76 */ 0x87ad,
- /* 2nd byte: 77 */ 0x87ae,
- /* 2nd byte: 78 */ 0x87b1,
- /* 2nd byte: 79 */ 0x87b5,
- /* 2nd byte: 80 */ 0x87be,
- /* 2nd byte: 81 */ 0x87bf,
- /* 2nd byte: 82 */ 0x87c1,
- /* 2nd byte: 83 */ 0x87c8,
- /* 2nd byte: 84 */ 0x87c9,
- /* 2nd byte: 85 */ 0x87ca,
- /* 2nd byte: 86 */ 0x87ce,
- /* 2nd byte: 87 */ 0x87d5,
- /* 2nd byte: 88 */ 0x87d6,
- /* 2nd byte: 89 */ 0x87d9,
- /* 2nd byte: 90 */ 0x87da,
- /* 2nd byte: 91 */ 0x87dc,
- /* 2nd byte: 92 */ 0x87df,
- /* 2nd byte: 93 */ 0x87e2,
- /* 2nd byte: 94 */ 0x87e3,
- /* 2nd byte: 95 */ 0x87e4,
- /* 2nd byte: 96 */ 0x87ea,
- /* 2nd byte: 97 */ 0x87eb,
- /* 2nd byte: 98 */ 0x87ed,
- /* 2nd byte: 99 */ 0x87f1,
- /* 2nd byte: 100 */ 0x87f3,
- /* 2nd byte: 101 */ 0x87f8,
- /* 2nd byte: 102 */ 0x87fa,
- /* 2nd byte: 103 */ 0x87ff,
- /* 2nd byte: 104 */ 0x8801,
- /* 2nd byte: 105 */ 0x8803,
- /* 2nd byte: 106 */ 0x8806,
- /* 2nd byte: 107 */ 0x8809,
- /* 2nd byte: 108 */ 0x880a,
- /* 2nd byte: 109 */ 0x880b,
- /* 2nd byte: 110 */ 0x8810,
- /* 2nd byte: 111 */ 0x8819,
- /* 2nd byte: 112 */ 0x8812,
- /* 2nd byte: 113 */ 0x8813,
- /* 2nd byte: 114 */ 0x8814,
- /* 2nd byte: 115 */ 0x8818,
- /* 2nd byte: 116 */ 0x881a,
- /* 2nd byte: 117 */ 0x881b,
- /* 2nd byte: 118 */ 0x881c,
- /* 2nd byte: 119 */ 0x881e,
- /* 2nd byte: 120 */ 0x881f,
- /* 2nd byte: 121 */ 0x8828,
- /* 2nd byte: 122 */ 0x882d,
- /* 2nd byte: 123 */ 0x882e,
- /* 2nd byte: 124 */ 0x8830,
- /* 2nd byte: 125 */ 0x8832,
- /* 2nd byte: 126 */ 0x8835},
-/* 1st byte: 92 */ {
- /* 2nd byte: 33 */ 0x883a,
- /* 2nd byte: 34 */ 0x883c,
- /* 2nd byte: 35 */ 0x8841,
- /* 2nd byte: 36 */ 0x8843,
- /* 2nd byte: 37 */ 0x8845,
- /* 2nd byte: 38 */ 0x8848,
- /* 2nd byte: 39 */ 0x8849,
- /* 2nd byte: 40 */ 0x884a,
- /* 2nd byte: 41 */ 0x884b,
- /* 2nd byte: 42 */ 0x884e,
- /* 2nd byte: 43 */ 0x8851,
- /* 2nd byte: 44 */ 0x8855,
- /* 2nd byte: 45 */ 0x8856,
- /* 2nd byte: 46 */ 0x8858,
- /* 2nd byte: 47 */ 0x885a,
- /* 2nd byte: 48 */ 0x885c,
- /* 2nd byte: 49 */ 0x885f,
- /* 2nd byte: 50 */ 0x8860,
- /* 2nd byte: 51 */ 0x8864,
- /* 2nd byte: 52 */ 0x8869,
- /* 2nd byte: 53 */ 0x8871,
- /* 2nd byte: 54 */ 0x8879,
- /* 2nd byte: 55 */ 0x887b,
- /* 2nd byte: 56 */ 0x8880,
- /* 2nd byte: 57 */ 0x8898,
- /* 2nd byte: 58 */ 0x889a,
- /* 2nd byte: 59 */ 0x889b,
- /* 2nd byte: 60 */ 0x889c,
- /* 2nd byte: 61 */ 0x889f,
- /* 2nd byte: 62 */ 0x88a0,
- /* 2nd byte: 63 */ 0x88a8,
- /* 2nd byte: 64 */ 0x88aa,
- /* 2nd byte: 65 */ 0x88ba,
- /* 2nd byte: 66 */ 0x88bd,
- /* 2nd byte: 67 */ 0x88be,
- /* 2nd byte: 68 */ 0x88c0,
- /* 2nd byte: 69 */ 0x88ca,
- /* 2nd byte: 70 */ 0x88cb,
- /* 2nd byte: 71 */ 0x88cc,
- /* 2nd byte: 72 */ 0x88cd,
- /* 2nd byte: 73 */ 0x88ce,
- /* 2nd byte: 74 */ 0x88d1,
- /* 2nd byte: 75 */ 0x88d2,
- /* 2nd byte: 76 */ 0x88d3,
- /* 2nd byte: 77 */ 0x88db,
- /* 2nd byte: 78 */ 0x88de,
- /* 2nd byte: 79 */ 0x88e7,
- /* 2nd byte: 80 */ 0x88ef,
- /* 2nd byte: 81 */ 0x88f0,
- /* 2nd byte: 82 */ 0x88f1,
- /* 2nd byte: 83 */ 0x88f5,
- /* 2nd byte: 84 */ 0x88f7,
- /* 2nd byte: 85 */ 0x8901,
- /* 2nd byte: 86 */ 0x8906,
- /* 2nd byte: 87 */ 0x890d,
- /* 2nd byte: 88 */ 0x890e,
- /* 2nd byte: 89 */ 0x890f,
- /* 2nd byte: 90 */ 0x8915,
- /* 2nd byte: 91 */ 0x8916,
- /* 2nd byte: 92 */ 0x8918,
- /* 2nd byte: 93 */ 0x8919,
- /* 2nd byte: 94 */ 0x891a,
- /* 2nd byte: 95 */ 0x891c,
- /* 2nd byte: 96 */ 0x8920,
- /* 2nd byte: 97 */ 0x8926,
- /* 2nd byte: 98 */ 0x8927,
- /* 2nd byte: 99 */ 0x8928,
- /* 2nd byte: 100 */ 0x8930,
- /* 2nd byte: 101 */ 0x8931,
- /* 2nd byte: 102 */ 0x8932,
- /* 2nd byte: 103 */ 0x8935,
- /* 2nd byte: 104 */ 0x8939,
- /* 2nd byte: 105 */ 0x893a,
- /* 2nd byte: 106 */ 0x893e,
- /* 2nd byte: 107 */ 0x8940,
- /* 2nd byte: 108 */ 0x8942,
- /* 2nd byte: 109 */ 0x8945,
- /* 2nd byte: 110 */ 0x8946,
- /* 2nd byte: 111 */ 0x8949,
- /* 2nd byte: 112 */ 0x894f,
- /* 2nd byte: 113 */ 0x8952,
- /* 2nd byte: 114 */ 0x8957,
- /* 2nd byte: 115 */ 0x895a,
- /* 2nd byte: 116 */ 0x895b,
- /* 2nd byte: 117 */ 0x895c,
- /* 2nd byte: 118 */ 0x8961,
- /* 2nd byte: 119 */ 0x8962,
- /* 2nd byte: 120 */ 0x8963,
- /* 2nd byte: 121 */ 0x896b,
- /* 2nd byte: 122 */ 0x896e,
- /* 2nd byte: 123 */ 0x8970,
- /* 2nd byte: 124 */ 0x8973,
- /* 2nd byte: 125 */ 0x8975,
- /* 2nd byte: 126 */ 0x897a},
-/* 1st byte: 93 */ {
- /* 2nd byte: 33 */ 0x897b,
- /* 2nd byte: 34 */ 0x897c,
- /* 2nd byte: 35 */ 0x897d,
- /* 2nd byte: 36 */ 0x8989,
- /* 2nd byte: 37 */ 0x898d,
- /* 2nd byte: 38 */ 0x8990,
- /* 2nd byte: 39 */ 0x8994,
- /* 2nd byte: 40 */ 0x8995,
- /* 2nd byte: 41 */ 0x899b,
- /* 2nd byte: 42 */ 0x899c,
- /* 2nd byte: 43 */ 0x899f,
- /* 2nd byte: 44 */ 0x89a0,
- /* 2nd byte: 45 */ 0x89a5,
- /* 2nd byte: 46 */ 0x89b0,
- /* 2nd byte: 47 */ 0x89b4,
- /* 2nd byte: 48 */ 0x89b5,
- /* 2nd byte: 49 */ 0x89b6,
- /* 2nd byte: 50 */ 0x89b7,
- /* 2nd byte: 51 */ 0x89bc,
- /* 2nd byte: 52 */ 0x89d4,
- /* 2nd byte: 53 */ 0x89d5,
- /* 2nd byte: 54 */ 0x89d6,
- /* 2nd byte: 55 */ 0x89d7,
- /* 2nd byte: 56 */ 0x89d8,
- /* 2nd byte: 57 */ 0x89e5,
- /* 2nd byte: 58 */ 0x89e9,
- /* 2nd byte: 59 */ 0x89eb,
- /* 2nd byte: 60 */ 0x89ed,
- /* 2nd byte: 61 */ 0x89f1,
- /* 2nd byte: 62 */ 0x89f3,
- /* 2nd byte: 63 */ 0x89f6,
- /* 2nd byte: 64 */ 0x89f9,
- /* 2nd byte: 65 */ 0x89fd,
- /* 2nd byte: 66 */ 0x89ff,
- /* 2nd byte: 67 */ 0x8a04,
- /* 2nd byte: 68 */ 0x8a05,
- /* 2nd byte: 69 */ 0x8a07,
- /* 2nd byte: 70 */ 0x8a0f,
- /* 2nd byte: 71 */ 0x8a11,
- /* 2nd byte: 72 */ 0x8a12,
- /* 2nd byte: 73 */ 0x8a14,
- /* 2nd byte: 74 */ 0x8a15,
- /* 2nd byte: 75 */ 0x8a1e,
- /* 2nd byte: 76 */ 0x8a20,
- /* 2nd byte: 77 */ 0x8a22,
- /* 2nd byte: 78 */ 0x8a24,
- /* 2nd byte: 79 */ 0x8a26,
- /* 2nd byte: 80 */ 0x8a2b,
- /* 2nd byte: 81 */ 0x8a2c,
- /* 2nd byte: 82 */ 0x8a2f,
- /* 2nd byte: 83 */ 0x8a35,
- /* 2nd byte: 84 */ 0x8a37,
- /* 2nd byte: 85 */ 0x8a3d,
- /* 2nd byte: 86 */ 0x8a3e,
- /* 2nd byte: 87 */ 0x8a40,
- /* 2nd byte: 88 */ 0x8a43,
- /* 2nd byte: 89 */ 0x8a45,
- /* 2nd byte: 90 */ 0x8a47,
- /* 2nd byte: 91 */ 0x8a49,
- /* 2nd byte: 92 */ 0x8a4d,
- /* 2nd byte: 93 */ 0x8a4e,
- /* 2nd byte: 94 */ 0x8a53,
- /* 2nd byte: 95 */ 0x8a56,
- /* 2nd byte: 96 */ 0x8a57,
- /* 2nd byte: 97 */ 0x8a58,
- /* 2nd byte: 98 */ 0x8a5c,
- /* 2nd byte: 99 */ 0x8a5d,
- /* 2nd byte: 100 */ 0x8a61,
- /* 2nd byte: 101 */ 0x8a65,
- /* 2nd byte: 102 */ 0x8a67,
- /* 2nd byte: 103 */ 0x8a75,
- /* 2nd byte: 104 */ 0x8a76,
- /* 2nd byte: 105 */ 0x8a77,
- /* 2nd byte: 106 */ 0x8a79,
- /* 2nd byte: 107 */ 0x8a7a,
- /* 2nd byte: 108 */ 0x8a7b,
- /* 2nd byte: 109 */ 0x8a7e,
- /* 2nd byte: 110 */ 0x8a7f,
- /* 2nd byte: 111 */ 0x8a80,
- /* 2nd byte: 112 */ 0x8a83,
- /* 2nd byte: 113 */ 0x8a86,
- /* 2nd byte: 114 */ 0x8a8b,
- /* 2nd byte: 115 */ 0x8a8f,
- /* 2nd byte: 116 */ 0x8a90,
- /* 2nd byte: 117 */ 0x8a92,
- /* 2nd byte: 118 */ 0x8a96,
- /* 2nd byte: 119 */ 0x8a97,
- /* 2nd byte: 120 */ 0x8a99,
- /* 2nd byte: 121 */ 0x8a9f,
- /* 2nd byte: 122 */ 0x8aa7,
- /* 2nd byte: 123 */ 0x8aa9,
- /* 2nd byte: 124 */ 0x8aae,
- /* 2nd byte: 125 */ 0x8aaf,
- /* 2nd byte: 126 */ 0x8ab3},
-/* 1st byte: 94 */ {
- /* 2nd byte: 33 */ 0x8ab6,
- /* 2nd byte: 34 */ 0x8ab7,
- /* 2nd byte: 35 */ 0x8abb,
- /* 2nd byte: 36 */ 0x8abe,
- /* 2nd byte: 37 */ 0x8ac3,
- /* 2nd byte: 38 */ 0x8ac6,
- /* 2nd byte: 39 */ 0x8ac8,
- /* 2nd byte: 40 */ 0x8ac9,
- /* 2nd byte: 41 */ 0x8aca,
- /* 2nd byte: 42 */ 0x8ad1,
- /* 2nd byte: 43 */ 0x8ad3,
- /* 2nd byte: 44 */ 0x8ad4,
- /* 2nd byte: 45 */ 0x8ad5,
- /* 2nd byte: 46 */ 0x8ad7,
- /* 2nd byte: 47 */ 0x8add,
- /* 2nd byte: 48 */ 0x8adf,
- /* 2nd byte: 49 */ 0x8aec,
- /* 2nd byte: 50 */ 0x8af0,
- /* 2nd byte: 51 */ 0x8af4,
- /* 2nd byte: 52 */ 0x8af5,
- /* 2nd byte: 53 */ 0x8af6,
- /* 2nd byte: 54 */ 0x8afc,
- /* 2nd byte: 55 */ 0x8aff,
- /* 2nd byte: 56 */ 0x8b05,
- /* 2nd byte: 57 */ 0x8b06,
- /* 2nd byte: 58 */ 0x8b0b,
- /* 2nd byte: 59 */ 0x8b11,
- /* 2nd byte: 60 */ 0x8b1c,
- /* 2nd byte: 61 */ 0x8b1e,
- /* 2nd byte: 62 */ 0x8b1f,
- /* 2nd byte: 63 */ 0x8b0a,
- /* 2nd byte: 64 */ 0x8b2d,
- /* 2nd byte: 65 */ 0x8b30,
- /* 2nd byte: 66 */ 0x8b37,
- /* 2nd byte: 67 */ 0x8b3c,
- /* 2nd byte: 68 */ 0x8b42,
- /* 2nd byte: 69 */ 0x8b43,
- /* 2nd byte: 70 */ 0x8b44,
- /* 2nd byte: 71 */ 0x8b45,
- /* 2nd byte: 72 */ 0x8b46,
- /* 2nd byte: 73 */ 0x8b48,
- /* 2nd byte: 74 */ 0x8b52,
- /* 2nd byte: 75 */ 0x8b53,
- /* 2nd byte: 76 */ 0x8b54,
- /* 2nd byte: 77 */ 0x8b59,
- /* 2nd byte: 78 */ 0x8b4d,
- /* 2nd byte: 79 */ 0x8b5e,
- /* 2nd byte: 80 */ 0x8b63,
- /* 2nd byte: 81 */ 0x8b6d,
- /* 2nd byte: 82 */ 0x8b76,
- /* 2nd byte: 83 */ 0x8b78,
- /* 2nd byte: 84 */ 0x8b79,
- /* 2nd byte: 85 */ 0x8b7c,
- /* 2nd byte: 86 */ 0x8b7e,
- /* 2nd byte: 87 */ 0x8b81,
- /* 2nd byte: 88 */ 0x8b84,
- /* 2nd byte: 89 */ 0x8b85,
- /* 2nd byte: 90 */ 0x8b8b,
- /* 2nd byte: 91 */ 0x8b8d,
- /* 2nd byte: 92 */ 0x8b8f,
- /* 2nd byte: 93 */ 0x8b94,
- /* 2nd byte: 94 */ 0x8b95,
- /* 2nd byte: 95 */ 0x8b9c,
- /* 2nd byte: 96 */ 0x8b9e,
- /* 2nd byte: 97 */ 0x8b9f,
- /* 2nd byte: 98 */ 0x8c38,
- /* 2nd byte: 99 */ 0x8c39,
- /* 2nd byte: 100 */ 0x8c3d,
- /* 2nd byte: 101 */ 0x8c3e,
- /* 2nd byte: 102 */ 0x8c45,
- /* 2nd byte: 103 */ 0x8c47,
- /* 2nd byte: 104 */ 0x8c49,
- /* 2nd byte: 105 */ 0x8c4b,
- /* 2nd byte: 106 */ 0x8c4f,
- /* 2nd byte: 107 */ 0x8c51,
- /* 2nd byte: 108 */ 0x8c53,
- /* 2nd byte: 109 */ 0x8c54,
- /* 2nd byte: 110 */ 0x8c57,
- /* 2nd byte: 111 */ 0x8c58,
- /* 2nd byte: 112 */ 0x8c5b,
- /* 2nd byte: 113 */ 0x8c5d,
- /* 2nd byte: 114 */ 0x8c59,
- /* 2nd byte: 115 */ 0x8c63,
- /* 2nd byte: 116 */ 0x8c64,
- /* 2nd byte: 117 */ 0x8c66,
- /* 2nd byte: 118 */ 0x8c68,
- /* 2nd byte: 119 */ 0x8c69,
- /* 2nd byte: 120 */ 0x8c6d,
- /* 2nd byte: 121 */ 0x8c73,
- /* 2nd byte: 122 */ 0x8c75,
- /* 2nd byte: 123 */ 0x8c76,
- /* 2nd byte: 124 */ 0x8c7b,
- /* 2nd byte: 125 */ 0x8c7e,
- /* 2nd byte: 126 */ 0x8c86},
-/* 1st byte: 95 */ {
- /* 2nd byte: 33 */ 0x8c87,
- /* 2nd byte: 34 */ 0x8c8b,
- /* 2nd byte: 35 */ 0x8c90,
- /* 2nd byte: 36 */ 0x8c92,
- /* 2nd byte: 37 */ 0x8c93,
- /* 2nd byte: 38 */ 0x8c99,
- /* 2nd byte: 39 */ 0x8c9b,
- /* 2nd byte: 40 */ 0x8c9c,
- /* 2nd byte: 41 */ 0x8ca4,
- /* 2nd byte: 42 */ 0x8cb9,
- /* 2nd byte: 43 */ 0x8cba,
- /* 2nd byte: 44 */ 0x8cc5,
- /* 2nd byte: 45 */ 0x8cc6,
- /* 2nd byte: 46 */ 0x8cc9,
- /* 2nd byte: 47 */ 0x8ccb,
- /* 2nd byte: 48 */ 0x8ccf,
- /* 2nd byte: 49 */ 0x8cd6,
- /* 2nd byte: 50 */ 0x8cd5,
- /* 2nd byte: 51 */ 0x8cd9,
- /* 2nd byte: 52 */ 0x8cdd,
- /* 2nd byte: 53 */ 0x8ce1,
- /* 2nd byte: 54 */ 0x8ce8,
- /* 2nd byte: 55 */ 0x8cec,
- /* 2nd byte: 56 */ 0x8cef,
- /* 2nd byte: 57 */ 0x8cf0,
- /* 2nd byte: 58 */ 0x8cf2,
- /* 2nd byte: 59 */ 0x8cf5,
- /* 2nd byte: 60 */ 0x8cf7,
- /* 2nd byte: 61 */ 0x8cf8,
- /* 2nd byte: 62 */ 0x8cfe,
- /* 2nd byte: 63 */ 0x8cff,
- /* 2nd byte: 64 */ 0x8d01,
- /* 2nd byte: 65 */ 0x8d03,
- /* 2nd byte: 66 */ 0x8d09,
- /* 2nd byte: 67 */ 0x8d12,
- /* 2nd byte: 68 */ 0x8d17,
- /* 2nd byte: 69 */ 0x8d1b,
- /* 2nd byte: 70 */ 0x8d65,
- /* 2nd byte: 71 */ 0x8d69,
- /* 2nd byte: 72 */ 0x8d6c,
- /* 2nd byte: 73 */ 0x8d6e,
- /* 2nd byte: 74 */ 0x8d7f,
- /* 2nd byte: 75 */ 0x8d82,
- /* 2nd byte: 76 */ 0x8d84,
- /* 2nd byte: 77 */ 0x8d88,
- /* 2nd byte: 78 */ 0x8d8d,
- /* 2nd byte: 79 */ 0x8d90,
- /* 2nd byte: 80 */ 0x8d91,
- /* 2nd byte: 81 */ 0x8d95,
- /* 2nd byte: 82 */ 0x8d9e,
- /* 2nd byte: 83 */ 0x8d9f,
- /* 2nd byte: 84 */ 0x8da0,
- /* 2nd byte: 85 */ 0x8da6,
- /* 2nd byte: 86 */ 0x8dab,
- /* 2nd byte: 87 */ 0x8dac,
- /* 2nd byte: 88 */ 0x8daf,
- /* 2nd byte: 89 */ 0x8db2,
- /* 2nd byte: 90 */ 0x8db5,
- /* 2nd byte: 91 */ 0x8db7,
- /* 2nd byte: 92 */ 0x8db9,
- /* 2nd byte: 93 */ 0x8dbb,
- /* 2nd byte: 94 */ 0x8dc0,
- /* 2nd byte: 95 */ 0x8dc5,
- /* 2nd byte: 96 */ 0x8dc6,
- /* 2nd byte: 97 */ 0x8dc7,
- /* 2nd byte: 98 */ 0x8dc8,
- /* 2nd byte: 99 */ 0x8dca,
- /* 2nd byte: 100 */ 0x8dce,
- /* 2nd byte: 101 */ 0x8dd1,
- /* 2nd byte: 102 */ 0x8dd4,
- /* 2nd byte: 103 */ 0x8dd5,
- /* 2nd byte: 104 */ 0x8dd7,
- /* 2nd byte: 105 */ 0x8dd9,
- /* 2nd byte: 106 */ 0x8de4,
- /* 2nd byte: 107 */ 0x8de5,
- /* 2nd byte: 108 */ 0x8de7,
- /* 2nd byte: 109 */ 0x8dec,
- /* 2nd byte: 110 */ 0x8df0,
- /* 2nd byte: 111 */ 0x8dbc,
- /* 2nd byte: 112 */ 0x8df1,
- /* 2nd byte: 113 */ 0x8df2,
- /* 2nd byte: 114 */ 0x8df4,
- /* 2nd byte: 115 */ 0x8dfd,
- /* 2nd byte: 116 */ 0x8e01,
- /* 2nd byte: 117 */ 0x8e04,
- /* 2nd byte: 118 */ 0x8e05,
- /* 2nd byte: 119 */ 0x8e06,
- /* 2nd byte: 120 */ 0x8e0b,
- /* 2nd byte: 121 */ 0x8e11,
- /* 2nd byte: 122 */ 0x8e14,
- /* 2nd byte: 123 */ 0x8e16,
- /* 2nd byte: 124 */ 0x8e20,
- /* 2nd byte: 125 */ 0x8e21,
- /* 2nd byte: 126 */ 0x8e22},
-/* 1st byte: 96 */ {
- /* 2nd byte: 33 */ 0x8e23,
- /* 2nd byte: 34 */ 0x8e26,
- /* 2nd byte: 35 */ 0x8e27,
- /* 2nd byte: 36 */ 0x8e31,
- /* 2nd byte: 37 */ 0x8e33,
- /* 2nd byte: 38 */ 0x8e36,
- /* 2nd byte: 39 */ 0x8e37,
- /* 2nd byte: 40 */ 0x8e38,
- /* 2nd byte: 41 */ 0x8e39,
- /* 2nd byte: 42 */ 0x8e3d,
- /* 2nd byte: 43 */ 0x8e40,
- /* 2nd byte: 44 */ 0x8e41,
- /* 2nd byte: 45 */ 0x8e4b,
- /* 2nd byte: 46 */ 0x8e4d,
- /* 2nd byte: 47 */ 0x8e4e,
- /* 2nd byte: 48 */ 0x8e4f,
- /* 2nd byte: 49 */ 0x8e54,
- /* 2nd byte: 50 */ 0x8e5b,
- /* 2nd byte: 51 */ 0x8e5c,
- /* 2nd byte: 52 */ 0x8e5d,
- /* 2nd byte: 53 */ 0x8e5e,
- /* 2nd byte: 54 */ 0x8e61,
- /* 2nd byte: 55 */ 0x8e62,
- /* 2nd byte: 56 */ 0x8e69,
- /* 2nd byte: 57 */ 0x8e6c,
- /* 2nd byte: 58 */ 0x8e6d,
- /* 2nd byte: 59 */ 0x8e6f,
- /* 2nd byte: 60 */ 0x8e70,
- /* 2nd byte: 61 */ 0x8e71,
- /* 2nd byte: 62 */ 0x8e79,
- /* 2nd byte: 63 */ 0x8e7a,
- /* 2nd byte: 64 */ 0x8e7b,
- /* 2nd byte: 65 */ 0x8e82,
- /* 2nd byte: 66 */ 0x8e83,
- /* 2nd byte: 67 */ 0x8e89,
- /* 2nd byte: 68 */ 0x8e90,
- /* 2nd byte: 69 */ 0x8e92,
- /* 2nd byte: 70 */ 0x8e95,
- /* 2nd byte: 71 */ 0x8e9a,
- /* 2nd byte: 72 */ 0x8e9b,
- /* 2nd byte: 73 */ 0x8e9d,
- /* 2nd byte: 74 */ 0x8e9e,
- /* 2nd byte: 75 */ 0x8ea2,
- /* 2nd byte: 76 */ 0x8ea7,
- /* 2nd byte: 77 */ 0x8ea9,
- /* 2nd byte: 78 */ 0x8ead,
- /* 2nd byte: 79 */ 0x8eae,
- /* 2nd byte: 80 */ 0x8eb3,
- /* 2nd byte: 81 */ 0x8eb5,
- /* 2nd byte: 82 */ 0x8eba,
- /* 2nd byte: 83 */ 0x8ebb,
- /* 2nd byte: 84 */ 0x8ec0,
- /* 2nd byte: 85 */ 0x8ec1,
- /* 2nd byte: 86 */ 0x8ec3,
- /* 2nd byte: 87 */ 0x8ec4,
- /* 2nd byte: 88 */ 0x8ec7,
- /* 2nd byte: 89 */ 0x8ecf,
- /* 2nd byte: 90 */ 0x8ed1,
- /* 2nd byte: 91 */ 0x8ed4,
- /* 2nd byte: 92 */ 0x8edc,
- /* 2nd byte: 93 */ 0x8ee8,
- /* 2nd byte: 94 */ 0x8eee,
- /* 2nd byte: 95 */ 0x8ef0,
- /* 2nd byte: 96 */ 0x8ef1,
- /* 2nd byte: 97 */ 0x8ef7,
- /* 2nd byte: 98 */ 0x8ef9,
- /* 2nd byte: 99 */ 0x8efa,
- /* 2nd byte: 100 */ 0x8eed,
- /* 2nd byte: 101 */ 0x8f00,
- /* 2nd byte: 102 */ 0x8f02,
- /* 2nd byte: 103 */ 0x8f07,
- /* 2nd byte: 104 */ 0x8f08,
- /* 2nd byte: 105 */ 0x8f0f,
- /* 2nd byte: 106 */ 0x8f10,
- /* 2nd byte: 107 */ 0x8f16,
- /* 2nd byte: 108 */ 0x8f17,
- /* 2nd byte: 109 */ 0x8f18,
- /* 2nd byte: 110 */ 0x8f1e,
- /* 2nd byte: 111 */ 0x8f20,
- /* 2nd byte: 112 */ 0x8f21,
- /* 2nd byte: 113 */ 0x8f23,
- /* 2nd byte: 114 */ 0x8f25,
- /* 2nd byte: 115 */ 0x8f27,
- /* 2nd byte: 116 */ 0x8f28,
- /* 2nd byte: 117 */ 0x8f2c,
- /* 2nd byte: 118 */ 0x8f2d,
- /* 2nd byte: 119 */ 0x8f2e,
- /* 2nd byte: 120 */ 0x8f34,
- /* 2nd byte: 121 */ 0x8f35,
- /* 2nd byte: 122 */ 0x8f36,
- /* 2nd byte: 123 */ 0x8f37,
- /* 2nd byte: 124 */ 0x8f3a,
- /* 2nd byte: 125 */ 0x8f40,
- /* 2nd byte: 126 */ 0x8f41},
-/* 1st byte: 97 */ {
- /* 2nd byte: 33 */ 0x8f43,
- /* 2nd byte: 34 */ 0x8f47,
- /* 2nd byte: 35 */ 0x8f4f,
- /* 2nd byte: 36 */ 0x8f51,
- /* 2nd byte: 37 */ 0x8f52,
- /* 2nd byte: 38 */ 0x8f53,
- /* 2nd byte: 39 */ 0x8f54,
- /* 2nd byte: 40 */ 0x8f55,
- /* 2nd byte: 41 */ 0x8f58,
- /* 2nd byte: 42 */ 0x8f5d,
- /* 2nd byte: 43 */ 0x8f5e,
- /* 2nd byte: 44 */ 0x8f65,
- /* 2nd byte: 45 */ 0x8f9d,
- /* 2nd byte: 46 */ 0x8fa0,
- /* 2nd byte: 47 */ 0x8fa1,
- /* 2nd byte: 48 */ 0x8fa4,
- /* 2nd byte: 49 */ 0x8fa5,
- /* 2nd byte: 50 */ 0x8fa6,
- /* 2nd byte: 51 */ 0x8fb5,
- /* 2nd byte: 52 */ 0x8fb6,
- /* 2nd byte: 53 */ 0x8fb8,
- /* 2nd byte: 54 */ 0x8fbe,
- /* 2nd byte: 55 */ 0x8fc0,
- /* 2nd byte: 56 */ 0x8fc1,
- /* 2nd byte: 57 */ 0x8fc6,
- /* 2nd byte: 58 */ 0x8fca,
- /* 2nd byte: 59 */ 0x8fcb,
- /* 2nd byte: 60 */ 0x8fcd,
- /* 2nd byte: 61 */ 0x8fd0,
- /* 2nd byte: 62 */ 0x8fd2,
- /* 2nd byte: 63 */ 0x8fd3,
- /* 2nd byte: 64 */ 0x8fd5,
- /* 2nd byte: 65 */ 0x8fe0,
- /* 2nd byte: 66 */ 0x8fe3,
- /* 2nd byte: 67 */ 0x8fe4,
- /* 2nd byte: 68 */ 0x8fe8,
- /* 2nd byte: 69 */ 0x8fee,
- /* 2nd byte: 70 */ 0x8ff1,
- /* 2nd byte: 71 */ 0x8ff5,
- /* 2nd byte: 72 */ 0x8ff6,
- /* 2nd byte: 73 */ 0x8ffb,
- /* 2nd byte: 74 */ 0x8ffe,
- /* 2nd byte: 75 */ 0x9002,
- /* 2nd byte: 76 */ 0x9004,
- /* 2nd byte: 77 */ 0x9008,
- /* 2nd byte: 78 */ 0x900c,
- /* 2nd byte: 79 */ 0x9018,
- /* 2nd byte: 80 */ 0x901b,
- /* 2nd byte: 81 */ 0x9028,
- /* 2nd byte: 82 */ 0x9029,
- /* 2nd byte: 83 */ 0x902f,
- /* 2nd byte: 84 */ 0x902a,
- /* 2nd byte: 85 */ 0x902c,
- /* 2nd byte: 86 */ 0x902d,
- /* 2nd byte: 87 */ 0x9033,
- /* 2nd byte: 88 */ 0x9034,
- /* 2nd byte: 89 */ 0x9037,
- /* 2nd byte: 90 */ 0x903f,
- /* 2nd byte: 91 */ 0x9043,
- /* 2nd byte: 92 */ 0x9044,
- /* 2nd byte: 93 */ 0x904c,
- /* 2nd byte: 94 */ 0x905b,
- /* 2nd byte: 95 */ 0x905d,
- /* 2nd byte: 96 */ 0x9062,
- /* 2nd byte: 97 */ 0x9066,
- /* 2nd byte: 98 */ 0x9067,
- /* 2nd byte: 99 */ 0x906c,
- /* 2nd byte: 100 */ 0x9070,
- /* 2nd byte: 101 */ 0x9074,
- /* 2nd byte: 102 */ 0x9079,
- /* 2nd byte: 103 */ 0x9085,
- /* 2nd byte: 104 */ 0x9088,
- /* 2nd byte: 105 */ 0x908b,
- /* 2nd byte: 106 */ 0x908c,
- /* 2nd byte: 107 */ 0x908e,
- /* 2nd byte: 108 */ 0x9090,
- /* 2nd byte: 109 */ 0x9095,
- /* 2nd byte: 110 */ 0x9097,
- /* 2nd byte: 111 */ 0x9098,
- /* 2nd byte: 112 */ 0x9099,
- /* 2nd byte: 113 */ 0x909b,
- /* 2nd byte: 114 */ 0x90a0,
- /* 2nd byte: 115 */ 0x90a1,
- /* 2nd byte: 116 */ 0x90a2,
- /* 2nd byte: 117 */ 0x90a5,
- /* 2nd byte: 118 */ 0x90b0,
- /* 2nd byte: 119 */ 0x90b2,
- /* 2nd byte: 120 */ 0x90b3,
- /* 2nd byte: 121 */ 0x90b4,
- /* 2nd byte: 122 */ 0x90b6,
- /* 2nd byte: 123 */ 0x90bd,
- /* 2nd byte: 124 */ 0x90cc,
- /* 2nd byte: 125 */ 0x90be,
- /* 2nd byte: 126 */ 0x90c3},
-/* 1st byte: 98 */ {
- /* 2nd byte: 33 */ 0x90c4,
- /* 2nd byte: 34 */ 0x90c5,
- /* 2nd byte: 35 */ 0x90c7,
- /* 2nd byte: 36 */ 0x90c8,
- /* 2nd byte: 37 */ 0x90d5,
- /* 2nd byte: 38 */ 0x90d7,
- /* 2nd byte: 39 */ 0x90d8,
- /* 2nd byte: 40 */ 0x90d9,
- /* 2nd byte: 41 */ 0x90dc,
- /* 2nd byte: 42 */ 0x90dd,
- /* 2nd byte: 43 */ 0x90df,
- /* 2nd byte: 44 */ 0x90e5,
- /* 2nd byte: 45 */ 0x90d2,
- /* 2nd byte: 46 */ 0x90f6,
- /* 2nd byte: 47 */ 0x90eb,
- /* 2nd byte: 48 */ 0x90ef,
- /* 2nd byte: 49 */ 0x90f0,
- /* 2nd byte: 50 */ 0x90f4,
- /* 2nd byte: 51 */ 0x90fe,
- /* 2nd byte: 52 */ 0x90ff,
- /* 2nd byte: 53 */ 0x9100,
- /* 2nd byte: 54 */ 0x9104,
- /* 2nd byte: 55 */ 0x9105,
- /* 2nd byte: 56 */ 0x9106,
- /* 2nd byte: 57 */ 0x9108,
- /* 2nd byte: 58 */ 0x910d,
- /* 2nd byte: 59 */ 0x9110,
- /* 2nd byte: 60 */ 0x9114,
- /* 2nd byte: 61 */ 0x9116,
- /* 2nd byte: 62 */ 0x9117,
- /* 2nd byte: 63 */ 0x9118,
- /* 2nd byte: 64 */ 0x911a,
- /* 2nd byte: 65 */ 0x911c,
- /* 2nd byte: 66 */ 0x911e,
- /* 2nd byte: 67 */ 0x9120,
- /* 2nd byte: 68 */ 0x9125,
- /* 2nd byte: 69 */ 0x9122,
- /* 2nd byte: 70 */ 0x9123,
- /* 2nd byte: 71 */ 0x9127,
- /* 2nd byte: 72 */ 0x9129,
- /* 2nd byte: 73 */ 0x912e,
- /* 2nd byte: 74 */ 0x912f,
- /* 2nd byte: 75 */ 0x9131,
- /* 2nd byte: 76 */ 0x9134,
- /* 2nd byte: 77 */ 0x9136,
- /* 2nd byte: 78 */ 0x9137,
- /* 2nd byte: 79 */ 0x9139,
- /* 2nd byte: 80 */ 0x913a,
- /* 2nd byte: 81 */ 0x913c,
- /* 2nd byte: 82 */ 0x913d,
- /* 2nd byte: 83 */ 0x9143,
- /* 2nd byte: 84 */ 0x9147,
- /* 2nd byte: 85 */ 0x9148,
- /* 2nd byte: 86 */ 0x914f,
- /* 2nd byte: 87 */ 0x9153,
- /* 2nd byte: 88 */ 0x9157,
- /* 2nd byte: 89 */ 0x9159,
- /* 2nd byte: 90 */ 0x915a,
- /* 2nd byte: 91 */ 0x915b,
- /* 2nd byte: 92 */ 0x9161,
- /* 2nd byte: 93 */ 0x9164,
- /* 2nd byte: 94 */ 0x9167,
- /* 2nd byte: 95 */ 0x916d,
- /* 2nd byte: 96 */ 0x9174,
- /* 2nd byte: 97 */ 0x9179,
- /* 2nd byte: 98 */ 0x917a,
- /* 2nd byte: 99 */ 0x917b,
- /* 2nd byte: 100 */ 0x9181,
- /* 2nd byte: 101 */ 0x9183,
- /* 2nd byte: 102 */ 0x9185,
- /* 2nd byte: 103 */ 0x9186,
- /* 2nd byte: 104 */ 0x918a,
- /* 2nd byte: 105 */ 0x918e,
- /* 2nd byte: 106 */ 0x9191,
- /* 2nd byte: 107 */ 0x9193,
- /* 2nd byte: 108 */ 0x9194,
- /* 2nd byte: 109 */ 0x9195,
- /* 2nd byte: 110 */ 0x9198,
- /* 2nd byte: 111 */ 0x919e,
- /* 2nd byte: 112 */ 0x91a1,
- /* 2nd byte: 113 */ 0x91a6,
- /* 2nd byte: 114 */ 0x91a8,
- /* 2nd byte: 115 */ 0x91ac,
- /* 2nd byte: 116 */ 0x91ad,
- /* 2nd byte: 117 */ 0x91ae,
- /* 2nd byte: 118 */ 0x91b0,
- /* 2nd byte: 119 */ 0x91b1,
- /* 2nd byte: 120 */ 0x91b2,
- /* 2nd byte: 121 */ 0x91b3,
- /* 2nd byte: 122 */ 0x91b6,
- /* 2nd byte: 123 */ 0x91bb,
- /* 2nd byte: 124 */ 0x91bc,
- /* 2nd byte: 125 */ 0x91bd,
- /* 2nd byte: 126 */ 0x91bf},
-/* 1st byte: 99 */ {
- /* 2nd byte: 33 */ 0x91c2,
- /* 2nd byte: 34 */ 0x91c3,
- /* 2nd byte: 35 */ 0x91c5,
- /* 2nd byte: 36 */ 0x91d3,
- /* 2nd byte: 37 */ 0x91d4,
- /* 2nd byte: 38 */ 0x91d7,
- /* 2nd byte: 39 */ 0x91d9,
- /* 2nd byte: 40 */ 0x91da,
- /* 2nd byte: 41 */ 0x91de,
- /* 2nd byte: 42 */ 0x91e4,
- /* 2nd byte: 43 */ 0x91e5,
- /* 2nd byte: 44 */ 0x91e9,
- /* 2nd byte: 45 */ 0x91ea,
- /* 2nd byte: 46 */ 0x91ec,
- /* 2nd byte: 47 */ 0x91ed,
- /* 2nd byte: 48 */ 0x91ee,
- /* 2nd byte: 49 */ 0x91ef,
- /* 2nd byte: 50 */ 0x91f0,
- /* 2nd byte: 51 */ 0x91f1,
- /* 2nd byte: 52 */ 0x91f7,
- /* 2nd byte: 53 */ 0x91f9,
- /* 2nd byte: 54 */ 0x91fb,
- /* 2nd byte: 55 */ 0x91fd,
- /* 2nd byte: 56 */ 0x9200,
- /* 2nd byte: 57 */ 0x9201,
- /* 2nd byte: 58 */ 0x9204,
- /* 2nd byte: 59 */ 0x9205,
- /* 2nd byte: 60 */ 0x9206,
- /* 2nd byte: 61 */ 0x9207,
- /* 2nd byte: 62 */ 0x9209,
- /* 2nd byte: 63 */ 0x920a,
- /* 2nd byte: 64 */ 0x920c,
- /* 2nd byte: 65 */ 0x9210,
- /* 2nd byte: 66 */ 0x9212,
- /* 2nd byte: 67 */ 0x9213,
- /* 2nd byte: 68 */ 0x9216,
- /* 2nd byte: 69 */ 0x9218,
- /* 2nd byte: 70 */ 0x921c,
- /* 2nd byte: 71 */ 0x921d,
- /* 2nd byte: 72 */ 0x9223,
- /* 2nd byte: 73 */ 0x9224,
- /* 2nd byte: 74 */ 0x9225,
- /* 2nd byte: 75 */ 0x9226,
- /* 2nd byte: 76 */ 0x9228,
- /* 2nd byte: 77 */ 0x922e,
- /* 2nd byte: 78 */ 0x922f,
- /* 2nd byte: 79 */ 0x9230,
- /* 2nd byte: 80 */ 0x9233,
- /* 2nd byte: 81 */ 0x9235,
- /* 2nd byte: 82 */ 0x9236,
- /* 2nd byte: 83 */ 0x9238,
- /* 2nd byte: 84 */ 0x9239,
- /* 2nd byte: 85 */ 0x923a,
- /* 2nd byte: 86 */ 0x923c,
- /* 2nd byte: 87 */ 0x923e,
- /* 2nd byte: 88 */ 0x9240,
- /* 2nd byte: 89 */ 0x9242,
- /* 2nd byte: 90 */ 0x9243,
- /* 2nd byte: 91 */ 0x9246,
- /* 2nd byte: 92 */ 0x9247,
- /* 2nd byte: 93 */ 0x924a,
- /* 2nd byte: 94 */ 0x924d,
- /* 2nd byte: 95 */ 0x924e,
- /* 2nd byte: 96 */ 0x924f,
- /* 2nd byte: 97 */ 0x9251,
- /* 2nd byte: 98 */ 0x9258,
- /* 2nd byte: 99 */ 0x9259,
- /* 2nd byte: 100 */ 0x925c,
- /* 2nd byte: 101 */ 0x925d,
- /* 2nd byte: 102 */ 0x9260,
- /* 2nd byte: 103 */ 0x9261,
- /* 2nd byte: 104 */ 0x9265,
- /* 2nd byte: 105 */ 0x9267,
- /* 2nd byte: 106 */ 0x9268,
- /* 2nd byte: 107 */ 0x9269,
- /* 2nd byte: 108 */ 0x926e,
- /* 2nd byte: 109 */ 0x926f,
- /* 2nd byte: 110 */ 0x9270,
- /* 2nd byte: 111 */ 0x9275,
- /* 2nd byte: 112 */ 0x9276,
- /* 2nd byte: 113 */ 0x9277,
- /* 2nd byte: 114 */ 0x9278,
- /* 2nd byte: 115 */ 0x9279,
- /* 2nd byte: 116 */ 0x927b,
- /* 2nd byte: 117 */ 0x927c,
- /* 2nd byte: 118 */ 0x927d,
- /* 2nd byte: 119 */ 0x927f,
- /* 2nd byte: 120 */ 0x9288,
- /* 2nd byte: 121 */ 0x9289,
- /* 2nd byte: 122 */ 0x928a,
- /* 2nd byte: 123 */ 0x928d,
- /* 2nd byte: 124 */ 0x928e,
- /* 2nd byte: 125 */ 0x9292,
- /* 2nd byte: 126 */ 0x9297},
-/* 1st byte: 100 */ {
- /* 2nd byte: 33 */ 0x9299,
- /* 2nd byte: 34 */ 0x929f,
- /* 2nd byte: 35 */ 0x92a0,
- /* 2nd byte: 36 */ 0x92a4,
- /* 2nd byte: 37 */ 0x92a5,
- /* 2nd byte: 38 */ 0x92a7,
- /* 2nd byte: 39 */ 0x92a8,
- /* 2nd byte: 40 */ 0x92ab,
- /* 2nd byte: 41 */ 0x92af,
- /* 2nd byte: 42 */ 0x92b2,
- /* 2nd byte: 43 */ 0x92b6,
- /* 2nd byte: 44 */ 0x92b8,
- /* 2nd byte: 45 */ 0x92ba,
- /* 2nd byte: 46 */ 0x92bb,
- /* 2nd byte: 47 */ 0x92bc,
- /* 2nd byte: 48 */ 0x92bd,
- /* 2nd byte: 49 */ 0x92bf,
- /* 2nd byte: 50 */ 0x92c0,
- /* 2nd byte: 51 */ 0x92c1,
- /* 2nd byte: 52 */ 0x92c2,
- /* 2nd byte: 53 */ 0x92c3,
- /* 2nd byte: 54 */ 0x92c5,
- /* 2nd byte: 55 */ 0x92c6,
- /* 2nd byte: 56 */ 0x92c7,
- /* 2nd byte: 57 */ 0x92c8,
- /* 2nd byte: 58 */ 0x92cb,
- /* 2nd byte: 59 */ 0x92cc,
- /* 2nd byte: 60 */ 0x92cd,
- /* 2nd byte: 61 */ 0x92ce,
- /* 2nd byte: 62 */ 0x92d0,
- /* 2nd byte: 63 */ 0x92d3,
- /* 2nd byte: 64 */ 0x92d5,
- /* 2nd byte: 65 */ 0x92d7,
- /* 2nd byte: 66 */ 0x92d8,
- /* 2nd byte: 67 */ 0x92d9,
- /* 2nd byte: 68 */ 0x92dc,
- /* 2nd byte: 69 */ 0x92dd,
- /* 2nd byte: 70 */ 0x92df,
- /* 2nd byte: 71 */ 0x92e0,
- /* 2nd byte: 72 */ 0x92e1,
- /* 2nd byte: 73 */ 0x92e3,
- /* 2nd byte: 74 */ 0x92e5,
- /* 2nd byte: 75 */ 0x92e7,
- /* 2nd byte: 76 */ 0x92e8,
- /* 2nd byte: 77 */ 0x92ec,
- /* 2nd byte: 78 */ 0x92ee,
- /* 2nd byte: 79 */ 0x92f0,
- /* 2nd byte: 80 */ 0x92f9,
- /* 2nd byte: 81 */ 0x92fb,
- /* 2nd byte: 82 */ 0x92ff,
- /* 2nd byte: 83 */ 0x9300,
- /* 2nd byte: 84 */ 0x9302,
- /* 2nd byte: 85 */ 0x9308,
- /* 2nd byte: 86 */ 0x930d,
- /* 2nd byte: 87 */ 0x9311,
- /* 2nd byte: 88 */ 0x9314,
- /* 2nd byte: 89 */ 0x9315,
- /* 2nd byte: 90 */ 0x931c,
- /* 2nd byte: 91 */ 0x931d,
- /* 2nd byte: 92 */ 0x931e,
- /* 2nd byte: 93 */ 0x931f,
- /* 2nd byte: 94 */ 0x9321,
- /* 2nd byte: 95 */ 0x9324,
- /* 2nd byte: 96 */ 0x9325,
- /* 2nd byte: 97 */ 0x9327,
- /* 2nd byte: 98 */ 0x9329,
- /* 2nd byte: 99 */ 0x932a,
- /* 2nd byte: 100 */ 0x9333,
- /* 2nd byte: 101 */ 0x9334,
- /* 2nd byte: 102 */ 0x9336,
- /* 2nd byte: 103 */ 0x9337,
- /* 2nd byte: 104 */ 0x9347,
- /* 2nd byte: 105 */ 0x9348,
- /* 2nd byte: 106 */ 0x9349,
- /* 2nd byte: 107 */ 0x9350,
- /* 2nd byte: 108 */ 0x9351,
- /* 2nd byte: 109 */ 0x9352,
- /* 2nd byte: 110 */ 0x9355,
- /* 2nd byte: 111 */ 0x9357,
- /* 2nd byte: 112 */ 0x9358,
- /* 2nd byte: 113 */ 0x935a,
- /* 2nd byte: 114 */ 0x935e,
- /* 2nd byte: 115 */ 0x9364,
- /* 2nd byte: 116 */ 0x9365,
- /* 2nd byte: 117 */ 0x9367,
- /* 2nd byte: 118 */ 0x9369,
- /* 2nd byte: 119 */ 0x936a,
- /* 2nd byte: 120 */ 0x936d,
- /* 2nd byte: 121 */ 0x936f,
- /* 2nd byte: 122 */ 0x9370,
- /* 2nd byte: 123 */ 0x9371,
- /* 2nd byte: 124 */ 0x9373,
- /* 2nd byte: 125 */ 0x9374,
- /* 2nd byte: 126 */ 0x9376},
-/* 1st byte: 101 */ {
- /* 2nd byte: 33 */ 0x937a,
- /* 2nd byte: 34 */ 0x937d,
- /* 2nd byte: 35 */ 0x937f,
- /* 2nd byte: 36 */ 0x9380,
- /* 2nd byte: 37 */ 0x9381,
- /* 2nd byte: 38 */ 0x9382,
- /* 2nd byte: 39 */ 0x9388,
- /* 2nd byte: 40 */ 0x938a,
- /* 2nd byte: 41 */ 0x938b,
- /* 2nd byte: 42 */ 0x938d,
- /* 2nd byte: 43 */ 0x938f,
- /* 2nd byte: 44 */ 0x9392,
- /* 2nd byte: 45 */ 0x9395,
- /* 2nd byte: 46 */ 0x9398,
- /* 2nd byte: 47 */ 0x939b,
- /* 2nd byte: 48 */ 0x939e,
- /* 2nd byte: 49 */ 0x93a1,
- /* 2nd byte: 50 */ 0x93a3,
- /* 2nd byte: 51 */ 0x93a4,
- /* 2nd byte: 52 */ 0x93a6,
- /* 2nd byte: 53 */ 0x93a8,
- /* 2nd byte: 54 */ 0x93ab,
- /* 2nd byte: 55 */ 0x93b4,
- /* 2nd byte: 56 */ 0x93b5,
- /* 2nd byte: 57 */ 0x93b6,
- /* 2nd byte: 58 */ 0x93ba,
- /* 2nd byte: 59 */ 0x93a9,
- /* 2nd byte: 60 */ 0x93c1,
- /* 2nd byte: 61 */ 0x93c4,
- /* 2nd byte: 62 */ 0x93c5,
- /* 2nd byte: 63 */ 0x93c6,
- /* 2nd byte: 64 */ 0x93c7,
- /* 2nd byte: 65 */ 0x93c9,
- /* 2nd byte: 66 */ 0x93ca,
- /* 2nd byte: 67 */ 0x93cb,
- /* 2nd byte: 68 */ 0x93cc,
- /* 2nd byte: 69 */ 0x93cd,
- /* 2nd byte: 70 */ 0x93d3,
- /* 2nd byte: 71 */ 0x93d9,
- /* 2nd byte: 72 */ 0x93dc,
- /* 2nd byte: 73 */ 0x93de,
- /* 2nd byte: 74 */ 0x93df,
- /* 2nd byte: 75 */ 0x93e2,
- /* 2nd byte: 76 */ 0x93e6,
- /* 2nd byte: 77 */ 0x93e7,
- /* 2nd byte: 78 */ 0x93f9,
- /* 2nd byte: 79 */ 0x93f7,
- /* 2nd byte: 80 */ 0x93f8,
- /* 2nd byte: 81 */ 0x93fa,
- /* 2nd byte: 82 */ 0x93fb,
- /* 2nd byte: 83 */ 0x93fd,
- /* 2nd byte: 84 */ 0x9401,
- /* 2nd byte: 85 */ 0x9402,
- /* 2nd byte: 86 */ 0x9404,
- /* 2nd byte: 87 */ 0x9408,
- /* 2nd byte: 88 */ 0x9409,
- /* 2nd byte: 89 */ 0x940d,
- /* 2nd byte: 90 */ 0x940e,
- /* 2nd byte: 91 */ 0x940f,
- /* 2nd byte: 92 */ 0x9415,
- /* 2nd byte: 93 */ 0x9416,
- /* 2nd byte: 94 */ 0x9417,
- /* 2nd byte: 95 */ 0x941f,
- /* 2nd byte: 96 */ 0x942e,
- /* 2nd byte: 97 */ 0x942f,
- /* 2nd byte: 98 */ 0x9431,
- /* 2nd byte: 99 */ 0x9432,
- /* 2nd byte: 100 */ 0x9433,
- /* 2nd byte: 101 */ 0x9434,
- /* 2nd byte: 102 */ 0x943b,
- /* 2nd byte: 103 */ 0x943f,
- /* 2nd byte: 104 */ 0x943d,
- /* 2nd byte: 105 */ 0x9443,
- /* 2nd byte: 106 */ 0x9445,
- /* 2nd byte: 107 */ 0x9448,
- /* 2nd byte: 108 */ 0x944a,
- /* 2nd byte: 109 */ 0x944c,
- /* 2nd byte: 110 */ 0x9455,
- /* 2nd byte: 111 */ 0x9459,
- /* 2nd byte: 112 */ 0x945c,
- /* 2nd byte: 113 */ 0x945f,
- /* 2nd byte: 114 */ 0x9461,
- /* 2nd byte: 115 */ 0x9463,
- /* 2nd byte: 116 */ 0x9468,
- /* 2nd byte: 117 */ 0x946b,
- /* 2nd byte: 118 */ 0x946d,
- /* 2nd byte: 119 */ 0x946e,
- /* 2nd byte: 120 */ 0x946f,
- /* 2nd byte: 121 */ 0x9471,
- /* 2nd byte: 122 */ 0x9472,
- /* 2nd byte: 123 */ 0x9484,
- /* 2nd byte: 124 */ 0x9483,
- /* 2nd byte: 125 */ 0x9578,
- /* 2nd byte: 126 */ 0x9579},
-/* 1st byte: 102 */ {
- /* 2nd byte: 33 */ 0x957e,
- /* 2nd byte: 34 */ 0x9584,
- /* 2nd byte: 35 */ 0x9588,
- /* 2nd byte: 36 */ 0x958c,
- /* 2nd byte: 37 */ 0x958d,
- /* 2nd byte: 38 */ 0x958e,
- /* 2nd byte: 39 */ 0x959d,
- /* 2nd byte: 40 */ 0x959e,
- /* 2nd byte: 41 */ 0x959f,
- /* 2nd byte: 42 */ 0x95a1,
- /* 2nd byte: 43 */ 0x95a6,
- /* 2nd byte: 44 */ 0x95a9,
- /* 2nd byte: 45 */ 0x95ab,
- /* 2nd byte: 46 */ 0x95ac,
- /* 2nd byte: 47 */ 0x95b4,
- /* 2nd byte: 48 */ 0x95b6,
- /* 2nd byte: 49 */ 0x95ba,
- /* 2nd byte: 50 */ 0x95bd,
- /* 2nd byte: 51 */ 0x95bf,
- /* 2nd byte: 52 */ 0x95c6,
- /* 2nd byte: 53 */ 0x95c8,
- /* 2nd byte: 54 */ 0x95c9,
- /* 2nd byte: 55 */ 0x95cb,
- /* 2nd byte: 56 */ 0x95d0,
- /* 2nd byte: 57 */ 0x95d1,
- /* 2nd byte: 58 */ 0x95d2,
- /* 2nd byte: 59 */ 0x95d3,
- /* 2nd byte: 60 */ 0x95d9,
- /* 2nd byte: 61 */ 0x95da,
- /* 2nd byte: 62 */ 0x95dd,
- /* 2nd byte: 63 */ 0x95de,
- /* 2nd byte: 64 */ 0x95df,
- /* 2nd byte: 65 */ 0x95e0,
- /* 2nd byte: 66 */ 0x95e4,
- /* 2nd byte: 67 */ 0x95e6,
- /* 2nd byte: 68 */ 0x961d,
- /* 2nd byte: 69 */ 0x961e,
- /* 2nd byte: 70 */ 0x9622,
- /* 2nd byte: 71 */ 0x9624,
- /* 2nd byte: 72 */ 0x9625,
- /* 2nd byte: 73 */ 0x9626,
- /* 2nd byte: 74 */ 0x962c,
- /* 2nd byte: 75 */ 0x9631,
- /* 2nd byte: 76 */ 0x9633,
- /* 2nd byte: 77 */ 0x9637,
- /* 2nd byte: 78 */ 0x9638,
- /* 2nd byte: 79 */ 0x9639,
- /* 2nd byte: 80 */ 0x963a,
- /* 2nd byte: 81 */ 0x963c,
- /* 2nd byte: 82 */ 0x963d,
- /* 2nd byte: 83 */ 0x9641,
- /* 2nd byte: 84 */ 0x9652,
- /* 2nd byte: 85 */ 0x9654,
- /* 2nd byte: 86 */ 0x9656,
- /* 2nd byte: 87 */ 0x9657,
- /* 2nd byte: 88 */ 0x9658,
- /* 2nd byte: 89 */ 0x9661,
- /* 2nd byte: 90 */ 0x966e,
- /* 2nd byte: 91 */ 0x9674,
- /* 2nd byte: 92 */ 0x967b,
- /* 2nd byte: 93 */ 0x967c,
- /* 2nd byte: 94 */ 0x967e,
- /* 2nd byte: 95 */ 0x967f,
- /* 2nd byte: 96 */ 0x9681,
- /* 2nd byte: 97 */ 0x9682,
- /* 2nd byte: 98 */ 0x9683,
- /* 2nd byte: 99 */ 0x9684,
- /* 2nd byte: 100 */ 0x9689,
- /* 2nd byte: 101 */ 0x9691,
- /* 2nd byte: 102 */ 0x9696,
- /* 2nd byte: 103 */ 0x969a,
- /* 2nd byte: 104 */ 0x969d,
- /* 2nd byte: 105 */ 0x969f,
- /* 2nd byte: 106 */ 0x96a4,
- /* 2nd byte: 107 */ 0x96a5,
- /* 2nd byte: 108 */ 0x96a6,
- /* 2nd byte: 109 */ 0x96a9,
- /* 2nd byte: 110 */ 0x96ae,
- /* 2nd byte: 111 */ 0x96af,
- /* 2nd byte: 112 */ 0x96b3,
- /* 2nd byte: 113 */ 0x96ba,
- /* 2nd byte: 114 */ 0x96ca,
- /* 2nd byte: 115 */ 0x96d2,
- /* 2nd byte: 116 */ 0x5db2,
- /* 2nd byte: 117 */ 0x96d8,
- /* 2nd byte: 118 */ 0x96da,
- /* 2nd byte: 119 */ 0x96dd,
- /* 2nd byte: 120 */ 0x96de,
- /* 2nd byte: 121 */ 0x96df,
- /* 2nd byte: 122 */ 0x96e9,
- /* 2nd byte: 123 */ 0x96ef,
- /* 2nd byte: 124 */ 0x96f1,
- /* 2nd byte: 125 */ 0x96fa,
- /* 2nd byte: 126 */ 0x9702},
-/* 1st byte: 103 */ {
- /* 2nd byte: 33 */ 0x9703,
- /* 2nd byte: 34 */ 0x9705,
- /* 2nd byte: 35 */ 0x9709,
- /* 2nd byte: 36 */ 0x971a,
- /* 2nd byte: 37 */ 0x971b,
- /* 2nd byte: 38 */ 0x971d,
- /* 2nd byte: 39 */ 0x9721,
- /* 2nd byte: 40 */ 0x9722,
- /* 2nd byte: 41 */ 0x9723,
- /* 2nd byte: 42 */ 0x9728,
- /* 2nd byte: 43 */ 0x9731,
- /* 2nd byte: 44 */ 0x9733,
- /* 2nd byte: 45 */ 0x9741,
- /* 2nd byte: 46 */ 0x9743,
- /* 2nd byte: 47 */ 0x974a,
- /* 2nd byte: 48 */ 0x974e,
- /* 2nd byte: 49 */ 0x974f,
- /* 2nd byte: 50 */ 0x9755,
- /* 2nd byte: 51 */ 0x9757,
- /* 2nd byte: 52 */ 0x9758,
- /* 2nd byte: 53 */ 0x975a,
- /* 2nd byte: 54 */ 0x975b,
- /* 2nd byte: 55 */ 0x9763,
- /* 2nd byte: 56 */ 0x9767,
- /* 2nd byte: 57 */ 0x976a,
- /* 2nd byte: 58 */ 0x976e,
- /* 2nd byte: 59 */ 0x9773,
- /* 2nd byte: 60 */ 0x9776,
- /* 2nd byte: 61 */ 0x9777,
- /* 2nd byte: 62 */ 0x9778,
- /* 2nd byte: 63 */ 0x977b,
- /* 2nd byte: 64 */ 0x977d,
- /* 2nd byte: 65 */ 0x977f,
- /* 2nd byte: 66 */ 0x9780,
- /* 2nd byte: 67 */ 0x9789,
- /* 2nd byte: 68 */ 0x9795,
- /* 2nd byte: 69 */ 0x9796,
- /* 2nd byte: 70 */ 0x9797,
- /* 2nd byte: 71 */ 0x9799,
- /* 2nd byte: 72 */ 0x979a,
- /* 2nd byte: 73 */ 0x979e,
- /* 2nd byte: 74 */ 0x979f,
- /* 2nd byte: 75 */ 0x97a2,
- /* 2nd byte: 76 */ 0x97ac,
- /* 2nd byte: 77 */ 0x97ae,
- /* 2nd byte: 78 */ 0x97b1,
- /* 2nd byte: 79 */ 0x97b2,
- /* 2nd byte: 80 */ 0x97b5,
- /* 2nd byte: 81 */ 0x97b6,
- /* 2nd byte: 82 */ 0x97b8,
- /* 2nd byte: 83 */ 0x97b9,
- /* 2nd byte: 84 */ 0x97ba,
- /* 2nd byte: 85 */ 0x97bc,
- /* 2nd byte: 86 */ 0x97be,
- /* 2nd byte: 87 */ 0x97bf,
- /* 2nd byte: 88 */ 0x97c1,
- /* 2nd byte: 89 */ 0x97c4,
- /* 2nd byte: 90 */ 0x97c5,
- /* 2nd byte: 91 */ 0x97c7,
- /* 2nd byte: 92 */ 0x97c9,
- /* 2nd byte: 93 */ 0x97ca,
- /* 2nd byte: 94 */ 0x97cc,
- /* 2nd byte: 95 */ 0x97cd,
- /* 2nd byte: 96 */ 0x97ce,
- /* 2nd byte: 97 */ 0x97d0,
- /* 2nd byte: 98 */ 0x97d1,
- /* 2nd byte: 99 */ 0x97d4,
- /* 2nd byte: 100 */ 0x97d7,
- /* 2nd byte: 101 */ 0x97d8,
- /* 2nd byte: 102 */ 0x97d9,
- /* 2nd byte: 103 */ 0x97dd,
- /* 2nd byte: 104 */ 0x97de,
- /* 2nd byte: 105 */ 0x97e0,
- /* 2nd byte: 106 */ 0x97db,
- /* 2nd byte: 107 */ 0x97e1,
- /* 2nd byte: 108 */ 0x97e4,
- /* 2nd byte: 109 */ 0x97ef,
- /* 2nd byte: 110 */ 0x97f1,
- /* 2nd byte: 111 */ 0x97f4,
- /* 2nd byte: 112 */ 0x97f7,
- /* 2nd byte: 113 */ 0x97f8,
- /* 2nd byte: 114 */ 0x97fa,
- /* 2nd byte: 115 */ 0x9807,
- /* 2nd byte: 116 */ 0x980a,
- /* 2nd byte: 117 */ 0x9819,
- /* 2nd byte: 118 */ 0x980d,
- /* 2nd byte: 119 */ 0x980e,
- /* 2nd byte: 120 */ 0x9814,
- /* 2nd byte: 121 */ 0x9816,
- /* 2nd byte: 122 */ 0x981c,
- /* 2nd byte: 123 */ 0x981e,
- /* 2nd byte: 124 */ 0x9820,
- /* 2nd byte: 125 */ 0x9823,
- /* 2nd byte: 126 */ 0x9826},
-/* 1st byte: 104 */ {
- /* 2nd byte: 33 */ 0x982b,
- /* 2nd byte: 34 */ 0x982e,
- /* 2nd byte: 35 */ 0x982f,
- /* 2nd byte: 36 */ 0x9830,
- /* 2nd byte: 37 */ 0x9832,
- /* 2nd byte: 38 */ 0x9833,
- /* 2nd byte: 39 */ 0x9835,
- /* 2nd byte: 40 */ 0x9825,
- /* 2nd byte: 41 */ 0x983e,
- /* 2nd byte: 42 */ 0x9844,
- /* 2nd byte: 43 */ 0x9847,
- /* 2nd byte: 44 */ 0x984a,
- /* 2nd byte: 45 */ 0x9851,
- /* 2nd byte: 46 */ 0x9852,
- /* 2nd byte: 47 */ 0x9853,
- /* 2nd byte: 48 */ 0x9856,
- /* 2nd byte: 49 */ 0x9857,
- /* 2nd byte: 50 */ 0x9859,
- /* 2nd byte: 51 */ 0x985a,
- /* 2nd byte: 52 */ 0x9862,
- /* 2nd byte: 53 */ 0x9863,
- /* 2nd byte: 54 */ 0x9865,
- /* 2nd byte: 55 */ 0x9866,
- /* 2nd byte: 56 */ 0x986a,
- /* 2nd byte: 57 */ 0x986c,
- /* 2nd byte: 58 */ 0x98ab,
- /* 2nd byte: 59 */ 0x98ad,
- /* 2nd byte: 60 */ 0x98ae,
- /* 2nd byte: 61 */ 0x98b0,
- /* 2nd byte: 62 */ 0x98b4,
- /* 2nd byte: 63 */ 0x98b7,
- /* 2nd byte: 64 */ 0x98b8,
- /* 2nd byte: 65 */ 0x98ba,
- /* 2nd byte: 66 */ 0x98bb,
- /* 2nd byte: 67 */ 0x98bf,
- /* 2nd byte: 68 */ 0x98c2,
- /* 2nd byte: 69 */ 0x98c5,
- /* 2nd byte: 70 */ 0x98c8,
- /* 2nd byte: 71 */ 0x98cc,
- /* 2nd byte: 72 */ 0x98e1,
- /* 2nd byte: 73 */ 0x98e3,
- /* 2nd byte: 74 */ 0x98e5,
- /* 2nd byte: 75 */ 0x98e6,
- /* 2nd byte: 76 */ 0x98e7,
- /* 2nd byte: 77 */ 0x98ea,
- /* 2nd byte: 78 */ 0x98f3,
- /* 2nd byte: 79 */ 0x98f6,
- /* 2nd byte: 80 */ 0x9902,
- /* 2nd byte: 81 */ 0x9907,
- /* 2nd byte: 82 */ 0x9908,
- /* 2nd byte: 83 */ 0x9911,
- /* 2nd byte: 84 */ 0x9915,
- /* 2nd byte: 85 */ 0x9916,
- /* 2nd byte: 86 */ 0x9917,
- /* 2nd byte: 87 */ 0x991a,
- /* 2nd byte: 88 */ 0x991b,
- /* 2nd byte: 89 */ 0x991c,
- /* 2nd byte: 90 */ 0x991f,
- /* 2nd byte: 91 */ 0x9922,
- /* 2nd byte: 92 */ 0x9926,
- /* 2nd byte: 93 */ 0x9927,
- /* 2nd byte: 94 */ 0x992b,
- /* 2nd byte: 95 */ 0x9931,
- /* 2nd byte: 96 */ 0x9932,
- /* 2nd byte: 97 */ 0x9933,
- /* 2nd byte: 98 */ 0x9934,
- /* 2nd byte: 99 */ 0x9935,
- /* 2nd byte: 100 */ 0x9939,
- /* 2nd byte: 101 */ 0x993a,
- /* 2nd byte: 102 */ 0x993b,
- /* 2nd byte: 103 */ 0x993c,
- /* 2nd byte: 104 */ 0x9940,
- /* 2nd byte: 105 */ 0x9941,
- /* 2nd byte: 106 */ 0x9946,
- /* 2nd byte: 107 */ 0x9947,
- /* 2nd byte: 108 */ 0x9948,
- /* 2nd byte: 109 */ 0x994d,
- /* 2nd byte: 110 */ 0x994e,
- /* 2nd byte: 111 */ 0x9954,
- /* 2nd byte: 112 */ 0x9958,
- /* 2nd byte: 113 */ 0x9959,
- /* 2nd byte: 114 */ 0x995b,
- /* 2nd byte: 115 */ 0x995c,
- /* 2nd byte: 116 */ 0x995e,
- /* 2nd byte: 117 */ 0x995f,
- /* 2nd byte: 118 */ 0x9960,
- /* 2nd byte: 119 */ 0x999b,
- /* 2nd byte: 120 */ 0x999d,
- /* 2nd byte: 121 */ 0x999f,
- /* 2nd byte: 122 */ 0x99a6,
- /* 2nd byte: 123 */ 0x99b0,
- /* 2nd byte: 124 */ 0x99b1,
- /* 2nd byte: 125 */ 0x99b2,
- /* 2nd byte: 126 */ 0x99b5},
-/* 1st byte: 105 */ {
- /* 2nd byte: 33 */ 0x99b9,
- /* 2nd byte: 34 */ 0x99ba,
- /* 2nd byte: 35 */ 0x99bd,
- /* 2nd byte: 36 */ 0x99bf,
- /* 2nd byte: 37 */ 0x99c3,
- /* 2nd byte: 38 */ 0x99c9,
- /* 2nd byte: 39 */ 0x99d3,
- /* 2nd byte: 40 */ 0x99d4,
- /* 2nd byte: 41 */ 0x99d9,
- /* 2nd byte: 42 */ 0x99da,
- /* 2nd byte: 43 */ 0x99dc,
- /* 2nd byte: 44 */ 0x99de,
- /* 2nd byte: 45 */ 0x99e7,
- /* 2nd byte: 46 */ 0x99ea,
- /* 2nd byte: 47 */ 0x99eb,
- /* 2nd byte: 48 */ 0x99ec,
- /* 2nd byte: 49 */ 0x99f0,
- /* 2nd byte: 50 */ 0x99f4,
- /* 2nd byte: 51 */ 0x99f5,
- /* 2nd byte: 52 */ 0x99f9,
- /* 2nd byte: 53 */ 0x99fd,
- /* 2nd byte: 54 */ 0x99fe,
- /* 2nd byte: 55 */ 0x9a02,
- /* 2nd byte: 56 */ 0x9a03,
- /* 2nd byte: 57 */ 0x9a04,
- /* 2nd byte: 58 */ 0x9a0b,
- /* 2nd byte: 59 */ 0x9a0c,
- /* 2nd byte: 60 */ 0x9a10,
- /* 2nd byte: 61 */ 0x9a11,
- /* 2nd byte: 62 */ 0x9a16,
- /* 2nd byte: 63 */ 0x9a1e,
- /* 2nd byte: 64 */ 0x9a20,
- /* 2nd byte: 65 */ 0x9a22,
- /* 2nd byte: 66 */ 0x9a23,
- /* 2nd byte: 67 */ 0x9a24,
- /* 2nd byte: 68 */ 0x9a27,
- /* 2nd byte: 69 */ 0x9a2d,
- /* 2nd byte: 70 */ 0x9a2e,
- /* 2nd byte: 71 */ 0x9a33,
- /* 2nd byte: 72 */ 0x9a35,
- /* 2nd byte: 73 */ 0x9a36,
- /* 2nd byte: 74 */ 0x9a38,
- /* 2nd byte: 75 */ 0x9a47,
- /* 2nd byte: 76 */ 0x9a41,
- /* 2nd byte: 77 */ 0x9a44,
- /* 2nd byte: 78 */ 0x9a4a,
- /* 2nd byte: 79 */ 0x9a4b,
- /* 2nd byte: 80 */ 0x9a4c,
- /* 2nd byte: 81 */ 0x9a4e,
- /* 2nd byte: 82 */ 0x9a51,
- /* 2nd byte: 83 */ 0x9a54,
- /* 2nd byte: 84 */ 0x9a56,
- /* 2nd byte: 85 */ 0x9a5d,
- /* 2nd byte: 86 */ 0x9aaa,
- /* 2nd byte: 87 */ 0x9aac,
- /* 2nd byte: 88 */ 0x9aae,
- /* 2nd byte: 89 */ 0x9aaf,
- /* 2nd byte: 90 */ 0x9ab2,
- /* 2nd byte: 91 */ 0x9ab4,
- /* 2nd byte: 92 */ 0x9ab5,
- /* 2nd byte: 93 */ 0x9ab6,
- /* 2nd byte: 94 */ 0x9ab9,
- /* 2nd byte: 95 */ 0x9abb,
- /* 2nd byte: 96 */ 0x9abe,
- /* 2nd byte: 97 */ 0x9abf,
- /* 2nd byte: 98 */ 0x9ac1,
- /* 2nd byte: 99 */ 0x9ac3,
- /* 2nd byte: 100 */ 0x9ac6,
- /* 2nd byte: 101 */ 0x9ac8,
- /* 2nd byte: 102 */ 0x9ace,
- /* 2nd byte: 103 */ 0x9ad0,
- /* 2nd byte: 104 */ 0x9ad2,
- /* 2nd byte: 105 */ 0x9ad5,
- /* 2nd byte: 106 */ 0x9ad6,
- /* 2nd byte: 107 */ 0x9ad7,
- /* 2nd byte: 108 */ 0x9adb,
- /* 2nd byte: 109 */ 0x9adc,
- /* 2nd byte: 110 */ 0x9ae0,
- /* 2nd byte: 111 */ 0x9ae4,
- /* 2nd byte: 112 */ 0x9ae5,
- /* 2nd byte: 113 */ 0x9ae7,
- /* 2nd byte: 114 */ 0x9ae9,
- /* 2nd byte: 115 */ 0x9aec,
- /* 2nd byte: 116 */ 0x9af2,
- /* 2nd byte: 117 */ 0x9af3,
- /* 2nd byte: 118 */ 0x9af5,
- /* 2nd byte: 119 */ 0x9af9,
- /* 2nd byte: 120 */ 0x9afa,
- /* 2nd byte: 121 */ 0x9afd,
- /* 2nd byte: 122 */ 0x9aff,
- /* 2nd byte: 123 */ 0x9b00,
- /* 2nd byte: 124 */ 0x9b01,
- /* 2nd byte: 125 */ 0x9b02,
- /* 2nd byte: 126 */ 0x9b03},
-/* 1st byte: 106 */ {
- /* 2nd byte: 33 */ 0x9b04,
- /* 2nd byte: 34 */ 0x9b05,
- /* 2nd byte: 35 */ 0x9b08,
- /* 2nd byte: 36 */ 0x9b09,
- /* 2nd byte: 37 */ 0x9b0b,
- /* 2nd byte: 38 */ 0x9b0c,
- /* 2nd byte: 39 */ 0x9b0d,
- /* 2nd byte: 40 */ 0x9b0e,
- /* 2nd byte: 41 */ 0x9b10,
- /* 2nd byte: 42 */ 0x9b12,
- /* 2nd byte: 43 */ 0x9b16,
- /* 2nd byte: 44 */ 0x9b19,
- /* 2nd byte: 45 */ 0x9b1b,
- /* 2nd byte: 46 */ 0x9b1c,
- /* 2nd byte: 47 */ 0x9b20,
- /* 2nd byte: 48 */ 0x9b26,
- /* 2nd byte: 49 */ 0x9b2b,
- /* 2nd byte: 50 */ 0x9b2d,
- /* 2nd byte: 51 */ 0x9b33,
- /* 2nd byte: 52 */ 0x9b34,
- /* 2nd byte: 53 */ 0x9b35,
- /* 2nd byte: 54 */ 0x9b37,
- /* 2nd byte: 55 */ 0x9b39,
- /* 2nd byte: 56 */ 0x9b3a,
- /* 2nd byte: 57 */ 0x9b3d,
- /* 2nd byte: 58 */ 0x9b48,
- /* 2nd byte: 59 */ 0x9b4b,
- /* 2nd byte: 60 */ 0x9b4c,
- /* 2nd byte: 61 */ 0x9b55,
- /* 2nd byte: 62 */ 0x9b56,
- /* 2nd byte: 63 */ 0x9b57,
- /* 2nd byte: 64 */ 0x9b5b,
- /* 2nd byte: 65 */ 0x9b5e,
- /* 2nd byte: 66 */ 0x9b61,
- /* 2nd byte: 67 */ 0x9b63,
- /* 2nd byte: 68 */ 0x9b65,
- /* 2nd byte: 69 */ 0x9b66,
- /* 2nd byte: 70 */ 0x9b68,
- /* 2nd byte: 71 */ 0x9b6a,
- /* 2nd byte: 72 */ 0x9b6b,
- /* 2nd byte: 73 */ 0x9b6c,
- /* 2nd byte: 74 */ 0x9b6d,
- /* 2nd byte: 75 */ 0x9b6e,
- /* 2nd byte: 76 */ 0x9b73,
- /* 2nd byte: 77 */ 0x9b75,
- /* 2nd byte: 78 */ 0x9b77,
- /* 2nd byte: 79 */ 0x9b78,
- /* 2nd byte: 80 */ 0x9b79,
- /* 2nd byte: 81 */ 0x9b7f,
- /* 2nd byte: 82 */ 0x9b80,
- /* 2nd byte: 83 */ 0x9b84,
- /* 2nd byte: 84 */ 0x9b85,
- /* 2nd byte: 85 */ 0x9b86,
- /* 2nd byte: 86 */ 0x9b87,
- /* 2nd byte: 87 */ 0x9b89,
- /* 2nd byte: 88 */ 0x9b8a,
- /* 2nd byte: 89 */ 0x9b8b,
- /* 2nd byte: 90 */ 0x9b8d,
- /* 2nd byte: 91 */ 0x9b8f,
- /* 2nd byte: 92 */ 0x9b90,
- /* 2nd byte: 93 */ 0x9b94,
- /* 2nd byte: 94 */ 0x9b9a,
- /* 2nd byte: 95 */ 0x9b9d,
- /* 2nd byte: 96 */ 0x9b9e,
- /* 2nd byte: 97 */ 0x9ba6,
- /* 2nd byte: 98 */ 0x9ba7,
- /* 2nd byte: 99 */ 0x9ba9,
- /* 2nd byte: 100 */ 0x9bac,
- /* 2nd byte: 101 */ 0x9bb0,
- /* 2nd byte: 102 */ 0x9bb1,
- /* 2nd byte: 103 */ 0x9bb2,
- /* 2nd byte: 104 */ 0x9bb7,
- /* 2nd byte: 105 */ 0x9bb8,
- /* 2nd byte: 106 */ 0x9bbb,
- /* 2nd byte: 107 */ 0x9bbc,
- /* 2nd byte: 108 */ 0x9bbe,
- /* 2nd byte: 109 */ 0x9bbf,
- /* 2nd byte: 110 */ 0x9bc1,
- /* 2nd byte: 111 */ 0x9bc7,
- /* 2nd byte: 112 */ 0x9bc8,
- /* 2nd byte: 113 */ 0x9bce,
- /* 2nd byte: 114 */ 0x9bd0,
- /* 2nd byte: 115 */ 0x9bd7,
- /* 2nd byte: 116 */ 0x9bd8,
- /* 2nd byte: 117 */ 0x9bdd,
- /* 2nd byte: 118 */ 0x9bdf,
- /* 2nd byte: 119 */ 0x9be5,
- /* 2nd byte: 120 */ 0x9be7,
- /* 2nd byte: 121 */ 0x9bea,
- /* 2nd byte: 122 */ 0x9beb,
- /* 2nd byte: 123 */ 0x9bef,
- /* 2nd byte: 124 */ 0x9bf3,
- /* 2nd byte: 125 */ 0x9bf7,
- /* 2nd byte: 126 */ 0x9bf8},
-/* 1st byte: 107 */ {
- /* 2nd byte: 33 */ 0x9bf9,
- /* 2nd byte: 34 */ 0x9bfa,
- /* 2nd byte: 35 */ 0x9bfd,
- /* 2nd byte: 36 */ 0x9bff,
- /* 2nd byte: 37 */ 0x9c00,
- /* 2nd byte: 38 */ 0x9c02,
- /* 2nd byte: 39 */ 0x9c0b,
- /* 2nd byte: 40 */ 0x9c0f,
- /* 2nd byte: 41 */ 0x9c11,
- /* 2nd byte: 42 */ 0x9c16,
- /* 2nd byte: 43 */ 0x9c18,
- /* 2nd byte: 44 */ 0x9c19,
- /* 2nd byte: 45 */ 0x9c1a,
- /* 2nd byte: 46 */ 0x9c1c,
- /* 2nd byte: 47 */ 0x9c1e,
- /* 2nd byte: 48 */ 0x9c22,
- /* 2nd byte: 49 */ 0x9c23,
- /* 2nd byte: 50 */ 0x9c26,
- /* 2nd byte: 51 */ 0x9c27,
- /* 2nd byte: 52 */ 0x9c28,
- /* 2nd byte: 53 */ 0x9c29,
- /* 2nd byte: 54 */ 0x9c2a,
- /* 2nd byte: 55 */ 0x9c31,
- /* 2nd byte: 56 */ 0x9c35,
- /* 2nd byte: 57 */ 0x9c36,
- /* 2nd byte: 58 */ 0x9c37,
- /* 2nd byte: 59 */ 0x9c3d,
- /* 2nd byte: 60 */ 0x9c41,
- /* 2nd byte: 61 */ 0x9c43,
- /* 2nd byte: 62 */ 0x9c44,
- /* 2nd byte: 63 */ 0x9c45,
- /* 2nd byte: 64 */ 0x9c49,
- /* 2nd byte: 65 */ 0x9c4a,
- /* 2nd byte: 66 */ 0x9c4e,
- /* 2nd byte: 67 */ 0x9c4f,
- /* 2nd byte: 68 */ 0x9c50,
- /* 2nd byte: 69 */ 0x9c53,
- /* 2nd byte: 70 */ 0x9c54,
- /* 2nd byte: 71 */ 0x9c56,
- /* 2nd byte: 72 */ 0x9c58,
- /* 2nd byte: 73 */ 0x9c5b,
- /* 2nd byte: 74 */ 0x9c5d,
- /* 2nd byte: 75 */ 0x9c5e,
- /* 2nd byte: 76 */ 0x9c5f,
- /* 2nd byte: 77 */ 0x9c63,
- /* 2nd byte: 78 */ 0x9c69,
- /* 2nd byte: 79 */ 0x9c6a,
- /* 2nd byte: 80 */ 0x9c5c,
- /* 2nd byte: 81 */ 0x9c6b,
- /* 2nd byte: 82 */ 0x9c68,
- /* 2nd byte: 83 */ 0x9c6e,
- /* 2nd byte: 84 */ 0x9c70,
- /* 2nd byte: 85 */ 0x9c72,
- /* 2nd byte: 86 */ 0x9c75,
- /* 2nd byte: 87 */ 0x9c77,
- /* 2nd byte: 88 */ 0x9c7b,
- /* 2nd byte: 89 */ 0x9ce6,
- /* 2nd byte: 90 */ 0x9cf2,
- /* 2nd byte: 91 */ 0x9cf7,
- /* 2nd byte: 92 */ 0x9cf9,
- /* 2nd byte: 93 */ 0x9d0b,
- /* 2nd byte: 94 */ 0x9d02,
- /* 2nd byte: 95 */ 0x9d11,
- /* 2nd byte: 96 */ 0x9d17,
- /* 2nd byte: 97 */ 0x9d18,
- /* 2nd byte: 98 */ 0x9d1c,
- /* 2nd byte: 99 */ 0x9d1d,
- /* 2nd byte: 100 */ 0x9d1e,
- /* 2nd byte: 101 */ 0x9d2f,
- /* 2nd byte: 102 */ 0x9d30,
- /* 2nd byte: 103 */ 0x9d32,
- /* 2nd byte: 104 */ 0x9d33,
- /* 2nd byte: 105 */ 0x9d34,
- /* 2nd byte: 106 */ 0x9d3a,
- /* 2nd byte: 107 */ 0x9d3c,
- /* 2nd byte: 108 */ 0x9d45,
- /* 2nd byte: 109 */ 0x9d3d,
- /* 2nd byte: 110 */ 0x9d42,
- /* 2nd byte: 111 */ 0x9d43,
- /* 2nd byte: 112 */ 0x9d47,
- /* 2nd byte: 113 */ 0x9d4a,
- /* 2nd byte: 114 */ 0x9d53,
- /* 2nd byte: 115 */ 0x9d54,
- /* 2nd byte: 116 */ 0x9d5f,
- /* 2nd byte: 117 */ 0x9d63,
- /* 2nd byte: 118 */ 0x9d62,
- /* 2nd byte: 119 */ 0x9d65,
- /* 2nd byte: 120 */ 0x9d69,
- /* 2nd byte: 121 */ 0x9d6a,
- /* 2nd byte: 122 */ 0x9d6b,
- /* 2nd byte: 123 */ 0x9d70,
- /* 2nd byte: 124 */ 0x9d76,
- /* 2nd byte: 125 */ 0x9d77,
- /* 2nd byte: 126 */ 0x9d7b},
-/* 1st byte: 108 */ {
- /* 2nd byte: 33 */ 0x9d7c,
- /* 2nd byte: 34 */ 0x9d7e,
- /* 2nd byte: 35 */ 0x9d83,
- /* 2nd byte: 36 */ 0x9d84,
- /* 2nd byte: 37 */ 0x9d86,
- /* 2nd byte: 38 */ 0x9d8a,
- /* 2nd byte: 39 */ 0x9d8d,
- /* 2nd byte: 40 */ 0x9d8e,
- /* 2nd byte: 41 */ 0x9d92,
- /* 2nd byte: 42 */ 0x9d93,
- /* 2nd byte: 43 */ 0x9d95,
- /* 2nd byte: 44 */ 0x9d96,
- /* 2nd byte: 45 */ 0x9d97,
- /* 2nd byte: 46 */ 0x9d98,
- /* 2nd byte: 47 */ 0x9da1,
- /* 2nd byte: 48 */ 0x9daa,
- /* 2nd byte: 49 */ 0x9dac,
- /* 2nd byte: 50 */ 0x9dae,
- /* 2nd byte: 51 */ 0x9db1,
- /* 2nd byte: 52 */ 0x9db5,
- /* 2nd byte: 53 */ 0x9db9,
- /* 2nd byte: 54 */ 0x9dbc,
- /* 2nd byte: 55 */ 0x9dbf,
- /* 2nd byte: 56 */ 0x9dc3,
- /* 2nd byte: 57 */ 0x9dc7,
- /* 2nd byte: 58 */ 0x9dc9,
- /* 2nd byte: 59 */ 0x9dca,
- /* 2nd byte: 60 */ 0x9dd4,
- /* 2nd byte: 61 */ 0x9dd5,
- /* 2nd byte: 62 */ 0x9dd6,
- /* 2nd byte: 63 */ 0x9dd7,
- /* 2nd byte: 64 */ 0x9dda,
- /* 2nd byte: 65 */ 0x9dde,
- /* 2nd byte: 66 */ 0x9ddf,
- /* 2nd byte: 67 */ 0x9de0,
- /* 2nd byte: 68 */ 0x9de5,
- /* 2nd byte: 69 */ 0x9de7,
- /* 2nd byte: 70 */ 0x9de9,
- /* 2nd byte: 71 */ 0x9deb,
- /* 2nd byte: 72 */ 0x9dee,
- /* 2nd byte: 73 */ 0x9df0,
- /* 2nd byte: 74 */ 0x9df3,
- /* 2nd byte: 75 */ 0x9df4,
- /* 2nd byte: 76 */ 0x9dfe,
- /* 2nd byte: 77 */ 0x9e0a,
- /* 2nd byte: 78 */ 0x9e02,
- /* 2nd byte: 79 */ 0x9e07,
- /* 2nd byte: 80 */ 0x9e0e,
- /* 2nd byte: 81 */ 0x9e10,
- /* 2nd byte: 82 */ 0x9e11,
- /* 2nd byte: 83 */ 0x9e12,
- /* 2nd byte: 84 */ 0x9e15,
- /* 2nd byte: 85 */ 0x9e16,
- /* 2nd byte: 86 */ 0x9e19,
- /* 2nd byte: 87 */ 0x9e1c,
- /* 2nd byte: 88 */ 0x9e1d,
- /* 2nd byte: 89 */ 0x9e7a,
- /* 2nd byte: 90 */ 0x9e7b,
- /* 2nd byte: 91 */ 0x9e7c,
- /* 2nd byte: 92 */ 0x9e80,
- /* 2nd byte: 93 */ 0x9e82,
- /* 2nd byte: 94 */ 0x9e83,
- /* 2nd byte: 95 */ 0x9e84,
- /* 2nd byte: 96 */ 0x9e85,
- /* 2nd byte: 97 */ 0x9e87,
- /* 2nd byte: 98 */ 0x9e8e,
- /* 2nd byte: 99 */ 0x9e8f,
- /* 2nd byte: 100 */ 0x9e96,
- /* 2nd byte: 101 */ 0x9e98,
- /* 2nd byte: 102 */ 0x9e9b,
- /* 2nd byte: 103 */ 0x9e9e,
- /* 2nd byte: 104 */ 0x9ea4,
- /* 2nd byte: 105 */ 0x9ea8,
- /* 2nd byte: 106 */ 0x9eac,
- /* 2nd byte: 107 */ 0x9eae,
- /* 2nd byte: 108 */ 0x9eaf,
- /* 2nd byte: 109 */ 0x9eb0,
- /* 2nd byte: 110 */ 0x9eb3,
- /* 2nd byte: 111 */ 0x9eb4,
- /* 2nd byte: 112 */ 0x9eb5,
- /* 2nd byte: 113 */ 0x9ec6,
- /* 2nd byte: 114 */ 0x9ec8,
- /* 2nd byte: 115 */ 0x9ecb,
- /* 2nd byte: 116 */ 0x9ed5,
- /* 2nd byte: 117 */ 0x9edf,
- /* 2nd byte: 118 */ 0x9ee4,
- /* 2nd byte: 119 */ 0x9ee7,
- /* 2nd byte: 120 */ 0x9eec,
- /* 2nd byte: 121 */ 0x9eed,
- /* 2nd byte: 122 */ 0x9eee,
- /* 2nd byte: 123 */ 0x9ef0,
- /* 2nd byte: 124 */ 0x9ef1,
- /* 2nd byte: 125 */ 0x9ef2,
- /* 2nd byte: 126 */ 0x9ef5},
-/* 1st byte: 109 */ {
- /* 2nd byte: 33 */ 0x9ef8,
- /* 2nd byte: 34 */ 0x9eff,
- /* 2nd byte: 35 */ 0x9f02,
- /* 2nd byte: 36 */ 0x9f03,
- /* 2nd byte: 37 */ 0x9f09,
- /* 2nd byte: 38 */ 0x9f0f,
- /* 2nd byte: 39 */ 0x9f10,
- /* 2nd byte: 40 */ 0x9f11,
- /* 2nd byte: 41 */ 0x9f12,
- /* 2nd byte: 42 */ 0x9f14,
- /* 2nd byte: 43 */ 0x9f16,
- /* 2nd byte: 44 */ 0x9f17,
- /* 2nd byte: 45 */ 0x9f19,
- /* 2nd byte: 46 */ 0x9f1a,
- /* 2nd byte: 47 */ 0x9f1b,
- /* 2nd byte: 48 */ 0x9f1f,
- /* 2nd byte: 49 */ 0x9f22,
- /* 2nd byte: 50 */ 0x9f26,
- /* 2nd byte: 51 */ 0x9f2a,
- /* 2nd byte: 52 */ 0x9f2b,
- /* 2nd byte: 53 */ 0x9f2f,
- /* 2nd byte: 54 */ 0x9f31,
- /* 2nd byte: 55 */ 0x9f32,
- /* 2nd byte: 56 */ 0x9f34,
- /* 2nd byte: 57 */ 0x9f37,
- /* 2nd byte: 58 */ 0x9f39,
- /* 2nd byte: 59 */ 0x9f3a,
- /* 2nd byte: 60 */ 0x9f3c,
- /* 2nd byte: 61 */ 0x9f3d,
- /* 2nd byte: 62 */ 0x9f3f,
- /* 2nd byte: 63 */ 0x9f41,
- /* 2nd byte: 64 */ 0x9f43,
- /* 2nd byte: 65 */ 0x9f44,
- /* 2nd byte: 66 */ 0x9f45,
- /* 2nd byte: 67 */ 0x9f46,
- /* 2nd byte: 68 */ 0x9f47,
- /* 2nd byte: 69 */ 0x9f53,
- /* 2nd byte: 70 */ 0x9f55,
- /* 2nd byte: 71 */ 0x9f56,
- /* 2nd byte: 72 */ 0x9f57,
- /* 2nd byte: 73 */ 0x9f58,
- /* 2nd byte: 74 */ 0x9f5a,
- /* 2nd byte: 75 */ 0x9f5d,
- /* 2nd byte: 76 */ 0x9f5e,
- /* 2nd byte: 77 */ 0x9f68,
- /* 2nd byte: 78 */ 0x9f69,
- /* 2nd byte: 79 */ 0x9f6d,
- /* 2nd byte: 80 */ 0x9f6e,
- /* 2nd byte: 81 */ 0x9f6f,
- /* 2nd byte: 82 */ 0x9f70,
- /* 2nd byte: 83 */ 0x9f71,
- /* 2nd byte: 84 */ 0x9f73,
- /* 2nd byte: 85 */ 0x9f75,
- /* 2nd byte: 86 */ 0x9f7a,
- /* 2nd byte: 87 */ 0x9f7d,
- /* 2nd byte: 88 */ 0x9f8f,
- /* 2nd byte: 89 */ 0x9f90,
- /* 2nd byte: 90 */ 0x9f91,
- /* 2nd byte: 91 */ 0x9f92,
- /* 2nd byte: 92 */ 0x9f94,
- /* 2nd byte: 93 */ 0x9f96,
- /* 2nd byte: 94 */ 0x9f97,
- /* 2nd byte: 95 */ 0x9f9e,
- /* 2nd byte: 96 */ 0x9fa1,
- /* 2nd byte: 97 */ 0x9fa2,
- /* 2nd byte: 98 */ 0x9fa3,
- /* 2nd byte: 99 */ 0x9fa5,
- 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}
-};
diff --git a/libjava/gnu/gcj/convert/Output_8859_1.java b/libjava/gnu/gcj/convert/Output_8859_1.java
deleted file mode 100644
index ac04ad67ac1..00000000000
--- a/libjava/gnu/gcj/convert/Output_8859_1.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Unicode ISO-Latin-1 (8851-1) text.
- * The high-order byte of each character is truncated.
- * @author Per Bothner <bothner@cygnus.com>
- * @date Match 1999.
- */
-
-public class Output_8859_1 extends UnicodeToBytes
-{
- public String getName() { return "8859_1"; }
-
- /**
- * @return number of chars converted. */
- public int write (char[] inbuffer, int inpos, int inlength)
- {
- int count = this.count;
- byte[] buf = this.buf;
- int avail = buf.length - count;
- if (inlength > avail)
- inlength = avail;
- for (int i = inlength; --i >= 0; )
- {
- buf[count++] = (byte) inbuffer[inpos++];
- }
- this.count = count;
- return inlength;
- }
-
- public int write (String str, int inpos, int inlength, char[] work)
- {
- int count = this.count;
- byte[] buf = this.buf;
- int avail = buf.length - count;
- if (inlength > avail)
- inlength = avail;
- for (int i = inlength; --i >= 0; )
- {
- buf[count++] = (byte) str.charAt(inpos++);
- }
- this.count = count;
- return inlength;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Output_EUCJIS.java b/libjava/gnu/gcj/convert/Output_EUCJIS.java
deleted file mode 100644
index 0662239aa85..00000000000
--- a/libjava/gnu/gcj/convert/Output_EUCJIS.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Unicode to EUCJIS (Extended Unix Code for Japan).
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Output_EUCJIS extends UnicodeToBytes
-{
- public String getName() { return "EUCJIS"; }
-
- public native int write (char[] inbuffer, int inpos, int inlength);
-
- public native int write (String str, int inpos, int inlength, char[] work);
-
- int pending1 = -1;
- int pending2;
-}
diff --git a/libjava/gnu/gcj/convert/Output_JavaSrc.java b/libjava/gnu/gcj/convert/Output_JavaSrc.java
deleted file mode 100644
index dc99218cf9b..00000000000
--- a/libjava/gnu/gcj/convert/Output_JavaSrc.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Unicode to Ascii with \ u XXXX-escapes.
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Output_JavaSrc extends UnicodeToBytes
-{
- public String getName() { return "JavaSrc"; }
-
- // Number of bytes remaining before pending_char has been written.
- int todo;
- int pending_char;
-
- public int write (char[] inbuffer, int inpos, int inlength)
- {
- int start_pos = inpos;
- int avail = buf.length - count;
- for (;;)
- {
- if (avail == 0)
- break;
- switch (todo)
- {
- case 1:
- if (pending_char == '\\')
- {
- buf[count++] = (byte) '\\';
- avail--;
- todo = 0;
- continue;
- }
- /* ... else fall through ... */
- case 2:
- case 3:
- case 4:
- todo--;
- int digit = ((int) pending_char >> (todo * 4)) & 0xF;
- buf[count++] = (byte) Character.forDigit(digit, 16);
- avail--;
- continue;
- case 5:
- buf[count++] = (byte) 'u';
- avail--;
- todo = 4;
- continue;
- default:
- ;
- }
- if (inlength == 0)
- break;
- char ch = inbuffer[inpos++];
- inlength--;
- if (ch == '\\')
- {
- buf[count++] = (byte) '\\';
- pending_char = ch;
- todo = 1;
- avail--;
- }
- else if (ch < 127)
- {
- buf[count++] = (byte) ch;
- avail--;
- }
- else
- {
- buf[count++] = (byte) '\\';
- pending_char = ch;
- todo = 5;
- avail--;
- }
- }
- return inpos - start_pos;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Output_SJIS.java b/libjava/gnu/gcj/convert/Output_SJIS.java
deleted file mode 100644
index c5370642378..00000000000
--- a/libjava/gnu/gcj/convert/Output_SJIS.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Unicode to SJIS (Shift JIS, used on Japanese MS-Windows).
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 1999.
- */
-
-public class Output_SJIS extends UnicodeToBytes
-{
- public String getName() { return "SJIS"; }
-
- public native int write (char[] inbuffer, int inpos, int inlength);
-
- public native int write (String str, int inpos, int inlength, char[] work);
-
- int pending = -1;
-}
diff --git a/libjava/gnu/gcj/convert/Output_UTF8.java b/libjava/gnu/gcj/convert/Output_UTF8.java
deleted file mode 100644
index 01f5ce890e3..00000000000
--- a/libjava/gnu/gcj/convert/Output_UTF8.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-/**
- * Convert Unicode to UTF8.
- * @author Per Bothner <bothner@cygnus.com>
- * @date Match 1999.
- */
-
-public class Output_UTF8 extends UnicodeToBytes
-{
- public String getName() { return "UTF8"; }
-
- /** True if a surrogate pair should be emitted as a single UTF8 sequence.
- * Otherwise, a surrogate pair is treated as two separate characters.
- * Also, '\0' is emitted as {0} if true, and as {0xC0,0x80} if false. */
- public boolean standardUTF8 = true;
-
- // Saves the previous char if it was a high-surrogate.
- char hi_part;
- // Value of incomplete character.
- int value;
- // Number of continuation bytes still to emit.
- int bytes_todo;
-
- public int write (char[] inbuffer, int inpos, int inlength)
- {
- int start_pos = inpos;
- int avail = buf.length - count;
- for (;;)
- {
- if (avail == 0 || (inlength == 0 && bytes_todo == 0))
- break;
- // The algorithm is made more complicated because we want to write
- // at least one byte in the output buffer, if there is room for
- // that byte, and at least one input character is available.
- // This makes the code more robust, since client code will
- // always "make progress", even in the complicated cases,
- // where the output buffer only has room for only *part* of a
- // multi-byte sequence, or the input char buffer only has half
- // of a surrogate pair (when standardUTF8 is set), or both.
-
- // Handle continuation characters we did not have room for before.
- if (bytes_todo > 0)
- {
- do
- {
- bytes_todo--;
- buf[count++] = (byte)
- (((value >> (bytes_todo * 6)) & 0x3F) | 0x80);
- avail--;
- }
- while (bytes_todo > 0 && avail > 0);
- continue;
- }
-
- char ch = inbuffer[inpos++];
- inlength--;
-
- if ((hi_part != 0 && (ch <= 0xDBFF || ch > 0xDFFF))
- || (hi_part == 0 && ch >= 0xDC00 && ch <= 0xDFFF))
- {
- // If the previous character was a high surrogate, and we
- // don't now have a low surrogate, we print the high
- // surrogate as an isolated character. If this character
- // is a low surrogate and we didn't previously see a high
- // surrogate, we do the same thing.
- --inpos;
- ++inlength;
- buf[count++] = (byte) (0xE0 | (hi_part >> 12));
- value = hi_part;
- hi_part = 0;
- avail--;
- bytes_todo = 2;
- }
- else if (ch < 128 && (ch != 0 || standardUTF8))
- {
- avail--;
- buf[count++] = (byte) ch;
- }
- else if (ch <= 0x07FF)
- {
- buf[count++] = (byte) (0xC0 | (ch >> 6));
- avail--;
- value = ch;
- bytes_todo = 1;
- }
- else if (ch >= 0xD800 && ch <= 0xDFFF && standardUTF8)
- {
- if (ch <= 0xDBFF) // High surrogates
- {
- // Just save the high surrogate until the next
- // character comes along.
- hi_part = ch;
- }
- else // Low surrogates
- {
- value = (hi_part - 0xD800) * 0x400 + (ch - 0xDC00) + 0x10000;
- buf[count++] = (byte) (0xF0 | (value >> 18));
- bytes_todo = 3;
- hi_part = 0;
- }
- }
- else
- {
- buf[count++] = (byte) (0xE0 | (ch >> 12));
- value = ch;
- avail--;
- bytes_todo = 2;
- }
- }
- return inpos - start_pos;
- }
-}
diff --git a/libjava/gnu/gcj/convert/Output_iconv.java b/libjava/gnu/gcj/convert/Output_iconv.java
deleted file mode 100644
index 78522627c85..00000000000
--- a/libjava/gnu/gcj/convert/Output_iconv.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Output_iconv.java -- Java side of iconv() writer.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-import gnu.gcj.RawData;
-import java.io.UnsupportedEncodingException;
-
-/**
- * Convert Unicode to bytes in some iconv-supported encoding.
- * @author Tom Tromey <tromey@redhat.com>
- * @date January 30, 2000
- */
-
-public class Output_iconv extends UnicodeToBytes
-{
- public Output_iconv (String encoding) throws UnsupportedEncodingException
- {
- this.encoding = encoding;
- this.handle = null;
- init (encoding);
- }
-
- public String getName() { return encoding; }
-
- public native void finalize ();
- private native void init (String encoding)
- throws UnsupportedEncodingException;
- public native int write (char[] inbuffer, int inpos, int count);
-
- // The encoding we're using.
- private String encoding;
-
- // The iconv handle.
- private RawData handle;
-}
diff --git a/libjava/gnu/gcj/convert/UnicodeToBytes.java b/libjava/gnu/gcj/convert/UnicodeToBytes.java
deleted file mode 100644
index dce7797fbaf..00000000000
--- a/libjava/gnu/gcj/convert/UnicodeToBytes.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.convert;
-
-public abstract class UnicodeToBytes extends IOConverter
-{
- /** Buffer to emit bytes to.
- * The locations buf[count] ... buf[buf.length-1] are available. */
- public byte[] buf;
- public int count;
-
- static Class defaultEncodingClass;
-
- static synchronized void getDefaultEncodingClass()
- {
- // Test (defaultEncodingClass == null) again in case of race condition.
- if (defaultEncodingClass == null)
- {
- String encoding = canonicalize (System.getProperty("file.encoding"));
- String className = "gnu.gcj.convert.Output_"+encoding;
- try
- {
- defaultEncodingClass = Class.forName(className);
- }
- catch (ClassNotFoundException ex)
- {
- throw new NoClassDefFoundError("missing default encoding "
- + encoding + " (class "
- + className + " not found)");
-
- }
- }
- }
-
- public abstract String getName();
-
- public static UnicodeToBytes getDefaultEncoder()
- {
- try
- {
- if (defaultEncodingClass == null)
- getDefaultEncodingClass();
- return (UnicodeToBytes) defaultEncodingClass.newInstance();
- }
- catch (Throwable ex)
- {
- try
- {
- return new Output_iconv (System.getProperty ("file.encoding"));
- }
- catch (Throwable ex2)
- {
- return new Output_8859_1();
- }
- }
- }
-
- /** Get a char-stream->byte-stream converter given an encoding name. */
- public static UnicodeToBytes getEncoder (String encoding)
- throws java.io.UnsupportedEncodingException
- {
- String className = "gnu.gcj.convert.Output_" + canonicalize (encoding);
- Class encodingClass;
- try
- {
- encodingClass = Class.forName(className);
- return (UnicodeToBytes) encodingClass.newInstance();
- }
- catch (Throwable ex)
- {
- try
- {
- // We pass the original name to iconv and let it handle
- // its own aliasing.
- return new Output_iconv (encoding);
- }
- catch (Throwable _)
- {
- // Put the original exception in the throwable.
- throw new java.io.UnsupportedEncodingException(encoding + " ("
- + ex + ')');
- }
- }
- }
-
- public final void setOutput(byte[] buffer, int count)
- {
- this.buf = buffer;
- this.count = count;
- }
-
- /** Convert chars to bytes.
- * Converted bytes are written to buf, starting at count.
- * @param inbuffer source of characters to convert
- * @param inpos index of initial character in inbuffer to convert
- * @param inlength number of characters to convert
- * @return number of chars converted
- * Also, this.count is increment by the number of bytes converted.
- */
- public abstract int write (char[] inbuffer, int inpos, int inlength);
-
- /** Convert chars to bytes.
- * Converted bytes are written to buf, starting at count.
- * @param str source of characters to convert
- * @param inpos index of initial character in str to convert
- * @param inlength number of characters to convert
- * @param work if non-null, a buffer than can be used
- * @return number of chars converted
- * Also, this.count is increment by the number of bytes converted.
- */
- public int write (String str, int inpos, int inlength, char[] work)
- {
- if (work == null)
- work = new char[inlength];
- int srcEnd = inpos + (inlength > work.length ? work.length : inlength);
- str.getChars(inpos, srcEnd, work, 0);
- return write(work, inpos, inlength);
- }
-}
diff --git a/libjava/gnu/gcj/convert/Unicode_to_JIS.cc b/libjava/gnu/gcj/convert/Unicode_to_JIS.cc
deleted file mode 100644
index 10b3b7003db..00000000000
--- a/libjava/gnu/gcj/convert/Unicode_to_JIS.cc
+++ /dev/null
@@ -1,23139 +0,0 @@
-/* This file is automatically generated. */
-unsigned short Unicode_to_JIS[] = {
- /* branch: 0x0XXX */ 16,
- /* branch: 0x1XXX */ 0,
- /* branch: 0x2XXX */ 720,
- /* branch: 0x3XXX */ 1296,
- /* branch: 0x4XXX */ 1552,
- /* branch: 0x5XXX */ 2112,
- /* branch: 0x6XXX */ 6480,
- /* branch: 0x7XXX */ 10848,
- /* branch: 0x8XXX */ 15072,
- /* branch: 0x9XXX */ 19184,
- /* branch: 0xaXXX */ 0,
- /* branch: 0xbXXX */ 0,
- /* branch: 0xcXXX */ 0,
- /* branch: 0xdXXX */ 0,
- /* branch: 0xeXXX */ 0,
- /* branch: 0xfXXX */ 22928,
- /* branch: 0x00XX */ 32,
- /* branch: 0x01XX */ 272,
- /* branch: 0x02XX */ 464,
- /* branch: 0x03XX */ 512,
- /* branch: 0x04XX */ 608,
- /* branch: 0x05XX */ 0,
- /* branch: 0x06XX */ 0,
- /* branch: 0x07XX */ 0,
- /* branch: 0x08XX */ 0,
- /* branch: 0x09XX */ 0,
- /* branch: 0x0aXX */ 0,
- /* branch: 0x0bXX */ 0,
- /* branch: 0x0cXX */ 0,
- /* branch: 0x0dXX */ 0,
- /* branch: 0x0eXX */ 0,
- /* branch: 0x0fXX */ 0,
- /* branch: 0x000X */ 48,
- /* branch: 0x001X */ 64,
- /* branch: 0x002X */ 80,
- /* branch: 0x003X */ 96,
- /* branch: 0x004X */ 112,
- /* branch: 0x005X */ 128,
- /* branch: 0x006X */ 144,
- /* branch: 0x007X */ 160,
- /* branch: 0x008X */ 0,
- /* branch: 0x009X */ 0,
- /* branch: 0x00aX */ 176,
- /* branch: 0x00bX */ 192,
- /* branch: 0x00cX */ 208,
- /* branch: 0x00dX */ 224,
- /* branch: 0x00eX */ 240,
- /* branch: 0x00fX */ 256,
- /* key: 0x0 */ 0x0,
- /* key: 0x1 */ 0x1,
- /* key: 0x2 */ 0x2,
- /* key: 0x3 */ 0x3,
- /* key: 0x4 */ 0x4,
- /* key: 0x5 */ 0x5,
- /* key: 0x6 */ 0x6,
- /* key: 0x7 */ 0x7,
- /* key: 0x8 */ 0x8,
- /* key: 0x9 */ 0x9,
- /* key: 0xa */ 0xa,
- /* key: 0xb */ 0xb,
- /* key: 0xc */ 0xc,
- /* key: 0xd */ 0xd,
- /* key: 0xe */ 0xe,
- /* key: 0xf */ 0xf,
- /* key: 0x10 */ 0x10,
- /* key: 0x11 */ 0x11,
- /* key: 0x12 */ 0x12,
- /* key: 0x13 */ 0x13,
- /* key: 0x14 */ 0x14,
- /* key: 0x15 */ 0x15,
- /* key: 0x16 */ 0x16,
- /* key: 0x17 */ 0x17,
- /* key: 0x18 */ 0x18,
- /* key: 0x19 */ 0x19,
- /* key: 0x1a */ 0x1a,
- /* key: 0x1b */ 0x1b,
- /* key: 0x1c */ 0x1c,
- /* key: 0x1d */ 0x1d,
- /* key: 0x1e */ 0x1e,
- /* key: 0x1f */ 0x1f,
- /* key: 0x20 */ 0x20,
- /* key: 0x21 */ 0x21,
- /* key: 0x22 */ 0x22,
- /* key: 0x23 */ 0x23,
- /* key: 0x24 */ 0x24,
- /* key: 0x25 */ 0x25,
- /* key: 0x26 */ 0x26,
- /* key: 0x27 */ 0x27,
- /* key: 0x28 */ 0x28,
- /* key: 0x29 */ 0x29,
- /* key: 0x2a */ 0x2a,
- /* key: 0x2b */ 0x2b,
- /* key: 0x2c */ 0x2c,
- /* key: 0x2d */ 0x2d,
- /* key: 0x2e */ 0x2e,
- /* key: 0x2f */ 0x2f,
- /* key: 0x30 */ 0x30,
- /* key: 0x31 */ 0x31,
- /* key: 0x32 */ 0x32,
- /* key: 0x33 */ 0x33,
- /* key: 0x34 */ 0x34,
- /* key: 0x35 */ 0x35,
- /* key: 0x36 */ 0x36,
- /* key: 0x37 */ 0x37,
- /* key: 0x38 */ 0x38,
- /* key: 0x39 */ 0x39,
- /* key: 0x3a */ 0x3a,
- /* key: 0x3b */ 0x3b,
- /* key: 0x3c */ 0x3c,
- /* key: 0x3d */ 0x3d,
- /* key: 0x3e */ 0x3e,
- /* key: 0x3f */ 0x3f,
- /* key: 0x40 */ 0x40,
- /* key: 0x41 */ 0x41,
- /* key: 0x42 */ 0x42,
- /* key: 0x43 */ 0x43,
- /* key: 0x44 */ 0x44,
- /* key: 0x45 */ 0x45,
- /* key: 0x46 */ 0x46,
- /* key: 0x47 */ 0x47,
- /* key: 0x48 */ 0x48,
- /* key: 0x49 */ 0x49,
- /* key: 0x4a */ 0x4a,
- /* key: 0x4b */ 0x4b,
- /* key: 0x4c */ 0x4c,
- /* key: 0x4d */ 0x4d,
- /* key: 0x4e */ 0x4e,
- /* key: 0x4f */ 0x4f,
- /* key: 0x50 */ 0x50,
- /* key: 0x51 */ 0x51,
- /* key: 0x52 */ 0x52,
- /* key: 0x53 */ 0x53,
- /* key: 0x54 */ 0x54,
- /* key: 0x55 */ 0x55,
- /* key: 0x56 */ 0x56,
- /* key: 0x57 */ 0x57,
- /* key: 0x58 */ 0x58,
- /* key: 0x59 */ 0x59,
- /* key: 0x5a */ 0x5a,
- /* key: 0x5b */ 0x5b,
- /* key: 0x5c */ 0x2140,
- /* key: 0x5d */ 0x5d,
- /* key: 0x5e */ 0x5e,
- /* key: 0x5f */ 0x5f,
- /* key: 0x60 */ 0x60,
- /* key: 0x61 */ 0x61,
- /* key: 0x62 */ 0x62,
- /* key: 0x63 */ 0x63,
- /* key: 0x64 */ 0x64,
- /* key: 0x65 */ 0x65,
- /* key: 0x66 */ 0x66,
- /* key: 0x67 */ 0x67,
- /* key: 0x68 */ 0x68,
- /* key: 0x69 */ 0x69,
- /* key: 0x6a */ 0x6a,
- /* key: 0x6b */ 0x6b,
- /* key: 0x6c */ 0x6c,
- /* key: 0x6d */ 0x6d,
- /* key: 0x6e */ 0x6e,
- /* key: 0x6f */ 0x6f,
- /* key: 0x70 */ 0x70,
- /* key: 0x71 */ 0x71,
- /* key: 0x72 */ 0x72,
- /* key: 0x73 */ 0x73,
- /* key: 0x74 */ 0x74,
- /* key: 0x75 */ 0x75,
- /* key: 0x76 */ 0x76,
- /* key: 0x77 */ 0x77,
- /* key: 0x78 */ 0x78,
- /* key: 0x79 */ 0x79,
- /* key: 0x7a */ 0x7a,
- /* key: 0x7b */ 0x7b,
- /* key: 0x7c */ 0x7c,
- /* key: 0x7d */ 0x7d,
- /* key: 0x7e */ 0xa237,
- /* key: 0x7f */ 0x7f,
- /* key: 0xa0 */ 0xffff,
- /* key: 0xa1 */ 0xa242,
- /* key: 0xa2 */ 0x2171,
- /* key: 0xa3 */ 0x2172,
- /* key: 0xa4 */ 0xa270,
- /* key: 0xa5 */ 0x5c,
- /* key: 0xa6 */ 0xa243,
- /* key: 0xa7 */ 0x2178,
- /* key: 0xa8 */ 0x212f,
- /* key: 0xa9 */ 0xa26d,
- /* key: 0xaa */ 0xa26c,
- /* key: 0xab */ 0xffff,
- /* key: 0xac */ 0x224c,
- /* key: 0xad */ 0xffff,
- /* key: 0xae */ 0xa26e,
- /* key: 0xaf */ 0xa234,
- /* key: 0xb0 */ 0x216b,
- /* key: 0xb1 */ 0x215e,
- /* key: 0xb2 */ 0xffff,
- /* key: 0xb3 */ 0xffff,
- /* key: 0xb4 */ 0x212d,
- /* key: 0xb5 */ 0xffff,
- /* key: 0xb6 */ 0x2279,
- /* key: 0xb7 */ 0xffff,
- /* key: 0xb8 */ 0xa231,
- /* key: 0xb9 */ 0xffff,
- /* key: 0xba */ 0xa26b,
- /* key: 0xbb */ 0xffff,
- /* key: 0xbc */ 0xffff,
- /* key: 0xbd */ 0xffff,
- /* key: 0xbe */ 0xffff,
- /* key: 0xbf */ 0xa244,
- /* key: 0xc0 */ 0xaa22,
- /* key: 0xc1 */ 0xaa21,
- /* key: 0xc2 */ 0xaa24,
- /* key: 0xc3 */ 0xaa2a,
- /* key: 0xc4 */ 0xaa23,
- /* key: 0xc5 */ 0xaa29,
- /* key: 0xc6 */ 0xa921,
- /* key: 0xc7 */ 0xaa2e,
- /* key: 0xc8 */ 0xaa32,
- /* key: 0xc9 */ 0xaa31,
- /* key: 0xca */ 0xaa34,
- /* key: 0xcb */ 0xaa33,
- /* key: 0xcc */ 0xaa40,
- /* key: 0xcd */ 0xaa3f,
- /* key: 0xce */ 0xaa42,
- /* key: 0xcf */ 0xaa41,
- /* key: 0xd0 */ 0xffff,
- /* key: 0xd1 */ 0xaa50,
- /* key: 0xd2 */ 0xaa52,
- /* key: 0xd3 */ 0xaa51,
- /* key: 0xd4 */ 0xaa54,
- /* key: 0xd5 */ 0xaa58,
- /* key: 0xd6 */ 0xaa53,
- /* key: 0xd7 */ 0x215f,
- /* key: 0xd8 */ 0xa92c,
- /* key: 0xd9 */ 0xaa63,
- /* key: 0xda */ 0xaa62,
- /* key: 0xdb */ 0xaa65,
- /* key: 0xdc */ 0xaa64,
- /* key: 0xdd */ 0xaa72,
- /* key: 0xde */ 0xa930,
- /* key: 0xdf */ 0xa94e,
- /* key: 0xe0 */ 0xab22,
- /* key: 0xe1 */ 0xab21,
- /* key: 0xe2 */ 0xab24,
- /* key: 0xe3 */ 0xab2a,
- /* key: 0xe4 */ 0xab23,
- /* key: 0xe5 */ 0xab29,
- /* key: 0xe6 */ 0xa941,
- /* key: 0xe7 */ 0xab2e,
- /* key: 0xe8 */ 0xab32,
- /* key: 0xe9 */ 0xab31,
- /* key: 0xea */ 0xab34,
- /* key: 0xeb */ 0xab33,
- /* key: 0xec */ 0xab40,
- /* key: 0xed */ 0xab3f,
- /* key: 0xee */ 0xab42,
- /* key: 0xef */ 0xab41,
- /* key: 0xf0 */ 0xa943,
- /* key: 0xf1 */ 0xab50,
- /* key: 0xf2 */ 0xab52,
- /* key: 0xf3 */ 0xab51,
- /* key: 0xf4 */ 0xab54,
- /* key: 0xf5 */ 0xab58,
- /* key: 0xf6 */ 0xab53,
- /* key: 0xf7 */ 0x2160,
- /* key: 0xf8 */ 0xa94c,
- /* key: 0xf9 */ 0xab63,
- /* key: 0xfa */ 0xab62,
- /* key: 0xfb */ 0xab65,
- /* key: 0xfc */ 0xab64,
- /* key: 0xfd */ 0xab72,
- /* key: 0xfe */ 0xa950,
- /* key: 0xff */ 0xab73,
- /* branch: 0x010X */ 288,
- /* branch: 0x011X */ 304,
- /* branch: 0x012X */ 320,
- /* branch: 0x013X */ 336,
- /* branch: 0x014X */ 352,
- /* branch: 0x015X */ 368,
- /* branch: 0x016X */ 384,
- /* branch: 0x017X */ 400,
- /* branch: 0x018X */ 0,
- /* branch: 0x019X */ 0,
- /* branch: 0x01aX */ 0,
- /* branch: 0x01bX */ 0,
- /* branch: 0x01cX */ 416,
- /* branch: 0x01dX */ 432,
- /* branch: 0x01eX */ 0,
- /* branch: 0x01fX */ 448,
- /* key: 0x100 */ 0xaa27,
- /* key: 0x101 */ 0xab27,
- /* key: 0x102 */ 0xaa25,
- /* key: 0x103 */ 0xab25,
- /* key: 0x104 */ 0xaa28,
- /* key: 0x105 */ 0xab28,
- /* key: 0x106 */ 0xaa2b,
- /* key: 0x107 */ 0xab2b,
- /* key: 0x108 */ 0xaa2c,
- /* key: 0x109 */ 0xab2c,
- /* key: 0x10a */ 0xaa2f,
- /* key: 0x10b */ 0xab2f,
- /* key: 0x10c */ 0xaa2d,
- /* key: 0x10d */ 0xab2d,
- /* key: 0x10e */ 0xaa30,
- /* key: 0x10f */ 0xab30,
- /* key: 0x110 */ 0xa922,
- /* key: 0x111 */ 0xa942,
- /* key: 0x112 */ 0xaa37,
- /* key: 0x113 */ 0xab37,
- /* key: 0x114 */ 0xffff,
- /* key: 0x115 */ 0xffff,
- /* key: 0x116 */ 0xaa36,
- /* key: 0x117 */ 0xab36,
- /* key: 0x118 */ 0xaa38,
- /* key: 0x119 */ 0xab38,
- /* key: 0x11a */ 0xaa35,
- /* key: 0x11b */ 0xab35,
- /* key: 0x11c */ 0xaa3a,
- /* key: 0x11d */ 0xab3a,
- /* key: 0x11e */ 0xaa3b,
- /* key: 0x11f */ 0xab3b,
- /* key: 0x120 */ 0xaa3d,
- /* key: 0x121 */ 0xab3d,
- /* key: 0x122 */ 0xaa3c,
- /* key: 0x123 */ 0xffff,
- /* key: 0x124 */ 0xaa3e,
- /* key: 0x125 */ 0xab3e,
- /* key: 0x126 */ 0xa924,
- /* key: 0x127 */ 0xa944,
- /* key: 0x128 */ 0xaa47,
- /* key: 0x129 */ 0xab47,
- /* key: 0x12a */ 0xaa45,
- /* key: 0x12b */ 0xab45,
- /* key: 0x12c */ 0xffff,
- /* key: 0x12d */ 0xffff,
- /* key: 0x12e */ 0xaa46,
- /* key: 0x12f */ 0xab46,
- /* key: 0x130 */ 0xaa44,
- /* key: 0x131 */ 0xa945,
- /* key: 0x132 */ 0xa926,
- /* key: 0x133 */ 0xa946,
- /* key: 0x134 */ 0xaa48,
- /* key: 0x135 */ 0xab48,
- /* key: 0x136 */ 0xaa49,
- /* key: 0x137 */ 0xab49,
- /* key: 0x138 */ 0xa947,
- /* key: 0x139 */ 0xaa4a,
- /* key: 0x13a */ 0xab4a,
- /* key: 0x13b */ 0xaa4c,
- /* key: 0x13c */ 0xab4c,
- /* key: 0x13d */ 0xaa4b,
- /* key: 0x13e */ 0xab4b,
- /* key: 0x13f */ 0xa929,
- /* key: 0x140 */ 0xa949,
- /* key: 0x141 */ 0xa928,
- /* key: 0x142 */ 0xa948,
- /* key: 0x143 */ 0xaa4d,
- /* key: 0x144 */ 0xab4d,
- /* key: 0x145 */ 0xaa4f,
- /* key: 0x146 */ 0xab4f,
- /* key: 0x147 */ 0xaa4e,
- /* key: 0x148 */ 0xab4e,
- /* key: 0x149 */ 0xa94a,
- /* key: 0x14a */ 0xa92b,
- /* key: 0x14b */ 0xa94b,
- /* key: 0x14c */ 0xaa57,
- /* key: 0x14d */ 0xab57,
- /* key: 0x14e */ 0xffff,
- /* key: 0x14f */ 0xffff,
- /* key: 0x150 */ 0xaa56,
- /* key: 0x151 */ 0xab56,
- /* key: 0x152 */ 0xa92d,
- /* key: 0x153 */ 0xa94d,
- /* key: 0x154 */ 0xaa59,
- /* key: 0x155 */ 0xab59,
- /* key: 0x156 */ 0xaa5b,
- /* key: 0x157 */ 0xab5b,
- /* key: 0x158 */ 0xaa5a,
- /* key: 0x159 */ 0xab5a,
- /* key: 0x15a */ 0xaa5c,
- /* key: 0x15b */ 0xab5c,
- /* key: 0x15c */ 0xaa5d,
- /* key: 0x15d */ 0xab5d,
- /* key: 0x15e */ 0xaa5f,
- /* key: 0x15f */ 0xab5f,
- /* key: 0x160 */ 0xaa5e,
- /* key: 0x161 */ 0xab5e,
- /* key: 0x162 */ 0xaa61,
- /* key: 0x163 */ 0xab61,
- /* key: 0x164 */ 0xaa60,
- /* key: 0x165 */ 0xab60,
- /* key: 0x166 */ 0xa92f,
- /* key: 0x167 */ 0xa94f,
- /* key: 0x168 */ 0xaa6c,
- /* key: 0x169 */ 0xab6c,
- /* key: 0x16a */ 0xaa69,
- /* key: 0x16b */ 0xab69,
- /* key: 0x16c */ 0xaa66,
- /* key: 0x16d */ 0xab66,
- /* key: 0x16e */ 0xaa6b,
- /* key: 0x16f */ 0xab6b,
- /* key: 0x170 */ 0xaa68,
- /* key: 0x171 */ 0xab68,
- /* key: 0x172 */ 0xaa6a,
- /* key: 0x173 */ 0xab6a,
- /* key: 0x174 */ 0xaa71,
- /* key: 0x175 */ 0xab71,
- /* key: 0x176 */ 0xaa74,
- /* key: 0x177 */ 0xab74,
- /* key: 0x178 */ 0xaa73,
- /* key: 0x179 */ 0xaa75,
- /* key: 0x17a */ 0xab75,
- /* key: 0x17b */ 0xaa77,
- /* key: 0x17c */ 0xab77,
- /* key: 0x17d */ 0xaa76,
- /* key: 0x17e */ 0xab76,
- /* key: 0x17f */ 0xffff,
- /* key: 0x1c0 */ 0xffff,
- /* key: 0x1c1 */ 0xffff,
- /* key: 0x1c2 */ 0xffff,
- /* key: 0x1c3 */ 0xffff,
- /* key: 0x1c4 */ 0xffff,
- /* key: 0x1c5 */ 0xffff,
- /* key: 0x1c6 */ 0xffff,
- /* key: 0x1c7 */ 0xffff,
- /* key: 0x1c8 */ 0xffff,
- /* key: 0x1c9 */ 0xffff,
- /* key: 0x1ca */ 0xffff,
- /* key: 0x1cb */ 0xffff,
- /* key: 0x1cc */ 0xffff,
- /* key: 0x1cd */ 0xaa26,
- /* key: 0x1ce */ 0xab26,
- /* key: 0x1cf */ 0xaa43,
- /* key: 0x1d0 */ 0xab43,
- /* key: 0x1d1 */ 0xaa55,
- /* key: 0x1d2 */ 0xab55,
- /* key: 0x1d3 */ 0xaa67,
- /* key: 0x1d4 */ 0xab67,
- /* key: 0x1d5 */ 0xaa70,
- /* key: 0x1d6 */ 0xab70,
- /* key: 0x1d7 */ 0xaa6d,
- /* key: 0x1d8 */ 0xab6d,
- /* key: 0x1d9 */ 0xaa6f,
- /* key: 0x1da */ 0xab6f,
- /* key: 0x1db */ 0xaa6e,
- /* key: 0x1dc */ 0xab6e,
- /* key: 0x1dd */ 0xffff,
- /* key: 0x1de */ 0xffff,
- /* key: 0x1df */ 0xffff,
- /* key: 0x1f0 */ 0xffff,
- /* key: 0x1f1 */ 0xffff,
- /* key: 0x1f2 */ 0xffff,
- /* key: 0x1f3 */ 0xffff,
- /* key: 0x1f4 */ 0xffff,
- /* key: 0x1f5 */ 0xab39,
- /* key: 0x1f6 */ 0xffff,
- /* key: 0x1f7 */ 0xffff,
- /* key: 0x1f8 */ 0xffff,
- /* key: 0x1f9 */ 0xffff,
- /* key: 0x1fa */ 0xffff,
- /* key: 0x1fb */ 0xffff,
- /* key: 0x1fc */ 0xffff,
- /* key: 0x1fd */ 0xffff,
- /* key: 0x1fe */ 0xffff,
- /* key: 0x1ff */ 0xffff,
- /* branch: 0x020X */ 0,
- /* branch: 0x021X */ 0,
- /* branch: 0x022X */ 0,
- /* branch: 0x023X */ 0,
- /* branch: 0x024X */ 0,
- /* branch: 0x025X */ 0,
- /* branch: 0x026X */ 0,
- /* branch: 0x027X */ 0,
- /* branch: 0x028X */ 0,
- /* branch: 0x029X */ 0,
- /* branch: 0x02aX */ 0,
- /* branch: 0x02bX */ 0,
- /* branch: 0x02cX */ 480,
- /* branch: 0x02dX */ 496,
- /* branch: 0x02eX */ 0,
- /* branch: 0x02fX */ 0,
- /* key: 0x2c0 */ 0xffff,
- /* key: 0x2c1 */ 0xffff,
- /* key: 0x2c2 */ 0xffff,
- /* key: 0x2c3 */ 0xffff,
- /* key: 0x2c4 */ 0xffff,
- /* key: 0x2c5 */ 0xffff,
- /* key: 0x2c6 */ 0xffff,
- /* key: 0x2c7 */ 0xa230,
- /* key: 0x2c8 */ 0xffff,
- /* key: 0x2c9 */ 0xffff,
- /* key: 0x2ca */ 0xffff,
- /* key: 0x2cb */ 0xffff,
- /* key: 0x2cc */ 0xffff,
- /* key: 0x2cd */ 0xffff,
- /* key: 0x2ce */ 0xffff,
- /* key: 0x2cf */ 0xffff,
- /* key: 0x2d0 */ 0xffff,
- /* key: 0x2d1 */ 0xffff,
- /* key: 0x2d2 */ 0xffff,
- /* key: 0x2d3 */ 0xffff,
- /* key: 0x2d4 */ 0xffff,
- /* key: 0x2d5 */ 0xffff,
- /* key: 0x2d6 */ 0xffff,
- /* key: 0x2d7 */ 0xffff,
- /* key: 0x2d8 */ 0xa22f,
- /* key: 0x2d9 */ 0xa232,
- /* key: 0x2da */ 0xa236,
- /* key: 0x2db */ 0xa235,
- /* key: 0x2dc */ 0xffff,
- /* key: 0x2dd */ 0xa233,
- /* key: 0x2de */ 0xffff,
- /* key: 0x2df */ 0xffff,
- /* branch: 0x030X */ 0,
- /* branch: 0x031X */ 0,
- /* branch: 0x032X */ 0,
- /* branch: 0x033X */ 0,
- /* branch: 0x034X */ 0,
- /* branch: 0x035X */ 0,
- /* branch: 0x036X */ 0,
- /* branch: 0x037X */ 0,
- /* branch: 0x038X */ 528,
- /* branch: 0x039X */ 544,
- /* branch: 0x03aX */ 560,
- /* branch: 0x03bX */ 576,
- /* branch: 0x03cX */ 592,
- /* branch: 0x03dX */ 0,
- /* branch: 0x03eX */ 0,
- /* branch: 0x03fX */ 0,
- /* key: 0x380 */ 0xffff,
- /* key: 0x381 */ 0xffff,
- /* key: 0x382 */ 0xffff,
- /* key: 0x383 */ 0xffff,
- /* key: 0x384 */ 0xa238,
- /* key: 0x385 */ 0xa239,
- /* key: 0x386 */ 0xa661,
- /* key: 0x387 */ 0xffff,
- /* key: 0x388 */ 0xa662,
- /* key: 0x389 */ 0xa663,
- /* key: 0x38a */ 0xa664,
- /* key: 0x38b */ 0xffff,
- /* key: 0x38c */ 0xa667,
- /* key: 0x38d */ 0xffff,
- /* key: 0x38e */ 0xa669,
- /* key: 0x38f */ 0xa66c,
- /* key: 0x390 */ 0xa676,
- /* key: 0x391 */ 0x2621,
- /* key: 0x392 */ 0x2622,
- /* key: 0x393 */ 0x2623,
- /* key: 0x394 */ 0x2624,
- /* key: 0x395 */ 0x2625,
- /* key: 0x396 */ 0x2626,
- /* key: 0x397 */ 0x2627,
- /* key: 0x398 */ 0x2628,
- /* key: 0x399 */ 0x2629,
- /* key: 0x39a */ 0x262a,
- /* key: 0x39b */ 0x262b,
- /* key: 0x39c */ 0x262c,
- /* key: 0x39d */ 0x262d,
- /* key: 0x39e */ 0x262e,
- /* key: 0x39f */ 0x262f,
- /* key: 0x3a0 */ 0x2630,
- /* key: 0x3a1 */ 0x2631,
- /* key: 0x3a2 */ 0xffff,
- /* key: 0x3a3 */ 0x2632,
- /* key: 0x3a4 */ 0x2633,
- /* key: 0x3a5 */ 0x2634,
- /* key: 0x3a6 */ 0x2635,
- /* key: 0x3a7 */ 0x2636,
- /* key: 0x3a8 */ 0x2637,
- /* key: 0x3a9 */ 0x2638,
- /* key: 0x3aa */ 0xa665,
- /* key: 0x3ab */ 0xa66a,
- /* key: 0x3ac */ 0xa671,
- /* key: 0x3ad */ 0xa672,
- /* key: 0x3ae */ 0xa673,
- /* key: 0x3af */ 0xa674,
- /* key: 0x3b0 */ 0xa67b,
- /* key: 0x3b1 */ 0x2641,
- /* key: 0x3b2 */ 0x2642,
- /* key: 0x3b3 */ 0x2643,
- /* key: 0x3b4 */ 0x2644,
- /* key: 0x3b5 */ 0x2645,
- /* key: 0x3b6 */ 0x2646,
- /* key: 0x3b7 */ 0x2647,
- /* key: 0x3b8 */ 0x2648,
- /* key: 0x3b9 */ 0x2649,
- /* key: 0x3ba */ 0x264a,
- /* key: 0x3bb */ 0x264b,
- /* key: 0x3bc */ 0x264c,
- /* key: 0x3bd */ 0x264d,
- /* key: 0x3be */ 0x264e,
- /* key: 0x3bf */ 0x264f,
- /* key: 0x3c0 */ 0x2650,
- /* key: 0x3c1 */ 0x2651,
- /* key: 0x3c2 */ 0xa678,
- /* key: 0x3c3 */ 0x2652,
- /* key: 0x3c4 */ 0x2653,
- /* key: 0x3c5 */ 0x2654,
- /* key: 0x3c6 */ 0x2655,
- /* key: 0x3c7 */ 0x2656,
- /* key: 0x3c8 */ 0x2657,
- /* key: 0x3c9 */ 0x2658,
- /* key: 0x3ca */ 0xa675,
- /* key: 0x3cb */ 0xa67a,
- /* key: 0x3cc */ 0xa677,
- /* key: 0x3cd */ 0xa679,
- /* key: 0x3ce */ 0xa67c,
- /* key: 0x3cf */ 0xffff,
- /* branch: 0x040X */ 624,
- /* branch: 0x041X */ 640,
- /* branch: 0x042X */ 656,
- /* branch: 0x043X */ 672,
- /* branch: 0x044X */ 688,
- /* branch: 0x045X */ 704,
- /* branch: 0x046X */ 0,
- /* branch: 0x047X */ 0,
- /* branch: 0x048X */ 0,
- /* branch: 0x049X */ 0,
- /* branch: 0x04aX */ 0,
- /* branch: 0x04bX */ 0,
- /* branch: 0x04cX */ 0,
- /* branch: 0x04dX */ 0,
- /* branch: 0x04eX */ 0,
- /* branch: 0x04fX */ 0,
- /* key: 0x400 */ 0xffff,
- /* key: 0x401 */ 0x2727,
- /* key: 0x402 */ 0xa742,
- /* key: 0x403 */ 0xa743,
- /* key: 0x404 */ 0xa744,
- /* key: 0x405 */ 0xa745,
- /* key: 0x406 */ 0xa746,
- /* key: 0x407 */ 0xa747,
- /* key: 0x408 */ 0xa748,
- /* key: 0x409 */ 0xa749,
- /* key: 0x40a */ 0xa74a,
- /* key: 0x40b */ 0xa74b,
- /* key: 0x40c */ 0xa74c,
- /* key: 0x40d */ 0xffff,
- /* key: 0x40e */ 0xa74d,
- /* key: 0x40f */ 0xa74e,
- /* key: 0x410 */ 0x2721,
- /* key: 0x411 */ 0x2722,
- /* key: 0x412 */ 0x2723,
- /* key: 0x413 */ 0x2724,
- /* key: 0x414 */ 0x2725,
- /* key: 0x415 */ 0x2726,
- /* key: 0x416 */ 0x2728,
- /* key: 0x417 */ 0x2729,
- /* key: 0x418 */ 0x272a,
- /* key: 0x419 */ 0x272b,
- /* key: 0x41a */ 0x272c,
- /* key: 0x41b */ 0x272d,
- /* key: 0x41c */ 0x272e,
- /* key: 0x41d */ 0x272f,
- /* key: 0x41e */ 0x2730,
- /* key: 0x41f */ 0x2731,
- /* key: 0x420 */ 0x2732,
- /* key: 0x421 */ 0x2733,
- /* key: 0x422 */ 0x2734,
- /* key: 0x423 */ 0x2735,
- /* key: 0x424 */ 0x2736,
- /* key: 0x425 */ 0x2737,
- /* key: 0x426 */ 0x2738,
- /* key: 0x427 */ 0x2739,
- /* key: 0x428 */ 0x273a,
- /* key: 0x429 */ 0x273b,
- /* key: 0x42a */ 0x273c,
- /* key: 0x42b */ 0x273d,
- /* key: 0x42c */ 0x273e,
- /* key: 0x42d */ 0x273f,
- /* key: 0x42e */ 0x2740,
- /* key: 0x42f */ 0x2741,
- /* key: 0x430 */ 0x2751,
- /* key: 0x431 */ 0x2752,
- /* key: 0x432 */ 0x2753,
- /* key: 0x433 */ 0x2754,
- /* key: 0x434 */ 0x2755,
- /* key: 0x435 */ 0x2756,
- /* key: 0x436 */ 0x2758,
- /* key: 0x437 */ 0x2759,
- /* key: 0x438 */ 0x275a,
- /* key: 0x439 */ 0x275b,
- /* key: 0x43a */ 0x275c,
- /* key: 0x43b */ 0x275d,
- /* key: 0x43c */ 0x275e,
- /* key: 0x43d */ 0x275f,
- /* key: 0x43e */ 0x2760,
- /* key: 0x43f */ 0x2761,
- /* key: 0x440 */ 0x2762,
- /* key: 0x441 */ 0x2763,
- /* key: 0x442 */ 0x2764,
- /* key: 0x443 */ 0x2765,
- /* key: 0x444 */ 0x2766,
- /* key: 0x445 */ 0x2767,
- /* key: 0x446 */ 0x2768,
- /* key: 0x447 */ 0x2769,
- /* key: 0x448 */ 0x276a,
- /* key: 0x449 */ 0x276b,
- /* key: 0x44a */ 0x276c,
- /* key: 0x44b */ 0x276d,
- /* key: 0x44c */ 0x276e,
- /* key: 0x44d */ 0x276f,
- /* key: 0x44e */ 0x2770,
- /* key: 0x44f */ 0x2771,
- /* key: 0x450 */ 0xffff,
- /* key: 0x451 */ 0x2757,
- /* key: 0x452 */ 0xa772,
- /* key: 0x453 */ 0xa773,
- /* key: 0x454 */ 0xa774,
- /* key: 0x455 */ 0xa775,
- /* key: 0x456 */ 0xa776,
- /* key: 0x457 */ 0xa777,
- /* key: 0x458 */ 0xa778,
- /* key: 0x459 */ 0xa779,
- /* key: 0x45a */ 0xa77a,
- /* key: 0x45b */ 0xa77b,
- /* key: 0x45c */ 0xa77c,
- /* key: 0x45d */ 0xffff,
- /* key: 0x45e */ 0xa77d,
- /* key: 0x45f */ 0xa77e,
- /* branch: 0x20XX */ 736,
- /* branch: 0x21XX */ 800,
- /* branch: 0x22XX */ 896,
- /* branch: 0x23XX */ 1040,
- /* branch: 0x24XX */ 0,
- /* branch: 0x25XX */ 1072,
- /* branch: 0x26XX */ 1232,
- /* branch: 0x27XX */ 0,
- /* branch: 0x28XX */ 0,
- /* branch: 0x29XX */ 0,
- /* branch: 0x2aXX */ 0,
- /* branch: 0x2bXX */ 0,
- /* branch: 0x2cXX */ 0,
- /* branch: 0x2dXX */ 0,
- /* branch: 0x2eXX */ 0,
- /* branch: 0x2fXX */ 0,
- /* branch: 0x200X */ 0,
- /* branch: 0x201X */ 752,
- /* branch: 0x202X */ 768,
- /* branch: 0x203X */ 784,
- /* branch: 0x204X */ 0,
- /* branch: 0x205X */ 0,
- /* branch: 0x206X */ 0,
- /* branch: 0x207X */ 0,
- /* branch: 0x208X */ 0,
- /* branch: 0x209X */ 0,
- /* branch: 0x20aX */ 0,
- /* branch: 0x20bX */ 0,
- /* branch: 0x20cX */ 0,
- /* branch: 0x20dX */ 0,
- /* branch: 0x20eX */ 0,
- /* branch: 0x20fX */ 0,
- /* key: 0x2010 */ 0x213e,
- /* key: 0x2011 */ 0xffff,
- /* key: 0x2012 */ 0xffff,
- /* key: 0x2013 */ 0xffff,
- /* key: 0x2014 */ 0xffff,
- /* key: 0x2015 */ 0x213d,
- /* key: 0x2016 */ 0x2142,
- /* key: 0x2017 */ 0xffff,
- /* key: 0x2018 */ 0x2146,
- /* key: 0x2019 */ 0x2147,
- /* key: 0x201a */ 0xffff,
- /* key: 0x201b */ 0xffff,
- /* key: 0x201c */ 0x2148,
- /* key: 0x201d */ 0x2149,
- /* key: 0x201e */ 0xffff,
- /* key: 0x201f */ 0xffff,
- /* key: 0x2020 */ 0x2277,
- /* key: 0x2021 */ 0x2278,
- /* key: 0x2022 */ 0xffff,
- /* key: 0x2023 */ 0xffff,
- /* key: 0x2024 */ 0xffff,
- /* key: 0x2025 */ 0x2145,
- /* key: 0x2026 */ 0x2144,
- /* key: 0x2027 */ 0xffff,
- /* key: 0x2028 */ 0xffff,
- /* key: 0x2029 */ 0xffff,
- /* key: 0x202a */ 0xffff,
- /* key: 0x202b */ 0xffff,
- /* key: 0x202c */ 0xffff,
- /* key: 0x202d */ 0xffff,
- /* key: 0x202e */ 0xffff,
- /* key: 0x202f */ 0xffff,
- /* key: 0x2030 */ 0x2273,
- /* key: 0x2031 */ 0xffff,
- /* key: 0x2032 */ 0x216c,
- /* key: 0x2033 */ 0x216d,
- /* key: 0x2034 */ 0xffff,
- /* key: 0x2035 */ 0xffff,
- /* key: 0x2036 */ 0xffff,
- /* key: 0x2037 */ 0xffff,
- /* key: 0x2038 */ 0xffff,
- /* key: 0x2039 */ 0xffff,
- /* key: 0x203a */ 0xffff,
- /* key: 0x203b */ 0x2228,
- /* key: 0x203c */ 0xffff,
- /* key: 0x203d */ 0xffff,
- /* key: 0x203e */ 0x7e,
- /* key: 0x203f */ 0xffff,
- /* branch: 0x210X */ 816,
- /* branch: 0x211X */ 832,
- /* branch: 0x212X */ 848,
- /* branch: 0x213X */ 0,
- /* branch: 0x214X */ 0,
- /* branch: 0x215X */ 0,
- /* branch: 0x216X */ 0,
- /* branch: 0x217X */ 0,
- /* branch: 0x218X */ 0,
- /* branch: 0x219X */ 864,
- /* branch: 0x21aX */ 0,
- /* branch: 0x21bX */ 0,
- /* branch: 0x21cX */ 0,
- /* branch: 0x21dX */ 880,
- /* branch: 0x21eX */ 0,
- /* branch: 0x21fX */ 0,
- /* key: 0x2100 */ 0xffff,
- /* key: 0x2101 */ 0xffff,
- /* key: 0x2102 */ 0xffff,
- /* key: 0x2103 */ 0x216e,
- /* key: 0x2104 */ 0xffff,
- /* key: 0x2105 */ 0xffff,
- /* key: 0x2106 */ 0xffff,
- /* key: 0x2107 */ 0xffff,
- /* key: 0x2108 */ 0xffff,
- /* key: 0x2109 */ 0xffff,
- /* key: 0x210a */ 0xffff,
- /* key: 0x210b */ 0xffff,
- /* key: 0x210c */ 0xffff,
- /* key: 0x210d */ 0xffff,
- /* key: 0x210e */ 0xffff,
- /* key: 0x210f */ 0xffff,
- /* key: 0x2110 */ 0xffff,
- /* key: 0x2111 */ 0xffff,
- /* key: 0x2112 */ 0xffff,
- /* key: 0x2113 */ 0xffff,
- /* key: 0x2114 */ 0xffff,
- /* key: 0x2115 */ 0xffff,
- /* key: 0x2116 */ 0xa271,
- /* key: 0x2117 */ 0xffff,
- /* key: 0x2118 */ 0xffff,
- /* key: 0x2119 */ 0xffff,
- /* key: 0x211a */ 0xffff,
- /* key: 0x211b */ 0xffff,
- /* key: 0x211c */ 0xffff,
- /* key: 0x211d */ 0xffff,
- /* key: 0x211e */ 0xffff,
- /* key: 0x211f */ 0xffff,
- /* key: 0x2120 */ 0xffff,
- /* key: 0x2121 */ 0xffff,
- /* key: 0x2122 */ 0xa26f,
- /* key: 0x2123 */ 0xffff,
- /* key: 0x2124 */ 0xffff,
- /* key: 0x2125 */ 0xffff,
- /* key: 0x2126 */ 0xffff,
- /* key: 0x2127 */ 0xffff,
- /* key: 0x2128 */ 0xffff,
- /* key: 0x2129 */ 0xffff,
- /* key: 0x212a */ 0xffff,
- /* key: 0x212b */ 0x2272,
- /* key: 0x212c */ 0xffff,
- /* key: 0x212d */ 0xffff,
- /* key: 0x212e */ 0xffff,
- /* key: 0x212f */ 0xffff,
- /* key: 0x2190 */ 0x222b,
- /* key: 0x2191 */ 0x222c,
- /* key: 0x2192 */ 0x222a,
- /* key: 0x2193 */ 0x222d,
- /* key: 0x2194 */ 0xffff,
- /* key: 0x2195 */ 0xffff,
- /* key: 0x2196 */ 0xffff,
- /* key: 0x2197 */ 0xffff,
- /* key: 0x2198 */ 0xffff,
- /* key: 0x2199 */ 0xffff,
- /* key: 0x219a */ 0xffff,
- /* key: 0x219b */ 0xffff,
- /* key: 0x219c */ 0xffff,
- /* key: 0x219d */ 0xffff,
- /* key: 0x219e */ 0xffff,
- /* key: 0x219f */ 0xffff,
- /* key: 0x21d0 */ 0xffff,
- /* key: 0x21d1 */ 0xffff,
- /* key: 0x21d2 */ 0x224d,
- /* key: 0x21d3 */ 0xffff,
- /* key: 0x21d4 */ 0x224e,
- /* key: 0x21d5 */ 0xffff,
- /* key: 0x21d6 */ 0xffff,
- /* key: 0x21d7 */ 0xffff,
- /* key: 0x21d8 */ 0xffff,
- /* key: 0x21d9 */ 0xffff,
- /* key: 0x21da */ 0xffff,
- /* key: 0x21db */ 0xffff,
- /* key: 0x21dc */ 0xffff,
- /* key: 0x21dd */ 0xffff,
- /* key: 0x21de */ 0xffff,
- /* key: 0x21df */ 0xffff,
- /* branch: 0x220X */ 912,
- /* branch: 0x221X */ 928,
- /* branch: 0x222X */ 944,
- /* branch: 0x223X */ 960,
- /* branch: 0x224X */ 0,
- /* branch: 0x225X */ 976,
- /* branch: 0x226X */ 992,
- /* branch: 0x227X */ 0,
- /* branch: 0x228X */ 1008,
- /* branch: 0x229X */ 0,
- /* branch: 0x22aX */ 1024,
- /* branch: 0x22bX */ 0,
- /* branch: 0x22cX */ 0,
- /* branch: 0x22dX */ 0,
- /* branch: 0x22eX */ 0,
- /* branch: 0x22fX */ 0,
- /* key: 0x2200 */ 0x224f,
- /* key: 0x2201 */ 0xffff,
- /* key: 0x2202 */ 0x225f,
- /* key: 0x2203 */ 0x2250,
- /* key: 0x2204 */ 0xffff,
- /* key: 0x2205 */ 0xffff,
- /* key: 0x2206 */ 0xffff,
- /* key: 0x2207 */ 0x2260,
- /* key: 0x2208 */ 0x223a,
- /* key: 0x2209 */ 0xffff,
- /* key: 0x220a */ 0xffff,
- /* key: 0x220b */ 0x223b,
- /* key: 0x220c */ 0xffff,
- /* key: 0x220d */ 0xffff,
- /* key: 0x220e */ 0xffff,
- /* key: 0x220f */ 0xffff,
- /* key: 0x2210 */ 0xffff,
- /* key: 0x2211 */ 0xffff,
- /* key: 0x2212 */ 0x215d,
- /* key: 0x2213 */ 0xffff,
- /* key: 0x2214 */ 0xffff,
- /* key: 0x2215 */ 0xffff,
- /* key: 0x2216 */ 0xffff,
- /* key: 0x2217 */ 0xffff,
- /* key: 0x2218 */ 0xffff,
- /* key: 0x2219 */ 0xffff,
- /* key: 0x221a */ 0x2265,
- /* key: 0x221b */ 0xffff,
- /* key: 0x221c */ 0xffff,
- /* key: 0x221d */ 0x2267,
- /* key: 0x221e */ 0x2167,
- /* key: 0x221f */ 0xffff,
- /* key: 0x2220 */ 0x225c,
- /* key: 0x2221 */ 0xffff,
- /* key: 0x2222 */ 0xffff,
- /* key: 0x2223 */ 0xffff,
- /* key: 0x2224 */ 0xffff,
- /* key: 0x2225 */ 0xffff,
- /* key: 0x2226 */ 0xffff,
- /* key: 0x2227 */ 0x224a,
- /* key: 0x2228 */ 0x224b,
- /* key: 0x2229 */ 0x2241,
- /* key: 0x222a */ 0x2240,
- /* key: 0x222b */ 0x2269,
- /* key: 0x222c */ 0x226a,
- /* key: 0x222d */ 0xffff,
- /* key: 0x222e */ 0xffff,
- /* key: 0x222f */ 0xffff,
- /* key: 0x2230 */ 0xffff,
- /* key: 0x2231 */ 0xffff,
- /* key: 0x2232 */ 0xffff,
- /* key: 0x2233 */ 0xffff,
- /* key: 0x2234 */ 0x2168,
- /* key: 0x2235 */ 0x2268,
- /* key: 0x2236 */ 0xffff,
- /* key: 0x2237 */ 0xffff,
- /* key: 0x2238 */ 0xffff,
- /* key: 0x2239 */ 0xffff,
- /* key: 0x223a */ 0xffff,
- /* key: 0x223b */ 0xffff,
- /* key: 0x223c */ 0xffff,
- /* key: 0x223d */ 0x2266,
- /* key: 0x223e */ 0xffff,
- /* key: 0x223f */ 0xffff,
- /* key: 0x2250 */ 0xffff,
- /* key: 0x2251 */ 0xffff,
- /* key: 0x2252 */ 0x2262,
- /* key: 0x2253 */ 0xffff,
- /* key: 0x2254 */ 0xffff,
- /* key: 0x2255 */ 0xffff,
- /* key: 0x2256 */ 0xffff,
- /* key: 0x2257 */ 0xffff,
- /* key: 0x2258 */ 0xffff,
- /* key: 0x2259 */ 0xffff,
- /* key: 0x225a */ 0xffff,
- /* key: 0x225b */ 0xffff,
- /* key: 0x225c */ 0xffff,
- /* key: 0x225d */ 0xffff,
- /* key: 0x225e */ 0xffff,
- /* key: 0x225f */ 0xffff,
- /* key: 0x2260 */ 0x2162,
- /* key: 0x2261 */ 0x2261,
- /* key: 0x2262 */ 0xffff,
- /* key: 0x2263 */ 0xffff,
- /* key: 0x2264 */ 0xffff,
- /* key: 0x2265 */ 0xffff,
- /* key: 0x2266 */ 0x2165,
- /* key: 0x2267 */ 0x2166,
- /* key: 0x2268 */ 0xffff,
- /* key: 0x2269 */ 0xffff,
- /* key: 0x226a */ 0x2263,
- /* key: 0x226b */ 0x2264,
- /* key: 0x226c */ 0xffff,
- /* key: 0x226d */ 0xffff,
- /* key: 0x226e */ 0xffff,
- /* key: 0x226f */ 0xffff,
- /* key: 0x2280 */ 0xffff,
- /* key: 0x2281 */ 0xffff,
- /* key: 0x2282 */ 0x223e,
- /* key: 0x2283 */ 0x223f,
- /* key: 0x2284 */ 0xffff,
- /* key: 0x2285 */ 0xffff,
- /* key: 0x2286 */ 0x223c,
- /* key: 0x2287 */ 0x223d,
- /* key: 0x2288 */ 0xffff,
- /* key: 0x2289 */ 0xffff,
- /* key: 0x228a */ 0xffff,
- /* key: 0x228b */ 0xffff,
- /* key: 0x228c */ 0xffff,
- /* key: 0x228d */ 0xffff,
- /* key: 0x228e */ 0xffff,
- /* key: 0x228f */ 0xffff,
- /* key: 0x22a0 */ 0xffff,
- /* key: 0x22a1 */ 0xffff,
- /* key: 0x22a2 */ 0xffff,
- /* key: 0x22a3 */ 0xffff,
- /* key: 0x22a4 */ 0xffff,
- /* key: 0x22a5 */ 0x225d,
- /* key: 0x22a6 */ 0xffff,
- /* key: 0x22a7 */ 0xffff,
- /* key: 0x22a8 */ 0xffff,
- /* key: 0x22a9 */ 0xffff,
- /* key: 0x22aa */ 0xffff,
- /* key: 0x22ab */ 0xffff,
- /* key: 0x22ac */ 0xffff,
- /* key: 0x22ad */ 0xffff,
- /* key: 0x22ae */ 0xffff,
- /* key: 0x22af */ 0xffff,
- /* branch: 0x230X */ 0,
- /* branch: 0x231X */ 1056,
- /* branch: 0x232X */ 0,
- /* branch: 0x233X */ 0,
- /* branch: 0x234X */ 0,
- /* branch: 0x235X */ 0,
- /* branch: 0x236X */ 0,
- /* branch: 0x237X */ 0,
- /* branch: 0x238X */ 0,
- /* branch: 0x239X */ 0,
- /* branch: 0x23aX */ 0,
- /* branch: 0x23bX */ 0,
- /* branch: 0x23cX */ 0,
- /* branch: 0x23dX */ 0,
- /* branch: 0x23eX */ 0,
- /* branch: 0x23fX */ 0,
- /* key: 0x2310 */ 0xffff,
- /* key: 0x2311 */ 0xffff,
- /* key: 0x2312 */ 0x225e,
- /* key: 0x2313 */ 0xffff,
- /* key: 0x2314 */ 0xffff,
- /* key: 0x2315 */ 0xffff,
- /* key: 0x2316 */ 0xffff,
- /* key: 0x2317 */ 0xffff,
- /* key: 0x2318 */ 0xffff,
- /* key: 0x2319 */ 0xffff,
- /* key: 0x231a */ 0xffff,
- /* key: 0x231b */ 0xffff,
- /* key: 0x231c */ 0xffff,
- /* key: 0x231d */ 0xffff,
- /* key: 0x231e */ 0xffff,
- /* key: 0x231f */ 0xffff,
- /* branch: 0x250X */ 1088,
- /* branch: 0x251X */ 1104,
- /* branch: 0x252X */ 1120,
- /* branch: 0x253X */ 1136,
- /* branch: 0x254X */ 1152,
- /* branch: 0x255X */ 0,
- /* branch: 0x256X */ 0,
- /* branch: 0x257X */ 0,
- /* branch: 0x258X */ 0,
- /* branch: 0x259X */ 0,
- /* branch: 0x25aX */ 1168,
- /* branch: 0x25bX */ 1184,
- /* branch: 0x25cX */ 1200,
- /* branch: 0x25dX */ 0,
- /* branch: 0x25eX */ 1216,
- /* branch: 0x25fX */ 0,
- /* key: 0x2500 */ 0x2821,
- /* key: 0x2501 */ 0x282c,
- /* key: 0x2502 */ 0x2822,
- /* key: 0x2503 */ 0x282d,
- /* key: 0x2504 */ 0xffff,
- /* key: 0x2505 */ 0xffff,
- /* key: 0x2506 */ 0xffff,
- /* key: 0x2507 */ 0xffff,
- /* key: 0x2508 */ 0xffff,
- /* key: 0x2509 */ 0xffff,
- /* key: 0x250a */ 0xffff,
- /* key: 0x250b */ 0xffff,
- /* key: 0x250c */ 0x2823,
- /* key: 0x250d */ 0xffff,
- /* key: 0x250e */ 0xffff,
- /* key: 0x250f */ 0x282e,
- /* key: 0x2510 */ 0x2824,
- /* key: 0x2511 */ 0xffff,
- /* key: 0x2512 */ 0xffff,
- /* key: 0x2513 */ 0x282f,
- /* key: 0x2514 */ 0x2826,
- /* key: 0x2515 */ 0xffff,
- /* key: 0x2516 */ 0xffff,
- /* key: 0x2517 */ 0x2831,
- /* key: 0x2518 */ 0x2825,
- /* key: 0x2519 */ 0xffff,
- /* key: 0x251a */ 0xffff,
- /* key: 0x251b */ 0x2830,
- /* key: 0x251c */ 0x2827,
- /* key: 0x251d */ 0x283c,
- /* key: 0x251e */ 0xffff,
- /* key: 0x251f */ 0xffff,
- /* key: 0x2520 */ 0x2837,
- /* key: 0x2521 */ 0xffff,
- /* key: 0x2522 */ 0xffff,
- /* key: 0x2523 */ 0x2832,
- /* key: 0x2524 */ 0x2829,
- /* key: 0x2525 */ 0x283e,
- /* key: 0x2526 */ 0xffff,
- /* key: 0x2527 */ 0xffff,
- /* key: 0x2528 */ 0x2839,
- /* key: 0x2529 */ 0xffff,
- /* key: 0x252a */ 0xffff,
- /* key: 0x252b */ 0x2834,
- /* key: 0x252c */ 0x2828,
- /* key: 0x252d */ 0xffff,
- /* key: 0x252e */ 0xffff,
- /* key: 0x252f */ 0x2838,
- /* key: 0x2530 */ 0x283d,
- /* key: 0x2531 */ 0xffff,
- /* key: 0x2532 */ 0xffff,
- /* key: 0x2533 */ 0x2833,
- /* key: 0x2534 */ 0x282a,
- /* key: 0x2535 */ 0xffff,
- /* key: 0x2536 */ 0xffff,
- /* key: 0x2537 */ 0x283a,
- /* key: 0x2538 */ 0x283f,
- /* key: 0x2539 */ 0xffff,
- /* key: 0x253a */ 0xffff,
- /* key: 0x253b */ 0x2835,
- /* key: 0x253c */ 0x282b,
- /* key: 0x253d */ 0xffff,
- /* key: 0x253e */ 0xffff,
- /* key: 0x253f */ 0x283b,
- /* key: 0x2540 */ 0xffff,
- /* key: 0x2541 */ 0xffff,
- /* key: 0x2542 */ 0x2840,
- /* key: 0x2543 */ 0xffff,
- /* key: 0x2544 */ 0xffff,
- /* key: 0x2545 */ 0xffff,
- /* key: 0x2546 */ 0xffff,
- /* key: 0x2547 */ 0xffff,
- /* key: 0x2548 */ 0xffff,
- /* key: 0x2549 */ 0xffff,
- /* key: 0x254a */ 0xffff,
- /* key: 0x254b */ 0x2836,
- /* key: 0x254c */ 0xffff,
- /* key: 0x254d */ 0xffff,
- /* key: 0x254e */ 0xffff,
- /* key: 0x254f */ 0xffff,
- /* key: 0x25a0 */ 0x2223,
- /* key: 0x25a1 */ 0x2222,
- /* key: 0x25a2 */ 0xffff,
- /* key: 0x25a3 */ 0xffff,
- /* key: 0x25a4 */ 0xffff,
- /* key: 0x25a5 */ 0xffff,
- /* key: 0x25a6 */ 0xffff,
- /* key: 0x25a7 */ 0xffff,
- /* key: 0x25a8 */ 0xffff,
- /* key: 0x25a9 */ 0xffff,
- /* key: 0x25aa */ 0xffff,
- /* key: 0x25ab */ 0xffff,
- /* key: 0x25ac */ 0xffff,
- /* key: 0x25ad */ 0xffff,
- /* key: 0x25ae */ 0xffff,
- /* key: 0x25af */ 0xffff,
- /* key: 0x25b0 */ 0xffff,
- /* key: 0x25b1 */ 0xffff,
- /* key: 0x25b2 */ 0x2225,
- /* key: 0x25b3 */ 0x2224,
- /* key: 0x25b4 */ 0xffff,
- /* key: 0x25b5 */ 0xffff,
- /* key: 0x25b6 */ 0xffff,
- /* key: 0x25b7 */ 0xffff,
- /* key: 0x25b8 */ 0xffff,
- /* key: 0x25b9 */ 0xffff,
- /* key: 0x25ba */ 0xffff,
- /* key: 0x25bb */ 0xffff,
- /* key: 0x25bc */ 0x2227,
- /* key: 0x25bd */ 0x2226,
- /* key: 0x25be */ 0xffff,
- /* key: 0x25bf */ 0xffff,
- /* key: 0x25c0 */ 0xffff,
- /* key: 0x25c1 */ 0xffff,
- /* key: 0x25c2 */ 0xffff,
- /* key: 0x25c3 */ 0xffff,
- /* key: 0x25c4 */ 0xffff,
- /* key: 0x25c5 */ 0xffff,
- /* key: 0x25c6 */ 0x2221,
- /* key: 0x25c7 */ 0x217e,
- /* key: 0x25c8 */ 0xffff,
- /* key: 0x25c9 */ 0xffff,
- /* key: 0x25ca */ 0xffff,
- /* key: 0x25cb */ 0x217b,
- /* key: 0x25cc */ 0xffff,
- /* key: 0x25cd */ 0xffff,
- /* key: 0x25ce */ 0x217d,
- /* key: 0x25cf */ 0x217c,
- /* key: 0x25e0 */ 0xffff,
- /* key: 0x25e1 */ 0xffff,
- /* key: 0x25e2 */ 0xffff,
- /* key: 0x25e3 */ 0xffff,
- /* key: 0x25e4 */ 0xffff,
- /* key: 0x25e5 */ 0xffff,
- /* key: 0x25e6 */ 0xffff,
- /* key: 0x25e7 */ 0xffff,
- /* key: 0x25e8 */ 0xffff,
- /* key: 0x25e9 */ 0xffff,
- /* key: 0x25ea */ 0xffff,
- /* key: 0x25eb */ 0xffff,
- /* key: 0x25ec */ 0xffff,
- /* key: 0x25ed */ 0xffff,
- /* key: 0x25ee */ 0xffff,
- /* key: 0x25ef */ 0x227e,
- /* branch: 0x260X */ 1248,
- /* branch: 0x261X */ 0,
- /* branch: 0x262X */ 0,
- /* branch: 0x263X */ 0,
- /* branch: 0x264X */ 1264,
- /* branch: 0x265X */ 0,
- /* branch: 0x266X */ 1280,
- /* branch: 0x267X */ 0,
- /* branch: 0x268X */ 0,
- /* branch: 0x269X */ 0,
- /* branch: 0x26aX */ 0,
- /* branch: 0x26bX */ 0,
- /* branch: 0x26cX */ 0,
- /* branch: 0x26dX */ 0,
- /* branch: 0x26eX */ 0,
- /* branch: 0x26fX */ 0,
- /* key: 0x2600 */ 0xffff,
- /* key: 0x2601 */ 0xffff,
- /* key: 0x2602 */ 0xffff,
- /* key: 0x2603 */ 0xffff,
- /* key: 0x2604 */ 0xffff,
- /* key: 0x2605 */ 0x217a,
- /* key: 0x2606 */ 0x2179,
- /* key: 0x2607 */ 0xffff,
- /* key: 0x2608 */ 0xffff,
- /* key: 0x2609 */ 0xffff,
- /* key: 0x260a */ 0xffff,
- /* key: 0x260b */ 0xffff,
- /* key: 0x260c */ 0xffff,
- /* key: 0x260d */ 0xffff,
- /* key: 0x260e */ 0xffff,
- /* key: 0x260f */ 0xffff,
- /* key: 0x2640 */ 0x216a,
- /* key: 0x2641 */ 0xffff,
- /* key: 0x2642 */ 0x2169,
- /* key: 0x2643 */ 0xffff,
- /* key: 0x2644 */ 0xffff,
- /* key: 0x2645 */ 0xffff,
- /* key: 0x2646 */ 0xffff,
- /* key: 0x2647 */ 0xffff,
- /* key: 0x2648 */ 0xffff,
- /* key: 0x2649 */ 0xffff,
- /* key: 0x264a */ 0xffff,
- /* key: 0x264b */ 0xffff,
- /* key: 0x264c */ 0xffff,
- /* key: 0x264d */ 0xffff,
- /* key: 0x264e */ 0xffff,
- /* key: 0x264f */ 0xffff,
- /* key: 0x2660 */ 0xffff,
- /* key: 0x2661 */ 0xffff,
- /* key: 0x2662 */ 0xffff,
- /* key: 0x2663 */ 0xffff,
- /* key: 0x2664 */ 0xffff,
- /* key: 0x2665 */ 0xffff,
- /* key: 0x2666 */ 0xffff,
- /* key: 0x2667 */ 0xffff,
- /* key: 0x2668 */ 0xffff,
- /* key: 0x2669 */ 0xffff,
- /* key: 0x266a */ 0x2276,
- /* key: 0x266b */ 0xffff,
- /* key: 0x266c */ 0xffff,
- /* key: 0x266d */ 0x2275,
- /* key: 0x266e */ 0xffff,
- /* key: 0x266f */ 0x2274,
- /* branch: 0x30XX */ 1312,
- /* branch: 0x31XX */ 0,
- /* branch: 0x32XX */ 0,
- /* branch: 0x33XX */ 0,
- /* branch: 0x34XX */ 0,
- /* branch: 0x35XX */ 0,
- /* branch: 0x36XX */ 0,
- /* branch: 0x37XX */ 0,
- /* branch: 0x38XX */ 0,
- /* branch: 0x39XX */ 0,
- /* branch: 0x3aXX */ 0,
- /* branch: 0x3bXX */ 0,
- /* branch: 0x3cXX */ 0,
- /* branch: 0x3dXX */ 0,
- /* branch: 0x3eXX */ 0,
- /* branch: 0x3fXX */ 0,
- /* branch: 0x300X */ 1328,
- /* branch: 0x301X */ 1344,
- /* branch: 0x302X */ 0,
- /* branch: 0x303X */ 0,
- /* branch: 0x304X */ 1360,
- /* branch: 0x305X */ 1376,
- /* branch: 0x306X */ 1392,
- /* branch: 0x307X */ 1408,
- /* branch: 0x308X */ 1424,
- /* branch: 0x309X */ 1440,
- /* branch: 0x30aX */ 1456,
- /* branch: 0x30bX */ 1472,
- /* branch: 0x30cX */ 1488,
- /* branch: 0x30dX */ 1504,
- /* branch: 0x30eX */ 1520,
- /* branch: 0x30fX */ 1536,
- /* key: 0x3000 */ 0x2121,
- /* key: 0x3001 */ 0x2122,
- /* key: 0x3002 */ 0x2123,
- /* key: 0x3003 */ 0x2137,
- /* key: 0x3004 */ 0xffff,
- /* key: 0x3005 */ 0x2139,
- /* key: 0x3006 */ 0x213a,
- /* key: 0x3007 */ 0x213b,
- /* key: 0x3008 */ 0x2152,
- /* key: 0x3009 */ 0x2153,
- /* key: 0x300a */ 0x2154,
- /* key: 0x300b */ 0x2155,
- /* key: 0x300c */ 0x2156,
- /* key: 0x300d */ 0x2157,
- /* key: 0x300e */ 0x2158,
- /* key: 0x300f */ 0x2159,
- /* key: 0x3010 */ 0x215a,
- /* key: 0x3011 */ 0x215b,
- /* key: 0x3012 */ 0x2229,
- /* key: 0x3013 */ 0x222e,
- /* key: 0x3014 */ 0x214c,
- /* key: 0x3015 */ 0x214d,
- /* key: 0x3016 */ 0xffff,
- /* key: 0x3017 */ 0xffff,
- /* key: 0x3018 */ 0xffff,
- /* key: 0x3019 */ 0xffff,
- /* key: 0x301a */ 0xffff,
- /* key: 0x301b */ 0xffff,
- /* key: 0x301c */ 0x2141,
- /* key: 0x301d */ 0xffff,
- /* key: 0x301e */ 0xffff,
- /* key: 0x301f */ 0xffff,
- /* key: 0x3040 */ 0xffff,
- /* key: 0x3041 */ 0x2421,
- /* key: 0x3042 */ 0x2422,
- /* key: 0x3043 */ 0x2423,
- /* key: 0x3044 */ 0x2424,
- /* key: 0x3045 */ 0x2425,
- /* key: 0x3046 */ 0x2426,
- /* key: 0x3047 */ 0x2427,
- /* key: 0x3048 */ 0x2428,
- /* key: 0x3049 */ 0x2429,
- /* key: 0x304a */ 0x242a,
- /* key: 0x304b */ 0x242b,
- /* key: 0x304c */ 0x242c,
- /* key: 0x304d */ 0x242d,
- /* key: 0x304e */ 0x242e,
- /* key: 0x304f */ 0x242f,
- /* key: 0x3050 */ 0x2430,
- /* key: 0x3051 */ 0x2431,
- /* key: 0x3052 */ 0x2432,
- /* key: 0x3053 */ 0x2433,
- /* key: 0x3054 */ 0x2434,
- /* key: 0x3055 */ 0x2435,
- /* key: 0x3056 */ 0x2436,
- /* key: 0x3057 */ 0x2437,
- /* key: 0x3058 */ 0x2438,
- /* key: 0x3059 */ 0x2439,
- /* key: 0x305a */ 0x243a,
- /* key: 0x305b */ 0x243b,
- /* key: 0x305c */ 0x243c,
- /* key: 0x305d */ 0x243d,
- /* key: 0x305e */ 0x243e,
- /* key: 0x305f */ 0x243f,
- /* key: 0x3060 */ 0x2440,
- /* key: 0x3061 */ 0x2441,
- /* key: 0x3062 */ 0x2442,
- /* key: 0x3063 */ 0x2443,
- /* key: 0x3064 */ 0x2444,
- /* key: 0x3065 */ 0x2445,
- /* key: 0x3066 */ 0x2446,
- /* key: 0x3067 */ 0x2447,
- /* key: 0x3068 */ 0x2448,
- /* key: 0x3069 */ 0x2449,
- /* key: 0x306a */ 0x244a,
- /* key: 0x306b */ 0x244b,
- /* key: 0x306c */ 0x244c,
- /* key: 0x306d */ 0x244d,
- /* key: 0x306e */ 0x244e,
- /* key: 0x306f */ 0x244f,
- /* key: 0x3070 */ 0x2450,
- /* key: 0x3071 */ 0x2451,
- /* key: 0x3072 */ 0x2452,
- /* key: 0x3073 */ 0x2453,
- /* key: 0x3074 */ 0x2454,
- /* key: 0x3075 */ 0x2455,
- /* key: 0x3076 */ 0x2456,
- /* key: 0x3077 */ 0x2457,
- /* key: 0x3078 */ 0x2458,
- /* key: 0x3079 */ 0x2459,
- /* key: 0x307a */ 0x245a,
- /* key: 0x307b */ 0x245b,
- /* key: 0x307c */ 0x245c,
- /* key: 0x307d */ 0x245d,
- /* key: 0x307e */ 0x245e,
- /* key: 0x307f */ 0x245f,
- /* key: 0x3080 */ 0x2460,
- /* key: 0x3081 */ 0x2461,
- /* key: 0x3082 */ 0x2462,
- /* key: 0x3083 */ 0x2463,
- /* key: 0x3084 */ 0x2464,
- /* key: 0x3085 */ 0x2465,
- /* key: 0x3086 */ 0x2466,
- /* key: 0x3087 */ 0x2467,
- /* key: 0x3088 */ 0x2468,
- /* key: 0x3089 */ 0x2469,
- /* key: 0x308a */ 0x246a,
- /* key: 0x308b */ 0x246b,
- /* key: 0x308c */ 0x246c,
- /* key: 0x308d */ 0x246d,
- /* key: 0x308e */ 0x246e,
- /* key: 0x308f */ 0x246f,
- /* key: 0x3090 */ 0x2470,
- /* key: 0x3091 */ 0x2471,
- /* key: 0x3092 */ 0x2472,
- /* key: 0x3093 */ 0x2473,
- /* key: 0x3094 */ 0xffff,
- /* key: 0x3095 */ 0xffff,
- /* key: 0x3096 */ 0xffff,
- /* key: 0x3097 */ 0xffff,
- /* key: 0x3098 */ 0xffff,
- /* key: 0x3099 */ 0xffff,
- /* key: 0x309a */ 0xffff,
- /* key: 0x309b */ 0x212b,
- /* key: 0x309c */ 0x212c,
- /* key: 0x309d */ 0x2135,
- /* key: 0x309e */ 0x2136,
- /* key: 0x309f */ 0xffff,
- /* key: 0x30a0 */ 0xffff,
- /* key: 0x30a1 */ 0x2521,
- /* key: 0x30a2 */ 0x2522,
- /* key: 0x30a3 */ 0x2523,
- /* key: 0x30a4 */ 0x2524,
- /* key: 0x30a5 */ 0x2525,
- /* key: 0x30a6 */ 0x2526,
- /* key: 0x30a7 */ 0x2527,
- /* key: 0x30a8 */ 0x2528,
- /* key: 0x30a9 */ 0x2529,
- /* key: 0x30aa */ 0x252a,
- /* key: 0x30ab */ 0x252b,
- /* key: 0x30ac */ 0x252c,
- /* key: 0x30ad */ 0x252d,
- /* key: 0x30ae */ 0x252e,
- /* key: 0x30af */ 0x252f,
- /* key: 0x30b0 */ 0x2530,
- /* key: 0x30b1 */ 0x2531,
- /* key: 0x30b2 */ 0x2532,
- /* key: 0x30b3 */ 0x2533,
- /* key: 0x30b4 */ 0x2534,
- /* key: 0x30b5 */ 0x2535,
- /* key: 0x30b6 */ 0x2536,
- /* key: 0x30b7 */ 0x2537,
- /* key: 0x30b8 */ 0x2538,
- /* key: 0x30b9 */ 0x2539,
- /* key: 0x30ba */ 0x253a,
- /* key: 0x30bb */ 0x253b,
- /* key: 0x30bc */ 0x253c,
- /* key: 0x30bd */ 0x253d,
- /* key: 0x30be */ 0x253e,
- /* key: 0x30bf */ 0x253f,
- /* key: 0x30c0 */ 0x2540,
- /* key: 0x30c1 */ 0x2541,
- /* key: 0x30c2 */ 0x2542,
- /* key: 0x30c3 */ 0x2543,
- /* key: 0x30c4 */ 0x2544,
- /* key: 0x30c5 */ 0x2545,
- /* key: 0x30c6 */ 0x2546,
- /* key: 0x30c7 */ 0x2547,
- /* key: 0x30c8 */ 0x2548,
- /* key: 0x30c9 */ 0x2549,
- /* key: 0x30ca */ 0x254a,
- /* key: 0x30cb */ 0x254b,
- /* key: 0x30cc */ 0x254c,
- /* key: 0x30cd */ 0x254d,
- /* key: 0x30ce */ 0x254e,
- /* key: 0x30cf */ 0x254f,
- /* key: 0x30d0 */ 0x2550,
- /* key: 0x30d1 */ 0x2551,
- /* key: 0x30d2 */ 0x2552,
- /* key: 0x30d3 */ 0x2553,
- /* key: 0x30d4 */ 0x2554,
- /* key: 0x30d5 */ 0x2555,
- /* key: 0x30d6 */ 0x2556,
- /* key: 0x30d7 */ 0x2557,
- /* key: 0x30d8 */ 0x2558,
- /* key: 0x30d9 */ 0x2559,
- /* key: 0x30da */ 0x255a,
- /* key: 0x30db */ 0x255b,
- /* key: 0x30dc */ 0x255c,
- /* key: 0x30dd */ 0x255d,
- /* key: 0x30de */ 0x255e,
- /* key: 0x30df */ 0x255f,
- /* key: 0x30e0 */ 0x2560,
- /* key: 0x30e1 */ 0x2561,
- /* key: 0x30e2 */ 0x2562,
- /* key: 0x30e3 */ 0x2563,
- /* key: 0x30e4 */ 0x2564,
- /* key: 0x30e5 */ 0x2565,
- /* key: 0x30e6 */ 0x2566,
- /* key: 0x30e7 */ 0x2567,
- /* key: 0x30e8 */ 0x2568,
- /* key: 0x30e9 */ 0x2569,
- /* key: 0x30ea */ 0x256a,
- /* key: 0x30eb */ 0x256b,
- /* key: 0x30ec */ 0x256c,
- /* key: 0x30ed */ 0x256d,
- /* key: 0x30ee */ 0x256e,
- /* key: 0x30ef */ 0x256f,
- /* key: 0x30f0 */ 0x2570,
- /* key: 0x30f1 */ 0x2571,
- /* key: 0x30f2 */ 0x2572,
- /* key: 0x30f3 */ 0x2573,
- /* key: 0x30f4 */ 0x2574,
- /* key: 0x30f5 */ 0x2575,
- /* key: 0x30f6 */ 0x2576,
- /* key: 0x30f7 */ 0xffff,
- /* key: 0x30f8 */ 0xffff,
- /* key: 0x30f9 */ 0xffff,
- /* key: 0x30fa */ 0xffff,
- /* key: 0x30fb */ 0x2126,
- /* key: 0x30fc */ 0x213c,
- /* key: 0x30fd */ 0x2133,
- /* key: 0x30fe */ 0x2134,
- /* key: 0x30ff */ 0xffff,
- /* branch: 0x40XX */ 0,
- /* branch: 0x41XX */ 0,
- /* branch: 0x42XX */ 0,
- /* branch: 0x43XX */ 0,
- /* branch: 0x44XX */ 0,
- /* branch: 0x45XX */ 0,
- /* branch: 0x46XX */ 0,
- /* branch: 0x47XX */ 0,
- /* branch: 0x48XX */ 0,
- /* branch: 0x49XX */ 0,
- /* branch: 0x4aXX */ 0,
- /* branch: 0x4bXX */ 0,
- /* branch: 0x4cXX */ 0,
- /* branch: 0x4dXX */ 0,
- /* branch: 0x4eXX */ 1568,
- /* branch: 0x4fXX */ 1840,
- /* branch: 0x4e0X */ 1584,
- /* branch: 0x4e1X */ 1600,
- /* branch: 0x4e2X */ 1616,
- /* branch: 0x4e3X */ 1632,
- /* branch: 0x4e4X */ 1648,
- /* branch: 0x4e5X */ 1664,
- /* branch: 0x4e6X */ 1680,
- /* branch: 0x4e7X */ 1696,
- /* branch: 0x4e8X */ 1712,
- /* branch: 0x4e9X */ 1728,
- /* branch: 0x4eaX */ 1744,
- /* branch: 0x4ebX */ 1760,
- /* branch: 0x4ecX */ 1776,
- /* branch: 0x4edX */ 1792,
- /* branch: 0x4eeX */ 1808,
- /* branch: 0x4efX */ 1824,
- /* key: 0x4e00 */ 0x306c,
- /* key: 0x4e01 */ 0x437a,
- /* key: 0x4e02 */ 0xb021,
- /* key: 0x4e03 */ 0x3c37,
- /* key: 0x4e04 */ 0xb022,
- /* key: 0x4e05 */ 0xb023,
- /* key: 0x4e06 */ 0xffff,
- /* key: 0x4e07 */ 0x4b7c,
- /* key: 0x4e08 */ 0x3e66,
- /* key: 0x4e09 */ 0x3b30,
- /* key: 0x4e0a */ 0x3e65,
- /* key: 0x4e0b */ 0x323c,
- /* key: 0x4e0c */ 0xb024,
- /* key: 0x4e0d */ 0x4954,
- /* key: 0x4e0e */ 0x4d3f,
- /* key: 0x4e0f */ 0xffff,
- /* key: 0x4e10 */ 0x5022,
- /* key: 0x4e11 */ 0x312f,
- /* key: 0x4e12 */ 0xb025,
- /* key: 0x4e13 */ 0xffff,
- /* key: 0x4e14 */ 0x336e,
- /* key: 0x4e15 */ 0x5023,
- /* key: 0x4e16 */ 0x4024,
- /* key: 0x4e17 */ 0x5242,
- /* key: 0x4e18 */ 0x3556,
- /* key: 0x4e19 */ 0x4a3a,
- /* key: 0x4e1a */ 0xffff,
- /* key: 0x4e1b */ 0xffff,
- /* key: 0x4e1c */ 0xffff,
- /* key: 0x4e1d */ 0xffff,
- /* key: 0x4e1e */ 0x3e67,
- /* key: 0x4e1f */ 0xb026,
- /* key: 0x4e20 */ 0xffff,
- /* key: 0x4e21 */ 0x4e3e,
- /* key: 0x4e22 */ 0xffff,
- /* key: 0x4e23 */ 0xb027,
- /* key: 0x4e24 */ 0xb028,
- /* key: 0x4e25 */ 0xffff,
- /* key: 0x4e26 */ 0x4a42,
- /* key: 0x4e27 */ 0xffff,
- /* key: 0x4e28 */ 0xb029,
- /* key: 0x4e29 */ 0xffff,
- /* key: 0x4e2a */ 0x5024,
- /* key: 0x4e2b */ 0xb02a,
- /* key: 0x4e2c */ 0xffff,
- /* key: 0x4e2d */ 0x4366,
- /* key: 0x4e2e */ 0xb02b,
- /* key: 0x4e2f */ 0xb02c,
- /* key: 0x4e30 */ 0xb02d,
- /* key: 0x4e31 */ 0x5025,
- /* key: 0x4e32 */ 0x367a,
- /* key: 0x4e33 */ 0xffff,
- /* key: 0x4e34 */ 0xffff,
- /* key: 0x4e35 */ 0xb02e,
- /* key: 0x4e36 */ 0x5026,
- /* key: 0x4e37 */ 0xffff,
- /* key: 0x4e38 */ 0x345d,
- /* key: 0x4e39 */ 0x4330,
- /* key: 0x4e3a */ 0xffff,
- /* key: 0x4e3b */ 0x3c67,
- /* key: 0x4e3c */ 0x5027,
- /* key: 0x4e3d */ 0xffff,
- /* key: 0x4e3e */ 0xffff,
- /* key: 0x4e3f */ 0x5028,
- /* key: 0x4e40 */ 0xb02f,
- /* key: 0x4e41 */ 0xb030,
- /* key: 0x4e42 */ 0x5029,
- /* key: 0x4e43 */ 0x4735,
- /* key: 0x4e44 */ 0xb031,
- /* key: 0x4e45 */ 0x3557,
- /* key: 0x4e46 */ 0xffff,
- /* key: 0x4e47 */ 0xb032,
- /* key: 0x4e48 */ 0xffff,
- /* key: 0x4e49 */ 0xffff,
- /* key: 0x4e4a */ 0xffff,
- /* key: 0x4e4b */ 0x4737,
- /* key: 0x4e4c */ 0xffff,
- /* key: 0x4e4d */ 0x4663,
- /* key: 0x4e4e */ 0x3843,
- /* key: 0x4e4f */ 0x4b33,
- /* key: 0x4e50 */ 0xffff,
- /* key: 0x4e51 */ 0xb033,
- /* key: 0x4e52 */ 0xffff,
- /* key: 0x4e53 */ 0xffff,
- /* key: 0x4e54 */ 0xffff,
- /* key: 0x4e55 */ 0x6949,
- /* key: 0x4e56 */ 0x502a,
- /* key: 0x4e57 */ 0x3e68,
- /* key: 0x4e58 */ 0x502b,
- /* key: 0x4e59 */ 0x3235,
- /* key: 0x4e5a */ 0xb034,
- /* key: 0x4e5b */ 0xffff,
- /* key: 0x4e5c */ 0xb035,
- /* key: 0x4e5d */ 0x3665,
- /* key: 0x4e5e */ 0x3870,
- /* key: 0x4e5f */ 0x4c69,
- /* key: 0x4e60 */ 0xffff,
- /* key: 0x4e61 */ 0xffff,
- /* key: 0x4e62 */ 0x5626,
- /* key: 0x4e63 */ 0xb036,
- /* key: 0x4e64 */ 0xffff,
- /* key: 0x4e65 */ 0xffff,
- /* key: 0x4e66 */ 0xffff,
- /* key: 0x4e67 */ 0xffff,
- /* key: 0x4e68 */ 0xb037,
- /* key: 0x4e69 */ 0xb038,
- /* key: 0x4e6a */ 0xffff,
- /* key: 0x4e6b */ 0xffff,
- /* key: 0x4e6c */ 0xffff,
- /* key: 0x4e6d */ 0xffff,
- /* key: 0x4e6e */ 0xffff,
- /* key: 0x4e6f */ 0xffff,
- /* key: 0x4e70 */ 0xffff,
- /* key: 0x4e71 */ 0x4d70,
- /* key: 0x4e72 */ 0xffff,
- /* key: 0x4e73 */ 0x467d,
- /* key: 0x4e74 */ 0xb039,
- /* key: 0x4e75 */ 0xb03a,
- /* key: 0x4e76 */ 0xffff,
- /* key: 0x4e77 */ 0xffff,
- /* key: 0x4e78 */ 0xffff,
- /* key: 0x4e79 */ 0xb03b,
- /* key: 0x4e7a */ 0xffff,
- /* key: 0x4e7b */ 0xffff,
- /* key: 0x4e7c */ 0xffff,
- /* key: 0x4e7d */ 0xffff,
- /* key: 0x4e7e */ 0x3425,
- /* key: 0x4e7f */ 0xb03c,
- /* key: 0x4e80 */ 0x3535,
- /* key: 0x4e81 */ 0xffff,
- /* key: 0x4e82 */ 0x502c,
- /* key: 0x4e83 */ 0xffff,
- /* key: 0x4e84 */ 0xffff,
- /* key: 0x4e85 */ 0x502d,
- /* key: 0x4e86 */ 0x4e3b,
- /* key: 0x4e87 */ 0xffff,
- /* key: 0x4e88 */ 0x4d3d,
- /* key: 0x4e89 */ 0x4168,
- /* key: 0x4e8a */ 0x502f,
- /* key: 0x4e8b */ 0x3b76,
- /* key: 0x4e8c */ 0x4673,
- /* key: 0x4e8d */ 0xb03d,
- /* key: 0x4e8e */ 0x5032,
- /* key: 0x4e8f */ 0xffff,
- /* key: 0x4e90 */ 0xffff,
- /* key: 0x4e91 */ 0x313e,
- /* key: 0x4e92 */ 0x385f,
- /* key: 0x4e93 */ 0xffff,
- /* key: 0x4e94 */ 0x385e,
- /* key: 0x4e95 */ 0x3066,
- /* key: 0x4e96 */ 0xb03e,
- /* key: 0x4e97 */ 0xb03f,
- /* key: 0x4e98 */ 0x4f4b,
- /* key: 0x4e99 */ 0x4f4a,
- /* key: 0x4e9a */ 0xffff,
- /* key: 0x4e9b */ 0x3a33,
- /* key: 0x4e9c */ 0x3021,
- /* key: 0x4e9d */ 0xb040,
- /* key: 0x4e9e */ 0x5033,
- /* key: 0x4e9f */ 0x5034,
- /* key: 0x4ea0 */ 0x5035,
- /* key: 0x4ea1 */ 0x4b34,
- /* key: 0x4ea2 */ 0x5036,
- /* key: 0x4ea3 */ 0xffff,
- /* key: 0x4ea4 */ 0x3872,
- /* key: 0x4ea5 */ 0x3067,
- /* key: 0x4ea6 */ 0x4b72,
- /* key: 0x4ea7 */ 0xffff,
- /* key: 0x4ea8 */ 0x357c,
- /* key: 0x4ea9 */ 0xffff,
- /* key: 0x4eaa */ 0xffff,
- /* key: 0x4eab */ 0x357d,
- /* key: 0x4eac */ 0x357e,
- /* key: 0x4ead */ 0x4462,
- /* key: 0x4eae */ 0x4e3c,
- /* key: 0x4eaf */ 0xb041,
- /* key: 0x4eb0 */ 0x5037,
- /* key: 0x4eb1 */ 0xffff,
- /* key: 0x4eb2 */ 0xffff,
- /* key: 0x4eb3 */ 0x5038,
- /* key: 0x4eb4 */ 0xffff,
- /* key: 0x4eb5 */ 0xffff,
- /* key: 0x4eb6 */ 0x5039,
- /* key: 0x4eb7 */ 0xffff,
- /* key: 0x4eb8 */ 0xffff,
- /* key: 0x4eb9 */ 0xb042,
- /* key: 0x4eba */ 0x3f4d,
- /* key: 0x4ebb */ 0xffff,
- /* key: 0x4ebc */ 0xffff,
- /* key: 0x4ebd */ 0xffff,
- /* key: 0x4ebe */ 0xffff,
- /* key: 0x4ebf */ 0xffff,
- /* key: 0x4ec0 */ 0x3d3a,
- /* key: 0x4ec1 */ 0x3f4e,
- /* key: 0x4ec2 */ 0x503e,
- /* key: 0x4ec3 */ 0xb043,
- /* key: 0x4ec4 */ 0x503c,
- /* key: 0x4ec5 */ 0xffff,
- /* key: 0x4ec6 */ 0x503d,
- /* key: 0x4ec7 */ 0x3558,
- /* key: 0x4ec8 */ 0xffff,
- /* key: 0x4ec9 */ 0xffff,
- /* key: 0x4eca */ 0x3a23,
- /* key: 0x4ecb */ 0x3270,
- /* key: 0x4ecc */ 0xffff,
- /* key: 0x4ecd */ 0x503b,
- /* key: 0x4ece */ 0x503a,
- /* key: 0x4ecf */ 0x4a29,
- /* key: 0x4ed0 */ 0xb044,
- /* key: 0x4ed1 */ 0xffff,
- /* key: 0x4ed2 */ 0xffff,
- /* key: 0x4ed3 */ 0xffff,
- /* key: 0x4ed4 */ 0x3b46,
- /* key: 0x4ed5 */ 0x3b45,
- /* key: 0x4ed6 */ 0x423e,
- /* key: 0x4ed7 */ 0x503f,
- /* key: 0x4ed8 */ 0x4955,
- /* key: 0x4ed9 */ 0x4067,
- /* key: 0x4eda */ 0xb045,
- /* key: 0x4edb */ 0xb046,
- /* key: 0x4edc */ 0xffff,
- /* key: 0x4edd */ 0x2138,
- /* key: 0x4ede */ 0x5040,
- /* key: 0x4edf */ 0x5042,
- /* key: 0x4ee0 */ 0xb047,
- /* key: 0x4ee1 */ 0xb048,
- /* key: 0x4ee2 */ 0xb049,
- /* key: 0x4ee3 */ 0x4265,
- /* key: 0x4ee4 */ 0x4e61,
- /* key: 0x4ee5 */ 0x304a,
- /* key: 0x4ee6 */ 0xffff,
- /* key: 0x4ee7 */ 0xffff,
- /* key: 0x4ee8 */ 0xb04a,
- /* key: 0x4ee9 */ 0xffff,
- /* key: 0x4eea */ 0xffff,
- /* key: 0x4eeb */ 0xffff,
- /* key: 0x4eec */ 0xffff,
- /* key: 0x4eed */ 0x5041,
- /* key: 0x4eee */ 0x323e,
- /* key: 0x4eef */ 0xb04b,
- /* key: 0x4ef0 */ 0x3644,
- /* key: 0x4ef1 */ 0xb04c,
- /* key: 0x4ef2 */ 0x4367,
- /* key: 0x4ef3 */ 0xb04d,
- /* key: 0x4ef4 */ 0xffff,
- /* key: 0x4ef5 */ 0xb04e,
- /* key: 0x4ef6 */ 0x376f,
- /* key: 0x4ef7 */ 0x5043,
- /* key: 0x4ef8 */ 0xffff,
- /* key: 0x4ef9 */ 0xffff,
- /* key: 0x4efa */ 0xffff,
- /* key: 0x4efb */ 0x4724,
- /* key: 0x4efc */ 0xffff,
- /* key: 0x4efd */ 0xb04f,
- /* key: 0x4efe */ 0xb050,
- /* key: 0x4eff */ 0xb051,
- /* branch: 0x4f0X */ 1856,
- /* branch: 0x4f1X */ 1872,
- /* branch: 0x4f2X */ 1888,
- /* branch: 0x4f3X */ 1904,
- /* branch: 0x4f4X */ 1920,
- /* branch: 0x4f5X */ 1936,
- /* branch: 0x4f6X */ 1952,
- /* branch: 0x4f7X */ 1968,
- /* branch: 0x4f8X */ 1984,
- /* branch: 0x4f9X */ 2000,
- /* branch: 0x4faX */ 2016,
- /* branch: 0x4fbX */ 2032,
- /* branch: 0x4fcX */ 2048,
- /* branch: 0x4fdX */ 2064,
- /* branch: 0x4feX */ 2080,
- /* branch: 0x4ffX */ 2096,
- /* key: 0x4f00 */ 0xb052,
- /* key: 0x4f01 */ 0x346b,
- /* key: 0x4f02 */ 0xb053,
- /* key: 0x4f03 */ 0xb054,
- /* key: 0x4f04 */ 0xffff,
- /* key: 0x4f05 */ 0xffff,
- /* key: 0x4f06 */ 0xffff,
- /* key: 0x4f07 */ 0xffff,
- /* key: 0x4f08 */ 0xb055,
- /* key: 0x4f09 */ 0x5044,
- /* key: 0x4f0a */ 0x304b,
- /* key: 0x4f0b */ 0xb056,
- /* key: 0x4f0c */ 0xb057,
- /* key: 0x4f0d */ 0x3860,
- /* key: 0x4f0e */ 0x346c,
- /* key: 0x4f0f */ 0x497a,
- /* key: 0x4f10 */ 0x4832,
- /* key: 0x4f11 */ 0x3559,
- /* key: 0x4f12 */ 0xb058,
- /* key: 0x4f13 */ 0xffff,
- /* key: 0x4f14 */ 0xffff,
- /* key: 0x4f15 */ 0xb059,
- /* key: 0x4f16 */ 0xb05a,
- /* key: 0x4f17 */ 0xb05b,
- /* key: 0x4f18 */ 0xffff,
- /* key: 0x4f19 */ 0xb05c,
- /* key: 0x4f1a */ 0x3271,
- /* key: 0x4f1b */ 0xffff,
- /* key: 0x4f1c */ 0x5067,
- /* key: 0x4f1d */ 0x4541,
- /* key: 0x4f1e */ 0xffff,
- /* key: 0x4f1f */ 0xffff,
- /* key: 0x4f20 */ 0xffff,
- /* key: 0x4f21 */ 0xffff,
- /* key: 0x4f22 */ 0xffff,
- /* key: 0x4f23 */ 0xffff,
- /* key: 0x4f24 */ 0xffff,
- /* key: 0x4f25 */ 0xffff,
- /* key: 0x4f26 */ 0xffff,
- /* key: 0x4f27 */ 0xffff,
- /* key: 0x4f28 */ 0xffff,
- /* key: 0x4f29 */ 0xffff,
- /* key: 0x4f2a */ 0xffff,
- /* key: 0x4f2b */ 0xffff,
- /* key: 0x4f2c */ 0xffff,
- /* key: 0x4f2d */ 0xffff,
- /* key: 0x4f2e */ 0xb05d,
- /* key: 0x4f2f */ 0x476c,
- /* key: 0x4f30 */ 0x5046,
- /* key: 0x4f31 */ 0xb05e,
- /* key: 0x4f32 */ 0xffff,
- /* key: 0x4f33 */ 0xb060,
- /* key: 0x4f34 */ 0x483c,
- /* key: 0x4f35 */ 0xb061,
- /* key: 0x4f36 */ 0x4e62,
- /* key: 0x4f37 */ 0xb062,
- /* key: 0x4f38 */ 0x3f2d,
- /* key: 0x4f39 */ 0xb063,
- /* key: 0x4f3a */ 0x3b47,
- /* key: 0x4f3b */ 0xb064,
- /* key: 0x4f3c */ 0x3b77,
- /* key: 0x4f3d */ 0x3240,
- /* key: 0x4f3e */ 0xb065,
- /* key: 0x4f3f */ 0xffff,
- /* key: 0x4f40 */ 0xb066,
- /* key: 0x4f41 */ 0xffff,
- /* key: 0x4f42 */ 0xb067,
- /* key: 0x4f43 */ 0x4451,
- /* key: 0x4f44 */ 0xffff,
- /* key: 0x4f45 */ 0xffff,
- /* key: 0x4f46 */ 0x4322,
- /* key: 0x4f47 */ 0x504a,
- /* key: 0x4f48 */ 0xb068,
- /* key: 0x4f49 */ 0xb069,
- /* key: 0x4f4a */ 0xffff,
- /* key: 0x4f4b */ 0xb06a,
- /* key: 0x4f4c */ 0xb06b,
- /* key: 0x4f4d */ 0x304c,
- /* key: 0x4f4e */ 0x4463,
- /* key: 0x4f4f */ 0x3d3b,
- /* key: 0x4f50 */ 0x3a34,
- /* key: 0x4f51 */ 0x4d24,
- /* key: 0x4f52 */ 0xb06c,
- /* key: 0x4f53 */ 0x424e,
- /* key: 0x4f54 */ 0xb06d,
- /* key: 0x4f55 */ 0x323f,
- /* key: 0x4f56 */ 0xb06e,
- /* key: 0x4f57 */ 0x5049,
- /* key: 0x4f58 */ 0xb06f,
- /* key: 0x4f59 */ 0x4d3e,
- /* key: 0x4f5a */ 0x5045,
- /* key: 0x4f5b */ 0x5047,
- /* key: 0x4f5c */ 0x3a6e,
- /* key: 0x4f5d */ 0x5048,
- /* key: 0x4f5e */ 0x5524,
- /* key: 0x4f5f */ 0xb070,
- /* key: 0x4f60 */ 0xb05f,
- /* key: 0x4f61 */ 0xffff,
- /* key: 0x4f62 */ 0xffff,
- /* key: 0x4f63 */ 0xb071,
- /* key: 0x4f64 */ 0xffff,
- /* key: 0x4f65 */ 0xffff,
- /* key: 0x4f66 */ 0xffff,
- /* key: 0x4f67 */ 0xffff,
- /* key: 0x4f68 */ 0xffff,
- /* key: 0x4f69 */ 0x5050,
- /* key: 0x4f6a */ 0xb072,
- /* key: 0x4f6b */ 0xffff,
- /* key: 0x4f6c */ 0xb073,
- /* key: 0x4f6d */ 0xffff,
- /* key: 0x4f6e */ 0xb074,
- /* key: 0x4f6f */ 0x5053,
- /* key: 0x4f70 */ 0x5051,
- /* key: 0x4f71 */ 0xb075,
- /* key: 0x4f72 */ 0xffff,
- /* key: 0x4f73 */ 0x3242,
- /* key: 0x4f74 */ 0xffff,
- /* key: 0x4f75 */ 0x4a3b,
- /* key: 0x4f76 */ 0x504b,
- /* key: 0x4f77 */ 0xb076,
- /* key: 0x4f78 */ 0xb077,
- /* key: 0x4f79 */ 0xb078,
- /* key: 0x4f7a */ 0xb079,
- /* key: 0x4f7b */ 0x504f,
- /* key: 0x4f7c */ 0x3873,
- /* key: 0x4f7d */ 0xb07a,
- /* key: 0x4f7e */ 0xb07b,
- /* key: 0x4f7f */ 0x3b48,
- /* key: 0x4f80 */ 0xffff,
- /* key: 0x4f81 */ 0xb07c,
- /* key: 0x4f82 */ 0xb07d,
- /* key: 0x4f83 */ 0x3426,
- /* key: 0x4f84 */ 0xb07e,
- /* key: 0x4f85 */ 0xb121,
- /* key: 0x4f86 */ 0x5054,
- /* key: 0x4f87 */ 0xffff,
- /* key: 0x4f88 */ 0x504c,
- /* key: 0x4f89 */ 0xb122,
- /* key: 0x4f8a */ 0xb123,
- /* key: 0x4f8b */ 0x4e63,
- /* key: 0x4f8c */ 0xb124,
- /* key: 0x4f8d */ 0x3b78,
- /* key: 0x4f8e */ 0xb125,
- /* key: 0x4f8f */ 0x504d,
- /* key: 0x4f90 */ 0xb126,
- /* key: 0x4f91 */ 0x5052,
- /* key: 0x4f92 */ 0xb127,
- /* key: 0x4f93 */ 0xb128,
- /* key: 0x4f94 */ 0xb129,
- /* key: 0x4f95 */ 0xffff,
- /* key: 0x4f96 */ 0x5055,
- /* key: 0x4f97 */ 0xb12a,
- /* key: 0x4f98 */ 0x504e,
- /* key: 0x4f99 */ 0xb12b,
- /* key: 0x4f9a */ 0xb12c,
- /* key: 0x4f9b */ 0x3621,
- /* key: 0x4f9c */ 0xffff,
- /* key: 0x4f9d */ 0x304d,
- /* key: 0x4f9e */ 0xb12d,
- /* key: 0x4f9f */ 0xb12e,
- /* key: 0x4fa0 */ 0x3622,
- /* key: 0x4fa1 */ 0x3241,
- /* key: 0x4fa2 */ 0xffff,
- /* key: 0x4fa3 */ 0xffff,
- /* key: 0x4fa4 */ 0xffff,
- /* key: 0x4fa5 */ 0xffff,
- /* key: 0x4fa6 */ 0xffff,
- /* key: 0x4fa7 */ 0xffff,
- /* key: 0x4fa8 */ 0xffff,
- /* key: 0x4fa9 */ 0xffff,
- /* key: 0x4faa */ 0xffff,
- /* key: 0x4fab */ 0x5525,
- /* key: 0x4fac */ 0xffff,
- /* key: 0x4fad */ 0x4b79,
- /* key: 0x4fae */ 0x496e,
- /* key: 0x4faf */ 0x3874,
- /* key: 0x4fb0 */ 0xffff,
- /* key: 0x4fb1 */ 0xffff,
- /* key: 0x4fb2 */ 0xb12f,
- /* key: 0x4fb3 */ 0xffff,
- /* key: 0x4fb4 */ 0xffff,
- /* key: 0x4fb5 */ 0x3f2f,
- /* key: 0x4fb6 */ 0x4e37,
- /* key: 0x4fb7 */ 0xb130,
- /* key: 0x4fb8 */ 0xffff,
- /* key: 0x4fb9 */ 0xb131,
- /* key: 0x4fba */ 0xffff,
- /* key: 0x4fbb */ 0xb132,
- /* key: 0x4fbc */ 0xb133,
- /* key: 0x4fbd */ 0xb134,
- /* key: 0x4fbe */ 0xb135,
- /* key: 0x4fbf */ 0x4a58,
- /* key: 0x4fc0 */ 0xb136,
- /* key: 0x4fc1 */ 0xb137,
- /* key: 0x4fc2 */ 0x3738,
- /* key: 0x4fc3 */ 0x4225,
- /* key: 0x4fc4 */ 0x3264,
- /* key: 0x4fc5 */ 0xb138,
- /* key: 0x4fc6 */ 0xb139,
- /* key: 0x4fc7 */ 0xffff,
- /* key: 0x4fc8 */ 0xb13a,
- /* key: 0x4fc9 */ 0xb13b,
- /* key: 0x4fca */ 0x3d53,
- /* key: 0x4fcb */ 0xb13c,
- /* key: 0x4fcc */ 0xb13d,
- /* key: 0x4fcd */ 0xb13e,
- /* key: 0x4fce */ 0x5059,
- /* key: 0x4fcf */ 0xb13f,
- /* key: 0x4fd0 */ 0x505e,
- /* key: 0x4fd1 */ 0x505c,
- /* key: 0x4fd2 */ 0xb140,
- /* key: 0x4fd3 */ 0xffff,
- /* key: 0x4fd4 */ 0x5057,
- /* key: 0x4fd5 */ 0xffff,
- /* key: 0x4fd6 */ 0xffff,
- /* key: 0x4fd7 */ 0x422f,
- /* key: 0x4fd8 */ 0x505a,
- /* key: 0x4fd9 */ 0xffff,
- /* key: 0x4fda */ 0x505d,
- /* key: 0x4fdb */ 0x505b,
- /* key: 0x4fdc */ 0xb141,
- /* key: 0x4fdd */ 0x4a5d,
- /* key: 0x4fde */ 0xffff,
- /* key: 0x4fdf */ 0x5058,
- /* key: 0x4fe0 */ 0xb142,
- /* key: 0x4fe1 */ 0x3f2e,
- /* key: 0x4fe2 */ 0xb143,
- /* key: 0x4fe3 */ 0x4b73,
- /* key: 0x4fe4 */ 0x505f,
- /* key: 0x4fe5 */ 0x5060,
- /* key: 0x4fe6 */ 0xffff,
- /* key: 0x4fe7 */ 0xffff,
- /* key: 0x4fe8 */ 0xffff,
- /* key: 0x4fe9 */ 0xffff,
- /* key: 0x4fea */ 0xffff,
- /* key: 0x4feb */ 0xffff,
- /* key: 0x4fec */ 0xffff,
- /* key: 0x4fed */ 0xffff,
- /* key: 0x4fee */ 0x3d24,
- /* key: 0x4fef */ 0x506d,
- /* key: 0x4ff0 */ 0xb144,
- /* key: 0x4ff1 */ 0xffff,
- /* key: 0x4ff2 */ 0xb145,
- /* key: 0x4ff3 */ 0x4750,
- /* key: 0x4ff4 */ 0xffff,
- /* key: 0x4ff5 */ 0x4936,
- /* key: 0x4ff6 */ 0x5068,
- /* key: 0x4ff7 */ 0xffff,
- /* key: 0x4ff8 */ 0x4a70,
- /* key: 0x4ff9 */ 0xffff,
- /* key: 0x4ffa */ 0x3236,
- /* key: 0x4ffb */ 0xffff,
- /* key: 0x4ffc */ 0xb146,
- /* key: 0x4ffd */ 0xb147,
- /* key: 0x4ffe */ 0x506c,
- /* key: 0x4fff */ 0xb148,
- /* branch: 0x50XX */ 2128,
- /* branch: 0x51XX */ 2400,
- /* branch: 0x52XX */ 2672,
- /* branch: 0x53XX */ 2944,
- /* branch: 0x54XX */ 3216,
- /* branch: 0x55XX */ 3488,
- /* branch: 0x56XX */ 3760,
- /* branch: 0x57XX */ 4032,
- /* branch: 0x58XX */ 4304,
- /* branch: 0x59XX */ 4576,
- /* branch: 0x5aXX */ 4848,
- /* branch: 0x5bXX */ 5120,
- /* branch: 0x5cXX */ 5392,
- /* branch: 0x5dXX */ 5664,
- /* branch: 0x5eXX */ 5936,
- /* branch: 0x5fXX */ 6208,
- /* branch: 0x500X */ 2144,
- /* branch: 0x501X */ 2160,
- /* branch: 0x502X */ 2176,
- /* branch: 0x503X */ 2192,
- /* branch: 0x504X */ 2208,
- /* branch: 0x505X */ 2224,
- /* branch: 0x506X */ 2240,
- /* branch: 0x507X */ 2256,
- /* branch: 0x508X */ 2272,
- /* branch: 0x509X */ 2288,
- /* branch: 0x50aX */ 2304,
- /* branch: 0x50bX */ 2320,
- /* branch: 0x50cX */ 2336,
- /* branch: 0x50dX */ 2352,
- /* branch: 0x50eX */ 2368,
- /* branch: 0x50fX */ 2384,
- /* key: 0x5000 */ 0xb149,
- /* key: 0x5001 */ 0xb14a,
- /* key: 0x5002 */ 0xffff,
- /* key: 0x5003 */ 0xffff,
- /* key: 0x5004 */ 0xb14b,
- /* key: 0x5005 */ 0x5066,
- /* key: 0x5006 */ 0x506f,
- /* key: 0x5007 */ 0xb14c,
- /* key: 0x5008 */ 0xffff,
- /* key: 0x5009 */ 0x4152,
- /* key: 0x500a */ 0xb14d,
- /* key: 0x500b */ 0x3844,
- /* key: 0x500c */ 0xb14e,
- /* key: 0x500d */ 0x475c,
- /* key: 0x500e */ 0xb14f,
- /* key: 0x500f */ 0x6047,
- /* key: 0x5010 */ 0xb150,
- /* key: 0x5011 */ 0x506e,
- /* key: 0x5012 */ 0x455d,
- /* key: 0x5013 */ 0xb151,
- /* key: 0x5014 */ 0x5063,
- /* key: 0x5015 */ 0xffff,
- /* key: 0x5016 */ 0x3876,
- /* key: 0x5017 */ 0xb152,
- /* key: 0x5018 */ 0xb153,
- /* key: 0x5019 */ 0x3875,
- /* key: 0x501a */ 0x5061,
- /* key: 0x501b */ 0xb154,
- /* key: 0x501c */ 0xb155,
- /* key: 0x501d */ 0xb156,
- /* key: 0x501e */ 0xb157,
- /* key: 0x501f */ 0x3c5a,
- /* key: 0x5020 */ 0xffff,
- /* key: 0x5021 */ 0x5069,
- /* key: 0x5022 */ 0xb158,
- /* key: 0x5023 */ 0x4a6f,
- /* key: 0x5024 */ 0x434d,
- /* key: 0x5025 */ 0x5065,
- /* key: 0x5026 */ 0x3771,
- /* key: 0x5027 */ 0xb159,
- /* key: 0x5028 */ 0x5062,
- /* key: 0x5029 */ 0x506a,
- /* key: 0x502a */ 0x5064,
- /* key: 0x502b */ 0x4e51,
- /* key: 0x502c */ 0x506b,
- /* key: 0x502d */ 0x4f41,
- /* key: 0x502e */ 0xb15a,
- /* key: 0x502f */ 0xffff,
- /* key: 0x5030 */ 0xb15b,
- /* key: 0x5031 */ 0xffff,
- /* key: 0x5032 */ 0xb15c,
- /* key: 0x5033 */ 0xb15d,
- /* key: 0x5034 */ 0xffff,
- /* key: 0x5035 */ 0xb15e,
- /* key: 0x5036 */ 0x3666,
- /* key: 0x5037 */ 0xffff,
- /* key: 0x5038 */ 0xffff,
- /* key: 0x5039 */ 0x3770,
- /* key: 0x503a */ 0xffff,
- /* key: 0x503b */ 0xb176,
- /* key: 0x503c */ 0xffff,
- /* key: 0x503d */ 0xffff,
- /* key: 0x503e */ 0xffff,
- /* key: 0x503f */ 0xffff,
- /* key: 0x5040 */ 0xb15f,
- /* key: 0x5041 */ 0xb160,
- /* key: 0x5042 */ 0xb161,
- /* key: 0x5043 */ 0x5070,
- /* key: 0x5044 */ 0xffff,
- /* key: 0x5045 */ 0xb162,
- /* key: 0x5046 */ 0xb163,
- /* key: 0x5047 */ 0x5071,
- /* key: 0x5048 */ 0x5075,
- /* key: 0x5049 */ 0x304e,
- /* key: 0x504a */ 0xb164,
- /* key: 0x504b */ 0xffff,
- /* key: 0x504c */ 0xb165,
- /* key: 0x504d */ 0xffff,
- /* key: 0x504e */ 0xb166,
- /* key: 0x504f */ 0x4a50,
- /* key: 0x5050 */ 0x5074,
- /* key: 0x5051 */ 0xb167,
- /* key: 0x5052 */ 0xb168,
- /* key: 0x5053 */ 0xb169,
- /* key: 0x5054 */ 0xffff,
- /* key: 0x5055 */ 0x5073,
- /* key: 0x5056 */ 0x5077,
- /* key: 0x5057 */ 0xb16a,
- /* key: 0x5058 */ 0xffff,
- /* key: 0x5059 */ 0xb16b,
- /* key: 0x505a */ 0x5076,
- /* key: 0x505b */ 0xffff,
- /* key: 0x505c */ 0x4464,
- /* key: 0x505d */ 0xffff,
- /* key: 0x505e */ 0xffff,
- /* key: 0x505f */ 0xb16c,
- /* key: 0x5060 */ 0xb16d,
- /* key: 0x5061 */ 0xffff,
- /* key: 0x5062 */ 0xb16e,
- /* key: 0x5063 */ 0xb16f,
- /* key: 0x5064 */ 0xffff,
- /* key: 0x5065 */ 0x3772,
- /* key: 0x5066 */ 0xb170,
- /* key: 0x5067 */ 0xb171,
- /* key: 0x5068 */ 0xffff,
- /* key: 0x5069 */ 0xffff,
- /* key: 0x506a */ 0xb172,
- /* key: 0x506b */ 0xffff,
- /* key: 0x506c */ 0x5078,
- /* key: 0x506d */ 0xb173,
- /* key: 0x506e */ 0xffff,
- /* key: 0x506f */ 0xffff,
- /* key: 0x5070 */ 0xb174,
- /* key: 0x5071 */ 0xb175,
- /* key: 0x5072 */ 0x3c45,
- /* key: 0x5073 */ 0xffff,
- /* key: 0x5074 */ 0x4226,
- /* key: 0x5075 */ 0x4465,
- /* key: 0x5076 */ 0x3676,
- /* key: 0x5077 */ 0xffff,
- /* key: 0x5078 */ 0x5079,
- /* key: 0x5079 */ 0xffff,
- /* key: 0x507a */ 0xffff,
- /* key: 0x507b */ 0xffff,
- /* key: 0x507c */ 0xffff,
- /* key: 0x507d */ 0x3536,
- /* key: 0x507e */ 0xffff,
- /* key: 0x507f */ 0xffff,
- /* key: 0x5080 */ 0x507a,
- /* key: 0x5081 */ 0xb177,
- /* key: 0x5082 */ 0xffff,
- /* key: 0x5083 */ 0xb178,
- /* key: 0x5084 */ 0xb179,
- /* key: 0x5085 */ 0x507c,
- /* key: 0x5086 */ 0xb17a,
- /* key: 0x5087 */ 0xffff,
- /* key: 0x5088 */ 0xffff,
- /* key: 0x5089 */ 0xffff,
- /* key: 0x508a */ 0xb17b,
- /* key: 0x508b */ 0xffff,
- /* key: 0x508c */ 0xffff,
- /* key: 0x508d */ 0x4b35,
- /* key: 0x508e */ 0xb17c,
- /* key: 0x508f */ 0xb17d,
- /* key: 0x5090 */ 0xb17e,
- /* key: 0x5091 */ 0x3766,
- /* key: 0x5092 */ 0xb221,
- /* key: 0x5093 */ 0xb222,
- /* key: 0x5094 */ 0xb223,
- /* key: 0x5095 */ 0xffff,
- /* key: 0x5096 */ 0xb224,
- /* key: 0x5097 */ 0xffff,
- /* key: 0x5098 */ 0x3b31,
- /* key: 0x5099 */ 0x4877,
- /* key: 0x509a */ 0x507b,
- /* key: 0x509b */ 0xb225,
- /* key: 0x509c */ 0xb226,
- /* key: 0x509d */ 0xffff,
- /* key: 0x509e */ 0xb227,
- /* key: 0x509f */ 0xb228,
- /* key: 0x50a0 */ 0xb229,
- /* key: 0x50a1 */ 0xb22a,
- /* key: 0x50a2 */ 0xb22b,
- /* key: 0x50a3 */ 0xffff,
- /* key: 0x50a4 */ 0xffff,
- /* key: 0x50a5 */ 0xffff,
- /* key: 0x50a6 */ 0xffff,
- /* key: 0x50a7 */ 0xffff,
- /* key: 0x50a8 */ 0xffff,
- /* key: 0x50a9 */ 0xffff,
- /* key: 0x50aa */ 0xb22c,
- /* key: 0x50ab */ 0xffff,
- /* key: 0x50ac */ 0x3a45,
- /* key: 0x50ad */ 0x4d43,
- /* key: 0x50ae */ 0xffff,
- /* key: 0x50af */ 0xb22d,
- /* key: 0x50b0 */ 0xb22e,
- /* key: 0x50b1 */ 0xffff,
- /* key: 0x50b2 */ 0x507e,
- /* key: 0x50b3 */ 0x5123,
- /* key: 0x50b4 */ 0x507d,
- /* key: 0x50b5 */ 0x3a44,
- /* key: 0x50b6 */ 0xffff,
- /* key: 0x50b7 */ 0x3d7d,
- /* key: 0x50b8 */ 0xffff,
- /* key: 0x50b9 */ 0xb22f,
- /* key: 0x50ba */ 0xb230,
- /* key: 0x50bb */ 0xffff,
- /* key: 0x50bc */ 0xffff,
- /* key: 0x50bd */ 0xb231,
- /* key: 0x50be */ 0x3739,
- /* key: 0x50bf */ 0xffff,
- /* key: 0x50c0 */ 0xb232,
- /* key: 0x50c1 */ 0xffff,
- /* key: 0x50c2 */ 0x5124,
- /* key: 0x50c3 */ 0xb233,
- /* key: 0x50c4 */ 0xb234,
- /* key: 0x50c5 */ 0x364f,
- /* key: 0x50c6 */ 0xffff,
- /* key: 0x50c7 */ 0xb235,
- /* key: 0x50c8 */ 0xffff,
- /* key: 0x50c9 */ 0x5121,
- /* key: 0x50ca */ 0x5122,
- /* key: 0x50cb */ 0xffff,
- /* key: 0x50cc */ 0xb236,
- /* key: 0x50cd */ 0x462f,
- /* key: 0x50ce */ 0xb237,
- /* key: 0x50cf */ 0x417c,
- /* key: 0x50d0 */ 0xb238,
- /* key: 0x50d1 */ 0x3623,
- /* key: 0x50d2 */ 0xffff,
- /* key: 0x50d3 */ 0xb239,
- /* key: 0x50d4 */ 0xb23a,
- /* key: 0x50d5 */ 0x4b4d,
- /* key: 0x50d6 */ 0x5125,
- /* key: 0x50d7 */ 0xffff,
- /* key: 0x50d8 */ 0xb23b,
- /* key: 0x50d9 */ 0xffff,
- /* key: 0x50da */ 0x4e3d,
- /* key: 0x50db */ 0xffff,
- /* key: 0x50dc */ 0xb23c,
- /* key: 0x50dd */ 0xb23d,
- /* key: 0x50de */ 0x5126,
- /* key: 0x50df */ 0xb23e,
- /* key: 0x50e0 */ 0xffff,
- /* key: 0x50e1 */ 0xffff,
- /* key: 0x50e2 */ 0xb23f,
- /* key: 0x50e3 */ 0x5129,
- /* key: 0x50e4 */ 0xb240,
- /* key: 0x50e5 */ 0x5127,
- /* key: 0x50e6 */ 0xb241,
- /* key: 0x50e7 */ 0x414e,
- /* key: 0x50e8 */ 0xb242,
- /* key: 0x50e9 */ 0xb243,
- /* key: 0x50ea */ 0xffff,
- /* key: 0x50eb */ 0xffff,
- /* key: 0x50ec */ 0xffff,
- /* key: 0x50ed */ 0x5128,
- /* key: 0x50ee */ 0x512a,
- /* key: 0x50ef */ 0xb244,
- /* key: 0x50f0 */ 0xffff,
- /* key: 0x50f1 */ 0xb245,
- /* key: 0x50f2 */ 0xb251,
- /* key: 0x50f3 */ 0xffff,
- /* key: 0x50f4 */ 0xffff,
- /* key: 0x50f5 */ 0x512c,
- /* key: 0x50f6 */ 0xb246,
- /* key: 0x50f7 */ 0xffff,
- /* key: 0x50f8 */ 0xffff,
- /* key: 0x50f9 */ 0x512b,
- /* key: 0x50fa */ 0xb247,
- /* key: 0x50fb */ 0x4a48,
- /* key: 0x50fc */ 0xffff,
- /* key: 0x50fd */ 0xffff,
- /* key: 0x50fe */ 0xb248,
- /* key: 0x50ff */ 0xffff,
- /* branch: 0x510X */ 2416,
- /* branch: 0x511X */ 2432,
- /* branch: 0x512X */ 2448,
- /* branch: 0x513X */ 2464,
- /* branch: 0x514X */ 2480,
- /* branch: 0x515X */ 2496,
- /* branch: 0x516X */ 2512,
- /* branch: 0x517X */ 2528,
- /* branch: 0x518X */ 2544,
- /* branch: 0x519X */ 2560,
- /* branch: 0x51aX */ 2576,
- /* branch: 0x51bX */ 2592,
- /* branch: 0x51cX */ 2608,
- /* branch: 0x51dX */ 2624,
- /* branch: 0x51eX */ 2640,
- /* branch: 0x51fX */ 2656,
- /* key: 0x5100 */ 0x3537,
- /* key: 0x5101 */ 0x512e,
- /* key: 0x5102 */ 0x512f,
- /* key: 0x5103 */ 0xb249,
- /* key: 0x5104 */ 0x322f,
- /* key: 0x5105 */ 0xffff,
- /* key: 0x5106 */ 0xb24a,
- /* key: 0x5107 */ 0xb24b,
- /* key: 0x5108 */ 0xb24c,
- /* key: 0x5109 */ 0x512d,
- /* key: 0x510a */ 0xffff,
- /* key: 0x510b */ 0xb24d,
- /* key: 0x510c */ 0xb24e,
- /* key: 0x510d */ 0xb24f,
- /* key: 0x510e */ 0xb250,
- /* key: 0x510f */ 0xffff,
- /* key: 0x5110 */ 0xb252,
- /* key: 0x5111 */ 0xffff,
- /* key: 0x5112 */ 0x3c74,
- /* key: 0x5113 */ 0xffff,
- /* key: 0x5114 */ 0x5132,
- /* key: 0x5115 */ 0x5131,
- /* key: 0x5116 */ 0x5130,
- /* key: 0x5117 */ 0xb253,
- /* key: 0x5118 */ 0x5056,
- /* key: 0x5119 */ 0xb254,
- /* key: 0x511a */ 0x5133,
- /* key: 0x511b */ 0xb255,
- /* key: 0x511c */ 0xb256,
- /* key: 0x511d */ 0xb257,
- /* key: 0x511e */ 0xb258,
- /* key: 0x511f */ 0x3d7e,
- /* key: 0x5120 */ 0xffff,
- /* key: 0x5121 */ 0x5134,
- /* key: 0x5122 */ 0xffff,
- /* key: 0x5123 */ 0xb259,
- /* key: 0x5124 */ 0xffff,
- /* key: 0x5125 */ 0xffff,
- /* key: 0x5126 */ 0xffff,
- /* key: 0x5127 */ 0xb25a,
- /* key: 0x5128 */ 0xb25b,
- /* key: 0x5129 */ 0xffff,
- /* key: 0x512a */ 0x4d25,
- /* key: 0x512b */ 0xffff,
- /* key: 0x512c */ 0xb25c,
- /* key: 0x512d */ 0xb25d,
- /* key: 0x512e */ 0xffff,
- /* key: 0x512f */ 0xb25e,
- /* key: 0x5130 */ 0xffff,
- /* key: 0x5131 */ 0xb25f,
- /* key: 0x5132 */ 0x4c59,
- /* key: 0x5133 */ 0xb260,
- /* key: 0x5134 */ 0xb261,
- /* key: 0x5135 */ 0xb262,
- /* key: 0x5136 */ 0xffff,
- /* key: 0x5137 */ 0x5136,
- /* key: 0x5138 */ 0xb263,
- /* key: 0x5139 */ 0xb264,
- /* key: 0x513a */ 0x5135,
- /* key: 0x513b */ 0x5138,
- /* key: 0x513c */ 0x5137,
- /* key: 0x513d */ 0xffff,
- /* key: 0x513e */ 0xffff,
- /* key: 0x513f */ 0x5139,
- /* key: 0x5140 */ 0x513a,
- /* key: 0x5141 */ 0x3074,
- /* key: 0x5142 */ 0xb265,
- /* key: 0x5143 */ 0x3835,
- /* key: 0x5144 */ 0x373b,
- /* key: 0x5145 */ 0x3d3c,
- /* key: 0x5146 */ 0x437b,
- /* key: 0x5147 */ 0x3624,
- /* key: 0x5148 */ 0x4068,
- /* key: 0x5149 */ 0x3877,
- /* key: 0x514a */ 0xb266,
- /* key: 0x514b */ 0x396e,
- /* key: 0x514c */ 0x513c,
- /* key: 0x514d */ 0x4c48,
- /* key: 0x514e */ 0x4546,
- /* key: 0x514f */ 0xb267,
- /* key: 0x5150 */ 0x3b79,
- /* key: 0x5151 */ 0xffff,
- /* key: 0x5152 */ 0x513b,
- /* key: 0x5153 */ 0xb268,
- /* key: 0x5154 */ 0x513d,
- /* key: 0x5155 */ 0xb269,
- /* key: 0x5156 */ 0xffff,
- /* key: 0x5157 */ 0xb26a,
- /* key: 0x5158 */ 0xb26b,
- /* key: 0x5159 */ 0xffff,
- /* key: 0x515a */ 0x455e,
- /* key: 0x515b */ 0xffff,
- /* key: 0x515c */ 0x3375,
- /* key: 0x515d */ 0xffff,
- /* key: 0x515e */ 0xffff,
- /* key: 0x515f */ 0xb26c,
- /* key: 0x5160 */ 0xffff,
- /* key: 0x5161 */ 0xffff,
- /* key: 0x5162 */ 0x513e,
- /* key: 0x5163 */ 0xffff,
- /* key: 0x5164 */ 0xb26d,
- /* key: 0x5165 */ 0x467e,
- /* key: 0x5166 */ 0xb26e,
- /* key: 0x5167 */ 0xffff,
- /* key: 0x5168 */ 0x4134,
- /* key: 0x5169 */ 0x5140,
- /* key: 0x516a */ 0x5141,
- /* key: 0x516b */ 0x482c,
- /* key: 0x516c */ 0x3878,
- /* key: 0x516d */ 0x4f3b,
- /* key: 0x516e */ 0x5142,
- /* key: 0x516f */ 0xffff,
- /* key: 0x5170 */ 0xffff,
- /* key: 0x5171 */ 0x3626,
- /* key: 0x5172 */ 0xffff,
- /* key: 0x5173 */ 0xffff,
- /* key: 0x5174 */ 0xffff,
- /* key: 0x5175 */ 0x4a3c,
- /* key: 0x5176 */ 0x4236,
- /* key: 0x5177 */ 0x3671,
- /* key: 0x5178 */ 0x4535,
- /* key: 0x5179 */ 0xffff,
- /* key: 0x517a */ 0xffff,
- /* key: 0x517b */ 0xffff,
- /* key: 0x517c */ 0x3773,
- /* key: 0x517d */ 0xffff,
- /* key: 0x517e */ 0xb26f,
- /* key: 0x517f */ 0xffff,
- /* key: 0x5180 */ 0x5143,
- /* key: 0x5181 */ 0xffff,
- /* key: 0x5182 */ 0x5144,
- /* key: 0x5183 */ 0xb270,
- /* key: 0x5184 */ 0xb271,
- /* key: 0x5185 */ 0x4662,
- /* key: 0x5186 */ 0x315f,
- /* key: 0x5187 */ 0xffff,
- /* key: 0x5188 */ 0xffff,
- /* key: 0x5189 */ 0x5147,
- /* key: 0x518a */ 0x3a7d,
- /* key: 0x518b */ 0xb272,
- /* key: 0x518c */ 0x5146,
- /* key: 0x518d */ 0x3a46,
- /* key: 0x518e */ 0xb273,
- /* key: 0x518f */ 0x5148,
- /* key: 0x5190 */ 0x666e,
- /* key: 0x5191 */ 0x5149,
- /* key: 0x5192 */ 0x4b41,
- /* key: 0x5193 */ 0x514a,
- /* key: 0x5194 */ 0xffff,
- /* key: 0x5195 */ 0x514b,
- /* key: 0x5196 */ 0x514c,
- /* key: 0x5197 */ 0x3e69,
- /* key: 0x5198 */ 0xb274,
- /* key: 0x5199 */ 0x3c4c,
- /* key: 0x519a */ 0xffff,
- /* key: 0x519b */ 0xffff,
- /* key: 0x519c */ 0xffff,
- /* key: 0x519d */ 0xb275,
- /* key: 0x519e */ 0xffff,
- /* key: 0x519f */ 0xffff,
- /* key: 0x51a0 */ 0x3427,
- /* key: 0x51a1 */ 0xb276,
- /* key: 0x51a2 */ 0x514f,
- /* key: 0x51a3 */ 0xb277,
- /* key: 0x51a4 */ 0x514d,
- /* key: 0x51a5 */ 0x4c3d,
- /* key: 0x51a6 */ 0x514e,
- /* key: 0x51a7 */ 0xffff,
- /* key: 0x51a8 */ 0x495a,
- /* key: 0x51a9 */ 0x5150,
- /* key: 0x51aa */ 0x5151,
- /* key: 0x51ab */ 0x5152,
- /* key: 0x51ac */ 0x455f,
- /* key: 0x51ad */ 0xb278,
- /* key: 0x51ae */ 0xffff,
- /* key: 0x51af */ 0xffff,
- /* key: 0x51b0 */ 0x5156,
- /* key: 0x51b1 */ 0x5154,
- /* key: 0x51b2 */ 0x5155,
- /* key: 0x51b3 */ 0x5153,
- /* key: 0x51b4 */ 0x3a63,
- /* key: 0x51b5 */ 0x5157,
- /* key: 0x51b6 */ 0x4c6a,
- /* key: 0x51b7 */ 0x4e64,
- /* key: 0x51b8 */ 0xb279,
- /* key: 0x51b9 */ 0xffff,
- /* key: 0x51ba */ 0xb27a,
- /* key: 0x51bb */ 0xffff,
- /* key: 0x51bc */ 0xb27b,
- /* key: 0x51bd */ 0x5158,
- /* key: 0x51be */ 0xb27c,
- /* key: 0x51bf */ 0xb27d,
- /* key: 0x51c0 */ 0xffff,
- /* key: 0x51c1 */ 0xffff,
- /* key: 0x51c2 */ 0xb27e,
- /* key: 0x51c3 */ 0xffff,
- /* key: 0x51c4 */ 0x4028,
- /* key: 0x51c5 */ 0x5159,
- /* key: 0x51c6 */ 0x3d5a,
- /* key: 0x51c7 */ 0xffff,
- /* key: 0x51c8 */ 0xb321,
- /* key: 0x51c9 */ 0x515a,
- /* key: 0x51ca */ 0xffff,
- /* key: 0x51cb */ 0x437c,
- /* key: 0x51cc */ 0x4e3f,
- /* key: 0x51cd */ 0x4560,
- /* key: 0x51ce */ 0xffff,
- /* key: 0x51cf */ 0xb322,
- /* key: 0x51d0 */ 0xffff,
- /* key: 0x51d1 */ 0xb323,
- /* key: 0x51d2 */ 0xb324,
- /* key: 0x51d3 */ 0xb325,
- /* key: 0x51d4 */ 0xffff,
- /* key: 0x51d5 */ 0xb326,
- /* key: 0x51d6 */ 0x5245,
- /* key: 0x51d7 */ 0xffff,
- /* key: 0x51d8 */ 0xb327,
- /* key: 0x51d9 */ 0xffff,
- /* key: 0x51da */ 0xffff,
- /* key: 0x51db */ 0x515b,
- /* key: 0x51dc */ 0x7425,
- /* key: 0x51dd */ 0x3645,
- /* key: 0x51de */ 0xb328,
- /* key: 0x51df */ 0xffff,
- /* key: 0x51e0 */ 0x515c,
- /* key: 0x51e1 */ 0x4b5e,
- /* key: 0x51e2 */ 0xb329,
- /* key: 0x51e3 */ 0xffff,
- /* key: 0x51e4 */ 0xffff,
- /* key: 0x51e5 */ 0xb32a,
- /* key: 0x51e6 */ 0x3d68,
- /* key: 0x51e7 */ 0x427c,
- /* key: 0x51e8 */ 0xffff,
- /* key: 0x51e9 */ 0x515e,
- /* key: 0x51ea */ 0x4664,
- /* key: 0x51eb */ 0xffff,
- /* key: 0x51ec */ 0xffff,
- /* key: 0x51ed */ 0x515f,
- /* key: 0x51ee */ 0xb32b,
- /* key: 0x51ef */ 0xffff,
- /* key: 0x51f0 */ 0x5160,
- /* key: 0x51f1 */ 0x332e,
- /* key: 0x51f2 */ 0xb32c,
- /* key: 0x51f3 */ 0xb32d,
- /* key: 0x51f4 */ 0xb32e,
- /* key: 0x51f5 */ 0x5161,
- /* key: 0x51f6 */ 0x3627,
- /* key: 0x51f7 */ 0xb32f,
- /* key: 0x51f8 */ 0x464c,
- /* key: 0x51f9 */ 0x317a,
- /* key: 0x51fa */ 0x3d50,
- /* key: 0x51fb */ 0xffff,
- /* key: 0x51fc */ 0xffff,
- /* key: 0x51fd */ 0x4821,
- /* key: 0x51fe */ 0x5162,
- /* key: 0x51ff */ 0xffff,
- /* branch: 0x520X */ 2688,
- /* branch: 0x521X */ 2704,
- /* branch: 0x522X */ 2720,
- /* branch: 0x523X */ 2736,
- /* branch: 0x524X */ 2752,
- /* branch: 0x525X */ 2768,
- /* branch: 0x526X */ 2784,
- /* branch: 0x527X */ 2800,
- /* branch: 0x528X */ 2816,
- /* branch: 0x529X */ 2832,
- /* branch: 0x52aX */ 2848,
- /* branch: 0x52bX */ 2864,
- /* branch: 0x52cX */ 2880,
- /* branch: 0x52dX */ 2896,
- /* branch: 0x52eX */ 2912,
- /* branch: 0x52fX */ 2928,
- /* key: 0x5200 */ 0x4561,
- /* key: 0x5201 */ 0xb330,
- /* key: 0x5202 */ 0xb331,
- /* key: 0x5203 */ 0x3f4f,
- /* key: 0x5204 */ 0x5163,
- /* key: 0x5205 */ 0xb332,
- /* key: 0x5206 */ 0x4a2c,
- /* key: 0x5207 */ 0x405a,
- /* key: 0x5208 */ 0x3422,
- /* key: 0x5209 */ 0xffff,
- /* key: 0x520a */ 0x3429,
- /* key: 0x520b */ 0x5164,
- /* key: 0x520c */ 0xffff,
- /* key: 0x520d */ 0xffff,
- /* key: 0x520e */ 0x5166,
- /* key: 0x520f */ 0xffff,
- /* key: 0x5210 */ 0xffff,
- /* key: 0x5211 */ 0x373a,
- /* key: 0x5212 */ 0xb333,
- /* key: 0x5213 */ 0xb334,
- /* key: 0x5214 */ 0x5165,
- /* key: 0x5215 */ 0xb335,
- /* key: 0x5216 */ 0xb336,
- /* key: 0x5217 */ 0x4e73,
- /* key: 0x5218 */ 0xb337,
- /* key: 0x5219 */ 0xffff,
- /* key: 0x521a */ 0xffff,
- /* key: 0x521b */ 0xffff,
- /* key: 0x521c */ 0xffff,
- /* key: 0x521d */ 0x3d69,
- /* key: 0x521e */ 0xffff,
- /* key: 0x521f */ 0xffff,
- /* key: 0x5220 */ 0xffff,
- /* key: 0x5221 */ 0xffff,
- /* key: 0x5222 */ 0xb338,
- /* key: 0x5223 */ 0xffff,
- /* key: 0x5224 */ 0x483d,
- /* key: 0x5225 */ 0x4a4c,
- /* key: 0x5226 */ 0xffff,
- /* key: 0x5227 */ 0x5167,
- /* key: 0x5228 */ 0xb339,
- /* key: 0x5229 */ 0x4d78,
- /* key: 0x522a */ 0x5168,
- /* key: 0x522b */ 0xffff,
- /* key: 0x522c */ 0xffff,
- /* key: 0x522d */ 0xffff,
- /* key: 0x522e */ 0x5169,
- /* key: 0x522f */ 0xffff,
- /* key: 0x5230 */ 0x457e,
- /* key: 0x5231 */ 0xb33a,
- /* key: 0x5232 */ 0xb33b,
- /* key: 0x5233 */ 0x516a,
- /* key: 0x5234 */ 0xffff,
- /* key: 0x5235 */ 0xb33c,
- /* key: 0x5236 */ 0x4029,
- /* key: 0x5237 */ 0x3a7e,
- /* key: 0x5238 */ 0x3774,
- /* key: 0x5239 */ 0x516b,
- /* key: 0x523a */ 0x3b49,
- /* key: 0x523b */ 0x396f,
- /* key: 0x523c */ 0xb33d,
- /* key: 0x523d */ 0xffff,
- /* key: 0x523e */ 0xffff,
- /* key: 0x523f */ 0xffff,
- /* key: 0x5240 */ 0xffff,
- /* key: 0x5241 */ 0xffff,
- /* key: 0x5242 */ 0xffff,
- /* key: 0x5243 */ 0x4466,
- /* key: 0x5244 */ 0x516d,
- /* key: 0x5245 */ 0xb33e,
- /* key: 0x5246 */ 0xffff,
- /* key: 0x5247 */ 0x4227,
- /* key: 0x5248 */ 0xffff,
- /* key: 0x5249 */ 0xb33f,
- /* key: 0x524a */ 0x3a6f,
- /* key: 0x524b */ 0x516e,
- /* key: 0x524c */ 0x516f,
- /* key: 0x524d */ 0x4130,
- /* key: 0x524e */ 0xffff,
- /* key: 0x524f */ 0x516c,
- /* key: 0x5250 */ 0xffff,
- /* key: 0x5251 */ 0xffff,
- /* key: 0x5252 */ 0xffff,
- /* key: 0x5253 */ 0xffff,
- /* key: 0x5254 */ 0x5171,
- /* key: 0x5255 */ 0xb340,
- /* key: 0x5256 */ 0x4b36,
- /* key: 0x5257 */ 0xb341,
- /* key: 0x5258 */ 0xb342,
- /* key: 0x5259 */ 0xffff,
- /* key: 0x525a */ 0xb343,
- /* key: 0x525b */ 0x3964,
- /* key: 0x525c */ 0xb344,
- /* key: 0x525d */ 0xffff,
- /* key: 0x525e */ 0x5170,
- /* key: 0x525f */ 0xb345,
- /* key: 0x5260 */ 0xb346,
- /* key: 0x5261 */ 0xb347,
- /* key: 0x5262 */ 0xffff,
- /* key: 0x5263 */ 0x3775,
- /* key: 0x5264 */ 0x3a5e,
- /* key: 0x5265 */ 0x476d,
- /* key: 0x5266 */ 0xb348,
- /* key: 0x5267 */ 0xffff,
- /* key: 0x5268 */ 0xffff,
- /* key: 0x5269 */ 0x5174,
- /* key: 0x526a */ 0x5172,
- /* key: 0x526b */ 0xffff,
- /* key: 0x526c */ 0xffff,
- /* key: 0x526d */ 0xffff,
- /* key: 0x526e */ 0xb349,
- /* key: 0x526f */ 0x497b,
- /* key: 0x5270 */ 0x3e6a,
- /* key: 0x5271 */ 0x517b,
- /* key: 0x5272 */ 0x3364,
- /* key: 0x5273 */ 0x5175,
- /* key: 0x5274 */ 0x5173,
- /* key: 0x5275 */ 0x414f,
- /* key: 0x5276 */ 0xffff,
- /* key: 0x5277 */ 0xb34a,
- /* key: 0x5278 */ 0xb34b,
- /* key: 0x5279 */ 0xb34c,
- /* key: 0x527a */ 0xffff,
- /* key: 0x527b */ 0xffff,
- /* key: 0x527c */ 0xffff,
- /* key: 0x527d */ 0x5177,
- /* key: 0x527e */ 0xffff,
- /* key: 0x527f */ 0x5176,
- /* key: 0x5280 */ 0xb34d,
- /* key: 0x5281 */ 0xffff,
- /* key: 0x5282 */ 0xb34e,
- /* key: 0x5283 */ 0x3344,
- /* key: 0x5284 */ 0xffff,
- /* key: 0x5285 */ 0xb34f,
- /* key: 0x5286 */ 0xffff,
- /* key: 0x5287 */ 0x3760,
- /* key: 0x5288 */ 0x517c,
- /* key: 0x5289 */ 0x4e2d,
- /* key: 0x528a */ 0xb350,
- /* key: 0x528b */ 0xffff,
- /* key: 0x528c */ 0xb351,
- /* key: 0x528d */ 0x5178,
- /* key: 0x528e */ 0xffff,
- /* key: 0x528f */ 0xffff,
- /* key: 0x5290 */ 0xffff,
- /* key: 0x5291 */ 0x517d,
- /* key: 0x5292 */ 0x517a,
- /* key: 0x5293 */ 0xb352,
- /* key: 0x5294 */ 0x5179,
- /* key: 0x5295 */ 0xb353,
- /* key: 0x5296 */ 0xb354,
- /* key: 0x5297 */ 0xb355,
- /* key: 0x5298 */ 0xb356,
- /* key: 0x5299 */ 0xffff,
- /* key: 0x529a */ 0xb357,
- /* key: 0x529b */ 0x4e4f,
- /* key: 0x529c */ 0xb358,
- /* key: 0x529d */ 0xffff,
- /* key: 0x529e */ 0xffff,
- /* key: 0x529f */ 0x3879,
- /* key: 0x52a0 */ 0x3243,
- /* key: 0x52a1 */ 0xffff,
- /* key: 0x52a2 */ 0xffff,
- /* key: 0x52a3 */ 0x4e74,
- /* key: 0x52a4 */ 0xb359,
- /* key: 0x52a5 */ 0xb35a,
- /* key: 0x52a6 */ 0xb35b,
- /* key: 0x52a7 */ 0xb35c,
- /* key: 0x52a8 */ 0xffff,
- /* key: 0x52a9 */ 0x3d75,
- /* key: 0x52aa */ 0x4558,
- /* key: 0x52ab */ 0x3965,
- /* key: 0x52ac */ 0x5222,
- /* key: 0x52ad */ 0x5223,
- /* key: 0x52ae */ 0xffff,
- /* key: 0x52af */ 0xb35d,
- /* key: 0x52b0 */ 0xb35e,
- /* key: 0x52b1 */ 0x4e65,
- /* key: 0x52b2 */ 0xffff,
- /* key: 0x52b3 */ 0xffff,
- /* key: 0x52b4 */ 0x4f2b,
- /* key: 0x52b5 */ 0x5225,
- /* key: 0x52b6 */ 0xb35f,
- /* key: 0x52b7 */ 0xb360,
- /* key: 0x52b8 */ 0xb361,
- /* key: 0x52b9 */ 0x387a,
- /* key: 0x52ba */ 0xb362,
- /* key: 0x52bb */ 0xb363,
- /* key: 0x52bc */ 0x5224,
- /* key: 0x52bd */ 0xb364,
- /* key: 0x52be */ 0x332f,
- /* key: 0x52bf */ 0xffff,
- /* key: 0x52c0 */ 0xb365,
- /* key: 0x52c1 */ 0x5226,
- /* key: 0x52c2 */ 0xffff,
- /* key: 0x52c3 */ 0x4b56,
- /* key: 0x52c4 */ 0xb366,
- /* key: 0x52c5 */ 0x443c,
- /* key: 0x52c6 */ 0xb367,
- /* key: 0x52c7 */ 0x4d26,
- /* key: 0x52c8 */ 0xb368,
- /* key: 0x52c9 */ 0x4a59,
- /* key: 0x52ca */ 0xffff,
- /* key: 0x52cb */ 0xffff,
- /* key: 0x52cc */ 0xb369,
- /* key: 0x52cd */ 0x5227,
- /* key: 0x52ce */ 0xffff,
- /* key: 0x52cf */ 0xb36a,
- /* key: 0x52d0 */ 0xffff,
- /* key: 0x52d1 */ 0xb36b,
- /* key: 0x52d2 */ 0x7055,
- /* key: 0x52d3 */ 0xffff,
- /* key: 0x52d4 */ 0xb36c,
- /* key: 0x52d5 */ 0x4630,
- /* key: 0x52d6 */ 0xb36d,
- /* key: 0x52d7 */ 0x5228,
- /* key: 0x52d8 */ 0x342a,
- /* key: 0x52d9 */ 0x4c33,
- /* key: 0x52da */ 0xffff,
- /* key: 0x52db */ 0xb36e,
- /* key: 0x52dc */ 0xb36f,
- /* key: 0x52dd */ 0x3e21,
- /* key: 0x52de */ 0x5229,
- /* key: 0x52df */ 0x4a67,
- /* key: 0x52e0 */ 0x522d,
- /* key: 0x52e1 */ 0xb370,
- /* key: 0x52e2 */ 0x402a,
- /* key: 0x52e3 */ 0x522a,
- /* key: 0x52e4 */ 0x3650,
- /* key: 0x52e5 */ 0xb371,
- /* key: 0x52e6 */ 0x522b,
- /* key: 0x52e7 */ 0x342b,
- /* key: 0x52e8 */ 0xb372,
- /* key: 0x52e9 */ 0xb373,
- /* key: 0x52ea */ 0xb374,
- /* key: 0x52eb */ 0xffff,
- /* key: 0x52ec */ 0xb375,
- /* key: 0x52ed */ 0xffff,
- /* key: 0x52ee */ 0xffff,
- /* key: 0x52ef */ 0xffff,
- /* key: 0x52f0 */ 0xb376,
- /* key: 0x52f1 */ 0xb377,
- /* key: 0x52f2 */ 0x372e,
- /* key: 0x52f3 */ 0x522e,
- /* key: 0x52f4 */ 0xb378,
- /* key: 0x52f5 */ 0x522f,
- /* key: 0x52f6 */ 0xb379,
- /* key: 0x52f7 */ 0xb37a,
- /* key: 0x52f8 */ 0x5230,
- /* key: 0x52f9 */ 0x5231,
- /* key: 0x52fa */ 0x3c5b,
- /* key: 0x52fb */ 0xffff,
- /* key: 0x52fc */ 0xffff,
- /* key: 0x52fd */ 0xffff,
- /* key: 0x52fe */ 0x387b,
- /* key: 0x52ff */ 0x4c5e,
- /* branch: 0x530X */ 2960,
- /* branch: 0x531X */ 2976,
- /* branch: 0x532X */ 2992,
- /* branch: 0x533X */ 3008,
- /* branch: 0x534X */ 3024,
- /* branch: 0x535X */ 3040,
- /* branch: 0x536X */ 3056,
- /* branch: 0x537X */ 3072,
- /* branch: 0x538X */ 3088,
- /* branch: 0x539X */ 3104,
- /* branch: 0x53aX */ 3120,
- /* branch: 0x53bX */ 3136,
- /* branch: 0x53cX */ 3152,
- /* branch: 0x53dX */ 3168,
- /* branch: 0x53eX */ 3184,
- /* branch: 0x53fX */ 3200,
- /* key: 0x5300 */ 0xb37b,
- /* key: 0x5301 */ 0x4c68,
- /* key: 0x5302 */ 0x4677,
- /* key: 0x5303 */ 0xb37c,
- /* key: 0x5304 */ 0xffff,
- /* key: 0x5305 */ 0x4a71,
- /* key: 0x5306 */ 0x5232,
- /* key: 0x5307 */ 0xffff,
- /* key: 0x5308 */ 0x5233,
- /* key: 0x5309 */ 0xffff,
- /* key: 0x530a */ 0xb37d,
- /* key: 0x530b */ 0xb37e,
- /* key: 0x530c */ 0xb421,
- /* key: 0x530d */ 0x5235,
- /* key: 0x530e */ 0xffff,
- /* key: 0x530f */ 0x5237,
- /* key: 0x5310 */ 0x5236,
- /* key: 0x5311 */ 0xb422,
- /* key: 0x5312 */ 0xffff,
- /* key: 0x5313 */ 0xb423,
- /* key: 0x5314 */ 0xffff,
- /* key: 0x5315 */ 0x5238,
- /* key: 0x5316 */ 0x323d,
- /* key: 0x5317 */ 0x4b4c,
- /* key: 0x5318 */ 0xb424,
- /* key: 0x5319 */ 0x3a7c,
- /* key: 0x531a */ 0x5239,
- /* key: 0x531b */ 0xb425,
- /* key: 0x531c */ 0xb426,
- /* key: 0x531d */ 0x4159,
- /* key: 0x531e */ 0xb427,
- /* key: 0x531f */ 0xb428,
- /* key: 0x5320 */ 0x3e22,
- /* key: 0x5321 */ 0x3629,
- /* key: 0x5322 */ 0xffff,
- /* key: 0x5323 */ 0x523a,
- /* key: 0x5324 */ 0xffff,
- /* key: 0x5325 */ 0xb429,
- /* key: 0x5326 */ 0xffff,
- /* key: 0x5327 */ 0xb42a,
- /* key: 0x5328 */ 0xb42b,
- /* key: 0x5329 */ 0xb42c,
- /* key: 0x532a */ 0x485b,
- /* key: 0x532b */ 0xb42d,
- /* key: 0x532c */ 0xb42e,
- /* key: 0x532d */ 0xb42f,
- /* key: 0x532e */ 0xffff,
- /* key: 0x532f */ 0x523b,
- /* key: 0x5330 */ 0xb430,
- /* key: 0x5331 */ 0x523c,
- /* key: 0x5332 */ 0xb431,
- /* key: 0x5333 */ 0x523d,
- /* key: 0x5334 */ 0xffff,
- /* key: 0x5335 */ 0xb432,
- /* key: 0x5336 */ 0xffff,
- /* key: 0x5337 */ 0xffff,
- /* key: 0x5338 */ 0x523e,
- /* key: 0x5339 */ 0x4924,
- /* key: 0x533a */ 0x3668,
- /* key: 0x533b */ 0x3065,
- /* key: 0x533c */ 0xb433,
- /* key: 0x533d */ 0xb434,
- /* key: 0x533e */ 0xb435,
- /* key: 0x533f */ 0x463f,
- /* key: 0x5340 */ 0x523f,
- /* key: 0x5341 */ 0x3d3d,
- /* key: 0x5342 */ 0xb436,
- /* key: 0x5343 */ 0x4069,
- /* key: 0x5344 */ 0xffff,
- /* key: 0x5345 */ 0x5241,
- /* key: 0x5346 */ 0x5240,
- /* key: 0x5347 */ 0x3e23,
- /* key: 0x5348 */ 0x3861,
- /* key: 0x5349 */ 0x5243,
- /* key: 0x534a */ 0x483e,
- /* key: 0x534b */ 0xb438,
- /* key: 0x534c */ 0xb437,
- /* key: 0x534d */ 0x5244,
- /* key: 0x534e */ 0xffff,
- /* key: 0x534f */ 0xffff,
- /* key: 0x5350 */ 0xffff,
- /* key: 0x5351 */ 0x485c,
- /* key: 0x5352 */ 0x4234,
- /* key: 0x5353 */ 0x426e,
- /* key: 0x5354 */ 0x3628,
- /* key: 0x5355 */ 0xffff,
- /* key: 0x5356 */ 0xffff,
- /* key: 0x5357 */ 0x466e,
- /* key: 0x5358 */ 0x4331,
- /* key: 0x5359 */ 0xb439,
- /* key: 0x535a */ 0x476e,
- /* key: 0x535b */ 0xb43a,
- /* key: 0x535c */ 0x4b4e,
- /* key: 0x535d */ 0xffff,
- /* key: 0x535e */ 0x5246,
- /* key: 0x535f */ 0xffff,
- /* key: 0x5360 */ 0x406a,
- /* key: 0x5361 */ 0xb43b,
- /* key: 0x5362 */ 0xffff,
- /* key: 0x5363 */ 0xb43c,
- /* key: 0x5364 */ 0xffff,
- /* key: 0x5365 */ 0xb43d,
- /* key: 0x5366 */ 0x3735,
- /* key: 0x5367 */ 0xffff,
- /* key: 0x5368 */ 0xffff,
- /* key: 0x5369 */ 0x5247,
- /* key: 0x536a */ 0xffff,
- /* key: 0x536b */ 0xffff,
- /* key: 0x536c */ 0xb43e,
- /* key: 0x536d */ 0xb43f,
- /* key: 0x536e */ 0x5248,
- /* key: 0x536f */ 0x312c,
- /* key: 0x5370 */ 0x3075,
- /* key: 0x5371 */ 0x346d,
- /* key: 0x5372 */ 0xb440,
- /* key: 0x5373 */ 0x4228,
- /* key: 0x5374 */ 0x3551,
- /* key: 0x5375 */ 0x4d71,
- /* key: 0x5376 */ 0xffff,
- /* key: 0x5377 */ 0x524b,
- /* key: 0x5378 */ 0x3237,
- /* key: 0x5379 */ 0xb441,
- /* key: 0x537a */ 0xffff,
- /* key: 0x537b */ 0x524a,
- /* key: 0x537c */ 0xffff,
- /* key: 0x537d */ 0xffff,
- /* key: 0x537e */ 0xb442,
- /* key: 0x537f */ 0x362a,
- /* key: 0x5380 */ 0xffff,
- /* key: 0x5381 */ 0xffff,
- /* key: 0x5382 */ 0x524c,
- /* key: 0x5383 */ 0xb443,
- /* key: 0x5384 */ 0x4c71,
- /* key: 0x5385 */ 0xffff,
- /* key: 0x5386 */ 0xffff,
- /* key: 0x5387 */ 0xb444,
- /* key: 0x5388 */ 0xb445,
- /* key: 0x5389 */ 0xffff,
- /* key: 0x538a */ 0xffff,
- /* key: 0x538b */ 0xffff,
- /* key: 0x538c */ 0xffff,
- /* key: 0x538d */ 0xffff,
- /* key: 0x538e */ 0xb446,
- /* key: 0x538f */ 0xffff,
- /* key: 0x5390 */ 0xffff,
- /* key: 0x5391 */ 0xffff,
- /* key: 0x5392 */ 0xffff,
- /* key: 0x5393 */ 0xb447,
- /* key: 0x5394 */ 0xb448,
- /* key: 0x5395 */ 0xffff,
- /* key: 0x5396 */ 0x524d,
- /* key: 0x5397 */ 0xffff,
- /* key: 0x5398 */ 0x4e52,
- /* key: 0x5399 */ 0xb449,
- /* key: 0x539a */ 0x387c,
- /* key: 0x539b */ 0xffff,
- /* key: 0x539c */ 0xffff,
- /* key: 0x539d */ 0xb44a,
- /* key: 0x539e */ 0xffff,
- /* key: 0x539f */ 0x3836,
- /* key: 0x53a0 */ 0x524e,
- /* key: 0x53a1 */ 0xb44b,
- /* key: 0x53a2 */ 0xffff,
- /* key: 0x53a3 */ 0xffff,
- /* key: 0x53a4 */ 0xb44c,
- /* key: 0x53a5 */ 0x5250,
- /* key: 0x53a6 */ 0x524f,
- /* key: 0x53a7 */ 0xffff,
- /* key: 0x53a8 */ 0x3f5f,
- /* key: 0x53a9 */ 0x3139,
- /* key: 0x53aa */ 0xb44d,
- /* key: 0x53ab */ 0xb44e,
- /* key: 0x53ac */ 0xffff,
- /* key: 0x53ad */ 0x315e,
- /* key: 0x53ae */ 0x5251,
- /* key: 0x53af */ 0xb44f,
- /* key: 0x53b0 */ 0x5252,
- /* key: 0x53b1 */ 0xffff,
- /* key: 0x53b2 */ 0xb450,
- /* key: 0x53b3 */ 0x3837,
- /* key: 0x53b4 */ 0xb451,
- /* key: 0x53b5 */ 0xb452,
- /* key: 0x53b6 */ 0x5253,
- /* key: 0x53b7 */ 0xb453,
- /* key: 0x53b8 */ 0xb454,
- /* key: 0x53b9 */ 0xffff,
- /* key: 0x53ba */ 0xb455,
- /* key: 0x53bb */ 0x356e,
- /* key: 0x53bc */ 0xffff,
- /* key: 0x53bd */ 0xb456,
- /* key: 0x53be */ 0xffff,
- /* key: 0x53bf */ 0xffff,
- /* key: 0x53c0 */ 0xb457,
- /* key: 0x53c1 */ 0xffff,
- /* key: 0x53c2 */ 0x3b32,
- /* key: 0x53c3 */ 0x5254,
- /* key: 0x53c4 */ 0xffff,
- /* key: 0x53c5 */ 0xb458,
- /* key: 0x53c6 */ 0xffff,
- /* key: 0x53c7 */ 0xffff,
- /* key: 0x53c8 */ 0x4b74,
- /* key: 0x53c9 */ 0x3a35,
- /* key: 0x53ca */ 0x355a,
- /* key: 0x53cb */ 0x4d27,
- /* key: 0x53cc */ 0x4150,
- /* key: 0x53cd */ 0x483f,
- /* key: 0x53ce */ 0x3c7d,
- /* key: 0x53cf */ 0xb459,
- /* key: 0x53d0 */ 0xffff,
- /* key: 0x53d1 */ 0xffff,
- /* key: 0x53d2 */ 0xb45a,
- /* key: 0x53d3 */ 0xb45b,
- /* key: 0x53d4 */ 0x3d47,
- /* key: 0x53d5 */ 0xb45c,
- /* key: 0x53d6 */ 0x3c68,
- /* key: 0x53d7 */ 0x3c75,
- /* key: 0x53d8 */ 0xffff,
- /* key: 0x53d9 */ 0x3d76,
- /* key: 0x53da */ 0xb45d,
- /* key: 0x53db */ 0x4840,
- /* key: 0x53dc */ 0xffff,
- /* key: 0x53dd */ 0xb45e,
- /* key: 0x53de */ 0xb45f,
- /* key: 0x53df */ 0x5257,
- /* key: 0x53e0 */ 0xb460,
- /* key: 0x53e1 */ 0x3143,
- /* key: 0x53e2 */ 0x4151,
- /* key: 0x53e3 */ 0x387d,
- /* key: 0x53e4 */ 0x3845,
- /* key: 0x53e5 */ 0x3667,
- /* key: 0x53e6 */ 0xb461,
- /* key: 0x53e7 */ 0xb462,
- /* key: 0x53e8 */ 0x525b,
- /* key: 0x53e9 */ 0x4321,
- /* key: 0x53ea */ 0x427e,
- /* key: 0x53eb */ 0x362b,
- /* key: 0x53ec */ 0x3e24,
- /* key: 0x53ed */ 0x525c,
- /* key: 0x53ee */ 0x525a,
- /* key: 0x53ef */ 0x3244,
- /* key: 0x53f0 */ 0x4266,
- /* key: 0x53f1 */ 0x3c38,
- /* key: 0x53f2 */ 0x3b4b,
- /* key: 0x53f3 */ 0x3126,
- /* key: 0x53f4 */ 0xffff,
- /* key: 0x53f5 */ 0xb463,
- /* key: 0x53f6 */ 0x3370,
- /* key: 0x53f7 */ 0x3966,
- /* key: 0x53f8 */ 0x3b4a,
- /* key: 0x53f9 */ 0xffff,
- /* key: 0x53fa */ 0x525d,
- /* key: 0x53fb */ 0xffff,
- /* key: 0x53fc */ 0xffff,
- /* key: 0x53fd */ 0xffff,
- /* key: 0x53fe */ 0xffff,
- /* key: 0x53ff */ 0xffff,
- /* branch: 0x540X */ 3232,
- /* branch: 0x541X */ 3248,
- /* branch: 0x542X */ 3264,
- /* branch: 0x543X */ 3280,
- /* branch: 0x544X */ 3296,
- /* branch: 0x545X */ 3312,
- /* branch: 0x546X */ 3328,
- /* branch: 0x547X */ 3344,
- /* branch: 0x548X */ 3360,
- /* branch: 0x549X */ 3376,
- /* branch: 0x54aX */ 3392,
- /* branch: 0x54bX */ 3408,
- /* branch: 0x54cX */ 3424,
- /* branch: 0x54dX */ 3440,
- /* branch: 0x54eX */ 3456,
- /* branch: 0x54fX */ 3472,
- /* key: 0x5400 */ 0xffff,
- /* key: 0x5401 */ 0x525e,
- /* key: 0x5402 */ 0xb464,
- /* key: 0x5403 */ 0x3549,
- /* key: 0x5404 */ 0x3346,
- /* key: 0x5405 */ 0xffff,
- /* key: 0x5406 */ 0xffff,
- /* key: 0x5407 */ 0xffff,
- /* key: 0x5408 */ 0x3967,
- /* key: 0x5409 */ 0x3548,
- /* key: 0x540a */ 0x445f,
- /* key: 0x540b */ 0x3125,
- /* key: 0x540c */ 0x4631,
- /* key: 0x540d */ 0x4c3e,
- /* key: 0x540e */ 0x3921,
- /* key: 0x540f */ 0x4d79,
- /* key: 0x5410 */ 0x4547,
- /* key: 0x5411 */ 0x387e,
- /* key: 0x5412 */ 0xffff,
- /* key: 0x5413 */ 0xb465,
- /* key: 0x5414 */ 0xffff,
- /* key: 0x5415 */ 0xffff,
- /* key: 0x5416 */ 0xffff,
- /* key: 0x5417 */ 0xffff,
- /* key: 0x5418 */ 0xffff,
- /* key: 0x5419 */ 0xffff,
- /* key: 0x541a */ 0xb466,
- /* key: 0x541b */ 0x372f,
- /* key: 0x541c */ 0xffff,
- /* key: 0x541d */ 0x5267,
- /* key: 0x541e */ 0xffff,
- /* key: 0x541f */ 0x3663,
- /* key: 0x5420 */ 0x4b4a,
- /* key: 0x5421 */ 0xb467,
- /* key: 0x5422 */ 0xffff,
- /* key: 0x5423 */ 0xffff,
- /* key: 0x5424 */ 0xffff,
- /* key: 0x5425 */ 0xffff,
- /* key: 0x5426 */ 0x485d,
- /* key: 0x5427 */ 0xb468,
- /* key: 0x5428 */ 0xb469,
- /* key: 0x5429 */ 0x5266,
- /* key: 0x542a */ 0xb46a,
- /* key: 0x542b */ 0x345e,
- /* key: 0x542c */ 0x5261,
- /* key: 0x542d */ 0x5262,
- /* key: 0x542e */ 0x5264,
- /* key: 0x542f */ 0xb46b,
- /* key: 0x5430 */ 0xffff,
- /* key: 0x5431 */ 0xb46c,
- /* key: 0x5432 */ 0xffff,
- /* key: 0x5433 */ 0xffff,
- /* key: 0x5434 */ 0xb46d,
- /* key: 0x5435 */ 0xb46e,
- /* key: 0x5436 */ 0x5265,
- /* key: 0x5437 */ 0xffff,
- /* key: 0x5438 */ 0x355b,
- /* key: 0x5439 */ 0x3f61,
- /* key: 0x543a */ 0xffff,
- /* key: 0x543b */ 0x4a2d,
- /* key: 0x543c */ 0x5263,
- /* key: 0x543d */ 0x525f,
- /* key: 0x543e */ 0x3863,
- /* key: 0x543f */ 0xffff,
- /* key: 0x5440 */ 0x5260,
- /* key: 0x5441 */ 0xffff,
- /* key: 0x5442 */ 0x4f24,
- /* key: 0x5443 */ 0xb46f,
- /* key: 0x5444 */ 0xb470,
- /* key: 0x5445 */ 0xffff,
- /* key: 0x5446 */ 0x4a72,
- /* key: 0x5447 */ 0xb471,
- /* key: 0x5448 */ 0x4468,
- /* key: 0x5449 */ 0x3862,
- /* key: 0x544a */ 0x3970,
- /* key: 0x544b */ 0xffff,
- /* key: 0x544c */ 0xffff,
- /* key: 0x544d */ 0xb472,
- /* key: 0x544e */ 0x5268,
- /* key: 0x544f */ 0xb473,
- /* key: 0x5450 */ 0xffff,
- /* key: 0x5451 */ 0x465d,
- /* key: 0x5452 */ 0xffff,
- /* key: 0x5453 */ 0xffff,
- /* key: 0x5454 */ 0xffff,
- /* key: 0x5455 */ 0xffff,
- /* key: 0x5456 */ 0xffff,
- /* key: 0x5457 */ 0xffff,
- /* key: 0x5458 */ 0xffff,
- /* key: 0x5459 */ 0xffff,
- /* key: 0x545a */ 0xffff,
- /* key: 0x545b */ 0xffff,
- /* key: 0x545c */ 0xffff,
- /* key: 0x545d */ 0xffff,
- /* key: 0x545e */ 0xb474,
- /* key: 0x545f */ 0x526c,
- /* key: 0x5460 */ 0xffff,
- /* key: 0x5461 */ 0xffff,
- /* key: 0x5462 */ 0xb475,
- /* key: 0x5463 */ 0xffff,
- /* key: 0x5464 */ 0xb476,
- /* key: 0x5465 */ 0xffff,
- /* key: 0x5466 */ 0xb477,
- /* key: 0x5467 */ 0xb478,
- /* key: 0x5468 */ 0x3c7e,
- /* key: 0x5469 */ 0xb479,
- /* key: 0x546a */ 0x3c76,
- /* key: 0x546b */ 0xb47a,
- /* key: 0x546c */ 0xffff,
- /* key: 0x546d */ 0xb47b,
- /* key: 0x546e */ 0xb47c,
- /* key: 0x546f */ 0xffff,
- /* key: 0x5470 */ 0x526f,
- /* key: 0x5471 */ 0x526d,
- /* key: 0x5472 */ 0xffff,
- /* key: 0x5473 */ 0x4c23,
- /* key: 0x5474 */ 0xb47d,
- /* key: 0x5475 */ 0x526a,
- /* key: 0x5476 */ 0x5273,
- /* key: 0x5477 */ 0x526e,
- /* key: 0x5478 */ 0xffff,
- /* key: 0x5479 */ 0xffff,
- /* key: 0x547a */ 0xffff,
- /* key: 0x547b */ 0x5271,
- /* key: 0x547c */ 0x3846,
- /* key: 0x547d */ 0x4c3f,
- /* key: 0x547e */ 0xffff,
- /* key: 0x547f */ 0xb47e,
- /* key: 0x5480 */ 0x5272,
- /* key: 0x5481 */ 0xb521,
- /* key: 0x5482 */ 0xffff,
- /* key: 0x5483 */ 0xb522,
- /* key: 0x5484 */ 0x5274,
- /* key: 0x5485 */ 0xb523,
- /* key: 0x5486 */ 0x5276,
- /* key: 0x5487 */ 0xffff,
- /* key: 0x5488 */ 0xb524,
- /* key: 0x5489 */ 0xb525,
- /* key: 0x548a */ 0xffff,
- /* key: 0x548b */ 0x3a70,
- /* key: 0x548c */ 0x4f42,
- /* key: 0x548d */ 0xb526,
- /* key: 0x548e */ 0x526b,
- /* key: 0x548f */ 0x5269,
- /* key: 0x5490 */ 0x5275,
- /* key: 0x5491 */ 0xb527,
- /* key: 0x5492 */ 0x5270,
- /* key: 0x5493 */ 0xffff,
- /* key: 0x5494 */ 0xffff,
- /* key: 0x5495 */ 0xb528,
- /* key: 0x5496 */ 0xb529,
- /* key: 0x5497 */ 0xffff,
- /* key: 0x5498 */ 0xffff,
- /* key: 0x5499 */ 0xffff,
- /* key: 0x549a */ 0xffff,
- /* key: 0x549b */ 0xffff,
- /* key: 0x549c */ 0xb52a,
- /* key: 0x549d */ 0xffff,
- /* key: 0x549e */ 0xffff,
- /* key: 0x549f */ 0xb52b,
- /* key: 0x54a0 */ 0xffff,
- /* key: 0x54a1 */ 0xb52c,
- /* key: 0x54a2 */ 0x5278,
- /* key: 0x54a3 */ 0xffff,
- /* key: 0x54a4 */ 0x5323,
- /* key: 0x54a5 */ 0x527a,
- /* key: 0x54a6 */ 0xb52d,
- /* key: 0x54a7 */ 0xb52e,
- /* key: 0x54a8 */ 0x527e,
- /* key: 0x54a9 */ 0xb52f,
- /* key: 0x54aa */ 0xb530,
- /* key: 0x54ab */ 0x5321,
- /* key: 0x54ac */ 0x527b,
- /* key: 0x54ad */ 0xb531,
- /* key: 0x54ae */ 0xb532,
- /* key: 0x54af */ 0x533e,
- /* key: 0x54b0 */ 0xffff,
- /* key: 0x54b1 */ 0xb533,
- /* key: 0x54b2 */ 0x3a69,
- /* key: 0x54b3 */ 0x3331,
- /* key: 0x54b4 */ 0xffff,
- /* key: 0x54b5 */ 0xffff,
- /* key: 0x54b6 */ 0xffff,
- /* key: 0x54b7 */ 0xb534,
- /* key: 0x54b8 */ 0x5279,
- /* key: 0x54b9 */ 0xb535,
- /* key: 0x54ba */ 0xb536,
- /* key: 0x54bb */ 0xb537,
- /* key: 0x54bc */ 0x5325,
- /* key: 0x54bd */ 0x3076,
- /* key: 0x54be */ 0x5324,
- /* key: 0x54bf */ 0xb538,
- /* key: 0x54c0 */ 0x3025,
- /* key: 0x54c1 */ 0x494a,
- /* key: 0x54c2 */ 0x5322,
- /* key: 0x54c3 */ 0xffff,
- /* key: 0x54c4 */ 0x527c,
- /* key: 0x54c5 */ 0xffff,
- /* key: 0x54c6 */ 0xb539,
- /* key: 0x54c7 */ 0x5277,
- /* key: 0x54c8 */ 0x527d,
- /* key: 0x54c9 */ 0x3a48,
- /* key: 0x54ca */ 0xb53a,
- /* key: 0x54cb */ 0xffff,
- /* key: 0x54cc */ 0xffff,
- /* key: 0x54cd */ 0xb53b,
- /* key: 0x54ce */ 0xb53c,
- /* key: 0x54cf */ 0xffff,
- /* key: 0x54d0 */ 0xffff,
- /* key: 0x54d1 */ 0xffff,
- /* key: 0x54d2 */ 0xffff,
- /* key: 0x54d3 */ 0xffff,
- /* key: 0x54d4 */ 0xffff,
- /* key: 0x54d5 */ 0xffff,
- /* key: 0x54d6 */ 0xffff,
- /* key: 0x54d7 */ 0xffff,
- /* key: 0x54d8 */ 0x5326,
- /* key: 0x54d9 */ 0xffff,
- /* key: 0x54da */ 0xffff,
- /* key: 0x54db */ 0xffff,
- /* key: 0x54dc */ 0xffff,
- /* key: 0x54dd */ 0xffff,
- /* key: 0x54de */ 0xffff,
- /* key: 0x54df */ 0xffff,
- /* key: 0x54e0 */ 0xb53d,
- /* key: 0x54e1 */ 0x3077,
- /* key: 0x54e2 */ 0x532f,
- /* key: 0x54e3 */ 0xffff,
- /* key: 0x54e4 */ 0xffff,
- /* key: 0x54e5 */ 0x5327,
- /* key: 0x54e6 */ 0x5328,
- /* key: 0x54e7 */ 0xffff,
- /* key: 0x54e8 */ 0x3e25,
- /* key: 0x54e9 */ 0x4b69,
- /* key: 0x54ea */ 0xb53e,
- /* key: 0x54eb */ 0xffff,
- /* key: 0x54ec */ 0xb53f,
- /* key: 0x54ed */ 0x532d,
- /* key: 0x54ee */ 0x532c,
- /* key: 0x54ef */ 0xb540,
- /* key: 0x54f0 */ 0xffff,
- /* key: 0x54f1 */ 0xffff,
- /* key: 0x54f2 */ 0x452f,
- /* key: 0x54f3 */ 0xffff,
- /* key: 0x54f4 */ 0xffff,
- /* key: 0x54f5 */ 0xffff,
- /* key: 0x54f6 */ 0xb541,
- /* key: 0x54f7 */ 0xffff,
- /* key: 0x54f8 */ 0xffff,
- /* key: 0x54f9 */ 0xffff,
- /* key: 0x54fa */ 0x532e,
- /* key: 0x54fb */ 0xffff,
- /* key: 0x54fc */ 0xb542,
- /* key: 0x54fd */ 0x532b,
- /* key: 0x54fe */ 0xb543,
- /* key: 0x54ff */ 0xb544,
- /* branch: 0x550X */ 3504,
- /* branch: 0x551X */ 3520,
- /* branch: 0x552X */ 3536,
- /* branch: 0x553X */ 3552,
- /* branch: 0x554X */ 3568,
- /* branch: 0x555X */ 3584,
- /* branch: 0x556X */ 3600,
- /* branch: 0x557X */ 3616,
- /* branch: 0x558X */ 3632,
- /* branch: 0x559X */ 3648,
- /* branch: 0x55aX */ 3664,
- /* branch: 0x55bX */ 3680,
- /* branch: 0x55cX */ 3696,
- /* branch: 0x55dX */ 3712,
- /* branch: 0x55eX */ 3728,
- /* branch: 0x55fX */ 3744,
- /* key: 0x5500 */ 0xb545,
- /* key: 0x5501 */ 0xb546,
- /* key: 0x5502 */ 0xffff,
- /* key: 0x5503 */ 0xffff,
- /* key: 0x5504 */ 0x3134,
- /* key: 0x5505 */ 0xb547,
- /* key: 0x5506 */ 0x3a36,
- /* key: 0x5507 */ 0x3f30,
- /* key: 0x5508 */ 0xb548,
- /* key: 0x5509 */ 0xb549,
- /* key: 0x550a */ 0xffff,
- /* key: 0x550b */ 0xffff,
- /* key: 0x550c */ 0xb54a,
- /* key: 0x550d */ 0xb54b,
- /* key: 0x550e */ 0xb54c,
- /* key: 0x550f */ 0x5329,
- /* key: 0x5510 */ 0x4562,
- /* key: 0x5511 */ 0xffff,
- /* key: 0x5512 */ 0xffff,
- /* key: 0x5513 */ 0xffff,
- /* key: 0x5514 */ 0x532a,
- /* key: 0x5515 */ 0xb54d,
- /* key: 0x5516 */ 0x3022,
- /* key: 0x5517 */ 0xffff,
- /* key: 0x5518 */ 0xffff,
- /* key: 0x5519 */ 0xffff,
- /* key: 0x551a */ 0xffff,
- /* key: 0x551b */ 0xffff,
- /* key: 0x551c */ 0xffff,
- /* key: 0x551d */ 0xffff,
- /* key: 0x551e */ 0xffff,
- /* key: 0x551f */ 0xffff,
- /* key: 0x5520 */ 0xffff,
- /* key: 0x5521 */ 0xffff,
- /* key: 0x5522 */ 0xffff,
- /* key: 0x5523 */ 0xffff,
- /* key: 0x5524 */ 0xffff,
- /* key: 0x5525 */ 0xffff,
- /* key: 0x5526 */ 0xffff,
- /* key: 0x5527 */ 0xffff,
- /* key: 0x5528 */ 0xffff,
- /* key: 0x5529 */ 0xffff,
- /* key: 0x552a */ 0xb54e,
- /* key: 0x552b */ 0xb54f,
- /* key: 0x552c */ 0xffff,
- /* key: 0x552d */ 0xffff,
- /* key: 0x552e */ 0x5334,
- /* key: 0x552f */ 0x4d23,
- /* key: 0x5530 */ 0xffff,
- /* key: 0x5531 */ 0x3e27,
- /* key: 0x5532 */ 0xb550,
- /* key: 0x5533 */ 0x533a,
- /* key: 0x5534 */ 0xffff,
- /* key: 0x5535 */ 0xb551,
- /* key: 0x5536 */ 0xb552,
- /* key: 0x5537 */ 0xffff,
- /* key: 0x5538 */ 0x5339,
- /* key: 0x5539 */ 0x5330,
- /* key: 0x553a */ 0xffff,
- /* key: 0x553b */ 0xb553,
- /* key: 0x553c */ 0xb554,
- /* key: 0x553d */ 0xb555,
- /* key: 0x553e */ 0x4243,
- /* key: 0x553f */ 0xffff,
- /* key: 0x5540 */ 0x5331,
- /* key: 0x5541 */ 0xb556,
- /* key: 0x5542 */ 0xffff,
- /* key: 0x5543 */ 0xffff,
- /* key: 0x5544 */ 0x426f,
- /* key: 0x5545 */ 0x5336,
- /* key: 0x5546 */ 0x3e26,
- /* key: 0x5547 */ 0xb557,
- /* key: 0x5548 */ 0xffff,
- /* key: 0x5549 */ 0xb558,
- /* key: 0x554a */ 0xb559,
- /* key: 0x554b */ 0xffff,
- /* key: 0x554c */ 0x5333,
- /* key: 0x554d */ 0xb55a,
- /* key: 0x554e */ 0xffff,
- /* key: 0x554f */ 0x4c64,
- /* key: 0x5550 */ 0xb55b,
- /* key: 0x5551 */ 0xb55c,
- /* key: 0x5552 */ 0xffff,
- /* key: 0x5553 */ 0x373c,
- /* key: 0x5554 */ 0xffff,
- /* key: 0x5555 */ 0xffff,
- /* key: 0x5556 */ 0x5337,
- /* key: 0x5557 */ 0x5338,
- /* key: 0x5558 */ 0xb55d,
- /* key: 0x5559 */ 0xffff,
- /* key: 0x555a */ 0xb55e,
- /* key: 0x555b */ 0xb55f,
- /* key: 0x555c */ 0x5335,
- /* key: 0x555d */ 0x533b,
- /* key: 0x555e */ 0xb560,
- /* key: 0x555f */ 0xffff,
- /* key: 0x5560 */ 0xb561,
- /* key: 0x5561 */ 0xb562,
- /* key: 0x5562 */ 0xffff,
- /* key: 0x5563 */ 0x5332,
- /* key: 0x5564 */ 0xb563,
- /* key: 0x5565 */ 0xffff,
- /* key: 0x5566 */ 0xb564,
- /* key: 0x5567 */ 0xffff,
- /* key: 0x5568 */ 0xffff,
- /* key: 0x5569 */ 0xffff,
- /* key: 0x556a */ 0xffff,
- /* key: 0x556b */ 0xffff,
- /* key: 0x556c */ 0xffff,
- /* key: 0x556d */ 0xffff,
- /* key: 0x556e */ 0xffff,
- /* key: 0x556f */ 0xffff,
- /* key: 0x5570 */ 0xffff,
- /* key: 0x5571 */ 0xffff,
- /* key: 0x5572 */ 0xffff,
- /* key: 0x5573 */ 0xffff,
- /* key: 0x5574 */ 0xffff,
- /* key: 0x5575 */ 0xffff,
- /* key: 0x5576 */ 0xffff,
- /* key: 0x5577 */ 0xffff,
- /* key: 0x5578 */ 0xffff,
- /* key: 0x5579 */ 0xffff,
- /* key: 0x557a */ 0xffff,
- /* key: 0x557b */ 0x5341,
- /* key: 0x557c */ 0x5346,
- /* key: 0x557d */ 0xffff,
- /* key: 0x557e */ 0x5342,
- /* key: 0x557f */ 0xb565,
- /* key: 0x5580 */ 0x533d,
- /* key: 0x5581 */ 0xb566,
- /* key: 0x5582 */ 0xb567,
- /* key: 0x5583 */ 0x5347,
- /* key: 0x5584 */ 0x4131,
- /* key: 0x5585 */ 0xffff,
- /* key: 0x5586 */ 0xb568,
- /* key: 0x5587 */ 0x5349,
- /* key: 0x5588 */ 0xb569,
- /* key: 0x5589 */ 0x3922,
- /* key: 0x558a */ 0x533f,
- /* key: 0x558b */ 0x437d,
- /* key: 0x558c */ 0xffff,
- /* key: 0x558d */ 0xffff,
- /* key: 0x558e */ 0xb56a,
- /* key: 0x558f */ 0xb56b,
- /* key: 0x5590 */ 0xffff,
- /* key: 0x5591 */ 0xb56c,
- /* key: 0x5592 */ 0xb56d,
- /* key: 0x5593 */ 0xb56e,
- /* key: 0x5594 */ 0xb56f,
- /* key: 0x5595 */ 0xffff,
- /* key: 0x5596 */ 0xffff,
- /* key: 0x5597 */ 0xb570,
- /* key: 0x5598 */ 0x5343,
- /* key: 0x5599 */ 0x533c,
- /* key: 0x559a */ 0x342d,
- /* key: 0x559b */ 0xffff,
- /* key: 0x559c */ 0x346e,
- /* key: 0x559d */ 0x3365,
- /* key: 0x559e */ 0x5344,
- /* key: 0x559f */ 0x5340,
- /* key: 0x55a0 */ 0xffff,
- /* key: 0x55a1 */ 0xffff,
- /* key: 0x55a2 */ 0xffff,
- /* key: 0x55a3 */ 0xb571,
- /* key: 0x55a4 */ 0xb572,
- /* key: 0x55a5 */ 0xffff,
- /* key: 0x55a6 */ 0xffff,
- /* key: 0x55a7 */ 0x3776,
- /* key: 0x55a8 */ 0x534a,
- /* key: 0x55a9 */ 0x5348,
- /* key: 0x55aa */ 0x4153,
- /* key: 0x55ab */ 0x354a,
- /* key: 0x55ac */ 0x362c,
- /* key: 0x55ad */ 0xb573,
- /* key: 0x55ae */ 0x5345,
- /* key: 0x55af */ 0xffff,
- /* key: 0x55b0 */ 0x3674,
- /* key: 0x55b1 */ 0xffff,
- /* key: 0x55b2 */ 0xb574,
- /* key: 0x55b3 */ 0xffff,
- /* key: 0x55b4 */ 0xffff,
- /* key: 0x55b5 */ 0xffff,
- /* key: 0x55b6 */ 0x3144,
- /* key: 0x55b7 */ 0xffff,
- /* key: 0x55b8 */ 0xffff,
- /* key: 0x55b9 */ 0xffff,
- /* key: 0x55ba */ 0xffff,
- /* key: 0x55bb */ 0xffff,
- /* key: 0x55bc */ 0xffff,
- /* key: 0x55bd */ 0xffff,
- /* key: 0x55be */ 0xffff,
- /* key: 0x55bf */ 0xb575,
- /* key: 0x55c0 */ 0xffff,
- /* key: 0x55c1 */ 0xb576,
- /* key: 0x55c2 */ 0xffff,
- /* key: 0x55c3 */ 0xb577,
- /* key: 0x55c4 */ 0x534e,
- /* key: 0x55c5 */ 0x534c,
- /* key: 0x55c6 */ 0xb578,
- /* key: 0x55c7 */ 0x5427,
- /* key: 0x55c8 */ 0xffff,
- /* key: 0x55c9 */ 0xb579,
- /* key: 0x55ca */ 0xffff,
- /* key: 0x55cb */ 0xb57a,
- /* key: 0x55cc */ 0xb57b,
- /* key: 0x55cd */ 0xffff,
- /* key: 0x55ce */ 0xb57c,
- /* key: 0x55cf */ 0xffff,
- /* key: 0x55d0 */ 0xffff,
- /* key: 0x55d1 */ 0xb57d,
- /* key: 0x55d2 */ 0xb57e,
- /* key: 0x55d3 */ 0xb621,
- /* key: 0x55d4 */ 0x5351,
- /* key: 0x55d5 */ 0xffff,
- /* key: 0x55d6 */ 0xffff,
- /* key: 0x55d7 */ 0xb622,
- /* key: 0x55d8 */ 0xb623,
- /* key: 0x55d9 */ 0xffff,
- /* key: 0x55da */ 0x534b,
- /* key: 0x55db */ 0xb624,
- /* key: 0x55dc */ 0x534f,
- /* key: 0x55dd */ 0xffff,
- /* key: 0x55de */ 0xb625,
- /* key: 0x55df */ 0x534d,
- /* key: 0x55e0 */ 0xffff,
- /* key: 0x55e1 */ 0xffff,
- /* key: 0x55e2 */ 0xb626,
- /* key: 0x55e3 */ 0x3b4c,
- /* key: 0x55e4 */ 0x5350,
- /* key: 0x55e5 */ 0xffff,
- /* key: 0x55e6 */ 0xffff,
- /* key: 0x55e7 */ 0xffff,
- /* key: 0x55e8 */ 0xffff,
- /* key: 0x55e9 */ 0xb627,
- /* key: 0x55ea */ 0xffff,
- /* key: 0x55eb */ 0xffff,
- /* key: 0x55ec */ 0xffff,
- /* key: 0x55ed */ 0xffff,
- /* key: 0x55ee */ 0xffff,
- /* key: 0x55ef */ 0xffff,
- /* key: 0x55f0 */ 0xffff,
- /* key: 0x55f1 */ 0xffff,
- /* key: 0x55f2 */ 0xffff,
- /* key: 0x55f3 */ 0xffff,
- /* key: 0x55f4 */ 0xffff,
- /* key: 0x55f5 */ 0xffff,
- /* key: 0x55f6 */ 0xb628,
- /* key: 0x55f7 */ 0x5353,
- /* key: 0x55f8 */ 0xffff,
- /* key: 0x55f9 */ 0x5358,
- /* key: 0x55fa */ 0xffff,
- /* key: 0x55fb */ 0xffff,
- /* key: 0x55fc */ 0xffff,
- /* key: 0x55fd */ 0x5356,
- /* key: 0x55fe */ 0x5355,
- /* key: 0x55ff */ 0xb629,
- /* branch: 0x560X */ 3776,
- /* branch: 0x561X */ 3792,
- /* branch: 0x562X */ 3808,
- /* branch: 0x563X */ 3824,
- /* branch: 0x564X */ 3840,
- /* branch: 0x565X */ 3856,
- /* branch: 0x566X */ 3872,
- /* branch: 0x567X */ 3888,
- /* branch: 0x568X */ 3904,
- /* branch: 0x569X */ 3920,
- /* branch: 0x56aX */ 3936,
- /* branch: 0x56bX */ 3952,
- /* branch: 0x56cX */ 3968,
- /* branch: 0x56dX */ 3984,
- /* branch: 0x56eX */ 4000,
- /* branch: 0x56fX */ 4016,
- /* key: 0x5600 */ 0xffff,
- /* key: 0x5601 */ 0xffff,
- /* key: 0x5602 */ 0xffff,
- /* key: 0x5603 */ 0xffff,
- /* key: 0x5604 */ 0xffff,
- /* key: 0x5605 */ 0xb62a,
- /* key: 0x5606 */ 0x4332,
- /* key: 0x5607 */ 0xffff,
- /* key: 0x5608 */ 0xb62b,
- /* key: 0x5609 */ 0x3245,
- /* key: 0x560a */ 0xb62c,
- /* key: 0x560b */ 0xffff,
- /* key: 0x560c */ 0xffff,
- /* key: 0x560d */ 0xb62d,
- /* key: 0x560e */ 0xb62e,
- /* key: 0x560f */ 0xb62f,
- /* key: 0x5610 */ 0xb630,
- /* key: 0x5611 */ 0xb631,
- /* key: 0x5612 */ 0xb632,
- /* key: 0x5613 */ 0xffff,
- /* key: 0x5614 */ 0x5352,
- /* key: 0x5615 */ 0xffff,
- /* key: 0x5616 */ 0x5354,
- /* key: 0x5617 */ 0x3e28,
- /* key: 0x5618 */ 0x3133,
- /* key: 0x5619 */ 0xb633,
- /* key: 0x561a */ 0xffff,
- /* key: 0x561b */ 0x5357,
- /* key: 0x561c */ 0xffff,
- /* key: 0x561d */ 0xffff,
- /* key: 0x561e */ 0xffff,
- /* key: 0x561f */ 0xffff,
- /* key: 0x5620 */ 0xffff,
- /* key: 0x5621 */ 0xffff,
- /* key: 0x5622 */ 0xffff,
- /* key: 0x5623 */ 0xffff,
- /* key: 0x5624 */ 0xffff,
- /* key: 0x5625 */ 0xffff,
- /* key: 0x5626 */ 0xffff,
- /* key: 0x5627 */ 0xffff,
- /* key: 0x5628 */ 0xffff,
- /* key: 0x5629 */ 0x325e,
- /* key: 0x562a */ 0xffff,
- /* key: 0x562b */ 0xffff,
- /* key: 0x562c */ 0xb634,
- /* key: 0x562d */ 0xffff,
- /* key: 0x562e */ 0xffff,
- /* key: 0x562f */ 0x5362,
- /* key: 0x5630 */ 0xb635,
- /* key: 0x5631 */ 0x3e7c,
- /* key: 0x5632 */ 0x535e,
- /* key: 0x5633 */ 0xb636,
- /* key: 0x5634 */ 0x535c,
- /* key: 0x5635 */ 0xb637,
- /* key: 0x5636 */ 0x535d,
- /* key: 0x5637 */ 0xb638,
- /* key: 0x5638 */ 0x535f,
- /* key: 0x5639 */ 0xb639,
- /* key: 0x563a */ 0xffff,
- /* key: 0x563b */ 0xb63a,
- /* key: 0x563c */ 0xb63b,
- /* key: 0x563d */ 0xb63c,
- /* key: 0x563e */ 0xffff,
- /* key: 0x563f */ 0xb63d,
- /* key: 0x5640 */ 0xb63e,
- /* key: 0x5641 */ 0xb63f,
- /* key: 0x5642 */ 0x313d,
- /* key: 0x5643 */ 0xb640,
- /* key: 0x5644 */ 0xb641,
- /* key: 0x5645 */ 0xffff,
- /* key: 0x5646 */ 0xb642,
- /* key: 0x5647 */ 0xffff,
- /* key: 0x5648 */ 0xffff,
- /* key: 0x5649 */ 0xb643,
- /* key: 0x564a */ 0xffff,
- /* key: 0x564b */ 0xb644,
- /* key: 0x564c */ 0x4139,
- /* key: 0x564d */ 0xb645,
- /* key: 0x564e */ 0x5359,
- /* key: 0x564f */ 0xb646,
- /* key: 0x5650 */ 0x535a,
- /* key: 0x5651 */ 0xffff,
- /* key: 0x5652 */ 0xffff,
- /* key: 0x5653 */ 0xffff,
- /* key: 0x5654 */ 0xb647,
- /* key: 0x5655 */ 0xffff,
- /* key: 0x5656 */ 0xffff,
- /* key: 0x5657 */ 0xffff,
- /* key: 0x5658 */ 0xffff,
- /* key: 0x5659 */ 0xffff,
- /* key: 0x565a */ 0xffff,
- /* key: 0x565b */ 0x337a,
- /* key: 0x565c */ 0xffff,
- /* key: 0x565d */ 0xffff,
- /* key: 0x565e */ 0xb648,
- /* key: 0x565f */ 0xffff,
- /* key: 0x5660 */ 0xb649,
- /* key: 0x5661 */ 0xb64a,
- /* key: 0x5662 */ 0xb64b,
- /* key: 0x5663 */ 0xb64c,
- /* key: 0x5664 */ 0x5361,
- /* key: 0x5665 */ 0xffff,
- /* key: 0x5666 */ 0xb64d,
- /* key: 0x5667 */ 0xffff,
- /* key: 0x5668 */ 0x346f,
- /* key: 0x5669 */ 0xb64e,
- /* key: 0x566a */ 0x5364,
- /* key: 0x566b */ 0x5360,
- /* key: 0x566c */ 0x5363,
- /* key: 0x566d */ 0xb64f,
- /* key: 0x566e */ 0xffff,
- /* key: 0x566f */ 0xb650,
- /* key: 0x5670 */ 0xffff,
- /* key: 0x5671 */ 0xb651,
- /* key: 0x5672 */ 0xb652,
- /* key: 0x5673 */ 0xffff,
- /* key: 0x5674 */ 0x4a2e,
- /* key: 0x5675 */ 0xb653,
- /* key: 0x5676 */ 0xffff,
- /* key: 0x5677 */ 0xffff,
- /* key: 0x5678 */ 0x4655,
- /* key: 0x5679 */ 0xffff,
- /* key: 0x567a */ 0x4838,
- /* key: 0x567b */ 0xffff,
- /* key: 0x567c */ 0xffff,
- /* key: 0x567d */ 0xffff,
- /* key: 0x567e */ 0xffff,
- /* key: 0x567f */ 0xffff,
- /* key: 0x5680 */ 0x5366,
- /* key: 0x5681 */ 0xffff,
- /* key: 0x5682 */ 0xffff,
- /* key: 0x5683 */ 0xffff,
- /* key: 0x5684 */ 0xb654,
- /* key: 0x5685 */ 0xb655,
- /* key: 0x5686 */ 0x5365,
- /* key: 0x5687 */ 0x3345,
- /* key: 0x5688 */ 0xb656,
- /* key: 0x5689 */ 0xffff,
- /* key: 0x568a */ 0x5367,
- /* key: 0x568b */ 0xb657,
- /* key: 0x568c */ 0xb658,
- /* key: 0x568d */ 0xffff,
- /* key: 0x568e */ 0xffff,
- /* key: 0x568f */ 0x536a,
- /* key: 0x5690 */ 0xffff,
- /* key: 0x5691 */ 0xffff,
- /* key: 0x5692 */ 0xffff,
- /* key: 0x5693 */ 0xffff,
- /* key: 0x5694 */ 0x5369,
- /* key: 0x5695 */ 0xb659,
- /* key: 0x5696 */ 0xffff,
- /* key: 0x5697 */ 0xffff,
- /* key: 0x5698 */ 0xffff,
- /* key: 0x5699 */ 0xb65a,
- /* key: 0x569a */ 0xb65b,
- /* key: 0x569b */ 0xffff,
- /* key: 0x569c */ 0xffff,
- /* key: 0x569d */ 0xb65c,
- /* key: 0x569e */ 0xb65d,
- /* key: 0x569f */ 0xb65e,
- /* key: 0x56a0 */ 0x5368,
- /* key: 0x56a1 */ 0xffff,
- /* key: 0x56a2 */ 0x4739,
- /* key: 0x56a3 */ 0xffff,
- /* key: 0x56a4 */ 0xffff,
- /* key: 0x56a5 */ 0x536b,
- /* key: 0x56a6 */ 0xb65f,
- /* key: 0x56a7 */ 0xb660,
- /* key: 0x56a8 */ 0xb661,
- /* key: 0x56a9 */ 0xb662,
- /* key: 0x56aa */ 0xffff,
- /* key: 0x56ab */ 0xb663,
- /* key: 0x56ac */ 0xb664,
- /* key: 0x56ad */ 0xb665,
- /* key: 0x56ae */ 0x536c,
- /* key: 0x56af */ 0xffff,
- /* key: 0x56b0 */ 0xffff,
- /* key: 0x56b1 */ 0xb666,
- /* key: 0x56b2 */ 0xffff,
- /* key: 0x56b3 */ 0xb667,
- /* key: 0x56b4 */ 0x536e,
- /* key: 0x56b5 */ 0xffff,
- /* key: 0x56b6 */ 0x536d,
- /* key: 0x56b7 */ 0xb668,
- /* key: 0x56b8 */ 0xffff,
- /* key: 0x56b9 */ 0xffff,
- /* key: 0x56ba */ 0xffff,
- /* key: 0x56bb */ 0xffff,
- /* key: 0x56bc */ 0x5370,
- /* key: 0x56bd */ 0xffff,
- /* key: 0x56be */ 0xb669,
- /* key: 0x56bf */ 0xffff,
- /* key: 0x56c0 */ 0x5373,
- /* key: 0x56c1 */ 0x5371,
- /* key: 0x56c2 */ 0x536f,
- /* key: 0x56c3 */ 0x5372,
- /* key: 0x56c4 */ 0xffff,
- /* key: 0x56c5 */ 0xb66a,
- /* key: 0x56c6 */ 0xffff,
- /* key: 0x56c7 */ 0xffff,
- /* key: 0x56c8 */ 0x5374,
- /* key: 0x56c9 */ 0xb66b,
- /* key: 0x56ca */ 0xb66c,
- /* key: 0x56cb */ 0xb66d,
- /* key: 0x56cc */ 0xb670,
- /* key: 0x56cd */ 0xb671,
- /* key: 0x56ce */ 0x5375,
- /* key: 0x56cf */ 0xb66e,
- /* key: 0x56d0 */ 0xb66f,
- /* key: 0x56d1 */ 0x5376,
- /* key: 0x56d2 */ 0xffff,
- /* key: 0x56d3 */ 0x5377,
- /* key: 0x56d4 */ 0xffff,
- /* key: 0x56d5 */ 0xffff,
- /* key: 0x56d6 */ 0xffff,
- /* key: 0x56d7 */ 0x5378,
- /* key: 0x56d8 */ 0x5145,
- /* key: 0x56d9 */ 0xb672,
- /* key: 0x56da */ 0x3c7c,
- /* key: 0x56db */ 0x3b4d,
- /* key: 0x56dc */ 0xb673,
- /* key: 0x56dd */ 0xb674,
- /* key: 0x56de */ 0x3273,
- /* key: 0x56df */ 0xb675,
- /* key: 0x56e0 */ 0x3078,
- /* key: 0x56e1 */ 0xb676,
- /* key: 0x56e2 */ 0xffff,
- /* key: 0x56e3 */ 0x4344,
- /* key: 0x56e4 */ 0xb677,
- /* key: 0x56e5 */ 0xb678,
- /* key: 0x56e6 */ 0xb679,
- /* key: 0x56e7 */ 0xb67a,
- /* key: 0x56e8 */ 0xb67b,
- /* key: 0x56e9 */ 0xffff,
- /* key: 0x56ea */ 0xffff,
- /* key: 0x56eb */ 0xb67d,
- /* key: 0x56ec */ 0xffff,
- /* key: 0x56ed */ 0xb67e,
- /* key: 0x56ee */ 0x5379,
- /* key: 0x56ef */ 0xffff,
- /* key: 0x56f0 */ 0x3a24,
- /* key: 0x56f1 */ 0xb67c,
- /* key: 0x56f2 */ 0x304f,
- /* key: 0x56f3 */ 0x3f5e,
- /* key: 0x56f4 */ 0xffff,
- /* key: 0x56f5 */ 0xffff,
- /* key: 0x56f6 */ 0xb721,
- /* key: 0x56f7 */ 0xb722,
- /* key: 0x56f8 */ 0xffff,
- /* key: 0x56f9 */ 0x537a,
- /* key: 0x56fa */ 0x3847,
- /* key: 0x56fb */ 0xffff,
- /* key: 0x56fc */ 0xffff,
- /* key: 0x56fd */ 0x3971,
- /* key: 0x56fe */ 0xffff,
- /* key: 0x56ff */ 0x537c,
- /* branch: 0x570X */ 4048,
- /* branch: 0x571X */ 4064,
- /* branch: 0x572X */ 4080,
- /* branch: 0x573X */ 4096,
- /* branch: 0x574X */ 4112,
- /* branch: 0x575X */ 4128,
- /* branch: 0x576X */ 4144,
- /* branch: 0x577X */ 4160,
- /* branch: 0x578X */ 4176,
- /* branch: 0x579X */ 4192,
- /* branch: 0x57aX */ 4208,
- /* branch: 0x57bX */ 4224,
- /* branch: 0x57cX */ 4240,
- /* branch: 0x57dX */ 4256,
- /* branch: 0x57eX */ 4272,
- /* branch: 0x57fX */ 4288,
- /* key: 0x5700 */ 0x537b,
- /* key: 0x5701 */ 0xb723,
- /* key: 0x5702 */ 0xb724,
- /* key: 0x5703 */ 0x4a60,
- /* key: 0x5704 */ 0x537d,
- /* key: 0x5705 */ 0xffff,
- /* key: 0x5706 */ 0xffff,
- /* key: 0x5707 */ 0xb725,
- /* key: 0x5708 */ 0x5421,
- /* key: 0x5709 */ 0x537e,
- /* key: 0x570a */ 0xb726,
- /* key: 0x570b */ 0x5422,
- /* key: 0x570c */ 0xb727,
- /* key: 0x570d */ 0x5423,
- /* key: 0x570e */ 0xffff,
- /* key: 0x570f */ 0x3777,
- /* key: 0x5710 */ 0xffff,
- /* key: 0x5711 */ 0xb728,
- /* key: 0x5712 */ 0x3160,
- /* key: 0x5713 */ 0x5424,
- /* key: 0x5714 */ 0xffff,
- /* key: 0x5715 */ 0xb729,
- /* key: 0x5716 */ 0x5426,
- /* key: 0x5717 */ 0xffff,
- /* key: 0x5718 */ 0x5425,
- /* key: 0x5719 */ 0xffff,
- /* key: 0x571a */ 0xb72a,
- /* key: 0x571b */ 0xb72b,
- /* key: 0x571c */ 0x5428,
- /* key: 0x571d */ 0xb72c,
- /* key: 0x571e */ 0xffff,
- /* key: 0x571f */ 0x455a,
- /* key: 0x5720 */ 0xb72d,
- /* key: 0x5721 */ 0xffff,
- /* key: 0x5722 */ 0xb72e,
- /* key: 0x5723 */ 0xb72f,
- /* key: 0x5724 */ 0xb730,
- /* key: 0x5725 */ 0xb731,
- /* key: 0x5726 */ 0x5429,
- /* key: 0x5727 */ 0x3035,
- /* key: 0x5728 */ 0x3a5f,
- /* key: 0x5729 */ 0xb732,
- /* key: 0x572a */ 0xb733,
- /* key: 0x572b */ 0xffff,
- /* key: 0x572c */ 0xb734,
- /* key: 0x572d */ 0x373d,
- /* key: 0x572e */ 0xb735,
- /* key: 0x572f */ 0xb736,
- /* key: 0x5730 */ 0x434f,
- /* key: 0x5731 */ 0xffff,
- /* key: 0x5732 */ 0xffff,
- /* key: 0x5733 */ 0xb737,
- /* key: 0x5734 */ 0xb738,
- /* key: 0x5735 */ 0xffff,
- /* key: 0x5736 */ 0xffff,
- /* key: 0x5737 */ 0x542a,
- /* key: 0x5738 */ 0x542b,
- /* key: 0x5739 */ 0xffff,
- /* key: 0x573a */ 0xffff,
- /* key: 0x573b */ 0x542d,
- /* key: 0x573c */ 0xffff,
- /* key: 0x573d */ 0xb739,
- /* key: 0x573e */ 0xb73a,
- /* key: 0x573f */ 0xb73b,
- /* key: 0x5740 */ 0x542e,
- /* key: 0x5741 */ 0xffff,
- /* key: 0x5742 */ 0x3a64,
- /* key: 0x5743 */ 0xffff,
- /* key: 0x5744 */ 0xffff,
- /* key: 0x5745 */ 0xb73c,
- /* key: 0x5746 */ 0xb73d,
- /* key: 0x5747 */ 0x3651,
- /* key: 0x5748 */ 0xffff,
- /* key: 0x5749 */ 0xffff,
- /* key: 0x574a */ 0x4b37,
- /* key: 0x574b */ 0xffff,
- /* key: 0x574c */ 0xb73e,
- /* key: 0x574d */ 0xb73f,
- /* key: 0x574e */ 0x542c,
- /* key: 0x574f */ 0x542f,
- /* key: 0x5750 */ 0x3a41,
- /* key: 0x5751 */ 0x3923,
- /* key: 0x5752 */ 0xb740,
- /* key: 0x5753 */ 0xffff,
- /* key: 0x5754 */ 0xffff,
- /* key: 0x5755 */ 0xffff,
- /* key: 0x5756 */ 0xffff,
- /* key: 0x5757 */ 0xffff,
- /* key: 0x5758 */ 0xffff,
- /* key: 0x5759 */ 0xffff,
- /* key: 0x575a */ 0xffff,
- /* key: 0x575b */ 0xffff,
- /* key: 0x575c */ 0xffff,
- /* key: 0x575d */ 0xffff,
- /* key: 0x575e */ 0xffff,
- /* key: 0x575f */ 0xffff,
- /* key: 0x5760 */ 0xffff,
- /* key: 0x5761 */ 0x5433,
- /* key: 0x5762 */ 0xb741,
- /* key: 0x5763 */ 0xffff,
- /* key: 0x5764 */ 0x3a25,
- /* key: 0x5765 */ 0xb742,
- /* key: 0x5766 */ 0x4333,
- /* key: 0x5767 */ 0xb743,
- /* key: 0x5768 */ 0xb744,
- /* key: 0x5769 */ 0x5430,
- /* key: 0x576a */ 0x445a,
- /* key: 0x576b */ 0xb745,
- /* key: 0x576c */ 0xffff,
- /* key: 0x576d */ 0xb746,
- /* key: 0x576e */ 0xb747,
- /* key: 0x576f */ 0xb748,
- /* key: 0x5770 */ 0xb749,
- /* key: 0x5771 */ 0xb74a,
- /* key: 0x5772 */ 0xffff,
- /* key: 0x5773 */ 0xb74b,
- /* key: 0x5774 */ 0xb74c,
- /* key: 0x5775 */ 0xb74d,
- /* key: 0x5776 */ 0xffff,
- /* key: 0x5777 */ 0xb74e,
- /* key: 0x5778 */ 0xffff,
- /* key: 0x5779 */ 0xb74f,
- /* key: 0x577a */ 0xb750,
- /* key: 0x577b */ 0xb751,
- /* key: 0x577c */ 0xb752,
- /* key: 0x577d */ 0xffff,
- /* key: 0x577e */ 0xb753,
- /* key: 0x577f */ 0x5434,
- /* key: 0x5780 */ 0xffff,
- /* key: 0x5781 */ 0xb754,
- /* key: 0x5782 */ 0x3f62,
- /* key: 0x5783 */ 0xb755,
- /* key: 0x5784 */ 0xffff,
- /* key: 0x5785 */ 0xffff,
- /* key: 0x5786 */ 0xffff,
- /* key: 0x5787 */ 0xffff,
- /* key: 0x5788 */ 0x5432,
- /* key: 0x5789 */ 0x5435,
- /* key: 0x578a */ 0xffff,
- /* key: 0x578b */ 0x373f,
- /* key: 0x578c */ 0xb756,
- /* key: 0x578d */ 0xffff,
- /* key: 0x578e */ 0xffff,
- /* key: 0x578f */ 0xffff,
- /* key: 0x5790 */ 0xffff,
- /* key: 0x5791 */ 0xffff,
- /* key: 0x5792 */ 0xffff,
- /* key: 0x5793 */ 0x5436,
- /* key: 0x5794 */ 0xb757,
- /* key: 0x5795 */ 0xb760,
- /* key: 0x5796 */ 0xffff,
- /* key: 0x5797 */ 0xb758,
- /* key: 0x5798 */ 0xffff,
- /* key: 0x5799 */ 0xb759,
- /* key: 0x579a */ 0xb75a,
- /* key: 0x579b */ 0xffff,
- /* key: 0x579c */ 0xb75b,
- /* key: 0x579d */ 0xb75c,
- /* key: 0x579e */ 0xb75d,
- /* key: 0x579f */ 0xb75e,
- /* key: 0x57a0 */ 0x5437,
- /* key: 0x57a1 */ 0xb75f,
- /* key: 0x57a2 */ 0x3924,
- /* key: 0x57a3 */ 0x3340,
- /* key: 0x57a4 */ 0x5439,
- /* key: 0x57a5 */ 0xffff,
- /* key: 0x57a6 */ 0xffff,
- /* key: 0x57a7 */ 0xb761,
- /* key: 0x57a8 */ 0xb762,
- /* key: 0x57a9 */ 0xb763,
- /* key: 0x57aa */ 0x543a,
- /* key: 0x57ab */ 0xffff,
- /* key: 0x57ac */ 0xb764,
- /* key: 0x57ad */ 0xffff,
- /* key: 0x57ae */ 0xffff,
- /* key: 0x57af */ 0xffff,
- /* key: 0x57b0 */ 0x543b,
- /* key: 0x57b1 */ 0xffff,
- /* key: 0x57b2 */ 0xffff,
- /* key: 0x57b3 */ 0x5438,
- /* key: 0x57b4 */ 0xffff,
- /* key: 0x57b5 */ 0xffff,
- /* key: 0x57b6 */ 0xffff,
- /* key: 0x57b7 */ 0xffff,
- /* key: 0x57b8 */ 0xb765,
- /* key: 0x57b9 */ 0xffff,
- /* key: 0x57ba */ 0xffff,
- /* key: 0x57bb */ 0xffff,
- /* key: 0x57bc */ 0xffff,
- /* key: 0x57bd */ 0xb766,
- /* key: 0x57be */ 0xffff,
- /* key: 0x57bf */ 0xffff,
- /* key: 0x57c0 */ 0x5431,
- /* key: 0x57c1 */ 0xffff,
- /* key: 0x57c2 */ 0xffff,
- /* key: 0x57c3 */ 0x543c,
- /* key: 0x57c4 */ 0xffff,
- /* key: 0x57c5 */ 0xffff,
- /* key: 0x57c6 */ 0x543d,
- /* key: 0x57c7 */ 0xb767,
- /* key: 0x57c8 */ 0xb768,
- /* key: 0x57c9 */ 0xffff,
- /* key: 0x57ca */ 0xffff,
- /* key: 0x57cb */ 0x4b64,
- /* key: 0x57cc */ 0xb769,
- /* key: 0x57cd */ 0xffff,
- /* key: 0x57ce */ 0x3e6b,
- /* key: 0x57cf */ 0xb76a,
- /* key: 0x57d0 */ 0xffff,
- /* key: 0x57d1 */ 0xffff,
- /* key: 0x57d2 */ 0x543f,
- /* key: 0x57d3 */ 0x5440,
- /* key: 0x57d4 */ 0x543e,
- /* key: 0x57d5 */ 0xb76b,
- /* key: 0x57d6 */ 0x5442,
- /* key: 0x57d7 */ 0xffff,
- /* key: 0x57d8 */ 0xffff,
- /* key: 0x57d9 */ 0xffff,
- /* key: 0x57da */ 0xffff,
- /* key: 0x57db */ 0xffff,
- /* key: 0x57dc */ 0x4738,
- /* key: 0x57dd */ 0xb76c,
- /* key: 0x57de */ 0xb76d,
- /* key: 0x57df */ 0x3068,
- /* key: 0x57e0 */ 0x4956,
- /* key: 0x57e1 */ 0xb77e,
- /* key: 0x57e2 */ 0xffff,
- /* key: 0x57e3 */ 0x5443,
- /* key: 0x57e4 */ 0xb76e,
- /* key: 0x57e5 */ 0xffff,
- /* key: 0x57e6 */ 0xb76f,
- /* key: 0x57e7 */ 0xb770,
- /* key: 0x57e8 */ 0xffff,
- /* key: 0x57e9 */ 0xb771,
- /* key: 0x57ea */ 0xffff,
- /* key: 0x57eb */ 0xffff,
- /* key: 0x57ec */ 0xffff,
- /* key: 0x57ed */ 0xb772,
- /* key: 0x57ee */ 0xffff,
- /* key: 0x57ef */ 0xffff,
- /* key: 0x57f0 */ 0xb773,
- /* key: 0x57f1 */ 0xffff,
- /* key: 0x57f2 */ 0xffff,
- /* key: 0x57f3 */ 0xffff,
- /* key: 0x57f4 */ 0x3e7d,
- /* key: 0x57f5 */ 0xb774,
- /* key: 0x57f6 */ 0xb775,
- /* key: 0x57f7 */ 0x3c39,
- /* key: 0x57f8 */ 0xb776,
- /* key: 0x57f9 */ 0x475d,
- /* key: 0x57fa */ 0x3470,
- /* key: 0x57fb */ 0xffff,
- /* key: 0x57fc */ 0x3a6b,
- /* key: 0x57fd */ 0xb777,
- /* key: 0x57fe */ 0xb778,
- /* key: 0x57ff */ 0xb779,
- /* branch: 0x580X */ 4320,
- /* branch: 0x581X */ 4336,
- /* branch: 0x582X */ 4352,
- /* branch: 0x583X */ 4368,
- /* branch: 0x584X */ 4384,
- /* branch: 0x585X */ 4400,
- /* branch: 0x586X */ 4416,
- /* branch: 0x587X */ 4432,
- /* branch: 0x588X */ 4448,
- /* branch: 0x589X */ 4464,
- /* branch: 0x58aX */ 4480,
- /* branch: 0x58bX */ 4496,
- /* branch: 0x58cX */ 4512,
- /* branch: 0x58dX */ 4528,
- /* branch: 0x58eX */ 4544,
- /* branch: 0x58fX */ 4560,
- /* key: 0x5800 */ 0x4b59,
- /* key: 0x5801 */ 0xffff,
- /* key: 0x5802 */ 0x4632,
- /* key: 0x5803 */ 0xb77a,
- /* key: 0x5804 */ 0xb77b,
- /* key: 0x5805 */ 0x3778,
- /* key: 0x5806 */ 0x424f,
- /* key: 0x5807 */ 0xffff,
- /* key: 0x5808 */ 0xb77c,
- /* key: 0x5809 */ 0xb77d,
- /* key: 0x580a */ 0x5441,
- /* key: 0x580b */ 0x5444,
- /* key: 0x580c */ 0xb821,
- /* key: 0x580d */ 0xb822,
- /* key: 0x580e */ 0xffff,
- /* key: 0x580f */ 0xffff,
- /* key: 0x5810 */ 0xffff,
- /* key: 0x5811 */ 0xffff,
- /* key: 0x5812 */ 0xffff,
- /* key: 0x5813 */ 0xffff,
- /* key: 0x5814 */ 0xffff,
- /* key: 0x5815 */ 0x4244,
- /* key: 0x5816 */ 0xffff,
- /* key: 0x5817 */ 0xffff,
- /* key: 0x5818 */ 0xffff,
- /* key: 0x5819 */ 0x5445,
- /* key: 0x581a */ 0xffff,
- /* key: 0x581b */ 0xb823,
- /* key: 0x581c */ 0xffff,
- /* key: 0x581d */ 0x5446,
- /* key: 0x581e */ 0xb824,
- /* key: 0x581f */ 0xb825,
- /* key: 0x5820 */ 0xb826,
- /* key: 0x5821 */ 0x5448,
- /* key: 0x5822 */ 0xffff,
- /* key: 0x5823 */ 0xffff,
- /* key: 0x5824 */ 0x4469,
- /* key: 0x5825 */ 0xffff,
- /* key: 0x5826 */ 0xb827,
- /* key: 0x5827 */ 0xb828,
- /* key: 0x5828 */ 0xffff,
- /* key: 0x5829 */ 0xffff,
- /* key: 0x582a */ 0x342e,
- /* key: 0x582b */ 0xffff,
- /* key: 0x582c */ 0xffff,
- /* key: 0x582d */ 0xb829,
- /* key: 0x582e */ 0xffff,
- /* key: 0x582f */ 0x7421,
- /* key: 0x5830 */ 0x3161,
- /* key: 0x5831 */ 0x4a73,
- /* key: 0x5832 */ 0xb82a,
- /* key: 0x5833 */ 0xffff,
- /* key: 0x5834 */ 0x3e6c,
- /* key: 0x5835 */ 0x4548,
- /* key: 0x5836 */ 0xffff,
- /* key: 0x5837 */ 0xffff,
- /* key: 0x5838 */ 0xffff,
- /* key: 0x5839 */ 0xb82b,
- /* key: 0x583a */ 0x3a66,
- /* key: 0x583b */ 0xffff,
- /* key: 0x583c */ 0xffff,
- /* key: 0x583d */ 0x544e,
- /* key: 0x583e */ 0xffff,
- /* key: 0x583f */ 0xb82c,
- /* key: 0x5840 */ 0x4a3d,
- /* key: 0x5841 */ 0x4e5d,
- /* key: 0x5842 */ 0xffff,
- /* key: 0x5843 */ 0xffff,
- /* key: 0x5844 */ 0xffff,
- /* key: 0x5845 */ 0xffff,
- /* key: 0x5846 */ 0xffff,
- /* key: 0x5847 */ 0xffff,
- /* key: 0x5848 */ 0xffff,
- /* key: 0x5849 */ 0xb82d,
- /* key: 0x584a */ 0x3274,
- /* key: 0x584b */ 0x544a,
- /* key: 0x584c */ 0xb82e,
- /* key: 0x584d */ 0xb82f,
- /* key: 0x584e */ 0xffff,
- /* key: 0x584f */ 0xb830,
- /* key: 0x5850 */ 0xb831,
- /* key: 0x5851 */ 0x413a,
- /* key: 0x5852 */ 0x544d,
- /* key: 0x5853 */ 0xffff,
- /* key: 0x5854 */ 0x4563,
- /* key: 0x5855 */ 0xb832,
- /* key: 0x5856 */ 0xffff,
- /* key: 0x5857 */ 0x4549,
- /* key: 0x5858 */ 0x4564,
- /* key: 0x5859 */ 0x4839,
- /* key: 0x585a */ 0x444d,
- /* key: 0x585b */ 0xffff,
- /* key: 0x585c */ 0xffff,
- /* key: 0x585d */ 0xffff,
- /* key: 0x585e */ 0x3a49,
- /* key: 0x585f */ 0xb833,
- /* key: 0x5860 */ 0xffff,
- /* key: 0x5861 */ 0xb834,
- /* key: 0x5862 */ 0x5449,
- /* key: 0x5863 */ 0xffff,
- /* key: 0x5864 */ 0xb835,
- /* key: 0x5865 */ 0xffff,
- /* key: 0x5866 */ 0xffff,
- /* key: 0x5867 */ 0xb836,
- /* key: 0x5868 */ 0xb837,
- /* key: 0x5869 */ 0x3176,
- /* key: 0x586a */ 0xffff,
- /* key: 0x586b */ 0x4536,
- /* key: 0x586c */ 0xffff,
- /* key: 0x586d */ 0xffff,
- /* key: 0x586e */ 0xffff,
- /* key: 0x586f */ 0xffff,
- /* key: 0x5870 */ 0x544b,
- /* key: 0x5871 */ 0xffff,
- /* key: 0x5872 */ 0x5447,
- /* key: 0x5873 */ 0xffff,
- /* key: 0x5874 */ 0xffff,
- /* key: 0x5875 */ 0x3f50,
- /* key: 0x5876 */ 0xffff,
- /* key: 0x5877 */ 0xffff,
- /* key: 0x5878 */ 0xb838,
- /* key: 0x5879 */ 0x544f,
- /* key: 0x587a */ 0xffff,
- /* key: 0x587b */ 0xffff,
- /* key: 0x587c */ 0xb839,
- /* key: 0x587d */ 0xffff,
- /* key: 0x587e */ 0x3d4e,
- /* key: 0x587f */ 0xb83a,
- /* key: 0x5880 */ 0xb83b,
- /* key: 0x5881 */ 0xb83c,
- /* key: 0x5882 */ 0xffff,
- /* key: 0x5883 */ 0x362d,
- /* key: 0x5884 */ 0xffff,
- /* key: 0x5885 */ 0x5450,
- /* key: 0x5886 */ 0xffff,
- /* key: 0x5887 */ 0xb83d,
- /* key: 0x5888 */ 0xb83e,
- /* key: 0x5889 */ 0xb83f,
- /* key: 0x588a */ 0xb840,
- /* key: 0x588b */ 0xffff,
- /* key: 0x588c */ 0xb841,
- /* key: 0x588d */ 0xb842,
- /* key: 0x588e */ 0xffff,
- /* key: 0x588f */ 0xb843,
- /* key: 0x5890 */ 0xb844,
- /* key: 0x5891 */ 0xffff,
- /* key: 0x5892 */ 0xffff,
- /* key: 0x5893 */ 0x4a68,
- /* key: 0x5894 */ 0xb845,
- /* key: 0x5895 */ 0xffff,
- /* key: 0x5896 */ 0xb846,
- /* key: 0x5897 */ 0x417d,
- /* key: 0x5898 */ 0xffff,
- /* key: 0x5899 */ 0xffff,
- /* key: 0x589a */ 0xffff,
- /* key: 0x589b */ 0xffff,
- /* key: 0x589c */ 0x4446,
- /* key: 0x589d */ 0xb847,
- /* key: 0x589e */ 0xffff,
- /* key: 0x589f */ 0x5452,
- /* key: 0x58a0 */ 0xb848,
- /* key: 0x58a1 */ 0xb849,
- /* key: 0x58a2 */ 0xb84a,
- /* key: 0x58a3 */ 0xffff,
- /* key: 0x58a4 */ 0xffff,
- /* key: 0x58a5 */ 0xffff,
- /* key: 0x58a6 */ 0xb84b,
- /* key: 0x58a7 */ 0xffff,
- /* key: 0x58a8 */ 0x4b4f,
- /* key: 0x58a9 */ 0xb84c,
- /* key: 0x58aa */ 0xffff,
- /* key: 0x58ab */ 0x5453,
- /* key: 0x58ac */ 0xffff,
- /* key: 0x58ad */ 0xffff,
- /* key: 0x58ae */ 0x5458,
- /* key: 0x58af */ 0xffff,
- /* key: 0x58b0 */ 0xffff,
- /* key: 0x58b1 */ 0xb84d,
- /* key: 0x58b2 */ 0xb84e,
- /* key: 0x58b3 */ 0x4a2f,
- /* key: 0x58b4 */ 0xffff,
- /* key: 0x58b5 */ 0xffff,
- /* key: 0x58b6 */ 0xffff,
- /* key: 0x58b7 */ 0xffff,
- /* key: 0x58b8 */ 0x5457,
- /* key: 0x58b9 */ 0x5451,
- /* key: 0x58ba */ 0x5454,
- /* key: 0x58bb */ 0x5456,
- /* key: 0x58bc */ 0xb850,
- /* key: 0x58bd */ 0xffff,
- /* key: 0x58be */ 0x3a26,
- /* key: 0x58bf */ 0xffff,
- /* key: 0x58c0 */ 0xffff,
- /* key: 0x58c1 */ 0x4a49,
- /* key: 0x58c2 */ 0xb851,
- /* key: 0x58c3 */ 0xffff,
- /* key: 0x58c4 */ 0xb84f,
- /* key: 0x58c5 */ 0x5459,
- /* key: 0x58c6 */ 0xffff,
- /* key: 0x58c7 */ 0x4345,
- /* key: 0x58c8 */ 0xb852,
- /* key: 0x58c9 */ 0xffff,
- /* key: 0x58ca */ 0x3275,
- /* key: 0x58cb */ 0xffff,
- /* key: 0x58cc */ 0x3e6d,
- /* key: 0x58cd */ 0xb853,
- /* key: 0x58ce */ 0xb854,
- /* key: 0x58cf */ 0xffff,
- /* key: 0x58d0 */ 0xb855,
- /* key: 0x58d1 */ 0x545b,
- /* key: 0x58d2 */ 0xb856,
- /* key: 0x58d3 */ 0x545a,
- /* key: 0x58d4 */ 0xb857,
- /* key: 0x58d5 */ 0x3968,
- /* key: 0x58d6 */ 0xb858,
- /* key: 0x58d7 */ 0x545c,
- /* key: 0x58d8 */ 0x545e,
- /* key: 0x58d9 */ 0x545d,
- /* key: 0x58da */ 0xb859,
- /* key: 0x58db */ 0xffff,
- /* key: 0x58dc */ 0x5460,
- /* key: 0x58dd */ 0xb85a,
- /* key: 0x58de */ 0x5455,
- /* key: 0x58df */ 0x5462,
- /* key: 0x58e0 */ 0xffff,
- /* key: 0x58e1 */ 0xb85b,
- /* key: 0x58e2 */ 0xb85c,
- /* key: 0x58e3 */ 0xffff,
- /* key: 0x58e4 */ 0x5461,
- /* key: 0x58e5 */ 0x545f,
- /* key: 0x58e6 */ 0xffff,
- /* key: 0x58e7 */ 0xffff,
- /* key: 0x58e8 */ 0xffff,
- /* key: 0x58e9 */ 0xb85d,
- /* key: 0x58ea */ 0xffff,
- /* key: 0x58eb */ 0x3b4e,
- /* key: 0x58ec */ 0x3f51,
- /* key: 0x58ed */ 0xffff,
- /* key: 0x58ee */ 0x4154,
- /* key: 0x58ef */ 0x5463,
- /* key: 0x58f0 */ 0x403c,
- /* key: 0x58f1 */ 0x306d,
- /* key: 0x58f2 */ 0x4764,
- /* key: 0x58f3 */ 0xb85e,
- /* key: 0x58f4 */ 0xffff,
- /* key: 0x58f5 */ 0xffff,
- /* key: 0x58f6 */ 0xffff,
- /* key: 0x58f7 */ 0x445b,
- /* key: 0x58f8 */ 0xffff,
- /* key: 0x58f9 */ 0x5465,
- /* key: 0x58fa */ 0x5464,
- /* key: 0x58fb */ 0x5466,
- /* key: 0x58fc */ 0x5467,
- /* key: 0x58fd */ 0x5468,
- /* key: 0x58fe */ 0xffff,
- /* key: 0x58ff */ 0xffff,
- /* branch: 0x590X */ 4592,
- /* branch: 0x591X */ 4608,
- /* branch: 0x592X */ 4624,
- /* branch: 0x593X */ 4640,
- /* branch: 0x594X */ 4656,
- /* branch: 0x595X */ 4672,
- /* branch: 0x596X */ 4688,
- /* branch: 0x597X */ 4704,
- /* branch: 0x598X */ 4720,
- /* branch: 0x599X */ 4736,
- /* branch: 0x59aX */ 4752,
- /* branch: 0x59bX */ 4768,
- /* branch: 0x59cX */ 4784,
- /* branch: 0x59dX */ 4800,
- /* branch: 0x59eX */ 4816,
- /* branch: 0x59fX */ 4832,
- /* key: 0x5900 */ 0xffff,
- /* key: 0x5901 */ 0xffff,
- /* key: 0x5902 */ 0x5469,
- /* key: 0x5903 */ 0xffff,
- /* key: 0x5904 */ 0xffff,
- /* key: 0x5905 */ 0xb85f,
- /* key: 0x5906 */ 0xb860,
- /* key: 0x5907 */ 0xffff,
- /* key: 0x5908 */ 0xffff,
- /* key: 0x5909 */ 0x4a51,
- /* key: 0x590a */ 0x546a,
- /* key: 0x590b */ 0xb861,
- /* key: 0x590c */ 0xb862,
- /* key: 0x590d */ 0xffff,
- /* key: 0x590e */ 0xffff,
- /* key: 0x590f */ 0x3246,
- /* key: 0x5910 */ 0x546b,
- /* key: 0x5911 */ 0xffff,
- /* key: 0x5912 */ 0xb863,
- /* key: 0x5913 */ 0xb864,
- /* key: 0x5914 */ 0xb865,
- /* key: 0x5915 */ 0x4d3c,
- /* key: 0x5916 */ 0x3330,
- /* key: 0x5917 */ 0xffff,
- /* key: 0x5918 */ 0x5249,
- /* key: 0x5919 */ 0x3d48,
- /* key: 0x591a */ 0x423f,
- /* key: 0x591b */ 0x546c,
- /* key: 0x591c */ 0x4c6b,
- /* key: 0x591d */ 0xb867,
- /* key: 0x591e */ 0xffff,
- /* key: 0x591f */ 0xffff,
- /* key: 0x5920 */ 0xffff,
- /* key: 0x5921 */ 0xb868,
- /* key: 0x5922 */ 0x4c34,
- /* key: 0x5923 */ 0xb869,
- /* key: 0x5924 */ 0xb86a,
- /* key: 0x5925 */ 0x546e,
- /* key: 0x5926 */ 0xffff,
- /* key: 0x5927 */ 0x4267,
- /* key: 0x5928 */ 0xb86b,
- /* key: 0x5929 */ 0x4537,
- /* key: 0x592a */ 0x4240,
- /* key: 0x592b */ 0x4957,
- /* key: 0x592c */ 0x546f,
- /* key: 0x592d */ 0x5470,
- /* key: 0x592e */ 0x317b,
- /* key: 0x592f */ 0xb86c,
- /* key: 0x5930 */ 0xb86d,
- /* key: 0x5931 */ 0x3c3a,
- /* key: 0x5932 */ 0x5471,
- /* key: 0x5933 */ 0xb86e,
- /* key: 0x5934 */ 0xffff,
- /* key: 0x5935 */ 0xb86f,
- /* key: 0x5936 */ 0xb870,
- /* key: 0x5937 */ 0x3050,
- /* key: 0x5938 */ 0x5472,
- /* key: 0x5939 */ 0xffff,
- /* key: 0x593a */ 0xffff,
- /* key: 0x593b */ 0xffff,
- /* key: 0x593c */ 0xffff,
- /* key: 0x593d */ 0xffff,
- /* key: 0x593e */ 0x5473,
- /* key: 0x593f */ 0xb871,
- /* key: 0x5940 */ 0xffff,
- /* key: 0x5941 */ 0xffff,
- /* key: 0x5942 */ 0xffff,
- /* key: 0x5943 */ 0xb872,
- /* key: 0x5944 */ 0x3162,
- /* key: 0x5945 */ 0xffff,
- /* key: 0x5946 */ 0xb873,
- /* key: 0x5947 */ 0x3471,
- /* key: 0x5948 */ 0x4660,
- /* key: 0x5949 */ 0x4a74,
- /* key: 0x594a */ 0xffff,
- /* key: 0x594b */ 0xffff,
- /* key: 0x594c */ 0xffff,
- /* key: 0x594d */ 0xffff,
- /* key: 0x594e */ 0x5477,
- /* key: 0x594f */ 0x4155,
- /* key: 0x5950 */ 0x5476,
- /* key: 0x5951 */ 0x3740,
- /* key: 0x5952 */ 0xb874,
- /* key: 0x5953 */ 0xb875,
- /* key: 0x5954 */ 0x4b5b,
- /* key: 0x5955 */ 0x5475,
- /* key: 0x5956 */ 0xffff,
- /* key: 0x5957 */ 0x4565,
- /* key: 0x5958 */ 0x5479,
- /* key: 0x5959 */ 0xb876,
- /* key: 0x595a */ 0x5478,
- /* key: 0x595b */ 0xb877,
- /* key: 0x595c */ 0xffff,
- /* key: 0x595d */ 0xb878,
- /* key: 0x595e */ 0xb879,
- /* key: 0x595f */ 0xb87a,
- /* key: 0x5960 */ 0x547b,
- /* key: 0x5961 */ 0xb87b,
- /* key: 0x5962 */ 0x547a,
- /* key: 0x5963 */ 0xb87c,
- /* key: 0x5964 */ 0xffff,
- /* key: 0x5965 */ 0x317c,
- /* key: 0x5966 */ 0xffff,
- /* key: 0x5967 */ 0x547c,
- /* key: 0x5968 */ 0x3e29,
- /* key: 0x5969 */ 0x547e,
- /* key: 0x596a */ 0x4325,
- /* key: 0x596b */ 0xb87d,
- /* key: 0x596c */ 0x547d,
- /* key: 0x596d */ 0xb87e,
- /* key: 0x596e */ 0x4a33,
- /* key: 0x596f */ 0xb921,
- /* key: 0x5970 */ 0xffff,
- /* key: 0x5971 */ 0xffff,
- /* key: 0x5972 */ 0xb922,
- /* key: 0x5973 */ 0x3d77,
- /* key: 0x5974 */ 0x455b,
- /* key: 0x5975 */ 0xb923,
- /* key: 0x5976 */ 0xb924,
- /* key: 0x5977 */ 0xffff,
- /* key: 0x5978 */ 0x5521,
- /* key: 0x5979 */ 0xb925,
- /* key: 0x597a */ 0xffff,
- /* key: 0x597b */ 0xb926,
- /* key: 0x597c */ 0xb927,
- /* key: 0x597d */ 0x3925,
- /* key: 0x597e */ 0xffff,
- /* key: 0x597f */ 0xffff,
- /* key: 0x5980 */ 0xffff,
- /* key: 0x5981 */ 0x5522,
- /* key: 0x5982 */ 0x4721,
- /* key: 0x5983 */ 0x485e,
- /* key: 0x5984 */ 0x4c51,
- /* key: 0x5985 */ 0xffff,
- /* key: 0x5986 */ 0xffff,
- /* key: 0x5987 */ 0xffff,
- /* key: 0x5988 */ 0xffff,
- /* key: 0x5989 */ 0xffff,
- /* key: 0x598a */ 0x4725,
- /* key: 0x598b */ 0xb928,
- /* key: 0x598c */ 0xb929,
- /* key: 0x598d */ 0x552b,
- /* key: 0x598e */ 0xb92a,
- /* key: 0x598f */ 0xffff,
- /* key: 0x5990 */ 0xffff,
- /* key: 0x5991 */ 0xffff,
- /* key: 0x5992 */ 0xb92b,
- /* key: 0x5993 */ 0x3538,
- /* key: 0x5994 */ 0xffff,
- /* key: 0x5995 */ 0xb92c,
- /* key: 0x5996 */ 0x4d45,
- /* key: 0x5997 */ 0xb92d,
- /* key: 0x5998 */ 0xffff,
- /* key: 0x5999 */ 0x4c2f,
- /* key: 0x599a */ 0xffff,
- /* key: 0x599b */ 0x562c,
- /* key: 0x599c */ 0xffff,
- /* key: 0x599d */ 0x5523,
- /* key: 0x599e */ 0xffff,
- /* key: 0x599f */ 0xb92e,
- /* key: 0x59a0 */ 0xffff,
- /* key: 0x59a1 */ 0xffff,
- /* key: 0x59a2 */ 0xffff,
- /* key: 0x59a3 */ 0x5526,
- /* key: 0x59a4 */ 0xb92f,
- /* key: 0x59a5 */ 0x4245,
- /* key: 0x59a6 */ 0xffff,
- /* key: 0x59a7 */ 0xb930,
- /* key: 0x59a8 */ 0x4b38,
- /* key: 0x59a9 */ 0xffff,
- /* key: 0x59aa */ 0xffff,
- /* key: 0x59ab */ 0xffff,
- /* key: 0x59ac */ 0x454a,
- /* key: 0x59ad */ 0xb931,
- /* key: 0x59ae */ 0xb932,
- /* key: 0x59af */ 0xb933,
- /* key: 0x59b0 */ 0xb934,
- /* key: 0x59b1 */ 0xffff,
- /* key: 0x59b2 */ 0x5527,
- /* key: 0x59b3 */ 0xb935,
- /* key: 0x59b4 */ 0xffff,
- /* key: 0x59b5 */ 0xffff,
- /* key: 0x59b6 */ 0xffff,
- /* key: 0x59b7 */ 0xb936,
- /* key: 0x59b8 */ 0xffff,
- /* key: 0x59b9 */ 0x4b65,
- /* key: 0x59ba */ 0xb937,
- /* key: 0x59bb */ 0x3a4a,
- /* key: 0x59bc */ 0xb938,
- /* key: 0x59bd */ 0xffff,
- /* key: 0x59be */ 0x3e2a,
- /* key: 0x59bf */ 0xffff,
- /* key: 0x59c0 */ 0xffff,
- /* key: 0x59c1 */ 0xb939,
- /* key: 0x59c2 */ 0xffff,
- /* key: 0x59c3 */ 0xb93a,
- /* key: 0x59c4 */ 0xb93b,
- /* key: 0x59c5 */ 0xffff,
- /* key: 0x59c6 */ 0x5528,
- /* key: 0x59c7 */ 0xffff,
- /* key: 0x59c8 */ 0xb93c,
- /* key: 0x59c9 */ 0x3b50,
- /* key: 0x59ca */ 0xb93d,
- /* key: 0x59cb */ 0x3b4f,
- /* key: 0x59cc */ 0xffff,
- /* key: 0x59cd */ 0xb93e,
- /* key: 0x59ce */ 0xffff,
- /* key: 0x59cf */ 0xffff,
- /* key: 0x59d0 */ 0x3039,
- /* key: 0x59d1 */ 0x3848,
- /* key: 0x59d2 */ 0xb93f,
- /* key: 0x59d3 */ 0x402b,
- /* key: 0x59d4 */ 0x3051,
- /* key: 0x59d5 */ 0xffff,
- /* key: 0x59d6 */ 0xffff,
- /* key: 0x59d7 */ 0xffff,
- /* key: 0x59d8 */ 0xffff,
- /* key: 0x59d9 */ 0x552c,
- /* key: 0x59da */ 0x552d,
- /* key: 0x59db */ 0xffff,
- /* key: 0x59dc */ 0x552a,
- /* key: 0x59dd */ 0xb940,
- /* key: 0x59de */ 0xb941,
- /* key: 0x59df */ 0xb942,
- /* key: 0x59e0 */ 0xffff,
- /* key: 0x59e1 */ 0xffff,
- /* key: 0x59e2 */ 0xffff,
- /* key: 0x59e3 */ 0xb943,
- /* key: 0x59e4 */ 0xb944,
- /* key: 0x59e5 */ 0x3138,
- /* key: 0x59e6 */ 0x342f,
- /* key: 0x59e7 */ 0xb945,
- /* key: 0x59e8 */ 0x5529,
- /* key: 0x59e9 */ 0xffff,
- /* key: 0x59ea */ 0x4c45,
- /* key: 0x59eb */ 0x4931,
- /* key: 0x59ec */ 0xffff,
- /* key: 0x59ed */ 0xffff,
- /* key: 0x59ee */ 0xb946,
- /* key: 0x59ef */ 0xb947,
- /* key: 0x59f0 */ 0xffff,
- /* key: 0x59f1 */ 0xb948,
- /* key: 0x59f2 */ 0xb949,
- /* key: 0x59f3 */ 0xffff,
- /* key: 0x59f4 */ 0xb94a,
- /* key: 0x59f5 */ 0xffff,
- /* key: 0x59f6 */ 0x3028,
- /* key: 0x59f7 */ 0xb94b,
- /* key: 0x59f8 */ 0xffff,
- /* key: 0x59f9 */ 0xffff,
- /* key: 0x59fa */ 0xffff,
- /* key: 0x59fb */ 0x3079,
- /* key: 0x59fc */ 0xffff,
- /* key: 0x59fd */ 0xffff,
- /* key: 0x59fe */ 0xffff,
- /* key: 0x59ff */ 0x3b51,
- /* branch: 0x5a0X */ 4864,
- /* branch: 0x5a1X */ 4880,
- /* branch: 0x5a2X */ 4896,
- /* branch: 0x5a3X */ 4912,
- /* branch: 0x5a4X */ 4928,
- /* branch: 0x5a5X */ 4944,
- /* branch: 0x5a6X */ 4960,
- /* branch: 0x5a7X */ 4976,
- /* branch: 0x5a8X */ 4992,
- /* branch: 0x5a9X */ 5008,
- /* branch: 0x5aaX */ 5024,
- /* branch: 0x5abX */ 5040,
- /* branch: 0x5acX */ 5056,
- /* branch: 0x5adX */ 5072,
- /* branch: 0x5aeX */ 5088,
- /* branch: 0x5afX */ 5104,
- /* key: 0x5a00 */ 0xb94c,
- /* key: 0x5a01 */ 0x3052,
- /* key: 0x5a02 */ 0xffff,
- /* key: 0x5a03 */ 0x3023,
- /* key: 0x5a04 */ 0xb94d,
- /* key: 0x5a05 */ 0xffff,
- /* key: 0x5a06 */ 0xffff,
- /* key: 0x5a07 */ 0xffff,
- /* key: 0x5a08 */ 0xffff,
- /* key: 0x5a09 */ 0x5532,
- /* key: 0x5a0a */ 0xffff,
- /* key: 0x5a0b */ 0xffff,
- /* key: 0x5a0c */ 0xb94e,
- /* key: 0x5a0d */ 0xb94f,
- /* key: 0x5a0e */ 0xb950,
- /* key: 0x5a0f */ 0xffff,
- /* key: 0x5a10 */ 0xffff,
- /* key: 0x5a11 */ 0x5530,
- /* key: 0x5a12 */ 0xb951,
- /* key: 0x5a13 */ 0xb952,
- /* key: 0x5a14 */ 0xffff,
- /* key: 0x5a15 */ 0xffff,
- /* key: 0x5a16 */ 0xffff,
- /* key: 0x5a17 */ 0xffff,
- /* key: 0x5a18 */ 0x4c3c,
- /* key: 0x5a19 */ 0xffff,
- /* key: 0x5a1a */ 0x5533,
- /* key: 0x5a1b */ 0xffff,
- /* key: 0x5a1c */ 0x5531,
- /* key: 0x5a1d */ 0xffff,
- /* key: 0x5a1e */ 0xb953,
- /* key: 0x5a1f */ 0x552f,
- /* key: 0x5a20 */ 0x3f31,
- /* key: 0x5a21 */ 0xffff,
- /* key: 0x5a22 */ 0xffff,
- /* key: 0x5a23 */ 0xb954,
- /* key: 0x5a24 */ 0xb955,
- /* key: 0x5a25 */ 0x552e,
- /* key: 0x5a26 */ 0xffff,
- /* key: 0x5a27 */ 0xb956,
- /* key: 0x5a28 */ 0xb957,
- /* key: 0x5a29 */ 0x4a5a,
- /* key: 0x5a2a */ 0xb958,
- /* key: 0x5a2b */ 0xffff,
- /* key: 0x5a2c */ 0xffff,
- /* key: 0x5a2d */ 0xb959,
- /* key: 0x5a2e */ 0xffff,
- /* key: 0x5a2f */ 0x3864,
- /* key: 0x5a30 */ 0xb95a,
- /* key: 0x5a31 */ 0xffff,
- /* key: 0x5a32 */ 0xffff,
- /* key: 0x5a33 */ 0xffff,
- /* key: 0x5a34 */ 0xffff,
- /* key: 0x5a35 */ 0x5537,
- /* key: 0x5a36 */ 0x5538,
- /* key: 0x5a37 */ 0xffff,
- /* key: 0x5a38 */ 0xffff,
- /* key: 0x5a39 */ 0xffff,
- /* key: 0x5a3a */ 0xffff,
- /* key: 0x5a3b */ 0xffff,
- /* key: 0x5a3c */ 0x3e2b,
- /* key: 0x5a3d */ 0xffff,
- /* key: 0x5a3e */ 0xffff,
- /* key: 0x5a3f */ 0xffff,
- /* key: 0x5a40 */ 0x5534,
- /* key: 0x5a41 */ 0x4f2c,
- /* key: 0x5a42 */ 0xffff,
- /* key: 0x5a43 */ 0xffff,
- /* key: 0x5a44 */ 0xb95b,
- /* key: 0x5a45 */ 0xb95c,
- /* key: 0x5a46 */ 0x474c,
- /* key: 0x5a47 */ 0xb95d,
- /* key: 0x5a48 */ 0xb95e,
- /* key: 0x5a49 */ 0x5536,
- /* key: 0x5a4a */ 0xffff,
- /* key: 0x5a4b */ 0xffff,
- /* key: 0x5a4c */ 0xb95f,
- /* key: 0x5a4d */ 0xffff,
- /* key: 0x5a4e */ 0xffff,
- /* key: 0x5a4f */ 0xffff,
- /* key: 0x5a50 */ 0xb960,
- /* key: 0x5a51 */ 0xffff,
- /* key: 0x5a52 */ 0xffff,
- /* key: 0x5a53 */ 0xffff,
- /* key: 0x5a54 */ 0xffff,
- /* key: 0x5a55 */ 0xb961,
- /* key: 0x5a56 */ 0xffff,
- /* key: 0x5a57 */ 0xffff,
- /* key: 0x5a58 */ 0xffff,
- /* key: 0x5a59 */ 0xffff,
- /* key: 0x5a5a */ 0x3a27,
- /* key: 0x5a5b */ 0xffff,
- /* key: 0x5a5c */ 0xffff,
- /* key: 0x5a5d */ 0xffff,
- /* key: 0x5a5e */ 0xb962,
- /* key: 0x5a5f */ 0xffff,
- /* key: 0x5a60 */ 0xffff,
- /* key: 0x5a61 */ 0xffff,
- /* key: 0x5a62 */ 0x5539,
- /* key: 0x5a63 */ 0xb963,
- /* key: 0x5a64 */ 0xffff,
- /* key: 0x5a65 */ 0xb964,
- /* key: 0x5a66 */ 0x4958,
- /* key: 0x5a67 */ 0xb965,
- /* key: 0x5a68 */ 0xffff,
- /* key: 0x5a69 */ 0xffff,
- /* key: 0x5a6a */ 0x553a,
- /* key: 0x5a6b */ 0xffff,
- /* key: 0x5a6c */ 0x5535,
- /* key: 0x5a6d */ 0xb966,
- /* key: 0x5a6e */ 0xffff,
- /* key: 0x5a6f */ 0xffff,
- /* key: 0x5a70 */ 0xffff,
- /* key: 0x5a71 */ 0xffff,
- /* key: 0x5a72 */ 0xffff,
- /* key: 0x5a73 */ 0xffff,
- /* key: 0x5a74 */ 0xffff,
- /* key: 0x5a75 */ 0xffff,
- /* key: 0x5a76 */ 0xffff,
- /* key: 0x5a77 */ 0xb967,
- /* key: 0x5a78 */ 0xffff,
- /* key: 0x5a79 */ 0xffff,
- /* key: 0x5a7a */ 0xb968,
- /* key: 0x5a7b */ 0xb969,
- /* key: 0x5a7c */ 0xffff,
- /* key: 0x5a7d */ 0xffff,
- /* key: 0x5a7e */ 0xb96a,
- /* key: 0x5a7f */ 0x4c3b,
- /* key: 0x5a80 */ 0xffff,
- /* key: 0x5a81 */ 0xffff,
- /* key: 0x5a82 */ 0xffff,
- /* key: 0x5a83 */ 0xffff,
- /* key: 0x5a84 */ 0xffff,
- /* key: 0x5a85 */ 0xffff,
- /* key: 0x5a86 */ 0xffff,
- /* key: 0x5a87 */ 0xffff,
- /* key: 0x5a88 */ 0xffff,
- /* key: 0x5a89 */ 0xffff,
- /* key: 0x5a8a */ 0xffff,
- /* key: 0x5a8b */ 0xb96b,
- /* key: 0x5a8c */ 0xffff,
- /* key: 0x5a8d */ 0xffff,
- /* key: 0x5a8e */ 0xffff,
- /* key: 0x5a8f */ 0xffff,
- /* key: 0x5a90 */ 0xb96c,
- /* key: 0x5a91 */ 0xffff,
- /* key: 0x5a92 */ 0x475e,
- /* key: 0x5a93 */ 0xb96d,
- /* key: 0x5a94 */ 0xffff,
- /* key: 0x5a95 */ 0xffff,
- /* key: 0x5a96 */ 0xb96e,
- /* key: 0x5a97 */ 0xffff,
- /* key: 0x5a98 */ 0xffff,
- /* key: 0x5a99 */ 0xb96f,
- /* key: 0x5a9a */ 0x553b,
- /* key: 0x5a9b */ 0x4932,
- /* key: 0x5a9c */ 0xb970,
- /* key: 0x5a9d */ 0xffff,
- /* key: 0x5a9e */ 0xb971,
- /* key: 0x5a9f */ 0xb972,
- /* key: 0x5aa0 */ 0xb973,
- /* key: 0x5aa1 */ 0xffff,
- /* key: 0x5aa2 */ 0xb974,
- /* key: 0x5aa3 */ 0xffff,
- /* key: 0x5aa4 */ 0xffff,
- /* key: 0x5aa5 */ 0xffff,
- /* key: 0x5aa6 */ 0xffff,
- /* key: 0x5aa7 */ 0xb975,
- /* key: 0x5aa8 */ 0xffff,
- /* key: 0x5aa9 */ 0xffff,
- /* key: 0x5aaa */ 0xffff,
- /* key: 0x5aab */ 0xffff,
- /* key: 0x5aac */ 0xb976,
- /* key: 0x5aad */ 0xffff,
- /* key: 0x5aae */ 0xffff,
- /* key: 0x5aaf */ 0xffff,
- /* key: 0x5ab0 */ 0xffff,
- /* key: 0x5ab1 */ 0xb977,
- /* key: 0x5ab2 */ 0xb978,
- /* key: 0x5ab3 */ 0xb979,
- /* key: 0x5ab4 */ 0xffff,
- /* key: 0x5ab5 */ 0xb97a,
- /* key: 0x5ab6 */ 0xffff,
- /* key: 0x5ab7 */ 0xffff,
- /* key: 0x5ab8 */ 0xb97b,
- /* key: 0x5ab9 */ 0xffff,
- /* key: 0x5aba */ 0xb97c,
- /* key: 0x5abb */ 0xb97d,
- /* key: 0x5abc */ 0x553c,
- /* key: 0x5abd */ 0x5540,
- /* key: 0x5abe */ 0x553d,
- /* key: 0x5abf */ 0xb97e,
- /* key: 0x5ac0 */ 0xffff,
- /* key: 0x5ac1 */ 0x3247,
- /* key: 0x5ac2 */ 0x553f,
- /* key: 0x5ac3 */ 0xffff,
- /* key: 0x5ac4 */ 0xba21,
- /* key: 0x5ac5 */ 0xffff,
- /* key: 0x5ac6 */ 0xba22,
- /* key: 0x5ac7 */ 0xffff,
- /* key: 0x5ac8 */ 0xba23,
- /* key: 0x5ac9 */ 0x3c3b,
- /* key: 0x5aca */ 0xffff,
- /* key: 0x5acb */ 0x553e,
- /* key: 0x5acc */ 0x3779,
- /* key: 0x5acd */ 0xffff,
- /* key: 0x5ace */ 0xffff,
- /* key: 0x5acf */ 0xba24,
- /* key: 0x5ad0 */ 0x554c,
- /* key: 0x5ad1 */ 0xffff,
- /* key: 0x5ad2 */ 0xffff,
- /* key: 0x5ad3 */ 0xffff,
- /* key: 0x5ad4 */ 0xffff,
- /* key: 0x5ad5 */ 0xffff,
- /* key: 0x5ad6 */ 0x5545,
- /* key: 0x5ad7 */ 0x5542,
- /* key: 0x5ad8 */ 0xffff,
- /* key: 0x5ad9 */ 0xffff,
- /* key: 0x5ada */ 0xba25,
- /* key: 0x5adb */ 0xffff,
- /* key: 0x5adc */ 0xba26,
- /* key: 0x5add */ 0xffff,
- /* key: 0x5ade */ 0xffff,
- /* key: 0x5adf */ 0xffff,
- /* key: 0x5ae0 */ 0xba27,
- /* key: 0x5ae1 */ 0x4364,
- /* key: 0x5ae2 */ 0xffff,
- /* key: 0x5ae3 */ 0x5541,
- /* key: 0x5ae4 */ 0xffff,
- /* key: 0x5ae5 */ 0xba28,
- /* key: 0x5ae6 */ 0x5543,
- /* key: 0x5ae7 */ 0xffff,
- /* key: 0x5ae8 */ 0xffff,
- /* key: 0x5ae9 */ 0x5544,
- /* key: 0x5aea */ 0xba29,
- /* key: 0x5aeb */ 0xffff,
- /* key: 0x5aec */ 0xffff,
- /* key: 0x5aed */ 0xffff,
- /* key: 0x5aee */ 0xba2a,
- /* key: 0x5aef */ 0xffff,
- /* key: 0x5af0 */ 0xffff,
- /* key: 0x5af1 */ 0xffff,
- /* key: 0x5af2 */ 0xffff,
- /* key: 0x5af3 */ 0xffff,
- /* key: 0x5af4 */ 0xffff,
- /* key: 0x5af5 */ 0xba2b,
- /* key: 0x5af6 */ 0xba2c,
- /* key: 0x5af7 */ 0xffff,
- /* key: 0x5af8 */ 0xffff,
- /* key: 0x5af9 */ 0xffff,
- /* key: 0x5afa */ 0x5546,
- /* key: 0x5afb */ 0x5547,
- /* key: 0x5afc */ 0xffff,
- /* key: 0x5afd */ 0xba2d,
- /* key: 0x5afe */ 0xffff,
- /* key: 0x5aff */ 0xffff,
- /* branch: 0x5b0X */ 5136,
- /* branch: 0x5b1X */ 5152,
- /* branch: 0x5b2X */ 5168,
- /* branch: 0x5b3X */ 5184,
- /* branch: 0x5b4X */ 5200,
- /* branch: 0x5b5X */ 5216,
- /* branch: 0x5b6X */ 5232,
- /* branch: 0x5b7X */ 5248,
- /* branch: 0x5b8X */ 5264,
- /* branch: 0x5b9X */ 5280,
- /* branch: 0x5baX */ 5296,
- /* branch: 0x5bbX */ 5312,
- /* branch: 0x5bcX */ 5328,
- /* branch: 0x5bdX */ 5344,
- /* branch: 0x5beX */ 5360,
- /* branch: 0x5bfX */ 5376,
- /* key: 0x5b00 */ 0xba2e,
- /* key: 0x5b01 */ 0xba2f,
- /* key: 0x5b02 */ 0xffff,
- /* key: 0x5b03 */ 0xffff,
- /* key: 0x5b04 */ 0xffff,
- /* key: 0x5b05 */ 0xffff,
- /* key: 0x5b06 */ 0xffff,
- /* key: 0x5b07 */ 0xffff,
- /* key: 0x5b08 */ 0xba30,
- /* key: 0x5b09 */ 0x3472,
- /* key: 0x5b0a */ 0xffff,
- /* key: 0x5b0b */ 0x5549,
- /* key: 0x5b0c */ 0x5548,
- /* key: 0x5b0d */ 0xffff,
- /* key: 0x5b0e */ 0xffff,
- /* key: 0x5b0f */ 0xffff,
- /* key: 0x5b10 */ 0xffff,
- /* key: 0x5b11 */ 0xffff,
- /* key: 0x5b12 */ 0xffff,
- /* key: 0x5b13 */ 0xffff,
- /* key: 0x5b14 */ 0xffff,
- /* key: 0x5b15 */ 0xffff,
- /* key: 0x5b16 */ 0x554a,
- /* key: 0x5b17 */ 0xba31,
- /* key: 0x5b18 */ 0xffff,
- /* key: 0x5b19 */ 0xba33,
- /* key: 0x5b1a */ 0xffff,
- /* key: 0x5b1b */ 0xba34,
- /* key: 0x5b1c */ 0xffff,
- /* key: 0x5b1d */ 0xba35,
- /* key: 0x5b1e */ 0xffff,
- /* key: 0x5b1f */ 0xffff,
- /* key: 0x5b20 */ 0xffff,
- /* key: 0x5b21 */ 0xba36,
- /* key: 0x5b22 */ 0x3e6e,
- /* key: 0x5b23 */ 0xffff,
- /* key: 0x5b24 */ 0xffff,
- /* key: 0x5b25 */ 0xba37,
- /* key: 0x5b26 */ 0xffff,
- /* key: 0x5b27 */ 0xffff,
- /* key: 0x5b28 */ 0xffff,
- /* key: 0x5b29 */ 0xffff,
- /* key: 0x5b2a */ 0x554d,
- /* key: 0x5b2b */ 0xffff,
- /* key: 0x5b2c */ 0x445c,
- /* key: 0x5b2d */ 0xba38,
- /* key: 0x5b2e */ 0xffff,
- /* key: 0x5b2f */ 0xffff,
- /* key: 0x5b30 */ 0x3145,
- /* key: 0x5b31 */ 0xffff,
- /* key: 0x5b32 */ 0x554b,
- /* key: 0x5b33 */ 0xffff,
- /* key: 0x5b34 */ 0xba32,
- /* key: 0x5b35 */ 0xffff,
- /* key: 0x5b36 */ 0x554e,
- /* key: 0x5b37 */ 0xffff,
- /* key: 0x5b38 */ 0xba39,
- /* key: 0x5b39 */ 0xffff,
- /* key: 0x5b3a */ 0xffff,
- /* key: 0x5b3b */ 0xffff,
- /* key: 0x5b3c */ 0xffff,
- /* key: 0x5b3d */ 0xffff,
- /* key: 0x5b3e */ 0x554f,
- /* key: 0x5b3f */ 0xffff,
- /* key: 0x5b40 */ 0x5552,
- /* key: 0x5b41 */ 0xba3a,
- /* key: 0x5b42 */ 0xffff,
- /* key: 0x5b43 */ 0x5550,
- /* key: 0x5b44 */ 0xffff,
- /* key: 0x5b45 */ 0x5551,
- /* key: 0x5b46 */ 0xffff,
- /* key: 0x5b47 */ 0xffff,
- /* key: 0x5b48 */ 0xffff,
- /* key: 0x5b49 */ 0xffff,
- /* key: 0x5b4a */ 0xffff,
- /* key: 0x5b4b */ 0xba3b,
- /* key: 0x5b4c */ 0xba3c,
- /* key: 0x5b4d */ 0xffff,
- /* key: 0x5b4e */ 0xffff,
- /* key: 0x5b4f */ 0xffff,
- /* key: 0x5b50 */ 0x3b52,
- /* key: 0x5b51 */ 0x5553,
- /* key: 0x5b52 */ 0xba3d,
- /* key: 0x5b53 */ 0xffff,
- /* key: 0x5b54 */ 0x3926,
- /* key: 0x5b55 */ 0x5554,
- /* key: 0x5b56 */ 0xba3e,
- /* key: 0x5b57 */ 0x3b7a,
- /* key: 0x5b58 */ 0x4238,
- /* key: 0x5b59 */ 0xffff,
- /* key: 0x5b5a */ 0x5555,
- /* key: 0x5b5b */ 0x5556,
- /* key: 0x5b5c */ 0x3b5a,
- /* key: 0x5b5d */ 0x3927,
- /* key: 0x5b5e */ 0xba3f,
- /* key: 0x5b5f */ 0x4c52,
- /* key: 0x5b60 */ 0xffff,
- /* key: 0x5b61 */ 0xffff,
- /* key: 0x5b62 */ 0xffff,
- /* key: 0x5b63 */ 0x3528,
- /* key: 0x5b64 */ 0x3849,
- /* key: 0x5b65 */ 0x5557,
- /* key: 0x5b66 */ 0x3358,
- /* key: 0x5b67 */ 0xffff,
- /* key: 0x5b68 */ 0xba40,
- /* key: 0x5b69 */ 0x5558,
- /* key: 0x5b6a */ 0xffff,
- /* key: 0x5b6b */ 0x4239,
- /* key: 0x5b6c */ 0xffff,
- /* key: 0x5b6d */ 0xffff,
- /* key: 0x5b6e */ 0xba41,
- /* key: 0x5b6f */ 0xba42,
- /* key: 0x5b70 */ 0x5559,
- /* key: 0x5b71 */ 0x5623,
- /* key: 0x5b72 */ 0xffff,
- /* key: 0x5b73 */ 0x555a,
- /* key: 0x5b74 */ 0xffff,
- /* key: 0x5b75 */ 0x555b,
- /* key: 0x5b76 */ 0xffff,
- /* key: 0x5b77 */ 0xffff,
- /* key: 0x5b78 */ 0x555c,
- /* key: 0x5b79 */ 0xffff,
- /* key: 0x5b7a */ 0x555e,
- /* key: 0x5b7b */ 0xffff,
- /* key: 0x5b7c */ 0xba43,
- /* key: 0x5b7d */ 0xba44,
- /* key: 0x5b7e */ 0xba45,
- /* key: 0x5b7f */ 0xba46,
- /* key: 0x5b80 */ 0x555f,
- /* key: 0x5b81 */ 0xba47,
- /* key: 0x5b82 */ 0xffff,
- /* key: 0x5b83 */ 0x5560,
- /* key: 0x5b84 */ 0xba48,
- /* key: 0x5b85 */ 0x4270,
- /* key: 0x5b86 */ 0xba49,
- /* key: 0x5b87 */ 0x3127,
- /* key: 0x5b88 */ 0x3c69,
- /* key: 0x5b89 */ 0x3042,
- /* key: 0x5b8a */ 0xba4a,
- /* key: 0x5b8b */ 0x4157,
- /* key: 0x5b8c */ 0x3430,
- /* key: 0x5b8d */ 0x3c35,
- /* key: 0x5b8e */ 0xba4b,
- /* key: 0x5b8f */ 0x3928,
- /* key: 0x5b90 */ 0xba4c,
- /* key: 0x5b91 */ 0xba4d,
- /* key: 0x5b92 */ 0xffff,
- /* key: 0x5b93 */ 0xba4e,
- /* key: 0x5b94 */ 0xba4f,
- /* key: 0x5b95 */ 0x4566,
- /* key: 0x5b96 */ 0xba50,
- /* key: 0x5b97 */ 0x3d21,
- /* key: 0x5b98 */ 0x3431,
- /* key: 0x5b99 */ 0x4368,
- /* key: 0x5b9a */ 0x446a,
- /* key: 0x5b9b */ 0x3038,
- /* key: 0x5b9c */ 0x3539,
- /* key: 0x5b9d */ 0x4a75,
- /* key: 0x5b9e */ 0xffff,
- /* key: 0x5b9f */ 0x3c42,
- /* key: 0x5ba0 */ 0xffff,
- /* key: 0x5ba1 */ 0xffff,
- /* key: 0x5ba2 */ 0x3552,
- /* key: 0x5ba3 */ 0x406b,
- /* key: 0x5ba4 */ 0x3c3c,
- /* key: 0x5ba5 */ 0x4d28,
- /* key: 0x5ba6 */ 0x5561,
- /* key: 0x5ba7 */ 0xffff,
- /* key: 0x5ba8 */ 0xba51,
- /* key: 0x5ba9 */ 0xba52,
- /* key: 0x5baa */ 0xffff,
- /* key: 0x5bab */ 0xffff,
- /* key: 0x5bac */ 0xba53,
- /* key: 0x5bad */ 0xba54,
- /* key: 0x5bae */ 0x355c,
- /* key: 0x5baf */ 0xba55,
- /* key: 0x5bb0 */ 0x3a4b,
- /* key: 0x5bb1 */ 0xba56,
- /* key: 0x5bb2 */ 0xba57,
- /* key: 0x5bb3 */ 0x3332,
- /* key: 0x5bb4 */ 0x3163,
- /* key: 0x5bb5 */ 0x3e2c,
- /* key: 0x5bb6 */ 0x3248,
- /* key: 0x5bb7 */ 0xba58,
- /* key: 0x5bb8 */ 0x5562,
- /* key: 0x5bb9 */ 0x4d46,
- /* key: 0x5bba */ 0xba59,
- /* key: 0x5bbb */ 0xffff,
- /* key: 0x5bbc */ 0xba5a,
- /* key: 0x5bbd */ 0xffff,
- /* key: 0x5bbe */ 0xffff,
- /* key: 0x5bbf */ 0x3d49,
- /* key: 0x5bc0 */ 0xba5b,
- /* key: 0x5bc1 */ 0xba5c,
- /* key: 0x5bc2 */ 0x3c64,
- /* key: 0x5bc3 */ 0x5563,
- /* key: 0x5bc4 */ 0x3473,
- /* key: 0x5bc5 */ 0x4652,
- /* key: 0x5bc6 */ 0x4c29,
- /* key: 0x5bc7 */ 0x5564,
- /* key: 0x5bc8 */ 0xffff,
- /* key: 0x5bc9 */ 0x5565,
- /* key: 0x5bca */ 0xffff,
- /* key: 0x5bcb */ 0xffff,
- /* key: 0x5bcc */ 0x4959,
- /* key: 0x5bcd */ 0xba5d,
- /* key: 0x5bce */ 0xffff,
- /* key: 0x5bcf */ 0xba5e,
- /* key: 0x5bd0 */ 0x5567,
- /* key: 0x5bd1 */ 0xffff,
- /* key: 0x5bd2 */ 0x3428,
- /* key: 0x5bd3 */ 0x3677,
- /* key: 0x5bd4 */ 0x5566,
- /* key: 0x5bd5 */ 0xffff,
- /* key: 0x5bd6 */ 0xba5f,
- /* key: 0x5bd7 */ 0xba60,
- /* key: 0x5bd8 */ 0xba61,
- /* key: 0x5bd9 */ 0xba62,
- /* key: 0x5bda */ 0xba63,
- /* key: 0x5bdb */ 0x3432,
- /* key: 0x5bdc */ 0xffff,
- /* key: 0x5bdd */ 0x3f32,
- /* key: 0x5bde */ 0x556b,
- /* key: 0x5bdf */ 0x3b21,
- /* key: 0x5be0 */ 0xba64,
- /* key: 0x5be1 */ 0x3249,
- /* key: 0x5be2 */ 0x556a,
- /* key: 0x5be3 */ 0xffff,
- /* key: 0x5be4 */ 0x5568,
- /* key: 0x5be5 */ 0x556c,
- /* key: 0x5be6 */ 0x5569,
- /* key: 0x5be7 */ 0x472b,
- /* key: 0x5be8 */ 0x5c4d,
- /* key: 0x5be9 */ 0x3f33,
- /* key: 0x5bea */ 0xffff,
- /* key: 0x5beb */ 0x556d,
- /* key: 0x5bec */ 0xffff,
- /* key: 0x5bed */ 0xffff,
- /* key: 0x5bee */ 0x4e40,
- /* key: 0x5bef */ 0xba65,
- /* key: 0x5bf0 */ 0x556e,
- /* key: 0x5bf1 */ 0xba66,
- /* key: 0x5bf2 */ 0xffff,
- /* key: 0x5bf3 */ 0x5570,
- /* key: 0x5bf4 */ 0xba67,
- /* key: 0x5bf5 */ 0x437e,
- /* key: 0x5bf6 */ 0x556f,
- /* key: 0x5bf7 */ 0xffff,
- /* key: 0x5bf8 */ 0x4023,
- /* key: 0x5bf9 */ 0xffff,
- /* key: 0x5bfa */ 0x3b7b,
- /* key: 0x5bfb */ 0xffff,
- /* key: 0x5bfc */ 0xffff,
- /* key: 0x5bfd */ 0xba68,
- /* key: 0x5bfe */ 0x4250,
- /* key: 0x5bff */ 0x3c77,
- /* branch: 0x5c0X */ 5408,
- /* branch: 0x5c1X */ 5424,
- /* branch: 0x5c2X */ 5440,
- /* branch: 0x5c3X */ 5456,
- /* branch: 0x5c4X */ 5472,
- /* branch: 0x5c5X */ 5488,
- /* branch: 0x5c6X */ 5504,
- /* branch: 0x5c7X */ 5520,
- /* branch: 0x5c8X */ 5536,
- /* branch: 0x5c9X */ 5552,
- /* branch: 0x5caX */ 5568,
- /* branch: 0x5cbX */ 5584,
- /* branch: 0x5ccX */ 5600,
- /* branch: 0x5cdX */ 5616,
- /* branch: 0x5ceX */ 5632,
- /* branch: 0x5cfX */ 5648,
- /* key: 0x5c00 */ 0xffff,
- /* key: 0x5c01 */ 0x4975,
- /* key: 0x5c02 */ 0x406c,
- /* key: 0x5c03 */ 0xffff,
- /* key: 0x5c04 */ 0x3c4d,
- /* key: 0x5c05 */ 0x5571,
- /* key: 0x5c06 */ 0x3e2d,
- /* key: 0x5c07 */ 0x5572,
- /* key: 0x5c08 */ 0x5573,
- /* key: 0x5c09 */ 0x3053,
- /* key: 0x5c0a */ 0x423a,
- /* key: 0x5c0b */ 0x3f52,
- /* key: 0x5c0c */ 0xba69,
- /* key: 0x5c0d */ 0x5574,
- /* key: 0x5c0e */ 0x4633,
- /* key: 0x5c0f */ 0x3e2e,
- /* key: 0x5c10 */ 0xffff,
- /* key: 0x5c11 */ 0x3e2f,
- /* key: 0x5c12 */ 0xffff,
- /* key: 0x5c13 */ 0x5575,
- /* key: 0x5c14 */ 0xffff,
- /* key: 0x5c15 */ 0xffff,
- /* key: 0x5c16 */ 0x406d,
- /* key: 0x5c17 */ 0xba6a,
- /* key: 0x5c18 */ 0xffff,
- /* key: 0x5c19 */ 0xffff,
- /* key: 0x5c1a */ 0x3e30,
- /* key: 0x5c1b */ 0xffff,
- /* key: 0x5c1c */ 0xffff,
- /* key: 0x5c1d */ 0xffff,
- /* key: 0x5c1e */ 0xba6b,
- /* key: 0x5c1f */ 0xba6c,
- /* key: 0x5c20 */ 0x5576,
- /* key: 0x5c21 */ 0xffff,
- /* key: 0x5c22 */ 0x5577,
- /* key: 0x5c23 */ 0xba6d,
- /* key: 0x5c24 */ 0x4c60,
- /* key: 0x5c25 */ 0xffff,
- /* key: 0x5c26 */ 0xba6e,
- /* key: 0x5c27 */ 0xffff,
- /* key: 0x5c28 */ 0x5578,
- /* key: 0x5c29 */ 0xba6f,
- /* key: 0x5c2a */ 0xffff,
- /* key: 0x5c2b */ 0xba70,
- /* key: 0x5c2c */ 0xba71,
- /* key: 0x5c2d */ 0x3646,
- /* key: 0x5c2e */ 0xba72,
- /* key: 0x5c2f */ 0xffff,
- /* key: 0x5c30 */ 0xba73,
- /* key: 0x5c31 */ 0x3d22,
- /* key: 0x5c32 */ 0xba74,
- /* key: 0x5c33 */ 0xffff,
- /* key: 0x5c34 */ 0xffff,
- /* key: 0x5c35 */ 0xba75,
- /* key: 0x5c36 */ 0xba76,
- /* key: 0x5c37 */ 0xffff,
- /* key: 0x5c38 */ 0x5579,
- /* key: 0x5c39 */ 0x557a,
- /* key: 0x5c3a */ 0x3c5c,
- /* key: 0x5c3b */ 0x3f2c,
- /* key: 0x5c3c */ 0x4674,
- /* key: 0x5c3d */ 0x3f54,
- /* key: 0x5c3e */ 0x4878,
- /* key: 0x5c3f */ 0x4722,
- /* key: 0x5c40 */ 0x3649,
- /* key: 0x5c41 */ 0x557b,
- /* key: 0x5c42 */ 0xffff,
- /* key: 0x5c43 */ 0xffff,
- /* key: 0x5c44 */ 0xffff,
- /* key: 0x5c45 */ 0x356f,
- /* key: 0x5c46 */ 0x557c,
- /* key: 0x5c47 */ 0xffff,
- /* key: 0x5c48 */ 0x367e,
- /* key: 0x5c49 */ 0xffff,
- /* key: 0x5c4a */ 0x464f,
- /* key: 0x5c4b */ 0x3230,
- /* key: 0x5c4c */ 0xffff,
- /* key: 0x5c4d */ 0x3b53,
- /* key: 0x5c4e */ 0x557d,
- /* key: 0x5c4f */ 0x5622,
- /* key: 0x5c50 */ 0x5621,
- /* key: 0x5c51 */ 0x367d,
- /* key: 0x5c52 */ 0xffff,
- /* key: 0x5c53 */ 0x557e,
- /* key: 0x5c54 */ 0xffff,
- /* key: 0x5c55 */ 0x4538,
- /* key: 0x5c56 */ 0xffff,
- /* key: 0x5c57 */ 0xffff,
- /* key: 0x5c58 */ 0xffff,
- /* key: 0x5c59 */ 0xba77,
- /* key: 0x5c5a */ 0xba78,
- /* key: 0x5c5b */ 0xffff,
- /* key: 0x5c5c */ 0xba79,
- /* key: 0x5c5d */ 0xffff,
- /* key: 0x5c5e */ 0x4230,
- /* key: 0x5c5f */ 0xffff,
- /* key: 0x5c60 */ 0x454b,
- /* key: 0x5c61 */ 0x3c48,
- /* key: 0x5c62 */ 0xba7a,
- /* key: 0x5c63 */ 0xba7b,
- /* key: 0x5c64 */ 0x4158,
- /* key: 0x5c65 */ 0x4d7a,
- /* key: 0x5c66 */ 0xffff,
- /* key: 0x5c67 */ 0xba7c,
- /* key: 0x5c68 */ 0xba7d,
- /* key: 0x5c69 */ 0xba7e,
- /* key: 0x5c6a */ 0xffff,
- /* key: 0x5c6b */ 0xffff,
- /* key: 0x5c6c */ 0x5624,
- /* key: 0x5c6d */ 0xbb21,
- /* key: 0x5c6e */ 0x5625,
- /* key: 0x5c6f */ 0x4656,
- /* key: 0x5c70 */ 0xbb22,
- /* key: 0x5c71 */ 0x3b33,
- /* key: 0x5c72 */ 0xffff,
- /* key: 0x5c73 */ 0xffff,
- /* key: 0x5c74 */ 0xbb23,
- /* key: 0x5c75 */ 0xbb24,
- /* key: 0x5c76 */ 0x5627,
- /* key: 0x5c77 */ 0xffff,
- /* key: 0x5c78 */ 0xffff,
- /* key: 0x5c79 */ 0x5628,
- /* key: 0x5c7a */ 0xbb25,
- /* key: 0x5c7b */ 0xbb26,
- /* key: 0x5c7c */ 0xbb27,
- /* key: 0x5c7d */ 0xbb28,
- /* key: 0x5c7e */ 0xffff,
- /* key: 0x5c7f */ 0xffff,
- /* key: 0x5c80 */ 0xffff,
- /* key: 0x5c81 */ 0xffff,
- /* key: 0x5c82 */ 0xffff,
- /* key: 0x5c83 */ 0xffff,
- /* key: 0x5c84 */ 0xffff,
- /* key: 0x5c85 */ 0xffff,
- /* key: 0x5c86 */ 0xffff,
- /* key: 0x5c87 */ 0xbb29,
- /* key: 0x5c88 */ 0xbb2a,
- /* key: 0x5c89 */ 0xffff,
- /* key: 0x5c8a */ 0xbb2b,
- /* key: 0x5c8b */ 0xffff,
- /* key: 0x5c8c */ 0x5629,
- /* key: 0x5c8d */ 0xffff,
- /* key: 0x5c8e */ 0xffff,
- /* key: 0x5c8f */ 0xbb2c,
- /* key: 0x5c90 */ 0x3474,
- /* key: 0x5c91 */ 0x562a,
- /* key: 0x5c92 */ 0xbb2d,
- /* key: 0x5c93 */ 0xffff,
- /* key: 0x5c94 */ 0x562b,
- /* key: 0x5c95 */ 0xffff,
- /* key: 0x5c96 */ 0xffff,
- /* key: 0x5c97 */ 0xffff,
- /* key: 0x5c98 */ 0xffff,
- /* key: 0x5c99 */ 0xffff,
- /* key: 0x5c9a */ 0xffff,
- /* key: 0x5c9b */ 0xffff,
- /* key: 0x5c9c */ 0xffff,
- /* key: 0x5c9d */ 0xbb2e,
- /* key: 0x5c9e */ 0xffff,
- /* key: 0x5c9f */ 0xbb2f,
- /* key: 0x5ca0 */ 0xbb30,
- /* key: 0x5ca1 */ 0x322c,
- /* key: 0x5ca2 */ 0xbb31,
- /* key: 0x5ca3 */ 0xbb32,
- /* key: 0x5ca4 */ 0xffff,
- /* key: 0x5ca5 */ 0xffff,
- /* key: 0x5ca6 */ 0xbb33,
- /* key: 0x5ca7 */ 0xffff,
- /* key: 0x5ca8 */ 0x413b,
- /* key: 0x5ca9 */ 0x3464,
- /* key: 0x5caa */ 0xbb34,
- /* key: 0x5cab */ 0x562d,
- /* key: 0x5cac */ 0x4c28,
- /* key: 0x5cad */ 0xffff,
- /* key: 0x5cae */ 0xffff,
- /* key: 0x5caf */ 0xffff,
- /* key: 0x5cb0 */ 0xffff,
- /* key: 0x5cb1 */ 0x4252,
- /* key: 0x5cb2 */ 0xbb35,
- /* key: 0x5cb3 */ 0x3359,
- /* key: 0x5cb4 */ 0xbb36,
- /* key: 0x5cb5 */ 0xbb37,
- /* key: 0x5cb6 */ 0x562f,
- /* key: 0x5cb7 */ 0x5631,
- /* key: 0x5cb8 */ 0x345f,
- /* key: 0x5cb9 */ 0xffff,
- /* key: 0x5cba */ 0xbb38,
- /* key: 0x5cbb */ 0x562e,
- /* key: 0x5cbc */ 0x5630,
- /* key: 0x5cbd */ 0xffff,
- /* key: 0x5cbe */ 0x5633,
- /* key: 0x5cbf */ 0xffff,
- /* key: 0x5cc0 */ 0xffff,
- /* key: 0x5cc1 */ 0xffff,
- /* key: 0x5cc2 */ 0xffff,
- /* key: 0x5cc3 */ 0xffff,
- /* key: 0x5cc4 */ 0xffff,
- /* key: 0x5cc5 */ 0x5632,
- /* key: 0x5cc6 */ 0xffff,
- /* key: 0x5cc7 */ 0x5634,
- /* key: 0x5cc8 */ 0xffff,
- /* key: 0x5cc9 */ 0xbb39,
- /* key: 0x5cca */ 0xffff,
- /* key: 0x5ccb */ 0xbb3a,
- /* key: 0x5ccc */ 0xffff,
- /* key: 0x5ccd */ 0xffff,
- /* key: 0x5cce */ 0xffff,
- /* key: 0x5ccf */ 0xffff,
- /* key: 0x5cd0 */ 0xffff,
- /* key: 0x5cd1 */ 0xffff,
- /* key: 0x5cd2 */ 0xbb3b,
- /* key: 0x5cd3 */ 0xffff,
- /* key: 0x5cd4 */ 0xffff,
- /* key: 0x5cd5 */ 0xffff,
- /* key: 0x5cd6 */ 0xffff,
- /* key: 0x5cd7 */ 0xbb3d,
- /* key: 0x5cd8 */ 0xffff,
- /* key: 0x5cd9 */ 0x5635,
- /* key: 0x5cda */ 0xffff,
- /* key: 0x5cdb */ 0xffff,
- /* key: 0x5cdc */ 0xffff,
- /* key: 0x5cdd */ 0xbb3c,
- /* key: 0x5cde */ 0xffff,
- /* key: 0x5cdf */ 0xffff,
- /* key: 0x5ce0 */ 0x463d,
- /* key: 0x5ce1 */ 0x362e,
- /* key: 0x5ce2 */ 0xffff,
- /* key: 0x5ce3 */ 0xffff,
- /* key: 0x5ce4 */ 0xffff,
- /* key: 0x5ce5 */ 0xffff,
- /* key: 0x5ce6 */ 0xffff,
- /* key: 0x5ce7 */ 0xffff,
- /* key: 0x5ce8 */ 0x3265,
- /* key: 0x5ce9 */ 0x5636,
- /* key: 0x5cea */ 0x563b,
- /* key: 0x5ceb */ 0xffff,
- /* key: 0x5cec */ 0xffff,
- /* key: 0x5ced */ 0x5639,
- /* key: 0x5cee */ 0xbb3e,
- /* key: 0x5cef */ 0x4a77,
- /* key: 0x5cf0 */ 0x4a76,
- /* key: 0x5cf1 */ 0xbb3f,
- /* key: 0x5cf2 */ 0xbb40,
- /* key: 0x5cf3 */ 0xffff,
- /* key: 0x5cf4 */ 0xbb41,
- /* key: 0x5cf5 */ 0xffff,
- /* key: 0x5cf6 */ 0x4567,
- /* key: 0x5cf7 */ 0xffff,
- /* key: 0x5cf8 */ 0xffff,
- /* key: 0x5cf9 */ 0xffff,
- /* key: 0x5cfa */ 0x5638,
- /* key: 0x5cfb */ 0x3d54,
- /* key: 0x5cfc */ 0xffff,
- /* key: 0x5cfd */ 0x5637,
- /* key: 0x5cfe */ 0xffff,
- /* key: 0x5cff */ 0xffff,
- /* branch: 0x5d0X */ 5680,
- /* branch: 0x5d1X */ 5696,
- /* branch: 0x5d2X */ 5712,
- /* branch: 0x5d3X */ 5728,
- /* branch: 0x5d4X */ 5744,
- /* branch: 0x5d5X */ 5760,
- /* branch: 0x5d6X */ 5776,
- /* branch: 0x5d7X */ 5792,
- /* branch: 0x5d8X */ 5808,
- /* branch: 0x5d9X */ 5824,
- /* branch: 0x5daX */ 5840,
- /* branch: 0x5dbX */ 5856,
- /* branch: 0x5dcX */ 5872,
- /* branch: 0x5ddX */ 5888,
- /* branch: 0x5deX */ 5904,
- /* branch: 0x5dfX */ 5920,
- /* key: 0x5d00 */ 0xffff,
- /* key: 0x5d01 */ 0xbb42,
- /* key: 0x5d02 */ 0xffff,
- /* key: 0x5d03 */ 0xffff,
- /* key: 0x5d04 */ 0xffff,
- /* key: 0x5d05 */ 0xffff,
- /* key: 0x5d06 */ 0xbb43,
- /* key: 0x5d07 */ 0x3f72,
- /* key: 0x5d08 */ 0xffff,
- /* key: 0x5d09 */ 0xffff,
- /* key: 0x5d0a */ 0xffff,
- /* key: 0x5d0b */ 0x563c,
- /* key: 0x5d0c */ 0xffff,
- /* key: 0x5d0d */ 0xbb44,
- /* key: 0x5d0e */ 0x3a6a,
- /* key: 0x5d0f */ 0xffff,
- /* key: 0x5d10 */ 0xffff,
- /* key: 0x5d11 */ 0x5642,
- /* key: 0x5d12 */ 0xbb45,
- /* key: 0x5d13 */ 0xffff,
- /* key: 0x5d14 */ 0x5643,
- /* key: 0x5d15 */ 0x563d,
- /* key: 0x5d16 */ 0x3333,
- /* key: 0x5d17 */ 0x563e,
- /* key: 0x5d18 */ 0x5647,
- /* key: 0x5d19 */ 0x5646,
- /* key: 0x5d1a */ 0x5645,
- /* key: 0x5d1b */ 0x5641,
- /* key: 0x5d1c */ 0xffff,
- /* key: 0x5d1d */ 0xffff,
- /* key: 0x5d1e */ 0xffff,
- /* key: 0x5d1f */ 0x5640,
- /* key: 0x5d20 */ 0xffff,
- /* key: 0x5d21 */ 0xffff,
- /* key: 0x5d22 */ 0x5644,
- /* key: 0x5d23 */ 0xbb47,
- /* key: 0x5d24 */ 0xbb48,
- /* key: 0x5d25 */ 0xffff,
- /* key: 0x5d26 */ 0xbb49,
- /* key: 0x5d27 */ 0xbb4a,
- /* key: 0x5d28 */ 0xffff,
- /* key: 0x5d29 */ 0x4a78,
- /* key: 0x5d2a */ 0xffff,
- /* key: 0x5d2b */ 0xbb46,
- /* key: 0x5d2c */ 0xffff,
- /* key: 0x5d2d */ 0xffff,
- /* key: 0x5d2e */ 0xffff,
- /* key: 0x5d2f */ 0xffff,
- /* key: 0x5d30 */ 0xffff,
- /* key: 0x5d31 */ 0xbb4b,
- /* key: 0x5d32 */ 0xffff,
- /* key: 0x5d33 */ 0xffff,
- /* key: 0x5d34 */ 0xbb4c,
- /* key: 0x5d35 */ 0xffff,
- /* key: 0x5d36 */ 0xffff,
- /* key: 0x5d37 */ 0xffff,
- /* key: 0x5d38 */ 0xffff,
- /* key: 0x5d39 */ 0xbb4d,
- /* key: 0x5d3a */ 0xffff,
- /* key: 0x5d3b */ 0xffff,
- /* key: 0x5d3c */ 0xffff,
- /* key: 0x5d3d */ 0xbb4e,
- /* key: 0x5d3e */ 0xffff,
- /* key: 0x5d3f */ 0xbb4f,
- /* key: 0x5d40 */ 0xffff,
- /* key: 0x5d41 */ 0xffff,
- /* key: 0x5d42 */ 0xbb50,
- /* key: 0x5d43 */ 0xbb51,
- /* key: 0x5d44 */ 0xffff,
- /* key: 0x5d45 */ 0xffff,
- /* key: 0x5d46 */ 0xbb52,
- /* key: 0x5d47 */ 0xffff,
- /* key: 0x5d48 */ 0xbb53,
- /* key: 0x5d49 */ 0xffff,
- /* key: 0x5d4a */ 0xbb57,
- /* key: 0x5d4b */ 0x564b,
- /* key: 0x5d4c */ 0x5648,
- /* key: 0x5d4d */ 0xffff,
- /* key: 0x5d4e */ 0x564a,
- /* key: 0x5d4f */ 0xffff,
- /* key: 0x5d50 */ 0x4d72,
- /* key: 0x5d51 */ 0xbb55,
- /* key: 0x5d52 */ 0x5649,
- /* key: 0x5d53 */ 0xffff,
- /* key: 0x5d54 */ 0xffff,
- /* key: 0x5d55 */ 0xbb54,
- /* key: 0x5d56 */ 0xffff,
- /* key: 0x5d57 */ 0xffff,
- /* key: 0x5d58 */ 0xffff,
- /* key: 0x5d59 */ 0xbb56,
- /* key: 0x5d5a */ 0xffff,
- /* key: 0x5d5b */ 0xffff,
- /* key: 0x5d5c */ 0x563f,
- /* key: 0x5d5d */ 0xffff,
- /* key: 0x5d5e */ 0xffff,
- /* key: 0x5d5f */ 0xbb58,
- /* key: 0x5d60 */ 0xbb59,
- /* key: 0x5d61 */ 0xbb5a,
- /* key: 0x5d62 */ 0xbb5b,
- /* key: 0x5d63 */ 0xffff,
- /* key: 0x5d64 */ 0xbb5c,
- /* key: 0x5d65 */ 0xffff,
- /* key: 0x5d66 */ 0xffff,
- /* key: 0x5d67 */ 0xffff,
- /* key: 0x5d68 */ 0xffff,
- /* key: 0x5d69 */ 0x3f73,
- /* key: 0x5d6a */ 0xbb5d,
- /* key: 0x5d6b */ 0xffff,
- /* key: 0x5d6c */ 0x564c,
- /* key: 0x5d6d */ 0xbb5e,
- /* key: 0x5d6e */ 0xffff,
- /* key: 0x5d6f */ 0x3a37,
- /* key: 0x5d70 */ 0xbb5f,
- /* key: 0x5d71 */ 0xffff,
- /* key: 0x5d72 */ 0xffff,
- /* key: 0x5d73 */ 0x564d,
- /* key: 0x5d74 */ 0xffff,
- /* key: 0x5d75 */ 0xffff,
- /* key: 0x5d76 */ 0x564e,
- /* key: 0x5d77 */ 0xffff,
- /* key: 0x5d78 */ 0xffff,
- /* key: 0x5d79 */ 0xbb60,
- /* key: 0x5d7a */ 0xbb61,
- /* key: 0x5d7b */ 0xffff,
- /* key: 0x5d7c */ 0xffff,
- /* key: 0x5d7d */ 0xffff,
- /* key: 0x5d7e */ 0xbb62,
- /* key: 0x5d7f */ 0xbb63,
- /* key: 0x5d80 */ 0xffff,
- /* key: 0x5d81 */ 0xbb64,
- /* key: 0x5d82 */ 0x5651,
- /* key: 0x5d83 */ 0xbb65,
- /* key: 0x5d84 */ 0x5650,
- /* key: 0x5d85 */ 0xffff,
- /* key: 0x5d86 */ 0xffff,
- /* key: 0x5d87 */ 0x564f,
- /* key: 0x5d88 */ 0xbb66,
- /* key: 0x5d89 */ 0xffff,
- /* key: 0x5d8a */ 0xbb67,
- /* key: 0x5d8b */ 0x4568,
- /* key: 0x5d8c */ 0x563a,
- /* key: 0x5d8d */ 0xffff,
- /* key: 0x5d8e */ 0xffff,
- /* key: 0x5d8f */ 0xffff,
- /* key: 0x5d90 */ 0x5657,
- /* key: 0x5d91 */ 0xffff,
- /* key: 0x5d92 */ 0xbb68,
- /* key: 0x5d93 */ 0xbb69,
- /* key: 0x5d94 */ 0xbb6a,
- /* key: 0x5d95 */ 0xbb6b,
- /* key: 0x5d96 */ 0xffff,
- /* key: 0x5d97 */ 0xffff,
- /* key: 0x5d98 */ 0xffff,
- /* key: 0x5d99 */ 0xbb6c,
- /* key: 0x5d9a */ 0xffff,
- /* key: 0x5d9b */ 0xbb6d,
- /* key: 0x5d9c */ 0xffff,
- /* key: 0x5d9d */ 0x5653,
- /* key: 0x5d9e */ 0xffff,
- /* key: 0x5d9f */ 0xbb6e,
- /* key: 0x5da0 */ 0xbb6f,
- /* key: 0x5da1 */ 0xffff,
- /* key: 0x5da2 */ 0x5652,
- /* key: 0x5da3 */ 0xffff,
- /* key: 0x5da4 */ 0xffff,
- /* key: 0x5da5 */ 0xffff,
- /* key: 0x5da6 */ 0xffff,
- /* key: 0x5da7 */ 0xbb70,
- /* key: 0x5da8 */ 0xffff,
- /* key: 0x5da9 */ 0xffff,
- /* key: 0x5daa */ 0xffff,
- /* key: 0x5dab */ 0xbb71,
- /* key: 0x5dac */ 0x5654,
- /* key: 0x5dad */ 0xffff,
- /* key: 0x5dae */ 0x5655,
- /* key: 0x5daf */ 0xffff,
- /* key: 0x5db0 */ 0xbb72,
- /* key: 0x5db1 */ 0xffff,
- /* key: 0x5db2 */ 0xe674,
- /* key: 0x5db3 */ 0xffff,
- /* key: 0x5db4 */ 0xbb73,
- /* key: 0x5db5 */ 0xffff,
- /* key: 0x5db6 */ 0xffff,
- /* key: 0x5db7 */ 0x5658,
- /* key: 0x5db8 */ 0xbb74,
- /* key: 0x5db9 */ 0xbb75,
- /* key: 0x5dba */ 0x4e66,
- /* key: 0x5dbb */ 0xffff,
- /* key: 0x5dbc */ 0x5659,
- /* key: 0x5dbd */ 0x5656,
- /* key: 0x5dbe */ 0xffff,
- /* key: 0x5dbf */ 0xffff,
- /* key: 0x5dc0 */ 0xffff,
- /* key: 0x5dc1 */ 0xffff,
- /* key: 0x5dc2 */ 0xffff,
- /* key: 0x5dc3 */ 0xbb76,
- /* key: 0x5dc4 */ 0xffff,
- /* key: 0x5dc5 */ 0xffff,
- /* key: 0x5dc6 */ 0xffff,
- /* key: 0x5dc7 */ 0xbb77,
- /* key: 0x5dc8 */ 0xffff,
- /* key: 0x5dc9 */ 0x565a,
- /* key: 0x5dca */ 0xffff,
- /* key: 0x5dcb */ 0xbb78,
- /* key: 0x5dcc */ 0x3460,
- /* key: 0x5dcd */ 0x565b,
- /* key: 0x5dce */ 0xbb7a,
- /* key: 0x5dcf */ 0xffff,
- /* key: 0x5dd0 */ 0xbb79,
- /* key: 0x5dd1 */ 0xffff,
- /* key: 0x5dd2 */ 0x565d,
- /* key: 0x5dd3 */ 0x565c,
- /* key: 0x5dd4 */ 0xffff,
- /* key: 0x5dd5 */ 0xffff,
- /* key: 0x5dd6 */ 0x565e,
- /* key: 0x5dd7 */ 0xffff,
- /* key: 0x5dd8 */ 0xbb7b,
- /* key: 0x5dd9 */ 0xbb7c,
- /* key: 0x5dda */ 0xffff,
- /* key: 0x5ddb */ 0x565f,
- /* key: 0x5ddc */ 0xffff,
- /* key: 0x5ddd */ 0x406e,
- /* key: 0x5dde */ 0x3d23,
- /* key: 0x5ddf */ 0xffff,
- /* key: 0x5de0 */ 0xbb7d,
- /* key: 0x5de1 */ 0x3d64,
- /* key: 0x5de2 */ 0xffff,
- /* key: 0x5de3 */ 0x4163,
- /* key: 0x5de4 */ 0xbb7e,
- /* key: 0x5de5 */ 0x3929,
- /* key: 0x5de6 */ 0x3a38,
- /* key: 0x5de7 */ 0x392a,
- /* key: 0x5de8 */ 0x3570,
- /* key: 0x5de9 */ 0xbc21,
- /* key: 0x5dea */ 0xffff,
- /* key: 0x5deb */ 0x5660,
- /* key: 0x5dec */ 0xffff,
- /* key: 0x5ded */ 0xffff,
- /* key: 0x5dee */ 0x3a39,
- /* key: 0x5def */ 0xffff,
- /* key: 0x5df0 */ 0xffff,
- /* key: 0x5df1 */ 0x384a,
- /* key: 0x5df2 */ 0x5661,
- /* key: 0x5df3 */ 0x4c26,
- /* key: 0x5df4 */ 0x4743,
- /* key: 0x5df5 */ 0x5662,
- /* key: 0x5df6 */ 0xffff,
- /* key: 0x5df7 */ 0x392b,
- /* key: 0x5df8 */ 0xbc22,
- /* key: 0x5df9 */ 0xbc23,
- /* key: 0x5dfa */ 0xffff,
- /* key: 0x5dfb */ 0x342c,
- /* key: 0x5dfc */ 0xffff,
- /* key: 0x5dfd */ 0x4327,
- /* key: 0x5dfe */ 0x3652,
- /* key: 0x5dff */ 0xffff,
- /* branch: 0x5e0X */ 5952,
- /* branch: 0x5e1X */ 5968,
- /* branch: 0x5e2X */ 5984,
- /* branch: 0x5e3X */ 6000,
- /* branch: 0x5e4X */ 6016,
- /* branch: 0x5e5X */ 6032,
- /* branch: 0x5e6X */ 6048,
- /* branch: 0x5e7X */ 6064,
- /* branch: 0x5e8X */ 6080,
- /* branch: 0x5e9X */ 6096,
- /* branch: 0x5eaX */ 6112,
- /* branch: 0x5ebX */ 6128,
- /* branch: 0x5ecX */ 6144,
- /* branch: 0x5edX */ 6160,
- /* branch: 0x5eeX */ 6176,
- /* branch: 0x5efX */ 6192,
- /* key: 0x5e00 */ 0xbc24,
- /* key: 0x5e01 */ 0xffff,
- /* key: 0x5e02 */ 0x3b54,
- /* key: 0x5e03 */ 0x495b,
- /* key: 0x5e04 */ 0xffff,
- /* key: 0x5e05 */ 0xffff,
- /* key: 0x5e06 */ 0x4841,
- /* key: 0x5e07 */ 0xbc25,
- /* key: 0x5e08 */ 0xffff,
- /* key: 0x5e09 */ 0xffff,
- /* key: 0x5e0a */ 0xffff,
- /* key: 0x5e0b */ 0x5663,
- /* key: 0x5e0c */ 0x3475,
- /* key: 0x5e0d */ 0xbc26,
- /* key: 0x5e0e */ 0xffff,
- /* key: 0x5e0f */ 0xffff,
- /* key: 0x5e10 */ 0xffff,
- /* key: 0x5e11 */ 0x5666,
- /* key: 0x5e12 */ 0xbc27,
- /* key: 0x5e13 */ 0xffff,
- /* key: 0x5e14 */ 0xbc28,
- /* key: 0x5e15 */ 0xbc29,
- /* key: 0x5e16 */ 0x4421,
- /* key: 0x5e17 */ 0xffff,
- /* key: 0x5e18 */ 0xbc2a,
- /* key: 0x5e19 */ 0x5665,
- /* key: 0x5e1a */ 0x5664,
- /* key: 0x5e1b */ 0x5667,
- /* key: 0x5e1c */ 0xffff,
- /* key: 0x5e1d */ 0x446b,
- /* key: 0x5e1e */ 0xffff,
- /* key: 0x5e1f */ 0xbc2b,
- /* key: 0x5e20 */ 0xbc2c,
- /* key: 0x5e21 */ 0xffff,
- /* key: 0x5e22 */ 0xffff,
- /* key: 0x5e23 */ 0xffff,
- /* key: 0x5e24 */ 0xffff,
- /* key: 0x5e25 */ 0x3f63,
- /* key: 0x5e26 */ 0xffff,
- /* key: 0x5e27 */ 0xffff,
- /* key: 0x5e28 */ 0xbc2e,
- /* key: 0x5e29 */ 0xffff,
- /* key: 0x5e2a */ 0xffff,
- /* key: 0x5e2b */ 0x3b55,
- /* key: 0x5e2c */ 0xffff,
- /* key: 0x5e2d */ 0x404a,
- /* key: 0x5e2e */ 0xbc2d,
- /* key: 0x5e2f */ 0x4253,
- /* key: 0x5e30 */ 0x3522,
- /* key: 0x5e31 */ 0xffff,
- /* key: 0x5e32 */ 0xbc2f,
- /* key: 0x5e33 */ 0x4422,
- /* key: 0x5e34 */ 0xffff,
- /* key: 0x5e35 */ 0xbc30,
- /* key: 0x5e36 */ 0x5668,
- /* key: 0x5e37 */ 0x5669,
- /* key: 0x5e38 */ 0x3e6f,
- /* key: 0x5e39 */ 0xffff,
- /* key: 0x5e3a */ 0xffff,
- /* key: 0x5e3b */ 0xffff,
- /* key: 0x5e3c */ 0xffff,
- /* key: 0x5e3d */ 0x4b39,
- /* key: 0x5e3e */ 0xbc31,
- /* key: 0x5e3f */ 0xffff,
- /* key: 0x5e40 */ 0x566c,
- /* key: 0x5e41 */ 0xffff,
- /* key: 0x5e42 */ 0xffff,
- /* key: 0x5e43 */ 0x566b,
- /* key: 0x5e44 */ 0x566a,
- /* key: 0x5e45 */ 0x497d,
- /* key: 0x5e46 */ 0xffff,
- /* key: 0x5e47 */ 0x5673,
- /* key: 0x5e48 */ 0xffff,
- /* key: 0x5e49 */ 0xbc34,
- /* key: 0x5e4a */ 0xffff,
- /* key: 0x5e4b */ 0xbc32,
- /* key: 0x5e4c */ 0x4b5a,
- /* key: 0x5e4d */ 0xffff,
- /* key: 0x5e4e */ 0x566d,
- /* key: 0x5e4f */ 0xffff,
- /* key: 0x5e50 */ 0xbc33,
- /* key: 0x5e51 */ 0xbc35,
- /* key: 0x5e52 */ 0xffff,
- /* key: 0x5e53 */ 0xffff,
- /* key: 0x5e54 */ 0x566f,
- /* key: 0x5e55 */ 0x4b6b,
- /* key: 0x5e56 */ 0xbc36,
- /* key: 0x5e57 */ 0x566e,
- /* key: 0x5e58 */ 0xbc37,
- /* key: 0x5e59 */ 0xffff,
- /* key: 0x5e5a */ 0xffff,
- /* key: 0x5e5b */ 0xbc38,
- /* key: 0x5e5c */ 0xbc39,
- /* key: 0x5e5d */ 0xffff,
- /* key: 0x5e5e */ 0xbc3a,
- /* key: 0x5e5f */ 0x5670,
- /* key: 0x5e60 */ 0xffff,
- /* key: 0x5e61 */ 0x4828,
- /* key: 0x5e62 */ 0x5671,
- /* key: 0x5e63 */ 0x4a3e,
- /* key: 0x5e64 */ 0x5672,
- /* key: 0x5e65 */ 0xffff,
- /* key: 0x5e66 */ 0xffff,
- /* key: 0x5e67 */ 0xffff,
- /* key: 0x5e68 */ 0xbc3b,
- /* key: 0x5e69 */ 0xffff,
- /* key: 0x5e6a */ 0xbc3c,
- /* key: 0x5e6b */ 0xbc3d,
- /* key: 0x5e6c */ 0xbc3e,
- /* key: 0x5e6d */ 0xbc3f,
- /* key: 0x5e6e */ 0xbc40,
- /* key: 0x5e6f */ 0xffff,
- /* key: 0x5e70 */ 0xbc41,
- /* key: 0x5e71 */ 0xffff,
- /* key: 0x5e72 */ 0x3433,
- /* key: 0x5e73 */ 0x4a3f,
- /* key: 0x5e74 */ 0x472f,
- /* key: 0x5e75 */ 0x5674,
- /* key: 0x5e76 */ 0x5675,
- /* key: 0x5e77 */ 0xffff,
- /* key: 0x5e78 */ 0x392c,
- /* key: 0x5e79 */ 0x3434,
- /* key: 0x5e7a */ 0x5676,
- /* key: 0x5e7b */ 0x3838,
- /* key: 0x5e7c */ 0x4d44,
- /* key: 0x5e7d */ 0x4d29,
- /* key: 0x5e7e */ 0x3476,
- /* key: 0x5e7f */ 0x5678,
- /* key: 0x5e80 */ 0xbc42,
- /* key: 0x5e81 */ 0x4423,
- /* key: 0x5e82 */ 0xffff,
- /* key: 0x5e83 */ 0x392d,
- /* key: 0x5e84 */ 0x3e31,
- /* key: 0x5e85 */ 0xffff,
- /* key: 0x5e86 */ 0xffff,
- /* key: 0x5e87 */ 0x485f,
- /* key: 0x5e88 */ 0xffff,
- /* key: 0x5e89 */ 0xffff,
- /* key: 0x5e8a */ 0x3e32,
- /* key: 0x5e8b */ 0xbc43,
- /* key: 0x5e8c */ 0xffff,
- /* key: 0x5e8d */ 0xffff,
- /* key: 0x5e8e */ 0xbc44,
- /* key: 0x5e8f */ 0x3d78,
- /* key: 0x5e90 */ 0xffff,
- /* key: 0x5e91 */ 0xffff,
- /* key: 0x5e92 */ 0xffff,
- /* key: 0x5e93 */ 0xffff,
- /* key: 0x5e94 */ 0xffff,
- /* key: 0x5e95 */ 0x446c,
- /* key: 0x5e96 */ 0x4a79,
- /* key: 0x5e97 */ 0x4539,
- /* key: 0x5e98 */ 0xffff,
- /* key: 0x5e99 */ 0xffff,
- /* key: 0x5e9a */ 0x392e,
- /* key: 0x5e9b */ 0xffff,
- /* key: 0x5e9c */ 0x495c,
- /* key: 0x5e9d */ 0xffff,
- /* key: 0x5e9e */ 0xffff,
- /* key: 0x5e9f */ 0xffff,
- /* key: 0x5ea0 */ 0x5679,
- /* key: 0x5ea1 */ 0xffff,
- /* key: 0x5ea2 */ 0xbc45,
- /* key: 0x5ea3 */ 0xffff,
- /* key: 0x5ea4 */ 0xbc46,
- /* key: 0x5ea5 */ 0xbc47,
- /* key: 0x5ea6 */ 0x4559,
- /* key: 0x5ea7 */ 0x3a42,
- /* key: 0x5ea8 */ 0xbc48,
- /* key: 0x5ea9 */ 0xffff,
- /* key: 0x5eaa */ 0xbc49,
- /* key: 0x5eab */ 0x384b,
- /* key: 0x5eac */ 0xbc4a,
- /* key: 0x5ead */ 0x446d,
- /* key: 0x5eae */ 0xffff,
- /* key: 0x5eaf */ 0xffff,
- /* key: 0x5eb0 */ 0xffff,
- /* key: 0x5eb1 */ 0xbc4b,
- /* key: 0x5eb2 */ 0xffff,
- /* key: 0x5eb3 */ 0xbc4c,
- /* key: 0x5eb4 */ 0xffff,
- /* key: 0x5eb5 */ 0x3043,
- /* key: 0x5eb6 */ 0x3d6e,
- /* key: 0x5eb7 */ 0x392f,
- /* key: 0x5eb8 */ 0x4d47,
- /* key: 0x5eb9 */ 0xffff,
- /* key: 0x5eba */ 0xffff,
- /* key: 0x5ebb */ 0xffff,
- /* key: 0x5ebc */ 0xffff,
- /* key: 0x5ebd */ 0xbc4d,
- /* key: 0x5ebe */ 0xbc4e,
- /* key: 0x5ebf */ 0xbc4f,
- /* key: 0x5ec0 */ 0xffff,
- /* key: 0x5ec1 */ 0x567a,
- /* key: 0x5ec2 */ 0x567b,
- /* key: 0x5ec3 */ 0x4751,
- /* key: 0x5ec4 */ 0xffff,
- /* key: 0x5ec5 */ 0xffff,
- /* key: 0x5ec6 */ 0xbc50,
- /* key: 0x5ec7 */ 0xffff,
- /* key: 0x5ec8 */ 0x567c,
- /* key: 0x5ec9 */ 0x4e77,
- /* key: 0x5eca */ 0x4f2d,
- /* key: 0x5ecb */ 0xbc52,
- /* key: 0x5ecc */ 0xbc51,
- /* key: 0x5ecd */ 0xffff,
- /* key: 0x5ece */ 0xbc53,
- /* key: 0x5ecf */ 0x567e,
- /* key: 0x5ed0 */ 0x567d,
- /* key: 0x5ed1 */ 0xbc54,
- /* key: 0x5ed2 */ 0xbc55,
- /* key: 0x5ed3 */ 0x3347,
- /* key: 0x5ed4 */ 0xbc56,
- /* key: 0x5ed5 */ 0xbc57,
- /* key: 0x5ed6 */ 0x5721,
- /* key: 0x5ed7 */ 0xffff,
- /* key: 0x5ed8 */ 0xffff,
- /* key: 0x5ed9 */ 0xffff,
- /* key: 0x5eda */ 0x5724,
- /* key: 0x5edb */ 0x5725,
- /* key: 0x5edc */ 0xbc58,
- /* key: 0x5edd */ 0x5723,
- /* key: 0x5ede */ 0xbc59,
- /* key: 0x5edf */ 0x4940,
- /* key: 0x5ee0 */ 0x3e33,
- /* key: 0x5ee1 */ 0x5727,
- /* key: 0x5ee2 */ 0x5726,
- /* key: 0x5ee3 */ 0x5722,
- /* key: 0x5ee4 */ 0xffff,
- /* key: 0x5ee5 */ 0xbc5a,
- /* key: 0x5ee6 */ 0xffff,
- /* key: 0x5ee7 */ 0xffff,
- /* key: 0x5ee8 */ 0x5728,
- /* key: 0x5ee9 */ 0x5729,
- /* key: 0x5eea */ 0xffff,
- /* key: 0x5eeb */ 0xbc5b,
- /* key: 0x5eec */ 0x572a,
- /* key: 0x5eed */ 0xffff,
- /* key: 0x5eee */ 0xffff,
- /* key: 0x5eef */ 0xffff,
- /* key: 0x5ef0 */ 0x572d,
- /* key: 0x5ef1 */ 0x572b,
- /* key: 0x5ef2 */ 0xffff,
- /* key: 0x5ef3 */ 0x572c,
- /* key: 0x5ef4 */ 0x572e,
- /* key: 0x5ef5 */ 0xffff,
- /* key: 0x5ef6 */ 0x3164,
- /* key: 0x5ef7 */ 0x446e,
- /* key: 0x5ef8 */ 0x572f,
- /* key: 0x5ef9 */ 0xffff,
- /* key: 0x5efa */ 0x377a,
- /* key: 0x5efb */ 0x3276,
- /* key: 0x5efc */ 0x4736,
- /* key: 0x5efd */ 0xffff,
- /* key: 0x5efe */ 0x5730,
- /* key: 0x5eff */ 0x467b,
- /* branch: 0x5f0X */ 6224,
- /* branch: 0x5f1X */ 6240,
- /* branch: 0x5f2X */ 6256,
- /* branch: 0x5f3X */ 6272,
- /* branch: 0x5f4X */ 6288,
- /* branch: 0x5f5X */ 6304,
- /* branch: 0x5f6X */ 6320,
- /* branch: 0x5f7X */ 6336,
- /* branch: 0x5f8X */ 6352,
- /* branch: 0x5f9X */ 6368,
- /* branch: 0x5faX */ 6384,
- /* branch: 0x5fbX */ 6400,
- /* branch: 0x5fcX */ 6416,
- /* branch: 0x5fdX */ 6432,
- /* branch: 0x5feX */ 6448,
- /* branch: 0x5ffX */ 6464,
- /* key: 0x5f00 */ 0xffff,
- /* key: 0x5f01 */ 0x4a5b,
- /* key: 0x5f02 */ 0xbc5c,
- /* key: 0x5f03 */ 0x5731,
- /* key: 0x5f04 */ 0x4f2e,
- /* key: 0x5f05 */ 0xffff,
- /* key: 0x5f06 */ 0xbc5d,
- /* key: 0x5f07 */ 0xbc5e,
- /* key: 0x5f08 */ 0xbc5f,
- /* key: 0x5f09 */ 0x5732,
- /* key: 0x5f0a */ 0x4a40,
- /* key: 0x5f0b */ 0x5735,
- /* key: 0x5f0c */ 0x5021,
- /* key: 0x5f0d */ 0x5031,
- /* key: 0x5f0e */ 0xbc60,
- /* key: 0x5f0f */ 0x3c30,
- /* key: 0x5f10 */ 0x4675,
- /* key: 0x5f11 */ 0x5736,
- /* key: 0x5f12 */ 0xffff,
- /* key: 0x5f13 */ 0x355d,
- /* key: 0x5f14 */ 0x4424,
- /* key: 0x5f15 */ 0x307a,
- /* key: 0x5f16 */ 0x5737,
- /* key: 0x5f17 */ 0x4a26,
- /* key: 0x5f18 */ 0x3930,
- /* key: 0x5f19 */ 0xbc61,
- /* key: 0x5f1a */ 0xffff,
- /* key: 0x5f1b */ 0x4350,
- /* key: 0x5f1c */ 0xbc62,
- /* key: 0x5f1d */ 0xbc63,
- /* key: 0x5f1e */ 0xffff,
- /* key: 0x5f1f */ 0x446f,
- /* key: 0x5f20 */ 0xffff,
- /* key: 0x5f21 */ 0xbc64,
- /* key: 0x5f22 */ 0xbc65,
- /* key: 0x5f23 */ 0xbc66,
- /* key: 0x5f24 */ 0xbc67,
- /* key: 0x5f25 */ 0x4c6f,
- /* key: 0x5f26 */ 0x3839,
- /* key: 0x5f27 */ 0x384c,
- /* key: 0x5f28 */ 0xbc68,
- /* key: 0x5f29 */ 0x5738,
- /* key: 0x5f2a */ 0xffff,
- /* key: 0x5f2b */ 0xbc69,
- /* key: 0x5f2c */ 0xbc6a,
- /* key: 0x5f2d */ 0x5739,
- /* key: 0x5f2e */ 0xbc6b,
- /* key: 0x5f2f */ 0x573f,
- /* key: 0x5f30 */ 0xbc6c,
- /* key: 0x5f31 */ 0x3c65,
- /* key: 0x5f32 */ 0xffff,
- /* key: 0x5f33 */ 0xffff,
- /* key: 0x5f34 */ 0xbc6d,
- /* key: 0x5f35 */ 0x4425,
- /* key: 0x5f36 */ 0xbc6e,
- /* key: 0x5f37 */ 0x362f,
- /* key: 0x5f38 */ 0x573a,
- /* key: 0x5f39 */ 0xffff,
- /* key: 0x5f3a */ 0xffff,
- /* key: 0x5f3b */ 0xbc6f,
- /* key: 0x5f3c */ 0x492b,
- /* key: 0x5f3d */ 0xbc70,
- /* key: 0x5f3e */ 0x4346,
- /* key: 0x5f3f */ 0xbc71,
- /* key: 0x5f40 */ 0xbc72,
- /* key: 0x5f41 */ 0x573b,
- /* key: 0x5f42 */ 0xffff,
- /* key: 0x5f43 */ 0xffff,
- /* key: 0x5f44 */ 0xbc73,
- /* key: 0x5f45 */ 0xbc74,
- /* key: 0x5f46 */ 0xffff,
- /* key: 0x5f47 */ 0xbc75,
- /* key: 0x5f48 */ 0x573c,
- /* key: 0x5f49 */ 0xffff,
- /* key: 0x5f4a */ 0x3630,
- /* key: 0x5f4b */ 0xffff,
- /* key: 0x5f4c */ 0x573d,
- /* key: 0x5f4d */ 0xbc76,
- /* key: 0x5f4e */ 0x573e,
- /* key: 0x5f4f */ 0xffff,
- /* key: 0x5f50 */ 0xbc77,
- /* key: 0x5f51 */ 0x5740,
- /* key: 0x5f52 */ 0xffff,
- /* key: 0x5f53 */ 0x4576,
- /* key: 0x5f54 */ 0xbc78,
- /* key: 0x5f55 */ 0xffff,
- /* key: 0x5f56 */ 0x5741,
- /* key: 0x5f57 */ 0x5742,
- /* key: 0x5f58 */ 0xbc79,
- /* key: 0x5f59 */ 0x5743,
- /* key: 0x5f5a */ 0xffff,
- /* key: 0x5f5b */ 0xbc7a,
- /* key: 0x5f5c */ 0x5734,
- /* key: 0x5f5d */ 0x5733,
- /* key: 0x5f5e */ 0xffff,
- /* key: 0x5f5f */ 0xffff,
- /* key: 0x5f60 */ 0xbc7b,
- /* key: 0x5f61 */ 0x5744,
- /* key: 0x5f62 */ 0x3741,
- /* key: 0x5f63 */ 0xbc7c,
- /* key: 0x5f64 */ 0xbc7d,
- /* key: 0x5f65 */ 0xffff,
- /* key: 0x5f66 */ 0x4927,
- /* key: 0x5f67 */ 0xbc7e,
- /* key: 0x5f68 */ 0xffff,
- /* key: 0x5f69 */ 0x3a4c,
- /* key: 0x5f6a */ 0x4937,
- /* key: 0x5f6b */ 0x4426,
- /* key: 0x5f6c */ 0x494b,
- /* key: 0x5f6d */ 0x5745,
- /* key: 0x5f6e */ 0xffff,
- /* key: 0x5f6f */ 0xbd21,
- /* key: 0x5f70 */ 0x3e34,
- /* key: 0x5f71 */ 0x3146,
- /* key: 0x5f72 */ 0xbd22,
- /* key: 0x5f73 */ 0x5746,
- /* key: 0x5f74 */ 0xbd23,
- /* key: 0x5f75 */ 0xbd24,
- /* key: 0x5f76 */ 0xffff,
- /* key: 0x5f77 */ 0x5747,
- /* key: 0x5f78 */ 0xbd25,
- /* key: 0x5f79 */ 0x4c72,
- /* key: 0x5f7a */ 0xbd26,
- /* key: 0x5f7b */ 0xffff,
- /* key: 0x5f7c */ 0x4860,
- /* key: 0x5f7d */ 0xbd27,
- /* key: 0x5f7e */ 0xbd28,
- /* key: 0x5f7f */ 0x574a,
- /* key: 0x5f80 */ 0x317d,
- /* key: 0x5f81 */ 0x402c,
- /* key: 0x5f82 */ 0x5749,
- /* key: 0x5f83 */ 0x5748,
- /* key: 0x5f84 */ 0x3742,
- /* key: 0x5f85 */ 0x4254,
- /* key: 0x5f86 */ 0xffff,
- /* key: 0x5f87 */ 0x574e,
- /* key: 0x5f88 */ 0x574c,
- /* key: 0x5f89 */ 0xbd29,
- /* key: 0x5f8a */ 0x574b,
- /* key: 0x5f8b */ 0x4e27,
- /* key: 0x5f8c */ 0x3865,
- /* key: 0x5f8d */ 0xbd2a,
- /* key: 0x5f8e */ 0xffff,
- /* key: 0x5f8f */ 0xbd2b,
- /* key: 0x5f90 */ 0x3d79,
- /* key: 0x5f91 */ 0x574d,
- /* key: 0x5f92 */ 0x454c,
- /* key: 0x5f93 */ 0x3d3e,
- /* key: 0x5f94 */ 0xffff,
- /* key: 0x5f95 */ 0xffff,
- /* key: 0x5f96 */ 0xbd2c,
- /* key: 0x5f97 */ 0x4640,
- /* key: 0x5f98 */ 0x5751,
- /* key: 0x5f99 */ 0x5750,
- /* key: 0x5f9a */ 0xffff,
- /* key: 0x5f9b */ 0xffff,
- /* key: 0x5f9c */ 0xbd2d,
- /* key: 0x5f9d */ 0xbd2e,
- /* key: 0x5f9e */ 0x574f,
- /* key: 0x5f9f */ 0xffff,
- /* key: 0x5fa0 */ 0x5752,
- /* key: 0x5fa1 */ 0x3866,
- /* key: 0x5fa2 */ 0xbd2f,
- /* key: 0x5fa3 */ 0xffff,
- /* key: 0x5fa4 */ 0xbd32,
- /* key: 0x5fa5 */ 0xffff,
- /* key: 0x5fa6 */ 0xffff,
- /* key: 0x5fa7 */ 0xbd30,
- /* key: 0x5fa8 */ 0x5753,
- /* key: 0x5fa9 */ 0x497c,
- /* key: 0x5faa */ 0x3d5b,
- /* key: 0x5fab */ 0xbd31,
- /* key: 0x5fac */ 0xbd33,
- /* key: 0x5fad */ 0x5754,
- /* key: 0x5fae */ 0x4879,
- /* key: 0x5faf */ 0xbd34,
- /* key: 0x5fb0 */ 0xbd35,
- /* key: 0x5fb1 */ 0xbd36,
- /* key: 0x5fb2 */ 0xffff,
- /* key: 0x5fb3 */ 0x4641,
- /* key: 0x5fb4 */ 0x4427,
- /* key: 0x5fb5 */ 0xffff,
- /* key: 0x5fb6 */ 0xffff,
- /* key: 0x5fb7 */ 0xffff,
- /* key: 0x5fb8 */ 0xbd37,
- /* key: 0x5fb9 */ 0x4530,
- /* key: 0x5fba */ 0xffff,
- /* key: 0x5fbb */ 0xffff,
- /* key: 0x5fbc */ 0x5755,
- /* key: 0x5fbd */ 0x352b,
- /* key: 0x5fbe */ 0xffff,
- /* key: 0x5fbf */ 0xffff,
- /* key: 0x5fc0 */ 0xffff,
- /* key: 0x5fc1 */ 0xffff,
- /* key: 0x5fc2 */ 0xffff,
- /* key: 0x5fc3 */ 0x3f34,
- /* key: 0x5fc4 */ 0xbd38,
- /* key: 0x5fc5 */ 0x492c,
- /* key: 0x5fc6 */ 0xffff,
- /* key: 0x5fc7 */ 0xbd39,
- /* key: 0x5fc8 */ 0xbd3a,
- /* key: 0x5fc9 */ 0xbd3b,
- /* key: 0x5fca */ 0xffff,
- /* key: 0x5fcb */ 0xbd3c,
- /* key: 0x5fcc */ 0x3477,
- /* key: 0x5fcd */ 0x4726,
- /* key: 0x5fce */ 0xffff,
- /* key: 0x5fcf */ 0xffff,
- /* key: 0x5fd0 */ 0xbd3d,
- /* key: 0x5fd1 */ 0xbd3e,
- /* key: 0x5fd2 */ 0xbd3f,
- /* key: 0x5fd3 */ 0xbd40,
- /* key: 0x5fd4 */ 0xbd41,
- /* key: 0x5fd5 */ 0xffff,
- /* key: 0x5fd6 */ 0x5756,
- /* key: 0x5fd7 */ 0x3b56,
- /* key: 0x5fd8 */ 0x4b3a,
- /* key: 0x5fd9 */ 0x4b3b,
- /* key: 0x5fda */ 0xffff,
- /* key: 0x5fdb */ 0xffff,
- /* key: 0x5fdc */ 0x317e,
- /* key: 0x5fdd */ 0x575b,
- /* key: 0x5fde */ 0xbd42,
- /* key: 0x5fdf */ 0xffff,
- /* key: 0x5fe0 */ 0x4369,
- /* key: 0x5fe1 */ 0xbd43,
- /* key: 0x5fe2 */ 0xbd44,
- /* key: 0x5fe3 */ 0xffff,
- /* key: 0x5fe4 */ 0x5758,
- /* key: 0x5fe5 */ 0xffff,
- /* key: 0x5fe6 */ 0xffff,
- /* key: 0x5fe7 */ 0xffff,
- /* key: 0x5fe8 */ 0xbd45,
- /* key: 0x5fe9 */ 0xbd46,
- /* key: 0x5fea */ 0xbd47,
- /* key: 0x5feb */ 0x3277,
- /* key: 0x5fec */ 0xbd48,
- /* key: 0x5fed */ 0xbd49,
- /* key: 0x5fee */ 0xbd4a,
- /* key: 0x5fef */ 0xbd4b,
- /* key: 0x5ff0 */ 0x582d,
- /* key: 0x5ff1 */ 0x575a,
- /* key: 0x5ff2 */ 0xbd4c,
- /* key: 0x5ff3 */ 0xbd4d,
- /* key: 0x5ff4 */ 0xffff,
- /* key: 0x5ff5 */ 0x4730,
- /* key: 0x5ff6 */ 0xbd4e,
- /* key: 0x5ff7 */ 0xffff,
- /* key: 0x5ff8 */ 0x5759,
- /* key: 0x5ff9 */ 0xffff,
- /* key: 0x5ffa */ 0xbd4f,
- /* key: 0x5ffb */ 0x5757,
- /* key: 0x5ffc */ 0xbd50,
- /* key: 0x5ffd */ 0x397a,
- /* key: 0x5ffe */ 0xffff,
- /* key: 0x5fff */ 0x575d,
- /* branch: 0x60XX */ 6496,
- /* branch: 0x61XX */ 6768,
- /* branch: 0x62XX */ 7040,
- /* branch: 0x63XX */ 7312,
- /* branch: 0x64XX */ 7584,
- /* branch: 0x65XX */ 7856,
- /* branch: 0x66XX */ 8128,
- /* branch: 0x67XX */ 8400,
- /* branch: 0x68XX */ 8672,
- /* branch: 0x69XX */ 8944,
- /* branch: 0x6aXX */ 9216,
- /* branch: 0x6bXX */ 9488,
- /* branch: 0x6cXX */ 9760,
- /* branch: 0x6dXX */ 10032,
- /* branch: 0x6eXX */ 10304,
- /* branch: 0x6fXX */ 10576,
- /* branch: 0x600X */ 6512,
- /* branch: 0x601X */ 6528,
- /* branch: 0x602X */ 6544,
- /* branch: 0x603X */ 6560,
- /* branch: 0x604X */ 6576,
- /* branch: 0x605X */ 6592,
- /* branch: 0x606X */ 6608,
- /* branch: 0x607X */ 6624,
- /* branch: 0x608X */ 6640,
- /* branch: 0x609X */ 6656,
- /* branch: 0x60aX */ 6672,
- /* branch: 0x60bX */ 6688,
- /* branch: 0x60cX */ 6704,
- /* branch: 0x60dX */ 6720,
- /* branch: 0x60eX */ 6736,
- /* branch: 0x60fX */ 6752,
- /* key: 0x6000 */ 0xffff,
- /* key: 0x6001 */ 0xffff,
- /* key: 0x6002 */ 0xffff,
- /* key: 0x6003 */ 0xffff,
- /* key: 0x6004 */ 0xffff,
- /* key: 0x6005 */ 0xffff,
- /* key: 0x6006 */ 0xffff,
- /* key: 0x6007 */ 0xbd51,
- /* key: 0x6008 */ 0xffff,
- /* key: 0x6009 */ 0xffff,
- /* key: 0x600a */ 0xbd52,
- /* key: 0x600b */ 0xffff,
- /* key: 0x600c */ 0xffff,
- /* key: 0x600d */ 0xbd53,
- /* key: 0x600e */ 0x5763,
- /* key: 0x600f */ 0x5769,
- /* key: 0x6010 */ 0x5761,
- /* key: 0x6011 */ 0xffff,
- /* key: 0x6012 */ 0x455c,
- /* key: 0x6013 */ 0xbd54,
- /* key: 0x6014 */ 0xbd55,
- /* key: 0x6015 */ 0x5766,
- /* key: 0x6016 */ 0x495d,
- /* key: 0x6017 */ 0xbd56,
- /* key: 0x6018 */ 0xbd57,
- /* key: 0x6019 */ 0x5760,
- /* key: 0x601a */ 0xbd58,
- /* key: 0x601b */ 0x5765,
- /* key: 0x601c */ 0x4e67,
- /* key: 0x601d */ 0x3b57,
- /* key: 0x601e */ 0xffff,
- /* key: 0x601f */ 0xbd59,
- /* key: 0x6020 */ 0x4255,
- /* key: 0x6021 */ 0x575e,
- /* key: 0x6022 */ 0xffff,
- /* key: 0x6023 */ 0xffff,
- /* key: 0x6024 */ 0xbd5a,
- /* key: 0x6025 */ 0x355e,
- /* key: 0x6026 */ 0x5768,
- /* key: 0x6027 */ 0x402d,
- /* key: 0x6028 */ 0x3165,
- /* key: 0x6029 */ 0x5762,
- /* key: 0x602a */ 0x3278,
- /* key: 0x602b */ 0x5767,
- /* key: 0x602c */ 0xffff,
- /* key: 0x602d */ 0xbd5b,
- /* key: 0x602e */ 0xffff,
- /* key: 0x602f */ 0x3631,
- /* key: 0x6030 */ 0xffff,
- /* key: 0x6031 */ 0x5764,
- /* key: 0x6032 */ 0xffff,
- /* key: 0x6033 */ 0xbd5c,
- /* key: 0x6034 */ 0xffff,
- /* key: 0x6035 */ 0xbd5d,
- /* key: 0x6036 */ 0xffff,
- /* key: 0x6037 */ 0xffff,
- /* key: 0x6038 */ 0xffff,
- /* key: 0x6039 */ 0xffff,
- /* key: 0x603a */ 0x576a,
- /* key: 0x603b */ 0xffff,
- /* key: 0x603c */ 0xffff,
- /* key: 0x603d */ 0xffff,
- /* key: 0x603e */ 0xffff,
- /* key: 0x603f */ 0xffff,
- /* key: 0x6040 */ 0xbd5e,
- /* key: 0x6041 */ 0x576c,
- /* key: 0x6042 */ 0x5776,
- /* key: 0x6043 */ 0x5774,
- /* key: 0x6044 */ 0xffff,
- /* key: 0x6045 */ 0xffff,
- /* key: 0x6046 */ 0x5771,
- /* key: 0x6047 */ 0xbd5f,
- /* key: 0x6048 */ 0xbd60,
- /* key: 0x6049 */ 0xbd61,
- /* key: 0x604a */ 0x5770,
- /* key: 0x604b */ 0x4e78,
- /* key: 0x604c */ 0xbd62,
- /* key: 0x604d */ 0x5772,
- /* key: 0x604e */ 0xffff,
- /* key: 0x604f */ 0xffff,
- /* key: 0x6050 */ 0x3632,
- /* key: 0x6051 */ 0xbd63,
- /* key: 0x6052 */ 0x3931,
- /* key: 0x6053 */ 0xffff,
- /* key: 0x6054 */ 0xbd64,
- /* key: 0x6055 */ 0x3d7a,
- /* key: 0x6056 */ 0xbd65,
- /* key: 0x6057 */ 0xbd66,
- /* key: 0x6058 */ 0xffff,
- /* key: 0x6059 */ 0x5779,
- /* key: 0x605a */ 0x576b,
- /* key: 0x605b */ 0xffff,
- /* key: 0x605c */ 0xffff,
- /* key: 0x605d */ 0xbd67,
- /* key: 0x605e */ 0xffff,
- /* key: 0x605f */ 0x576f,
- /* key: 0x6060 */ 0x575f,
- /* key: 0x6061 */ 0xbd68,
- /* key: 0x6062 */ 0x327a,
- /* key: 0x6063 */ 0x5773,
- /* key: 0x6064 */ 0x5775,
- /* key: 0x6065 */ 0x4351,
- /* key: 0x6066 */ 0xffff,
- /* key: 0x6067 */ 0xbd69,
- /* key: 0x6068 */ 0x3a28,
- /* key: 0x6069 */ 0x3238,
- /* key: 0x606a */ 0x576d,
- /* key: 0x606b */ 0x5778,
- /* key: 0x606c */ 0x5777,
- /* key: 0x606d */ 0x3633,
- /* key: 0x606e */ 0xffff,
- /* key: 0x606f */ 0x4229,
- /* key: 0x6070 */ 0x3366,
- /* key: 0x6071 */ 0xbd6a,
- /* key: 0x6072 */ 0xffff,
- /* key: 0x6073 */ 0xffff,
- /* key: 0x6074 */ 0xffff,
- /* key: 0x6075 */ 0x3743,
- /* key: 0x6076 */ 0xffff,
- /* key: 0x6077 */ 0x576e,
- /* key: 0x6078 */ 0xffff,
- /* key: 0x6079 */ 0xffff,
- /* key: 0x607a */ 0xffff,
- /* key: 0x607b */ 0xffff,
- /* key: 0x607c */ 0xffff,
- /* key: 0x607d */ 0xffff,
- /* key: 0x607e */ 0xbd6b,
- /* key: 0x607f */ 0xbd6c,
- /* key: 0x6080 */ 0xffff,
- /* key: 0x6081 */ 0x577a,
- /* key: 0x6082 */ 0xbd6d,
- /* key: 0x6083 */ 0x577d,
- /* key: 0x6084 */ 0x5821,
- /* key: 0x6085 */ 0xffff,
- /* key: 0x6086 */ 0xbd6e,
- /* key: 0x6087 */ 0xffff,
- /* key: 0x6088 */ 0xbd6f,
- /* key: 0x6089 */ 0x3c3d,
- /* key: 0x608a */ 0xbd70,
- /* key: 0x608b */ 0x5827,
- /* key: 0x608c */ 0x4470,
- /* key: 0x608d */ 0x577b,
- /* key: 0x608e */ 0xbd71,
- /* key: 0x608f */ 0xffff,
- /* key: 0x6090 */ 0xffff,
- /* key: 0x6091 */ 0xbd72,
- /* key: 0x6092 */ 0x5825,
- /* key: 0x6093 */ 0xbd73,
- /* key: 0x6094 */ 0x3279,
- /* key: 0x6095 */ 0xbd74,
- /* key: 0x6096 */ 0x5823,
- /* key: 0x6097 */ 0x5824,
- /* key: 0x6098 */ 0xbd75,
- /* key: 0x6099 */ 0xffff,
- /* key: 0x609a */ 0x577e,
- /* key: 0x609b */ 0x5822,
- /* key: 0x609c */ 0xffff,
- /* key: 0x609d */ 0xbd76,
- /* key: 0x609e */ 0xbd77,
- /* key: 0x609f */ 0x3867,
- /* key: 0x60a0 */ 0x4d2a,
- /* key: 0x60a1 */ 0xffff,
- /* key: 0x60a2 */ 0xbd78,
- /* key: 0x60a3 */ 0x3435,
- /* key: 0x60a4 */ 0xbd79,
- /* key: 0x60a5 */ 0xbd7a,
- /* key: 0x60a6 */ 0x3159,
- /* key: 0x60a7 */ 0x5826,
- /* key: 0x60a8 */ 0xbd7b,
- /* key: 0x60a9 */ 0x473a,
- /* key: 0x60aa */ 0x302d,
- /* key: 0x60ab */ 0xffff,
- /* key: 0x60ac */ 0xffff,
- /* key: 0x60ad */ 0xffff,
- /* key: 0x60ae */ 0xffff,
- /* key: 0x60af */ 0xffff,
- /* key: 0x60b0 */ 0xbd7c,
- /* key: 0x60b1 */ 0xbd7d,
- /* key: 0x60b2 */ 0x4861,
- /* key: 0x60b3 */ 0x575c,
- /* key: 0x60b4 */ 0x582c,
- /* key: 0x60b5 */ 0x5830,
- /* key: 0x60b6 */ 0x4c65,
- /* key: 0x60b7 */ 0xbd7e,
- /* key: 0x60b8 */ 0x5829,
- /* key: 0x60b9 */ 0xffff,
- /* key: 0x60ba */ 0xffff,
- /* key: 0x60bb */ 0xbe21,
- /* key: 0x60bc */ 0x4569,
- /* key: 0x60bd */ 0x582e,
- /* key: 0x60be */ 0xbe22,
- /* key: 0x60bf */ 0xffff,
- /* key: 0x60c0 */ 0xffff,
- /* key: 0x60c1 */ 0xffff,
- /* key: 0x60c2 */ 0xbe23,
- /* key: 0x60c3 */ 0xffff,
- /* key: 0x60c4 */ 0xbe24,
- /* key: 0x60c5 */ 0x3e70,
- /* key: 0x60c6 */ 0x582f,
- /* key: 0x60c7 */ 0x4657,
- /* key: 0x60c8 */ 0xbe25,
- /* key: 0x60c9 */ 0xbe26,
- /* key: 0x60ca */ 0xbe27,
- /* key: 0x60cb */ 0xbe28,
- /* key: 0x60cc */ 0xffff,
- /* key: 0x60cd */ 0xffff,
- /* key: 0x60ce */ 0xbe29,
- /* key: 0x60cf */ 0xbe2a,
- /* key: 0x60d0 */ 0xffff,
- /* key: 0x60d1 */ 0x4f47,
- /* key: 0x60d2 */ 0xffff,
- /* key: 0x60d3 */ 0x582b,
- /* key: 0x60d4 */ 0xbe2b,
- /* key: 0x60d5 */ 0xbe2c,
- /* key: 0x60d6 */ 0xffff,
- /* key: 0x60d7 */ 0xffff,
- /* key: 0x60d8 */ 0x5831,
- /* key: 0x60d9 */ 0xbe2d,
- /* key: 0x60da */ 0x397b,
- /* key: 0x60db */ 0xbe2e,
- /* key: 0x60dc */ 0x404b,
- /* key: 0x60dd */ 0xbe2f,
- /* key: 0x60de */ 0xbe30,
- /* key: 0x60df */ 0x3054,
- /* key: 0x60e0 */ 0x582a,
- /* key: 0x60e1 */ 0x5828,
- /* key: 0x60e2 */ 0xbe31,
- /* key: 0x60e3 */ 0x415a,
- /* key: 0x60e4 */ 0xffff,
- /* key: 0x60e5 */ 0xbe32,
- /* key: 0x60e6 */ 0xffff,
- /* key: 0x60e7 */ 0x577c,
- /* key: 0x60e8 */ 0x3b34,
- /* key: 0x60e9 */ 0xffff,
- /* key: 0x60ea */ 0xffff,
- /* key: 0x60eb */ 0xffff,
- /* key: 0x60ec */ 0xffff,
- /* key: 0x60ed */ 0xffff,
- /* key: 0x60ee */ 0xffff,
- /* key: 0x60ef */ 0xffff,
- /* key: 0x60f0 */ 0x4246,
- /* key: 0x60f1 */ 0x583d,
- /* key: 0x60f2 */ 0xbe33,
- /* key: 0x60f3 */ 0x415b,
- /* key: 0x60f4 */ 0x5838,
- /* key: 0x60f5 */ 0xbe34,
- /* key: 0x60f6 */ 0x5835,
- /* key: 0x60f7 */ 0x5836,
- /* key: 0x60f8 */ 0xbe35,
- /* key: 0x60f9 */ 0x3c66,
- /* key: 0x60fa */ 0x5839,
- /* key: 0x60fb */ 0x583c,
- /* key: 0x60fc */ 0xbe36,
- /* key: 0x60fd */ 0xbe37,
- /* key: 0x60fe */ 0xffff,
- /* key: 0x60ff */ 0xffff,
- /* branch: 0x610X */ 6784,
- /* branch: 0x611X */ 6800,
- /* branch: 0x612X */ 6816,
- /* branch: 0x613X */ 6832,
- /* branch: 0x614X */ 6848,
- /* branch: 0x615X */ 6864,
- /* branch: 0x616X */ 6880,
- /* branch: 0x617X */ 6896,
- /* branch: 0x618X */ 6912,
- /* branch: 0x619X */ 6928,
- /* branch: 0x61aX */ 6944,
- /* branch: 0x61bX */ 6960,
- /* branch: 0x61cX */ 6976,
- /* branch: 0x61dX */ 6992,
- /* branch: 0x61eX */ 7008,
- /* branch: 0x61fX */ 7024,
- /* key: 0x6100 */ 0x5837,
- /* key: 0x6101 */ 0x3d25,
- /* key: 0x6102 */ 0xbe38,
- /* key: 0x6103 */ 0x583a,
- /* key: 0x6104 */ 0xffff,
- /* key: 0x6105 */ 0xffff,
- /* key: 0x6106 */ 0x5834,
- /* key: 0x6107 */ 0xbe39,
- /* key: 0x6108 */ 0x4c7c,
- /* key: 0x6109 */ 0x4c7b,
- /* key: 0x610a */ 0xbe3a,
- /* key: 0x610b */ 0xffff,
- /* key: 0x610c */ 0xbe3b,
- /* key: 0x610d */ 0x583e,
- /* key: 0x610e */ 0x583f,
- /* key: 0x610f */ 0x3055,
- /* key: 0x6110 */ 0xbe3c,
- /* key: 0x6111 */ 0xbe3d,
- /* key: 0x6112 */ 0xbe3e,
- /* key: 0x6113 */ 0xbe3f,
- /* key: 0x6114 */ 0xbe40,
- /* key: 0x6115 */ 0x5833,
- /* key: 0x6116 */ 0xbe41,
- /* key: 0x6117 */ 0xbe42,
- /* key: 0x6118 */ 0xffff,
- /* key: 0x6119 */ 0xbe43,
- /* key: 0x611a */ 0x3672,
- /* key: 0x611b */ 0x3026,
- /* key: 0x611c */ 0xbe44,
- /* key: 0x611d */ 0xffff,
- /* key: 0x611e */ 0xbe45,
- /* key: 0x611f */ 0x3436,
- /* key: 0x6120 */ 0xffff,
- /* key: 0x6121 */ 0x583b,
- /* key: 0x6122 */ 0xbe46,
- /* key: 0x6123 */ 0xffff,
- /* key: 0x6124 */ 0xffff,
- /* key: 0x6125 */ 0xffff,
- /* key: 0x6126 */ 0xffff,
- /* key: 0x6127 */ 0x5843,
- /* key: 0x6128 */ 0x5842,
- /* key: 0x6129 */ 0xffff,
- /* key: 0x612a */ 0xbe47,
- /* key: 0x612b */ 0xbe48,
- /* key: 0x612c */ 0x5847,
- /* key: 0x612d */ 0xffff,
- /* key: 0x612e */ 0xffff,
- /* key: 0x612f */ 0xffff,
- /* key: 0x6130 */ 0xbe49,
- /* key: 0x6131 */ 0xbe4a,
- /* key: 0x6132 */ 0xffff,
- /* key: 0x6133 */ 0xffff,
- /* key: 0x6134 */ 0x5848,
- /* key: 0x6135 */ 0xbe4b,
- /* key: 0x6136 */ 0xbe4c,
- /* key: 0x6137 */ 0xbe4d,
- /* key: 0x6138 */ 0xffff,
- /* key: 0x6139 */ 0xbe4e,
- /* key: 0x613a */ 0xffff,
- /* key: 0x613b */ 0xffff,
- /* key: 0x613c */ 0x5846,
- /* key: 0x613d */ 0x5849,
- /* key: 0x613e */ 0x5841,
- /* key: 0x613f */ 0x5845,
- /* key: 0x6140 */ 0xffff,
- /* key: 0x6141 */ 0xbe4f,
- /* key: 0x6142 */ 0x584a,
- /* key: 0x6143 */ 0xffff,
- /* key: 0x6144 */ 0x584b,
- /* key: 0x6145 */ 0xbe50,
- /* key: 0x6146 */ 0xbe51,
- /* key: 0x6147 */ 0x5840,
- /* key: 0x6148 */ 0x3b7c,
- /* key: 0x6149 */ 0xbe52,
- /* key: 0x614a */ 0x5844,
- /* key: 0x614b */ 0x4256,
- /* key: 0x614c */ 0x3932,
- /* key: 0x614d */ 0x5832,
- /* key: 0x614e */ 0x3f35,
- /* key: 0x614f */ 0xffff,
- /* key: 0x6150 */ 0xffff,
- /* key: 0x6151 */ 0xffff,
- /* key: 0x6152 */ 0xffff,
- /* key: 0x6153 */ 0x5858,
- /* key: 0x6154 */ 0xffff,
- /* key: 0x6155 */ 0x4a69,
- /* key: 0x6156 */ 0xffff,
- /* key: 0x6157 */ 0xffff,
- /* key: 0x6158 */ 0x584e,
- /* key: 0x6159 */ 0x584f,
- /* key: 0x615a */ 0x5850,
- /* key: 0x615b */ 0xffff,
- /* key: 0x615c */ 0xffff,
- /* key: 0x615d */ 0x5857,
- /* key: 0x615e */ 0xbe53,
- /* key: 0x615f */ 0x5856,
- /* key: 0x6160 */ 0xbe54,
- /* key: 0x6161 */ 0xffff,
- /* key: 0x6162 */ 0x4b7d,
- /* key: 0x6163 */ 0x3437,
- /* key: 0x6164 */ 0xffff,
- /* key: 0x6165 */ 0x5854,
- /* key: 0x6166 */ 0xffff,
- /* key: 0x6167 */ 0x3745,
- /* key: 0x6168 */ 0x3334,
- /* key: 0x6169 */ 0xffff,
- /* key: 0x616a */ 0xffff,
- /* key: 0x616b */ 0x5851,
- /* key: 0x616c */ 0xbe55,
- /* key: 0x616d */ 0xffff,
- /* key: 0x616e */ 0x4e38,
- /* key: 0x616f */ 0x5853,
- /* key: 0x6170 */ 0x3056,
- /* key: 0x6171 */ 0x5855,
- /* key: 0x6172 */ 0xbe56,
- /* key: 0x6173 */ 0x584c,
- /* key: 0x6174 */ 0x5852,
- /* key: 0x6175 */ 0x5859,
- /* key: 0x6176 */ 0x3744,
- /* key: 0x6177 */ 0x584d,
- /* key: 0x6178 */ 0xbe57,
- /* key: 0x6179 */ 0xffff,
- /* key: 0x617a */ 0xffff,
- /* key: 0x617b */ 0xbe58,
- /* key: 0x617c */ 0xbe59,
- /* key: 0x617d */ 0xffff,
- /* key: 0x617e */ 0x4d5d,
- /* key: 0x617f */ 0xbe5a,
- /* key: 0x6180 */ 0xbe5b,
- /* key: 0x6181 */ 0xbe5c,
- /* key: 0x6182 */ 0x4d2b,
- /* key: 0x6183 */ 0xbe5d,
- /* key: 0x6184 */ 0xbe5e,
- /* key: 0x6185 */ 0xffff,
- /* key: 0x6186 */ 0xffff,
- /* key: 0x6187 */ 0x585c,
- /* key: 0x6188 */ 0xffff,
- /* key: 0x6189 */ 0xffff,
- /* key: 0x618a */ 0x5860,
- /* key: 0x618b */ 0xbe5f,
- /* key: 0x618c */ 0xffff,
- /* key: 0x618d */ 0xbe60,
- /* key: 0x618e */ 0x417e,
- /* key: 0x618f */ 0xffff,
- /* key: 0x6190 */ 0x4e79,
- /* key: 0x6191 */ 0x5861,
- /* key: 0x6192 */ 0xbe61,
- /* key: 0x6193 */ 0xbe62,
- /* key: 0x6194 */ 0x585e,
- /* key: 0x6195 */ 0xffff,
- /* key: 0x6196 */ 0x585b,
- /* key: 0x6197 */ 0xbe63,
- /* key: 0x6198 */ 0xbe64,
- /* key: 0x6199 */ 0x585a,
- /* key: 0x619a */ 0x585f,
- /* key: 0x619b */ 0xffff,
- /* key: 0x619c */ 0xbe65,
- /* key: 0x619d */ 0xbe66,
- /* key: 0x619e */ 0xffff,
- /* key: 0x619f */ 0xbe67,
- /* key: 0x61a0 */ 0xbe68,
- /* key: 0x61a1 */ 0xffff,
- /* key: 0x61a2 */ 0xffff,
- /* key: 0x61a3 */ 0xffff,
- /* key: 0x61a4 */ 0x4a30,
- /* key: 0x61a5 */ 0xbe69,
- /* key: 0x61a6 */ 0xffff,
- /* key: 0x61a7 */ 0x4634,
- /* key: 0x61a8 */ 0xbe6a,
- /* key: 0x61a9 */ 0x3746,
- /* key: 0x61aa */ 0xbe6b,
- /* key: 0x61ab */ 0x5862,
- /* key: 0x61ac */ 0x585d,
- /* key: 0x61ad */ 0xbe6c,
- /* key: 0x61ae */ 0x5863,
- /* key: 0x61af */ 0xffff,
- /* key: 0x61b0 */ 0xffff,
- /* key: 0x61b1 */ 0xffff,
- /* key: 0x61b2 */ 0x377b,
- /* key: 0x61b3 */ 0xffff,
- /* key: 0x61b4 */ 0xffff,
- /* key: 0x61b5 */ 0xffff,
- /* key: 0x61b6 */ 0x3231,
- /* key: 0x61b7 */ 0xffff,
- /* key: 0x61b8 */ 0xbe6d,
- /* key: 0x61b9 */ 0xbe6e,
- /* key: 0x61ba */ 0x586b,
- /* key: 0x61bb */ 0xffff,
- /* key: 0x61bc */ 0xbe6f,
- /* key: 0x61bd */ 0xffff,
- /* key: 0x61be */ 0x3438,
- /* key: 0x61bf */ 0xffff,
- /* key: 0x61c0 */ 0xbe70,
- /* key: 0x61c1 */ 0xbe71,
- /* key: 0x61c2 */ 0xbe72,
- /* key: 0x61c3 */ 0x5869,
- /* key: 0x61c4 */ 0xffff,
- /* key: 0x61c5 */ 0xffff,
- /* key: 0x61c6 */ 0x586a,
- /* key: 0x61c7 */ 0x3a29,
- /* key: 0x61c8 */ 0x5868,
- /* key: 0x61c9 */ 0x5866,
- /* key: 0x61ca */ 0x5865,
- /* key: 0x61cb */ 0x586c,
- /* key: 0x61cc */ 0x5864,
- /* key: 0x61cd */ 0x586e,
- /* key: 0x61ce */ 0xbe73,
- /* key: 0x61cf */ 0xbe74,
- /* key: 0x61d0 */ 0x327b,
- /* key: 0x61d1 */ 0xffff,
- /* key: 0x61d2 */ 0xffff,
- /* key: 0x61d3 */ 0xffff,
- /* key: 0x61d4 */ 0xffff,
- /* key: 0x61d5 */ 0xbe75,
- /* key: 0x61d6 */ 0xffff,
- /* key: 0x61d7 */ 0xffff,
- /* key: 0x61d8 */ 0xffff,
- /* key: 0x61d9 */ 0xffff,
- /* key: 0x61da */ 0xffff,
- /* key: 0x61db */ 0xffff,
- /* key: 0x61dc */ 0xbe76,
- /* key: 0x61dd */ 0xbe77,
- /* key: 0x61de */ 0xbe78,
- /* key: 0x61df */ 0xbe79,
- /* key: 0x61e0 */ 0xffff,
- /* key: 0x61e1 */ 0xbe7a,
- /* key: 0x61e2 */ 0xbe7b,
- /* key: 0x61e3 */ 0x5870,
- /* key: 0x61e4 */ 0xffff,
- /* key: 0x61e5 */ 0xbe7e,
- /* key: 0x61e6 */ 0x586f,
- /* key: 0x61e7 */ 0xbe7c,
- /* key: 0x61e8 */ 0xffff,
- /* key: 0x61e9 */ 0xbe7d,
- /* key: 0x61ea */ 0xffff,
- /* key: 0x61eb */ 0xffff,
- /* key: 0x61ec */ 0xbf21,
- /* key: 0x61ed */ 0xbf22,
- /* key: 0x61ee */ 0xffff,
- /* key: 0x61ef */ 0xbf23,
- /* key: 0x61f0 */ 0xffff,
- /* key: 0x61f1 */ 0xffff,
- /* key: 0x61f2 */ 0x4428,
- /* key: 0x61f3 */ 0xffff,
- /* key: 0x61f4 */ 0x5873,
- /* key: 0x61f5 */ 0xffff,
- /* key: 0x61f6 */ 0x5871,
- /* key: 0x61f7 */ 0x5867,
- /* key: 0x61f8 */ 0x377c,
- /* key: 0x61f9 */ 0xffff,
- /* key: 0x61fa */ 0x5872,
- /* key: 0x61fb */ 0xffff,
- /* key: 0x61fc */ 0x5876,
- /* key: 0x61fd */ 0x5875,
- /* key: 0x61fe */ 0x5877,
- /* key: 0x61ff */ 0x5874,
- /* branch: 0x620X */ 7056,
- /* branch: 0x621X */ 7072,
- /* branch: 0x622X */ 7088,
- /* branch: 0x623X */ 7104,
- /* branch: 0x624X */ 7120,
- /* branch: 0x625X */ 7136,
- /* branch: 0x626X */ 7152,
- /* branch: 0x627X */ 7168,
- /* branch: 0x628X */ 7184,
- /* branch: 0x629X */ 7200,
- /* branch: 0x62aX */ 7216,
- /* branch: 0x62bX */ 7232,
- /* branch: 0x62cX */ 7248,
- /* branch: 0x62dX */ 7264,
- /* branch: 0x62eX */ 7280,
- /* branch: 0x62fX */ 7296,
- /* key: 0x6200 */ 0x5878,
- /* key: 0x6201 */ 0xbf24,
- /* key: 0x6202 */ 0xffff,
- /* key: 0x6203 */ 0xbf25,
- /* key: 0x6204 */ 0xbf26,
- /* key: 0x6205 */ 0xffff,
- /* key: 0x6206 */ 0xffff,
- /* key: 0x6207 */ 0xbf27,
- /* key: 0x6208 */ 0x5879,
- /* key: 0x6209 */ 0x587a,
- /* key: 0x620a */ 0x4a6a,
- /* key: 0x620b */ 0xffff,
- /* key: 0x620c */ 0x587c,
- /* key: 0x620d */ 0x587b,
- /* key: 0x620e */ 0x3d3f,
- /* key: 0x620f */ 0xffff,
- /* key: 0x6210 */ 0x402e,
- /* key: 0x6211 */ 0x3266,
- /* key: 0x6212 */ 0x327c,
- /* key: 0x6213 */ 0xbf28,
- /* key: 0x6214 */ 0x587d,
- /* key: 0x6215 */ 0xbf29,
- /* key: 0x6216 */ 0x303f,
- /* key: 0x6217 */ 0xffff,
- /* key: 0x6218 */ 0xffff,
- /* key: 0x6219 */ 0xffff,
- /* key: 0x621a */ 0x404c,
- /* key: 0x621b */ 0x587e,
- /* key: 0x621c */ 0xbf2a,
- /* key: 0x621d */ 0x6c43,
- /* key: 0x621e */ 0x5921,
- /* key: 0x621f */ 0x3761,
- /* key: 0x6220 */ 0xbf2b,
- /* key: 0x6221 */ 0x5922,
- /* key: 0x6222 */ 0xbf2c,
- /* key: 0x6223 */ 0xbf2d,
- /* key: 0x6224 */ 0xffff,
- /* key: 0x6225 */ 0xffff,
- /* key: 0x6226 */ 0x406f,
- /* key: 0x6227 */ 0xbf2e,
- /* key: 0x6228 */ 0xffff,
- /* key: 0x6229 */ 0xbf2f,
- /* key: 0x622a */ 0x5923,
- /* key: 0x622b */ 0xbf30,
- /* key: 0x622c */ 0xffff,
- /* key: 0x622d */ 0xffff,
- /* key: 0x622e */ 0x5924,
- /* key: 0x622f */ 0x353a,
- /* key: 0x6230 */ 0x5925,
- /* key: 0x6231 */ 0xffff,
- /* key: 0x6232 */ 0x5926,
- /* key: 0x6233 */ 0x5927,
- /* key: 0x6234 */ 0x4257,
- /* key: 0x6235 */ 0xffff,
- /* key: 0x6236 */ 0xffff,
- /* key: 0x6237 */ 0xffff,
- /* key: 0x6238 */ 0x384d,
- /* key: 0x6239 */ 0xbf31,
- /* key: 0x623a */ 0xffff,
- /* key: 0x623b */ 0x4c61,
- /* key: 0x623c */ 0xffff,
- /* key: 0x623d */ 0xbf32,
- /* key: 0x623e */ 0xffff,
- /* key: 0x623f */ 0x4b3c,
- /* key: 0x6240 */ 0x3d6a,
- /* key: 0x6241 */ 0x5928,
- /* key: 0x6242 */ 0xbf33,
- /* key: 0x6243 */ 0xbf34,
- /* key: 0x6244 */ 0xbf35,
- /* key: 0x6245 */ 0xffff,
- /* key: 0x6246 */ 0xbf36,
- /* key: 0x6247 */ 0x4070,
- /* key: 0x6248 */ 0x6e3d,
- /* key: 0x6249 */ 0x4862,
- /* key: 0x624a */ 0xffff,
- /* key: 0x624b */ 0x3c6a,
- /* key: 0x624c */ 0xbf37,
- /* key: 0x624d */ 0x3a4d,
- /* key: 0x624e */ 0x5929,
- /* key: 0x624f */ 0xffff,
- /* key: 0x6250 */ 0xbf38,
- /* key: 0x6251 */ 0xbf39,
- /* key: 0x6252 */ 0xbf3a,
- /* key: 0x6253 */ 0x4247,
- /* key: 0x6254 */ 0xbf3b,
- /* key: 0x6255 */ 0x4a27,
- /* key: 0x6256 */ 0xbf3c,
- /* key: 0x6257 */ 0xffff,
- /* key: 0x6258 */ 0x4271,
- /* key: 0x6259 */ 0xffff,
- /* key: 0x625a */ 0xbf3d,
- /* key: 0x625b */ 0x592c,
- /* key: 0x625c */ 0xbf3e,
- /* key: 0x625d */ 0xffff,
- /* key: 0x625e */ 0x592a,
- /* key: 0x625f */ 0xffff,
- /* key: 0x6260 */ 0x592d,
- /* key: 0x6261 */ 0xffff,
- /* key: 0x6262 */ 0xffff,
- /* key: 0x6263 */ 0x592b,
- /* key: 0x6264 */ 0xbf3f,
- /* key: 0x6265 */ 0xffff,
- /* key: 0x6266 */ 0xffff,
- /* key: 0x6267 */ 0xffff,
- /* key: 0x6268 */ 0x592e,
- /* key: 0x6269 */ 0xffff,
- /* key: 0x626a */ 0xffff,
- /* key: 0x626b */ 0xffff,
- /* key: 0x626c */ 0xffff,
- /* key: 0x626d */ 0xbf40,
- /* key: 0x626e */ 0x4a31,
- /* key: 0x626f */ 0xbf41,
- /* key: 0x6270 */ 0xffff,
- /* key: 0x6271 */ 0x3037,
- /* key: 0x6272 */ 0xffff,
- /* key: 0x6273 */ 0xbf42,
- /* key: 0x6274 */ 0xffff,
- /* key: 0x6275 */ 0xffff,
- /* key: 0x6276 */ 0x495e,
- /* key: 0x6277 */ 0xffff,
- /* key: 0x6278 */ 0xffff,
- /* key: 0x6279 */ 0x4863,
- /* key: 0x627a */ 0xbf43,
- /* key: 0x627b */ 0xffff,
- /* key: 0x627c */ 0x592f,
- /* key: 0x627d */ 0xbf44,
- /* key: 0x627e */ 0x5932,
- /* key: 0x627f */ 0x3e35,
- /* key: 0x6280 */ 0x353b,
- /* key: 0x6281 */ 0xffff,
- /* key: 0x6282 */ 0x5930,
- /* key: 0x6283 */ 0x5937,
- /* key: 0x6284 */ 0x3e36,
- /* key: 0x6285 */ 0xffff,
- /* key: 0x6286 */ 0xffff,
- /* key: 0x6287 */ 0xffff,
- /* key: 0x6288 */ 0xffff,
- /* key: 0x6289 */ 0x5931,
- /* key: 0x628a */ 0x4744,
- /* key: 0x628b */ 0xffff,
- /* key: 0x628c */ 0xffff,
- /* key: 0x628d */ 0xbf45,
- /* key: 0x628e */ 0xbf46,
- /* key: 0x628f */ 0xbf47,
- /* key: 0x6290 */ 0xbf48,
- /* key: 0x6291 */ 0x4d5e,
- /* key: 0x6292 */ 0x5933,
- /* key: 0x6293 */ 0x5934,
- /* key: 0x6294 */ 0x5938,
- /* key: 0x6295 */ 0x456a,
- /* key: 0x6296 */ 0x5935,
- /* key: 0x6297 */ 0x3933,
- /* key: 0x6298 */ 0x405e,
- /* key: 0x6299 */ 0xffff,
- /* key: 0x629a */ 0xffff,
- /* key: 0x629b */ 0x5946,
- /* key: 0x629c */ 0x4834,
- /* key: 0x629d */ 0xffff,
- /* key: 0x629e */ 0x4272,
- /* key: 0x629f */ 0xffff,
- /* key: 0x62a0 */ 0xffff,
- /* key: 0x62a1 */ 0xffff,
- /* key: 0x62a2 */ 0xffff,
- /* key: 0x62a3 */ 0xffff,
- /* key: 0x62a4 */ 0xffff,
- /* key: 0x62a5 */ 0xffff,
- /* key: 0x62a6 */ 0xbf49,
- /* key: 0x62a7 */ 0xffff,
- /* key: 0x62a8 */ 0xbf4a,
- /* key: 0x62a9 */ 0xffff,
- /* key: 0x62aa */ 0xffff,
- /* key: 0x62ab */ 0x4864,
- /* key: 0x62ac */ 0x5a2d,
- /* key: 0x62ad */ 0xffff,
- /* key: 0x62ae */ 0xffff,
- /* key: 0x62af */ 0xffff,
- /* key: 0x62b0 */ 0xffff,
- /* key: 0x62b1 */ 0x4a7a,
- /* key: 0x62b2 */ 0xffff,
- /* key: 0x62b3 */ 0xbf4b,
- /* key: 0x62b4 */ 0xffff,
- /* key: 0x62b5 */ 0x4471,
- /* key: 0x62b6 */ 0xbf4c,
- /* key: 0x62b7 */ 0xbf4d,
- /* key: 0x62b8 */ 0xffff,
- /* key: 0x62b9 */ 0x4b75,
- /* key: 0x62ba */ 0xbf4e,
- /* key: 0x62bb */ 0x593b,
- /* key: 0x62bc */ 0x3221,
- /* key: 0x62bd */ 0x436a,
- /* key: 0x62be */ 0xbf4f,
- /* key: 0x62bf */ 0xbf50,
- /* key: 0x62c0 */ 0xffff,
- /* key: 0x62c1 */ 0xffff,
- /* key: 0x62c2 */ 0x5944,
- /* key: 0x62c3 */ 0xffff,
- /* key: 0x62c4 */ 0xbf51,
- /* key: 0x62c5 */ 0x4334,
- /* key: 0x62c6 */ 0x593e,
- /* key: 0x62c7 */ 0x5945,
- /* key: 0x62c8 */ 0x5940,
- /* key: 0x62c9 */ 0x5947,
- /* key: 0x62ca */ 0x5943,
- /* key: 0x62cb */ 0xffff,
- /* key: 0x62cc */ 0x5942,
- /* key: 0x62cd */ 0x476f,
- /* key: 0x62ce */ 0xbf52,
- /* key: 0x62cf */ 0x593c,
- /* key: 0x62d0 */ 0x327d,
- /* key: 0x62d1 */ 0x593a,
- /* key: 0x62d2 */ 0x3571,
- /* key: 0x62d3 */ 0x4273,
- /* key: 0x62d4 */ 0x5936,
- /* key: 0x62d5 */ 0xbf53,
- /* key: 0x62d6 */ 0xbf54,
- /* key: 0x62d7 */ 0x5939,
- /* key: 0x62d8 */ 0x3934,
- /* key: 0x62d9 */ 0x405b,
- /* key: 0x62da */ 0xbf55,
- /* key: 0x62db */ 0x3e37,
- /* key: 0x62dc */ 0x5941,
- /* key: 0x62dd */ 0x4752,
- /* key: 0x62de */ 0xffff,
- /* key: 0x62df */ 0xffff,
- /* key: 0x62e0 */ 0x3572,
- /* key: 0x62e1 */ 0x3348,
- /* key: 0x62e2 */ 0xffff,
- /* key: 0x62e3 */ 0xffff,
- /* key: 0x62e4 */ 0xffff,
- /* key: 0x62e5 */ 0xffff,
- /* key: 0x62e6 */ 0xffff,
- /* key: 0x62e7 */ 0xffff,
- /* key: 0x62e8 */ 0xffff,
- /* key: 0x62e9 */ 0xffff,
- /* key: 0x62ea */ 0xbf56,
- /* key: 0x62eb */ 0xffff,
- /* key: 0x62ec */ 0x3367,
- /* key: 0x62ed */ 0x3f21,
- /* key: 0x62ee */ 0x5949,
- /* key: 0x62ef */ 0x594e,
- /* key: 0x62f0 */ 0xffff,
- /* key: 0x62f1 */ 0x594a,
- /* key: 0x62f2 */ 0xbf57,
- /* key: 0x62f3 */ 0x377d,
- /* key: 0x62f4 */ 0xbf58,
- /* key: 0x62f5 */ 0x594f,
- /* key: 0x62f6 */ 0x3b22,
- /* key: 0x62f7 */ 0x3969,
- /* key: 0x62f8 */ 0xffff,
- /* key: 0x62f9 */ 0xffff,
- /* key: 0x62fa */ 0xffff,
- /* key: 0x62fb */ 0xffff,
- /* key: 0x62fc */ 0xbf59,
- /* key: 0x62fd */ 0xbf5a,
- /* key: 0x62fe */ 0x3d26,
- /* key: 0x62ff */ 0x593d,
- /* branch: 0x630X */ 7328,
- /* branch: 0x631X */ 7344,
- /* branch: 0x632X */ 7360,
- /* branch: 0x633X */ 7376,
- /* branch: 0x634X */ 7392,
- /* branch: 0x635X */ 7408,
- /* branch: 0x636X */ 7424,
- /* branch: 0x637X */ 7440,
- /* branch: 0x638X */ 7456,
- /* branch: 0x639X */ 7472,
- /* branch: 0x63aX */ 7488,
- /* branch: 0x63bX */ 7504,
- /* branch: 0x63cX */ 7520,
- /* branch: 0x63dX */ 7536,
- /* branch: 0x63eX */ 7552,
- /* branch: 0x63fX */ 7568,
- /* key: 0x6300 */ 0xffff,
- /* key: 0x6301 */ 0x3b7d,
- /* key: 0x6302 */ 0x594c,
- /* key: 0x6303 */ 0xbf5b,
- /* key: 0x6304 */ 0xbf5c,
- /* key: 0x6305 */ 0xffff,
- /* key: 0x6306 */ 0xffff,
- /* key: 0x6307 */ 0x3b58,
- /* key: 0x6308 */ 0x594d,
- /* key: 0x6309 */ 0x3044,
- /* key: 0x630a */ 0xbf5d,
- /* key: 0x630b */ 0xbf5e,
- /* key: 0x630c */ 0x5948,
- /* key: 0x630d */ 0xbf5f,
- /* key: 0x630e */ 0xffff,
- /* key: 0x630f */ 0xffff,
- /* key: 0x6310 */ 0xbf60,
- /* key: 0x6311 */ 0x4429,
- /* key: 0x6312 */ 0xffff,
- /* key: 0x6313 */ 0xbf61,
- /* key: 0x6314 */ 0xffff,
- /* key: 0x6315 */ 0xffff,
- /* key: 0x6316 */ 0xbf62,
- /* key: 0x6317 */ 0xffff,
- /* key: 0x6318 */ 0xbf63,
- /* key: 0x6319 */ 0x3573,
- /* key: 0x631a */ 0xffff,
- /* key: 0x631b */ 0xffff,
- /* key: 0x631c */ 0xffff,
- /* key: 0x631d */ 0xffff,
- /* key: 0x631e */ 0xffff,
- /* key: 0x631f */ 0x3634,
- /* key: 0x6320 */ 0xffff,
- /* key: 0x6321 */ 0xffff,
- /* key: 0x6322 */ 0xffff,
- /* key: 0x6323 */ 0xffff,
- /* key: 0x6324 */ 0xffff,
- /* key: 0x6325 */ 0xffff,
- /* key: 0x6326 */ 0xffff,
- /* key: 0x6327 */ 0x594b,
- /* key: 0x6328 */ 0x3027,
- /* key: 0x6329 */ 0xbf64,
- /* key: 0x632a */ 0xbf65,
- /* key: 0x632b */ 0x3a43,
- /* key: 0x632c */ 0xffff,
- /* key: 0x632d */ 0xbf66,
- /* key: 0x632e */ 0xffff,
- /* key: 0x632f */ 0x3f36,
- /* key: 0x6330 */ 0xffff,
- /* key: 0x6331 */ 0xffff,
- /* key: 0x6332 */ 0xffff,
- /* key: 0x6333 */ 0xffff,
- /* key: 0x6334 */ 0xffff,
- /* key: 0x6335 */ 0xbf67,
- /* key: 0x6336 */ 0xbf68,
- /* key: 0x6337 */ 0xffff,
- /* key: 0x6338 */ 0xffff,
- /* key: 0x6339 */ 0xbf69,
- /* key: 0x633a */ 0x4472,
- /* key: 0x633b */ 0xffff,
- /* key: 0x633c */ 0xbf6a,
- /* key: 0x633d */ 0x4854,
- /* key: 0x633e */ 0x5951,
- /* key: 0x633f */ 0x415e,
- /* key: 0x6340 */ 0xffff,
- /* key: 0x6341 */ 0xbf6b,
- /* key: 0x6342 */ 0xbf6c,
- /* key: 0x6343 */ 0xbf6d,
- /* key: 0x6344 */ 0xbf6e,
- /* key: 0x6345 */ 0xffff,
- /* key: 0x6346 */ 0xbf6f,
- /* key: 0x6347 */ 0xffff,
- /* key: 0x6348 */ 0xffff,
- /* key: 0x6349 */ 0x422a,
- /* key: 0x634a */ 0xbf70,
- /* key: 0x634b */ 0xbf71,
- /* key: 0x634c */ 0x3b2b,
- /* key: 0x634d */ 0x5952,
- /* key: 0x634e */ 0xbf72,
- /* key: 0x634f */ 0x5954,
- /* key: 0x6350 */ 0x5950,
- /* key: 0x6351 */ 0xffff,
- /* key: 0x6352 */ 0xbf73,
- /* key: 0x6353 */ 0xbf74,
- /* key: 0x6354 */ 0xbf75,
- /* key: 0x6355 */ 0x4a61,
- /* key: 0x6356 */ 0xffff,
- /* key: 0x6357 */ 0x443d,
- /* key: 0x6358 */ 0xbf76,
- /* key: 0x6359 */ 0xffff,
- /* key: 0x635a */ 0xffff,
- /* key: 0x635b */ 0xbf77,
- /* key: 0x635c */ 0x415c,
- /* key: 0x635d */ 0xffff,
- /* key: 0x635e */ 0xffff,
- /* key: 0x635f */ 0xffff,
- /* key: 0x6360 */ 0xffff,
- /* key: 0x6361 */ 0xffff,
- /* key: 0x6362 */ 0xffff,
- /* key: 0x6363 */ 0xffff,
- /* key: 0x6364 */ 0xffff,
- /* key: 0x6365 */ 0xbf78,
- /* key: 0x6366 */ 0xbf79,
- /* key: 0x6367 */ 0x4a7b,
- /* key: 0x6368 */ 0x3c4e,
- /* key: 0x6369 */ 0x5960,
- /* key: 0x636a */ 0xffff,
- /* key: 0x636b */ 0x595f,
- /* key: 0x636c */ 0xbf7a,
- /* key: 0x636d */ 0xbf7b,
- /* key: 0x636e */ 0x3f78,
- /* key: 0x636f */ 0xffff,
- /* key: 0x6370 */ 0xffff,
- /* key: 0x6371 */ 0xbf7c,
- /* key: 0x6372 */ 0x377e,
- /* key: 0x6373 */ 0xffff,
- /* key: 0x6374 */ 0xbf7d,
- /* key: 0x6375 */ 0xbf7e,
- /* key: 0x6376 */ 0x5959,
- /* key: 0x6377 */ 0x3e39,
- /* key: 0x6378 */ 0xc021,
- /* key: 0x6379 */ 0xffff,
- /* key: 0x637a */ 0x4668,
- /* key: 0x637b */ 0x4731,
- /* key: 0x637c */ 0xc022,
- /* key: 0x637d */ 0xc023,
- /* key: 0x637e */ 0xffff,
- /* key: 0x637f */ 0xc024,
- /* key: 0x6380 */ 0x5957,
- /* key: 0x6381 */ 0xffff,
- /* key: 0x6382 */ 0xc025,
- /* key: 0x6383 */ 0x415d,
- /* key: 0x6384 */ 0xc026,
- /* key: 0x6385 */ 0xffff,
- /* key: 0x6386 */ 0xffff,
- /* key: 0x6387 */ 0xc027,
- /* key: 0x6388 */ 0x3c78,
- /* key: 0x6389 */ 0x595c,
- /* key: 0x638a */ 0xc028,
- /* key: 0x638b */ 0xffff,
- /* key: 0x638c */ 0x3e38,
- /* key: 0x638d */ 0xffff,
- /* key: 0x638e */ 0x5956,
- /* key: 0x638f */ 0x595b,
- /* key: 0x6390 */ 0xc029,
- /* key: 0x6391 */ 0xffff,
- /* key: 0x6392 */ 0x4753,
- /* key: 0x6393 */ 0xffff,
- /* key: 0x6394 */ 0xc02a,
- /* key: 0x6395 */ 0xc02b,
- /* key: 0x6396 */ 0x5955,
- /* key: 0x6397 */ 0xffff,
- /* key: 0x6398 */ 0x3721,
- /* key: 0x6399 */ 0xc02c,
- /* key: 0x639a */ 0xc02d,
- /* key: 0x639b */ 0x335d,
- /* key: 0x639c */ 0xffff,
- /* key: 0x639d */ 0xffff,
- /* key: 0x639e */ 0xc02e,
- /* key: 0x639f */ 0x595d,
- /* key: 0x63a0 */ 0x4e2b,
- /* key: 0x63a1 */ 0x3a4e,
- /* key: 0x63a2 */ 0x4335,
- /* key: 0x63a3 */ 0x595a,
- /* key: 0x63a4 */ 0xc02f,
- /* key: 0x63a5 */ 0x405c,
- /* key: 0x63a6 */ 0xc030,
- /* key: 0x63a7 */ 0x3935,
- /* key: 0x63a8 */ 0x3f64,
- /* key: 0x63a9 */ 0x3166,
- /* key: 0x63aa */ 0x413c,
- /* key: 0x63ab */ 0x5958,
- /* key: 0x63ac */ 0x3545,
- /* key: 0x63ad */ 0xc031,
- /* key: 0x63ae */ 0xc032,
- /* key: 0x63af */ 0xc033,
- /* key: 0x63b0 */ 0xffff,
- /* key: 0x63b1 */ 0xffff,
- /* key: 0x63b2 */ 0x3747,
- /* key: 0x63b3 */ 0xffff,
- /* key: 0x63b4 */ 0x444f,
- /* key: 0x63b5 */ 0x595e,
- /* key: 0x63b6 */ 0xffff,
- /* key: 0x63b7 */ 0xffff,
- /* key: 0x63b8 */ 0xffff,
- /* key: 0x63b9 */ 0xffff,
- /* key: 0x63ba */ 0xffff,
- /* key: 0x63bb */ 0x415f,
- /* key: 0x63bc */ 0xffff,
- /* key: 0x63bd */ 0xc034,
- /* key: 0x63be */ 0x5961,
- /* key: 0x63bf */ 0xffff,
- /* key: 0x63c0 */ 0x5963,
- /* key: 0x63c1 */ 0xc035,
- /* key: 0x63c2 */ 0xffff,
- /* key: 0x63c3 */ 0x4237,
- /* key: 0x63c4 */ 0x5969,
- /* key: 0x63c5 */ 0xc036,
- /* key: 0x63c6 */ 0x5964,
- /* key: 0x63c7 */ 0xffff,
- /* key: 0x63c8 */ 0xc037,
- /* key: 0x63c9 */ 0x5966,
- /* key: 0x63ca */ 0xffff,
- /* key: 0x63cb */ 0xffff,
- /* key: 0x63cc */ 0xffff,
- /* key: 0x63cd */ 0xffff,
- /* key: 0x63ce */ 0xc038,
- /* key: 0x63cf */ 0x4941,
- /* key: 0x63d0 */ 0x4473,
- /* key: 0x63d1 */ 0xc039,
- /* key: 0x63d2 */ 0x5967,
- /* key: 0x63d3 */ 0xc03a,
- /* key: 0x63d4 */ 0xc03b,
- /* key: 0x63d5 */ 0xc03c,
- /* key: 0x63d6 */ 0x4d2c,
- /* key: 0x63d7 */ 0xffff,
- /* key: 0x63d8 */ 0xffff,
- /* key: 0x63d9 */ 0xffff,
- /* key: 0x63da */ 0x4d48,
- /* key: 0x63db */ 0x3439,
- /* key: 0x63dc */ 0xc03d,
- /* key: 0x63dd */ 0xffff,
- /* key: 0x63de */ 0xffff,
- /* key: 0x63df */ 0xffff,
- /* key: 0x63e0 */ 0xc03e,
- /* key: 0x63e1 */ 0x302e,
- /* key: 0x63e2 */ 0xffff,
- /* key: 0x63e3 */ 0x5965,
- /* key: 0x63e4 */ 0xffff,
- /* key: 0x63e5 */ 0xc03f,
- /* key: 0x63e6 */ 0xffff,
- /* key: 0x63e7 */ 0xffff,
- /* key: 0x63e8 */ 0xffff,
- /* key: 0x63e9 */ 0x5962,
- /* key: 0x63ea */ 0xc040,
- /* key: 0x63eb */ 0xffff,
- /* key: 0x63ec */ 0xc041,
- /* key: 0x63ed */ 0xffff,
- /* key: 0x63ee */ 0x3478,
- /* key: 0x63ef */ 0xffff,
- /* key: 0x63f0 */ 0xffff,
- /* key: 0x63f1 */ 0xffff,
- /* key: 0x63f2 */ 0xc042,
- /* key: 0x63f3 */ 0xc043,
- /* key: 0x63f4 */ 0x3167,
- /* key: 0x63f5 */ 0xc044,
- /* key: 0x63f6 */ 0x5968,
- /* key: 0x63f7 */ 0xffff,
- /* key: 0x63f8 */ 0xc045,
- /* key: 0x63f9 */ 0xc046,
- /* key: 0x63fa */ 0x4d49,
- /* key: 0x63fb */ 0xffff,
- /* key: 0x63fc */ 0xffff,
- /* key: 0x63fd */ 0xffff,
- /* key: 0x63fe */ 0xffff,
- /* key: 0x63ff */ 0xffff,
- /* branch: 0x640X */ 7600,
- /* branch: 0x641X */ 7616,
- /* branch: 0x642X */ 7632,
- /* branch: 0x643X */ 7648,
- /* branch: 0x644X */ 7664,
- /* branch: 0x645X */ 7680,
- /* branch: 0x646X */ 7696,
- /* branch: 0x647X */ 7712,
- /* branch: 0x648X */ 7728,
- /* branch: 0x649X */ 7744,
- /* branch: 0x64aX */ 7760,
- /* branch: 0x64bX */ 7776,
- /* branch: 0x64cX */ 7792,
- /* branch: 0x64dX */ 7808,
- /* branch: 0x64eX */ 7824,
- /* branch: 0x64fX */ 7840,
- /* key: 0x6400 */ 0xffff,
- /* key: 0x6401 */ 0xffff,
- /* key: 0x6402 */ 0xffff,
- /* key: 0x6403 */ 0xffff,
- /* key: 0x6404 */ 0xffff,
- /* key: 0x6405 */ 0xffff,
- /* key: 0x6406 */ 0x596c,
- /* key: 0x6407 */ 0xffff,
- /* key: 0x6408 */ 0xffff,
- /* key: 0x6409 */ 0xc047,
- /* key: 0x640a */ 0xc048,
- /* key: 0x640b */ 0xffff,
- /* key: 0x640c */ 0xffff,
- /* key: 0x640d */ 0x423b,
- /* key: 0x640e */ 0xffff,
- /* key: 0x640f */ 0x5973,
- /* key: 0x6410 */ 0xc049,
- /* key: 0x6411 */ 0xffff,
- /* key: 0x6412 */ 0xc04a,
- /* key: 0x6413 */ 0x596d,
- /* key: 0x6414 */ 0xc04b,
- /* key: 0x6415 */ 0xffff,
- /* key: 0x6416 */ 0x596a,
- /* key: 0x6417 */ 0x5971,
- /* key: 0x6418 */ 0xc04c,
- /* key: 0x6419 */ 0xffff,
- /* key: 0x641a */ 0xffff,
- /* key: 0x641b */ 0xffff,
- /* key: 0x641c */ 0x5953,
- /* key: 0x641d */ 0xffff,
- /* key: 0x641e */ 0xc04d,
- /* key: 0x641f */ 0xffff,
- /* key: 0x6420 */ 0xc04e,
- /* key: 0x6421 */ 0xffff,
- /* key: 0x6422 */ 0xc04f,
- /* key: 0x6423 */ 0xffff,
- /* key: 0x6424 */ 0xc050,
- /* key: 0x6425 */ 0xc051,
- /* key: 0x6426 */ 0x596e,
- /* key: 0x6427 */ 0xffff,
- /* key: 0x6428 */ 0x5972,
- /* key: 0x6429 */ 0xc052,
- /* key: 0x642a */ 0xc053,
- /* key: 0x642b */ 0xffff,
- /* key: 0x642c */ 0x4842,
- /* key: 0x642d */ 0x456b,
- /* key: 0x642e */ 0xffff,
- /* key: 0x642f */ 0xc054,
- /* key: 0x6430 */ 0xc055,
- /* key: 0x6431 */ 0xffff,
- /* key: 0x6432 */ 0xffff,
- /* key: 0x6433 */ 0xffff,
- /* key: 0x6434 */ 0x596b,
- /* key: 0x6435 */ 0xc056,
- /* key: 0x6436 */ 0x596f,
- /* key: 0x6437 */ 0xffff,
- /* key: 0x6438 */ 0xffff,
- /* key: 0x6439 */ 0xffff,
- /* key: 0x643a */ 0x3748,
- /* key: 0x643b */ 0xffff,
- /* key: 0x643c */ 0xffff,
- /* key: 0x643d */ 0xc057,
- /* key: 0x643e */ 0x3a71,
- /* key: 0x643f */ 0xc058,
- /* key: 0x6440 */ 0xffff,
- /* key: 0x6441 */ 0xffff,
- /* key: 0x6442 */ 0x405d,
- /* key: 0x6443 */ 0xffff,
- /* key: 0x6444 */ 0xffff,
- /* key: 0x6445 */ 0xffff,
- /* key: 0x6446 */ 0xffff,
- /* key: 0x6447 */ 0xffff,
- /* key: 0x6448 */ 0xffff,
- /* key: 0x6449 */ 0xffff,
- /* key: 0x644a */ 0xffff,
- /* key: 0x644b */ 0xc059,
- /* key: 0x644c */ 0xffff,
- /* key: 0x644d */ 0xffff,
- /* key: 0x644e */ 0x5977,
- /* key: 0x644f */ 0xc05a,
- /* key: 0x6450 */ 0xffff,
- /* key: 0x6451 */ 0xc05b,
- /* key: 0x6452 */ 0xc05c,
- /* key: 0x6453 */ 0xc05d,
- /* key: 0x6454 */ 0xc05e,
- /* key: 0x6455 */ 0xffff,
- /* key: 0x6456 */ 0xffff,
- /* key: 0x6457 */ 0xffff,
- /* key: 0x6458 */ 0x4526,
- /* key: 0x6459 */ 0xffff,
- /* key: 0x645a */ 0xc05f,
- /* key: 0x645b */ 0xc060,
- /* key: 0x645c */ 0xc061,
- /* key: 0x645d */ 0xc062,
- /* key: 0x645e */ 0xffff,
- /* key: 0x645f */ 0xc063,
- /* key: 0x6460 */ 0xc064,
- /* key: 0x6461 */ 0xc065,
- /* key: 0x6462 */ 0xffff,
- /* key: 0x6463 */ 0xc066,
- /* key: 0x6464 */ 0xffff,
- /* key: 0x6465 */ 0xffff,
- /* key: 0x6466 */ 0xffff,
- /* key: 0x6467 */ 0x5974,
- /* key: 0x6468 */ 0xffff,
- /* key: 0x6469 */ 0x4b60,
- /* key: 0x646a */ 0xffff,
- /* key: 0x646b */ 0xffff,
- /* key: 0x646c */ 0xffff,
- /* key: 0x646d */ 0xc067,
- /* key: 0x646e */ 0xffff,
- /* key: 0x646f */ 0x5975,
- /* key: 0x6470 */ 0xffff,
- /* key: 0x6471 */ 0xffff,
- /* key: 0x6472 */ 0xffff,
- /* key: 0x6473 */ 0xc068,
- /* key: 0x6474 */ 0xc069,
- /* key: 0x6475 */ 0xffff,
- /* key: 0x6476 */ 0x5976,
- /* key: 0x6477 */ 0xffff,
- /* key: 0x6478 */ 0x4c4e,
- /* key: 0x6479 */ 0xffff,
- /* key: 0x647a */ 0x4022,
- /* key: 0x647b */ 0xc06a,
- /* key: 0x647c */ 0xffff,
- /* key: 0x647d */ 0xc06b,
- /* key: 0x647e */ 0xffff,
- /* key: 0x647f */ 0xffff,
- /* key: 0x6480 */ 0xffff,
- /* key: 0x6481 */ 0xffff,
- /* key: 0x6482 */ 0xffff,
- /* key: 0x6483 */ 0x3762,
- /* key: 0x6484 */ 0xffff,
- /* key: 0x6485 */ 0xc06c,
- /* key: 0x6486 */ 0xffff,
- /* key: 0x6487 */ 0xc06d,
- /* key: 0x6488 */ 0x597d,
- /* key: 0x6489 */ 0xffff,
- /* key: 0x648a */ 0xffff,
- /* key: 0x648b */ 0xffff,
- /* key: 0x648c */ 0xffff,
- /* key: 0x648d */ 0xffff,
- /* key: 0x648e */ 0xffff,
- /* key: 0x648f */ 0xc06e,
- /* key: 0x6490 */ 0xc06f,
- /* key: 0x6491 */ 0xc070,
- /* key: 0x6492 */ 0x3b35,
- /* key: 0x6493 */ 0x597a,
- /* key: 0x6494 */ 0xffff,
- /* key: 0x6495 */ 0x5979,
- /* key: 0x6496 */ 0xffff,
- /* key: 0x6497 */ 0xffff,
- /* key: 0x6498 */ 0xc071,
- /* key: 0x6499 */ 0xc072,
- /* key: 0x649a */ 0x4732,
- /* key: 0x649b */ 0xc073,
- /* key: 0x649c */ 0xffff,
- /* key: 0x649d */ 0xc074,
- /* key: 0x649e */ 0x4635,
- /* key: 0x649f */ 0xc075,
- /* key: 0x64a0 */ 0xffff,
- /* key: 0x64a1 */ 0xc076,
- /* key: 0x64a2 */ 0xffff,
- /* key: 0x64a3 */ 0xc077,
- /* key: 0x64a4 */ 0x4531,
- /* key: 0x64a5 */ 0x597b,
- /* key: 0x64a6 */ 0xc078,
- /* key: 0x64a7 */ 0xffff,
- /* key: 0x64a8 */ 0xc079,
- /* key: 0x64a9 */ 0x597c,
- /* key: 0x64aa */ 0xffff,
- /* key: 0x64ab */ 0x496f,
- /* key: 0x64ac */ 0xc07a,
- /* key: 0x64ad */ 0x4745,
- /* key: 0x64ae */ 0x3b23,
- /* key: 0x64af */ 0xffff,
- /* key: 0x64b0 */ 0x4071,
- /* key: 0x64b1 */ 0xffff,
- /* key: 0x64b2 */ 0x4b50,
- /* key: 0x64b3 */ 0xc07b,
- /* key: 0x64b4 */ 0xffff,
- /* key: 0x64b5 */ 0xffff,
- /* key: 0x64b6 */ 0xffff,
- /* key: 0x64b7 */ 0xffff,
- /* key: 0x64b8 */ 0xffff,
- /* key: 0x64b9 */ 0x3349,
- /* key: 0x64ba */ 0xffff,
- /* key: 0x64bb */ 0x5a25,
- /* key: 0x64bc */ 0x597e,
- /* key: 0x64bd */ 0xc07c,
- /* key: 0x64be */ 0xc07d,
- /* key: 0x64bf */ 0xc07e,
- /* key: 0x64c0 */ 0xffff,
- /* key: 0x64c1 */ 0x4d4a,
- /* key: 0x64c2 */ 0x5a27,
- /* key: 0x64c3 */ 0xffff,
- /* key: 0x64c4 */ 0xc121,
- /* key: 0x64c5 */ 0x5a23,
- /* key: 0x64c6 */ 0xffff,
- /* key: 0x64c7 */ 0x5a24,
- /* key: 0x64c8 */ 0xffff,
- /* key: 0x64c9 */ 0xc122,
- /* key: 0x64ca */ 0xc123,
- /* key: 0x64cb */ 0xc124,
- /* key: 0x64cc */ 0xc125,
- /* key: 0x64cd */ 0x4160,
- /* key: 0x64ce */ 0xc126,
- /* key: 0x64cf */ 0xffff,
- /* key: 0x64d0 */ 0xc127,
- /* key: 0x64d1 */ 0xc128,
- /* key: 0x64d2 */ 0x5a22,
- /* key: 0x64d3 */ 0xffff,
- /* key: 0x64d4 */ 0x593f,
- /* key: 0x64d5 */ 0xc129,
- /* key: 0x64d6 */ 0xffff,
- /* key: 0x64d7 */ 0xc12a,
- /* key: 0x64d8 */ 0x5a26,
- /* key: 0x64d9 */ 0xffff,
- /* key: 0x64da */ 0x5a21,
- /* key: 0x64db */ 0xffff,
- /* key: 0x64dc */ 0xffff,
- /* key: 0x64dd */ 0xffff,
- /* key: 0x64de */ 0xffff,
- /* key: 0x64df */ 0xffff,
- /* key: 0x64e0 */ 0x5a2b,
- /* key: 0x64e1 */ 0x5a2c,
- /* key: 0x64e2 */ 0x4527,
- /* key: 0x64e3 */ 0x5a2e,
- /* key: 0x64e4 */ 0xc12b,
- /* key: 0x64e5 */ 0xc12c,
- /* key: 0x64e6 */ 0x3b24,
- /* key: 0x64e7 */ 0x5a29,
- /* key: 0x64e8 */ 0xffff,
- /* key: 0x64e9 */ 0xc12d,
- /* key: 0x64ea */ 0xc12e,
- /* key: 0x64eb */ 0xffff,
- /* key: 0x64ec */ 0x353c,
- /* key: 0x64ed */ 0xc12f,
- /* key: 0x64ee */ 0xffff,
- /* key: 0x64ef */ 0x5a2f,
- /* key: 0x64f0 */ 0xc130,
- /* key: 0x64f1 */ 0x5a28,
- /* key: 0x64f2 */ 0x5a33,
- /* key: 0x64f3 */ 0xffff,
- /* key: 0x64f4 */ 0x5a32,
- /* key: 0x64f5 */ 0xc131,
- /* key: 0x64f6 */ 0x5a31,
- /* key: 0x64f7 */ 0xc132,
- /* key: 0x64f8 */ 0xffff,
- /* key: 0x64f9 */ 0xffff,
- /* key: 0x64fa */ 0x5a34,
- /* key: 0x64fb */ 0xc133,
- /* key: 0x64fc */ 0xffff,
- /* key: 0x64fd */ 0x5a36,
- /* key: 0x64fe */ 0x3e71,
- /* key: 0x64ff */ 0xc134,
- /* branch: 0x650X */ 7872,
- /* branch: 0x651X */ 7888,
- /* branch: 0x652X */ 7904,
- /* branch: 0x653X */ 7920,
- /* branch: 0x654X */ 7936,
- /* branch: 0x655X */ 7952,
- /* branch: 0x656X */ 7968,
- /* branch: 0x657X */ 7984,
- /* branch: 0x658X */ 8000,
- /* branch: 0x659X */ 8016,
- /* branch: 0x65aX */ 8032,
- /* branch: 0x65bX */ 8048,
- /* branch: 0x65cX */ 8064,
- /* branch: 0x65dX */ 8080,
- /* branch: 0x65eX */ 8096,
- /* branch: 0x65fX */ 8112,
- /* key: 0x6500 */ 0x5a35,
- /* key: 0x6501 */ 0xc135,
- /* key: 0x6502 */ 0xffff,
- /* key: 0x6503 */ 0xffff,
- /* key: 0x6504 */ 0xc136,
- /* key: 0x6505 */ 0x5a39,
- /* key: 0x6506 */ 0xffff,
- /* key: 0x6507 */ 0xffff,
- /* key: 0x6508 */ 0xc137,
- /* key: 0x6509 */ 0xc138,
- /* key: 0x650a */ 0xc139,
- /* key: 0x650b */ 0xffff,
- /* key: 0x650c */ 0xffff,
- /* key: 0x650d */ 0xffff,
- /* key: 0x650e */ 0xffff,
- /* key: 0x650f */ 0xc13a,
- /* key: 0x6510 */ 0xffff,
- /* key: 0x6511 */ 0xffff,
- /* key: 0x6512 */ 0xffff,
- /* key: 0x6513 */ 0xc13b,
- /* key: 0x6514 */ 0xc13c,
- /* key: 0x6515 */ 0xffff,
- /* key: 0x6516 */ 0xc13d,
- /* key: 0x6517 */ 0xffff,
- /* key: 0x6518 */ 0x5a37,
- /* key: 0x6519 */ 0xc13e,
- /* key: 0x651a */ 0xffff,
- /* key: 0x651b */ 0xc13f,
- /* key: 0x651c */ 0x5a38,
- /* key: 0x651d */ 0x5970,
- /* key: 0x651e */ 0xc140,
- /* key: 0x651f */ 0xc141,
- /* key: 0x6520 */ 0xffff,
- /* key: 0x6521 */ 0xffff,
- /* key: 0x6522 */ 0xc142,
- /* key: 0x6523 */ 0x5a3b,
- /* key: 0x6524 */ 0x5a3a,
- /* key: 0x6525 */ 0xffff,
- /* key: 0x6526 */ 0xc143,
- /* key: 0x6527 */ 0xffff,
- /* key: 0x6528 */ 0xffff,
- /* key: 0x6529 */ 0xc144,
- /* key: 0x652a */ 0x5978,
- /* key: 0x652b */ 0x5a3c,
- /* key: 0x652c */ 0x5a30,
- /* key: 0x652d */ 0xffff,
- /* key: 0x652e */ 0xc145,
- /* key: 0x652f */ 0x3b59,
- /* key: 0x6530 */ 0xffff,
- /* key: 0x6531 */ 0xc146,
- /* key: 0x6532 */ 0xffff,
- /* key: 0x6533 */ 0xffff,
- /* key: 0x6534 */ 0x5a3d,
- /* key: 0x6535 */ 0x5a3e,
- /* key: 0x6536 */ 0x5a40,
- /* key: 0x6537 */ 0x5a3f,
- /* key: 0x6538 */ 0x5a41,
- /* key: 0x6539 */ 0x327e,
- /* key: 0x653a */ 0xc147,
- /* key: 0x653b */ 0x3936,
- /* key: 0x653c */ 0xc148,
- /* key: 0x653d */ 0xc149,
- /* key: 0x653e */ 0x4a7c,
- /* key: 0x653f */ 0x402f,
- /* key: 0x6540 */ 0xffff,
- /* key: 0x6541 */ 0xffff,
- /* key: 0x6542 */ 0xffff,
- /* key: 0x6543 */ 0xc14a,
- /* key: 0x6544 */ 0xffff,
- /* key: 0x6545 */ 0x384e,
- /* key: 0x6546 */ 0xffff,
- /* key: 0x6547 */ 0xc14b,
- /* key: 0x6548 */ 0x5a43,
- /* key: 0x6549 */ 0xc14c,
- /* key: 0x654a */ 0xffff,
- /* key: 0x654b */ 0xffff,
- /* key: 0x654c */ 0xffff,
- /* key: 0x654d */ 0x5a46,
- /* key: 0x654e */ 0xffff,
- /* key: 0x654f */ 0x4952,
- /* key: 0x6550 */ 0xc14d,
- /* key: 0x6551 */ 0x355f,
- /* key: 0x6552 */ 0xc14e,
- /* key: 0x6553 */ 0xffff,
- /* key: 0x6554 */ 0xc14f,
- /* key: 0x6555 */ 0x5a45,
- /* key: 0x6556 */ 0x5a44,
- /* key: 0x6557 */ 0x4754,
- /* key: 0x6558 */ 0x5a47,
- /* key: 0x6559 */ 0x3635,
- /* key: 0x655a */ 0xffff,
- /* key: 0x655b */ 0xffff,
- /* key: 0x655c */ 0xffff,
- /* key: 0x655d */ 0x5a49,
- /* key: 0x655e */ 0x5a48,
- /* key: 0x655f */ 0xc150,
- /* key: 0x6560 */ 0xc151,
- /* key: 0x6561 */ 0xffff,
- /* key: 0x6562 */ 0x343a,
- /* key: 0x6563 */ 0x3b36,
- /* key: 0x6564 */ 0xffff,
- /* key: 0x6565 */ 0xffff,
- /* key: 0x6566 */ 0x4658,
- /* key: 0x6567 */ 0xc152,
- /* key: 0x6568 */ 0xffff,
- /* key: 0x6569 */ 0xffff,
- /* key: 0x656a */ 0xffff,
- /* key: 0x656b */ 0xc153,
- /* key: 0x656c */ 0x3749,
- /* key: 0x656d */ 0xffff,
- /* key: 0x656e */ 0xffff,
- /* key: 0x656f */ 0xffff,
- /* key: 0x6570 */ 0x3f74,
- /* key: 0x6571 */ 0xffff,
- /* key: 0x6572 */ 0x5a4a,
- /* key: 0x6573 */ 0xffff,
- /* key: 0x6574 */ 0x4030,
- /* key: 0x6575 */ 0x4528,
- /* key: 0x6576 */ 0xffff,
- /* key: 0x6577 */ 0x495f,
- /* key: 0x6578 */ 0x5a4b,
- /* key: 0x6579 */ 0xffff,
- /* key: 0x657a */ 0xc154,
- /* key: 0x657b */ 0xffff,
- /* key: 0x657c */ 0xffff,
- /* key: 0x657d */ 0xc155,
- /* key: 0x657e */ 0xffff,
- /* key: 0x657f */ 0xffff,
- /* key: 0x6580 */ 0xffff,
- /* key: 0x6581 */ 0xc156,
- /* key: 0x6582 */ 0x5a4c,
- /* key: 0x6583 */ 0x5a4d,
- /* key: 0x6584 */ 0xffff,
- /* key: 0x6585 */ 0xc157,
- /* key: 0x6586 */ 0xffff,
- /* key: 0x6587 */ 0x4a38,
- /* key: 0x6588 */ 0x555d,
- /* key: 0x6589 */ 0x4046,
- /* key: 0x658a */ 0xc158,
- /* key: 0x658b */ 0xffff,
- /* key: 0x658c */ 0x494c,
- /* key: 0x658d */ 0xffff,
- /* key: 0x658e */ 0x3a58,
- /* key: 0x658f */ 0xffff,
- /* key: 0x6590 */ 0x4865,
- /* key: 0x6591 */ 0x4843,
- /* key: 0x6592 */ 0xc159,
- /* key: 0x6593 */ 0xffff,
- /* key: 0x6594 */ 0xffff,
- /* key: 0x6595 */ 0xc15a,
- /* key: 0x6596 */ 0xffff,
- /* key: 0x6597 */ 0x454d,
- /* key: 0x6598 */ 0xc15b,
- /* key: 0x6599 */ 0x4e41,
- /* key: 0x659a */ 0xffff,
- /* key: 0x659b */ 0x5a4f,
- /* key: 0x659c */ 0x3c50,
- /* key: 0x659d */ 0xc15c,
- /* key: 0x659e */ 0xffff,
- /* key: 0x659f */ 0x5a50,
- /* key: 0x65a0 */ 0xc15d,
- /* key: 0x65a1 */ 0x3036,
- /* key: 0x65a2 */ 0xffff,
- /* key: 0x65a3 */ 0xc15e,
- /* key: 0x65a4 */ 0x3654,
- /* key: 0x65a5 */ 0x404d,
- /* key: 0x65a6 */ 0xc15f,
- /* key: 0x65a7 */ 0x4960,
- /* key: 0x65a8 */ 0xffff,
- /* key: 0x65a9 */ 0xffff,
- /* key: 0x65aa */ 0xffff,
- /* key: 0x65ab */ 0x5a51,
- /* key: 0x65ac */ 0x3b42,
- /* key: 0x65ad */ 0x4347,
- /* key: 0x65ae */ 0xc160,
- /* key: 0x65af */ 0x3b5b,
- /* key: 0x65b0 */ 0x3f37,
- /* key: 0x65b1 */ 0xffff,
- /* key: 0x65b2 */ 0xc161,
- /* key: 0x65b3 */ 0xc162,
- /* key: 0x65b4 */ 0xc163,
- /* key: 0x65b5 */ 0xffff,
- /* key: 0x65b6 */ 0xffff,
- /* key: 0x65b7 */ 0x5a52,
- /* key: 0x65b8 */ 0xffff,
- /* key: 0x65b9 */ 0x4a7d,
- /* key: 0x65ba */ 0xffff,
- /* key: 0x65bb */ 0xffff,
- /* key: 0x65bc */ 0x3177,
- /* key: 0x65bd */ 0x3b5c,
- /* key: 0x65be */ 0xffff,
- /* key: 0x65bf */ 0xc164,
- /* key: 0x65c0 */ 0xffff,
- /* key: 0x65c1 */ 0x5a55,
- /* key: 0x65c2 */ 0xc165,
- /* key: 0x65c3 */ 0x5a53,
- /* key: 0x65c4 */ 0x5a56,
- /* key: 0x65c5 */ 0x4e39,
- /* key: 0x65c6 */ 0x5a54,
- /* key: 0x65c7 */ 0xffff,
- /* key: 0x65c8 */ 0xc166,
- /* key: 0x65c9 */ 0xc167,
- /* key: 0x65ca */ 0xffff,
- /* key: 0x65cb */ 0x407b,
- /* key: 0x65cc */ 0x5a57,
- /* key: 0x65cd */ 0xffff,
- /* key: 0x65ce */ 0xc168,
- /* key: 0x65cf */ 0x4232,
- /* key: 0x65d0 */ 0xc169,
- /* key: 0x65d1 */ 0xffff,
- /* key: 0x65d2 */ 0x5a58,
- /* key: 0x65d3 */ 0xffff,
- /* key: 0x65d4 */ 0xc16a,
- /* key: 0x65d5 */ 0xffff,
- /* key: 0x65d6 */ 0xc16b,
- /* key: 0x65d7 */ 0x347a,
- /* key: 0x65d8 */ 0xc16c,
- /* key: 0x65d9 */ 0x5a5a,
- /* key: 0x65da */ 0xffff,
- /* key: 0x65db */ 0x5a59,
- /* key: 0x65dc */ 0xffff,
- /* key: 0x65dd */ 0xffff,
- /* key: 0x65de */ 0xffff,
- /* key: 0x65df */ 0xc16d,
- /* key: 0x65e0 */ 0x5a5b,
- /* key: 0x65e1 */ 0x5a5c,
- /* key: 0x65e2 */ 0x347b,
- /* key: 0x65e3 */ 0xffff,
- /* key: 0x65e4 */ 0xffff,
- /* key: 0x65e5 */ 0x467c,
- /* key: 0x65e6 */ 0x4336,
- /* key: 0x65e7 */ 0x356c,
- /* key: 0x65e8 */ 0x3b5d,
- /* key: 0x65e9 */ 0x4161,
- /* key: 0x65ea */ 0xffff,
- /* key: 0x65eb */ 0xffff,
- /* key: 0x65ec */ 0x3d5c,
- /* key: 0x65ed */ 0x3030,
- /* key: 0x65ee */ 0xffff,
- /* key: 0x65ef */ 0xffff,
- /* key: 0x65f0 */ 0xc16e,
- /* key: 0x65f1 */ 0x5a5d,
- /* key: 0x65f2 */ 0xc16f,
- /* key: 0x65f3 */ 0xffff,
- /* key: 0x65f4 */ 0xc170,
- /* key: 0x65f5 */ 0xc171,
- /* key: 0x65f6 */ 0xffff,
- /* key: 0x65f7 */ 0xffff,
- /* key: 0x65f8 */ 0xffff,
- /* key: 0x65f9 */ 0xc172,
- /* key: 0x65fa */ 0x3222,
- /* key: 0x65fb */ 0x5a61,
- /* key: 0x65fc */ 0xffff,
- /* key: 0x65fd */ 0xffff,
- /* key: 0x65fe */ 0xc173,
- /* key: 0x65ff */ 0xc174,
- /* branch: 0x660X */ 8144,
- /* branch: 0x661X */ 8160,
- /* branch: 0x662X */ 8176,
- /* branch: 0x663X */ 8192,
- /* branch: 0x664X */ 8208,
- /* branch: 0x665X */ 8224,
- /* branch: 0x666X */ 8240,
- /* branch: 0x667X */ 8256,
- /* branch: 0x668X */ 8272,
- /* branch: 0x669X */ 8288,
- /* branch: 0x66aX */ 8304,
- /* branch: 0x66bX */ 8320,
- /* branch: 0x66cX */ 8336,
- /* branch: 0x66dX */ 8352,
- /* branch: 0x66eX */ 8368,
- /* branch: 0x66fX */ 8384,
- /* key: 0x6600 */ 0xc175,
- /* key: 0x6601 */ 0xffff,
- /* key: 0x6602 */ 0x3937,
- /* key: 0x6603 */ 0x5a60,
- /* key: 0x6604 */ 0xc176,
- /* key: 0x6605 */ 0xffff,
- /* key: 0x6606 */ 0x3a2b,
- /* key: 0x6607 */ 0x3e3a,
- /* key: 0x6608 */ 0xc177,
- /* key: 0x6609 */ 0xc178,
- /* key: 0x660a */ 0x5a5f,
- /* key: 0x660b */ 0xffff,
- /* key: 0x660c */ 0x3e3b,
- /* key: 0x660d */ 0xc179,
- /* key: 0x660e */ 0x4c40,
- /* key: 0x660f */ 0x3a2a,
- /* key: 0x6610 */ 0xffff,
- /* key: 0x6611 */ 0xc17a,
- /* key: 0x6612 */ 0xc17b,
- /* key: 0x6613 */ 0x3057,
- /* key: 0x6614 */ 0x404e,
- /* key: 0x6615 */ 0xc17c,
- /* key: 0x6616 */ 0xc17d,
- /* key: 0x6617 */ 0xffff,
- /* key: 0x6618 */ 0xffff,
- /* key: 0x6619 */ 0xffff,
- /* key: 0x661a */ 0xffff,
- /* key: 0x661b */ 0xffff,
- /* key: 0x661c */ 0x5a66,
- /* key: 0x661d */ 0xc17e,
- /* key: 0x661e */ 0xc221,
- /* key: 0x661f */ 0x4031,
- /* key: 0x6620 */ 0x3147,
- /* key: 0x6621 */ 0xc222,
- /* key: 0x6622 */ 0xc223,
- /* key: 0x6623 */ 0xc224,
- /* key: 0x6624 */ 0xc225,
- /* key: 0x6625 */ 0x3d55,
- /* key: 0x6626 */ 0xc226,
- /* key: 0x6627 */ 0x4b66,
- /* key: 0x6628 */ 0x3a72,
- /* key: 0x6629 */ 0xc227,
- /* key: 0x662a */ 0xc228,
- /* key: 0x662b */ 0xc229,
- /* key: 0x662c */ 0xc22a,
- /* key: 0x662d */ 0x3e3c,
- /* key: 0x662e */ 0xc22b,
- /* key: 0x662f */ 0x4027,
- /* key: 0x6630 */ 0xc22c,
- /* key: 0x6631 */ 0xc22d,
- /* key: 0x6632 */ 0xffff,
- /* key: 0x6633 */ 0xc22e,
- /* key: 0x6634 */ 0x5a65,
- /* key: 0x6635 */ 0x5a63,
- /* key: 0x6636 */ 0x5a64,
- /* key: 0x6637 */ 0xc230,
- /* key: 0x6638 */ 0xffff,
- /* key: 0x6639 */ 0xc22f,
- /* key: 0x663a */ 0xffff,
- /* key: 0x663b */ 0xffff,
- /* key: 0x663c */ 0x436b,
- /* key: 0x663d */ 0xffff,
- /* key: 0x663e */ 0xffff,
- /* key: 0x663f */ 0x5b26,
- /* key: 0x6640 */ 0xc231,
- /* key: 0x6641 */ 0x5a6a,
- /* key: 0x6642 */ 0x3b7e,
- /* key: 0x6643 */ 0x3938,
- /* key: 0x6644 */ 0x5a68,
- /* key: 0x6645 */ 0xc232,
- /* key: 0x6646 */ 0xc233,
- /* key: 0x6647 */ 0xffff,
- /* key: 0x6648 */ 0xffff,
- /* key: 0x6649 */ 0x5a69,
- /* key: 0x664a */ 0xc234,
- /* key: 0x664b */ 0x3f38,
- /* key: 0x664c */ 0xc235,
- /* key: 0x664d */ 0xffff,
- /* key: 0x664e */ 0xc237,
- /* key: 0x664f */ 0x5a67,
- /* key: 0x6650 */ 0xffff,
- /* key: 0x6651 */ 0xc236,
- /* key: 0x6652 */ 0x3b2f,
- /* key: 0x6653 */ 0xffff,
- /* key: 0x6654 */ 0xffff,
- /* key: 0x6655 */ 0xffff,
- /* key: 0x6656 */ 0xffff,
- /* key: 0x6657 */ 0xc238,
- /* key: 0x6658 */ 0xc239,
- /* key: 0x6659 */ 0xc23a,
- /* key: 0x665a */ 0xffff,
- /* key: 0x665b */ 0xc23b,
- /* key: 0x665c */ 0xc23c,
- /* key: 0x665d */ 0x5a6c,
- /* key: 0x665e */ 0x5a6b,
- /* key: 0x665f */ 0x5a70,
- /* key: 0x6660 */ 0xc23d,
- /* key: 0x6661 */ 0xc23e,
- /* key: 0x6662 */ 0x5a71,
- /* key: 0x6663 */ 0xffff,
- /* key: 0x6664 */ 0x5a6d,
- /* key: 0x6665 */ 0xffff,
- /* key: 0x6666 */ 0x3322,
- /* key: 0x6667 */ 0x5a6e,
- /* key: 0x6668 */ 0x5a6f,
- /* key: 0x6669 */ 0x4855,
- /* key: 0x666a */ 0xc240,
- /* key: 0x666b */ 0xc241,
- /* key: 0x666c */ 0xc242,
- /* key: 0x666d */ 0xffff,
- /* key: 0x666e */ 0x4961,
- /* key: 0x666f */ 0x374a,
- /* key: 0x6670 */ 0x5a72,
- /* key: 0x6671 */ 0xffff,
- /* key: 0x6672 */ 0xffff,
- /* key: 0x6673 */ 0xc244,
- /* key: 0x6674 */ 0x4032,
- /* key: 0x6675 */ 0xc245,
- /* key: 0x6676 */ 0x3e3d,
- /* key: 0x6677 */ 0xc247,
- /* key: 0x6678 */ 0xc248,
- /* key: 0x6679 */ 0xc249,
- /* key: 0x667a */ 0x4352,
- /* key: 0x667b */ 0xc24a,
- /* key: 0x667c */ 0xc24c,
- /* key: 0x667d */ 0xffff,
- /* key: 0x667e */ 0xc243,
- /* key: 0x667f */ 0xc246,
- /* key: 0x6680 */ 0xc24b,
- /* key: 0x6681 */ 0x3647,
- /* key: 0x6682 */ 0xffff,
- /* key: 0x6683 */ 0x5a73,
- /* key: 0x6684 */ 0x5a77,
- /* key: 0x6685 */ 0xffff,
- /* key: 0x6686 */ 0xffff,
- /* key: 0x6687 */ 0x324b,
- /* key: 0x6688 */ 0x5a74,
- /* key: 0x6689 */ 0x5a76,
- /* key: 0x668a */ 0xffff,
- /* key: 0x668b */ 0xc24d,
- /* key: 0x668c */ 0xc24e,
- /* key: 0x668d */ 0xc24f,
- /* key: 0x668e */ 0x5a75,
- /* key: 0x668f */ 0xffff,
- /* key: 0x6690 */ 0xc250,
- /* key: 0x6691 */ 0x3d6b,
- /* key: 0x6692 */ 0xc251,
- /* key: 0x6693 */ 0xffff,
- /* key: 0x6694 */ 0xffff,
- /* key: 0x6695 */ 0xffff,
- /* key: 0x6696 */ 0x4348,
- /* key: 0x6697 */ 0x3045,
- /* key: 0x6698 */ 0x5a78,
- /* key: 0x6699 */ 0xc252,
- /* key: 0x669a */ 0xc253,
- /* key: 0x669b */ 0xc254,
- /* key: 0x669c */ 0xc255,
- /* key: 0x669d */ 0x5a79,
- /* key: 0x669e */ 0xffff,
- /* key: 0x669f */ 0xc256,
- /* key: 0x66a0 */ 0xc257,
- /* key: 0x66a1 */ 0xffff,
- /* key: 0x66a2 */ 0x442a,
- /* key: 0x66a3 */ 0xffff,
- /* key: 0x66a4 */ 0xc258,
- /* key: 0x66a5 */ 0xffff,
- /* key: 0x66a6 */ 0x4e71,
- /* key: 0x66a7 */ 0xffff,
- /* key: 0x66a8 */ 0xffff,
- /* key: 0x66a9 */ 0xffff,
- /* key: 0x66aa */ 0xffff,
- /* key: 0x66ab */ 0x3b43,
- /* key: 0x66ac */ 0xffff,
- /* key: 0x66ad */ 0xc259,
- /* key: 0x66ae */ 0x4a6b,
- /* key: 0x66af */ 0xffff,
- /* key: 0x66b0 */ 0xffff,
- /* key: 0x66b1 */ 0xc25a,
- /* key: 0x66b2 */ 0xc25b,
- /* key: 0x66b3 */ 0xffff,
- /* key: 0x66b4 */ 0x4b3d,
- /* key: 0x66b5 */ 0xc25c,
- /* key: 0x66b6 */ 0xffff,
- /* key: 0x66b7 */ 0xffff,
- /* key: 0x66b8 */ 0x5b22,
- /* key: 0x66b9 */ 0x5a7b,
- /* key: 0x66ba */ 0xffff,
- /* key: 0x66bb */ 0xc25d,
- /* key: 0x66bc */ 0x5a7e,
- /* key: 0x66bd */ 0xffff,
- /* key: 0x66be */ 0x5a7d,
- /* key: 0x66bf */ 0xc25e,
- /* key: 0x66c0 */ 0xc25f,
- /* key: 0x66c1 */ 0x5a7a,
- /* key: 0x66c2 */ 0xc260,
- /* key: 0x66c3 */ 0xc261,
- /* key: 0x66c4 */ 0x5b21,
- /* key: 0x66c5 */ 0xffff,
- /* key: 0x66c6 */ 0xffff,
- /* key: 0x66c7 */ 0x465e,
- /* key: 0x66c8 */ 0xc262,
- /* key: 0x66c9 */ 0x5a7c,
- /* key: 0x66ca */ 0xffff,
- /* key: 0x66cb */ 0xffff,
- /* key: 0x66cc */ 0xc263,
- /* key: 0x66cd */ 0xffff,
- /* key: 0x66ce */ 0xc264,
- /* key: 0x66cf */ 0xc265,
- /* key: 0x66d0 */ 0xffff,
- /* key: 0x66d1 */ 0xffff,
- /* key: 0x66d2 */ 0xffff,
- /* key: 0x66d3 */ 0xffff,
- /* key: 0x66d4 */ 0xc266,
- /* key: 0x66d5 */ 0xffff,
- /* key: 0x66d6 */ 0x5b23,
- /* key: 0x66d7 */ 0xffff,
- /* key: 0x66d8 */ 0xffff,
- /* key: 0x66d9 */ 0x3d6c,
- /* key: 0x66da */ 0x5b24,
- /* key: 0x66db */ 0xc267,
- /* key: 0x66dc */ 0x4d4b,
- /* key: 0x66dd */ 0x4778,
- /* key: 0x66de */ 0xffff,
- /* key: 0x66df */ 0xc268,
- /* key: 0x66e0 */ 0x5b25,
- /* key: 0x66e1 */ 0xffff,
- /* key: 0x66e2 */ 0xffff,
- /* key: 0x66e3 */ 0xffff,
- /* key: 0x66e4 */ 0xffff,
- /* key: 0x66e5 */ 0xffff,
- /* key: 0x66e6 */ 0x5b27,
- /* key: 0x66e7 */ 0xffff,
- /* key: 0x66e8 */ 0xc269,
- /* key: 0x66e9 */ 0x5b28,
- /* key: 0x66ea */ 0xffff,
- /* key: 0x66eb */ 0xc26a,
- /* key: 0x66ec */ 0xc26b,
- /* key: 0x66ed */ 0xffff,
- /* key: 0x66ee */ 0xc26c,
- /* key: 0x66ef */ 0xffff,
- /* key: 0x66f0 */ 0x5b29,
- /* key: 0x66f1 */ 0xffff,
- /* key: 0x66f2 */ 0x364a,
- /* key: 0x66f3 */ 0x3148,
- /* key: 0x66f4 */ 0x3939,
- /* key: 0x66f5 */ 0x5b2a,
- /* key: 0x66f6 */ 0xffff,
- /* key: 0x66f7 */ 0x5b2b,
- /* key: 0x66f8 */ 0x3d71,
- /* key: 0x66f9 */ 0x4162,
- /* key: 0x66fa */ 0xc26d,
- /* key: 0x66fb */ 0xc23f,
- /* key: 0x66fc */ 0x5258,
- /* key: 0x66fd */ 0x413e,
- /* key: 0x66fe */ 0x413d,
- /* key: 0x66ff */ 0x4258,
- /* branch: 0x670X */ 8416,
- /* branch: 0x671X */ 8432,
- /* branch: 0x672X */ 8448,
- /* branch: 0x673X */ 8464,
- /* branch: 0x674X */ 8480,
- /* branch: 0x675X */ 8496,
- /* branch: 0x676X */ 8512,
- /* branch: 0x677X */ 8528,
- /* branch: 0x678X */ 8544,
- /* branch: 0x679X */ 8560,
- /* branch: 0x67aX */ 8576,
- /* branch: 0x67bX */ 8592,
- /* branch: 0x67cX */ 8608,
- /* branch: 0x67dX */ 8624,
- /* branch: 0x67eX */ 8640,
- /* branch: 0x67fX */ 8656,
- /* key: 0x6700 */ 0x3a47,
- /* key: 0x6701 */ 0xffff,
- /* key: 0x6702 */ 0xffff,
- /* key: 0x6703 */ 0x5072,
- /* key: 0x6704 */ 0xffff,
- /* key: 0x6705 */ 0xc26e,
- /* key: 0x6706 */ 0xffff,
- /* key: 0x6707 */ 0xc26f,
- /* key: 0x6708 */ 0x376e,
- /* key: 0x6709 */ 0x4d2d,
- /* key: 0x670a */ 0xffff,
- /* key: 0x670b */ 0x4a7e,
- /* key: 0x670c */ 0xffff,
- /* key: 0x670d */ 0x497e,
- /* key: 0x670e */ 0xc270,
- /* key: 0x670f */ 0x5b2c,
- /* key: 0x6710 */ 0xffff,
- /* key: 0x6711 */ 0xffff,
- /* key: 0x6712 */ 0xffff,
- /* key: 0x6713 */ 0xc271,
- /* key: 0x6714 */ 0x3a73,
- /* key: 0x6715 */ 0x443f,
- /* key: 0x6716 */ 0x5b2d,
- /* key: 0x6717 */ 0x4f2f,
- /* key: 0x6718 */ 0xffff,
- /* key: 0x6719 */ 0xc272,
- /* key: 0x671a */ 0xffff,
- /* key: 0x671b */ 0x4b3e,
- /* key: 0x671c */ 0xc273,
- /* key: 0x671d */ 0x442b,
- /* key: 0x671e */ 0x5b2e,
- /* key: 0x671f */ 0x347c,
- /* key: 0x6720 */ 0xc274,
- /* key: 0x6721 */ 0xffff,
- /* key: 0x6722 */ 0xc275,
- /* key: 0x6723 */ 0xffff,
- /* key: 0x6724 */ 0xffff,
- /* key: 0x6725 */ 0xffff,
- /* key: 0x6726 */ 0x5b2f,
- /* key: 0x6727 */ 0x5b30,
- /* key: 0x6728 */ 0x4c5a,
- /* key: 0x6729 */ 0xffff,
- /* key: 0x672a */ 0x4c24,
- /* key: 0x672b */ 0x4b76,
- /* key: 0x672c */ 0x4b5c,
- /* key: 0x672d */ 0x3b25,
- /* key: 0x672e */ 0x5b32,
- /* key: 0x672f */ 0xffff,
- /* key: 0x6730 */ 0xffff,
- /* key: 0x6731 */ 0x3c6b,
- /* key: 0x6732 */ 0xffff,
- /* key: 0x6733 */ 0xc276,
- /* key: 0x6734 */ 0x4b51,
- /* key: 0x6735 */ 0xffff,
- /* key: 0x6736 */ 0x5b34,
- /* key: 0x6737 */ 0x5b37,
- /* key: 0x6738 */ 0x5b36,
- /* key: 0x6739 */ 0xffff,
- /* key: 0x673a */ 0x3479,
- /* key: 0x673b */ 0xffff,
- /* key: 0x673c */ 0xffff,
- /* key: 0x673d */ 0x3560,
- /* key: 0x673e */ 0xc277,
- /* key: 0x673f */ 0x5b33,
- /* key: 0x6740 */ 0xffff,
- /* key: 0x6741 */ 0x5b35,
- /* key: 0x6742 */ 0xffff,
- /* key: 0x6743 */ 0xffff,
- /* key: 0x6744 */ 0xffff,
- /* key: 0x6745 */ 0xc278,
- /* key: 0x6746 */ 0x5b38,
- /* key: 0x6747 */ 0xc279,
- /* key: 0x6748 */ 0xc27a,
- /* key: 0x6749 */ 0x3f79,
- /* key: 0x674a */ 0xffff,
- /* key: 0x674b */ 0xffff,
- /* key: 0x674c */ 0xc27b,
- /* key: 0x674d */ 0xffff,
- /* key: 0x674e */ 0x4d7b,
- /* key: 0x674f */ 0x3049,
- /* key: 0x6750 */ 0x3a60,
- /* key: 0x6751 */ 0x423c,
- /* key: 0x6752 */ 0xffff,
- /* key: 0x6753 */ 0x3c5d,
- /* key: 0x6754 */ 0xc27c,
- /* key: 0x6755 */ 0xc27d,
- /* key: 0x6756 */ 0x3e73,
- /* key: 0x6757 */ 0xffff,
- /* key: 0x6758 */ 0xffff,
- /* key: 0x6759 */ 0x5b3b,
- /* key: 0x675a */ 0xffff,
- /* key: 0x675b */ 0xffff,
- /* key: 0x675c */ 0x454e,
- /* key: 0x675d */ 0xc27e,
- /* key: 0x675e */ 0x5b39,
- /* key: 0x675f */ 0x422b,
- /* key: 0x6760 */ 0x5b3a,
- /* key: 0x6761 */ 0x3e72,
- /* key: 0x6762 */ 0x4c5d,
- /* key: 0x6763 */ 0x5b3c,
- /* key: 0x6764 */ 0x5b3d,
- /* key: 0x6765 */ 0x4d68,
- /* key: 0x6766 */ 0xc321,
- /* key: 0x6767 */ 0xffff,
- /* key: 0x6768 */ 0xffff,
- /* key: 0x6769 */ 0xffff,
- /* key: 0x676a */ 0x5b42,
- /* key: 0x676b */ 0xffff,
- /* key: 0x676c */ 0xc322,
- /* key: 0x676d */ 0x393a,
- /* key: 0x676e */ 0xc323,
- /* key: 0x676f */ 0x4755,
- /* key: 0x6770 */ 0x5b3f,
- /* key: 0x6771 */ 0x456c,
- /* key: 0x6772 */ 0x5a5e,
- /* key: 0x6773 */ 0x5a62,
- /* key: 0x6774 */ 0xc324,
- /* key: 0x6775 */ 0x354f,
- /* key: 0x6776 */ 0xc325,
- /* key: 0x6777 */ 0x4747,
- /* key: 0x6778 */ 0xffff,
- /* key: 0x6779 */ 0xffff,
- /* key: 0x677a */ 0xffff,
- /* key: 0x677b */ 0xc326,
- /* key: 0x677c */ 0x5b41,
- /* key: 0x677d */ 0xffff,
- /* key: 0x677e */ 0x3e3e,
- /* key: 0x677f */ 0x4844,
- /* key: 0x6780 */ 0xffff,
- /* key: 0x6781 */ 0xc327,
- /* key: 0x6782 */ 0xffff,
- /* key: 0x6783 */ 0xffff,
- /* key: 0x6784 */ 0xc328,
- /* key: 0x6785 */ 0x5b47,
- /* key: 0x6786 */ 0xffff,
- /* key: 0x6787 */ 0x487a,
- /* key: 0x6788 */ 0xffff,
- /* key: 0x6789 */ 0x5b3e,
- /* key: 0x678a */ 0xffff,
- /* key: 0x678b */ 0x5b44,
- /* key: 0x678c */ 0x5b43,
- /* key: 0x678d */ 0xffff,
- /* key: 0x678e */ 0xc329,
- /* key: 0x678f */ 0xc32a,
- /* key: 0x6790 */ 0x404f,
- /* key: 0x6791 */ 0xc32b,
- /* key: 0x6792 */ 0xffff,
- /* key: 0x6793 */ 0xc32c,
- /* key: 0x6794 */ 0xffff,
- /* key: 0x6795 */ 0x4b6d,
- /* key: 0x6796 */ 0xc32d,
- /* key: 0x6797 */ 0x4e53,
- /* key: 0x6798 */ 0xc32e,
- /* key: 0x6799 */ 0xc32f,
- /* key: 0x679a */ 0x4b67,
- /* key: 0x679b */ 0xc330,
- /* key: 0x679c */ 0x324c,
- /* key: 0x679d */ 0x3b5e,
- /* key: 0x679e */ 0xffff,
- /* key: 0x679f */ 0xffff,
- /* key: 0x67a0 */ 0x4f48,
- /* key: 0x67a1 */ 0x5b46,
- /* key: 0x67a2 */ 0x3f75,
- /* key: 0x67a3 */ 0xffff,
- /* key: 0x67a4 */ 0xffff,
- /* key: 0x67a5 */ 0xffff,
- /* key: 0x67a6 */ 0x5b45,
- /* key: 0x67a7 */ 0xffff,
- /* key: 0x67a8 */ 0xffff,
- /* key: 0x67a9 */ 0x5b40,
- /* key: 0x67aa */ 0xffff,
- /* key: 0x67ab */ 0xffff,
- /* key: 0x67ac */ 0xffff,
- /* key: 0x67ad */ 0xffff,
- /* key: 0x67ae */ 0xffff,
- /* key: 0x67af */ 0x384f,
- /* key: 0x67b0 */ 0xc331,
- /* key: 0x67b1 */ 0xc332,
- /* key: 0x67b2 */ 0xc333,
- /* key: 0x67b3 */ 0x5b4c,
- /* key: 0x67b4 */ 0x5b4a,
- /* key: 0x67b5 */ 0xc334,
- /* key: 0x67b6 */ 0x324d,
- /* key: 0x67b7 */ 0x5b48,
- /* key: 0x67b8 */ 0x5b4e,
- /* key: 0x67b9 */ 0x5b54,
- /* key: 0x67ba */ 0xffff,
- /* key: 0x67bb */ 0xc335,
- /* key: 0x67bc */ 0xc336,
- /* key: 0x67bd */ 0xc337,
- /* key: 0x67be */ 0xffff,
- /* key: 0x67bf */ 0xffff,
- /* key: 0x67c0 */ 0xc339,
- /* key: 0x67c1 */ 0x4248,
- /* key: 0x67c2 */ 0xc33a,
- /* key: 0x67c3 */ 0xc33b,
- /* key: 0x67c4 */ 0x4a41,
- /* key: 0x67c5 */ 0xc33c,
- /* key: 0x67c6 */ 0x5b56,
- /* key: 0x67c7 */ 0xffff,
- /* key: 0x67c8 */ 0xc33d,
- /* key: 0x67c9 */ 0xc33e,
- /* key: 0x67ca */ 0x4922,
- /* key: 0x67cb */ 0xffff,
- /* key: 0x67cc */ 0xffff,
- /* key: 0x67cd */ 0xffff,
- /* key: 0x67ce */ 0x5b55,
- /* key: 0x67cf */ 0x4770,
- /* key: 0x67d0 */ 0x4b3f,
- /* key: 0x67d1 */ 0x343b,
- /* key: 0x67d2 */ 0xc33f,
- /* key: 0x67d3 */ 0x4077,
- /* key: 0x67d4 */ 0x3d40,
- /* key: 0x67d5 */ 0xffff,
- /* key: 0x67d6 */ 0xffff,
- /* key: 0x67d7 */ 0xc340,
- /* key: 0x67d8 */ 0x4453,
- /* key: 0x67d9 */ 0xc341,
- /* key: 0x67da */ 0x4d2e,
- /* key: 0x67db */ 0xffff,
- /* key: 0x67dc */ 0xc342,
- /* key: 0x67dd */ 0x5b51,
- /* key: 0x67de */ 0x5b50,
- /* key: 0x67df */ 0xffff,
- /* key: 0x67e0 */ 0xffff,
- /* key: 0x67e1 */ 0xc343,
- /* key: 0x67e2 */ 0x5b52,
- /* key: 0x67e3 */ 0xffff,
- /* key: 0x67e4 */ 0x5b4f,
- /* key: 0x67e5 */ 0xffff,
- /* key: 0x67e6 */ 0xc344,
- /* key: 0x67e7 */ 0x5b57,
- /* key: 0x67e8 */ 0xffff,
- /* key: 0x67e9 */ 0x5b4d,
- /* key: 0x67ea */ 0xffff,
- /* key: 0x67eb */ 0xffff,
- /* key: 0x67ec */ 0x5b4b,
- /* key: 0x67ed */ 0xffff,
- /* key: 0x67ee */ 0x5b53,
- /* key: 0x67ef */ 0x5b49,
- /* key: 0x67f0 */ 0xc345,
- /* key: 0x67f1 */ 0x436c,
- /* key: 0x67f2 */ 0xc346,
- /* key: 0x67f3 */ 0x4c78,
- /* key: 0x67f4 */ 0x3c46,
- /* key: 0x67f5 */ 0x3a74,
- /* key: 0x67f6 */ 0xc347,
- /* key: 0x67f7 */ 0xc348,
- /* key: 0x67f8 */ 0xffff,
- /* key: 0x67f9 */ 0xc338,
- /* key: 0x67fa */ 0xffff,
- /* key: 0x67fb */ 0x3a3a,
- /* key: 0x67fc */ 0xffff,
- /* key: 0x67fd */ 0xffff,
- /* key: 0x67fe */ 0x4b6f,
- /* key: 0x67ff */ 0x3341,
- /* branch: 0x680X */ 8688,
- /* branch: 0x681X */ 8704,
- /* branch: 0x682X */ 8720,
- /* branch: 0x683X */ 8736,
- /* branch: 0x684X */ 8752,
- /* branch: 0x685X */ 8768,
- /* branch: 0x686X */ 8784,
- /* branch: 0x687X */ 8800,
- /* branch: 0x688X */ 8816,
- /* branch: 0x689X */ 8832,
- /* branch: 0x68aX */ 8848,
- /* branch: 0x68bX */ 8864,
- /* branch: 0x68cX */ 8880,
- /* branch: 0x68dX */ 8896,
- /* branch: 0x68eX */ 8912,
- /* branch: 0x68fX */ 8928,
- /* key: 0x6800 */ 0xffff,
- /* key: 0x6801 */ 0xffff,
- /* key: 0x6802 */ 0x444e,
- /* key: 0x6803 */ 0x464a,
- /* key: 0x6804 */ 0x3149,
- /* key: 0x6805 */ 0xffff,
- /* key: 0x6806 */ 0xffff,
- /* key: 0x6807 */ 0xffff,
- /* key: 0x6808 */ 0xffff,
- /* key: 0x6809 */ 0xffff,
- /* key: 0x680a */ 0xffff,
- /* key: 0x680b */ 0xffff,
- /* key: 0x680c */ 0xffff,
- /* key: 0x680d */ 0xffff,
- /* key: 0x680e */ 0xffff,
- /* key: 0x680f */ 0xffff,
- /* key: 0x6810 */ 0xffff,
- /* key: 0x6811 */ 0xffff,
- /* key: 0x6812 */ 0xffff,
- /* key: 0x6813 */ 0x4072,
- /* key: 0x6814 */ 0xc34a,
- /* key: 0x6815 */ 0xffff,
- /* key: 0x6816 */ 0x4034,
- /* key: 0x6817 */ 0x372a,
- /* key: 0x6818 */ 0xffff,
- /* key: 0x6819 */ 0xc34b,
- /* key: 0x681a */ 0xffff,
- /* key: 0x681b */ 0xffff,
- /* key: 0x681c */ 0xffff,
- /* key: 0x681d */ 0xc34c,
- /* key: 0x681e */ 0x5b59,
- /* key: 0x681f */ 0xc34d,
- /* key: 0x6820 */ 0xffff,
- /* key: 0x6821 */ 0x393b,
- /* key: 0x6822 */ 0x337c,
- /* key: 0x6823 */ 0xffff,
- /* key: 0x6824 */ 0xffff,
- /* key: 0x6825 */ 0xffff,
- /* key: 0x6826 */ 0xffff,
- /* key: 0x6827 */ 0xc34f,
- /* key: 0x6828 */ 0xc34e,
- /* key: 0x6829 */ 0x5b5b,
- /* key: 0x682a */ 0x3374,
- /* key: 0x682b */ 0x5b61,
- /* key: 0x682c */ 0xc350,
- /* key: 0x682d */ 0xc351,
- /* key: 0x682e */ 0xffff,
- /* key: 0x682f */ 0xc352,
- /* key: 0x6830 */ 0xc353,
- /* key: 0x6831 */ 0xc354,
- /* key: 0x6832 */ 0x5b5e,
- /* key: 0x6833 */ 0xc355,
- /* key: 0x6834 */ 0x4073,
- /* key: 0x6835 */ 0xffff,
- /* key: 0x6836 */ 0xffff,
- /* key: 0x6837 */ 0xffff,
- /* key: 0x6838 */ 0x334b,
- /* key: 0x6839 */ 0x3a2c,
- /* key: 0x683a */ 0xffff,
- /* key: 0x683b */ 0xc356,
- /* key: 0x683c */ 0x334a,
- /* key: 0x683d */ 0x3a4f,
- /* key: 0x683e */ 0xffff,
- /* key: 0x683f */ 0xc357,
- /* key: 0x6840 */ 0x5b5c,
- /* key: 0x6841 */ 0x3765,
- /* key: 0x6842 */ 0x374b,
- /* key: 0x6843 */ 0x456d,
- /* key: 0x6844 */ 0xc358,
- /* key: 0x6845 */ 0xc359,
- /* key: 0x6846 */ 0x5b5a,
- /* key: 0x6847 */ 0xffff,
- /* key: 0x6848 */ 0x3046,
- /* key: 0x6849 */ 0xffff,
- /* key: 0x684a */ 0xc35a,
- /* key: 0x684b */ 0xffff,
- /* key: 0x684c */ 0xc35b,
- /* key: 0x684d */ 0x5b5d,
- /* key: 0x684e */ 0x5b5f,
- /* key: 0x684f */ 0xffff,
- /* key: 0x6850 */ 0x364d,
- /* key: 0x6851 */ 0x372c,
- /* key: 0x6852 */ 0xc349,
- /* key: 0x6853 */ 0x343c,
- /* key: 0x6854 */ 0x354b,
- /* key: 0x6855 */ 0xc35c,
- /* key: 0x6856 */ 0xffff,
- /* key: 0x6857 */ 0xc35d,
- /* key: 0x6858 */ 0xc35e,
- /* key: 0x6859 */ 0x5b62,
- /* key: 0x685a */ 0xffff,
- /* key: 0x685b */ 0xc35f,
- /* key: 0x685c */ 0x3a79,
- /* key: 0x685d */ 0x4b71,
- /* key: 0x685e */ 0xffff,
- /* key: 0x685f */ 0x3b37,
- /* key: 0x6860 */ 0xffff,
- /* key: 0x6861 */ 0xffff,
- /* key: 0x6862 */ 0xffff,
- /* key: 0x6863 */ 0x5b63,
- /* key: 0x6864 */ 0xffff,
- /* key: 0x6865 */ 0xffff,
- /* key: 0x6866 */ 0xffff,
- /* key: 0x6867 */ 0x4930,
- /* key: 0x6868 */ 0xffff,
- /* key: 0x6869 */ 0xffff,
- /* key: 0x686a */ 0xffff,
- /* key: 0x686b */ 0xc360,
- /* key: 0x686c */ 0xffff,
- /* key: 0x686d */ 0xffff,
- /* key: 0x686e */ 0xc361,
- /* key: 0x686f */ 0xc362,
- /* key: 0x6870 */ 0xc363,
- /* key: 0x6871 */ 0xc364,
- /* key: 0x6872 */ 0xc365,
- /* key: 0x6873 */ 0xffff,
- /* key: 0x6874 */ 0x5b6f,
- /* key: 0x6875 */ 0xc366,
- /* key: 0x6876 */ 0x3233,
- /* key: 0x6877 */ 0x5b64,
- /* key: 0x6878 */ 0xffff,
- /* key: 0x6879 */ 0xc367,
- /* key: 0x687a */ 0xc368,
- /* key: 0x687b */ 0xc369,
- /* key: 0x687c */ 0xc36a,
- /* key: 0x687d */ 0xffff,
- /* key: 0x687e */ 0x5b75,
- /* key: 0x687f */ 0x5b65,
- /* key: 0x6880 */ 0xffff,
- /* key: 0x6881 */ 0x4e42,
- /* key: 0x6882 */ 0xc36b,
- /* key: 0x6883 */ 0x5b6c,
- /* key: 0x6884 */ 0xc36c,
- /* key: 0x6885 */ 0x475f,
- /* key: 0x6886 */ 0xc36d,
- /* key: 0x6887 */ 0xffff,
- /* key: 0x6888 */ 0xc36e,
- /* key: 0x6889 */ 0xffff,
- /* key: 0x688a */ 0xffff,
- /* key: 0x688b */ 0xffff,
- /* key: 0x688c */ 0xffff,
- /* key: 0x688d */ 0x5b74,
- /* key: 0x688e */ 0xffff,
- /* key: 0x688f */ 0x5b67,
- /* key: 0x6890 */ 0xffff,
- /* key: 0x6891 */ 0xffff,
- /* key: 0x6892 */ 0xffff,
- /* key: 0x6893 */ 0x3034,
- /* key: 0x6894 */ 0x5b69,
- /* key: 0x6895 */ 0xffff,
- /* key: 0x6896 */ 0xc36f,
- /* key: 0x6897 */ 0x393c,
- /* key: 0x6898 */ 0xc370,
- /* key: 0x6899 */ 0xffff,
- /* key: 0x689a */ 0xc371,
- /* key: 0x689b */ 0x5b6b,
- /* key: 0x689c */ 0xc372,
- /* key: 0x689d */ 0x5b6a,
- /* key: 0x689e */ 0xffff,
- /* key: 0x689f */ 0x5b66,
- /* key: 0x68a0 */ 0x5b71,
- /* key: 0x68a1 */ 0xc373,
- /* key: 0x68a2 */ 0x3e3f,
- /* key: 0x68a3 */ 0xc374,
- /* key: 0x68a4 */ 0xffff,
- /* key: 0x68a5 */ 0xc375,
- /* key: 0x68a6 */ 0x546d,
- /* key: 0x68a7 */ 0x3868,
- /* key: 0x68a8 */ 0x4d7c,
- /* key: 0x68a9 */ 0xc376,
- /* key: 0x68aa */ 0xc377,
- /* key: 0x68ab */ 0xffff,
- /* key: 0x68ac */ 0xffff,
- /* key: 0x68ad */ 0x5b68,
- /* key: 0x68ae */ 0xc378,
- /* key: 0x68af */ 0x4474,
- /* key: 0x68b0 */ 0x3323,
- /* key: 0x68b1 */ 0x3a2d,
- /* key: 0x68b2 */ 0xc379,
- /* key: 0x68b3 */ 0x5b60,
- /* key: 0x68b4 */ 0xffff,
- /* key: 0x68b5 */ 0x5b70,
- /* key: 0x68b6 */ 0x3361,
- /* key: 0x68b7 */ 0xffff,
- /* key: 0x68b8 */ 0xffff,
- /* key: 0x68b9 */ 0x5b6e,
- /* key: 0x68ba */ 0x5b72,
- /* key: 0x68bb */ 0xc37a,
- /* key: 0x68bc */ 0x456e,
- /* key: 0x68bd */ 0xffff,
- /* key: 0x68be */ 0xffff,
- /* key: 0x68bf */ 0xffff,
- /* key: 0x68c0 */ 0xffff,
- /* key: 0x68c1 */ 0xffff,
- /* key: 0x68c2 */ 0xffff,
- /* key: 0x68c3 */ 0xffff,
- /* key: 0x68c4 */ 0x347e,
- /* key: 0x68c5 */ 0xc37b,
- /* key: 0x68c6 */ 0x5c32,
- /* key: 0x68c7 */ 0xffff,
- /* key: 0x68c8 */ 0xc37c,
- /* key: 0x68c9 */ 0x4c49,
- /* key: 0x68ca */ 0x5b77,
- /* key: 0x68cb */ 0x347d,
- /* key: 0x68cc */ 0xc37d,
- /* key: 0x68cd */ 0x5b7e,
- /* key: 0x68ce */ 0xffff,
- /* key: 0x68cf */ 0xc37e,
- /* key: 0x68d0 */ 0xc421,
- /* key: 0x68d1 */ 0xc422,
- /* key: 0x68d2 */ 0x4b40,
- /* key: 0x68d3 */ 0xc423,
- /* key: 0x68d4 */ 0x5c21,
- /* key: 0x68d5 */ 0x5c23,
- /* key: 0x68d6 */ 0xc424,
- /* key: 0x68d7 */ 0x5c27,
- /* key: 0x68d8 */ 0x5b79,
- /* key: 0x68d9 */ 0xc425,
- /* key: 0x68da */ 0x432a,
- /* key: 0x68db */ 0xffff,
- /* key: 0x68dc */ 0xc426,
- /* key: 0x68dd */ 0xc427,
- /* key: 0x68de */ 0xffff,
- /* key: 0x68df */ 0x456f,
- /* key: 0x68e0 */ 0x5c2b,
- /* key: 0x68e1 */ 0x5b7c,
- /* key: 0x68e2 */ 0xffff,
- /* key: 0x68e3 */ 0x5c28,
- /* key: 0x68e4 */ 0xffff,
- /* key: 0x68e5 */ 0xc428,
- /* key: 0x68e6 */ 0xffff,
- /* key: 0x68e7 */ 0x5c22,
- /* key: 0x68e8 */ 0xc429,
- /* key: 0x68e9 */ 0xffff,
- /* key: 0x68ea */ 0xc42a,
- /* key: 0x68eb */ 0xc42b,
- /* key: 0x68ec */ 0xc42c,
- /* key: 0x68ed */ 0xc42d,
- /* key: 0x68ee */ 0x3f39,
- /* key: 0x68ef */ 0x5c2c,
- /* key: 0x68f0 */ 0xc42e,
- /* key: 0x68f1 */ 0xc42f,
- /* key: 0x68f2 */ 0x4033,
- /* key: 0x68f3 */ 0xffff,
- /* key: 0x68f4 */ 0xffff,
- /* key: 0x68f5 */ 0xc430,
- /* key: 0x68f6 */ 0xc431,
- /* key: 0x68f7 */ 0xffff,
- /* key: 0x68f8 */ 0xffff,
- /* key: 0x68f9 */ 0x5c2a,
- /* key: 0x68fa */ 0x343d,
- /* key: 0x68fb */ 0xc432,
- /* key: 0x68fc */ 0xc433,
- /* key: 0x68fd */ 0xc434,
- /* key: 0x68fe */ 0xffff,
- /* key: 0x68ff */ 0xffff,
- /* branch: 0x690X */ 8960,
- /* branch: 0x691X */ 8976,
- /* branch: 0x692X */ 8992,
- /* branch: 0x693X */ 9008,
- /* branch: 0x694X */ 9024,
- /* branch: 0x695X */ 9040,
- /* branch: 0x696X */ 9056,
- /* branch: 0x697X */ 9072,
- /* branch: 0x698X */ 9088,
- /* branch: 0x699X */ 9104,
- /* branch: 0x69aX */ 9120,
- /* branch: 0x69bX */ 9136,
- /* branch: 0x69cX */ 9152,
- /* branch: 0x69dX */ 9168,
- /* branch: 0x69eX */ 9184,
- /* branch: 0x69fX */ 9200,
- /* key: 0x6900 */ 0x4f50,
- /* key: 0x6901 */ 0x5b76,
- /* key: 0x6902 */ 0xffff,
- /* key: 0x6903 */ 0xffff,
- /* key: 0x6904 */ 0x5c26,
- /* key: 0x6905 */ 0x3058,
- /* key: 0x6906 */ 0xc435,
- /* key: 0x6907 */ 0xffff,
- /* key: 0x6908 */ 0x5b78,
- /* key: 0x6909 */ 0xc436,
- /* key: 0x690a */ 0xc437,
- /* key: 0x690b */ 0x4c3a,
- /* key: 0x690c */ 0x5b7d,
- /* key: 0x690d */ 0x3f22,
- /* key: 0x690e */ 0x4447,
- /* key: 0x690f */ 0x5b73,
- /* key: 0x6910 */ 0xc438,
- /* key: 0x6911 */ 0xc439,
- /* key: 0x6912 */ 0x5c25,
- /* key: 0x6913 */ 0xc43a,
- /* key: 0x6914 */ 0xffff,
- /* key: 0x6915 */ 0xffff,
- /* key: 0x6916 */ 0xc43b,
- /* key: 0x6917 */ 0xc43c,
- /* key: 0x6918 */ 0xffff,
- /* key: 0x6919 */ 0x3f7a,
- /* key: 0x691a */ 0x5c2f,
- /* key: 0x691b */ 0x3371,
- /* key: 0x691c */ 0x3821,
- /* key: 0x691d */ 0xffff,
- /* key: 0x691e */ 0xffff,
- /* key: 0x691f */ 0xffff,
- /* key: 0x6920 */ 0xffff,
- /* key: 0x6921 */ 0x5c31,
- /* key: 0x6922 */ 0x5b7a,
- /* key: 0x6923 */ 0x5c30,
- /* key: 0x6924 */ 0xffff,
- /* key: 0x6925 */ 0x5c29,
- /* key: 0x6926 */ 0x5b7b,
- /* key: 0x6927 */ 0xffff,
- /* key: 0x6928 */ 0x5c2d,
- /* key: 0x6929 */ 0xffff,
- /* key: 0x692a */ 0x5c2e,
- /* key: 0x692b */ 0xffff,
- /* key: 0x692c */ 0xffff,
- /* key: 0x692d */ 0xffff,
- /* key: 0x692e */ 0xffff,
- /* key: 0x692f */ 0xffff,
- /* key: 0x6930 */ 0x5c3f,
- /* key: 0x6931 */ 0xc43d,
- /* key: 0x6932 */ 0xffff,
- /* key: 0x6933 */ 0xc43e,
- /* key: 0x6934 */ 0x464e,
- /* key: 0x6935 */ 0xc43f,
- /* key: 0x6936 */ 0x5c24,
- /* key: 0x6937 */ 0xffff,
- /* key: 0x6938 */ 0xc440,
- /* key: 0x6939 */ 0x5c3b,
- /* key: 0x693a */ 0xffff,
- /* key: 0x693b */ 0xc441,
- /* key: 0x693c */ 0xffff,
- /* key: 0x693d */ 0x5c3d,
- /* key: 0x693e */ 0xffff,
- /* key: 0x693f */ 0x4458,
- /* key: 0x6940 */ 0xffff,
- /* key: 0x6941 */ 0xffff,
- /* key: 0x6942 */ 0xc442,
- /* key: 0x6943 */ 0xffff,
- /* key: 0x6944 */ 0xffff,
- /* key: 0x6945 */ 0xc443,
- /* key: 0x6946 */ 0xffff,
- /* key: 0x6947 */ 0xffff,
- /* key: 0x6948 */ 0xffff,
- /* key: 0x6949 */ 0xc444,
- /* key: 0x694a */ 0x4d4c,
- /* key: 0x694b */ 0xffff,
- /* key: 0x694c */ 0xffff,
- /* key: 0x694d */ 0xffff,
- /* key: 0x694e */ 0xc445,
- /* key: 0x694f */ 0xffff,
- /* key: 0x6950 */ 0xffff,
- /* key: 0x6951 */ 0xffff,
- /* key: 0x6952 */ 0xffff,
- /* key: 0x6953 */ 0x4976,
- /* key: 0x6954 */ 0x5c38,
- /* key: 0x6955 */ 0x424a,
- /* key: 0x6956 */ 0xffff,
- /* key: 0x6957 */ 0xc446,
- /* key: 0x6958 */ 0xffff,
- /* key: 0x6959 */ 0x5c3e,
- /* key: 0x695a */ 0x413f,
- /* key: 0x695b */ 0xc447,
- /* key: 0x695c */ 0x5c35,
- /* key: 0x695d */ 0x5c42,
- /* key: 0x695e */ 0x5c41,
- /* key: 0x695f */ 0xffff,
- /* key: 0x6960 */ 0x466f,
- /* key: 0x6961 */ 0x5c40,
- /* key: 0x6962 */ 0x466a,
- /* key: 0x6963 */ 0xc448,
- /* key: 0x6964 */ 0xc449,
- /* key: 0x6965 */ 0xc44a,
- /* key: 0x6966 */ 0xc44b,
- /* key: 0x6967 */ 0xffff,
- /* key: 0x6968 */ 0xc44c,
- /* key: 0x6969 */ 0xc44d,
- /* key: 0x696a */ 0x5c44,
- /* key: 0x696b */ 0x5c37,
- /* key: 0x696c */ 0xc44e,
- /* key: 0x696d */ 0x3648,
- /* key: 0x696e */ 0x5c3a,
- /* key: 0x696f */ 0x3d5d,
- /* key: 0x6970 */ 0xc44f,
- /* key: 0x6971 */ 0xc450,
- /* key: 0x6972 */ 0xc451,
- /* key: 0x6973 */ 0x4760,
- /* key: 0x6974 */ 0x5c3c,
- /* key: 0x6975 */ 0x364b,
- /* key: 0x6976 */ 0xffff,
- /* key: 0x6977 */ 0x5c34,
- /* key: 0x6978 */ 0x5c36,
- /* key: 0x6979 */ 0x5c33,
- /* key: 0x697a */ 0xc452,
- /* key: 0x697b */ 0xc453,
- /* key: 0x697c */ 0x4f30,
- /* key: 0x697d */ 0x335a,
- /* key: 0x697e */ 0x5c39,
- /* key: 0x697f */ 0xc454,
- /* key: 0x6980 */ 0xc455,
- /* key: 0x6981 */ 0x5c43,
- /* key: 0x6982 */ 0x3335,
- /* key: 0x6983 */ 0xffff,
- /* key: 0x6984 */ 0xffff,
- /* key: 0x6985 */ 0xffff,
- /* key: 0x6986 */ 0xffff,
- /* key: 0x6987 */ 0xffff,
- /* key: 0x6988 */ 0xffff,
- /* key: 0x6989 */ 0xffff,
- /* key: 0x698a */ 0x3a67,
- /* key: 0x698b */ 0xffff,
- /* key: 0x698c */ 0xffff,
- /* key: 0x698d */ 0xc456,
- /* key: 0x698e */ 0x315d,
- /* key: 0x698f */ 0xffff,
- /* key: 0x6990 */ 0xffff,
- /* key: 0x6991 */ 0x5c54,
- /* key: 0x6992 */ 0xc457,
- /* key: 0x6993 */ 0xffff,
- /* key: 0x6994 */ 0x4f31,
- /* key: 0x6995 */ 0x5c57,
- /* key: 0x6996 */ 0xc458,
- /* key: 0x6997 */ 0xffff,
- /* key: 0x6998 */ 0xc459,
- /* key: 0x6999 */ 0xffff,
- /* key: 0x699a */ 0xffff,
- /* key: 0x699b */ 0x3f3a,
- /* key: 0x699c */ 0x5c56,
- /* key: 0x699d */ 0xffff,
- /* key: 0x699e */ 0xffff,
- /* key: 0x699f */ 0xffff,
- /* key: 0x69a0 */ 0x5c55,
- /* key: 0x69a1 */ 0xc45a,
- /* key: 0x69a2 */ 0xffff,
- /* key: 0x69a3 */ 0xffff,
- /* key: 0x69a4 */ 0xffff,
- /* key: 0x69a5 */ 0xc45b,
- /* key: 0x69a6 */ 0xc45c,
- /* key: 0x69a7 */ 0x5c52,
- /* key: 0x69a8 */ 0xc45d,
- /* key: 0x69a9 */ 0xffff,
- /* key: 0x69aa */ 0xffff,
- /* key: 0x69ab */ 0xc45e,
- /* key: 0x69ac */ 0xffff,
- /* key: 0x69ad */ 0xc45f,
- /* key: 0x69ae */ 0x5c46,
- /* key: 0x69af */ 0xc460,
- /* key: 0x69b0 */ 0xffff,
- /* key: 0x69b1 */ 0x5c63,
- /* key: 0x69b2 */ 0x5c45,
- /* key: 0x69b3 */ 0xffff,
- /* key: 0x69b4 */ 0x5c58,
- /* key: 0x69b5 */ 0xffff,
- /* key: 0x69b6 */ 0xffff,
- /* key: 0x69b7 */ 0xc461,
- /* key: 0x69b8 */ 0xc462,
- /* key: 0x69b9 */ 0xffff,
- /* key: 0x69ba */ 0xc463,
- /* key: 0x69bb */ 0x5c50,
- /* key: 0x69bc */ 0xc464,
- /* key: 0x69bd */ 0xffff,
- /* key: 0x69be */ 0x5c4b,
- /* key: 0x69bf */ 0x5c48,
- /* key: 0x69c0 */ 0xffff,
- /* key: 0x69c1 */ 0x5c49,
- /* key: 0x69c2 */ 0xffff,
- /* key: 0x69c3 */ 0x5c51,
- /* key: 0x69c4 */ 0xffff,
- /* key: 0x69c5 */ 0xc465,
- /* key: 0x69c6 */ 0xffff,
- /* key: 0x69c7 */ 0x7422,
- /* key: 0x69c8 */ 0xc466,
- /* key: 0x69c9 */ 0xffff,
- /* key: 0x69ca */ 0x5c4e,
- /* key: 0x69cb */ 0x393d,
- /* key: 0x69cc */ 0x4448,
- /* key: 0x69cd */ 0x4164,
- /* key: 0x69ce */ 0x5c4c,
- /* key: 0x69cf */ 0xffff,
- /* key: 0x69d0 */ 0x5c47,
- /* key: 0x69d1 */ 0xc467,
- /* key: 0x69d2 */ 0xffff,
- /* key: 0x69d3 */ 0x5c4a,
- /* key: 0x69d4 */ 0xffff,
- /* key: 0x69d5 */ 0xffff,
- /* key: 0x69d6 */ 0xc468,
- /* key: 0x69d7 */ 0xc469,
- /* key: 0x69d8 */ 0x4d4d,
- /* key: 0x69d9 */ 0x4b6a,
- /* key: 0x69da */ 0xffff,
- /* key: 0x69db */ 0xffff,
- /* key: 0x69dc */ 0xffff,
- /* key: 0x69dd */ 0x5c4f,
- /* key: 0x69de */ 0x5c59,
- /* key: 0x69df */ 0xffff,
- /* key: 0x69e0 */ 0xffff,
- /* key: 0x69e1 */ 0xffff,
- /* key: 0x69e2 */ 0xc46a,
- /* key: 0x69e3 */ 0xffff,
- /* key: 0x69e4 */ 0xffff,
- /* key: 0x69e5 */ 0xc46b,
- /* key: 0x69e6 */ 0xffff,
- /* key: 0x69e7 */ 0x5c61,
- /* key: 0x69e8 */ 0x5c5a,
- /* key: 0x69e9 */ 0xffff,
- /* key: 0x69ea */ 0xffff,
- /* key: 0x69eb */ 0x5c67,
- /* key: 0x69ec */ 0xffff,
- /* key: 0x69ed */ 0x5c65,
- /* key: 0x69ee */ 0xc46c,
- /* key: 0x69ef */ 0xc46d,
- /* key: 0x69f0 */ 0xffff,
- /* key: 0x69f1 */ 0xc46e,
- /* key: 0x69f2 */ 0x5c60,
- /* key: 0x69f3 */ 0xc46f,
- /* key: 0x69f4 */ 0xffff,
- /* key: 0x69f5 */ 0xc470,
- /* key: 0x69f6 */ 0xffff,
- /* key: 0x69f7 */ 0xffff,
- /* key: 0x69f8 */ 0xffff,
- /* key: 0x69f9 */ 0x5c5f,
- /* key: 0x69fa */ 0xffff,
- /* key: 0x69fb */ 0x4450,
- /* key: 0x69fc */ 0xffff,
- /* key: 0x69fd */ 0x4165,
- /* key: 0x69fe */ 0xc471,
- /* key: 0x69ff */ 0x5c5d,
- /* branch: 0x6a0X */ 9232,
- /* branch: 0x6a1X */ 9248,
- /* branch: 0x6a2X */ 9264,
- /* branch: 0x6a3X */ 9280,
- /* branch: 0x6a4X */ 9296,
- /* branch: 0x6a5X */ 9312,
- /* branch: 0x6a6X */ 9328,
- /* branch: 0x6a7X */ 9344,
- /* branch: 0x6a8X */ 9360,
- /* branch: 0x6a9X */ 9376,
- /* branch: 0x6aaX */ 9392,
- /* branch: 0x6abX */ 9408,
- /* branch: 0x6acX */ 9424,
- /* branch: 0x6adX */ 9440,
- /* branch: 0x6aeX */ 9456,
- /* branch: 0x6afX */ 9472,
- /* key: 0x6a00 */ 0xc472,
- /* key: 0x6a01 */ 0xc473,
- /* key: 0x6a02 */ 0x5c5b,
- /* key: 0x6a03 */ 0xc474,
- /* key: 0x6a04 */ 0xffff,
- /* key: 0x6a05 */ 0x5c62,
- /* key: 0x6a06 */ 0xffff,
- /* key: 0x6a07 */ 0xffff,
- /* key: 0x6a08 */ 0xffff,
- /* key: 0x6a09 */ 0xffff,
- /* key: 0x6a0a */ 0x5c68,
- /* key: 0x6a0b */ 0x4875,
- /* key: 0x6a0c */ 0x5c6e,
- /* key: 0x6a0d */ 0xffff,
- /* key: 0x6a0e */ 0xffff,
- /* key: 0x6a0f */ 0xc475,
- /* key: 0x6a10 */ 0xffff,
- /* key: 0x6a11 */ 0xc476,
- /* key: 0x6a12 */ 0x5c69,
- /* key: 0x6a13 */ 0x5c6c,
- /* key: 0x6a14 */ 0x5c66,
- /* key: 0x6a15 */ 0xc477,
- /* key: 0x6a16 */ 0xffff,
- /* key: 0x6a17 */ 0x4374,
- /* key: 0x6a18 */ 0xffff,
- /* key: 0x6a19 */ 0x4938,
- /* key: 0x6a1a */ 0xc478,
- /* key: 0x6a1b */ 0x5c5c,
- /* key: 0x6a1c */ 0xffff,
- /* key: 0x6a1d */ 0xc479,
- /* key: 0x6a1e */ 0x5c64,
- /* key: 0x6a1f */ 0x3e40,
- /* key: 0x6a20 */ 0xc47a,
- /* key: 0x6a21 */ 0x4c4f,
- /* key: 0x6a22 */ 0x5c78,
- /* key: 0x6a23 */ 0x5c6b,
- /* key: 0x6a24 */ 0xc47b,
- /* key: 0x6a25 */ 0xffff,
- /* key: 0x6a26 */ 0xffff,
- /* key: 0x6a27 */ 0xffff,
- /* key: 0x6a28 */ 0xc47c,
- /* key: 0x6a29 */ 0x3822,
- /* key: 0x6a2a */ 0x3223,
- /* key: 0x6a2b */ 0x335f,
- /* key: 0x6a2c */ 0xffff,
- /* key: 0x6a2d */ 0xffff,
- /* key: 0x6a2e */ 0x5c53,
- /* key: 0x6a2f */ 0xffff,
- /* key: 0x6a30 */ 0xc47d,
- /* key: 0x6a31 */ 0xffff,
- /* key: 0x6a32 */ 0xc47e,
- /* key: 0x6a33 */ 0xffff,
- /* key: 0x6a34 */ 0xc521,
- /* key: 0x6a35 */ 0x3e41,
- /* key: 0x6a36 */ 0x5c70,
- /* key: 0x6a37 */ 0xc522,
- /* key: 0x6a38 */ 0x5c77,
- /* key: 0x6a39 */ 0x3c79,
- /* key: 0x6a3a */ 0x3372,
- /* key: 0x6a3b */ 0xc523,
- /* key: 0x6a3c */ 0xffff,
- /* key: 0x6a3d */ 0x432e,
- /* key: 0x6a3e */ 0xc524,
- /* key: 0x6a3f */ 0xc525,
- /* key: 0x6a40 */ 0xffff,
- /* key: 0x6a41 */ 0xffff,
- /* key: 0x6a42 */ 0xffff,
- /* key: 0x6a43 */ 0xffff,
- /* key: 0x6a44 */ 0x5c6d,
- /* key: 0x6a45 */ 0xc526,
- /* key: 0x6a46 */ 0xc527,
- /* key: 0x6a47 */ 0x5c72,
- /* key: 0x6a48 */ 0x5c76,
- /* key: 0x6a49 */ 0xc528,
- /* key: 0x6a4a */ 0xc529,
- /* key: 0x6a4b */ 0x3636,
- /* key: 0x6a4c */ 0xffff,
- /* key: 0x6a4d */ 0xffff,
- /* key: 0x6a4e */ 0xc52a,
- /* key: 0x6a4f */ 0xffff,
- /* key: 0x6a50 */ 0xc52b,
- /* key: 0x6a51 */ 0xc52c,
- /* key: 0x6a52 */ 0xc52d,
- /* key: 0x6a53 */ 0xffff,
- /* key: 0x6a54 */ 0xffff,
- /* key: 0x6a55 */ 0xc52e,
- /* key: 0x6a56 */ 0xc52f,
- /* key: 0x6a57 */ 0xffff,
- /* key: 0x6a58 */ 0x354c,
- /* key: 0x6a59 */ 0x5c74,
- /* key: 0x6a5a */ 0xffff,
- /* key: 0x6a5b */ 0xc530,
- /* key: 0x6a5c */ 0xffff,
- /* key: 0x6a5d */ 0xffff,
- /* key: 0x6a5e */ 0xffff,
- /* key: 0x6a5f */ 0x3521,
- /* key: 0x6a60 */ 0xffff,
- /* key: 0x6a61 */ 0x464b,
- /* key: 0x6a62 */ 0x5c73,
- /* key: 0x6a63 */ 0xffff,
- /* key: 0x6a64 */ 0xc531,
- /* key: 0x6a65 */ 0xffff,
- /* key: 0x6a66 */ 0x5c75,
- /* key: 0x6a67 */ 0xc532,
- /* key: 0x6a68 */ 0xffff,
- /* key: 0x6a69 */ 0xffff,
- /* key: 0x6a6a */ 0xc533,
- /* key: 0x6a6b */ 0xffff,
- /* key: 0x6a6c */ 0xffff,
- /* key: 0x6a6d */ 0xffff,
- /* key: 0x6a6e */ 0xffff,
- /* key: 0x6a6f */ 0xffff,
- /* key: 0x6a70 */ 0xffff,
- /* key: 0x6a71 */ 0xc534,
- /* key: 0x6a72 */ 0x5c6f,
- /* key: 0x6a73 */ 0xc535,
- /* key: 0x6a74 */ 0xffff,
- /* key: 0x6a75 */ 0xffff,
- /* key: 0x6a76 */ 0xffff,
- /* key: 0x6a77 */ 0xffff,
- /* key: 0x6a78 */ 0x5c71,
- /* key: 0x6a79 */ 0xffff,
- /* key: 0x6a7a */ 0xffff,
- /* key: 0x6a7b */ 0xffff,
- /* key: 0x6a7c */ 0xffff,
- /* key: 0x6a7d */ 0xffff,
- /* key: 0x6a7e */ 0xc536,
- /* key: 0x6a7f */ 0x3360,
- /* key: 0x6a80 */ 0x4349,
- /* key: 0x6a81 */ 0xc537,
- /* key: 0x6a82 */ 0xffff,
- /* key: 0x6a83 */ 0xc538,
- /* key: 0x6a84 */ 0x5c7c,
- /* key: 0x6a85 */ 0xffff,
- /* key: 0x6a86 */ 0xc539,
- /* key: 0x6a87 */ 0xc53a,
- /* key: 0x6a88 */ 0xffff,
- /* key: 0x6a89 */ 0xc53b,
- /* key: 0x6a8a */ 0xffff,
- /* key: 0x6a8b */ 0xc53c,
- /* key: 0x6a8c */ 0xffff,
- /* key: 0x6a8d */ 0x5c7a,
- /* key: 0x6a8e */ 0x3869,
- /* key: 0x6a8f */ 0xffff,
- /* key: 0x6a90 */ 0x5c79,
- /* key: 0x6a91 */ 0xc53d,
- /* key: 0x6a92 */ 0xffff,
- /* key: 0x6a93 */ 0xffff,
- /* key: 0x6a94 */ 0xffff,
- /* key: 0x6a95 */ 0xffff,
- /* key: 0x6a96 */ 0xffff,
- /* key: 0x6a97 */ 0x5d21,
- /* key: 0x6a98 */ 0xffff,
- /* key: 0x6a99 */ 0xffff,
- /* key: 0x6a9a */ 0xffff,
- /* key: 0x6a9b */ 0xc53e,
- /* key: 0x6a9c */ 0x5b58,
- /* key: 0x6a9d */ 0xc53f,
- /* key: 0x6a9e */ 0xc540,
- /* key: 0x6a9f */ 0xc541,
- /* key: 0x6aa0 */ 0x5c7b,
- /* key: 0x6aa1 */ 0xffff,
- /* key: 0x6aa2 */ 0x5c7d,
- /* key: 0x6aa3 */ 0x5c7e,
- /* key: 0x6aa4 */ 0xffff,
- /* key: 0x6aa5 */ 0xc542,
- /* key: 0x6aa6 */ 0xffff,
- /* key: 0x6aa7 */ 0xffff,
- /* key: 0x6aa8 */ 0xffff,
- /* key: 0x6aa9 */ 0xffff,
- /* key: 0x6aaa */ 0x5d2c,
- /* key: 0x6aab */ 0xc543,
- /* key: 0x6aac */ 0x5d28,
- /* key: 0x6aad */ 0xffff,
- /* key: 0x6aae */ 0x5b6d,
- /* key: 0x6aaf */ 0xc544,
- /* key: 0x6ab0 */ 0xc545,
- /* key: 0x6ab1 */ 0xc546,
- /* key: 0x6ab2 */ 0xffff,
- /* key: 0x6ab3 */ 0x5d27,
- /* key: 0x6ab4 */ 0xc547,
- /* key: 0x6ab5 */ 0xffff,
- /* key: 0x6ab6 */ 0xffff,
- /* key: 0x6ab7 */ 0xffff,
- /* key: 0x6ab8 */ 0x5d26,
- /* key: 0x6ab9 */ 0xffff,
- /* key: 0x6aba */ 0xffff,
- /* key: 0x6abb */ 0x5d23,
- /* key: 0x6abc */ 0xffff,
- /* key: 0x6abd */ 0xc548,
- /* key: 0x6abe */ 0xc549,
- /* key: 0x6abf */ 0xc54a,
- /* key: 0x6ac0 */ 0xffff,
- /* key: 0x6ac1 */ 0x5c6a,
- /* key: 0x6ac2 */ 0x5d25,
- /* key: 0x6ac3 */ 0x5d24,
- /* key: 0x6ac4 */ 0xffff,
- /* key: 0x6ac5 */ 0xffff,
- /* key: 0x6ac6 */ 0xc54b,
- /* key: 0x6ac7 */ 0xffff,
- /* key: 0x6ac8 */ 0xc54d,
- /* key: 0x6ac9 */ 0xc54c,
- /* key: 0x6aca */ 0xffff,
- /* key: 0x6acb */ 0xffff,
- /* key: 0x6acc */ 0xc54e,
- /* key: 0x6acd */ 0xffff,
- /* key: 0x6ace */ 0xffff,
- /* key: 0x6acf */ 0xffff,
- /* key: 0x6ad0 */ 0xc54f,
- /* key: 0x6ad1 */ 0x5d2a,
- /* key: 0x6ad2 */ 0xffff,
- /* key: 0x6ad3 */ 0x4f26,
- /* key: 0x6ad4 */ 0xc550,
- /* key: 0x6ad5 */ 0xc551,
- /* key: 0x6ad6 */ 0xc552,
- /* key: 0x6ad7 */ 0xffff,
- /* key: 0x6ad8 */ 0xffff,
- /* key: 0x6ad9 */ 0xffff,
- /* key: 0x6ada */ 0x5d2d,
- /* key: 0x6adb */ 0x367b,
- /* key: 0x6adc */ 0xc553,
- /* key: 0x6add */ 0xc554,
- /* key: 0x6ade */ 0x5d29,
- /* key: 0x6adf */ 0x5d2b,
- /* key: 0x6ae0 */ 0xffff,
- /* key: 0x6ae1 */ 0xffff,
- /* key: 0x6ae2 */ 0xffff,
- /* key: 0x6ae3 */ 0xffff,
- /* key: 0x6ae4 */ 0xc555,
- /* key: 0x6ae5 */ 0xffff,
- /* key: 0x6ae6 */ 0xffff,
- /* key: 0x6ae7 */ 0xc556,
- /* key: 0x6ae8 */ 0x4827,
- /* key: 0x6ae9 */ 0xffff,
- /* key: 0x6aea */ 0x5d2e,
- /* key: 0x6aeb */ 0xffff,
- /* key: 0x6aec */ 0xc557,
- /* key: 0x6aed */ 0xffff,
- /* key: 0x6aee */ 0xffff,
- /* key: 0x6aef */ 0xffff,
- /* key: 0x6af0 */ 0xc558,
- /* key: 0x6af1 */ 0xc559,
- /* key: 0x6af2 */ 0xc55a,
- /* key: 0x6af3 */ 0xffff,
- /* key: 0x6af4 */ 0xffff,
- /* key: 0x6af5 */ 0xffff,
- /* key: 0x6af6 */ 0xffff,
- /* key: 0x6af7 */ 0xffff,
- /* key: 0x6af8 */ 0xffff,
- /* key: 0x6af9 */ 0xffff,
- /* key: 0x6afa */ 0x5d32,
- /* key: 0x6afb */ 0x5d2f,
- /* key: 0x6afc */ 0xc55b,
- /* key: 0x6afd */ 0xc55c,
- /* key: 0x6afe */ 0xffff,
- /* key: 0x6aff */ 0xffff,
- /* branch: 0x6b0X */ 9504,
- /* branch: 0x6b1X */ 9520,
- /* branch: 0x6b2X */ 9536,
- /* branch: 0x6b3X */ 9552,
- /* branch: 0x6b4X */ 9568,
- /* branch: 0x6b5X */ 9584,
- /* branch: 0x6b6X */ 9600,
- /* branch: 0x6b7X */ 9616,
- /* branch: 0x6b8X */ 9632,
- /* branch: 0x6b9X */ 9648,
- /* branch: 0x6baX */ 9664,
- /* branch: 0x6bbX */ 9680,
- /* branch: 0x6bcX */ 9696,
- /* branch: 0x6bdX */ 9712,
- /* branch: 0x6beX */ 9728,
- /* branch: 0x6bfX */ 9744,
- /* key: 0x6b00 */ 0xffff,
- /* key: 0x6b01 */ 0xffff,
- /* key: 0x6b02 */ 0xc55d,
- /* key: 0x6b03 */ 0xc55e,
- /* key: 0x6b04 */ 0x4d73,
- /* key: 0x6b05 */ 0x5d30,
- /* key: 0x6b06 */ 0xc55f,
- /* key: 0x6b07 */ 0xc560,
- /* key: 0x6b08 */ 0xffff,
- /* key: 0x6b09 */ 0xc561,
- /* key: 0x6b0a */ 0x5c5e,
- /* key: 0x6b0b */ 0xffff,
- /* key: 0x6b0c */ 0xffff,
- /* key: 0x6b0d */ 0xffff,
- /* key: 0x6b0e */ 0xffff,
- /* key: 0x6b0f */ 0xc562,
- /* key: 0x6b10 */ 0xc563,
- /* key: 0x6b11 */ 0xc564,
- /* key: 0x6b12 */ 0x5d33,
- /* key: 0x6b13 */ 0xffff,
- /* key: 0x6b14 */ 0xffff,
- /* key: 0x6b15 */ 0xffff,
- /* key: 0x6b16 */ 0x5d34,
- /* key: 0x6b17 */ 0xc565,
- /* key: 0x6b18 */ 0xffff,
- /* key: 0x6b19 */ 0xffff,
- /* key: 0x6b1a */ 0xffff,
- /* key: 0x6b1b */ 0xc566,
- /* key: 0x6b1c */ 0xffff,
- /* key: 0x6b1d */ 0x3135,
- /* key: 0x6b1e */ 0xc567,
- /* key: 0x6b1f */ 0x5d36,
- /* key: 0x6b20 */ 0x3767,
- /* key: 0x6b21 */ 0x3c21,
- /* key: 0x6b22 */ 0xffff,
- /* key: 0x6b23 */ 0x3655,
- /* key: 0x6b24 */ 0xc568,
- /* key: 0x6b25 */ 0xffff,
- /* key: 0x6b26 */ 0xffff,
- /* key: 0x6b27 */ 0x3224,
- /* key: 0x6b28 */ 0xc569,
- /* key: 0x6b29 */ 0xffff,
- /* key: 0x6b2a */ 0xffff,
- /* key: 0x6b2b */ 0xc56a,
- /* key: 0x6b2c */ 0xc56b,
- /* key: 0x6b2d */ 0xffff,
- /* key: 0x6b2e */ 0xffff,
- /* key: 0x6b2f */ 0xc56c,
- /* key: 0x6b30 */ 0xffff,
- /* key: 0x6b31 */ 0xffff,
- /* key: 0x6b32 */ 0x4d5f,
- /* key: 0x6b33 */ 0xffff,
- /* key: 0x6b34 */ 0xffff,
- /* key: 0x6b35 */ 0xc56d,
- /* key: 0x6b36 */ 0xc56e,
- /* key: 0x6b37 */ 0x5d38,
- /* key: 0x6b38 */ 0x5d37,
- /* key: 0x6b39 */ 0x5d3a,
- /* key: 0x6b3a */ 0x353d,
- /* key: 0x6b3b */ 0xc56f,
- /* key: 0x6b3c */ 0xffff,
- /* key: 0x6b3d */ 0x3656,
- /* key: 0x6b3e */ 0x343e,
- /* key: 0x6b3f */ 0xc570,
- /* key: 0x6b40 */ 0xffff,
- /* key: 0x6b41 */ 0xffff,
- /* key: 0x6b42 */ 0xffff,
- /* key: 0x6b43 */ 0x5d3d,
- /* key: 0x6b44 */ 0xffff,
- /* key: 0x6b45 */ 0xffff,
- /* key: 0x6b46 */ 0xc571,
- /* key: 0x6b47 */ 0x5d3c,
- /* key: 0x6b48 */ 0xffff,
- /* key: 0x6b49 */ 0x5d3e,
- /* key: 0x6b4a */ 0xc572,
- /* key: 0x6b4b */ 0xffff,
- /* key: 0x6b4c */ 0x324e,
- /* key: 0x6b4d */ 0xc573,
- /* key: 0x6b4e */ 0x4337,
- /* key: 0x6b4f */ 0xffff,
- /* key: 0x6b50 */ 0x5d3f,
- /* key: 0x6b51 */ 0xffff,
- /* key: 0x6b52 */ 0xc574,
- /* key: 0x6b53 */ 0x343f,
- /* key: 0x6b54 */ 0x5d41,
- /* key: 0x6b55 */ 0xffff,
- /* key: 0x6b56 */ 0xc575,
- /* key: 0x6b57 */ 0xffff,
- /* key: 0x6b58 */ 0xc576,
- /* key: 0x6b59 */ 0x5d40,
- /* key: 0x6b5a */ 0xffff,
- /* key: 0x6b5b */ 0x5d42,
- /* key: 0x6b5c */ 0xffff,
- /* key: 0x6b5d */ 0xc577,
- /* key: 0x6b5e */ 0xffff,
- /* key: 0x6b5f */ 0x5d43,
- /* key: 0x6b60 */ 0xc578,
- /* key: 0x6b61 */ 0x5d44,
- /* key: 0x6b62 */ 0x3b5f,
- /* key: 0x6b63 */ 0x4035,
- /* key: 0x6b64 */ 0x3a21,
- /* key: 0x6b65 */ 0xffff,
- /* key: 0x6b66 */ 0x4970,
- /* key: 0x6b67 */ 0xc579,
- /* key: 0x6b68 */ 0xffff,
- /* key: 0x6b69 */ 0x4a62,
- /* key: 0x6b6a */ 0x4f44,
- /* key: 0x6b6b */ 0xc57a,
- /* key: 0x6b6c */ 0xffff,
- /* key: 0x6b6d */ 0xffff,
- /* key: 0x6b6e */ 0xc57b,
- /* key: 0x6b6f */ 0x3b75,
- /* key: 0x6b70 */ 0xc57c,
- /* key: 0x6b71 */ 0xffff,
- /* key: 0x6b72 */ 0xffff,
- /* key: 0x6b73 */ 0x3a50,
- /* key: 0x6b74 */ 0x4e72,
- /* key: 0x6b75 */ 0xc57d,
- /* key: 0x6b76 */ 0xffff,
- /* key: 0x6b77 */ 0xffff,
- /* key: 0x6b78 */ 0x5d45,
- /* key: 0x6b79 */ 0x5d46,
- /* key: 0x6b7a */ 0xffff,
- /* key: 0x6b7b */ 0x3b60,
- /* key: 0x6b7c */ 0xffff,
- /* key: 0x6b7d */ 0xc57e,
- /* key: 0x6b7e */ 0xc621,
- /* key: 0x6b7f */ 0x5d47,
- /* key: 0x6b80 */ 0x5d48,
- /* key: 0x6b81 */ 0xffff,
- /* key: 0x6b82 */ 0xc622,
- /* key: 0x6b83 */ 0x5d4a,
- /* key: 0x6b84 */ 0x5d49,
- /* key: 0x6b85 */ 0xc623,
- /* key: 0x6b86 */ 0x4b58,
- /* key: 0x6b87 */ 0xffff,
- /* key: 0x6b88 */ 0xffff,
- /* key: 0x6b89 */ 0x3d5e,
- /* key: 0x6b8a */ 0x3c6c,
- /* key: 0x6b8b */ 0x3b44,
- /* key: 0x6b8c */ 0xffff,
- /* key: 0x6b8d */ 0x5d4b,
- /* key: 0x6b8e */ 0xffff,
- /* key: 0x6b8f */ 0xffff,
- /* key: 0x6b90 */ 0xffff,
- /* key: 0x6b91 */ 0xffff,
- /* key: 0x6b92 */ 0xffff,
- /* key: 0x6b93 */ 0xffff,
- /* key: 0x6b94 */ 0xffff,
- /* key: 0x6b95 */ 0x5d4d,
- /* key: 0x6b96 */ 0x3f23,
- /* key: 0x6b97 */ 0xc624,
- /* key: 0x6b98 */ 0x5d4c,
- /* key: 0x6b99 */ 0xffff,
- /* key: 0x6b9a */ 0xffff,
- /* key: 0x6b9b */ 0xc625,
- /* key: 0x6b9c */ 0xffff,
- /* key: 0x6b9d */ 0xffff,
- /* key: 0x6b9e */ 0x5d4e,
- /* key: 0x6b9f */ 0xc626,
- /* key: 0x6ba0 */ 0xc627,
- /* key: 0x6ba1 */ 0xffff,
- /* key: 0x6ba2 */ 0xc628,
- /* key: 0x6ba3 */ 0xc629,
- /* key: 0x6ba4 */ 0x5d4f,
- /* key: 0x6ba5 */ 0xffff,
- /* key: 0x6ba6 */ 0xffff,
- /* key: 0x6ba7 */ 0xffff,
- /* key: 0x6ba8 */ 0xc62a,
- /* key: 0x6ba9 */ 0xc62b,
- /* key: 0x6baa */ 0x5d50,
- /* key: 0x6bab */ 0x5d51,
- /* key: 0x6bac */ 0xc62c,
- /* key: 0x6bad */ 0xc62d,
- /* key: 0x6bae */ 0xc62e,
- /* key: 0x6baf */ 0x5d52,
- /* key: 0x6bb0 */ 0xc62f,
- /* key: 0x6bb1 */ 0x5d54,
- /* key: 0x6bb2 */ 0x5d53,
- /* key: 0x6bb3 */ 0x5d55,
- /* key: 0x6bb4 */ 0x3225,
- /* key: 0x6bb5 */ 0x434a,
- /* key: 0x6bb6 */ 0xffff,
- /* key: 0x6bb7 */ 0x5d56,
- /* key: 0x6bb8 */ 0xc630,
- /* key: 0x6bb9 */ 0xc631,
- /* key: 0x6bba */ 0x3b26,
- /* key: 0x6bbb */ 0x334c,
- /* key: 0x6bbc */ 0x5d57,
- /* key: 0x6bbd */ 0xc632,
- /* key: 0x6bbe */ 0xc633,
- /* key: 0x6bbf */ 0x4542,
- /* key: 0x6bc0 */ 0x544c,
- /* key: 0x6bc1 */ 0xffff,
- /* key: 0x6bc2 */ 0xffff,
- /* key: 0x6bc3 */ 0xc634,
- /* key: 0x6bc4 */ 0xc635,
- /* key: 0x6bc5 */ 0x3523,
- /* key: 0x6bc6 */ 0x5d58,
- /* key: 0x6bc7 */ 0xffff,
- /* key: 0x6bc8 */ 0xffff,
- /* key: 0x6bc9 */ 0xc636,
- /* key: 0x6bca */ 0xffff,
- /* key: 0x6bcb */ 0x5d59,
- /* key: 0x6bcc */ 0xc637,
- /* key: 0x6bcd */ 0x4a6c,
- /* key: 0x6bce */ 0x4b68,
- /* key: 0x6bcf */ 0xffff,
- /* key: 0x6bd0 */ 0xffff,
- /* key: 0x6bd1 */ 0xffff,
- /* key: 0x6bd2 */ 0x4647,
- /* key: 0x6bd3 */ 0x5d5a,
- /* key: 0x6bd4 */ 0x4866,
- /* key: 0x6bd5 */ 0xffff,
- /* key: 0x6bd6 */ 0xc638,
- /* key: 0x6bd7 */ 0xffff,
- /* key: 0x6bd8 */ 0x487b,
- /* key: 0x6bd9 */ 0xffff,
- /* key: 0x6bda */ 0xc639,
- /* key: 0x6bdb */ 0x4c53,
- /* key: 0x6bdc */ 0xffff,
- /* key: 0x6bdd */ 0xffff,
- /* key: 0x6bde */ 0xffff,
- /* key: 0x6bdf */ 0x5d5b,
- /* key: 0x6be0 */ 0xffff,
- /* key: 0x6be1 */ 0xc63a,
- /* key: 0x6be2 */ 0xffff,
- /* key: 0x6be3 */ 0xc63b,
- /* key: 0x6be4 */ 0xffff,
- /* key: 0x6be5 */ 0xffff,
- /* key: 0x6be6 */ 0xc63c,
- /* key: 0x6be7 */ 0xc63d,
- /* key: 0x6be8 */ 0xffff,
- /* key: 0x6be9 */ 0xffff,
- /* key: 0x6bea */ 0xffff,
- /* key: 0x6beb */ 0x5d5d,
- /* key: 0x6bec */ 0x5d5c,
- /* key: 0x6bed */ 0xffff,
- /* key: 0x6bee */ 0xc63e,
- /* key: 0x6bef */ 0x5d5f,
- /* key: 0x6bf0 */ 0xffff,
- /* key: 0x6bf1 */ 0xc63f,
- /* key: 0x6bf2 */ 0xffff,
- /* key: 0x6bf3 */ 0x5d5e,
- /* key: 0x6bf4 */ 0xffff,
- /* key: 0x6bf5 */ 0xffff,
- /* key: 0x6bf6 */ 0xffff,
- /* key: 0x6bf7 */ 0xc640,
- /* key: 0x6bf8 */ 0xffff,
- /* key: 0x6bf9 */ 0xc641,
- /* key: 0x6bfa */ 0xffff,
- /* key: 0x6bfb */ 0xffff,
- /* key: 0x6bfc */ 0xffff,
- /* key: 0x6bfd */ 0xffff,
- /* key: 0x6bfe */ 0xffff,
- /* key: 0x6bff */ 0xc642,
- /* branch: 0x6c0X */ 9776,
- /* branch: 0x6c1X */ 9792,
- /* branch: 0x6c2X */ 9808,
- /* branch: 0x6c3X */ 9824,
- /* branch: 0x6c4X */ 9840,
- /* branch: 0x6c5X */ 9856,
- /* branch: 0x6c6X */ 9872,
- /* branch: 0x6c7X */ 9888,
- /* branch: 0x6c8X */ 9904,
- /* branch: 0x6c9X */ 9920,
- /* branch: 0x6caX */ 9936,
- /* branch: 0x6cbX */ 9952,
- /* branch: 0x6ccX */ 9968,
- /* branch: 0x6cdX */ 9984,
- /* branch: 0x6ceX */ 10000,
- /* branch: 0x6cfX */ 10016,
- /* key: 0x6c00 */ 0xffff,
- /* key: 0x6c01 */ 0xffff,
- /* key: 0x6c02 */ 0xc643,
- /* key: 0x6c03 */ 0xffff,
- /* key: 0x6c04 */ 0xc644,
- /* key: 0x6c05 */ 0xc645,
- /* key: 0x6c06 */ 0xffff,
- /* key: 0x6c07 */ 0xffff,
- /* key: 0x6c08 */ 0x5d61,
- /* key: 0x6c09 */ 0xc646,
- /* key: 0x6c0a */ 0xffff,
- /* key: 0x6c0b */ 0xffff,
- /* key: 0x6c0c */ 0xffff,
- /* key: 0x6c0d */ 0xc647,
- /* key: 0x6c0e */ 0xc648,
- /* key: 0x6c0f */ 0x3b61,
- /* key: 0x6c10 */ 0xc649,
- /* key: 0x6c11 */ 0x4c31,
- /* key: 0x6c12 */ 0xc64a,
- /* key: 0x6c13 */ 0x5d62,
- /* key: 0x6c14 */ 0x5d63,
- /* key: 0x6c15 */ 0xffff,
- /* key: 0x6c16 */ 0xffff,
- /* key: 0x6c17 */ 0x3524,
- /* key: 0x6c18 */ 0xffff,
- /* key: 0x6c19 */ 0xc64b,
- /* key: 0x6c1a */ 0xffff,
- /* key: 0x6c1b */ 0x5d64,
- /* key: 0x6c1c */ 0xffff,
- /* key: 0x6c1d */ 0xffff,
- /* key: 0x6c1e */ 0xffff,
- /* key: 0x6c1f */ 0xc64c,
- /* key: 0x6c20 */ 0xffff,
- /* key: 0x6c21 */ 0xffff,
- /* key: 0x6c22 */ 0xffff,
- /* key: 0x6c23 */ 0x5d66,
- /* key: 0x6c24 */ 0x5d65,
- /* key: 0x6c25 */ 0xffff,
- /* key: 0x6c26 */ 0xc64d,
- /* key: 0x6c27 */ 0xc64e,
- /* key: 0x6c28 */ 0xc64f,
- /* key: 0x6c29 */ 0xffff,
- /* key: 0x6c2a */ 0xffff,
- /* key: 0x6c2b */ 0xffff,
- /* key: 0x6c2c */ 0xc650,
- /* key: 0x6c2d */ 0xffff,
- /* key: 0x6c2e */ 0xc651,
- /* key: 0x6c2f */ 0xffff,
- /* key: 0x6c30 */ 0xffff,
- /* key: 0x6c31 */ 0xffff,
- /* key: 0x6c32 */ 0xffff,
- /* key: 0x6c33 */ 0xc652,
- /* key: 0x6c34 */ 0x3f65,
- /* key: 0x6c35 */ 0xc653,
- /* key: 0x6c36 */ 0xc654,
- /* key: 0x6c37 */ 0x4939,
- /* key: 0x6c38 */ 0x314a,
- /* key: 0x6c39 */ 0xffff,
- /* key: 0x6c3a */ 0xc655,
- /* key: 0x6c3b */ 0xc656,
- /* key: 0x6c3c */ 0xffff,
- /* key: 0x6c3d */ 0xffff,
- /* key: 0x6c3e */ 0x4845,
- /* key: 0x6c3f */ 0xc657,
- /* key: 0x6c40 */ 0x4475,
- /* key: 0x6c41 */ 0x3d41,
- /* key: 0x6c42 */ 0x3561,
- /* key: 0x6c43 */ 0xffff,
- /* key: 0x6c44 */ 0xffff,
- /* key: 0x6c45 */ 0xffff,
- /* key: 0x6c46 */ 0xffff,
- /* key: 0x6c47 */ 0xffff,
- /* key: 0x6c48 */ 0xffff,
- /* key: 0x6c49 */ 0xffff,
- /* key: 0x6c4a */ 0xc658,
- /* key: 0x6c4b */ 0xc659,
- /* key: 0x6c4c */ 0xffff,
- /* key: 0x6c4d */ 0xc65a,
- /* key: 0x6c4e */ 0x4846,
- /* key: 0x6c4f */ 0xc65b,
- /* key: 0x6c50 */ 0x3c2e,
- /* key: 0x6c51 */ 0xffff,
- /* key: 0x6c52 */ 0xc65c,
- /* key: 0x6c53 */ 0xffff,
- /* key: 0x6c54 */ 0xc65d,
- /* key: 0x6c55 */ 0x5d68,
- /* key: 0x6c56 */ 0xffff,
- /* key: 0x6c57 */ 0x3440,
- /* key: 0x6c58 */ 0xffff,
- /* key: 0x6c59 */ 0xc65e,
- /* key: 0x6c5a */ 0x3178,
- /* key: 0x6c5b */ 0xc65f,
- /* key: 0x6c5c */ 0xc660,
- /* key: 0x6c5d */ 0x4672,
- /* key: 0x6c5e */ 0x5d67,
- /* key: 0x6c5f */ 0x393e,
- /* key: 0x6c60 */ 0x4353,
- /* key: 0x6c61 */ 0xffff,
- /* key: 0x6c62 */ 0x5d69,
- /* key: 0x6c63 */ 0xffff,
- /* key: 0x6c64 */ 0xffff,
- /* key: 0x6c65 */ 0xffff,
- /* key: 0x6c66 */ 0xffff,
- /* key: 0x6c67 */ 0xc736,
- /* key: 0x6c68 */ 0x5d71,
- /* key: 0x6c69 */ 0xffff,
- /* key: 0x6c6a */ 0x5d6a,
- /* key: 0x6c6b */ 0xc661,
- /* key: 0x6c6c */ 0xffff,
- /* key: 0x6c6d */ 0xc662,
- /* key: 0x6c6e */ 0xffff,
- /* key: 0x6c6f */ 0xc663,
- /* key: 0x6c70 */ 0x4241,
- /* key: 0x6c71 */ 0xffff,
- /* key: 0x6c72 */ 0x3562,
- /* key: 0x6c73 */ 0x5d72,
- /* key: 0x6c74 */ 0xc664,
- /* key: 0x6c75 */ 0xffff,
- /* key: 0x6c76 */ 0xc665,
- /* key: 0x6c77 */ 0xffff,
- /* key: 0x6c78 */ 0xc666,
- /* key: 0x6c79 */ 0xc667,
- /* key: 0x6c7a */ 0x3768,
- /* key: 0x6c7b */ 0xc668,
- /* key: 0x6c7c */ 0xffff,
- /* key: 0x6c7d */ 0x3525,
- /* key: 0x6c7e */ 0x5d70,
- /* key: 0x6c7f */ 0xffff,
- /* key: 0x6c80 */ 0xffff,
- /* key: 0x6c81 */ 0x5d6e,
- /* key: 0x6c82 */ 0x5d6b,
- /* key: 0x6c83 */ 0x4d60,
- /* key: 0x6c84 */ 0xffff,
- /* key: 0x6c85 */ 0xc669,
- /* key: 0x6c86 */ 0xc66a,
- /* key: 0x6c87 */ 0xc66b,
- /* key: 0x6c88 */ 0x4440,
- /* key: 0x6c89 */ 0xc66c,
- /* key: 0x6c8a */ 0xffff,
- /* key: 0x6c8b */ 0xffff,
- /* key: 0x6c8c */ 0x4659,
- /* key: 0x6c8d */ 0x5d6c,
- /* key: 0x6c8e */ 0xffff,
- /* key: 0x6c8f */ 0xffff,
- /* key: 0x6c90 */ 0x5d74,
- /* key: 0x6c91 */ 0xffff,
- /* key: 0x6c92 */ 0x5d73,
- /* key: 0x6c93 */ 0x3723,
- /* key: 0x6c94 */ 0xc66d,
- /* key: 0x6c95 */ 0xc66e,
- /* key: 0x6c96 */ 0x322d,
- /* key: 0x6c97 */ 0xc66f,
- /* key: 0x6c98 */ 0xc670,
- /* key: 0x6c99 */ 0x3a3b,
- /* key: 0x6c9a */ 0x5d6d,
- /* key: 0x6c9b */ 0x5d6f,
- /* key: 0x6c9c */ 0xc671,
- /* key: 0x6c9d */ 0xffff,
- /* key: 0x6c9e */ 0xffff,
- /* key: 0x6c9f */ 0xc672,
- /* key: 0x6ca0 */ 0xffff,
- /* key: 0x6ca1 */ 0x4b57,
- /* key: 0x6ca2 */ 0x4274,
- /* key: 0x6ca3 */ 0xffff,
- /* key: 0x6ca4 */ 0xffff,
- /* key: 0x6ca5 */ 0xffff,
- /* key: 0x6ca6 */ 0xffff,
- /* key: 0x6ca7 */ 0xffff,
- /* key: 0x6ca8 */ 0xffff,
- /* key: 0x6ca9 */ 0xffff,
- /* key: 0x6caa */ 0xffff,
- /* key: 0x6cab */ 0x4b77,
- /* key: 0x6cac */ 0xffff,
- /* key: 0x6cad */ 0xffff,
- /* key: 0x6cae */ 0x5d7c,
- /* key: 0x6caf */ 0xffff,
- /* key: 0x6cb0 */ 0xc673,
- /* key: 0x6cb1 */ 0x5d7d,
- /* key: 0x6cb2 */ 0xc674,
- /* key: 0x6cb3 */ 0x324f,
- /* key: 0x6cb4 */ 0xc675,
- /* key: 0x6cb5 */ 0xffff,
- /* key: 0x6cb6 */ 0xffff,
- /* key: 0x6cb7 */ 0xffff,
- /* key: 0x6cb8 */ 0x4a28,
- /* key: 0x6cb9 */ 0x4c7d,
- /* key: 0x6cba */ 0x5e21,
- /* key: 0x6cbb */ 0x3c23,
- /* key: 0x6cbc */ 0x3e42,
- /* key: 0x6cbd */ 0x5d78,
- /* key: 0x6cbe */ 0x5d7e,
- /* key: 0x6cbf */ 0x3168,
- /* key: 0x6cc0 */ 0xffff,
- /* key: 0x6cc1 */ 0x3637,
- /* key: 0x6cc2 */ 0xc676,
- /* key: 0x6cc3 */ 0xffff,
- /* key: 0x6cc4 */ 0x5d75,
- /* key: 0x6cc5 */ 0x5d7a,
- /* key: 0x6cc6 */ 0xc677,
- /* key: 0x6cc7 */ 0xffff,
- /* key: 0x6cc8 */ 0xffff,
- /* key: 0x6cc9 */ 0x4074,
- /* key: 0x6cca */ 0x4771,
- /* key: 0x6ccb */ 0xffff,
- /* key: 0x6ccc */ 0x4867,
- /* key: 0x6ccd */ 0xc678,
- /* key: 0x6cce */ 0xffff,
- /* key: 0x6ccf */ 0xc679,
- /* key: 0x6cd0 */ 0xc67a,
- /* key: 0x6cd1 */ 0xc67b,
- /* key: 0x6cd2 */ 0xc67c,
- /* key: 0x6cd3 */ 0x5d77,
- /* key: 0x6cd4 */ 0xc67d,
- /* key: 0x6cd5 */ 0x4b21,
- /* key: 0x6cd6 */ 0xc67e,
- /* key: 0x6cd7 */ 0x5d79,
- /* key: 0x6cd8 */ 0xffff,
- /* key: 0x6cd9 */ 0x5e24,
- /* key: 0x6cda */ 0xc721,
- /* key: 0x6cdb */ 0x5e22,
- /* key: 0x6cdc */ 0xc722,
- /* key: 0x6cdd */ 0x5d7b,
- /* key: 0x6cde */ 0xffff,
- /* key: 0x6cdf */ 0xffff,
- /* key: 0x6ce0 */ 0xc723,
- /* key: 0x6ce1 */ 0x4b22,
- /* key: 0x6ce2 */ 0x4748,
- /* key: 0x6ce3 */ 0x3563,
- /* key: 0x6ce4 */ 0xffff,
- /* key: 0x6ce5 */ 0x4525,
- /* key: 0x6ce6 */ 0xffff,
- /* key: 0x6ce7 */ 0xc724,
- /* key: 0x6ce8 */ 0x436d,
- /* key: 0x6ce9 */ 0xc725,
- /* key: 0x6cea */ 0x5e25,
- /* key: 0x6ceb */ 0xc726,
- /* key: 0x6cec */ 0xc727,
- /* key: 0x6ced */ 0xffff,
- /* key: 0x6cee */ 0xc728,
- /* key: 0x6cef */ 0x5e23,
- /* key: 0x6cf0 */ 0x4259,
- /* key: 0x6cf1 */ 0x5d76,
- /* key: 0x6cf2 */ 0xc729,
- /* key: 0x6cf3 */ 0x314b,
- /* key: 0x6cf4 */ 0xc72a,
- /* key: 0x6cf5 */ 0xffff,
- /* key: 0x6cf6 */ 0xffff,
- /* key: 0x6cf7 */ 0xffff,
- /* key: 0x6cf8 */ 0xffff,
- /* key: 0x6cf9 */ 0xffff,
- /* key: 0x6cfa */ 0xffff,
- /* key: 0x6cfb */ 0xffff,
- /* key: 0x6cfc */ 0xffff,
- /* key: 0x6cfd */ 0xffff,
- /* key: 0x6cfe */ 0xffff,
- /* key: 0x6cff */ 0xffff,
- /* branch: 0x6d0X */ 10048,
- /* branch: 0x6d1X */ 10064,
- /* branch: 0x6d2X */ 10080,
- /* branch: 0x6d3X */ 10096,
- /* branch: 0x6d4X */ 10112,
- /* branch: 0x6d5X */ 10128,
- /* branch: 0x6d6X */ 10144,
- /* branch: 0x6d7X */ 10160,
- /* branch: 0x6d8X */ 10176,
- /* branch: 0x6d9X */ 10192,
- /* branch: 0x6daX */ 10208,
- /* branch: 0x6dbX */ 10224,
- /* branch: 0x6dcX */ 10240,
- /* branch: 0x6ddX */ 10256,
- /* branch: 0x6deX */ 10272,
- /* branch: 0x6dfX */ 10288,
- /* key: 0x6d00 */ 0xffff,
- /* key: 0x6d01 */ 0xffff,
- /* key: 0x6d02 */ 0xffff,
- /* key: 0x6d03 */ 0xffff,
- /* key: 0x6d04 */ 0xc72b,
- /* key: 0x6d05 */ 0xffff,
- /* key: 0x6d06 */ 0xffff,
- /* key: 0x6d07 */ 0xc72c,
- /* key: 0x6d08 */ 0xffff,
- /* key: 0x6d09 */ 0xffff,
- /* key: 0x6d0a */ 0xc72d,
- /* key: 0x6d0b */ 0x4d4e,
- /* key: 0x6d0c */ 0x5e30,
- /* key: 0x6d0d */ 0xffff,
- /* key: 0x6d0e */ 0xc72e,
- /* key: 0x6d0f */ 0xc72f,
- /* key: 0x6d10 */ 0xffff,
- /* key: 0x6d11 */ 0xc730,
- /* key: 0x6d12 */ 0x5e2f,
- /* key: 0x6d13 */ 0xc731,
- /* key: 0x6d14 */ 0xffff,
- /* key: 0x6d15 */ 0xffff,
- /* key: 0x6d16 */ 0xffff,
- /* key: 0x6d17 */ 0x4076,
- /* key: 0x6d18 */ 0xffff,
- /* key: 0x6d19 */ 0x5e2c,
- /* key: 0x6d1a */ 0xc732,
- /* key: 0x6d1b */ 0x4d6c,
- /* key: 0x6d1c */ 0xffff,
- /* key: 0x6d1d */ 0xffff,
- /* key: 0x6d1e */ 0x4636,
- /* key: 0x6d1f */ 0x5e26,
- /* key: 0x6d20 */ 0xffff,
- /* key: 0x6d21 */ 0xffff,
- /* key: 0x6d22 */ 0xffff,
- /* key: 0x6d23 */ 0xffff,
- /* key: 0x6d24 */ 0xffff,
- /* key: 0x6d25 */ 0x4445,
- /* key: 0x6d26 */ 0xc733,
- /* key: 0x6d27 */ 0xc734,
- /* key: 0x6d28 */ 0xc735,
- /* key: 0x6d29 */ 0x314c,
- /* key: 0x6d2a */ 0x393f,
- /* key: 0x6d2b */ 0x5e29,
- /* key: 0x6d2c */ 0xffff,
- /* key: 0x6d2d */ 0xffff,
- /* key: 0x6d2e */ 0xc737,
- /* key: 0x6d2f */ 0xc738,
- /* key: 0x6d30 */ 0xffff,
- /* key: 0x6d31 */ 0xc739,
- /* key: 0x6d32 */ 0x3d27,
- /* key: 0x6d33 */ 0x5e2e,
- /* key: 0x6d34 */ 0xffff,
- /* key: 0x6d35 */ 0x5e2d,
- /* key: 0x6d36 */ 0x5e28,
- /* key: 0x6d37 */ 0xffff,
- /* key: 0x6d38 */ 0x5e2b,
- /* key: 0x6d39 */ 0xc73a,
- /* key: 0x6d3a */ 0xffff,
- /* key: 0x6d3b */ 0x3368,
- /* key: 0x6d3c */ 0xc73b,
- /* key: 0x6d3d */ 0x5e2a,
- /* key: 0x6d3e */ 0x4749,
- /* key: 0x6d3f */ 0xc73c,
- /* key: 0x6d40 */ 0xffff,
- /* key: 0x6d41 */ 0x4e2e,
- /* key: 0x6d42 */ 0xffff,
- /* key: 0x6d43 */ 0xffff,
- /* key: 0x6d44 */ 0x3e74,
- /* key: 0x6d45 */ 0x4075,
- /* key: 0x6d46 */ 0xffff,
- /* key: 0x6d47 */ 0xffff,
- /* key: 0x6d48 */ 0xffff,
- /* key: 0x6d49 */ 0xffff,
- /* key: 0x6d4a */ 0xffff,
- /* key: 0x6d4b */ 0xffff,
- /* key: 0x6d4c */ 0xffff,
- /* key: 0x6d4d */ 0xffff,
- /* key: 0x6d4e */ 0xffff,
- /* key: 0x6d4f */ 0xffff,
- /* key: 0x6d50 */ 0xffff,
- /* key: 0x6d51 */ 0xffff,
- /* key: 0x6d52 */ 0xffff,
- /* key: 0x6d53 */ 0xffff,
- /* key: 0x6d54 */ 0xffff,
- /* key: 0x6d55 */ 0xffff,
- /* key: 0x6d56 */ 0xffff,
- /* key: 0x6d57 */ 0xc73d,
- /* key: 0x6d58 */ 0xffff,
- /* key: 0x6d59 */ 0x5e36,
- /* key: 0x6d5a */ 0x5e34,
- /* key: 0x6d5b */ 0xffff,
- /* key: 0x6d5c */ 0x494d,
- /* key: 0x6d5d */ 0xffff,
- /* key: 0x6d5e */ 0xc73e,
- /* key: 0x6d5f */ 0xc73f,
- /* key: 0x6d60 */ 0xffff,
- /* key: 0x6d61 */ 0xc740,
- /* key: 0x6d62 */ 0xffff,
- /* key: 0x6d63 */ 0x5e31,
- /* key: 0x6d64 */ 0x5e33,
- /* key: 0x6d65 */ 0xc741,
- /* key: 0x6d66 */ 0x313a,
- /* key: 0x6d67 */ 0xc742,
- /* key: 0x6d68 */ 0xffff,
- /* key: 0x6d69 */ 0x3940,
- /* key: 0x6d6a */ 0x4f32,
- /* key: 0x6d6b */ 0xffff,
- /* key: 0x6d6c */ 0x333d,
- /* key: 0x6d6d */ 0xffff,
- /* key: 0x6d6e */ 0x4962,
- /* key: 0x6d6f */ 0xc743,
- /* key: 0x6d70 */ 0xc744,
- /* key: 0x6d71 */ 0xffff,
- /* key: 0x6d72 */ 0xffff,
- /* key: 0x6d73 */ 0xffff,
- /* key: 0x6d74 */ 0x4d61,
- /* key: 0x6d75 */ 0xffff,
- /* key: 0x6d76 */ 0xffff,
- /* key: 0x6d77 */ 0x3324,
- /* key: 0x6d78 */ 0x3f3b,
- /* key: 0x6d79 */ 0x5e35,
- /* key: 0x6d7a */ 0xffff,
- /* key: 0x6d7b */ 0xffff,
- /* key: 0x6d7c */ 0xc745,
- /* key: 0x6d7d */ 0xffff,
- /* key: 0x6d7e */ 0xffff,
- /* key: 0x6d7f */ 0xffff,
- /* key: 0x6d80 */ 0xffff,
- /* key: 0x6d81 */ 0xffff,
- /* key: 0x6d82 */ 0xc746,
- /* key: 0x6d83 */ 0xffff,
- /* key: 0x6d84 */ 0xffff,
- /* key: 0x6d85 */ 0x5e3a,
- /* key: 0x6d86 */ 0xffff,
- /* key: 0x6d87 */ 0xc747,
- /* key: 0x6d88 */ 0x3e43,
- /* key: 0x6d89 */ 0xffff,
- /* key: 0x6d8a */ 0xffff,
- /* key: 0x6d8b */ 0xffff,
- /* key: 0x6d8c */ 0x4d30,
- /* key: 0x6d8d */ 0xffff,
- /* key: 0x6d8e */ 0x5e37,
- /* key: 0x6d8f */ 0xffff,
- /* key: 0x6d90 */ 0xffff,
- /* key: 0x6d91 */ 0xc748,
- /* key: 0x6d92 */ 0xc749,
- /* key: 0x6d93 */ 0x5e32,
- /* key: 0x6d94 */ 0xc74a,
- /* key: 0x6d95 */ 0x5e38,
- /* key: 0x6d96 */ 0xc74b,
- /* key: 0x6d97 */ 0xc74c,
- /* key: 0x6d98 */ 0xc74d,
- /* key: 0x6d99 */ 0x4e5e,
- /* key: 0x6d9a */ 0xffff,
- /* key: 0x6d9b */ 0x4573,
- /* key: 0x6d9c */ 0x4642,
- /* key: 0x6d9d */ 0xffff,
- /* key: 0x6d9e */ 0xffff,
- /* key: 0x6d9f */ 0xffff,
- /* key: 0x6da0 */ 0xffff,
- /* key: 0x6da1 */ 0xffff,
- /* key: 0x6da2 */ 0xffff,
- /* key: 0x6da3 */ 0xffff,
- /* key: 0x6da4 */ 0xffff,
- /* key: 0x6da5 */ 0xffff,
- /* key: 0x6da6 */ 0xffff,
- /* key: 0x6da7 */ 0xffff,
- /* key: 0x6da8 */ 0xffff,
- /* key: 0x6da9 */ 0xffff,
- /* key: 0x6daa */ 0xc74e,
- /* key: 0x6dab */ 0xffff,
- /* key: 0x6dac */ 0xc74f,
- /* key: 0x6dad */ 0xffff,
- /* key: 0x6dae */ 0xffff,
- /* key: 0x6daf */ 0x3336,
- /* key: 0x6db0 */ 0xffff,
- /* key: 0x6db1 */ 0xffff,
- /* key: 0x6db2 */ 0x3155,
- /* key: 0x6db3 */ 0xffff,
- /* key: 0x6db4 */ 0xc750,
- /* key: 0x6db5 */ 0x5e3e,
- /* key: 0x6db6 */ 0xffff,
- /* key: 0x6db7 */ 0xc751,
- /* key: 0x6db8 */ 0x5e41,
- /* key: 0x6db9 */ 0xc752,
- /* key: 0x6dba */ 0xffff,
- /* key: 0x6dbb */ 0xffff,
- /* key: 0x6dbc */ 0x4e43,
- /* key: 0x6dbd */ 0xc753,
- /* key: 0x6dbe */ 0xffff,
- /* key: 0x6dbf */ 0xc754,
- /* key: 0x6dc0 */ 0x4d64,
- /* key: 0x6dc1 */ 0xffff,
- /* key: 0x6dc2 */ 0xffff,
- /* key: 0x6dc3 */ 0xffff,
- /* key: 0x6dc4 */ 0xc755,
- /* key: 0x6dc5 */ 0x5e48,
- /* key: 0x6dc6 */ 0x5e42,
- /* key: 0x6dc7 */ 0x5e3f,
- /* key: 0x6dc8 */ 0xc756,
- /* key: 0x6dc9 */ 0xffff,
- /* key: 0x6dca */ 0xc757,
- /* key: 0x6dcb */ 0x4e54,
- /* key: 0x6dcc */ 0x5e45,
- /* key: 0x6dcd */ 0xffff,
- /* key: 0x6dce */ 0xc758,
- /* key: 0x6dcf */ 0xc759,
- /* key: 0x6dd0 */ 0xffff,
- /* key: 0x6dd1 */ 0x3d4a,
- /* key: 0x6dd2 */ 0x5e47,
- /* key: 0x6dd3 */ 0xffff,
- /* key: 0x6dd4 */ 0xffff,
- /* key: 0x6dd5 */ 0x5e4c,
- /* key: 0x6dd6 */ 0xc75a,
- /* key: 0x6dd7 */ 0xffff,
- /* key: 0x6dd8 */ 0x4571,
- /* key: 0x6dd9 */ 0x5e4a,
- /* key: 0x6dda */ 0xffff,
- /* key: 0x6ddb */ 0xc75b,
- /* key: 0x6ddc */ 0xffff,
- /* key: 0x6ddd */ 0xc75c,
- /* key: 0x6dde */ 0x5e44,
- /* key: 0x6ddf */ 0xc75d,
- /* key: 0x6de0 */ 0xc75e,
- /* key: 0x6de1 */ 0x4338,
- /* key: 0x6de2 */ 0xc75f,
- /* key: 0x6de3 */ 0xffff,
- /* key: 0x6de4 */ 0x5e4b,
- /* key: 0x6de5 */ 0xc760,
- /* key: 0x6de6 */ 0x5e40,
- /* key: 0x6de7 */ 0xffff,
- /* key: 0x6de8 */ 0x5e46,
- /* key: 0x6de9 */ 0xc761,
- /* key: 0x6dea */ 0x5e4d,
- /* key: 0x6deb */ 0x307c,
- /* key: 0x6dec */ 0x5e43,
- /* key: 0x6ded */ 0xffff,
- /* key: 0x6dee */ 0x5e4e,
- /* key: 0x6def */ 0xc762,
- /* key: 0x6df0 */ 0xc763,
- /* key: 0x6df1 */ 0x3f3c,
- /* key: 0x6df2 */ 0xffff,
- /* key: 0x6df3 */ 0x3d5f,
- /* key: 0x6df4 */ 0xc764,
- /* key: 0x6df5 */ 0x4a25,
- /* key: 0x6df6 */ 0xc765,
- /* key: 0x6df7 */ 0x3a2e,
- /* key: 0x6df8 */ 0xffff,
- /* key: 0x6df9 */ 0x5e3b,
- /* key: 0x6dfa */ 0x5e49,
- /* key: 0x6dfb */ 0x453a,
- /* key: 0x6dfc */ 0xc766,
- /* key: 0x6dfd */ 0xffff,
- /* key: 0x6dfe */ 0xffff,
- /* key: 0x6dff */ 0xffff,
- /* branch: 0x6e0X */ 10320,
- /* branch: 0x6e1X */ 10336,
- /* branch: 0x6e2X */ 10352,
- /* branch: 0x6e3X */ 10368,
- /* branch: 0x6e4X */ 10384,
- /* branch: 0x6e5X */ 10400,
- /* branch: 0x6e6X */ 10416,
- /* branch: 0x6e7X */ 10432,
- /* branch: 0x6e8X */ 10448,
- /* branch: 0x6e9X */ 10464,
- /* branch: 0x6eaX */ 10480,
- /* branch: 0x6ebX */ 10496,
- /* branch: 0x6ecX */ 10512,
- /* branch: 0x6edX */ 10528,
- /* branch: 0x6eeX */ 10544,
- /* branch: 0x6efX */ 10560,
- /* key: 0x6e00 */ 0xc767,
- /* key: 0x6e01 */ 0xffff,
- /* key: 0x6e02 */ 0xffff,
- /* key: 0x6e03 */ 0xffff,
- /* key: 0x6e04 */ 0xc768,
- /* key: 0x6e05 */ 0x4036,
- /* key: 0x6e06 */ 0xffff,
- /* key: 0x6e07 */ 0x3369,
- /* key: 0x6e08 */ 0x3a51,
- /* key: 0x6e09 */ 0x3e44,
- /* key: 0x6e0a */ 0x5e3d,
- /* key: 0x6e0b */ 0x3d42,
- /* key: 0x6e0c */ 0xffff,
- /* key: 0x6e0d */ 0xffff,
- /* key: 0x6e0e */ 0xffff,
- /* key: 0x6e0f */ 0xffff,
- /* key: 0x6e10 */ 0xffff,
- /* key: 0x6e11 */ 0xffff,
- /* key: 0x6e12 */ 0xffff,
- /* key: 0x6e13 */ 0x374c,
- /* key: 0x6e14 */ 0xffff,
- /* key: 0x6e15 */ 0x5e3c,
- /* key: 0x6e16 */ 0xffff,
- /* key: 0x6e17 */ 0xffff,
- /* key: 0x6e18 */ 0xffff,
- /* key: 0x6e19 */ 0x5e52,
- /* key: 0x6e1a */ 0x3d6d,
- /* key: 0x6e1b */ 0x383a,
- /* key: 0x6e1c */ 0xffff,
- /* key: 0x6e1d */ 0x5e61,
- /* key: 0x6e1e */ 0xc769,
- /* key: 0x6e1f */ 0x5e5b,
- /* key: 0x6e20 */ 0x3574,
- /* key: 0x6e21 */ 0x454f,
- /* key: 0x6e22 */ 0xc76a,
- /* key: 0x6e23 */ 0x5e56,
- /* key: 0x6e24 */ 0x5e5f,
- /* key: 0x6e25 */ 0x302f,
- /* key: 0x6e26 */ 0x3132,
- /* key: 0x6e27 */ 0xc76b,
- /* key: 0x6e28 */ 0xffff,
- /* key: 0x6e29 */ 0x3239,
- /* key: 0x6e2a */ 0xffff,
- /* key: 0x6e2b */ 0x5e58,
- /* key: 0x6e2c */ 0x422c,
- /* key: 0x6e2d */ 0x5e4f,
- /* key: 0x6e2e */ 0x5e51,
- /* key: 0x6e2f */ 0x3941,
- /* key: 0x6e30 */ 0xffff,
- /* key: 0x6e31 */ 0xffff,
- /* key: 0x6e32 */ 0xc76c,
- /* key: 0x6e33 */ 0xffff,
- /* key: 0x6e34 */ 0xffff,
- /* key: 0x6e35 */ 0xffff,
- /* key: 0x6e36 */ 0xc76d,
- /* key: 0x6e37 */ 0xffff,
- /* key: 0x6e38 */ 0x5e62,
- /* key: 0x6e39 */ 0xc76e,
- /* key: 0x6e3a */ 0x5e5d,
- /* key: 0x6e3b */ 0xc76f,
- /* key: 0x6e3c */ 0xc770,
- /* key: 0x6e3d */ 0xffff,
- /* key: 0x6e3e */ 0x5e55,
- /* key: 0x6e3f */ 0xffff,
- /* key: 0x6e40 */ 0xffff,
- /* key: 0x6e41 */ 0xffff,
- /* key: 0x6e42 */ 0xffff,
- /* key: 0x6e43 */ 0x5e5c,
- /* key: 0x6e44 */ 0xc771,
- /* key: 0x6e45 */ 0xc772,
- /* key: 0x6e46 */ 0xffff,
- /* key: 0x6e47 */ 0xffff,
- /* key: 0x6e48 */ 0xc773,
- /* key: 0x6e49 */ 0xc774,
- /* key: 0x6e4a */ 0x4c2b,
- /* key: 0x6e4b */ 0xc775,
- /* key: 0x6e4c */ 0xffff,
- /* key: 0x6e4d */ 0x5e5a,
- /* key: 0x6e4e */ 0x5e5e,
- /* key: 0x6e4f */ 0xc776,
- /* key: 0x6e50 */ 0xffff,
- /* key: 0x6e51 */ 0xc777,
- /* key: 0x6e52 */ 0xc778,
- /* key: 0x6e53 */ 0xc779,
- /* key: 0x6e54 */ 0xc77a,
- /* key: 0x6e55 */ 0xffff,
- /* key: 0x6e56 */ 0x3850,
- /* key: 0x6e57 */ 0xc77b,
- /* key: 0x6e58 */ 0x3e45,
- /* key: 0x6e59 */ 0xffff,
- /* key: 0x6e5a */ 0xffff,
- /* key: 0x6e5b */ 0x4339,
- /* key: 0x6e5c */ 0xc77c,
- /* key: 0x6e5d */ 0xc77d,
- /* key: 0x6e5e */ 0xc77e,
- /* key: 0x6e5f */ 0x5e54,
- /* key: 0x6e60 */ 0xffff,
- /* key: 0x6e61 */ 0xffff,
- /* key: 0x6e62 */ 0xc821,
- /* key: 0x6e63 */ 0xc822,
- /* key: 0x6e64 */ 0xffff,
- /* key: 0x6e65 */ 0xffff,
- /* key: 0x6e66 */ 0xffff,
- /* key: 0x6e67 */ 0x4d2f,
- /* key: 0x6e68 */ 0xc823,
- /* key: 0x6e69 */ 0xffff,
- /* key: 0x6e6a */ 0xffff,
- /* key: 0x6e6b */ 0x5e57,
- /* key: 0x6e6c */ 0xffff,
- /* key: 0x6e6d */ 0xffff,
- /* key: 0x6e6e */ 0x5e50,
- /* key: 0x6e6f */ 0x4572,
- /* key: 0x6e70 */ 0xffff,
- /* key: 0x6e71 */ 0xffff,
- /* key: 0x6e72 */ 0x5e53,
- /* key: 0x6e73 */ 0xc824,
- /* key: 0x6e74 */ 0xffff,
- /* key: 0x6e75 */ 0xffff,
- /* key: 0x6e76 */ 0x5e59,
- /* key: 0x6e77 */ 0xffff,
- /* key: 0x6e78 */ 0xffff,
- /* key: 0x6e79 */ 0xffff,
- /* key: 0x6e7a */ 0xffff,
- /* key: 0x6e7b */ 0xc825,
- /* key: 0x6e7c */ 0xffff,
- /* key: 0x6e7d */ 0xc826,
- /* key: 0x6e7e */ 0x4f51,
- /* key: 0x6e7f */ 0x3c3e,
- /* key: 0x6e80 */ 0x4b7e,
- /* key: 0x6e81 */ 0xffff,
- /* key: 0x6e82 */ 0x5e63,
- /* key: 0x6e83 */ 0xffff,
- /* key: 0x6e84 */ 0xffff,
- /* key: 0x6e85 */ 0xffff,
- /* key: 0x6e86 */ 0xffff,
- /* key: 0x6e87 */ 0xffff,
- /* key: 0x6e88 */ 0xffff,
- /* key: 0x6e89 */ 0xffff,
- /* key: 0x6e8a */ 0xffff,
- /* key: 0x6e8b */ 0xffff,
- /* key: 0x6e8c */ 0x482e,
- /* key: 0x6e8d */ 0xc827,
- /* key: 0x6e8e */ 0xffff,
- /* key: 0x6e8f */ 0x5e6f,
- /* key: 0x6e90 */ 0x383b,
- /* key: 0x6e91 */ 0xffff,
- /* key: 0x6e92 */ 0xffff,
- /* key: 0x6e93 */ 0xc828,
- /* key: 0x6e94 */ 0xffff,
- /* key: 0x6e95 */ 0xffff,
- /* key: 0x6e96 */ 0x3d60,
- /* key: 0x6e97 */ 0xffff,
- /* key: 0x6e98 */ 0x5e65,
- /* key: 0x6e99 */ 0xc829,
- /* key: 0x6e9a */ 0xffff,
- /* key: 0x6e9b */ 0xffff,
- /* key: 0x6e9c */ 0x4e2f,
- /* key: 0x6e9d */ 0x3942,
- /* key: 0x6e9e */ 0xffff,
- /* key: 0x6e9f */ 0x5e72,
- /* key: 0x6ea0 */ 0xc82a,
- /* key: 0x6ea1 */ 0xffff,
- /* key: 0x6ea2 */ 0x306e,
- /* key: 0x6ea3 */ 0xffff,
- /* key: 0x6ea4 */ 0xffff,
- /* key: 0x6ea5 */ 0x5e70,
- /* key: 0x6ea6 */ 0xffff,
- /* key: 0x6ea7 */ 0xc82b,
- /* key: 0x6ea8 */ 0xffff,
- /* key: 0x6ea9 */ 0xffff,
- /* key: 0x6eaa */ 0x5e64,
- /* key: 0x6eab */ 0xffff,
- /* key: 0x6eac */ 0xffff,
- /* key: 0x6ead */ 0xc82c,
- /* key: 0x6eae */ 0xc82d,
- /* key: 0x6eaf */ 0x5e6a,
- /* key: 0x6eb0 */ 0xffff,
- /* key: 0x6eb1 */ 0xc82e,
- /* key: 0x6eb2 */ 0x5e6c,
- /* key: 0x6eb3 */ 0xc82f,
- /* key: 0x6eb4 */ 0xffff,
- /* key: 0x6eb5 */ 0xffff,
- /* key: 0x6eb6 */ 0x4d4f,
- /* key: 0x6eb7 */ 0x5e67,
- /* key: 0x6eb8 */ 0xffff,
- /* key: 0x6eb9 */ 0xffff,
- /* key: 0x6eba */ 0x452e,
- /* key: 0x6ebb */ 0xc830,
- /* key: 0x6ebc */ 0xffff,
- /* key: 0x6ebd */ 0x5e69,
- /* key: 0x6ebe */ 0xffff,
- /* key: 0x6ebf */ 0xc831,
- /* key: 0x6ec0 */ 0xc832,
- /* key: 0x6ec1 */ 0xc833,
- /* key: 0x6ec2 */ 0x5e71,
- /* key: 0x6ec3 */ 0xc834,
- /* key: 0x6ec4 */ 0x5e6b,
- /* key: 0x6ec5 */ 0x4c47,
- /* key: 0x6ec6 */ 0xffff,
- /* key: 0x6ec7 */ 0xc835,
- /* key: 0x6ec8 */ 0xc836,
- /* key: 0x6ec9 */ 0x5e66,
- /* key: 0x6eca */ 0xc837,
- /* key: 0x6ecb */ 0x3c22,
- /* key: 0x6ecc */ 0x5e7e,
- /* key: 0x6ecd */ 0xc838,
- /* key: 0x6ece */ 0xc839,
- /* key: 0x6ecf */ 0xc83a,
- /* key: 0x6ed0 */ 0xffff,
- /* key: 0x6ed1 */ 0x336a,
- /* key: 0x6ed2 */ 0xffff,
- /* key: 0x6ed3 */ 0x5e68,
- /* key: 0x6ed4 */ 0x5e6d,
- /* key: 0x6ed5 */ 0x5e6e,
- /* key: 0x6ed6 */ 0xffff,
- /* key: 0x6ed7 */ 0xffff,
- /* key: 0x6ed8 */ 0xffff,
- /* key: 0x6ed9 */ 0xffff,
- /* key: 0x6eda */ 0xffff,
- /* key: 0x6edb */ 0xffff,
- /* key: 0x6edc */ 0xffff,
- /* key: 0x6edd */ 0x426c,
- /* key: 0x6ede */ 0x425a,
- /* key: 0x6edf */ 0xffff,
- /* key: 0x6ee0 */ 0xffff,
- /* key: 0x6ee1 */ 0xffff,
- /* key: 0x6ee2 */ 0xffff,
- /* key: 0x6ee3 */ 0xffff,
- /* key: 0x6ee4 */ 0xffff,
- /* key: 0x6ee5 */ 0xffff,
- /* key: 0x6ee6 */ 0xffff,
- /* key: 0x6ee7 */ 0xffff,
- /* key: 0x6ee8 */ 0xffff,
- /* key: 0x6ee9 */ 0xffff,
- /* key: 0x6eea */ 0xffff,
- /* key: 0x6eeb */ 0xc83b,
- /* key: 0x6eec */ 0x5e76,
- /* key: 0x6eed */ 0xc83c,
- /* key: 0x6eee */ 0xc83d,
- /* key: 0x6eef */ 0x5e7c,
- /* key: 0x6ef0 */ 0xffff,
- /* key: 0x6ef1 */ 0xffff,
- /* key: 0x6ef2 */ 0x5e7a,
- /* key: 0x6ef3 */ 0xffff,
- /* key: 0x6ef4 */ 0x4529,
- /* key: 0x6ef5 */ 0xffff,
- /* key: 0x6ef6 */ 0xffff,
- /* key: 0x6ef7 */ 0x5f23,
- /* key: 0x6ef8 */ 0x5e77,
- /* key: 0x6ef9 */ 0xc83e,
- /* key: 0x6efa */ 0xffff,
- /* key: 0x6efb */ 0xc83f,
- /* key: 0x6efc */ 0xffff,
- /* key: 0x6efd */ 0xc840,
- /* key: 0x6efe */ 0x5e78,
- /* key: 0x6eff */ 0x5e60,
- /* branch: 0x6f0X */ 10592,
- /* branch: 0x6f1X */ 10608,
- /* branch: 0x6f2X */ 10624,
- /* branch: 0x6f3X */ 10640,
- /* branch: 0x6f4X */ 10656,
- /* branch: 0x6f5X */ 10672,
- /* branch: 0x6f6X */ 10688,
- /* branch: 0x6f7X */ 10704,
- /* branch: 0x6f8X */ 10720,
- /* branch: 0x6f9X */ 10736,
- /* branch: 0x6faX */ 10752,
- /* branch: 0x6fbX */ 10768,
- /* branch: 0x6fcX */ 10784,
- /* branch: 0x6fdX */ 10800,
- /* branch: 0x6feX */ 10816,
- /* branch: 0x6ffX */ 10832,
- /* key: 0x6f00 */ 0xffff,
- /* key: 0x6f01 */ 0x3579,
- /* key: 0x6f02 */ 0x493a,
- /* key: 0x6f03 */ 0xffff,
- /* key: 0x6f04 */ 0xc841,
- /* key: 0x6f05 */ 0xffff,
- /* key: 0x6f06 */ 0x3c3f,
- /* key: 0x6f07 */ 0xffff,
- /* key: 0x6f08 */ 0xc842,
- /* key: 0x6f09 */ 0x3977,
- /* key: 0x6f0a */ 0xc843,
- /* key: 0x6f0b */ 0xffff,
- /* key: 0x6f0c */ 0xc844,
- /* key: 0x6f0d */ 0xc845,
- /* key: 0x6f0e */ 0xffff,
- /* key: 0x6f0f */ 0x4f33,
- /* key: 0x6f10 */ 0xffff,
- /* key: 0x6f11 */ 0x5e74,
- /* key: 0x6f12 */ 0xffff,
- /* key: 0x6f13 */ 0x5f22,
- /* key: 0x6f14 */ 0x3169,
- /* key: 0x6f15 */ 0x4166,
- /* key: 0x6f16 */ 0xc846,
- /* key: 0x6f17 */ 0xffff,
- /* key: 0x6f18 */ 0xc847,
- /* key: 0x6f19 */ 0xffff,
- /* key: 0x6f1a */ 0xc848,
- /* key: 0x6f1b */ 0xc849,
- /* key: 0x6f1c */ 0xffff,
- /* key: 0x6f1d */ 0xffff,
- /* key: 0x6f1e */ 0xffff,
- /* key: 0x6f1f */ 0xffff,
- /* key: 0x6f20 */ 0x4779,
- /* key: 0x6f21 */ 0xffff,
- /* key: 0x6f22 */ 0x3441,
- /* key: 0x6f23 */ 0x4e7a,
- /* key: 0x6f24 */ 0xffff,
- /* key: 0x6f25 */ 0xffff,
- /* key: 0x6f26 */ 0xc84a,
- /* key: 0x6f27 */ 0xffff,
- /* key: 0x6f28 */ 0xffff,
- /* key: 0x6f29 */ 0xc84b,
- /* key: 0x6f2a */ 0xc84c,
- /* key: 0x6f2b */ 0x4c21,
- /* key: 0x6f2c */ 0x4452,
- /* key: 0x6f2d */ 0xc853,
- /* key: 0x6f2e */ 0xffff,
- /* key: 0x6f2f */ 0xc84d,
- /* key: 0x6f30 */ 0xc84e,
- /* key: 0x6f31 */ 0x5e7b,
- /* key: 0x6f32 */ 0x5e7d,
- /* key: 0x6f33 */ 0xc84f,
- /* key: 0x6f34 */ 0xffff,
- /* key: 0x6f35 */ 0xffff,
- /* key: 0x6f36 */ 0xc850,
- /* key: 0x6f37 */ 0xffff,
- /* key: 0x6f38 */ 0x4132,
- /* key: 0x6f39 */ 0xffff,
- /* key: 0x6f3a */ 0xffff,
- /* key: 0x6f3b */ 0xc851,
- /* key: 0x6f3c */ 0xc852,
- /* key: 0x6f3d */ 0xffff,
- /* key: 0x6f3e */ 0x5f21,
- /* key: 0x6f3f */ 0x5e79,
- /* key: 0x6f40 */ 0xffff,
- /* key: 0x6f41 */ 0x5e73,
- /* key: 0x6f42 */ 0xffff,
- /* key: 0x6f43 */ 0xffff,
- /* key: 0x6f44 */ 0xffff,
- /* key: 0x6f45 */ 0x3443,
- /* key: 0x6f46 */ 0xffff,
- /* key: 0x6f47 */ 0xffff,
- /* key: 0x6f48 */ 0xffff,
- /* key: 0x6f49 */ 0xffff,
- /* key: 0x6f4a */ 0xffff,
- /* key: 0x6f4b */ 0xffff,
- /* key: 0x6f4c */ 0xffff,
- /* key: 0x6f4d */ 0xffff,
- /* key: 0x6f4e */ 0xffff,
- /* key: 0x6f4f */ 0xc854,
- /* key: 0x6f50 */ 0xffff,
- /* key: 0x6f51 */ 0xc855,
- /* key: 0x6f52 */ 0xc856,
- /* key: 0x6f53 */ 0xc857,
- /* key: 0x6f54 */ 0x3769,
- /* key: 0x6f55 */ 0xffff,
- /* key: 0x6f56 */ 0xffff,
- /* key: 0x6f57 */ 0xc858,
- /* key: 0x6f58 */ 0x5f2f,
- /* key: 0x6f59 */ 0xc859,
- /* key: 0x6f5a */ 0xc85a,
- /* key: 0x6f5b */ 0x5f2a,
- /* key: 0x6f5c */ 0x4078,
- /* key: 0x6f5d */ 0xc85b,
- /* key: 0x6f5e */ 0xc85c,
- /* key: 0x6f5f */ 0x3363,
- /* key: 0x6f60 */ 0xffff,
- /* key: 0x6f61 */ 0xc85d,
- /* key: 0x6f62 */ 0xc85e,
- /* key: 0x6f63 */ 0xffff,
- /* key: 0x6f64 */ 0x3d61,
- /* key: 0x6f65 */ 0xffff,
- /* key: 0x6f66 */ 0x5f33,
- /* key: 0x6f67 */ 0xffff,
- /* key: 0x6f68 */ 0xc85f,
- /* key: 0x6f69 */ 0xffff,
- /* key: 0x6f6a */ 0xffff,
- /* key: 0x6f6b */ 0xffff,
- /* key: 0x6f6c */ 0xc860,
- /* key: 0x6f6d */ 0x5f2c,
- /* key: 0x6f6e */ 0x442c,
- /* key: 0x6f6f */ 0x5f29,
- /* key: 0x6f70 */ 0x4459,
- /* key: 0x6f71 */ 0xffff,
- /* key: 0x6f72 */ 0xffff,
- /* key: 0x6f73 */ 0xffff,
- /* key: 0x6f74 */ 0x5f4c,
- /* key: 0x6f75 */ 0xffff,
- /* key: 0x6f76 */ 0xffff,
- /* key: 0x6f77 */ 0xffff,
- /* key: 0x6f78 */ 0x5f26,
- /* key: 0x6f79 */ 0xffff,
- /* key: 0x6f7a */ 0x5f25,
- /* key: 0x6f7b */ 0xffff,
- /* key: 0x6f7c */ 0x5f2e,
- /* key: 0x6f7d */ 0xc861,
- /* key: 0x6f7e */ 0xc862,
- /* key: 0x6f7f */ 0xffff,
- /* key: 0x6f80 */ 0x5f28,
- /* key: 0x6f81 */ 0x5f27,
- /* key: 0x6f82 */ 0x5f2d,
- /* key: 0x6f83 */ 0xc863,
- /* key: 0x6f84 */ 0x4021,
- /* key: 0x6f85 */ 0xffff,
- /* key: 0x6f86 */ 0x5f24,
- /* key: 0x6f87 */ 0xc864,
- /* key: 0x6f88 */ 0xc865,
- /* key: 0x6f89 */ 0xffff,
- /* key: 0x6f8a */ 0xffff,
- /* key: 0x6f8b */ 0xc866,
- /* key: 0x6f8c */ 0xc867,
- /* key: 0x6f8d */ 0xc868,
- /* key: 0x6f8e */ 0x5f30,
- /* key: 0x6f8f */ 0xffff,
- /* key: 0x6f90 */ 0xc869,
- /* key: 0x6f91 */ 0x5f31,
- /* key: 0x6f92 */ 0xc86a,
- /* key: 0x6f93 */ 0xc86b,
- /* key: 0x6f94 */ 0xc86c,
- /* key: 0x6f95 */ 0xffff,
- /* key: 0x6f96 */ 0xc86d,
- /* key: 0x6f97 */ 0x3442,
- /* key: 0x6f98 */ 0xffff,
- /* key: 0x6f99 */ 0xffff,
- /* key: 0x6f9a */ 0xc86e,
- /* key: 0x6f9b */ 0xffff,
- /* key: 0x6f9c */ 0xffff,
- /* key: 0x6f9d */ 0xffff,
- /* key: 0x6f9e */ 0xffff,
- /* key: 0x6f9f */ 0xc86f,
- /* key: 0x6fa0 */ 0xc870,
- /* key: 0x6fa1 */ 0x5f36,
- /* key: 0x6fa2 */ 0xffff,
- /* key: 0x6fa3 */ 0x5f35,
- /* key: 0x6fa4 */ 0x5f37,
- /* key: 0x6fa5 */ 0xc871,
- /* key: 0x6fa6 */ 0xc872,
- /* key: 0x6fa7 */ 0xc873,
- /* key: 0x6fa8 */ 0xc874,
- /* key: 0x6fa9 */ 0xffff,
- /* key: 0x6faa */ 0x5f3a,
- /* key: 0x6fab */ 0xffff,
- /* key: 0x6fac */ 0xffff,
- /* key: 0x6fad */ 0xffff,
- /* key: 0x6fae */ 0xc875,
- /* key: 0x6faf */ 0xc876,
- /* key: 0x6fb0 */ 0xc877,
- /* key: 0x6fb1 */ 0x4543,
- /* key: 0x6fb2 */ 0xffff,
- /* key: 0x6fb3 */ 0x5f34,
- /* key: 0x6fb4 */ 0xffff,
- /* key: 0x6fb5 */ 0xc878,
- /* key: 0x6fb6 */ 0xc879,
- /* key: 0x6fb7 */ 0xffff,
- /* key: 0x6fb8 */ 0xffff,
- /* key: 0x6fb9 */ 0x5f38,
- /* key: 0x6fba */ 0xffff,
- /* key: 0x6fbb */ 0xffff,
- /* key: 0x6fbc */ 0xc87a,
- /* key: 0x6fbd */ 0xffff,
- /* key: 0x6fbe */ 0xffff,
- /* key: 0x6fbf */ 0xffff,
- /* key: 0x6fc0 */ 0x3763,
- /* key: 0x6fc1 */ 0x4279,
- /* key: 0x6fc2 */ 0x5f32,
- /* key: 0x6fc3 */ 0x473b,
- /* key: 0x6fc4 */ 0xffff,
- /* key: 0x6fc5 */ 0xc87b,
- /* key: 0x6fc6 */ 0x5f39,
- /* key: 0x6fc7 */ 0xc87c,
- /* key: 0x6fc8 */ 0xc87d,
- /* key: 0x6fc9 */ 0xffff,
- /* key: 0x6fca */ 0xc87e,
- /* key: 0x6fcb */ 0xffff,
- /* key: 0x6fcc */ 0xffff,
- /* key: 0x6fcd */ 0xffff,
- /* key: 0x6fce */ 0xffff,
- /* key: 0x6fcf */ 0xffff,
- /* key: 0x6fd0 */ 0xffff,
- /* key: 0x6fd1 */ 0xffff,
- /* key: 0x6fd2 */ 0xffff,
- /* key: 0x6fd3 */ 0xffff,
- /* key: 0x6fd4 */ 0x5f3e,
- /* key: 0x6fd5 */ 0x5f3c,
- /* key: 0x6fd6 */ 0xffff,
- /* key: 0x6fd7 */ 0xffff,
- /* key: 0x6fd8 */ 0x5f3f,
- /* key: 0x6fd9 */ 0xffff,
- /* key: 0x6fda */ 0xc921,
- /* key: 0x6fdb */ 0x5f42,
- /* key: 0x6fdc */ 0xffff,
- /* key: 0x6fdd */ 0xffff,
- /* key: 0x6fde */ 0xc922,
- /* key: 0x6fdf */ 0x5f3b,
- /* key: 0x6fe0 */ 0x396a,
- /* key: 0x6fe1 */ 0x4728,
- /* key: 0x6fe2 */ 0xffff,
- /* key: 0x6fe3 */ 0xffff,
- /* key: 0x6fe4 */ 0x5e39,
- /* key: 0x6fe5 */ 0xffff,
- /* key: 0x6fe6 */ 0xffff,
- /* key: 0x6fe7 */ 0xffff,
- /* key: 0x6fe8 */ 0xc923,
- /* key: 0x6fe9 */ 0xc924,
- /* key: 0x6fea */ 0xffff,
- /* key: 0x6feb */ 0x4d74,
- /* key: 0x6fec */ 0x5f3d,
- /* key: 0x6fed */ 0xffff,
- /* key: 0x6fee */ 0x5f41,
- /* key: 0x6fef */ 0x4275,
- /* key: 0x6ff0 */ 0xc925,
- /* key: 0x6ff1 */ 0x5f40,
- /* key: 0x6ff2 */ 0xffff,
- /* key: 0x6ff3 */ 0x5f2b,
- /* key: 0x6ff4 */ 0xffff,
- /* key: 0x6ff5 */ 0xc926,
- /* key: 0x6ff6 */ 0x6f69,
- /* key: 0x6ff7 */ 0xffff,
- /* key: 0x6ff8 */ 0xffff,
- /* key: 0x6ff9 */ 0xc927,
- /* key: 0x6ffa */ 0x5f45,
- /* key: 0x6ffb */ 0xffff,
- /* key: 0x6ffc */ 0xc928,
- /* key: 0x6ffd */ 0xc929,
- /* key: 0x6ffe */ 0x5f49,
- /* key: 0x6fff */ 0xffff,
- /* branch: 0x70XX */ 10864,
- /* branch: 0x71XX */ 11136,
- /* branch: 0x72XX */ 11408,
- /* branch: 0x73XX */ 11680,
- /* branch: 0x74XX */ 11952,
- /* branch: 0x75XX */ 12224,
- /* branch: 0x76XX */ 12496,
- /* branch: 0x77XX */ 12768,
- /* branch: 0x78XX */ 13040,
- /* branch: 0x79XX */ 13312,
- /* branch: 0x7aXX */ 13584,
- /* branch: 0x7bXX */ 13856,
- /* branch: 0x7cXX */ 14128,
- /* branch: 0x7dXX */ 14400,
- /* branch: 0x7eXX */ 14672,
- /* branch: 0x7fXX */ 14848,
- /* branch: 0x700X */ 10880,
- /* branch: 0x701X */ 10896,
- /* branch: 0x702X */ 10912,
- /* branch: 0x703X */ 10928,
- /* branch: 0x704X */ 10944,
- /* branch: 0x705X */ 10960,
- /* branch: 0x706X */ 10976,
- /* branch: 0x707X */ 10992,
- /* branch: 0x708X */ 11008,
- /* branch: 0x709X */ 11024,
- /* branch: 0x70aX */ 11040,
- /* branch: 0x70bX */ 11056,
- /* branch: 0x70cX */ 11072,
- /* branch: 0x70dX */ 11088,
- /* branch: 0x70eX */ 11104,
- /* branch: 0x70fX */ 11120,
- /* key: 0x7000 */ 0xc92a,
- /* key: 0x7001 */ 0x5f47,
- /* key: 0x7002 */ 0xffff,
- /* key: 0x7003 */ 0xffff,
- /* key: 0x7004 */ 0xffff,
- /* key: 0x7005 */ 0xc92b,
- /* key: 0x7006 */ 0xc92c,
- /* key: 0x7007 */ 0xc92d,
- /* key: 0x7008 */ 0xffff,
- /* key: 0x7009 */ 0x5f43,
- /* key: 0x700a */ 0xffff,
- /* key: 0x700b */ 0x5f44,
- /* key: 0x700c */ 0xffff,
- /* key: 0x700d */ 0xc92e,
- /* key: 0x700e */ 0xffff,
- /* key: 0x700f */ 0x5f48,
- /* key: 0x7010 */ 0xffff,
- /* key: 0x7011 */ 0x5f46,
- /* key: 0x7012 */ 0xffff,
- /* key: 0x7013 */ 0xffff,
- /* key: 0x7014 */ 0xffff,
- /* key: 0x7015 */ 0x494e,
- /* key: 0x7016 */ 0xffff,
- /* key: 0x7017 */ 0xc92f,
- /* key: 0x7018 */ 0x5f4e,
- /* key: 0x7019 */ 0xffff,
- /* key: 0x701a */ 0x5f4b,
- /* key: 0x701b */ 0x5f4a,
- /* key: 0x701c */ 0xffff,
- /* key: 0x701d */ 0x5f4d,
- /* key: 0x701e */ 0x4654,
- /* key: 0x701f */ 0x5f4f,
- /* key: 0x7020 */ 0xc930,
- /* key: 0x7021 */ 0xffff,
- /* key: 0x7022 */ 0xffff,
- /* key: 0x7023 */ 0xc931,
- /* key: 0x7024 */ 0xffff,
- /* key: 0x7025 */ 0xffff,
- /* key: 0x7026 */ 0x4375,
- /* key: 0x7027 */ 0x426d,
- /* key: 0x7028 */ 0xffff,
- /* key: 0x7029 */ 0xffff,
- /* key: 0x702a */ 0xffff,
- /* key: 0x702b */ 0xffff,
- /* key: 0x702c */ 0x4025,
- /* key: 0x702d */ 0xffff,
- /* key: 0x702e */ 0xffff,
- /* key: 0x702f */ 0xc932,
- /* key: 0x7030 */ 0x5f50,
- /* key: 0x7031 */ 0xffff,
- /* key: 0x7032 */ 0x5f52,
- /* key: 0x7033 */ 0xffff,
- /* key: 0x7034 */ 0xc933,
- /* key: 0x7035 */ 0xffff,
- /* key: 0x7036 */ 0xffff,
- /* key: 0x7037 */ 0xc934,
- /* key: 0x7038 */ 0xffff,
- /* key: 0x7039 */ 0xc935,
- /* key: 0x703a */ 0xffff,
- /* key: 0x703b */ 0xffff,
- /* key: 0x703c */ 0xc936,
- /* key: 0x703d */ 0xffff,
- /* key: 0x703e */ 0x5f51,
- /* key: 0x703f */ 0xffff,
- /* key: 0x7040 */ 0xffff,
- /* key: 0x7041 */ 0xffff,
- /* key: 0x7042 */ 0xffff,
- /* key: 0x7043 */ 0xc937,
- /* key: 0x7044 */ 0xc938,
- /* key: 0x7045 */ 0xffff,
- /* key: 0x7046 */ 0xffff,
- /* key: 0x7047 */ 0xffff,
- /* key: 0x7048 */ 0xc939,
- /* key: 0x7049 */ 0xc93a,
- /* key: 0x704a */ 0xc93b,
- /* key: 0x704b */ 0xc93c,
- /* key: 0x704c */ 0x5e75,
- /* key: 0x704d */ 0xffff,
- /* key: 0x704e */ 0xc941,
- /* key: 0x704f */ 0xffff,
- /* key: 0x7050 */ 0xffff,
- /* key: 0x7051 */ 0x5f53,
- /* key: 0x7052 */ 0xffff,
- /* key: 0x7053 */ 0xffff,
- /* key: 0x7054 */ 0xc93d,
- /* key: 0x7055 */ 0xc93e,
- /* key: 0x7056 */ 0xffff,
- /* key: 0x7057 */ 0xffff,
- /* key: 0x7058 */ 0x4667,
- /* key: 0x7059 */ 0xffff,
- /* key: 0x705a */ 0xffff,
- /* key: 0x705b */ 0xffff,
- /* key: 0x705c */ 0xffff,
- /* key: 0x705d */ 0xc93f,
- /* key: 0x705e */ 0xc940,
- /* key: 0x705f */ 0xffff,
- /* key: 0x7060 */ 0xffff,
- /* key: 0x7061 */ 0xffff,
- /* key: 0x7062 */ 0xffff,
- /* key: 0x7063 */ 0x5f54,
- /* key: 0x7064 */ 0xc942,
- /* key: 0x7065 */ 0xc943,
- /* key: 0x7066 */ 0xffff,
- /* key: 0x7067 */ 0xffff,
- /* key: 0x7068 */ 0xffff,
- /* key: 0x7069 */ 0xffff,
- /* key: 0x706a */ 0xffff,
- /* key: 0x706b */ 0x3250,
- /* key: 0x706c */ 0xc944,
- /* key: 0x706d */ 0xffff,
- /* key: 0x706e */ 0xc945,
- /* key: 0x706f */ 0x4574,
- /* key: 0x7070 */ 0x3325,
- /* key: 0x7071 */ 0xffff,
- /* key: 0x7072 */ 0xffff,
- /* key: 0x7073 */ 0xffff,
- /* key: 0x7074 */ 0xffff,
- /* key: 0x7075 */ 0xc946,
- /* key: 0x7076 */ 0xc947,
- /* key: 0x7077 */ 0xffff,
- /* key: 0x7078 */ 0x3564,
- /* key: 0x7079 */ 0xffff,
- /* key: 0x707a */ 0xffff,
- /* key: 0x707b */ 0xffff,
- /* key: 0x707c */ 0x3c5e,
- /* key: 0x707d */ 0x3a52,
- /* key: 0x707e */ 0xc948,
- /* key: 0x707f */ 0xffff,
- /* key: 0x7080 */ 0xffff,
- /* key: 0x7081 */ 0xc949,
- /* key: 0x7082 */ 0xffff,
- /* key: 0x7083 */ 0xffff,
- /* key: 0x7084 */ 0xffff,
- /* key: 0x7085 */ 0xc94a,
- /* key: 0x7086 */ 0xc94b,
- /* key: 0x7087 */ 0xffff,
- /* key: 0x7088 */ 0xffff,
- /* key: 0x7089 */ 0x4f27,
- /* key: 0x708a */ 0x3f66,
- /* key: 0x708b */ 0xffff,
- /* key: 0x708c */ 0xffff,
- /* key: 0x708d */ 0xffff,
- /* key: 0x708e */ 0x316a,
- /* key: 0x708f */ 0xffff,
- /* key: 0x7090 */ 0xffff,
- /* key: 0x7091 */ 0xffff,
- /* key: 0x7092 */ 0x5f56,
- /* key: 0x7093 */ 0xffff,
- /* key: 0x7094 */ 0xc94c,
- /* key: 0x7095 */ 0xc94d,
- /* key: 0x7096 */ 0xc94e,
- /* key: 0x7097 */ 0xc94f,
- /* key: 0x7098 */ 0xc950,
- /* key: 0x7099 */ 0x5f55,
- /* key: 0x709a */ 0xffff,
- /* key: 0x709b */ 0xc951,
- /* key: 0x709c */ 0xffff,
- /* key: 0x709d */ 0xffff,
- /* key: 0x709e */ 0xffff,
- /* key: 0x709f */ 0xffff,
- /* key: 0x70a0 */ 0xffff,
- /* key: 0x70a1 */ 0xffff,
- /* key: 0x70a2 */ 0xffff,
- /* key: 0x70a3 */ 0xffff,
- /* key: 0x70a4 */ 0xc952,
- /* key: 0x70a5 */ 0xffff,
- /* key: 0x70a6 */ 0xffff,
- /* key: 0x70a7 */ 0xffff,
- /* key: 0x70a8 */ 0xffff,
- /* key: 0x70a9 */ 0xffff,
- /* key: 0x70aa */ 0xffff,
- /* key: 0x70ab */ 0xc953,
- /* key: 0x70ac */ 0x5f59,
- /* key: 0x70ad */ 0x433a,
- /* key: 0x70ae */ 0x5f5c,
- /* key: 0x70af */ 0x5f57,
- /* key: 0x70b0 */ 0xc954,
- /* key: 0x70b1 */ 0xc955,
- /* key: 0x70b2 */ 0xffff,
- /* key: 0x70b3 */ 0x5f5b,
- /* key: 0x70b4 */ 0xc956,
- /* key: 0x70b5 */ 0xffff,
- /* key: 0x70b6 */ 0xffff,
- /* key: 0x70b7 */ 0xc957,
- /* key: 0x70b8 */ 0x5f5a,
- /* key: 0x70b9 */ 0x4540,
- /* key: 0x70ba */ 0x3059,
- /* key: 0x70bb */ 0xffff,
- /* key: 0x70bc */ 0xffff,
- /* key: 0x70bd */ 0xffff,
- /* key: 0x70be */ 0xffff,
- /* key: 0x70bf */ 0xffff,
- /* key: 0x70c0 */ 0xffff,
- /* key: 0x70c1 */ 0xffff,
- /* key: 0x70c2 */ 0xffff,
- /* key: 0x70c3 */ 0xffff,
- /* key: 0x70c4 */ 0xffff,
- /* key: 0x70c5 */ 0xffff,
- /* key: 0x70c6 */ 0xffff,
- /* key: 0x70c7 */ 0xffff,
- /* key: 0x70c8 */ 0x4e75,
- /* key: 0x70c9 */ 0xffff,
- /* key: 0x70ca */ 0xc958,
- /* key: 0x70cb */ 0x5f5e,
- /* key: 0x70cc */ 0xffff,
- /* key: 0x70cd */ 0xffff,
- /* key: 0x70ce */ 0xffff,
- /* key: 0x70cf */ 0x3128,
- /* key: 0x70d0 */ 0xffff,
- /* key: 0x70d1 */ 0xc959,
- /* key: 0x70d2 */ 0xffff,
- /* key: 0x70d3 */ 0xc95a,
- /* key: 0x70d4 */ 0xc95b,
- /* key: 0x70d5 */ 0xc95c,
- /* key: 0x70d6 */ 0xc95d,
- /* key: 0x70d7 */ 0xffff,
- /* key: 0x70d8 */ 0xc95e,
- /* key: 0x70d9 */ 0x5f60,
- /* key: 0x70da */ 0xffff,
- /* key: 0x70db */ 0xffff,
- /* key: 0x70dc */ 0xc95f,
- /* key: 0x70dd */ 0x5f5f,
- /* key: 0x70de */ 0xffff,
- /* key: 0x70df */ 0x5f5d,
- /* key: 0x70e0 */ 0xffff,
- /* key: 0x70e1 */ 0xffff,
- /* key: 0x70e2 */ 0xffff,
- /* key: 0x70e3 */ 0xffff,
- /* key: 0x70e4 */ 0xc960,
- /* key: 0x70e5 */ 0xffff,
- /* key: 0x70e6 */ 0xffff,
- /* key: 0x70e7 */ 0xffff,
- /* key: 0x70e8 */ 0xffff,
- /* key: 0x70e9 */ 0xffff,
- /* key: 0x70ea */ 0xffff,
- /* key: 0x70eb */ 0xffff,
- /* key: 0x70ec */ 0xffff,
- /* key: 0x70ed */ 0xffff,
- /* key: 0x70ee */ 0xffff,
- /* key: 0x70ef */ 0xffff,
- /* key: 0x70f0 */ 0xffff,
- /* key: 0x70f1 */ 0x5f58,
- /* key: 0x70f2 */ 0xffff,
- /* key: 0x70f3 */ 0xffff,
- /* key: 0x70f4 */ 0xffff,
- /* key: 0x70f5 */ 0xffff,
- /* key: 0x70f6 */ 0xffff,
- /* key: 0x70f7 */ 0xffff,
- /* key: 0x70f8 */ 0xffff,
- /* key: 0x70f9 */ 0x4b23,
- /* key: 0x70fa */ 0xc961,
- /* key: 0x70fb */ 0xffff,
- /* key: 0x70fc */ 0xffff,
- /* key: 0x70fd */ 0x5f62,
- /* key: 0x70fe */ 0xffff,
- /* key: 0x70ff */ 0xffff,
- /* branch: 0x710X */ 11152,
- /* branch: 0x711X */ 11168,
- /* branch: 0x712X */ 11184,
- /* branch: 0x713X */ 11200,
- /* branch: 0x714X */ 11216,
- /* branch: 0x715X */ 11232,
- /* branch: 0x716X */ 11248,
- /* branch: 0x717X */ 11264,
- /* branch: 0x718X */ 11280,
- /* branch: 0x719X */ 11296,
- /* branch: 0x71aX */ 11312,
- /* branch: 0x71bX */ 11328,
- /* branch: 0x71cX */ 11344,
- /* branch: 0x71dX */ 11360,
- /* branch: 0x71eX */ 11376,
- /* branch: 0x71fX */ 11392,
- /* key: 0x7100 */ 0xffff,
- /* key: 0x7101 */ 0xffff,
- /* key: 0x7102 */ 0xffff,
- /* key: 0x7103 */ 0xc962,
- /* key: 0x7104 */ 0xc963,
- /* key: 0x7105 */ 0xc964,
- /* key: 0x7106 */ 0xc965,
- /* key: 0x7107 */ 0xc966,
- /* key: 0x7108 */ 0xffff,
- /* key: 0x7109 */ 0x5f61,
- /* key: 0x710a */ 0xffff,
- /* key: 0x710b */ 0xc967,
- /* key: 0x710c */ 0xc968,
- /* key: 0x710d */ 0xffff,
- /* key: 0x710e */ 0xffff,
- /* key: 0x710f */ 0xc969,
- /* key: 0x7110 */ 0xffff,
- /* key: 0x7111 */ 0xffff,
- /* key: 0x7112 */ 0xffff,
- /* key: 0x7113 */ 0xffff,
- /* key: 0x7114 */ 0x316b,
- /* key: 0x7115 */ 0xffff,
- /* key: 0x7116 */ 0xffff,
- /* key: 0x7117 */ 0xffff,
- /* key: 0x7118 */ 0xffff,
- /* key: 0x7119 */ 0x5f64,
- /* key: 0x711a */ 0x4a32,
- /* key: 0x711b */ 0xffff,
- /* key: 0x711c */ 0x5f63,
- /* key: 0x711d */ 0xffff,
- /* key: 0x711e */ 0xc96a,
- /* key: 0x711f */ 0xffff,
- /* key: 0x7120 */ 0xc96b,
- /* key: 0x7121 */ 0x4c35,
- /* key: 0x7122 */ 0xffff,
- /* key: 0x7123 */ 0xffff,
- /* key: 0x7124 */ 0xffff,
- /* key: 0x7125 */ 0xffff,
- /* key: 0x7126 */ 0x3e47,
- /* key: 0x7127 */ 0xffff,
- /* key: 0x7128 */ 0xffff,
- /* key: 0x7129 */ 0xffff,
- /* key: 0x712a */ 0xffff,
- /* key: 0x712b */ 0xc96c,
- /* key: 0x712c */ 0xffff,
- /* key: 0x712d */ 0xc96d,
- /* key: 0x712e */ 0xffff,
- /* key: 0x712f */ 0xc96e,
- /* key: 0x7130 */ 0xc96f,
- /* key: 0x7131 */ 0xc970,
- /* key: 0x7132 */ 0xffff,
- /* key: 0x7133 */ 0xffff,
- /* key: 0x7134 */ 0xffff,
- /* key: 0x7135 */ 0xffff,
- /* key: 0x7136 */ 0x4133,
- /* key: 0x7137 */ 0xffff,
- /* key: 0x7138 */ 0xc971,
- /* key: 0x7139 */ 0xffff,
- /* key: 0x713a */ 0xffff,
- /* key: 0x713b */ 0xffff,
- /* key: 0x713c */ 0x3e46,
- /* key: 0x713d */ 0xffff,
- /* key: 0x713e */ 0xffff,
- /* key: 0x713f */ 0xffff,
- /* key: 0x7140 */ 0xffff,
- /* key: 0x7141 */ 0xc972,
- /* key: 0x7142 */ 0xffff,
- /* key: 0x7143 */ 0xffff,
- /* key: 0x7144 */ 0xffff,
- /* key: 0x7145 */ 0xc973,
- /* key: 0x7146 */ 0xc974,
- /* key: 0x7147 */ 0xc975,
- /* key: 0x7148 */ 0xffff,
- /* key: 0x7149 */ 0x4e7b,
- /* key: 0x714a */ 0xc976,
- /* key: 0x714b */ 0xc977,
- /* key: 0x714c */ 0x5f6a,
- /* key: 0x714d */ 0xffff,
- /* key: 0x714e */ 0x4079,
- /* key: 0x714f */ 0xffff,
- /* key: 0x7150 */ 0xc978,
- /* key: 0x7151 */ 0xffff,
- /* key: 0x7152 */ 0xc979,
- /* key: 0x7153 */ 0xffff,
- /* key: 0x7154 */ 0xffff,
- /* key: 0x7155 */ 0x5f66,
- /* key: 0x7156 */ 0x5f6b,
- /* key: 0x7157 */ 0xc97a,
- /* key: 0x7158 */ 0xffff,
- /* key: 0x7159 */ 0x316c,
- /* key: 0x715a */ 0xc97b,
- /* key: 0x715b */ 0xffff,
- /* key: 0x715c */ 0xc97c,
- /* key: 0x715d */ 0xffff,
- /* key: 0x715e */ 0xc97d,
- /* key: 0x715f */ 0xffff,
- /* key: 0x7160 */ 0xc97e,
- /* key: 0x7161 */ 0xffff,
- /* key: 0x7162 */ 0x5f69,
- /* key: 0x7163 */ 0xffff,
- /* key: 0x7164 */ 0x4761,
- /* key: 0x7165 */ 0x5f65,
- /* key: 0x7166 */ 0x5f68,
- /* key: 0x7167 */ 0x3e48,
- /* key: 0x7168 */ 0xca21,
- /* key: 0x7169 */ 0x4851,
- /* key: 0x716a */ 0xffff,
- /* key: 0x716b */ 0xffff,
- /* key: 0x716c */ 0x5f6c,
- /* key: 0x716d */ 0xffff,
- /* key: 0x716e */ 0x3c51,
- /* key: 0x716f */ 0xffff,
- /* key: 0x7170 */ 0xffff,
- /* key: 0x7171 */ 0xffff,
- /* key: 0x7172 */ 0xffff,
- /* key: 0x7173 */ 0xffff,
- /* key: 0x7174 */ 0xffff,
- /* key: 0x7175 */ 0xffff,
- /* key: 0x7176 */ 0xffff,
- /* key: 0x7177 */ 0xffff,
- /* key: 0x7178 */ 0xffff,
- /* key: 0x7179 */ 0xca22,
- /* key: 0x717a */ 0xffff,
- /* key: 0x717b */ 0xffff,
- /* key: 0x717c */ 0xffff,
- /* key: 0x717d */ 0x407a,
- /* key: 0x717e */ 0xffff,
- /* key: 0x717f */ 0xffff,
- /* key: 0x7180 */ 0xca23,
- /* key: 0x7181 */ 0xffff,
- /* key: 0x7182 */ 0xffff,
- /* key: 0x7183 */ 0xffff,
- /* key: 0x7184 */ 0x5f6f,
- /* key: 0x7185 */ 0xca24,
- /* key: 0x7186 */ 0xffff,
- /* key: 0x7187 */ 0xca25,
- /* key: 0x7188 */ 0x5f67,
- /* key: 0x7189 */ 0xffff,
- /* key: 0x718a */ 0x3727,
- /* key: 0x718b */ 0xffff,
- /* key: 0x718c */ 0xca26,
- /* key: 0x718d */ 0xffff,
- /* key: 0x718e */ 0xffff,
- /* key: 0x718f */ 0x5f6d,
- /* key: 0x7190 */ 0xffff,
- /* key: 0x7191 */ 0xffff,
- /* key: 0x7192 */ 0xca27,
- /* key: 0x7193 */ 0xffff,
- /* key: 0x7194 */ 0x4d50,
- /* key: 0x7195 */ 0x5f70,
- /* key: 0x7196 */ 0xffff,
- /* key: 0x7197 */ 0xffff,
- /* key: 0x7198 */ 0xffff,
- /* key: 0x7199 */ 0x7426,
- /* key: 0x719a */ 0xca28,
- /* key: 0x719b */ 0xca29,
- /* key: 0x719c */ 0xffff,
- /* key: 0x719d */ 0xffff,
- /* key: 0x719e */ 0xffff,
- /* key: 0x719f */ 0x3d4f,
- /* key: 0x71a0 */ 0xca2a,
- /* key: 0x71a1 */ 0xffff,
- /* key: 0x71a2 */ 0xca2b,
- /* key: 0x71a3 */ 0xffff,
- /* key: 0x71a4 */ 0xffff,
- /* key: 0x71a5 */ 0xffff,
- /* key: 0x71a6 */ 0xffff,
- /* key: 0x71a7 */ 0xffff,
- /* key: 0x71a8 */ 0x5f71,
- /* key: 0x71a9 */ 0xffff,
- /* key: 0x71aa */ 0xffff,
- /* key: 0x71ab */ 0xffff,
- /* key: 0x71ac */ 0x5f72,
- /* key: 0x71ad */ 0xffff,
- /* key: 0x71ae */ 0xffff,
- /* key: 0x71af */ 0xca2c,
- /* key: 0x71b0 */ 0xca2d,
- /* key: 0x71b1 */ 0x472e,
- /* key: 0x71b2 */ 0xca2e,
- /* key: 0x71b3 */ 0xca2f,
- /* key: 0x71b4 */ 0xffff,
- /* key: 0x71b5 */ 0xffff,
- /* key: 0x71b6 */ 0xffff,
- /* key: 0x71b7 */ 0xffff,
- /* key: 0x71b8 */ 0xffff,
- /* key: 0x71b9 */ 0x5f74,
- /* key: 0x71ba */ 0xca30,
- /* key: 0x71bb */ 0xffff,
- /* key: 0x71bc */ 0xffff,
- /* key: 0x71bd */ 0xffff,
- /* key: 0x71be */ 0x5f75,
- /* key: 0x71bf */ 0xca31,
- /* key: 0x71c0 */ 0xca32,
- /* key: 0x71c1 */ 0xca33,
- /* key: 0x71c2 */ 0xffff,
- /* key: 0x71c3 */ 0x4733,
- /* key: 0x71c4 */ 0xca34,
- /* key: 0x71c5 */ 0xffff,
- /* key: 0x71c6 */ 0xffff,
- /* key: 0x71c7 */ 0xffff,
- /* key: 0x71c8 */ 0x4575,
- /* key: 0x71c9 */ 0x5f77,
- /* key: 0x71ca */ 0xffff,
- /* key: 0x71cb */ 0xca35,
- /* key: 0x71cc */ 0xca36,
- /* key: 0x71cd */ 0xffff,
- /* key: 0x71ce */ 0x5f79,
- /* key: 0x71cf */ 0xffff,
- /* key: 0x71d0 */ 0x4e55,
- /* key: 0x71d1 */ 0xffff,
- /* key: 0x71d2 */ 0x5f76,
- /* key: 0x71d3 */ 0xca37,
- /* key: 0x71d4 */ 0x5f78,
- /* key: 0x71d5 */ 0x316d,
- /* key: 0x71d6 */ 0xca38,
- /* key: 0x71d7 */ 0x5f73,
- /* key: 0x71d8 */ 0xffff,
- /* key: 0x71d9 */ 0xca39,
- /* key: 0x71da */ 0xca3a,
- /* key: 0x71db */ 0xffff,
- /* key: 0x71dc */ 0xca3b,
- /* key: 0x71dd */ 0xffff,
- /* key: 0x71de */ 0xffff,
- /* key: 0x71df */ 0x535b,
- /* key: 0x71e0 */ 0x5f7a,
- /* key: 0x71e1 */ 0xffff,
- /* key: 0x71e2 */ 0xffff,
- /* key: 0x71e3 */ 0xffff,
- /* key: 0x71e4 */ 0xffff,
- /* key: 0x71e5 */ 0x4167,
- /* key: 0x71e6 */ 0x3b38,
- /* key: 0x71e7 */ 0x5f7c,
- /* key: 0x71e8 */ 0xffff,
- /* key: 0x71e9 */ 0xffff,
- /* key: 0x71ea */ 0xffff,
- /* key: 0x71eb */ 0xffff,
- /* key: 0x71ec */ 0x5f7b,
- /* key: 0x71ed */ 0x3f24,
- /* key: 0x71ee */ 0x5259,
- /* key: 0x71ef */ 0xffff,
- /* key: 0x71f0 */ 0xffff,
- /* key: 0x71f1 */ 0xffff,
- /* key: 0x71f2 */ 0xffff,
- /* key: 0x71f3 */ 0xffff,
- /* key: 0x71f4 */ 0xffff,
- /* key: 0x71f5 */ 0x5f7d,
- /* key: 0x71f6 */ 0xffff,
- /* key: 0x71f7 */ 0xffff,
- /* key: 0x71f8 */ 0xca3c,
- /* key: 0x71f9 */ 0x6021,
- /* key: 0x71fa */ 0xffff,
- /* key: 0x71fb */ 0x5f6e,
- /* key: 0x71fc */ 0x5f7e,
- /* key: 0x71fd */ 0xffff,
- /* key: 0x71fe */ 0xca3d,
- /* key: 0x71ff */ 0x6022,
- /* branch: 0x720X */ 11424,
- /* branch: 0x721X */ 11440,
- /* branch: 0x722X */ 11456,
- /* branch: 0x723X */ 11472,
- /* branch: 0x724X */ 11488,
- /* branch: 0x725X */ 11504,
- /* branch: 0x726X */ 11520,
- /* branch: 0x727X */ 11536,
- /* branch: 0x728X */ 11552,
- /* branch: 0x729X */ 11568,
- /* branch: 0x72aX */ 11584,
- /* branch: 0x72bX */ 11600,
- /* branch: 0x72cX */ 11616,
- /* branch: 0x72dX */ 11632,
- /* branch: 0x72eX */ 11648,
- /* branch: 0x72fX */ 11664,
- /* key: 0x7200 */ 0xca3e,
- /* key: 0x7201 */ 0xffff,
- /* key: 0x7202 */ 0xffff,
- /* key: 0x7203 */ 0xffff,
- /* key: 0x7204 */ 0xffff,
- /* key: 0x7205 */ 0xffff,
- /* key: 0x7206 */ 0x477a,
- /* key: 0x7207 */ 0xca3f,
- /* key: 0x7208 */ 0xca40,
- /* key: 0x7209 */ 0xca41,
- /* key: 0x720a */ 0xffff,
- /* key: 0x720b */ 0xffff,
- /* key: 0x720c */ 0xffff,
- /* key: 0x720d */ 0x6023,
- /* key: 0x720e */ 0xffff,
- /* key: 0x720f */ 0xffff,
- /* key: 0x7210 */ 0x6024,
- /* key: 0x7211 */ 0xffff,
- /* key: 0x7212 */ 0xffff,
- /* key: 0x7213 */ 0xca42,
- /* key: 0x7214 */ 0xffff,
- /* key: 0x7215 */ 0xffff,
- /* key: 0x7216 */ 0xffff,
- /* key: 0x7217 */ 0xca43,
- /* key: 0x7218 */ 0xffff,
- /* key: 0x7219 */ 0xffff,
- /* key: 0x721a */ 0xca44,
- /* key: 0x721b */ 0x6025,
- /* key: 0x721c */ 0xffff,
- /* key: 0x721d */ 0xca45,
- /* key: 0x721e */ 0xffff,
- /* key: 0x721f */ 0xca46,
- /* key: 0x7220 */ 0xffff,
- /* key: 0x7221 */ 0xffff,
- /* key: 0x7222 */ 0xffff,
- /* key: 0x7223 */ 0xffff,
- /* key: 0x7224 */ 0xca47,
- /* key: 0x7225 */ 0xffff,
- /* key: 0x7226 */ 0xffff,
- /* key: 0x7227 */ 0xffff,
- /* key: 0x7228 */ 0x6026,
- /* key: 0x7229 */ 0xffff,
- /* key: 0x722a */ 0x445e,
- /* key: 0x722b */ 0xca48,
- /* key: 0x722c */ 0x6028,
- /* key: 0x722d */ 0x6027,
- /* key: 0x722e */ 0xffff,
- /* key: 0x722f */ 0xca49,
- /* key: 0x7230 */ 0x6029,
- /* key: 0x7231 */ 0xffff,
- /* key: 0x7232 */ 0x602a,
- /* key: 0x7233 */ 0xffff,
- /* key: 0x7234 */ 0xca4a,
- /* key: 0x7235 */ 0x3c5f,
- /* key: 0x7236 */ 0x4963,
- /* key: 0x7237 */ 0xffff,
- /* key: 0x7238 */ 0xca4b,
- /* key: 0x7239 */ 0xca4c,
- /* key: 0x723a */ 0x4c6c,
- /* key: 0x723b */ 0x602b,
- /* key: 0x723c */ 0x602c,
- /* key: 0x723d */ 0x4156,
- /* key: 0x723e */ 0x3c24,
- /* key: 0x723f */ 0x602d,
- /* key: 0x7240 */ 0x602e,
- /* key: 0x7241 */ 0xca4d,
- /* key: 0x7242 */ 0xca4e,
- /* key: 0x7243 */ 0xca4f,
- /* key: 0x7244 */ 0xffff,
- /* key: 0x7245 */ 0xca50,
- /* key: 0x7246 */ 0x602f,
- /* key: 0x7247 */ 0x4a52,
- /* key: 0x7248 */ 0x4847,
- /* key: 0x7249 */ 0xffff,
- /* key: 0x724a */ 0xffff,
- /* key: 0x724b */ 0x6030,
- /* key: 0x724c */ 0x4757,
- /* key: 0x724d */ 0xffff,
- /* key: 0x724e */ 0xca51,
- /* key: 0x724f */ 0xca52,
- /* key: 0x7250 */ 0xca53,
- /* key: 0x7251 */ 0xffff,
- /* key: 0x7252 */ 0x442d,
- /* key: 0x7253 */ 0xca54,
- /* key: 0x7254 */ 0xffff,
- /* key: 0x7255 */ 0xca55,
- /* key: 0x7256 */ 0xca56,
- /* key: 0x7257 */ 0xffff,
- /* key: 0x7258 */ 0x6031,
- /* key: 0x7259 */ 0x3267,
- /* key: 0x725a */ 0xca57,
- /* key: 0x725b */ 0x356d,
- /* key: 0x725c */ 0xca58,
- /* key: 0x725d */ 0x4c46,
- /* key: 0x725e */ 0xca59,
- /* key: 0x725f */ 0x4c36,
- /* key: 0x7260 */ 0xca5a,
- /* key: 0x7261 */ 0x3234,
- /* key: 0x7262 */ 0x4f34,
- /* key: 0x7263 */ 0xca5b,
- /* key: 0x7264 */ 0xffff,
- /* key: 0x7265 */ 0xffff,
- /* key: 0x7266 */ 0xffff,
- /* key: 0x7267 */ 0x4b52,
- /* key: 0x7268 */ 0xca5c,
- /* key: 0x7269 */ 0x4a2a,
- /* key: 0x726a */ 0xffff,
- /* key: 0x726b */ 0xca5d,
- /* key: 0x726c */ 0xffff,
- /* key: 0x726d */ 0xffff,
- /* key: 0x726e */ 0xca5e,
- /* key: 0x726f */ 0xca5f,
- /* key: 0x7270 */ 0xffff,
- /* key: 0x7271 */ 0xca60,
- /* key: 0x7272 */ 0x4037,
- /* key: 0x7273 */ 0xffff,
- /* key: 0x7274 */ 0x6032,
- /* key: 0x7275 */ 0xffff,
- /* key: 0x7276 */ 0xffff,
- /* key: 0x7277 */ 0xca61,
- /* key: 0x7278 */ 0xca62,
- /* key: 0x7279 */ 0x4643,
- /* key: 0x727a */ 0xffff,
- /* key: 0x727b */ 0xca63,
- /* key: 0x727c */ 0xca64,
- /* key: 0x727d */ 0x3823,
- /* key: 0x727e */ 0x6033,
- /* key: 0x727f */ 0xca65,
- /* key: 0x7280 */ 0x3a54,
- /* key: 0x7281 */ 0x6035,
- /* key: 0x7282 */ 0x6034,
- /* key: 0x7283 */ 0xffff,
- /* key: 0x7284 */ 0xca66,
- /* key: 0x7285 */ 0xffff,
- /* key: 0x7286 */ 0xffff,
- /* key: 0x7287 */ 0x6036,
- /* key: 0x7288 */ 0xffff,
- /* key: 0x7289 */ 0xca67,
- /* key: 0x728a */ 0xffff,
- /* key: 0x728b */ 0xffff,
- /* key: 0x728c */ 0xffff,
- /* key: 0x728d */ 0xca68,
- /* key: 0x728e */ 0xca69,
- /* key: 0x728f */ 0xffff,
- /* key: 0x7290 */ 0xffff,
- /* key: 0x7291 */ 0xffff,
- /* key: 0x7292 */ 0x6037,
- /* key: 0x7293 */ 0xca6a,
- /* key: 0x7294 */ 0xffff,
- /* key: 0x7295 */ 0xffff,
- /* key: 0x7296 */ 0x6038,
- /* key: 0x7297 */ 0xffff,
- /* key: 0x7298 */ 0xffff,
- /* key: 0x7299 */ 0xffff,
- /* key: 0x729a */ 0xffff,
- /* key: 0x729b */ 0xca6b,
- /* key: 0x729c */ 0xffff,
- /* key: 0x729d */ 0xffff,
- /* key: 0x729e */ 0xffff,
- /* key: 0x729f */ 0xffff,
- /* key: 0x72a0 */ 0x353e,
- /* key: 0x72a1 */ 0xffff,
- /* key: 0x72a2 */ 0x6039,
- /* key: 0x72a3 */ 0xffff,
- /* key: 0x72a4 */ 0xffff,
- /* key: 0x72a5 */ 0xffff,
- /* key: 0x72a6 */ 0xffff,
- /* key: 0x72a7 */ 0x603a,
- /* key: 0x72a8 */ 0xca6c,
- /* key: 0x72a9 */ 0xffff,
- /* key: 0x72aa */ 0xffff,
- /* key: 0x72ab */ 0xffff,
- /* key: 0x72ac */ 0x3824,
- /* key: 0x72ad */ 0xca6d,
- /* key: 0x72ae */ 0xca6e,
- /* key: 0x72af */ 0x4848,
- /* key: 0x72b0 */ 0xffff,
- /* key: 0x72b1 */ 0xca6f,
- /* key: 0x72b2 */ 0x603c,
- /* key: 0x72b3 */ 0xffff,
- /* key: 0x72b4 */ 0xca70,
- /* key: 0x72b5 */ 0xffff,
- /* key: 0x72b6 */ 0x3e75,
- /* key: 0x72b7 */ 0xffff,
- /* key: 0x72b8 */ 0xffff,
- /* key: 0x72b9 */ 0x603b,
- /* key: 0x72ba */ 0xffff,
- /* key: 0x72bb */ 0xffff,
- /* key: 0x72bc */ 0xffff,
- /* key: 0x72bd */ 0xffff,
- /* key: 0x72be */ 0xca71,
- /* key: 0x72bf */ 0xffff,
- /* key: 0x72c0 */ 0xffff,
- /* key: 0x72c1 */ 0xca72,
- /* key: 0x72c2 */ 0x3638,
- /* key: 0x72c3 */ 0x603d,
- /* key: 0x72c4 */ 0x603f,
- /* key: 0x72c5 */ 0xffff,
- /* key: 0x72c6 */ 0x603e,
- /* key: 0x72c7 */ 0xca73,
- /* key: 0x72c8 */ 0xffff,
- /* key: 0x72c9 */ 0xca74,
- /* key: 0x72ca */ 0xffff,
- /* key: 0x72cb */ 0xffff,
- /* key: 0x72cc */ 0xca75,
- /* key: 0x72cd */ 0xffff,
- /* key: 0x72ce */ 0x6040,
- /* key: 0x72cf */ 0xffff,
- /* key: 0x72d0 */ 0x3851,
- /* key: 0x72d1 */ 0xffff,
- /* key: 0x72d2 */ 0x6041,
- /* key: 0x72d3 */ 0xffff,
- /* key: 0x72d4 */ 0xffff,
- /* key: 0x72d5 */ 0xca76,
- /* key: 0x72d6 */ 0xca77,
- /* key: 0x72d7 */ 0x3669,
- /* key: 0x72d8 */ 0xca78,
- /* key: 0x72d9 */ 0x4140,
- /* key: 0x72da */ 0xffff,
- /* key: 0x72db */ 0x397d,
- /* key: 0x72dc */ 0xffff,
- /* key: 0x72dd */ 0xffff,
- /* key: 0x72de */ 0xffff,
- /* key: 0x72df */ 0xca79,
- /* key: 0x72e0 */ 0x6043,
- /* key: 0x72e1 */ 0x6044,
- /* key: 0x72e2 */ 0x6042,
- /* key: 0x72e3 */ 0xffff,
- /* key: 0x72e4 */ 0xffff,
- /* key: 0x72e5 */ 0xca7a,
- /* key: 0x72e6 */ 0xffff,
- /* key: 0x72e7 */ 0xffff,
- /* key: 0x72e8 */ 0xffff,
- /* key: 0x72e9 */ 0x3c6d,
- /* key: 0x72ea */ 0xffff,
- /* key: 0x72eb */ 0xffff,
- /* key: 0x72ec */ 0x4648,
- /* key: 0x72ed */ 0x3639,
- /* key: 0x72ee */ 0xffff,
- /* key: 0x72ef */ 0xffff,
- /* key: 0x72f0 */ 0xffff,
- /* key: 0x72f1 */ 0xffff,
- /* key: 0x72f2 */ 0xffff,
- /* key: 0x72f3 */ 0xca7b,
- /* key: 0x72f4 */ 0xca7c,
- /* key: 0x72f5 */ 0xffff,
- /* key: 0x72f6 */ 0xffff,
- /* key: 0x72f7 */ 0x6046,
- /* key: 0x72f8 */ 0x432c,
- /* key: 0x72f9 */ 0x6045,
- /* key: 0x72fa */ 0xca7d,
- /* key: 0x72fb */ 0xca7e,
- /* key: 0x72fc */ 0x4f35,
- /* key: 0x72fd */ 0x4762,
- /* key: 0x72fe */ 0xcb21,
- /* key: 0x72ff */ 0xffff,
- /* branch: 0x730X */ 11696,
- /* branch: 0x731X */ 11712,
- /* branch: 0x732X */ 11728,
- /* branch: 0x733X */ 11744,
- /* branch: 0x734X */ 11760,
- /* branch: 0x735X */ 11776,
- /* branch: 0x736X */ 11792,
- /* branch: 0x737X */ 11808,
- /* branch: 0x738X */ 11824,
- /* branch: 0x739X */ 11840,
- /* branch: 0x73aX */ 11856,
- /* branch: 0x73bX */ 11872,
- /* branch: 0x73cX */ 11888,
- /* branch: 0x73dX */ 11904,
- /* branch: 0x73eX */ 11920,
- /* branch: 0x73fX */ 11936,
- /* key: 0x7300 */ 0xffff,
- /* key: 0x7301 */ 0xffff,
- /* key: 0x7302 */ 0xcb22,
- /* key: 0x7303 */ 0xffff,
- /* key: 0x7304 */ 0xcb23,
- /* key: 0x7305 */ 0xcb24,
- /* key: 0x7306 */ 0xffff,
- /* key: 0x7307 */ 0xcb25,
- /* key: 0x7308 */ 0xffff,
- /* key: 0x7309 */ 0xffff,
- /* key: 0x730a */ 0x6049,
- /* key: 0x730b */ 0xcb26,
- /* key: 0x730c */ 0xffff,
- /* key: 0x730d */ 0xcb27,
- /* key: 0x730e */ 0xffff,
- /* key: 0x730f */ 0xffff,
- /* key: 0x7310 */ 0xffff,
- /* key: 0x7311 */ 0xffff,
- /* key: 0x7312 */ 0xcb28,
- /* key: 0x7313 */ 0xcb29,
- /* key: 0x7314 */ 0xffff,
- /* key: 0x7315 */ 0xffff,
- /* key: 0x7316 */ 0x604b,
- /* key: 0x7317 */ 0x6048,
- /* key: 0x7318 */ 0xcb2a,
- /* key: 0x7319 */ 0xcb2b,
- /* key: 0x731a */ 0xffff,
- /* key: 0x731b */ 0x4c54,
- /* key: 0x731c */ 0x604a,
- /* key: 0x731d */ 0x604c,
- /* key: 0x731e */ 0xcb2c,
- /* key: 0x731f */ 0x4e44,
- /* key: 0x7320 */ 0xffff,
- /* key: 0x7321 */ 0xffff,
- /* key: 0x7322 */ 0xcb2d,
- /* key: 0x7323 */ 0xffff,
- /* key: 0x7324 */ 0xcb2e,
- /* key: 0x7325 */ 0x6050,
- /* key: 0x7326 */ 0xffff,
- /* key: 0x7327 */ 0xcb2f,
- /* key: 0x7328 */ 0xcb30,
- /* key: 0x7329 */ 0x604f,
- /* key: 0x732a */ 0x4376,
- /* key: 0x732b */ 0x472d,
- /* key: 0x732c */ 0xcb31,
- /* key: 0x732d */ 0xffff,
- /* key: 0x732e */ 0x3825,
- /* key: 0x732f */ 0x604e,
- /* key: 0x7330 */ 0xffff,
- /* key: 0x7331 */ 0xcb32,
- /* key: 0x7332 */ 0xcb33,
- /* key: 0x7333 */ 0xffff,
- /* key: 0x7334 */ 0x604d,
- /* key: 0x7335 */ 0xcb34,
- /* key: 0x7336 */ 0x4d31,
- /* key: 0x7337 */ 0x4d32,
- /* key: 0x7338 */ 0xffff,
- /* key: 0x7339 */ 0xffff,
- /* key: 0x733a */ 0xcb35,
- /* key: 0x733b */ 0xcb36,
- /* key: 0x733c */ 0xffff,
- /* key: 0x733d */ 0xcb37,
- /* key: 0x733e */ 0x6051,
- /* key: 0x733f */ 0x316e,
- /* key: 0x7340 */ 0xffff,
- /* key: 0x7341 */ 0xffff,
- /* key: 0x7342 */ 0xffff,
- /* key: 0x7343 */ 0xcb38,
- /* key: 0x7344 */ 0x3976,
- /* key: 0x7345 */ 0x3b62,
- /* key: 0x7346 */ 0xffff,
- /* key: 0x7347 */ 0xffff,
- /* key: 0x7348 */ 0xffff,
- /* key: 0x7349 */ 0xffff,
- /* key: 0x734a */ 0xffff,
- /* key: 0x734b */ 0xffff,
- /* key: 0x734c */ 0xffff,
- /* key: 0x734d */ 0xcb39,
- /* key: 0x734e */ 0x6052,
- /* key: 0x734f */ 0x6053,
- /* key: 0x7350 */ 0xcb3a,
- /* key: 0x7351 */ 0xffff,
- /* key: 0x7352 */ 0xcb3b,
- /* key: 0x7353 */ 0xffff,
- /* key: 0x7354 */ 0xffff,
- /* key: 0x7355 */ 0xffff,
- /* key: 0x7356 */ 0xcb3c,
- /* key: 0x7357 */ 0x6055,
- /* key: 0x7358 */ 0xcb3d,
- /* key: 0x7359 */ 0xffff,
- /* key: 0x735a */ 0xffff,
- /* key: 0x735b */ 0xffff,
- /* key: 0x735c */ 0xffff,
- /* key: 0x735d */ 0xcb3e,
- /* key: 0x735e */ 0xcb3f,
- /* key: 0x735f */ 0xcb40,
- /* key: 0x7360 */ 0xcb41,
- /* key: 0x7361 */ 0xffff,
- /* key: 0x7362 */ 0xffff,
- /* key: 0x7363 */ 0x3d43,
- /* key: 0x7364 */ 0xffff,
- /* key: 0x7365 */ 0xffff,
- /* key: 0x7366 */ 0xcb42,
- /* key: 0x7367 */ 0xcb43,
- /* key: 0x7368 */ 0x6057,
- /* key: 0x7369 */ 0xcb44,
- /* key: 0x736a */ 0x6056,
- /* key: 0x736b */ 0xcb45,
- /* key: 0x736c */ 0xcb46,
- /* key: 0x736d */ 0xffff,
- /* key: 0x736e */ 0xcb47,
- /* key: 0x736f */ 0xcb48,
- /* key: 0x7370 */ 0x6058,
- /* key: 0x7371 */ 0xcb49,
- /* key: 0x7372 */ 0x334d,
- /* key: 0x7373 */ 0xffff,
- /* key: 0x7374 */ 0xffff,
- /* key: 0x7375 */ 0x605a,
- /* key: 0x7376 */ 0xffff,
- /* key: 0x7377 */ 0xcb4a,
- /* key: 0x7378 */ 0x6059,
- /* key: 0x7379 */ 0xcb4b,
- /* key: 0x737a */ 0x605c,
- /* key: 0x737b */ 0x605b,
- /* key: 0x737c */ 0xcb4c,
- /* key: 0x737d */ 0xffff,
- /* key: 0x737e */ 0xffff,
- /* key: 0x737f */ 0xffff,
- /* key: 0x7380 */ 0xcb4d,
- /* key: 0x7381 */ 0xcb4e,
- /* key: 0x7382 */ 0xffff,
- /* key: 0x7383 */ 0xcb4f,
- /* key: 0x7384 */ 0x383c,
- /* key: 0x7385 */ 0xcb50,
- /* key: 0x7386 */ 0xcb51,
- /* key: 0x7387 */ 0x4e28,
- /* key: 0x7388 */ 0xffff,
- /* key: 0x7389 */ 0x364c,
- /* key: 0x738a */ 0xffff,
- /* key: 0x738b */ 0x3226,
- /* key: 0x738c */ 0xffff,
- /* key: 0x738d */ 0xffff,
- /* key: 0x738e */ 0xcb52,
- /* key: 0x738f */ 0xffff,
- /* key: 0x7390 */ 0xcb53,
- /* key: 0x7391 */ 0xffff,
- /* key: 0x7392 */ 0xffff,
- /* key: 0x7393 */ 0xcb54,
- /* key: 0x7394 */ 0xffff,
- /* key: 0x7395 */ 0xcb55,
- /* key: 0x7396 */ 0x366a,
- /* key: 0x7397 */ 0xcb56,
- /* key: 0x7398 */ 0xcb57,
- /* key: 0x7399 */ 0xffff,
- /* key: 0x739a */ 0xffff,
- /* key: 0x739b */ 0xffff,
- /* key: 0x739c */ 0xcb58,
- /* key: 0x739d */ 0xffff,
- /* key: 0x739e */ 0xcb59,
- /* key: 0x739f */ 0xcb5a,
- /* key: 0x73a0 */ 0xcb5b,
- /* key: 0x73a1 */ 0xffff,
- /* key: 0x73a2 */ 0xcb5c,
- /* key: 0x73a3 */ 0xffff,
- /* key: 0x73a4 */ 0xffff,
- /* key: 0x73a5 */ 0xcb5d,
- /* key: 0x73a6 */ 0xcb5e,
- /* key: 0x73a7 */ 0xffff,
- /* key: 0x73a8 */ 0xffff,
- /* key: 0x73a9 */ 0x3461,
- /* key: 0x73aa */ 0xcb5f,
- /* key: 0x73ab */ 0xcb60,
- /* key: 0x73ac */ 0xffff,
- /* key: 0x73ad */ 0xcb61,
- /* key: 0x73ae */ 0xffff,
- /* key: 0x73af */ 0xffff,
- /* key: 0x73b0 */ 0xffff,
- /* key: 0x73b1 */ 0xffff,
- /* key: 0x73b2 */ 0x4e68,
- /* key: 0x73b3 */ 0x605e,
- /* key: 0x73b4 */ 0xffff,
- /* key: 0x73b5 */ 0xcb62,
- /* key: 0x73b6 */ 0xffff,
- /* key: 0x73b7 */ 0xcb63,
- /* key: 0x73b8 */ 0xffff,
- /* key: 0x73b9 */ 0xcb64,
- /* key: 0x73ba */ 0xffff,
- /* key: 0x73bb */ 0x6060,
- /* key: 0x73bc */ 0xcb65,
- /* key: 0x73bd */ 0xcb66,
- /* key: 0x73be */ 0xffff,
- /* key: 0x73bf */ 0xcb67,
- /* key: 0x73c0 */ 0x6061,
- /* key: 0x73c1 */ 0xffff,
- /* key: 0x73c2 */ 0x3251,
- /* key: 0x73c3 */ 0xffff,
- /* key: 0x73c4 */ 0xffff,
- /* key: 0x73c5 */ 0xcb68,
- /* key: 0x73c6 */ 0xcb69,
- /* key: 0x73c7 */ 0xffff,
- /* key: 0x73c8 */ 0x605d,
- /* key: 0x73c9 */ 0xcb6a,
- /* key: 0x73ca */ 0x3b39,
- /* key: 0x73cb */ 0xcb6b,
- /* key: 0x73cc */ 0xcb6c,
- /* key: 0x73cd */ 0x4441,
- /* key: 0x73ce */ 0x605f,
- /* key: 0x73cf */ 0xcb6d,
- /* key: 0x73d0 */ 0xffff,
- /* key: 0x73d1 */ 0xffff,
- /* key: 0x73d2 */ 0xcb6e,
- /* key: 0x73d3 */ 0xcb6f,
- /* key: 0x73d4 */ 0xffff,
- /* key: 0x73d5 */ 0xffff,
- /* key: 0x73d6 */ 0xcb70,
- /* key: 0x73d7 */ 0xffff,
- /* key: 0x73d8 */ 0xffff,
- /* key: 0x73d9 */ 0xcb71,
- /* key: 0x73da */ 0xffff,
- /* key: 0x73db */ 0xffff,
- /* key: 0x73dc */ 0xffff,
- /* key: 0x73dd */ 0xcb72,
- /* key: 0x73de */ 0x6064,
- /* key: 0x73df */ 0xffff,
- /* key: 0x73e0 */ 0x3c6e,
- /* key: 0x73e1 */ 0xcb73,
- /* key: 0x73e2 */ 0xffff,
- /* key: 0x73e3 */ 0xcb74,
- /* key: 0x73e4 */ 0xffff,
- /* key: 0x73e5 */ 0x6062,
- /* key: 0x73e6 */ 0xcb75,
- /* key: 0x73e7 */ 0xcb76,
- /* key: 0x73e8 */ 0xffff,
- /* key: 0x73e9 */ 0xcb77,
- /* key: 0x73ea */ 0x373e,
- /* key: 0x73eb */ 0xffff,
- /* key: 0x73ec */ 0xffff,
- /* key: 0x73ed */ 0x4849,
- /* key: 0x73ee */ 0x6063,
- /* key: 0x73ef */ 0xffff,
- /* key: 0x73f0 */ 0xffff,
- /* key: 0x73f1 */ 0x607e,
- /* key: 0x73f2 */ 0xffff,
- /* key: 0x73f3 */ 0xffff,
- /* key: 0x73f4 */ 0xcb78,
- /* key: 0x73f5 */ 0xcb79,
- /* key: 0x73f6 */ 0xffff,
- /* key: 0x73f7 */ 0xcb7a,
- /* key: 0x73f8 */ 0x6069,
- /* key: 0x73f9 */ 0xcb7b,
- /* key: 0x73fa */ 0xcb7c,
- /* key: 0x73fb */ 0xcb7d,
- /* key: 0x73fc */ 0xffff,
- /* key: 0x73fd */ 0xcb7e,
- /* key: 0x73fe */ 0x383d,
- /* key: 0x73ff */ 0xcc21,
- /* branch: 0x740X */ 11968,
- /* branch: 0x741X */ 11984,
- /* branch: 0x742X */ 12000,
- /* branch: 0x743X */ 12016,
- /* branch: 0x744X */ 12032,
- /* branch: 0x745X */ 12048,
- /* branch: 0x746X */ 12064,
- /* branch: 0x747X */ 12080,
- /* branch: 0x748X */ 12096,
- /* branch: 0x749X */ 12112,
- /* branch: 0x74aX */ 12128,
- /* branch: 0x74bX */ 12144,
- /* branch: 0x74cX */ 12160,
- /* branch: 0x74dX */ 12176,
- /* branch: 0x74eX */ 12192,
- /* branch: 0x74fX */ 12208,
- /* key: 0x7400 */ 0xcc22,
- /* key: 0x7401 */ 0xcc23,
- /* key: 0x7402 */ 0xffff,
- /* key: 0x7403 */ 0x3565,
- /* key: 0x7404 */ 0xcc24,
- /* key: 0x7405 */ 0x6066,
- /* key: 0x7406 */ 0x4d7d,
- /* key: 0x7407 */ 0xcc25,
- /* key: 0x7408 */ 0xffff,
- /* key: 0x7409 */ 0x4e30,
- /* key: 0x740a */ 0xcc26,
- /* key: 0x740b */ 0xffff,
- /* key: 0x740c */ 0xffff,
- /* key: 0x740d */ 0xffff,
- /* key: 0x740e */ 0xffff,
- /* key: 0x740f */ 0xffff,
- /* key: 0x7410 */ 0xffff,
- /* key: 0x7411 */ 0xcc27,
- /* key: 0x7412 */ 0xffff,
- /* key: 0x7413 */ 0xffff,
- /* key: 0x7414 */ 0xffff,
- /* key: 0x7415 */ 0xffff,
- /* key: 0x7416 */ 0xffff,
- /* key: 0x7417 */ 0xffff,
- /* key: 0x7418 */ 0xffff,
- /* key: 0x7419 */ 0xffff,
- /* key: 0x741a */ 0xcc28,
- /* key: 0x741b */ 0xcc29,
- /* key: 0x741c */ 0xffff,
- /* key: 0x741d */ 0xffff,
- /* key: 0x741e */ 0xffff,
- /* key: 0x741f */ 0xffff,
- /* key: 0x7420 */ 0xffff,
- /* key: 0x7421 */ 0xffff,
- /* key: 0x7422 */ 0x4276,
- /* key: 0x7423 */ 0xffff,
- /* key: 0x7424 */ 0xcc2a,
- /* key: 0x7425 */ 0x6068,
- /* key: 0x7426 */ 0xcc2b,
- /* key: 0x7427 */ 0xffff,
- /* key: 0x7428 */ 0xcc2c,
- /* key: 0x7429 */ 0xcc2d,
- /* key: 0x742a */ 0xcc2e,
- /* key: 0x742b */ 0xcc2f,
- /* key: 0x742c */ 0xcc30,
- /* key: 0x742d */ 0xcc31,
- /* key: 0x742e */ 0xcc32,
- /* key: 0x742f */ 0xcc33,
- /* key: 0x7430 */ 0xcc34,
- /* key: 0x7431 */ 0xcc35,
- /* key: 0x7432 */ 0x606a,
- /* key: 0x7433 */ 0x4e56,
- /* key: 0x7434 */ 0x3657,
- /* key: 0x7435 */ 0x487c,
- /* key: 0x7436 */ 0x474a,
- /* key: 0x7437 */ 0xffff,
- /* key: 0x7438 */ 0xffff,
- /* key: 0x7439 */ 0xcc36,
- /* key: 0x743a */ 0x606b,
- /* key: 0x743b */ 0xffff,
- /* key: 0x743c */ 0xffff,
- /* key: 0x743d */ 0xffff,
- /* key: 0x743e */ 0xffff,
- /* key: 0x743f */ 0x606d,
- /* key: 0x7440 */ 0xcc37,
- /* key: 0x7441 */ 0x6070,
- /* key: 0x7442 */ 0xffff,
- /* key: 0x7443 */ 0xcc38,
- /* key: 0x7444 */ 0xcc39,
- /* key: 0x7445 */ 0xffff,
- /* key: 0x7446 */ 0xcc3a,
- /* key: 0x7447 */ 0xcc3b,
- /* key: 0x7448 */ 0xffff,
- /* key: 0x7449 */ 0xffff,
- /* key: 0x744a */ 0xffff,
- /* key: 0x744b */ 0xcc3c,
- /* key: 0x744c */ 0xffff,
- /* key: 0x744d */ 0xcc3d,
- /* key: 0x744e */ 0xffff,
- /* key: 0x744f */ 0xffff,
- /* key: 0x7450 */ 0xffff,
- /* key: 0x7451 */ 0xcc3e,
- /* key: 0x7452 */ 0xcc3f,
- /* key: 0x7453 */ 0xffff,
- /* key: 0x7454 */ 0xffff,
- /* key: 0x7455 */ 0x606c,
- /* key: 0x7456 */ 0xffff,
- /* key: 0x7457 */ 0xcc40,
- /* key: 0x7458 */ 0xffff,
- /* key: 0x7459 */ 0x606f,
- /* key: 0x745a */ 0x386a,
- /* key: 0x745b */ 0x314d,
- /* key: 0x745c */ 0x6071,
- /* key: 0x745d */ 0xcc41,
- /* key: 0x745e */ 0x3f70,
- /* key: 0x745f */ 0x606e,
- /* key: 0x7460 */ 0x4e5c,
- /* key: 0x7461 */ 0xffff,
- /* key: 0x7462 */ 0xcc42,
- /* key: 0x7463 */ 0x6074,
- /* key: 0x7464 */ 0x7424,
- /* key: 0x7465 */ 0xffff,
- /* key: 0x7466 */ 0xcc43,
- /* key: 0x7467 */ 0xcc44,
- /* key: 0x7468 */ 0xcc45,
- /* key: 0x7469 */ 0x6072,
- /* key: 0x746a */ 0x6075,
- /* key: 0x746b */ 0xcc46,
- /* key: 0x746c */ 0xffff,
- /* key: 0x746d */ 0xcc47,
- /* key: 0x746e */ 0xcc48,
- /* key: 0x746f */ 0x6067,
- /* key: 0x7470 */ 0x6073,
- /* key: 0x7471 */ 0xcc49,
- /* key: 0x7472 */ 0xcc4a,
- /* key: 0x7473 */ 0x3a3c,
- /* key: 0x7474 */ 0xffff,
- /* key: 0x7475 */ 0xffff,
- /* key: 0x7476 */ 0x6076,
- /* key: 0x7477 */ 0xffff,
- /* key: 0x7478 */ 0xffff,
- /* key: 0x7479 */ 0xffff,
- /* key: 0x747a */ 0xffff,
- /* key: 0x747b */ 0xffff,
- /* key: 0x747c */ 0xffff,
- /* key: 0x747d */ 0xffff,
- /* key: 0x747e */ 0x6077,
- /* key: 0x747f */ 0xffff,
- /* key: 0x7480 */ 0xcc4b,
- /* key: 0x7481 */ 0xcc4c,
- /* key: 0x7482 */ 0xffff,
- /* key: 0x7483 */ 0x4d7e,
- /* key: 0x7484 */ 0xffff,
- /* key: 0x7485 */ 0xcc4d,
- /* key: 0x7486 */ 0xcc4e,
- /* key: 0x7487 */ 0xcc4f,
- /* key: 0x7488 */ 0xffff,
- /* key: 0x7489 */ 0xcc50,
- /* key: 0x748a */ 0xffff,
- /* key: 0x748b */ 0x6078,
- /* key: 0x748c */ 0xffff,
- /* key: 0x748d */ 0xffff,
- /* key: 0x748e */ 0xffff,
- /* key: 0x748f */ 0xcc51,
- /* key: 0x7490 */ 0xcc52,
- /* key: 0x7491 */ 0xcc53,
- /* key: 0x7492 */ 0xcc54,
- /* key: 0x7493 */ 0xffff,
- /* key: 0x7494 */ 0xffff,
- /* key: 0x7495 */ 0xffff,
- /* key: 0x7496 */ 0xffff,
- /* key: 0x7497 */ 0xffff,
- /* key: 0x7498 */ 0xcc55,
- /* key: 0x7499 */ 0xcc56,
- /* key: 0x749a */ 0xcc57,
- /* key: 0x749b */ 0xffff,
- /* key: 0x749c */ 0xcc58,
- /* key: 0x749d */ 0xffff,
- /* key: 0x749e */ 0x6079,
- /* key: 0x749f */ 0xcc59,
- /* key: 0x74a0 */ 0xcc5a,
- /* key: 0x74a1 */ 0xcc5b,
- /* key: 0x74a2 */ 0x6065,
- /* key: 0x74a3 */ 0xcc5c,
- /* key: 0x74a4 */ 0xffff,
- /* key: 0x74a5 */ 0xffff,
- /* key: 0x74a6 */ 0xcc5d,
- /* key: 0x74a7 */ 0x607a,
- /* key: 0x74a8 */ 0xcc5e,
- /* key: 0x74a9 */ 0xcc5f,
- /* key: 0x74aa */ 0xcc60,
- /* key: 0x74ab */ 0xcc61,
- /* key: 0x74ac */ 0xffff,
- /* key: 0x74ad */ 0xffff,
- /* key: 0x74ae */ 0xcc62,
- /* key: 0x74af */ 0xcc63,
- /* key: 0x74b0 */ 0x3444,
- /* key: 0x74b1 */ 0xcc64,
- /* key: 0x74b2 */ 0xcc65,
- /* key: 0x74b3 */ 0xffff,
- /* key: 0x74b4 */ 0xffff,
- /* key: 0x74b5 */ 0xcc66,
- /* key: 0x74b6 */ 0xffff,
- /* key: 0x74b7 */ 0xffff,
- /* key: 0x74b8 */ 0xffff,
- /* key: 0x74b9 */ 0xcc67,
- /* key: 0x74ba */ 0xffff,
- /* key: 0x74bb */ 0xcc68,
- /* key: 0x74bc */ 0xffff,
- /* key: 0x74bd */ 0x3c25,
- /* key: 0x74be */ 0xffff,
- /* key: 0x74bf */ 0xcc69,
- /* key: 0x74c0 */ 0xffff,
- /* key: 0x74c1 */ 0xffff,
- /* key: 0x74c2 */ 0xffff,
- /* key: 0x74c3 */ 0xffff,
- /* key: 0x74c4 */ 0xffff,
- /* key: 0x74c5 */ 0xffff,
- /* key: 0x74c6 */ 0xffff,
- /* key: 0x74c7 */ 0xffff,
- /* key: 0x74c8 */ 0xcc6a,
- /* key: 0x74c9 */ 0xcc6b,
- /* key: 0x74ca */ 0x607b,
- /* key: 0x74cb */ 0xffff,
- /* key: 0x74cc */ 0xcc6c,
- /* key: 0x74cd */ 0xffff,
- /* key: 0x74ce */ 0xffff,
- /* key: 0x74cf */ 0x607c,
- /* key: 0x74d0 */ 0xcc6d,
- /* key: 0x74d1 */ 0xffff,
- /* key: 0x74d2 */ 0xffff,
- /* key: 0x74d3 */ 0xcc6e,
- /* key: 0x74d4 */ 0x607d,
- /* key: 0x74d5 */ 0xffff,
- /* key: 0x74d6 */ 0xffff,
- /* key: 0x74d7 */ 0xffff,
- /* key: 0x74d8 */ 0xcc6f,
- /* key: 0x74d9 */ 0xffff,
- /* key: 0x74da */ 0xcc70,
- /* key: 0x74db */ 0xcc71,
- /* key: 0x74dc */ 0x313b,
- /* key: 0x74dd */ 0xffff,
- /* key: 0x74de */ 0xcc72,
- /* key: 0x74df */ 0xcc73,
- /* key: 0x74e0 */ 0x6121,
- /* key: 0x74e1 */ 0xffff,
- /* key: 0x74e2 */ 0x493b,
- /* key: 0x74e3 */ 0x6122,
- /* key: 0x74e4 */ 0xcc74,
- /* key: 0x74e5 */ 0xffff,
- /* key: 0x74e6 */ 0x3424,
- /* key: 0x74e7 */ 0x6123,
- /* key: 0x74e8 */ 0xcc75,
- /* key: 0x74e9 */ 0x6124,
- /* key: 0x74ea */ 0xcc76,
- /* key: 0x74eb */ 0xcc77,
- /* key: 0x74ec */ 0xffff,
- /* key: 0x74ed */ 0xffff,
- /* key: 0x74ee */ 0x6125,
- /* key: 0x74ef */ 0xcc78,
- /* key: 0x74f0 */ 0x6127,
- /* key: 0x74f1 */ 0x6128,
- /* key: 0x74f2 */ 0x6126,
- /* key: 0x74f3 */ 0xffff,
- /* key: 0x74f4 */ 0xcc79,
- /* key: 0x74f5 */ 0xffff,
- /* key: 0x74f6 */ 0x4953,
- /* key: 0x74f7 */ 0x612a,
- /* key: 0x74f8 */ 0x6129,
- /* key: 0x74f9 */ 0xffff,
- /* key: 0x74fa */ 0xcc7a,
- /* key: 0x74fb */ 0xcc7b,
- /* key: 0x74fc */ 0xcc7c,
- /* key: 0x74fd */ 0xffff,
- /* key: 0x74fe */ 0xffff,
- /* key: 0x74ff */ 0xcc7d,
- /* branch: 0x750X */ 12240,
- /* branch: 0x751X */ 12256,
- /* branch: 0x752X */ 12272,
- /* branch: 0x753X */ 12288,
- /* branch: 0x754X */ 12304,
- /* branch: 0x755X */ 12320,
- /* branch: 0x756X */ 12336,
- /* branch: 0x757X */ 12352,
- /* branch: 0x758X */ 12368,
- /* branch: 0x759X */ 12384,
- /* branch: 0x75aX */ 12400,
- /* branch: 0x75bX */ 12416,
- /* branch: 0x75cX */ 12432,
- /* branch: 0x75dX */ 12448,
- /* branch: 0x75eX */ 12464,
- /* branch: 0x75fX */ 12480,
- /* key: 0x7500 */ 0xffff,
- /* key: 0x7501 */ 0xffff,
- /* key: 0x7502 */ 0xffff,
- /* key: 0x7503 */ 0x612c,
- /* key: 0x7504 */ 0x612b,
- /* key: 0x7505 */ 0x612d,
- /* key: 0x7506 */ 0xcc7e,
- /* key: 0x7507 */ 0xffff,
- /* key: 0x7508 */ 0xffff,
- /* key: 0x7509 */ 0xffff,
- /* key: 0x750a */ 0xffff,
- /* key: 0x750b */ 0xffff,
- /* key: 0x750c */ 0x612e,
- /* key: 0x750d */ 0x6130,
- /* key: 0x750e */ 0x612f,
- /* key: 0x750f */ 0xffff,
- /* key: 0x7510 */ 0xffff,
- /* key: 0x7511 */ 0x3979,
- /* key: 0x7512 */ 0xcd21,
- /* key: 0x7513 */ 0x6132,
- /* key: 0x7514 */ 0xffff,
- /* key: 0x7515 */ 0x6131,
- /* key: 0x7516 */ 0xcd22,
- /* key: 0x7517 */ 0xcd23,
- /* key: 0x7518 */ 0x3445,
- /* key: 0x7519 */ 0xffff,
- /* key: 0x751a */ 0x3f53,
- /* key: 0x751b */ 0xffff,
- /* key: 0x751c */ 0x453c,
- /* key: 0x751d */ 0xffff,
- /* key: 0x751e */ 0x6133,
- /* key: 0x751f */ 0x4038,
- /* key: 0x7520 */ 0xcd24,
- /* key: 0x7521 */ 0xcd25,
- /* key: 0x7522 */ 0xffff,
- /* key: 0x7523 */ 0x3b3a,
- /* key: 0x7524 */ 0xcd26,
- /* key: 0x7525 */ 0x3179,
- /* key: 0x7526 */ 0x6134,
- /* key: 0x7527 */ 0xcd27,
- /* key: 0x7528 */ 0x4d51,
- /* key: 0x7529 */ 0xcd28,
- /* key: 0x752a */ 0xcd29,
- /* key: 0x752b */ 0x4a63,
- /* key: 0x752c */ 0x6135,
- /* key: 0x752d */ 0xffff,
- /* key: 0x752e */ 0xffff,
- /* key: 0x752f */ 0xcd2a,
- /* key: 0x7530 */ 0x4544,
- /* key: 0x7531 */ 0x4d33,
- /* key: 0x7532 */ 0x3943,
- /* key: 0x7533 */ 0x3f3d,
- /* key: 0x7534 */ 0xffff,
- /* key: 0x7535 */ 0xffff,
- /* key: 0x7536 */ 0xcd2b,
- /* key: 0x7537 */ 0x434b,
- /* key: 0x7538 */ 0x5234,
- /* key: 0x7539 */ 0xcd2c,
- /* key: 0x753a */ 0x442e,
- /* key: 0x753b */ 0x3268,
- /* key: 0x753c */ 0x6136,
- /* key: 0x753d */ 0xcd2d,
- /* key: 0x753e */ 0xcd2e,
- /* key: 0x753f */ 0xcd2f,
- /* key: 0x7540 */ 0xcd30,
- /* key: 0x7541 */ 0xffff,
- /* key: 0x7542 */ 0xffff,
- /* key: 0x7543 */ 0xcd31,
- /* key: 0x7544 */ 0x6137,
- /* key: 0x7545 */ 0xffff,
- /* key: 0x7546 */ 0x613c,
- /* key: 0x7547 */ 0xcd32,
- /* key: 0x7548 */ 0xcd33,
- /* key: 0x7549 */ 0x613a,
- /* key: 0x754a */ 0x6139,
- /* key: 0x754b */ 0x5a42,
- /* key: 0x754c */ 0x3326,
- /* key: 0x754d */ 0x6138,
- /* key: 0x754e */ 0xcd34,
- /* key: 0x754f */ 0x305a,
- /* key: 0x7550 */ 0xcd35,
- /* key: 0x7551 */ 0x482a,
- /* key: 0x7552 */ 0xcd36,
- /* key: 0x7553 */ 0xffff,
- /* key: 0x7554 */ 0x484a,
- /* key: 0x7555 */ 0xffff,
- /* key: 0x7556 */ 0xffff,
- /* key: 0x7557 */ 0xcd37,
- /* key: 0x7558 */ 0xffff,
- /* key: 0x7559 */ 0x4e31,
- /* key: 0x755a */ 0x613d,
- /* key: 0x755b */ 0x613b,
- /* key: 0x755c */ 0x435c,
- /* key: 0x755d */ 0x4026,
- /* key: 0x755e */ 0xcd38,
- /* key: 0x755f */ 0xcd39,
- /* key: 0x7560 */ 0x482b,
- /* key: 0x7561 */ 0xcd3a,
- /* key: 0x7562 */ 0x492d,
- /* key: 0x7563 */ 0xffff,
- /* key: 0x7564 */ 0x613f,
- /* key: 0x7565 */ 0x4e2c,
- /* key: 0x7566 */ 0x374d,
- /* key: 0x7567 */ 0x6140,
- /* key: 0x7568 */ 0xffff,
- /* key: 0x7569 */ 0x613e,
- /* key: 0x756a */ 0x4856,
- /* key: 0x756b */ 0x6141,
- /* key: 0x756c */ 0xffff,
- /* key: 0x756d */ 0x6142,
- /* key: 0x756e */ 0xffff,
- /* key: 0x756f */ 0xcd3b,
- /* key: 0x7570 */ 0x305b,
- /* key: 0x7571 */ 0xcd3c,
- /* key: 0x7572 */ 0xffff,
- /* key: 0x7573 */ 0x3e76,
- /* key: 0x7574 */ 0x6147,
- /* key: 0x7575 */ 0xffff,
- /* key: 0x7576 */ 0x6144,
- /* key: 0x7577 */ 0x466d,
- /* key: 0x7578 */ 0x6143,
- /* key: 0x7579 */ 0xcd3d,
- /* key: 0x757a */ 0xcd3e,
- /* key: 0x757b */ 0xcd3f,
- /* key: 0x757c */ 0xcd40,
- /* key: 0x757d */ 0xcd41,
- /* key: 0x757e */ 0xcd42,
- /* key: 0x757f */ 0x3526,
- /* key: 0x7580 */ 0xffff,
- /* key: 0x7581 */ 0xcd43,
- /* key: 0x7582 */ 0x614a,
- /* key: 0x7583 */ 0xffff,
- /* key: 0x7584 */ 0xffff,
- /* key: 0x7585 */ 0xcd44,
- /* key: 0x7586 */ 0x6145,
- /* key: 0x7587 */ 0x6146,
- /* key: 0x7588 */ 0xffff,
- /* key: 0x7589 */ 0x6149,
- /* key: 0x758a */ 0x6148,
- /* key: 0x758b */ 0x4925,
- /* key: 0x758c */ 0xffff,
- /* key: 0x758d */ 0xffff,
- /* key: 0x758e */ 0x4142,
- /* key: 0x758f */ 0x4141,
- /* key: 0x7590 */ 0xcd45,
- /* key: 0x7591 */ 0x353f,
- /* key: 0x7592 */ 0xcd46,
- /* key: 0x7593 */ 0xcd47,
- /* key: 0x7594 */ 0x614b,
- /* key: 0x7595 */ 0xcd48,
- /* key: 0x7596 */ 0xffff,
- /* key: 0x7597 */ 0xffff,
- /* key: 0x7598 */ 0xffff,
- /* key: 0x7599 */ 0xcd49,
- /* key: 0x759a */ 0x614c,
- /* key: 0x759b */ 0xffff,
- /* key: 0x759c */ 0xcd4a,
- /* key: 0x759d */ 0x614d,
- /* key: 0x759e */ 0xffff,
- /* key: 0x759f */ 0xffff,
- /* key: 0x75a0 */ 0xffff,
- /* key: 0x75a1 */ 0xffff,
- /* key: 0x75a2 */ 0xcd4b,
- /* key: 0x75a3 */ 0x614f,
- /* key: 0x75a4 */ 0xcd4c,
- /* key: 0x75a5 */ 0x614e,
- /* key: 0x75a6 */ 0xffff,
- /* key: 0x75a7 */ 0xffff,
- /* key: 0x75a8 */ 0xffff,
- /* key: 0x75a9 */ 0xffff,
- /* key: 0x75aa */ 0xffff,
- /* key: 0x75ab */ 0x3156,
- /* key: 0x75ac */ 0xffff,
- /* key: 0x75ad */ 0xffff,
- /* key: 0x75ae */ 0xffff,
- /* key: 0x75af */ 0xffff,
- /* key: 0x75b0 */ 0xffff,
- /* key: 0x75b1 */ 0x6157,
- /* key: 0x75b2 */ 0x4868,
- /* key: 0x75b3 */ 0x6151,
- /* key: 0x75b4 */ 0xcd4d,
- /* key: 0x75b5 */ 0x6153,
- /* key: 0x75b6 */ 0xffff,
- /* key: 0x75b7 */ 0xffff,
- /* key: 0x75b8 */ 0x6155,
- /* key: 0x75b9 */ 0x3f3e,
- /* key: 0x75ba */ 0xcd4e,
- /* key: 0x75bb */ 0xffff,
- /* key: 0x75bc */ 0x6156,
- /* key: 0x75bd */ 0x6154,
- /* key: 0x75be */ 0x3c40,
- /* key: 0x75bf */ 0xcd4f,
- /* key: 0x75c0 */ 0xcd50,
- /* key: 0x75c1 */ 0xcd51,
- /* key: 0x75c2 */ 0x6150,
- /* key: 0x75c3 */ 0x6152,
- /* key: 0x75c4 */ 0xcd52,
- /* key: 0x75c5 */ 0x4942,
- /* key: 0x75c6 */ 0xcd53,
- /* key: 0x75c7 */ 0x3e49,
- /* key: 0x75c8 */ 0xffff,
- /* key: 0x75c9 */ 0xffff,
- /* key: 0x75ca */ 0x6159,
- /* key: 0x75cb */ 0xffff,
- /* key: 0x75cc */ 0xcd54,
- /* key: 0x75cd */ 0x6158,
- /* key: 0x75ce */ 0xcd55,
- /* key: 0x75cf */ 0xcd56,
- /* key: 0x75d0 */ 0xffff,
- /* key: 0x75d1 */ 0xffff,
- /* key: 0x75d2 */ 0x615a,
- /* key: 0x75d3 */ 0xffff,
- /* key: 0x75d4 */ 0x3c26,
- /* key: 0x75d5 */ 0x3a2f,
- /* key: 0x75d6 */ 0xffff,
- /* key: 0x75d7 */ 0xcd57,
- /* key: 0x75d8 */ 0x4577,
- /* key: 0x75d9 */ 0x615b,
- /* key: 0x75da */ 0xffff,
- /* key: 0x75db */ 0x444b,
- /* key: 0x75dc */ 0xcd58,
- /* key: 0x75dd */ 0xffff,
- /* key: 0x75de */ 0x615d,
- /* key: 0x75df */ 0xcd59,
- /* key: 0x75e0 */ 0xcd5a,
- /* key: 0x75e1 */ 0xcd5b,
- /* key: 0x75e2 */ 0x4e21,
- /* key: 0x75e3 */ 0x615c,
- /* key: 0x75e4 */ 0xcd5c,
- /* key: 0x75e5 */ 0xffff,
- /* key: 0x75e6 */ 0xffff,
- /* key: 0x75e7 */ 0xcd5d,
- /* key: 0x75e8 */ 0xffff,
- /* key: 0x75e9 */ 0x4169,
- /* key: 0x75ea */ 0xffff,
- /* key: 0x75eb */ 0xffff,
- /* key: 0x75ec */ 0xcd5e,
- /* key: 0x75ed */ 0xffff,
- /* key: 0x75ee */ 0xcd5f,
- /* key: 0x75ef */ 0xcd60,
- /* key: 0x75f0 */ 0x6162,
- /* key: 0x75f1 */ 0xcd61,
- /* key: 0x75f2 */ 0x6164,
- /* key: 0x75f3 */ 0x6165,
- /* key: 0x75f4 */ 0x4354,
- /* key: 0x75f5 */ 0xffff,
- /* key: 0x75f6 */ 0xffff,
- /* key: 0x75f7 */ 0xffff,
- /* key: 0x75f8 */ 0xffff,
- /* key: 0x75f9 */ 0xcd62,
- /* key: 0x75fa */ 0x6163,
- /* key: 0x75fb */ 0xffff,
- /* key: 0x75fc */ 0x6160,
- /* key: 0x75fd */ 0xffff,
- /* key: 0x75fe */ 0x615e,
- /* key: 0x75ff */ 0x615f,
- /* branch: 0x760X */ 12512,
- /* branch: 0x761X */ 12528,
- /* branch: 0x762X */ 12544,
- /* branch: 0x763X */ 12560,
- /* branch: 0x764X */ 12576,
- /* branch: 0x765X */ 12592,
- /* branch: 0x766X */ 12608,
- /* branch: 0x767X */ 12624,
- /* branch: 0x768X */ 12640,
- /* branch: 0x769X */ 12656,
- /* branch: 0x76aX */ 12672,
- /* branch: 0x76bX */ 12688,
- /* branch: 0x76cX */ 12704,
- /* branch: 0x76dX */ 12720,
- /* branch: 0x76eX */ 12736,
- /* branch: 0x76fX */ 12752,
- /* key: 0x7600 */ 0xcd63,
- /* key: 0x7601 */ 0x6161,
- /* key: 0x7602 */ 0xcd64,
- /* key: 0x7603 */ 0xcd65,
- /* key: 0x7604 */ 0xcd66,
- /* key: 0x7605 */ 0xffff,
- /* key: 0x7606 */ 0xffff,
- /* key: 0x7607 */ 0xcd67,
- /* key: 0x7608 */ 0xcd68,
- /* key: 0x7609 */ 0x6168,
- /* key: 0x760a */ 0xcd69,
- /* key: 0x760b */ 0x6166,
- /* key: 0x760c */ 0xcd6a,
- /* key: 0x760d */ 0x6167,
- /* key: 0x760e */ 0xffff,
- /* key: 0x760f */ 0xcd6b,
- /* key: 0x7610 */ 0xffff,
- /* key: 0x7611 */ 0xffff,
- /* key: 0x7612 */ 0xcd6c,
- /* key: 0x7613 */ 0xcd6d,
- /* key: 0x7614 */ 0xffff,
- /* key: 0x7615 */ 0xcd6e,
- /* key: 0x7616 */ 0xcd6f,
- /* key: 0x7617 */ 0xffff,
- /* key: 0x7618 */ 0xffff,
- /* key: 0x7619 */ 0xcd70,
- /* key: 0x761a */ 0xffff,
- /* key: 0x761b */ 0xcd71,
- /* key: 0x761c */ 0xcd72,
- /* key: 0x761d */ 0xcd73,
- /* key: 0x761e */ 0xcd74,
- /* key: 0x761f */ 0x6169,
- /* key: 0x7620 */ 0x616b,
- /* key: 0x7621 */ 0x616c,
- /* key: 0x7622 */ 0x616d,
- /* key: 0x7623 */ 0xcd75,
- /* key: 0x7624 */ 0x616e,
- /* key: 0x7625 */ 0xcd76,
- /* key: 0x7626 */ 0xcd77,
- /* key: 0x7627 */ 0x616a,
- /* key: 0x7628 */ 0xffff,
- /* key: 0x7629 */ 0xcd78,
- /* key: 0x762a */ 0xffff,
- /* key: 0x762b */ 0xffff,
- /* key: 0x762c */ 0xffff,
- /* key: 0x762d */ 0xcd79,
- /* key: 0x762e */ 0xffff,
- /* key: 0x762f */ 0xffff,
- /* key: 0x7630 */ 0x6170,
- /* key: 0x7631 */ 0xffff,
- /* key: 0x7632 */ 0xcd7a,
- /* key: 0x7633 */ 0xcd7b,
- /* key: 0x7634 */ 0x616f,
- /* key: 0x7635 */ 0xcd7c,
- /* key: 0x7636 */ 0xffff,
- /* key: 0x7637 */ 0xffff,
- /* key: 0x7638 */ 0xcd7d,
- /* key: 0x7639 */ 0xcd7e,
- /* key: 0x763a */ 0xce21,
- /* key: 0x763b */ 0x6171,
- /* key: 0x763c */ 0xce22,
- /* key: 0x763d */ 0xffff,
- /* key: 0x763e */ 0xffff,
- /* key: 0x763f */ 0xffff,
- /* key: 0x7640 */ 0xce24,
- /* key: 0x7641 */ 0xce25,
- /* key: 0x7642 */ 0x4e45,
- /* key: 0x7643 */ 0xce26,
- /* key: 0x7644 */ 0xce27,
- /* key: 0x7645 */ 0xce28,
- /* key: 0x7646 */ 0x6174,
- /* key: 0x7647 */ 0x6172,
- /* key: 0x7648 */ 0x6173,
- /* key: 0x7649 */ 0xce29,
- /* key: 0x764a */ 0xce23,
- /* key: 0x764b */ 0xce2a,
- /* key: 0x764c */ 0x3462,
- /* key: 0x764d */ 0xffff,
- /* key: 0x764e */ 0xffff,
- /* key: 0x764f */ 0xffff,
- /* key: 0x7650 */ 0xffff,
- /* key: 0x7651 */ 0xffff,
- /* key: 0x7652 */ 0x4c7e,
- /* key: 0x7653 */ 0xffff,
- /* key: 0x7654 */ 0xffff,
- /* key: 0x7655 */ 0xce2b,
- /* key: 0x7656 */ 0x4a4a,
- /* key: 0x7657 */ 0xffff,
- /* key: 0x7658 */ 0x6176,
- /* key: 0x7659 */ 0xce2c,
- /* key: 0x765a */ 0xffff,
- /* key: 0x765b */ 0xffff,
- /* key: 0x765c */ 0x6175,
- /* key: 0x765d */ 0xffff,
- /* key: 0x765e */ 0xffff,
- /* key: 0x765f */ 0xce2d,
- /* key: 0x7660 */ 0xffff,
- /* key: 0x7661 */ 0x6177,
- /* key: 0x7662 */ 0x6178,
- /* key: 0x7663 */ 0xffff,
- /* key: 0x7664 */ 0xce2e,
- /* key: 0x7665 */ 0xce2f,
- /* key: 0x7666 */ 0xffff,
- /* key: 0x7667 */ 0x617c,
- /* key: 0x7668 */ 0x6179,
- /* key: 0x7669 */ 0x617a,
- /* key: 0x766a */ 0x617b,
- /* key: 0x766b */ 0xffff,
- /* key: 0x766c */ 0x617d,
- /* key: 0x766d */ 0xce30,
- /* key: 0x766e */ 0xce31,
- /* key: 0x766f */ 0xce32,
- /* key: 0x7670 */ 0x617e,
- /* key: 0x7671 */ 0xce33,
- /* key: 0x7672 */ 0x6221,
- /* key: 0x7673 */ 0xffff,
- /* key: 0x7674 */ 0xce34,
- /* key: 0x7675 */ 0xffff,
- /* key: 0x7676 */ 0x6222,
- /* key: 0x7677 */ 0xffff,
- /* key: 0x7678 */ 0x6223,
- /* key: 0x7679 */ 0xffff,
- /* key: 0x767a */ 0x482f,
- /* key: 0x767b */ 0x4550,
- /* key: 0x767c */ 0x6224,
- /* key: 0x767d */ 0x4772,
- /* key: 0x767e */ 0x4934,
- /* key: 0x767f */ 0xffff,
- /* key: 0x7680 */ 0x6225,
- /* key: 0x7681 */ 0xce35,
- /* key: 0x7682 */ 0xffff,
- /* key: 0x7683 */ 0x6226,
- /* key: 0x7684 */ 0x452a,
- /* key: 0x7685 */ 0xce36,
- /* key: 0x7686 */ 0x3327,
- /* key: 0x7687 */ 0x3944,
- /* key: 0x7688 */ 0x6227,
- /* key: 0x7689 */ 0xffff,
- /* key: 0x768a */ 0xffff,
- /* key: 0x768b */ 0x6228,
- /* key: 0x768c */ 0xce37,
- /* key: 0x768d */ 0xce38,
- /* key: 0x768e */ 0x6229,
- /* key: 0x768f */ 0xffff,
- /* key: 0x7690 */ 0x3b29,
- /* key: 0x7691 */ 0xffff,
- /* key: 0x7692 */ 0xffff,
- /* key: 0x7693 */ 0x622b,
- /* key: 0x7694 */ 0xffff,
- /* key: 0x7695 */ 0xce39,
- /* key: 0x7696 */ 0x622a,
- /* key: 0x7697 */ 0xffff,
- /* key: 0x7698 */ 0xffff,
- /* key: 0x7699 */ 0x622c,
- /* key: 0x769a */ 0x622d,
- /* key: 0x769b */ 0xce3a,
- /* key: 0x769c */ 0xce3b,
- /* key: 0x769d */ 0xce3c,
- /* key: 0x769e */ 0xffff,
- /* key: 0x769f */ 0xce3d,
- /* key: 0x76a0 */ 0xce3e,
- /* key: 0x76a1 */ 0xffff,
- /* key: 0x76a2 */ 0xce3f,
- /* key: 0x76a3 */ 0xce40,
- /* key: 0x76a4 */ 0xce41,
- /* key: 0x76a5 */ 0xce42,
- /* key: 0x76a6 */ 0xce43,
- /* key: 0x76a7 */ 0xce44,
- /* key: 0x76a8 */ 0xce45,
- /* key: 0x76a9 */ 0xffff,
- /* key: 0x76aa */ 0xce46,
- /* key: 0x76ab */ 0xffff,
- /* key: 0x76ac */ 0xffff,
- /* key: 0x76ad */ 0xce47,
- /* key: 0x76ae */ 0x4869,
- /* key: 0x76af */ 0xffff,
- /* key: 0x76b0 */ 0x622e,
- /* key: 0x76b1 */ 0xffff,
- /* key: 0x76b2 */ 0xffff,
- /* key: 0x76b3 */ 0xffff,
- /* key: 0x76b4 */ 0x622f,
- /* key: 0x76b5 */ 0xffff,
- /* key: 0x76b6 */ 0xffff,
- /* key: 0x76b7 */ 0x7369,
- /* key: 0x76b8 */ 0x6230,
- /* key: 0x76b9 */ 0x6231,
- /* key: 0x76ba */ 0x6232,
- /* key: 0x76bb */ 0xffff,
- /* key: 0x76bc */ 0xffff,
- /* key: 0x76bd */ 0xce48,
- /* key: 0x76be */ 0xffff,
- /* key: 0x76bf */ 0x3b2e,
- /* key: 0x76c0 */ 0xffff,
- /* key: 0x76c1 */ 0xce49,
- /* key: 0x76c2 */ 0x6233,
- /* key: 0x76c3 */ 0x4756,
- /* key: 0x76c4 */ 0xffff,
- /* key: 0x76c5 */ 0xce4a,
- /* key: 0x76c6 */ 0x4b5f,
- /* key: 0x76c7 */ 0xffff,
- /* key: 0x76c8 */ 0x314e,
- /* key: 0x76c9 */ 0xce4b,
- /* key: 0x76ca */ 0x3157,
- /* key: 0x76cb */ 0xce4c,
- /* key: 0x76cc */ 0xce4d,
- /* key: 0x76cd */ 0x6234,
- /* key: 0x76ce */ 0xce4e,
- /* key: 0x76cf */ 0xffff,
- /* key: 0x76d0 */ 0xffff,
- /* key: 0x76d1 */ 0xffff,
- /* key: 0x76d2 */ 0x6236,
- /* key: 0x76d3 */ 0xffff,
- /* key: 0x76d4 */ 0xce4f,
- /* key: 0x76d5 */ 0xffff,
- /* key: 0x76d6 */ 0x6235,
- /* key: 0x76d7 */ 0x4570,
- /* key: 0x76d8 */ 0xffff,
- /* key: 0x76d9 */ 0xce50,
- /* key: 0x76da */ 0xffff,
- /* key: 0x76db */ 0x4039,
- /* key: 0x76dc */ 0x5d39,
- /* key: 0x76dd */ 0xffff,
- /* key: 0x76de */ 0x6237,
- /* key: 0x76df */ 0x4c41,
- /* key: 0x76e0 */ 0xce51,
- /* key: 0x76e1 */ 0x6238,
- /* key: 0x76e2 */ 0xffff,
- /* key: 0x76e3 */ 0x3446,
- /* key: 0x76e4 */ 0x4857,
- /* key: 0x76e5 */ 0x6239,
- /* key: 0x76e6 */ 0xce52,
- /* key: 0x76e7 */ 0x623a,
- /* key: 0x76e8 */ 0xce53,
- /* key: 0x76e9 */ 0xffff,
- /* key: 0x76ea */ 0x623b,
- /* key: 0x76eb */ 0xffff,
- /* key: 0x76ec */ 0xce54,
- /* key: 0x76ed */ 0xffff,
- /* key: 0x76ee */ 0x4c5c,
- /* key: 0x76ef */ 0xffff,
- /* key: 0x76f0 */ 0xce55,
- /* key: 0x76f1 */ 0xce56,
- /* key: 0x76f2 */ 0x4c55,
- /* key: 0x76f3 */ 0xffff,
- /* key: 0x76f4 */ 0x443e,
- /* key: 0x76f5 */ 0xffff,
- /* key: 0x76f6 */ 0xce57,
- /* key: 0x76f7 */ 0xffff,
- /* key: 0x76f8 */ 0x416a,
- /* key: 0x76f9 */ 0xce58,
- /* key: 0x76fa */ 0xffff,
- /* key: 0x76fb */ 0x623d,
- /* key: 0x76fc */ 0xce59,
- /* key: 0x76fd */ 0xffff,
- /* key: 0x76fe */ 0x3d62,
- /* key: 0x76ff */ 0xffff,
- /* branch: 0x770X */ 12784,
- /* branch: 0x771X */ 12800,
- /* branch: 0x772X */ 12816,
- /* branch: 0x773X */ 12832,
- /* branch: 0x774X */ 12848,
- /* branch: 0x775X */ 12864,
- /* branch: 0x776X */ 12880,
- /* branch: 0x777X */ 12896,
- /* branch: 0x778X */ 12912,
- /* branch: 0x779X */ 12928,
- /* branch: 0x77aX */ 12944,
- /* branch: 0x77bX */ 12960,
- /* branch: 0x77cX */ 12976,
- /* branch: 0x77dX */ 12992,
- /* branch: 0x77eX */ 13008,
- /* branch: 0x77fX */ 13024,
- /* key: 0x7700 */ 0xce5a,
- /* key: 0x7701 */ 0x3e4a,
- /* key: 0x7702 */ 0xffff,
- /* key: 0x7703 */ 0xffff,
- /* key: 0x7704 */ 0x6240,
- /* key: 0x7705 */ 0xffff,
- /* key: 0x7706 */ 0xce5b,
- /* key: 0x7707 */ 0x623f,
- /* key: 0x7708 */ 0x623e,
- /* key: 0x7709 */ 0x487d,
- /* key: 0x770a */ 0xce5c,
- /* key: 0x770b */ 0x3447,
- /* key: 0x770c */ 0x3829,
- /* key: 0x770d */ 0xffff,
- /* key: 0x770e */ 0xce5d,
- /* key: 0x770f */ 0xffff,
- /* key: 0x7710 */ 0xffff,
- /* key: 0x7711 */ 0xffff,
- /* key: 0x7712 */ 0xce5e,
- /* key: 0x7713 */ 0xffff,
- /* key: 0x7714 */ 0xce5f,
- /* key: 0x7715 */ 0xce60,
- /* key: 0x7716 */ 0xffff,
- /* key: 0x7717 */ 0xce61,
- /* key: 0x7718 */ 0xffff,
- /* key: 0x7719 */ 0xce62,
- /* key: 0x771a */ 0xce63,
- /* key: 0x771b */ 0x6246,
- /* key: 0x771c */ 0xce64,
- /* key: 0x771d */ 0xffff,
- /* key: 0x771e */ 0x6243,
- /* key: 0x771f */ 0x3f3f,
- /* key: 0x7720 */ 0x4c32,
- /* key: 0x7721 */ 0xffff,
- /* key: 0x7722 */ 0xce65,
- /* key: 0x7723 */ 0xffff,
- /* key: 0x7724 */ 0x6242,
- /* key: 0x7725 */ 0x6244,
- /* key: 0x7726 */ 0x6245,
- /* key: 0x7727 */ 0xffff,
- /* key: 0x7728 */ 0xce66,
- /* key: 0x7729 */ 0x6241,
- /* key: 0x772a */ 0xffff,
- /* key: 0x772b */ 0xffff,
- /* key: 0x772c */ 0xffff,
- /* key: 0x772d */ 0xce67,
- /* key: 0x772e */ 0xce68,
- /* key: 0x772f */ 0xce69,
- /* key: 0x7730 */ 0xffff,
- /* key: 0x7731 */ 0xffff,
- /* key: 0x7732 */ 0xffff,
- /* key: 0x7733 */ 0xffff,
- /* key: 0x7734 */ 0xce6a,
- /* key: 0x7735 */ 0xce6b,
- /* key: 0x7736 */ 0xce6c,
- /* key: 0x7737 */ 0x6247,
- /* key: 0x7738 */ 0x6248,
- /* key: 0x7739 */ 0xce6d,
- /* key: 0x773a */ 0x442f,
- /* key: 0x773b */ 0xffff,
- /* key: 0x773c */ 0x3463,
- /* key: 0x773d */ 0xce6e,
- /* key: 0x773e */ 0xce6f,
- /* key: 0x773f */ 0xffff,
- /* key: 0x7740 */ 0x4365,
- /* key: 0x7741 */ 0xffff,
- /* key: 0x7742 */ 0xce70,
- /* key: 0x7743 */ 0xffff,
- /* key: 0x7744 */ 0xffff,
- /* key: 0x7745 */ 0xce71,
- /* key: 0x7746 */ 0xce72,
- /* key: 0x7747 */ 0x6249,
- /* key: 0x7748 */ 0xffff,
- /* key: 0x7749 */ 0xffff,
- /* key: 0x774a */ 0xce73,
- /* key: 0x774b */ 0xffff,
- /* key: 0x774c */ 0xffff,
- /* key: 0x774d */ 0xce74,
- /* key: 0x774e */ 0xce75,
- /* key: 0x774f */ 0xce76,
- /* key: 0x7750 */ 0xffff,
- /* key: 0x7751 */ 0xffff,
- /* key: 0x7752 */ 0xce77,
- /* key: 0x7753 */ 0xffff,
- /* key: 0x7754 */ 0xffff,
- /* key: 0x7755 */ 0xffff,
- /* key: 0x7756 */ 0xce78,
- /* key: 0x7757 */ 0xce79,
- /* key: 0x7758 */ 0xffff,
- /* key: 0x7759 */ 0xffff,
- /* key: 0x775a */ 0x624a,
- /* key: 0x775b */ 0x624d,
- /* key: 0x775c */ 0xce7a,
- /* key: 0x775d */ 0xffff,
- /* key: 0x775e */ 0xce7b,
- /* key: 0x775f */ 0xce7c,
- /* key: 0x7760 */ 0xce7d,
- /* key: 0x7761 */ 0x3f67,
- /* key: 0x7762 */ 0xce7e,
- /* key: 0x7763 */ 0x4644,
- /* key: 0x7764 */ 0xcf21,
- /* key: 0x7765 */ 0x624e,
- /* key: 0x7766 */ 0x4b53,
- /* key: 0x7767 */ 0xcf22,
- /* key: 0x7768 */ 0x624b,
- /* key: 0x7769 */ 0xffff,
- /* key: 0x776a */ 0xcf23,
- /* key: 0x776b */ 0x624c,
- /* key: 0x776c */ 0xcf24,
- /* key: 0x776d */ 0xffff,
- /* key: 0x776e */ 0xffff,
- /* key: 0x776f */ 0xffff,
- /* key: 0x7770 */ 0xcf25,
- /* key: 0x7771 */ 0xffff,
- /* key: 0x7772 */ 0xcf26,
- /* key: 0x7773 */ 0xcf27,
- /* key: 0x7774 */ 0xcf28,
- /* key: 0x7775 */ 0xffff,
- /* key: 0x7776 */ 0xffff,
- /* key: 0x7777 */ 0xffff,
- /* key: 0x7778 */ 0xffff,
- /* key: 0x7779 */ 0x6251,
- /* key: 0x777a */ 0xcf29,
- /* key: 0x777b */ 0xffff,
- /* key: 0x777c */ 0xffff,
- /* key: 0x777d */ 0xcf2a,
- /* key: 0x777e */ 0x6250,
- /* key: 0x777f */ 0x624f,
- /* key: 0x7780 */ 0xcf2b,
- /* key: 0x7781 */ 0xffff,
- /* key: 0x7782 */ 0xffff,
- /* key: 0x7783 */ 0xffff,
- /* key: 0x7784 */ 0xcf2c,
- /* key: 0x7785 */ 0xffff,
- /* key: 0x7786 */ 0xffff,
- /* key: 0x7787 */ 0xffff,
- /* key: 0x7788 */ 0xffff,
- /* key: 0x7789 */ 0xffff,
- /* key: 0x778a */ 0xffff,
- /* key: 0x778b */ 0x6253,
- /* key: 0x778c */ 0xcf2d,
- /* key: 0x778d */ 0xcf2e,
- /* key: 0x778e */ 0x6252,
- /* key: 0x778f */ 0xffff,
- /* key: 0x7790 */ 0xffff,
- /* key: 0x7791 */ 0x6254,
- /* key: 0x7792 */ 0xffff,
- /* key: 0x7793 */ 0xffff,
- /* key: 0x7794 */ 0xcf2f,
- /* key: 0x7795 */ 0xcf30,
- /* key: 0x7796 */ 0xcf31,
- /* key: 0x7797 */ 0xffff,
- /* key: 0x7798 */ 0xffff,
- /* key: 0x7799 */ 0xffff,
- /* key: 0x779a */ 0xcf32,
- /* key: 0x779b */ 0xffff,
- /* key: 0x779c */ 0xffff,
- /* key: 0x779d */ 0xffff,
- /* key: 0x779e */ 0x6256,
- /* key: 0x779f */ 0xcf33,
- /* key: 0x77a0 */ 0x6255,
- /* key: 0x77a1 */ 0xffff,
- /* key: 0x77a2 */ 0xcf34,
- /* key: 0x77a3 */ 0xffff,
- /* key: 0x77a4 */ 0xffff,
- /* key: 0x77a5 */ 0x4a4d,
- /* key: 0x77a6 */ 0xffff,
- /* key: 0x77a7 */ 0xcf35,
- /* key: 0x77a8 */ 0xffff,
- /* key: 0x77a9 */ 0xffff,
- /* key: 0x77aa */ 0xcf36,
- /* key: 0x77ab */ 0xffff,
- /* key: 0x77ac */ 0x3d56,
- /* key: 0x77ad */ 0x4e46,
- /* key: 0x77ae */ 0xcf37,
- /* key: 0x77af */ 0xcf38,
- /* key: 0x77b0 */ 0x6257,
- /* key: 0x77b1 */ 0xcf39,
- /* key: 0x77b2 */ 0xffff,
- /* key: 0x77b3 */ 0x4637,
- /* key: 0x77b4 */ 0xffff,
- /* key: 0x77b5 */ 0xcf3a,
- /* key: 0x77b6 */ 0x6258,
- /* key: 0x77b7 */ 0xffff,
- /* key: 0x77b8 */ 0xffff,
- /* key: 0x77b9 */ 0x6259,
- /* key: 0x77ba */ 0xffff,
- /* key: 0x77bb */ 0x625d,
- /* key: 0x77bc */ 0x625b,
- /* key: 0x77bd */ 0x625c,
- /* key: 0x77be */ 0xcf3b,
- /* key: 0x77bf */ 0x625a,
- /* key: 0x77c0 */ 0xffff,
- /* key: 0x77c1 */ 0xffff,
- /* key: 0x77c2 */ 0xffff,
- /* key: 0x77c3 */ 0xcf3c,
- /* key: 0x77c4 */ 0xffff,
- /* key: 0x77c5 */ 0xffff,
- /* key: 0x77c6 */ 0xffff,
- /* key: 0x77c7 */ 0x625e,
- /* key: 0x77c8 */ 0xffff,
- /* key: 0x77c9 */ 0xcf3d,
- /* key: 0x77ca */ 0xffff,
- /* key: 0x77cb */ 0xffff,
- /* key: 0x77cc */ 0xffff,
- /* key: 0x77cd */ 0x625f,
- /* key: 0x77ce */ 0xffff,
- /* key: 0x77cf */ 0xffff,
- /* key: 0x77d0 */ 0xffff,
- /* key: 0x77d1 */ 0xcf3e,
- /* key: 0x77d2 */ 0xcf3f,
- /* key: 0x77d3 */ 0xffff,
- /* key: 0x77d4 */ 0xffff,
- /* key: 0x77d5 */ 0xcf40,
- /* key: 0x77d6 */ 0xffff,
- /* key: 0x77d7 */ 0x6260,
- /* key: 0x77d8 */ 0xffff,
- /* key: 0x77d9 */ 0xcf41,
- /* key: 0x77da */ 0x6261,
- /* key: 0x77db */ 0x4c37,
- /* key: 0x77dc */ 0x6262,
- /* key: 0x77dd */ 0xffff,
- /* key: 0x77de */ 0xcf42,
- /* key: 0x77df */ 0xcf43,
- /* key: 0x77e0 */ 0xcf44,
- /* key: 0x77e1 */ 0xffff,
- /* key: 0x77e2 */ 0x4c70,
- /* key: 0x77e3 */ 0x6263,
- /* key: 0x77e4 */ 0xcf45,
- /* key: 0x77e5 */ 0x434e,
- /* key: 0x77e6 */ 0xcf46,
- /* key: 0x77e7 */ 0x476a,
- /* key: 0x77e8 */ 0xffff,
- /* key: 0x77e9 */ 0x366b,
- /* key: 0x77ea */ 0xcf47,
- /* key: 0x77eb */ 0xffff,
- /* key: 0x77ec */ 0xcf48,
- /* key: 0x77ed */ 0x433b,
- /* key: 0x77ee */ 0x6264,
- /* key: 0x77ef */ 0x363a,
- /* key: 0x77f0 */ 0xcf49,
- /* key: 0x77f1 */ 0xcf4a,
- /* key: 0x77f2 */ 0xffff,
- /* key: 0x77f3 */ 0x4050,
- /* key: 0x77f4 */ 0xcf4b,
- /* key: 0x77f5 */ 0xffff,
- /* key: 0x77f6 */ 0xffff,
- /* key: 0x77f7 */ 0xffff,
- /* key: 0x77f8 */ 0xcf4c,
- /* key: 0x77f9 */ 0xffff,
- /* key: 0x77fa */ 0xffff,
- /* key: 0x77fb */ 0xcf4d,
- /* key: 0x77fc */ 0x6265,
- /* key: 0x77fd */ 0xffff,
- /* key: 0x77fe */ 0xffff,
- /* key: 0x77ff */ 0xffff,
- /* branch: 0x780X */ 13056,
- /* branch: 0x781X */ 13072,
- /* branch: 0x782X */ 13088,
- /* branch: 0x783X */ 13104,
- /* branch: 0x784X */ 13120,
- /* branch: 0x785X */ 13136,
- /* branch: 0x786X */ 13152,
- /* branch: 0x787X */ 13168,
- /* branch: 0x788X */ 13184,
- /* branch: 0x789X */ 13200,
- /* branch: 0x78aX */ 13216,
- /* branch: 0x78bX */ 13232,
- /* branch: 0x78cX */ 13248,
- /* branch: 0x78dX */ 13264,
- /* branch: 0x78eX */ 13280,
- /* branch: 0x78fX */ 13296,
- /* key: 0x7800 */ 0xffff,
- /* key: 0x7801 */ 0xffff,
- /* key: 0x7802 */ 0x3a3d,
- /* key: 0x7803 */ 0xffff,
- /* key: 0x7804 */ 0xffff,
- /* key: 0x7805 */ 0xcf4e,
- /* key: 0x7806 */ 0xcf4f,
- /* key: 0x7807 */ 0xffff,
- /* key: 0x7808 */ 0xffff,
- /* key: 0x7809 */ 0xcf50,
- /* key: 0x780a */ 0xffff,
- /* key: 0x780b */ 0xffff,
- /* key: 0x780c */ 0x6266,
- /* key: 0x780d */ 0xcf51,
- /* key: 0x780e */ 0xcf52,
- /* key: 0x780f */ 0xffff,
- /* key: 0x7810 */ 0xffff,
- /* key: 0x7811 */ 0xcf53,
- /* key: 0x7812 */ 0x6267,
- /* key: 0x7813 */ 0xffff,
- /* key: 0x7814 */ 0x3826,
- /* key: 0x7815 */ 0x3a55,
- /* key: 0x7816 */ 0xffff,
- /* key: 0x7817 */ 0xffff,
- /* key: 0x7818 */ 0xffff,
- /* key: 0x7819 */ 0xffff,
- /* key: 0x781a */ 0xffff,
- /* key: 0x781b */ 0xffff,
- /* key: 0x781c */ 0xffff,
- /* key: 0x781d */ 0xcf54,
- /* key: 0x781e */ 0xffff,
- /* key: 0x781f */ 0xffff,
- /* key: 0x7820 */ 0x6269,
- /* key: 0x7821 */ 0xcf55,
- /* key: 0x7822 */ 0xcf56,
- /* key: 0x7823 */ 0xcf57,
- /* key: 0x7824 */ 0xffff,
- /* key: 0x7825 */ 0x4556,
- /* key: 0x7826 */ 0x3a56,
- /* key: 0x7827 */ 0x354e,
- /* key: 0x7828 */ 0xffff,
- /* key: 0x7829 */ 0xffff,
- /* key: 0x782a */ 0xffff,
- /* key: 0x782b */ 0xffff,
- /* key: 0x782c */ 0xffff,
- /* key: 0x782d */ 0xcf58,
- /* key: 0x782e */ 0xcf59,
- /* key: 0x782f */ 0xffff,
- /* key: 0x7830 */ 0xcf5a,
- /* key: 0x7831 */ 0xffff,
- /* key: 0x7832 */ 0x4b24,
- /* key: 0x7833 */ 0xffff,
- /* key: 0x7834 */ 0x474b,
- /* key: 0x7835 */ 0xcf5b,
- /* key: 0x7836 */ 0xffff,
- /* key: 0x7837 */ 0xcf5c,
- /* key: 0x7838 */ 0xffff,
- /* key: 0x7839 */ 0xffff,
- /* key: 0x783a */ 0x4557,
- /* key: 0x783b */ 0xffff,
- /* key: 0x783c */ 0xffff,
- /* key: 0x783d */ 0xffff,
- /* key: 0x783e */ 0xffff,
- /* key: 0x783f */ 0x395c,
- /* key: 0x7840 */ 0xffff,
- /* key: 0x7841 */ 0xffff,
- /* key: 0x7842 */ 0xffff,
- /* key: 0x7843 */ 0xcf5d,
- /* key: 0x7844 */ 0xcf5e,
- /* key: 0x7845 */ 0x626b,
- /* key: 0x7846 */ 0xffff,
- /* key: 0x7847 */ 0xcf5f,
- /* key: 0x7848 */ 0xcf60,
- /* key: 0x7849 */ 0xffff,
- /* key: 0x784a */ 0xffff,
- /* key: 0x784b */ 0xffff,
- /* key: 0x784c */ 0xcf61,
- /* key: 0x784d */ 0xffff,
- /* key: 0x784e */ 0xcf62,
- /* key: 0x784f */ 0xffff,
- /* key: 0x7850 */ 0xffff,
- /* key: 0x7851 */ 0xffff,
- /* key: 0x7852 */ 0xcf63,
- /* key: 0x7853 */ 0xffff,
- /* key: 0x7854 */ 0xffff,
- /* key: 0x7855 */ 0xffff,
- /* key: 0x7856 */ 0xffff,
- /* key: 0x7857 */ 0xffff,
- /* key: 0x7858 */ 0xffff,
- /* key: 0x7859 */ 0xffff,
- /* key: 0x785a */ 0xffff,
- /* key: 0x785b */ 0xffff,
- /* key: 0x785c */ 0xcf64,
- /* key: 0x785d */ 0x3e4b,
- /* key: 0x785e */ 0xcf65,
- /* key: 0x785f */ 0xffff,
- /* key: 0x7860 */ 0xcf66,
- /* key: 0x7861 */ 0xcf67,
- /* key: 0x7862 */ 0xffff,
- /* key: 0x7863 */ 0xcf68,
- /* key: 0x7864 */ 0xcf69,
- /* key: 0x7865 */ 0xffff,
- /* key: 0x7866 */ 0xffff,
- /* key: 0x7867 */ 0xffff,
- /* key: 0x7868 */ 0xcf6a,
- /* key: 0x7869 */ 0xffff,
- /* key: 0x786a */ 0xcf6b,
- /* key: 0x786b */ 0x4e32,
- /* key: 0x786c */ 0x3945,
- /* key: 0x786d */ 0xffff,
- /* key: 0x786e */ 0xcf6c,
- /* key: 0x786f */ 0x3827,
- /* key: 0x7870 */ 0xffff,
- /* key: 0x7871 */ 0xffff,
- /* key: 0x7872 */ 0x4823,
- /* key: 0x7873 */ 0xffff,
- /* key: 0x7874 */ 0x626d,
- /* key: 0x7875 */ 0xffff,
- /* key: 0x7876 */ 0xffff,
- /* key: 0x7877 */ 0xffff,
- /* key: 0x7878 */ 0xffff,
- /* key: 0x7879 */ 0xffff,
- /* key: 0x787a */ 0xcf6d,
- /* key: 0x787b */ 0xffff,
- /* key: 0x787c */ 0x626f,
- /* key: 0x787d */ 0xffff,
- /* key: 0x787e */ 0xcf6e,
- /* key: 0x787f */ 0xffff,
- /* key: 0x7880 */ 0xffff,
- /* key: 0x7881 */ 0x386b,
- /* key: 0x7882 */ 0xffff,
- /* key: 0x7883 */ 0xffff,
- /* key: 0x7884 */ 0xffff,
- /* key: 0x7885 */ 0xffff,
- /* key: 0x7886 */ 0x626e,
- /* key: 0x7887 */ 0x4476,
- /* key: 0x7888 */ 0xffff,
- /* key: 0x7889 */ 0xffff,
- /* key: 0x788a */ 0xcf6f,
- /* key: 0x788b */ 0xffff,
- /* key: 0x788c */ 0x6271,
- /* key: 0x788d */ 0x3337,
- /* key: 0x788e */ 0x626c,
- /* key: 0x788f */ 0xcf70,
- /* key: 0x7890 */ 0xffff,
- /* key: 0x7891 */ 0x486a,
- /* key: 0x7892 */ 0xffff,
- /* key: 0x7893 */ 0x3130,
- /* key: 0x7894 */ 0xcf71,
- /* key: 0x7895 */ 0x3a6c,
- /* key: 0x7896 */ 0xffff,
- /* key: 0x7897 */ 0x4f52,
- /* key: 0x7898 */ 0xcf72,
- /* key: 0x7899 */ 0xffff,
- /* key: 0x789a */ 0x6270,
- /* key: 0x789b */ 0xffff,
- /* key: 0x789c */ 0xffff,
- /* key: 0x789d */ 0xcf74,
- /* key: 0x789e */ 0xcf75,
- /* key: 0x789f */ 0xcf76,
- /* key: 0x78a0 */ 0xffff,
- /* key: 0x78a1 */ 0xcf73,
- /* key: 0x78a2 */ 0xffff,
- /* key: 0x78a3 */ 0x6272,
- /* key: 0x78a4 */ 0xcf77,
- /* key: 0x78a5 */ 0xffff,
- /* key: 0x78a6 */ 0xffff,
- /* key: 0x78a7 */ 0x4a4b,
- /* key: 0x78a8 */ 0xcf78,
- /* key: 0x78a9 */ 0x4059,
- /* key: 0x78aa */ 0x6274,
- /* key: 0x78ab */ 0xffff,
- /* key: 0x78ac */ 0xcf79,
- /* key: 0x78ad */ 0xcf7a,
- /* key: 0x78ae */ 0xffff,
- /* key: 0x78af */ 0x6275,
- /* key: 0x78b0 */ 0xcf7b,
- /* key: 0x78b1 */ 0xcf7c,
- /* key: 0x78b2 */ 0xcf7d,
- /* key: 0x78b3 */ 0xcf7e,
- /* key: 0x78b4 */ 0xffff,
- /* key: 0x78b5 */ 0x6273,
- /* key: 0x78b6 */ 0xffff,
- /* key: 0x78b7 */ 0xffff,
- /* key: 0x78b8 */ 0xffff,
- /* key: 0x78b9 */ 0xffff,
- /* key: 0x78ba */ 0x334e,
- /* key: 0x78bb */ 0xd021,
- /* key: 0x78bc */ 0x627b,
- /* key: 0x78bd */ 0xd022,
- /* key: 0x78be */ 0x627a,
- /* key: 0x78bf */ 0xd023,
- /* key: 0x78c0 */ 0xffff,
- /* key: 0x78c1 */ 0x3c27,
- /* key: 0x78c2 */ 0xffff,
- /* key: 0x78c3 */ 0xffff,
- /* key: 0x78c4 */ 0xffff,
- /* key: 0x78c5 */ 0x627c,
- /* key: 0x78c6 */ 0x6277,
- /* key: 0x78c7 */ 0xd024,
- /* key: 0x78c8 */ 0xd025,
- /* key: 0x78c9 */ 0xd026,
- /* key: 0x78ca */ 0x627d,
- /* key: 0x78cb */ 0x6278,
- /* key: 0x78cc */ 0xd027,
- /* key: 0x78cd */ 0xffff,
- /* key: 0x78ce */ 0xd028,
- /* key: 0x78cf */ 0xffff,
- /* key: 0x78d0 */ 0x4858,
- /* key: 0x78d1 */ 0x6276,
- /* key: 0x78d2 */ 0xd029,
- /* key: 0x78d3 */ 0xd02a,
- /* key: 0x78d4 */ 0x6279,
- /* key: 0x78d5 */ 0xd02b,
- /* key: 0x78d6 */ 0xd02c,
- /* key: 0x78d7 */ 0xffff,
- /* key: 0x78d8 */ 0xffff,
- /* key: 0x78d9 */ 0xffff,
- /* key: 0x78da */ 0x6322,
- /* key: 0x78db */ 0xd02e,
- /* key: 0x78dc */ 0xffff,
- /* key: 0x78dd */ 0xffff,
- /* key: 0x78de */ 0xffff,
- /* key: 0x78df */ 0xd02f,
- /* key: 0x78e0 */ 0xd030,
- /* key: 0x78e1 */ 0xd031,
- /* key: 0x78e2 */ 0xffff,
- /* key: 0x78e3 */ 0xffff,
- /* key: 0x78e4 */ 0xd02d,
- /* key: 0x78e5 */ 0xffff,
- /* key: 0x78e6 */ 0xd032,
- /* key: 0x78e7 */ 0x6321,
- /* key: 0x78e8 */ 0x4b61,
- /* key: 0x78e9 */ 0xffff,
- /* key: 0x78ea */ 0xd033,
- /* key: 0x78eb */ 0xffff,
- /* key: 0x78ec */ 0x627e,
- /* key: 0x78ed */ 0xffff,
- /* key: 0x78ee */ 0xffff,
- /* key: 0x78ef */ 0x306b,
- /* key: 0x78f0 */ 0xffff,
- /* key: 0x78f1 */ 0xffff,
- /* key: 0x78f2 */ 0xd034,
- /* key: 0x78f3 */ 0xd035,
- /* key: 0x78f4 */ 0x6324,
- /* key: 0x78f5 */ 0xffff,
- /* key: 0x78f6 */ 0xd037,
- /* key: 0x78f7 */ 0xd038,
- /* key: 0x78f8 */ 0xffff,
- /* key: 0x78f9 */ 0xffff,
- /* key: 0x78fa */ 0xd039,
- /* key: 0x78fb */ 0xd03a,
- /* key: 0x78fc */ 0xffff,
- /* key: 0x78fd */ 0x6323,
- /* key: 0x78fe */ 0xffff,
- /* key: 0x78ff */ 0xd03b,
- /* branch: 0x790X */ 13328,
- /* branch: 0x791X */ 13344,
- /* branch: 0x792X */ 13360,
- /* branch: 0x793X */ 13376,
- /* branch: 0x794X */ 13392,
- /* branch: 0x795X */ 13408,
- /* branch: 0x796X */ 13424,
- /* branch: 0x797X */ 13440,
- /* branch: 0x798X */ 13456,
- /* branch: 0x799X */ 13472,
- /* branch: 0x79aX */ 13488,
- /* branch: 0x79bX */ 13504,
- /* branch: 0x79cX */ 13520,
- /* branch: 0x79dX */ 13536,
- /* branch: 0x79eX */ 13552,
- /* branch: 0x79fX */ 13568,
- /* key: 0x7900 */ 0xd036,
- /* key: 0x7901 */ 0x3e4c,
- /* key: 0x7902 */ 0xffff,
- /* key: 0x7903 */ 0xffff,
- /* key: 0x7904 */ 0xffff,
- /* key: 0x7905 */ 0xffff,
- /* key: 0x7906 */ 0xd03c,
- /* key: 0x7907 */ 0x6325,
- /* key: 0x7908 */ 0xffff,
- /* key: 0x7909 */ 0xffff,
- /* key: 0x790a */ 0xffff,
- /* key: 0x790b */ 0xffff,
- /* key: 0x790c */ 0xd03d,
- /* key: 0x790d */ 0xffff,
- /* key: 0x790e */ 0x4143,
- /* key: 0x790f */ 0xffff,
- /* key: 0x7910 */ 0xd03e,
- /* key: 0x7911 */ 0x6327,
- /* key: 0x7912 */ 0x6326,
- /* key: 0x7913 */ 0xffff,
- /* key: 0x7914 */ 0xffff,
- /* key: 0x7915 */ 0xffff,
- /* key: 0x7916 */ 0xffff,
- /* key: 0x7917 */ 0xffff,
- /* key: 0x7918 */ 0xffff,
- /* key: 0x7919 */ 0x6328,
- /* key: 0x791a */ 0xd03f,
- /* key: 0x791b */ 0xffff,
- /* key: 0x791c */ 0xd040,
- /* key: 0x791d */ 0xffff,
- /* key: 0x791e */ 0xd041,
- /* key: 0x791f */ 0xd042,
- /* key: 0x7920 */ 0xd043,
- /* key: 0x7921 */ 0xffff,
- /* key: 0x7922 */ 0xffff,
- /* key: 0x7923 */ 0xffff,
- /* key: 0x7924 */ 0xffff,
- /* key: 0x7925 */ 0xd044,
- /* key: 0x7926 */ 0x6268,
- /* key: 0x7927 */ 0xd045,
- /* key: 0x7928 */ 0xffff,
- /* key: 0x7929 */ 0xd046,
- /* key: 0x792a */ 0x626a,
- /* key: 0x792b */ 0x632a,
- /* key: 0x792c */ 0x6329,
- /* key: 0x792d */ 0xd047,
- /* key: 0x792e */ 0xffff,
- /* key: 0x792f */ 0xffff,
- /* key: 0x7930 */ 0xffff,
- /* key: 0x7931 */ 0xd048,
- /* key: 0x7932 */ 0xffff,
- /* key: 0x7933 */ 0xffff,
- /* key: 0x7934 */ 0xd049,
- /* key: 0x7935 */ 0xd04a,
- /* key: 0x7936 */ 0xffff,
- /* key: 0x7937 */ 0xffff,
- /* key: 0x7938 */ 0xffff,
- /* key: 0x7939 */ 0xffff,
- /* key: 0x793a */ 0x3c28,
- /* key: 0x793b */ 0xd04b,
- /* key: 0x793c */ 0x4e69,
- /* key: 0x793d */ 0xd04c,
- /* key: 0x793e */ 0x3c52,
- /* key: 0x793f */ 0xd04d,
- /* key: 0x7940 */ 0x632b,
- /* key: 0x7941 */ 0x3737,
- /* key: 0x7942 */ 0xffff,
- /* key: 0x7943 */ 0xffff,
- /* key: 0x7944 */ 0xd04e,
- /* key: 0x7945 */ 0xd04f,
- /* key: 0x7946 */ 0xd050,
- /* key: 0x7947 */ 0x3540,
- /* key: 0x7948 */ 0x3527,
- /* key: 0x7949 */ 0x3b63,
- /* key: 0x794a */ 0xd051,
- /* key: 0x794b */ 0xd052,
- /* key: 0x794c */ 0xffff,
- /* key: 0x794d */ 0xffff,
- /* key: 0x794e */ 0xffff,
- /* key: 0x794f */ 0xd053,
- /* key: 0x7950 */ 0x4d34,
- /* key: 0x7951 */ 0xd054,
- /* key: 0x7952 */ 0xffff,
- /* key: 0x7953 */ 0x6331,
- /* key: 0x7954 */ 0xd055,
- /* key: 0x7955 */ 0x6330,
- /* key: 0x7956 */ 0x4144,
- /* key: 0x7957 */ 0x632d,
- /* key: 0x7958 */ 0xd056,
- /* key: 0x7959 */ 0xffff,
- /* key: 0x795a */ 0x632f,
- /* key: 0x795b */ 0xd057,
- /* key: 0x795c */ 0xd058,
- /* key: 0x795d */ 0x3d4b,
- /* key: 0x795e */ 0x3f40,
- /* key: 0x795f */ 0x632e,
- /* key: 0x7960 */ 0x632c,
- /* key: 0x7961 */ 0xffff,
- /* key: 0x7962 */ 0x472a,
- /* key: 0x7963 */ 0xffff,
- /* key: 0x7964 */ 0xffff,
- /* key: 0x7965 */ 0x3e4d,
- /* key: 0x7966 */ 0xffff,
- /* key: 0x7967 */ 0xd059,
- /* key: 0x7968 */ 0x493c,
- /* key: 0x7969 */ 0xd05a,
- /* key: 0x796a */ 0xffff,
- /* key: 0x796b */ 0xd05b,
- /* key: 0x796c */ 0xffff,
- /* key: 0x796d */ 0x3a57,
- /* key: 0x796e */ 0xffff,
- /* key: 0x796f */ 0xffff,
- /* key: 0x7970 */ 0xffff,
- /* key: 0x7971 */ 0xffff,
- /* key: 0x7972 */ 0xd05c,
- /* key: 0x7973 */ 0xffff,
- /* key: 0x7974 */ 0xffff,
- /* key: 0x7975 */ 0xffff,
- /* key: 0x7976 */ 0xffff,
- /* key: 0x7977 */ 0x4578,
- /* key: 0x7978 */ 0xffff,
- /* key: 0x7979 */ 0xd05d,
- /* key: 0x797a */ 0x6332,
- /* key: 0x797b */ 0xd05e,
- /* key: 0x797c */ 0xd05f,
- /* key: 0x797d */ 0xffff,
- /* key: 0x797e */ 0xd060,
- /* key: 0x797f */ 0x6333,
- /* key: 0x7980 */ 0x6349,
- /* key: 0x7981 */ 0x3658,
- /* key: 0x7982 */ 0xffff,
- /* key: 0x7983 */ 0xffff,
- /* key: 0x7984 */ 0x4f3d,
- /* key: 0x7985 */ 0x4135,
- /* key: 0x7986 */ 0xffff,
- /* key: 0x7987 */ 0xffff,
- /* key: 0x7988 */ 0xffff,
- /* key: 0x7989 */ 0xffff,
- /* key: 0x798a */ 0x6334,
- /* key: 0x798b */ 0xd061,
- /* key: 0x798c */ 0xd062,
- /* key: 0x798d */ 0x3252,
- /* key: 0x798e */ 0x4477,
- /* key: 0x798f */ 0x4a21,
- /* key: 0x7990 */ 0xffff,
- /* key: 0x7991 */ 0xd063,
- /* key: 0x7992 */ 0xffff,
- /* key: 0x7993 */ 0xd064,
- /* key: 0x7994 */ 0xd065,
- /* key: 0x7995 */ 0xd066,
- /* key: 0x7996 */ 0xd067,
- /* key: 0x7997 */ 0xffff,
- /* key: 0x7998 */ 0xd068,
- /* key: 0x7999 */ 0xffff,
- /* key: 0x799a */ 0xffff,
- /* key: 0x799b */ 0xd069,
- /* key: 0x799c */ 0xd06a,
- /* key: 0x799d */ 0x6335,
- /* key: 0x799e */ 0xffff,
- /* key: 0x799f */ 0xffff,
- /* key: 0x79a0 */ 0xffff,
- /* key: 0x79a1 */ 0xd06b,
- /* key: 0x79a2 */ 0xffff,
- /* key: 0x79a3 */ 0xffff,
- /* key: 0x79a4 */ 0xffff,
- /* key: 0x79a5 */ 0xffff,
- /* key: 0x79a6 */ 0x357a,
- /* key: 0x79a7 */ 0x6336,
- /* key: 0x79a8 */ 0xd06c,
- /* key: 0x79a9 */ 0xd06d,
- /* key: 0x79aa */ 0x6338,
- /* key: 0x79ab */ 0xd06e,
- /* key: 0x79ac */ 0xffff,
- /* key: 0x79ad */ 0xffff,
- /* key: 0x79ae */ 0x6339,
- /* key: 0x79af */ 0xd06f,
- /* key: 0x79b0 */ 0x4729,
- /* key: 0x79b1 */ 0xd070,
- /* key: 0x79b2 */ 0xffff,
- /* key: 0x79b3 */ 0x633a,
- /* key: 0x79b4 */ 0xd071,
- /* key: 0x79b5 */ 0xffff,
- /* key: 0x79b6 */ 0xffff,
- /* key: 0x79b7 */ 0xffff,
- /* key: 0x79b8 */ 0xd072,
- /* key: 0x79b9 */ 0x633b,
- /* key: 0x79ba */ 0x633c,
- /* key: 0x79bb */ 0xd073,
- /* key: 0x79bc */ 0xffff,
- /* key: 0x79bd */ 0x3659,
- /* key: 0x79be */ 0x3253,
- /* key: 0x79bf */ 0x4645,
- /* key: 0x79c0 */ 0x3d28,
- /* key: 0x79c1 */ 0x3b64,
- /* key: 0x79c2 */ 0xd074,
- /* key: 0x79c3 */ 0xffff,
- /* key: 0x79c4 */ 0xd075,
- /* key: 0x79c5 */ 0xffff,
- /* key: 0x79c6 */ 0xffff,
- /* key: 0x79c7 */ 0xd076,
- /* key: 0x79c8 */ 0xd077,
- /* key: 0x79c9 */ 0x633d,
- /* key: 0x79ca */ 0xd078,
- /* key: 0x79cb */ 0x3d29,
- /* key: 0x79cc */ 0xffff,
- /* key: 0x79cd */ 0xffff,
- /* key: 0x79ce */ 0xffff,
- /* key: 0x79cf */ 0xd079,
- /* key: 0x79d0 */ 0xffff,
- /* key: 0x79d1 */ 0x324a,
- /* key: 0x79d2 */ 0x4943,
- /* key: 0x79d3 */ 0xffff,
- /* key: 0x79d4 */ 0xd07a,
- /* key: 0x79d5 */ 0x633e,
- /* key: 0x79d6 */ 0xd07b,
- /* key: 0x79d7 */ 0xffff,
- /* key: 0x79d8 */ 0x486b,
- /* key: 0x79d9 */ 0xffff,
- /* key: 0x79da */ 0xd07c,
- /* key: 0x79db */ 0xffff,
- /* key: 0x79dc */ 0xffff,
- /* key: 0x79dd */ 0xd07d,
- /* key: 0x79de */ 0xd07e,
- /* key: 0x79df */ 0x4145,
- /* key: 0x79e0 */ 0xd121,
- /* key: 0x79e1 */ 0x6341,
- /* key: 0x79e2 */ 0xd122,
- /* key: 0x79e3 */ 0x6342,
- /* key: 0x79e4 */ 0x4769,
- /* key: 0x79e5 */ 0xd123,
- /* key: 0x79e6 */ 0x3f41,
- /* key: 0x79e7 */ 0x633f,
- /* key: 0x79e8 */ 0xffff,
- /* key: 0x79e9 */ 0x4361,
- /* key: 0x79ea */ 0xd124,
- /* key: 0x79eb */ 0xd125,
- /* key: 0x79ec */ 0x6340,
- /* key: 0x79ed */ 0xd126,
- /* key: 0x79ee */ 0xffff,
- /* key: 0x79ef */ 0xffff,
- /* key: 0x79f0 */ 0x3e4e,
- /* key: 0x79f1 */ 0xd127,
- /* key: 0x79f2 */ 0xffff,
- /* key: 0x79f3 */ 0xffff,
- /* key: 0x79f4 */ 0xffff,
- /* key: 0x79f5 */ 0xffff,
- /* key: 0x79f6 */ 0xffff,
- /* key: 0x79f7 */ 0xffff,
- /* key: 0x79f8 */ 0xd128,
- /* key: 0x79f9 */ 0xffff,
- /* key: 0x79fa */ 0xffff,
- /* key: 0x79fb */ 0x305c,
- /* key: 0x79fc */ 0xd129,
- /* key: 0x79fd */ 0xffff,
- /* key: 0x79fe */ 0xffff,
- /* key: 0x79ff */ 0xffff,
- /* branch: 0x7a0X */ 13600,
- /* branch: 0x7a1X */ 13616,
- /* branch: 0x7a2X */ 13632,
- /* branch: 0x7a3X */ 13648,
- /* branch: 0x7a4X */ 13664,
- /* branch: 0x7a5X */ 13680,
- /* branch: 0x7a6X */ 13696,
- /* branch: 0x7a7X */ 13712,
- /* branch: 0x7a8X */ 13728,
- /* branch: 0x7a9X */ 13744,
- /* branch: 0x7aaX */ 13760,
- /* branch: 0x7abX */ 13776,
- /* branch: 0x7acX */ 13792,
- /* branch: 0x7adX */ 13808,
- /* branch: 0x7aeX */ 13824,
- /* branch: 0x7afX */ 13840,
- /* key: 0x7a00 */ 0x3529,
- /* key: 0x7a01 */ 0xffff,
- /* key: 0x7a02 */ 0xd12a,
- /* key: 0x7a03 */ 0xd12b,
- /* key: 0x7a04 */ 0xffff,
- /* key: 0x7a05 */ 0xffff,
- /* key: 0x7a06 */ 0xffff,
- /* key: 0x7a07 */ 0xd12c,
- /* key: 0x7a08 */ 0x6343,
- /* key: 0x7a09 */ 0xd12d,
- /* key: 0x7a0a */ 0xd12e,
- /* key: 0x7a0b */ 0x4478,
- /* key: 0x7a0c */ 0xd12f,
- /* key: 0x7a0d */ 0x6344,
- /* key: 0x7a0e */ 0x4047,
- /* key: 0x7a0f */ 0xffff,
- /* key: 0x7a10 */ 0xffff,
- /* key: 0x7a11 */ 0xd130,
- /* key: 0x7a12 */ 0xffff,
- /* key: 0x7a13 */ 0xffff,
- /* key: 0x7a14 */ 0x4c2d,
- /* key: 0x7a15 */ 0xd131,
- /* key: 0x7a16 */ 0xffff,
- /* key: 0x7a17 */ 0x4923,
- /* key: 0x7a18 */ 0x6345,
- /* key: 0x7a19 */ 0x6346,
- /* key: 0x7a1a */ 0x4355,
- /* key: 0x7a1b */ 0xd132,
- /* key: 0x7a1c */ 0x4e47,
- /* key: 0x7a1d */ 0xffff,
- /* key: 0x7a1e */ 0xd133,
- /* key: 0x7a1f */ 0x6348,
- /* key: 0x7a20 */ 0x6347,
- /* key: 0x7a21 */ 0xd134,
- /* key: 0x7a22 */ 0xffff,
- /* key: 0x7a23 */ 0xffff,
- /* key: 0x7a24 */ 0xffff,
- /* key: 0x7a25 */ 0xffff,
- /* key: 0x7a26 */ 0xffff,
- /* key: 0x7a27 */ 0xd135,
- /* key: 0x7a28 */ 0xffff,
- /* key: 0x7a29 */ 0xffff,
- /* key: 0x7a2a */ 0xffff,
- /* key: 0x7a2b */ 0xd136,
- /* key: 0x7a2c */ 0xffff,
- /* key: 0x7a2d */ 0xd137,
- /* key: 0x7a2e */ 0x3c6f,
- /* key: 0x7a2f */ 0xd138,
- /* key: 0x7a30 */ 0xd139,
- /* key: 0x7a31 */ 0x634a,
- /* key: 0x7a32 */ 0x3070,
- /* key: 0x7a33 */ 0xffff,
- /* key: 0x7a34 */ 0xd13a,
- /* key: 0x7a35 */ 0xd13b,
- /* key: 0x7a36 */ 0xffff,
- /* key: 0x7a37 */ 0x634d,
- /* key: 0x7a38 */ 0xd13c,
- /* key: 0x7a39 */ 0xd13d,
- /* key: 0x7a3a */ 0xd13e,
- /* key: 0x7a3b */ 0x634b,
- /* key: 0x7a3c */ 0x3254,
- /* key: 0x7a3d */ 0x374e,
- /* key: 0x7a3e */ 0x634c,
- /* key: 0x7a3f */ 0x3946,
- /* key: 0x7a40 */ 0x3972,
- /* key: 0x7a41 */ 0xffff,
- /* key: 0x7a42 */ 0x4a66,
- /* key: 0x7a43 */ 0x634e,
- /* key: 0x7a44 */ 0xd13f,
- /* key: 0x7a45 */ 0xd140,
- /* key: 0x7a46 */ 0x4b54,
- /* key: 0x7a47 */ 0xd141,
- /* key: 0x7a48 */ 0xd142,
- /* key: 0x7a49 */ 0x6350,
- /* key: 0x7a4a */ 0xffff,
- /* key: 0x7a4b */ 0xffff,
- /* key: 0x7a4c */ 0xd143,
- /* key: 0x7a4d */ 0x4051,
- /* key: 0x7a4e */ 0x314f,
- /* key: 0x7a4f */ 0x323a,
- /* key: 0x7a50 */ 0x302c,
- /* key: 0x7a51 */ 0xffff,
- /* key: 0x7a52 */ 0xffff,
- /* key: 0x7a53 */ 0xffff,
- /* key: 0x7a54 */ 0xffff,
- /* key: 0x7a55 */ 0xd144,
- /* key: 0x7a56 */ 0xd145,
- /* key: 0x7a57 */ 0x634f,
- /* key: 0x7a58 */ 0xffff,
- /* key: 0x7a59 */ 0xd146,
- /* key: 0x7a5a */ 0xffff,
- /* key: 0x7a5b */ 0xffff,
- /* key: 0x7a5c */ 0xd147,
- /* key: 0x7a5d */ 0xd148,
- /* key: 0x7a5e */ 0xffff,
- /* key: 0x7a5f */ 0xd149,
- /* key: 0x7a60 */ 0xd14a,
- /* key: 0x7a61 */ 0x6351,
- /* key: 0x7a62 */ 0x6352,
- /* key: 0x7a63 */ 0x3e77,
- /* key: 0x7a64 */ 0xffff,
- /* key: 0x7a65 */ 0xd14b,
- /* key: 0x7a66 */ 0xffff,
- /* key: 0x7a67 */ 0xd14c,
- /* key: 0x7a68 */ 0xffff,
- /* key: 0x7a69 */ 0x6353,
- /* key: 0x7a6a */ 0xd14d,
- /* key: 0x7a6b */ 0x334f,
- /* key: 0x7a6c */ 0xffff,
- /* key: 0x7a6d */ 0xd14e,
- /* key: 0x7a6e */ 0xffff,
- /* key: 0x7a6f */ 0xffff,
- /* key: 0x7a70 */ 0x6355,
- /* key: 0x7a71 */ 0xffff,
- /* key: 0x7a72 */ 0xffff,
- /* key: 0x7a73 */ 0xffff,
- /* key: 0x7a74 */ 0x376a,
- /* key: 0x7a75 */ 0xd14f,
- /* key: 0x7a76 */ 0x3566,
- /* key: 0x7a77 */ 0xffff,
- /* key: 0x7a78 */ 0xd150,
- /* key: 0x7a79 */ 0x6356,
- /* key: 0x7a7a */ 0x3675,
- /* key: 0x7a7b */ 0xffff,
- /* key: 0x7a7c */ 0xffff,
- /* key: 0x7a7d */ 0x6357,
- /* key: 0x7a7e */ 0xd151,
- /* key: 0x7a7f */ 0x407c,
- /* key: 0x7a80 */ 0xd152,
- /* key: 0x7a81 */ 0x464d,
- /* key: 0x7a82 */ 0xd153,
- /* key: 0x7a83 */ 0x4060,
- /* key: 0x7a84 */ 0x3a75,
- /* key: 0x7a85 */ 0xd154,
- /* key: 0x7a86 */ 0xd155,
- /* key: 0x7a87 */ 0xffff,
- /* key: 0x7a88 */ 0x6358,
- /* key: 0x7a89 */ 0xffff,
- /* key: 0x7a8a */ 0xd156,
- /* key: 0x7a8b */ 0xd157,
- /* key: 0x7a8c */ 0xffff,
- /* key: 0x7a8d */ 0xffff,
- /* key: 0x7a8e */ 0xffff,
- /* key: 0x7a8f */ 0xffff,
- /* key: 0x7a90 */ 0xd158,
- /* key: 0x7a91 */ 0xd159,
- /* key: 0x7a92 */ 0x4362,
- /* key: 0x7a93 */ 0x416b,
- /* key: 0x7a94 */ 0xd15a,
- /* key: 0x7a95 */ 0x635a,
- /* key: 0x7a96 */ 0x635c,
- /* key: 0x7a97 */ 0x6359,
- /* key: 0x7a98 */ 0x635b,
- /* key: 0x7a99 */ 0xffff,
- /* key: 0x7a9a */ 0xffff,
- /* key: 0x7a9b */ 0xffff,
- /* key: 0x7a9c */ 0xffff,
- /* key: 0x7a9d */ 0xffff,
- /* key: 0x7a9e */ 0xd15b,
- /* key: 0x7a9f */ 0x3722,
- /* key: 0x7aa0 */ 0xd15c,
- /* key: 0x7aa1 */ 0xffff,
- /* key: 0x7aa2 */ 0xffff,
- /* key: 0x7aa3 */ 0xd15d,
- /* key: 0x7aa4 */ 0xffff,
- /* key: 0x7aa5 */ 0xffff,
- /* key: 0x7aa6 */ 0xffff,
- /* key: 0x7aa7 */ 0xffff,
- /* key: 0x7aa8 */ 0xffff,
- /* key: 0x7aa9 */ 0x635d,
- /* key: 0x7aaa */ 0x3726,
- /* key: 0x7aab */ 0xffff,
- /* key: 0x7aac */ 0xd15e,
- /* key: 0x7aad */ 0xffff,
- /* key: 0x7aae */ 0x3567,
- /* key: 0x7aaf */ 0x4d52,
- /* key: 0x7ab0 */ 0x635f,
- /* key: 0x7ab1 */ 0xffff,
- /* key: 0x7ab2 */ 0xffff,
- /* key: 0x7ab3 */ 0xd15f,
- /* key: 0x7ab4 */ 0xffff,
- /* key: 0x7ab5 */ 0xd160,
- /* key: 0x7ab6 */ 0x6360,
- /* key: 0x7ab7 */ 0xffff,
- /* key: 0x7ab8 */ 0xffff,
- /* key: 0x7ab9 */ 0xd161,
- /* key: 0x7aba */ 0x312e,
- /* key: 0x7abb */ 0xd162,
- /* key: 0x7abc */ 0xd163,
- /* key: 0x7abd */ 0xffff,
- /* key: 0x7abe */ 0xffff,
- /* key: 0x7abf */ 0x6363,
- /* key: 0x7ac0 */ 0xffff,
- /* key: 0x7ac1 */ 0xffff,
- /* key: 0x7ac2 */ 0xffff,
- /* key: 0x7ac3 */ 0x3376,
- /* key: 0x7ac4 */ 0x6362,
- /* key: 0x7ac5 */ 0x6361,
- /* key: 0x7ac6 */ 0xd164,
- /* key: 0x7ac7 */ 0x6365,
- /* key: 0x7ac8 */ 0x635e,
- /* key: 0x7ac9 */ 0xd165,
- /* key: 0x7aca */ 0x6366,
- /* key: 0x7acb */ 0x4e29,
- /* key: 0x7acc */ 0xd166,
- /* key: 0x7acd */ 0x6367,
- /* key: 0x7ace */ 0xd167,
- /* key: 0x7acf */ 0x6368,
- /* key: 0x7ad0 */ 0xffff,
- /* key: 0x7ad1 */ 0xd168,
- /* key: 0x7ad2 */ 0x5474,
- /* key: 0x7ad3 */ 0x636a,
- /* key: 0x7ad4 */ 0xffff,
- /* key: 0x7ad5 */ 0x6369,
- /* key: 0x7ad6 */ 0xffff,
- /* key: 0x7ad7 */ 0xffff,
- /* key: 0x7ad8 */ 0xffff,
- /* key: 0x7ad9 */ 0x636b,
- /* key: 0x7ada */ 0x636c,
- /* key: 0x7adb */ 0xd169,
- /* key: 0x7adc */ 0x4e35,
- /* key: 0x7add */ 0x636d,
- /* key: 0x7ade */ 0xffff,
- /* key: 0x7adf */ 0x706f,
- /* key: 0x7ae0 */ 0x3e4f,
- /* key: 0x7ae1 */ 0x636e,
- /* key: 0x7ae2 */ 0x636f,
- /* key: 0x7ae3 */ 0x3d57,
- /* key: 0x7ae4 */ 0xffff,
- /* key: 0x7ae5 */ 0x4638,
- /* key: 0x7ae6 */ 0x6370,
- /* key: 0x7ae7 */ 0xffff,
- /* key: 0x7ae8 */ 0xd16a,
- /* key: 0x7ae9 */ 0xd16b,
- /* key: 0x7aea */ 0x4328,
- /* key: 0x7aeb */ 0xd16c,
- /* key: 0x7aec */ 0xd16d,
- /* key: 0x7aed */ 0x6371,
- /* key: 0x7aee */ 0xffff,
- /* key: 0x7aef */ 0x433c,
- /* key: 0x7af0 */ 0x6372,
- /* key: 0x7af1 */ 0xd16e,
- /* key: 0x7af2 */ 0xffff,
- /* key: 0x7af3 */ 0xffff,
- /* key: 0x7af4 */ 0xd16f,
- /* key: 0x7af5 */ 0xffff,
- /* key: 0x7af6 */ 0x3625,
- /* key: 0x7af7 */ 0xffff,
- /* key: 0x7af8 */ 0x513f,
- /* key: 0x7af9 */ 0x435d,
- /* key: 0x7afa */ 0x3c33,
- /* key: 0x7afb */ 0xd170,
- /* key: 0x7afc */ 0xffff,
- /* key: 0x7afd */ 0xd171,
- /* key: 0x7afe */ 0xd172,
- /* key: 0x7aff */ 0x3448,
- /* branch: 0x7b0X */ 13872,
- /* branch: 0x7b1X */ 13888,
- /* branch: 0x7b2X */ 13904,
- /* branch: 0x7b3X */ 13920,
- /* branch: 0x7b4X */ 13936,
- /* branch: 0x7b5X */ 13952,
- /* branch: 0x7b6X */ 13968,
- /* branch: 0x7b7X */ 13984,
- /* branch: 0x7b8X */ 14000,
- /* branch: 0x7b9X */ 14016,
- /* branch: 0x7baX */ 14032,
- /* branch: 0x7bbX */ 14048,
- /* branch: 0x7bcX */ 14064,
- /* branch: 0x7bdX */ 14080,
- /* branch: 0x7beX */ 14096,
- /* branch: 0x7bfX */ 14112,
- /* key: 0x7b00 */ 0xffff,
- /* key: 0x7b01 */ 0xffff,
- /* key: 0x7b02 */ 0x6373,
- /* key: 0x7b03 */ 0xffff,
- /* key: 0x7b04 */ 0x6422,
- /* key: 0x7b05 */ 0xffff,
- /* key: 0x7b06 */ 0x6376,
- /* key: 0x7b07 */ 0xd173,
- /* key: 0x7b08 */ 0x3568,
- /* key: 0x7b09 */ 0xffff,
- /* key: 0x7b0a */ 0x6375,
- /* key: 0x7b0b */ 0x6424,
- /* key: 0x7b0c */ 0xffff,
- /* key: 0x7b0d */ 0xffff,
- /* key: 0x7b0e */ 0xffff,
- /* key: 0x7b0f */ 0x6374,
- /* key: 0x7b10 */ 0xffff,
- /* key: 0x7b11 */ 0x3e50,
- /* key: 0x7b12 */ 0xffff,
- /* key: 0x7b13 */ 0xffff,
- /* key: 0x7b14 */ 0xd174,
- /* key: 0x7b15 */ 0xffff,
- /* key: 0x7b16 */ 0xffff,
- /* key: 0x7b17 */ 0xffff,
- /* key: 0x7b18 */ 0x6378,
- /* key: 0x7b19 */ 0x6379,
- /* key: 0x7b1a */ 0xffff,
- /* key: 0x7b1b */ 0x452b,
- /* key: 0x7b1c */ 0xffff,
- /* key: 0x7b1d */ 0xffff,
- /* key: 0x7b1e */ 0x637a,
- /* key: 0x7b1f */ 0xd175,
- /* key: 0x7b20 */ 0x335e,
- /* key: 0x7b21 */ 0xffff,
- /* key: 0x7b22 */ 0xffff,
- /* key: 0x7b23 */ 0xd176,
- /* key: 0x7b24 */ 0xffff,
- /* key: 0x7b25 */ 0x3f5a,
- /* key: 0x7b26 */ 0x4964,
- /* key: 0x7b27 */ 0xd177,
- /* key: 0x7b28 */ 0x637c,
- /* key: 0x7b29 */ 0xd178,
- /* key: 0x7b2a */ 0xd179,
- /* key: 0x7b2b */ 0xd17a,
- /* key: 0x7b2c */ 0x4268,
- /* key: 0x7b2d */ 0xd17b,
- /* key: 0x7b2e */ 0xd17c,
- /* key: 0x7b2f */ 0xd17d,
- /* key: 0x7b30 */ 0xd17e,
- /* key: 0x7b31 */ 0xd221,
- /* key: 0x7b32 */ 0xffff,
- /* key: 0x7b33 */ 0x6377,
- /* key: 0x7b34 */ 0xd222,
- /* key: 0x7b35 */ 0x637b,
- /* key: 0x7b36 */ 0x637d,
- /* key: 0x7b37 */ 0xffff,
- /* key: 0x7b38 */ 0xffff,
- /* key: 0x7b39 */ 0x3a7b,
- /* key: 0x7b3a */ 0xffff,
- /* key: 0x7b3b */ 0xffff,
- /* key: 0x7b3c */ 0xffff,
- /* key: 0x7b3d */ 0xd223,
- /* key: 0x7b3e */ 0xffff,
- /* key: 0x7b3f */ 0xd224,
- /* key: 0x7b40 */ 0xd225,
- /* key: 0x7b41 */ 0xd226,
- /* key: 0x7b42 */ 0xffff,
- /* key: 0x7b43 */ 0xffff,
- /* key: 0x7b44 */ 0xffff,
- /* key: 0x7b45 */ 0x6426,
- /* key: 0x7b46 */ 0x492e,
- /* key: 0x7b47 */ 0xd227,
- /* key: 0x7b48 */ 0x4826,
- /* key: 0x7b49 */ 0x4579,
- /* key: 0x7b4a */ 0xffff,
- /* key: 0x7b4b */ 0x365a,
- /* key: 0x7b4c */ 0x6425,
- /* key: 0x7b4d */ 0x6423,
- /* key: 0x7b4e */ 0xd228,
- /* key: 0x7b4f */ 0x4835,
- /* key: 0x7b50 */ 0x637e,
- /* key: 0x7b51 */ 0x435e,
- /* key: 0x7b52 */ 0x457b,
- /* key: 0x7b53 */ 0xffff,
- /* key: 0x7b54 */ 0x457a,
- /* key: 0x7b55 */ 0xd229,
- /* key: 0x7b56 */ 0x3a76,
- /* key: 0x7b57 */ 0xffff,
- /* key: 0x7b58 */ 0xffff,
- /* key: 0x7b59 */ 0xffff,
- /* key: 0x7b5a */ 0xffff,
- /* key: 0x7b5b */ 0xffff,
- /* key: 0x7b5c */ 0xffff,
- /* key: 0x7b5d */ 0x6438,
- /* key: 0x7b5e */ 0xffff,
- /* key: 0x7b5f */ 0xffff,
- /* key: 0x7b60 */ 0xd22a,
- /* key: 0x7b61 */ 0xffff,
- /* key: 0x7b62 */ 0xffff,
- /* key: 0x7b63 */ 0xffff,
- /* key: 0x7b64 */ 0xd22b,
- /* key: 0x7b65 */ 0x6428,
- /* key: 0x7b66 */ 0xd22c,
- /* key: 0x7b67 */ 0x642a,
- /* key: 0x7b68 */ 0xffff,
- /* key: 0x7b69 */ 0xd22d,
- /* key: 0x7b6a */ 0xd22e,
- /* key: 0x7b6b */ 0xffff,
- /* key: 0x7b6c */ 0x642d,
- /* key: 0x7b6d */ 0xd22f,
- /* key: 0x7b6e */ 0x642e,
- /* key: 0x7b6f */ 0xd230,
- /* key: 0x7b70 */ 0x642b,
- /* key: 0x7b71 */ 0x642c,
- /* key: 0x7b72 */ 0xd231,
- /* key: 0x7b73 */ 0xd232,
- /* key: 0x7b74 */ 0x6429,
- /* key: 0x7b75 */ 0x6427,
- /* key: 0x7b76 */ 0xffff,
- /* key: 0x7b77 */ 0xd233,
- /* key: 0x7b78 */ 0xffff,
- /* key: 0x7b79 */ 0xffff,
- /* key: 0x7b7a */ 0x6421,
- /* key: 0x7b7b */ 0xffff,
- /* key: 0x7b7c */ 0xffff,
- /* key: 0x7b7d */ 0xffff,
- /* key: 0x7b7e */ 0xffff,
- /* key: 0x7b7f */ 0xffff,
- /* key: 0x7b80 */ 0xffff,
- /* key: 0x7b81 */ 0xffff,
- /* key: 0x7b82 */ 0xffff,
- /* key: 0x7b83 */ 0xffff,
- /* key: 0x7b84 */ 0xd234,
- /* key: 0x7b85 */ 0xffff,
- /* key: 0x7b86 */ 0x4a4f,
- /* key: 0x7b87 */ 0x3255,
- /* key: 0x7b88 */ 0xffff,
- /* key: 0x7b89 */ 0xd235,
- /* key: 0x7b8a */ 0xffff,
- /* key: 0x7b8b */ 0x6435,
- /* key: 0x7b8c */ 0xffff,
- /* key: 0x7b8d */ 0x6432,
- /* key: 0x7b8e */ 0xd236,
- /* key: 0x7b8f */ 0x6437,
- /* key: 0x7b90 */ 0xd237,
- /* key: 0x7b91 */ 0xd238,
- /* key: 0x7b92 */ 0x6436,
- /* key: 0x7b93 */ 0xffff,
- /* key: 0x7b94 */ 0x4773,
- /* key: 0x7b95 */ 0x4c27,
- /* key: 0x7b96 */ 0xd239,
- /* key: 0x7b97 */ 0x3b3b,
- /* key: 0x7b98 */ 0x6430,
- /* key: 0x7b99 */ 0x6439,
- /* key: 0x7b9a */ 0x6434,
- /* key: 0x7b9b */ 0xd23a,
- /* key: 0x7b9c */ 0x6433,
- /* key: 0x7b9d */ 0x642f,
- /* key: 0x7b9e */ 0xd23b,
- /* key: 0x7b9f */ 0x6431,
- /* key: 0x7ba0 */ 0xd23c,
- /* key: 0x7ba1 */ 0x3449,
- /* key: 0x7ba2 */ 0xffff,
- /* key: 0x7ba3 */ 0xffff,
- /* key: 0x7ba4 */ 0xffff,
- /* key: 0x7ba5 */ 0xd23d,
- /* key: 0x7ba6 */ 0xffff,
- /* key: 0x7ba7 */ 0xffff,
- /* key: 0x7ba8 */ 0xffff,
- /* key: 0x7ba9 */ 0xffff,
- /* key: 0x7baa */ 0x433d,
- /* key: 0x7bab */ 0xffff,
- /* key: 0x7bac */ 0xd23e,
- /* key: 0x7bad */ 0x407d,
- /* key: 0x7bae */ 0xffff,
- /* key: 0x7baf */ 0xd23f,
- /* key: 0x7bb0 */ 0xd240,
- /* key: 0x7bb1 */ 0x4822,
- /* key: 0x7bb2 */ 0xd241,
- /* key: 0x7bb3 */ 0xffff,
- /* key: 0x7bb4 */ 0x643e,
- /* key: 0x7bb5 */ 0xd242,
- /* key: 0x7bb6 */ 0xd243,
- /* key: 0x7bb7 */ 0xffff,
- /* key: 0x7bb8 */ 0x4824,
- /* key: 0x7bb9 */ 0xffff,
- /* key: 0x7bba */ 0xd244,
- /* key: 0x7bbb */ 0xd245,
- /* key: 0x7bbc */ 0xd246,
- /* key: 0x7bbd */ 0xd247,
- /* key: 0x7bbe */ 0xffff,
- /* key: 0x7bbf */ 0xffff,
- /* key: 0x7bc0 */ 0x4061,
- /* key: 0x7bc1 */ 0x643b,
- /* key: 0x7bc2 */ 0xd248,
- /* key: 0x7bc3 */ 0xffff,
- /* key: 0x7bc4 */ 0x484f,
- /* key: 0x7bc5 */ 0xd249,
- /* key: 0x7bc6 */ 0x643f,
- /* key: 0x7bc7 */ 0x4a53,
- /* key: 0x7bc8 */ 0xd24a,
- /* key: 0x7bc9 */ 0x435b,
- /* key: 0x7bca */ 0xd24b,
- /* key: 0x7bcb */ 0x643a,
- /* key: 0x7bcc */ 0x643c,
- /* key: 0x7bcd */ 0xffff,
- /* key: 0x7bce */ 0xffff,
- /* key: 0x7bcf */ 0x643d,
- /* key: 0x7bd0 */ 0xffff,
- /* key: 0x7bd1 */ 0xffff,
- /* key: 0x7bd2 */ 0xffff,
- /* key: 0x7bd3 */ 0xffff,
- /* key: 0x7bd4 */ 0xd24c,
- /* key: 0x7bd5 */ 0xffff,
- /* key: 0x7bd6 */ 0xd24d,
- /* key: 0x7bd7 */ 0xd24e,
- /* key: 0x7bd8 */ 0xffff,
- /* key: 0x7bd9 */ 0xd24f,
- /* key: 0x7bda */ 0xd250,
- /* key: 0x7bdb */ 0xd251,
- /* key: 0x7bdc */ 0xffff,
- /* key: 0x7bdd */ 0x6440,
- /* key: 0x7bde */ 0xffff,
- /* key: 0x7bdf */ 0xffff,
- /* key: 0x7be0 */ 0x3c44,
- /* key: 0x7be1 */ 0xffff,
- /* key: 0x7be2 */ 0xffff,
- /* key: 0x7be3 */ 0xffff,
- /* key: 0x7be4 */ 0x4646,
- /* key: 0x7be5 */ 0x6445,
- /* key: 0x7be6 */ 0x6444,
- /* key: 0x7be7 */ 0xffff,
- /* key: 0x7be8 */ 0xd252,
- /* key: 0x7be9 */ 0x6441,
- /* key: 0x7bea */ 0xd253,
- /* key: 0x7beb */ 0xffff,
- /* key: 0x7bec */ 0xffff,
- /* key: 0x7bed */ 0x4f36,
- /* key: 0x7bee */ 0xffff,
- /* key: 0x7bef */ 0xffff,
- /* key: 0x7bf0 */ 0xffff,
- /* key: 0x7bf1 */ 0xffff,
- /* key: 0x7bf2 */ 0xd254,
- /* key: 0x7bf3 */ 0x644a,
- /* key: 0x7bf4 */ 0xd255,
- /* key: 0x7bf5 */ 0xd256,
- /* key: 0x7bf6 */ 0x644e,
- /* key: 0x7bf7 */ 0x644b,
- /* key: 0x7bf8 */ 0xd257,
- /* key: 0x7bf9 */ 0xd258,
- /* key: 0x7bfa */ 0xd259,
- /* key: 0x7bfb */ 0xffff,
- /* key: 0x7bfc */ 0xd25a,
- /* key: 0x7bfd */ 0xffff,
- /* key: 0x7bfe */ 0xd25b,
- /* key: 0x7bff */ 0xffff,
- /* branch: 0x7c0X */ 14144,
- /* branch: 0x7c1X */ 14160,
- /* branch: 0x7c2X */ 14176,
- /* branch: 0x7c3X */ 14192,
- /* branch: 0x7c4X */ 14208,
- /* branch: 0x7c5X */ 14224,
- /* branch: 0x7c6X */ 14240,
- /* branch: 0x7c7X */ 14256,
- /* branch: 0x7c8X */ 14272,
- /* branch: 0x7c9X */ 14288,
- /* branch: 0x7caX */ 14304,
- /* branch: 0x7cbX */ 14320,
- /* branch: 0x7ccX */ 14336,
- /* branch: 0x7cdX */ 14352,
- /* branch: 0x7ceX */ 14368,
- /* branch: 0x7cfX */ 14384,
- /* key: 0x7c00 */ 0x6447,
- /* key: 0x7c01 */ 0xd25c,
- /* key: 0x7c02 */ 0xd25d,
- /* key: 0x7c03 */ 0xd25e,
- /* key: 0x7c04 */ 0xd25f,
- /* key: 0x7c05 */ 0xffff,
- /* key: 0x7c06 */ 0xd260,
- /* key: 0x7c07 */ 0x6448,
- /* key: 0x7c08 */ 0xffff,
- /* key: 0x7c09 */ 0xd261,
- /* key: 0x7c0a */ 0xffff,
- /* key: 0x7c0b */ 0xd262,
- /* key: 0x7c0c */ 0xd263,
- /* key: 0x7c0d */ 0x644d,
- /* key: 0x7c0e */ 0xd264,
- /* key: 0x7c0f */ 0xd265,
- /* key: 0x7c10 */ 0xffff,
- /* key: 0x7c11 */ 0x6442,
- /* key: 0x7c12 */ 0x5255,
- /* key: 0x7c13 */ 0x6449,
- /* key: 0x7c14 */ 0x6443,
- /* key: 0x7c15 */ 0xffff,
- /* key: 0x7c16 */ 0xffff,
- /* key: 0x7c17 */ 0x644c,
- /* key: 0x7c18 */ 0xffff,
- /* key: 0x7c19 */ 0xd266,
- /* key: 0x7c1a */ 0xffff,
- /* key: 0x7c1b */ 0xd267,
- /* key: 0x7c1c */ 0xffff,
- /* key: 0x7c1d */ 0xffff,
- /* key: 0x7c1e */ 0xffff,
- /* key: 0x7c1f */ 0x6452,
- /* key: 0x7c20 */ 0xd268,
- /* key: 0x7c21 */ 0x344a,
- /* key: 0x7c22 */ 0xffff,
- /* key: 0x7c23 */ 0x644f,
- /* key: 0x7c24 */ 0xffff,
- /* key: 0x7c25 */ 0xd269,
- /* key: 0x7c26 */ 0xd26a,
- /* key: 0x7c27 */ 0x6450,
- /* key: 0x7c28 */ 0xd26b,
- /* key: 0x7c29 */ 0xffff,
- /* key: 0x7c2a */ 0x6451,
- /* key: 0x7c2b */ 0x6454,
- /* key: 0x7c2c */ 0xd26c,
- /* key: 0x7c2d */ 0xffff,
- /* key: 0x7c2e */ 0xffff,
- /* key: 0x7c2f */ 0xffff,
- /* key: 0x7c30 */ 0xffff,
- /* key: 0x7c31 */ 0xd26d,
- /* key: 0x7c32 */ 0xffff,
- /* key: 0x7c33 */ 0xd26e,
- /* key: 0x7c34 */ 0xd26f,
- /* key: 0x7c35 */ 0xffff,
- /* key: 0x7c36 */ 0xd270,
- /* key: 0x7c37 */ 0x6453,
- /* key: 0x7c38 */ 0x4876,
- /* key: 0x7c39 */ 0xd271,
- /* key: 0x7c3a */ 0xd272,
- /* key: 0x7c3b */ 0xffff,
- /* key: 0x7c3c */ 0xffff,
- /* key: 0x7c3d */ 0x6455,
- /* key: 0x7c3e */ 0x4e7c,
- /* key: 0x7c3f */ 0x4a6d,
- /* key: 0x7c40 */ 0x645a,
- /* key: 0x7c41 */ 0xffff,
- /* key: 0x7c42 */ 0xffff,
- /* key: 0x7c43 */ 0x6457,
- /* key: 0x7c44 */ 0xffff,
- /* key: 0x7c45 */ 0xffff,
- /* key: 0x7c46 */ 0xd273,
- /* key: 0x7c47 */ 0xffff,
- /* key: 0x7c48 */ 0xffff,
- /* key: 0x7c49 */ 0xffff,
- /* key: 0x7c4a */ 0xd274,
- /* key: 0x7c4b */ 0xffff,
- /* key: 0x7c4c */ 0x6456,
- /* key: 0x7c4d */ 0x4052,
- /* key: 0x7c4e */ 0xffff,
- /* key: 0x7c4f */ 0x6459,
- /* key: 0x7c50 */ 0x645b,
- /* key: 0x7c51 */ 0xd276,
- /* key: 0x7c52 */ 0xd277,
- /* key: 0x7c53 */ 0xd278,
- /* key: 0x7c54 */ 0x6458,
- /* key: 0x7c55 */ 0xd275,
- /* key: 0x7c56 */ 0x645f,
- /* key: 0x7c57 */ 0xffff,
- /* key: 0x7c58 */ 0x645c,
- /* key: 0x7c59 */ 0xd279,
- /* key: 0x7c5a */ 0xd27a,
- /* key: 0x7c5b */ 0xd27b,
- /* key: 0x7c5c */ 0xd27c,
- /* key: 0x7c5d */ 0xd27d,
- /* key: 0x7c5e */ 0xd27e,
- /* key: 0x7c5f */ 0x645d,
- /* key: 0x7c60 */ 0x6446,
- /* key: 0x7c61 */ 0xd321,
- /* key: 0x7c62 */ 0xffff,
- /* key: 0x7c63 */ 0xd322,
- /* key: 0x7c64 */ 0x645e,
- /* key: 0x7c65 */ 0x6460,
- /* key: 0x7c66 */ 0xffff,
- /* key: 0x7c67 */ 0xd323,
- /* key: 0x7c68 */ 0xffff,
- /* key: 0x7c69 */ 0xd324,
- /* key: 0x7c6a */ 0xffff,
- /* key: 0x7c6b */ 0xffff,
- /* key: 0x7c6c */ 0x6461,
- /* key: 0x7c6d */ 0xd325,
- /* key: 0x7c6e */ 0xd326,
- /* key: 0x7c6f */ 0xffff,
- /* key: 0x7c70 */ 0xd327,
- /* key: 0x7c71 */ 0xffff,
- /* key: 0x7c72 */ 0xd328,
- /* key: 0x7c73 */ 0x4a46,
- /* key: 0x7c74 */ 0xffff,
- /* key: 0x7c75 */ 0x6462,
- /* key: 0x7c76 */ 0xffff,
- /* key: 0x7c77 */ 0xffff,
- /* key: 0x7c78 */ 0xffff,
- /* key: 0x7c79 */ 0xd329,
- /* key: 0x7c7a */ 0xffff,
- /* key: 0x7c7b */ 0xffff,
- /* key: 0x7c7c */ 0xd32a,
- /* key: 0x7c7d */ 0xd32b,
- /* key: 0x7c7e */ 0x4c62,
- /* key: 0x7c7f */ 0xffff,
- /* key: 0x7c80 */ 0xffff,
- /* key: 0x7c81 */ 0x364e,
- /* key: 0x7c82 */ 0x3729,
- /* key: 0x7c83 */ 0x6463,
- /* key: 0x7c84 */ 0xffff,
- /* key: 0x7c85 */ 0xffff,
- /* key: 0x7c86 */ 0xd32c,
- /* key: 0x7c87 */ 0xd32d,
- /* key: 0x7c88 */ 0xffff,
- /* key: 0x7c89 */ 0x4a34,
- /* key: 0x7c8a */ 0xffff,
- /* key: 0x7c8b */ 0x3f68,
- /* key: 0x7c8c */ 0xffff,
- /* key: 0x7c8d */ 0x4c30,
- /* key: 0x7c8e */ 0xffff,
- /* key: 0x7c8f */ 0xd32e,
- /* key: 0x7c90 */ 0x6464,
- /* key: 0x7c91 */ 0xffff,
- /* key: 0x7c92 */ 0x4e33,
- /* key: 0x7c93 */ 0xffff,
- /* key: 0x7c94 */ 0xd32f,
- /* key: 0x7c95 */ 0x4774,
- /* key: 0x7c96 */ 0xffff,
- /* key: 0x7c97 */ 0x4146,
- /* key: 0x7c98 */ 0x4734,
- /* key: 0x7c99 */ 0xffff,
- /* key: 0x7c9a */ 0xffff,
- /* key: 0x7c9b */ 0x3d4d,
- /* key: 0x7c9c */ 0xffff,
- /* key: 0x7c9d */ 0xffff,
- /* key: 0x7c9e */ 0xd330,
- /* key: 0x7c9f */ 0x3040,
- /* key: 0x7ca0 */ 0xd331,
- /* key: 0x7ca1 */ 0x6469,
- /* key: 0x7ca2 */ 0x6467,
- /* key: 0x7ca3 */ 0xffff,
- /* key: 0x7ca4 */ 0x6465,
- /* key: 0x7ca5 */ 0x3421,
- /* key: 0x7ca6 */ 0xd332,
- /* key: 0x7ca7 */ 0x3e51,
- /* key: 0x7ca8 */ 0x646a,
- /* key: 0x7ca9 */ 0xffff,
- /* key: 0x7caa */ 0xffff,
- /* key: 0x7cab */ 0x6468,
- /* key: 0x7cac */ 0xffff,
- /* key: 0x7cad */ 0x6466,
- /* key: 0x7cae */ 0x646e,
- /* key: 0x7caf */ 0xffff,
- /* key: 0x7cb0 */ 0xd333,
- /* key: 0x7cb1 */ 0x646d,
- /* key: 0x7cb2 */ 0x646c,
- /* key: 0x7cb3 */ 0x646b,
- /* key: 0x7cb4 */ 0xffff,
- /* key: 0x7cb5 */ 0xffff,
- /* key: 0x7cb6 */ 0xd334,
- /* key: 0x7cb7 */ 0xd335,
- /* key: 0x7cb8 */ 0xffff,
- /* key: 0x7cb9 */ 0x646f,
- /* key: 0x7cba */ 0xd336,
- /* key: 0x7cbb */ 0xd337,
- /* key: 0x7cbc */ 0xd338,
- /* key: 0x7cbd */ 0x6470,
- /* key: 0x7cbe */ 0x403a,
- /* key: 0x7cbf */ 0xd339,
- /* key: 0x7cc0 */ 0x6471,
- /* key: 0x7cc1 */ 0xffff,
- /* key: 0x7cc2 */ 0x6473,
- /* key: 0x7cc3 */ 0xffff,
- /* key: 0x7cc4 */ 0xd33a,
- /* key: 0x7cc5 */ 0x6472,
- /* key: 0x7cc6 */ 0xffff,
- /* key: 0x7cc7 */ 0xd33b,
- /* key: 0x7cc8 */ 0xd33c,
- /* key: 0x7cc9 */ 0xd33d,
- /* key: 0x7cca */ 0x3852,
- /* key: 0x7ccb */ 0xffff,
- /* key: 0x7ccc */ 0xffff,
- /* key: 0x7ccd */ 0xd33e,
- /* key: 0x7cce */ 0x4138,
- /* key: 0x7ccf */ 0xd33f,
- /* key: 0x7cd0 */ 0xffff,
- /* key: 0x7cd1 */ 0xffff,
- /* key: 0x7cd2 */ 0x6475,
- /* key: 0x7cd3 */ 0xd340,
- /* key: 0x7cd4 */ 0xd341,
- /* key: 0x7cd5 */ 0xd342,
- /* key: 0x7cd6 */ 0x457c,
- /* key: 0x7cd7 */ 0xd343,
- /* key: 0x7cd8 */ 0x6474,
- /* key: 0x7cd9 */ 0xd344,
- /* key: 0x7cda */ 0xd345,
- /* key: 0x7cdb */ 0xffff,
- /* key: 0x7cdc */ 0x6476,
- /* key: 0x7cdd */ 0xd346,
- /* key: 0x7cde */ 0x4a35,
- /* key: 0x7cdf */ 0x416c,
- /* key: 0x7ce0 */ 0x3947,
- /* key: 0x7ce1 */ 0xffff,
- /* key: 0x7ce2 */ 0x6477,
- /* key: 0x7ce3 */ 0xffff,
- /* key: 0x7ce4 */ 0xffff,
- /* key: 0x7ce5 */ 0xffff,
- /* key: 0x7ce6 */ 0xd347,
- /* key: 0x7ce7 */ 0x4e48,
- /* key: 0x7ce8 */ 0xffff,
- /* key: 0x7ce9 */ 0xd348,
- /* key: 0x7cea */ 0xffff,
- /* key: 0x7ceb */ 0xd349,
- /* key: 0x7cec */ 0xffff,
- /* key: 0x7ced */ 0xffff,
- /* key: 0x7cee */ 0xffff,
- /* key: 0x7cef */ 0x6479,
- /* key: 0x7cf0 */ 0xffff,
- /* key: 0x7cf1 */ 0xffff,
- /* key: 0x7cf2 */ 0x647a,
- /* key: 0x7cf3 */ 0xffff,
- /* key: 0x7cf4 */ 0x647b,
- /* key: 0x7cf5 */ 0xd34a,
- /* key: 0x7cf6 */ 0x647c,
- /* key: 0x7cf7 */ 0xffff,
- /* key: 0x7cf8 */ 0x3b65,
- /* key: 0x7cf9 */ 0xffff,
- /* key: 0x7cfa */ 0x647d,
- /* key: 0x7cfb */ 0x374f,
- /* key: 0x7cfc */ 0xffff,
- /* key: 0x7cfd */ 0xffff,
- /* key: 0x7cfe */ 0x356a,
- /* key: 0x7cff */ 0xffff,
- /* branch: 0x7d0X */ 14416,
- /* branch: 0x7d1X */ 14432,
- /* branch: 0x7d2X */ 14448,
- /* branch: 0x7d3X */ 14464,
- /* branch: 0x7d4X */ 14480,
- /* branch: 0x7d5X */ 14496,
- /* branch: 0x7d6X */ 14512,
- /* branch: 0x7d7X */ 14528,
- /* branch: 0x7d8X */ 14544,
- /* branch: 0x7d9X */ 14560,
- /* branch: 0x7daX */ 14576,
- /* branch: 0x7dbX */ 14592,
- /* branch: 0x7dcX */ 14608,
- /* branch: 0x7ddX */ 14624,
- /* branch: 0x7deX */ 14640,
- /* branch: 0x7dfX */ 14656,
- /* key: 0x7d00 */ 0x352a,
- /* key: 0x7d01 */ 0xffff,
- /* key: 0x7d02 */ 0x6521,
- /* key: 0x7d03 */ 0xd34b,
- /* key: 0x7d04 */ 0x4c73,
- /* key: 0x7d05 */ 0x3948,
- /* key: 0x7d06 */ 0x647e,
- /* key: 0x7d07 */ 0xd34c,
- /* key: 0x7d08 */ 0xd34d,
- /* key: 0x7d09 */ 0xd34e,
- /* key: 0x7d0a */ 0x6524,
- /* key: 0x7d0b */ 0x4c66,
- /* key: 0x7d0c */ 0xffff,
- /* key: 0x7d0d */ 0x473c,
- /* key: 0x7d0e */ 0xffff,
- /* key: 0x7d0f */ 0xd34f,
- /* key: 0x7d10 */ 0x4933,
- /* key: 0x7d11 */ 0xd350,
- /* key: 0x7d12 */ 0xd351,
- /* key: 0x7d13 */ 0xd352,
- /* key: 0x7d14 */ 0x3d63,
- /* key: 0x7d15 */ 0x6523,
- /* key: 0x7d16 */ 0xd353,
- /* key: 0x7d17 */ 0x3c53,
- /* key: 0x7d18 */ 0x3949,
- /* key: 0x7d19 */ 0x3b66,
- /* key: 0x7d1a */ 0x3569,
- /* key: 0x7d1b */ 0x4a36,
- /* key: 0x7d1c */ 0x6522,
- /* key: 0x7d1d */ 0xd354,
- /* key: 0x7d1e */ 0xd355,
- /* key: 0x7d1f */ 0xffff,
- /* key: 0x7d20 */ 0x4147,
- /* key: 0x7d21 */ 0x4b42,
- /* key: 0x7d22 */ 0x3a77,
- /* key: 0x7d23 */ 0xd356,
- /* key: 0x7d24 */ 0xffff,
- /* key: 0x7d25 */ 0xffff,
- /* key: 0x7d26 */ 0xd357,
- /* key: 0x7d27 */ 0xffff,
- /* key: 0x7d28 */ 0xffff,
- /* key: 0x7d29 */ 0xffff,
- /* key: 0x7d2a */ 0xd358,
- /* key: 0x7d2b */ 0x3b67,
- /* key: 0x7d2c */ 0x445d,
- /* key: 0x7d2d */ 0xd359,
- /* key: 0x7d2e */ 0x6527,
- /* key: 0x7d2f */ 0x4e5f,
- /* key: 0x7d30 */ 0x3a59,
- /* key: 0x7d31 */ 0xd35a,
- /* key: 0x7d32 */ 0x6528,
- /* key: 0x7d33 */ 0x3f42,
- /* key: 0x7d34 */ 0xffff,
- /* key: 0x7d35 */ 0x652a,
- /* key: 0x7d36 */ 0xffff,
- /* key: 0x7d37 */ 0xffff,
- /* key: 0x7d38 */ 0xffff,
- /* key: 0x7d39 */ 0x3e52,
- /* key: 0x7d3a */ 0x3a30,
- /* key: 0x7d3b */ 0xffff,
- /* key: 0x7d3c */ 0xd35b,
- /* key: 0x7d3d */ 0xd35c,
- /* key: 0x7d3e */ 0xd35d,
- /* key: 0x7d3f */ 0x6529,
- /* key: 0x7d40 */ 0xd35e,
- /* key: 0x7d41 */ 0xd35f,
- /* key: 0x7d42 */ 0x3d2a,
- /* key: 0x7d43 */ 0x383e,
- /* key: 0x7d44 */ 0x4148,
- /* key: 0x7d45 */ 0x6525,
- /* key: 0x7d46 */ 0x652b,
- /* key: 0x7d47 */ 0xd360,
- /* key: 0x7d48 */ 0xd361,
- /* key: 0x7d49 */ 0xffff,
- /* key: 0x7d4a */ 0xffff,
- /* key: 0x7d4b */ 0x6526,
- /* key: 0x7d4c */ 0x3750,
- /* key: 0x7d4d */ 0xd362,
- /* key: 0x7d4e */ 0x652e,
- /* key: 0x7d4f */ 0x6532,
- /* key: 0x7d50 */ 0x376b,
- /* key: 0x7d51 */ 0xd363,
- /* key: 0x7d52 */ 0xffff,
- /* key: 0x7d53 */ 0xd364,
- /* key: 0x7d54 */ 0xffff,
- /* key: 0x7d55 */ 0xffff,
- /* key: 0x7d56 */ 0x652d,
- /* key: 0x7d57 */ 0xd365,
- /* key: 0x7d58 */ 0xffff,
- /* key: 0x7d59 */ 0xd366,
- /* key: 0x7d5a */ 0xd367,
- /* key: 0x7d5b */ 0x6536,
- /* key: 0x7d5c */ 0xd368,
- /* key: 0x7d5d */ 0xd369,
- /* key: 0x7d5e */ 0x394a,
- /* key: 0x7d5f */ 0xffff,
- /* key: 0x7d60 */ 0xffff,
- /* key: 0x7d61 */ 0x4d6d,
- /* key: 0x7d62 */ 0x303c,
- /* key: 0x7d63 */ 0x6533,
- /* key: 0x7d64 */ 0xffff,
- /* key: 0x7d65 */ 0xd36a,
- /* key: 0x7d66 */ 0x356b,
- /* key: 0x7d67 */ 0xd36b,
- /* key: 0x7d68 */ 0x6530,
- /* key: 0x7d69 */ 0xffff,
- /* key: 0x7d6a */ 0xd36c,
- /* key: 0x7d6b */ 0xffff,
- /* key: 0x7d6c */ 0xffff,
- /* key: 0x7d6d */ 0xffff,
- /* key: 0x7d6e */ 0x6531,
- /* key: 0x7d6f */ 0xffff,
- /* key: 0x7d70 */ 0xd36d,
- /* key: 0x7d71 */ 0x457d,
- /* key: 0x7d72 */ 0x652f,
- /* key: 0x7d73 */ 0x652c,
- /* key: 0x7d74 */ 0xffff,
- /* key: 0x7d75 */ 0x3328,
- /* key: 0x7d76 */ 0x4064,
- /* key: 0x7d77 */ 0xffff,
- /* key: 0x7d78 */ 0xd36e,
- /* key: 0x7d79 */ 0x3828,
- /* key: 0x7d7a */ 0xd36f,
- /* key: 0x7d7b */ 0xd370,
- /* key: 0x7d7c */ 0xffff,
- /* key: 0x7d7d */ 0x6538,
- /* key: 0x7d7e */ 0xffff,
- /* key: 0x7d7f */ 0xd371,
- /* key: 0x7d80 */ 0xffff,
- /* key: 0x7d81 */ 0xd372,
- /* key: 0x7d82 */ 0xd373,
- /* key: 0x7d83 */ 0xd374,
- /* key: 0x7d84 */ 0xffff,
- /* key: 0x7d85 */ 0xd375,
- /* key: 0x7d86 */ 0xd376,
- /* key: 0x7d87 */ 0xffff,
- /* key: 0x7d88 */ 0xd377,
- /* key: 0x7d89 */ 0x6535,
- /* key: 0x7d8a */ 0xffff,
- /* key: 0x7d8b */ 0xd378,
- /* key: 0x7d8c */ 0xd379,
- /* key: 0x7d8d */ 0xd37a,
- /* key: 0x7d8e */ 0xffff,
- /* key: 0x7d8f */ 0x6537,
- /* key: 0x7d90 */ 0xffff,
- /* key: 0x7d91 */ 0xd37b,
- /* key: 0x7d92 */ 0xffff,
- /* key: 0x7d93 */ 0x6534,
- /* key: 0x7d94 */ 0xffff,
- /* key: 0x7d95 */ 0xffff,
- /* key: 0x7d96 */ 0xd37c,
- /* key: 0x7d97 */ 0xd37d,
- /* key: 0x7d98 */ 0xffff,
- /* key: 0x7d99 */ 0x3751,
- /* key: 0x7d9a */ 0x4233,
- /* key: 0x7d9b */ 0x6539,
- /* key: 0x7d9c */ 0x416e,
- /* key: 0x7d9d */ 0xd37e,
- /* key: 0x7d9e */ 0xd421,
- /* key: 0x7d9f */ 0x6546,
- /* key: 0x7da0 */ 0xffff,
- /* key: 0x7da1 */ 0xffff,
- /* key: 0x7da2 */ 0x6542,
- /* key: 0x7da3 */ 0x653c,
- /* key: 0x7da4 */ 0xffff,
- /* key: 0x7da5 */ 0xffff,
- /* key: 0x7da6 */ 0xd422,
- /* key: 0x7da7 */ 0xd423,
- /* key: 0x7da8 */ 0xffff,
- /* key: 0x7da9 */ 0xffff,
- /* key: 0x7daa */ 0xd424,
- /* key: 0x7dab */ 0x6540,
- /* key: 0x7dac */ 0x3c7a,
- /* key: 0x7dad */ 0x305d,
- /* key: 0x7dae */ 0x653b,
- /* key: 0x7daf */ 0x6543,
- /* key: 0x7db0 */ 0x6547,
- /* key: 0x7db1 */ 0x394b,
- /* key: 0x7db2 */ 0x4c56,
- /* key: 0x7db3 */ 0xd425,
- /* key: 0x7db4 */ 0x4456,
- /* key: 0x7db5 */ 0x653d,
- /* key: 0x7db6 */ 0xd426,
- /* key: 0x7db7 */ 0xd427,
- /* key: 0x7db8 */ 0x6545,
- /* key: 0x7db9 */ 0xd428,
- /* key: 0x7dba */ 0x653a,
- /* key: 0x7dbb */ 0x433e,
- /* key: 0x7dbc */ 0xffff,
- /* key: 0x7dbd */ 0x653f,
- /* key: 0x7dbe */ 0x303d,
- /* key: 0x7dbf */ 0x4c4a,
- /* key: 0x7dc0 */ 0xffff,
- /* key: 0x7dc1 */ 0xffff,
- /* key: 0x7dc2 */ 0xd429,
- /* key: 0x7dc3 */ 0xd42a,
- /* key: 0x7dc4 */ 0xd42b,
- /* key: 0x7dc5 */ 0xd42c,
- /* key: 0x7dc6 */ 0xd42d,
- /* key: 0x7dc7 */ 0x653e,
- /* key: 0x7dc8 */ 0xffff,
- /* key: 0x7dc9 */ 0xffff,
- /* key: 0x7dca */ 0x365b,
- /* key: 0x7dcb */ 0x486c,
- /* key: 0x7dcc */ 0xd42e,
- /* key: 0x7dcd */ 0xd42f,
- /* key: 0x7dce */ 0xd430,
- /* key: 0x7dcf */ 0x416d,
- /* key: 0x7dd0 */ 0xffff,
- /* key: 0x7dd1 */ 0x4e50,
- /* key: 0x7dd2 */ 0x3d6f,
- /* key: 0x7dd3 */ 0xffff,
- /* key: 0x7dd4 */ 0xffff,
- /* key: 0x7dd5 */ 0x656e,
- /* key: 0x7dd6 */ 0xffff,
- /* key: 0x7dd7 */ 0xd431,
- /* key: 0x7dd8 */ 0x6548,
- /* key: 0x7dd9 */ 0xd432,
- /* key: 0x7dda */ 0x407e,
- /* key: 0x7ddb */ 0xffff,
- /* key: 0x7ddc */ 0x6544,
- /* key: 0x7ddd */ 0x6549,
- /* key: 0x7dde */ 0x654b,
- /* key: 0x7ddf */ 0xffff,
- /* key: 0x7de0 */ 0x4479,
- /* key: 0x7de1 */ 0x654e,
- /* key: 0x7de2 */ 0xd434,
- /* key: 0x7de3 */ 0xffff,
- /* key: 0x7de4 */ 0x654a,
- /* key: 0x7de5 */ 0xd435,
- /* key: 0x7de6 */ 0xd436,
- /* key: 0x7de7 */ 0xffff,
- /* key: 0x7de8 */ 0x4a54,
- /* key: 0x7de9 */ 0x344b,
- /* key: 0x7dea */ 0xd437,
- /* key: 0x7deb */ 0xd438,
- /* key: 0x7dec */ 0x4c4b,
- /* key: 0x7ded */ 0xd439,
- /* key: 0x7dee */ 0xffff,
- /* key: 0x7def */ 0x305e,
- /* key: 0x7df0 */ 0xffff,
- /* key: 0x7df1 */ 0xd43a,
- /* key: 0x7df2 */ 0x654d,
- /* key: 0x7df3 */ 0xffff,
- /* key: 0x7df4 */ 0x4e7d,
- /* key: 0x7df5 */ 0xd43b,
- /* key: 0x7df6 */ 0xd43c,
- /* key: 0x7df7 */ 0xffff,
- /* key: 0x7df8 */ 0xffff,
- /* key: 0x7df9 */ 0xd43d,
- /* key: 0x7dfa */ 0xd43e,
- /* key: 0x7dfb */ 0x654c,
- /* key: 0x7dfc */ 0xffff,
- /* key: 0x7dfd */ 0xffff,
- /* key: 0x7dfe */ 0xffff,
- /* key: 0x7dff */ 0xffff,
- /* branch: 0x7e0X */ 14688,
- /* branch: 0x7e1X */ 14704,
- /* branch: 0x7e2X */ 14720,
- /* branch: 0x7e3X */ 14736,
- /* branch: 0x7e4X */ 14752,
- /* branch: 0x7e5X */ 14768,
- /* branch: 0x7e6X */ 14784,
- /* branch: 0x7e7X */ 14800,
- /* branch: 0x7e8X */ 14816,
- /* branch: 0x7e9X */ 14832,
- /* branch: 0x7eaX */ 0,
- /* branch: 0x7ebX */ 0,
- /* branch: 0x7ecX */ 0,
- /* branch: 0x7edX */ 0,
- /* branch: 0x7eeX */ 0,
- /* branch: 0x7efX */ 0,
- /* key: 0x7e00 */ 0xd433,
- /* key: 0x7e01 */ 0x316f,
- /* key: 0x7e02 */ 0xffff,
- /* key: 0x7e03 */ 0xffff,
- /* key: 0x7e04 */ 0x466c,
- /* key: 0x7e05 */ 0x654f,
- /* key: 0x7e06 */ 0xffff,
- /* key: 0x7e07 */ 0xffff,
- /* key: 0x7e08 */ 0xd43f,
- /* key: 0x7e09 */ 0x6556,
- /* key: 0x7e0a */ 0x6550,
- /* key: 0x7e0b */ 0x6557,
- /* key: 0x7e0c */ 0xffff,
- /* key: 0x7e0d */ 0xffff,
- /* key: 0x7e0e */ 0xffff,
- /* key: 0x7e0f */ 0xffff,
- /* key: 0x7e10 */ 0xd440,
- /* key: 0x7e11 */ 0xd441,
- /* key: 0x7e12 */ 0x6553,
- /* key: 0x7e13 */ 0xffff,
- /* key: 0x7e14 */ 0xffff,
- /* key: 0x7e15 */ 0xd442,
- /* key: 0x7e16 */ 0xffff,
- /* key: 0x7e17 */ 0xd443,
- /* key: 0x7e18 */ 0xffff,
- /* key: 0x7e19 */ 0xffff,
- /* key: 0x7e1a */ 0xffff,
- /* key: 0x7e1b */ 0x477b,
- /* key: 0x7e1c */ 0xd444,
- /* key: 0x7e1d */ 0xd445,
- /* key: 0x7e1e */ 0x3c4a,
- /* key: 0x7e1f */ 0x6555,
- /* key: 0x7e20 */ 0xd446,
- /* key: 0x7e21 */ 0x6552,
- /* key: 0x7e22 */ 0x6558,
- /* key: 0x7e23 */ 0x6551,
- /* key: 0x7e24 */ 0xffff,
- /* key: 0x7e25 */ 0xffff,
- /* key: 0x7e26 */ 0x3d44,
- /* key: 0x7e27 */ 0xd447,
- /* key: 0x7e28 */ 0xd448,
- /* key: 0x7e29 */ 0xffff,
- /* key: 0x7e2a */ 0xffff,
- /* key: 0x7e2b */ 0x4b25,
- /* key: 0x7e2c */ 0xd449,
- /* key: 0x7e2d */ 0xd44a,
- /* key: 0x7e2e */ 0x3d4c,
- /* key: 0x7e2f */ 0xd44b,
- /* key: 0x7e30 */ 0xffff,
- /* key: 0x7e31 */ 0x6554,
- /* key: 0x7e32 */ 0x6560,
- /* key: 0x7e33 */ 0xd44c,
- /* key: 0x7e34 */ 0xffff,
- /* key: 0x7e35 */ 0x655c,
- /* key: 0x7e36 */ 0xd44d,
- /* key: 0x7e37 */ 0x655f,
- /* key: 0x7e38 */ 0xffff,
- /* key: 0x7e39 */ 0x655d,
- /* key: 0x7e3a */ 0x6561,
- /* key: 0x7e3b */ 0x655b,
- /* key: 0x7e3c */ 0xffff,
- /* key: 0x7e3d */ 0x6541,
- /* key: 0x7e3e */ 0x4053,
- /* key: 0x7e3f */ 0xd44e,
- /* key: 0x7e40 */ 0xffff,
- /* key: 0x7e41 */ 0x484b,
- /* key: 0x7e42 */ 0xffff,
- /* key: 0x7e43 */ 0x655e,
- /* key: 0x7e44 */ 0xd44f,
- /* key: 0x7e45 */ 0xd450,
- /* key: 0x7e46 */ 0x6559,
- /* key: 0x7e47 */ 0xd451,
- /* key: 0x7e48 */ 0xffff,
- /* key: 0x7e49 */ 0xffff,
- /* key: 0x7e4a */ 0x4121,
- /* key: 0x7e4b */ 0x3752,
- /* key: 0x7e4c */ 0xffff,
- /* key: 0x7e4d */ 0x3d2b,
- /* key: 0x7e4e */ 0xd452,
- /* key: 0x7e4f */ 0xffff,
- /* key: 0x7e50 */ 0xd453,
- /* key: 0x7e51 */ 0xffff,
- /* key: 0x7e52 */ 0xd454,
- /* key: 0x7e53 */ 0xffff,
- /* key: 0x7e54 */ 0x3f25,
- /* key: 0x7e55 */ 0x4136,
- /* key: 0x7e56 */ 0x6564,
- /* key: 0x7e57 */ 0xffff,
- /* key: 0x7e58 */ 0xd455,
- /* key: 0x7e59 */ 0x6566,
- /* key: 0x7e5a */ 0x6567,
- /* key: 0x7e5b */ 0xffff,
- /* key: 0x7e5c */ 0xffff,
- /* key: 0x7e5d */ 0x6563,
- /* key: 0x7e5e */ 0x6565,
- /* key: 0x7e5f */ 0xd456,
- /* key: 0x7e60 */ 0xffff,
- /* key: 0x7e61 */ 0xd457,
- /* key: 0x7e62 */ 0xd458,
- /* key: 0x7e63 */ 0xffff,
- /* key: 0x7e64 */ 0xffff,
- /* key: 0x7e65 */ 0xd459,
- /* key: 0x7e66 */ 0x655a,
- /* key: 0x7e67 */ 0x6562,
- /* key: 0x7e68 */ 0xffff,
- /* key: 0x7e69 */ 0x656a,
- /* key: 0x7e6a */ 0x6569,
- /* key: 0x7e6b */ 0xd45a,
- /* key: 0x7e6c */ 0xffff,
- /* key: 0x7e6d */ 0x4b7a,
- /* key: 0x7e6e */ 0xd45b,
- /* key: 0x7e6f */ 0xd45c,
- /* key: 0x7e70 */ 0x372b,
- /* key: 0x7e71 */ 0xffff,
- /* key: 0x7e72 */ 0xffff,
- /* key: 0x7e73 */ 0xd45d,
- /* key: 0x7e74 */ 0xffff,
- /* key: 0x7e75 */ 0xffff,
- /* key: 0x7e76 */ 0xffff,
- /* key: 0x7e77 */ 0xffff,
- /* key: 0x7e78 */ 0xd45e,
- /* key: 0x7e79 */ 0x6568,
- /* key: 0x7e7a */ 0xffff,
- /* key: 0x7e7b */ 0x656c,
- /* key: 0x7e7c */ 0x656b,
- /* key: 0x7e7d */ 0x656f,
- /* key: 0x7e7e */ 0xd45f,
- /* key: 0x7e7f */ 0x6571,
- /* key: 0x7e80 */ 0xffff,
- /* key: 0x7e81 */ 0xd460,
- /* key: 0x7e82 */ 0x3b3c,
- /* key: 0x7e83 */ 0x656d,
- /* key: 0x7e84 */ 0xffff,
- /* key: 0x7e85 */ 0xffff,
- /* key: 0x7e86 */ 0xd461,
- /* key: 0x7e87 */ 0xd462,
- /* key: 0x7e88 */ 0x6572,
- /* key: 0x7e89 */ 0x6573,
- /* key: 0x7e8a */ 0xd463,
- /* key: 0x7e8b */ 0xffff,
- /* key: 0x7e8c */ 0x6574,
- /* key: 0x7e8d */ 0xd464,
- /* key: 0x7e8e */ 0x657a,
- /* key: 0x7e8f */ 0x453b,
- /* key: 0x7e90 */ 0x6576,
- /* key: 0x7e91 */ 0xd465,
- /* key: 0x7e92 */ 0x6575,
- /* key: 0x7e93 */ 0x6577,
- /* key: 0x7e94 */ 0x6578,
- /* key: 0x7e95 */ 0xd466,
- /* key: 0x7e96 */ 0x6579,
- /* key: 0x7e97 */ 0xffff,
- /* key: 0x7e98 */ 0xd467,
- /* key: 0x7e99 */ 0xffff,
- /* key: 0x7e9a */ 0xd468,
- /* key: 0x7e9b */ 0x657b,
- /* key: 0x7e9c */ 0x657c,
- /* key: 0x7e9d */ 0xd469,
- /* key: 0x7e9e */ 0xd46a,
- /* key: 0x7e9f */ 0xffff,
- /* branch: 0x7f0X */ 0,
- /* branch: 0x7f1X */ 0,
- /* branch: 0x7f2X */ 0,
- /* branch: 0x7f3X */ 14864,
- /* branch: 0x7f4X */ 14880,
- /* branch: 0x7f5X */ 14896,
- /* branch: 0x7f6X */ 14912,
- /* branch: 0x7f7X */ 14928,
- /* branch: 0x7f8X */ 14944,
- /* branch: 0x7f9X */ 14960,
- /* branch: 0x7faX */ 14976,
- /* branch: 0x7fbX */ 14992,
- /* branch: 0x7fcX */ 15008,
- /* branch: 0x7fdX */ 15024,
- /* branch: 0x7feX */ 15040,
- /* branch: 0x7ffX */ 15056,
- /* key: 0x7f30 */ 0xffff,
- /* key: 0x7f31 */ 0xffff,
- /* key: 0x7f32 */ 0xffff,
- /* key: 0x7f33 */ 0xffff,
- /* key: 0x7f34 */ 0xffff,
- /* key: 0x7f35 */ 0xffff,
- /* key: 0x7f36 */ 0x344c,
- /* key: 0x7f37 */ 0xffff,
- /* key: 0x7f38 */ 0x657d,
- /* key: 0x7f39 */ 0xffff,
- /* key: 0x7f3a */ 0x657e,
- /* key: 0x7f3b */ 0xd46c,
- /* key: 0x7f3c */ 0xd46b,
- /* key: 0x7f3d */ 0xd46d,
- /* key: 0x7f3e */ 0xd46e,
- /* key: 0x7f3f */ 0xd46f,
- /* key: 0x7f40 */ 0xffff,
- /* key: 0x7f41 */ 0xffff,
- /* key: 0x7f42 */ 0xffff,
- /* key: 0x7f43 */ 0xd470,
- /* key: 0x7f44 */ 0xd471,
- /* key: 0x7f45 */ 0x6621,
- /* key: 0x7f46 */ 0xffff,
- /* key: 0x7f47 */ 0xd472,
- /* key: 0x7f48 */ 0xffff,
- /* key: 0x7f49 */ 0xffff,
- /* key: 0x7f4a */ 0xffff,
- /* key: 0x7f4b */ 0xffff,
- /* key: 0x7f4c */ 0x6622,
- /* key: 0x7f4d */ 0x6623,
- /* key: 0x7f4e */ 0x6624,
- /* key: 0x7f4f */ 0xd473,
- /* key: 0x7f50 */ 0x6625,
- /* key: 0x7f51 */ 0x6626,
- /* key: 0x7f52 */ 0xd474,
- /* key: 0x7f53 */ 0xd475,
- /* key: 0x7f54 */ 0x6628,
- /* key: 0x7f55 */ 0x6627,
- /* key: 0x7f56 */ 0xffff,
- /* key: 0x7f57 */ 0xffff,
- /* key: 0x7f58 */ 0x6629,
- /* key: 0x7f59 */ 0xffff,
- /* key: 0x7f5a */ 0xffff,
- /* key: 0x7f5b */ 0xd476,
- /* key: 0x7f5c */ 0xd477,
- /* key: 0x7f5d */ 0xd478,
- /* key: 0x7f5e */ 0xffff,
- /* key: 0x7f5f */ 0x662a,
- /* key: 0x7f60 */ 0x662b,
- /* key: 0x7f61 */ 0xd479,
- /* key: 0x7f62 */ 0xffff,
- /* key: 0x7f63 */ 0xd47a,
- /* key: 0x7f64 */ 0xd47b,
- /* key: 0x7f65 */ 0xd47c,
- /* key: 0x7f66 */ 0xd47d,
- /* key: 0x7f67 */ 0x662e,
- /* key: 0x7f68 */ 0x662c,
- /* key: 0x7f69 */ 0x662d,
- /* key: 0x7f6a */ 0x3a61,
- /* key: 0x7f6b */ 0x3753,
- /* key: 0x7f6c */ 0xffff,
- /* key: 0x7f6d */ 0xd47e,
- /* key: 0x7f6e */ 0x4356,
- /* key: 0x7f6f */ 0xffff,
- /* key: 0x7f70 */ 0x4833,
- /* key: 0x7f71 */ 0xd521,
- /* key: 0x7f72 */ 0x3d70,
- /* key: 0x7f73 */ 0xffff,
- /* key: 0x7f74 */ 0xffff,
- /* key: 0x7f75 */ 0x474d,
- /* key: 0x7f76 */ 0xffff,
- /* key: 0x7f77 */ 0x486d,
- /* key: 0x7f78 */ 0x662f,
- /* key: 0x7f79 */ 0x586d,
- /* key: 0x7f7a */ 0xffff,
- /* key: 0x7f7b */ 0xffff,
- /* key: 0x7f7c */ 0xffff,
- /* key: 0x7f7d */ 0xd522,
- /* key: 0x7f7e */ 0xd523,
- /* key: 0x7f7f */ 0xd524,
- /* key: 0x7f80 */ 0xd525,
- /* key: 0x7f81 */ 0xffff,
- /* key: 0x7f82 */ 0x6630,
- /* key: 0x7f83 */ 0x6632,
- /* key: 0x7f84 */ 0xffff,
- /* key: 0x7f85 */ 0x4d65,
- /* key: 0x7f86 */ 0x6631,
- /* key: 0x7f87 */ 0x6634,
- /* key: 0x7f88 */ 0x6633,
- /* key: 0x7f89 */ 0xffff,
- /* key: 0x7f8a */ 0x4d53,
- /* key: 0x7f8b */ 0xd526,
- /* key: 0x7f8c */ 0x6635,
- /* key: 0x7f8d */ 0xd527,
- /* key: 0x7f8e */ 0x487e,
- /* key: 0x7f8f */ 0xd528,
- /* key: 0x7f90 */ 0xd529,
- /* key: 0x7f91 */ 0xd52a,
- /* key: 0x7f92 */ 0xffff,
- /* key: 0x7f93 */ 0xffff,
- /* key: 0x7f94 */ 0x6636,
- /* key: 0x7f95 */ 0xffff,
- /* key: 0x7f96 */ 0xd52b,
- /* key: 0x7f97 */ 0xd52c,
- /* key: 0x7f98 */ 0xffff,
- /* key: 0x7f99 */ 0xffff,
- /* key: 0x7f9a */ 0x6639,
- /* key: 0x7f9b */ 0xffff,
- /* key: 0x7f9c */ 0xd52d,
- /* key: 0x7f9d */ 0x6638,
- /* key: 0x7f9e */ 0x6637,
- /* key: 0x7f9f */ 0xffff,
- /* key: 0x7fa0 */ 0xffff,
- /* key: 0x7fa1 */ 0xd52e,
- /* key: 0x7fa2 */ 0xd52f,
- /* key: 0x7fa3 */ 0x663a,
- /* key: 0x7fa4 */ 0x3732,
- /* key: 0x7fa5 */ 0xffff,
- /* key: 0x7fa6 */ 0xd530,
- /* key: 0x7fa7 */ 0xffff,
- /* key: 0x7fa8 */ 0x4122,
- /* key: 0x7fa9 */ 0x3541,
- /* key: 0x7faa */ 0xd531,
- /* key: 0x7fab */ 0xffff,
- /* key: 0x7fac */ 0xffff,
- /* key: 0x7fad */ 0xd532,
- /* key: 0x7fae */ 0x663e,
- /* key: 0x7faf */ 0x663b,
- /* key: 0x7fb0 */ 0xffff,
- /* key: 0x7fb1 */ 0xffff,
- /* key: 0x7fb2 */ 0x663c,
- /* key: 0x7fb3 */ 0xffff,
- /* key: 0x7fb4 */ 0xd533,
- /* key: 0x7fb5 */ 0xffff,
- /* key: 0x7fb6 */ 0x663f,
- /* key: 0x7fb7 */ 0xffff,
- /* key: 0x7fb8 */ 0x6640,
- /* key: 0x7fb9 */ 0x663d,
- /* key: 0x7fba */ 0xffff,
- /* key: 0x7fbb */ 0xffff,
- /* key: 0x7fbc */ 0xd534,
- /* key: 0x7fbd */ 0x3129,
- /* key: 0x7fbe */ 0xffff,
- /* key: 0x7fbf */ 0xd535,
- /* key: 0x7fc0 */ 0xd536,
- /* key: 0x7fc1 */ 0x3227,
- /* key: 0x7fc2 */ 0xffff,
- /* key: 0x7fc3 */ 0xd537,
- /* key: 0x7fc4 */ 0xffff,
- /* key: 0x7fc5 */ 0x6642,
- /* key: 0x7fc6 */ 0x6643,
- /* key: 0x7fc7 */ 0xffff,
- /* key: 0x7fc8 */ 0xd538,
- /* key: 0x7fc9 */ 0xffff,
- /* key: 0x7fca */ 0x6644,
- /* key: 0x7fcb */ 0xffff,
- /* key: 0x7fcc */ 0x4d62,
- /* key: 0x7fcd */ 0xffff,
- /* key: 0x7fce */ 0xd539,
- /* key: 0x7fcf */ 0xd53a,
- /* key: 0x7fd0 */ 0xffff,
- /* key: 0x7fd1 */ 0xffff,
- /* key: 0x7fd2 */ 0x3d2c,
- /* key: 0x7fd3 */ 0xffff,
- /* key: 0x7fd4 */ 0x6646,
- /* key: 0x7fd5 */ 0x6645,
- /* key: 0x7fd6 */ 0xffff,
- /* key: 0x7fd7 */ 0xffff,
- /* key: 0x7fd8 */ 0xffff,
- /* key: 0x7fd9 */ 0xffff,
- /* key: 0x7fda */ 0xffff,
- /* key: 0x7fdb */ 0xd53b,
- /* key: 0x7fdc */ 0xffff,
- /* key: 0x7fdd */ 0xffff,
- /* key: 0x7fde */ 0xffff,
- /* key: 0x7fdf */ 0xd53c,
- /* key: 0x7fe0 */ 0x3f69,
- /* key: 0x7fe1 */ 0x6647,
- /* key: 0x7fe2 */ 0xffff,
- /* key: 0x7fe3 */ 0xd53d,
- /* key: 0x7fe4 */ 0xffff,
- /* key: 0x7fe5 */ 0xd53e,
- /* key: 0x7fe6 */ 0x6648,
- /* key: 0x7fe7 */ 0xffff,
- /* key: 0x7fe8 */ 0xd53f,
- /* key: 0x7fe9 */ 0x6649,
- /* key: 0x7fea */ 0xffff,
- /* key: 0x7feb */ 0x3465,
- /* key: 0x7fec */ 0xd540,
- /* key: 0x7fed */ 0xffff,
- /* key: 0x7fee */ 0xd541,
- /* key: 0x7fef */ 0xd542,
- /* key: 0x7ff0 */ 0x344d,
- /* key: 0x7ff1 */ 0xffff,
- /* key: 0x7ff2 */ 0xd543,
- /* key: 0x7ff3 */ 0x664a,
- /* key: 0x7ff4 */ 0xffff,
- /* key: 0x7ff5 */ 0xffff,
- /* key: 0x7ff6 */ 0xffff,
- /* key: 0x7ff7 */ 0xffff,
- /* key: 0x7ff8 */ 0xffff,
- /* key: 0x7ff9 */ 0x664b,
- /* key: 0x7ffa */ 0xd544,
- /* key: 0x7ffb */ 0x4b5d,
- /* key: 0x7ffc */ 0x4d63,
- /* key: 0x7ffd */ 0xd545,
- /* key: 0x7ffe */ 0xd546,
- /* key: 0x7fff */ 0xd547,
- /* branch: 0x80XX */ 15088,
- /* branch: 0x81XX */ 15360,
- /* branch: 0x82XX */ 15632,
- /* branch: 0x83XX */ 15904,
- /* branch: 0x84XX */ 16160,
- /* branch: 0x85XX */ 16432,
- /* branch: 0x86XX */ 16704,
- /* branch: 0x87XX */ 16976,
- /* branch: 0x88XX */ 17248,
- /* branch: 0x89XX */ 17520,
- /* branch: 0x8aXX */ 17792,
- /* branch: 0x8bXX */ 18064,
- /* branch: 0x8cXX */ 18240,
- /* branch: 0x8dXX */ 18464,
- /* branch: 0x8eXX */ 18672,
- /* branch: 0x8fXX */ 18944,
- /* branch: 0x800X */ 15104,
- /* branch: 0x801X */ 15120,
- /* branch: 0x802X */ 15136,
- /* branch: 0x803X */ 15152,
- /* branch: 0x804X */ 15168,
- /* branch: 0x805X */ 15184,
- /* branch: 0x806X */ 15200,
- /* branch: 0x807X */ 15216,
- /* branch: 0x808X */ 15232,
- /* branch: 0x809X */ 15248,
- /* branch: 0x80aX */ 15264,
- /* branch: 0x80bX */ 15280,
- /* branch: 0x80cX */ 15296,
- /* branch: 0x80dX */ 15312,
- /* branch: 0x80eX */ 15328,
- /* branch: 0x80fX */ 15344,
- /* key: 0x8000 */ 0x4d54,
- /* key: 0x8001 */ 0x4f37,
- /* key: 0x8002 */ 0xffff,
- /* key: 0x8003 */ 0x394d,
- /* key: 0x8004 */ 0x664e,
- /* key: 0x8005 */ 0x3c54,
- /* key: 0x8006 */ 0x664d,
- /* key: 0x8007 */ 0xd548,
- /* key: 0x8008 */ 0xd549,
- /* key: 0x8009 */ 0xffff,
- /* key: 0x800a */ 0xd54a,
- /* key: 0x800b */ 0x664f,
- /* key: 0x800c */ 0x3c29,
- /* key: 0x800d */ 0xd54b,
- /* key: 0x800e */ 0xd54c,
- /* key: 0x800f */ 0xd54d,
- /* key: 0x8010 */ 0x4251,
- /* key: 0x8011 */ 0xd54e,
- /* key: 0x8012 */ 0x6650,
- /* key: 0x8013 */ 0xd54f,
- /* key: 0x8014 */ 0xd550,
- /* key: 0x8015 */ 0x394c,
- /* key: 0x8016 */ 0xd551,
- /* key: 0x8017 */ 0x4c57,
- /* key: 0x8018 */ 0x6651,
- /* key: 0x8019 */ 0x6652,
- /* key: 0x801a */ 0xffff,
- /* key: 0x801b */ 0xffff,
- /* key: 0x801c */ 0x6653,
- /* key: 0x801d */ 0xd552,
- /* key: 0x801e */ 0xd553,
- /* key: 0x801f */ 0xd554,
- /* key: 0x8020 */ 0xd555,
- /* key: 0x8021 */ 0x6654,
- /* key: 0x8022 */ 0xffff,
- /* key: 0x8023 */ 0xffff,
- /* key: 0x8024 */ 0xd556,
- /* key: 0x8025 */ 0xffff,
- /* key: 0x8026 */ 0xd557,
- /* key: 0x8027 */ 0xffff,
- /* key: 0x8028 */ 0x6655,
- /* key: 0x8029 */ 0xffff,
- /* key: 0x802a */ 0xffff,
- /* key: 0x802b */ 0xffff,
- /* key: 0x802c */ 0xd558,
- /* key: 0x802d */ 0xffff,
- /* key: 0x802e */ 0xd559,
- /* key: 0x802f */ 0xffff,
- /* key: 0x8030 */ 0xd55a,
- /* key: 0x8031 */ 0xffff,
- /* key: 0x8032 */ 0xffff,
- /* key: 0x8033 */ 0x3c2a,
- /* key: 0x8034 */ 0xd55b,
- /* key: 0x8035 */ 0xd55c,
- /* key: 0x8036 */ 0x4c6d,
- /* key: 0x8037 */ 0xd55d,
- /* key: 0x8038 */ 0xffff,
- /* key: 0x8039 */ 0xd55e,
- /* key: 0x803a */ 0xd55f,
- /* key: 0x803b */ 0x6657,
- /* key: 0x803c */ 0xd560,
- /* key: 0x803d */ 0x433f,
- /* key: 0x803e */ 0xd561,
- /* key: 0x803f */ 0x6656,
- /* key: 0x8040 */ 0xd562,
- /* key: 0x8041 */ 0xffff,
- /* key: 0x8042 */ 0xffff,
- /* key: 0x8043 */ 0xffff,
- /* key: 0x8044 */ 0xd563,
- /* key: 0x8045 */ 0xffff,
- /* key: 0x8046 */ 0x6659,
- /* key: 0x8047 */ 0xffff,
- /* key: 0x8048 */ 0xffff,
- /* key: 0x8049 */ 0xffff,
- /* key: 0x804a */ 0x6658,
- /* key: 0x804b */ 0xffff,
- /* key: 0x804c */ 0xffff,
- /* key: 0x804d */ 0xffff,
- /* key: 0x804e */ 0xffff,
- /* key: 0x804f */ 0xffff,
- /* key: 0x8050 */ 0xffff,
- /* key: 0x8051 */ 0xffff,
- /* key: 0x8052 */ 0x665a,
- /* key: 0x8053 */ 0xffff,
- /* key: 0x8054 */ 0xffff,
- /* key: 0x8055 */ 0xffff,
- /* key: 0x8056 */ 0x403b,
- /* key: 0x8057 */ 0xffff,
- /* key: 0x8058 */ 0x665b,
- /* key: 0x8059 */ 0xffff,
- /* key: 0x805a */ 0x665c,
- /* key: 0x805b */ 0xffff,
- /* key: 0x805c */ 0xffff,
- /* key: 0x805d */ 0xffff,
- /* key: 0x805e */ 0x4a39,
- /* key: 0x805f */ 0x665d,
- /* key: 0x8060 */ 0xd564,
- /* key: 0x8061 */ 0x416f,
- /* key: 0x8062 */ 0x665e,
- /* key: 0x8063 */ 0xffff,
- /* key: 0x8064 */ 0xd565,
- /* key: 0x8065 */ 0xffff,
- /* key: 0x8066 */ 0xd566,
- /* key: 0x8067 */ 0xffff,
- /* key: 0x8068 */ 0x665f,
- /* key: 0x8069 */ 0xffff,
- /* key: 0x806a */ 0xffff,
- /* key: 0x806b */ 0xffff,
- /* key: 0x806c */ 0xffff,
- /* key: 0x806d */ 0xd567,
- /* key: 0x806e */ 0xffff,
- /* key: 0x806f */ 0x4e7e,
- /* key: 0x8070 */ 0x6662,
- /* key: 0x8071 */ 0xd568,
- /* key: 0x8072 */ 0x6661,
- /* key: 0x8073 */ 0x6660,
- /* key: 0x8074 */ 0x4430,
- /* key: 0x8075 */ 0xd569,
- /* key: 0x8076 */ 0x6663,
- /* key: 0x8077 */ 0x3f26,
- /* key: 0x8078 */ 0xffff,
- /* key: 0x8079 */ 0x6664,
- /* key: 0x807a */ 0xffff,
- /* key: 0x807b */ 0xffff,
- /* key: 0x807c */ 0xffff,
- /* key: 0x807d */ 0x6665,
- /* key: 0x807e */ 0x4f38,
- /* key: 0x807f */ 0x6666,
- /* key: 0x8080 */ 0xffff,
- /* key: 0x8081 */ 0xd56a,
- /* key: 0x8082 */ 0xffff,
- /* key: 0x8083 */ 0xffff,
- /* key: 0x8084 */ 0x6667,
- /* key: 0x8085 */ 0x6669,
- /* key: 0x8086 */ 0x6668,
- /* key: 0x8087 */ 0x4825,
- /* key: 0x8088 */ 0xd56b,
- /* key: 0x8089 */ 0x4679,
- /* key: 0x808a */ 0xffff,
- /* key: 0x808b */ 0x4f3e,
- /* key: 0x808c */ 0x4829,
- /* key: 0x808d */ 0xffff,
- /* key: 0x808e */ 0xd56c,
- /* key: 0x808f */ 0xffff,
- /* key: 0x8090 */ 0xffff,
- /* key: 0x8091 */ 0xffff,
- /* key: 0x8092 */ 0xffff,
- /* key: 0x8093 */ 0x666b,
- /* key: 0x8094 */ 0xffff,
- /* key: 0x8095 */ 0xffff,
- /* key: 0x8096 */ 0x3e53,
- /* key: 0x8097 */ 0xffff,
- /* key: 0x8098 */ 0x492a,
- /* key: 0x8099 */ 0xffff,
- /* key: 0x809a */ 0x666c,
- /* key: 0x809b */ 0x666a,
- /* key: 0x809c */ 0xd56d,
- /* key: 0x809d */ 0x344e,
- /* key: 0x809e */ 0xd56e,
- /* key: 0x809f */ 0xffff,
- /* key: 0x80a0 */ 0xffff,
- /* key: 0x80a1 */ 0x3854,
- /* key: 0x80a2 */ 0x3b68,
- /* key: 0x80a3 */ 0xffff,
- /* key: 0x80a4 */ 0xffff,
- /* key: 0x80a5 */ 0x486e,
- /* key: 0x80a6 */ 0xd56f,
- /* key: 0x80a7 */ 0xd570,
- /* key: 0x80a8 */ 0xffff,
- /* key: 0x80a9 */ 0x382a,
- /* key: 0x80aa */ 0x4b43,
- /* key: 0x80ab */ 0xd571,
- /* key: 0x80ac */ 0x666f,
- /* key: 0x80ad */ 0x666d,
- /* key: 0x80ae */ 0xffff,
- /* key: 0x80af */ 0x394e,
- /* key: 0x80b0 */ 0xffff,
- /* key: 0x80b1 */ 0x394f,
- /* key: 0x80b2 */ 0x3069,
- /* key: 0x80b3 */ 0xffff,
- /* key: 0x80b4 */ 0x3a68,
- /* key: 0x80b5 */ 0xffff,
- /* key: 0x80b6 */ 0xffff,
- /* key: 0x80b7 */ 0xffff,
- /* key: 0x80b8 */ 0xd572,
- /* key: 0x80b9 */ 0xd573,
- /* key: 0x80ba */ 0x4759,
- /* key: 0x80bb */ 0xffff,
- /* key: 0x80bc */ 0xffff,
- /* key: 0x80bd */ 0xffff,
- /* key: 0x80be */ 0xffff,
- /* key: 0x80bf */ 0xffff,
- /* key: 0x80c0 */ 0xffff,
- /* key: 0x80c1 */ 0xffff,
- /* key: 0x80c2 */ 0xffff,
- /* key: 0x80c3 */ 0x305f,
- /* key: 0x80c4 */ 0x6674,
- /* key: 0x80c5 */ 0xffff,
- /* key: 0x80c6 */ 0x4340,
- /* key: 0x80c7 */ 0xffff,
- /* key: 0x80c8 */ 0xd574,
- /* key: 0x80c9 */ 0xffff,
- /* key: 0x80ca */ 0xffff,
- /* key: 0x80cb */ 0xffff,
- /* key: 0x80cc */ 0x4758,
- /* key: 0x80cd */ 0xd575,
- /* key: 0x80ce */ 0x425b,
- /* key: 0x80cf */ 0xd576,
- /* key: 0x80d0 */ 0xffff,
- /* key: 0x80d1 */ 0xffff,
- /* key: 0x80d2 */ 0xd577,
- /* key: 0x80d3 */ 0xffff,
- /* key: 0x80d4 */ 0xd578,
- /* key: 0x80d5 */ 0xd579,
- /* key: 0x80d6 */ 0x6676,
- /* key: 0x80d7 */ 0xd57a,
- /* key: 0x80d8 */ 0xd57b,
- /* key: 0x80d9 */ 0x6672,
- /* key: 0x80da */ 0x6675,
- /* key: 0x80db */ 0x6670,
- /* key: 0x80dc */ 0xffff,
- /* key: 0x80dd */ 0x6673,
- /* key: 0x80de */ 0x4b26,
- /* key: 0x80df */ 0xffff,
- /* key: 0x80e0 */ 0xd57c,
- /* key: 0x80e1 */ 0x3855,
- /* key: 0x80e2 */ 0xffff,
- /* key: 0x80e3 */ 0xffff,
- /* key: 0x80e4 */ 0x307d,
- /* key: 0x80e5 */ 0x6671,
- /* key: 0x80e6 */ 0xffff,
- /* key: 0x80e7 */ 0xffff,
- /* key: 0x80e8 */ 0xffff,
- /* key: 0x80e9 */ 0xffff,
- /* key: 0x80ea */ 0xffff,
- /* key: 0x80eb */ 0xffff,
- /* key: 0x80ec */ 0xffff,
- /* key: 0x80ed */ 0xd57d,
- /* key: 0x80ee */ 0xd57e,
- /* key: 0x80ef */ 0x6678,
- /* key: 0x80f0 */ 0xd621,
- /* key: 0x80f1 */ 0x6679,
- /* key: 0x80f2 */ 0xd622,
- /* key: 0x80f3 */ 0xd623,
- /* key: 0x80f4 */ 0x4639,
- /* key: 0x80f5 */ 0xffff,
- /* key: 0x80f6 */ 0xd624,
- /* key: 0x80f7 */ 0xffff,
- /* key: 0x80f8 */ 0x363b,
- /* key: 0x80f9 */ 0xd625,
- /* key: 0x80fa */ 0xd626,
- /* key: 0x80fb */ 0xffff,
- /* key: 0x80fc */ 0x6726,
- /* key: 0x80fd */ 0x473d,
- /* key: 0x80fe */ 0xd627,
- /* key: 0x80ff */ 0xffff,
- /* branch: 0x810X */ 15376,
- /* branch: 0x811X */ 15392,
- /* branch: 0x812X */ 15408,
- /* branch: 0x813X */ 15424,
- /* branch: 0x814X */ 15440,
- /* branch: 0x815X */ 15456,
- /* branch: 0x816X */ 15472,
- /* branch: 0x817X */ 15488,
- /* branch: 0x818X */ 15504,
- /* branch: 0x819X */ 15520,
- /* branch: 0x81aX */ 15536,
- /* branch: 0x81bX */ 15552,
- /* branch: 0x81cX */ 15568,
- /* branch: 0x81dX */ 15584,
- /* branch: 0x81eX */ 15600,
- /* branch: 0x81fX */ 15616,
- /* key: 0x8100 */ 0xffff,
- /* key: 0x8101 */ 0xffff,
- /* key: 0x8102 */ 0x3b69,
- /* key: 0x8103 */ 0xd628,
- /* key: 0x8104 */ 0xffff,
- /* key: 0x8105 */ 0x363c,
- /* key: 0x8106 */ 0x4048,
- /* key: 0x8107 */ 0x4f46,
- /* key: 0x8108 */ 0x4c2e,
- /* key: 0x8109 */ 0x6677,
- /* key: 0x810a */ 0x4054,
- /* key: 0x810b */ 0xd629,
- /* key: 0x810c */ 0xffff,
- /* key: 0x810d */ 0xffff,
- /* key: 0x810e */ 0xffff,
- /* key: 0x810f */ 0xffff,
- /* key: 0x8110 */ 0xffff,
- /* key: 0x8111 */ 0xffff,
- /* key: 0x8112 */ 0xffff,
- /* key: 0x8113 */ 0xffff,
- /* key: 0x8114 */ 0xffff,
- /* key: 0x8115 */ 0xffff,
- /* key: 0x8116 */ 0xd62a,
- /* key: 0x8117 */ 0xd62b,
- /* key: 0x8118 */ 0xd62c,
- /* key: 0x8119 */ 0xffff,
- /* key: 0x811a */ 0x3553,
- /* key: 0x811b */ 0x667a,
- /* key: 0x811c */ 0xd62d,
- /* key: 0x811d */ 0xffff,
- /* key: 0x811e */ 0xd62e,
- /* key: 0x811f */ 0xffff,
- /* key: 0x8120 */ 0xd62f,
- /* key: 0x8121 */ 0xffff,
- /* key: 0x8122 */ 0xffff,
- /* key: 0x8123 */ 0x667c,
- /* key: 0x8124 */ 0xd630,
- /* key: 0x8125 */ 0xffff,
- /* key: 0x8126 */ 0xffff,
- /* key: 0x8127 */ 0xd631,
- /* key: 0x8128 */ 0xffff,
- /* key: 0x8129 */ 0x667b,
- /* key: 0x812a */ 0xffff,
- /* key: 0x812b */ 0xffff,
- /* key: 0x812c */ 0xd632,
- /* key: 0x812d */ 0xffff,
- /* key: 0x812e */ 0xffff,
- /* key: 0x812f */ 0x667d,
- /* key: 0x8130 */ 0xd633,
- /* key: 0x8131 */ 0x4326,
- /* key: 0x8132 */ 0xffff,
- /* key: 0x8133 */ 0x473e,
- /* key: 0x8134 */ 0xffff,
- /* key: 0x8135 */ 0xd634,
- /* key: 0x8136 */ 0xffff,
- /* key: 0x8137 */ 0xffff,
- /* key: 0x8138 */ 0xffff,
- /* key: 0x8139 */ 0x4431,
- /* key: 0x813a */ 0xd635,
- /* key: 0x813b */ 0xffff,
- /* key: 0x813c */ 0xd636,
- /* key: 0x813d */ 0xffff,
- /* key: 0x813e */ 0x6723,
- /* key: 0x813f */ 0xffff,
- /* key: 0x8140 */ 0xffff,
- /* key: 0x8141 */ 0xffff,
- /* key: 0x8142 */ 0xffff,
- /* key: 0x8143 */ 0xffff,
- /* key: 0x8144 */ 0xffff,
- /* key: 0x8145 */ 0xd637,
- /* key: 0x8146 */ 0x6722,
- /* key: 0x8147 */ 0xd638,
- /* key: 0x8148 */ 0xffff,
- /* key: 0x8149 */ 0xffff,
- /* key: 0x814a */ 0xd639,
- /* key: 0x814b */ 0x667e,
- /* key: 0x814c */ 0xd63a,
- /* key: 0x814d */ 0xffff,
- /* key: 0x814e */ 0x3f55,
- /* key: 0x814f */ 0xffff,
- /* key: 0x8150 */ 0x4965,
- /* key: 0x8151 */ 0x6725,
- /* key: 0x8152 */ 0xd63b,
- /* key: 0x8153 */ 0x6724,
- /* key: 0x8154 */ 0x3950,
- /* key: 0x8155 */ 0x4f53,
- /* key: 0x8156 */ 0xffff,
- /* key: 0x8157 */ 0xd63c,
- /* key: 0x8158 */ 0xffff,
- /* key: 0x8159 */ 0xffff,
- /* key: 0x815a */ 0xffff,
- /* key: 0x815b */ 0xffff,
- /* key: 0x815c */ 0xffff,
- /* key: 0x815d */ 0xffff,
- /* key: 0x815e */ 0xffff,
- /* key: 0x815f */ 0x6735,
- /* key: 0x8160 */ 0xd63d,
- /* key: 0x8161 */ 0xd63e,
- /* key: 0x8162 */ 0xffff,
- /* key: 0x8163 */ 0xffff,
- /* key: 0x8164 */ 0xffff,
- /* key: 0x8165 */ 0x6729,
- /* key: 0x8166 */ 0x672a,
- /* key: 0x8167 */ 0xd63f,
- /* key: 0x8168 */ 0xd640,
- /* key: 0x8169 */ 0xd641,
- /* key: 0x816a */ 0xffff,
- /* key: 0x816b */ 0x3c70,
- /* key: 0x816c */ 0xffff,
- /* key: 0x816d */ 0xd642,
- /* key: 0x816e */ 0x6728,
- /* key: 0x816f */ 0xd643,
- /* key: 0x8170 */ 0x3978,
- /* key: 0x8171 */ 0x6727,
- /* key: 0x8172 */ 0xffff,
- /* key: 0x8173 */ 0xffff,
- /* key: 0x8174 */ 0x672b,
- /* key: 0x8175 */ 0xffff,
- /* key: 0x8176 */ 0xffff,
- /* key: 0x8177 */ 0xd644,
- /* key: 0x8178 */ 0x4432,
- /* key: 0x8179 */ 0x4a22,
- /* key: 0x817a */ 0x4123,
- /* key: 0x817b */ 0xffff,
- /* key: 0x817c */ 0xffff,
- /* key: 0x817d */ 0xffff,
- /* key: 0x817e */ 0xffff,
- /* key: 0x817f */ 0x425c,
- /* key: 0x8180 */ 0x672f,
- /* key: 0x8181 */ 0xd645,
- /* key: 0x8182 */ 0x6730,
- /* key: 0x8183 */ 0x672c,
- /* key: 0x8184 */ 0xd647,
- /* key: 0x8185 */ 0xd648,
- /* key: 0x8186 */ 0xd649,
- /* key: 0x8187 */ 0xffff,
- /* key: 0x8188 */ 0x672d,
- /* key: 0x8189 */ 0xffff,
- /* key: 0x818a */ 0x672e,
- /* key: 0x818b */ 0xd64a,
- /* key: 0x818c */ 0xffff,
- /* key: 0x818d */ 0xffff,
- /* key: 0x818e */ 0xd64b,
- /* key: 0x818f */ 0x3951,
- /* key: 0x8190 */ 0xd646,
- /* key: 0x8191 */ 0xffff,
- /* key: 0x8192 */ 0xffff,
- /* key: 0x8193 */ 0x6736,
- /* key: 0x8194 */ 0xffff,
- /* key: 0x8195 */ 0x6732,
- /* key: 0x8196 */ 0xd64c,
- /* key: 0x8197 */ 0xffff,
- /* key: 0x8198 */ 0xd64d,
- /* key: 0x8199 */ 0xffff,
- /* key: 0x819a */ 0x4966,
- /* key: 0x819b */ 0xd64e,
- /* key: 0x819c */ 0x4b6c,
- /* key: 0x819d */ 0x4928,
- /* key: 0x819e */ 0xd64f,
- /* key: 0x819f */ 0xffff,
- /* key: 0x81a0 */ 0x6731,
- /* key: 0x81a1 */ 0xffff,
- /* key: 0x81a2 */ 0xd650,
- /* key: 0x81a3 */ 0x6734,
- /* key: 0x81a4 */ 0x6733,
- /* key: 0x81a5 */ 0xffff,
- /* key: 0x81a6 */ 0xffff,
- /* key: 0x81a7 */ 0xffff,
- /* key: 0x81a8 */ 0x4b44,
- /* key: 0x81a9 */ 0x6737,
- /* key: 0x81aa */ 0xffff,
- /* key: 0x81ab */ 0xffff,
- /* key: 0x81ac */ 0xffff,
- /* key: 0x81ad */ 0xffff,
- /* key: 0x81ae */ 0xd651,
- /* key: 0x81af */ 0xffff,
- /* key: 0x81b0 */ 0x6738,
- /* key: 0x81b1 */ 0xffff,
- /* key: 0x81b2 */ 0xd652,
- /* key: 0x81b3 */ 0x4137,
- /* key: 0x81b4 */ 0xd653,
- /* key: 0x81b5 */ 0x6739,
- /* key: 0x81b6 */ 0xffff,
- /* key: 0x81b7 */ 0xffff,
- /* key: 0x81b8 */ 0x673b,
- /* key: 0x81b9 */ 0xffff,
- /* key: 0x81ba */ 0x673f,
- /* key: 0x81bb */ 0xd654,
- /* key: 0x81bc */ 0xffff,
- /* key: 0x81bd */ 0x673c,
- /* key: 0x81be */ 0x673a,
- /* key: 0x81bf */ 0x473f,
- /* key: 0x81c0 */ 0x673d,
- /* key: 0x81c1 */ 0xffff,
- /* key: 0x81c2 */ 0x673e,
- /* key: 0x81c3 */ 0xd656,
- /* key: 0x81c4 */ 0xffff,
- /* key: 0x81c5 */ 0xd657,
- /* key: 0x81c6 */ 0x3232,
- /* key: 0x81c7 */ 0xffff,
- /* key: 0x81c8 */ 0x6745,
- /* key: 0x81c9 */ 0x6740,
- /* key: 0x81ca */ 0xd658,
- /* key: 0x81cb */ 0xd655,
- /* key: 0x81cc */ 0xffff,
- /* key: 0x81cd */ 0x6741,
- /* key: 0x81ce */ 0xd659,
- /* key: 0x81cf */ 0xd65a,
- /* key: 0x81d0 */ 0xffff,
- /* key: 0x81d1 */ 0x6742,
- /* key: 0x81d2 */ 0xffff,
- /* key: 0x81d3 */ 0x4221,
- /* key: 0x81d4 */ 0xffff,
- /* key: 0x81d5 */ 0xd65b,
- /* key: 0x81d6 */ 0xffff,
- /* key: 0x81d7 */ 0xd65c,
- /* key: 0x81d8 */ 0x6744,
- /* key: 0x81d9 */ 0x6743,
- /* key: 0x81da */ 0x6746,
- /* key: 0x81db */ 0xd65d,
- /* key: 0x81dc */ 0xffff,
- /* key: 0x81dd */ 0xd65e,
- /* key: 0x81de */ 0xd65f,
- /* key: 0x81df */ 0x6747,
- /* key: 0x81e0 */ 0x6748,
- /* key: 0x81e1 */ 0xd660,
- /* key: 0x81e2 */ 0xffff,
- /* key: 0x81e3 */ 0x3f43,
- /* key: 0x81e4 */ 0xd661,
- /* key: 0x81e5 */ 0x3269,
- /* key: 0x81e6 */ 0xffff,
- /* key: 0x81e7 */ 0x6749,
- /* key: 0x81e8 */ 0x4e57,
- /* key: 0x81e9 */ 0xffff,
- /* key: 0x81ea */ 0x3c2b,
- /* key: 0x81eb */ 0xd662,
- /* key: 0x81ec */ 0xd663,
- /* key: 0x81ed */ 0x3d2d,
- /* key: 0x81ee */ 0xffff,
- /* key: 0x81ef */ 0xffff,
- /* key: 0x81f0 */ 0xd664,
- /* key: 0x81f1 */ 0xd665,
- /* key: 0x81f2 */ 0xd666,
- /* key: 0x81f3 */ 0x3b6a,
- /* key: 0x81f4 */ 0x4357,
- /* key: 0x81f5 */ 0xd667,
- /* key: 0x81f6 */ 0xd668,
- /* key: 0x81f7 */ 0xffff,
- /* key: 0x81f8 */ 0xd669,
- /* key: 0x81f9 */ 0xd66a,
- /* key: 0x81fa */ 0x674a,
- /* key: 0x81fb */ 0x674b,
- /* key: 0x81fc */ 0x3131,
- /* key: 0x81fd */ 0xd66b,
- /* key: 0x81fe */ 0x674c,
- /* key: 0x81ff */ 0xd66c,
- /* branch: 0x820X */ 15648,
- /* branch: 0x821X */ 15664,
- /* branch: 0x822X */ 15680,
- /* branch: 0x823X */ 15696,
- /* branch: 0x824X */ 15712,
- /* branch: 0x825X */ 15728,
- /* branch: 0x826X */ 15744,
- /* branch: 0x827X */ 15760,
- /* branch: 0x828X */ 15776,
- /* branch: 0x829X */ 15792,
- /* branch: 0x82aX */ 15808,
- /* branch: 0x82bX */ 15824,
- /* branch: 0x82cX */ 15840,
- /* branch: 0x82dX */ 15856,
- /* branch: 0x82eX */ 15872,
- /* branch: 0x82fX */ 15888,
- /* key: 0x8200 */ 0xd66d,
- /* key: 0x8201 */ 0x674d,
- /* key: 0x8202 */ 0x674e,
- /* key: 0x8203 */ 0xd66e,
- /* key: 0x8204 */ 0xffff,
- /* key: 0x8205 */ 0x674f,
- /* key: 0x8206 */ 0xffff,
- /* key: 0x8207 */ 0x6750,
- /* key: 0x8208 */ 0x363d,
- /* key: 0x8209 */ 0x5a2a,
- /* key: 0x820a */ 0x6751,
- /* key: 0x820b */ 0xffff,
- /* key: 0x820c */ 0x4065,
- /* key: 0x820d */ 0x6752,
- /* key: 0x820e */ 0x3c4b,
- /* key: 0x820f */ 0xd66f,
- /* key: 0x8210 */ 0x6753,
- /* key: 0x8211 */ 0xffff,
- /* key: 0x8212 */ 0x5030,
- /* key: 0x8213 */ 0xd670,
- /* key: 0x8214 */ 0xd671,
- /* key: 0x8215 */ 0xffff,
- /* key: 0x8216 */ 0x6754,
- /* key: 0x8217 */ 0x4a5e,
- /* key: 0x8218 */ 0x345c,
- /* key: 0x8219 */ 0xd672,
- /* key: 0x821a */ 0xd673,
- /* key: 0x821b */ 0x4124,
- /* key: 0x821c */ 0x3d58,
- /* key: 0x821d */ 0xd674,
- /* key: 0x821e */ 0x4971,
- /* key: 0x821f */ 0x3d2e,
- /* key: 0x8220 */ 0xffff,
- /* key: 0x8221 */ 0xd675,
- /* key: 0x8222 */ 0xd676,
- /* key: 0x8223 */ 0xffff,
- /* key: 0x8224 */ 0xffff,
- /* key: 0x8225 */ 0xffff,
- /* key: 0x8226 */ 0xffff,
- /* key: 0x8227 */ 0xffff,
- /* key: 0x8228 */ 0xd677,
- /* key: 0x8229 */ 0x6755,
- /* key: 0x822a */ 0x3952,
- /* key: 0x822b */ 0x6756,
- /* key: 0x822c */ 0x484c,
- /* key: 0x822d */ 0xffff,
- /* key: 0x822e */ 0x6764,
- /* key: 0x822f */ 0xffff,
- /* key: 0x8230 */ 0xffff,
- /* key: 0x8231 */ 0xffff,
- /* key: 0x8232 */ 0xd678,
- /* key: 0x8233 */ 0x6758,
- /* key: 0x8234 */ 0xd679,
- /* key: 0x8235 */ 0x4249,
- /* key: 0x8236 */ 0x4775,
- /* key: 0x8237 */ 0x383f,
- /* key: 0x8238 */ 0x6757,
- /* key: 0x8239 */ 0x4125,
- /* key: 0x823a */ 0xd67a,
- /* key: 0x823b */ 0xffff,
- /* key: 0x823c */ 0xffff,
- /* key: 0x823d */ 0xffff,
- /* key: 0x823e */ 0xffff,
- /* key: 0x823f */ 0xffff,
- /* key: 0x8240 */ 0x6759,
- /* key: 0x8241 */ 0xffff,
- /* key: 0x8242 */ 0xffff,
- /* key: 0x8243 */ 0xd67b,
- /* key: 0x8244 */ 0xd67c,
- /* key: 0x8245 */ 0xd67d,
- /* key: 0x8246 */ 0xd67e,
- /* key: 0x8247 */ 0x447a,
- /* key: 0x8248 */ 0xffff,
- /* key: 0x8249 */ 0xffff,
- /* key: 0x824a */ 0xffff,
- /* key: 0x824b */ 0xd721,
- /* key: 0x824c */ 0xffff,
- /* key: 0x824d */ 0xffff,
- /* key: 0x824e */ 0xd722,
- /* key: 0x824f */ 0xd723,
- /* key: 0x8250 */ 0xffff,
- /* key: 0x8251 */ 0xd724,
- /* key: 0x8252 */ 0xffff,
- /* key: 0x8253 */ 0xffff,
- /* key: 0x8254 */ 0xffff,
- /* key: 0x8255 */ 0xffff,
- /* key: 0x8256 */ 0xd725,
- /* key: 0x8257 */ 0xffff,
- /* key: 0x8258 */ 0x675b,
- /* key: 0x8259 */ 0x675a,
- /* key: 0x825a */ 0x675d,
- /* key: 0x825b */ 0xffff,
- /* key: 0x825c */ 0xd726,
- /* key: 0x825d */ 0x675c,
- /* key: 0x825e */ 0xffff,
- /* key: 0x825f */ 0x675e,
- /* key: 0x8260 */ 0xd727,
- /* key: 0x8261 */ 0xffff,
- /* key: 0x8262 */ 0x6760,
- /* key: 0x8263 */ 0xd728,
- /* key: 0x8264 */ 0x675f,
- /* key: 0x8265 */ 0xffff,
- /* key: 0x8266 */ 0x344f,
- /* key: 0x8267 */ 0xd729,
- /* key: 0x8268 */ 0x6761,
- /* key: 0x8269 */ 0xffff,
- /* key: 0x826a */ 0x6762,
- /* key: 0x826b */ 0x6763,
- /* key: 0x826c */ 0xffff,
- /* key: 0x826d */ 0xd72a,
- /* key: 0x826e */ 0x3a31,
- /* key: 0x826f */ 0x4e49,
- /* key: 0x8270 */ 0xffff,
- /* key: 0x8271 */ 0x6765,
- /* key: 0x8272 */ 0x3f27,
- /* key: 0x8273 */ 0xffff,
- /* key: 0x8274 */ 0xd72b,
- /* key: 0x8275 */ 0xffff,
- /* key: 0x8276 */ 0x3170,
- /* key: 0x8277 */ 0x6766,
- /* key: 0x8278 */ 0x6767,
- /* key: 0x8279 */ 0xffff,
- /* key: 0x827a */ 0xffff,
- /* key: 0x827b */ 0xd72c,
- /* key: 0x827c */ 0xffff,
- /* key: 0x827d */ 0xd72d,
- /* key: 0x827e */ 0x6768,
- /* key: 0x827f */ 0xd72e,
- /* key: 0x8280 */ 0xd72f,
- /* key: 0x8281 */ 0xd730,
- /* key: 0x8282 */ 0xffff,
- /* key: 0x8283 */ 0xd731,
- /* key: 0x8284 */ 0xd732,
- /* key: 0x8285 */ 0xffff,
- /* key: 0x8286 */ 0xffff,
- /* key: 0x8287 */ 0xd733,
- /* key: 0x8288 */ 0xffff,
- /* key: 0x8289 */ 0xd734,
- /* key: 0x828a */ 0xd735,
- /* key: 0x828b */ 0x3072,
- /* key: 0x828c */ 0xffff,
- /* key: 0x828d */ 0x6769,
- /* key: 0x828e */ 0xd736,
- /* key: 0x828f */ 0xffff,
- /* key: 0x8290 */ 0xffff,
- /* key: 0x8291 */ 0xd737,
- /* key: 0x8292 */ 0x676a,
- /* key: 0x8293 */ 0xffff,
- /* key: 0x8294 */ 0xd738,
- /* key: 0x8295 */ 0xffff,
- /* key: 0x8296 */ 0xd739,
- /* key: 0x8297 */ 0xffff,
- /* key: 0x8298 */ 0xd73a,
- /* key: 0x8299 */ 0x4967,
- /* key: 0x829a */ 0xd73b,
- /* key: 0x829b */ 0xd73c,
- /* key: 0x829c */ 0xffff,
- /* key: 0x829d */ 0x3c47,
- /* key: 0x829e */ 0xffff,
- /* key: 0x829f */ 0x676c,
- /* key: 0x82a0 */ 0xd73d,
- /* key: 0x82a1 */ 0xd73e,
- /* key: 0x82a2 */ 0xffff,
- /* key: 0x82a3 */ 0xd73f,
- /* key: 0x82a4 */ 0xd740,
- /* key: 0x82a5 */ 0x3329,
- /* key: 0x82a6 */ 0x3032,
- /* key: 0x82a7 */ 0xd741,
- /* key: 0x82a8 */ 0xd742,
- /* key: 0x82a9 */ 0xd743,
- /* key: 0x82aa */ 0xd744,
- /* key: 0x82ab */ 0x676b,
- /* key: 0x82ac */ 0x676e,
- /* key: 0x82ad */ 0x474e,
- /* key: 0x82ae */ 0xd745,
- /* key: 0x82af */ 0x3f44,
- /* key: 0x82b0 */ 0xd746,
- /* key: 0x82b1 */ 0x3256,
- /* key: 0x82b2 */ 0xd747,
- /* key: 0x82b3 */ 0x4b27,
- /* key: 0x82b4 */ 0xd748,
- /* key: 0x82b5 */ 0xffff,
- /* key: 0x82b6 */ 0xffff,
- /* key: 0x82b7 */ 0xd749,
- /* key: 0x82b8 */ 0x375d,
- /* key: 0x82b9 */ 0x365c,
- /* key: 0x82ba */ 0xd74a,
- /* key: 0x82bb */ 0x676d,
- /* key: 0x82bc */ 0xd74b,
- /* key: 0x82bd */ 0x326a,
- /* key: 0x82be */ 0xd74c,
- /* key: 0x82bf */ 0xd74d,
- /* key: 0x82c0 */ 0xffff,
- /* key: 0x82c1 */ 0xffff,
- /* key: 0x82c2 */ 0xffff,
- /* key: 0x82c3 */ 0xffff,
- /* key: 0x82c4 */ 0xffff,
- /* key: 0x82c5 */ 0x3423,
- /* key: 0x82c6 */ 0xd74e,
- /* key: 0x82c7 */ 0xffff,
- /* key: 0x82c8 */ 0xffff,
- /* key: 0x82c9 */ 0xffff,
- /* key: 0x82ca */ 0xffff,
- /* key: 0x82cb */ 0xffff,
- /* key: 0x82cc */ 0xffff,
- /* key: 0x82cd */ 0xffff,
- /* key: 0x82ce */ 0xffff,
- /* key: 0x82cf */ 0xffff,
- /* key: 0x82d0 */ 0xd74f,
- /* key: 0x82d1 */ 0x3171,
- /* key: 0x82d2 */ 0x6772,
- /* key: 0x82d3 */ 0x4e6a,
- /* key: 0x82d4 */ 0x425d,
- /* key: 0x82d5 */ 0xd750,
- /* key: 0x82d6 */ 0xffff,
- /* key: 0x82d7 */ 0x4944,
- /* key: 0x82d8 */ 0xffff,
- /* key: 0x82d9 */ 0x677e,
- /* key: 0x82da */ 0xd751,
- /* key: 0x82db */ 0x3257,
- /* key: 0x82dc */ 0x677c,
- /* key: 0x82dd */ 0xffff,
- /* key: 0x82de */ 0x677a,
- /* key: 0x82df */ 0x6771,
- /* key: 0x82e0 */ 0xd752,
- /* key: 0x82e1 */ 0x676f,
- /* key: 0x82e2 */ 0xd753,
- /* key: 0x82e3 */ 0x6770,
- /* key: 0x82e4 */ 0xd754,
- /* key: 0x82e5 */ 0x3c63,
- /* key: 0x82e6 */ 0x366c,
- /* key: 0x82e7 */ 0x4377,
- /* key: 0x82e8 */ 0xd755,
- /* key: 0x82e9 */ 0xffff,
- /* key: 0x82ea */ 0xd756,
- /* key: 0x82eb */ 0x4651,
- /* key: 0x82ec */ 0xffff,
- /* key: 0x82ed */ 0xd757,
- /* key: 0x82ee */ 0xffff,
- /* key: 0x82ef */ 0xd758,
- /* key: 0x82f0 */ 0xffff,
- /* key: 0x82f1 */ 0x3151,
- /* key: 0x82f2 */ 0xffff,
- /* key: 0x82f3 */ 0x6774,
- /* key: 0x82f4 */ 0x6773,
- /* key: 0x82f5 */ 0xffff,
- /* key: 0x82f6 */ 0xd759,
- /* key: 0x82f7 */ 0xd75a,
- /* key: 0x82f8 */ 0xffff,
- /* key: 0x82f9 */ 0x6779,
- /* key: 0x82fa */ 0x6775,
- /* key: 0x82fb */ 0x6778,
- /* key: 0x82fc */ 0xffff,
- /* key: 0x82fd */ 0xd75b,
- /* key: 0x82fe */ 0xd75c,
- /* key: 0x82ff */ 0xffff,
- /* branch: 0x830X */ 15920,
- /* branch: 0x831X */ 15936,
- /* branch: 0x832X */ 15952,
- /* branch: 0x833X */ 15968,
- /* branch: 0x834X */ 15984,
- /* branch: 0x835X */ 16000,
- /* branch: 0x836X */ 0,
- /* branch: 0x837X */ 16016,
- /* branch: 0x838X */ 16032,
- /* branch: 0x839X */ 16048,
- /* branch: 0x83aX */ 16064,
- /* branch: 0x83bX */ 16080,
- /* branch: 0x83cX */ 16096,
- /* branch: 0x83dX */ 16112,
- /* branch: 0x83eX */ 16128,
- /* branch: 0x83fX */ 16144,
- /* key: 0x8300 */ 0xd75d,
- /* key: 0x8301 */ 0xd75e,
- /* key: 0x8302 */ 0x4c50,
- /* key: 0x8303 */ 0x6777,
- /* key: 0x8304 */ 0x3258,
- /* key: 0x8305 */ 0x337d,
- /* key: 0x8306 */ 0x677b,
- /* key: 0x8307 */ 0xd75f,
- /* key: 0x8308 */ 0xd760,
- /* key: 0x8309 */ 0x677d,
- /* key: 0x830a */ 0xd761,
- /* key: 0x830b */ 0xd762,
- /* key: 0x830c */ 0xffff,
- /* key: 0x830d */ 0xffff,
- /* key: 0x830e */ 0x3754,
- /* key: 0x830f */ 0xffff,
- /* key: 0x8310 */ 0xffff,
- /* key: 0x8311 */ 0xffff,
- /* key: 0x8312 */ 0xffff,
- /* key: 0x8313 */ 0xffff,
- /* key: 0x8314 */ 0xffff,
- /* key: 0x8315 */ 0xffff,
- /* key: 0x8316 */ 0x6823,
- /* key: 0x8317 */ 0x682c,
- /* key: 0x8318 */ 0x682d,
- /* key: 0x8319 */ 0xffff,
- /* key: 0x831a */ 0xffff,
- /* key: 0x831b */ 0xd764,
- /* key: 0x831c */ 0x302b,
- /* key: 0x831d */ 0xd765,
- /* key: 0x831e */ 0xd766,
- /* key: 0x831f */ 0xd767,
- /* key: 0x8320 */ 0xffff,
- /* key: 0x8321 */ 0xd768,
- /* key: 0x8322 */ 0xd769,
- /* key: 0x8323 */ 0x6834,
- /* key: 0x8324 */ 0xffff,
- /* key: 0x8325 */ 0xffff,
- /* key: 0x8326 */ 0xffff,
- /* key: 0x8327 */ 0xffff,
- /* key: 0x8328 */ 0x3071,
- /* key: 0x8329 */ 0xffff,
- /* key: 0x832a */ 0xffff,
- /* key: 0x832b */ 0x682b,
- /* key: 0x832c */ 0xd76a,
- /* key: 0x832d */ 0xd76b,
- /* key: 0x832e */ 0xd76c,
- /* key: 0x832f */ 0x682a,
- /* key: 0x8330 */ 0xd76d,
- /* key: 0x8331 */ 0x6825,
- /* key: 0x8332 */ 0x6824,
- /* key: 0x8333 */ 0xd76e,
- /* key: 0x8334 */ 0x6822,
- /* key: 0x8335 */ 0x6821,
- /* key: 0x8336 */ 0x4363,
- /* key: 0x8337 */ 0xd76f,
- /* key: 0x8338 */ 0x427b,
- /* key: 0x8339 */ 0x6827,
- /* key: 0x833a */ 0xd770,
- /* key: 0x833b */ 0xffff,
- /* key: 0x833c */ 0xd771,
- /* key: 0x833d */ 0xd772,
- /* key: 0x833e */ 0xffff,
- /* key: 0x833f */ 0xffff,
- /* key: 0x8340 */ 0x6826,
- /* key: 0x8341 */ 0xffff,
- /* key: 0x8342 */ 0xd773,
- /* key: 0x8343 */ 0xd774,
- /* key: 0x8344 */ 0xd775,
- /* key: 0x8345 */ 0x6829,
- /* key: 0x8346 */ 0xffff,
- /* key: 0x8347 */ 0xd776,
- /* key: 0x8348 */ 0xffff,
- /* key: 0x8349 */ 0x4170,
- /* key: 0x834a */ 0x3755,
- /* key: 0x834b */ 0xffff,
- /* key: 0x834c */ 0xffff,
- /* key: 0x834d */ 0xd777,
- /* key: 0x834e */ 0xd778,
- /* key: 0x834f */ 0x3141,
- /* key: 0x8350 */ 0x6828,
- /* key: 0x8351 */ 0xd779,
- /* key: 0x8352 */ 0x3953,
- /* key: 0x8353 */ 0xd83e,
- /* key: 0x8354 */ 0xd763,
- /* key: 0x8355 */ 0xd77a,
- /* key: 0x8356 */ 0xd77b,
- /* key: 0x8357 */ 0xd77c,
- /* key: 0x8358 */ 0x4171,
- /* key: 0x8359 */ 0xffff,
- /* key: 0x835a */ 0xffff,
- /* key: 0x835b */ 0xffff,
- /* key: 0x835c */ 0xffff,
- /* key: 0x835d */ 0xffff,
- /* key: 0x835e */ 0xffff,
- /* key: 0x835f */ 0xffff,
- /* key: 0x8370 */ 0xd77d,
- /* key: 0x8371 */ 0xffff,
- /* key: 0x8372 */ 0xffff,
- /* key: 0x8373 */ 0x683a,
- /* key: 0x8374 */ 0xffff,
- /* key: 0x8375 */ 0x683b,
- /* key: 0x8376 */ 0xffff,
- /* key: 0x8377 */ 0x3259,
- /* key: 0x8378 */ 0xd77e,
- /* key: 0x8379 */ 0xffff,
- /* key: 0x837a */ 0xffff,
- /* key: 0x837b */ 0x322e,
- /* key: 0x837c */ 0x6838,
- /* key: 0x837d */ 0xd821,
- /* key: 0x837e */ 0xffff,
- /* key: 0x837f */ 0xd822,
- /* key: 0x8380 */ 0xd823,
- /* key: 0x8381 */ 0xffff,
- /* key: 0x8382 */ 0xd824,
- /* key: 0x8383 */ 0xffff,
- /* key: 0x8384 */ 0xd825,
- /* key: 0x8385 */ 0x682e,
- /* key: 0x8386 */ 0xd826,
- /* key: 0x8387 */ 0x6836,
- /* key: 0x8388 */ 0xffff,
- /* key: 0x8389 */ 0x683d,
- /* key: 0x838a */ 0x6837,
- /* key: 0x838b */ 0xffff,
- /* key: 0x838c */ 0xffff,
- /* key: 0x838d */ 0xd827,
- /* key: 0x838e */ 0x6835,
- /* key: 0x838f */ 0xffff,
- /* key: 0x8390 */ 0xffff,
- /* key: 0x8391 */ 0xffff,
- /* key: 0x8392 */ 0xd828,
- /* key: 0x8393 */ 0x6776,
- /* key: 0x8394 */ 0xd829,
- /* key: 0x8395 */ 0xd82a,
- /* key: 0x8396 */ 0x6833,
- /* key: 0x8397 */ 0xffff,
- /* key: 0x8398 */ 0xd82b,
- /* key: 0x8399 */ 0xd82c,
- /* key: 0x839a */ 0x682f,
- /* key: 0x839b */ 0xd82d,
- /* key: 0x839c */ 0xd82e,
- /* key: 0x839d */ 0xd82f,
- /* key: 0x839e */ 0x3450,
- /* key: 0x839f */ 0x6831,
- /* key: 0x83a0 */ 0x683c,
- /* key: 0x83a1 */ 0xffff,
- /* key: 0x83a2 */ 0x6832,
- /* key: 0x83a3 */ 0xffff,
- /* key: 0x83a4 */ 0xffff,
- /* key: 0x83a5 */ 0xffff,
- /* key: 0x83a6 */ 0xd830,
- /* key: 0x83a7 */ 0xd831,
- /* key: 0x83a8 */ 0x683e,
- /* key: 0x83a9 */ 0xd832,
- /* key: 0x83aa */ 0x6830,
- /* key: 0x83ab */ 0x477c,
- /* key: 0x83ac */ 0xd833,
- /* key: 0x83ad */ 0xd84c,
- /* key: 0x83ae */ 0xffff,
- /* key: 0x83af */ 0xffff,
- /* key: 0x83b0 */ 0xffff,
- /* key: 0x83b1 */ 0x4d69,
- /* key: 0x83b2 */ 0xffff,
- /* key: 0x83b3 */ 0xffff,
- /* key: 0x83b4 */ 0xffff,
- /* key: 0x83b5 */ 0x6839,
- /* key: 0x83b6 */ 0xffff,
- /* key: 0x83b7 */ 0xffff,
- /* key: 0x83b8 */ 0xffff,
- /* key: 0x83b9 */ 0xffff,
- /* key: 0x83ba */ 0xffff,
- /* key: 0x83bb */ 0xffff,
- /* key: 0x83bc */ 0xffff,
- /* key: 0x83bd */ 0x684f,
- /* key: 0x83be */ 0xd834,
- /* key: 0x83bf */ 0xd835,
- /* key: 0x83c0 */ 0xd836,
- /* key: 0x83c1 */ 0x6847,
- /* key: 0x83c2 */ 0xffff,
- /* key: 0x83c3 */ 0xffff,
- /* key: 0x83c4 */ 0xffff,
- /* key: 0x83c5 */ 0x3f7b,
- /* key: 0x83c6 */ 0xffff,
- /* key: 0x83c7 */ 0xd837,
- /* key: 0x83c8 */ 0xffff,
- /* key: 0x83c9 */ 0xd838,
- /* key: 0x83ca */ 0x3546,
- /* key: 0x83cb */ 0xffff,
- /* key: 0x83cc */ 0x365d,
- /* key: 0x83cd */ 0xffff,
- /* key: 0x83ce */ 0x6842,
- /* key: 0x83cf */ 0xd839,
- /* key: 0x83d0 */ 0xd83a,
- /* key: 0x83d1 */ 0xd83b,
- /* key: 0x83d2 */ 0xffff,
- /* key: 0x83d3 */ 0x325b,
- /* key: 0x83d4 */ 0xd83c,
- /* key: 0x83d5 */ 0xffff,
- /* key: 0x83d6 */ 0x3e54,
- /* key: 0x83d7 */ 0xffff,
- /* key: 0x83d8 */ 0x6845,
- /* key: 0x83d9 */ 0xffff,
- /* key: 0x83da */ 0xffff,
- /* key: 0x83db */ 0xffff,
- /* key: 0x83dc */ 0x3a5a,
- /* key: 0x83dd */ 0xd83d,
- /* key: 0x83de */ 0xffff,
- /* key: 0x83df */ 0x4551,
- /* key: 0x83e0 */ 0x684a,
- /* key: 0x83e1 */ 0xffff,
- /* key: 0x83e2 */ 0xffff,
- /* key: 0x83e3 */ 0xffff,
- /* key: 0x83e4 */ 0xffff,
- /* key: 0x83e5 */ 0xffff,
- /* key: 0x83e6 */ 0xffff,
- /* key: 0x83e7 */ 0xffff,
- /* key: 0x83e8 */ 0xd83f,
- /* key: 0x83e9 */ 0x4a6e,
- /* key: 0x83ea */ 0xd840,
- /* key: 0x83eb */ 0x6841,
- /* key: 0x83ec */ 0xffff,
- /* key: 0x83ed */ 0xffff,
- /* key: 0x83ee */ 0xffff,
- /* key: 0x83ef */ 0x325a,
- /* key: 0x83f0 */ 0x3856,
- /* key: 0x83f1 */ 0x4929,
- /* key: 0x83f2 */ 0x684b,
- /* key: 0x83f3 */ 0xffff,
- /* key: 0x83f4 */ 0x683f,
- /* key: 0x83f5 */ 0xffff,
- /* key: 0x83f6 */ 0xd841,
- /* key: 0x83f7 */ 0x6848,
- /* key: 0x83f8 */ 0xd842,
- /* key: 0x83f9 */ 0xd843,
- /* key: 0x83fa */ 0xffff,
- /* key: 0x83fb */ 0x6852,
- /* key: 0x83fc */ 0xd844,
- /* key: 0x83fd */ 0x6843,
- /* key: 0x83fe */ 0xffff,
- /* key: 0x83ff */ 0xffff,
- /* branch: 0x840X */ 16176,
- /* branch: 0x841X */ 16192,
- /* branch: 0x842X */ 16208,
- /* branch: 0x843X */ 16224,
- /* branch: 0x844X */ 16240,
- /* branch: 0x845X */ 16256,
- /* branch: 0x846X */ 16272,
- /* branch: 0x847X */ 16288,
- /* branch: 0x848X */ 16304,
- /* branch: 0x849X */ 16320,
- /* branch: 0x84aX */ 16336,
- /* branch: 0x84bX */ 16352,
- /* branch: 0x84cX */ 16368,
- /* branch: 0x84dX */ 16384,
- /* branch: 0x84eX */ 16400,
- /* branch: 0x84fX */ 16416,
- /* key: 0x8400 */ 0xffff,
- /* key: 0x8401 */ 0xd845,
- /* key: 0x8402 */ 0xffff,
- /* key: 0x8403 */ 0x6844,
- /* key: 0x8404 */ 0x463a,
- /* key: 0x8405 */ 0xffff,
- /* key: 0x8406 */ 0xd846,
- /* key: 0x8407 */ 0x6849,
- /* key: 0x8408 */ 0xffff,
- /* key: 0x8409 */ 0xffff,
- /* key: 0x840a */ 0xd847,
- /* key: 0x840b */ 0x6846,
- /* key: 0x840c */ 0x4b28,
- /* key: 0x840d */ 0x684c,
- /* key: 0x840e */ 0x3060,
- /* key: 0x840f */ 0xd848,
- /* key: 0x8410 */ 0xffff,
- /* key: 0x8411 */ 0xd849,
- /* key: 0x8412 */ 0xffff,
- /* key: 0x8413 */ 0x6840,
- /* key: 0x8414 */ 0xffff,
- /* key: 0x8415 */ 0xd84a,
- /* key: 0x8416 */ 0xffff,
- /* key: 0x8417 */ 0xffff,
- /* key: 0x8418 */ 0xffff,
- /* key: 0x8419 */ 0xd84b,
- /* key: 0x841a */ 0xffff,
- /* key: 0x841b */ 0xffff,
- /* key: 0x841c */ 0xffff,
- /* key: 0x841d */ 0xffff,
- /* key: 0x841e */ 0xffff,
- /* key: 0x841f */ 0xffff,
- /* key: 0x8420 */ 0x684e,
- /* key: 0x8421 */ 0xffff,
- /* key: 0x8422 */ 0x684d,
- /* key: 0x8423 */ 0xffff,
- /* key: 0x8424 */ 0xffff,
- /* key: 0x8425 */ 0xffff,
- /* key: 0x8426 */ 0xffff,
- /* key: 0x8427 */ 0xffff,
- /* key: 0x8428 */ 0xffff,
- /* key: 0x8429 */ 0x476b,
- /* key: 0x842a */ 0x6854,
- /* key: 0x842b */ 0xffff,
- /* key: 0x842c */ 0x685f,
- /* key: 0x842d */ 0xffff,
- /* key: 0x842e */ 0xffff,
- /* key: 0x842f */ 0xd84d,
- /* key: 0x8430 */ 0xffff,
- /* key: 0x8431 */ 0x337e,
- /* key: 0x8432 */ 0xffff,
- /* key: 0x8433 */ 0xffff,
- /* key: 0x8434 */ 0xffff,
- /* key: 0x8435 */ 0x6862,
- /* key: 0x8436 */ 0xffff,
- /* key: 0x8437 */ 0xffff,
- /* key: 0x8438 */ 0x6850,
- /* key: 0x8439 */ 0xd84e,
- /* key: 0x843a */ 0xffff,
- /* key: 0x843b */ 0xffff,
- /* key: 0x843c */ 0x6855,
- /* key: 0x843d */ 0x4d6e,
- /* key: 0x843e */ 0xffff,
- /* key: 0x843f */ 0xffff,
- /* key: 0x8440 */ 0xffff,
- /* key: 0x8441 */ 0xffff,
- /* key: 0x8442 */ 0xffff,
- /* key: 0x8443 */ 0xffff,
- /* key: 0x8444 */ 0xffff,
- /* key: 0x8445 */ 0xd84f,
- /* key: 0x8446 */ 0x685e,
- /* key: 0x8447 */ 0xd850,
- /* key: 0x8448 */ 0xd851,
- /* key: 0x8449 */ 0x4d55,
- /* key: 0x844a */ 0xd852,
- /* key: 0x844b */ 0xffff,
- /* key: 0x844c */ 0xffff,
- /* key: 0x844d */ 0xd853,
- /* key: 0x844e */ 0x4e2a,
- /* key: 0x844f */ 0xd854,
- /* key: 0x8450 */ 0xffff,
- /* key: 0x8451 */ 0xd855,
- /* key: 0x8452 */ 0xd856,
- /* key: 0x8453 */ 0xffff,
- /* key: 0x8454 */ 0xffff,
- /* key: 0x8455 */ 0xffff,
- /* key: 0x8456 */ 0xd857,
- /* key: 0x8457 */ 0x4378,
- /* key: 0x8458 */ 0xd858,
- /* key: 0x8459 */ 0xd859,
- /* key: 0x845a */ 0xd85a,
- /* key: 0x845b */ 0x336b,
- /* key: 0x845c */ 0xd85b,
- /* key: 0x845d */ 0xffff,
- /* key: 0x845e */ 0xffff,
- /* key: 0x845f */ 0xffff,
- /* key: 0x8460 */ 0xd85c,
- /* key: 0x8461 */ 0x4972,
- /* key: 0x8462 */ 0x6864,
- /* key: 0x8463 */ 0x4621,
- /* key: 0x8464 */ 0xd85d,
- /* key: 0x8465 */ 0xd85e,
- /* key: 0x8466 */ 0x3031,
- /* key: 0x8467 */ 0xd85f,
- /* key: 0x8468 */ 0xffff,
- /* key: 0x8469 */ 0x685d,
- /* key: 0x846a */ 0xd860,
- /* key: 0x846b */ 0x6859,
- /* key: 0x846c */ 0x4172,
- /* key: 0x846d */ 0x6853,
- /* key: 0x846e */ 0x685b,
- /* key: 0x846f */ 0x6860,
- /* key: 0x8470 */ 0xd861,
- /* key: 0x8471 */ 0x472c,
- /* key: 0x8472 */ 0xffff,
- /* key: 0x8473 */ 0xd862,
- /* key: 0x8474 */ 0xd863,
- /* key: 0x8475 */ 0x302a,
- /* key: 0x8476 */ 0xd864,
- /* key: 0x8477 */ 0x6858,
- /* key: 0x8478 */ 0xd865,
- /* key: 0x8479 */ 0x6861,
- /* key: 0x847a */ 0x4978,
- /* key: 0x847b */ 0xffff,
- /* key: 0x847c */ 0xd866,
- /* key: 0x847d */ 0xd867,
- /* key: 0x847e */ 0xffff,
- /* key: 0x847f */ 0xffff,
- /* key: 0x8480 */ 0xffff,
- /* key: 0x8481 */ 0xd868,
- /* key: 0x8482 */ 0x685c,
- /* key: 0x8483 */ 0xffff,
- /* key: 0x8484 */ 0x6857,
- /* key: 0x8485 */ 0xd869,
- /* key: 0x8486 */ 0xffff,
- /* key: 0x8487 */ 0xffff,
- /* key: 0x8488 */ 0xffff,
- /* key: 0x8489 */ 0xffff,
- /* key: 0x848a */ 0xffff,
- /* key: 0x848b */ 0x3e55,
- /* key: 0x848c */ 0xffff,
- /* key: 0x848d */ 0xffff,
- /* key: 0x848e */ 0xffff,
- /* key: 0x848f */ 0xffff,
- /* key: 0x8490 */ 0x3d2f,
- /* key: 0x8491 */ 0xffff,
- /* key: 0x8492 */ 0xd86a,
- /* key: 0x8493 */ 0xd86b,
- /* key: 0x8494 */ 0x3c2c,
- /* key: 0x8495 */ 0xd86c,
- /* key: 0x8496 */ 0xffff,
- /* key: 0x8497 */ 0xffff,
- /* key: 0x8498 */ 0xffff,
- /* key: 0x8499 */ 0x4c58,
- /* key: 0x849a */ 0xffff,
- /* key: 0x849b */ 0xffff,
- /* key: 0x849c */ 0x4947,
- /* key: 0x849d */ 0xffff,
- /* key: 0x849e */ 0xd86d,
- /* key: 0x849f */ 0x6867,
- /* key: 0x84a0 */ 0xffff,
- /* key: 0x84a1 */ 0x6870,
- /* key: 0x84a2 */ 0xffff,
- /* key: 0x84a3 */ 0xffff,
- /* key: 0x84a4 */ 0xffff,
- /* key: 0x84a5 */ 0xffff,
- /* key: 0x84a6 */ 0xd86e,
- /* key: 0x84a7 */ 0xffff,
- /* key: 0x84a8 */ 0xd86f,
- /* key: 0x84a9 */ 0xd870,
- /* key: 0x84aa */ 0xd871,
- /* key: 0x84ab */ 0xffff,
- /* key: 0x84ac */ 0xffff,
- /* key: 0x84ad */ 0x685a,
- /* key: 0x84ae */ 0xffff,
- /* key: 0x84af */ 0xd872,
- /* key: 0x84b0 */ 0xffff,
- /* key: 0x84b1 */ 0xd873,
- /* key: 0x84b2 */ 0x3377,
- /* key: 0x84b3 */ 0xffff,
- /* key: 0x84b4 */ 0xd874,
- /* key: 0x84b5 */ 0xffff,
- /* key: 0x84b6 */ 0xffff,
- /* key: 0x84b7 */ 0xffff,
- /* key: 0x84b8 */ 0x3e78,
- /* key: 0x84b9 */ 0x6865,
- /* key: 0x84ba */ 0xd875,
- /* key: 0x84bb */ 0x686a,
- /* key: 0x84bc */ 0x4173,
- /* key: 0x84bd */ 0xd876,
- /* key: 0x84be */ 0xd877,
- /* key: 0x84bf */ 0x6866,
- /* key: 0x84c0 */ 0xd878,
- /* key: 0x84c1 */ 0x686d,
- /* key: 0x84c2 */ 0xd879,
- /* key: 0x84c3 */ 0xffff,
- /* key: 0x84c4 */ 0x435f,
- /* key: 0x84c5 */ 0xffff,
- /* key: 0x84c6 */ 0x686e,
- /* key: 0x84c7 */ 0xd87a,
- /* key: 0x84c8 */ 0xd87b,
- /* key: 0x84c9 */ 0x4d56,
- /* key: 0x84ca */ 0x6863,
- /* key: 0x84cb */ 0x3338,
- /* key: 0x84cc */ 0xd87c,
- /* key: 0x84cd */ 0x6869,
- /* key: 0x84ce */ 0xffff,
- /* key: 0x84cf */ 0xd87d,
- /* key: 0x84d0 */ 0x686c,
- /* key: 0x84d1 */ 0x4c2c,
- /* key: 0x84d2 */ 0xffff,
- /* key: 0x84d3 */ 0xd87e,
- /* key: 0x84d4 */ 0xffff,
- /* key: 0x84d5 */ 0xffff,
- /* key: 0x84d6 */ 0x686f,
- /* key: 0x84d7 */ 0xffff,
- /* key: 0x84d8 */ 0xffff,
- /* key: 0x84d9 */ 0x6868,
- /* key: 0x84da */ 0x686b,
- /* key: 0x84db */ 0xffff,
- /* key: 0x84dc */ 0xd921,
- /* key: 0x84dd */ 0xffff,
- /* key: 0x84de */ 0xffff,
- /* key: 0x84df */ 0xffff,
- /* key: 0x84e0 */ 0xffff,
- /* key: 0x84e1 */ 0xffff,
- /* key: 0x84e2 */ 0xffff,
- /* key: 0x84e3 */ 0xffff,
- /* key: 0x84e4 */ 0xffff,
- /* key: 0x84e5 */ 0xffff,
- /* key: 0x84e6 */ 0xffff,
- /* key: 0x84e7 */ 0xd922,
- /* key: 0x84e8 */ 0xffff,
- /* key: 0x84e9 */ 0xffff,
- /* key: 0x84ea */ 0xd923,
- /* key: 0x84eb */ 0xffff,
- /* key: 0x84ec */ 0x4b29,
- /* key: 0x84ed */ 0xffff,
- /* key: 0x84ee */ 0x4f21,
- /* key: 0x84ef */ 0xd924,
- /* key: 0x84f0 */ 0xd925,
- /* key: 0x84f1 */ 0xd926,
- /* key: 0x84f2 */ 0xd927,
- /* key: 0x84f3 */ 0xffff,
- /* key: 0x84f4 */ 0x6873,
- /* key: 0x84f5 */ 0xffff,
- /* key: 0x84f6 */ 0xffff,
- /* key: 0x84f7 */ 0xd928,
- /* key: 0x84f8 */ 0xffff,
- /* key: 0x84f9 */ 0xffff,
- /* key: 0x84fa */ 0xd92a,
- /* key: 0x84fb */ 0xd92b,
- /* key: 0x84fc */ 0x687a,
- /* key: 0x84fd */ 0xd92c,
- /* key: 0x84fe */ 0xffff,
- /* key: 0x84ff */ 0x6872,
- /* branch: 0x850X */ 16448,
- /* branch: 0x851X */ 16464,
- /* branch: 0x852X */ 16480,
- /* branch: 0x853X */ 16496,
- /* branch: 0x854X */ 16512,
- /* branch: 0x855X */ 16528,
- /* branch: 0x856X */ 16544,
- /* branch: 0x857X */ 16560,
- /* branch: 0x858X */ 16576,
- /* branch: 0x859X */ 16592,
- /* branch: 0x85aX */ 16608,
- /* branch: 0x85bX */ 16624,
- /* branch: 0x85cX */ 16640,
- /* branch: 0x85dX */ 16656,
- /* branch: 0x85eX */ 16672,
- /* branch: 0x85fX */ 16688,
- /* key: 0x8500 */ 0x3c43,
- /* key: 0x8501 */ 0xffff,
- /* key: 0x8502 */ 0xd92d,
- /* key: 0x8503 */ 0xd92e,
- /* key: 0x8504 */ 0xffff,
- /* key: 0x8505 */ 0xffff,
- /* key: 0x8506 */ 0x6851,
- /* key: 0x8507 */ 0xd92f,
- /* key: 0x8508 */ 0xffff,
- /* key: 0x8509 */ 0xffff,
- /* key: 0x850a */ 0xffff,
- /* key: 0x850b */ 0xffff,
- /* key: 0x850c */ 0xd930,
- /* key: 0x850d */ 0xffff,
- /* key: 0x850e */ 0xd931,
- /* key: 0x850f */ 0xffff,
- /* key: 0x8510 */ 0xd932,
- /* key: 0x8511 */ 0x4a4e,
- /* key: 0x8512 */ 0xffff,
- /* key: 0x8513 */ 0x4c22,
- /* key: 0x8514 */ 0x6879,
- /* key: 0x8515 */ 0x6878,
- /* key: 0x8516 */ 0xffff,
- /* key: 0x8517 */ 0x6874,
- /* key: 0x8518 */ 0x6875,
- /* key: 0x8519 */ 0xffff,
- /* key: 0x851a */ 0x3136,
- /* key: 0x851b */ 0xffff,
- /* key: 0x851c */ 0xd933,
- /* key: 0x851d */ 0xffff,
- /* key: 0x851e */ 0xd934,
- /* key: 0x851f */ 0x6877,
- /* key: 0x8520 */ 0xffff,
- /* key: 0x8521 */ 0x6871,
- /* key: 0x8522 */ 0xd935,
- /* key: 0x8523 */ 0xd936,
- /* key: 0x8524 */ 0xd937,
- /* key: 0x8525 */ 0xd938,
- /* key: 0x8526 */ 0x4455,
- /* key: 0x8527 */ 0xd939,
- /* key: 0x8528 */ 0xffff,
- /* key: 0x8529 */ 0xffff,
- /* key: 0x852a */ 0xd93a,
- /* key: 0x852b */ 0xd93b,
- /* key: 0x852c */ 0x6876,
- /* key: 0x852d */ 0x307e,
- /* key: 0x852e */ 0xffff,
- /* key: 0x852f */ 0xd93c,
- /* key: 0x8530 */ 0xffff,
- /* key: 0x8531 */ 0xffff,
- /* key: 0x8532 */ 0xd929,
- /* key: 0x8533 */ 0xd93d,
- /* key: 0x8534 */ 0xd93e,
- /* key: 0x8535 */ 0x4222,
- /* key: 0x8536 */ 0xd93f,
- /* key: 0x8537 */ 0xffff,
- /* key: 0x8538 */ 0xffff,
- /* key: 0x8539 */ 0xffff,
- /* key: 0x853a */ 0xffff,
- /* key: 0x853b */ 0xffff,
- /* key: 0x853c */ 0xffff,
- /* key: 0x853d */ 0x4a43,
- /* key: 0x853e */ 0xffff,
- /* key: 0x853f */ 0xd940,
- /* key: 0x8540 */ 0x687b,
- /* key: 0x8541 */ 0x6921,
- /* key: 0x8542 */ 0xffff,
- /* key: 0x8543 */ 0x4859,
- /* key: 0x8544 */ 0xffff,
- /* key: 0x8545 */ 0xffff,
- /* key: 0x8546 */ 0xd941,
- /* key: 0x8547 */ 0xffff,
- /* key: 0x8548 */ 0x687e,
- /* key: 0x8549 */ 0x3e56,
- /* key: 0x854a */ 0x3c49,
- /* key: 0x854b */ 0x6923,
- /* key: 0x854c */ 0xffff,
- /* key: 0x854d */ 0xffff,
- /* key: 0x854e */ 0x363e,
- /* key: 0x854f */ 0xd942,
- /* key: 0x8550 */ 0xd943,
- /* key: 0x8551 */ 0xd944,
- /* key: 0x8552 */ 0xd945,
- /* key: 0x8553 */ 0xd946,
- /* key: 0x8554 */ 0xffff,
- /* key: 0x8555 */ 0x6924,
- /* key: 0x8556 */ 0xd947,
- /* key: 0x8557 */ 0x4979,
- /* key: 0x8558 */ 0x687d,
- /* key: 0x8559 */ 0xd948,
- /* key: 0x855a */ 0x6856,
- /* key: 0x855b */ 0xffff,
- /* key: 0x855c */ 0xd949,
- /* key: 0x855d */ 0xd94a,
- /* key: 0x855e */ 0xd94b,
- /* key: 0x855f */ 0xd94c,
- /* key: 0x8560 */ 0xd94d,
- /* key: 0x8561 */ 0xd94e,
- /* key: 0x8562 */ 0xd94f,
- /* key: 0x8563 */ 0x687c,
- /* key: 0x8564 */ 0xd950,
- /* key: 0x8565 */ 0xffff,
- /* key: 0x8566 */ 0xffff,
- /* key: 0x8567 */ 0xffff,
- /* key: 0x8568 */ 0x4f4f,
- /* key: 0x8569 */ 0x4622,
- /* key: 0x856a */ 0x4973,
- /* key: 0x856b */ 0xd951,
- /* key: 0x856c */ 0xffff,
- /* key: 0x856d */ 0x692b,
- /* key: 0x856e */ 0xffff,
- /* key: 0x856f */ 0xd952,
- /* key: 0x8570 */ 0xffff,
- /* key: 0x8571 */ 0xffff,
- /* key: 0x8572 */ 0xffff,
- /* key: 0x8573 */ 0xffff,
- /* key: 0x8574 */ 0xffff,
- /* key: 0x8575 */ 0xffff,
- /* key: 0x8576 */ 0xffff,
- /* key: 0x8577 */ 0x6931,
- /* key: 0x8578 */ 0xffff,
- /* key: 0x8579 */ 0xd953,
- /* key: 0x857a */ 0xd954,
- /* key: 0x857b */ 0xd955,
- /* key: 0x857c */ 0xffff,
- /* key: 0x857d */ 0xd956,
- /* key: 0x857e */ 0x6932,
- /* key: 0x857f */ 0xd957,
- /* key: 0x8580 */ 0x6925,
- /* key: 0x8581 */ 0xd958,
- /* key: 0x8582 */ 0xffff,
- /* key: 0x8583 */ 0xffff,
- /* key: 0x8584 */ 0x4776,
- /* key: 0x8585 */ 0xd959,
- /* key: 0x8586 */ 0xd95a,
- /* key: 0x8587 */ 0x692f,
- /* key: 0x8588 */ 0x6927,
- /* key: 0x8589 */ 0xd95b,
- /* key: 0x858a */ 0x6929,
- /* key: 0x858b */ 0xd95c,
- /* key: 0x858c */ 0xd95d,
- /* key: 0x858d */ 0xffff,
- /* key: 0x858e */ 0xffff,
- /* key: 0x858f */ 0xd95e,
- /* key: 0x8590 */ 0x6933,
- /* key: 0x8591 */ 0x6928,
- /* key: 0x8592 */ 0xffff,
- /* key: 0x8593 */ 0xd95f,
- /* key: 0x8594 */ 0x692c,
- /* key: 0x8595 */ 0xffff,
- /* key: 0x8596 */ 0xffff,
- /* key: 0x8597 */ 0x3172,
- /* key: 0x8598 */ 0xd960,
- /* key: 0x8599 */ 0x4665,
- /* key: 0x859a */ 0xffff,
- /* key: 0x859b */ 0x692d,
- /* key: 0x859c */ 0x6930,
- /* key: 0x859d */ 0xd961,
- /* key: 0x859e */ 0xffff,
- /* key: 0x859f */ 0xd962,
- /* key: 0x85a0 */ 0xd963,
- /* key: 0x85a1 */ 0xffff,
- /* key: 0x85a2 */ 0xd964,
- /* key: 0x85a3 */ 0xffff,
- /* key: 0x85a4 */ 0x6926,
- /* key: 0x85a5 */ 0xd965,
- /* key: 0x85a6 */ 0x4126,
- /* key: 0x85a7 */ 0xd966,
- /* key: 0x85a8 */ 0x692a,
- /* key: 0x85a9 */ 0x3b27,
- /* key: 0x85aa */ 0x3f45,
- /* key: 0x85ab */ 0x3730,
- /* key: 0x85ac */ 0x4c74,
- /* key: 0x85ad */ 0xd974,
- /* key: 0x85ae */ 0x4c79,
- /* key: 0x85af */ 0x3d72,
- /* key: 0x85b0 */ 0xffff,
- /* key: 0x85b1 */ 0xffff,
- /* key: 0x85b2 */ 0xffff,
- /* key: 0x85b3 */ 0xffff,
- /* key: 0x85b4 */ 0xd967,
- /* key: 0x85b5 */ 0xffff,
- /* key: 0x85b6 */ 0xd968,
- /* key: 0x85b7 */ 0xd969,
- /* key: 0x85b8 */ 0xd96a,
- /* key: 0x85b9 */ 0x6937,
- /* key: 0x85ba */ 0x6935,
- /* key: 0x85bb */ 0xffff,
- /* key: 0x85bc */ 0xd96b,
- /* key: 0x85bd */ 0xd96c,
- /* key: 0x85be */ 0xd96d,
- /* key: 0x85bf */ 0xd96e,
- /* key: 0x85c0 */ 0xffff,
- /* key: 0x85c1 */ 0x4f4e,
- /* key: 0x85c2 */ 0xd96f,
- /* key: 0x85c3 */ 0xffff,
- /* key: 0x85c4 */ 0xffff,
- /* key: 0x85c5 */ 0xffff,
- /* key: 0x85c6 */ 0xffff,
- /* key: 0x85c7 */ 0xd970,
- /* key: 0x85c8 */ 0xffff,
- /* key: 0x85c9 */ 0x6934,
- /* key: 0x85ca */ 0xd971,
- /* key: 0x85cb */ 0xd972,
- /* key: 0x85cc */ 0xffff,
- /* key: 0x85cd */ 0x4d75,
- /* key: 0x85ce */ 0xd973,
- /* key: 0x85cf */ 0x6936,
- /* key: 0x85d0 */ 0x6938,
- /* key: 0x85d1 */ 0xffff,
- /* key: 0x85d2 */ 0xffff,
- /* key: 0x85d3 */ 0xffff,
- /* key: 0x85d4 */ 0xffff,
- /* key: 0x85d5 */ 0x6939,
- /* key: 0x85d6 */ 0xffff,
- /* key: 0x85d7 */ 0xffff,
- /* key: 0x85d8 */ 0xd975,
- /* key: 0x85d9 */ 0xffff,
- /* key: 0x85da */ 0xd976,
- /* key: 0x85db */ 0xffff,
- /* key: 0x85dc */ 0x693c,
- /* key: 0x85dd */ 0x693a,
- /* key: 0x85de */ 0xffff,
- /* key: 0x85df */ 0xd977,
- /* key: 0x85e0 */ 0xd978,
- /* key: 0x85e1 */ 0xffff,
- /* key: 0x85e2 */ 0xffff,
- /* key: 0x85e3 */ 0xffff,
- /* key: 0x85e4 */ 0x4623,
- /* key: 0x85e5 */ 0x693b,
- /* key: 0x85e6 */ 0xd979,
- /* key: 0x85e7 */ 0xffff,
- /* key: 0x85e8 */ 0xd97a,
- /* key: 0x85e9 */ 0x484d,
- /* key: 0x85ea */ 0x692e,
- /* key: 0x85eb */ 0xffff,
- /* key: 0x85ec */ 0xffff,
- /* key: 0x85ed */ 0xd97b,
- /* key: 0x85ee */ 0xffff,
- /* key: 0x85ef */ 0xffff,
- /* key: 0x85f0 */ 0xffff,
- /* key: 0x85f1 */ 0xffff,
- /* key: 0x85f2 */ 0xffff,
- /* key: 0x85f3 */ 0xd97c,
- /* key: 0x85f4 */ 0xffff,
- /* key: 0x85f5 */ 0xffff,
- /* key: 0x85f6 */ 0xd97d,
- /* key: 0x85f7 */ 0x3d73,
- /* key: 0x85f8 */ 0xffff,
- /* key: 0x85f9 */ 0x693d,
- /* key: 0x85fa */ 0x6942,
- /* key: 0x85fb */ 0x4174,
- /* key: 0x85fc */ 0xd97e,
- /* key: 0x85fd */ 0xffff,
- /* key: 0x85fe */ 0x6941,
- /* key: 0x85ff */ 0xda21,
- /* branch: 0x860X */ 16720,
- /* branch: 0x861X */ 16736,
- /* branch: 0x862X */ 16752,
- /* branch: 0x863X */ 16768,
- /* branch: 0x864X */ 16784,
- /* branch: 0x865X */ 16800,
- /* branch: 0x866X */ 16816,
- /* branch: 0x867X */ 16832,
- /* branch: 0x868X */ 16848,
- /* branch: 0x869X */ 16864,
- /* branch: 0x86aX */ 16880,
- /* branch: 0x86bX */ 16896,
- /* branch: 0x86cX */ 16912,
- /* branch: 0x86dX */ 16928,
- /* branch: 0x86eX */ 16944,
- /* branch: 0x86fX */ 16960,
- /* key: 0x8600 */ 0xda22,
- /* key: 0x8601 */ 0xffff,
- /* key: 0x8602 */ 0x6922,
- /* key: 0x8603 */ 0xffff,
- /* key: 0x8604 */ 0xda23,
- /* key: 0x8605 */ 0xda24,
- /* key: 0x8606 */ 0x6943,
- /* key: 0x8607 */ 0x4149,
- /* key: 0x8608 */ 0xffff,
- /* key: 0x8609 */ 0xffff,
- /* key: 0x860a */ 0x693e,
- /* key: 0x860b */ 0x6940,
- /* key: 0x860c */ 0xffff,
- /* key: 0x860d */ 0xda25,
- /* key: 0x860e */ 0xda26,
- /* key: 0x860f */ 0xffff,
- /* key: 0x8610 */ 0xda27,
- /* key: 0x8611 */ 0xda28,
- /* key: 0x8612 */ 0xda29,
- /* key: 0x8613 */ 0x693f,
- /* key: 0x8614 */ 0xffff,
- /* key: 0x8615 */ 0xffff,
- /* key: 0x8616 */ 0x5d31,
- /* key: 0x8617 */ 0x5d22,
- /* key: 0x8618 */ 0xda2a,
- /* key: 0x8619 */ 0xda2b,
- /* key: 0x861a */ 0x6945,
- /* key: 0x861b */ 0xda2c,
- /* key: 0x861c */ 0xffff,
- /* key: 0x861d */ 0xffff,
- /* key: 0x861e */ 0xda2d,
- /* key: 0x861f */ 0xffff,
- /* key: 0x8620 */ 0xffff,
- /* key: 0x8621 */ 0xda2e,
- /* key: 0x8622 */ 0x6944,
- /* key: 0x8623 */ 0xffff,
- /* key: 0x8624 */ 0xffff,
- /* key: 0x8625 */ 0xffff,
- /* key: 0x8626 */ 0xffff,
- /* key: 0x8627 */ 0xda2f,
- /* key: 0x8628 */ 0xffff,
- /* key: 0x8629 */ 0xda30,
- /* key: 0x862a */ 0xffff,
- /* key: 0x862b */ 0xffff,
- /* key: 0x862c */ 0xffff,
- /* key: 0x862d */ 0x4d76,
- /* key: 0x862e */ 0xffff,
- /* key: 0x862f */ 0x623c,
- /* key: 0x8630 */ 0x6946,
- /* key: 0x8631 */ 0xffff,
- /* key: 0x8632 */ 0xffff,
- /* key: 0x8633 */ 0xffff,
- /* key: 0x8634 */ 0xffff,
- /* key: 0x8635 */ 0xffff,
- /* key: 0x8636 */ 0xda31,
- /* key: 0x8637 */ 0xffff,
- /* key: 0x8638 */ 0xda32,
- /* key: 0x8639 */ 0xffff,
- /* key: 0x863a */ 0xda33,
- /* key: 0x863b */ 0xffff,
- /* key: 0x863c */ 0xda34,
- /* key: 0x863d */ 0xda35,
- /* key: 0x863e */ 0xffff,
- /* key: 0x863f */ 0x6947,
- /* key: 0x8640 */ 0xda36,
- /* key: 0x8641 */ 0xb866,
- /* key: 0x8642 */ 0xda37,
- /* key: 0x8643 */ 0xffff,
- /* key: 0x8644 */ 0xffff,
- /* key: 0x8645 */ 0xffff,
- /* key: 0x8646 */ 0xda38,
- /* key: 0x8647 */ 0xffff,
- /* key: 0x8648 */ 0xffff,
- /* key: 0x8649 */ 0xffff,
- /* key: 0x864a */ 0xffff,
- /* key: 0x864b */ 0xffff,
- /* key: 0x864c */ 0xffff,
- /* key: 0x864d */ 0x6948,
- /* key: 0x864e */ 0x3857,
- /* key: 0x864f */ 0xffff,
- /* key: 0x8650 */ 0x3554,
- /* key: 0x8651 */ 0xffff,
- /* key: 0x8652 */ 0xda39,
- /* key: 0x8653 */ 0xda3a,
- /* key: 0x8654 */ 0x694a,
- /* key: 0x8655 */ 0x515d,
- /* key: 0x8656 */ 0xda3b,
- /* key: 0x8657 */ 0xda3c,
- /* key: 0x8658 */ 0xda3d,
- /* key: 0x8659 */ 0xda3e,
- /* key: 0x865a */ 0x3575,
- /* key: 0x865b */ 0xffff,
- /* key: 0x865c */ 0x4e3a,
- /* key: 0x865d */ 0xda3f,
- /* key: 0x865e */ 0x3673,
- /* key: 0x865f */ 0x694b,
- /* key: 0x8660 */ 0xda40,
- /* key: 0x8661 */ 0xda41,
- /* key: 0x8662 */ 0xda42,
- /* key: 0x8663 */ 0xda43,
- /* key: 0x8664 */ 0xda44,
- /* key: 0x8665 */ 0xffff,
- /* key: 0x8666 */ 0xffff,
- /* key: 0x8667 */ 0x694c,
- /* key: 0x8668 */ 0xffff,
- /* key: 0x8669 */ 0xda45,
- /* key: 0x866a */ 0xffff,
- /* key: 0x866b */ 0x436e,
- /* key: 0x866c */ 0xda46,
- /* key: 0x866d */ 0xffff,
- /* key: 0x866e */ 0xffff,
- /* key: 0x866f */ 0xda47,
- /* key: 0x8670 */ 0xffff,
- /* key: 0x8671 */ 0x694d,
- /* key: 0x8672 */ 0xffff,
- /* key: 0x8673 */ 0xffff,
- /* key: 0x8674 */ 0xffff,
- /* key: 0x8675 */ 0xda48,
- /* key: 0x8676 */ 0xda49,
- /* key: 0x8677 */ 0xda4a,
- /* key: 0x8678 */ 0xffff,
- /* key: 0x8679 */ 0x467a,
- /* key: 0x867a */ 0xda4b,
- /* key: 0x867b */ 0x303a,
- /* key: 0x867c */ 0xffff,
- /* key: 0x867d */ 0xffff,
- /* key: 0x867e */ 0xffff,
- /* key: 0x867f */ 0xffff,
- /* key: 0x8680 */ 0xffff,
- /* key: 0x8681 */ 0xffff,
- /* key: 0x8682 */ 0xffff,
- /* key: 0x8683 */ 0xffff,
- /* key: 0x8684 */ 0xffff,
- /* key: 0x8685 */ 0xffff,
- /* key: 0x8686 */ 0xffff,
- /* key: 0x8687 */ 0xffff,
- /* key: 0x8688 */ 0xda6d,
- /* key: 0x8689 */ 0xffff,
- /* key: 0x868a */ 0x3263,
- /* key: 0x868b */ 0x6952,
- /* key: 0x868c */ 0x6953,
- /* key: 0x868d */ 0xda4c,
- /* key: 0x868e */ 0xffff,
- /* key: 0x868f */ 0xffff,
- /* key: 0x8690 */ 0xffff,
- /* key: 0x8691 */ 0xda4d,
- /* key: 0x8692 */ 0xffff,
- /* key: 0x8693 */ 0x694e,
- /* key: 0x8694 */ 0xffff,
- /* key: 0x8695 */ 0x3b3d,
- /* key: 0x8696 */ 0xda4e,
- /* key: 0x8697 */ 0xffff,
- /* key: 0x8698 */ 0xda4f,
- /* key: 0x8699 */ 0xffff,
- /* key: 0x869a */ 0xda50,
- /* key: 0x869b */ 0xffff,
- /* key: 0x869c */ 0xda51,
- /* key: 0x869d */ 0xffff,
- /* key: 0x869e */ 0xffff,
- /* key: 0x869f */ 0xffff,
- /* key: 0x86a0 */ 0xffff,
- /* key: 0x86a1 */ 0xda52,
- /* key: 0x86a2 */ 0xffff,
- /* key: 0x86a3 */ 0x694f,
- /* key: 0x86a4 */ 0x4742,
- /* key: 0x86a5 */ 0xffff,
- /* key: 0x86a6 */ 0xda53,
- /* key: 0x86a7 */ 0xda54,
- /* key: 0x86a8 */ 0xda55,
- /* key: 0x86a9 */ 0x6950,
- /* key: 0x86aa */ 0x6951,
- /* key: 0x86ab */ 0x695b,
- /* key: 0x86ac */ 0xffff,
- /* key: 0x86ad */ 0xda56,
- /* key: 0x86ae */ 0xffff,
- /* key: 0x86af */ 0x6955,
- /* key: 0x86b0 */ 0x6958,
- /* key: 0x86b1 */ 0xda57,
- /* key: 0x86b2 */ 0xffff,
- /* key: 0x86b3 */ 0xda58,
- /* key: 0x86b4 */ 0xda59,
- /* key: 0x86b5 */ 0xda5a,
- /* key: 0x86b6 */ 0x6954,
- /* key: 0x86b7 */ 0xda5b,
- /* key: 0x86b8 */ 0xda5c,
- /* key: 0x86b9 */ 0xda5d,
- /* key: 0x86ba */ 0xffff,
- /* key: 0x86bb */ 0xffff,
- /* key: 0x86bc */ 0xffff,
- /* key: 0x86bd */ 0xffff,
- /* key: 0x86be */ 0xffff,
- /* key: 0x86bf */ 0xda5e,
- /* key: 0x86c0 */ 0xda5f,
- /* key: 0x86c1 */ 0xda60,
- /* key: 0x86c2 */ 0xffff,
- /* key: 0x86c3 */ 0xda61,
- /* key: 0x86c4 */ 0x6956,
- /* key: 0x86c5 */ 0xda62,
- /* key: 0x86c6 */ 0x6957,
- /* key: 0x86c7 */ 0x3c58,
- /* key: 0x86c8 */ 0xffff,
- /* key: 0x86c9 */ 0x6959,
- /* key: 0x86ca */ 0xffff,
- /* key: 0x86cb */ 0x4341,
- /* key: 0x86cc */ 0xffff,
- /* key: 0x86cd */ 0x3756,
- /* key: 0x86ce */ 0x3342,
- /* key: 0x86cf */ 0xffff,
- /* key: 0x86d0 */ 0xffff,
- /* key: 0x86d1 */ 0xda63,
- /* key: 0x86d2 */ 0xda64,
- /* key: 0x86d3 */ 0xffff,
- /* key: 0x86d4 */ 0x695c,
- /* key: 0x86d5 */ 0xda65,
- /* key: 0x86d6 */ 0xffff,
- /* key: 0x86d7 */ 0xda66,
- /* key: 0x86d8 */ 0xffff,
- /* key: 0x86d9 */ 0x333f,
- /* key: 0x86da */ 0xda67,
- /* key: 0x86db */ 0x6961,
- /* key: 0x86dc */ 0xda68,
- /* key: 0x86dd */ 0xffff,
- /* key: 0x86de */ 0x695d,
- /* key: 0x86df */ 0x6960,
- /* key: 0x86e0 */ 0xda69,
- /* key: 0x86e1 */ 0xffff,
- /* key: 0x86e2 */ 0xffff,
- /* key: 0x86e3 */ 0xda6a,
- /* key: 0x86e4 */ 0x483a,
- /* key: 0x86e5 */ 0xda6b,
- /* key: 0x86e6 */ 0xffff,
- /* key: 0x86e7 */ 0xda6c,
- /* key: 0x86e8 */ 0xffff,
- /* key: 0x86e9 */ 0x695e,
- /* key: 0x86ea */ 0xffff,
- /* key: 0x86eb */ 0xffff,
- /* key: 0x86ec */ 0x695f,
- /* key: 0x86ed */ 0x4948,
- /* key: 0x86ee */ 0x485a,
- /* key: 0x86ef */ 0x6962,
- /* key: 0x86f0 */ 0xffff,
- /* key: 0x86f1 */ 0xffff,
- /* key: 0x86f2 */ 0xffff,
- /* key: 0x86f3 */ 0xffff,
- /* key: 0x86f4 */ 0xffff,
- /* key: 0x86f5 */ 0xffff,
- /* key: 0x86f6 */ 0xffff,
- /* key: 0x86f7 */ 0xffff,
- /* key: 0x86f8 */ 0x427d,
- /* key: 0x86f9 */ 0x696c,
- /* key: 0x86fa */ 0xda6e,
- /* key: 0x86fb */ 0x6968,
- /* key: 0x86fc */ 0xda6f,
- /* key: 0x86fd */ 0xda70,
- /* key: 0x86fe */ 0x326b,
- /* key: 0x86ff */ 0xffff,
- /* branch: 0x870X */ 16992,
- /* branch: 0x871X */ 17008,
- /* branch: 0x872X */ 17024,
- /* branch: 0x873X */ 17040,
- /* branch: 0x874X */ 17056,
- /* branch: 0x875X */ 17072,
- /* branch: 0x876X */ 17088,
- /* branch: 0x877X */ 17104,
- /* branch: 0x878X */ 17120,
- /* branch: 0x879X */ 17136,
- /* branch: 0x87aX */ 17152,
- /* branch: 0x87bX */ 17168,
- /* branch: 0x87cX */ 17184,
- /* branch: 0x87dX */ 17200,
- /* branch: 0x87eX */ 17216,
- /* branch: 0x87fX */ 17232,
- /* key: 0x8700 */ 0x6966,
- /* key: 0x8701 */ 0xffff,
- /* key: 0x8702 */ 0x4b2a,
- /* key: 0x8703 */ 0x6967,
- /* key: 0x8704 */ 0xda71,
- /* key: 0x8705 */ 0xda72,
- /* key: 0x8706 */ 0x6964,
- /* key: 0x8707 */ 0xda73,
- /* key: 0x8708 */ 0x6965,
- /* key: 0x8709 */ 0x696a,
- /* key: 0x870a */ 0x696d,
- /* key: 0x870b */ 0xda74,
- /* key: 0x870c */ 0xffff,
- /* key: 0x870d */ 0x696b,
- /* key: 0x870e */ 0xda75,
- /* key: 0x870f */ 0xda76,
- /* key: 0x8710 */ 0xda77,
- /* key: 0x8711 */ 0x6969,
- /* key: 0x8712 */ 0x6963,
- /* key: 0x8713 */ 0xda78,
- /* key: 0x8714 */ 0xda79,
- /* key: 0x8715 */ 0xffff,
- /* key: 0x8716 */ 0xffff,
- /* key: 0x8717 */ 0xffff,
- /* key: 0x8718 */ 0x4358,
- /* key: 0x8719 */ 0xda7a,
- /* key: 0x871a */ 0x6974,
- /* key: 0x871b */ 0xffff,
- /* key: 0x871c */ 0x4c2a,
- /* key: 0x871d */ 0xffff,
- /* key: 0x871e */ 0xda7b,
- /* key: 0x871f */ 0xda7c,
- /* key: 0x8720 */ 0xffff,
- /* key: 0x8721 */ 0xda7d,
- /* key: 0x8722 */ 0xffff,
- /* key: 0x8723 */ 0xda7e,
- /* key: 0x8724 */ 0xffff,
- /* key: 0x8725 */ 0x6972,
- /* key: 0x8726 */ 0xffff,
- /* key: 0x8727 */ 0xffff,
- /* key: 0x8728 */ 0xdb21,
- /* key: 0x8729 */ 0x6973,
- /* key: 0x872a */ 0xffff,
- /* key: 0x872b */ 0xffff,
- /* key: 0x872c */ 0xffff,
- /* key: 0x872d */ 0xffff,
- /* key: 0x872e */ 0xdb22,
- /* key: 0x872f */ 0xdb23,
- /* key: 0x8730 */ 0xffff,
- /* key: 0x8731 */ 0xdb24,
- /* key: 0x8732 */ 0xdb25,
- /* key: 0x8733 */ 0xffff,
- /* key: 0x8734 */ 0x696e,
- /* key: 0x8735 */ 0xffff,
- /* key: 0x8736 */ 0xffff,
- /* key: 0x8737 */ 0x6970,
- /* key: 0x8738 */ 0xffff,
- /* key: 0x8739 */ 0xdb26,
- /* key: 0x873a */ 0xdb27,
- /* key: 0x873b */ 0x6971,
- /* key: 0x873c */ 0xdb28,
- /* key: 0x873d */ 0xdb29,
- /* key: 0x873e */ 0xdb2a,
- /* key: 0x873f */ 0x696f,
- /* key: 0x8740 */ 0xdb2b,
- /* key: 0x8741 */ 0xffff,
- /* key: 0x8742 */ 0xffff,
- /* key: 0x8743 */ 0xdb2c,
- /* key: 0x8744 */ 0xffff,
- /* key: 0x8745 */ 0xdb2d,
- /* key: 0x8746 */ 0xffff,
- /* key: 0x8747 */ 0xffff,
- /* key: 0x8748 */ 0xffff,
- /* key: 0x8749 */ 0x4066,
- /* key: 0x874a */ 0xffff,
- /* key: 0x874b */ 0x4f39,
- /* key: 0x874c */ 0x6978,
- /* key: 0x874d */ 0xdb2e,
- /* key: 0x874e */ 0x6979,
- /* key: 0x874f */ 0xffff,
- /* key: 0x8750 */ 0xffff,
- /* key: 0x8751 */ 0xffff,
- /* key: 0x8752 */ 0xffff,
- /* key: 0x8753 */ 0x6a21,
- /* key: 0x8754 */ 0xffff,
- /* key: 0x8755 */ 0x3f2a,
- /* key: 0x8756 */ 0xffff,
- /* key: 0x8757 */ 0x697b,
- /* key: 0x8758 */ 0xdb2f,
- /* key: 0x8759 */ 0x697e,
- /* key: 0x875a */ 0xffff,
- /* key: 0x875b */ 0xffff,
- /* key: 0x875c */ 0xffff,
- /* key: 0x875d */ 0xdb30,
- /* key: 0x875e */ 0xffff,
- /* key: 0x875f */ 0x6976,
- /* key: 0x8760 */ 0x6975,
- /* key: 0x8761 */ 0xdb31,
- /* key: 0x8762 */ 0xffff,
- /* key: 0x8763 */ 0x6a22,
- /* key: 0x8764 */ 0xdb32,
- /* key: 0x8765 */ 0xdb33,
- /* key: 0x8766 */ 0x325c,
- /* key: 0x8767 */ 0xffff,
- /* key: 0x8768 */ 0x697c,
- /* key: 0x8769 */ 0xffff,
- /* key: 0x876a */ 0x6a23,
- /* key: 0x876b */ 0xffff,
- /* key: 0x876c */ 0xffff,
- /* key: 0x876d */ 0xffff,
- /* key: 0x876e */ 0x697d,
- /* key: 0x876f */ 0xdb34,
- /* key: 0x8770 */ 0xffff,
- /* key: 0x8771 */ 0xdb35,
- /* key: 0x8772 */ 0xdb36,
- /* key: 0x8773 */ 0xffff,
- /* key: 0x8774 */ 0x697a,
- /* key: 0x8775 */ 0xffff,
- /* key: 0x8776 */ 0x4433,
- /* key: 0x8777 */ 0xffff,
- /* key: 0x8778 */ 0x6977,
- /* key: 0x8779 */ 0xffff,
- /* key: 0x877a */ 0xffff,
- /* key: 0x877b */ 0xdb37,
- /* key: 0x877c */ 0xffff,
- /* key: 0x877d */ 0xffff,
- /* key: 0x877e */ 0xffff,
- /* key: 0x877f */ 0x4768,
- /* key: 0x8780 */ 0xffff,
- /* key: 0x8781 */ 0xffff,
- /* key: 0x8782 */ 0x6a27,
- /* key: 0x8783 */ 0xdb38,
- /* key: 0x8784 */ 0xdb39,
- /* key: 0x8785 */ 0xdb3a,
- /* key: 0x8786 */ 0xdb3b,
- /* key: 0x8787 */ 0xdb3c,
- /* key: 0x8788 */ 0xdb3d,
- /* key: 0x8789 */ 0xdb3e,
- /* key: 0x878a */ 0xffff,
- /* key: 0x878b */ 0xdb3f,
- /* key: 0x878c */ 0xdb40,
- /* key: 0x878d */ 0x4d3b,
- /* key: 0x878e */ 0xffff,
- /* key: 0x878f */ 0xffff,
- /* key: 0x8790 */ 0xdb41,
- /* key: 0x8791 */ 0xffff,
- /* key: 0x8792 */ 0xffff,
- /* key: 0x8793 */ 0xdb42,
- /* key: 0x8794 */ 0xffff,
- /* key: 0x8795 */ 0xdb43,
- /* key: 0x8796 */ 0xffff,
- /* key: 0x8797 */ 0xdb44,
- /* key: 0x8798 */ 0xdb45,
- /* key: 0x8799 */ 0xdb46,
- /* key: 0x879a */ 0xffff,
- /* key: 0x879b */ 0xffff,
- /* key: 0x879c */ 0xffff,
- /* key: 0x879d */ 0xffff,
- /* key: 0x879e */ 0xdb47,
- /* key: 0x879f */ 0x6a26,
- /* key: 0x87a0 */ 0xdb48,
- /* key: 0x87a1 */ 0xffff,
- /* key: 0x87a2 */ 0x6a25,
- /* key: 0x87a3 */ 0xdb49,
- /* key: 0x87a4 */ 0xffff,
- /* key: 0x87a5 */ 0xffff,
- /* key: 0x87a6 */ 0xffff,
- /* key: 0x87a7 */ 0xdb4a,
- /* key: 0x87a8 */ 0xffff,
- /* key: 0x87a9 */ 0xffff,
- /* key: 0x87aa */ 0xffff,
- /* key: 0x87ab */ 0x6a2e,
- /* key: 0x87ac */ 0xdb4b,
- /* key: 0x87ad */ 0xdb4c,
- /* key: 0x87ae */ 0xdb4d,
- /* key: 0x87af */ 0x6a28,
- /* key: 0x87b0 */ 0xffff,
- /* key: 0x87b1 */ 0xdb4e,
- /* key: 0x87b2 */ 0xffff,
- /* key: 0x87b3 */ 0x6a30,
- /* key: 0x87b4 */ 0xffff,
- /* key: 0x87b5 */ 0xdb4f,
- /* key: 0x87b6 */ 0xffff,
- /* key: 0x87b7 */ 0xffff,
- /* key: 0x87b8 */ 0xffff,
- /* key: 0x87b9 */ 0xffff,
- /* key: 0x87ba */ 0x4d66,
- /* key: 0x87bb */ 0x6a33,
- /* key: 0x87bc */ 0xffff,
- /* key: 0x87bd */ 0x6a2a,
- /* key: 0x87be */ 0xdb50,
- /* key: 0x87bf */ 0xdb51,
- /* key: 0x87c0 */ 0x6a2b,
- /* key: 0x87c1 */ 0xdb52,
- /* key: 0x87c2 */ 0xffff,
- /* key: 0x87c3 */ 0xffff,
- /* key: 0x87c4 */ 0x6a2f,
- /* key: 0x87c5 */ 0xffff,
- /* key: 0x87c6 */ 0x6a32,
- /* key: 0x87c7 */ 0x6a31,
- /* key: 0x87c8 */ 0xdb53,
- /* key: 0x87c9 */ 0xdb54,
- /* key: 0x87ca */ 0xdb55,
- /* key: 0x87cb */ 0x6a29,
- /* key: 0x87cc */ 0xffff,
- /* key: 0x87cd */ 0xffff,
- /* key: 0x87ce */ 0xdb56,
- /* key: 0x87cf */ 0xffff,
- /* key: 0x87d0 */ 0x6a2c,
- /* key: 0x87d1 */ 0xffff,
- /* key: 0x87d2 */ 0x6a3d,
- /* key: 0x87d3 */ 0xffff,
- /* key: 0x87d4 */ 0xffff,
- /* key: 0x87d5 */ 0xdb57,
- /* key: 0x87d6 */ 0xdb58,
- /* key: 0x87d7 */ 0xffff,
- /* key: 0x87d8 */ 0xffff,
- /* key: 0x87d9 */ 0xdb59,
- /* key: 0x87da */ 0xdb5a,
- /* key: 0x87db */ 0xffff,
- /* key: 0x87dc */ 0xdb5b,
- /* key: 0x87dd */ 0xffff,
- /* key: 0x87de */ 0xffff,
- /* key: 0x87df */ 0xdb5c,
- /* key: 0x87e0 */ 0x6a36,
- /* key: 0x87e1 */ 0xffff,
- /* key: 0x87e2 */ 0xdb5d,
- /* key: 0x87e3 */ 0xdb5e,
- /* key: 0x87e4 */ 0xdb5f,
- /* key: 0x87e5 */ 0xffff,
- /* key: 0x87e6 */ 0xffff,
- /* key: 0x87e7 */ 0xffff,
- /* key: 0x87e8 */ 0xffff,
- /* key: 0x87e9 */ 0xffff,
- /* key: 0x87ea */ 0xdb60,
- /* key: 0x87eb */ 0xdb61,
- /* key: 0x87ec */ 0xffff,
- /* key: 0x87ed */ 0xdb62,
- /* key: 0x87ee */ 0xffff,
- /* key: 0x87ef */ 0x6a34,
- /* key: 0x87f0 */ 0xffff,
- /* key: 0x87f1 */ 0xdb63,
- /* key: 0x87f2 */ 0x6a35,
- /* key: 0x87f3 */ 0xdb64,
- /* key: 0x87f4 */ 0xffff,
- /* key: 0x87f5 */ 0xffff,
- /* key: 0x87f6 */ 0x6a3a,
- /* key: 0x87f7 */ 0x6a3b,
- /* key: 0x87f8 */ 0xdb65,
- /* key: 0x87f9 */ 0x332a,
- /* key: 0x87fa */ 0xdb66,
- /* key: 0x87fb */ 0x3542,
- /* key: 0x87fc */ 0xffff,
- /* key: 0x87fd */ 0xffff,
- /* key: 0x87fe */ 0x6a39,
- /* key: 0x87ff */ 0xdb67,
- /* branch: 0x880X */ 17264,
- /* branch: 0x881X */ 17280,
- /* branch: 0x882X */ 17296,
- /* branch: 0x883X */ 17312,
- /* branch: 0x884X */ 17328,
- /* branch: 0x885X */ 17344,
- /* branch: 0x886X */ 17360,
- /* branch: 0x887X */ 17376,
- /* branch: 0x888X */ 17392,
- /* branch: 0x889X */ 17408,
- /* branch: 0x88aX */ 17424,
- /* branch: 0x88bX */ 17440,
- /* branch: 0x88cX */ 17456,
- /* branch: 0x88dX */ 17472,
- /* branch: 0x88eX */ 17488,
- /* branch: 0x88fX */ 17504,
- /* key: 0x8800 */ 0xffff,
- /* key: 0x8801 */ 0xdb68,
- /* key: 0x8802 */ 0xffff,
- /* key: 0x8803 */ 0xdb69,
- /* key: 0x8804 */ 0xffff,
- /* key: 0x8805 */ 0x6a24,
- /* key: 0x8806 */ 0xdb6a,
- /* key: 0x8807 */ 0xffff,
- /* key: 0x8808 */ 0xffff,
- /* key: 0x8809 */ 0xdb6b,
- /* key: 0x880a */ 0xdb6c,
- /* key: 0x880b */ 0xdb6d,
- /* key: 0x880c */ 0xffff,
- /* key: 0x880d */ 0x6a38,
- /* key: 0x880e */ 0x6a3c,
- /* key: 0x880f */ 0x6a37,
- /* key: 0x8810 */ 0xdb6e,
- /* key: 0x8811 */ 0x6a3e,
- /* key: 0x8812 */ 0xdb70,
- /* key: 0x8813 */ 0xdb71,
- /* key: 0x8814 */ 0xdb72,
- /* key: 0x8815 */ 0x6a40,
- /* key: 0x8816 */ 0x6a3f,
- /* key: 0x8817 */ 0xffff,
- /* key: 0x8818 */ 0xdb73,
- /* key: 0x8819 */ 0xdb6f,
- /* key: 0x881a */ 0xdb74,
- /* key: 0x881b */ 0xdb75,
- /* key: 0x881c */ 0xdb76,
- /* key: 0x881d */ 0xffff,
- /* key: 0x881e */ 0xdb77,
- /* key: 0x881f */ 0xdb78,
- /* key: 0x8820 */ 0xffff,
- /* key: 0x8821 */ 0x6a42,
- /* key: 0x8822 */ 0x6a41,
- /* key: 0x8823 */ 0x695a,
- /* key: 0x8824 */ 0xffff,
- /* key: 0x8825 */ 0xffff,
- /* key: 0x8826 */ 0xffff,
- /* key: 0x8827 */ 0x6a46,
- /* key: 0x8828 */ 0xdb79,
- /* key: 0x8829 */ 0xffff,
- /* key: 0x882a */ 0xffff,
- /* key: 0x882b */ 0xffff,
- /* key: 0x882c */ 0xffff,
- /* key: 0x882d */ 0xdb7a,
- /* key: 0x882e */ 0xdb7b,
- /* key: 0x882f */ 0xffff,
- /* key: 0x8830 */ 0xdb7c,
- /* key: 0x8831 */ 0x6a43,
- /* key: 0x8832 */ 0xdb7d,
- /* key: 0x8833 */ 0xffff,
- /* key: 0x8834 */ 0xffff,
- /* key: 0x8835 */ 0xdb7e,
- /* key: 0x8836 */ 0x6a44,
- /* key: 0x8837 */ 0xffff,
- /* key: 0x8838 */ 0xffff,
- /* key: 0x8839 */ 0x6a45,
- /* key: 0x883a */ 0xdc21,
- /* key: 0x883b */ 0x6a47,
- /* key: 0x883c */ 0xdc22,
- /* key: 0x883d */ 0xffff,
- /* key: 0x883e */ 0xffff,
- /* key: 0x883f */ 0xffff,
- /* key: 0x8840 */ 0x376c,
- /* key: 0x8841 */ 0xdc23,
- /* key: 0x8842 */ 0x6a49,
- /* key: 0x8843 */ 0xdc24,
- /* key: 0x8844 */ 0x6a48,
- /* key: 0x8845 */ 0xdc25,
- /* key: 0x8846 */ 0x3d30,
- /* key: 0x8847 */ 0xffff,
- /* key: 0x8848 */ 0xdc26,
- /* key: 0x8849 */ 0xdc27,
- /* key: 0x884a */ 0xdc28,
- /* key: 0x884b */ 0xdc29,
- /* key: 0x884c */ 0x3954,
- /* key: 0x884d */ 0x5e27,
- /* key: 0x884e */ 0xdc2a,
- /* key: 0x884f */ 0xffff,
- /* key: 0x8850 */ 0xffff,
- /* key: 0x8851 */ 0xdc2b,
- /* key: 0x8852 */ 0x6a4a,
- /* key: 0x8853 */ 0x3d51,
- /* key: 0x8854 */ 0xffff,
- /* key: 0x8855 */ 0xdc2c,
- /* key: 0x8856 */ 0xdc2d,
- /* key: 0x8857 */ 0x3339,
- /* key: 0x8858 */ 0xdc2e,
- /* key: 0x8859 */ 0x6a4b,
- /* key: 0x885a */ 0xdc2f,
- /* key: 0x885b */ 0x3152,
- /* key: 0x885c */ 0xdc30,
- /* key: 0x885d */ 0x3e57,
- /* key: 0x885e */ 0x6a4c,
- /* key: 0x885f */ 0xdc31,
- /* key: 0x8860 */ 0xdc32,
- /* key: 0x8861 */ 0x3955,
- /* key: 0x8862 */ 0x6a4d,
- /* key: 0x8863 */ 0x3061,
- /* key: 0x8864 */ 0xdc33,
- /* key: 0x8865 */ 0xffff,
- /* key: 0x8866 */ 0xffff,
- /* key: 0x8867 */ 0xffff,
- /* key: 0x8868 */ 0x493d,
- /* key: 0x8869 */ 0xdc34,
- /* key: 0x886a */ 0xffff,
- /* key: 0x886b */ 0x6a4e,
- /* key: 0x886c */ 0xffff,
- /* key: 0x886d */ 0xffff,
- /* key: 0x886e */ 0xffff,
- /* key: 0x886f */ 0xffff,
- /* key: 0x8870 */ 0x3f6a,
- /* key: 0x8871 */ 0xdc35,
- /* key: 0x8872 */ 0x6a55,
- /* key: 0x8873 */ 0xffff,
- /* key: 0x8874 */ 0xffff,
- /* key: 0x8875 */ 0x6a52,
- /* key: 0x8876 */ 0xffff,
- /* key: 0x8877 */ 0x436f,
- /* key: 0x8878 */ 0xffff,
- /* key: 0x8879 */ 0xdc36,
- /* key: 0x887a */ 0xffff,
- /* key: 0x887b */ 0xdc37,
- /* key: 0x887c */ 0xffff,
- /* key: 0x887d */ 0x6a53,
- /* key: 0x887e */ 0x6a50,
- /* key: 0x887f */ 0x365e,
- /* key: 0x8880 */ 0xdc38,
- /* key: 0x8881 */ 0x6a4f,
- /* key: 0x8882 */ 0x6a56,
- /* key: 0x8883 */ 0xffff,
- /* key: 0x8884 */ 0xffff,
- /* key: 0x8885 */ 0xffff,
- /* key: 0x8886 */ 0xffff,
- /* key: 0x8887 */ 0xffff,
- /* key: 0x8888 */ 0x3736,
- /* key: 0x8889 */ 0xffff,
- /* key: 0x888a */ 0xffff,
- /* key: 0x888b */ 0x425e,
- /* key: 0x888c */ 0xffff,
- /* key: 0x888d */ 0x6a5c,
- /* key: 0x888e */ 0xffff,
- /* key: 0x888f */ 0xffff,
- /* key: 0x8890 */ 0xffff,
- /* key: 0x8891 */ 0xffff,
- /* key: 0x8892 */ 0x6a58,
- /* key: 0x8893 */ 0xffff,
- /* key: 0x8894 */ 0xffff,
- /* key: 0x8895 */ 0xffff,
- /* key: 0x8896 */ 0x4235,
- /* key: 0x8897 */ 0x6a57,
- /* key: 0x8898 */ 0xdc39,
- /* key: 0x8899 */ 0x6a5a,
- /* key: 0x889a */ 0xdc3a,
- /* key: 0x889b */ 0xdc3b,
- /* key: 0x889c */ 0xdc3c,
- /* key: 0x889d */ 0xffff,
- /* key: 0x889e */ 0x6a51,
- /* key: 0x889f */ 0xdc3d,
- /* key: 0x88a0 */ 0xdc3e,
- /* key: 0x88a1 */ 0xffff,
- /* key: 0x88a2 */ 0x6a5b,
- /* key: 0x88a3 */ 0xffff,
- /* key: 0x88a4 */ 0x6a5d,
- /* key: 0x88a5 */ 0xffff,
- /* key: 0x88a6 */ 0xffff,
- /* key: 0x88a7 */ 0xffff,
- /* key: 0x88a8 */ 0xdc3f,
- /* key: 0x88a9 */ 0xffff,
- /* key: 0x88aa */ 0xdc40,
- /* key: 0x88ab */ 0x486f,
- /* key: 0x88ac */ 0xffff,
- /* key: 0x88ad */ 0xffff,
- /* key: 0x88ae */ 0x6a59,
- /* key: 0x88af */ 0xffff,
- /* key: 0x88b0 */ 0x6a5e,
- /* key: 0x88b1 */ 0x6a60,
- /* key: 0x88b2 */ 0xffff,
- /* key: 0x88b3 */ 0xffff,
- /* key: 0x88b4 */ 0x3853,
- /* key: 0x88b5 */ 0x6a54,
- /* key: 0x88b6 */ 0xffff,
- /* key: 0x88b7 */ 0x3041,
- /* key: 0x88b8 */ 0xffff,
- /* key: 0x88b9 */ 0xffff,
- /* key: 0x88ba */ 0xdc41,
- /* key: 0x88bb */ 0xffff,
- /* key: 0x88bc */ 0xffff,
- /* key: 0x88bd */ 0xdc42,
- /* key: 0x88be */ 0xdc43,
- /* key: 0x88bf */ 0x6a5f,
- /* key: 0x88c0 */ 0xdc44,
- /* key: 0x88c1 */ 0x3a5b,
- /* key: 0x88c2 */ 0x4e76,
- /* key: 0x88c3 */ 0x6a61,
- /* key: 0x88c4 */ 0x6a62,
- /* key: 0x88c5 */ 0x4175,
- /* key: 0x88c6 */ 0xffff,
- /* key: 0x88c7 */ 0xffff,
- /* key: 0x88c8 */ 0xffff,
- /* key: 0x88c9 */ 0xffff,
- /* key: 0x88ca */ 0xdc45,
- /* key: 0x88cb */ 0xdc46,
- /* key: 0x88cc */ 0xdc47,
- /* key: 0x88cd */ 0xdc48,
- /* key: 0x88ce */ 0xdc49,
- /* key: 0x88cf */ 0x4e22,
- /* key: 0x88d0 */ 0xffff,
- /* key: 0x88d1 */ 0xdc4a,
- /* key: 0x88d2 */ 0xdc4b,
- /* key: 0x88d3 */ 0xdc4c,
- /* key: 0x88d4 */ 0x6a63,
- /* key: 0x88d5 */ 0x4d35,
- /* key: 0x88d6 */ 0xffff,
- /* key: 0x88d7 */ 0xffff,
- /* key: 0x88d8 */ 0x6a64,
- /* key: 0x88d9 */ 0x6a65,
- /* key: 0x88da */ 0xffff,
- /* key: 0x88db */ 0xdc4d,
- /* key: 0x88dc */ 0x4a64,
- /* key: 0x88dd */ 0x6a66,
- /* key: 0x88de */ 0xdc4e,
- /* key: 0x88df */ 0x3a40,
- /* key: 0x88e0 */ 0xffff,
- /* key: 0x88e1 */ 0x4e23,
- /* key: 0x88e2 */ 0xffff,
- /* key: 0x88e3 */ 0xffff,
- /* key: 0x88e4 */ 0xffff,
- /* key: 0x88e5 */ 0xffff,
- /* key: 0x88e6 */ 0xffff,
- /* key: 0x88e7 */ 0xdc4f,
- /* key: 0x88e8 */ 0x6a6b,
- /* key: 0x88e9 */ 0xffff,
- /* key: 0x88ea */ 0xffff,
- /* key: 0x88eb */ 0xffff,
- /* key: 0x88ec */ 0xffff,
- /* key: 0x88ed */ 0xffff,
- /* key: 0x88ee */ 0xffff,
- /* key: 0x88ef */ 0xdc50,
- /* key: 0x88f0 */ 0xdc51,
- /* key: 0x88f1 */ 0xdc52,
- /* key: 0x88f2 */ 0x6a6c,
- /* key: 0x88f3 */ 0x3e58,
- /* key: 0x88f4 */ 0x6a6a,
- /* key: 0x88f5 */ 0xdc53,
- /* key: 0x88f6 */ 0xffff,
- /* key: 0x88f7 */ 0xdc54,
- /* key: 0x88f8 */ 0x4d67,
- /* key: 0x88f9 */ 0x6a67,
- /* key: 0x88fa */ 0xffff,
- /* key: 0x88fb */ 0xffff,
- /* key: 0x88fc */ 0x6a69,
- /* key: 0x88fd */ 0x403d,
- /* key: 0x88fe */ 0x3f7e,
- /* key: 0x88ff */ 0xffff,
- /* branch: 0x890X */ 17536,
- /* branch: 0x891X */ 17552,
- /* branch: 0x892X */ 17568,
- /* branch: 0x893X */ 17584,
- /* branch: 0x894X */ 17600,
- /* branch: 0x895X */ 17616,
- /* branch: 0x896X */ 17632,
- /* branch: 0x897X */ 17648,
- /* branch: 0x898X */ 17664,
- /* branch: 0x899X */ 17680,
- /* branch: 0x89aX */ 17696,
- /* branch: 0x89bX */ 17712,
- /* branch: 0x89cX */ 17728,
- /* branch: 0x89dX */ 17744,
- /* branch: 0x89eX */ 17760,
- /* branch: 0x89fX */ 17776,
- /* key: 0x8900 */ 0xffff,
- /* key: 0x8901 */ 0xdc55,
- /* key: 0x8902 */ 0x6a68,
- /* key: 0x8903 */ 0xffff,
- /* key: 0x8904 */ 0x6a6d,
- /* key: 0x8905 */ 0xffff,
- /* key: 0x8906 */ 0xdc56,
- /* key: 0x8907 */ 0x4a23,
- /* key: 0x8908 */ 0xffff,
- /* key: 0x8909 */ 0xffff,
- /* key: 0x890a */ 0x6a6f,
- /* key: 0x890b */ 0xffff,
- /* key: 0x890c */ 0x6a6e,
- /* key: 0x890d */ 0xdc57,
- /* key: 0x890e */ 0xdc58,
- /* key: 0x890f */ 0xdc59,
- /* key: 0x8910 */ 0x336c,
- /* key: 0x8911 */ 0xffff,
- /* key: 0x8912 */ 0x4b2b,
- /* key: 0x8913 */ 0x6a70,
- /* key: 0x8914 */ 0xffff,
- /* key: 0x8915 */ 0xdc5a,
- /* key: 0x8916 */ 0xdc5b,
- /* key: 0x8917 */ 0xffff,
- /* key: 0x8918 */ 0xdc5c,
- /* key: 0x8919 */ 0xdc5d,
- /* key: 0x891a */ 0xdc5e,
- /* key: 0x891b */ 0xffff,
- /* key: 0x891c */ 0xdc5f,
- /* key: 0x891d */ 0x6a7c,
- /* key: 0x891e */ 0x6a72,
- /* key: 0x891f */ 0xffff,
- /* key: 0x8920 */ 0xdc60,
- /* key: 0x8921 */ 0xffff,
- /* key: 0x8922 */ 0xffff,
- /* key: 0x8923 */ 0xffff,
- /* key: 0x8924 */ 0xffff,
- /* key: 0x8925 */ 0x6a73,
- /* key: 0x8926 */ 0xdc61,
- /* key: 0x8927 */ 0xdc62,
- /* key: 0x8928 */ 0xdc63,
- /* key: 0x8929 */ 0xffff,
- /* key: 0x892a */ 0x6a74,
- /* key: 0x892b */ 0x6a75,
- /* key: 0x892c */ 0xffff,
- /* key: 0x892d */ 0xffff,
- /* key: 0x892e */ 0xffff,
- /* key: 0x892f */ 0xffff,
- /* key: 0x8930 */ 0xdc64,
- /* key: 0x8931 */ 0xdc65,
- /* key: 0x8932 */ 0xdc66,
- /* key: 0x8933 */ 0xffff,
- /* key: 0x8934 */ 0xffff,
- /* key: 0x8935 */ 0xdc67,
- /* key: 0x8936 */ 0x6a79,
- /* key: 0x8937 */ 0xffff,
- /* key: 0x8938 */ 0x6a7a,
- /* key: 0x8939 */ 0xdc68,
- /* key: 0x893a */ 0xdc69,
- /* key: 0x893b */ 0x6a78,
- /* key: 0x893c */ 0xffff,
- /* key: 0x893d */ 0xffff,
- /* key: 0x893e */ 0xdc6a,
- /* key: 0x893f */ 0xffff,
- /* key: 0x8940 */ 0xdc6b,
- /* key: 0x8941 */ 0x6a76,
- /* key: 0x8942 */ 0xdc6c,
- /* key: 0x8943 */ 0x6a71,
- /* key: 0x8944 */ 0x6a77,
- /* key: 0x8945 */ 0xdc6d,
- /* key: 0x8946 */ 0xdc6e,
- /* key: 0x8947 */ 0xffff,
- /* key: 0x8948 */ 0xffff,
- /* key: 0x8949 */ 0xdc6f,
- /* key: 0x894a */ 0xffff,
- /* key: 0x894b */ 0xffff,
- /* key: 0x894c */ 0x6a7b,
- /* key: 0x894d */ 0x7037,
- /* key: 0x894e */ 0xffff,
- /* key: 0x894f */ 0xdc70,
- /* key: 0x8950 */ 0xffff,
- /* key: 0x8951 */ 0xffff,
- /* key: 0x8952 */ 0xdc71,
- /* key: 0x8953 */ 0xffff,
- /* key: 0x8954 */ 0xffff,
- /* key: 0x8955 */ 0xffff,
- /* key: 0x8956 */ 0x3228,
- /* key: 0x8957 */ 0xdc72,
- /* key: 0x8958 */ 0xffff,
- /* key: 0x8959 */ 0xffff,
- /* key: 0x895a */ 0xdc73,
- /* key: 0x895b */ 0xdc74,
- /* key: 0x895c */ 0xdc75,
- /* key: 0x895d */ 0xffff,
- /* key: 0x895e */ 0x6a7e,
- /* key: 0x895f */ 0x365f,
- /* key: 0x8960 */ 0x6a7d,
- /* key: 0x8961 */ 0xdc76,
- /* key: 0x8962 */ 0xdc77,
- /* key: 0x8963 */ 0xdc78,
- /* key: 0x8964 */ 0x6b22,
- /* key: 0x8965 */ 0xffff,
- /* key: 0x8966 */ 0x6b21,
- /* key: 0x8967 */ 0xffff,
- /* key: 0x8968 */ 0xffff,
- /* key: 0x8969 */ 0xffff,
- /* key: 0x896a */ 0x6b24,
- /* key: 0x896b */ 0xdc79,
- /* key: 0x896c */ 0xffff,
- /* key: 0x896d */ 0x6b23,
- /* key: 0x896e */ 0xdc7a,
- /* key: 0x896f */ 0x6b25,
- /* key: 0x8970 */ 0xdc7b,
- /* key: 0x8971 */ 0xffff,
- /* key: 0x8972 */ 0x3d31,
- /* key: 0x8973 */ 0xdc7c,
- /* key: 0x8974 */ 0x6b26,
- /* key: 0x8975 */ 0xdc7d,
- /* key: 0x8976 */ 0xffff,
- /* key: 0x8977 */ 0x6b27,
- /* key: 0x8978 */ 0xffff,
- /* key: 0x8979 */ 0xffff,
- /* key: 0x897a */ 0xdc7e,
- /* key: 0x897b */ 0xdd21,
- /* key: 0x897c */ 0xdd22,
- /* key: 0x897d */ 0xdd23,
- /* key: 0x897e */ 0x6b28,
- /* key: 0x897f */ 0x403e,
- /* key: 0x8980 */ 0xffff,
- /* key: 0x8981 */ 0x4d57,
- /* key: 0x8982 */ 0xffff,
- /* key: 0x8983 */ 0x6b29,
- /* key: 0x8984 */ 0xffff,
- /* key: 0x8985 */ 0xffff,
- /* key: 0x8986 */ 0x4a24,
- /* key: 0x8987 */ 0x4746,
- /* key: 0x8988 */ 0x6b2a,
- /* key: 0x8989 */ 0xdd24,
- /* key: 0x898a */ 0x6b2b,
- /* key: 0x898b */ 0x382b,
- /* key: 0x898c */ 0xffff,
- /* key: 0x898d */ 0xdd25,
- /* key: 0x898e */ 0xffff,
- /* key: 0x898f */ 0x352c,
- /* key: 0x8990 */ 0xdd26,
- /* key: 0x8991 */ 0xffff,
- /* key: 0x8992 */ 0xffff,
- /* key: 0x8993 */ 0x6b2c,
- /* key: 0x8994 */ 0xdd27,
- /* key: 0x8995 */ 0xdd28,
- /* key: 0x8996 */ 0x3b6b,
- /* key: 0x8997 */ 0x4741,
- /* key: 0x8998 */ 0x6b2d,
- /* key: 0x8999 */ 0xffff,
- /* key: 0x899a */ 0x3350,
- /* key: 0x899b */ 0xdd29,
- /* key: 0x899c */ 0xdd2a,
- /* key: 0x899d */ 0xffff,
- /* key: 0x899e */ 0xffff,
- /* key: 0x899f */ 0xdd2b,
- /* key: 0x89a0 */ 0xdd2c,
- /* key: 0x89a1 */ 0x6b2e,
- /* key: 0x89a2 */ 0xffff,
- /* key: 0x89a3 */ 0xffff,
- /* key: 0x89a4 */ 0xffff,
- /* key: 0x89a5 */ 0xdd2d,
- /* key: 0x89a6 */ 0x6b30,
- /* key: 0x89a7 */ 0x4d77,
- /* key: 0x89a8 */ 0xffff,
- /* key: 0x89a9 */ 0x6b2f,
- /* key: 0x89aa */ 0x3f46,
- /* key: 0x89ab */ 0xffff,
- /* key: 0x89ac */ 0x6b31,
- /* key: 0x89ad */ 0xffff,
- /* key: 0x89ae */ 0xffff,
- /* key: 0x89af */ 0x6b32,
- /* key: 0x89b0 */ 0xdd2e,
- /* key: 0x89b1 */ 0xffff,
- /* key: 0x89b2 */ 0x6b33,
- /* key: 0x89b3 */ 0x3451,
- /* key: 0x89b4 */ 0xdd2f,
- /* key: 0x89b5 */ 0xdd30,
- /* key: 0x89b6 */ 0xdd31,
- /* key: 0x89b7 */ 0xdd32,
- /* key: 0x89b8 */ 0xffff,
- /* key: 0x89b9 */ 0xffff,
- /* key: 0x89ba */ 0x6b34,
- /* key: 0x89bb */ 0xffff,
- /* key: 0x89bc */ 0xdd33,
- /* key: 0x89bd */ 0x6b35,
- /* key: 0x89be */ 0xffff,
- /* key: 0x89bf */ 0x6b36,
- /* key: 0x89c0 */ 0x6b37,
- /* key: 0x89c1 */ 0xffff,
- /* key: 0x89c2 */ 0xffff,
- /* key: 0x89c3 */ 0xffff,
- /* key: 0x89c4 */ 0xffff,
- /* key: 0x89c5 */ 0xffff,
- /* key: 0x89c6 */ 0xffff,
- /* key: 0x89c7 */ 0xffff,
- /* key: 0x89c8 */ 0xffff,
- /* key: 0x89c9 */ 0xffff,
- /* key: 0x89ca */ 0xffff,
- /* key: 0x89cb */ 0xffff,
- /* key: 0x89cc */ 0xffff,
- /* key: 0x89cd */ 0xffff,
- /* key: 0x89ce */ 0xffff,
- /* key: 0x89cf */ 0xffff,
- /* key: 0x89d0 */ 0xffff,
- /* key: 0x89d1 */ 0xffff,
- /* key: 0x89d2 */ 0x3351,
- /* key: 0x89d3 */ 0xffff,
- /* key: 0x89d4 */ 0xdd34,
- /* key: 0x89d5 */ 0xdd35,
- /* key: 0x89d6 */ 0xdd36,
- /* key: 0x89d7 */ 0xdd37,
- /* key: 0x89d8 */ 0xdd38,
- /* key: 0x89d9 */ 0xffff,
- /* key: 0x89da */ 0x6b38,
- /* key: 0x89db */ 0xffff,
- /* key: 0x89dc */ 0x6b39,
- /* key: 0x89dd */ 0x6b3a,
- /* key: 0x89de */ 0xffff,
- /* key: 0x89df */ 0xffff,
- /* key: 0x89e0 */ 0xffff,
- /* key: 0x89e1 */ 0xffff,
- /* key: 0x89e2 */ 0xffff,
- /* key: 0x89e3 */ 0x3272,
- /* key: 0x89e4 */ 0xffff,
- /* key: 0x89e5 */ 0xdd39,
- /* key: 0x89e6 */ 0x3f28,
- /* key: 0x89e7 */ 0x6b3b,
- /* key: 0x89e8 */ 0xffff,
- /* key: 0x89e9 */ 0xdd3a,
- /* key: 0x89ea */ 0xffff,
- /* key: 0x89eb */ 0xdd3b,
- /* key: 0x89ec */ 0xffff,
- /* key: 0x89ed */ 0xdd3c,
- /* key: 0x89ee */ 0xffff,
- /* key: 0x89ef */ 0xffff,
- /* key: 0x89f0 */ 0xffff,
- /* key: 0x89f1 */ 0xdd3d,
- /* key: 0x89f2 */ 0xffff,
- /* key: 0x89f3 */ 0xdd3e,
- /* key: 0x89f4 */ 0x6b3c,
- /* key: 0x89f5 */ 0xffff,
- /* key: 0x89f6 */ 0xdd3f,
- /* key: 0x89f7 */ 0xffff,
- /* key: 0x89f8 */ 0x6b3d,
- /* key: 0x89f9 */ 0xdd40,
- /* key: 0x89fa */ 0xffff,
- /* key: 0x89fb */ 0xffff,
- /* key: 0x89fc */ 0xffff,
- /* key: 0x89fd */ 0xdd41,
- /* key: 0x89fe */ 0xffff,
- /* key: 0x89ff */ 0xdd42,
- /* branch: 0x8a0X */ 17808,
- /* branch: 0x8a1X */ 17824,
- /* branch: 0x8a2X */ 17840,
- /* branch: 0x8a3X */ 17856,
- /* branch: 0x8a4X */ 17872,
- /* branch: 0x8a5X */ 17888,
- /* branch: 0x8a6X */ 17904,
- /* branch: 0x8a7X */ 17920,
- /* branch: 0x8a8X */ 17936,
- /* branch: 0x8a9X */ 17952,
- /* branch: 0x8aaX */ 17968,
- /* branch: 0x8abX */ 17984,
- /* branch: 0x8acX */ 18000,
- /* branch: 0x8adX */ 18016,
- /* branch: 0x8aeX */ 18032,
- /* branch: 0x8afX */ 18048,
- /* key: 0x8a00 */ 0x3840,
- /* key: 0x8a01 */ 0xffff,
- /* key: 0x8a02 */ 0x447b,
- /* key: 0x8a03 */ 0x6b3e,
- /* key: 0x8a04 */ 0xdd43,
- /* key: 0x8a05 */ 0xdd44,
- /* key: 0x8a06 */ 0xffff,
- /* key: 0x8a07 */ 0xdd45,
- /* key: 0x8a08 */ 0x3757,
- /* key: 0x8a09 */ 0xffff,
- /* key: 0x8a0a */ 0x3f56,
- /* key: 0x8a0b */ 0xffff,
- /* key: 0x8a0c */ 0x6b41,
- /* key: 0x8a0d */ 0xffff,
- /* key: 0x8a0e */ 0x4624,
- /* key: 0x8a0f */ 0xdd46,
- /* key: 0x8a10 */ 0x6b40,
- /* key: 0x8a11 */ 0xdd47,
- /* key: 0x8a12 */ 0xdd48,
- /* key: 0x8a13 */ 0x3731,
- /* key: 0x8a14 */ 0xdd49,
- /* key: 0x8a15 */ 0xdd4a,
- /* key: 0x8a16 */ 0x6b3f,
- /* key: 0x8a17 */ 0x4277,
- /* key: 0x8a18 */ 0x352d,
- /* key: 0x8a19 */ 0xffff,
- /* key: 0x8a1a */ 0xffff,
- /* key: 0x8a1b */ 0x6b42,
- /* key: 0x8a1c */ 0xffff,
- /* key: 0x8a1d */ 0x6b43,
- /* key: 0x8a1e */ 0xdd4b,
- /* key: 0x8a1f */ 0x3e59,
- /* key: 0x8a20 */ 0xdd4c,
- /* key: 0x8a21 */ 0xffff,
- /* key: 0x8a22 */ 0xdd4d,
- /* key: 0x8a23 */ 0x376d,
- /* key: 0x8a24 */ 0xdd4e,
- /* key: 0x8a25 */ 0x6b44,
- /* key: 0x8a26 */ 0xdd4f,
- /* key: 0x8a27 */ 0xffff,
- /* key: 0x8a28 */ 0xffff,
- /* key: 0x8a29 */ 0xffff,
- /* key: 0x8a2a */ 0x4b2c,
- /* key: 0x8a2b */ 0xdd50,
- /* key: 0x8a2c */ 0xdd51,
- /* key: 0x8a2d */ 0x405f,
- /* key: 0x8a2e */ 0xffff,
- /* key: 0x8a2f */ 0xdd52,
- /* key: 0x8a30 */ 0xffff,
- /* key: 0x8a31 */ 0x3576,
- /* key: 0x8a32 */ 0xffff,
- /* key: 0x8a33 */ 0x4c75,
- /* key: 0x8a34 */ 0x414a,
- /* key: 0x8a35 */ 0xdd53,
- /* key: 0x8a36 */ 0x6b45,
- /* key: 0x8a37 */ 0xdd54,
- /* key: 0x8a38 */ 0xffff,
- /* key: 0x8a39 */ 0xffff,
- /* key: 0x8a3a */ 0x3f47,
- /* key: 0x8a3b */ 0x4370,
- /* key: 0x8a3c */ 0x3e5a,
- /* key: 0x8a3d */ 0xdd55,
- /* key: 0x8a3e */ 0xdd56,
- /* key: 0x8a3f */ 0xffff,
- /* key: 0x8a40 */ 0xdd57,
- /* key: 0x8a41 */ 0x6b46,
- /* key: 0x8a42 */ 0xffff,
- /* key: 0x8a43 */ 0xdd58,
- /* key: 0x8a44 */ 0xffff,
- /* key: 0x8a45 */ 0xdd59,
- /* key: 0x8a46 */ 0x6b49,
- /* key: 0x8a47 */ 0xdd5a,
- /* key: 0x8a48 */ 0x6b4a,
- /* key: 0x8a49 */ 0xdd5b,
- /* key: 0x8a4a */ 0xffff,
- /* key: 0x8a4b */ 0xffff,
- /* key: 0x8a4c */ 0xffff,
- /* key: 0x8a4d */ 0xdd5c,
- /* key: 0x8a4e */ 0xdd5d,
- /* key: 0x8a4f */ 0xffff,
- /* key: 0x8a50 */ 0x3a3e,
- /* key: 0x8a51 */ 0x4242,
- /* key: 0x8a52 */ 0x6b48,
- /* key: 0x8a53 */ 0xdd5e,
- /* key: 0x8a54 */ 0x3e5b,
- /* key: 0x8a55 */ 0x493e,
- /* key: 0x8a56 */ 0xdd5f,
- /* key: 0x8a57 */ 0xdd60,
- /* key: 0x8a58 */ 0xdd61,
- /* key: 0x8a59 */ 0xffff,
- /* key: 0x8a5a */ 0xffff,
- /* key: 0x8a5b */ 0x6b47,
- /* key: 0x8a5c */ 0xdd62,
- /* key: 0x8a5d */ 0xdd63,
- /* key: 0x8a5e */ 0x3b6c,
- /* key: 0x8a5f */ 0xffff,
- /* key: 0x8a60 */ 0x3153,
- /* key: 0x8a61 */ 0xdd64,
- /* key: 0x8a62 */ 0x6b4e,
- /* key: 0x8a63 */ 0x3758,
- /* key: 0x8a64 */ 0xffff,
- /* key: 0x8a65 */ 0xdd65,
- /* key: 0x8a66 */ 0x3b6e,
- /* key: 0x8a67 */ 0xdd66,
- /* key: 0x8a68 */ 0xffff,
- /* key: 0x8a69 */ 0x3b6d,
- /* key: 0x8a6a */ 0xffff,
- /* key: 0x8a6b */ 0x4f4d,
- /* key: 0x8a6c */ 0x6b4d,
- /* key: 0x8a6d */ 0x6b4c,
- /* key: 0x8a6e */ 0x4127,
- /* key: 0x8a6f */ 0xffff,
- /* key: 0x8a70 */ 0x354d,
- /* key: 0x8a71 */ 0x4f43,
- /* key: 0x8a72 */ 0x333a,
- /* key: 0x8a73 */ 0x3e5c,
- /* key: 0x8a74 */ 0xffff,
- /* key: 0x8a75 */ 0xdd67,
- /* key: 0x8a76 */ 0xdd68,
- /* key: 0x8a77 */ 0xdd69,
- /* key: 0x8a78 */ 0xffff,
- /* key: 0x8a79 */ 0xdd6a,
- /* key: 0x8a7a */ 0xdd6b,
- /* key: 0x8a7b */ 0xdd6c,
- /* key: 0x8a7c */ 0x6b4b,
- /* key: 0x8a7d */ 0xffff,
- /* key: 0x8a7e */ 0xdd6d,
- /* key: 0x8a7f */ 0xdd6e,
- /* key: 0x8a80 */ 0xdd6f,
- /* key: 0x8a81 */ 0xffff,
- /* key: 0x8a82 */ 0x6b50,
- /* key: 0x8a83 */ 0xdd70,
- /* key: 0x8a84 */ 0x6b51,
- /* key: 0x8a85 */ 0x6b4f,
- /* key: 0x8a86 */ 0xdd71,
- /* key: 0x8a87 */ 0x3858,
- /* key: 0x8a88 */ 0xffff,
- /* key: 0x8a89 */ 0x4d40,
- /* key: 0x8a8a */ 0xffff,
- /* key: 0x8a8b */ 0xdd72,
- /* key: 0x8a8c */ 0x3b6f,
- /* key: 0x8a8d */ 0x4727,
- /* key: 0x8a8e */ 0xffff,
- /* key: 0x8a8f */ 0xdd73,
- /* key: 0x8a90 */ 0xdd74,
- /* key: 0x8a91 */ 0x6b54,
- /* key: 0x8a92 */ 0xdd75,
- /* key: 0x8a93 */ 0x4040,
- /* key: 0x8a94 */ 0xffff,
- /* key: 0x8a95 */ 0x4342,
- /* key: 0x8a96 */ 0xdd76,
- /* key: 0x8a97 */ 0xdd77,
- /* key: 0x8a98 */ 0x4d36,
- /* key: 0x8a99 */ 0xdd78,
- /* key: 0x8a9a */ 0x6b57,
- /* key: 0x8a9b */ 0xffff,
- /* key: 0x8a9c */ 0xffff,
- /* key: 0x8a9d */ 0xffff,
- /* key: 0x8a9e */ 0x386c,
- /* key: 0x8a9f */ 0xdd79,
- /* key: 0x8aa0 */ 0x403f,
- /* key: 0x8aa1 */ 0x6b53,
- /* key: 0x8aa2 */ 0xffff,
- /* key: 0x8aa3 */ 0x6b58,
- /* key: 0x8aa4 */ 0x386d,
- /* key: 0x8aa5 */ 0x6b55,
- /* key: 0x8aa6 */ 0x6b56,
- /* key: 0x8aa7 */ 0xdd7a,
- /* key: 0x8aa8 */ 0x6b52,
- /* key: 0x8aa9 */ 0xdd7b,
- /* key: 0x8aaa */ 0xffff,
- /* key: 0x8aab */ 0xffff,
- /* key: 0x8aac */ 0x4062,
- /* key: 0x8aad */ 0x4649,
- /* key: 0x8aae */ 0xdd7c,
- /* key: 0x8aaf */ 0xdd7d,
- /* key: 0x8ab0 */ 0x432f,
- /* key: 0x8ab1 */ 0xffff,
- /* key: 0x8ab2 */ 0x325d,
- /* key: 0x8ab3 */ 0xdd7e,
- /* key: 0x8ab4 */ 0xffff,
- /* key: 0x8ab5 */ 0xffff,
- /* key: 0x8ab6 */ 0xde21,
- /* key: 0x8ab7 */ 0xde22,
- /* key: 0x8ab8 */ 0xffff,
- /* key: 0x8ab9 */ 0x4870,
- /* key: 0x8aba */ 0xffff,
- /* key: 0x8abb */ 0xde23,
- /* key: 0x8abc */ 0x3543,
- /* key: 0x8abd */ 0xffff,
- /* key: 0x8abe */ 0xde24,
- /* key: 0x8abf */ 0x4434,
- /* key: 0x8ac0 */ 0xffff,
- /* key: 0x8ac1 */ 0xffff,
- /* key: 0x8ac2 */ 0x6b5b,
- /* key: 0x8ac3 */ 0xde25,
- /* key: 0x8ac4 */ 0x6b59,
- /* key: 0x8ac5 */ 0xffff,
- /* key: 0x8ac6 */ 0xde26,
- /* key: 0x8ac7 */ 0x434c,
- /* key: 0x8ac8 */ 0xde27,
- /* key: 0x8ac9 */ 0xde28,
- /* key: 0x8aca */ 0xde29,
- /* key: 0x8acb */ 0x4041,
- /* key: 0x8acc */ 0x3452,
- /* key: 0x8acd */ 0x6b5a,
- /* key: 0x8ace */ 0xffff,
- /* key: 0x8acf */ 0x3f5b,
- /* key: 0x8ad0 */ 0xffff,
- /* key: 0x8ad1 */ 0xde2a,
- /* key: 0x8ad2 */ 0x4e4a,
- /* key: 0x8ad3 */ 0xde2b,
- /* key: 0x8ad4 */ 0xde2c,
- /* key: 0x8ad5 */ 0xde2d,
- /* key: 0x8ad6 */ 0x4f40,
- /* key: 0x8ad7 */ 0xde2e,
- /* key: 0x8ad8 */ 0xffff,
- /* key: 0x8ad9 */ 0xffff,
- /* key: 0x8ada */ 0x6b5c,
- /* key: 0x8adb */ 0x6b67,
- /* key: 0x8adc */ 0x4435,
- /* key: 0x8add */ 0xde2f,
- /* key: 0x8ade */ 0x6b66,
- /* key: 0x8adf */ 0xde30,
- /* key: 0x8ae0 */ 0x6b63,
- /* key: 0x8ae1 */ 0x6b6b,
- /* key: 0x8ae2 */ 0x6b64,
- /* key: 0x8ae3 */ 0xffff,
- /* key: 0x8ae4 */ 0x6b60,
- /* key: 0x8ae5 */ 0xffff,
- /* key: 0x8ae6 */ 0x447c,
- /* key: 0x8ae7 */ 0x6b5f,
- /* key: 0x8ae8 */ 0xffff,
- /* key: 0x8ae9 */ 0xffff,
- /* key: 0x8aea */ 0xffff,
- /* key: 0x8aeb */ 0x6b5d,
- /* key: 0x8aec */ 0xde31,
- /* key: 0x8aed */ 0x4d21,
- /* key: 0x8aee */ 0x3b70,
- /* key: 0x8aef */ 0xffff,
- /* key: 0x8af0 */ 0xde32,
- /* key: 0x8af1 */ 0x6b61,
- /* key: 0x8af2 */ 0xffff,
- /* key: 0x8af3 */ 0x6b5e,
- /* key: 0x8af4 */ 0xde33,
- /* key: 0x8af5 */ 0xde34,
- /* key: 0x8af6 */ 0xde35,
- /* key: 0x8af7 */ 0x6b65,
- /* key: 0x8af8 */ 0x3d74,
- /* key: 0x8af9 */ 0xffff,
- /* key: 0x8afa */ 0x3841,
- /* key: 0x8afb */ 0xffff,
- /* key: 0x8afc */ 0xde36,
- /* key: 0x8afd */ 0xffff,
- /* key: 0x8afe */ 0x427a,
- /* key: 0x8aff */ 0xde37,
- /* branch: 0x8b0X */ 18080,
- /* branch: 0x8b1X */ 18096,
- /* branch: 0x8b2X */ 18112,
- /* branch: 0x8b3X */ 18128,
- /* branch: 0x8b4X */ 18144,
- /* branch: 0x8b5X */ 18160,
- /* branch: 0x8b6X */ 18176,
- /* branch: 0x8b7X */ 18192,
- /* branch: 0x8b8X */ 18208,
- /* branch: 0x8b9X */ 18224,
- /* branch: 0x8baX */ 0,
- /* branch: 0x8bbX */ 0,
- /* branch: 0x8bcX */ 0,
- /* branch: 0x8bdX */ 0,
- /* branch: 0x8beX */ 0,
- /* branch: 0x8bfX */ 0,
- /* key: 0x8b00 */ 0x4b45,
- /* key: 0x8b01 */ 0x315a,
- /* key: 0x8b02 */ 0x3062,
- /* key: 0x8b03 */ 0xffff,
- /* key: 0x8b04 */ 0x4625,
- /* key: 0x8b05 */ 0xde38,
- /* key: 0x8b06 */ 0xde39,
- /* key: 0x8b07 */ 0x6b69,
- /* key: 0x8b08 */ 0xffff,
- /* key: 0x8b09 */ 0xffff,
- /* key: 0x8b0a */ 0xde3f,
- /* key: 0x8b0b */ 0xde3a,
- /* key: 0x8b0c */ 0x6b68,
- /* key: 0x8b0d */ 0xffff,
- /* key: 0x8b0e */ 0x4666,
- /* key: 0x8b0f */ 0xffff,
- /* key: 0x8b10 */ 0x6b6d,
- /* key: 0x8b11 */ 0xde3b,
- /* key: 0x8b12 */ 0xffff,
- /* key: 0x8b13 */ 0xffff,
- /* key: 0x8b14 */ 0x6b62,
- /* key: 0x8b15 */ 0xffff,
- /* key: 0x8b16 */ 0x6b6c,
- /* key: 0x8b17 */ 0x6b6e,
- /* key: 0x8b18 */ 0xffff,
- /* key: 0x8b19 */ 0x382c,
- /* key: 0x8b1a */ 0x6b6a,
- /* key: 0x8b1b */ 0x3956,
- /* key: 0x8b1c */ 0xde3c,
- /* key: 0x8b1d */ 0x3c55,
- /* key: 0x8b1e */ 0xde3d,
- /* key: 0x8b1f */ 0xde3e,
- /* key: 0x8b20 */ 0x6b6f,
- /* key: 0x8b21 */ 0x4d58,
- /* key: 0x8b22 */ 0xffff,
- /* key: 0x8b23 */ 0xffff,
- /* key: 0x8b24 */ 0xffff,
- /* key: 0x8b25 */ 0xffff,
- /* key: 0x8b26 */ 0x6b72,
- /* key: 0x8b27 */ 0xffff,
- /* key: 0x8b28 */ 0x6b75,
- /* key: 0x8b29 */ 0xffff,
- /* key: 0x8b2a */ 0xffff,
- /* key: 0x8b2b */ 0x6b73,
- /* key: 0x8b2c */ 0x4935,
- /* key: 0x8b2d */ 0xde40,
- /* key: 0x8b2e */ 0xffff,
- /* key: 0x8b2f */ 0xffff,
- /* key: 0x8b30 */ 0xde41,
- /* key: 0x8b31 */ 0xffff,
- /* key: 0x8b32 */ 0xffff,
- /* key: 0x8b33 */ 0x6b70,
- /* key: 0x8b34 */ 0xffff,
- /* key: 0x8b35 */ 0xffff,
- /* key: 0x8b36 */ 0xffff,
- /* key: 0x8b37 */ 0xde42,
- /* key: 0x8b38 */ 0xffff,
- /* key: 0x8b39 */ 0x3660,
- /* key: 0x8b3a */ 0xffff,
- /* key: 0x8b3b */ 0xffff,
- /* key: 0x8b3c */ 0xde43,
- /* key: 0x8b3d */ 0xffff,
- /* key: 0x8b3e */ 0x6b74,
- /* key: 0x8b3f */ 0xffff,
- /* key: 0x8b40 */ 0xffff,
- /* key: 0x8b41 */ 0x6b76,
- /* key: 0x8b42 */ 0xde44,
- /* key: 0x8b43 */ 0xde45,
- /* key: 0x8b44 */ 0xde46,
- /* key: 0x8b45 */ 0xde47,
- /* key: 0x8b46 */ 0xde48,
- /* key: 0x8b47 */ 0xffff,
- /* key: 0x8b48 */ 0xde49,
- /* key: 0x8b49 */ 0x6b7a,
- /* key: 0x8b4a */ 0xffff,
- /* key: 0x8b4b */ 0xffff,
- /* key: 0x8b4c */ 0x6b77,
- /* key: 0x8b4d */ 0xde4e,
- /* key: 0x8b4e */ 0x6b79,
- /* key: 0x8b4f */ 0x6b78,
- /* key: 0x8b50 */ 0xffff,
- /* key: 0x8b51 */ 0xffff,
- /* key: 0x8b52 */ 0xde4a,
- /* key: 0x8b53 */ 0xde4b,
- /* key: 0x8b54 */ 0xde4c,
- /* key: 0x8b55 */ 0xffff,
- /* key: 0x8b56 */ 0x6b7b,
- /* key: 0x8b57 */ 0xffff,
- /* key: 0x8b58 */ 0x3c31,
- /* key: 0x8b59 */ 0xde4d,
- /* key: 0x8b5a */ 0x6b7d,
- /* key: 0x8b5b */ 0x6b7c,
- /* key: 0x8b5c */ 0x4968,
- /* key: 0x8b5d */ 0xffff,
- /* key: 0x8b5e */ 0xde4f,
- /* key: 0x8b5f */ 0x6c21,
- /* key: 0x8b60 */ 0xffff,
- /* key: 0x8b61 */ 0xffff,
- /* key: 0x8b62 */ 0xffff,
- /* key: 0x8b63 */ 0xde50,
- /* key: 0x8b64 */ 0xffff,
- /* key: 0x8b65 */ 0xffff,
- /* key: 0x8b66 */ 0x3759,
- /* key: 0x8b67 */ 0xffff,
- /* key: 0x8b68 */ 0xffff,
- /* key: 0x8b69 */ 0xffff,
- /* key: 0x8b6a */ 0xffff,
- /* key: 0x8b6b */ 0x6b7e,
- /* key: 0x8b6c */ 0x6c22,
- /* key: 0x8b6d */ 0xde51,
- /* key: 0x8b6e */ 0xffff,
- /* key: 0x8b6f */ 0x6c23,
- /* key: 0x8b70 */ 0x3544,
- /* key: 0x8b71 */ 0x6641,
- /* key: 0x8b72 */ 0x3e79,
- /* key: 0x8b73 */ 0xffff,
- /* key: 0x8b74 */ 0x6c24,
- /* key: 0x8b75 */ 0xffff,
- /* key: 0x8b76 */ 0xde52,
- /* key: 0x8b77 */ 0x386e,
- /* key: 0x8b78 */ 0xde53,
- /* key: 0x8b79 */ 0xde54,
- /* key: 0x8b7a */ 0xffff,
- /* key: 0x8b7b */ 0xffff,
- /* key: 0x8b7c */ 0xde55,
- /* key: 0x8b7d */ 0x6c25,
- /* key: 0x8b7e */ 0xde56,
- /* key: 0x8b7f */ 0xffff,
- /* key: 0x8b80 */ 0x6c26,
- /* key: 0x8b81 */ 0xde57,
- /* key: 0x8b82 */ 0xffff,
- /* key: 0x8b83 */ 0x3b3e,
- /* key: 0x8b84 */ 0xde58,
- /* key: 0x8b85 */ 0xde59,
- /* key: 0x8b86 */ 0xffff,
- /* key: 0x8b87 */ 0xffff,
- /* key: 0x8b88 */ 0xffff,
- /* key: 0x8b89 */ 0xffff,
- /* key: 0x8b8a */ 0x5a4e,
- /* key: 0x8b8b */ 0xde5a,
- /* key: 0x8b8c */ 0x6c27,
- /* key: 0x8b8d */ 0xde5b,
- /* key: 0x8b8e */ 0x6c28,
- /* key: 0x8b8f */ 0xde5c,
- /* key: 0x8b90 */ 0x3d32,
- /* key: 0x8b91 */ 0xffff,
- /* key: 0x8b92 */ 0x6c29,
- /* key: 0x8b93 */ 0x6c2a,
- /* key: 0x8b94 */ 0xde5d,
- /* key: 0x8b95 */ 0xde5e,
- /* key: 0x8b96 */ 0x6c2b,
- /* key: 0x8b97 */ 0xffff,
- /* key: 0x8b98 */ 0xffff,
- /* key: 0x8b99 */ 0x6c2c,
- /* key: 0x8b9a */ 0x6c2d,
- /* key: 0x8b9b */ 0xffff,
- /* key: 0x8b9c */ 0xde5f,
- /* key: 0x8b9d */ 0xffff,
- /* key: 0x8b9e */ 0xde60,
- /* key: 0x8b9f */ 0xde61,
- /* branch: 0x8c0X */ 0,
- /* branch: 0x8c1X */ 0,
- /* branch: 0x8c2X */ 0,
- /* branch: 0x8c3X */ 18256,
- /* branch: 0x8c4X */ 18272,
- /* branch: 0x8c5X */ 18288,
- /* branch: 0x8c6X */ 18304,
- /* branch: 0x8c7X */ 18320,
- /* branch: 0x8c8X */ 18336,
- /* branch: 0x8c9X */ 18352,
- /* branch: 0x8caX */ 18368,
- /* branch: 0x8cbX */ 18384,
- /* branch: 0x8ccX */ 18400,
- /* branch: 0x8cdX */ 18416,
- /* branch: 0x8ceX */ 18432,
- /* branch: 0x8cfX */ 18448,
- /* key: 0x8c30 */ 0xffff,
- /* key: 0x8c31 */ 0xffff,
- /* key: 0x8c32 */ 0xffff,
- /* key: 0x8c33 */ 0xffff,
- /* key: 0x8c34 */ 0xffff,
- /* key: 0x8c35 */ 0xffff,
- /* key: 0x8c36 */ 0xffff,
- /* key: 0x8c37 */ 0x432b,
- /* key: 0x8c38 */ 0xde62,
- /* key: 0x8c39 */ 0xde63,
- /* key: 0x8c3a */ 0x6c2e,
- /* key: 0x8c3b */ 0xffff,
- /* key: 0x8c3c */ 0xffff,
- /* key: 0x8c3d */ 0xde64,
- /* key: 0x8c3e */ 0xde65,
- /* key: 0x8c3f */ 0x6c30,
- /* key: 0x8c40 */ 0xffff,
- /* key: 0x8c41 */ 0x6c2f,
- /* key: 0x8c42 */ 0xffff,
- /* key: 0x8c43 */ 0xffff,
- /* key: 0x8c44 */ 0xffff,
- /* key: 0x8c45 */ 0xde66,
- /* key: 0x8c46 */ 0x4626,
- /* key: 0x8c47 */ 0xde67,
- /* key: 0x8c48 */ 0x6c31,
- /* key: 0x8c49 */ 0xde68,
- /* key: 0x8c4a */ 0x4b2d,
- /* key: 0x8c4b */ 0xde69,
- /* key: 0x8c4c */ 0x6c32,
- /* key: 0x8c4d */ 0xffff,
- /* key: 0x8c4e */ 0x6c33,
- /* key: 0x8c4f */ 0xde6a,
- /* key: 0x8c50 */ 0x6c34,
- /* key: 0x8c51 */ 0xde6b,
- /* key: 0x8c52 */ 0xffff,
- /* key: 0x8c53 */ 0xde6c,
- /* key: 0x8c54 */ 0xde6d,
- /* key: 0x8c55 */ 0x6c35,
- /* key: 0x8c56 */ 0xffff,
- /* key: 0x8c57 */ 0xde6e,
- /* key: 0x8c58 */ 0xde6f,
- /* key: 0x8c59 */ 0xde72,
- /* key: 0x8c5a */ 0x465a,
- /* key: 0x8c5b */ 0xde70,
- /* key: 0x8c5c */ 0xffff,
- /* key: 0x8c5d */ 0xde71,
- /* key: 0x8c5e */ 0xffff,
- /* key: 0x8c5f */ 0xffff,
- /* key: 0x8c60 */ 0xffff,
- /* key: 0x8c61 */ 0x3e5d,
- /* key: 0x8c62 */ 0x6c36,
- /* key: 0x8c63 */ 0xde73,
- /* key: 0x8c64 */ 0xde74,
- /* key: 0x8c65 */ 0xffff,
- /* key: 0x8c66 */ 0xde75,
- /* key: 0x8c67 */ 0xffff,
- /* key: 0x8c68 */ 0xde76,
- /* key: 0x8c69 */ 0xde77,
- /* key: 0x8c6a */ 0x396b,
- /* key: 0x8c6b */ 0x502e,
- /* key: 0x8c6c */ 0x6c37,
- /* key: 0x8c6d */ 0xde78,
- /* key: 0x8c6e */ 0xffff,
- /* key: 0x8c6f */ 0xffff,
- /* key: 0x8c70 */ 0xffff,
- /* key: 0x8c71 */ 0xffff,
- /* key: 0x8c72 */ 0xffff,
- /* key: 0x8c73 */ 0xde79,
- /* key: 0x8c74 */ 0xffff,
- /* key: 0x8c75 */ 0xde7a,
- /* key: 0x8c76 */ 0xde7b,
- /* key: 0x8c77 */ 0xffff,
- /* key: 0x8c78 */ 0x6c38,
- /* key: 0x8c79 */ 0x493f,
- /* key: 0x8c7a */ 0x6c39,
- /* key: 0x8c7b */ 0xde7c,
- /* key: 0x8c7c */ 0x6c41,
- /* key: 0x8c7d */ 0xffff,
- /* key: 0x8c7e */ 0xde7d,
- /* key: 0x8c7f */ 0xffff,
- /* key: 0x8c80 */ 0xffff,
- /* key: 0x8c81 */ 0xffff,
- /* key: 0x8c82 */ 0x6c3a,
- /* key: 0x8c83 */ 0xffff,
- /* key: 0x8c84 */ 0xffff,
- /* key: 0x8c85 */ 0x6c3c,
- /* key: 0x8c86 */ 0xde7e,
- /* key: 0x8c87 */ 0xdf21,
- /* key: 0x8c88 */ 0xffff,
- /* key: 0x8c89 */ 0x6c3b,
- /* key: 0x8c8a */ 0x6c3d,
- /* key: 0x8c8b */ 0xdf22,
- /* key: 0x8c8c */ 0x4b46,
- /* key: 0x8c8d */ 0x6c3e,
- /* key: 0x8c8e */ 0x6c3f,
- /* key: 0x8c8f */ 0xffff,
- /* key: 0x8c90 */ 0xdf23,
- /* key: 0x8c91 */ 0xffff,
- /* key: 0x8c92 */ 0xdf24,
- /* key: 0x8c93 */ 0xdf25,
- /* key: 0x8c94 */ 0x6c40,
- /* key: 0x8c95 */ 0xffff,
- /* key: 0x8c96 */ 0xffff,
- /* key: 0x8c97 */ 0xffff,
- /* key: 0x8c98 */ 0x6c42,
- /* key: 0x8c99 */ 0xdf26,
- /* key: 0x8c9a */ 0xffff,
- /* key: 0x8c9b */ 0xdf27,
- /* key: 0x8c9c */ 0xdf28,
- /* key: 0x8c9d */ 0x332d,
- /* key: 0x8c9e */ 0x4467,
- /* key: 0x8c9f */ 0xffff,
- /* key: 0x8ca0 */ 0x4969,
- /* key: 0x8ca1 */ 0x3a62,
- /* key: 0x8ca2 */ 0x3957,
- /* key: 0x8ca3 */ 0xffff,
- /* key: 0x8ca4 */ 0xdf29,
- /* key: 0x8ca5 */ 0xffff,
- /* key: 0x8ca6 */ 0xffff,
- /* key: 0x8ca7 */ 0x494f,
- /* key: 0x8ca8 */ 0x325f,
- /* key: 0x8ca9 */ 0x484e,
- /* key: 0x8caa */ 0x6c45,
- /* key: 0x8cab */ 0x3453,
- /* key: 0x8cac */ 0x4055,
- /* key: 0x8cad */ 0x6c44,
- /* key: 0x8cae */ 0x6c49,
- /* key: 0x8caf */ 0x4379,
- /* key: 0x8cb0 */ 0x4c63,
- /* key: 0x8cb1 */ 0xffff,
- /* key: 0x8cb2 */ 0x6c47,
- /* key: 0x8cb3 */ 0x6c48,
- /* key: 0x8cb4 */ 0x352e,
- /* key: 0x8cb5 */ 0xffff,
- /* key: 0x8cb6 */ 0x6c4a,
- /* key: 0x8cb7 */ 0x4763,
- /* key: 0x8cb8 */ 0x425f,
- /* key: 0x8cb9 */ 0xdf2a,
- /* key: 0x8cba */ 0xdf2b,
- /* key: 0x8cbb */ 0x4871,
- /* key: 0x8cbc */ 0x453d,
- /* key: 0x8cbd */ 0x6c46,
- /* key: 0x8cbe */ 0xffff,
- /* key: 0x8cbf */ 0x4b47,
- /* key: 0x8cc0 */ 0x326c,
- /* key: 0x8cc1 */ 0x6c4c,
- /* key: 0x8cc2 */ 0x4f28,
- /* key: 0x8cc3 */ 0x4442,
- /* key: 0x8cc4 */ 0x4f45,
- /* key: 0x8cc5 */ 0xdf2c,
- /* key: 0x8cc6 */ 0xdf2d,
- /* key: 0x8cc7 */ 0x3b71,
- /* key: 0x8cc8 */ 0x6c4b,
- /* key: 0x8cc9 */ 0xdf2e,
- /* key: 0x8cca */ 0x4231,
- /* key: 0x8ccb */ 0xdf2f,
- /* key: 0x8ccc */ 0xffff,
- /* key: 0x8ccd */ 0x6c5c,
- /* key: 0x8cce */ 0x4128,
- /* key: 0x8ccf */ 0xdf30,
- /* key: 0x8cd0 */ 0xffff,
- /* key: 0x8cd1 */ 0x4678,
- /* key: 0x8cd2 */ 0xffff,
- /* key: 0x8cd3 */ 0x4950,
- /* key: 0x8cd4 */ 0xffff,
- /* key: 0x8cd5 */ 0xdf32,
- /* key: 0x8cd6 */ 0xdf31,
- /* key: 0x8cd7 */ 0xffff,
- /* key: 0x8cd8 */ 0xffff,
- /* key: 0x8cd9 */ 0xdf33,
- /* key: 0x8cda */ 0x6c4f,
- /* key: 0x8cdb */ 0x3b3f,
- /* key: 0x8cdc */ 0x3b72,
- /* key: 0x8cdd */ 0xdf34,
- /* key: 0x8cde */ 0x3e5e,
- /* key: 0x8cdf */ 0xffff,
- /* key: 0x8ce0 */ 0x4765,
- /* key: 0x8ce1 */ 0xdf35,
- /* key: 0x8ce2 */ 0x382d,
- /* key: 0x8ce3 */ 0x6c4e,
- /* key: 0x8ce4 */ 0x6c4d,
- /* key: 0x8ce5 */ 0xffff,
- /* key: 0x8ce6 */ 0x496a,
- /* key: 0x8ce7 */ 0xffff,
- /* key: 0x8ce8 */ 0xdf36,
- /* key: 0x8ce9 */ 0xffff,
- /* key: 0x8cea */ 0x3c41,
- /* key: 0x8ceb */ 0xffff,
- /* key: 0x8cec */ 0xdf37,
- /* key: 0x8ced */ 0x4552,
- /* key: 0x8cee */ 0xffff,
- /* key: 0x8cef */ 0xdf38,
- /* key: 0x8cf0 */ 0xdf39,
- /* key: 0x8cf1 */ 0xffff,
- /* key: 0x8cf2 */ 0xdf3a,
- /* key: 0x8cf3 */ 0xffff,
- /* key: 0x8cf4 */ 0xffff,
- /* key: 0x8cf5 */ 0xdf3b,
- /* key: 0x8cf6 */ 0xffff,
- /* key: 0x8cf7 */ 0xdf3c,
- /* key: 0x8cf8 */ 0xdf3d,
- /* key: 0x8cf9 */ 0xffff,
- /* key: 0x8cfa */ 0x6c51,
- /* key: 0x8cfb */ 0x6c52,
- /* key: 0x8cfc */ 0x3958,
- /* key: 0x8cfd */ 0x6c50,
- /* key: 0x8cfe */ 0xdf3e,
- /* key: 0x8cff */ 0xdf3f,
- /* branch: 0x8d0X */ 18480,
- /* branch: 0x8d1X */ 18496,
- /* branch: 0x8d2X */ 0,
- /* branch: 0x8d3X */ 0,
- /* branch: 0x8d4X */ 0,
- /* branch: 0x8d5X */ 0,
- /* branch: 0x8d6X */ 18512,
- /* branch: 0x8d7X */ 18528,
- /* branch: 0x8d8X */ 18544,
- /* branch: 0x8d9X */ 18560,
- /* branch: 0x8daX */ 18576,
- /* branch: 0x8dbX */ 18592,
- /* branch: 0x8dcX */ 18608,
- /* branch: 0x8ddX */ 18624,
- /* branch: 0x8deX */ 18640,
- /* branch: 0x8dfX */ 18656,
- /* key: 0x8d00 */ 0xffff,
- /* key: 0x8d01 */ 0xdf40,
- /* key: 0x8d02 */ 0xffff,
- /* key: 0x8d03 */ 0xdf41,
- /* key: 0x8d04 */ 0x6c53,
- /* key: 0x8d05 */ 0x6c54,
- /* key: 0x8d06 */ 0xffff,
- /* key: 0x8d07 */ 0x6c56,
- /* key: 0x8d08 */ 0x4223,
- /* key: 0x8d09 */ 0xdf42,
- /* key: 0x8d0a */ 0x6c55,
- /* key: 0x8d0b */ 0x3466,
- /* key: 0x8d0c */ 0xffff,
- /* key: 0x8d0d */ 0x6c58,
- /* key: 0x8d0e */ 0xffff,
- /* key: 0x8d0f */ 0x6c57,
- /* key: 0x8d10 */ 0x6c59,
- /* key: 0x8d11 */ 0xffff,
- /* key: 0x8d12 */ 0xdf43,
- /* key: 0x8d13 */ 0x6c5b,
- /* key: 0x8d14 */ 0x6c5d,
- /* key: 0x8d15 */ 0xffff,
- /* key: 0x8d16 */ 0x6c5e,
- /* key: 0x8d17 */ 0xdf44,
- /* key: 0x8d18 */ 0xffff,
- /* key: 0x8d19 */ 0xffff,
- /* key: 0x8d1a */ 0xffff,
- /* key: 0x8d1b */ 0xdf45,
- /* key: 0x8d1c */ 0xffff,
- /* key: 0x8d1d */ 0xffff,
- /* key: 0x8d1e */ 0xffff,
- /* key: 0x8d1f */ 0xffff,
- /* key: 0x8d60 */ 0xffff,
- /* key: 0x8d61 */ 0xffff,
- /* key: 0x8d62 */ 0xffff,
- /* key: 0x8d63 */ 0xffff,
- /* key: 0x8d64 */ 0x4056,
- /* key: 0x8d65 */ 0xdf46,
- /* key: 0x8d66 */ 0x3c4f,
- /* key: 0x8d67 */ 0x6c5f,
- /* key: 0x8d68 */ 0xffff,
- /* key: 0x8d69 */ 0xdf47,
- /* key: 0x8d6a */ 0xffff,
- /* key: 0x8d6b */ 0x3352,
- /* key: 0x8d6c */ 0xdf48,
- /* key: 0x8d6d */ 0x6c60,
- /* key: 0x8d6e */ 0xdf49,
- /* key: 0x8d6f */ 0xffff,
- /* key: 0x8d70 */ 0x4176,
- /* key: 0x8d71 */ 0x6c61,
- /* key: 0x8d72 */ 0xffff,
- /* key: 0x8d73 */ 0x6c62,
- /* key: 0x8d74 */ 0x496b,
- /* key: 0x8d75 */ 0xffff,
- /* key: 0x8d76 */ 0xffff,
- /* key: 0x8d77 */ 0x352f,
- /* key: 0x8d78 */ 0xffff,
- /* key: 0x8d79 */ 0xffff,
- /* key: 0x8d7a */ 0xffff,
- /* key: 0x8d7b */ 0xffff,
- /* key: 0x8d7c */ 0xffff,
- /* key: 0x8d7d */ 0xffff,
- /* key: 0x8d7e */ 0xffff,
- /* key: 0x8d7f */ 0xdf4a,
- /* key: 0x8d80 */ 0xffff,
- /* key: 0x8d81 */ 0x6c63,
- /* key: 0x8d82 */ 0xdf4b,
- /* key: 0x8d83 */ 0xffff,
- /* key: 0x8d84 */ 0xdf4c,
- /* key: 0x8d85 */ 0x4436,
- /* key: 0x8d86 */ 0xffff,
- /* key: 0x8d87 */ 0xffff,
- /* key: 0x8d88 */ 0xdf4d,
- /* key: 0x8d89 */ 0xffff,
- /* key: 0x8d8a */ 0x315b,
- /* key: 0x8d8b */ 0xffff,
- /* key: 0x8d8c */ 0xffff,
- /* key: 0x8d8d */ 0xdf4e,
- /* key: 0x8d8e */ 0xffff,
- /* key: 0x8d8f */ 0xffff,
- /* key: 0x8d90 */ 0xdf4f,
- /* key: 0x8d91 */ 0xdf50,
- /* key: 0x8d92 */ 0xffff,
- /* key: 0x8d93 */ 0xffff,
- /* key: 0x8d94 */ 0xffff,
- /* key: 0x8d95 */ 0xdf51,
- /* key: 0x8d96 */ 0xffff,
- /* key: 0x8d97 */ 0xffff,
- /* key: 0x8d98 */ 0xffff,
- /* key: 0x8d99 */ 0x6c64,
- /* key: 0x8d9a */ 0xffff,
- /* key: 0x8d9b */ 0xffff,
- /* key: 0x8d9c */ 0xffff,
- /* key: 0x8d9d */ 0xffff,
- /* key: 0x8d9e */ 0xdf52,
- /* key: 0x8d9f */ 0xdf53,
- /* key: 0x8da0 */ 0xdf54,
- /* key: 0x8da1 */ 0xffff,
- /* key: 0x8da2 */ 0xffff,
- /* key: 0x8da3 */ 0x3c71,
- /* key: 0x8da4 */ 0xffff,
- /* key: 0x8da5 */ 0xffff,
- /* key: 0x8da6 */ 0xdf55,
- /* key: 0x8da7 */ 0xffff,
- /* key: 0x8da8 */ 0x3f76,
- /* key: 0x8da9 */ 0xffff,
- /* key: 0x8daa */ 0xffff,
- /* key: 0x8dab */ 0xdf56,
- /* key: 0x8dac */ 0xdf57,
- /* key: 0x8dad */ 0xffff,
- /* key: 0x8dae */ 0xffff,
- /* key: 0x8daf */ 0xdf58,
- /* key: 0x8db0 */ 0xffff,
- /* key: 0x8db1 */ 0xffff,
- /* key: 0x8db2 */ 0xdf59,
- /* key: 0x8db3 */ 0x422d,
- /* key: 0x8db4 */ 0xffff,
- /* key: 0x8db5 */ 0xdf5a,
- /* key: 0x8db6 */ 0xffff,
- /* key: 0x8db7 */ 0xdf5b,
- /* key: 0x8db8 */ 0xffff,
- /* key: 0x8db9 */ 0xdf5c,
- /* key: 0x8dba */ 0x6c67,
- /* key: 0x8dbb */ 0xdf5d,
- /* key: 0x8dbc */ 0xdf6f,
- /* key: 0x8dbd */ 0xffff,
- /* key: 0x8dbe */ 0x6c66,
- /* key: 0x8dbf */ 0xffff,
- /* key: 0x8dc0 */ 0xdf5e,
- /* key: 0x8dc1 */ 0xffff,
- /* key: 0x8dc2 */ 0x6c65,
- /* key: 0x8dc3 */ 0xffff,
- /* key: 0x8dc4 */ 0xffff,
- /* key: 0x8dc5 */ 0xdf5f,
- /* key: 0x8dc6 */ 0xdf60,
- /* key: 0x8dc7 */ 0xdf61,
- /* key: 0x8dc8 */ 0xdf62,
- /* key: 0x8dc9 */ 0xffff,
- /* key: 0x8dca */ 0xdf63,
- /* key: 0x8dcb */ 0x6c6d,
- /* key: 0x8dcc */ 0x6c6b,
- /* key: 0x8dcd */ 0xffff,
- /* key: 0x8dce */ 0xdf64,
- /* key: 0x8dcf */ 0x6c68,
- /* key: 0x8dd0 */ 0xffff,
- /* key: 0x8dd1 */ 0xdf65,
- /* key: 0x8dd2 */ 0xffff,
- /* key: 0x8dd3 */ 0xffff,
- /* key: 0x8dd4 */ 0xdf66,
- /* key: 0x8dd5 */ 0xdf67,
- /* key: 0x8dd6 */ 0x6c6a,
- /* key: 0x8dd7 */ 0xdf68,
- /* key: 0x8dd8 */ 0xffff,
- /* key: 0x8dd9 */ 0xdf69,
- /* key: 0x8dda */ 0x6c69,
- /* key: 0x8ddb */ 0x6c6c,
- /* key: 0x8ddc */ 0xffff,
- /* key: 0x8ddd */ 0x3577,
- /* key: 0x8dde */ 0xffff,
- /* key: 0x8ddf */ 0x6c70,
- /* key: 0x8de0 */ 0xffff,
- /* key: 0x8de1 */ 0x4057,
- /* key: 0x8de2 */ 0xffff,
- /* key: 0x8de3 */ 0x6c71,
- /* key: 0x8de4 */ 0xdf6a,
- /* key: 0x8de5 */ 0xdf6b,
- /* key: 0x8de6 */ 0xffff,
- /* key: 0x8de7 */ 0xdf6c,
- /* key: 0x8de8 */ 0x3859,
- /* key: 0x8de9 */ 0xffff,
- /* key: 0x8dea */ 0x6c6e,
- /* key: 0x8deb */ 0x6c6f,
- /* key: 0x8dec */ 0xdf6d,
- /* key: 0x8ded */ 0xffff,
- /* key: 0x8dee */ 0xffff,
- /* key: 0x8def */ 0x4f29,
- /* key: 0x8df0 */ 0xdf6e,
- /* key: 0x8df1 */ 0xdf70,
- /* key: 0x8df2 */ 0xdf71,
- /* key: 0x8df3 */ 0x4437,
- /* key: 0x8df4 */ 0xdf72,
- /* key: 0x8df5 */ 0x4129,
- /* key: 0x8df6 */ 0xffff,
- /* key: 0x8df7 */ 0xffff,
- /* key: 0x8df8 */ 0xffff,
- /* key: 0x8df9 */ 0xffff,
- /* key: 0x8dfa */ 0xffff,
- /* key: 0x8dfb */ 0xffff,
- /* key: 0x8dfc */ 0x6c72,
- /* key: 0x8dfd */ 0xdf73,
- /* key: 0x8dfe */ 0xffff,
- /* key: 0x8dff */ 0x6c75,
- /* branch: 0x8e0X */ 18688,
- /* branch: 0x8e1X */ 18704,
- /* branch: 0x8e2X */ 18720,
- /* branch: 0x8e3X */ 18736,
- /* branch: 0x8e4X */ 18752,
- /* branch: 0x8e5X */ 18768,
- /* branch: 0x8e6X */ 18784,
- /* branch: 0x8e7X */ 18800,
- /* branch: 0x8e8X */ 18816,
- /* branch: 0x8e9X */ 18832,
- /* branch: 0x8eaX */ 18848,
- /* branch: 0x8ebX */ 18864,
- /* branch: 0x8ecX */ 18880,
- /* branch: 0x8edX */ 18896,
- /* branch: 0x8eeX */ 18912,
- /* branch: 0x8efX */ 18928,
- /* key: 0x8e00 */ 0xffff,
- /* key: 0x8e01 */ 0xdf74,
- /* key: 0x8e02 */ 0xffff,
- /* key: 0x8e03 */ 0xffff,
- /* key: 0x8e04 */ 0xdf75,
- /* key: 0x8e05 */ 0xdf76,
- /* key: 0x8e06 */ 0xdf77,
- /* key: 0x8e07 */ 0xffff,
- /* key: 0x8e08 */ 0x6c73,
- /* key: 0x8e09 */ 0x6c74,
- /* key: 0x8e0a */ 0x4d59,
- /* key: 0x8e0b */ 0xdf78,
- /* key: 0x8e0c */ 0xffff,
- /* key: 0x8e0d */ 0xffff,
- /* key: 0x8e0e */ 0xffff,
- /* key: 0x8e0f */ 0x4627,
- /* key: 0x8e10 */ 0x6c78,
- /* key: 0x8e11 */ 0xdf79,
- /* key: 0x8e12 */ 0xffff,
- /* key: 0x8e13 */ 0xffff,
- /* key: 0x8e14 */ 0xdf7a,
- /* key: 0x8e15 */ 0xffff,
- /* key: 0x8e16 */ 0xdf7b,
- /* key: 0x8e17 */ 0xffff,
- /* key: 0x8e18 */ 0xffff,
- /* key: 0x8e19 */ 0xffff,
- /* key: 0x8e1a */ 0xffff,
- /* key: 0x8e1b */ 0xffff,
- /* key: 0x8e1c */ 0xffff,
- /* key: 0x8e1d */ 0x6c76,
- /* key: 0x8e1e */ 0x6c77,
- /* key: 0x8e1f */ 0x6c79,
- /* key: 0x8e20 */ 0xdf7c,
- /* key: 0x8e21 */ 0xdf7d,
- /* key: 0x8e22 */ 0xdf7e,
- /* key: 0x8e23 */ 0xe021,
- /* key: 0x8e24 */ 0xffff,
- /* key: 0x8e25 */ 0xffff,
- /* key: 0x8e26 */ 0xe022,
- /* key: 0x8e27 */ 0xe023,
- /* key: 0x8e28 */ 0xffff,
- /* key: 0x8e29 */ 0xffff,
- /* key: 0x8e2a */ 0x6d29,
- /* key: 0x8e2b */ 0xffff,
- /* key: 0x8e2c */ 0xffff,
- /* key: 0x8e2d */ 0xffff,
- /* key: 0x8e2e */ 0xffff,
- /* key: 0x8e2f */ 0xffff,
- /* key: 0x8e30 */ 0x6c7c,
- /* key: 0x8e31 */ 0xe024,
- /* key: 0x8e32 */ 0xffff,
- /* key: 0x8e33 */ 0xe025,
- /* key: 0x8e34 */ 0x6c7d,
- /* key: 0x8e35 */ 0x6c7b,
- /* key: 0x8e36 */ 0xe026,
- /* key: 0x8e37 */ 0xe027,
- /* key: 0x8e38 */ 0xe028,
- /* key: 0x8e39 */ 0xe029,
- /* key: 0x8e3a */ 0xffff,
- /* key: 0x8e3b */ 0xffff,
- /* key: 0x8e3c */ 0xffff,
- /* key: 0x8e3d */ 0xe02a,
- /* key: 0x8e3e */ 0xffff,
- /* key: 0x8e3f */ 0xffff,
- /* key: 0x8e40 */ 0xe02b,
- /* key: 0x8e41 */ 0xe02c,
- /* key: 0x8e42 */ 0x6c7a,
- /* key: 0x8e43 */ 0xffff,
- /* key: 0x8e44 */ 0x447d,
- /* key: 0x8e45 */ 0xffff,
- /* key: 0x8e46 */ 0xffff,
- /* key: 0x8e47 */ 0x6d21,
- /* key: 0x8e48 */ 0x6d25,
- /* key: 0x8e49 */ 0x6d22,
- /* key: 0x8e4a */ 0x6c7e,
- /* key: 0x8e4b */ 0xe02d,
- /* key: 0x8e4c */ 0x6d23,
- /* key: 0x8e4d */ 0xe02e,
- /* key: 0x8e4e */ 0xe02f,
- /* key: 0x8e4f */ 0xe030,
- /* key: 0x8e50 */ 0x6d24,
- /* key: 0x8e51 */ 0xffff,
- /* key: 0x8e52 */ 0xffff,
- /* key: 0x8e53 */ 0xffff,
- /* key: 0x8e54 */ 0xe031,
- /* key: 0x8e55 */ 0x6d2b,
- /* key: 0x8e56 */ 0xffff,
- /* key: 0x8e57 */ 0xffff,
- /* key: 0x8e58 */ 0xffff,
- /* key: 0x8e59 */ 0x6d26,
- /* key: 0x8e5a */ 0xffff,
- /* key: 0x8e5b */ 0xe032,
- /* key: 0x8e5c */ 0xe033,
- /* key: 0x8e5d */ 0xe034,
- /* key: 0x8e5e */ 0xe035,
- /* key: 0x8e5f */ 0x4058,
- /* key: 0x8e60 */ 0x6d28,
- /* key: 0x8e61 */ 0xe036,
- /* key: 0x8e62 */ 0xe037,
- /* key: 0x8e63 */ 0x6d2a,
- /* key: 0x8e64 */ 0x6d27,
- /* key: 0x8e65 */ 0xffff,
- /* key: 0x8e66 */ 0xffff,
- /* key: 0x8e67 */ 0xffff,
- /* key: 0x8e68 */ 0xffff,
- /* key: 0x8e69 */ 0xe038,
- /* key: 0x8e6a */ 0xffff,
- /* key: 0x8e6b */ 0xffff,
- /* key: 0x8e6c */ 0xe039,
- /* key: 0x8e6d */ 0xe03a,
- /* key: 0x8e6e */ 0xffff,
- /* key: 0x8e6f */ 0xe03b,
- /* key: 0x8e70 */ 0xe03c,
- /* key: 0x8e71 */ 0xe03d,
- /* key: 0x8e72 */ 0x6d2d,
- /* key: 0x8e73 */ 0xffff,
- /* key: 0x8e74 */ 0x3d33,
- /* key: 0x8e75 */ 0xffff,
- /* key: 0x8e76 */ 0x6d2c,
- /* key: 0x8e77 */ 0xffff,
- /* key: 0x8e78 */ 0xffff,
- /* key: 0x8e79 */ 0xe03e,
- /* key: 0x8e7a */ 0xe03f,
- /* key: 0x8e7b */ 0xe040,
- /* key: 0x8e7c */ 0x6d2e,
- /* key: 0x8e7d */ 0xffff,
- /* key: 0x8e7e */ 0xffff,
- /* key: 0x8e7f */ 0xffff,
- /* key: 0x8e80 */ 0xffff,
- /* key: 0x8e81 */ 0x6d2f,
- /* key: 0x8e82 */ 0xe041,
- /* key: 0x8e83 */ 0xe042,
- /* key: 0x8e84 */ 0x6d32,
- /* key: 0x8e85 */ 0x6d31,
- /* key: 0x8e86 */ 0xffff,
- /* key: 0x8e87 */ 0x6d30,
- /* key: 0x8e88 */ 0xffff,
- /* key: 0x8e89 */ 0xe043,
- /* key: 0x8e8a */ 0x6d34,
- /* key: 0x8e8b */ 0x6d33,
- /* key: 0x8e8c */ 0xffff,
- /* key: 0x8e8d */ 0x4c76,
- /* key: 0x8e8e */ 0xffff,
- /* key: 0x8e8f */ 0xffff,
- /* key: 0x8e90 */ 0xe044,
- /* key: 0x8e91 */ 0x6d36,
- /* key: 0x8e92 */ 0xe045,
- /* key: 0x8e93 */ 0x6d35,
- /* key: 0x8e94 */ 0x6d37,
- /* key: 0x8e95 */ 0xe046,
- /* key: 0x8e96 */ 0xffff,
- /* key: 0x8e97 */ 0xffff,
- /* key: 0x8e98 */ 0xffff,
- /* key: 0x8e99 */ 0x6d38,
- /* key: 0x8e9a */ 0xe047,
- /* key: 0x8e9b */ 0xe048,
- /* key: 0x8e9c */ 0xffff,
- /* key: 0x8e9d */ 0xe049,
- /* key: 0x8e9e */ 0xe04a,
- /* key: 0x8e9f */ 0xffff,
- /* key: 0x8ea0 */ 0xffff,
- /* key: 0x8ea1 */ 0x6d3a,
- /* key: 0x8ea2 */ 0xe04b,
- /* key: 0x8ea3 */ 0xffff,
- /* key: 0x8ea4 */ 0xffff,
- /* key: 0x8ea5 */ 0xffff,
- /* key: 0x8ea6 */ 0xffff,
- /* key: 0x8ea7 */ 0xe04c,
- /* key: 0x8ea8 */ 0xffff,
- /* key: 0x8ea9 */ 0xe04d,
- /* key: 0x8eaa */ 0x6d39,
- /* key: 0x8eab */ 0x3f48,
- /* key: 0x8eac */ 0x6d3b,
- /* key: 0x8ead */ 0xe04e,
- /* key: 0x8eae */ 0xe04f,
- /* key: 0x8eaf */ 0x366d,
- /* key: 0x8eb0 */ 0x6d3c,
- /* key: 0x8eb1 */ 0x6d3e,
- /* key: 0x8eb2 */ 0xffff,
- /* key: 0x8eb3 */ 0xe050,
- /* key: 0x8eb4 */ 0xffff,
- /* key: 0x8eb5 */ 0xe051,
- /* key: 0x8eb6 */ 0xffff,
- /* key: 0x8eb7 */ 0xffff,
- /* key: 0x8eb8 */ 0xffff,
- /* key: 0x8eb9 */ 0xffff,
- /* key: 0x8eba */ 0xe052,
- /* key: 0x8ebb */ 0xe053,
- /* key: 0x8ebc */ 0xffff,
- /* key: 0x8ebd */ 0xffff,
- /* key: 0x8ebe */ 0x6d3f,
- /* key: 0x8ebf */ 0xffff,
- /* key: 0x8ec0 */ 0xe054,
- /* key: 0x8ec1 */ 0xe055,
- /* key: 0x8ec2 */ 0xffff,
- /* key: 0x8ec3 */ 0xe056,
- /* key: 0x8ec4 */ 0xe057,
- /* key: 0x8ec5 */ 0x6d40,
- /* key: 0x8ec6 */ 0x6d3d,
- /* key: 0x8ec7 */ 0xe058,
- /* key: 0x8ec8 */ 0x6d41,
- /* key: 0x8ec9 */ 0xffff,
- /* key: 0x8eca */ 0x3c56,
- /* key: 0x8ecb */ 0x6d42,
- /* key: 0x8ecc */ 0x3530,
- /* key: 0x8ecd */ 0x3733,
- /* key: 0x8ece */ 0xffff,
- /* key: 0x8ecf */ 0xe059,
- /* key: 0x8ed0 */ 0xffff,
- /* key: 0x8ed1 */ 0xe05a,
- /* key: 0x8ed2 */ 0x382e,
- /* key: 0x8ed3 */ 0xffff,
- /* key: 0x8ed4 */ 0xe05b,
- /* key: 0x8ed5 */ 0xffff,
- /* key: 0x8ed6 */ 0xffff,
- /* key: 0x8ed7 */ 0xffff,
- /* key: 0x8ed8 */ 0xffff,
- /* key: 0x8ed9 */ 0xffff,
- /* key: 0x8eda */ 0xffff,
- /* key: 0x8edb */ 0x6d43,
- /* key: 0x8edc */ 0xe05c,
- /* key: 0x8edd */ 0xffff,
- /* key: 0x8ede */ 0xffff,
- /* key: 0x8edf */ 0x4670,
- /* key: 0x8ee0 */ 0xffff,
- /* key: 0x8ee1 */ 0xffff,
- /* key: 0x8ee2 */ 0x453e,
- /* key: 0x8ee3 */ 0x6d44,
- /* key: 0x8ee4 */ 0xffff,
- /* key: 0x8ee5 */ 0xffff,
- /* key: 0x8ee6 */ 0xffff,
- /* key: 0x8ee7 */ 0xffff,
- /* key: 0x8ee8 */ 0xe05d,
- /* key: 0x8ee9 */ 0xffff,
- /* key: 0x8eea */ 0xffff,
- /* key: 0x8eeb */ 0x6d47,
- /* key: 0x8eec */ 0xffff,
- /* key: 0x8eed */ 0xe064,
- /* key: 0x8eee */ 0xe05e,
- /* key: 0x8eef */ 0xffff,
- /* key: 0x8ef0 */ 0xe05f,
- /* key: 0x8ef1 */ 0xe060,
- /* key: 0x8ef2 */ 0xffff,
- /* key: 0x8ef3 */ 0xffff,
- /* key: 0x8ef4 */ 0xffff,
- /* key: 0x8ef5 */ 0xffff,
- /* key: 0x8ef6 */ 0xffff,
- /* key: 0x8ef7 */ 0xe061,
- /* key: 0x8ef8 */ 0x3c34,
- /* key: 0x8ef9 */ 0xe062,
- /* key: 0x8efa */ 0xe063,
- /* key: 0x8efb */ 0x6d46,
- /* key: 0x8efc */ 0x6d45,
- /* key: 0x8efd */ 0x375a,
- /* key: 0x8efe */ 0x6d48,
- /* key: 0x8eff */ 0xffff,
- /* branch: 0x8f0X */ 18960,
- /* branch: 0x8f1X */ 18976,
- /* branch: 0x8f2X */ 18992,
- /* branch: 0x8f3X */ 19008,
- /* branch: 0x8f4X */ 19024,
- /* branch: 0x8f5X */ 19040,
- /* branch: 0x8f6X */ 19056,
- /* branch: 0x8f7X */ 0,
- /* branch: 0x8f8X */ 0,
- /* branch: 0x8f9X */ 19072,
- /* branch: 0x8faX */ 19088,
- /* branch: 0x8fbX */ 19104,
- /* branch: 0x8fcX */ 19120,
- /* branch: 0x8fdX */ 19136,
- /* branch: 0x8feX */ 19152,
- /* branch: 0x8ffX */ 19168,
- /* key: 0x8f00 */ 0xe065,
- /* key: 0x8f01 */ 0xffff,
- /* key: 0x8f02 */ 0xe066,
- /* key: 0x8f03 */ 0x3353,
- /* key: 0x8f04 */ 0xffff,
- /* key: 0x8f05 */ 0x6d4a,
- /* key: 0x8f06 */ 0xffff,
- /* key: 0x8f07 */ 0xe067,
- /* key: 0x8f08 */ 0xe068,
- /* key: 0x8f09 */ 0x3a5c,
- /* key: 0x8f0a */ 0x6d49,
- /* key: 0x8f0b */ 0xffff,
- /* key: 0x8f0c */ 0x6d52,
- /* key: 0x8f0d */ 0xffff,
- /* key: 0x8f0e */ 0xffff,
- /* key: 0x8f0f */ 0xe069,
- /* key: 0x8f10 */ 0xe06a,
- /* key: 0x8f11 */ 0xffff,
- /* key: 0x8f12 */ 0x6d4c,
- /* key: 0x8f13 */ 0x6d4e,
- /* key: 0x8f14 */ 0x4a65,
- /* key: 0x8f15 */ 0x6d4b,
- /* key: 0x8f16 */ 0xe06b,
- /* key: 0x8f17 */ 0xe06c,
- /* key: 0x8f18 */ 0xe06d,
- /* key: 0x8f19 */ 0x6d4d,
- /* key: 0x8f1a */ 0xffff,
- /* key: 0x8f1b */ 0x6d51,
- /* key: 0x8f1c */ 0x6d4f,
- /* key: 0x8f1d */ 0x3531,
- /* key: 0x8f1e */ 0xe06e,
- /* key: 0x8f1f */ 0x6d50,
- /* key: 0x8f20 */ 0xe06f,
- /* key: 0x8f21 */ 0xe070,
- /* key: 0x8f22 */ 0xffff,
- /* key: 0x8f23 */ 0xe071,
- /* key: 0x8f24 */ 0xffff,
- /* key: 0x8f25 */ 0xe072,
- /* key: 0x8f26 */ 0x6d53,
- /* key: 0x8f27 */ 0xe073,
- /* key: 0x8f28 */ 0xe074,
- /* key: 0x8f29 */ 0x475a,
- /* key: 0x8f2a */ 0x4e58,
- /* key: 0x8f2b */ 0xffff,
- /* key: 0x8f2c */ 0xe075,
- /* key: 0x8f2d */ 0xe076,
- /* key: 0x8f2e */ 0xe077,
- /* key: 0x8f2f */ 0x3d34,
- /* key: 0x8f30 */ 0xffff,
- /* key: 0x8f31 */ 0xffff,
- /* key: 0x8f32 */ 0xffff,
- /* key: 0x8f33 */ 0x6d54,
- /* key: 0x8f34 */ 0xe078,
- /* key: 0x8f35 */ 0xe079,
- /* key: 0x8f36 */ 0xe07a,
- /* key: 0x8f37 */ 0xe07b,
- /* key: 0x8f38 */ 0x4d22,
- /* key: 0x8f39 */ 0x6d56,
- /* key: 0x8f3a */ 0xe07c,
- /* key: 0x8f3b */ 0x6d55,
- /* key: 0x8f3c */ 0xffff,
- /* key: 0x8f3d */ 0xffff,
- /* key: 0x8f3e */ 0x6d59,
- /* key: 0x8f3f */ 0x4d41,
- /* key: 0x8f40 */ 0xe07d,
- /* key: 0x8f41 */ 0xe07e,
- /* key: 0x8f42 */ 0x6d58,
- /* key: 0x8f43 */ 0xe121,
- /* key: 0x8f44 */ 0x336d,
- /* key: 0x8f45 */ 0x6d57,
- /* key: 0x8f46 */ 0x6d5c,
- /* key: 0x8f47 */ 0xe122,
- /* key: 0x8f48 */ 0xffff,
- /* key: 0x8f49 */ 0x6d5b,
- /* key: 0x8f4a */ 0xffff,
- /* key: 0x8f4b */ 0xffff,
- /* key: 0x8f4c */ 0x6d5a,
- /* key: 0x8f4d */ 0x4532,
- /* key: 0x8f4e */ 0x6d5d,
- /* key: 0x8f4f */ 0xe123,
- /* key: 0x8f50 */ 0xffff,
- /* key: 0x8f51 */ 0xe124,
- /* key: 0x8f52 */ 0xe125,
- /* key: 0x8f53 */ 0xe126,
- /* key: 0x8f54 */ 0xe127,
- /* key: 0x8f55 */ 0xe128,
- /* key: 0x8f56 */ 0xffff,
- /* key: 0x8f57 */ 0x6d5e,
- /* key: 0x8f58 */ 0xe129,
- /* key: 0x8f59 */ 0xffff,
- /* key: 0x8f5a */ 0xffff,
- /* key: 0x8f5b */ 0xffff,
- /* key: 0x8f5c */ 0x6d5f,
- /* key: 0x8f5d */ 0xe12a,
- /* key: 0x8f5e */ 0xe12b,
- /* key: 0x8f5f */ 0x396c,
- /* key: 0x8f60 */ 0xffff,
- /* key: 0x8f61 */ 0x3725,
- /* key: 0x8f62 */ 0x6d60,
- /* key: 0x8f63 */ 0x6d61,
- /* key: 0x8f64 */ 0x6d62,
- /* key: 0x8f65 */ 0xe12c,
- /* key: 0x8f66 */ 0xffff,
- /* key: 0x8f67 */ 0xffff,
- /* key: 0x8f68 */ 0xffff,
- /* key: 0x8f69 */ 0xffff,
- /* key: 0x8f6a */ 0xffff,
- /* key: 0x8f6b */ 0xffff,
- /* key: 0x8f6c */ 0xffff,
- /* key: 0x8f6d */ 0xffff,
- /* key: 0x8f6e */ 0xffff,
- /* key: 0x8f6f */ 0xffff,
- /* key: 0x8f90 */ 0xffff,
- /* key: 0x8f91 */ 0xffff,
- /* key: 0x8f92 */ 0xffff,
- /* key: 0x8f93 */ 0xffff,
- /* key: 0x8f94 */ 0xffff,
- /* key: 0x8f95 */ 0xffff,
- /* key: 0x8f96 */ 0xffff,
- /* key: 0x8f97 */ 0xffff,
- /* key: 0x8f98 */ 0xffff,
- /* key: 0x8f99 */ 0xffff,
- /* key: 0x8f9a */ 0xffff,
- /* key: 0x8f9b */ 0x3f49,
- /* key: 0x8f9c */ 0x6d63,
- /* key: 0x8f9d */ 0xe12d,
- /* key: 0x8f9e */ 0x3c2d,
- /* key: 0x8f9f */ 0x6d64,
- /* key: 0x8fa0 */ 0xe12e,
- /* key: 0x8fa1 */ 0xe12f,
- /* key: 0x8fa2 */ 0xffff,
- /* key: 0x8fa3 */ 0x6d65,
- /* key: 0x8fa4 */ 0xe130,
- /* key: 0x8fa5 */ 0xe131,
- /* key: 0x8fa6 */ 0xe132,
- /* key: 0x8fa7 */ 0x5221,
- /* key: 0x8fa8 */ 0x517e,
- /* key: 0x8fa9 */ 0xffff,
- /* key: 0x8faa */ 0xffff,
- /* key: 0x8fab */ 0xffff,
- /* key: 0x8fac */ 0xffff,
- /* key: 0x8fad */ 0x6d66,
- /* key: 0x8fae */ 0x6570,
- /* key: 0x8faf */ 0x6d67,
- /* key: 0x8fb0 */ 0x4324,
- /* key: 0x8fb1 */ 0x3f2b,
- /* key: 0x8fb2 */ 0x4740,
- /* key: 0x8fb3 */ 0xffff,
- /* key: 0x8fb4 */ 0xffff,
- /* key: 0x8fb5 */ 0xe133,
- /* key: 0x8fb6 */ 0xe134,
- /* key: 0x8fb7 */ 0x6d68,
- /* key: 0x8fb8 */ 0xe135,
- /* key: 0x8fb9 */ 0xffff,
- /* key: 0x8fba */ 0x4a55,
- /* key: 0x8fbb */ 0x4454,
- /* key: 0x8fbc */ 0x397e,
- /* key: 0x8fbd */ 0xffff,
- /* key: 0x8fbe */ 0xe136,
- /* key: 0x8fbf */ 0x4329,
- /* key: 0x8fc0 */ 0xe137,
- /* key: 0x8fc1 */ 0xe138,
- /* key: 0x8fc2 */ 0x312a,
- /* key: 0x8fc3 */ 0xffff,
- /* key: 0x8fc4 */ 0x4b78,
- /* key: 0x8fc5 */ 0x3f57,
- /* key: 0x8fc6 */ 0xe139,
- /* key: 0x8fc7 */ 0xffff,
- /* key: 0x8fc8 */ 0xffff,
- /* key: 0x8fc9 */ 0xffff,
- /* key: 0x8fca */ 0xe13a,
- /* key: 0x8fcb */ 0xe13b,
- /* key: 0x8fcc */ 0xffff,
- /* key: 0x8fcd */ 0xe13c,
- /* key: 0x8fce */ 0x375e,
- /* key: 0x8fcf */ 0xffff,
- /* key: 0x8fd0 */ 0xe13d,
- /* key: 0x8fd1 */ 0x3661,
- /* key: 0x8fd2 */ 0xe13e,
- /* key: 0x8fd3 */ 0xe13f,
- /* key: 0x8fd4 */ 0x4a56,
- /* key: 0x8fd5 */ 0xe140,
- /* key: 0x8fd6 */ 0xffff,
- /* key: 0x8fd7 */ 0xffff,
- /* key: 0x8fd8 */ 0xffff,
- /* key: 0x8fd9 */ 0xffff,
- /* key: 0x8fda */ 0x6d69,
- /* key: 0x8fdb */ 0xffff,
- /* key: 0x8fdc */ 0xffff,
- /* key: 0x8fdd */ 0xffff,
- /* key: 0x8fde */ 0xffff,
- /* key: 0x8fdf */ 0xffff,
- /* key: 0x8fe0 */ 0xe141,
- /* key: 0x8fe1 */ 0xffff,
- /* key: 0x8fe2 */ 0x6d6b,
- /* key: 0x8fe3 */ 0xe142,
- /* key: 0x8fe4 */ 0xe143,
- /* key: 0x8fe5 */ 0x6d6a,
- /* key: 0x8fe6 */ 0x3260,
- /* key: 0x8fe7 */ 0xffff,
- /* key: 0x8fe8 */ 0xe144,
- /* key: 0x8fe9 */ 0x4676,
- /* key: 0x8fea */ 0x6d6c,
- /* key: 0x8feb */ 0x4777,
- /* key: 0x8fec */ 0xffff,
- /* key: 0x8fed */ 0x4533,
- /* key: 0x8fee */ 0xe145,
- /* key: 0x8fef */ 0x6d6d,
- /* key: 0x8ff0 */ 0x3d52,
- /* key: 0x8ff1 */ 0xe146,
- /* key: 0x8ff2 */ 0xffff,
- /* key: 0x8ff3 */ 0xffff,
- /* key: 0x8ff4 */ 0x6d6f,
- /* key: 0x8ff5 */ 0xe147,
- /* key: 0x8ff6 */ 0xe148,
- /* key: 0x8ff7 */ 0x4c42,
- /* key: 0x8ff8 */ 0x6d7e,
- /* key: 0x8ff9 */ 0x6d71,
- /* key: 0x8ffa */ 0x6d72,
- /* key: 0x8ffb */ 0xe149,
- /* key: 0x8ffc */ 0xffff,
- /* key: 0x8ffd */ 0x4449,
- /* key: 0x8ffe */ 0xe14a,
- /* key: 0x8fff */ 0xffff,
- /* branch: 0x90XX */ 19200,
- /* branch: 0x91XX */ 19472,
- /* branch: 0x92XX */ 19744,
- /* branch: 0x93XX */ 20016,
- /* branch: 0x94XX */ 20288,
- /* branch: 0x95XX */ 20448,
- /* branch: 0x96XX */ 20592,
- /* branch: 0x97XX */ 20848,
- /* branch: 0x98XX */ 21120,
- /* branch: 0x99XX */ 21360,
- /* branch: 0x9aXX */ 21600,
- /* branch: 0x9bXX */ 21824,
- /* branch: 0x9cXX */ 22096,
- /* branch: 0x9dXX */ 22272,
- /* branch: 0x9eXX */ 22544,
- /* branch: 0x9fXX */ 22736,
- /* branch: 0x900X */ 19216,
- /* branch: 0x901X */ 19232,
- /* branch: 0x902X */ 19248,
- /* branch: 0x903X */ 19264,
- /* branch: 0x904X */ 19280,
- /* branch: 0x905X */ 19296,
- /* branch: 0x906X */ 19312,
- /* branch: 0x907X */ 19328,
- /* branch: 0x908X */ 19344,
- /* branch: 0x909X */ 19360,
- /* branch: 0x90aX */ 19376,
- /* branch: 0x90bX */ 19392,
- /* branch: 0x90cX */ 19408,
- /* branch: 0x90dX */ 19424,
- /* branch: 0x90eX */ 19440,
- /* branch: 0x90fX */ 19456,
- /* key: 0x9000 */ 0x4260,
- /* key: 0x9001 */ 0x4177,
- /* key: 0x9002 */ 0xe14b,
- /* key: 0x9003 */ 0x4628,
- /* key: 0x9004 */ 0xe14c,
- /* key: 0x9005 */ 0x6d70,
- /* key: 0x9006 */ 0x3555,
- /* key: 0x9007 */ 0xffff,
- /* key: 0x9008 */ 0xe14d,
- /* key: 0x9009 */ 0xffff,
- /* key: 0x900a */ 0xffff,
- /* key: 0x900b */ 0x6d79,
- /* key: 0x900c */ 0xe14e,
- /* key: 0x900d */ 0x6d76,
- /* key: 0x900e */ 0x6e25,
- /* key: 0x900f */ 0x4629,
- /* key: 0x9010 */ 0x4360,
- /* key: 0x9011 */ 0x6d73,
- /* key: 0x9012 */ 0xffff,
- /* key: 0x9013 */ 0x447e,
- /* key: 0x9014 */ 0x4553,
- /* key: 0x9015 */ 0x6d74,
- /* key: 0x9016 */ 0x6d78,
- /* key: 0x9017 */ 0x3f60,
- /* key: 0x9018 */ 0xe14f,
- /* key: 0x9019 */ 0x4767,
- /* key: 0x901a */ 0x444c,
- /* key: 0x901b */ 0xe150,
- /* key: 0x901c */ 0xffff,
- /* key: 0x901d */ 0x4042,
- /* key: 0x901e */ 0x6d77,
- /* key: 0x901f */ 0x422e,
- /* key: 0x9020 */ 0x4224,
- /* key: 0x9021 */ 0x6d75,
- /* key: 0x9022 */ 0x3029,
- /* key: 0x9023 */ 0x4f22,
- /* key: 0x9024 */ 0xffff,
- /* key: 0x9025 */ 0xffff,
- /* key: 0x9026 */ 0xffff,
- /* key: 0x9027 */ 0x6d7a,
- /* key: 0x9028 */ 0xe151,
- /* key: 0x9029 */ 0xe152,
- /* key: 0x902a */ 0xe154,
- /* key: 0x902b */ 0xffff,
- /* key: 0x902c */ 0xe155,
- /* key: 0x902d */ 0xe156,
- /* key: 0x902e */ 0x4261,
- /* key: 0x902f */ 0xe153,
- /* key: 0x9030 */ 0xffff,
- /* key: 0x9031 */ 0x3d35,
- /* key: 0x9032 */ 0x3f4a,
- /* key: 0x9033 */ 0xe157,
- /* key: 0x9034 */ 0xe158,
- /* key: 0x9035 */ 0x6d7c,
- /* key: 0x9036 */ 0x6d7b,
- /* key: 0x9037 */ 0xe159,
- /* key: 0x9038 */ 0x306f,
- /* key: 0x9039 */ 0x6d7d,
- /* key: 0x903a */ 0xffff,
- /* key: 0x903b */ 0xffff,
- /* key: 0x903c */ 0x492f,
- /* key: 0x903d */ 0xffff,
- /* key: 0x903e */ 0x6e27,
- /* key: 0x903f */ 0xe15a,
- /* key: 0x9040 */ 0xffff,
- /* key: 0x9041 */ 0x465b,
- /* key: 0x9042 */ 0x3f6b,
- /* key: 0x9043 */ 0xe15b,
- /* key: 0x9044 */ 0xe15c,
- /* key: 0x9045 */ 0x4359,
- /* key: 0x9046 */ 0xffff,
- /* key: 0x9047 */ 0x3678,
- /* key: 0x9048 */ 0xffff,
- /* key: 0x9049 */ 0x6e26,
- /* key: 0x904a */ 0x4d37,
- /* key: 0x904b */ 0x313f,
- /* key: 0x904c */ 0xe15d,
- /* key: 0x904d */ 0x4a57,
- /* key: 0x904e */ 0x3261,
- /* key: 0x904f */ 0x6e21,
- /* key: 0x9050 */ 0x6e22,
- /* key: 0x9051 */ 0x6e23,
- /* key: 0x9052 */ 0x6e24,
- /* key: 0x9053 */ 0x463b,
- /* key: 0x9054 */ 0x4323,
- /* key: 0x9055 */ 0x3063,
- /* key: 0x9056 */ 0x6e28,
- /* key: 0x9057 */ 0xffff,
- /* key: 0x9058 */ 0x6e29,
- /* key: 0x9059 */ 0x7423,
- /* key: 0x905a */ 0xffff,
- /* key: 0x905b */ 0xe15e,
- /* key: 0x905c */ 0x423d,
- /* key: 0x905d */ 0xe15f,
- /* key: 0x905e */ 0x6e2a,
- /* key: 0x905f */ 0xffff,
- /* key: 0x9060 */ 0x3173,
- /* key: 0x9061 */ 0x414c,
- /* key: 0x9062 */ 0xe160,
- /* key: 0x9063 */ 0x382f,
- /* key: 0x9064 */ 0xffff,
- /* key: 0x9065 */ 0x4d5a,
- /* key: 0x9066 */ 0xe161,
- /* key: 0x9067 */ 0xe162,
- /* key: 0x9068 */ 0x6e2b,
- /* key: 0x9069 */ 0x452c,
- /* key: 0x906a */ 0xffff,
- /* key: 0x906b */ 0xffff,
- /* key: 0x906c */ 0xe163,
- /* key: 0x906d */ 0x4178,
- /* key: 0x906e */ 0x3c57,
- /* key: 0x906f */ 0x6e2c,
- /* key: 0x9070 */ 0xe164,
- /* key: 0x9071 */ 0xffff,
- /* key: 0x9072 */ 0x6e2f,
- /* key: 0x9073 */ 0xffff,
- /* key: 0x9074 */ 0xe165,
- /* key: 0x9075 */ 0x3d65,
- /* key: 0x9076 */ 0x6e2d,
- /* key: 0x9077 */ 0x412b,
- /* key: 0x9078 */ 0x412a,
- /* key: 0x9079 */ 0xe166,
- /* key: 0x907a */ 0x3064,
- /* key: 0x907b */ 0xffff,
- /* key: 0x907c */ 0x4e4b,
- /* key: 0x907d */ 0x6e31,
- /* key: 0x907e */ 0xffff,
- /* key: 0x907f */ 0x4872,
- /* key: 0x9080 */ 0x6e33,
- /* key: 0x9081 */ 0x6e32,
- /* key: 0x9082 */ 0x6e30,
- /* key: 0x9083 */ 0x6364,
- /* key: 0x9084 */ 0x3454,
- /* key: 0x9085 */ 0xe167,
- /* key: 0x9086 */ 0xffff,
- /* key: 0x9087 */ 0x6d6e,
- /* key: 0x9088 */ 0xe168,
- /* key: 0x9089 */ 0x6e35,
- /* key: 0x908a */ 0x6e34,
- /* key: 0x908b */ 0xe169,
- /* key: 0x908c */ 0xe16a,
- /* key: 0x908d */ 0xffff,
- /* key: 0x908e */ 0xe16b,
- /* key: 0x908f */ 0x6e36,
- /* key: 0x9090 */ 0xe16c,
- /* key: 0x9091 */ 0x4d38,
- /* key: 0x9092 */ 0xffff,
- /* key: 0x9093 */ 0xffff,
- /* key: 0x9094 */ 0xffff,
- /* key: 0x9095 */ 0xe16d,
- /* key: 0x9096 */ 0xffff,
- /* key: 0x9097 */ 0xe16e,
- /* key: 0x9098 */ 0xe16f,
- /* key: 0x9099 */ 0xe170,
- /* key: 0x909a */ 0xffff,
- /* key: 0x909b */ 0xe171,
- /* key: 0x909c */ 0xffff,
- /* key: 0x909d */ 0xffff,
- /* key: 0x909e */ 0xffff,
- /* key: 0x909f */ 0xffff,
- /* key: 0x90a0 */ 0xe172,
- /* key: 0x90a1 */ 0xe173,
- /* key: 0x90a2 */ 0xe174,
- /* key: 0x90a3 */ 0x4661,
- /* key: 0x90a4 */ 0xffff,
- /* key: 0x90a5 */ 0xe175,
- /* key: 0x90a6 */ 0x4b2e,
- /* key: 0x90a7 */ 0xffff,
- /* key: 0x90a8 */ 0x6e37,
- /* key: 0x90a9 */ 0xffff,
- /* key: 0x90aa */ 0x3c59,
- /* key: 0x90ab */ 0xffff,
- /* key: 0x90ac */ 0xffff,
- /* key: 0x90ad */ 0xffff,
- /* key: 0x90ae */ 0xffff,
- /* key: 0x90af */ 0x6e38,
- /* key: 0x90b0 */ 0xe176,
- /* key: 0x90b1 */ 0x6e39,
- /* key: 0x90b2 */ 0xe177,
- /* key: 0x90b3 */ 0xe178,
- /* key: 0x90b4 */ 0xe179,
- /* key: 0x90b5 */ 0x6e3a,
- /* key: 0x90b6 */ 0xe17a,
- /* key: 0x90b7 */ 0xffff,
- /* key: 0x90b8 */ 0x4521,
- /* key: 0x90b9 */ 0xffff,
- /* key: 0x90ba */ 0xffff,
- /* key: 0x90bb */ 0xffff,
- /* key: 0x90bc */ 0xffff,
- /* key: 0x90bd */ 0xe17b,
- /* key: 0x90be */ 0xe17d,
- /* key: 0x90bf */ 0xffff,
- /* key: 0x90c0 */ 0xffff,
- /* key: 0x90c1 */ 0x306a,
- /* key: 0x90c2 */ 0xffff,
- /* key: 0x90c3 */ 0xe17e,
- /* key: 0x90c4 */ 0xe221,
- /* key: 0x90c5 */ 0xe222,
- /* key: 0x90c6 */ 0xffff,
- /* key: 0x90c7 */ 0xe223,
- /* key: 0x90c8 */ 0xe224,
- /* key: 0x90c9 */ 0xffff,
- /* key: 0x90ca */ 0x3959,
- /* key: 0x90cb */ 0xffff,
- /* key: 0x90cc */ 0xe17c,
- /* key: 0x90cd */ 0xffff,
- /* key: 0x90ce */ 0x4f3a,
- /* key: 0x90cf */ 0xffff,
- /* key: 0x90d0 */ 0xffff,
- /* key: 0x90d1 */ 0xffff,
- /* key: 0x90d2 */ 0xe22d,
- /* key: 0x90d3 */ 0xffff,
- /* key: 0x90d4 */ 0xffff,
- /* key: 0x90d5 */ 0xe225,
- /* key: 0x90d6 */ 0xffff,
- /* key: 0x90d7 */ 0xe226,
- /* key: 0x90d8 */ 0xe227,
- /* key: 0x90d9 */ 0xe228,
- /* key: 0x90da */ 0xffff,
- /* key: 0x90db */ 0x6e3e,
- /* key: 0x90dc */ 0xe229,
- /* key: 0x90dd */ 0xe22a,
- /* key: 0x90de */ 0xffff,
- /* key: 0x90df */ 0xe22b,
- /* key: 0x90e0 */ 0xffff,
- /* key: 0x90e1 */ 0x3734,
- /* key: 0x90e2 */ 0x6e3b,
- /* key: 0x90e3 */ 0xffff,
- /* key: 0x90e4 */ 0x6e3c,
- /* key: 0x90e5 */ 0xe22c,
- /* key: 0x90e6 */ 0xffff,
- /* key: 0x90e7 */ 0xffff,
- /* key: 0x90e8 */ 0x4974,
- /* key: 0x90e9 */ 0xffff,
- /* key: 0x90ea */ 0xffff,
- /* key: 0x90eb */ 0xe22f,
- /* key: 0x90ec */ 0xffff,
- /* key: 0x90ed */ 0x3354,
- /* key: 0x90ee */ 0xffff,
- /* key: 0x90ef */ 0xe230,
- /* key: 0x90f0 */ 0xe231,
- /* key: 0x90f1 */ 0xffff,
- /* key: 0x90f2 */ 0xffff,
- /* key: 0x90f3 */ 0xffff,
- /* key: 0x90f4 */ 0xe232,
- /* key: 0x90f5 */ 0x4d39,
- /* key: 0x90f6 */ 0xe22e,
- /* key: 0x90f7 */ 0x363f,
- /* key: 0x90f8 */ 0xffff,
- /* key: 0x90f9 */ 0xffff,
- /* key: 0x90fa */ 0xffff,
- /* key: 0x90fb */ 0xffff,
- /* key: 0x90fc */ 0xffff,
- /* key: 0x90fd */ 0x4554,
- /* key: 0x90fe */ 0xe233,
- /* key: 0x90ff */ 0xe234,
- /* branch: 0x910X */ 19488,
- /* branch: 0x911X */ 19504,
- /* branch: 0x912X */ 19520,
- /* branch: 0x913X */ 19536,
- /* branch: 0x914X */ 19552,
- /* branch: 0x915X */ 19568,
- /* branch: 0x916X */ 19584,
- /* branch: 0x917X */ 19600,
- /* branch: 0x918X */ 19616,
- /* branch: 0x919X */ 19632,
- /* branch: 0x91aX */ 19648,
- /* branch: 0x91bX */ 19664,
- /* branch: 0x91cX */ 19680,
- /* branch: 0x91dX */ 19696,
- /* branch: 0x91eX */ 19712,
- /* branch: 0x91fX */ 19728,
- /* key: 0x9100 */ 0xe235,
- /* key: 0x9101 */ 0xffff,
- /* key: 0x9102 */ 0x6e3f,
- /* key: 0x9103 */ 0xffff,
- /* key: 0x9104 */ 0xe236,
- /* key: 0x9105 */ 0xe237,
- /* key: 0x9106 */ 0xe238,
- /* key: 0x9107 */ 0xffff,
- /* key: 0x9108 */ 0xe239,
- /* key: 0x9109 */ 0xffff,
- /* key: 0x910a */ 0xffff,
- /* key: 0x910b */ 0xffff,
- /* key: 0x910c */ 0xffff,
- /* key: 0x910d */ 0xe23a,
- /* key: 0x910e */ 0xffff,
- /* key: 0x910f */ 0xffff,
- /* key: 0x9110 */ 0xe23b,
- /* key: 0x9111 */ 0xffff,
- /* key: 0x9112 */ 0x6e40,
- /* key: 0x9113 */ 0xffff,
- /* key: 0x9114 */ 0xe23c,
- /* key: 0x9115 */ 0xffff,
- /* key: 0x9116 */ 0xe23d,
- /* key: 0x9117 */ 0xe23e,
- /* key: 0x9118 */ 0xe23f,
- /* key: 0x9119 */ 0x6e41,
- /* key: 0x911a */ 0xe240,
- /* key: 0x911b */ 0xffff,
- /* key: 0x911c */ 0xe241,
- /* key: 0x911d */ 0xffff,
- /* key: 0x911e */ 0xe242,
- /* key: 0x911f */ 0xffff,
- /* key: 0x9120 */ 0xe243,
- /* key: 0x9121 */ 0xffff,
- /* key: 0x9122 */ 0xe245,
- /* key: 0x9123 */ 0xe246,
- /* key: 0x9124 */ 0xffff,
- /* key: 0x9125 */ 0xe244,
- /* key: 0x9126 */ 0xffff,
- /* key: 0x9127 */ 0xe247,
- /* key: 0x9128 */ 0xffff,
- /* key: 0x9129 */ 0xe248,
- /* key: 0x912a */ 0xffff,
- /* key: 0x912b */ 0xffff,
- /* key: 0x912c */ 0xffff,
- /* key: 0x912d */ 0x4522,
- /* key: 0x912e */ 0xe249,
- /* key: 0x912f */ 0xe24a,
- /* key: 0x9130 */ 0x6e43,
- /* key: 0x9131 */ 0xe24b,
- /* key: 0x9132 */ 0x6e42,
- /* key: 0x9133 */ 0xffff,
- /* key: 0x9134 */ 0xe24c,
- /* key: 0x9135 */ 0xffff,
- /* key: 0x9136 */ 0xe24d,
- /* key: 0x9137 */ 0xe24e,
- /* key: 0x9138 */ 0xffff,
- /* key: 0x9139 */ 0xe24f,
- /* key: 0x913a */ 0xe250,
- /* key: 0x913b */ 0xffff,
- /* key: 0x913c */ 0xe251,
- /* key: 0x913d */ 0xe252,
- /* key: 0x913e */ 0xffff,
- /* key: 0x913f */ 0xffff,
- /* key: 0x9140 */ 0xffff,
- /* key: 0x9141 */ 0xffff,
- /* key: 0x9142 */ 0xffff,
- /* key: 0x9143 */ 0xe253,
- /* key: 0x9144 */ 0xffff,
- /* key: 0x9145 */ 0xffff,
- /* key: 0x9146 */ 0xffff,
- /* key: 0x9147 */ 0xe254,
- /* key: 0x9148 */ 0xe255,
- /* key: 0x9149 */ 0x4653,
- /* key: 0x914a */ 0x6e44,
- /* key: 0x914b */ 0x3d36,
- /* key: 0x914c */ 0x3c60,
- /* key: 0x914d */ 0x475b,
- /* key: 0x914e */ 0x4371,
- /* key: 0x914f */ 0xe256,
- /* key: 0x9150 */ 0xffff,
- /* key: 0x9151 */ 0xffff,
- /* key: 0x9152 */ 0x3c72,
- /* key: 0x9153 */ 0xe257,
- /* key: 0x9154 */ 0x3f6c,
- /* key: 0x9155 */ 0xffff,
- /* key: 0x9156 */ 0x6e45,
- /* key: 0x9157 */ 0xe258,
- /* key: 0x9158 */ 0x6e46,
- /* key: 0x9159 */ 0xe259,
- /* key: 0x915a */ 0xe25a,
- /* key: 0x915b */ 0xe25b,
- /* key: 0x915c */ 0xffff,
- /* key: 0x915d */ 0xffff,
- /* key: 0x915e */ 0xffff,
- /* key: 0x915f */ 0xffff,
- /* key: 0x9160 */ 0xffff,
- /* key: 0x9161 */ 0xe25c,
- /* key: 0x9162 */ 0x3f5d,
- /* key: 0x9163 */ 0x6e47,
- /* key: 0x9164 */ 0xe25d,
- /* key: 0x9165 */ 0x6e48,
- /* key: 0x9166 */ 0xffff,
- /* key: 0x9167 */ 0xe25e,
- /* key: 0x9168 */ 0xffff,
- /* key: 0x9169 */ 0x6e49,
- /* key: 0x916a */ 0x4d6f,
- /* key: 0x916b */ 0xffff,
- /* key: 0x916c */ 0x3d37,
- /* key: 0x916d */ 0xe25f,
- /* key: 0x916e */ 0xffff,
- /* key: 0x916f */ 0xffff,
- /* key: 0x9170 */ 0xffff,
- /* key: 0x9171 */ 0xffff,
- /* key: 0x9172 */ 0x6e4b,
- /* key: 0x9173 */ 0x6e4a,
- /* key: 0x9174 */ 0xe260,
- /* key: 0x9175 */ 0x395a,
- /* key: 0x9176 */ 0xffff,
- /* key: 0x9177 */ 0x3973,
- /* key: 0x9178 */ 0x3b40,
- /* key: 0x9179 */ 0xe261,
- /* key: 0x917a */ 0xe262,
- /* key: 0x917b */ 0xe263,
- /* key: 0x917c */ 0xffff,
- /* key: 0x917d */ 0xffff,
- /* key: 0x917e */ 0xffff,
- /* key: 0x917f */ 0xffff,
- /* key: 0x9180 */ 0xffff,
- /* key: 0x9181 */ 0xe264,
- /* key: 0x9182 */ 0x6e4e,
- /* key: 0x9183 */ 0xe265,
- /* key: 0x9184 */ 0xffff,
- /* key: 0x9185 */ 0xe266,
- /* key: 0x9186 */ 0xe267,
- /* key: 0x9187 */ 0x3d66,
- /* key: 0x9188 */ 0xffff,
- /* key: 0x9189 */ 0x6e4d,
- /* key: 0x918a */ 0xe268,
- /* key: 0x918b */ 0x6e4c,
- /* key: 0x918c */ 0xffff,
- /* key: 0x918d */ 0x4269,
- /* key: 0x918e */ 0xe269,
- /* key: 0x918f */ 0xffff,
- /* key: 0x9190 */ 0x386f,
- /* key: 0x9191 */ 0xe26a,
- /* key: 0x9192 */ 0x4043,
- /* key: 0x9193 */ 0xe26b,
- /* key: 0x9194 */ 0xe26c,
- /* key: 0x9195 */ 0xe26d,
- /* key: 0x9196 */ 0xffff,
- /* key: 0x9197 */ 0x4830,
- /* key: 0x9198 */ 0xe26e,
- /* key: 0x9199 */ 0xffff,
- /* key: 0x919a */ 0xffff,
- /* key: 0x919b */ 0xffff,
- /* key: 0x919c */ 0x3d39,
- /* key: 0x919d */ 0xffff,
- /* key: 0x919e */ 0xe26f,
- /* key: 0x919f */ 0xffff,
- /* key: 0x91a0 */ 0xffff,
- /* key: 0x91a1 */ 0xe270,
- /* key: 0x91a2 */ 0x6e4f,
- /* key: 0x91a3 */ 0xffff,
- /* key: 0x91a4 */ 0x3e5f,
- /* key: 0x91a5 */ 0xffff,
- /* key: 0x91a6 */ 0xe271,
- /* key: 0x91a7 */ 0xffff,
- /* key: 0x91a8 */ 0xe272,
- /* key: 0x91a9 */ 0xffff,
- /* key: 0x91aa */ 0x6e52,
- /* key: 0x91ab */ 0x6e50,
- /* key: 0x91ac */ 0xe273,
- /* key: 0x91ad */ 0xe274,
- /* key: 0x91ae */ 0xe275,
- /* key: 0x91af */ 0x6e51,
- /* key: 0x91b0 */ 0xe276,
- /* key: 0x91b1 */ 0xe277,
- /* key: 0x91b2 */ 0xe278,
- /* key: 0x91b3 */ 0xe279,
- /* key: 0x91b4 */ 0x6e54,
- /* key: 0x91b5 */ 0x6e53,
- /* key: 0x91b6 */ 0xe27a,
- /* key: 0x91b7 */ 0xffff,
- /* key: 0x91b8 */ 0x3e7a,
- /* key: 0x91b9 */ 0xffff,
- /* key: 0x91ba */ 0x6e55,
- /* key: 0x91bb */ 0xe27b,
- /* key: 0x91bc */ 0xe27c,
- /* key: 0x91bd */ 0xe27d,
- /* key: 0x91be */ 0xffff,
- /* key: 0x91bf */ 0xe27e,
- /* key: 0x91c0 */ 0x6e56,
- /* key: 0x91c1 */ 0x6e57,
- /* key: 0x91c2 */ 0xe321,
- /* key: 0x91c3 */ 0xe322,
- /* key: 0x91c4 */ 0xffff,
- /* key: 0x91c5 */ 0xe323,
- /* key: 0x91c6 */ 0x4850,
- /* key: 0x91c7 */ 0x3a53,
- /* key: 0x91c8 */ 0x3c61,
- /* key: 0x91c9 */ 0x6e58,
- /* key: 0x91ca */ 0xffff,
- /* key: 0x91cb */ 0x6e59,
- /* key: 0x91cc */ 0x4e24,
- /* key: 0x91cd */ 0x3d45,
- /* key: 0x91ce */ 0x4c6e,
- /* key: 0x91cf */ 0x4e4c,
- /* key: 0x91d0 */ 0x6e5a,
- /* key: 0x91d1 */ 0x3662,
- /* key: 0x91d2 */ 0xffff,
- /* key: 0x91d3 */ 0xe324,
- /* key: 0x91d4 */ 0xe325,
- /* key: 0x91d5 */ 0xffff,
- /* key: 0x91d6 */ 0x6e5b,
- /* key: 0x91d7 */ 0xe326,
- /* key: 0x91d8 */ 0x4523,
- /* key: 0x91d9 */ 0xe327,
- /* key: 0x91da */ 0xe328,
- /* key: 0x91db */ 0x6e5e,
- /* key: 0x91dc */ 0x3378,
- /* key: 0x91dd */ 0x3f4b,
- /* key: 0x91de */ 0xe329,
- /* key: 0x91df */ 0x6e5c,
- /* key: 0x91e0 */ 0xffff,
- /* key: 0x91e1 */ 0x6e5d,
- /* key: 0x91e2 */ 0xffff,
- /* key: 0x91e3 */ 0x4460,
- /* key: 0x91e4 */ 0xe32a,
- /* key: 0x91e5 */ 0xe32b,
- /* key: 0x91e6 */ 0x4b55,
- /* key: 0x91e7 */ 0x367c,
- /* key: 0x91e8 */ 0xffff,
- /* key: 0x91e9 */ 0xe32c,
- /* key: 0x91ea */ 0xe32d,
- /* key: 0x91eb */ 0xffff,
- /* key: 0x91ec */ 0xe32e,
- /* key: 0x91ed */ 0xe32f,
- /* key: 0x91ee */ 0xe330,
- /* key: 0x91ef */ 0xe331,
- /* key: 0x91f0 */ 0xe332,
- /* key: 0x91f1 */ 0xe333,
- /* key: 0x91f2 */ 0xffff,
- /* key: 0x91f3 */ 0xffff,
- /* key: 0x91f4 */ 0xffff,
- /* key: 0x91f5 */ 0x6e60,
- /* key: 0x91f6 */ 0x6e61,
- /* key: 0x91f7 */ 0xe334,
- /* key: 0x91f8 */ 0xffff,
- /* key: 0x91f9 */ 0xe335,
- /* key: 0x91fa */ 0xffff,
- /* key: 0x91fb */ 0xe336,
- /* key: 0x91fc */ 0x6e5f,
- /* key: 0x91fd */ 0xe337,
- /* key: 0x91fe */ 0xffff,
- /* key: 0x91ff */ 0x6e63,
- /* branch: 0x920X */ 19760,
- /* branch: 0x921X */ 19776,
- /* branch: 0x922X */ 19792,
- /* branch: 0x923X */ 19808,
- /* branch: 0x924X */ 19824,
- /* branch: 0x925X */ 19840,
- /* branch: 0x926X */ 19856,
- /* branch: 0x927X */ 19872,
- /* branch: 0x928X */ 19888,
- /* branch: 0x929X */ 19904,
- /* branch: 0x92aX */ 19920,
- /* branch: 0x92bX */ 19936,
- /* branch: 0x92cX */ 19952,
- /* branch: 0x92dX */ 19968,
- /* branch: 0x92eX */ 19984,
- /* branch: 0x92fX */ 20000,
- /* key: 0x9200 */ 0xe338,
- /* key: 0x9201 */ 0xe339,
- /* key: 0x9202 */ 0xffff,
- /* key: 0x9203 */ 0xffff,
- /* key: 0x9204 */ 0xe33a,
- /* key: 0x9205 */ 0xe33b,
- /* key: 0x9206 */ 0xe33c,
- /* key: 0x9207 */ 0xe33d,
- /* key: 0x9208 */ 0xffff,
- /* key: 0x9209 */ 0xe33e,
- /* key: 0x920a */ 0xe33f,
- /* key: 0x920b */ 0xffff,
- /* key: 0x920c */ 0xe340,
- /* key: 0x920d */ 0x465f,
- /* key: 0x920e */ 0x3343,
- /* key: 0x920f */ 0xffff,
- /* key: 0x9210 */ 0xe341,
- /* key: 0x9211 */ 0x6e67,
- /* key: 0x9212 */ 0xe342,
- /* key: 0x9213 */ 0xe343,
- /* key: 0x9214 */ 0x6e64,
- /* key: 0x9215 */ 0x6e66,
- /* key: 0x9216 */ 0xe344,
- /* key: 0x9217 */ 0xffff,
- /* key: 0x9218 */ 0xe345,
- /* key: 0x9219 */ 0xffff,
- /* key: 0x921a */ 0xffff,
- /* key: 0x921b */ 0xffff,
- /* key: 0x921c */ 0xe346,
- /* key: 0x921d */ 0xe347,
- /* key: 0x921e */ 0x6e62,
- /* key: 0x921f */ 0xffff,
- /* key: 0x9220 */ 0xffff,
- /* key: 0x9221 */ 0xffff,
- /* key: 0x9222 */ 0xffff,
- /* key: 0x9223 */ 0xe348,
- /* key: 0x9224 */ 0xe349,
- /* key: 0x9225 */ 0xe34a,
- /* key: 0x9226 */ 0xe34b,
- /* key: 0x9227 */ 0xffff,
- /* key: 0x9228 */ 0xe34c,
- /* key: 0x9229 */ 0x6f4f,
- /* key: 0x922a */ 0xffff,
- /* key: 0x922b */ 0xffff,
- /* key: 0x922c */ 0x6e65,
- /* key: 0x922d */ 0xffff,
- /* key: 0x922e */ 0xe34d,
- /* key: 0x922f */ 0xe34e,
- /* key: 0x9230 */ 0xe34f,
- /* key: 0x9231 */ 0xffff,
- /* key: 0x9232 */ 0xffff,
- /* key: 0x9233 */ 0xe350,
- /* key: 0x9234 */ 0x4e6b,
- /* key: 0x9235 */ 0xe351,
- /* key: 0x9236 */ 0xe352,
- /* key: 0x9237 */ 0x385a,
- /* key: 0x9238 */ 0xe353,
- /* key: 0x9239 */ 0xe354,
- /* key: 0x923a */ 0xe355,
- /* key: 0x923b */ 0xffff,
- /* key: 0x923c */ 0xe356,
- /* key: 0x923d */ 0xffff,
- /* key: 0x923e */ 0xe357,
- /* key: 0x923f */ 0x6e6f,
- /* key: 0x9240 */ 0xe358,
- /* key: 0x9241 */ 0xffff,
- /* key: 0x9242 */ 0xe359,
- /* key: 0x9243 */ 0xe35a,
- /* key: 0x9244 */ 0x4534,
- /* key: 0x9245 */ 0x6e6a,
- /* key: 0x9246 */ 0xe35b,
- /* key: 0x9247 */ 0xe35c,
- /* key: 0x9248 */ 0x6e6d,
- /* key: 0x9249 */ 0x6e6b,
- /* key: 0x924a */ 0xe35d,
- /* key: 0x924b */ 0x6e70,
- /* key: 0x924c */ 0xffff,
- /* key: 0x924d */ 0xe35e,
- /* key: 0x924e */ 0xe35f,
- /* key: 0x924f */ 0xe360,
- /* key: 0x9250 */ 0x6e71,
- /* key: 0x9251 */ 0xe361,
- /* key: 0x9252 */ 0xffff,
- /* key: 0x9253 */ 0xffff,
- /* key: 0x9254 */ 0xffff,
- /* key: 0x9255 */ 0xffff,
- /* key: 0x9256 */ 0xffff,
- /* key: 0x9257 */ 0x6e69,
- /* key: 0x9258 */ 0xe362,
- /* key: 0x9259 */ 0xe363,
- /* key: 0x925a */ 0x6e76,
- /* key: 0x925b */ 0x3174,
- /* key: 0x925c */ 0xe364,
- /* key: 0x925d */ 0xe365,
- /* key: 0x925e */ 0x6e68,
- /* key: 0x925f */ 0xffff,
- /* key: 0x9260 */ 0xe366,
- /* key: 0x9261 */ 0xe367,
- /* key: 0x9262 */ 0x482d,
- /* key: 0x9263 */ 0xffff,
- /* key: 0x9264 */ 0x6e6c,
- /* key: 0x9265 */ 0xe368,
- /* key: 0x9266 */ 0x3e60,
- /* key: 0x9267 */ 0xe369,
- /* key: 0x9268 */ 0xe36a,
- /* key: 0x9269 */ 0xe36b,
- /* key: 0x926a */ 0xffff,
- /* key: 0x926b */ 0xffff,
- /* key: 0x926c */ 0xffff,
- /* key: 0x926d */ 0xffff,
- /* key: 0x926e */ 0xe36c,
- /* key: 0x926f */ 0xe36d,
- /* key: 0x9270 */ 0xe36e,
- /* key: 0x9271 */ 0x395b,
- /* key: 0x9272 */ 0xffff,
- /* key: 0x9273 */ 0xffff,
- /* key: 0x9274 */ 0xffff,
- /* key: 0x9275 */ 0xe36f,
- /* key: 0x9276 */ 0xe370,
- /* key: 0x9277 */ 0xe371,
- /* key: 0x9278 */ 0xe372,
- /* key: 0x9279 */ 0xe373,
- /* key: 0x927a */ 0xffff,
- /* key: 0x927b */ 0xe374,
- /* key: 0x927c */ 0xe375,
- /* key: 0x927d */ 0xe376,
- /* key: 0x927e */ 0x4b48,
- /* key: 0x927f */ 0xe377,
- /* key: 0x9280 */ 0x3664,
- /* key: 0x9281 */ 0xffff,
- /* key: 0x9282 */ 0xffff,
- /* key: 0x9283 */ 0x3d46,
- /* key: 0x9284 */ 0xffff,
- /* key: 0x9285 */ 0x463c,
- /* key: 0x9286 */ 0xffff,
- /* key: 0x9287 */ 0xffff,
- /* key: 0x9288 */ 0xe378,
- /* key: 0x9289 */ 0xe379,
- /* key: 0x928a */ 0xe37a,
- /* key: 0x928b */ 0xffff,
- /* key: 0x928c */ 0xffff,
- /* key: 0x928d */ 0xe37b,
- /* key: 0x928e */ 0xe37c,
- /* key: 0x928f */ 0xffff,
- /* key: 0x9290 */ 0xffff,
- /* key: 0x9291 */ 0x412d,
- /* key: 0x9292 */ 0xe37d,
- /* key: 0x9293 */ 0x6e74,
- /* key: 0x9294 */ 0xffff,
- /* key: 0x9295 */ 0x6e6e,
- /* key: 0x9296 */ 0x6e73,
- /* key: 0x9297 */ 0xe37e,
- /* key: 0x9298 */ 0x4c43,
- /* key: 0x9299 */ 0xe421,
- /* key: 0x929a */ 0x4438,
- /* key: 0x929b */ 0x6e75,
- /* key: 0x929c */ 0x6e72,
- /* key: 0x929d */ 0xffff,
- /* key: 0x929e */ 0xffff,
- /* key: 0x929f */ 0xe422,
- /* key: 0x92a0 */ 0xe423,
- /* key: 0x92a1 */ 0xffff,
- /* key: 0x92a2 */ 0xffff,
- /* key: 0x92a3 */ 0xffff,
- /* key: 0x92a4 */ 0xe424,
- /* key: 0x92a5 */ 0xe425,
- /* key: 0x92a6 */ 0xffff,
- /* key: 0x92a7 */ 0xe426,
- /* key: 0x92a8 */ 0xe427,
- /* key: 0x92a9 */ 0xffff,
- /* key: 0x92aa */ 0xffff,
- /* key: 0x92ab */ 0xe428,
- /* key: 0x92ac */ 0xffff,
- /* key: 0x92ad */ 0x412c,
- /* key: 0x92ae */ 0xffff,
- /* key: 0x92af */ 0xe429,
- /* key: 0x92b0 */ 0xffff,
- /* key: 0x92b1 */ 0xffff,
- /* key: 0x92b2 */ 0xe42a,
- /* key: 0x92b3 */ 0xffff,
- /* key: 0x92b4 */ 0xffff,
- /* key: 0x92b5 */ 0xffff,
- /* key: 0x92b6 */ 0xe42b,
- /* key: 0x92b7 */ 0x6e79,
- /* key: 0x92b8 */ 0xe42c,
- /* key: 0x92b9 */ 0x6e78,
- /* key: 0x92ba */ 0xe42d,
- /* key: 0x92bb */ 0xe42e,
- /* key: 0x92bc */ 0xe42f,
- /* key: 0x92bd */ 0xe430,
- /* key: 0x92be */ 0xffff,
- /* key: 0x92bf */ 0xe431,
- /* key: 0x92c0 */ 0xe432,
- /* key: 0x92c1 */ 0xe433,
- /* key: 0x92c2 */ 0xe434,
- /* key: 0x92c3 */ 0xe435,
- /* key: 0x92c4 */ 0xffff,
- /* key: 0x92c5 */ 0xe436,
- /* key: 0x92c6 */ 0xe437,
- /* key: 0x92c7 */ 0xe438,
- /* key: 0x92c8 */ 0xe439,
- /* key: 0x92c9 */ 0xffff,
- /* key: 0x92ca */ 0xffff,
- /* key: 0x92cb */ 0xe43a,
- /* key: 0x92cc */ 0xe43b,
- /* key: 0x92cd */ 0xe43c,
- /* key: 0x92ce */ 0xe43d,
- /* key: 0x92cf */ 0x6e77,
- /* key: 0x92d0 */ 0xe43e,
- /* key: 0x92d1 */ 0xffff,
- /* key: 0x92d2 */ 0x4b2f,
- /* key: 0x92d3 */ 0xe43f,
- /* key: 0x92d4 */ 0xffff,
- /* key: 0x92d5 */ 0xe440,
- /* key: 0x92d6 */ 0xffff,
- /* key: 0x92d7 */ 0xe441,
- /* key: 0x92d8 */ 0xe442,
- /* key: 0x92d9 */ 0xe443,
- /* key: 0x92da */ 0xffff,
- /* key: 0x92db */ 0xffff,
- /* key: 0x92dc */ 0xe444,
- /* key: 0x92dd */ 0xe445,
- /* key: 0x92de */ 0xffff,
- /* key: 0x92df */ 0xe446,
- /* key: 0x92e0 */ 0xe447,
- /* key: 0x92e1 */ 0xe448,
- /* key: 0x92e2 */ 0xffff,
- /* key: 0x92e3 */ 0xe449,
- /* key: 0x92e4 */ 0x3d7b,
- /* key: 0x92e5 */ 0xe44a,
- /* key: 0x92e6 */ 0xffff,
- /* key: 0x92e7 */ 0xe44b,
- /* key: 0x92e8 */ 0xe44c,
- /* key: 0x92e9 */ 0x6e7a,
- /* key: 0x92ea */ 0x4a5f,
- /* key: 0x92eb */ 0xffff,
- /* key: 0x92ec */ 0xe44d,
- /* key: 0x92ed */ 0x3154,
- /* key: 0x92ee */ 0xe44e,
- /* key: 0x92ef */ 0xffff,
- /* key: 0x92f0 */ 0xe44f,
- /* key: 0x92f1 */ 0xffff,
- /* key: 0x92f2 */ 0x4946,
- /* key: 0x92f3 */ 0x4372,
- /* key: 0x92f4 */ 0xffff,
- /* key: 0x92f5 */ 0xffff,
- /* key: 0x92f6 */ 0xffff,
- /* key: 0x92f7 */ 0xffff,
- /* key: 0x92f8 */ 0x3578,
- /* key: 0x92f9 */ 0xe450,
- /* key: 0x92fa */ 0x6e7c,
- /* key: 0x92fb */ 0xe451,
- /* key: 0x92fc */ 0x395d,
- /* key: 0x92fd */ 0xffff,
- /* key: 0x92fe */ 0xffff,
- /* key: 0x92ff */ 0xe452,
- /* branch: 0x930X */ 20032,
- /* branch: 0x931X */ 20048,
- /* branch: 0x932X */ 20064,
- /* branch: 0x933X */ 20080,
- /* branch: 0x934X */ 20096,
- /* branch: 0x935X */ 20112,
- /* branch: 0x936X */ 20128,
- /* branch: 0x937X */ 20144,
- /* branch: 0x938X */ 20160,
- /* branch: 0x939X */ 20176,
- /* branch: 0x93aX */ 20192,
- /* branch: 0x93bX */ 20208,
- /* branch: 0x93cX */ 20224,
- /* branch: 0x93dX */ 20240,
- /* branch: 0x93eX */ 20256,
- /* branch: 0x93fX */ 20272,
- /* key: 0x9300 */ 0xe453,
- /* key: 0x9301 */ 0xffff,
- /* key: 0x9302 */ 0xe454,
- /* key: 0x9303 */ 0xffff,
- /* key: 0x9304 */ 0xffff,
- /* key: 0x9305 */ 0xffff,
- /* key: 0x9306 */ 0x3b2c,
- /* key: 0x9307 */ 0xffff,
- /* key: 0x9308 */ 0xe455,
- /* key: 0x9309 */ 0xffff,
- /* key: 0x930a */ 0xffff,
- /* key: 0x930b */ 0xffff,
- /* key: 0x930c */ 0xffff,
- /* key: 0x930d */ 0xe456,
- /* key: 0x930e */ 0xffff,
- /* key: 0x930f */ 0x6e7b,
- /* key: 0x9310 */ 0x3f6d,
- /* key: 0x9311 */ 0xe457,
- /* key: 0x9312 */ 0xffff,
- /* key: 0x9313 */ 0xffff,
- /* key: 0x9314 */ 0xe458,
- /* key: 0x9315 */ 0xe459,
- /* key: 0x9316 */ 0xffff,
- /* key: 0x9317 */ 0xffff,
- /* key: 0x9318 */ 0x3f6e,
- /* key: 0x9319 */ 0x6f21,
- /* key: 0x931a */ 0x6f23,
- /* key: 0x931b */ 0xffff,
- /* key: 0x931c */ 0xe45a,
- /* key: 0x931d */ 0xe45b,
- /* key: 0x931e */ 0xe45c,
- /* key: 0x931f */ 0xe45d,
- /* key: 0x9320 */ 0x3e7b,
- /* key: 0x9321 */ 0xe45e,
- /* key: 0x9322 */ 0x6f22,
- /* key: 0x9323 */ 0x6f24,
- /* key: 0x9324 */ 0xe45f,
- /* key: 0x9325 */ 0xe460,
- /* key: 0x9326 */ 0x3653,
- /* key: 0x9327 */ 0xe461,
- /* key: 0x9328 */ 0x4945,
- /* key: 0x9329 */ 0xe462,
- /* key: 0x932a */ 0xe463,
- /* key: 0x932b */ 0x3c62,
- /* key: 0x932c */ 0x4f23,
- /* key: 0x932d */ 0xffff,
- /* key: 0x932e */ 0x6e7e,
- /* key: 0x932f */ 0x3a78,
- /* key: 0x9330 */ 0xffff,
- /* key: 0x9331 */ 0xffff,
- /* key: 0x9332 */ 0x4f3f,
- /* key: 0x9333 */ 0xe464,
- /* key: 0x9334 */ 0xe465,
- /* key: 0x9335 */ 0x6f26,
- /* key: 0x9336 */ 0xe466,
- /* key: 0x9337 */ 0xe467,
- /* key: 0x9338 */ 0xffff,
- /* key: 0x9339 */ 0xffff,
- /* key: 0x933a */ 0x6f25,
- /* key: 0x933b */ 0x6f27,
- /* key: 0x933c */ 0xffff,
- /* key: 0x933d */ 0xffff,
- /* key: 0x933e */ 0xffff,
- /* key: 0x933f */ 0xffff,
- /* key: 0x9340 */ 0xffff,
- /* key: 0x9341 */ 0xffff,
- /* key: 0x9342 */ 0xffff,
- /* key: 0x9343 */ 0xffff,
- /* key: 0x9344 */ 0x6e7d,
- /* key: 0x9345 */ 0xffff,
- /* key: 0x9346 */ 0xffff,
- /* key: 0x9347 */ 0xe468,
- /* key: 0x9348 */ 0xe469,
- /* key: 0x9349 */ 0xe46a,
- /* key: 0x934a */ 0xffff,
- /* key: 0x934b */ 0x4669,
- /* key: 0x934c */ 0xffff,
- /* key: 0x934d */ 0x4555,
- /* key: 0x934e */ 0xffff,
- /* key: 0x934f */ 0xffff,
- /* key: 0x9350 */ 0xe46b,
- /* key: 0x9351 */ 0xe46c,
- /* key: 0x9352 */ 0xe46d,
- /* key: 0x9353 */ 0xffff,
- /* key: 0x9354 */ 0x4457,
- /* key: 0x9355 */ 0xe46e,
- /* key: 0x9356 */ 0x6f2c,
- /* key: 0x9357 */ 0xe46f,
- /* key: 0x9358 */ 0xe470,
- /* key: 0x9359 */ 0xffff,
- /* key: 0x935a */ 0xe471,
- /* key: 0x935b */ 0x4343,
- /* key: 0x935c */ 0x6f28,
- /* key: 0x935d */ 0xffff,
- /* key: 0x935e */ 0xe472,
- /* key: 0x935f */ 0xffff,
- /* key: 0x9360 */ 0x6f29,
- /* key: 0x9361 */ 0xffff,
- /* key: 0x9362 */ 0xffff,
- /* key: 0x9363 */ 0xffff,
- /* key: 0x9364 */ 0xe473,
- /* key: 0x9365 */ 0xe474,
- /* key: 0x9366 */ 0xffff,
- /* key: 0x9367 */ 0xe475,
- /* key: 0x9368 */ 0xffff,
- /* key: 0x9369 */ 0xe476,
- /* key: 0x936a */ 0xe477,
- /* key: 0x936b */ 0xffff,
- /* key: 0x936c */ 0x372d,
- /* key: 0x936d */ 0xe478,
- /* key: 0x936e */ 0x6f2b,
- /* key: 0x936f */ 0xe479,
- /* key: 0x9370 */ 0xe47a,
- /* key: 0x9371 */ 0xe47b,
- /* key: 0x9372 */ 0xffff,
- /* key: 0x9373 */ 0xe47c,
- /* key: 0x9374 */ 0xe47d,
- /* key: 0x9375 */ 0x3830,
- /* key: 0x9376 */ 0xe47e,
- /* key: 0x9377 */ 0xffff,
- /* key: 0x9378 */ 0xffff,
- /* key: 0x9379 */ 0xffff,
- /* key: 0x937a */ 0xe521,
- /* key: 0x937b */ 0xffff,
- /* key: 0x937c */ 0x6f2a,
- /* key: 0x937d */ 0xe522,
- /* key: 0x937e */ 0x3e61,
- /* key: 0x937f */ 0xe523,
- /* key: 0x9380 */ 0xe524,
- /* key: 0x9381 */ 0xe525,
- /* key: 0x9382 */ 0xe526,
- /* key: 0x9383 */ 0xffff,
- /* key: 0x9384 */ 0xffff,
- /* key: 0x9385 */ 0xffff,
- /* key: 0x9386 */ 0xffff,
- /* key: 0x9387 */ 0xffff,
- /* key: 0x9388 */ 0xe527,
- /* key: 0x9389 */ 0xffff,
- /* key: 0x938a */ 0xe528,
- /* key: 0x938b */ 0xe529,
- /* key: 0x938c */ 0x3379,
- /* key: 0x938d */ 0xe52a,
- /* key: 0x938e */ 0xffff,
- /* key: 0x938f */ 0xe52b,
- /* key: 0x9390 */ 0xffff,
- /* key: 0x9391 */ 0xffff,
- /* key: 0x9392 */ 0xe52c,
- /* key: 0x9393 */ 0xffff,
- /* key: 0x9394 */ 0x6f30,
- /* key: 0x9395 */ 0xe52d,
- /* key: 0x9396 */ 0x3a3f,
- /* key: 0x9397 */ 0x4179,
- /* key: 0x9398 */ 0xe52e,
- /* key: 0x9399 */ 0xffff,
- /* key: 0x939a */ 0x444a,
- /* key: 0x939b */ 0xe52f,
- /* key: 0x939c */ 0xffff,
- /* key: 0x939d */ 0xffff,
- /* key: 0x939e */ 0xe530,
- /* key: 0x939f */ 0xffff,
- /* key: 0x93a0 */ 0xffff,
- /* key: 0x93a1 */ 0xe531,
- /* key: 0x93a2 */ 0xffff,
- /* key: 0x93a3 */ 0xe532,
- /* key: 0x93a4 */ 0xe533,
- /* key: 0x93a5 */ 0xffff,
- /* key: 0x93a6 */ 0xe534,
- /* key: 0x93a7 */ 0x333b,
- /* key: 0x93a8 */ 0xe535,
- /* key: 0x93a9 */ 0xe53b,
- /* key: 0x93aa */ 0xffff,
- /* key: 0x93ab */ 0xe536,
- /* key: 0x93ac */ 0x6f2e,
- /* key: 0x93ad */ 0x6f2f,
- /* key: 0x93ae */ 0x4443,
- /* key: 0x93af */ 0xffff,
- /* key: 0x93b0 */ 0x6f2d,
- /* key: 0x93b1 */ 0xffff,
- /* key: 0x93b2 */ 0xffff,
- /* key: 0x93b3 */ 0xffff,
- /* key: 0x93b4 */ 0xe537,
- /* key: 0x93b5 */ 0xe538,
- /* key: 0x93b6 */ 0xe539,
- /* key: 0x93b7 */ 0xffff,
- /* key: 0x93b8 */ 0xffff,
- /* key: 0x93b9 */ 0x6f31,
- /* key: 0x93ba */ 0xe53a,
- /* key: 0x93bb */ 0xffff,
- /* key: 0x93bc */ 0xffff,
- /* key: 0x93bd */ 0xffff,
- /* key: 0x93be */ 0xffff,
- /* key: 0x93bf */ 0xffff,
- /* key: 0x93c0 */ 0xffff,
- /* key: 0x93c1 */ 0xe53c,
- /* key: 0x93c2 */ 0xffff,
- /* key: 0x93c3 */ 0x6f37,
- /* key: 0x93c4 */ 0xe53d,
- /* key: 0x93c5 */ 0xe53e,
- /* key: 0x93c6 */ 0xe53f,
- /* key: 0x93c7 */ 0xe540,
- /* key: 0x93c8 */ 0x6f3a,
- /* key: 0x93c9 */ 0xe541,
- /* key: 0x93ca */ 0xe542,
- /* key: 0x93cb */ 0xe543,
- /* key: 0x93cc */ 0xe544,
- /* key: 0x93cd */ 0xe545,
- /* key: 0x93ce */ 0xffff,
- /* key: 0x93cf */ 0xffff,
- /* key: 0x93d0 */ 0x6f39,
- /* key: 0x93d1 */ 0x452d,
- /* key: 0x93d2 */ 0xffff,
- /* key: 0x93d3 */ 0xe546,
- /* key: 0x93d4 */ 0xffff,
- /* key: 0x93d5 */ 0xffff,
- /* key: 0x93d6 */ 0x6f32,
- /* key: 0x93d7 */ 0x6f33,
- /* key: 0x93d8 */ 0x6f36,
- /* key: 0x93d9 */ 0xe547,
- /* key: 0x93da */ 0xffff,
- /* key: 0x93db */ 0xffff,
- /* key: 0x93dc */ 0xe548,
- /* key: 0x93dd */ 0x6f38,
- /* key: 0x93de */ 0xe549,
- /* key: 0x93df */ 0xe54a,
- /* key: 0x93e0 */ 0xffff,
- /* key: 0x93e1 */ 0x3640,
- /* key: 0x93e2 */ 0xe54b,
- /* key: 0x93e3 */ 0xffff,
- /* key: 0x93e4 */ 0x6f3b,
- /* key: 0x93e5 */ 0x6f35,
- /* key: 0x93e6 */ 0xe54c,
- /* key: 0x93e7 */ 0xe54d,
- /* key: 0x93e8 */ 0x6f34,
- /* key: 0x93e9 */ 0xffff,
- /* key: 0x93ea */ 0xffff,
- /* key: 0x93eb */ 0xffff,
- /* key: 0x93ec */ 0xffff,
- /* key: 0x93ed */ 0xffff,
- /* key: 0x93ee */ 0xffff,
- /* key: 0x93ef */ 0xffff,
- /* key: 0x93f0 */ 0xffff,
- /* key: 0x93f1 */ 0xffff,
- /* key: 0x93f2 */ 0xffff,
- /* key: 0x93f3 */ 0xffff,
- /* key: 0x93f4 */ 0xffff,
- /* key: 0x93f5 */ 0xffff,
- /* key: 0x93f6 */ 0xffff,
- /* key: 0x93f7 */ 0xe54f,
- /* key: 0x93f8 */ 0xe550,
- /* key: 0x93f9 */ 0xe54e,
- /* key: 0x93fa */ 0xe551,
- /* key: 0x93fb */ 0xe552,
- /* key: 0x93fc */ 0xffff,
- /* key: 0x93fd */ 0xe553,
- /* key: 0x93fe */ 0xffff,
- /* key: 0x93ff */ 0xffff,
- /* branch: 0x940X */ 20304,
- /* branch: 0x941X */ 20320,
- /* branch: 0x942X */ 20336,
- /* branch: 0x943X */ 20352,
- /* branch: 0x944X */ 20368,
- /* branch: 0x945X */ 20384,
- /* branch: 0x946X */ 20400,
- /* branch: 0x947X */ 20416,
- /* branch: 0x948X */ 20432,
- /* branch: 0x949X */ 0,
- /* branch: 0x94aX */ 0,
- /* branch: 0x94bX */ 0,
- /* branch: 0x94cX */ 0,
- /* branch: 0x94dX */ 0,
- /* branch: 0x94eX */ 0,
- /* branch: 0x94fX */ 0,
- /* key: 0x9400 */ 0xffff,
- /* key: 0x9401 */ 0xe554,
- /* key: 0x9402 */ 0xe555,
- /* key: 0x9403 */ 0x6f3f,
- /* key: 0x9404 */ 0xe556,
- /* key: 0x9405 */ 0xffff,
- /* key: 0x9406 */ 0xffff,
- /* key: 0x9407 */ 0x6f40,
- /* key: 0x9408 */ 0xe557,
- /* key: 0x9409 */ 0xe558,
- /* key: 0x940a */ 0xffff,
- /* key: 0x940b */ 0xffff,
- /* key: 0x940c */ 0xffff,
- /* key: 0x940d */ 0xe559,
- /* key: 0x940e */ 0xe55a,
- /* key: 0x940f */ 0xe55b,
- /* key: 0x9410 */ 0x6f41,
- /* key: 0x9411 */ 0xffff,
- /* key: 0x9412 */ 0xffff,
- /* key: 0x9413 */ 0x6f3e,
- /* key: 0x9414 */ 0x6f3d,
- /* key: 0x9415 */ 0xe55c,
- /* key: 0x9416 */ 0xe55d,
- /* key: 0x9417 */ 0xe55e,
- /* key: 0x9418 */ 0x3e62,
- /* key: 0x9419 */ 0x462a,
- /* key: 0x941a */ 0x6f3c,
- /* key: 0x941b */ 0xffff,
- /* key: 0x941c */ 0xffff,
- /* key: 0x941d */ 0xffff,
- /* key: 0x941e */ 0xffff,
- /* key: 0x941f */ 0xe55f,
- /* key: 0x9420 */ 0xffff,
- /* key: 0x9421 */ 0x6f45,
- /* key: 0x9422 */ 0xffff,
- /* key: 0x9423 */ 0xffff,
- /* key: 0x9424 */ 0xffff,
- /* key: 0x9425 */ 0xffff,
- /* key: 0x9426 */ 0xffff,
- /* key: 0x9427 */ 0xffff,
- /* key: 0x9428 */ 0xffff,
- /* key: 0x9429 */ 0xffff,
- /* key: 0x942a */ 0xffff,
- /* key: 0x942b */ 0x6f43,
- /* key: 0x942c */ 0xffff,
- /* key: 0x942d */ 0xffff,
- /* key: 0x942e */ 0xe560,
- /* key: 0x942f */ 0xe561,
- /* key: 0x9430 */ 0xffff,
- /* key: 0x9431 */ 0xe562,
- /* key: 0x9432 */ 0xe563,
- /* key: 0x9433 */ 0xe564,
- /* key: 0x9434 */ 0xe565,
- /* key: 0x9435 */ 0x6f44,
- /* key: 0x9436 */ 0x6f42,
- /* key: 0x9437 */ 0xffff,
- /* key: 0x9438 */ 0x4278,
- /* key: 0x9439 */ 0xffff,
- /* key: 0x943a */ 0x6f46,
- /* key: 0x943b */ 0xe566,
- /* key: 0x943c */ 0xffff,
- /* key: 0x943d */ 0xe568,
- /* key: 0x943e */ 0xffff,
- /* key: 0x943f */ 0xe567,
- /* key: 0x9440 */ 0xffff,
- /* key: 0x9441 */ 0x6f47,
- /* key: 0x9442 */ 0xffff,
- /* key: 0x9443 */ 0xe569,
- /* key: 0x9444 */ 0x6f49,
- /* key: 0x9445 */ 0xe56a,
- /* key: 0x9446 */ 0xffff,
- /* key: 0x9447 */ 0xffff,
- /* key: 0x9448 */ 0xe56b,
- /* key: 0x9449 */ 0xffff,
- /* key: 0x944a */ 0xe56c,
- /* key: 0x944b */ 0xffff,
- /* key: 0x944c */ 0xe56d,
- /* key: 0x944d */ 0xffff,
- /* key: 0x944e */ 0xffff,
- /* key: 0x944f */ 0xffff,
- /* key: 0x9450 */ 0xffff,
- /* key: 0x9451 */ 0x3455,
- /* key: 0x9452 */ 0x6f48,
- /* key: 0x9453 */ 0x4c7a,
- /* key: 0x9454 */ 0xffff,
- /* key: 0x9455 */ 0xe56e,
- /* key: 0x9456 */ 0xffff,
- /* key: 0x9457 */ 0xffff,
- /* key: 0x9458 */ 0xffff,
- /* key: 0x9459 */ 0xe56f,
- /* key: 0x945a */ 0x6f54,
- /* key: 0x945b */ 0x6f4a,
- /* key: 0x945c */ 0xe570,
- /* key: 0x945d */ 0xffff,
- /* key: 0x945e */ 0x6f4d,
- /* key: 0x945f */ 0xe571,
- /* key: 0x9460 */ 0x6f4b,
- /* key: 0x9461 */ 0xe572,
- /* key: 0x9462 */ 0x6f4c,
- /* key: 0x9463 */ 0xe573,
- /* key: 0x9464 */ 0xffff,
- /* key: 0x9465 */ 0xffff,
- /* key: 0x9466 */ 0xffff,
- /* key: 0x9467 */ 0xffff,
- /* key: 0x9468 */ 0xe574,
- /* key: 0x9469 */ 0xffff,
- /* key: 0x946a */ 0x6f4e,
- /* key: 0x946b */ 0xe575,
- /* key: 0x946c */ 0xffff,
- /* key: 0x946d */ 0xe576,
- /* key: 0x946e */ 0xe577,
- /* key: 0x946f */ 0xe578,
- /* key: 0x9470 */ 0x6f50,
- /* key: 0x9471 */ 0xe579,
- /* key: 0x9472 */ 0xe57a,
- /* key: 0x9473 */ 0xffff,
- /* key: 0x9474 */ 0xffff,
- /* key: 0x9475 */ 0x6f51,
- /* key: 0x9476 */ 0xffff,
- /* key: 0x9477 */ 0x6f52,
- /* key: 0x9478 */ 0xffff,
- /* key: 0x9479 */ 0xffff,
- /* key: 0x947a */ 0xffff,
- /* key: 0x947b */ 0xffff,
- /* key: 0x947c */ 0x6f55,
- /* key: 0x947d */ 0x6f53,
- /* key: 0x947e */ 0x6f56,
- /* key: 0x947f */ 0x6f58,
- /* key: 0x9480 */ 0xffff,
- /* key: 0x9481 */ 0x6f57,
- /* key: 0x9482 */ 0xffff,
- /* key: 0x9483 */ 0xe57c,
- /* key: 0x9484 */ 0xe57b,
- /* key: 0x9485 */ 0xffff,
- /* key: 0x9486 */ 0xffff,
- /* key: 0x9487 */ 0xffff,
- /* key: 0x9488 */ 0xffff,
- /* key: 0x9489 */ 0xffff,
- /* key: 0x948a */ 0xffff,
- /* key: 0x948b */ 0xffff,
- /* key: 0x948c */ 0xffff,
- /* key: 0x948d */ 0xffff,
- /* key: 0x948e */ 0xffff,
- /* key: 0x948f */ 0xffff,
- /* branch: 0x950X */ 0,
- /* branch: 0x951X */ 0,
- /* branch: 0x952X */ 0,
- /* branch: 0x953X */ 0,
- /* branch: 0x954X */ 0,
- /* branch: 0x955X */ 0,
- /* branch: 0x956X */ 0,
- /* branch: 0x957X */ 20464,
- /* branch: 0x958X */ 20480,
- /* branch: 0x959X */ 20496,
- /* branch: 0x95aX */ 20512,
- /* branch: 0x95bX */ 20528,
- /* branch: 0x95cX */ 20544,
- /* branch: 0x95dX */ 20560,
- /* branch: 0x95eX */ 20576,
- /* branch: 0x95fX */ 0,
- /* key: 0x9570 */ 0xffff,
- /* key: 0x9571 */ 0xffff,
- /* key: 0x9572 */ 0xffff,
- /* key: 0x9573 */ 0xffff,
- /* key: 0x9574 */ 0xffff,
- /* key: 0x9575 */ 0xffff,
- /* key: 0x9576 */ 0xffff,
- /* key: 0x9577 */ 0x4439,
- /* key: 0x9578 */ 0xe57d,
- /* key: 0x9579 */ 0xe57e,
- /* key: 0x957a */ 0xffff,
- /* key: 0x957b */ 0xffff,
- /* key: 0x957c */ 0xffff,
- /* key: 0x957d */ 0xffff,
- /* key: 0x957e */ 0xe621,
- /* key: 0x957f */ 0xffff,
- /* key: 0x9580 */ 0x4c67,
- /* key: 0x9581 */ 0xffff,
- /* key: 0x9582 */ 0x6f59,
- /* key: 0x9583 */ 0x412e,
- /* key: 0x9584 */ 0xe622,
- /* key: 0x9585 */ 0xffff,
- /* key: 0x9586 */ 0xffff,
- /* key: 0x9587 */ 0x6f5a,
- /* key: 0x9588 */ 0xe623,
- /* key: 0x9589 */ 0x4a44,
- /* key: 0x958a */ 0x6f5b,
- /* key: 0x958b */ 0x332b,
- /* key: 0x958c */ 0xe624,
- /* key: 0x958d */ 0xe625,
- /* key: 0x958e */ 0xe626,
- /* key: 0x958f */ 0x313c,
- /* key: 0x9590 */ 0xffff,
- /* key: 0x9591 */ 0x3457,
- /* key: 0x9592 */ 0xffff,
- /* key: 0x9593 */ 0x3456,
- /* key: 0x9594 */ 0x6f5c,
- /* key: 0x9595 */ 0xffff,
- /* key: 0x9596 */ 0x6f5d,
- /* key: 0x9597 */ 0xffff,
- /* key: 0x9598 */ 0x6f5e,
- /* key: 0x9599 */ 0x6f5f,
- /* key: 0x959a */ 0xffff,
- /* key: 0x959b */ 0xffff,
- /* key: 0x959c */ 0xffff,
- /* key: 0x959d */ 0xe627,
- /* key: 0x959e */ 0xe628,
- /* key: 0x959f */ 0xe629,
- /* key: 0x95a0 */ 0x6f60,
- /* key: 0x95a1 */ 0xe62a,
- /* key: 0x95a2 */ 0x3458,
- /* key: 0x95a3 */ 0x3355,
- /* key: 0x95a4 */ 0x395e,
- /* key: 0x95a5 */ 0x4836,
- /* key: 0x95a6 */ 0xe62b,
- /* key: 0x95a7 */ 0x6f62,
- /* key: 0x95a8 */ 0x6f61,
- /* key: 0x95a9 */ 0xe62c,
- /* key: 0x95aa */ 0xffff,
- /* key: 0x95ab */ 0xe62d,
- /* key: 0x95ac */ 0xe62e,
- /* key: 0x95ad */ 0x6f63,
- /* key: 0x95ae */ 0xffff,
- /* key: 0x95af */ 0xffff,
- /* key: 0x95b0 */ 0xffff,
- /* key: 0x95b1 */ 0xffff,
- /* key: 0x95b2 */ 0x315c,
- /* key: 0x95b3 */ 0xffff,
- /* key: 0x95b4 */ 0xe62f,
- /* key: 0x95b5 */ 0xffff,
- /* key: 0x95b6 */ 0xe630,
- /* key: 0x95b7 */ 0xffff,
- /* key: 0x95b8 */ 0xffff,
- /* key: 0x95b9 */ 0x6f66,
- /* key: 0x95ba */ 0xe631,
- /* key: 0x95bb */ 0x6f65,
- /* key: 0x95bc */ 0x6f64,
- /* key: 0x95bd */ 0xe632,
- /* key: 0x95be */ 0x6f67,
- /* key: 0x95bf */ 0xe633,
- /* key: 0x95c0 */ 0xffff,
- /* key: 0x95c1 */ 0xffff,
- /* key: 0x95c2 */ 0xffff,
- /* key: 0x95c3 */ 0x6f6a,
- /* key: 0x95c4 */ 0xffff,
- /* key: 0x95c5 */ 0xffff,
- /* key: 0x95c6 */ 0xe634,
- /* key: 0x95c7 */ 0x3047,
- /* key: 0x95c8 */ 0xe635,
- /* key: 0x95c9 */ 0xe636,
- /* key: 0x95ca */ 0x6f68,
- /* key: 0x95cb */ 0xe637,
- /* key: 0x95cc */ 0x6f6c,
- /* key: 0x95cd */ 0x6f6b,
- /* key: 0x95ce */ 0xffff,
- /* key: 0x95cf */ 0xffff,
- /* key: 0x95d0 */ 0xe638,
- /* key: 0x95d1 */ 0xe639,
- /* key: 0x95d2 */ 0xe63a,
- /* key: 0x95d3 */ 0xe63b,
- /* key: 0x95d4 */ 0x6f6e,
- /* key: 0x95d5 */ 0x6f6d,
- /* key: 0x95d6 */ 0x6f6f,
- /* key: 0x95d7 */ 0xffff,
- /* key: 0x95d8 */ 0x462e,
- /* key: 0x95d9 */ 0xe63c,
- /* key: 0x95da */ 0xe63d,
- /* key: 0x95db */ 0xffff,
- /* key: 0x95dc */ 0x6f70,
- /* key: 0x95dd */ 0xe63e,
- /* key: 0x95de */ 0xe63f,
- /* key: 0x95df */ 0xe640,
- /* key: 0x95e0 */ 0xe641,
- /* key: 0x95e1 */ 0x6f71,
- /* key: 0x95e2 */ 0x6f73,
- /* key: 0x95e3 */ 0xffff,
- /* key: 0x95e4 */ 0xe642,
- /* key: 0x95e5 */ 0x6f72,
- /* key: 0x95e6 */ 0xe643,
- /* key: 0x95e7 */ 0xffff,
- /* key: 0x95e8 */ 0xffff,
- /* key: 0x95e9 */ 0xffff,
- /* key: 0x95ea */ 0xffff,
- /* key: 0x95eb */ 0xffff,
- /* key: 0x95ec */ 0xffff,
- /* key: 0x95ed */ 0xffff,
- /* key: 0x95ee */ 0xffff,
- /* key: 0x95ef */ 0xffff,
- /* branch: 0x960X */ 0,
- /* branch: 0x961X */ 20608,
- /* branch: 0x962X */ 20624,
- /* branch: 0x963X */ 20640,
- /* branch: 0x964X */ 20656,
- /* branch: 0x965X */ 20672,
- /* branch: 0x966X */ 20688,
- /* branch: 0x967X */ 20704,
- /* branch: 0x968X */ 20720,
- /* branch: 0x969X */ 20736,
- /* branch: 0x96aX */ 20752,
- /* branch: 0x96bX */ 20768,
- /* branch: 0x96cX */ 20784,
- /* branch: 0x96dX */ 20800,
- /* branch: 0x96eX */ 20816,
- /* branch: 0x96fX */ 20832,
- /* key: 0x9610 */ 0xffff,
- /* key: 0x9611 */ 0xffff,
- /* key: 0x9612 */ 0xffff,
- /* key: 0x9613 */ 0xffff,
- /* key: 0x9614 */ 0xffff,
- /* key: 0x9615 */ 0xffff,
- /* key: 0x9616 */ 0xffff,
- /* key: 0x9617 */ 0xffff,
- /* key: 0x9618 */ 0xffff,
- /* key: 0x9619 */ 0xffff,
- /* key: 0x961a */ 0xffff,
- /* key: 0x961b */ 0xffff,
- /* key: 0x961c */ 0x496c,
- /* key: 0x961d */ 0xe644,
- /* key: 0x961e */ 0xe645,
- /* key: 0x961f */ 0xffff,
- /* key: 0x9620 */ 0xffff,
- /* key: 0x9621 */ 0x6f74,
- /* key: 0x9622 */ 0xe646,
- /* key: 0x9623 */ 0xffff,
- /* key: 0x9624 */ 0xe647,
- /* key: 0x9625 */ 0xe648,
- /* key: 0x9626 */ 0xe649,
- /* key: 0x9627 */ 0xffff,
- /* key: 0x9628 */ 0x6f75,
- /* key: 0x9629 */ 0xffff,
- /* key: 0x962a */ 0x3a65,
- /* key: 0x962b */ 0xffff,
- /* key: 0x962c */ 0xe64a,
- /* key: 0x962d */ 0xffff,
- /* key: 0x962e */ 0x6f76,
- /* key: 0x962f */ 0x6f77,
- /* key: 0x9630 */ 0xffff,
- /* key: 0x9631 */ 0xe64b,
- /* key: 0x9632 */ 0x4b49,
- /* key: 0x9633 */ 0xe64c,
- /* key: 0x9634 */ 0xffff,
- /* key: 0x9635 */ 0xffff,
- /* key: 0x9636 */ 0xffff,
- /* key: 0x9637 */ 0xe64d,
- /* key: 0x9638 */ 0xe64e,
- /* key: 0x9639 */ 0xe64f,
- /* key: 0x963a */ 0xe650,
- /* key: 0x963b */ 0x414b,
- /* key: 0x963c */ 0xe651,
- /* key: 0x963d */ 0xe652,
- /* key: 0x963e */ 0xffff,
- /* key: 0x963f */ 0x3024,
- /* key: 0x9640 */ 0x424b,
- /* key: 0x9641 */ 0xe653,
- /* key: 0x9642 */ 0x6f78,
- /* key: 0x9643 */ 0xffff,
- /* key: 0x9644 */ 0x496d,
- /* key: 0x9645 */ 0xffff,
- /* key: 0x9646 */ 0xffff,
- /* key: 0x9647 */ 0xffff,
- /* key: 0x9648 */ 0xffff,
- /* key: 0x9649 */ 0xffff,
- /* key: 0x964a */ 0xffff,
- /* key: 0x964b */ 0x6f7b,
- /* key: 0x964c */ 0x6f79,
- /* key: 0x964d */ 0x395f,
- /* key: 0x964e */ 0xffff,
- /* key: 0x964f */ 0x6f7a,
- /* key: 0x9650 */ 0x3842,
- /* key: 0x9651 */ 0xffff,
- /* key: 0x9652 */ 0xe654,
- /* key: 0x9653 */ 0xffff,
- /* key: 0x9654 */ 0xe655,
- /* key: 0x9655 */ 0xffff,
- /* key: 0x9656 */ 0xe656,
- /* key: 0x9657 */ 0xe657,
- /* key: 0x9658 */ 0xe658,
- /* key: 0x9659 */ 0xffff,
- /* key: 0x965a */ 0xffff,
- /* key: 0x965b */ 0x4a45,
- /* key: 0x965c */ 0x6f7d,
- /* key: 0x965d */ 0x7021,
- /* key: 0x965e */ 0x6f7e,
- /* key: 0x965f */ 0x7022,
- /* key: 0x9660 */ 0xffff,
- /* key: 0x9661 */ 0xe659,
- /* key: 0x9662 */ 0x3121,
- /* key: 0x9663 */ 0x3f58,
- /* key: 0x9664 */ 0x3d7c,
- /* key: 0x9665 */ 0x3459,
- /* key: 0x9666 */ 0x7023,
- /* key: 0x9667 */ 0xffff,
- /* key: 0x9668 */ 0xffff,
- /* key: 0x9669 */ 0xffff,
- /* key: 0x966a */ 0x4766,
- /* key: 0x966b */ 0xffff,
- /* key: 0x966c */ 0x7025,
- /* key: 0x966d */ 0xffff,
- /* key: 0x966e */ 0xe65a,
- /* key: 0x966f */ 0xffff,
- /* key: 0x9670 */ 0x3122,
- /* key: 0x9671 */ 0xffff,
- /* key: 0x9672 */ 0x7024,
- /* key: 0x9673 */ 0x4444,
- /* key: 0x9674 */ 0xe65b,
- /* key: 0x9675 */ 0x4e4d,
- /* key: 0x9676 */ 0x462b,
- /* key: 0x9677 */ 0x6f7c,
- /* key: 0x9678 */ 0x4e26,
- /* key: 0x9679 */ 0xffff,
- /* key: 0x967a */ 0x3831,
- /* key: 0x967b */ 0xe65c,
- /* key: 0x967c */ 0xe65d,
- /* key: 0x967d */ 0x4d5b,
- /* key: 0x967e */ 0xe65e,
- /* key: 0x967f */ 0xe65f,
- /* key: 0x9680 */ 0xffff,
- /* key: 0x9681 */ 0xe660,
- /* key: 0x9682 */ 0xe661,
- /* key: 0x9683 */ 0xe662,
- /* key: 0x9684 */ 0xe663,
- /* key: 0x9685 */ 0x3679,
- /* key: 0x9686 */ 0x4e34,
- /* key: 0x9687 */ 0xffff,
- /* key: 0x9688 */ 0x3728,
- /* key: 0x9689 */ 0xe664,
- /* key: 0x968a */ 0x4262,
- /* key: 0x968b */ 0x6721,
- /* key: 0x968c */ 0xffff,
- /* key: 0x968d */ 0x7026,
- /* key: 0x968e */ 0x332c,
- /* key: 0x968f */ 0x3f6f,
- /* key: 0x9690 */ 0xffff,
- /* key: 0x9691 */ 0xe665,
- /* key: 0x9692 */ 0xffff,
- /* key: 0x9693 */ 0xffff,
- /* key: 0x9694 */ 0x3356,
- /* key: 0x9695 */ 0x7028,
- /* key: 0x9696 */ 0xe666,
- /* key: 0x9697 */ 0x7029,
- /* key: 0x9698 */ 0x7027,
- /* key: 0x9699 */ 0x3764,
- /* key: 0x969a */ 0xe667,
- /* key: 0x969b */ 0x3a5d,
- /* key: 0x969c */ 0x3e63,
- /* key: 0x969d */ 0xe668,
- /* key: 0x969e */ 0xffff,
- /* key: 0x969f */ 0xe669,
- /* key: 0x96a0 */ 0x3123,
- /* key: 0x96a1 */ 0xffff,
- /* key: 0x96a2 */ 0xffff,
- /* key: 0x96a3 */ 0x4e59,
- /* key: 0x96a4 */ 0xe66a,
- /* key: 0x96a5 */ 0xe66b,
- /* key: 0x96a6 */ 0xe66c,
- /* key: 0x96a7 */ 0x702b,
- /* key: 0x96a8 */ 0x6e2e,
- /* key: 0x96a9 */ 0xe66d,
- /* key: 0x96aa */ 0x702a,
- /* key: 0x96ab */ 0xffff,
- /* key: 0x96ac */ 0xffff,
- /* key: 0x96ad */ 0xffff,
- /* key: 0x96ae */ 0xe66e,
- /* key: 0x96af */ 0xe66f,
- /* key: 0x96b0 */ 0x702e,
- /* key: 0x96b1 */ 0x702c,
- /* key: 0x96b2 */ 0x702d,
- /* key: 0x96b3 */ 0xe670,
- /* key: 0x96b4 */ 0x702f,
- /* key: 0x96b5 */ 0xffff,
- /* key: 0x96b6 */ 0x7030,
- /* key: 0x96b7 */ 0x4e6c,
- /* key: 0x96b8 */ 0x7031,
- /* key: 0x96b9 */ 0x7032,
- /* key: 0x96ba */ 0xe671,
- /* key: 0x96bb */ 0x4049,
- /* key: 0x96bc */ 0x483b,
- /* key: 0x96bd */ 0xffff,
- /* key: 0x96be */ 0xffff,
- /* key: 0x96bf */ 0xffff,
- /* key: 0x96c0 */ 0x3f7d,
- /* key: 0x96c1 */ 0x3467,
- /* key: 0x96c2 */ 0xffff,
- /* key: 0x96c3 */ 0xffff,
- /* key: 0x96c4 */ 0x4d3a,
- /* key: 0x96c5 */ 0x326d,
- /* key: 0x96c6 */ 0x3d38,
- /* key: 0x96c7 */ 0x385b,
- /* key: 0x96c8 */ 0xffff,
- /* key: 0x96c9 */ 0x7035,
- /* key: 0x96ca */ 0xe672,
- /* key: 0x96cb */ 0x7034,
- /* key: 0x96cc */ 0x3b73,
- /* key: 0x96cd */ 0x7036,
- /* key: 0x96ce */ 0x7033,
- /* key: 0x96cf */ 0xffff,
- /* key: 0x96d0 */ 0xffff,
- /* key: 0x96d1 */ 0x3b28,
- /* key: 0x96d2 */ 0xe673,
- /* key: 0x96d3 */ 0xffff,
- /* key: 0x96d4 */ 0xffff,
- /* key: 0x96d5 */ 0x703a,
- /* key: 0x96d6 */ 0x6a2d,
- /* key: 0x96d7 */ 0xffff,
- /* key: 0x96d8 */ 0xe675,
- /* key: 0x96d9 */ 0x5256,
- /* key: 0x96da */ 0xe676,
- /* key: 0x96db */ 0x3f77,
- /* key: 0x96dc */ 0x7038,
- /* key: 0x96dd */ 0xe677,
- /* key: 0x96de */ 0xe678,
- /* key: 0x96df */ 0xe679,
- /* key: 0x96e0 */ 0xffff,
- /* key: 0x96e1 */ 0xffff,
- /* key: 0x96e2 */ 0x4e25,
- /* key: 0x96e3 */ 0x4671,
- /* key: 0x96e4 */ 0xffff,
- /* key: 0x96e5 */ 0xffff,
- /* key: 0x96e6 */ 0xffff,
- /* key: 0x96e7 */ 0xffff,
- /* key: 0x96e8 */ 0x312b,
- /* key: 0x96e9 */ 0xe67a,
- /* key: 0x96ea */ 0x4063,
- /* key: 0x96eb */ 0x3c36,
- /* key: 0x96ec */ 0xffff,
- /* key: 0x96ed */ 0xffff,
- /* key: 0x96ee */ 0xffff,
- /* key: 0x96ef */ 0xe67b,
- /* key: 0x96f0 */ 0x4a37,
- /* key: 0x96f1 */ 0xe67c,
- /* key: 0x96f2 */ 0x3140,
- /* key: 0x96f3 */ 0xffff,
- /* key: 0x96f4 */ 0xffff,
- /* key: 0x96f5 */ 0xffff,
- /* key: 0x96f6 */ 0x4e6d,
- /* key: 0x96f7 */ 0x4d6b,
- /* key: 0x96f8 */ 0xffff,
- /* key: 0x96f9 */ 0x703b,
- /* key: 0x96fa */ 0xe67d,
- /* key: 0x96fb */ 0x4545,
- /* key: 0x96fc */ 0xffff,
- /* key: 0x96fd */ 0xffff,
- /* key: 0x96fe */ 0xffff,
- /* key: 0x96ff */ 0xffff,
- /* branch: 0x970X */ 20864,
- /* branch: 0x971X */ 20880,
- /* branch: 0x972X */ 20896,
- /* branch: 0x973X */ 20912,
- /* branch: 0x974X */ 20928,
- /* branch: 0x975X */ 20944,
- /* branch: 0x976X */ 20960,
- /* branch: 0x977X */ 20976,
- /* branch: 0x978X */ 20992,
- /* branch: 0x979X */ 21008,
- /* branch: 0x97aX */ 21024,
- /* branch: 0x97bX */ 21040,
- /* branch: 0x97cX */ 21056,
- /* branch: 0x97dX */ 21072,
- /* branch: 0x97eX */ 21088,
- /* branch: 0x97fX */ 21104,
- /* key: 0x9700 */ 0x3c7b,
- /* key: 0x9701 */ 0xffff,
- /* key: 0x9702 */ 0xe67e,
- /* key: 0x9703 */ 0xe721,
- /* key: 0x9704 */ 0x703c,
- /* key: 0x9705 */ 0xe722,
- /* key: 0x9706 */ 0x703d,
- /* key: 0x9707 */ 0x3f4c,
- /* key: 0x9708 */ 0x703e,
- /* key: 0x9709 */ 0xe723,
- /* key: 0x970a */ 0x4e6e,
- /* key: 0x970b */ 0xffff,
- /* key: 0x970c */ 0xffff,
- /* key: 0x970d */ 0x7039,
- /* key: 0x970e */ 0x7040,
- /* key: 0x970f */ 0x7042,
- /* key: 0x9710 */ 0xffff,
- /* key: 0x9711 */ 0x7041,
- /* key: 0x9712 */ 0xffff,
- /* key: 0x9713 */ 0x703f,
- /* key: 0x9714 */ 0xffff,
- /* key: 0x9715 */ 0xffff,
- /* key: 0x9716 */ 0x7043,
- /* key: 0x9717 */ 0xffff,
- /* key: 0x9718 */ 0xffff,
- /* key: 0x9719 */ 0x7044,
- /* key: 0x971a */ 0xe724,
- /* key: 0x971b */ 0xe725,
- /* key: 0x971c */ 0x417a,
- /* key: 0x971d */ 0xe726,
- /* key: 0x971e */ 0x3262,
- /* key: 0x971f */ 0xffff,
- /* key: 0x9720 */ 0xffff,
- /* key: 0x9721 */ 0xe727,
- /* key: 0x9722 */ 0xe728,
- /* key: 0x9723 */ 0xe729,
- /* key: 0x9724 */ 0x7045,
- /* key: 0x9725 */ 0xffff,
- /* key: 0x9726 */ 0xffff,
- /* key: 0x9727 */ 0x4c38,
- /* key: 0x9728 */ 0xe72a,
- /* key: 0x9729 */ 0xffff,
- /* key: 0x972a */ 0x7046,
- /* key: 0x972b */ 0xffff,
- /* key: 0x972c */ 0xffff,
- /* key: 0x972d */ 0xffff,
- /* key: 0x972e */ 0xffff,
- /* key: 0x972f */ 0xffff,
- /* key: 0x9730 */ 0x7047,
- /* key: 0x9731 */ 0xe72b,
- /* key: 0x9732 */ 0x4f2a,
- /* key: 0x9733 */ 0xe72c,
- /* key: 0x9734 */ 0xffff,
- /* key: 0x9735 */ 0xffff,
- /* key: 0x9736 */ 0xffff,
- /* key: 0x9737 */ 0xffff,
- /* key: 0x9738 */ 0x5b31,
- /* key: 0x9739 */ 0x7048,
- /* key: 0x973a */ 0xffff,
- /* key: 0x973b */ 0xffff,
- /* key: 0x973c */ 0xffff,
- /* key: 0x973d */ 0x7049,
- /* key: 0x973e */ 0x704a,
- /* key: 0x973f */ 0xffff,
- /* key: 0x9740 */ 0xffff,
- /* key: 0x9741 */ 0xe72d,
- /* key: 0x9742 */ 0x704e,
- /* key: 0x9743 */ 0xe72e,
- /* key: 0x9744 */ 0x704b,
- /* key: 0x9745 */ 0xffff,
- /* key: 0x9746 */ 0x704c,
- /* key: 0x9747 */ 0xffff,
- /* key: 0x9748 */ 0x704d,
- /* key: 0x9749 */ 0x704f,
- /* key: 0x974a */ 0xe72f,
- /* key: 0x974b */ 0xffff,
- /* key: 0x974c */ 0xffff,
- /* key: 0x974d */ 0xffff,
- /* key: 0x974e */ 0xe730,
- /* key: 0x974f */ 0xe731,
- /* key: 0x9750 */ 0xffff,
- /* key: 0x9751 */ 0xffff,
- /* key: 0x9752 */ 0x4044,
- /* key: 0x9753 */ 0xffff,
- /* key: 0x9754 */ 0xffff,
- /* key: 0x9755 */ 0xe732,
- /* key: 0x9756 */ 0x4c77,
- /* key: 0x9757 */ 0xe733,
- /* key: 0x9758 */ 0xe734,
- /* key: 0x9759 */ 0x4045,
- /* key: 0x975a */ 0xe735,
- /* key: 0x975b */ 0xe736,
- /* key: 0x975c */ 0x7050,
- /* key: 0x975d */ 0xffff,
- /* key: 0x975e */ 0x4873,
- /* key: 0x975f */ 0xffff,
- /* key: 0x9760 */ 0x7051,
- /* key: 0x9761 */ 0x7353,
- /* key: 0x9762 */ 0x4c4c,
- /* key: 0x9763 */ 0xe737,
- /* key: 0x9764 */ 0x7052,
- /* key: 0x9765 */ 0xffff,
- /* key: 0x9766 */ 0x7053,
- /* key: 0x9767 */ 0xe738,
- /* key: 0x9768 */ 0x7054,
- /* key: 0x9769 */ 0x3357,
- /* key: 0x976a */ 0xe739,
- /* key: 0x976b */ 0x7056,
- /* key: 0x976c */ 0xffff,
- /* key: 0x976d */ 0x3f59,
- /* key: 0x976e */ 0xe73a,
- /* key: 0x976f */ 0xffff,
- /* key: 0x9770 */ 0xffff,
- /* key: 0x9771 */ 0x7057,
- /* key: 0x9772 */ 0xffff,
- /* key: 0x9773 */ 0xe73b,
- /* key: 0x9774 */ 0x3724,
- /* key: 0x9775 */ 0xffff,
- /* key: 0x9776 */ 0xe73c,
- /* key: 0x9777 */ 0xe73d,
- /* key: 0x9778 */ 0xe73e,
- /* key: 0x9779 */ 0x7058,
- /* key: 0x977a */ 0x705c,
- /* key: 0x977b */ 0xe73f,
- /* key: 0x977c */ 0x705a,
- /* key: 0x977d */ 0xe740,
- /* key: 0x977e */ 0xffff,
- /* key: 0x977f */ 0xe741,
- /* key: 0x9780 */ 0xe742,
- /* key: 0x9781 */ 0x705b,
- /* key: 0x9782 */ 0xffff,
- /* key: 0x9783 */ 0xffff,
- /* key: 0x9784 */ 0x3373,
- /* key: 0x9785 */ 0x7059,
- /* key: 0x9786 */ 0x705d,
- /* key: 0x9787 */ 0xffff,
- /* key: 0x9788 */ 0xffff,
- /* key: 0x9789 */ 0xe743,
- /* key: 0x978a */ 0xffff,
- /* key: 0x978b */ 0x705e,
- /* key: 0x978c */ 0xffff,
- /* key: 0x978d */ 0x3048,
- /* key: 0x978e */ 0xffff,
- /* key: 0x978f */ 0x705f,
- /* key: 0x9790 */ 0x7060,
- /* key: 0x9791 */ 0xffff,
- /* key: 0x9792 */ 0xffff,
- /* key: 0x9793 */ 0xffff,
- /* key: 0x9794 */ 0xffff,
- /* key: 0x9795 */ 0xe744,
- /* key: 0x9796 */ 0xe745,
- /* key: 0x9797 */ 0xe746,
- /* key: 0x9798 */ 0x3e64,
- /* key: 0x9799 */ 0xe747,
- /* key: 0x979a */ 0xe748,
- /* key: 0x979b */ 0xffff,
- /* key: 0x979c */ 0x7061,
- /* key: 0x979d */ 0xffff,
- /* key: 0x979e */ 0xe749,
- /* key: 0x979f */ 0xe74a,
- /* key: 0x97a0 */ 0x3547,
- /* key: 0x97a1 */ 0xffff,
- /* key: 0x97a2 */ 0xe74b,
- /* key: 0x97a3 */ 0x7064,
- /* key: 0x97a4 */ 0xffff,
- /* key: 0x97a5 */ 0xffff,
- /* key: 0x97a6 */ 0x7063,
- /* key: 0x97a7 */ 0xffff,
- /* key: 0x97a8 */ 0x7062,
- /* key: 0x97a9 */ 0xffff,
- /* key: 0x97aa */ 0xffff,
- /* key: 0x97ab */ 0x6b71,
- /* key: 0x97ac */ 0xe74c,
- /* key: 0x97ad */ 0x4a5c,
- /* key: 0x97ae */ 0xe74d,
- /* key: 0x97af */ 0xffff,
- /* key: 0x97b0 */ 0xffff,
- /* key: 0x97b1 */ 0xe74e,
- /* key: 0x97b2 */ 0xe74f,
- /* key: 0x97b3 */ 0x7065,
- /* key: 0x97b4 */ 0x7066,
- /* key: 0x97b5 */ 0xe750,
- /* key: 0x97b6 */ 0xe751,
- /* key: 0x97b7 */ 0xffff,
- /* key: 0x97b8 */ 0xe752,
- /* key: 0x97b9 */ 0xe753,
- /* key: 0x97ba */ 0xe754,
- /* key: 0x97bb */ 0xffff,
- /* key: 0x97bc */ 0xe755,
- /* key: 0x97bd */ 0xffff,
- /* key: 0x97be */ 0xe756,
- /* key: 0x97bf */ 0xe757,
- /* key: 0x97c0 */ 0xffff,
- /* key: 0x97c1 */ 0xe758,
- /* key: 0x97c2 */ 0xffff,
- /* key: 0x97c3 */ 0x7067,
- /* key: 0x97c4 */ 0xe759,
- /* key: 0x97c5 */ 0xe75a,
- /* key: 0x97c6 */ 0x7068,
- /* key: 0x97c7 */ 0xe75b,
- /* key: 0x97c8 */ 0x7069,
- /* key: 0x97c9 */ 0xe75c,
- /* key: 0x97ca */ 0xe75d,
- /* key: 0x97cb */ 0x706a,
- /* key: 0x97cc */ 0xe75e,
- /* key: 0x97cd */ 0xe75f,
- /* key: 0x97ce */ 0xe760,
- /* key: 0x97cf */ 0xffff,
- /* key: 0x97d0 */ 0xe761,
- /* key: 0x97d1 */ 0xe762,
- /* key: 0x97d2 */ 0xffff,
- /* key: 0x97d3 */ 0x345a,
- /* key: 0x97d4 */ 0xe763,
- /* key: 0x97d5 */ 0xffff,
- /* key: 0x97d6 */ 0xffff,
- /* key: 0x97d7 */ 0xe764,
- /* key: 0x97d8 */ 0xe765,
- /* key: 0x97d9 */ 0xe766,
- /* key: 0x97da */ 0xffff,
- /* key: 0x97db */ 0xe76a,
- /* key: 0x97dc */ 0x706b,
- /* key: 0x97dd */ 0xe767,
- /* key: 0x97de */ 0xe768,
- /* key: 0x97df */ 0xffff,
- /* key: 0x97e0 */ 0xe769,
- /* key: 0x97e1 */ 0xe76b,
- /* key: 0x97e2 */ 0xffff,
- /* key: 0x97e3 */ 0xffff,
- /* key: 0x97e4 */ 0xe76c,
- /* key: 0x97e5 */ 0xffff,
- /* key: 0x97e6 */ 0xffff,
- /* key: 0x97e7 */ 0xffff,
- /* key: 0x97e8 */ 0xffff,
- /* key: 0x97e9 */ 0xffff,
- /* key: 0x97ea */ 0xffff,
- /* key: 0x97eb */ 0xffff,
- /* key: 0x97ec */ 0xffff,
- /* key: 0x97ed */ 0x706c,
- /* key: 0x97ee */ 0x4723,
- /* key: 0x97ef */ 0xe76d,
- /* key: 0x97f0 */ 0xffff,
- /* key: 0x97f1 */ 0xe76e,
- /* key: 0x97f2 */ 0x706e,
- /* key: 0x97f3 */ 0x323b,
- /* key: 0x97f4 */ 0xe76f,
- /* key: 0x97f5 */ 0x7071,
- /* key: 0x97f6 */ 0x7070,
- /* key: 0x97f7 */ 0xe770,
- /* key: 0x97f8 */ 0xe771,
- /* key: 0x97f9 */ 0xffff,
- /* key: 0x97fa */ 0xe772,
- /* key: 0x97fb */ 0x3124,
- /* key: 0x97fc */ 0xffff,
- /* key: 0x97fd */ 0xffff,
- /* key: 0x97fe */ 0xffff,
- /* key: 0x97ff */ 0x3641,
- /* branch: 0x980X */ 21136,
- /* branch: 0x981X */ 21152,
- /* branch: 0x982X */ 21168,
- /* branch: 0x983X */ 21184,
- /* branch: 0x984X */ 21200,
- /* branch: 0x985X */ 21216,
- /* branch: 0x986X */ 21232,
- /* branch: 0x987X */ 21248,
- /* branch: 0x988X */ 0,
- /* branch: 0x989X */ 0,
- /* branch: 0x98aX */ 21264,
- /* branch: 0x98bX */ 21280,
- /* branch: 0x98cX */ 21296,
- /* branch: 0x98dX */ 21312,
- /* branch: 0x98eX */ 21328,
- /* branch: 0x98fX */ 21344,
- /* key: 0x9800 */ 0xffff,
- /* key: 0x9801 */ 0x4a47,
- /* key: 0x9802 */ 0x443a,
- /* key: 0x9803 */ 0x3a22,
- /* key: 0x9804 */ 0xffff,
- /* key: 0x9805 */ 0x3960,
- /* key: 0x9806 */ 0x3d67,
- /* key: 0x9807 */ 0xe773,
- /* key: 0x9808 */ 0x3f5c,
- /* key: 0x9809 */ 0xffff,
- /* key: 0x980a */ 0xe774,
- /* key: 0x980b */ 0xffff,
- /* key: 0x980c */ 0x7073,
- /* key: 0x980d */ 0xe776,
- /* key: 0x980e */ 0xe777,
- /* key: 0x980f */ 0x7072,
- /* key: 0x9810 */ 0x4d42,
- /* key: 0x9811 */ 0x3468,
- /* key: 0x9812 */ 0x4852,
- /* key: 0x9813 */ 0x465c,
- /* key: 0x9814 */ 0xe778,
- /* key: 0x9815 */ 0xffff,
- /* key: 0x9816 */ 0xe779,
- /* key: 0x9817 */ 0x3f7c,
- /* key: 0x9818 */ 0x4e4e,
- /* key: 0x9819 */ 0xe775,
- /* key: 0x981a */ 0x375b,
- /* key: 0x981b */ 0xffff,
- /* key: 0x981c */ 0xe77a,
- /* key: 0x981d */ 0xffff,
- /* key: 0x981e */ 0xe77b,
- /* key: 0x981f */ 0xffff,
- /* key: 0x9820 */ 0xe77c,
- /* key: 0x9821 */ 0x7076,
- /* key: 0x9822 */ 0xffff,
- /* key: 0x9823 */ 0xe77d,
- /* key: 0x9824 */ 0x7075,
- /* key: 0x9825 */ 0xe828,
- /* key: 0x9826 */ 0xe77e,
- /* key: 0x9827 */ 0xffff,
- /* key: 0x9828 */ 0xffff,
- /* key: 0x9829 */ 0xffff,
- /* key: 0x982a */ 0xffff,
- /* key: 0x982b */ 0xe821,
- /* key: 0x982c */ 0x4b4b,
- /* key: 0x982d */ 0x462c,
- /* key: 0x982e */ 0xe822,
- /* key: 0x982f */ 0xe823,
- /* key: 0x9830 */ 0xe824,
- /* key: 0x9831 */ 0xffff,
- /* key: 0x9832 */ 0xe825,
- /* key: 0x9833 */ 0xe826,
- /* key: 0x9834 */ 0x3150,
- /* key: 0x9835 */ 0xe827,
- /* key: 0x9836 */ 0xffff,
- /* key: 0x9837 */ 0x7077,
- /* key: 0x9838 */ 0x7074,
- /* key: 0x9839 */ 0xffff,
- /* key: 0x983a */ 0xffff,
- /* key: 0x983b */ 0x4951,
- /* key: 0x983c */ 0x4d6a,
- /* key: 0x983d */ 0x7078,
- /* key: 0x983e */ 0xe829,
- /* key: 0x983f */ 0xffff,
- /* key: 0x9840 */ 0xffff,
- /* key: 0x9841 */ 0xffff,
- /* key: 0x9842 */ 0xffff,
- /* key: 0x9843 */ 0xffff,
- /* key: 0x9844 */ 0xe82a,
- /* key: 0x9845 */ 0xffff,
- /* key: 0x9846 */ 0x7079,
- /* key: 0x9847 */ 0xe82b,
- /* key: 0x9848 */ 0xffff,
- /* key: 0x9849 */ 0xffff,
- /* key: 0x984a */ 0xe82c,
- /* key: 0x984b */ 0x707b,
- /* key: 0x984c */ 0x426a,
- /* key: 0x984d */ 0x335b,
- /* key: 0x984e */ 0x335c,
- /* key: 0x984f */ 0x707a,
- /* key: 0x9850 */ 0xffff,
- /* key: 0x9851 */ 0xe82d,
- /* key: 0x9852 */ 0xe82e,
- /* key: 0x9853 */ 0xe82f,
- /* key: 0x9854 */ 0x3469,
- /* key: 0x9855 */ 0x3832,
- /* key: 0x9856 */ 0xe830,
- /* key: 0x9857 */ 0xe831,
- /* key: 0x9858 */ 0x346a,
- /* key: 0x9859 */ 0xe832,
- /* key: 0x985a */ 0xe833,
- /* key: 0x985b */ 0x453f,
- /* key: 0x985c */ 0xffff,
- /* key: 0x985d */ 0xffff,
- /* key: 0x985e */ 0x4e60,
- /* key: 0x985f */ 0xffff,
- /* key: 0x9860 */ 0xffff,
- /* key: 0x9861 */ 0xffff,
- /* key: 0x9862 */ 0xe834,
- /* key: 0x9863 */ 0xe835,
- /* key: 0x9864 */ 0xffff,
- /* key: 0x9865 */ 0xe836,
- /* key: 0x9866 */ 0xe837,
- /* key: 0x9867 */ 0x385c,
- /* key: 0x9868 */ 0xffff,
- /* key: 0x9869 */ 0xffff,
- /* key: 0x986a */ 0xe838,
- /* key: 0x986b */ 0x707c,
- /* key: 0x986c */ 0xe839,
- /* key: 0x986d */ 0xffff,
- /* key: 0x986e */ 0xffff,
- /* key: 0x986f */ 0x707d,
- /* key: 0x9870 */ 0x707e,
- /* key: 0x9871 */ 0x7121,
- /* key: 0x9872 */ 0xffff,
- /* key: 0x9873 */ 0x7123,
- /* key: 0x9874 */ 0x7122,
- /* key: 0x9875 */ 0xffff,
- /* key: 0x9876 */ 0xffff,
- /* key: 0x9877 */ 0xffff,
- /* key: 0x9878 */ 0xffff,
- /* key: 0x9879 */ 0xffff,
- /* key: 0x987a */ 0xffff,
- /* key: 0x987b */ 0xffff,
- /* key: 0x987c */ 0xffff,
- /* key: 0x987d */ 0xffff,
- /* key: 0x987e */ 0xffff,
- /* key: 0x987f */ 0xffff,
- /* key: 0x98a0 */ 0xffff,
- /* key: 0x98a1 */ 0xffff,
- /* key: 0x98a2 */ 0xffff,
- /* key: 0x98a3 */ 0xffff,
- /* key: 0x98a4 */ 0xffff,
- /* key: 0x98a5 */ 0xffff,
- /* key: 0x98a6 */ 0xffff,
- /* key: 0x98a7 */ 0xffff,
- /* key: 0x98a8 */ 0x4977,
- /* key: 0x98a9 */ 0xffff,
- /* key: 0x98aa */ 0x7124,
- /* key: 0x98ab */ 0xe83a,
- /* key: 0x98ac */ 0xffff,
- /* key: 0x98ad */ 0xe83b,
- /* key: 0x98ae */ 0xe83c,
- /* key: 0x98af */ 0x7125,
- /* key: 0x98b0 */ 0xe83d,
- /* key: 0x98b1 */ 0x7126,
- /* key: 0x98b2 */ 0xffff,
- /* key: 0x98b3 */ 0xffff,
- /* key: 0x98b4 */ 0xe83e,
- /* key: 0x98b5 */ 0xffff,
- /* key: 0x98b6 */ 0x7127,
- /* key: 0x98b7 */ 0xe83f,
- /* key: 0x98b8 */ 0xe840,
- /* key: 0x98b9 */ 0xffff,
- /* key: 0x98ba */ 0xe841,
- /* key: 0x98bb */ 0xe842,
- /* key: 0x98bc */ 0xffff,
- /* key: 0x98bd */ 0xffff,
- /* key: 0x98be */ 0xffff,
- /* key: 0x98bf */ 0xe843,
- /* key: 0x98c0 */ 0xffff,
- /* key: 0x98c1 */ 0xffff,
- /* key: 0x98c2 */ 0xe844,
- /* key: 0x98c3 */ 0x7129,
- /* key: 0x98c4 */ 0x7128,
- /* key: 0x98c5 */ 0xe845,
- /* key: 0x98c6 */ 0x712a,
- /* key: 0x98c7 */ 0xffff,
- /* key: 0x98c8 */ 0xe846,
- /* key: 0x98c9 */ 0xffff,
- /* key: 0x98ca */ 0xffff,
- /* key: 0x98cb */ 0xffff,
- /* key: 0x98cc */ 0xe847,
- /* key: 0x98cd */ 0xffff,
- /* key: 0x98ce */ 0xffff,
- /* key: 0x98cf */ 0xffff,
- /* key: 0x98d0 */ 0xffff,
- /* key: 0x98d1 */ 0xffff,
- /* key: 0x98d2 */ 0xffff,
- /* key: 0x98d3 */ 0xffff,
- /* key: 0x98d4 */ 0xffff,
- /* key: 0x98d5 */ 0xffff,
- /* key: 0x98d6 */ 0xffff,
- /* key: 0x98d7 */ 0xffff,
- /* key: 0x98d8 */ 0xffff,
- /* key: 0x98d9 */ 0xffff,
- /* key: 0x98da */ 0xffff,
- /* key: 0x98db */ 0x4874,
- /* key: 0x98dc */ 0x664c,
- /* key: 0x98dd */ 0xffff,
- /* key: 0x98de */ 0xffff,
- /* key: 0x98df */ 0x3f29,
- /* key: 0x98e0 */ 0xffff,
- /* key: 0x98e1 */ 0xe848,
- /* key: 0x98e2 */ 0x3532,
- /* key: 0x98e3 */ 0xe849,
- /* key: 0x98e4 */ 0xffff,
- /* key: 0x98e5 */ 0xe84a,
- /* key: 0x98e6 */ 0xe84b,
- /* key: 0x98e7 */ 0xe84c,
- /* key: 0x98e8 */ 0xffff,
- /* key: 0x98e9 */ 0x712b,
- /* key: 0x98ea */ 0xe84d,
- /* key: 0x98eb */ 0x712c,
- /* key: 0x98ec */ 0xffff,
- /* key: 0x98ed */ 0x522c,
- /* key: 0x98ee */ 0x5d3b,
- /* key: 0x98ef */ 0x4853,
- /* key: 0x98f0 */ 0xffff,
- /* key: 0x98f1 */ 0xffff,
- /* key: 0x98f2 */ 0x307b,
- /* key: 0x98f3 */ 0xe84e,
- /* key: 0x98f4 */ 0x303b,
- /* key: 0x98f5 */ 0xffff,
- /* key: 0x98f6 */ 0xe84f,
- /* key: 0x98f7 */ 0xffff,
- /* key: 0x98f8 */ 0xffff,
- /* key: 0x98f9 */ 0xffff,
- /* key: 0x98fa */ 0xffff,
- /* key: 0x98fb */ 0xffff,
- /* key: 0x98fc */ 0x3b74,
- /* key: 0x98fd */ 0x4b30,
- /* key: 0x98fe */ 0x3e7e,
- /* key: 0x98ff */ 0xffff,
- /* branch: 0x990X */ 21376,
- /* branch: 0x991X */ 21392,
- /* branch: 0x992X */ 21408,
- /* branch: 0x993X */ 21424,
- /* branch: 0x994X */ 21440,
- /* branch: 0x995X */ 21456,
- /* branch: 0x996X */ 21472,
- /* branch: 0x997X */ 0,
- /* branch: 0x998X */ 0,
- /* branch: 0x999X */ 21488,
- /* branch: 0x99aX */ 21504,
- /* branch: 0x99bX */ 21520,
- /* branch: 0x99cX */ 21536,
- /* branch: 0x99dX */ 21552,
- /* branch: 0x99eX */ 21568,
- /* branch: 0x99fX */ 21584,
- /* key: 0x9900 */ 0xffff,
- /* key: 0x9901 */ 0xffff,
- /* key: 0x9902 */ 0xe850,
- /* key: 0x9903 */ 0x712d,
- /* key: 0x9904 */ 0xffff,
- /* key: 0x9905 */ 0x4c5f,
- /* key: 0x9906 */ 0xffff,
- /* key: 0x9907 */ 0xe851,
- /* key: 0x9908 */ 0xe852,
- /* key: 0x9909 */ 0x712e,
- /* key: 0x990a */ 0x4d5c,
- /* key: 0x990b */ 0xffff,
- /* key: 0x990c */ 0x3142,
- /* key: 0x990d */ 0xffff,
- /* key: 0x990e */ 0xffff,
- /* key: 0x990f */ 0xffff,
- /* key: 0x9910 */ 0x3b41,
- /* key: 0x9911 */ 0xe853,
- /* key: 0x9912 */ 0x712f,
- /* key: 0x9913 */ 0x326e,
- /* key: 0x9914 */ 0x7130,
- /* key: 0x9915 */ 0xe854,
- /* key: 0x9916 */ 0xe855,
- /* key: 0x9917 */ 0xe856,
- /* key: 0x9918 */ 0x7131,
- /* key: 0x9919 */ 0xffff,
- /* key: 0x991a */ 0xe857,
- /* key: 0x991b */ 0xe858,
- /* key: 0x991c */ 0xe859,
- /* key: 0x991d */ 0x7133,
- /* key: 0x991e */ 0x7134,
- /* key: 0x991f */ 0xe85a,
- /* key: 0x9920 */ 0x7136,
- /* key: 0x9921 */ 0x7132,
- /* key: 0x9922 */ 0xe85b,
- /* key: 0x9923 */ 0xffff,
- /* key: 0x9924 */ 0x7135,
- /* key: 0x9925 */ 0xffff,
- /* key: 0x9926 */ 0xe85c,
- /* key: 0x9927 */ 0xe85d,
- /* key: 0x9928 */ 0x345b,
- /* key: 0x9929 */ 0xffff,
- /* key: 0x992a */ 0xffff,
- /* key: 0x992b */ 0xe85e,
- /* key: 0x992c */ 0x7137,
- /* key: 0x992d */ 0xffff,
- /* key: 0x992e */ 0x7138,
- /* key: 0x992f */ 0xffff,
- /* key: 0x9930 */ 0xffff,
- /* key: 0x9931 */ 0xe85f,
- /* key: 0x9932 */ 0xe860,
- /* key: 0x9933 */ 0xe861,
- /* key: 0x9934 */ 0xe862,
- /* key: 0x9935 */ 0xe863,
- /* key: 0x9936 */ 0xffff,
- /* key: 0x9937 */ 0xffff,
- /* key: 0x9938 */ 0xffff,
- /* key: 0x9939 */ 0xe864,
- /* key: 0x993a */ 0xe865,
- /* key: 0x993b */ 0xe866,
- /* key: 0x993c */ 0xe867,
- /* key: 0x993d */ 0x7139,
- /* key: 0x993e */ 0x713a,
- /* key: 0x993f */ 0xffff,
- /* key: 0x9940 */ 0xe868,
- /* key: 0x9941 */ 0xe869,
- /* key: 0x9942 */ 0x713b,
- /* key: 0x9943 */ 0xffff,
- /* key: 0x9944 */ 0xffff,
- /* key: 0x9945 */ 0x713d,
- /* key: 0x9946 */ 0xe86a,
- /* key: 0x9947 */ 0xe86b,
- /* key: 0x9948 */ 0xe86c,
- /* key: 0x9949 */ 0x713c,
- /* key: 0x994a */ 0xffff,
- /* key: 0x994b */ 0x713f,
- /* key: 0x994c */ 0x7142,
- /* key: 0x994d */ 0xe86d,
- /* key: 0x994e */ 0xe86e,
- /* key: 0x994f */ 0xffff,
- /* key: 0x9950 */ 0x713e,
- /* key: 0x9951 */ 0x7140,
- /* key: 0x9952 */ 0x7141,
- /* key: 0x9953 */ 0xffff,
- /* key: 0x9954 */ 0xe86f,
- /* key: 0x9955 */ 0x7143,
- /* key: 0x9956 */ 0xffff,
- /* key: 0x9957 */ 0x3642,
- /* key: 0x9958 */ 0xe870,
- /* key: 0x9959 */ 0xe871,
- /* key: 0x995a */ 0xffff,
- /* key: 0x995b */ 0xe872,
- /* key: 0x995c */ 0xe873,
- /* key: 0x995d */ 0xffff,
- /* key: 0x995e */ 0xe874,
- /* key: 0x995f */ 0xe875,
- /* key: 0x9960 */ 0xe876,
- /* key: 0x9961 */ 0xffff,
- /* key: 0x9962 */ 0xffff,
- /* key: 0x9963 */ 0xffff,
- /* key: 0x9964 */ 0xffff,
- /* key: 0x9965 */ 0xffff,
- /* key: 0x9966 */ 0xffff,
- /* key: 0x9967 */ 0xffff,
- /* key: 0x9968 */ 0xffff,
- /* key: 0x9969 */ 0xffff,
- /* key: 0x996a */ 0xffff,
- /* key: 0x996b */ 0xffff,
- /* key: 0x996c */ 0xffff,
- /* key: 0x996d */ 0xffff,
- /* key: 0x996e */ 0xffff,
- /* key: 0x996f */ 0xffff,
- /* key: 0x9990 */ 0xffff,
- /* key: 0x9991 */ 0xffff,
- /* key: 0x9992 */ 0xffff,
- /* key: 0x9993 */ 0xffff,
- /* key: 0x9994 */ 0xffff,
- /* key: 0x9995 */ 0xffff,
- /* key: 0x9996 */ 0x3c73,
- /* key: 0x9997 */ 0x7144,
- /* key: 0x9998 */ 0x7145,
- /* key: 0x9999 */ 0x3961,
- /* key: 0x999a */ 0xffff,
- /* key: 0x999b */ 0xe877,
- /* key: 0x999c */ 0xffff,
- /* key: 0x999d */ 0xe878,
- /* key: 0x999e */ 0xffff,
- /* key: 0x999f */ 0xe879,
- /* key: 0x99a0 */ 0xffff,
- /* key: 0x99a1 */ 0xffff,
- /* key: 0x99a2 */ 0xffff,
- /* key: 0x99a3 */ 0xffff,
- /* key: 0x99a4 */ 0xffff,
- /* key: 0x99a5 */ 0x7146,
- /* key: 0x99a6 */ 0xe87a,
- /* key: 0x99a7 */ 0xffff,
- /* key: 0x99a8 */ 0x333e,
- /* key: 0x99a9 */ 0xffff,
- /* key: 0x99aa */ 0xffff,
- /* key: 0x99ab */ 0xffff,
- /* key: 0x99ac */ 0x474f,
- /* key: 0x99ad */ 0x7147,
- /* key: 0x99ae */ 0x7148,
- /* key: 0x99af */ 0xffff,
- /* key: 0x99b0 */ 0xe87b,
- /* key: 0x99b1 */ 0xe87c,
- /* key: 0x99b2 */ 0xe87d,
- /* key: 0x99b3 */ 0x435a,
- /* key: 0x99b4 */ 0x466b,
- /* key: 0x99b5 */ 0xe87e,
- /* key: 0x99b6 */ 0xffff,
- /* key: 0x99b7 */ 0xffff,
- /* key: 0x99b8 */ 0xffff,
- /* key: 0x99b9 */ 0xe921,
- /* key: 0x99ba */ 0xe922,
- /* key: 0x99bb */ 0xffff,
- /* key: 0x99bc */ 0x7149,
- /* key: 0x99bd */ 0xe923,
- /* key: 0x99be */ 0xffff,
- /* key: 0x99bf */ 0xe924,
- /* key: 0x99c0 */ 0xffff,
- /* key: 0x99c1 */ 0x477d,
- /* key: 0x99c2 */ 0xffff,
- /* key: 0x99c3 */ 0xe925,
- /* key: 0x99c4 */ 0x424c,
- /* key: 0x99c5 */ 0x3158,
- /* key: 0x99c6 */ 0x366e,
- /* key: 0x99c7 */ 0xffff,
- /* key: 0x99c8 */ 0x366f,
- /* key: 0x99c9 */ 0xe926,
- /* key: 0x99ca */ 0xffff,
- /* key: 0x99cb */ 0xffff,
- /* key: 0x99cc */ 0xffff,
- /* key: 0x99cd */ 0xffff,
- /* key: 0x99ce */ 0xffff,
- /* key: 0x99cf */ 0xffff,
- /* key: 0x99d0 */ 0x4373,
- /* key: 0x99d1 */ 0x714e,
- /* key: 0x99d2 */ 0x3670,
- /* key: 0x99d3 */ 0xe927,
- /* key: 0x99d4 */ 0xe928,
- /* key: 0x99d5 */ 0x326f,
- /* key: 0x99d6 */ 0xffff,
- /* key: 0x99d7 */ 0xffff,
- /* key: 0x99d8 */ 0x714d,
- /* key: 0x99d9 */ 0xe929,
- /* key: 0x99da */ 0xe92a,
- /* key: 0x99db */ 0x714b,
- /* key: 0x99dc */ 0xe92b,
- /* key: 0x99dd */ 0x714c,
- /* key: 0x99de */ 0xe92c,
- /* key: 0x99df */ 0x714a,
- /* key: 0x99e0 */ 0xffff,
- /* key: 0x99e1 */ 0xffff,
- /* key: 0x99e2 */ 0x7158,
- /* key: 0x99e3 */ 0xffff,
- /* key: 0x99e4 */ 0xffff,
- /* key: 0x99e5 */ 0xffff,
- /* key: 0x99e6 */ 0xffff,
- /* key: 0x99e7 */ 0xe92d,
- /* key: 0x99e8 */ 0xffff,
- /* key: 0x99e9 */ 0xffff,
- /* key: 0x99ea */ 0xe92e,
- /* key: 0x99eb */ 0xe92f,
- /* key: 0x99ec */ 0xe930,
- /* key: 0x99ed */ 0x714f,
- /* key: 0x99ee */ 0x7150,
- /* key: 0x99ef */ 0xffff,
- /* key: 0x99f0 */ 0xe931,
- /* key: 0x99f1 */ 0x7151,
- /* key: 0x99f2 */ 0x7152,
- /* key: 0x99f3 */ 0xffff,
- /* key: 0x99f4 */ 0xe932,
- /* key: 0x99f5 */ 0xe933,
- /* key: 0x99f6 */ 0xffff,
- /* key: 0x99f7 */ 0xffff,
- /* key: 0x99f8 */ 0x7154,
- /* key: 0x99f9 */ 0xe934,
- /* key: 0x99fa */ 0xffff,
- /* key: 0x99fb */ 0x7153,
- /* key: 0x99fc */ 0xffff,
- /* key: 0x99fd */ 0xe935,
- /* key: 0x99fe */ 0xe936,
- /* key: 0x99ff */ 0x3d59,
- /* branch: 0x9a0X */ 21616,
- /* branch: 0x9a1X */ 21632,
- /* branch: 0x9a2X */ 21648,
- /* branch: 0x9a3X */ 21664,
- /* branch: 0x9a4X */ 21680,
- /* branch: 0x9a5X */ 21696,
- /* branch: 0x9a6X */ 21712,
- /* branch: 0x9a7X */ 0,
- /* branch: 0x9a8X */ 0,
- /* branch: 0x9a9X */ 0,
- /* branch: 0x9aaX */ 21728,
- /* branch: 0x9abX */ 21744,
- /* branch: 0x9acX */ 21760,
- /* branch: 0x9adX */ 21776,
- /* branch: 0x9aeX */ 21792,
- /* branch: 0x9afX */ 21808,
- /* key: 0x9a00 */ 0xffff,
- /* key: 0x9a01 */ 0x7155,
- /* key: 0x9a02 */ 0xe937,
- /* key: 0x9a03 */ 0xe938,
- /* key: 0x9a04 */ 0xe939,
- /* key: 0x9a05 */ 0x7157,
- /* key: 0x9a06 */ 0xffff,
- /* key: 0x9a07 */ 0xffff,
- /* key: 0x9a08 */ 0xffff,
- /* key: 0x9a09 */ 0xffff,
- /* key: 0x9a0a */ 0xffff,
- /* key: 0x9a0b */ 0xe93a,
- /* key: 0x9a0c */ 0xe93b,
- /* key: 0x9a0d */ 0xffff,
- /* key: 0x9a0e */ 0x3533,
- /* key: 0x9a0f */ 0x7156,
- /* key: 0x9a10 */ 0xe93c,
- /* key: 0x9a11 */ 0xe93d,
- /* key: 0x9a12 */ 0x417b,
- /* key: 0x9a13 */ 0x3833,
- /* key: 0x9a14 */ 0xffff,
- /* key: 0x9a15 */ 0xffff,
- /* key: 0x9a16 */ 0xe93e,
- /* key: 0x9a17 */ 0xffff,
- /* key: 0x9a18 */ 0xffff,
- /* key: 0x9a19 */ 0x7159,
- /* key: 0x9a1a */ 0xffff,
- /* key: 0x9a1b */ 0xffff,
- /* key: 0x9a1c */ 0xffff,
- /* key: 0x9a1d */ 0xffff,
- /* key: 0x9a1e */ 0xe93f,
- /* key: 0x9a1f */ 0xffff,
- /* key: 0x9a20 */ 0xe940,
- /* key: 0x9a21 */ 0xffff,
- /* key: 0x9a22 */ 0xe941,
- /* key: 0x9a23 */ 0xe942,
- /* key: 0x9a24 */ 0xe943,
- /* key: 0x9a25 */ 0xffff,
- /* key: 0x9a26 */ 0xffff,
- /* key: 0x9a27 */ 0xe944,
- /* key: 0x9a28 */ 0x424d,
- /* key: 0x9a29 */ 0xffff,
- /* key: 0x9a2a */ 0xffff,
- /* key: 0x9a2b */ 0x715a,
- /* key: 0x9a2c */ 0xffff,
- /* key: 0x9a2d */ 0xe945,
- /* key: 0x9a2e */ 0xe946,
- /* key: 0x9a2f */ 0xffff,
- /* key: 0x9a30 */ 0x462d,
- /* key: 0x9a31 */ 0xffff,
- /* key: 0x9a32 */ 0xffff,
- /* key: 0x9a33 */ 0xe947,
- /* key: 0x9a34 */ 0xffff,
- /* key: 0x9a35 */ 0xe948,
- /* key: 0x9a36 */ 0xe949,
- /* key: 0x9a37 */ 0x715b,
- /* key: 0x9a38 */ 0xe94a,
- /* key: 0x9a39 */ 0xffff,
- /* key: 0x9a3a */ 0xffff,
- /* key: 0x9a3b */ 0xffff,
- /* key: 0x9a3c */ 0xffff,
- /* key: 0x9a3d */ 0xffff,
- /* key: 0x9a3e */ 0x7160,
- /* key: 0x9a3f */ 0xffff,
- /* key: 0x9a40 */ 0x715e,
- /* key: 0x9a41 */ 0xe94c,
- /* key: 0x9a42 */ 0x715d,
- /* key: 0x9a43 */ 0x715f,
- /* key: 0x9a44 */ 0xe94d,
- /* key: 0x9a45 */ 0x715c,
- /* key: 0x9a46 */ 0xffff,
- /* key: 0x9a47 */ 0xe94b,
- /* key: 0x9a48 */ 0xffff,
- /* key: 0x9a49 */ 0xffff,
- /* key: 0x9a4a */ 0xe94e,
- /* key: 0x9a4b */ 0xe94f,
- /* key: 0x9a4c */ 0xe950,
- /* key: 0x9a4d */ 0x7162,
- /* key: 0x9a4e */ 0xe951,
- /* key: 0x9a4f */ 0xffff,
- /* key: 0x9a50 */ 0xffff,
- /* key: 0x9a51 */ 0xe952,
- /* key: 0x9a52 */ 0xffff,
- /* key: 0x9a53 */ 0xffff,
- /* key: 0x9a54 */ 0xe953,
- /* key: 0x9a55 */ 0x7161,
- /* key: 0x9a56 */ 0xe954,
- /* key: 0x9a57 */ 0x7164,
- /* key: 0x9a58 */ 0xffff,
- /* key: 0x9a59 */ 0xffff,
- /* key: 0x9a5a */ 0x3643,
- /* key: 0x9a5b */ 0x7163,
- /* key: 0x9a5c */ 0xffff,
- /* key: 0x9a5d */ 0xe955,
- /* key: 0x9a5e */ 0xffff,
- /* key: 0x9a5f */ 0x7165,
- /* key: 0x9a60 */ 0xffff,
- /* key: 0x9a61 */ 0xffff,
- /* key: 0x9a62 */ 0x7166,
- /* key: 0x9a63 */ 0xffff,
- /* key: 0x9a64 */ 0x7168,
- /* key: 0x9a65 */ 0x7167,
- /* key: 0x9a66 */ 0xffff,
- /* key: 0x9a67 */ 0xffff,
- /* key: 0x9a68 */ 0xffff,
- /* key: 0x9a69 */ 0x7169,
- /* key: 0x9a6a */ 0x716b,
- /* key: 0x9a6b */ 0x716a,
- /* key: 0x9a6c */ 0xffff,
- /* key: 0x9a6d */ 0xffff,
- /* key: 0x9a6e */ 0xffff,
- /* key: 0x9a6f */ 0xffff,
- /* key: 0x9aa0 */ 0xffff,
- /* key: 0x9aa1 */ 0xffff,
- /* key: 0x9aa2 */ 0xffff,
- /* key: 0x9aa3 */ 0xffff,
- /* key: 0x9aa4 */ 0xffff,
- /* key: 0x9aa5 */ 0xffff,
- /* key: 0x9aa6 */ 0xffff,
- /* key: 0x9aa7 */ 0xffff,
- /* key: 0x9aa8 */ 0x397c,
- /* key: 0x9aa9 */ 0xffff,
- /* key: 0x9aaa */ 0xe956,
- /* key: 0x9aab */ 0xffff,
- /* key: 0x9aac */ 0xe957,
- /* key: 0x9aad */ 0x716c,
- /* key: 0x9aae */ 0xe958,
- /* key: 0x9aaf */ 0xe959,
- /* key: 0x9ab0 */ 0x716d,
- /* key: 0x9ab1 */ 0xffff,
- /* key: 0x9ab2 */ 0xe95a,
- /* key: 0x9ab3 */ 0xffff,
- /* key: 0x9ab4 */ 0xe95b,
- /* key: 0x9ab5 */ 0xe95c,
- /* key: 0x9ab6 */ 0xe95d,
- /* key: 0x9ab7 */ 0xffff,
- /* key: 0x9ab8 */ 0x333c,
- /* key: 0x9ab9 */ 0xe95e,
- /* key: 0x9aba */ 0xffff,
- /* key: 0x9abb */ 0xe95f,
- /* key: 0x9abc */ 0x716e,
- /* key: 0x9abd */ 0xffff,
- /* key: 0x9abe */ 0xe960,
- /* key: 0x9abf */ 0xe961,
- /* key: 0x9ac0 */ 0x716f,
- /* key: 0x9ac1 */ 0xe962,
- /* key: 0x9ac2 */ 0xffff,
- /* key: 0x9ac3 */ 0xe963,
- /* key: 0x9ac4 */ 0x3f71,
- /* key: 0x9ac5 */ 0xffff,
- /* key: 0x9ac6 */ 0xe964,
- /* key: 0x9ac7 */ 0xffff,
- /* key: 0x9ac8 */ 0xe965,
- /* key: 0x9ac9 */ 0xffff,
- /* key: 0x9aca */ 0xffff,
- /* key: 0x9acb */ 0xffff,
- /* key: 0x9acc */ 0xffff,
- /* key: 0x9acd */ 0xffff,
- /* key: 0x9ace */ 0xe966,
- /* key: 0x9acf */ 0x7170,
- /* key: 0x9ad0 */ 0xe967,
- /* key: 0x9ad1 */ 0x7171,
- /* key: 0x9ad2 */ 0xe968,
- /* key: 0x9ad3 */ 0x7172,
- /* key: 0x9ad4 */ 0x7173,
- /* key: 0x9ad5 */ 0xe969,
- /* key: 0x9ad6 */ 0xe96a,
- /* key: 0x9ad7 */ 0xe96b,
- /* key: 0x9ad8 */ 0x3962,
- /* key: 0x9ad9 */ 0xffff,
- /* key: 0x9ada */ 0xffff,
- /* key: 0x9adb */ 0xe96c,
- /* key: 0x9adc */ 0xe96d,
- /* key: 0x9add */ 0xffff,
- /* key: 0x9ade */ 0x7174,
- /* key: 0x9adf */ 0x7175,
- /* key: 0x9ae0 */ 0xe96e,
- /* key: 0x9ae1 */ 0xffff,
- /* key: 0x9ae2 */ 0x7176,
- /* key: 0x9ae3 */ 0x7177,
- /* key: 0x9ae4 */ 0xe96f,
- /* key: 0x9ae5 */ 0xe970,
- /* key: 0x9ae6 */ 0x7178,
- /* key: 0x9ae7 */ 0xe971,
- /* key: 0x9ae8 */ 0xffff,
- /* key: 0x9ae9 */ 0xe972,
- /* key: 0x9aea */ 0x4831,
- /* key: 0x9aeb */ 0x717a,
- /* key: 0x9aec */ 0xe973,
- /* key: 0x9aed */ 0x4926,
- /* key: 0x9aee */ 0x717b,
- /* key: 0x9aef */ 0x7179,
- /* key: 0x9af0 */ 0xffff,
- /* key: 0x9af1 */ 0x717d,
- /* key: 0x9af2 */ 0xe974,
- /* key: 0x9af3 */ 0xe975,
- /* key: 0x9af4 */ 0x717c,
- /* key: 0x9af5 */ 0xe976,
- /* key: 0x9af6 */ 0xffff,
- /* key: 0x9af7 */ 0x717e,
- /* key: 0x9af8 */ 0xffff,
- /* key: 0x9af9 */ 0xe977,
- /* key: 0x9afa */ 0xe978,
- /* key: 0x9afb */ 0x7221,
- /* key: 0x9afc */ 0xffff,
- /* key: 0x9afd */ 0xe979,
- /* key: 0x9afe */ 0xffff,
- /* key: 0x9aff */ 0xe97a,
- /* branch: 0x9b0X */ 21840,
- /* branch: 0x9b1X */ 21856,
- /* branch: 0x9b2X */ 21872,
- /* branch: 0x9b3X */ 21888,
- /* branch: 0x9b4X */ 21904,
- /* branch: 0x9b5X */ 21920,
- /* branch: 0x9b6X */ 21936,
- /* branch: 0x9b7X */ 21952,
- /* branch: 0x9b8X */ 21968,
- /* branch: 0x9b9X */ 21984,
- /* branch: 0x9baX */ 22000,
- /* branch: 0x9bbX */ 22016,
- /* branch: 0x9bcX */ 22032,
- /* branch: 0x9bdX */ 22048,
- /* branch: 0x9beX */ 22064,
- /* branch: 0x9bfX */ 22080,
- /* key: 0x9b00 */ 0xe97b,
- /* key: 0x9b01 */ 0xe97c,
- /* key: 0x9b02 */ 0xe97d,
- /* key: 0x9b03 */ 0xe97e,
- /* key: 0x9b04 */ 0xea21,
- /* key: 0x9b05 */ 0xea22,
- /* key: 0x9b06 */ 0x7222,
- /* key: 0x9b07 */ 0xffff,
- /* key: 0x9b08 */ 0xea23,
- /* key: 0x9b09 */ 0xea24,
- /* key: 0x9b0a */ 0xffff,
- /* key: 0x9b0b */ 0xea25,
- /* key: 0x9b0c */ 0xea26,
- /* key: 0x9b0d */ 0xea27,
- /* key: 0x9b0e */ 0xea28,
- /* key: 0x9b0f */ 0xffff,
- /* key: 0x9b10 */ 0xea29,
- /* key: 0x9b11 */ 0xffff,
- /* key: 0x9b12 */ 0xea2a,
- /* key: 0x9b13 */ 0xffff,
- /* key: 0x9b14 */ 0xffff,
- /* key: 0x9b15 */ 0xffff,
- /* key: 0x9b16 */ 0xea2b,
- /* key: 0x9b17 */ 0xffff,
- /* key: 0x9b18 */ 0x7223,
- /* key: 0x9b19 */ 0xea2c,
- /* key: 0x9b1a */ 0x7224,
- /* key: 0x9b1b */ 0xea2d,
- /* key: 0x9b1c */ 0xea2e,
- /* key: 0x9b1d */ 0xffff,
- /* key: 0x9b1e */ 0xffff,
- /* key: 0x9b1f */ 0x7225,
- /* key: 0x9b20 */ 0xea2f,
- /* key: 0x9b21 */ 0xffff,
- /* key: 0x9b22 */ 0x7226,
- /* key: 0x9b23 */ 0x7227,
- /* key: 0x9b24 */ 0xffff,
- /* key: 0x9b25 */ 0x7228,
- /* key: 0x9b26 */ 0xea30,
- /* key: 0x9b27 */ 0x7229,
- /* key: 0x9b28 */ 0x722a,
- /* key: 0x9b29 */ 0x722b,
- /* key: 0x9b2a */ 0x722c,
- /* key: 0x9b2b */ 0xea31,
- /* key: 0x9b2c */ 0xffff,
- /* key: 0x9b2d */ 0xea32,
- /* key: 0x9b2e */ 0x722d,
- /* key: 0x9b2f */ 0x722e,
- /* key: 0x9b30 */ 0xffff,
- /* key: 0x9b31 */ 0x5d35,
- /* key: 0x9b32 */ 0x722f,
- /* key: 0x9b33 */ 0xea33,
- /* key: 0x9b34 */ 0xea34,
- /* key: 0x9b35 */ 0xea35,
- /* key: 0x9b36 */ 0xffff,
- /* key: 0x9b37 */ 0xea36,
- /* key: 0x9b38 */ 0xffff,
- /* key: 0x9b39 */ 0xea37,
- /* key: 0x9b3a */ 0xea38,
- /* key: 0x9b3b */ 0x6478,
- /* key: 0x9b3c */ 0x3534,
- /* key: 0x9b3d */ 0xea39,
- /* key: 0x9b3e */ 0xffff,
- /* key: 0x9b3f */ 0xffff,
- /* key: 0x9b40 */ 0xffff,
- /* key: 0x9b41 */ 0x3321,
- /* key: 0x9b42 */ 0x3a32,
- /* key: 0x9b43 */ 0x7231,
- /* key: 0x9b44 */ 0x7230,
- /* key: 0x9b45 */ 0x4c25,
- /* key: 0x9b46 */ 0xffff,
- /* key: 0x9b47 */ 0xffff,
- /* key: 0x9b48 */ 0xea3a,
- /* key: 0x9b49 */ 0xffff,
- /* key: 0x9b4a */ 0xffff,
- /* key: 0x9b4b */ 0xea3b,
- /* key: 0x9b4c */ 0xea3c,
- /* key: 0x9b4d */ 0x7233,
- /* key: 0x9b4e */ 0x7234,
- /* key: 0x9b4f */ 0x7232,
- /* key: 0x9b50 */ 0xffff,
- /* key: 0x9b51 */ 0x7235,
- /* key: 0x9b52 */ 0xffff,
- /* key: 0x9b53 */ 0xffff,
- /* key: 0x9b54 */ 0x4b62,
- /* key: 0x9b55 */ 0xea3d,
- /* key: 0x9b56 */ 0xea3e,
- /* key: 0x9b57 */ 0xea3f,
- /* key: 0x9b58 */ 0x7236,
- /* key: 0x9b59 */ 0xffff,
- /* key: 0x9b5a */ 0x357b,
- /* key: 0x9b5b */ 0xea40,
- /* key: 0x9b5c */ 0xffff,
- /* key: 0x9b5d */ 0xffff,
- /* key: 0x9b5e */ 0xea41,
- /* key: 0x9b5f */ 0xffff,
- /* key: 0x9b60 */ 0xffff,
- /* key: 0x9b61 */ 0xea42,
- /* key: 0x9b62 */ 0xffff,
- /* key: 0x9b63 */ 0xea43,
- /* key: 0x9b64 */ 0xffff,
- /* key: 0x9b65 */ 0xea44,
- /* key: 0x9b66 */ 0xea45,
- /* key: 0x9b67 */ 0xffff,
- /* key: 0x9b68 */ 0xea46,
- /* key: 0x9b69 */ 0xffff,
- /* key: 0x9b6a */ 0xea47,
- /* key: 0x9b6b */ 0xea48,
- /* key: 0x9b6c */ 0xea49,
- /* key: 0x9b6d */ 0xea4a,
- /* key: 0x9b6e */ 0xea4b,
- /* key: 0x9b6f */ 0x4f25,
- /* key: 0x9b70 */ 0xffff,
- /* key: 0x9b71 */ 0xffff,
- /* key: 0x9b72 */ 0xffff,
- /* key: 0x9b73 */ 0xea4c,
- /* key: 0x9b74 */ 0x7237,
- /* key: 0x9b75 */ 0xea4d,
- /* key: 0x9b76 */ 0xffff,
- /* key: 0x9b77 */ 0xea4e,
- /* key: 0x9b78 */ 0xea4f,
- /* key: 0x9b79 */ 0xea50,
- /* key: 0x9b7a */ 0xffff,
- /* key: 0x9b7b */ 0xffff,
- /* key: 0x9b7c */ 0xffff,
- /* key: 0x9b7d */ 0xffff,
- /* key: 0x9b7e */ 0xffff,
- /* key: 0x9b7f */ 0xea51,
- /* key: 0x9b80 */ 0xea52,
- /* key: 0x9b81 */ 0xffff,
- /* key: 0x9b82 */ 0xffff,
- /* key: 0x9b83 */ 0x7239,
- /* key: 0x9b84 */ 0xea53,
- /* key: 0x9b85 */ 0xea54,
- /* key: 0x9b86 */ 0xea55,
- /* key: 0x9b87 */ 0xea56,
- /* key: 0x9b88 */ 0xffff,
- /* key: 0x9b89 */ 0xea57,
- /* key: 0x9b8a */ 0xea58,
- /* key: 0x9b8b */ 0xea59,
- /* key: 0x9b8c */ 0xffff,
- /* key: 0x9b8d */ 0xea5a,
- /* key: 0x9b8e */ 0x303e,
- /* key: 0x9b8f */ 0xea5b,
- /* key: 0x9b90 */ 0xea5c,
- /* key: 0x9b91 */ 0x723a,
- /* key: 0x9b92 */ 0x4a2b,
- /* key: 0x9b93 */ 0x7238,
- /* key: 0x9b94 */ 0xea5d,
- /* key: 0x9b95 */ 0xffff,
- /* key: 0x9b96 */ 0x723b,
- /* key: 0x9b97 */ 0x723c,
- /* key: 0x9b98 */ 0xffff,
- /* key: 0x9b99 */ 0xffff,
- /* key: 0x9b9a */ 0xea5e,
- /* key: 0x9b9b */ 0xffff,
- /* key: 0x9b9c */ 0xffff,
- /* key: 0x9b9d */ 0xea5f,
- /* key: 0x9b9e */ 0xea60,
- /* key: 0x9b9f */ 0x723d,
- /* key: 0x9ba0 */ 0x723e,
- /* key: 0x9ba1 */ 0xffff,
- /* key: 0x9ba2 */ 0xffff,
- /* key: 0x9ba3 */ 0xffff,
- /* key: 0x9ba4 */ 0xffff,
- /* key: 0x9ba5 */ 0xffff,
- /* key: 0x9ba6 */ 0xea61,
- /* key: 0x9ba7 */ 0xea62,
- /* key: 0x9ba8 */ 0x723f,
- /* key: 0x9ba9 */ 0xea63,
- /* key: 0x9baa */ 0x4b6e,
- /* key: 0x9bab */ 0x3b2d,
- /* key: 0x9bac */ 0xea64,
- /* key: 0x9bad */ 0x3a7a,
- /* key: 0x9bae */ 0x412f,
- /* key: 0x9baf */ 0xffff,
- /* key: 0x9bb0 */ 0xea65,
- /* key: 0x9bb1 */ 0xea66,
- /* key: 0x9bb2 */ 0xea67,
- /* key: 0x9bb3 */ 0xffff,
- /* key: 0x9bb4 */ 0x7240,
- /* key: 0x9bb5 */ 0xffff,
- /* key: 0x9bb6 */ 0xffff,
- /* key: 0x9bb7 */ 0xea68,
- /* key: 0x9bb8 */ 0xea69,
- /* key: 0x9bb9 */ 0x7243,
- /* key: 0x9bba */ 0xffff,
- /* key: 0x9bbb */ 0xea6a,
- /* key: 0x9bbc */ 0xea6b,
- /* key: 0x9bbd */ 0xffff,
- /* key: 0x9bbe */ 0xea6c,
- /* key: 0x9bbf */ 0xea6d,
- /* key: 0x9bc0 */ 0x7241,
- /* key: 0x9bc1 */ 0xea6e,
- /* key: 0x9bc2 */ 0xffff,
- /* key: 0x9bc3 */ 0xffff,
- /* key: 0x9bc4 */ 0xffff,
- /* key: 0x9bc5 */ 0xffff,
- /* key: 0x9bc6 */ 0x7244,
- /* key: 0x9bc7 */ 0xea6f,
- /* key: 0x9bc8 */ 0xea70,
- /* key: 0x9bc9 */ 0x3871,
- /* key: 0x9bca */ 0x7242,
- /* key: 0x9bcb */ 0xffff,
- /* key: 0x9bcc */ 0xffff,
- /* key: 0x9bcd */ 0xffff,
- /* key: 0x9bce */ 0xea71,
- /* key: 0x9bcf */ 0x7245,
- /* key: 0x9bd0 */ 0xea72,
- /* key: 0x9bd1 */ 0x7246,
- /* key: 0x9bd2 */ 0x7247,
- /* key: 0x9bd3 */ 0xffff,
- /* key: 0x9bd4 */ 0x724b,
- /* key: 0x9bd5 */ 0xffff,
- /* key: 0x9bd6 */ 0x3b2a,
- /* key: 0x9bd7 */ 0xea73,
- /* key: 0x9bd8 */ 0xea74,
- /* key: 0x9bd9 */ 0xffff,
- /* key: 0x9bda */ 0xffff,
- /* key: 0x9bdb */ 0x4264,
- /* key: 0x9bdc */ 0xffff,
- /* key: 0x9bdd */ 0xea75,
- /* key: 0x9bde */ 0xffff,
- /* key: 0x9bdf */ 0xea76,
- /* key: 0x9be0 */ 0xffff,
- /* key: 0x9be1 */ 0x724c,
- /* key: 0x9be2 */ 0x7249,
- /* key: 0x9be3 */ 0x7248,
- /* key: 0x9be4 */ 0x724a,
- /* key: 0x9be5 */ 0xea77,
- /* key: 0x9be6 */ 0xffff,
- /* key: 0x9be7 */ 0xea78,
- /* key: 0x9be8 */ 0x375f,
- /* key: 0x9be9 */ 0xffff,
- /* key: 0x9bea */ 0xea79,
- /* key: 0x9beb */ 0xea7a,
- /* key: 0x9bec */ 0xffff,
- /* key: 0x9bed */ 0xffff,
- /* key: 0x9bee */ 0xffff,
- /* key: 0x9bef */ 0xea7b,
- /* key: 0x9bf0 */ 0x7250,
- /* key: 0x9bf1 */ 0x724f,
- /* key: 0x9bf2 */ 0x724e,
- /* key: 0x9bf3 */ 0xea7c,
- /* key: 0x9bf4 */ 0xffff,
- /* key: 0x9bf5 */ 0x3033,
- /* key: 0x9bf6 */ 0xffff,
- /* key: 0x9bf7 */ 0xea7d,
- /* key: 0x9bf8 */ 0xea7e,
- /* key: 0x9bf9 */ 0xeb21,
- /* key: 0x9bfa */ 0xeb22,
- /* key: 0x9bfb */ 0xffff,
- /* key: 0x9bfc */ 0xffff,
- /* key: 0x9bfd */ 0xeb23,
- /* key: 0x9bfe */ 0xffff,
- /* key: 0x9bff */ 0xeb24,
- /* branch: 0x9c0X */ 22112,
- /* branch: 0x9c1X */ 22128,
- /* branch: 0x9c2X */ 22144,
- /* branch: 0x9c3X */ 22160,
- /* branch: 0x9c4X */ 22176,
- /* branch: 0x9c5X */ 22192,
- /* branch: 0x9c6X */ 22208,
- /* branch: 0x9c7X */ 22224,
- /* branch: 0x9c8X */ 0,
- /* branch: 0x9c9X */ 0,
- /* branch: 0x9caX */ 0,
- /* branch: 0x9cbX */ 0,
- /* branch: 0x9ccX */ 0,
- /* branch: 0x9cdX */ 0,
- /* branch: 0x9ceX */ 22240,
- /* branch: 0x9cfX */ 22256,
- /* key: 0x9c00 */ 0xeb25,
- /* key: 0x9c01 */ 0xffff,
- /* key: 0x9c02 */ 0xeb26,
- /* key: 0x9c03 */ 0xffff,
- /* key: 0x9c04 */ 0x725a,
- /* key: 0x9c05 */ 0xffff,
- /* key: 0x9c06 */ 0x7256,
- /* key: 0x9c07 */ 0xffff,
- /* key: 0x9c08 */ 0x7257,
- /* key: 0x9c09 */ 0x7253,
- /* key: 0x9c0a */ 0x7259,
- /* key: 0x9c0b */ 0xeb27,
- /* key: 0x9c0c */ 0x7255,
- /* key: 0x9c0d */ 0x3362,
- /* key: 0x9c0e */ 0xffff,
- /* key: 0x9c0f */ 0xeb28,
- /* key: 0x9c10 */ 0x4f4c,
- /* key: 0x9c11 */ 0xeb29,
- /* key: 0x9c12 */ 0x7258,
- /* key: 0x9c13 */ 0x7254,
- /* key: 0x9c14 */ 0x7252,
- /* key: 0x9c15 */ 0x7251,
- /* key: 0x9c16 */ 0xeb2a,
- /* key: 0x9c17 */ 0xffff,
- /* key: 0x9c18 */ 0xeb2b,
- /* key: 0x9c19 */ 0xeb2c,
- /* key: 0x9c1a */ 0xeb2d,
- /* key: 0x9c1b */ 0x725c,
- /* key: 0x9c1c */ 0xeb2e,
- /* key: 0x9c1d */ 0xffff,
- /* key: 0x9c1e */ 0xeb2f,
- /* key: 0x9c1f */ 0xffff,
- /* key: 0x9c20 */ 0xffff,
- /* key: 0x9c21 */ 0x725f,
- /* key: 0x9c22 */ 0xeb30,
- /* key: 0x9c23 */ 0xeb31,
- /* key: 0x9c24 */ 0x725e,
- /* key: 0x9c25 */ 0x725d,
- /* key: 0x9c26 */ 0xeb32,
- /* key: 0x9c27 */ 0xeb33,
- /* key: 0x9c28 */ 0xeb34,
- /* key: 0x9c29 */ 0xeb35,
- /* key: 0x9c2a */ 0xeb36,
- /* key: 0x9c2b */ 0xffff,
- /* key: 0x9c2c */ 0xffff,
- /* key: 0x9c2d */ 0x4949,
- /* key: 0x9c2e */ 0x725b,
- /* key: 0x9c2f */ 0x3073,
- /* key: 0x9c30 */ 0x7260,
- /* key: 0x9c31 */ 0xeb37,
- /* key: 0x9c32 */ 0x7262,
- /* key: 0x9c33 */ 0xffff,
- /* key: 0x9c34 */ 0xffff,
- /* key: 0x9c35 */ 0xeb38,
- /* key: 0x9c36 */ 0xeb39,
- /* key: 0x9c37 */ 0xeb3a,
- /* key: 0x9c38 */ 0xffff,
- /* key: 0x9c39 */ 0x336f,
- /* key: 0x9c3a */ 0x724d,
- /* key: 0x9c3b */ 0x3137,
- /* key: 0x9c3c */ 0xffff,
- /* key: 0x9c3d */ 0xeb3b,
- /* key: 0x9c3e */ 0x7264,
- /* key: 0x9c3f */ 0xffff,
- /* key: 0x9c40 */ 0xffff,
- /* key: 0x9c41 */ 0xeb3c,
- /* key: 0x9c42 */ 0xffff,
- /* key: 0x9c43 */ 0xeb3d,
- /* key: 0x9c44 */ 0xeb3e,
- /* key: 0x9c45 */ 0xeb3f,
- /* key: 0x9c46 */ 0x7263,
- /* key: 0x9c47 */ 0x7261,
- /* key: 0x9c48 */ 0x432d,
- /* key: 0x9c49 */ 0xeb40,
- /* key: 0x9c4a */ 0xeb41,
- /* key: 0x9c4b */ 0xffff,
- /* key: 0x9c4c */ 0xffff,
- /* key: 0x9c4d */ 0xffff,
- /* key: 0x9c4e */ 0xeb42,
- /* key: 0x9c4f */ 0xeb43,
- /* key: 0x9c50 */ 0xeb44,
- /* key: 0x9c51 */ 0xffff,
- /* key: 0x9c52 */ 0x4b70,
- /* key: 0x9c53 */ 0xeb45,
- /* key: 0x9c54 */ 0xeb46,
- /* key: 0x9c55 */ 0xffff,
- /* key: 0x9c56 */ 0xeb47,
- /* key: 0x9c57 */ 0x4e5a,
- /* key: 0x9c58 */ 0xeb48,
- /* key: 0x9c59 */ 0xffff,
- /* key: 0x9c5a */ 0x7265,
- /* key: 0x9c5b */ 0xeb49,
- /* key: 0x9c5c */ 0xeb50,
- /* key: 0x9c5d */ 0xeb4a,
- /* key: 0x9c5e */ 0xeb4b,
- /* key: 0x9c5f */ 0xeb4c,
- /* key: 0x9c60 */ 0x7266,
- /* key: 0x9c61 */ 0xffff,
- /* key: 0x9c62 */ 0xffff,
- /* key: 0x9c63 */ 0xeb4d,
- /* key: 0x9c64 */ 0xffff,
- /* key: 0x9c65 */ 0xffff,
- /* key: 0x9c66 */ 0xffff,
- /* key: 0x9c67 */ 0x7267,
- /* key: 0x9c68 */ 0xeb52,
- /* key: 0x9c69 */ 0xeb4e,
- /* key: 0x9c6a */ 0xeb4f,
- /* key: 0x9c6b */ 0xeb51,
- /* key: 0x9c6c */ 0xffff,
- /* key: 0x9c6d */ 0xffff,
- /* key: 0x9c6e */ 0xeb53,
- /* key: 0x9c6f */ 0xffff,
- /* key: 0x9c70 */ 0xeb54,
- /* key: 0x9c71 */ 0xffff,
- /* key: 0x9c72 */ 0xeb55,
- /* key: 0x9c73 */ 0xffff,
- /* key: 0x9c74 */ 0xffff,
- /* key: 0x9c75 */ 0xeb56,
- /* key: 0x9c76 */ 0x7268,
- /* key: 0x9c77 */ 0xeb57,
- /* key: 0x9c78 */ 0x7269,
- /* key: 0x9c79 */ 0xffff,
- /* key: 0x9c7a */ 0xffff,
- /* key: 0x9c7b */ 0xeb58,
- /* key: 0x9c7c */ 0xffff,
- /* key: 0x9c7d */ 0xffff,
- /* key: 0x9c7e */ 0xffff,
- /* key: 0x9c7f */ 0xffff,
- /* key: 0x9ce0 */ 0xffff,
- /* key: 0x9ce1 */ 0xffff,
- /* key: 0x9ce2 */ 0xffff,
- /* key: 0x9ce3 */ 0xffff,
- /* key: 0x9ce4 */ 0xffff,
- /* key: 0x9ce5 */ 0x443b,
- /* key: 0x9ce6 */ 0xeb59,
- /* key: 0x9ce7 */ 0x726a,
- /* key: 0x9ce8 */ 0xffff,
- /* key: 0x9ce9 */ 0x4837,
- /* key: 0x9cea */ 0xffff,
- /* key: 0x9ceb */ 0x726f,
- /* key: 0x9cec */ 0x726b,
- /* key: 0x9ced */ 0xffff,
- /* key: 0x9cee */ 0xffff,
- /* key: 0x9cef */ 0xffff,
- /* key: 0x9cf0 */ 0x726c,
- /* key: 0x9cf1 */ 0xffff,
- /* key: 0x9cf2 */ 0xeb5a,
- /* key: 0x9cf3 */ 0x4b31,
- /* key: 0x9cf4 */ 0x4c44,
- /* key: 0x9cf5 */ 0xffff,
- /* key: 0x9cf6 */ 0x4650,
- /* key: 0x9cf7 */ 0xeb5b,
- /* key: 0x9cf8 */ 0xffff,
- /* key: 0x9cf9 */ 0xeb5c,
- /* key: 0x9cfa */ 0xffff,
- /* key: 0x9cfb */ 0xffff,
- /* key: 0x9cfc */ 0xffff,
- /* key: 0x9cfd */ 0xffff,
- /* key: 0x9cfe */ 0xffff,
- /* key: 0x9cff */ 0xffff,
- /* branch: 0x9d0X */ 22288,
- /* branch: 0x9d1X */ 22304,
- /* branch: 0x9d2X */ 22320,
- /* branch: 0x9d3X */ 22336,
- /* branch: 0x9d4X */ 22352,
- /* branch: 0x9d5X */ 22368,
- /* branch: 0x9d6X */ 22384,
- /* branch: 0x9d7X */ 22400,
- /* branch: 0x9d8X */ 22416,
- /* branch: 0x9d9X */ 22432,
- /* branch: 0x9daX */ 22448,
- /* branch: 0x9dbX */ 22464,
- /* branch: 0x9dcX */ 22480,
- /* branch: 0x9ddX */ 22496,
- /* branch: 0x9deX */ 22512,
- /* branch: 0x9dfX */ 22528,
- /* key: 0x9d00 */ 0xffff,
- /* key: 0x9d01 */ 0xffff,
- /* key: 0x9d02 */ 0xeb5e,
- /* key: 0x9d03 */ 0x7270,
- /* key: 0x9d04 */ 0xffff,
- /* key: 0x9d05 */ 0xffff,
- /* key: 0x9d06 */ 0x7271,
- /* key: 0x9d07 */ 0x463e,
- /* key: 0x9d08 */ 0x726e,
- /* key: 0x9d09 */ 0x726d,
- /* key: 0x9d0a */ 0xffff,
- /* key: 0x9d0b */ 0xeb5d,
- /* key: 0x9d0c */ 0xffff,
- /* key: 0x9d0d */ 0xffff,
- /* key: 0x9d0e */ 0x322a,
- /* key: 0x9d0f */ 0xffff,
- /* key: 0x9d10 */ 0xffff,
- /* key: 0x9d11 */ 0xeb5f,
- /* key: 0x9d12 */ 0x7279,
- /* key: 0x9d13 */ 0xffff,
- /* key: 0x9d14 */ 0xffff,
- /* key: 0x9d15 */ 0x7278,
- /* key: 0x9d16 */ 0xffff,
- /* key: 0x9d17 */ 0xeb60,
- /* key: 0x9d18 */ 0xeb61,
- /* key: 0x9d19 */ 0xffff,
- /* key: 0x9d1a */ 0xffff,
- /* key: 0x9d1b */ 0x3175,
- /* key: 0x9d1c */ 0xeb62,
- /* key: 0x9d1d */ 0xeb63,
- /* key: 0x9d1e */ 0xeb64,
- /* key: 0x9d1f */ 0x7276,
- /* key: 0x9d20 */ 0xffff,
- /* key: 0x9d21 */ 0xffff,
- /* key: 0x9d22 */ 0xffff,
- /* key: 0x9d23 */ 0x7275,
- /* key: 0x9d24 */ 0xffff,
- /* key: 0x9d25 */ 0xffff,
- /* key: 0x9d26 */ 0x7273,
- /* key: 0x9d27 */ 0xffff,
- /* key: 0x9d28 */ 0x337b,
- /* key: 0x9d29 */ 0xffff,
- /* key: 0x9d2a */ 0x7272,
- /* key: 0x9d2b */ 0x3c32,
- /* key: 0x9d2c */ 0x3229,
- /* key: 0x9d2d */ 0xffff,
- /* key: 0x9d2e */ 0xffff,
- /* key: 0x9d2f */ 0xeb65,
- /* key: 0x9d30 */ 0xeb66,
- /* key: 0x9d31 */ 0xffff,
- /* key: 0x9d32 */ 0xeb67,
- /* key: 0x9d33 */ 0xeb68,
- /* key: 0x9d34 */ 0xeb69,
- /* key: 0x9d35 */ 0xffff,
- /* key: 0x9d36 */ 0xffff,
- /* key: 0x9d37 */ 0xffff,
- /* key: 0x9d38 */ 0xffff,
- /* key: 0x9d39 */ 0xffff,
- /* key: 0x9d3a */ 0xeb6a,
- /* key: 0x9d3b */ 0x3963,
- /* key: 0x9d3c */ 0xeb6b,
- /* key: 0x9d3d */ 0xeb6d,
- /* key: 0x9d3e */ 0x727c,
- /* key: 0x9d3f */ 0x727b,
- /* key: 0x9d40 */ 0xffff,
- /* key: 0x9d41 */ 0x727a,
- /* key: 0x9d42 */ 0xeb6e,
- /* key: 0x9d43 */ 0xeb6f,
- /* key: 0x9d44 */ 0x7277,
- /* key: 0x9d45 */ 0xeb6c,
- /* key: 0x9d46 */ 0x727d,
- /* key: 0x9d47 */ 0xeb70,
- /* key: 0x9d48 */ 0x727e,
- /* key: 0x9d49 */ 0xffff,
- /* key: 0x9d4a */ 0xeb71,
- /* key: 0x9d4b */ 0xffff,
- /* key: 0x9d4c */ 0xffff,
- /* key: 0x9d4d */ 0xffff,
- /* key: 0x9d4e */ 0xffff,
- /* key: 0x9d4f */ 0xffff,
- /* key: 0x9d50 */ 0x7325,
- /* key: 0x9d51 */ 0x7324,
- /* key: 0x9d52 */ 0xffff,
- /* key: 0x9d53 */ 0xeb72,
- /* key: 0x9d54 */ 0xeb73,
- /* key: 0x9d55 */ 0xffff,
- /* key: 0x9d56 */ 0xffff,
- /* key: 0x9d57 */ 0xffff,
- /* key: 0x9d58 */ 0xffff,
- /* key: 0x9d59 */ 0x7326,
- /* key: 0x9d5a */ 0xffff,
- /* key: 0x9d5b */ 0xffff,
- /* key: 0x9d5c */ 0x312d,
- /* key: 0x9d5d */ 0x7321,
- /* key: 0x9d5e */ 0x7322,
- /* key: 0x9d5f */ 0xeb74,
- /* key: 0x9d60 */ 0x3974,
- /* key: 0x9d61 */ 0x4c39,
- /* key: 0x9d62 */ 0xeb76,
- /* key: 0x9d63 */ 0xeb75,
- /* key: 0x9d64 */ 0x7323,
- /* key: 0x9d65 */ 0xeb77,
- /* key: 0x9d66 */ 0xffff,
- /* key: 0x9d67 */ 0xffff,
- /* key: 0x9d68 */ 0xffff,
- /* key: 0x9d69 */ 0xeb78,
- /* key: 0x9d6a */ 0xeb79,
- /* key: 0x9d6b */ 0xeb7a,
- /* key: 0x9d6c */ 0x4b32,
- /* key: 0x9d6d */ 0xffff,
- /* key: 0x9d6e */ 0xffff,
- /* key: 0x9d6f */ 0x732b,
- /* key: 0x9d70 */ 0xeb7b,
- /* key: 0x9d71 */ 0xffff,
- /* key: 0x9d72 */ 0x7327,
- /* key: 0x9d73 */ 0xffff,
- /* key: 0x9d74 */ 0xffff,
- /* key: 0x9d75 */ 0xffff,
- /* key: 0x9d76 */ 0xeb7c,
- /* key: 0x9d77 */ 0xeb7d,
- /* key: 0x9d78 */ 0xffff,
- /* key: 0x9d79 */ 0xffff,
- /* key: 0x9d7a */ 0x732c,
- /* key: 0x9d7b */ 0xeb7e,
- /* key: 0x9d7c */ 0xec21,
- /* key: 0x9d7d */ 0xffff,
- /* key: 0x9d7e */ 0xec22,
- /* key: 0x9d7f */ 0xffff,
- /* key: 0x9d80 */ 0xffff,
- /* key: 0x9d81 */ 0xffff,
- /* key: 0x9d82 */ 0xffff,
- /* key: 0x9d83 */ 0xec23,
- /* key: 0x9d84 */ 0xec24,
- /* key: 0x9d85 */ 0xffff,
- /* key: 0x9d86 */ 0xec25,
- /* key: 0x9d87 */ 0x7329,
- /* key: 0x9d88 */ 0xffff,
- /* key: 0x9d89 */ 0x7328,
- /* key: 0x9d8a */ 0xec26,
- /* key: 0x9d8b */ 0xffff,
- /* key: 0x9d8c */ 0xffff,
- /* key: 0x9d8d */ 0xec27,
- /* key: 0x9d8e */ 0xec28,
- /* key: 0x9d8f */ 0x375c,
- /* key: 0x9d90 */ 0xffff,
- /* key: 0x9d91 */ 0xffff,
- /* key: 0x9d92 */ 0xec29,
- /* key: 0x9d93 */ 0xec2a,
- /* key: 0x9d94 */ 0xffff,
- /* key: 0x9d95 */ 0xec2b,
- /* key: 0x9d96 */ 0xec2c,
- /* key: 0x9d97 */ 0xec2d,
- /* key: 0x9d98 */ 0xec2e,
- /* key: 0x9d99 */ 0xffff,
- /* key: 0x9d9a */ 0x732d,
- /* key: 0x9d9b */ 0xffff,
- /* key: 0x9d9c */ 0xffff,
- /* key: 0x9d9d */ 0xffff,
- /* key: 0x9d9e */ 0xffff,
- /* key: 0x9d9f */ 0xffff,
- /* key: 0x9da0 */ 0xffff,
- /* key: 0x9da1 */ 0xec2f,
- /* key: 0x9da2 */ 0xffff,
- /* key: 0x9da3 */ 0xffff,
- /* key: 0x9da4 */ 0x732e,
- /* key: 0x9da5 */ 0xffff,
- /* key: 0x9da6 */ 0xffff,
- /* key: 0x9da7 */ 0xffff,
- /* key: 0x9da8 */ 0xffff,
- /* key: 0x9da9 */ 0x732f,
- /* key: 0x9daa */ 0xec30,
- /* key: 0x9dab */ 0x732a,
- /* key: 0x9dac */ 0xec31,
- /* key: 0x9dad */ 0xffff,
- /* key: 0x9dae */ 0xec32,
- /* key: 0x9daf */ 0x7274,
- /* key: 0x9db0 */ 0xffff,
- /* key: 0x9db1 */ 0xec33,
- /* key: 0x9db2 */ 0x7330,
- /* key: 0x9db3 */ 0xffff,
- /* key: 0x9db4 */ 0x4461,
- /* key: 0x9db5 */ 0xec34,
- /* key: 0x9db6 */ 0xffff,
- /* key: 0x9db7 */ 0xffff,
- /* key: 0x9db8 */ 0x7334,
- /* key: 0x9db9 */ 0xec35,
- /* key: 0x9dba */ 0x7335,
- /* key: 0x9dbb */ 0x7333,
- /* key: 0x9dbc */ 0xec36,
- /* key: 0x9dbd */ 0xffff,
- /* key: 0x9dbe */ 0xffff,
- /* key: 0x9dbf */ 0xec37,
- /* key: 0x9dc0 */ 0xffff,
- /* key: 0x9dc1 */ 0x7332,
- /* key: 0x9dc2 */ 0x7338,
- /* key: 0x9dc3 */ 0xec38,
- /* key: 0x9dc4 */ 0x7331,
- /* key: 0x9dc5 */ 0xffff,
- /* key: 0x9dc6 */ 0x7336,
- /* key: 0x9dc7 */ 0xec39,
- /* key: 0x9dc8 */ 0xffff,
- /* key: 0x9dc9 */ 0xec3a,
- /* key: 0x9dca */ 0xec3b,
- /* key: 0x9dcb */ 0xffff,
- /* key: 0x9dcc */ 0xffff,
- /* key: 0x9dcd */ 0xffff,
- /* key: 0x9dce */ 0xffff,
- /* key: 0x9dcf */ 0x7337,
- /* key: 0x9dd0 */ 0xffff,
- /* key: 0x9dd1 */ 0xffff,
- /* key: 0x9dd2 */ 0xffff,
- /* key: 0x9dd3 */ 0x733a,
- /* key: 0x9dd4 */ 0xec3c,
- /* key: 0x9dd5 */ 0xec3d,
- /* key: 0x9dd6 */ 0xec3e,
- /* key: 0x9dd7 */ 0xec3f,
- /* key: 0x9dd8 */ 0xffff,
- /* key: 0x9dd9 */ 0x7339,
- /* key: 0x9dda */ 0xec40,
- /* key: 0x9ddb */ 0xffff,
- /* key: 0x9ddc */ 0xffff,
- /* key: 0x9ddd */ 0xffff,
- /* key: 0x9dde */ 0xec41,
- /* key: 0x9ddf */ 0xec42,
- /* key: 0x9de0 */ 0xec43,
- /* key: 0x9de1 */ 0xffff,
- /* key: 0x9de2 */ 0xffff,
- /* key: 0x9de3 */ 0xffff,
- /* key: 0x9de4 */ 0xffff,
- /* key: 0x9de5 */ 0xec44,
- /* key: 0x9de6 */ 0x733c,
- /* key: 0x9de7 */ 0xec45,
- /* key: 0x9de8 */ 0xffff,
- /* key: 0x9de9 */ 0xec46,
- /* key: 0x9dea */ 0xffff,
- /* key: 0x9deb */ 0xec47,
- /* key: 0x9dec */ 0xffff,
- /* key: 0x9ded */ 0x733d,
- /* key: 0x9dee */ 0xec48,
- /* key: 0x9def */ 0x733e,
- /* key: 0x9df0 */ 0xec49,
- /* key: 0x9df1 */ 0xffff,
- /* key: 0x9df2 */ 0x4f49,
- /* key: 0x9df3 */ 0xec4a,
- /* key: 0x9df4 */ 0xec4b,
- /* key: 0x9df5 */ 0xffff,
- /* key: 0x9df6 */ 0xffff,
- /* key: 0x9df7 */ 0xffff,
- /* key: 0x9df8 */ 0x733b,
- /* key: 0x9df9 */ 0x426b,
- /* key: 0x9dfa */ 0x3a6d,
- /* key: 0x9dfb */ 0xffff,
- /* key: 0x9dfc */ 0xffff,
- /* key: 0x9dfd */ 0x733f,
- /* key: 0x9dfe */ 0xec4c,
- /* key: 0x9dff */ 0xffff,
- /* branch: 0x9e0X */ 22560,
- /* branch: 0x9e1X */ 22576,
- /* branch: 0x9e2X */ 0,
- /* branch: 0x9e3X */ 0,
- /* branch: 0x9e4X */ 0,
- /* branch: 0x9e5X */ 0,
- /* branch: 0x9e6X */ 0,
- /* branch: 0x9e7X */ 22592,
- /* branch: 0x9e8X */ 22608,
- /* branch: 0x9e9X */ 22624,
- /* branch: 0x9eaX */ 22640,
- /* branch: 0x9ebX */ 22656,
- /* branch: 0x9ecX */ 22672,
- /* branch: 0x9edX */ 22688,
- /* branch: 0x9eeX */ 22704,
- /* branch: 0x9efX */ 22720,
- /* key: 0x9e00 */ 0xffff,
- /* key: 0x9e01 */ 0xffff,
- /* key: 0x9e02 */ 0xec4e,
- /* key: 0x9e03 */ 0xffff,
- /* key: 0x9e04 */ 0xffff,
- /* key: 0x9e05 */ 0xffff,
- /* key: 0x9e06 */ 0xffff,
- /* key: 0x9e07 */ 0xec4f,
- /* key: 0x9e08 */ 0xffff,
- /* key: 0x9e09 */ 0xffff,
- /* key: 0x9e0a */ 0xec4d,
- /* key: 0x9e0b */ 0xffff,
- /* key: 0x9e0c */ 0xffff,
- /* key: 0x9e0d */ 0xffff,
- /* key: 0x9e0e */ 0xec50,
- /* key: 0x9e0f */ 0xffff,
- /* key: 0x9e10 */ 0xec51,
- /* key: 0x9e11 */ 0xec52,
- /* key: 0x9e12 */ 0xec53,
- /* key: 0x9e13 */ 0xffff,
- /* key: 0x9e14 */ 0xffff,
- /* key: 0x9e15 */ 0xec54,
- /* key: 0x9e16 */ 0xec55,
- /* key: 0x9e17 */ 0xffff,
- /* key: 0x9e18 */ 0xffff,
- /* key: 0x9e19 */ 0xec56,
- /* key: 0x9e1a */ 0x7340,
- /* key: 0x9e1b */ 0x7341,
- /* key: 0x9e1c */ 0xec57,
- /* key: 0x9e1d */ 0xec58,
- /* key: 0x9e1e */ 0x7342,
- /* key: 0x9e1f */ 0xffff,
- /* key: 0x9e70 */ 0xffff,
- /* key: 0x9e71 */ 0xffff,
- /* key: 0x9e72 */ 0xffff,
- /* key: 0x9e73 */ 0xffff,
- /* key: 0x9e74 */ 0xffff,
- /* key: 0x9e75 */ 0x7343,
- /* key: 0x9e76 */ 0xffff,
- /* key: 0x9e77 */ 0xffff,
- /* key: 0x9e78 */ 0x3834,
- /* key: 0x9e79 */ 0x7344,
- /* key: 0x9e7a */ 0xec59,
- /* key: 0x9e7b */ 0xec5a,
- /* key: 0x9e7c */ 0xec5b,
- /* key: 0x9e7d */ 0x7345,
- /* key: 0x9e7e */ 0xffff,
- /* key: 0x9e7f */ 0x3c2f,
- /* key: 0x9e80 */ 0xec5c,
- /* key: 0x9e81 */ 0x7346,
- /* key: 0x9e82 */ 0xec5d,
- /* key: 0x9e83 */ 0xec5e,
- /* key: 0x9e84 */ 0xec5f,
- /* key: 0x9e85 */ 0xec60,
- /* key: 0x9e86 */ 0xffff,
- /* key: 0x9e87 */ 0xec61,
- /* key: 0x9e88 */ 0x7347,
- /* key: 0x9e89 */ 0xffff,
- /* key: 0x9e8a */ 0xffff,
- /* key: 0x9e8b */ 0x7348,
- /* key: 0x9e8c */ 0x7349,
- /* key: 0x9e8d */ 0xffff,
- /* key: 0x9e8e */ 0xec62,
- /* key: 0x9e8f */ 0xec63,
- /* key: 0x9e90 */ 0xffff,
- /* key: 0x9e91 */ 0x734c,
- /* key: 0x9e92 */ 0x734a,
- /* key: 0x9e93 */ 0x4f3c,
- /* key: 0x9e94 */ 0xffff,
- /* key: 0x9e95 */ 0x734b,
- /* key: 0x9e96 */ 0xec64,
- /* key: 0x9e97 */ 0x4e6f,
- /* key: 0x9e98 */ 0xec65,
- /* key: 0x9e99 */ 0xffff,
- /* key: 0x9e9a */ 0xffff,
- /* key: 0x9e9b */ 0xec66,
- /* key: 0x9e9c */ 0xffff,
- /* key: 0x9e9d */ 0x734d,
- /* key: 0x9e9e */ 0xec67,
- /* key: 0x9e9f */ 0x4e5b,
- /* key: 0x9ea0 */ 0xffff,
- /* key: 0x9ea1 */ 0xffff,
- /* key: 0x9ea2 */ 0xffff,
- /* key: 0x9ea3 */ 0xffff,
- /* key: 0x9ea4 */ 0xec68,
- /* key: 0x9ea5 */ 0x734e,
- /* key: 0x9ea6 */ 0x477e,
- /* key: 0x9ea7 */ 0xffff,
- /* key: 0x9ea8 */ 0xec69,
- /* key: 0x9ea9 */ 0x734f,
- /* key: 0x9eaa */ 0x7351,
- /* key: 0x9eab */ 0xffff,
- /* key: 0x9eac */ 0xec6a,
- /* key: 0x9ead */ 0x7352,
- /* key: 0x9eae */ 0xec6b,
- /* key: 0x9eaf */ 0xec6c,
- /* key: 0x9eb0 */ 0xec6d,
- /* key: 0x9eb1 */ 0xffff,
- /* key: 0x9eb2 */ 0xffff,
- /* key: 0x9eb3 */ 0xec6e,
- /* key: 0x9eb4 */ 0xec6f,
- /* key: 0x9eb5 */ 0xec70,
- /* key: 0x9eb6 */ 0xffff,
- /* key: 0x9eb7 */ 0xffff,
- /* key: 0x9eb8 */ 0x7350,
- /* key: 0x9eb9 */ 0x396d,
- /* key: 0x9eba */ 0x4c4d,
- /* key: 0x9ebb */ 0x4b63,
- /* key: 0x9ebc */ 0x5677,
- /* key: 0x9ebd */ 0xffff,
- /* key: 0x9ebe */ 0x5d60,
- /* key: 0x9ebf */ 0x4b7b,
- /* key: 0x9ec0 */ 0xffff,
- /* key: 0x9ec1 */ 0xffff,
- /* key: 0x9ec2 */ 0xffff,
- /* key: 0x9ec3 */ 0xffff,
- /* key: 0x9ec4 */ 0x322b,
- /* key: 0x9ec5 */ 0xffff,
- /* key: 0x9ec6 */ 0xec71,
- /* key: 0x9ec7 */ 0xffff,
- /* key: 0x9ec8 */ 0xec72,
- /* key: 0x9ec9 */ 0xffff,
- /* key: 0x9eca */ 0xffff,
- /* key: 0x9ecb */ 0xec73,
- /* key: 0x9ecc */ 0x7354,
- /* key: 0x9ecd */ 0x3550,
- /* key: 0x9ece */ 0x7355,
- /* key: 0x9ecf */ 0x7356,
- /* key: 0x9ed0 */ 0x7357,
- /* key: 0x9ed1 */ 0xffff,
- /* key: 0x9ed2 */ 0x3975,
- /* key: 0x9ed3 */ 0xffff,
- /* key: 0x9ed4 */ 0x7358,
- /* key: 0x9ed5 */ 0xec74,
- /* key: 0x9ed6 */ 0xffff,
- /* key: 0x9ed7 */ 0xffff,
- /* key: 0x9ed8 */ 0x6054,
- /* key: 0x9ed9 */ 0x4c5b,
- /* key: 0x9eda */ 0xffff,
- /* key: 0x9edb */ 0x4263,
- /* key: 0x9edc */ 0x7359,
- /* key: 0x9edd */ 0x735b,
- /* key: 0x9ede */ 0x735a,
- /* key: 0x9edf */ 0xec75,
- /* key: 0x9ee0 */ 0x735c,
- /* key: 0x9ee1 */ 0xffff,
- /* key: 0x9ee2 */ 0xffff,
- /* key: 0x9ee3 */ 0xffff,
- /* key: 0x9ee4 */ 0xec76,
- /* key: 0x9ee5 */ 0x735d,
- /* key: 0x9ee6 */ 0xffff,
- /* key: 0x9ee7 */ 0xec77,
- /* key: 0x9ee8 */ 0x735e,
- /* key: 0x9ee9 */ 0xffff,
- /* key: 0x9eea */ 0xffff,
- /* key: 0x9eeb */ 0xffff,
- /* key: 0x9eec */ 0xec78,
- /* key: 0x9eed */ 0xec79,
- /* key: 0x9eee */ 0xec7a,
- /* key: 0x9eef */ 0x735f,
- /* key: 0x9ef0 */ 0xec7b,
- /* key: 0x9ef1 */ 0xec7c,
- /* key: 0x9ef2 */ 0xec7d,
- /* key: 0x9ef3 */ 0xffff,
- /* key: 0x9ef4 */ 0x7360,
- /* key: 0x9ef5 */ 0xec7e,
- /* key: 0x9ef6 */ 0x7361,
- /* key: 0x9ef7 */ 0x7362,
- /* key: 0x9ef8 */ 0xed21,
- /* key: 0x9ef9 */ 0x7363,
- /* key: 0x9efa */ 0xffff,
- /* key: 0x9efb */ 0x7364,
- /* key: 0x9efc */ 0x7365,
- /* key: 0x9efd */ 0x7366,
- /* key: 0x9efe */ 0xffff,
- /* key: 0x9eff */ 0xed22,
- /* branch: 0x9f0X */ 22752,
- /* branch: 0x9f1X */ 22768,
- /* branch: 0x9f2X */ 22784,
- /* branch: 0x9f3X */ 22800,
- /* branch: 0x9f4X */ 22816,
- /* branch: 0x9f5X */ 22832,
- /* branch: 0x9f6X */ 22848,
- /* branch: 0x9f7X */ 22864,
- /* branch: 0x9f8X */ 22880,
- /* branch: 0x9f9X */ 22896,
- /* branch: 0x9faX */ 22912,
- /* branch: 0x9fbX */ 0,
- /* branch: 0x9fcX */ 0,
- /* branch: 0x9fdX */ 0,
- /* branch: 0x9feX */ 0,
- /* branch: 0x9ffX */ 0,
- /* key: 0x9f00 */ 0xffff,
- /* key: 0x9f01 */ 0xffff,
- /* key: 0x9f02 */ 0xed23,
- /* key: 0x9f03 */ 0xed24,
- /* key: 0x9f04 */ 0xffff,
- /* key: 0x9f05 */ 0xffff,
- /* key: 0x9f06 */ 0xffff,
- /* key: 0x9f07 */ 0x7367,
- /* key: 0x9f08 */ 0x7368,
- /* key: 0x9f09 */ 0xed25,
- /* key: 0x9f0a */ 0xffff,
- /* key: 0x9f0b */ 0xffff,
- /* key: 0x9f0c */ 0xffff,
- /* key: 0x9f0d */ 0xffff,
- /* key: 0x9f0e */ 0x4524,
- /* key: 0x9f0f */ 0xed26,
- /* key: 0x9f10 */ 0xed27,
- /* key: 0x9f11 */ 0xed28,
- /* key: 0x9f12 */ 0xed29,
- /* key: 0x9f13 */ 0x385d,
- /* key: 0x9f14 */ 0xed2a,
- /* key: 0x9f15 */ 0x736a,
- /* key: 0x9f16 */ 0xed2b,
- /* key: 0x9f17 */ 0xed2c,
- /* key: 0x9f18 */ 0xffff,
- /* key: 0x9f19 */ 0xed2d,
- /* key: 0x9f1a */ 0xed2e,
- /* key: 0x9f1b */ 0xed2f,
- /* key: 0x9f1c */ 0xffff,
- /* key: 0x9f1d */ 0xffff,
- /* key: 0x9f1e */ 0xffff,
- /* key: 0x9f1f */ 0xed30,
- /* key: 0x9f20 */ 0x414d,
- /* key: 0x9f21 */ 0x736b,
- /* key: 0x9f22 */ 0xed31,
- /* key: 0x9f23 */ 0xffff,
- /* key: 0x9f24 */ 0xffff,
- /* key: 0x9f25 */ 0xffff,
- /* key: 0x9f26 */ 0xed32,
- /* key: 0x9f27 */ 0xffff,
- /* key: 0x9f28 */ 0xffff,
- /* key: 0x9f29 */ 0xffff,
- /* key: 0x9f2a */ 0xed33,
- /* key: 0x9f2b */ 0xed34,
- /* key: 0x9f2c */ 0x736c,
- /* key: 0x9f2d */ 0xffff,
- /* key: 0x9f2e */ 0xffff,
- /* key: 0x9f2f */ 0xed35,
- /* key: 0x9f30 */ 0xffff,
- /* key: 0x9f31 */ 0xed36,
- /* key: 0x9f32 */ 0xed37,
- /* key: 0x9f33 */ 0xffff,
- /* key: 0x9f34 */ 0xed38,
- /* key: 0x9f35 */ 0xffff,
- /* key: 0x9f36 */ 0xffff,
- /* key: 0x9f37 */ 0xed39,
- /* key: 0x9f38 */ 0xffff,
- /* key: 0x9f39 */ 0xed3a,
- /* key: 0x9f3a */ 0xed3b,
- /* key: 0x9f3b */ 0x4921,
- /* key: 0x9f3c */ 0xed3c,
- /* key: 0x9f3d */ 0xed3d,
- /* key: 0x9f3e */ 0x736d,
- /* key: 0x9f3f */ 0xed3e,
- /* key: 0x9f40 */ 0xffff,
- /* key: 0x9f41 */ 0xed3f,
- /* key: 0x9f42 */ 0xffff,
- /* key: 0x9f43 */ 0xed40,
- /* key: 0x9f44 */ 0xed41,
- /* key: 0x9f45 */ 0xed42,
- /* key: 0x9f46 */ 0xed43,
- /* key: 0x9f47 */ 0xed44,
- /* key: 0x9f48 */ 0xffff,
- /* key: 0x9f49 */ 0xffff,
- /* key: 0x9f4a */ 0x736e,
- /* key: 0x9f4b */ 0x6337,
- /* key: 0x9f4c */ 0xffff,
- /* key: 0x9f4d */ 0xffff,
- /* key: 0x9f4e */ 0x6c5a,
- /* key: 0x9f4f */ 0x706d,
- /* key: 0x9f50 */ 0xffff,
- /* key: 0x9f51 */ 0xffff,
- /* key: 0x9f52 */ 0x736f,
- /* key: 0x9f53 */ 0xed45,
- /* key: 0x9f54 */ 0x7370,
- /* key: 0x9f55 */ 0xed46,
- /* key: 0x9f56 */ 0xed47,
- /* key: 0x9f57 */ 0xed48,
- /* key: 0x9f58 */ 0xed49,
- /* key: 0x9f59 */ 0xffff,
- /* key: 0x9f5a */ 0xed4a,
- /* key: 0x9f5b */ 0xffff,
- /* key: 0x9f5c */ 0xffff,
- /* key: 0x9f5d */ 0xed4b,
- /* key: 0x9f5e */ 0xed4c,
- /* key: 0x9f5f */ 0x7372,
- /* key: 0x9f60 */ 0x7373,
- /* key: 0x9f61 */ 0x7374,
- /* key: 0x9f62 */ 0x4e70,
- /* key: 0x9f63 */ 0x7371,
- /* key: 0x9f64 */ 0xffff,
- /* key: 0x9f65 */ 0xffff,
- /* key: 0x9f66 */ 0x7375,
- /* key: 0x9f67 */ 0x7376,
- /* key: 0x9f68 */ 0xed4d,
- /* key: 0x9f69 */ 0xed4e,
- /* key: 0x9f6a */ 0x7378,
- /* key: 0x9f6b */ 0xffff,
- /* key: 0x9f6c */ 0x7377,
- /* key: 0x9f6d */ 0xed4f,
- /* key: 0x9f6e */ 0xed50,
- /* key: 0x9f6f */ 0xed51,
- /* key: 0x9f70 */ 0xed52,
- /* key: 0x9f71 */ 0xed53,
- /* key: 0x9f72 */ 0x737a,
- /* key: 0x9f73 */ 0xed54,
- /* key: 0x9f74 */ 0xffff,
- /* key: 0x9f75 */ 0xed55,
- /* key: 0x9f76 */ 0x737b,
- /* key: 0x9f77 */ 0x7379,
- /* key: 0x9f78 */ 0xffff,
- /* key: 0x9f79 */ 0xffff,
- /* key: 0x9f7a */ 0xed56,
- /* key: 0x9f7b */ 0xffff,
- /* key: 0x9f7c */ 0xffff,
- /* key: 0x9f7d */ 0xed57,
- /* key: 0x9f7e */ 0xffff,
- /* key: 0x9f7f */ 0xffff,
- /* key: 0x9f80 */ 0xffff,
- /* key: 0x9f81 */ 0xffff,
- /* key: 0x9f82 */ 0xffff,
- /* key: 0x9f83 */ 0xffff,
- /* key: 0x9f84 */ 0xffff,
- /* key: 0x9f85 */ 0xffff,
- /* key: 0x9f86 */ 0xffff,
- /* key: 0x9f87 */ 0xffff,
- /* key: 0x9f88 */ 0xffff,
- /* key: 0x9f89 */ 0xffff,
- /* key: 0x9f8a */ 0xffff,
- /* key: 0x9f8b */ 0xffff,
- /* key: 0x9f8c */ 0xffff,
- /* key: 0x9f8d */ 0x4e36,
- /* key: 0x9f8e */ 0xffff,
- /* key: 0x9f8f */ 0xed58,
- /* key: 0x9f90 */ 0xed59,
- /* key: 0x9f91 */ 0xed5a,
- /* key: 0x9f92 */ 0xed5b,
- /* key: 0x9f93 */ 0xffff,
- /* key: 0x9f94 */ 0xed5c,
- /* key: 0x9f95 */ 0x737c,
- /* key: 0x9f96 */ 0xed5d,
- /* key: 0x9f97 */ 0xed5e,
- /* key: 0x9f98 */ 0xffff,
- /* key: 0x9f99 */ 0xffff,
- /* key: 0x9f9a */ 0xffff,
- /* key: 0x9f9b */ 0xffff,
- /* key: 0x9f9c */ 0x737d,
- /* key: 0x9f9d */ 0x6354,
- /* key: 0x9f9e */ 0xed5f,
- /* key: 0x9f9f */ 0xffff,
- /* key: 0x9fa0 */ 0x737e,
- /* key: 0x9fa1 */ 0xed60,
- /* key: 0x9fa2 */ 0xed61,
- /* key: 0x9fa3 */ 0xed62,
- /* key: 0x9fa4 */ 0xffff,
- /* key: 0x9fa5 */ 0xed63,
- /* key: 0x9fa6 */ 0xffff,
- /* key: 0x9fa7 */ 0xffff,
- /* key: 0x9fa8 */ 0xffff,
- /* key: 0x9fa9 */ 0xffff,
- /* key: 0x9faa */ 0xffff,
- /* key: 0x9fab */ 0xffff,
- /* key: 0x9fac */ 0xffff,
- /* key: 0x9fad */ 0xffff,
- /* key: 0x9fae */ 0xffff,
- /* key: 0x9faf */ 0xffff,
- /* branch: 0xf0XX */ 0,
- /* branch: 0xf1XX */ 0,
- /* branch: 0xf2XX */ 0,
- /* branch: 0xf3XX */ 0,
- /* branch: 0xf4XX */ 0,
- /* branch: 0xf5XX */ 0,
- /* branch: 0xf6XX */ 0,
- /* branch: 0xf7XX */ 0,
- /* branch: 0xf8XX */ 0,
- /* branch: 0xf9XX */ 0,
- /* branch: 0xfaXX */ 0,
- /* branch: 0xfbXX */ 0,
- /* branch: 0xfcXX */ 0,
- /* branch: 0xfdXX */ 0,
- /* branch: 0xfeXX */ 0,
- /* branch: 0xffXX */ 22944,
- /* branch: 0xff0X */ 22960,
- /* branch: 0xff1X */ 22976,
- /* branch: 0xff2X */ 22992,
- /* branch: 0xff3X */ 23008,
- /* branch: 0xff4X */ 23024,
- /* branch: 0xff5X */ 23040,
- /* branch: 0xff6X */ 23056,
- /* branch: 0xff7X */ 23072,
- /* branch: 0xff8X */ 23088,
- /* branch: 0xff9X */ 23104,
- /* branch: 0xffaX */ 0,
- /* branch: 0xffbX */ 0,
- /* branch: 0xffcX */ 0,
- /* branch: 0xffdX */ 0,
- /* branch: 0xffeX */ 23120,
- /* branch: 0xfffX */ 0,
- /* key: 0xff00 */ 0xffff,
- /* key: 0xff01 */ 0x212a,
- /* key: 0xff02 */ 0xffff,
- /* key: 0xff03 */ 0x2174,
- /* key: 0xff04 */ 0x2170,
- /* key: 0xff05 */ 0x2173,
- /* key: 0xff06 */ 0x2175,
- /* key: 0xff07 */ 0xffff,
- /* key: 0xff08 */ 0x214a,
- /* key: 0xff09 */ 0x214b,
- /* key: 0xff0a */ 0x2176,
- /* key: 0xff0b */ 0x215c,
- /* key: 0xff0c */ 0x2124,
- /* key: 0xff0d */ 0xffff,
- /* key: 0xff0e */ 0x2125,
- /* key: 0xff0f */ 0x213f,
- /* key: 0xff10 */ 0x2330,
- /* key: 0xff11 */ 0x2331,
- /* key: 0xff12 */ 0x2332,
- /* key: 0xff13 */ 0x2333,
- /* key: 0xff14 */ 0x2334,
- /* key: 0xff15 */ 0x2335,
- /* key: 0xff16 */ 0x2336,
- /* key: 0xff17 */ 0x2337,
- /* key: 0xff18 */ 0x2338,
- /* key: 0xff19 */ 0x2339,
- /* key: 0xff1a */ 0x2127,
- /* key: 0xff1b */ 0x2128,
- /* key: 0xff1c */ 0x2163,
- /* key: 0xff1d */ 0x2161,
- /* key: 0xff1e */ 0x2164,
- /* key: 0xff1f */ 0x2129,
- /* key: 0xff20 */ 0x2177,
- /* key: 0xff21 */ 0x2341,
- /* key: 0xff22 */ 0x2342,
- /* key: 0xff23 */ 0x2343,
- /* key: 0xff24 */ 0x2344,
- /* key: 0xff25 */ 0x2345,
- /* key: 0xff26 */ 0x2346,
- /* key: 0xff27 */ 0x2347,
- /* key: 0xff28 */ 0x2348,
- /* key: 0xff29 */ 0x2349,
- /* key: 0xff2a */ 0x234a,
- /* key: 0xff2b */ 0x234b,
- /* key: 0xff2c */ 0x234c,
- /* key: 0xff2d */ 0x234d,
- /* key: 0xff2e */ 0x234e,
- /* key: 0xff2f */ 0x234f,
- /* key: 0xff30 */ 0x2350,
- /* key: 0xff31 */ 0x2351,
- /* key: 0xff32 */ 0x2352,
- /* key: 0xff33 */ 0x2353,
- /* key: 0xff34 */ 0x2354,
- /* key: 0xff35 */ 0x2355,
- /* key: 0xff36 */ 0x2356,
- /* key: 0xff37 */ 0x2357,
- /* key: 0xff38 */ 0x2358,
- /* key: 0xff39 */ 0x2359,
- /* key: 0xff3a */ 0x235a,
- /* key: 0xff3b */ 0x214e,
- /* key: 0xff3c */ 0xffff,
- /* key: 0xff3d */ 0x214f,
- /* key: 0xff3e */ 0x2130,
- /* key: 0xff3f */ 0x2132,
- /* key: 0xff40 */ 0x212e,
- /* key: 0xff41 */ 0x2361,
- /* key: 0xff42 */ 0x2362,
- /* key: 0xff43 */ 0x2363,
- /* key: 0xff44 */ 0x2364,
- /* key: 0xff45 */ 0x2365,
- /* key: 0xff46 */ 0x2366,
- /* key: 0xff47 */ 0x2367,
- /* key: 0xff48 */ 0x2368,
- /* key: 0xff49 */ 0x2369,
- /* key: 0xff4a */ 0x236a,
- /* key: 0xff4b */ 0x236b,
- /* key: 0xff4c */ 0x236c,
- /* key: 0xff4d */ 0x236d,
- /* key: 0xff4e */ 0x236e,
- /* key: 0xff4f */ 0x236f,
- /* key: 0xff50 */ 0x2370,
- /* key: 0xff51 */ 0x2371,
- /* key: 0xff52 */ 0x2372,
- /* key: 0xff53 */ 0x2373,
- /* key: 0xff54 */ 0x2374,
- /* key: 0xff55 */ 0x2375,
- /* key: 0xff56 */ 0x2376,
- /* key: 0xff57 */ 0x2377,
- /* key: 0xff58 */ 0x2378,
- /* key: 0xff59 */ 0x2379,
- /* key: 0xff5a */ 0x237a,
- /* key: 0xff5b */ 0x2150,
- /* key: 0xff5c */ 0x2143,
- /* key: 0xff5d */ 0x2151,
- /* key: 0xff5e */ 0xffff,
- /* key: 0xff5f */ 0xffff,
- /* key: 0xff60 */ 0xffff,
- /* key: 0xff61 */ 0xa1,
- /* key: 0xff62 */ 0xa2,
- /* key: 0xff63 */ 0xa3,
- /* key: 0xff64 */ 0xa4,
- /* key: 0xff65 */ 0xa5,
- /* key: 0xff66 */ 0xa6,
- /* key: 0xff67 */ 0xa7,
- /* key: 0xff68 */ 0xa8,
- /* key: 0xff69 */ 0xa9,
- /* key: 0xff6a */ 0xaa,
- /* key: 0xff6b */ 0xab,
- /* key: 0xff6c */ 0xac,
- /* key: 0xff6d */ 0xad,
- /* key: 0xff6e */ 0xae,
- /* key: 0xff6f */ 0xaf,
- /* key: 0xff70 */ 0xb0,
- /* key: 0xff71 */ 0xb1,
- /* key: 0xff72 */ 0xb2,
- /* key: 0xff73 */ 0xb3,
- /* key: 0xff74 */ 0xb4,
- /* key: 0xff75 */ 0xb5,
- /* key: 0xff76 */ 0xb6,
- /* key: 0xff77 */ 0xb7,
- /* key: 0xff78 */ 0xb8,
- /* key: 0xff79 */ 0xb9,
- /* key: 0xff7a */ 0xba,
- /* key: 0xff7b */ 0xbb,
- /* key: 0xff7c */ 0xbc,
- /* key: 0xff7d */ 0xbd,
- /* key: 0xff7e */ 0xbe,
- /* key: 0xff7f */ 0xbf,
- /* key: 0xff80 */ 0xc0,
- /* key: 0xff81 */ 0xc1,
- /* key: 0xff82 */ 0xc2,
- /* key: 0xff83 */ 0xc3,
- /* key: 0xff84 */ 0xc4,
- /* key: 0xff85 */ 0xc5,
- /* key: 0xff86 */ 0xc6,
- /* key: 0xff87 */ 0xc7,
- /* key: 0xff88 */ 0xc8,
- /* key: 0xff89 */ 0xc9,
- /* key: 0xff8a */ 0xca,
- /* key: 0xff8b */ 0xcb,
- /* key: 0xff8c */ 0xcc,
- /* key: 0xff8d */ 0xcd,
- /* key: 0xff8e */ 0xce,
- /* key: 0xff8f */ 0xcf,
- /* key: 0xff90 */ 0xd0,
- /* key: 0xff91 */ 0xd1,
- /* key: 0xff92 */ 0xd2,
- /* key: 0xff93 */ 0xd3,
- /* key: 0xff94 */ 0xd4,
- /* key: 0xff95 */ 0xd5,
- /* key: 0xff96 */ 0xd6,
- /* key: 0xff97 */ 0xd7,
- /* key: 0xff98 */ 0xd8,
- /* key: 0xff99 */ 0xd9,
- /* key: 0xff9a */ 0xda,
- /* key: 0xff9b */ 0xdb,
- /* key: 0xff9c */ 0xdc,
- /* key: 0xff9d */ 0xdd,
- /* key: 0xff9e */ 0xde,
- /* key: 0xff9f */ 0xdf,
- /* key: 0xffe0 */ 0xffff,
- /* key: 0xffe1 */ 0xffff,
- /* key: 0xffe2 */ 0xffff,
- /* key: 0xffe3 */ 0x2131,
- /* key: 0xffe4 */ 0xffff,
- /* key: 0xffe5 */ 0x216f,
- /* key: 0xffe6 */ 0xffff,
- /* key: 0xffe7 */ 0xffff,
- /* key: 0xffe8 */ 0xffff,
- /* key: 0xffe9 */ 0xffff,
- /* key: 0xffea */ 0xffff,
- /* key: 0xffeb */ 0xffff,
- /* key: 0xffec */ 0xffff,
- /* key: 0xffed */ 0xffff,
- /* key: 0xffee */ 0xffff,
- /* key: 0xffef */ 0xffff,
-};
diff --git a/libjava/gnu/gcj/convert/gen-from-JIS.c b/libjava/gnu/gcj/convert/gen-from-JIS.c
deleted file mode 100644
index acb343f1bf9..00000000000
--- a/libjava/gnu/gcj/convert/gen-from-JIS.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <stdio.h>
-struct chval
-{
- unsigned char b1; /* 1st byte */
- unsigned char b2; /* 2nd byte */
- unsigned short uc; /* unicode value */
-};
-
-#define MAP(B1, B2, C) { B1, B2, C },
-
-struct chval chtab_0201[] = {
-#include "JIS0201.h"
- { 255, 255, 0}
-};
-
-struct chval chtab_0208[] = {
-#include "JIS0208.h"
- { 255, 255, 0}
-};
-
-struct chval chtab_0212[] = {
-#include "JIS0212.h"
- { 255, 255, 0}
-};
-#undef MAP
-
-struct chval sorted[] = {
-#define MAP(B1, B2, C) { B1, B2, C },
-#include "JIS0208.h"
-#undef MAP
-#define MAP(B1, B2, C) { 0x80|B1, B2, C },
-#include "JIS0212.h"
-#undef MAP
-};
-
-struct chval *chtab;
-
-int
-compare (void *p1, void *p2)
-{
- struct chval *c1 = (struct chval *) p1;
- struct chval *c2 = (struct chval *) p2;
- return (int) c1->uc - (int) c2->uc;
-}
-
-int
-main(int argc, char** argv)
-{
- FILE *out = stdout;
- int min1 = 256, max1 = 0, min2 = 256, max2 = 0, count = 0;
- int low1_uc = 0xFFFF, high1_uc = 0;
- int low2_uc = 0xFFFF, high2_uc = 0;
- int i; int row, col;
- if (strcmp (argv[1], "JIS0208") == 0)
- chtab = chtab_0208;
- else if (strcmp (argv[1], "JIS0212") == 0)
- chtab = chtab_0212;
- else if (strcmp (argv[1], "toJIS") == 0)
- {
- int i;
- for (i = 0; chtab_0201[i].b1 != 255; i++)
- {
- enter(chtab_0201[i].uc, chtab_0201[i].b2);
- }
- for (i = 0; i < 0x20; i++)
- {
- enter (i, i);
- }
- enter (127, 127);
- for (i = 0; chtab_0208[i].b1 != 255; i++)
- {
- enter(chtab_0208[i].uc,
- (chtab_0208[i].b1 << 8) | chtab_0208[i].b2);
- }
- for (i = 0; chtab_0212[i].b1 != 255; i++)
- {
- enter(chtab_0212[i].uc,
- 0x8000 | (chtab_0212[i].b1 << 8) | chtab_0212[i].b2);
- }
- print_table ("Unicode_to_JIS", stdout);
- exit(0);
- }
- else
- {
- fprintf (stderr, "bad argument!");
- exit (-1);
- }
- for (i = 0; chtab[i].b1 != 255; i++)
- {
- if (chtab[i].b1 < min1) min1 = chtab[i].b1;
- if (chtab[i].b2 < min2) min2 = chtab[i].b2;
- if (chtab[i].b1 > max1) max1 = chtab[i].b1;
- if (chtab[i].b2 > max2) max2 = chtab[i].b2;
- count++;
- }
- fprintf(stderr, "1st byte ranges from %d to %d.\n", min1, max1);
- fprintf(stderr, "2nd byte ranges from %d to %d.\n", min2, max2);
-
- fprintf(out,"/* This file is automatically generated from %s.TXT. */\n",
- argv[1]);
- fprintf(out, "unsigned short %s_to_Unicode[%d][%d] = {\n",
- argv[1], max1 - min1 + 1, max2 - min2 + 1);
- i = 0;
- for (row = min1; row <= max1; row++)
- {
- fprintf(out, "/* 1st byte: %d */ { ", row);
- if (row < chtab[i].b1)
- {
- fprintf(out, "0 }, /* unused row */\n");
- }
- else if (row > chtab[i].b1)
- {
- fprintf (stderr, "error - char table out of order!\n");
- exit (-1);
- }
- else
- {
- fprintf(out, "\n");
- for (col = min2; col <= max2; col++)
- {
- if (row == chtab[i].b1 && col == chtab[i].b2)
- {
- int uc = chtab[i].uc;
- if (uc < 0x2000)
- {
- if (uc > high1_uc)
- high1_uc = uc;
- if (uc < low1_uc)
- low1_uc = uc;
- }
- else
- {
- if (uc > high2_uc)
- high2_uc = uc;
- if (uc < low2_uc)
- low2_uc = uc;
- }
- fprintf (out, " /* 2nd byte: %d */ 0x%04x",
- chtab[i].b2, uc);
- i++;
- }
- else if (row < chtab[i].b1
- || (row == chtab[i].b1 && col < chtab[i].b2))
- {
- fprintf (out, " 0");
- }
- else
- {
- fprintf (stderr, "error - char table our of order!\n");
- exit (-1);
- }
- if (col != max2)
- fprintf (out, ",\n");
- }
- fprintf(out, row == max1 ? "}\n" : "},\n");
- }
- }
- fprintf(out, "};\n");
- fprintf(stderr, "total number of characters is %d.\n", count);
- fprintf(stderr, "Range is 0x%04x-0x%04x and 0x%04x-0x%04x.\n",
- low1_uc, high1_uc, low2_uc, high2_uc);
- return 0;
-}
diff --git a/libjava/gnu/gcj/convert/make-trie.c b/libjava/gnu/gcj/convert/make-trie.c
deleted file mode 100644
index e89f70c5c9f..00000000000
--- a/libjava/gnu/gcj/convert/make-trie.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-typedef struct trie_node
-{
- int key;
- int level;
- int position;
- union
- {
- int value;
- struct trie_node *node;
- } u[16];
-} trie_node;
-
-trie_node *
-make_node ()
-{
- trie_node *node = (trie_node *) malloc (sizeof(trie_node));
- if (node == NULL)
- abort();
- return node;
-}
-
-trie_node *
-make_leaf_node ()
-{
- trie_node *node = make_node ();
- int i = 16;
- while (--i >= 0)
- node->u[i].value = -1;
- return node;
-}
-
-trie_node *
-make_branch_node ()
-{
- trie_node *node = make_node ();
- int i = 16;
- while (--i >= 0)
- node->u[i].node = NULL;
- return node;
-}
-
-
-trie_node *table = NULL;
-
-void
-enter (int key, int value)
-{
- trie_node **ptr = &table;
- int shift = 12;
- for (; shift > 0; shift -= 4)
- {
- if (*ptr == NULL)
- {
- *ptr = make_branch_node ();
- (*ptr)->key = key & (0xFFFF << (shift + 4));
- (*ptr)->level = shift / 4;
- }
- ptr = &(*ptr)->u[(key >> shift) & 0xF].node;
- }
- if (*ptr == NULL)
- {
- *ptr = make_leaf_node ();
- (*ptr)->key = key & 0xFFF0;
- (*ptr)->level = 0;
- }
- if ((*ptr)->u[key & 0xF].value != -1
- && (*ptr)->u[key & 0xF].value != value)
- fprintf(stderr, "duplicate value for key: %d, %d!\n", key, value);
- (*ptr)->u[key & 0xF].value = value;
-}
-
-int assigned = 0;
-
-void
-assign (trie_node *node, int level)
-{
- int i;
- if (node == NULL)
- return;
- if (node->level != level)
- abort();
- node->position = assigned;
- assigned++;
- if (level == 0)
- return;
- for (i = 0; i < 16; i++)
- {
- assign (node->u[i].node, level-1);
- }
-}
-
-int next_node_index_toprint = 0;
-
-void
-print (trie_node *node, int index, int level, FILE *out)
-{
- int i;
- if (node->key != index || node->level != level)
- abort();
- if (level == 0) /* leaf node */
- {
- for (i = 0; i < 16; i++)
- {
- int node_index = index | (i << (level * 4));
- if (node_index < next_node_index_toprint)
- abort();
- if (node->u[i].value == -1)
- fprintf (out, " /* key: 0x%x */ 0xffff,\n", node_index);
- else
- fprintf (out, " /* key: 0x%x */ 0x%x,\n",
- node_index, node->u[i].value);
- next_node_index_toprint = node_index + 1;
- }
- }
- else
- {
- for (i = 0; i < 16; i++)
- {
- int node_index = index | (i << (level * 4));
- fprintf (out, " /* branch: 0x%0*x%.*s */ ",
- 4 - level, node_index >> ( 4 * level),
- level, "XXXX");
- if (node->u[i].node == NULL)
- fprintf (out, "0,\n");
- else
- fprintf (out, "%d,\n", 16 * node->u[i].node->position);
- }
-
- for (i = 0; i < 16; i++)
- {
- int node_index = index | (i << (level * 4));
- if (node->u[i].node != NULL)
- print (node->u[i].node, node_index, level-1, out);
- }
- }
-}
-
-void
-print_table (char *name, FILE *out)
-{
- assign (table, 3);
-
- fprintf(out, "/* This file is automatically generated. */\n");
- fprintf(out, "unsigned short %s[] = {\n", name);
- print (table, 0x0000, 3, out);
- fprintf(out, "};\n");
-}
-
-#if 0
-int
-main (int argc, char **argv)
-{
- int count = 0;
- for (;;)
- {
- int key, value;
- int i = scanf (" 0x%x 0x%x", &key, &value);
- if (i < 2)
- break;
- count++;
- enter (key, value);
- }
- return 0;
-}
-#endif
diff --git a/libjava/gnu/gcj/convert/natIconv.cc b/libjava/gnu/gcj/convert/natIconv.cc
deleted file mode 100644
index fe79dc12515..00000000000
--- a/libjava/gnu/gcj/convert/natIconv.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-// Input_iconv.java -- Java side of iconv() reader.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Tom Tromey <tromey@redhat.com>. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <gnu/gcj/convert/Input_iconv.h>
-#include <gnu/gcj/convert/Output_iconv.h>
-#include <java/io/UnsupportedEncodingException.h>
-
-#ifdef HAVE_ICONV
-#include <iconv.h>
-
-template<typename T>
-static inline size_t
-iconv_adapter (size_t (*iconv_f) (iconv_t, T, size_t *, char **, size_t *),
- iconv_t handle, char **inbuf, size_t *inavail,
- char **outbuf, size_t *outavail)
-{
- return (*iconv_f) (handle, (T) inbuf, inavail, outbuf, outavail);
-}
-
-#endif
-
-void
-gnu::gcj::convert::Input_iconv::init (jstring encoding)
-{
-#ifdef HAVE_ICONV
- jsize len = _Jv_GetStringUTFLength (encoding);
- char buffer[len];
- _Jv_GetStringUTFRegion (encoding, 0, len, buffer);
-
- iconv_t h = iconv_open ("UCS-2", buffer);
- if (h == (iconv_t) -1)
- JvThrow (new java::io::UnsupportedEncodingException);
-
- JvAssert (h != NULL);
- handle = reinterpret_cast<gnu::gcj::RawData *> (h);
-#else /* HAVE_ICONV */
- // If no iconv, just throw an exception.
- JvThrow (new java::io::UnsupportedEncodingException);
-#endif /* HAVE_ICONV */
-}
-
-void
-gnu::gcj::convert::Input_iconv::finalize (void)
-{
-#ifdef HAVE_ICONV
- if (handle != NULL)
- {
- iconv_close ((iconv_t) handle);
- handle = NULL;
- }
-#endif /* HAVE_ICONV */
-}
-
-jint
-gnu::gcj::convert::Input_iconv::read (jcharArray outbuffer,
- jint outpos, jint count)
-{
-#ifdef HAVE_ICONV
- jbyte *bytes = elements (inbuffer);
- jchar *out = elements (outbuffer);
- size_t inavail = inlength - inpos;
- size_t old_in = inavail;
- size_t outavail = count;
- size_t old_out = outavail;
-
- char *inbuf = (char *) &bytes[inpos];
- char *outbuf = (char *) &out[outpos];
-
- size_t r = iconv_adapter (iconv, (iconv_t) handle,
- &inbuf, &inavail,
- &outbuf, &outavail);
- // FIXME: what if R==-1?
-
- inpos += old_in - inavail;
- return old_out - outavail;
-#else /* HAVE_ICONV */
- return -1;
-#endif /* HAVE_ICONV */
-}
-
-void
-gnu::gcj::convert::Output_iconv::init (jstring encoding)
-{
-#ifdef HAVE_ICONV
- jsize len = _Jv_GetStringUTFLength (encoding);
- char buffer[len];
- _Jv_GetStringUTFRegion (encoding, 0, len, buffer);
-
- iconv_t h = iconv_open (buffer, "UCS-2");
- if (h == (iconv_t) -1)
- JvThrow (new java::io::UnsupportedEncodingException);
-
- JvAssert (h != NULL);
- handle = reinterpret_cast<gnu::gcj::RawData *> (h);
-#else /* HAVE_ICONV */
- // If no iconv, just throw an exception.
- JvThrow (new java::io::UnsupportedEncodingException);
-#endif /* HAVE_ICONV */
-}
-
-void
-gnu::gcj::convert::Output_iconv::finalize (void)
-{
-#ifdef HAVE_ICONV
- if (handle != NULL)
- {
- iconv_close ((iconv_t) handle);
- handle = NULL;
- }
-#endif /* HAVE_ICONV */
-}
-
-jint
-gnu::gcj::convert::Output_iconv::write (jcharArray inbuffer,
- jint inpos, jint count)
-{
-#ifdef HAVE_ICONV
- jchar *chars = elements (inbuffer);
- jbyte *out = elements (buf);
-
- size_t inavail = count;
- size_t old_in = count;
-
- size_t outavail = buf->length - count;
- size_t old_out = outavail;
-
- char *inbuf = (char *) &chars[inpos];
- char *outbuf = (char *) &out[count];
-
- size_t r = iconv_adapter (iconv, (iconv_t) handle,
- &inbuf, &inavail,
- &outbuf, &outavail);
- // FIXME: what if R==-1?
-
- count += old_out - outavail;
- return old_in - inavail;
-#else /* HAVE_ICONV */
- return -1;
-#endif /* HAVE_ICONV */
-}
diff --git a/libjava/gnu/gcj/convert/natInput_EUCJIS.cc b/libjava/gnu/gcj/convert/natInput_EUCJIS.cc
deleted file mode 100644
index 42562b9cb7d..00000000000
--- a/libjava/gnu/gcj/convert/natInput_EUCJIS.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <gnu/gcj/convert/Input_EUCJIS.h>
-
-#define ERROR_CHAR 0xFFFD
-
-extern unsigned short JIS0208_to_Unicode[84][94];
-extern unsigned short JIS0212_to_Unicode[76][94];
-
-jint
-gnu::gcj::convert::Input_EUCJIS::read(jcharArray outbuffer, jint outpos,
- jint count)
-{
- jint start_outpos = outpos;
- for (;;)
- {
- if (outpos - start_outpos >= count)
- break;
- if (inpos >= inlength)
- break;
- int b = ((unsigned char*) elements(inbuffer))[inpos++];
- if (codeset == 0) // ASCII or JIS-Roman
- {
- if (b < 128)
- {
-#if 1
- // Technically, we should translate 0x5c to Yen symbol;
- // in practice, it is not clear.
- if (b == 0x5c)
- b = 0x00A5; // Yen sign.
-#endif
- elements(outbuffer)[outpos++] = (char) b;
- }
- else
- {
- if (b == 0x8E) // SS2
- codeset = 2;
- else if (b == 0x8F) // SS3
- codeset = 3;
- else
- {
- codeset = 1;
- first_byte = b;
- }
- }
- }
- else if (codeset == 1) // JIS X 0208:1997
- {
- first_byte -= 0x80 + 33;
- b -= 0x80 + 33;
- if ((unsigned) first_byte >= 84 || (unsigned) b >= 94)
- b = ERROR_CHAR;
- else
- {
- b = JIS0208_to_Unicode[first_byte][b];
- if (b == 0)
- b = ERROR_CHAR;
- }
- elements(outbuffer)[outpos++] = b;
- codeset = 0;
- }
- else if (codeset == 2) // Half-width katakana
- {
- if (b >= 0xA1 && b <= 0xDF)
- b += 0xFF61 - 0xA1;
- else
- b = ERROR_CHAR;
- elements(outbuffer)[outpos++] = b;
- codeset = 0;
- }
- else if (codeset == 3) // second byte of JIS X 0212-1990
- {
- first_byte = b;
- codeset = 4;
- }
- else // codeset == 4 // third byte of JIS X 0212-1990
- {
- first_byte -= 0x80 + 34;
- b -= 0x80 + 33;
- if ((unsigned) first_byte >= 76 || (unsigned) b >= 94)
- b = ERROR_CHAR;
- else
- {
- b = JIS0208_to_Unicode[first_byte][b];
- if (b == 0)
- b = ERROR_CHAR;
- }
- elements(outbuffer)[outpos++] = b;
- codeset = 0;
- }
- }
- return outpos - start_outpos;
-}
diff --git a/libjava/gnu/gcj/convert/natInput_SJIS.cc b/libjava/gnu/gcj/convert/natInput_SJIS.cc
deleted file mode 100644
index c7f11ade078..00000000000
--- a/libjava/gnu/gcj/convert/natInput_SJIS.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <gnu/gcj/convert/Input_SJIS.h>
-
-#define ERROR_CHAR 0xFFFD
-
-extern unsigned short JIS0208_to_Unicode[84][94];
-extern unsigned short JIS0212_to_Unicode[76][94];
-
-jint
-gnu::gcj::convert::Input_SJIS::read(jcharArray outbuffer, jint outpos,
- jint count)
-{
- jint start_outpos = outpos;
- for (;;)
- {
- if (outpos - start_outpos >= count)
- break;
- if (inpos >= inlength)
- break;
- int b = ((unsigned char*) elements(inbuffer))[inpos++];
- if (first_byte == 0)
- {
- if (b < 128)
- {
-#if 1
- // Technically, we should translate 0x5c to Yen symbol;
- // in practice, it is not clear.
- if (b == 0x5c)
- b = 0x00A5; // Yen sign.
-#endif
- elements(outbuffer)[outpos++] = (char) b;
- }
- else if (b >= 0xA1 && b <= 0xDF)
- {
- b += 0xFF61 - 0xA1;
- elements(outbuffer)[outpos++] = b;
- }
- else
- first_byte = b;
- }
- else
- {
- // From Lunde: "CJKV Informatio Processing", O'Reilly, 1999, p 420:
- bool adjust = b < 159;
- int rowOffset = first_byte < 160 ? 112 : 176;
- int cellOffset = adjust ? (b > 127 ? 32 : 31) : 126;
- first_byte = ((first_byte - rowOffset) << 1) - adjust;
- b -= cellOffset;
-
- first_byte -= 33;
- b -= 33;
-
- if ((unsigned) first_byte >= 84 || (unsigned) b >= 94)
- b = ERROR_CHAR;
- else
- {
- b = JIS0208_to_Unicode[first_byte][b];
- if (b == 0)
- b = ERROR_CHAR;
- }
- elements(outbuffer)[outpos++] = b;
-
- first_byte = 0;
- }
- }
- return outpos - start_outpos;
-}
diff --git a/libjava/gnu/gcj/convert/natOutput_EUCJIS.cc b/libjava/gnu/gcj/convert/natOutput_EUCJIS.cc
deleted file mode 100644
index 533fb9f1b80..00000000000
--- a/libjava/gnu/gcj/convert/natOutput_EUCJIS.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <gnu/gcj/convert/Output_EUCJIS.h>
-
-/* A trie structure to map unicode values to JIS codes.
- * code == -1: the character is undefined.
- * code >= 0 && code < 128: JIS-Roman - mostly Ascii.
- * code >= 128 && code < 256: Half-width Katakana.
- * code >= 256 && code < 0x8000: JIS X 0208:1997.
- * code >= 0x8000 && code < 0xFFFF: JIX X 0212-1990.
- */
-
-extern unsigned short Unicode_to_JIS[];
-
-int
-trie_lookup (unsigned short *trie, unsigned short key)
-{
- unsigned short branch = trie[(key >> 12) & 0xf];
- if (branch == 0)
- return -1;
- branch = trie[branch + ((key >> 8) & 0xf)];
- if (branch == 0)
- return -1;
- branch = trie[branch + ((key >> 4) & 0xf)];
- if (branch == 0)
- return -1;
- return trie[branch + (key & 0xf)];
-}
-
-static jint
-convert_TO_EUCJIS (gnu::gcj::convert::Output_EUCJIS *encoder,
- jchar *ptr, jint inlength)
-{
- int orig_inlength = inlength;
- jint outbuf_length = encoder->buf->length;
- for (;;)
- {
- if (encoder->count >= outbuf_length)
- break;
- if (encoder->pending1 >= 0)
- {
- elements(encoder->buf)[encoder->count++] = encoder->pending1;
- encoder->pending1 = encoder->pending2;
- encoder->pending2 = -1;
- continue;
- }
- if (inlength == 0)
- break;
- jchar ch = *ptr++;
- inlength--;
- unsigned short val = trie_lookup(Unicode_to_JIS, ch);
- if (val < 0x80)
- {
- if (val == 0xffff)
- val = '?';
- }
- else if (val <= 0xFF)
- {
- encoder->pending1 = val;
- encoder->pending2 = -1;
- val = 0x8e;
- }
- else if (val < 0x8000)
- {
- val |= 0x8080;
- encoder->pending1 = val & 0xff;
- val = val >> 8;
- encoder->pending2 = -1;
- }
- else
- {
- val |= 0x8080;
- encoder->pending1 = val >> 8;
- encoder->pending2 = val & 0xff;
- val = 0x8f;
- }
- elements(encoder->buf)[encoder->count++] = val;
- }
- return orig_inlength - inlength;
-}
-
-jint
-gnu::gcj::convert::Output_EUCJIS::write (jcharArray inbuffer,
- jint inpos, jint inlength)
-{
- return convert_TO_EUCJIS(this, &elements(inbuffer)[inpos], inlength);
-}
-
-jint
-gnu::gcj::convert::Output_EUCJIS::write (jstring str, jint inpos,
- jint inlength, jcharArray)
-{
- return convert_TO_EUCJIS(this, _Jv_GetStringChars(str)+inpos, inlength);
-}
diff --git a/libjava/gnu/gcj/convert/natOutput_SJIS.cc b/libjava/gnu/gcj/convert/natOutput_SJIS.cc
deleted file mode 100644
index 3cde58dc1ba..00000000000
--- a/libjava/gnu/gcj/convert/natOutput_SJIS.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <gnu/gcj/convert/Output_SJIS.h>
-
-extern unsigned short Unicode_to_JIS[];
-
-extern int trie_lookup (unsigned short *trie, unsigned short key);
-
-static jint
-convert_TO_SJIS (gnu::gcj::convert::Output_SJIS *encoder,
- jchar *ptr, jint inlength)
-{
- int orig_inlength = inlength;
- jint outbuf_length = encoder->buf->length;
- for (;;)
- {
- if (encoder->count >= outbuf_length)
- break;
- if (encoder->pending >= 0)
- {
- elements(encoder->buf)[encoder->count++] = encoder->pending;
- encoder->pending = -1;
- continue;
- }
- if (inlength == 0)
- break;
- jchar ch = *ptr++;
- inlength--;
- unsigned short val = trie_lookup(Unicode_to_JIS, ch);
- if (val < 0xFF)
- {
- if (val == 0xffff)
- val = '?';
- }
- else
- {
- int b1 = val >> 8;
- int b2 = val & 0xff;
- // From Lunde: "CJKV Informatio Processing", O'Reilly, 1999:
- int rowOffset = b1 < 95 ? 112 : 176;
- int cellOffset = (b1 & 1) != 0 ? (b2 > 95 ? 32 : 31) : 126;
- b1 = ((b1 + 1) >> 1) + rowOffset;
- b2 += cellOffset;
- val = b1;
- encoder->pending = b2;
- }
- elements(encoder->buf)[encoder->count++] = val;
- }
- return orig_inlength - inlength;
-}
-
-jint
-gnu::gcj::convert::Output_SJIS::write (jcharArray inbuffer,
- jint inpos, jint inlength)
-{
- return convert_TO_SJIS(this, &elements(inbuffer)[inpos], inlength);
-}
-
-jint
-gnu::gcj::convert::Output_SJIS::write (jstring str, jint inpos,
- jint inlength, jcharArray)
-{
- return convert_TO_SJIS(this, _Jv_GetStringChars(str)+inpos, inlength);
-}
diff --git a/libjava/gnu/gcj/io/DefaultMimeTypes.java b/libjava/gnu/gcj/io/DefaultMimeTypes.java
deleted file mode 100644
index 0be0dc5023c..00000000000
--- a/libjava/gnu/gcj/io/DefaultMimeTypes.java
+++ /dev/null
@@ -1,139 +0,0 @@
-// Do not edit this file! Create a new version with MakeDefaultMimeTypes.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.io;
-
-public class DefaultMimeTypes
-{
- public static final String[] types = {
- "midi", "audio/midi"
- , "sit", "application/x-stuffit"
- , "ram", "audio/x-pn-realaudio"
- , "ez", "application/andrew-inset"
- , "jpeg", "image/jpeg"
- , "sv4crc", "application/x-sv4crc"
- , "sv4cpio", "application/x-sv4cpio"
- , "txt", "text/plain"
- , "spl", "application/x-futuresplash"
- , "ras", "image/x-cmu-raster"
- , "sh", "application/x-sh"
- , "dcr", "application/x-director"
- , "msh", "model/mesh"
- , "swf", "application/x-shockwave-flash"
- , "hdf", "application/x-hdf"
- , "bcpio", "application/x-bcpio"
- , "zip", "application/zip"
- , "gif", "image/gif"
- , "me", "application/x-troff-me"
- , "gtar", "application/x-gtar"
- , "tex", "application/x-tex"
- , "xyz", "chemical/x-pdb"
- , "hqx", "application/mac-binhex40"
- , "ms", "application/x-troff-ms"
- , "oda", "application/oda"
- , "vcd", "application/x-cdlink"
- , "aifc", "audio/x-aiff"
- , "skd", "application/x-koan"
- , "smil", "application/smil"
- , "asc", "text/plain"
- , "aiff", "audio/x-aiff"
- , "xml", "text/xml"
- , "tr", "application/x-troff"
- , "nc", "application/x-netcdf"
- , "dxr", "application/x-director"
- , "skm", "application/x-koan"
- , "wrl", "model/vrml"
- , "tsv", "text/tab-separated-values"
- , "mpeg", "video/mpeg"
- , "skp", "application/x-koan"
- , "src", "application/x-wais-source"
- , "rpm", "application/x-rpm"
- , "skt", "application/x-koan"
- , "ai", "application/postscript"
- , "cpt", "application/mac-compactpro"
- , "mp2", "audio/mpeg"
- , "man", "application/x-troff-man"
- , "mp3", "audio/mpeg"
- , "mesh", "model/mesh"
- , "igs", "model/iges"
- , "shar", "application/x-shar"
- , "au", "audio/basic"
- , "texi", "application/x-texinfo"
- , "cpio", "application/x-cpio"
- , "jpe", "image/jpeg"
- , "lzh", "application/octet-stream"
- , "jpg", "image/jpeg"
- , "cdf", "application/x-netcdf"
- , "etx", "text/x-setext"
- , "texinfo", "application/x-texinfo"
- , "sgml", "text/sgml"
- , "roff", "application/x-troff"
- , "pgm", "image/x-portable-graymap"
- , "pgn", "application/x-chess-pgn"
- , "bin", "application/octet-stream"
- , "png", "image/png"
- , "tar", "application/x-tar"
- , "mid", "audio/midi"
- , "mov", "video/quicktime"
- , "movie", "video/x-sgi-movie"
- , "mif", "application/vnd.mif"
- , "pnm", "image/x-portable-anymap"
- , "mpga", "audio/mpeg"
- , "smi", "application/smil"
- , "t", "application/x-troff"
- , "tiff", "image/tiff"
- , "xbm", "image/x-xbitmap"
- , "htm", "text/html"
- , "mpe", "video/mpeg"
- , "dms", "application/octet-stream"
- , "mpg", "video/mpeg"
- , "lha", "application/octet-stream"
- , "latex", "application/x-latex"
- , "ps", "application/postscript"
- , "sgm", "text/sgml"
- , "tif", "image/tiff"
- , "ice", "x-conference/x-cooltalk"
- , "snd", "audio/basic"
- , "html", "text/html"
- , "pbm", "image/x-portable-bitmap"
- , "xpm", "image/x-xpixmap"
- , "iges", "model/iges"
- , "aif", "audio/x-aiff"
- , "avi", "video/x-msvideo"
- , "csh", "application/x-csh"
- , "wav", "audio/x-wav"
- , "xwd", "image/x-xwindowdump"
- , "js", "application/x-javascript"
- , "silo", "model/mesh"
- , "vrml", "model/vrml"
- , "tcl", "application/x-tcl"
- , "css", "text/css"
- , "eps", "application/postscript"
- , "class", "application/octet-stream"
- , "qt", "video/quicktime"
- , "doc", "application/msword"
- , "ustar", "application/x-ustar"
- , "ppm", "image/x-portable-pixmap"
- , "ppt", "application/vnd.ms-powerpoint"
- , "ra", "audio/x-realaudio"
- , "rgb", "image/x-rgb"
- , "rtf", "text/rtf"
- , "kar", "audio/midi"
- , "dvi", "application/x-dvi"
- , "rm", "audio/x-pn-realaudio"
- , "exe", "application/octet-stream"
- , "pdb", "chemical/x-pdb"
- , "pdf", "application/pdf"
- , "rtx", "text/richtext"
- , "dir", "application/x-director"
- , "ief", "image/ief"
- };
-}
-
diff --git a/libjava/gnu/gcj/io/MimeTypes.java b/libjava/gnu/gcj/io/MimeTypes.java
deleted file mode 100644
index ed08479f046..00000000000
--- a/libjava/gnu/gcj/io/MimeTypes.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.io;
-
-import java.util.*;
-import java.io.*;
-
-public class MimeTypes
-{
- private static Hashtable mime_types;
-
- public static void fillFromFile (Hashtable table, String fname)
- throws IOException
- {
- LineNumberReader reader =
- new LineNumberReader (new FileReader (fname));
-
- while (reader.ready ())
- {
- StringTokenizer tokenizer =
- new StringTokenizer (reader.readLine ());
-
- try
- {
- String t = tokenizer.nextToken ();
-
- if (! t.startsWith ("#"))
- {
- while (true)
- {
- // Read the next extension
- String e = tokenizer.nextToken ();
- if ((e != null) && (! e.startsWith ("#")))
- table.put (e, t);
- else
- break;
- }
- }
- } catch (NoSuchElementException ex) {
- // Do nothing.
- }
- }
- }
-
- // This is the primary interface to this class.
- public static String getMimeTypeFromExtension (String extension)
- {
- if (mime_types == null)
- {
- mime_types = new Hashtable ();
-
- // First populate the hash table with the default mime type
- // mappings.
- int i = DefaultMimeTypes.types.length;
- while (i > 1)
- {
- mime_types.put (DefaultMimeTypes.types[i - 2],
- DefaultMimeTypes.types[i - 1]);
- i = i - 2;
- }
-
- // Now read mime types from /etc/mime.types if it exists.
- // This should override the default values.
- try {
- fillFromFile (mime_types, "/etc/mime.types");
- } catch (IOException ex) {
- // Do nothing.
- }
-
- // Now read mime types from ~/.mime.types.
- // FIXME: We can't currently parse this file.
- }
-
- String type = (String) mime_types.get (extension);
- if (type == null)
- return ("application/octet-stream");
- else
- return (type);
- }
-}
diff --git a/libjava/gnu/gcj/io/SimpleSHSStream.java b/libjava/gnu/gcj/io/SimpleSHSStream.java
deleted file mode 100644
index bcf8ea57450..00000000000
--- a/libjava/gnu/gcj/io/SimpleSHSStream.java
+++ /dev/null
@@ -1,66 +0,0 @@
-// SimpleSHSStream.java
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.io;
-import java.io.Serializable;
-import java.io.*;
-import java.lang.reflect.*;
-
-public class SimpleSHSStream extends java.io.DataOutputStream
-{
- int counter;
-
- final int SHS_BLOCKSIZE = 64;
- final int SHS_DIGESTSIZE = 20;
-
- byte buf[];
- byte shs_info[];
-
- native static byte [] shsFinal (byte info[]);
- native static void shsUpdate (byte info[], byte buf[], int count);
- native static byte [] shsInit ();
-
- private void update (byte b)
- {
- buf [counter++] = b;
- if (counter % SHS_BLOCKSIZE == 0)
- {
- counter = 0;
- shsUpdate (shs_info, buf, SHS_BLOCKSIZE);
- }
- }
-
- public void write (int b) throws IOException
- {
- update ((byte)b);
- super.write (b);
- }
-
- public void write (byte[] b, int off, int len) throws IOException
- {
- for (int i = 0; i < len; i++)
- write (b[i+off]);
- }
-
- public byte[] digest()
- {
- shsUpdate (shs_info, buf, counter);
- return shsFinal (shs_info);
- }
-
- public SimpleSHSStream (OutputStream out)
- {
- super (out);
- buf = new byte[SHS_BLOCKSIZE];
- shs_info = shsInit ();
- counter = 0;
- }
-}
-
diff --git a/libjava/gnu/gcj/io/natSimpleSHSStream.cc b/libjava/gnu/gcj/io/natSimpleSHSStream.cc
deleted file mode 100644
index 2cd213b809b..00000000000
--- a/libjava/gnu/gcj/io/natSimpleSHSStream.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-// natSimpleSHSStream.cc
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <gnu/gcj/io/SimpleSHSStream.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#define PROTO
-#include "shs.h"
-
-
-jbyteArray
-gnu::gcj::io::SimpleSHSStream::shsFinal (jbyteArray shs_info)
-{
- SHS_INFO *info = (SHS_INFO *)elements(shs_info);
- ::shsFinal (info);
-
- jbyteArray buffer = JvNewByteArray (SHS_DIGESTSIZE);
- memcpy (elements (buffer), (jbyte *)&info->digest, SHS_DIGESTSIZE);
- return buffer;
-}
-
-void
-gnu::gcj::io::SimpleSHSStream::shsUpdate (jbyteArray shs_info, jbyteArray buf, jint count)
-{
- SHS_INFO *info = (SHS_INFO *)elements(shs_info);
- BYTE *buffer = (BYTE *)elements(buf);
-
- ::shsUpdate (info, buffer, count);
-}
-
-jbyteArray
-gnu::gcj::io::SimpleSHSStream::shsInit ()
-{
- jbyteArray result = JvNewByteArray (sizeof (SHS_INFO));
- SHS_INFO *info = (SHS_INFO *)elements(result);
-
- ::shsInit (info);
- return result;
-}
-
-
diff --git a/libjava/gnu/gcj/io/shs.cc b/libjava/gnu/gcj/io/shs.cc
deleted file mode 100644
index 96b4f560352..00000000000
--- a/libjava/gnu/gcj/io/shs.cc
+++ /dev/null
@@ -1,280 +0,0 @@
-
-/* --------------------------------- SHS.CC ------------------------------- */
-
-/*
- * NIST proposed Secure Hash Standard.
- *
- * Written 2 September 1992, Peter C. Gutmann.
- * This implementation placed in the public domain.
- *
- * Comments to pgut1@cs.aukuni.ac.nz
- */
-
-#include <string.h>
-#include "shs.h"
-
-/* The SHS f()-functions */
-
-#define f1(x,y,z) ( ( x & y ) | ( ~x & z ) ) /* Rounds 0-19 */
-#define f2(x,y,z) ( x ^ y ^ z ) /* Rounds 20-39 */
-#define f3(x,y,z) ( ( x & y ) | ( x & z ) | ( y & z ) ) /* Rounds 40-59 */
-#define f4(x,y,z) ( x ^ y ^ z ) /* Rounds 60-79 */
-
-/* The SHS Mysterious Constants */
-
-#define K1 0x5A827999L /* Rounds 0-19 */
-#define K2 0x6ED9EBA1L /* Rounds 20-39 */
-#define K3 0x8F1BBCDCL /* Rounds 40-59 */
-#define K4 0xCA62C1D6L /* Rounds 60-79 */
-
-/* SHS initial values */
-
-#define h0init 0x67452301L
-#define h1init 0xEFCDAB89L
-#define h2init 0x98BADCFEL
-#define h3init 0x10325476L
-#define h4init 0xC3D2E1F0L
-
-/* 32-bit rotate - kludged with shifts */
-
-#define S(n,X) ((X << n) | (X >> (32 - n)))
-
-/* The initial expanding function */
-
-#define expand(count) W [count] = W [count - 3] ^ W [count - 8] ^ W [count - 14] ^ W [count - 16]
-
-/* The four SHS sub-rounds */
-
-#define subRound1(count) \
- { \
- temp = S (5, A) + f1 (B, C, D) + E + W [count] + K1; \
- E = D; \
- D = C; \
- C = S (30, B); \
- B = A; \
- A = temp; \
- }
-
-#define subRound2(count) \
- { \
- temp = S (5, A) + f2 (B, C, D) + E + W [count] + K2; \
- E = D; \
- D = C; \
- C = S (30, B); \
- B = A; \
- A = temp; \
- }
-
-#define subRound3(count) \
- { \
- temp = S (5, A) + f3 (B, C, D) + E + W [count] + K3; \
- E = D; \
- D = C; \
- C = S (30, B); \
- B = A; \
- A = temp; \
- }
-
-#define subRound4(count) \
- { \
- temp = S (5, A) + f4 (B, C, D) + E + W [count] + K4; \
- E = D; \
- D = C; \
- C = S (30, B); \
- B = A; \
- A = temp; \
- }
-
-/* The two buffers of 5 32-bit words */
-
-LONG h0, h1, h2, h3, h4;
-LONG A, B, C, D, E;
-
-local void byteReverse OF((LONG *buffer, int byteCount));
-void shsTransform OF((SHS_INFO *shsInfo));
-
-/* Initialize the SHS values */
-
-void shsInit (SHS_INFO *shsInfo)
-{
- /* Set the h-vars to their initial values */
- shsInfo->digest [0] = h0init;
- shsInfo->digest [1] = h1init;
- shsInfo->digest [2] = h2init;
- shsInfo->digest [3] = h3init;
- shsInfo->digest [4] = h4init;
-
- /* Initialise bit count */
- shsInfo->countLo = shsInfo->countHi = 0L;
-}
-
-/*
- * Perform the SHS transformation. Note that this code, like MD5, seems to
- * break some optimizing compilers - it may be necessary to split it into
- * sections, eg based on the four subrounds
- */
-
-void shsTransform (SHS_INFO *shsInfo)
-{
- LONG W [80], temp;
- int i;
-
- /* Step A. Copy the data buffer into the local work buffer */
- for (i = 0; i < 16; i++)
- W [i] = shsInfo->data [i];
-
- /* Step B. Expand the 16 words into 64 temporary data words */
- expand (16); expand (17); expand (18); expand (19); expand (20);
- expand (21); expand (22); expand (23); expand (24); expand (25);
- expand (26); expand (27); expand (28); expand (29); expand (30);
- expand (31); expand (32); expand (33); expand (34); expand (35);
- expand (36); expand (37); expand (38); expand (39); expand (40);
- expand (41); expand (42); expand (43); expand (44); expand (45);
- expand (46); expand (47); expand (48); expand (49); expand (50);
- expand (51); expand (52); expand (53); expand (54); expand (55);
- expand (56); expand (57); expand (58); expand (59); expand (60);
- expand (61); expand (62); expand (63); expand (64); expand (65);
- expand (66); expand (67); expand (68); expand (69); expand (70);
- expand (71); expand (72); expand (73); expand (74); expand (75);
- expand (76); expand (77); expand (78); expand (79);
-
- /* Step C. Set up first buffer */
- A = shsInfo->digest [0];
- B = shsInfo->digest [1];
- C = shsInfo->digest [2];
- D = shsInfo->digest [3];
- E = shsInfo->digest [4];
-
- /* Step D. Serious mangling, divided into four sub-rounds */
- subRound1 (0); subRound1 (1); subRound1 (2); subRound1 (3);
- subRound1 (4); subRound1 (5); subRound1 (6); subRound1 (7);
- subRound1 (8); subRound1 (9); subRound1 (10); subRound1 (11);
- subRound1 (12); subRound1 (13); subRound1 (14); subRound1 (15);
- subRound1 (16); subRound1 (17); subRound1 (18); subRound1 (19);
-
- subRound2 (20); subRound2 (21); subRound2 (22); subRound2 (23);
- subRound2 (24); subRound2 (25); subRound2 (26); subRound2 (27);
- subRound2 (28); subRound2 (29); subRound2 (30); subRound2 (31);
- subRound2 (32); subRound2 (33); subRound2 (34); subRound2 (35);
- subRound2 (36); subRound2 (37); subRound2 (38); subRound2 (39);
-
- subRound3 (40); subRound3 (41); subRound3 (42); subRound3 (43);
- subRound3 (44); subRound3 (45); subRound3 (46); subRound3 (47);
- subRound3 (48); subRound3 (49); subRound3 (50); subRound3 (51);
- subRound3 (52); subRound3 (53); subRound3 (54); subRound3 (55);
- subRound3 (56); subRound3 (57); subRound3 (58); subRound3 (59);
-
- subRound4 (60); subRound4 (61); subRound4 (62); subRound4 (63);
- subRound4 (64); subRound4 (65); subRound4 (66); subRound4 (67);
- subRound4 (68); subRound4 (69); subRound4 (70); subRound4 (71);
- subRound4 (72); subRound4 (73); subRound4 (74); subRound4 (75);
- subRound4 (76); subRound4 (77); subRound4 (78); subRound4 (79);
-
- /* Step E. Build message digest */
- shsInfo->digest [0] += A;
- shsInfo->digest [1] += B;
- shsInfo->digest [2] += C;
- shsInfo->digest [3] += D;
- shsInfo->digest [4] += E;
-}
-
-local void byteReverse (LONG *buffer, int byteCount)
-{
- LONG value;
- int count;
-
- /*
- * Find out what the byte order is on this machine.
- * Big endian is for machines that place the most significant byte
- * first (eg. Sun SPARC). Little endian is for machines that place
- * the least significant byte first (eg. VAX).
- *
- * We figure out the byte order by stuffing a 2 byte string into a
- * short and examining the left byte. '@' = 0x40 and 'P' = 0x50
- * If the left byte is the 'high' byte, then it is 'big endian'.
- * If the left byte is the 'low' byte, then the machine is 'little
- * endian'.
- *
- * -- Shawn A. Clifford (sac@eng.ufl.edu)
- */
-
- /*
- * Several bugs fixed -- Pat Myrto (pat@rwing.uucp)
- */
-
- if ((*(unsigned short *) ("@P") >> 8) == '@')
- return;
-
- byteCount /= sizeof (LONG);
- for (count = 0; count < byteCount; count++) {
- value = (buffer [count] << 16) | (buffer [count] >> 16);
- buffer [count] = ((value & 0xFF00FF00L) >> 8) | ((value & 0x00FF00FFL) << 8);
- }
-}
-
-/*
- * Update SHS for a block of data. This code assumes that the buffer size is
- * a multiple of SHS_BLOCKSIZE bytes long, which makes the code a lot more
- * efficient since it does away with the need to handle partial blocks
- * between calls to shsUpdate()
- */
-
-void shsUpdate (SHS_INFO *shsInfo, BYTE *buffer, int count)
-{
- /* Update bitcount */
- if ((shsInfo->countLo + ((LONG) count << 3)) < shsInfo->countLo)
- shsInfo->countHi++; /* Carry from low to high bitCount */
- shsInfo->countLo += ((LONG) count << 3);
- shsInfo->countHi += ((LONG) count >> 29);
-
- /* Process data in SHS_BLOCKSIZE chunks */
- while (count >= SHS_BLOCKSIZE) {
- memcpy (shsInfo->data, buffer, SHS_BLOCKSIZE);
- byteReverse (shsInfo->data, SHS_BLOCKSIZE);
- shsTransform (shsInfo);
- buffer += SHS_BLOCKSIZE;
- count -= SHS_BLOCKSIZE;
- }
-
- /*
- * Handle any remaining bytes of data.
- * This should only happen once on the final lot of data
- */
- memcpy (shsInfo->data, buffer, count);
-}
-
-void shsFinal (SHS_INFO *shsInfo)
-{
- int count;
- LONG lowBitcount = shsInfo->countLo, highBitcount = shsInfo->countHi;
-
- /* Compute number of bytes mod 64 */
- count = (int) ((shsInfo->countLo >> 3) & 0x3F);
-
- /*
- * Set the first char of padding to 0x80.
- * This is safe since there is always at least one byte free
- */
- ((BYTE *) shsInfo->data) [count++] = 0x80;
-
- /* Pad out to 56 mod 64 */
- if (count > 56) {
- /* Two lots of padding: Pad the first block to 64 bytes */
- memset ((BYTE *) shsInfo->data + count, 0, 64 - count);
- byteReverse (shsInfo->data, SHS_BLOCKSIZE);
- shsTransform (shsInfo);
-
- /* Now fill the next block with 56 bytes */
- memset (shsInfo->data, 0, 56);
- } else
- /* Pad block to 56 bytes */
- memset ((BYTE *) shsInfo->data + count, 0, 56 - count);
- byteReverse (shsInfo->data, SHS_BLOCKSIZE);
-
- /* Append length in bits and transform */
- shsInfo->data [14] = highBitcount;
- shsInfo->data [15] = lowBitcount;
-
- shsTransform (shsInfo);
- byteReverse (shsInfo->data, SHS_DIGESTSIZE);
-}
diff --git a/libjava/gnu/gcj/io/shs.h b/libjava/gnu/gcj/io/shs.h
deleted file mode 100644
index 8c91ff3dfea..00000000000
--- a/libjava/gnu/gcj/io/shs.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* --------------------------------- SHS.H ------------------------------- */
-
-/*
- * NIST proposed Secure Hash Standard.
- *
- * Written 2 September 1992, Peter C. Gutmann.
- * This implementation placed in the public domain.
- *
- * Comments to pgut1@cs.aukuni.ac.nz
- */
-
-/* Useful defines/typedefs */
-
-#ifndef SHS_H
-#define SHS_H
-
-typedef unsigned char BYTE;
-typedef unsigned int LONG; /* A 32-bit type */
-
-/* The SHS block size and message digest sizes, in bytes */
-
-#define SHS_BLOCKSIZE 64
-#define SHS_DIGESTSIZE 20
-
-/* The structure for storing SHS info */
-
-typedef struct {
- LONG digest [5]; /* Message digest */
- LONG countLo, countHi; /* 64-bit bit count */
- LONG data [16]; /* SHS data buffer */
-} SHS_INFO;
-
-/* Turn off prototypes if requested */
-#if (defined(NOPROTO) && defined(PROTO))
-# undef PROTO
-#endif
-
-/* Used to remove arguments in function prototypes for non-ANSI C */
-#ifdef PROTO
-# define OF(a) a
-#else /* !PROTO */
-# define OF(a) ()
-#endif /* ?PROTO */
-
-#define local static
-
-void shsInit OF((SHS_INFO *shsInfo));
-void shsUpdate OF((SHS_INFO *shsInfo, BYTE *buffer, int count));
-void shsFinal OF((SHS_INFO *shsInfo));
-
-#endif
diff --git a/libjava/gnu/gcj/jni/NativeThread.java b/libjava/gnu/gcj/jni/NativeThread.java
deleted file mode 100644
index 4d3eb78ac74..00000000000
--- a/libjava/gnu/gcj/jni/NativeThread.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// NativeThread.java - Wrapper for attached user threads.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.jni;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 9, 2000
- */
-
-public class NativeThread extends Thread
-{
- public NativeThread (ThreadGroup g, String name)
- {
- super (g, null, name);
- init ();
- }
-
- // Call this to mark the thread as finished.
- public native void finish ();
- public native void init ();
-}
diff --git a/libjava/gnu/gcj/jni/natNativeThread.cc b/libjava/gnu/gcj/jni/natNativeThread.cc
deleted file mode 100644
index 359b572ca53..00000000000
--- a/libjava/gnu/gcj/jni/natNativeThread.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-// natNativeThread.cc - Native side of attached threads.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Written by Tom Tromey <tromey@cygnus.com>
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <gnu/gcj/jni/NativeThread.h>
-#include <java/lang/Thread.h>
-
-void
-gnu::gcj::jni::NativeThread::finish ()
-{
- finish_ ();
-}
-
-void
-gnu::gcj::jni::NativeThread::init ()
-{
- alive_flag = true; // alive_flag is private in java.lang.Thread
-}
diff --git a/libjava/gnu/gcj/math/MPN.java b/libjava/gnu/gcj/math/MPN.java
deleted file mode 100644
index fb947a5a699..00000000000
--- a/libjava/gnu/gcj/math/MPN.java
+++ /dev/null
@@ -1,736 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Included from Kawa 1.6.62 with permission of the author,
-// Per Bothner <per@bothner.com>.
-
-package gnu.gcj.math;
-
-/** This contains various low-level routines for unsigned bigints.
- * The interfaces match the mpn interfaces in gmp,
- * so it should be easy to replace them with fast native functions
- * that are trivial wrappers around the mpn_ functions in gmp
- * (at least on platforms that use 32-bit "limbs").
- */
-
-public class MPN
-{
- /** Add x[0:size-1] and y, and write the size least
- * significant words of the result to dest.
- * Return carry, either 0 or 1.
- * All values are unsigned.
- * This is basically the same as gmp's mpn_add_1. */
- public static int add_1 (int[] dest, int[] x, int size, int y)
- {
- long carry = (long) y & 0xffffffffL;
- for (int i = 0; i < size; i++)
- {
- carry += ((long) x[i] & 0xffffffffL);
- dest[i] = (int) carry;
- carry >>= 32;
- }
- return (int) carry;
- }
-
- /** Add x[0:len-1] and y[0:len-1] and write the len least
- * significant words of the result to dest[0:len-1].
- * All words are treated as unsigned.
- * @return the carry, either 0 or 1
- * This function is basically the same as gmp's mpn_add_n.
- */
- public static int add_n (int dest[], int[] x, int[] y, int len)
- {
- long carry = 0;
- for (int i = 0; i < len; i++)
- {
- carry += ((long) x[i] & 0xffffffffL)
- + ((long) y[i] & 0xffffffffL);
- dest[i] = (int) carry;
- carry >>>= 32;
- }
- return (int) carry;
- }
-
- /** Subtract Y[0:size-1] from X[0:size-1], and write
- * the size least significant words of the result to dest[0:size-1].
- * Return borrow, either 0 or 1.
- * This is basically the same as gmp's mpn_sub_n function.
- */
-
- public static int sub_n (int[] dest, int[] X, int[] Y, int size)
- {
- int cy = 0;
- for (int i = 0; i < size; i++)
- {
- int y = Y[i];
- int x = X[i];
- y += cy; /* add previous carry to subtrahend */
- // Invert the high-order bit, because: (unsigned) X > (unsigned) Y
- // iff: (int) (X^0x80000000) > (int) (Y^0x80000000).
- cy = (y^0x80000000) < (cy^0x80000000) ? 1 : 0;
- y = x - y;
- cy += (y^0x80000000) > (x ^ 0x80000000) ? 1 : 0;
- dest[i] = y;
- }
- return cy;
- }
-
- /** Multiply x[0:len-1] by y, and write the len least
- * significant words of the product to dest[0:len-1].
- * Return the most significant word of the product.
- * All values are treated as if they were unsigned
- * (i.e. masked with 0xffffffffL).
- * OK if dest==x (not sure if this is guaranteed for mpn_mul_1).
- * This function is basically the same as gmp's mpn_mul_1.
- */
-
- public static int mul_1 (int[] dest, int[] x, int len, int y)
- {
- long yword = (long) y & 0xffffffffL;
- long carry = 0;
- for (int j = 0; j < len; j++)
- {
- carry += ((long) x[j] & 0xffffffffL) * yword;
- dest[j] = (int) carry;
- carry >>>= 32;
- }
- return (int) carry;
- }
-
- /**
- * Multiply x[0:xlen-1] and y[0:ylen-1], and
- * write the result to dest[0:xlen+ylen-1].
- * The destination has to have space for xlen+ylen words,
- * even if the result might be one limb smaller.
- * This function requires that xlen >= ylen.
- * The destination must be distinct from either input operands.
- * All operands are unsigned.
- * This function is basically the same gmp's mpn_mul. */
-
- public static void mul (int[] dest,
- int[] x, int xlen,
- int[] y, int ylen)
- {
- dest[xlen] = MPN.mul_1 (dest, x, xlen, y[0]);
-
- for (int i = 1; i < ylen; i++)
- {
- long yword = (long) y[i] & 0xffffffffL;
- long carry = 0;
- for (int j = 0; j < xlen; j++)
- {
- carry += ((long) x[j] & 0xffffffffL) * yword
- + ((long) dest[i+j] & 0xffffffffL);
- dest[i+j] = (int) carry;
- carry >>>= 32;
- }
- dest[i+xlen] = (int) carry;
- }
- }
-
- /* Divide (unsigned long) N by (unsigned int) D.
- * Returns (remainder << 32)+(unsigned int)(quotient).
- * Assumes (unsigned int)(N>>32) < (unsigned int)D.
- * Code transcribed from gmp-2.0's mpn_udiv_w_sdiv function.
- */
- public static long udiv_qrnnd (long N, int D)
- {
- long q, r;
- long a1 = N >>> 32;
- long a0 = N & 0xffffffffL;
- if (D >= 0)
- {
- if (a1 < ((D - a1 - (a0 >>> 31)) & 0xffffffffL))
- {
- /* dividend, divisor, and quotient are nonnegative */
- q = N / D;
- r = N % D;
- }
- else
- {
- /* Compute c1*2^32 + c0 = a1*2^32 + a0 - 2^31*d */
- long c = N - ((long) D << 31);
- /* Divide (c1*2^32 + c0) by d */
- q = c / D;
- r = c % D;
- /* Add 2^31 to quotient */
- q += 1 << 31;
- }
- }
- else
- {
- long b1 = D >>> 1; /* d/2, between 2^30 and 2^31 - 1 */
- //long c1 = (a1 >> 1); /* A/2 */
- //int c0 = (a1 << 31) + (a0 >> 1);
- long c = N >>> 1;
- if (a1 < b1 || (a1 >> 1) < b1)
- {
- if (a1 < b1)
- {
- q = c / b1;
- r = c % b1;
- }
- else /* c1 < b1, so 2^31 <= (A/2)/b1 < 2^32 */
- {
- c = ~(c - (b1 << 32));
- q = c / b1; /* (A/2) / (d/2) */
- r = c % b1;
- q = (~q) & 0xffffffffL; /* (A/2)/b1 */
- r = (b1 - 1) - r; /* r < b1 => new r >= 0 */
- }
- r = 2 * r + (a0 & 1);
- if ((D & 1) != 0)
- {
- if (r >= q) {
- r = r - q;
- } else if (q - r <= ((long) D & 0xffffffffL)) {
- r = r - q + D;
- q -= 1;
- } else {
- r = r - q + D + D;
- q -= 2;
- }
- }
- }
- else /* Implies c1 = b1 */
- { /* Hence a1 = d - 1 = 2*b1 - 1 */
- if (a0 >= ((long)(-D) & 0xffffffffL))
- {
- q = -1;
- r = a0 + D;
- }
- else
- {
- q = -2;
- r = a0 + D + D;
- }
- }
- }
-
- return (r << 32) | (q & 0xFFFFFFFFl);
- }
-
- /** Divide divident[0:len-1] by (unsigned int)divisor.
- * Write result into quotient[0:len-1.
- * Return the one-word (unsigned) remainder.
- * OK for quotient==dividend.
- */
-
- public static int divmod_1 (int[] quotient, int[] dividend,
- int len, int divisor)
- {
- int i = len - 1;
- long r = dividend[i];
- if ((r & 0xffffffffL) >= ((long)divisor & 0xffffffffL))
- r = 0;
- else
- {
- quotient[i--] = 0;
- r <<= 32;
- }
-
- for (; i >= 0; i--)
- {
- int n0 = dividend[i];
- r = (r & ~0xffffffffL) | (n0 & 0xffffffffL);
- r = udiv_qrnnd (r, divisor);
- quotient[i] = (int) r;
- }
- return (int)(r >> 32);
- }
-
- /* Subtract x[0:len-1]*y from dest[offset:offset+len-1].
- * All values are treated as if unsigned.
- * @return the most significant word of
- * the product, minus borrow-out from the subtraction.
- */
- public static int submul_1 (int[] dest, int offset, int[] x, int len, int y)
- {
- long yl = (long) y & 0xffffffffL;
- int carry = 0;
- int j = 0;
- do
- {
- long prod = ((long) x[j] & 0xffffffffL) * yl;
- int prod_low = (int) prod;
- int prod_high = (int) (prod >> 32);
- prod_low += carry;
- // Invert the high-order bit, because: (unsigned) X > (unsigned) Y
- // iff: (int) (X^0x80000000) > (int) (Y^0x80000000).
- carry = ((prod_low ^ 0x80000000) < (carry ^ 0x80000000) ? 1 : 0)
- + prod_high;
- int x_j = dest[offset+j];
- prod_low = x_j - prod_low;
- if ((prod_low ^ 0x80000000) > (x_j ^ 0x80000000))
- carry++;
- dest[offset+j] = prod_low;
- }
- while (++j < len);
- return carry;
- }
-
- /** Divide zds[0:nx] by y[0:ny-1].
- * The remainder ends up in zds[0:ny-1].
- * The quotient ends up in zds[ny:nx].
- * Assumes: nx>ny.
- * (int)y[ny-1] < 0 (i.e. most significant bit set)
- */
-
- public static void divide (int[] zds, int nx, int[] y, int ny)
- {
- // This is basically Knuth's formulation of the classical algorithm,
- // but translated from in scm_divbigbig in Jaffar's SCM implementation.
-
- // Correspondance with Knuth's notation:
- // Knuth's u[0:m+n] == zds[nx:0].
- // Knuth's v[1:n] == y[ny-1:0]
- // Knuth's n == ny.
- // Knuth's m == nx-ny.
- // Our nx == Knuth's m+n.
-
- // Could be re-implemented using gmp's mpn_divrem:
- // zds[nx] = mpn_divrem (&zds[ny], 0, zds, nx, y, ny).
-
- int j = nx;
- do
- { // loop over digits of quotient
- // Knuth's j == our nx-j.
- // Knuth's u[j:j+n] == our zds[j:j-ny].
- int qhat; // treated as unsigned
- if (zds[j]==y[ny-1])
- qhat = -1; // 0xffffffff
- else
- {
- long w = (((long)(zds[j])) << 32) + ((long)zds[j-1] & 0xffffffffL);
- qhat = (int) udiv_qrnnd (w, y[ny-1]);
- }
- if (qhat != 0)
- {
- int borrow = submul_1 (zds, j - ny, y, ny, qhat);
- int save = zds[j];
- long num = ((long)save&0xffffffffL) - ((long)borrow&0xffffffffL);
- while (num != 0)
- {
- qhat--;
- long carry = 0;
- for (int i = 0; i < ny; i++)
- {
- carry += ((long) zds[j-ny+i] & 0xffffffffL)
- + ((long) y[i] & 0xffffffffL);
- zds[j-ny+i] = (int) carry;
- carry >>>= 32;
- }
- zds[j] += carry;
- num = carry - 1;
- }
- }
- zds[j] = qhat;
- } while (--j >= ny);
- }
-
- /** Number of digits in the conversion base that always fits in a word.
- * For example, for base 10 this is 9, since 10**9 is the
- * largest number that fits into a words (assuming 32-bit words).
- * This is the same as gmp's __mp_bases[radix].chars_per_limb.
- * @param radix the base
- * @return number of digits */
- public static int chars_per_word (int radix)
- {
- if (radix < 10)
- {
- if (radix < 8)
- {
- if (radix <= 2)
- return 32;
- else if (radix == 3)
- return 20;
- else if (radix == 4)
- return 16;
- else
- return 18 - radix;
- }
- else
- return 10;
- }
- else if (radix < 12)
- return 9;
- else if (radix <= 16)
- return 8;
- else if (radix <= 23)
- return 7;
- else if (radix <= 40)
- return 6;
- // The following are conservative, but we don't care.
- else if (radix <= 256)
- return 4;
- else
- return 1;
- }
-
- /** Count the number of leading zero bits in an int. */
- public static int count_leading_zeros (int i)
- {
- if (i == 0)
- return 32;
- int count = 0;
- for (int k = 16; k > 0; k = k >> 1) {
- int j = i >>> k;
- if (j == 0)
- count += k;
- else
- i = j;
- }
- return count;
- }
-
- public static int set_str (int dest[], byte[] str, int str_len, int base)
- {
- int size = 0;
- if ((base & (base - 1)) == 0)
- {
- // The base is a power of 2. Read the input string from
- // least to most significant character/digit. */
-
- int next_bitpos = 0;
- int bits_per_indigit = 0;
- for (int i = base; (i >>= 1) != 0; ) bits_per_indigit++;
- int res_digit = 0;
-
- for (int i = str_len; --i >= 0; )
- {
- int inp_digit = str[i];
- res_digit |= inp_digit << next_bitpos;
- next_bitpos += bits_per_indigit;
- if (next_bitpos >= 32)
- {
- dest[size++] = res_digit;
- next_bitpos -= 32;
- res_digit = inp_digit >> (bits_per_indigit - next_bitpos);
- }
- }
-
- if (res_digit != 0)
- dest[size++] = res_digit;
- }
- else
- {
- // General case. The base is not a power of 2.
- int indigits_per_limb = MPN.chars_per_word (base);
- int str_pos = 0;
-
- while (str_pos < str_len)
- {
- int chunk = str_len - str_pos;
- if (chunk > indigits_per_limb)
- chunk = indigits_per_limb;
- int res_digit = str[str_pos++];
- int big_base = base;
-
- while (--chunk > 0)
- {
- res_digit = res_digit * base + str[str_pos++];
- big_base *= base;
- }
-
- int cy_limb;
- if (size == 0)
- cy_limb = res_digit;
- else
- {
- cy_limb = MPN.mul_1 (dest, dest, size, big_base);
- cy_limb += MPN.add_1 (dest, dest, size, res_digit);
- }
- if (cy_limb != 0)
- dest[size++] = cy_limb;
- }
- }
- return size;
- }
-
- /** Compare x[0:size-1] with y[0:size-1], treating them as unsigned integers.
- * @result -1, 0, or 1 depending on if x<y, x==y, or x>y.
- * This is basically the same as gmp's mpn_cmp function.
- */
- public static int cmp (int[] x, int[] y, int size)
- {
- while (--size >= 0)
- {
- int x_word = x[size];
- int y_word = y[size];
- if (x_word != y_word)
- {
- // Invert the high-order bit, because:
- // (unsigned) X > (unsigned) Y iff
- // (int) (X^0x80000000) > (int) (Y^0x80000000).
- return (x_word ^ 0x80000000) > (y_word ^0x80000000) ? 1 : -1;
- }
- }
- return 0;
- }
-
- /** Compare x[0:xlen-1] with y[0:ylen-1], treating them as unsigned integers.
- * @result -1, 0, or 1 depending on if x<y, x==y, or x>y.
- */
- public static int cmp (int[] x, int xlen, int[] y, int ylen)
- {
- return xlen > ylen ? 1 : xlen < ylen ? -1 : cmp (x, y, xlen);
- }
-
- /* Shift x[x_start:x_start+len-1]count bits to the "right"
- * (i.e. divide by 2**count).
- * Store the len least significant words of the result at dest.
- * The bits shifted out to the right are returned.
- * OK if dest==x.
- * Assumes: 0 < count < 32
- */
-
- public static int rshift (int[] dest, int[] x, int x_start,
- int len, int count)
- {
- int count_2 = 32 - count;
- int low_word = x[x_start];
- int retval = low_word << count_2;
- int i = 1;
- for (; i < len; i++)
- {
- int high_word = x[x_start+i];
- dest[i-1] = (low_word >>> count) | (high_word << count_2);
- low_word = high_word;
- }
- dest[i-1] = low_word >>> count;
- return retval;
- }
-
- /** Return the long-truncated value of right shifting.
- * @param x a two's-complement "bignum"
- * @param len the number of significant words in x
- * @param count the shift count
- * @return (long)(x[0..len-1] >> count).
- */
- public static long rshift_long (int[] x, int len, int count)
- {
- int wordno = count >> 5;
- count &= 31;
- int sign = x[len-1] < 0 ? -1 : 0;
- int w0 = wordno >= len ? sign : x[wordno];
- wordno++;
- int w1 = wordno >= len ? sign : x[wordno];
- if (count != 0)
- {
- wordno++;
- int w2 = wordno >= len ? sign : x[wordno];
- w0 = (w0 >>> count) | (w1 << (32-count));
- w1 = (w1 >>> count) | (w2 << (32-count));
- }
- return ((long)w1 << 32) | ((long)w0 & 0xffffffffL);
- }
-
- /* Shift x[0:len-1]count bits to the "right" (i.e. divide by 2**count).
- * Store the len least significant words of the result at dest.
- * OK if dest==x.
- * OK if count > 32 (but must be >= 0).
- */
- public static void rshift (int[] dest, int[] x, int len, int count)
- {
- int word_count = count >> 5;
- count &= 31;
- rshift (dest, x, word_count, len, count);
- while (word_count < len)
- dest[word_count++] = 0;
- }
-
- /* Shift x[0:len-1] left by count bits, and store the len least
- * significant words of the result in dest[d_offset:d_offset+len-1].
- * Return the bits shifted out from the most significant digit.
- * Assumes 0 < count < 32.
- * OK if dest==x.
- */
-
- public static int lshift (int[] dest, int d_offset,
- int[] x, int len, int count)
- {
- int count_2 = 32 - count;
- int i = len - 1;
- int high_word = x[i];
- int retval = high_word >>> count_2;
- d_offset++;
- while (--i >= 0)
- {
- int low_word = x[i];
- dest[d_offset+i] = (high_word << count) | (low_word >>> count_2);
- high_word = low_word;
- }
- dest[d_offset+i] = high_word << count;
- return retval;
- }
-
- /** Return least i such that word&(1<<i). Assumes word!=0. */
-
- public static int findLowestBit (int word)
- {
- int i = 0;
- while ((word & 0xF) == 0)
- {
- word >>= 4;
- i += 4;
- }
- if ((word & 3) == 0)
- {
- word >>= 2;
- i += 2;
- }
- if ((word & 1) == 0)
- i += 1;
- return i;
- }
-
- /** Return least i such that words & (1<<i). Assumes there is such an i. */
-
- public static int findLowestBit (int[] words)
- {
- for (int i = 0; ; i++)
- {
- if (words[i] != 0)
- return 32 * i + findLowestBit (words[i]);
- }
- }
-
- /** Calculate Greatest Common Divisior of x[0:len-1] and y[0:len-1].
- * Assumes both arguments are non-zero.
- * Leaves result in x, and returns len of result.
- * Also destroys y (actually sets it to a copy of the result). */
-
- public static int gcd (int[] x, int[] y, int len)
- {
- int i, word;
- // Find sh such that both x and y are divisible by 2**sh.
- for (i = 0; ; i++)
- {
- word = x[i] | y[i];
- if (word != 0)
- {
- // Must terminate, since x and y are non-zero.
- break;
- }
- }
- int initShiftWords = i;
- int initShiftBits = findLowestBit (word);
- // Logically: sh = initShiftWords * 32 + initShiftBits
-
- // Temporarily devide both x and y by 2**sh.
- len -= initShiftWords;
- MPN.rshift (x, x, initShiftWords, len, initShiftBits);
- MPN.rshift (y, y, initShiftWords, len, initShiftBits);
-
- int[] odd_arg; /* One of x or y which is odd. */
- int[] other_arg; /* The other one can be even or odd. */
- if ((x[0] & 1) != 0)
- {
- odd_arg = x;
- other_arg = y;
- }
- else
- {
- odd_arg = y;
- other_arg = x;
- }
-
- for (;;)
- {
- // Shift other_arg until it is odd; this doesn't
- // affect the gcd, since we divide by 2**k, which does not
- // divide odd_arg.
- for (i = 0; other_arg[i] == 0; ) i++;
- if (i > 0)
- {
- int j;
- for (j = 0; j < len-i; j++)
- other_arg[j] = other_arg[j+i];
- for ( ; j < len; j++)
- other_arg[j] = 0;
- }
- i = findLowestBit(other_arg[0]);
- if (i > 0)
- MPN.rshift (other_arg, other_arg, 0, len, i);
-
- // Now both odd_arg and other_arg are odd.
-
- // Subtract the smaller from the larger.
- // This does not change the result, since gcd(a-b,b)==gcd(a,b).
- i = MPN.cmp(odd_arg, other_arg, len);
- if (i == 0)
- break;
- if (i > 0)
- { // odd_arg > other_arg
- MPN.sub_n (odd_arg, odd_arg, other_arg, len);
- // Now odd_arg is even, so swap with other_arg;
- int[] tmp = odd_arg; odd_arg = other_arg; other_arg = tmp;
- }
- else
- { // other_arg > odd_arg
- MPN.sub_n (other_arg, other_arg, odd_arg, len);
- }
- while (odd_arg[len-1] == 0 && other_arg[len-1] == 0)
- len--;
- }
- if (initShiftWords + initShiftBits > 0)
- {
- if (initShiftBits > 0)
- {
- int sh_out = MPN.lshift (x, initShiftWords, x, len, initShiftBits);
- if (sh_out != 0)
- x[(len++)+initShiftWords] = sh_out;
- }
- else
- {
- for (i = len; --i >= 0;)
- x[i+initShiftWords] = x[i];
- }
- for (i = initShiftWords; --i >= 0; )
- x[i] = 0;
- len += initShiftWords;
- }
- return len;
- }
-
- public static int intLength (int i)
- {
- return 32 - count_leading_zeros (i < 0 ? ~i : i);
- }
-
- /** Calcaulte the Common Lisp "integer-length" function.
- * Assumes input is canonicalized: len==IntNum.wordsNeeded(words,len) */
- public static int intLength (int[] words, int len)
- {
- len--;
- return intLength (words[len]) + 32 * len;
- }
-
- /* DEBUGGING:
- public static void dprint (IntNum x)
- {
- if (x.words == null)
- System.err.print(Long.toString((long) x.ival & 0xffffffffL, 16));
- else
- dprint (System.err, x.words, x.ival);
- }
- public static void dprint (int[] x) { dprint (System.err, x, x.length); }
- public static void dprint (int[] x, int len) { dprint (System.err, x, len); }
- public static void dprint (java.io.PrintStream ps, int[] x, int len)
- {
- ps.print('(');
- for (int i = 0; i < len; i++)
- {
- if (i > 0)
- ps.print (' ');
- ps.print ("#x" + Long.toString ((long) x[i] & 0xffffffffL, 16));
- }
- ps.print(')');
- }
- */
-}
diff --git a/libjava/gnu/gcj/protocol/file/Connection.java b/libjava/gnu/gcj/protocol/file/Connection.java
deleted file mode 100644
index b7804cbea0c..00000000000
--- a/libjava/gnu/gcj/protocol/file/Connection.java
+++ /dev/null
@@ -1,169 +0,0 @@
-// Connection.java - Implementation of URLConnection for file protocol.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.file;
-
-import java.net.*;
-import java.io.*;
-import java.util.Vector;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 13, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Minimal subset of functionality.
- */
-
-class Connection extends URLConnection
-{
- private Hashtable hdrHash = new Hashtable();
- private Vector hdrVec = new Vector();
- private boolean gotHeaders = false;
- private File fileIn;
-
- public Connection(URL url)
- {
- super(url);
- }
-
- // Implementation of abstract method.
- public void connect() throws IOException
- {
- // Call is ignored if already connected.
- if (connected)
- return;
-
- // If not connected, then file needs to be openned.
- fileIn = new File(url.getFile());
- connected = true;
- }
-
- public InputStream getInputStream() throws IOException
- {
- if (!connected)
- connect();
-
- if (! doInput)
- throw new ProtocolException("Can't open InputStream if doInput is false");
- return new BufferedInputStream(new FileInputStream(fileIn));
- }
-
- // Override default method in URLConnection.
- public OutputStream getOutputStream() throws IOException
- {
- if (!connected)
- connect();
-
- if (! doOutput)
- throw new
- ProtocolException("Can't open OutputStream if doOutput is false");
- return new BufferedOutputStream(new FileOutputStream(fileIn));
- }
-
- // Override default method in URLConnection.
- public String getHeaderField(String name)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- return (String) hdrHash.get(name.toLowerCase());
- }
-
- // Override default method in URLConnection.
- public String getHeaderField(int n)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- if (n < hdrVec.size())
- return getField((String) hdrVec.elementAt(n));
-
- return null;
- }
-
- // Override default method in URLConnection.
- public String getHeaderFieldKey(int n)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- if (n < hdrVec.size())
- return getKey((String) hdrVec.elementAt(n));
-
- return null;
- }
-
- private String getKey(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(0, index);
- else
- return null;
- }
-
- private String getField(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(index + 1).trim();
- else
- return str;
- }
-
- private void getHeaders() throws IOException
- {
- if (gotHeaders)
- return;
- gotHeaders = true;
-
- connect();
-
- // Yes, it is overkill to use the hash table and vector here since
- // we're only putting one header in the file, but in case we need
- // to add others later and for consistency, we'll implement it this way.
-
- // Add the only header we know about right now: Content-length.
- long len = fileIn.length();
- String line = "Content-length: " + len;
- hdrVec.addElement(line);
-
- // The key will never be null in this scenario since we build up the
- // headers ourselves. If we ever rely on getting a header from somewhere
- // else, then we may have to check if the result of getKey() is null.
- String key = getKey(line);
- hdrHash.put(key.toLowerCase(), Long.toString(len));
- }
-}
diff --git a/libjava/gnu/gcj/protocol/file/Handler.java b/libjava/gnu/gcj/protocol/file/Handler.java
deleted file mode 100644
index b12ebd42b29..00000000000
--- a/libjava/gnu/gcj/protocol/file/Handler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// Handler.java - URLStreamHandler for file protocol.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.file;
-
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 13, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Minimal functionality.
- */
-
-public class Handler extends URLStreamHandler
-{
- protected URLConnection openConnection(URL url) throws IOException
- {
- // If a hostname is set, then we need to switch protocols to ftp
- // in order to transfer this from the remote host.
- if (! url.getHost().equals(""))
- {
- // Reset the protocol (and implicitly the handler) for this URL.
- // Then have the URL attempt the connection again, as it will
- // get the changed handler the next time around.
- setURL (url, "ftp", url.getHost(), url.getPort(), url.getFile(),
- url.getRef());
- // Until the ftp protocol handler is written, this will cause
- // a NullPointerException.
- return url.openConnection();
- }
-
- return new Connection(url);
- }
-}
diff --git a/libjava/gnu/gcj/protocol/http/Connection.java b/libjava/gnu/gcj/protocol/http/Connection.java
deleted file mode 100644
index 5ff1c321ac0..00000000000
--- a/libjava/gnu/gcj/protocol/http/Connection.java
+++ /dev/null
@@ -1,288 +0,0 @@
-// Connection.java - Implementation of HttpURLConnection for http protocol.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.http;
-
-import java.net.*;
-import java.io.*;
-import java.util.Vector;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 29, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Minimal subset of functionality. Proxies and Redirects
- * not yet handled. FileNameMap handling needs to be considered.
- * useCaches, ifModifiedSince, and allowUserInteraction need
- * consideration as well as doInput and doOutput.
- */
-
-class Connection extends HttpURLConnection
-{
- protected Socket sock = null;
- private static Hashtable defRequestProperties = new Hashtable();
- private Hashtable requestProperties;
- private Hashtable hdrHash = new Hashtable();
- private Vector hdrVec = new Vector();
- private BufferedInputStream bufferedIn;
-
- public Connection(URL url)
- {
- super(url);
- requestProperties = (Hashtable) defRequestProperties.clone();
- }
-
- // Override method in URLConnection.
- public static void setDefaultRequestProperty(String key, String value)
- {
- defRequestProperties.put(key, value);
- }
-
- // Override method in URLConnection.
- public static String getDefaultRequestProperty(String key)
- {
- return (String) defRequestProperties.get(key);
- }
-
- // Override method in URLConnection.
- public void setRequestProperty(String key, String value)
- {
- if (connected)
- throw new IllegalAccessError("Connection already established.");
-
- requestProperties.put(key, value);
- }
-
- // Override method in URLConnection.
- public String getRequestProperty(String key)
- {
- if (connected)
- throw new IllegalAccessError("Connection already established.");
-
- return (String) requestProperties.get(key);
- }
-
- // Implementation of abstract method.
- public void connect() throws IOException
- {
- // Call is ignored if already connected.
- if (connected)
- return;
-
- // Get address and port number.
- int port;
- InetAddress destAddr = InetAddress.getByName(url.getHost());
- if ((port = url.getPort()) == -1)
- port = 80;
-
- // Open socket and output stream.
- sock = new Socket(destAddr, port);
- PrintWriter out = new PrintWriter(sock.getOutputStream());
-
- // Send request including any request properties that were set.
- out.print(getRequestMethod() + " " + url.getFile() + " HTTP/1.0\n");
- out.print("Host: " + url.getHost() + ":" + port + "\n");
- Enumeration reqKeys = requestProperties.keys();
- Enumeration reqVals = requestProperties.elements();
- while (reqKeys.hasMoreElements())
- out.print(reqKeys.nextElement() + ": " + reqVals.nextElement() + "\n");
- out.print("\n");
- out.flush();
- getHttpHeaders();
- connected = true;
- }
-
- // Implementation of abstract method.
- public void disconnect()
- {
- if (sock != null)
- {
- try
- {
- sock.close();
- }
- catch (IOException ex)
- {
- ; // Ignore errors in closing socket.
- }
- sock = null;
- }
- }
-
- // TODO: public boolean usingProxy()
- public boolean usingProxy()
- {
- throw new InternalError("HttpURLConnection.usingProxy not implemented");
- }
-
- // Override default method in URLConnection.
- public InputStream getInputStream() throws IOException
- {
- if (!connected)
- connect();
-
- if (!doInput)
- throw new ProtocolException("Can't open InputStream if doInput is false");
- return bufferedIn;
- }
-
- // Override default method in URLConnection.
- public OutputStream getOutputStream() throws IOException
- {
- if (!connected)
- connect();
-
- if (! doOutput)
- throw new
- ProtocolException("Can't open OutputStream if doOutput is false");
- return sock.getOutputStream();
- }
-
- // Override default method in URLConnection.
- public String getHeaderField(String name)
- {
- if (!connected)
- try
- {
- connect();
- }
- catch (IOException x)
- {
- return null;
- }
-
- return (String) hdrHash.get(name.toLowerCase());
- }
-
- // Override default method in URLConnection.
- public String getHeaderField(int n)
- {
- if (!connected)
- try
- {
- connect();
- }
- catch (IOException x)
- {
- return null;
- }
-
- if (n < hdrVec.size())
- return getField((String) hdrVec.elementAt(n));
- return null;
- }
-
- // Override default method in URLConnection.
- public String getHeaderFieldKey(int n)
- {
- if (!connected)
- try
- {
- connect();
- }
- catch (IOException x)
- {
- return null;
- }
-
- if (n < hdrVec.size())
- return getKey((String) hdrVec.elementAt(n));
- return null;
- }
-
- private String getKey(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(0, index);
- else
- return null;
- }
-
- private String getField(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(index + 1).trim();
- else
- return str;
- }
-
- private void getHttpHeaders() throws IOException
- {
- // Originally tried using a BufferedReader here to take advantage of
- // the readLine method and avoid the following, but the buffer read
- // past the end of the headers so the first part of the content was lost.
- // It is probably more robust than it needs to be, e.g. the byte[]
- // is unlikely to overflow and a '\r' should always be followed by a '\n',
- // but it is better to be safe just in case.
- bufferedIn = new BufferedInputStream(sock.getInputStream());
-
- int buflen = 100;
- byte[] buf = new byte[buflen];
- String line = "";
- boolean gotnl = false;
- byte[] ch = new byte[1];
- ch[0] = (byte) '\n';
-
- while (true)
- {
- // Check for leftover byte from non-'\n' after a '\r'.
- if (ch[0] != '\n')
- line = line + '\r' + new String(ch, 0, 1);
-
- int i;
- // FIXME: This is rather inefficient.
- for (i = 0; i < buflen; i++)
- {
- buf[i] = (byte) bufferedIn.read();
- if (buf[i] == -1)
- throw new IOException("Malformed HTTP header");
- if (buf[i] == '\r')
- {
- bufferedIn.read(ch, 0, 1);
- if (ch[0] == '\n')
- gotnl = true;
- break;
- }
- }
- line = line + new String(buf, 0, i);
-
- // A '\r' '\n' combo indicates the end of the header entry.
- // If it wasn't found, cycle back through the loop and append
- // to 'line' until one is found.
- if (gotnl)
- {
- // A zero length entry signals the end of the headers.
- if (line.length() == 0)
- break;
-
- // Store the header and reinitialize for next cycle.
- hdrVec.addElement(line);
- String key = getKey(line);
- if (key != null)
- hdrHash.put(key.toLowerCase(), getField(line));
- line = "";
- ch[0] = (byte) '\n';
- gotnl = false;
- }
- }
- }
-}
diff --git a/libjava/gnu/gcj/protocol/http/Handler.java b/libjava/gnu/gcj/protocol/http/Handler.java
deleted file mode 100644
index ccf94e762c5..00000000000
--- a/libjava/gnu/gcj/protocol/http/Handler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// Handler.java - URLStreamHandler for http protocol.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.http;
-
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 26, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Minimal functionality.
- */
-
-public class Handler extends URLStreamHandler
-{
- protected URLConnection openConnection(URL url) throws IOException
- {
- return new Connection(url);
- }
-}
diff --git a/libjava/gnu/gcj/protocol/jar/Connection.java b/libjava/gnu/gcj/protocol/jar/Connection.java
deleted file mode 100644
index 60641182f3a..00000000000
--- a/libjava/gnu/gcj/protocol/jar/Connection.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.jar;
-
-import java.net.URL;
-import java.net.JarURLConnection;
-import java.net.URLStreamHandler;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.io.IOException;
-import java.util.jar.JarFile;
-import java.util.Hashtable;
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Needs a way to download jar files and store them in the local file
- * system. I don't know how to do that in a portable way. For now, it can only handle
- * connections to a jar:file: url's.
- *
- * @author Kresten Krab Thorup <krab@gnu.org>
- * @date Aug 10, 1999.
- */
-
-
-
-public class Connection extends JarURLConnection
-{
- static Hashtable file_cache = new Hashtable();
- private JarFile jarfile;
-
- public Connection(URL url)
- throws MalformedURLException
- {
- super(url);
- }
-
- public synchronized JarFile getJarFile() throws java.io.IOException
- {
- if (!connected)
- connect();
-
- if (! doInput)
- throw new ProtocolException("Can't open JarFile if doInput is false");
-
- if (jarfile != null)
- return jarfile;
-
- URL jarFileURL = getJarFileURL ();
-
- if (jarFileURL.getProtocol ().equals ("file")
- && jarFileURL.getHost ().equals (""))
- {
- if (getUseCaches())
- {
- jarfile = (JarFile) file_cache.get(jarFileURL);
- if (jarfile == null)
- {
- jarfile = new JarFile (jarFileURL.getFile ());
- file_cache.put (jarFileURL, jarfile);
- }
- }
- else
- jarfile = new JarFile (jarFileURL.getFile ());
- }
- else
- {
- /*
- FIXME: Here we need to download and cache the jar
- file in the local file system! Stupid design. Why
- can't we just create a JarFile from a bag of bytes?
- */
-
- throw new java.io.IOException("cannot create jar file from " +
- jarFileURL);
- }
-
- return jarfile;
- }
-
-}
diff --git a/libjava/gnu/gcj/protocol/jar/Handler.java b/libjava/gnu/gcj/protocol/jar/Handler.java
deleted file mode 100644
index 2bb6aaebf85..00000000000
--- a/libjava/gnu/gcj/protocol/jar/Handler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Handler.java - URLStreamHandler for file protocol.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.protocol.jar;
-
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.io.IOException;
-
-/**
- * @author Kresten Krab Thorup <krab@gnu.org>
- * @date August 13, 1999.
- */
-
-public class Handler extends URLStreamHandler
-{
- protected URLConnection openConnection(URL url) throws IOException
- {
- return new Connection(url);
- }
-}
diff --git a/libjava/gnu/gcj/runtime/FileDeleter.java b/libjava/gnu/gcj/runtime/FileDeleter.java
deleted file mode 100644
index d5f99d04c47..00000000000
--- a/libjava/gnu/gcj/runtime/FileDeleter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.runtime;
-
-import java.io.*;
-import java.util.*;
-
-public final class FileDeleter
-{
- public synchronized static void add (File f)
- {
- if (deleteOnExitStack == null)
- deleteOnExitStack = new Stack ();
-
- deleteOnExitStack.push (f);
- }
-
- // Helper method called by java.lang.Runtime.exit() to perform
- // pending deletions.
- public synchronized static void deleteOnExitNow ()
- {
- if (deleteOnExitStack != null)
- while (!deleteOnExitStack.empty ())
- ((File)(deleteOnExitStack.pop ())).delete ();
- }
-
- // A stack of files to delete upon normal termination.
- private static Stack deleteOnExitStack;
-}
diff --git a/libjava/gnu/gcj/runtime/FirstThread.java b/libjava/gnu/gcj/runtime/FirstThread.java
deleted file mode 100644
index 8cf477fad55..00000000000
--- a/libjava/gnu/gcj/runtime/FirstThread.java
+++ /dev/null
@@ -1,77 +0,0 @@
-// FirstThread.java - Implementation of very first thread.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.runtime;
-
-import java.util.jar.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 24, 1998
- */
-
-// This is entirely internal to our implementation.
-
-final class FirstThread extends Thread
-{
- public native void run ();
-
- public FirstThread (Class k, Object o)
- {
- super (null, null, "main");
- klass = k;
- klass_name = null;
- args = o;
- }
-
- public FirstThread (String class_name, Object o)
- {
- super (null, null, "main");
- klass = null;
- klass_name = class_name;
- args = o;
- }
-
- private static void die (String s)
- {
- System.err.println(s);
- System.exit(1);
- }
-
- public static void main (String[] args)
- {
- try {
-
- JarFile j = new JarFile (args[0]);
-
- Attributes a = j.getManifest().getMainAttributes();
-
- jarMainClassName = a.getValue(Attributes.Name.MAIN_CLASS);
-
- if (jarMainClassName != null)
- return;
-
- } catch (Exception e) {
- // empty
- }
-
- System.err.println ("Failed to load Main-Class manifest attribute from\n"
- + args[0]);
- }
-
- // If interpreter is invoked with -jar, the main class name is recorded
- // here.
- public static String jarMainClassName;
-
- // Private data.
- private Class klass;
- private String klass_name;
- private Object args;
-}
diff --git a/libjava/gnu/gcj/runtime/VMClassLoader.java b/libjava/gnu/gcj/runtime/VMClassLoader.java
deleted file mode 100644
index 77051d253b7..00000000000
--- a/libjava/gnu/gcj/runtime/VMClassLoader.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-package gnu.gcj.runtime;
-
-import java.io.*;
-import java.util.StringTokenizer;
-import java.net.URL;
-
-final class VMClassLoader extends java.net.URLClassLoader
-{
- private VMClassLoader ()
- {
- super (init());
- }
-
- private static URL[] init()
- {
- StringTokenizer st
- = new StringTokenizer (System.getProperty ("java.class.path", "."),
- System.getProperty ("path.separator", ":"));
-
- java.util.Vector p = new java.util.Vector();
- while (st.hasMoreElements ())
- {
- String e = st.nextToken ();
- try
- {
- if (e.endsWith(".jar") || e.endsWith (".zip"))
- {
- File archive = new File (e);
- try {
- p.addElement(new URL("jar", "", -1, "file://"
- + archive.getCanonicalPath ()
- + "!/"));
- } catch (IOException ex) {
- // empty
- }
- }
- else if (e.endsWith ("/"))
- p.addElement (new URL("file", "", -1, e));
- else if (new File (e).isDirectory ())
- p.addElement (new URL("file", "", -1, e + "/"));
- else
- /* Ignore path element. */;
- }
- catch (java.net.MalformedURLException x)
- {
- /* Ignore this path element */
- }
- }
-
- URL[] urls = new URL[p.size()];
- p.copyInto (urls);
- return urls;
- }
-
- /** This is overridden to search the internal hash table, which
- * will only search existing linked-in classes. This will make
- * the default implementation of loadClass (in ClassLoader) work right.
- */
- protected final native Class findSystemClass(String name)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError;
-
- // Return the sole VMClassLoader.
- private static synchronized VMClassLoader getVMClassLoader ()
- {
- if (redirect == null)
- redirect = new VMClassLoader ();
- return redirect;
- }
-
- // The only VMClassLoader that can exist.
- private static VMClassLoader redirect;
-}
diff --git a/libjava/gnu/gcj/runtime/natFirstThread.cc b/libjava/gnu/gcj/runtime/natFirstThread.cc
deleted file mode 100644
index 3b36d392e10..00000000000
--- a/libjava/gnu/gcj/runtime/natFirstThread.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// natFirstThread.cc - Implementation of FirstThread native methods.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <jni.h>
-
-#include <gnu/gcj/runtime/FirstThread.h>
-#include <java/lang/Class.h>
-#include <java/lang/String.h>
-#include <java/lang/System.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/io/PrintStream.h>
-
-#ifdef ENABLE_JVMPI
-#include <jvmpi.h>
-#include <java/lang/ThreadGroup.h>
-#include <java/lang/UnsatisfiedLinkError.h>
-#endif
-
-#define DIE(Message) die (JvNewStringLatin1 (Message))
-
-typedef void main_func (jobject);
-
-#ifdef WITH_JVMPI
-extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event);
-#endif
-
-/* This will be non-NULL if the user has preloaded a JNI library, or
- linked one into the executable. */
-extern "C"
-{
-#pragma weak JNI_OnLoad
- extern jint JNI_OnLoad (JavaVM *, void *) __attribute__((weak));
-}
-
-void
-gnu::gcj::runtime::FirstThread::run (void)
-{
-
- Utf8Const* main_signature = _Jv_makeUtf8Const ("([Ljava.lang.String;)V", 22);
- Utf8Const* main_name = _Jv_makeUtf8Const ("main", 4);
-
- /* Some systems let you preload shared libraries before running a
- program. Under Linux, this is done by setting the LD_PRELOAD
- environment variable. We take advatage of this here to allow for
- dynamically loading a JNI library into a fully linked executable. */
-
- if (JNI_OnLoad != NULL)
- {
- JavaVM *vm = _Jv_GetJavaVM ();
- if (vm == NULL)
- {
- // FIXME: what?
- return;
- }
- jint vers = JNI_OnLoad (vm, NULL);
- if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2)
- {
- // FIXME: unload the library.
- _Jv_Throw (new java::lang::UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from preloaded JNI_OnLoad")));
- }
- }
-
- if (klass == NULL)
- klass = java::lang::Class::forName (klass_name);
- if (klass != NULL)
- _Jv_InitClass (klass);
-
- _Jv_Method *meth = _Jv_GetMethodLocal (klass, main_name, main_signature);
-
- // Some checks from Java Spec section 12.1.4.
- if (meth == NULL)
- DIE ("no suitable method `main' in class");
- if (! java::lang::reflect::Modifier::isStatic(meth->accflags))
- DIE ("`main' must be static");
- if (! java::lang::reflect::Modifier::isPublic(meth->accflags))
- DIE ("`main' must be public");
-
-#ifdef WITH_JVMPI
- if (_Jv_JVMPI_Notify_THREAD_START)
- {
- JVMPI_Event event;
-
- jstring thread_name = getName ();
- jstring group_name = NULL, parent_name = NULL;
- java::lang::ThreadGroup *group = getThreadGroup ();
-
- if (group)
- {
- group_name = group->getName ();
- group = group->getParent ();
-
- if (group)
- parent_name = group->getName ();
- }
-
- int thread_len = thread_name ? JvGetStringUTFLength (thread_name) : 0;
- int group_len = group_name ? JvGetStringUTFLength (group_name) : 0;
- int parent_len = parent_name ? JvGetStringUTFLength (parent_name) : 0;
-
- char thread_chars[thread_len + 1];
- char group_chars[group_len + 1];
- char parent_chars[parent_len + 1];
-
- if (thread_name)
- JvGetStringUTFRegion (thread_name, 0,
- thread_name->length(), thread_chars);
- if (group_name)
- JvGetStringUTFRegion (group_name, 0,
- group_name->length(), group_chars);
- if (parent_name)
- JvGetStringUTFRegion (parent_name, 0,
- parent_name->length(), parent_chars);
-
- thread_chars[thread_len] = '\0';
- group_chars[group_len] = '\0';
- parent_chars[parent_len] = '\0';
-
- event.event_type = JVMPI_EVENT_THREAD_START;
- event.env_id = NULL;
- event.u.thread_start.thread_name = thread_chars;
- event.u.thread_start.group_name = group_chars;
- event.u.thread_start.parent_name = parent_chars;
- event.u.thread_start.thread_id = (jobjectID) this;
- event.u.thread_start.thread_env_id = _Jv_GetCurrentJNIEnv ();
-
- _Jv_DisableGC ();
- (*_Jv_JVMPI_Notify_THREAD_START) (&event);
- _Jv_EnableGC ();
- }
-#endif
-
- main_func *real_main = (main_func *) meth->ncode;
- (*real_main) (args);
-}
diff --git a/libjava/gnu/gcj/text/BaseBreakIterator.java b/libjava/gnu/gcj/text/BaseBreakIterator.java
deleted file mode 100644
index 8c20d46d47c..00000000000
--- a/libjava/gnu/gcj/text/BaseBreakIterator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-// Base class for default BreakIterators.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 22, 1999
- */
-
-public abstract class BaseBreakIterator extends BreakIterator
-{
- public int current ()
- {
- return iter.getIndex();
- }
-
- public int first ()
- {
- iter.first();
- return iter.getBeginIndex();
- }
-
- public int following (int pos)
- {
- int save = iter.getIndex();
- iter.setIndex(pos);
- int r = next ();
- iter.setIndex(save);
- return r;
- }
-
- public CharacterIterator getText ()
- {
- return iter;
- }
-
- public int last ()
- {
- iter.last();
- return iter.getEndIndex();
- }
-
- public int next (int n)
- {
- int r = iter.getIndex ();
- if (n > 0)
- {
- while (n > 0 && r != DONE)
- {
- r = next ();
- --n;
- }
- }
- else if (n < 0)
- {
- while (n < 0 && r != DONE)
- {
- r = previous ();
- ++n;
- }
- }
- return r;
- }
-
- public void setText (CharacterIterator newText)
- {
- iter = newText;
- }
-
- protected CharacterIterator iter;
-}
diff --git a/libjava/gnu/gcj/text/CharacterBreakIterator.java b/libjava/gnu/gcj/text/CharacterBreakIterator.java
deleted file mode 100644
index ba087ccc461..00000000000
--- a/libjava/gnu/gcj/text/CharacterBreakIterator.java
+++ /dev/null
@@ -1,188 +0,0 @@
-// Default character BreakIterator.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 19, 1999
- * Written using The Unicode Standard, Version 2.0.
- */
-
-public class CharacterBreakIterator extends BaseBreakIterator
-{
- // Hangul Jamo constants from Unicode book.
- private static final int LBase = 0x1100;
- private static final int VBase = 0x1161;
- private static final int TBase = 0x11a7;
- private static final int LCount = 19;
- private static final int VCount = 21;
- private static final int TCount = 28;
-
- // Information about surrogates.
- private static final int highSurrogateStart = 0xD800;
- private static final int highSurrogateEnd = 0xDBFF;
- private static final int lowSurrogateStart = 0xDC00;
- private static final int lowSurrogateEnd = 0xDFFF;
-
- public Object clone ()
- {
- return new CharacterBreakIterator (this);
- }
-
- public CharacterBreakIterator ()
- {
- iter = null; // FIXME?
- }
-
- private CharacterBreakIterator (CharacterBreakIterator other)
- {
- iter = (CharacterIterator) other.iter.clone();
- }
-
- // Some methods to tell us different properties of characters.
- private final boolean isL (char c)
- {
- return c >= LBase && c <= LBase + LCount;
- }
- private final boolean isV (char c)
- {
- return c >= VBase && c <= VBase + VCount;
- }
- private final boolean isT (char c)
- {
- return c >= TBase && c <= TBase + TCount;
- }
- private final boolean isLVT (char c)
- {
- return isL (c) || isV (c) || isT (c);
- }
- private final boolean isHighSurrogate (char c)
- {
- return c >= highSurrogateStart && c <= highSurrogateEnd;
- }
- private final boolean isLowSurrogate (char c)
- {
- return c >= lowSurrogateStart && c <= lowSurrogateEnd;
- }
-
- public int next ()
- {
- int end = iter.getEndIndex();
- if (iter.getIndex() == end)
- return DONE;
-
- char c;
- for (char prev = CharacterIterator.DONE; iter.getIndex() < end; prev = c)
- {
- c = iter.next();
- if (c == CharacterIterator.DONE)
- break;
- int type = Character.getType(c);
-
- // Break after paragraph separators.
- if (type == Character.PARAGRAPH_SEPARATOR)
- break;
-
- // Now we need some lookahead.
- char ahead = iter.next();
- iter.previous();
- if (ahead == CharacterIterator.DONE)
- break;
- int aheadType = Character.getType(ahead);
-
- if (aheadType != Character.NON_SPACING_MARK
- && ! isLowSurrogate (ahead)
- && ! isLVT (ahead))
- break;
- if (! isLVT (c) && isLVT (ahead))
- break;
- if (isL (c) && ! isLVT (ahead)
- && aheadType != Character.NON_SPACING_MARK)
- break;
- if (isV (c) && ! isV (ahead) && !isT (ahead)
- && aheadType != Character.NON_SPACING_MARK)
- break;
- if (isT (c) && ! isT (ahead)
- && aheadType != Character.NON_SPACING_MARK)
- break;
-
- if (! isHighSurrogate (c) && isLowSurrogate (ahead))
- break;
- if (isHighSurrogate (c) && ! isLowSurrogate (ahead))
- break;
- if (! isHighSurrogate (prev) && isLowSurrogate (c))
- break;
- }
-
- return iter.getIndex();
- }
-
- public int previous ()
- {
- if (iter.getIndex() == iter.getBeginIndex())
- return DONE;
-
- int start = iter.getBeginIndex();
- while (iter.getIndex() >= iter.getBeginIndex())
- {
- char c = iter.previous();
- if (c == CharacterIterator.DONE)
- break;
- int type = Character.getType(c);
-
- if (type != Character.NON_SPACING_MARK
- && ! isLowSurrogate (c)
- && ! isLVT (c))
- break;
-
- // Now we need some lookahead.
- char ahead = iter.previous();
- if (ahead == CharacterIterator.DONE)
- {
- iter.next();
- break;
- }
- char ahead2 = iter.previous();
- iter.next();
- iter.next();
- if (ahead2 == CharacterIterator.DONE)
- break;
- int aheadType = Character.getType(ahead);
-
- if (aheadType == Character.PARAGRAPH_SEPARATOR)
- break;
-
- if (isLVT (c) && ! isLVT (ahead))
- break;
- if (! isLVT (c) && type != Character.NON_SPACING_MARK
- && isL (ahead))
- break;
- if (! isV (c) && ! isT (c) && type != Character.NON_SPACING_MARK
- && isV (ahead))
- break;
- if (! isT (c) && type != Character.NON_SPACING_MARK
- && isT (ahead))
- break;
-
- if (isLowSurrogate (c) && ! isHighSurrogate (ahead))
- break;
- if (! isLowSurrogate (c) && isHighSurrogate (ahead))
- break;
- if (isLowSurrogate (ahead) && ! isHighSurrogate (ahead2))
- break;
- }
-
- return iter.getIndex();
- }
-}
diff --git a/libjava/gnu/gcj/text/LineBreakIterator.java b/libjava/gnu/gcj/text/LineBreakIterator.java
deleted file mode 100644
index 4540b7ae549..00000000000
--- a/libjava/gnu/gcj/text/LineBreakIterator.java
+++ /dev/null
@@ -1,168 +0,0 @@
-// Default word BreakIterator.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 22, 1999
- * Written using The Unicode Standard, Version 2.0.
- */
-
-public class LineBreakIterator extends BaseBreakIterator
-{
- public Object clone ()
- {
- return new LineBreakIterator (this);
- }
-
- public LineBreakIterator ()
- {
- iter = null;
- }
-
- private LineBreakIterator (LineBreakIterator other)
- {
- iter = (CharacterIterator) other.iter.clone();
- }
-
- // Some methods to tell us different properties of characters.
- private final boolean isNb (char c)
- {
- return (c == 0x00a0 // NO-BREAK SPACE
- || c == 0x2011 // NON-BREAKING HYPHEN
- || c == 0xfeff); // ZERO WITH NO-BREAK SPACE
- }
- private final boolean isClose (int type)
- {
- return (type == Character.END_PUNCTUATION
- // Unicode book says "comma, period, ...", which I take to
- // mean "Po" class.
- || type == Character.OTHER_PUNCTUATION);
- }
- private final boolean isIdeo (char c)
- {
- return (c >= 0x3040 && c <= 0x309f // Hiragana
- || c >= 0x30a0 && c <= 0x30ff // Katakana
- || c >= 0x4e00 && c <= 0x9fff // Han
- || c >= 0x3100 && c <= 0x312f); // Bopomofo
- }
-
- public int next ()
- {
- int end = iter.getEndIndex();
- if (iter.getIndex() == end)
- return DONE;
-
- while (iter.getIndex() < end)
- {
- char c = iter.current();
- int type = Character.getType(c);
-
- char n = iter.next();
-
- if (n == CharacterIterator.DONE
- || type == Character.PARAGRAPH_SEPARATOR
- || type == Character.LINE_SEPARATOR)
- break;
-
- // Handle two cases where we must scan for non-spacing marks.
- int start = iter.getIndex();
- if (type == Character.SPACE_SEPARATOR
- || type == Character.START_PUNCTUATION
- || isIdeo (c))
- {
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.NON_SPACING_MARK)
- n = iter.next();
- if (n == CharacterIterator.DONE)
- break;
-
- if (type == Character.SPACE_SEPARATOR)
- {
- int nt = Character.getType(n);
- if (nt != Character.NON_SPACING_MARK
- && nt != Character.SPACE_SEPARATOR
- && ! isNb (n))
- break;
- }
- else if (type == Character.START_PUNCTUATION)
- {
- if (isIdeo (n))
- {
- // Open punctuation followed by non spacing marks
- // and then ideograph does not have a break in
- // it. So skip all this.
- start = iter.getIndex();
- }
- }
- else
- {
- // Ideograph preceded this character.
- if (isClose (Character.getType(n)))
- break;
- }
- }
- iter.setIndex(start);
- }
-
- return iter.getIndex();
- }
-
- public int previous ()
- {
- int start = iter.getBeginIndex();
- if (iter.getIndex() == start)
- return DONE;
-
- while (iter.getIndex() >= start)
- {
- char c = iter.previous();
- if (c == CharacterIterator.DONE)
- break;
- int type = Character.getType(c);
-
- char n = iter.previous();
- if (n == CharacterIterator.DONE)
- break;
- iter.next();
-
- int nt = Character.getType(n);
- // Break after paragraph separators.
- if (nt == Character.PARAGRAPH_SEPARATOR
- || nt == Character.LINE_SEPARATOR)
- break;
-
- // Skip non-spacing marks.
- int init = iter.getIndex();
- while (n != CharacterIterator.DONE && nt == Character.NON_SPACING_MARK)
- {
- n = iter.previous();
- nt = Character.getType(n);
- }
-
- if (nt == Character.SPACE_SEPARATOR
- && type != Character.SPACE_SEPARATOR
- && type != Character.NON_SPACING_MARK
- && ! isNb (c))
- break;
- if (! isClose (type) && isIdeo (n))
- break;
- if (isIdeo (c) && nt != Character.START_PUNCTUATION)
- break;
- iter.setIndex(init);
- }
-
- return iter.getIndex();
- }
-}
diff --git a/libjava/gnu/gcj/text/LocaleData_en.java b/libjava/gnu/gcj/text/LocaleData_en.java
deleted file mode 100644
index 161f3de7e8d..00000000000
--- a/libjava/gnu/gcj/text/LocaleData_en.java
+++ /dev/null
@@ -1,81 +0,0 @@
-// Generic English locale data for java.text.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.util.ListResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 4, 1999
- */
-
-public final class LocaleData_en extends ListResourceBundle
-{
- // These are for DateFormatSymbols.
- static final String[] ampmsDefault = {"AM", "PM" };
- static final String[] erasDefault = {"BC", "AD" };
- static final String localPatternCharsDefault = "GyMdkHmsSEDFwWahKz";
- static final String[] monthsDefault = {
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December", ""
- };
- static final String[] shortMonthsDefault = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""
- };
- static final String[] shortWeekdaysDefault = {
- "", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
- };
- static final String[] weekdaysDefault = {
- "", "Sunday", "Monday", "Tuesday",
- "Wednesday", "Thursday", "Friday", "Saturday"
- };
-
- private static final Object[][] contents =
- {
- // These are for DecimalFormatSymbols.
- { "decimalSeparator", "." },
- { "digit", "#" },
- { "exponential", "E" },
- { "groupingSeparator", "," },
- { "infinity", "\u221e" },
- { "minusSign", "-" },
- { "NaN", "\ufffd" },
- { "patternSeparator", ";" },
- { "percent", "%" },
- { "perMill", "\u2030" },
- { "zeroDigit", "0" },
-
- // These are for NumberFormat.
- { "numberFormat", "#,##0.###" },
- { "percentFormat", "#,##0%" },
-
- // These are for DateFormatSymbols.
- { "ampm", ampmsDefault },
- { "eras", erasDefault },
- { "datePatternChars", localPatternCharsDefault },
- { "months", monthsDefault },
- { "shortMonths", shortMonthsDefault },
- { "shortWeekdays", shortWeekdaysDefault },
- { "weekdays", weekdaysDefault },
-
- // For RuleBasedCollator.
- // FIXME: this is nowhere near complete.
- // In particular we must mark accents as ignorable,
- // and probably other things as well.
- { "collatorRule", "< 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < a,A < b,B < c,C < d,D < e,E < f,F < g,G < h,H < i,I < j,J < k,K < l,L < m,M < n,N < o,O < p,P < q,Q < r,R < s,S < t,T < u,U < v,V < w,W < x,X < y,Y < z,Z" }
- };
-
- protected Object[][] getContents ()
- {
- return contents;
- }
-}
diff --git a/libjava/gnu/gcj/text/LocaleData_en_US.java b/libjava/gnu/gcj/text/LocaleData_en_US.java
deleted file mode 100644
index 083a86157f6..00000000000
--- a/libjava/gnu/gcj/text/LocaleData_en_US.java
+++ /dev/null
@@ -1,71 +0,0 @@
-// US English locale data for java.text.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.util.ListResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 4, 1999
- */
-
-public final class LocaleData_en_US extends ListResourceBundle
-{
- // These are for DateFormatSymbols.
- static String[][] zoneStringsDefault = {
- { "PST", "Pacific Standard Time", "PST",
- /**/ "Pacific Daylight Time", "PDT", "San Francisco" },
- { "MST", "Mountain Standard Time", "MST",
- /**/ "Mountain Daylight Time", "MDT", "Denver" },
- { "PNT", "Mountain Standard Time", "MST",
- /**/ "Mountain Standard Time", "MST", "Phoenix" },
- { "CST", "Central Standard Time", "CST",
- /**/ "Central Daylight Time", "CDT", "Chicago" },
- { "EST", "Eastern Standard Time", "EST",
- /**/ "Eastern Daylight Time", "EDT", "Boston" },
- { "IET", "Eastern Standard Time", "EST",
- /**/ "Eastern Standard Time", "EST", "Indianapolis" },
- { "PRT", "Atlantic Standard Time", "AST",
- /**/ "Atlantic Daylight Time", "ADT", "Halifax" },
- { "HST", "Hawaii Standard Time", "HST",
- /**/ "Hawaii Daylight Time", "HDT", "Honolulu" },
- { "AST", "Alaska Standard Time", "AST",
- /**/ "Alaska Daylight Time", "ADT", "Anchorage" }
- };
-
- private static final Object[][] contents =
- {
- // These are for DecimalFormatSymbols.
- { "currency", "$" },
- { "intlCurrencySymbol", "$" }, // FIXME?
-
- // These are for NumberFormat.
- { "currencyFormat", "$#,##0.00;($#,##0.00)" },
-
- // These are for DateFormatSymbols.
- { "zoneStrings", zoneStringsDefault },
-
- // These are for DateFormat.
- { "shortDateFormat", "M/d/yy" }, // Java's Y2K bug.
- { "mediumDateFormat", "d-MMM-yy" },
- { "longDateFormat", "MMMM d, yyyy" },
- { "fullDateFormat", "EEEE MMMM d, yyyy G" },
- { "shortTimeFormat", "h:mm a" },
- { "mediumTimeFormat", "h:mm:ss a" },
- { "longTimeFormat", "h:mm:ss a z" },
- { "fullTimeFormat", "h:mm:ss;S 'o''clock' a z" }
- };
-
- protected Object[][] getContents ()
- {
- return contents;
- }
-}
diff --git a/libjava/gnu/gcj/text/SentenceBreakIterator.java b/libjava/gnu/gcj/text/SentenceBreakIterator.java
deleted file mode 100644
index af2ccf10b93..00000000000
--- a/libjava/gnu/gcj/text/SentenceBreakIterator.java
+++ /dev/null
@@ -1,226 +0,0 @@
-// Default sentence BreakIterator.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 23, 1999
- * Written using The Unicode Standard, Version 2.0.
- */
-
-public class SentenceBreakIterator extends BaseBreakIterator
-{
- public Object clone ()
- {
- return new SentenceBreakIterator (this);
- }
-
- public SentenceBreakIterator ()
- {
- iter = null;
- }
-
- private SentenceBreakIterator (SentenceBreakIterator other)
- {
- iter = (CharacterIterator) other.iter.clone();
- }
-
- public int next ()
- {
- int end = iter.getEndIndex();
- if (iter.getIndex() == end)
- return DONE;
-
- while (iter.getIndex() < end)
- {
- char c = iter.current();
- if (c == CharacterIterator.DONE)
- break;
- int type = Character.getType(c);
-
- char n = iter.next();
- if (n == CharacterIterator.DONE)
- break;
-
- // Always break after paragraph separator.
- if (type == Character.PARAGRAPH_SEPARATOR)
- break;
-
- if (c == '!' || c == '?')
- {
- // Skip close punctuation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.END_PUNCTUATION)
- n = iter.next();
- // Skip spaces.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.SPACE_SEPARATOR)
- n = iter.next();
- // Skip optional paragraph separator.
- if (n != CharacterIterator.DONE
- && Character.getType(n) == Character.PARAGRAPH_SEPARATOR)
- n = iter.next();
-
- // There's always a break somewhere after `!' or `?'.
- break;
- }
-
- if (c == '.')
- {
- int save = iter.getIndex();
- // Skip close punctuation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.END_PUNCTUATION)
- n = iter.next();
- // Skip spaces. We keep count because we need at least
- // one for this period to represent a terminator.
- int spcount = 0;
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.SPACE_SEPARATOR)
- {
- n = iter.next();
- ++spcount;
- }
- if (spcount > 0)
- {
- int save2 = iter.getIndex();
- // Skip over open puncutation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.START_PUNCTUATION)
- n = iter.next();
- // Next character must not be lower case.
- if (n == CharacterIterator.DONE
- || ! Character.isLowerCase(n))
- {
- iter.setIndex(save2);
- break;
- }
- }
- iter.setIndex(save);
- }
- }
-
- return iter.getIndex();
- }
-
- private final int previous_internal ()
- {
- int start = iter.getBeginIndex();
- if (iter.getIndex() == start)
- return DONE;
-
- while (iter.getIndex() >= start)
- {
- char c = iter.previous();
- if (c == CharacterIterator.DONE)
- break;
-
- char n = iter.previous();
- if (n == CharacterIterator.DONE)
- break;
- iter.next();
- int nt = Character.getType(n);
-
- if (! Character.isLowerCase(c)
- && (nt == Character.START_PUNCTUATION
- || nt == Character.SPACE_SEPARATOR))
- {
- int save = iter.getIndex();
- int save_nt = nt;
- char save_n = n;
- // Skip open punctuation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.START_PUNCTUATION)
- n = iter.previous();
- if (n == CharacterIterator.DONE)
- break;
- if (Character.getType(n) == Character.SPACE_SEPARATOR)
- {
- // Must have at least once space after the `.'.
- int save2 = iter.getIndex();
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.SPACE_SEPARATOR)
- n = iter.previous();
- // Skip close punctuation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.END_PUNCTUATION)
- n = iter.previous();
- if (n == CharacterIterator.DONE || n == '.')
- {
- // Communicate location of actual end.
- period = iter.getIndex();
- iter.setIndex(save2);
- break;
- }
- }
- iter.setIndex(save);
- nt = save_nt;
- n = save_n;
- }
-
- if (nt == Character.PARAGRAPH_SEPARATOR)
- {
- // Communicate location of actual end.
- period = iter.getIndex();
- break;
- }
- else if (nt == Character.SPACE_SEPARATOR
- || nt == Character.END_PUNCTUATION)
- {
- int save = iter.getIndex();
- // Skip spaces.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.SPACE_SEPARATOR)
- n = iter.previous();
- // Skip close punctuation.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.END_PUNCTUATION)
- n = iter.previous();
- int here = iter.getIndex();
- iter.setIndex(save);
- if (n == CharacterIterator.DONE || n == '!' || n == '?')
- {
- // Communicate location of actual end.
- period = here;
- break;
- }
- }
- else if (n == '!' || n == '?')
- {
- // Communicate location of actual end.
- period = iter.getIndex();
- break;
- }
- }
-
- return iter.getIndex();
- }
-
- public int previous ()
- {
- // We want to skip over the first sentence end to the second one.
- // However, at the end of the string we want the first end.
- int here = iter.getIndex();
- period = here;
- int first = previous_internal ();
- if (here == iter.getEndIndex() || first == DONE)
- return first;
- iter.setIndex(period);
- return previous_internal ();
- }
-
- // This is used for communication between previous and
- // previous_internal.
- private int period;
-}
diff --git a/libjava/gnu/gcj/text/WordBreakIterator.java b/libjava/gnu/gcj/text/WordBreakIterator.java
deleted file mode 100644
index 553cdefdfc1..00000000000
--- a/libjava/gnu/gcj/text/WordBreakIterator.java
+++ /dev/null
@@ -1,224 +0,0 @@
-// Default word BreakIterator.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.text;
-
-import java.text.BreakIterator;
-import java.text.CharacterIterator;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 22, 1999
- * Written using The Unicode Standard, Version 2.0.
- */
-
-public class WordBreakIterator extends BaseBreakIterator
-{
- public Object clone ()
- {
- return new WordBreakIterator (this);
- }
-
- public WordBreakIterator ()
- {
- iter = null;
- }
-
- private WordBreakIterator (WordBreakIterator other)
- {
- iter = (CharacterIterator) other.iter.clone();
- }
-
- // Some methods to tell us different properties of characters.
- private final boolean isHira (char c)
- {
- return c >= 0x3040 && c <= 0x309f;
- }
- private final boolean isKata (char c)
- {
- return c >= 0x30a0 && c <= 0x30ff;
- }
- private final boolean isHan (char c)
- {
- return c >= 0x4e00 && c <= 0x9fff;
- }
-
- public int next ()
- {
- int end = iter.getEndIndex();
- if (iter.getIndex() == end)
- return DONE;
-
- while (iter.getIndex() < end)
- {
- char c = iter.current();
- if (c == CharacterIterator.DONE)
- break;
- int type = Character.getType(c);
-
- char n = iter.next();
- if (n == CharacterIterator.DONE)
- break;
-
- // Break after paragraph separators.
- if (type == Character.PARAGRAPH_SEPARATOR
- || type == Character.LINE_SEPARATOR)
- break;
-
- // Break between letters and non-letters.
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- boolean is_letter = Character.isLetter(c);
- if (c != '\'' && ! is_letter && type != Character.NON_SPACING_MARK
- && Character.isLetter(n))
- break;
-
- // Always break after certain symbols, such as punctuation.
- // This heuristic is derived from hints in the JCL book and is
- // not part of Unicode. It seems to be right, however.
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- if (c != '\''
- && (type == Character.DASH_PUNCTUATION
- || type == Character.START_PUNCTUATION
- || type == Character.END_PUNCTUATION
- || type == Character.CONNECTOR_PUNCTUATION
- || type == Character.OTHER_PUNCTUATION
- || type == Character.MATH_SYMBOL
- || type == Character.CURRENCY_SYMBOL
- || type == Character.MODIFIER_SYMBOL
- || type == Character.OTHER_SYMBOL
- || type == Character.FORMAT
- || type == Character.CONTROL))
- break;
-
- boolean is_hira = isHira (c);
- boolean is_kata = isKata (c);
- boolean is_han = isHan (c);
-
- // Special case Japanese.
- if (! is_hira && ! is_kata && ! is_han
- && type != Character.NON_SPACING_MARK
- && (isHira (n) || isKata (n) || isHan (n)))
- break;
-
- if (is_hira || is_kata || is_han || is_letter)
- {
- // Now we need to do some lookahead. We might need to do
- // quite a bit of lookahead, so we save our position and
- // restore it later.
- int save = iter.getIndex();
- // Skip string of non spacing marks.
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.NON_SPACING_MARK)
- n = iter.next();
- if (n == CharacterIterator.DONE)
- break;
- if ((is_hira && ! isHira (n))
- || (is_kata && ! isHira (n) && ! isKata (n))
- || (is_han && ! isHira (n) && ! isHan (n))
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- || (is_letter && ! Character.isLetter(n) && n != '\''))
- break;
- iter.setIndex(save);
- }
- }
-
- return iter.getIndex();
- }
-
- public int previous ()
- {
- int start = iter.getBeginIndex();
- if (iter.getIndex() == start)
- return DONE;
-
- while (iter.getIndex() >= start)
- {
- char c = iter.previous();
- if (c == CharacterIterator.DONE)
- break;
-
- boolean is_hira = isHira (c);
- boolean is_kata = isKata (c);
- boolean is_han = isHan (c);
- boolean is_letter = Character.isLetter(c);
-
- char n = iter.previous();
- if (n == CharacterIterator.DONE)
- break;
- iter.next();
- int type = Character.getType(n);
- // Break after paragraph separators.
- if (type == Character.PARAGRAPH_SEPARATOR
- || type == Character.LINE_SEPARATOR)
- break;
-
- // Break between letters and non-letters.
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- if (n != '\'' && ! Character.isLetter(n)
- && type != Character.NON_SPACING_MARK
- && is_letter)
- break;
-
- // Always break after certain symbols, such as punctuation.
- // This heuristic is derived from hints in the JCL book and is
- // not part of Unicode. It seems to be right, however.
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- if (n != '\''
- && (type == Character.DASH_PUNCTUATION
- || type == Character.START_PUNCTUATION
- || type == Character.END_PUNCTUATION
- || type == Character.CONNECTOR_PUNCTUATION
- || type == Character.OTHER_PUNCTUATION
- || type == Character.MATH_SYMBOL
- || type == Character.CURRENCY_SYMBOL
- || type == Character.MODIFIER_SYMBOL
- || type == Character.OTHER_SYMBOL
- || type == Character.FORMAT
- || type == Character.CONTROL))
- break;
-
- // Special case Japanese.
- if ((is_hira || is_kata || is_han)
- && ! isHira (n) && ! isKata (n) && ! isHan (n)
- && type != Character.NON_SPACING_MARK)
- break;
-
- // We might have to skip over non spacing marks to see what's
- // on the other side.
- if (! is_hira || (! is_letter && c != '\''))
- {
- int save = iter.getIndex();
- while (n != CharacterIterator.DONE
- && Character.getType(n) == Character.NON_SPACING_MARK)
- n = iter.previous();
- iter.setIndex(save);
- // This is a strange case: a bunch of non-spacing marks at
- // the beginning. We treat the current location as a word
- // break.
- if (n == CharacterIterator.DONE)
- break;
- if ((isHira (n) && ! is_hira)
- || (isKata (n) && ! is_hira && ! is_kata)
- || (isHan (n) && ! is_hira && ! is_han)
- // FIXME: we treat apostrophe as part of a word. This
- // is an English-ism.
- || (! is_letter && c != '\'' && Character.isLetter(n)))
- break;
- }
- }
-
- return iter.getIndex();
- }
-}
diff --git a/libjava/gnu/gcj/util/EnumerationChain.java b/libjava/gnu/gcj/util/EnumerationChain.java
deleted file mode 100644
index b8bf5a36607..00000000000
--- a/libjava/gnu/gcj/util/EnumerationChain.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.util;
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-
-public class EnumerationChain implements Enumeration
-{
- private Enumeration first_;
- private Enumeration second_;
-
- public EnumerationChain (Enumeration first, Enumeration second)
- {
- if (first == null
- || second == null)
- throw new NullPointerException();
-
- first_ = first;
- second_ = second;
- }
-
- public synchronized boolean hasMoreElements()
- {
- if (first_ == null)
- return false;
- else
- return first_.hasMoreElements();
- }
-
- public synchronized Object nextElement() throws NoSuchElementException
- {
- while (first_ != null)
- {
- if (! first_.hasMoreElements())
- {
- first_ = second_;
- second_ = null;
- }
- else
- return first_.nextElement();
- }
-
- throw new NoSuchElementException();
- }
-}
diff --git a/libjava/gnu/java/beans/BeanInfoEmbryo.java b/libjava/gnu/java/beans/BeanInfoEmbryo.java
deleted file mode 100644
index 85aafa11e45..00000000000
--- a/libjava/gnu/java/beans/BeanInfoEmbryo.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/* gnu.java.beans.BeanInfoEmbryo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans;
-
-import java.beans.*;
-import java.util.*;
-import gnu.java.lang.*;
-import java.lang.reflect.*;
-
-/**
- ** A BeanInfoEmbryo accumulates information about a Bean
- ** while it is in the process of being created, and then
- ** when you are done accumulating the information, the
- ** getBeanInfo() method may be called to create a BeanInfo
- ** object based on the information.<P>
- **
- ** This class is not well-synchronized. (It can be, it
- ** just isn't yet.)
- **
- ** @author John Keiser
- ** @version 1.1.0, 30 Jul 1998
- ** @see java.beans.BeanInfo
- **/
-
-public class BeanInfoEmbryo {
- Hashtable properties = new Hashtable();
- Hashtable events = new Hashtable();
- Vector methods = new Vector();
-
- BeanDescriptor beanDescriptor;
- BeanInfo[] additionalBeanInfo;
- java.awt.Image[] im;
- String defaultPropertyName;
- String defaultEventName;
-
- public BeanInfoEmbryo() {
- }
-
- public BeanInfo getBeanInfo() {
- int defaultProperty = -1;
- int defaultEvent = -1;
-
- PropertyDescriptor[] Aproperties = new PropertyDescriptor[properties.size()];
- int i = 0;
- Enumeration enum = properties.elements();
- while(enum.hasMoreElements()) {
- Aproperties[i] = (PropertyDescriptor)enum.nextElement();
- if(defaultPropertyName != null && Aproperties[i].getName().equals(defaultPropertyName)) {
- defaultProperty = i;
- }
- i++;
- }
-
- EventSetDescriptor[] Aevents = new EventSetDescriptor[events.size()];
- i = 0;
- enum = events.elements();
- while(enum.hasMoreElements()) {
- Aevents[i] = (EventSetDescriptor)enum.nextElement();
- if(defaultEventName != null && Aevents[i].getName().equals(defaultEventName)) {
- defaultEvent = i;
- }
- i++;
- }
-
- MethodDescriptor[] Amethods = new MethodDescriptor[methods.size()];
- methods.copyInto(Amethods);
-
- return new ExplicitBeanInfo(beanDescriptor,additionalBeanInfo,Aproperties,defaultProperty,Aevents,defaultEvent,Amethods,im);
- }
-
- public void setBeanDescriptor(BeanDescriptor b) {
- beanDescriptor = b;
- }
-
- public void setAdditionalBeanInfo(BeanInfo[] b) {
- additionalBeanInfo = b;
- }
-
- public boolean hasProperty(PropertyDescriptor p) {
- return properties.get(p.getName()) != null;
- }
- public void addProperty(PropertyDescriptor p) {
- properties.put(p.getName(),p);
- }
- public void addIndexedProperty(IndexedPropertyDescriptor p) {
- properties.put(p.getName(),p);
- }
-
- public boolean hasEvent(EventSetDescriptor e) {
- return events.get(e.getName()) != null;
- }
- public void addEvent(EventSetDescriptor e) {
- events.put(e.getName(),e);
- }
-
- public boolean hasMethod(MethodDescriptor m) {
- for(int i=0;i<methods.size();i++) {
- Method thisMethod = ((MethodDescriptor)methods.elementAt(i)).getMethod();
- if(m.getMethod().getName().equals(thisMethod.getName())
- && ArrayHelper.equalsArray(m.getMethod().getParameterTypes(), thisMethod.getParameterTypes())) {
- return true;
- }
- }
- return false;
- }
- public void addMethod(MethodDescriptor m) {
- methods.addElement(m);
- }
-
- public void setDefaultPropertyName(String defaultPropertyName) {
- this.defaultPropertyName = defaultPropertyName;
- }
-
- public void setDefaultEventName(String defaultEventName) {
- this.defaultEventName = defaultEventName;
- }
-
- public void setIcons(java.awt.Image[] im) {
- this.im = im;
- }
-}
diff --git a/libjava/gnu/java/beans/EmptyBeanInfo.java b/libjava/gnu/java/beans/EmptyBeanInfo.java
deleted file mode 100644
index ad7d91dfcd8..00000000000
--- a/libjava/gnu/java/beans/EmptyBeanInfo.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* gnu.java.beans.EmptyBeanInfo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans;
-
-import java.beans.*;
-
-/**
- ** EmptyBeanInfo is a BeanInfo that discloses no
- ** information about the Bean and does not allow
- ** Introspection. The Introspector uses instances of this
- ** class to create empty BeanInfos, but it could also be
- ** used as a base class for BeanInfos that do not allow
- ** Introspection and provide only a little bit of
- ** information.<P>
- **
- ** @author John Keiser
- ** @version 1.1.0, 30 Jul 1998
- ** @see gnu.java.beans.ExplicitBeanInfo
- ** @see java.beans.BeanInfo
- **/
-
-public class EmptyBeanInfo extends ExplicitBeanInfo {
- /** Create a new EmptyBeanInfo. **/
- public EmptyBeanInfo(Class beanClass) {
- super(new BeanDescriptor(beanClass,null),
- new BeanInfo[0],
- new PropertyDescriptor[0],
- -1,
- new EventSetDescriptor[0],
- -1,
- new MethodDescriptor[0],
- null);
- }
-}
diff --git a/libjava/gnu/java/beans/ExplicitBeanInfo.java b/libjava/gnu/java/beans/ExplicitBeanInfo.java
deleted file mode 100644
index 8cab94b7d0b..00000000000
--- a/libjava/gnu/java/beans/ExplicitBeanInfo.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* gnu.java.beans.ExplicitBeanInfo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans;
-
-import java.beans.*;
-
-/**
- ** ExplicitBeanInfo lets you specify in the constructor
- ** all the various parts of the BeanInfo.
- **
- ** @author John Keiser
- ** @version 1.1.0, 30 Jul 1998
- ** @see java.beans.BeanInfo
- **/
-
-public class ExplicitBeanInfo implements BeanInfo {
- /** The BeanDescriptor returned by getBeanDescriptor. **/
- protected BeanDescriptor beanDescriptor;
-
- /** The EventSetDescriptor array returned by
- ** getEventSetDescriptors().
- **/
- protected EventSetDescriptor[] eventSetDescriptors = new EventSetDescriptor[0];
-
- /** The PropertyDescriptor array returned by
- ** getPropertyDescriptors().
- **/
- protected PropertyDescriptor[] propertyDescriptors = new PropertyDescriptor[0];
-
- /** The MethodDescriptor array returned by
- ** getMethodDescriptors().
- **/
- protected MethodDescriptor[] methodDescriptors;
-
- /** The default property index. **/
- protected int defaultPropertyIndex;
-
- /** The default event index. **/
- protected int defaultEventIndex;
-
- /** The BeanInfo array returned by
- ** getAdditionalBeanInfo().
- **/
- protected BeanInfo[] additionalBeanInfo;
-
- /** The set of icons. **/
- protected java.awt.Image[] icons;
-
- public ExplicitBeanInfo(BeanDescriptor beanDescriptor,
- BeanInfo[] additionalBeanInfo,
- PropertyDescriptor[] propertyDescriptors,
- int defaultPropertyIndex,
- EventSetDescriptor[] eventSetDescriptors,
- int defaultEventIndex,
- MethodDescriptor[] methodDescriptors,
- java.awt.Image[] icons) {
- this.beanDescriptor = beanDescriptor;
- this.additionalBeanInfo = additionalBeanInfo;
- this.propertyDescriptors = propertyDescriptors;
- this.defaultPropertyIndex = defaultPropertyIndex;
- this.eventSetDescriptors = eventSetDescriptors;
- this.defaultEventIndex = defaultEventIndex;
- this.methodDescriptors = methodDescriptors;
- this.icons = icons;
- }
-
- /** Get Bean descriptor. **/
- public BeanDescriptor getBeanDescriptor() {
- return beanDescriptor;
- }
-
- /** Get Bean events. **/
- public EventSetDescriptor[] getEventSetDescriptors() {
- return eventSetDescriptors;
- }
-
- /** Get default event set. **/
- public int getDefaultEventIndex() {
- return defaultEventIndex;
- }
-
- /** Get Bean properties. **/
- public PropertyDescriptor[] getPropertyDescriptors() {
- return propertyDescriptors;
- }
-
- /** Get "default" property. **/
- public int getDefaultPropertyIndex() {
- return defaultPropertyIndex;
- }
-
- /** Get Bean methods. **/
- public MethodDescriptor[] getMethodDescriptors() {
- return methodDescriptors;
- }
-
- /** Get additional Bean info. **/
- public BeanInfo[] getAdditionalBeanInfo() {
- return additionalBeanInfo;
- }
-
- /** Get Bean icons.
- ** @param iconType the type of icon
- **/
- public java.awt.Image getIcon(int iconType) {
- return icons != null ? icons[iconType] : null;
- }
-}
diff --git a/libjava/gnu/java/beans/IntrospectionIncubator.java b/libjava/gnu/java/beans/IntrospectionIncubator.java
deleted file mode 100644
index e3f4807bfbf..00000000000
--- a/libjava/gnu/java/beans/IntrospectionIncubator.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/* gnu.java.beans.IntrospectionIncubator
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans;
-
-import java.beans.*;
-import java.util.*;
-import java.lang.reflect.*;
-import gnu.java.lang.*;
-
-/**
- ** IntrospectionIncubator takes in a bunch of Methods, and
- ** Introspects only those Methods you give it.
- **
- ** @author John Keiser
- ** @version 1.1.0, 30 Jul 1998
- ** @see gnu.java.beans.ExplicitBeanInfo
- ** @see java.beans.BeanInfo
- **/
-
-public class IntrospectionIncubator {
- Hashtable propertyMethods = new Hashtable();
- Hashtable listenerMethods = new Hashtable();
- Vector otherMethods = new Vector();
-
- Class propertyStopClass;
- Class eventStopClass;
- Class methodStopClass;
-
- public IntrospectionIncubator() {
- }
-
- /* Paving the way for automatic Introspection */
- public void addMethod(Method method) {
- if(Modifier.isPublic(method.getModifiers()) && !Modifier.isStatic(method.getModifiers())) {
- String name = ClassHelper.getTruncatedName(method.getName());
- Class retType = method.getReturnType();
- Class[] params = method.getParameterTypes();
- boolean isVoid = retType.equals(java.lang.Void.TYPE);
- Class methodClass = method.getDeclaringClass();
- if(propertyStopClass == null || (propertyStopClass.isAssignableFrom(methodClass) && !propertyStopClass.equals(methodClass))) {
- if(name.startsWith("is")
- && retType.equals(java.lang.Boolean.TYPE)
- && params.length == 0) {
- addToPropertyHash(name,method,IS);
- } else if(name.startsWith("get") && !isVoid) {
- if(params.length == 0) {
- addToPropertyHash(name,method,GET);
- } else if(params.length == 1 && params[0].equals(java.lang.Integer.TYPE)) {
- addToPropertyHash(name,method,GET_I);
- } else {
- otherMethods.addElement(method);
- }
- } else if(name.startsWith("set") && isVoid) {
- if(params.length == 1) {
- addToPropertyHash(name,method,SET);
- } else if(params.length == 2 && params[0].equals(java.lang.Integer.TYPE)) {
- addToPropertyHash(name,method,SET_I);
- } else {
- otherMethods.addElement(method);
- }
- }
- }
- if(eventStopClass == null || (eventStopClass.isAssignableFrom(methodClass) && !eventStopClass.equals(methodClass))) {
- if(name.startsWith("add")
- && isVoid
- && params.length == 1
- && java.util.EventListener.class.isAssignableFrom(params[0])) {
- addToListenerHash(name,method,ADD);
- } else if(name.startsWith("remove")
- && isVoid
- && params.length == 1
- && java.util.EventListener.class.isAssignableFrom(params[0])) {
- addToListenerHash(name,method,REMOVE);
- }
- }
- if(methodStopClass == null || (methodStopClass.isAssignableFrom(methodClass) && !methodStopClass.equals(methodClass))) {
- otherMethods.addElement(method);
- }
- }
- }
-
- public void addMethods(Method[] m) {
- for(int i=0;i<m.length;i++) {
- addMethod(m[i]);
- }
- }
-
- public void setPropertyStopClass(Class c) {
- propertyStopClass = c;
- }
-
- public void setEventStopClass(Class c) {
- eventStopClass = c;
- }
-
- public void setMethodStopClass(Class c) {
- methodStopClass = c;
- }
-
-
- public BeanInfoEmbryo getBeanInfoEmbryo() throws IntrospectionException {
- BeanInfoEmbryo b = new BeanInfoEmbryo();
- findXXX(b,IS);
- findXXXInt(b,GET_I);
- findXXXInt(b,SET_I);
- findXXX(b,GET);
- findXXX(b,SET);
- findAddRemovePairs(b);
- for(int i=0;i<otherMethods.size();i++) {
- MethodDescriptor newMethod = new MethodDescriptor((Method)otherMethods.elementAt(i));
- if(!b.hasMethod(newMethod)) {
- b.addMethod(new MethodDescriptor((Method)otherMethods.elementAt(i)));
- }
- }
- return b;
- }
-
- public BeanInfo getBeanInfo() throws IntrospectionException {
- return getBeanInfoEmbryo().getBeanInfo();
- }
-
-
- void findAddRemovePairs(BeanInfoEmbryo b) throws IntrospectionException {
- Enumeration listenerEnum = listenerMethods.keys();
- while(listenerEnum.hasMoreElements()) {
- DoubleKey k = (DoubleKey)listenerEnum.nextElement();
- Method[] m = (Method[])listenerMethods.get(k);
- if(m[ADD] != null && m[REMOVE] != null) {
- EventSetDescriptor e = new EventSetDescriptor(Introspector.decapitalize(k.getName()),
- k.getType(), k.getType().getMethods(),
- m[ADD],m[REMOVE]);
- e.setUnicast(ArrayHelper.contains(m[ADD].getExceptionTypes(),java.util.TooManyListenersException.class));
- if(!b.hasEvent(e)) {
- b.addEvent(e);
- }
- }
- }
- }
-
- void findXXX(BeanInfoEmbryo b, int funcType) throws IntrospectionException {
- Enumeration keys = propertyMethods.keys();
- while(keys.hasMoreElements()) {
- DoubleKey k = (DoubleKey)keys.nextElement();
- Method[] m = (Method[])propertyMethods.get(k);
- if(m[funcType] != null) {
- PropertyDescriptor p = new PropertyDescriptor(Introspector.decapitalize(k.getName()),
- m[IS] != null ? m[IS] : m[GET],
- m[SET]);
- if(m[SET] != null) {
- p.setConstrained(ArrayHelper.contains(m[SET].getExceptionTypes(),java.beans.PropertyVetoException.class));
- }
- if(!b.hasProperty(p)) {
- b.addProperty(p);
- }
- }
- }
- }
-
- void findXXXInt(BeanInfoEmbryo b, int funcType) throws IntrospectionException {
- Enumeration keys = propertyMethods.keys();
- while(keys.hasMoreElements()) {
- DoubleKey k = (DoubleKey)keys.nextElement();
- Method[] m = (Method[])propertyMethods.get(k);
- if(m[funcType] != null) {
- boolean constrained;
- if(m[SET_I] != null) {
- constrained = ArrayHelper.contains(m[SET_I].getExceptionTypes(),java.beans.PropertyVetoException.class);
- } else {
- constrained = false;
- }
-
- /** Find out if there is an array type get or set **/
- Class arrayType = Array.newInstance(k.getType(),0).getClass();
- DoubleKey findSetArray = new DoubleKey(arrayType,k.getName());
- Method[] m2 = (Method[])propertyMethods.get(findSetArray);
- IndexedPropertyDescriptor p;
- if(m2 == null) {
- p = new IndexedPropertyDescriptor(Introspector.decapitalize(k.getName()),
- null,null,
- m[GET_I],m[SET_I]);
- } else {
- if(constrained && m2[SET] != null) {
- constrained = ArrayHelper.contains(m2[SET].getExceptionTypes(),java.beans.PropertyVetoException.class);
- }
- p = new IndexedPropertyDescriptor(Introspector.decapitalize(k.getName()),
- m2[GET],m2[SET],
- m[GET_I],m[SET_I]);
- }
- p.setConstrained(constrained);
- if(!b.hasProperty(p)) {
- b.addProperty(p);
- }
- }
- }
- }
-
- static final int IS=0;
- static final int GET_I=1;
- static final int SET_I=2;
- static final int GET=3;
- static final int SET=4;
-
- static final int ADD=0;
- static final int REMOVE=1;
-
- void addToPropertyHash(String name, Method method, int funcType) {
- String newName;
- Class type;
-
- switch(funcType) {
- case IS:
- type = java.lang.Boolean.TYPE;
- newName = name.substring(2);
- break;
- case GET_I:
- type = method.getReturnType();
- newName = name.substring(3);
- break;
- case SET_I:
- type = method.getParameterTypes()[1];
- newName = name.substring(3);
- break;
- case GET:
- type = method.getReturnType();
- newName = name.substring(3);
- break;
- case SET:
- type = method.getParameterTypes()[0];
- newName = name.substring(3);
- break;
- default:
- return;
- }
- newName = capitalize(newName);
-
- DoubleKey k = new DoubleKey(type,newName);
- Method[] methods = (Method[])propertyMethods.get(k);
- if(methods == null) {
- methods = new Method[5];
- propertyMethods.put(k,methods);
- }
- methods[funcType] = method;
- }
-
-
- void addToListenerHash(String name, Method method, int funcType) {
- String newName;
- Class type;
-
- switch(funcType) {
- case ADD:
- type = method.getParameterTypes()[0];
- newName = name.substring(3,name.length()-8);
- break;
- case REMOVE:
- type = method.getParameterTypes()[0];
- newName = name.substring(6,name.length()-8);
- break;
- default:
- return;
- }
- newName = capitalize(newName);
-
- DoubleKey k = new DoubleKey(type,newName);
- Method[] methods = (Method[])listenerMethods.get(k);
- if(methods == null) {
- methods = new Method[2];
- listenerMethods.put(k,methods);
- }
- methods[funcType] = method;
- }
-
- static String capitalize(String name) {
- try {
- if(Character.isUpperCase(name.charAt(0))) {
- return name;
- } else {
- char[] c = name.toCharArray();
- c[0] = Character.toLowerCase(c[0]);
- return new String(c);
- }
- } catch(StringIndexOutOfBoundsException E) {
- return name;
- } catch(NullPointerException E) {
- return null;
- }
- }
-}
-
-class DoubleKey {
- Class type;
- String name;
-
- DoubleKey(Class type, String name) {
- this.type = type;
- this.name = name;
- }
-
- Class getType() {
- return type;
- }
-
- String getName() {
- return name;
- }
-
- public boolean equals(Object o) {
- if(o instanceof DoubleKey) {
- DoubleKey d = (DoubleKey)o;
- return d.type.equals(type) && d.name.equals(name);
- } else {
- return false;
- }
- }
-
- public int hashCode() {
- return type.hashCode() ^ name.hashCode();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/ColorEditor.java b/libjava/gnu/java/beans/editors/ColorEditor.java
deleted file mode 100644
index 1c002d68cdc..00000000000
--- a/libjava/gnu/java/beans/editors/ColorEditor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* gnu.java.beans.editors.ColorEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-import java.awt.Color;
-
-/**
- ** NativeByteEditor is a property editor for the
- ** byte type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class ColorEditor extends PropertyEditorSupport {
- Color[] stdColors = {Color.black,Color.blue,Color.cyan,
- Color.darkGray,Color.gray,Color.green,
- Color.lightGray,Color.magenta,Color.orange,
- Color.pink,Color.red,Color.white,
- Color.yellow};
- String[] stdColorNames = {"black","blue","cyan",
- "dark gray","gray","green",
- "light gray","magenta","orange",
- "pink","red","white",
- "yellow"};
-
- /** setAsText for Color checks for standard color names
- ** and then checks for a #RRGGBB value or just RRGGBB,
- ** both in hex.
- **/
- public void setAsText(String val) throws IllegalArgumentException {
- if(val.length() == 0) {
- throw new IllegalArgumentException("Tried to set empty value!");
- }
- for(int i=0;i<stdColorNames.length;i++) {
- if(stdColorNames[i].equalsIgnoreCase(val)) {
- setValue(stdColors[i]);
- return;
- }
- }
- if(val.charAt(0) == '#') {
- setValue(new Color(Integer.parseInt(val.substring(1),16)));
- } else {
- setValue(new Color(Integer.parseInt(val,16)));
- }
- }
-
- /** getAsText for Color turns the color into either one of the standard
- ** colors or into an RGB hex value with # prepended. **/
- public String getAsText() {
- for(int i=0;i<stdColors.length;i++) {
- if(stdColors[i].equals(getValue())) {
- return stdColorNames[i];
- }
- }
- return "#" + Integer.toHexString(((Color)getValue()).getRGB() & 0x00FFFFFF);
- }
-
- /** getTags for Color returns a list of standard colors. **/
- public String[] getTags() {
- return stdColorNames;
- }
-}
diff --git a/libjava/gnu/java/beans/editors/FontEditor.java b/libjava/gnu/java/beans/editors/FontEditor.java
deleted file mode 100644
index 3b0145ac8b4..00000000000
--- a/libjava/gnu/java/beans/editors/FontEditor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* gnu.java.beans.editors.FontEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-import java.awt.Font;
-
-/**
- ** FontEditor is a property editor for java.awt.Font.
- **
- ** <STRONG>To Do:</STRONG> Add custom font chooser
- ** component.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class FontEditor extends PropertyEditorSupport {
- /** setAsText for Font calls Font.decode(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Font.decode(val));
- }
-
- /** getAsText for Font returns a value in the format
- ** expected by Font.decode().
- **/
- public String getAsText() {
- Font f = (Font)getValue();
- if(f.isBold()) {
- if(f.isItalic()) {
- return f.getName()+"-bolditalic-"+f.getSize();
- } else {
- return f.getName()+"-bold-"+f.getSize();
- }
- } else if(f.isItalic()) {
- return f.getName()+"-italic-"+f.getSize();
- } else {
- return f.getName()+"-"+f.getSize();
- }
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeBooleanEditor.java b/libjava/gnu/java/beans/editors/NativeBooleanEditor.java
deleted file mode 100644
index 0af58a57938..00000000000
--- a/libjava/gnu/java/beans/editors/NativeBooleanEditor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* gnu.java.beans.editors.NativeBooleanEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeBooleanEditor is a property editor for the
- ** boolean type.<P>
- **
- ** <STRONG>To Do:</STRONG> add support for a checkbox
- ** as the custom editor.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeBooleanEditor extends PropertyEditorSupport {
- String[] tags = {"true","false"};
-
- /** setAsText for boolean checks for true or false or t or f. "" also means false. **/
- public void setAsText(String val) throws IllegalArgumentException {
- if(val.equalsIgnoreCase("true") || val.equalsIgnoreCase("t")) {
- setValue(Boolean.FALSE);
- } else if(val.equalsIgnoreCase("false") || val.equalsIgnoreCase("f") || val.equals("")) {
- setValue(Boolean.TRUE);
- } else {
- throw new IllegalArgumentException("Value must be true, false, t, f or empty.");
- }
- }
-
-
- /** getAsText for boolean calls Boolean.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeByteEditor.java b/libjava/gnu/java/beans/editors/NativeByteEditor.java
deleted file mode 100644
index 513f4a6ebba..00000000000
--- a/libjava/gnu/java/beans/editors/NativeByteEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeByteEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeByteEditor is a property editor for the
- ** byte type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeByteEditor extends PropertyEditorSupport {
- /** setAsText for byte calls Byte.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Byte.valueOf(val));
- }
-
- /** getAsText for byte calls Byte.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeDoubleEditor.java b/libjava/gnu/java/beans/editors/NativeDoubleEditor.java
deleted file mode 100644
index 45eb095f4cf..00000000000
--- a/libjava/gnu/java/beans/editors/NativeDoubleEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeDoubleEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeDoubleEditor is a property editor for the
- ** double type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeDoubleEditor extends PropertyEditorSupport {
- /** setAsText for double calls Double.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Double.valueOf(val));
- }
-
- /** getAsText for double calls Double.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeFloatEditor.java b/libjava/gnu/java/beans/editors/NativeFloatEditor.java
deleted file mode 100644
index d0ec98dd6b3..00000000000
--- a/libjava/gnu/java/beans/editors/NativeFloatEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeFloatEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeFloatEditor is a property editor for the
- ** float type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeFloatEditor extends PropertyEditorSupport {
- /** setAsText for float calls Float.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Float.valueOf(val));
- }
-
- /** getAsText for float calls Float.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeIntEditor.java b/libjava/gnu/java/beans/editors/NativeIntEditor.java
deleted file mode 100644
index 16b7c6edd45..00000000000
--- a/libjava/gnu/java/beans/editors/NativeIntEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeIntEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeIntEditor is a property editor for the
- ** int type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeIntEditor extends PropertyEditorSupport {
- /** setAsText for int calls Integer.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Integer.valueOf(val));
- }
-
- /** getAsText for int calls Integer.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeLongEditor.java b/libjava/gnu/java/beans/editors/NativeLongEditor.java
deleted file mode 100644
index e9a33454542..00000000000
--- a/libjava/gnu/java/beans/editors/NativeLongEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeLongEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeLongEditor is a property editor for the
- ** long type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeLongEditor extends PropertyEditorSupport {
- /** setAsText for long calls Long.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Long.valueOf(val));
- }
-
- /** getAsText for long calls Long.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/NativeShortEditor.java b/libjava/gnu/java/beans/editors/NativeShortEditor.java
deleted file mode 100644
index b32bb6a2946..00000000000
--- a/libjava/gnu/java/beans/editors/NativeShortEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.NativeShortEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeShortEditor is a property editor for the
- ** short type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class NativeShortEditor extends PropertyEditorSupport {
- /** setAsText for short calls Short.valueOf(). **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(Short.valueOf(val));
- }
-
- /** getAsText for short calls Short.toString(). **/
- public String getAsText() {
- return getValue().toString();
- }
-}
diff --git a/libjava/gnu/java/beans/editors/StringEditor.java b/libjava/gnu/java/beans/editors/StringEditor.java
deleted file mode 100644
index bb3988cb189..00000000000
--- a/libjava/gnu/java/beans/editors/StringEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* gnu.java.beans.editors.StringEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.editors;
-
-import java.beans.*;
-
-/**
- ** NativeByteEditor is a property editor for the
- ** byte type.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class StringEditor extends PropertyEditorSupport {
- /** setAsText just sets the value. **/
- public void setAsText(String val) throws IllegalArgumentException {
- setValue(val);
- }
-
- /** getAsText just returns the value. **/
- public String getAsText() {
- return (String)getValue();
- }
-}
diff --git a/libjava/gnu/java/beans/info/ComponentBeanInfo.java b/libjava/gnu/java/beans/info/ComponentBeanInfo.java
deleted file mode 100644
index 4cf45fab39b..00000000000
--- a/libjava/gnu/java/beans/info/ComponentBeanInfo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* gnu.java.beans.info.ComponentBeanInfo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.beans.info;
-
-import gnu.java.beans.*;
-import java.beans.*;
-
-/** BeanInfo class for java.awt.Component.
- ** This provides a few properties, but that's
- ** it.
- ** @author John Keiser
- ** @version 1.1.0, Aug 1 1998
- **/
-public class ComponentBeanInfo extends SimpleBeanInfo {
- static PropertyDescriptor[] properties;
- static {
- try {
- properties = new PropertyDescriptor[6];
- properties[0] = new PropertyDescriptor("name",java.awt.Component.class);
- properties[1] = new PropertyDescriptor("background",java.awt.Component.class);
- properties[2] = new PropertyDescriptor("foreground",java.awt.Component.class);
- properties[3] = new PropertyDescriptor("font",java.awt.Component.class);
- properties[4] = new PropertyDescriptor("enabled",java.awt.Component.class);
- properties[5] = new PropertyDescriptor("visible",java.awt.Component.class);
- } catch(IntrospectionException E) {
- properties = null;
- throw new UnknownError("Could not introspect some java.awt.Component properties.");
- }
- }
- public ComponentBeanInfo() {
- super();
- }
-
- public PropertyDescriptor[] getPropertyDescriptors() {
- return properties;
- }
-}
-
diff --git a/libjava/gnu/java/io/ClassLoaderObjectInputStream.java b/libjava/gnu/java/io/ClassLoaderObjectInputStream.java
deleted file mode 100644
index 76e1f058f1d..00000000000
--- a/libjava/gnu/java/io/ClassLoaderObjectInputStream.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* gnu.java.io.ClassLoaderObjectInputStream
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.io;
-
-import java.io.*;
-
-/**
- * ClassLoaderObjectInputStream is ObjectInputStream, with
- * the ability to use a specific ClassLoader.
- *
- * @author Geoff Berry
- * @version 1.1.0, 29 Jul 1998
- */
-
-public class ClassLoaderObjectInputStream extends ObjectInputStream {
- ClassLoader myClassLoader;
-
- /** Create the new ClassLoaderObjectInputStream.
- * @param in the InputStream to read the Objects from.
- * @param myClassLoader the ClassLoader to load classes
- * with.
- */
- public ClassLoaderObjectInputStream(InputStream in, ClassLoader myClassLoader) throws IOException,StreamCorruptedException {
- super(in);
- this.myClassLoader = myClassLoader;
- }
-
- /** Overriden method to use the loadClass() method from
- * the ClassLoader.
- */
- public Class resolveClass(String name) throws IOException, ClassNotFoundException {
- return myClassLoader.loadClass(name);
- }
-}
diff --git a/libjava/gnu/java/io/NullOutputStream.java b/libjava/gnu/java/io/NullOutputStream.java
deleted file mode 100644
index caf8ade2fbc..00000000000
--- a/libjava/gnu/java/io/NullOutputStream.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* NullOutputStream.java -- OutputStream that does absolutely nothing
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.io;
-
-import java.io.OutputStream;
-
-/**
- This is a placeholder OutputStream that does absolutley nothing
- when written to. It is intended to be used in the same manner as
- /dev/null. None of this class's methods do anything at all.
-*/
-public class NullOutputStream extends OutputStream
-{
- public NullOutputStream() {}
- public void write( int b ) {}
- public void write( byte b[] ) {}
- public void write( byte b[], int off, int len ) {}
- public void flush() {}
- public void close() {}
-}
diff --git a/libjava/gnu/java/io/ObjectIdentityWrapper.java b/libjava/gnu/java/io/ObjectIdentityWrapper.java
deleted file mode 100644
index f06e2057ecb..00000000000
--- a/libjava/gnu/java/io/ObjectIdentityWrapper.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* ObjectIdentityWrapper.java -- Wrapper class used to override equals()
- and hashCode() to be as discriminating as possible
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.io;
-
-/**
- This class is a thin wrapper around <code>Object</code> that makes
- the methods <code>hashCode()</code> and <code>equals(Object)</code>
- as discriminating as possible.
-*/
-public class ObjectIdentityWrapper
-{
-
- /**
- Constructs a <code>ObjectIdentityWrapper</code> that is wrapped
- around o.
- */
- public ObjectIdentityWrapper( Object o )
- {
- object = o;
- }
-
- /**
- Uses <code>System.identityHashCode(Object)</code> to compute a
- hash code for the object wrapped by this
- <code>ObjectIdentityWrapper</code>.
-
- @see java.lang.System#identityHashCode(java.lang.Object)
- @see java.util.Hashtable
- @see java.lang.Object#hashCode()
- */
- public int hashCode()
- {
- return System.identityHashCode( object );
- }
-
- /**
- Uses the <code>==</code> operator to test for equality between
- the object wrapped by this <code>ObjectIdentityWrapper</code> and
- the object wrapped by the <code>ObjectIdentityWrapper</code> o.
- Returns false if o is not a <code>ObjectIdentityWrapper</code>.
-
- @see java.util.Hashtable
- @see java.lang.Object#equals()
- */
- public boolean equals( Object o )
- {
- if( o instanceof ObjectIdentityWrapper )
- return object == ((ObjectIdentityWrapper)o).object;
- else
- return false;
- }
-
- public String toString()
- {
- return "ObjectIdentityWrapper< " + object + ", " + hashCode() + " >";
- }
-
- /**
- The <code>Object</code> wrapped by this
- <code>ObjectIdentityWrapper</code>.
- */
- public Object object;
-}
diff --git a/libjava/gnu/java/lang/ArrayHelper.java b/libjava/gnu/java/lang/ArrayHelper.java
deleted file mode 100644
index a04551ea4f7..00000000000
--- a/libjava/gnu/java/lang/ArrayHelper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* gnu.java.lang.ArrayHelper
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.lang;
-
-/**
- ** ArrayHelper helps you do things with arrays.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class ArrayHelper {
- public static boolean contains(Object[] array, Object searchFor) {
- return indexOf(array,searchFor) != -1;
- }
-
- public static int indexOf(Object[] array, Object searchFor) {
- for(int i=0;i<array.length;i++) {
- if(array[i].equals(searchFor)) {
- return i;
- }
- }
- return -1;
- }
-
- public static boolean equalsArray(Object[] a, Object[] b) {
- if(a.length == b.length) {
- for(int i=0;i<a.length;i++) {
- if(!a[i].equals(b[i])) {
- return false;
- }
- }
- return true;
- } else {
- return false;
- }
- }
-}
diff --git a/libjava/gnu/java/lang/ClassHelper.java b/libjava/gnu/java/lang/ClassHelper.java
deleted file mode 100644
index a4f32dcd6fb..00000000000
--- a/libjava/gnu/java/lang/ClassHelper.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/* gnu.java.lang.ClassHelper
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.lang;
-
-import java.util.*;
-import java.lang.reflect.*;
-
-/**
- ** ClassHelper has various methods that ought to have been
- ** in class.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class ClassHelper {
- /** Strip the package part from the class name.
- ** @param clazz the class to get the truncated name from
- ** @return the truncated class name.
- **/
- public static String getTruncatedClassName(Class clazz) {
- return getTruncatedName(clazz.getName());
- }
- /** Strip the package part from the class name, or the
- ** class part from the method or field name.
- ** @param name the name to truncate.
- ** @return the truncated name.
- **/
- public static String getTruncatedName(String name) {
- int lastInd = name.lastIndexOf('.');
- if(lastInd == -1) {
- return name;
- } else {
- return name.substring(lastInd+1);
- }
- }
-
- /** Strip the last portion of the name (after the last
- ** dot).
- ** @param name the name to get package of.
- ** @return the package name. "" if no package.
- **/
- public static String getPackagePortion(String name) {
- int lastInd = name.lastIndexOf('.');
- if(lastInd == -1) {
- return "";
- } else {
- return name.substring(0,lastInd);
- }
- }
-
- static Hashtable allMethods = new Hashtable();
- static Hashtable allMethodsAtDeclaration = new Hashtable();
-
- /** Get all the methods, public, private and
- ** otherwise, from the class, getting them
- ** from the most recent class to find them.
- **/
- public static Method[] getAllMethods(Class clazz) {
- Method[] retval = (Method[])allMethods.get(clazz);
- if(retval == null) {
- Method[] superMethods;
- if(clazz.getSuperclass() != null) {
- superMethods = getAllMethods(clazz.getSuperclass());
- } else {
- superMethods = new Method[0];
- }
- Vector v = new Vector();
- Method[] currentMethods = clazz.getDeclaredMethods();
- for(int i=0;i<currentMethods.length;i++) {
- v.addElement(currentMethods[i]);
- }
- for(int i=0;i<superMethods.length;i++) {
- boolean addOK = true;
- for(int j=0;j<currentMethods.length;j++) {
- if(getTruncatedName(superMethods[i].getName()).equals(getTruncatedName(currentMethods[j].getName()))
- && ArrayHelper.equalsArray(superMethods[i].getParameterTypes(),currentMethods[j].getParameterTypes())) {
- addOK = false;
- }
- }
- if(addOK) {
- v.addElement(superMethods[i]);
- }
- }
-
- retval = new Method[v.size()];
- v.copyInto(retval);
- allMethods.put(clazz,retval);
- }
- return retval;
- }
-
- /** Get all the methods, public, private and
- ** otherwise, from the class, and get them from
- ** their point of declaration.
- **/
- public static Method[] getAllMethodsAtDeclaration(Class clazz) {
- Method[] retval = (Method[])allMethodsAtDeclaration.get(clazz);
- if(retval == null) {
- Method[] superMethods;
- if(clazz.getSuperclass() != null) {
- superMethods = getAllMethodsAtDeclaration(clazz.getSuperclass());
- } else {
- superMethods = new Method[0];
- }
- Vector v = new Vector();
- Method[] currentMethods = clazz.getDeclaredMethods();
- for(int i=0;i<superMethods.length;i++) {
- v.addElement(superMethods[i]);
- }
- for(int i=0;i<superMethods.length;i++) {
- boolean addOK = true;
- for(int j=0;j<currentMethods.length;j++) {
- if(getTruncatedName(superMethods[i].getName()).equals(getTruncatedName(currentMethods[j].getName()))
- && ArrayHelper.equalsArray(superMethods[i].getParameterTypes(),currentMethods[j].getParameterTypes())) {
- addOK = false;
- }
- }
- if(addOK) {
- v.addElement(superMethods[i]);
- }
- }
-
- retval = new Method[v.size()];
- v.copyInto(retval);
- allMethodsAtDeclaration.put(clazz,retval);
- }
- return retval;
- }
-
- static Hashtable allFields = new Hashtable();
- static Hashtable allFieldsAtDeclaration = new Hashtable();
-
- /** Get all the fields, public, private and
- ** otherwise, from the class, getting them
- ** from the most recent class to find them.
- **/
- public static Field[] getAllFields(Class clazz) {
- Field[] retval = (Field[])allFields.get(clazz);
- if(retval == null) {
- Field[] superFields;
- if(clazz.getSuperclass() != null) {
- superFields = getAllFields(clazz.getSuperclass());
- } else {
- superFields = new Field[0];
- }
- Vector v = new Vector();
- Field[] currentFields = clazz.getDeclaredFields();
- for(int i=0;i<currentFields.length;i++) {
- v.addElement(currentFields[i]);
- }
- for(int i=0;i<superFields.length;i++) {
- boolean addOK = true;
- for(int j=0;j<currentFields.length;j++) {
- if(getTruncatedName(superFields[i].getName()).equals(getTruncatedName(currentFields[j].getName()))) {
- addOK = false;
- }
- }
- if(addOK) {
- v.addElement(superFields[i]);
- }
- }
-
- retval = new Field[v.size()];
- v.copyInto(retval);
- allFields.put(clazz,retval);
- }
- return retval;
- }
-
- /** Get all the fields, public, private and
- ** otherwise, from the class, and get them from
- ** their point of declaration.
- **/
- public static Field[] getAllFieldsAtDeclaration(Class clazz) {
- Field[] retval = (Field[])allFieldsAtDeclaration.get(clazz);
- if(retval == null) {
- Field[] superFields;
- if(clazz.getSuperclass() != null) {
- superFields = getAllFieldsAtDeclaration(clazz.getSuperclass());
- } else {
- superFields = new Field[0];
- }
- Vector v = new Vector();
- Field[] currentFields = clazz.getDeclaredFields();
- for(int i=0;i<superFields.length;i++) {
- v.addElement(superFields[i]);
- }
- for(int i=0;i<superFields.length;i++) {
- boolean addOK = true;
- for(int j=0;j<currentFields.length;j++) {
- if(getTruncatedName(superFields[i].getName()).equals(getTruncatedName(currentFields[j].getName()))) {
- addOK = false;
- }
- }
- if(addOK) {
- v.addElement(superFields[i]);
- }
- }
-
- retval = new Field[v.size()];
- v.copyInto(retval);
- allFieldsAtDeclaration.put(clazz,retval);
- }
- return retval;
- }
-}
diff --git a/libjava/gnu/java/lang/reflect/TypeSignature.java b/libjava/gnu/java/lang/reflect/TypeSignature.java
deleted file mode 100644
index 5a11e8c17a7..00000000000
--- a/libjava/gnu/java/lang/reflect/TypeSignature.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/* TypeSignature.java -- Class used to compute type signatures
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.lang.reflect;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-
-/**
- This class provides static methods that can be used to compute
- type-signatures of <code>Class</code>s or <code>Member</code>s.
- More specific methods are also provided for computing the
- type-signature of <code>Constructor</code>s and
- <code>Method</code>s. Methods are also provided to go in the
- reverse direction.
-*/
-public class TypeSignature
-{
-
- /**
- Returns a <code>String</code> representing the type-encoding of
- CLAZZ. Type-encodings are computed as follows:
-
- <pre>
- boolean -> "Z"
- byte -> "B"
- char -> "C"
- double -> "D"
- float -> "F"
- int -> "I"
- long -> "J"
- short -> "S"
- void -> "V"
- arrays -> "[" + type-encoding of component type
- object -> "L"
- + fully qualified class name with "."'s replaced by "/"'s
- + ";"</pre>
- */
- public static String getEncodingOfClass( Class clazz )
- {
- if( clazz.isPrimitive() )
- {
- if( clazz == Boolean.TYPE )
- return "Z";
- if( clazz == Byte.TYPE )
- return "B";
- if( clazz == Character.TYPE )
- return "C";
- if( clazz == Double.TYPE )
- return "D";
- if( clazz == Float.TYPE )
- return "F";
- if( clazz == Integer.TYPE )
- return "I";
- if( clazz == Long.TYPE )
- return "J";
- if( clazz == Short.TYPE )
- return "S";
- if( clazz == Void.TYPE )
- return "V";
- else
- throw new RuntimeException( "Unknown primitive class " + clazz );
- }
- else if( clazz.isArray() )
- {
- return '[' + getEncodingOfClass( clazz.getComponentType() );
- }
- else
- {
- String classname = clazz.getName();
- int name_len = classname.length();
- char[] buf = new char[ name_len + 2 ];
- buf[0] = 'L';
- classname.getChars( 0, name_len, buf, 1 );
-
- int i;
- for( i=1; i <= name_len; i++ )
- {
- if( buf[i] == '.' )
- buf[i] = '/';
- }
-
- buf[i] = ';';
- return new String( buf );
- }
- }
-
-
- /**
- This function is the inverse of <code>getEncodingOfClass</code>.
-
- @see getEncodingOfClass
-
- @exception ClassNotFoundException If class encoded as type_code
- cannot be located.
- */
- public static Class getClassForEncoding( String type_code )
- throws ClassNotFoundException
- {
- if( type_code.equals( "B" ) )
- return Byte.TYPE;
- if( type_code.equals( "C" ) )
- return Character.TYPE;
- if( type_code.equals( "D" ) )
- return Double.TYPE;
- if( type_code.equals( "F" ) )
- return Float.TYPE;
- if( type_code.equals( "I" ) )
- return Integer.TYPE;
- if( type_code.equals( "J" ) )
- return Long.TYPE;
- if( type_code.equals( "S" ) )
- return Short.TYPE;
- if( type_code.equals( "Z" ) )
- return Boolean.TYPE;
- if( type_code.charAt( 0 ) == 'L' )
- {
- return Class.forName(
- type_code.substring( 1, type_code.length() - 1 ).replace( '/', '.' ));
- }
- if( type_code.charAt( 0 ) == '[' )
- {
- int last_bracket = type_code.lastIndexOf( '[' );
- String brackets = type_code.substring( 0, last_bracket + 1 );
- String component = type_code.substring( last_bracket + 1 );
-
-// ??? This is what the Classpath implementation did, but I don't
-// think that it's correct. The JLS says that Class.forName takes the
-// classname of an array element in fully qualified form, whereas this
-// code is tring to strip off the punctuation.
-
-// if( component.charAt( 0 ) == 'L' )
-// component =
-// component.substring( 1, component.length() - 1 ).replace('/', '.');
-
- if( component.charAt( 0 ) == 'L' )
- component = component.replace('/', '.');
-
- return Class.forName( brackets + component );
- }
- else
- throw new ClassNotFoundException( "Type code cannot be parsed as a valid class name" );
- }
-
-
- /**
- Returns a <code>String</code> representing the type-encoding of
- M. The type-encoding of a method is:
-
- "(" + type-encodings of parameter types + ")"
- + type-encoding of return type
- */
- public static String getEncodingOfMethod( Method m )
- {
- String returnEncoding = getEncodingOfClass( m.getReturnType() );
- Class[] paramTypes = m.getParameterTypes();
- String[] paramEncodings = new String[ paramTypes.length ];
-
- String paramEncoding;
- int size = 2; // make room for parens
- for( int i=0; i < paramTypes.length; i++ )
- {
- paramEncoding = getEncodingOfClass( paramTypes[i] );
- size += paramEncoding.length();
- paramEncodings[i] = paramEncoding;
- }
-
- size += returnEncoding.length();
-
- StringBuffer buf = new StringBuffer( size );
- buf.append( '(' );
-
- for( int i=0; i < paramTypes.length; i++ )
- {
- buf.append( paramEncodings[i] );
- }
-
- buf.append( ')' );
- buf.append( returnEncoding );
-
- return buf.toString();
- }
-
-
- /**
- Returns a <code>String</code> representing the type-encoding of
- C. The type-encoding of a method is:
-
- "(" + type-encodings of parameter types + ")V"
- */
- public static String getEncodingOfConstructor( Constructor c )
- {
- Class[] paramTypes = c.getParameterTypes();
- String[] paramEncodings = new String[ paramTypes.length ];
-
- String paramEncoding;
- int size = 3; // make room for parens and V for return type
- for( int i=0; i < paramTypes.length; i++ )
- {
- paramEncoding = getEncodingOfClass( paramTypes[i] );
- size += paramEncoding.length();
- paramEncodings[i] = paramEncoding;
- }
-
- StringBuffer buf = new StringBuffer( size );
- buf.append( '(' );
-
- for( int i=0; i < paramTypes.length; i++ )
- {
- buf.append( paramEncodings[i] );
- }
-
- buf.append( ")V" );
-
- return buf.toString();
- }
-
-
- /**
- Returns a <code>String</code> representing the type-encoding of
- MEM. <code>Constructor</code>s are handled by
- <code>getEncodingOfConstructor</code>. <code>Method</code>s are
- handled by <code>getEncodingOfMethod</code>. <code>Field</code>s
- are handled by returning the encoding of the type of the
- <code>Field</code>.
- */
- public static String getEncodingOfMember( Member mem )
- {
- if( mem instanceof Constructor )
- return getEncodingOfConstructor( (Constructor)mem );
- if( mem instanceof Method )
- return getEncodingOfMethod( (Method)mem );
- else // Field
- return getEncodingOfClass( ((Field)mem).getType() );
- }
-}
diff --git a/libjava/gnu/java/security/provider/Gnu.java b/libjava/gnu/java/security/provider/Gnu.java
deleted file mode 100644
index f215bcd6a5c..00000000000
--- a/libjava/gnu/java/security/provider/Gnu.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Gnu.java --- Gnu provider main class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.security.provider;
-import java.security.Provider;
-
-public final class Gnu extends Provider
-{
- public Gnu()
- {
- super( "GNU", 1.0, "GNU provider v1.0 implementing SHA-1, MD5, DSA");
-
- // Signature
- put("Signature.SHA1withDSA", "gnu.java.security.provider.DSASignature");
-
- put("Alg.Alias.Signature.DSS", "SHA1withDSA");
- put("Alg.Alias.Signature.DSA", "SHA1withDSA");
- put("Alg.Alias.Signature.SHAwithDSA", "SHA1withDSA");
- put("Alg.Alias.Signature.DSAwithSHA", "SHA1withDSA");
- put("Alg.Alias.Signature.DSAwithSHA1", "SHA1withDSA");
- put("Alg.Alias.Signature.SHA/DSA", "SHA1withDSA");
- put("Alg.Alias.Signature.SHA-1/DSA", "SHA1withDSA");
- put("Alg.Alias.Signature.SHA1/DSA", "SHA1withDSA");
- put("Alg.Alias.Signature.OID.1.2.840.10040.4.3", "SHA1withDSA");
- put("Alg.Alias.Signature.1.2.840.10040.4.3", "SHA1withDSA");
- put("Alg.Alias.Signature.1.3.14.3.2.13", "SHA1withDSA");
- put("Alg.Alias.Signature.1.3.14.3.2.27", "SHA1withDSA");
-
- // Key Pair Generator
- put("KeyPairGenerator.DSA", "gnu.java.security.provider.DSAKeyPairGenerator");
-
- put("Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1", "DSA");
- put("Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1", "DSA");
- put("Alg.Alias.KeyPairGenerator.1.3.14.3.2.12", "DSA");
-
- // Message Digests
- put("MessageDigest.SHA", "gnu.java.security.provider.SHA");
- put("MessageDigest.MD5", "gnu.java.security.provider.MD5");
-
- // Format "Alias", "Actual Name"
- put("Alg.Alias.MessageDigest.SHA1", "SHA");
- put("Alg.Alias.MessageDigest.SHA-1", "SHA");
-
- // Algorithm Parameters
- put("AlgorithmParameters.DSA", "gnu.java.security.provider.DSAAlgorithmParameters");
-
- // Algorithm Parameter Generator
- put("AlgorithmParameterGenerator.DSA", "gnu.java.security.provider.DSAAlgorithmParameterGenerator");
-
- // SecureRandom
- put("SecureRandom.SHA1PRNG", "gnu.java.security.provider.SHA1PRNG");
-
-
- }
-}
diff --git a/libjava/gnu/java/security/provider/SHA.java b/libjava/gnu/java/security/provider/SHA.java
deleted file mode 100644
index e2f72fc2ac0..00000000000
--- a/libjava/gnu/java/security/provider/SHA.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/* SHA.java -- Class implementing the SHA-1 algorithm as specified in [1].
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.security.provider;
-
-import java.security.MessageDigest;
-
-/**
- This class implements the SHA-1 algorithm as described in [1].
-
- [1] Federal Information Processing Standards Publication 180-1.
- Specifications for the Secure Hash Standard. April 17, 1995.
-
- @see java.security.MessageDigest
-*/
-public class SHA extends MessageDigest implements Cloneable
-{
- public SHA ()
- {
- super("SHA");
- engineReset ();
- }
-
- public int engineGetDigestLength()
- {
- return 16;
- }
-
- public void engineUpdate (byte b)
- {
- int i = (int)bytecount % 64;
- int shift = (3 - i % 4) * 8;
- int idx = i / 4;
-
- // if you could index ints, this would be: W[idx][shift/8] = b
- W[idx] = (W[idx] & ~(0xff << shift)) | ((b & 0xff) << shift);
-
- // if we've filled up a block, then process it
- if ((++ bytecount) % 64 == 0)
- munch ();
- }
-
- // This could be optimized.
- public void engineUpdate (byte bytes[], int off, int len)
- {
- if (len < 0)
- throw new ArrayIndexOutOfBoundsException ();
-
- int end = off + len;
- while (off < end)
- engineUpdate (bytes[off++]);
- }
-
- public void engineReset ()
- {
- bytecount = 0;
- // magic numbers from [1] p. 10.
- H0 = 0x67452301;
- H1 = 0xefcdab89;
- H2 = 0x98badcfe;
- H3 = 0x10325476;
- H4 = 0xc3d2e1f0;
- }
-
- public byte[] engineDigest ()
- {
- long bitcount = bytecount * 8;
- engineUpdate ((byte)0x80); // 10000000 in binary; the start of the padding
-
- // add the rest of the padding to fill this block out, but leave 8
- // bytes to put in the original bytecount
- while ((int)bytecount % 64 != 56)
- engineUpdate ((byte)0);
-
- // add the length of the original, unpadded block to the end of
- // the padding
- W[14] = (int)(bitcount >>> 32);
- W[15] = (int)bitcount;
- bytecount += 8;
-
- // digest the fully padded block
- munch ();
-
- byte[] result
- = new byte[] {(byte)(H0 >>> 24), (byte)(H0 >>> 16),
- (byte)(H0 >>> 8), (byte)H0,
- (byte)(H1 >>> 24), (byte)(H1 >>> 16),
- (byte)(H1 >>> 8), (byte)H1,
- (byte)(H2 >>> 24), (byte)(H2 >>> 16),
- (byte)(H2 >>> 8), (byte)H2,
- (byte)(H3 >>> 24), (byte)(H3 >>> 16),
- (byte)(H3 >>> 8), (byte)H3,
- (byte)(H4 >>> 24), (byte)(H4 >>> 16),
- (byte)(H4 >>> 8), (byte)H4};
-
- engineReset ();
- return result;
- }
-
- // Process a single block. This is pretty much copied verbatim from
- // [1] pp. 9, 10.
- private void munch ()
- {
- for (int t = 16; t < 80; ++ t)
- {
- int Wt = W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16];
- W[t] = Wt << 1 | Wt >>> 31;
- }
-
- int A = H0;
- int B = H1;
- int C = H2;
- int D = H3;
- int E = H4;
-
- for (int t = 0; t < 20; ++ t)
- {
- int TEMP = (A << 5 | A >>> 27) // S^5(A)
- + ((B & C) | (~B & D)) // f_t(B,C,D)
- + E + W[t]
- + 0x5a827999; // K_t
-
- E = D;
- D = C;
- C = B << 30 | B >>> 2; // S^30(B)
- B = A;
- A = TEMP;
- }
-
- for (int t = 20; t < 40; ++ t)
- {
- int TEMP = (A << 5 | A >>> 27) // S^5(A)
- + (B ^ C ^ D) // f_t(B,C,D)
- + E + W[t]
- + 0x6ed9eba1; // K_t
-
- E = D;
- D = C;
- C = B << 30 | B >>> 2; // S^30(B)
- B = A;
- A = TEMP;
- }
-
- for (int t = 40; t < 60; ++ t)
- {
- int TEMP = (A << 5 | A >>> 27) // S^5(A)
- + (B & C | B & D | C & D) // f_t(B,C,D)
- + E + W[t]
- + 0x8f1bbcdc; // K_t
-
- E = D;
- D = C;
- C = B << 30 | B >>> 2; // S^30(B)
- B = A;
- A = TEMP;
- }
-
- for (int t = 60; t < 80; ++ t)
- {
- int TEMP = (A << 5 | A >>> 27) // S^5(A)
- + (B ^ C ^ D) // f_t(B,C,D)
- + E + W[t]
- + 0xca62c1d6; // K_t
-
- E = D;
- D = C;
- C = B << 30 | B >>> 2; // S^30(B)
- B = A;
- A = TEMP;
- }
-
- H0 += A;
- H1 += B;
- H2 += C;
- H3 += D;
- H4 += E;
-
- // Reset W by clearing it.
- for (int t = 0; t < 80; ++ t)
- W[t] = 0;
- }
-
- public Object clone ()
- {
- return new SHA (this);
- }
-
- private SHA (SHA copy)
- {
- this ();
- bytecount = copy.bytecount;
- H0 = copy.H0;
- H1 = copy.H1;
- H2 = copy.H2;
- H3 = copy.H3;
- H4 = copy.H4;
- System.arraycopy (copy.W, 0, W, 0, 80);
- }
-
- private final int W[] = new int[80];
- private long bytecount;
- private int H0;
- private int H1;
- private int H2;
- private int H3;
- private int H4;
-}
diff --git a/libjava/gnu/java/security/provider/SHA1PRNG.java b/libjava/gnu/java/security/provider/SHA1PRNG.java
deleted file mode 100644
index 3aaf652bb46..00000000000
--- a/libjava/gnu/java/security/provider/SHA1PRNG.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SHA1PRNG.java --- Secure Random SPI SHA1PRNG
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package gnu.java.security.provider;
-
-import java.util.Random;
-// import java.security.SecureRandomSpi;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.io.Serializable;
-
-// public class SHA1PRNG extends SecureRandomSpi implements Serializable
-public class SHA1PRNG implements Serializable
-{
- MessageDigest digest;
- byte seed[];
- byte data[];
- int seedpos;
- int datapos;
-
- public SHA1PRNG()
- {
- try {
- digest = MessageDigest.getInstance("SHA");
- } catch ( NoSuchAlgorithmException nsae) {
- System.out.println("Failed to find SHA Message Digest: " + nsae);
- nsae.printStackTrace();
- }
-
- seed = new byte[20];
- seedpos = 0;
- data = new byte[40];
- datapos = 0;
-
- new Random().nextBytes(seed);
-
- byte digestdata[];
- digestdata = digest.digest( data );
- System.arraycopy( digestdata, 0, data, 0, 20);
-
- }
-
- public void engineSetSeed(byte[] seed)
- {
- for(int i = 0; i < seed.length; i++)
- this.seed[seedpos++ % 20] ^= seed[i];
- seedpos %= 20;
-
- }
-
- public void engineNextBytes(byte[] bytes)
- {
-
- if( bytes.length < (20 - datapos) ) {
- System.arraycopy( bytes, 0, data, datapos, bytes.length);
- datapos += bytes.length;
- return;
- }
-
- int i, blen = bytes.length, bpos = 0;
- byte digestdata[];
- while( bpos < blen ) {
- i = 20 - datapos;
- System.arraycopy( bytes, bpos, data, datapos, i);
- bpos += i;
- datapos += i;
- if( datapos >= 20) {
- //System.out.println( (0 + 20) + "\n" + (20 + 20) );
- System.arraycopy( seed, 0, data, 20, 20);
- digestdata = digest.digest( data );
- System.arraycopy( digestdata, 0, data, 0, 20);
- datapos = 0;
- }
- }
-
- }
-
- public byte[] engineGenerateSeed(int numBytes)
- {
- byte tmp[] = new byte[numBytes];
-
- engineNextBytes( tmp );
- return tmp;
- }
-}
diff --git a/libjava/include/Makefile.am b/libjava/include/Makefile.am
deleted file mode 100644
index 8e3f18f9d0c..00000000000
--- a/libjava/include/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-
-include_HEADERS = jni.h jvmpi.h
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
deleted file mode 100644
index 34d6c7b6afb..00000000000
--- a/libjava/include/Makefile.in
+++ /dev/null
@@ -1,309 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-AR = @AR@
-AS = @AS@
-CC = @CC@
-COMPPATH = @COMPPATH@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DIRLTDL = @DIRLTDL@
-DIVIDESPEC = @DIVIDESPEC@
-DLLTOOL = @DLLTOOL@
-EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
-EXCEPTIONSPEC = @EXCEPTIONSPEC@
-EXEEXT = @EXEEXT@
-FORCELIBGCCSPEC = @FORCELIBGCCSPEC@
-GCDEPS = @GCDEPS@
-GCINCS = @GCINCS@
-GCLIBS = @GCLIBS@
-GCOBJS = @GCOBJS@
-GCSPEC = @GCSPEC@
-GCTESTSPEC = @GCTESTSPEC@
-INCLTDL = @INCLTDL@
-LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
-LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
-LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
-LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
-LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
-LIBLTDL = @LIBLTDL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-PERL = @PERL@
-RANLIB = @RANLIB@
-SYSDEP_SOURCES = @SYSDEP_SOURCES@
-SYSTEMSPEC = @SYSTEMSPEC@
-THREADDEPS = @THREADDEPS@
-THREADINCS = @THREADINCS@
-THREADLIBS = @THREADLIBS@
-THREADOBJS = @THREADOBJS@
-THREADSPEC = @THREADSPEC@
-VERSION = @VERSION@
-ZDEPS = @ZDEPS@
-ZINCS = @ZINCS@
-ZLIBS = @ZLIBS@
-ZLIBSPEC = @ZLIBSPEC@
-ZLIBTESTSPEC = @ZLIBTESTSPEC@
-here = @here@
-libgcj_basedir = @libgcj_basedir@
-
-AUTOMAKE_OPTIONS = foreign no-installinfo
-
-include_HEADERS = jni.h jvmpi.h
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-HEADERS = $(include_HEADERS)
-
-DIST_COMMON = ./stamp-h.in Makefile.am Makefile.in config.h.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-config.h: stamp-h
- @if test ! -f $@; then \
- rm -f stamp-h; \
- $(MAKE) stamp-h; \
- else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=include/config.h \
- $(SHELL) ./config.status
- @echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/stamp-h.in; \
- $(MAKE) $(srcdir)/stamp-h.in; \
- else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f config.h
-
-maintainer-clean-hdr:
-
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = include
-
-distdir: $(DISTFILES)
- here=`cd $(top_builddir) && pwd`; \
- top_distdir=`cd $(top_distdir) && pwd`; \
- distdir=`cd $(distdir) && pwd`; \
- cd $(top_srcdir) \
- && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign include/Makefile
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-all-recursive-am: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am: install-includeHEADERS
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(HEADERS) config.h
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-uninstall-includeHEADERS install-includeHEADERS tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info all-recursive-am install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libjava/include/boehm-gc.h b/libjava/include/boehm-gc.h
deleted file mode 100644
index fa4e8d04633..00000000000
--- a/libjava/include/boehm-gc.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- c++ -*-
-// boehm-gc.h - Defines for Boehm collector.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JV_BOEHM_GC__
-#define __JV_BOEHM_GC__
-
-#define JV_MARKOBJ_DECL void *_Jv_MarkObj (void *, void *, void *, void *)
-#define JV_MARKARRAY_DECL void *_Jv_MarkArray (void *, void *, void *, void *)
-
-extern "C"
-{
- JV_MARKOBJ_DECL;
- JV_MARKARRAY_DECL;
-};
-
-#endif /* __JV_BOEHM_GC__ */
diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in
deleted file mode 100644
index ad904d3abf9..00000000000
--- a/libjava/include/config.h.in
+++ /dev/null
@@ -1,364 +0,0 @@
-/* include/config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define if using alloca.c. */
-#undef C_ALLOCA
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define if you have alloca, as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-#undef HAVE_ALLOCA_H
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-#undef STACK_DIRECTION
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define this if you want runtime debugging enabled. */
-#undef DEBUG
-
-/* Define if using POSIX threads that have the mutexattr functions. */
-#undef HAVE_PTHREAD_MUTEXATTR_INIT
-
-/* Define this if you prefer size over speed for java.lang.Character. */
-#undef COMPACT_CHARACTER
-
-/* Define if you have memcpy. */
-#undef HAVE_MEMCPY
-
-/* Define if you have memmove. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have strerror. */
-#undef HAVE_STRERROR
-
-/* Define if you have int32_t and uint32_t. */
-#undef HAVE_INT32_DEFINED
-
-/* Define if you have u_int32_t */
-#undef HAVE_BSD_INT32_DEFINED
-
-/* Define if you're running eCos. */
-#undef ECOS
-
-/* */
-#undef HAVE_LOCALTIME
-
-/* */
-#undef HAVE_MKTIME
-
-/* Define if using POSIX threads on Linux. */
-#undef LINUX_THREADS
-
-/* Define if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* Define if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to `int' if `ssize_t' is not defined. */
-#undef ssize_t
-
-/* Define to 1 if `in_addr_t' is defined in sys/types.h or
- netinet/in.h. */
-#undef HAVE_IN_ADDR_T
-
-/* Define if inet6 structures are defined in netinet/in.h. */
-#undef HAVE_INET6
-
-/* Define if struct ip_mreq is defined in netinet/in.h. */
-#undef HAVE_STRUCT_IP_MREQ
-
-/* Define it socklen_t typedef is in sys/socket.h. */
-#undef HAVE_SOCKLEN_T
-
-/* Define if Boehm GC in use. */
-#undef HAVE_BOEHM_GC
-
-/* Define if gethostname is declared in <unistd.h>. */
-#undef HAVE_GETHOSTNAME_DECL
-
-/* Define if gethostbyname_r returns `int'. */
-#undef GETHOSTBYNAME_R_RETURNS_INT
-
-/* Define if gethostbyaddr_r returns `int'. */
-#undef GETHOSTBYADDR_R_RETURNS_INT
-
-/* Define if struct tm has tm_gmtoff field. */
-#undef STRUCT_TM_HAS_GMTOFF
-
-/* Define if global `timezone' exists. */
-#undef HAVE_TIMEZONE
-
-/* Define to version of GCJ in use. */
-#undef GCJVERSION
-
-/* Define if you have the appropriate function. */
-#undef HAVE_ACCESS
-#undef HAVE_STAT
-#undef HAVE_MKDIR
-#undef HAVE_RENAME
-#undef HAVE_RMDIR
-#undef HAVE_UNLINK
-#undef HAVE_REALPATH
-#undef HAVE_READDIR_R
-#undef HAVE_GETHOSTBYNAME_R
-#undef HAVE_GETHOSTBYADDR_R
-
-/* Define if you want a bytecode interpreter. */
-#undef INTERPRETER
-
-/* Define if pthread_mutex_t has m_count member. */
-#undef PTHREAD_MUTEX_HAVE_M_COUNT
-
-/* Define if pthread_mutex_t has __m_count member. */
-#undef PTHREAD_MUTEX_HAVE___M_COUNT
-
-/* Define if java.net native functions should be stubbed out. */
-#undef DISABLE_JAVA_NET
-
-/* Define if system properties shouldn't be read from
- getenv("GCJ_PROPERTIES"). */
-#undef DISABLE_GETENV_PROPERTIES
-
-/* Define if using setjmp/longjmp exceptions. */
-#undef SJLJ_EXCEPTIONS
-
-/* Define if you have /proc/self/exe */
-#undef HAVE_PROC_SELF_EXE
-
-
-/* Define if you have dladdr() */
-#undef HAVE_DLADDR
-
-
-/* Define if getuid() and friends are missing. */
-#undef NO_GETUID
-
-/* Define if libltdl is in use. */
-#undef USE_LTDL
-
-/* Define if g++ has a bug preventing us from inlining math routines. */
-#undef __NO_MATH_INLINES
-
-/* Define if you are using JVMPI. */
-#undef ENABLE_JVMPI
-
-/* The number of bytes in a void *. */
-#undef SIZEOF_VOID_P
-
-/* Define if you have the access function. */
-#undef HAVE_ACCESS
-
-/* Define if you have the backtrace function. */
-#undef HAVE_BACKTRACE
-
-/* Define if you have the execvp function. */
-#undef HAVE_EXECVP
-
-/* Define if you have the fork function. */
-#undef HAVE_FORK
-
-/* Define if you have the fstat function. */
-#undef HAVE_FSTAT
-
-/* Define if you have the fsync function. */
-#undef HAVE_FSYNC
-
-/* Define if you have the ftime function. */
-#undef HAVE_FTIME
-
-/* Define if you have the getcwd function. */
-#undef HAVE_GETCWD
-
-/* Define if you have the gethostbyaddr_r function. */
-#undef HAVE_GETHOSTBYADDR_R
-
-/* Define if you have the gethostbyname_r function. */
-#undef HAVE_GETHOSTBYNAME_R
-
-/* Define if you have the gethostname function. */
-#undef HAVE_GETHOSTNAME
-
-/* Define if you have the getpwuid_r function. */
-#undef HAVE_GETPWUID_R
-
-/* Define if you have the gettimeofday function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define if you have the gmtime_r function. */
-#undef HAVE_GMTIME_R
-
-/* Define if you have the iconv function. */
-#undef HAVE_ICONV
-
-/* Define if you have the inet_addr function. */
-#undef HAVE_INET_ADDR
-
-/* Define if you have the inet_aton function. */
-#undef HAVE_INET_ATON
-
-/* Define if you have the inet_ntoa function. */
-#undef HAVE_INET_NTOA
-
-/* Define if you have the inet_pton function. */
-#undef HAVE_INET_PTON
-
-/* Define if you have the ioctl function. */
-#undef HAVE_IOCTL
-
-/* Define if you have the localtime_r function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define if you have the memcpy function. */
-#undef HAVE_MEMCPY
-
-/* Define if you have the memmove function. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the mkdir function. */
-#undef HAVE_MKDIR
-
-/* Define if you have the nl_langinfo function. */
-#undef HAVE_NL_LANGINFO
-
-/* Define if you have the open function. */
-#undef HAVE_OPEN
-
-/* Define if you have the pipe function. */
-#undef HAVE_PIPE
-
-/* Define if you have the pthread_mutexattr_setkind_np function. */
-#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
-
-/* Define if you have the pthread_mutexattr_settype function. */
-#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE
-
-/* Define if you have the readdir_r function. */
-#undef HAVE_READDIR_R
-
-/* Define if you have the realpath function. */
-#undef HAVE_REALPATH
-
-/* Define if you have the rename function. */
-#undef HAVE_RENAME
-
-/* Define if you have the rmdir function. */
-#undef HAVE_RMDIR
-
-/* Define if you have the sched_yield function. */
-#undef HAVE_SCHED_YIELD
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the sleep function. */
-#undef HAVE_SLEEP
-
-/* Define if you have the stat function. */
-#undef HAVE_STAT
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the time function. */
-#undef HAVE_TIME
-
-/* Define if you have the uname function. */
-#undef HAVE_UNAME
-
-/* Define if you have the unlink function. */
-#undef HAVE_UNLINK
-
-/* Define if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define if you have the <bstring.h> header file. */
-#undef HAVE_BSTRING_H
-
-/* Define if you have the <dirent.h> header file. */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
-/* Define if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if you have the <langinfo.h> header file. */
-#undef HAVE_LANGINFO_H
-
-/* Define if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define if you have the <pwd.h> header file. */
-#undef HAVE_PWD_H
-
-/* Define if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define if you have the <sys/config.h> header file. */
-#undef HAVE_SYS_CONFIG_H
-
-/* Define if you have the <sys/filio.h> header file. */
-#undef HAVE_SYS_FILIO_H
-
-/* Define if you have the <sys/ioctl.h> header file. */
-#undef HAVE_SYS_IOCTL_H
-
-/* Define if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Version number of package */
-#undef VERSION
-
-/* Required define if using POSIX threads */
-#undef _REENTRANT
-
-/* Required define if using POSIX threads */
-#undef _POSIX_PTHREAD_SEMANTICS
-
-/* Required define if using POSIX threads */
-#undef _REENTRANT
-
-/* Define if struct hostent_data is defined in netdb.h */
-#undef HAVE_STRUCT_HOSTENT_DATA
-
diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h
deleted file mode 100644
index 492f0cacdc7..00000000000
--- a/libjava/include/default-signal.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// default-signal.h - Catch runtime signals and turn them into exceptions.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef JAVA_SIGNAL_H
-#define JAVA_SIGNAL_H 1
-
-#ifdef SJLJ_EXCEPTIONS
-
-#define HANDLE_SEGV 1
-#define HANDLE_FPE 1
-
-#include <signal.h>
-
-#define SIGNAL_HANDLER(_name) \
-static void _name (int _dummy)
-
-#define INIT_SEGV \
-do \
- { \
- nullp = new java::lang::NullPointerException (); \
- signal (SIGSEGV, catch_segv); \
- } \
-while (0)
-
-#define INIT_FPE \
-do \
- { \
- arithexception = new java::lang::ArithmeticException \
- (JvNewStringLatin1 ("/ by zero")); \
- signal (SIGFPE, catch_fpe); \
- } \
-while (0)
-
-#define MAKE_THROW_FRAME(_exception) do {} while (0)
-
-#else /* SJLJ_EXCEPTIONS */
-
-#undef HANDLE_SEGV
-#undef HANDLE_FPE
-
-#define INIT_SEGV do {} while (0)
-#define INIT_FPE do {} while (0)
-
-#endif /* SJLJ_EXCEPTIONS */
-
-#endif /* JAVA_SIGNAL_H */
-
diff --git a/libjava/include/i386-signal.h b/libjava/include/i386-signal.h
deleted file mode 100644
index 599edc940ad..00000000000
--- a/libjava/include/i386-signal.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// i386-signal.h - Catch runtime signals and turn them into exceptions.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* This technique should work for all i386 based Unices which conform
- * to iBCS2. This includes all versions of Linux more recent than 1.3
- */
-
-
-#ifndef JAVA_SIGNAL_H
-#define JAVA_SIGNAL_H 1
-
-#include <signal.h>
-
-#define HANDLE_SEGV 1
-#define HANDLE_FPE 1
-
-#define SIGNAL_HANDLER(_name) \
-static void _name (int _dummy)
-
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- void **_p = (void **)&_dummy; \
- struct sigcontext_struct *_regs = (struct sigcontext_struct *)++_p; \
- \
- register unsigned long _ebp = _regs->ebp; \
- register unsigned char *_eip = (unsigned char *)_regs->eip; \
- \
- /* Advance the program counter so that it is after the start of the \
- instruction: the x86 exception handler expects \
- the PC to point to the instruction after a call. */ \
- _eip += 2; \
- \
- asm volatile ("mov %0, (%%ebp); mov %1, 4(%%ebp)" \
- : : "r"(_ebp), "r"(_eip)); \
-} \
-while (0)
-
-#define HANDLE_DIVIDE_OVERFLOW \
-do \
-{ \
- void **_p = (void **)&_dummy; \
- struct sigcontext_struct *_regs = (struct sigcontext_struct *)++_p; \
- \
- register unsigned long *_ebp = (unsigned long *)_regs->ebp; \
- register unsigned char *_eip = (unsigned char *)_regs->eip; \
- \
- /* According to the JVM spec, "if the dividend is the negative \
- * integer of the smallest magnitude and the divisor is -1, then \
- * overflow occurs and the result is equal to the dividend. Despite \
- * the overflow, no exception occurs". \
- \
- * We handle this by inspecting the instruction which generated the \
- * signal and advancing eip to point to the following instruction. \
- * As the instructions are variable length it is necessary to do a \
- * little calculation to figure out where the following instruction \
- * actually is. \
- \
- */ \
- \
- if (_eip[0] == 0xf7) \
- { \
- unsigned char _modrm = _eip[1]; \
- \
- if (_regs->eax == 0x80000000 \
- && ((_modrm >> 3) & 7) == 7) /* Signed divide */ \
- { \
- _regs->edx = 0; /* the remainder is zero */ \
- switch (_modrm >> 6) \
- { \
- case 0: \
- if ((_modrm & 7) == 5) \
- _eip += 4; \
- break; \
- case 1: \
- _eip += 1; \
- break; \
- case 2: \
- _eip += 4; \
- break; \
- case 3: \
- break; \
- } \
- _eip += 2; \
- _regs->eip = (unsigned long)_eip; \
- return; \
- } \
- else if (((_modrm >> 3) & 7) == 6) /* Unsigned divide */ \
- { \
- /* We assume that unsigned divisions are in library code, so \
- * we throw one level down the stack, which was hopefully \
- * the place that called the library routine. This will \
- * break if the library is ever compiled with \
- * -fomit-frame-pointer, but at least this way we've got a \
- * good chance of finding the exception handler. */ \
- \
- _eip = (unsigned char *)_ebp[1]; \
- _ebp = (unsigned long *)_ebp[0]; \
- } \
- else \
- { \
- /* Advance the program counter so that it is after the start \
- of the instruction: this is because the x86 exception \
- handler expects the PC to point to the instruction after a \
- call. */ \
- _eip += 2; \
- } \
- } \
- \
- asm volatile ("mov %0, (%%ebp); mov %1, 4(%%ebp)" \
- : : "r"(_ebp), "r"(_eip)); \
-} \
-while (0)
-
-#define INIT_SEGV \
-do \
- { \
- nullp = new java::lang::NullPointerException (); \
- struct sigaction act; \
- act.sa_handler = catch_segv; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = 0; \
- __sigaction (SIGSEGV, &act, NULL); \
- } \
-while (0)
-
-#define INIT_FPE \
-do \
- { \
- arithexception = new java::lang::ArithmeticException \
- (JvNewStringLatin1 ("/ by zero")); \
- struct sigaction act; \
- act.sa_handler = catch_fpe; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = 0; \
- __sigaction (SIGFPE, &act, NULL); \
- } \
-while (0)
-
-#endif /* JAVA_SIGNAL_H */
-
diff --git a/libjava/include/java-assert.h b/libjava/include/java-assert.h
deleted file mode 100644
index 6f178bd9e98..00000000000
--- a/libjava/include/java-assert.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// java-assert.h - Header file holding assertion definitions. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_ASSERT_H__
-#define __JAVA_ASSERT_H__
-
-// This is a libgcj implementation header.
-
-void _Jv_Abort (const char *, const char *, int, const char *)
- __attribute__ ((__noreturn__));
-
-#ifdef DEBUG
-#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message)
-
-#define JvAssertMessage(Expr, Message) \
- do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0)
-#define JvAssert(Expr) \
- do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0)
-
-#define JvFail(Message) _Jv_AssertDoCall (Message)
-
-#else /* DEBUG */
-
-#define _Jv_AssertDoCall(Message)
-#define JvAssertMessage(Expr, Message)
-#define JvAssert(Expr)
-#define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
-
-#endif /* not DEBUG */
-
-#endif /* __JAVA_ASSERT_H__ */
diff --git a/libjava/include/java-chardecomp.h b/libjava/include/java-chardecomp.h
deleted file mode 100644
index 346492afbd4..00000000000
--- a/libjava/include/java-chardecomp.h
+++ /dev/null
@@ -1,3416 +0,0 @@
-// java-chardecomp.h - Decomposition character tables -*- c++ -*-
-
-#ifndef __JAVA_CHARDECOMP_H__
-#define __JAVA_CHARDECOMP_H__
-
-// These tables are automatically generated by the chartables.pl
-// script. DO NOT EDIT the tables. Instead, fix the script
-// and run it again.
-
-// This file should only be included by natCollator.cc
-
-struct decomp_entry
-{
- jchar key;
- const char *value;
-};
-
-static const decomp_entry canonical_decomposition[] =
-{
- { 0x00c0, "\x00\x41\x03\x00" },
- { 0x00c1, "\x00\x41\x03\x01" },
- { 0x00c2, "\x00\x41\x03\x02" },
- { 0x00c3, "\x00\x41\x03\x03" },
- { 0x00c4, "\x00\x41\x03\x08" },
- { 0x00c5, "\x00\x41\x03\x0a" },
- { 0x00c7, "\x00\x43\x03\x27" },
- { 0x00c8, "\x00\x45\x03\x00" },
- { 0x00c9, "\x00\x45\x03\x01" },
- { 0x00ca, "\x00\x45\x03\x02" },
- { 0x00cb, "\x00\x45\x03\x08" },
- { 0x00cc, "\x00\x49\x03\x00" },
- { 0x00cd, "\x00\x49\x03\x01" },
- { 0x00ce, "\x00\x49\x03\x02" },
- { 0x00cf, "\x00\x49\x03\x08" },
- { 0x00d1, "\x00\x4e\x03\x03" },
- { 0x00d2, "\x00\x4f\x03\x00" },
- { 0x00d3, "\x00\x4f\x03\x01" },
- { 0x00d4, "\x00\x4f\x03\x02" },
- { 0x00d5, "\x00\x4f\x03\x03" },
- { 0x00d6, "\x00\x4f\x03\x08" },
- { 0x00d9, "\x00\x55\x03\x00" },
- { 0x00da, "\x00\x55\x03\x01" },
- { 0x00db, "\x00\x55\x03\x02" },
- { 0x00dc, "\x00\x55\x03\x08" },
- { 0x00dd, "\x00\x59\x03\x01" },
- { 0x00e0, "\x00\x61\x03\x00" },
- { 0x00e1, "\x00\x61\x03\x01" },
- { 0x00e2, "\x00\x61\x03\x02" },
- { 0x00e3, "\x00\x61\x03\x03" },
- { 0x00e4, "\x00\x61\x03\x08" },
- { 0x00e5, "\x00\x61\x03\x0a" },
- { 0x00e7, "\x00\x63\x03\x27" },
- { 0x00e8, "\x00\x65\x03\x00" },
- { 0x00e9, "\x00\x65\x03\x01" },
- { 0x00ea, "\x00\x65\x03\x02" },
- { 0x00eb, "\x00\x65\x03\x08" },
- { 0x00ec, "\x00\x69\x03\x00" },
- { 0x00ed, "\x00\x69\x03\x01" },
- { 0x00ee, "\x00\x69\x03\x02" },
- { 0x00ef, "\x00\x69\x03\x08" },
- { 0x00f1, "\x00\x6e\x03\x03" },
- { 0x00f2, "\x00\x6f\x03\x00" },
- { 0x00f3, "\x00\x6f\x03\x01" },
- { 0x00f4, "\x00\x6f\x03\x02" },
- { 0x00f5, "\x00\x6f\x03\x03" },
- { 0x00f6, "\x00\x6f\x03\x08" },
- { 0x00f9, "\x00\x75\x03\x00" },
- { 0x00fa, "\x00\x75\x03\x01" },
- { 0x00fb, "\x00\x75\x03\x02" },
- { 0x00fc, "\x00\x75\x03\x08" },
- { 0x00fd, "\x00\x79\x03\x01" },
- { 0x00ff, "\x00\x79\x03\x08" },
- { 0x0100, "\x00\x41\x03\x04" },
- { 0x0101, "\x00\x61\x03\x04" },
- { 0x0102, "\x00\x41\x03\x06" },
- { 0x0103, "\x00\x61\x03\x06" },
- { 0x0104, "\x00\x41\x03\x28" },
- { 0x0105, "\x00\x61\x03\x28" },
- { 0x0106, "\x00\x43\x03\x01" },
- { 0x0107, "\x00\x63\x03\x01" },
- { 0x0108, "\x00\x43\x03\x02" },
- { 0x0109, "\x00\x63\x03\x02" },
- { 0x010a, "\x00\x43\x03\x07" },
- { 0x010b, "\x00\x63\x03\x07" },
- { 0x010c, "\x00\x43\x03\x0c" },
- { 0x010d, "\x00\x63\x03\x0c" },
- { 0x010e, "\x00\x44\x03\x0c" },
- { 0x010f, "\x00\x64\x03\x0c" },
- { 0x0112, "\x00\x45\x03\x04" },
- { 0x0113, "\x00\x65\x03\x04" },
- { 0x0114, "\x00\x45\x03\x06" },
- { 0x0115, "\x00\x65\x03\x06" },
- { 0x0116, "\x00\x45\x03\x07" },
- { 0x0117, "\x00\x65\x03\x07" },
- { 0x0118, "\x00\x45\x03\x28" },
- { 0x0119, "\x00\x65\x03\x28" },
- { 0x011a, "\x00\x45\x03\x0c" },
- { 0x011b, "\x00\x65\x03\x0c" },
- { 0x011c, "\x00\x47\x03\x02" },
- { 0x011d, "\x00\x67\x03\x02" },
- { 0x011e, "\x00\x47\x03\x06" },
- { 0x011f, "\x00\x67\x03\x06" },
- { 0x0120, "\x00\x47\x03\x07" },
- { 0x0121, "\x00\x67\x03\x07" },
- { 0x0122, "\x00\x47\x03\x27" },
- { 0x0123, "\x00\x67\x03\x27" },
- { 0x0124, "\x00\x48\x03\x02" },
- { 0x0125, "\x00\x68\x03\x02" },
- { 0x0128, "\x00\x49\x03\x03" },
- { 0x0129, "\x00\x69\x03\x03" },
- { 0x012a, "\x00\x49\x03\x04" },
- { 0x012b, "\x00\x69\x03\x04" },
- { 0x012c, "\x00\x49\x03\x06" },
- { 0x012d, "\x00\x69\x03\x06" },
- { 0x012e, "\x00\x49\x03\x28" },
- { 0x012f, "\x00\x69\x03\x28" },
- { 0x0130, "\x00\x49\x03\x07" },
- { 0x0134, "\x00\x4a\x03\x02" },
- { 0x0135, "\x00\x6a\x03\x02" },
- { 0x0136, "\x00\x4b\x03\x27" },
- { 0x0137, "\x00\x6b\x03\x27" },
- { 0x0139, "\x00\x4c\x03\x01" },
- { 0x013a, "\x00\x6c\x03\x01" },
- { 0x013b, "\x00\x4c\x03\x27" },
- { 0x013c, "\x00\x6c\x03\x27" },
- { 0x013d, "\x00\x4c\x03\x0c" },
- { 0x013e, "\x00\x6c\x03\x0c" },
- { 0x0143, "\x00\x4e\x03\x01" },
- { 0x0144, "\x00\x6e\x03\x01" },
- { 0x0145, "\x00\x4e\x03\x27" },
- { 0x0146, "\x00\x6e\x03\x27" },
- { 0x0147, "\x00\x4e\x03\x0c" },
- { 0x0148, "\x00\x6e\x03\x0c" },
- { 0x014c, "\x00\x4f\x03\x04" },
- { 0x014d, "\x00\x6f\x03\x04" },
- { 0x014e, "\x00\x4f\x03\x06" },
- { 0x014f, "\x00\x6f\x03\x06" },
- { 0x0150, "\x00\x4f\x03\x0b" },
- { 0x0151, "\x00\x6f\x03\x0b" },
- { 0x0154, "\x00\x52\x03\x01" },
- { 0x0155, "\x00\x72\x03\x01" },
- { 0x0156, "\x00\x52\x03\x27" },
- { 0x0157, "\x00\x72\x03\x27" },
- { 0x0158, "\x00\x52\x03\x0c" },
- { 0x0159, "\x00\x72\x03\x0c" },
- { 0x015a, "\x00\x53\x03\x01" },
- { 0x015b, "\x00\x73\x03\x01" },
- { 0x015c, "\x00\x53\x03\x02" },
- { 0x015d, "\x00\x73\x03\x02" },
- { 0x015e, "\x00\x53\x03\x27" },
- { 0x015f, "\x00\x73\x03\x27" },
- { 0x0160, "\x00\x53\x03\x0c" },
- { 0x0161, "\x00\x73\x03\x0c" },
- { 0x0162, "\x00\x54\x03\x27" },
- { 0x0163, "\x00\x74\x03\x27" },
- { 0x0164, "\x00\x54\x03\x0c" },
- { 0x0165, "\x00\x74\x03\x0c" },
- { 0x0168, "\x00\x55\x03\x03" },
- { 0x0169, "\x00\x75\x03\x03" },
- { 0x016a, "\x00\x55\x03\x04" },
- { 0x016b, "\x00\x75\x03\x04" },
- { 0x016c, "\x00\x55\x03\x06" },
- { 0x016d, "\x00\x75\x03\x06" },
- { 0x016e, "\x00\x55\x03\x0a" },
- { 0x016f, "\x00\x75\x03\x0a" },
- { 0x0170, "\x00\x55\x03\x0b" },
- { 0x0171, "\x00\x75\x03\x0b" },
- { 0x0172, "\x00\x55\x03\x28" },
- { 0x0173, "\x00\x75\x03\x28" },
- { 0x0174, "\x00\x57\x03\x02" },
- { 0x0175, "\x00\x77\x03\x02" },
- { 0x0176, "\x00\x59\x03\x02" },
- { 0x0177, "\x00\x79\x03\x02" },
- { 0x0178, "\x00\x59\x03\x08" },
- { 0x0179, "\x00\x5a\x03\x01" },
- { 0x017a, "\x00\x7a\x03\x01" },
- { 0x017b, "\x00\x5a\x03\x07" },
- { 0x017c, "\x00\x7a\x03\x07" },
- { 0x017d, "\x00\x5a\x03\x0c" },
- { 0x017e, "\x00\x7a\x03\x0c" },
- { 0x01a0, "\x00\x4f\x03\x1b" },
- { 0x01a1, "\x00\x6f\x03\x1b" },
- { 0x01af, "\x00\x55\x03\x1b" },
- { 0x01b0, "\x00\x75\x03\x1b" },
- { 0x01cd, "\x00\x41\x03\x0c" },
- { 0x01ce, "\x00\x61\x03\x0c" },
- { 0x01cf, "\x00\x49\x03\x0c" },
- { 0x01d0, "\x00\x69\x03\x0c" },
- { 0x01d1, "\x00\x4f\x03\x0c" },
- { 0x01d2, "\x00\x6f\x03\x0c" },
- { 0x01d3, "\x00\x55\x03\x0c" },
- { 0x01d4, "\x00\x75\x03\x0c" },
- { 0x01d5, "\x00\xdc\x03\x04" },
- { 0x01d6, "\x00\xfc\x03\x04" },
- { 0x01d7, "\x00\xdc\x03\x01" },
- { 0x01d8, "\x00\xfc\x03\x01" },
- { 0x01d9, "\x00\xdc\x03\x0c" },
- { 0x01da, "\x00\xfc\x03\x0c" },
- { 0x01db, "\x00\xdc\x03\x00" },
- { 0x01dc, "\x00\xfc\x03\x00" },
- { 0x01de, "\x00\xc4\x03\x04" },
- { 0x01df, "\x00\xe4\x03\x04" },
- { 0x01e0, "\x00\x41\x03\x07\x03\x04" },
- { 0x01e1, "\x00\x61\x03\x07\x03\x04" },
- { 0x01e2, "\x00\xc6\x03\x04" },
- { 0x01e3, "\x00\xe6\x03\x04" },
- { 0x01e6, "\x00\x47\x03\x0c" },
- { 0x01e7, "\x00\x67\x03\x0c" },
- { 0x01e8, "\x00\x4b\x03\x0c" },
- { 0x01e9, "\x00\x6b\x03\x0c" },
- { 0x01ea, "\x00\x4f\x03\x28" },
- { 0x01eb, "\x00\x6f\x03\x28" },
- { 0x01ec, "\x01\xea\x03\x04" },
- { 0x01ed, "\x01\xeb\x03\x04" },
- { 0x01ee, "\x01\xb7\x03\x0c" },
- { 0x01ef, "\x02\x92\x03\x0c" },
- { 0x01f0, "\x00\x6a\x03\x0c" },
- { 0x01f4, "\x00\x47\x03\x01" },
- { 0x01f5, "\x00\x67\x03\x01" },
- { 0x01fa, "\x00\xc5\x03\x01" },
- { 0x01fb, "\x00\xe5\x03\x01" },
- { 0x01fc, "\x00\xc6\x03\x01" },
- { 0x01fd, "\x00\xe6\x03\x01" },
- { 0x01fe, "\x00\xd8\x03\x01" },
- { 0x01ff, "\x00\xf8\x03\x01" },
- { 0x0200, "\x00\x41\x03\x0f" },
- { 0x0201, "\x00\x61\x03\x0f" },
- { 0x0202, "\x00\x41\x03\x11" },
- { 0x0203, "\x00\x61\x03\x11" },
- { 0x0204, "\x00\x45\x03\x0f" },
- { 0x0205, "\x00\x65\x03\x0f" },
- { 0x0206, "\x00\x45\x03\x11" },
- { 0x0207, "\x00\x65\x03\x11" },
- { 0x0208, "\x00\x49\x03\x0f" },
- { 0x0209, "\x00\x69\x03\x0f" },
- { 0x020a, "\x00\x49\x03\x11" },
- { 0x020b, "\x00\x69\x03\x11" },
- { 0x020c, "\x00\x4f\x03\x0f" },
- { 0x020d, "\x00\x6f\x03\x0f" },
- { 0x020e, "\x00\x4f\x03\x11" },
- { 0x020f, "\x00\x6f\x03\x11" },
- { 0x0210, "\x00\x52\x03\x0f" },
- { 0x0211, "\x00\x72\x03\x0f" },
- { 0x0212, "\x00\x52\x03\x11" },
- { 0x0213, "\x00\x72\x03\x11" },
- { 0x0214, "\x00\x55\x03\x0f" },
- { 0x0215, "\x00\x75\x03\x0f" },
- { 0x0216, "\x00\x55\x03\x11" },
- { 0x0217, "\x00\x75\x03\x11" },
- { 0x0340, "\x03\x00" },
- { 0x0341, "\x03\x01" },
- { 0x0343, "\x03\x13" },
- { 0x0344, "\x03\x08\x03\x01" },
- { 0x0374, "\x02\xb9" },
- { 0x037e, "\x00\x3b" },
- { 0x0385, "\x00\xa8\x03\x01" },
- { 0x0386, "\x03\x91\x03\x01" },
- { 0x0387, "\x00\xb7" },
- { 0x0388, "\x03\x95\x03\x01" },
- { 0x0389, "\x03\x97\x03\x01" },
- { 0x038a, "\x03\x99\x03\x01" },
- { 0x038c, "\x03\x9f\x03\x01" },
- { 0x038e, "\x03\xa5\x03\x01" },
- { 0x038f, "\x03\xa9\x03\x01" },
- { 0x0390, "\x03\xca\x03\x01" },
- { 0x03aa, "\x03\x99\x03\x08" },
- { 0x03ab, "\x03\xa5\x03\x08" },
- { 0x03ac, "\x03\xb1\x03\x01" },
- { 0x03ad, "\x03\xb5\x03\x01" },
- { 0x03ae, "\x03\xb7\x03\x01" },
- { 0x03af, "\x03\xb9\x03\x01" },
- { 0x03b0, "\x03\xcb\x03\x01" },
- { 0x03ca, "\x03\xb9\x03\x08" },
- { 0x03cb, "\x03\xc5\x03\x08" },
- { 0x03cc, "\x03\xbf\x03\x01" },
- { 0x03cd, "\x03\xc5\x03\x01" },
- { 0x03ce, "\x03\xc9\x03\x01" },
- { 0x03d3, "\x03\xd2\x03\x01" },
- { 0x03d4, "\x03\xd2\x03\x08" },
- { 0x0401, "\x04\x15\x03\x08" },
- { 0x0403, "\x04\x13\x03\x01" },
- { 0x0407, "\x04\x06\x03\x08" },
- { 0x040c, "\x04\x1a\x03\x01" },
- { 0x040e, "\x04\x23\x03\x06" },
- { 0x0419, "\x04\x18\x03\x06" },
- { 0x0439, "\x04\x38\x03\x06" },
- { 0x0451, "\x04\x35\x03\x08" },
- { 0x0453, "\x04\x33\x03\x01" },
- { 0x0457, "\x04\x56\x03\x08" },
- { 0x045c, "\x04\x3a\x03\x01" },
- { 0x045e, "\x04\x43\x03\x06" },
- { 0x0476, "\x04\x74\x03\x0f" },
- { 0x0477, "\x04\x75\x03\x0f" },
- { 0x04c1, "\x04\x16\x03\x06" },
- { 0x04c2, "\x04\x36\x03\x06" },
- { 0x04d0, "\x04\x10\x03\x06" },
- { 0x04d1, "\x04\x30\x03\x06" },
- { 0x04d2, "\x04\x10\x03\x08" },
- { 0x04d3, "\x04\x30\x03\x08" },
- { 0x04d6, "\x04\x15\x03\x06" },
- { 0x04d7, "\x04\x35\x03\x06" },
- { 0x04da, "\x04\xd8\x03\x08" },
- { 0x04db, "\x04\xd9\x03\x08" },
- { 0x04dc, "\x04\x16\x03\x08" },
- { 0x04dd, "\x04\x36\x03\x08" },
- { 0x04de, "\x04\x17\x03\x08" },
- { 0x04df, "\x04\x37\x03\x08" },
- { 0x04e2, "\x04\x18\x03\x04" },
- { 0x04e3, "\x04\x38\x03\x04" },
- { 0x04e4, "\x04\x18\x03\x08" },
- { 0x04e5, "\x04\x38\x03\x08" },
- { 0x04e6, "\x04\x1e\x03\x08" },
- { 0x04e7, "\x04\x3e\x03\x08" },
- { 0x04ea, "\x04\xe8\x03\x08" },
- { 0x04eb, "\x04\xe9\x03\x08" },
- { 0x04ee, "\x04\x23\x03\x04" },
- { 0x04ef, "\x04\x43\x03\x04" },
- { 0x04f0, "\x04\x23\x03\x08" },
- { 0x04f1, "\x04\x43\x03\x08" },
- { 0x04f2, "\x04\x23\x03\x0b" },
- { 0x04f3, "\x04\x43\x03\x0b" },
- { 0x04f4, "\x04\x27\x03\x08" },
- { 0x04f5, "\x04\x47\x03\x08" },
- { 0x04f8, "\x04\x2b\x03\x08" },
- { 0x04f9, "\x04\x4b\x03\x08" },
- { 0x0929, "\x09\x28\x09\x3c" },
- { 0x0931, "\x09\x30\x09\x3c" },
- { 0x0934, "\x09\x33\x09\x3c" },
- { 0x0958, "\x09\x15\x09\x3c" },
- { 0x0959, "\x09\x16\x09\x3c" },
- { 0x095a, "\x09\x17\x09\x3c" },
- { 0x095b, "\x09\x1c\x09\x3c" },
- { 0x095c, "\x09\x21\x09\x3c" },
- { 0x095d, "\x09\x22\x09\x3c" },
- { 0x095e, "\x09\x2b\x09\x3c" },
- { 0x095f, "\x09\x2f\x09\x3c" },
- { 0x09b0, "\x09\xac\x09\xbc" },
- { 0x09cb, "\x09\xc7\x09\xbe" },
- { 0x09cc, "\x09\xc7\x09\xd7" },
- { 0x09dc, "\x09\xa1\x09\xbc" },
- { 0x09dd, "\x09\xa2\x09\xbc" },
- { 0x09df, "\x09\xaf\x09\xbc" },
- { 0x0a59, "\x0a\x16\x0a\x3c" },
- { 0x0a5a, "\x0a\x17\x0a\x3c" },
- { 0x0a5b, "\x0a\x1c\x0a\x3c" },
- { 0x0a5c, "\x0a\x21\x0a\x3c" },
- { 0x0a5e, "\x0a\x2b\x0a\x3c" },
- { 0x0b48, "\x0b\x47\x0b\x56" },
- { 0x0b4b, "\x0b\x47\x0b\x3e" },
- { 0x0b4c, "\x0b\x47\x0b\x57" },
- { 0x0b5c, "\x0b\x21\x0b\x3c" },
- { 0x0b5d, "\x0b\x22\x0b\x3c" },
- { 0x0b5f, "\x0b\x2f\x0b\x3c" },
- { 0x0b94, "\x0b\x92\x0b\xd7" },
- { 0x0bca, "\x0b\xc6\x0b\xbe" },
- { 0x0bcb, "\x0b\xc7\x0b\xbe" },
- { 0x0bcc, "\x0b\xc6\x0b\xd7" },
- { 0x0c48, "\x0c\x46\x0c\x56" },
- { 0x0cc0, "\x0c\xbf\x0c\xd5" },
- { 0x0cc7, "\x0c\xc6\x0c\xd5" },
- { 0x0cc8, "\x0c\xc6\x0c\xd6" },
- { 0x0cca, "\x0c\xc6\x0c\xc2" },
- { 0x0ccb, "\x0c\xca\x0c\xd5" },
- { 0x0d4a, "\x0d\x46\x0d\x3e" },
- { 0x0d4b, "\x0d\x47\x0d\x3e" },
- { 0x0d4c, "\x0d\x46\x0d\x57" },
- { 0x0e33, "\x0e\x4d\x0e\x32" },
- { 0x0eb3, "\x0e\xcd\x0e\xb2" },
- { 0x0f43, "\x0f\x42\x0f\xb7" },
- { 0x0f4d, "\x0f\x4c\x0f\xb7" },
- { 0x0f52, "\x0f\x51\x0f\xb7" },
- { 0x0f57, "\x0f\x56\x0f\xb7" },
- { 0x0f5c, "\x0f\x5b\x0f\xb7" },
- { 0x0f69, "\x0f\x40\x0f\xb5" },
- { 0x0f73, "\x0f\x72\x0f\x71" },
- { 0x0f75, "\x0f\x71\x0f\x74" },
- { 0x0f76, "\x0f\xb2\x0f\x80" },
- { 0x0f77, "\x0f\x76\x0f\x71" },
- { 0x0f78, "\x0f\xb3\x0f\x80" },
- { 0x0f79, "\x0f\x78\x0f\x71" },
- { 0x0f81, "\x0f\x80\x0f\x71" },
- { 0x0f93, "\x0f\x92\x0f\xb7" },
- { 0x0f9d, "\x0f\x9c\x0f\xb7" },
- { 0x0fa2, "\x0f\xa1\x0f\xb7" },
- { 0x0fa7, "\x0f\xa6\x0f\xb7" },
- { 0x0fac, "\x0f\xab\x0f\xb7" },
- { 0x0fb9, "\x0f\x90\x0f\xb5" },
- { 0x1e00, "\x00\x41\x03\x25" },
- { 0x1e01, "\x00\x61\x03\x25" },
- { 0x1e02, "\x00\x42\x03\x07" },
- { 0x1e03, "\x00\x62\x03\x07" },
- { 0x1e04, "\x00\x42\x03\x23" },
- { 0x1e05, "\x00\x62\x03\x23" },
- { 0x1e06, "\x00\x42\x03\x31" },
- { 0x1e07, "\x00\x62\x03\x31" },
- { 0x1e08, "\x00\xc7\x03\x01" },
- { 0x1e09, "\x00\xe7\x03\x01" },
- { 0x1e0a, "\x00\x44\x03\x07" },
- { 0x1e0b, "\x00\x64\x03\x07" },
- { 0x1e0c, "\x00\x44\x03\x23" },
- { 0x1e0d, "\x00\x64\x03\x23" },
- { 0x1e0e, "\x00\x44\x03\x31" },
- { 0x1e0f, "\x00\x64\x03\x31" },
- { 0x1e10, "\x00\x44\x03\x27" },
- { 0x1e11, "\x00\x64\x03\x27" },
- { 0x1e12, "\x00\x44\x03\x2d" },
- { 0x1e13, "\x00\x64\x03\x2d" },
- { 0x1e14, "\x01\x12\x03\x00" },
- { 0x1e15, "\x01\x13\x03\x00" },
- { 0x1e16, "\x01\x12\x03\x01" },
- { 0x1e17, "\x01\x13\x03\x01" },
- { 0x1e18, "\x00\x45\x03\x2d" },
- { 0x1e19, "\x00\x65\x03\x2d" },
- { 0x1e1a, "\x00\x45\x03\x30" },
- { 0x1e1b, "\x00\x65\x03\x30" },
- { 0x1e1c, "\x01\x14\x03\x27" },
- { 0x1e1d, "\x01\x15\x03\x27" },
- { 0x1e1e, "\x00\x46\x03\x07" },
- { 0x1e1f, "\x00\x66\x03\x07" },
- { 0x1e20, "\x00\x47\x03\x04" },
- { 0x1e21, "\x00\x67\x03\x04" },
- { 0x1e22, "\x00\x48\x03\x07" },
- { 0x1e23, "\x00\x68\x03\x07" },
- { 0x1e24, "\x00\x48\x03\x23" },
- { 0x1e25, "\x00\x68\x03\x23" },
- { 0x1e26, "\x00\x48\x03\x08" },
- { 0x1e27, "\x00\x68\x03\x08" },
- { 0x1e28, "\x00\x48\x03\x27" },
- { 0x1e29, "\x00\x68\x03\x27" },
- { 0x1e2a, "\x00\x48\x03\x2e" },
- { 0x1e2b, "\x00\x68\x03\x2e" },
- { 0x1e2c, "\x00\x49\x03\x30" },
- { 0x1e2d, "\x00\x69\x03\x30" },
- { 0x1e2e, "\x00\xcf\x03\x01" },
- { 0x1e2f, "\x00\xef\x03\x01" },
- { 0x1e30, "\x00\x4b\x03\x01" },
- { 0x1e31, "\x00\x6b\x03\x01" },
- { 0x1e32, "\x00\x4b\x03\x23" },
- { 0x1e33, "\x00\x6b\x03\x23" },
- { 0x1e34, "\x00\x4b\x03\x31" },
- { 0x1e35, "\x00\x6b\x03\x31" },
- { 0x1e36, "\x00\x4c\x03\x23" },
- { 0x1e37, "\x00\x6c\x03\x23" },
- { 0x1e38, "\x1e\x36\x03\x04" },
- { 0x1e39, "\x1e\x37\x03\x04" },
- { 0x1e3a, "\x00\x4c\x03\x31" },
- { 0x1e3b, "\x00\x6c\x03\x31" },
- { 0x1e3c, "\x00\x4c\x03\x2d" },
- { 0x1e3d, "\x00\x6c\x03\x2d" },
- { 0x1e3e, "\x00\x4d\x03\x01" },
- { 0x1e3f, "\x00\x6d\x03\x01" },
- { 0x1e40, "\x00\x4d\x03\x07" },
- { 0x1e41, "\x00\x6d\x03\x07" },
- { 0x1e42, "\x00\x4d\x03\x23" },
- { 0x1e43, "\x00\x6d\x03\x23" },
- { 0x1e44, "\x00\x4e\x03\x07" },
- { 0x1e45, "\x00\x6e\x03\x07" },
- { 0x1e46, "\x00\x4e\x03\x23" },
- { 0x1e47, "\x00\x6e\x03\x23" },
- { 0x1e48, "\x00\x4e\x03\x31" },
- { 0x1e49, "\x00\x6e\x03\x31" },
- { 0x1e4a, "\x00\x4e\x03\x2d" },
- { 0x1e4b, "\x00\x6e\x03\x2d" },
- { 0x1e4c, "\x00\xd5\x03\x01" },
- { 0x1e4d, "\x00\xf5\x03\x01" },
- { 0x1e4e, "\x00\xd5\x03\x08" },
- { 0x1e4f, "\x00\xf5\x03\x08" },
- { 0x1e50, "\x01\x4c\x03\x00" },
- { 0x1e51, "\x01\x4d\x03\x00" },
- { 0x1e52, "\x01\x4c\x03\x01" },
- { 0x1e53, "\x01\x4d\x03\x01" },
- { 0x1e54, "\x00\x50\x03\x01" },
- { 0x1e55, "\x00\x70\x03\x01" },
- { 0x1e56, "\x00\x50\x03\x07" },
- { 0x1e57, "\x00\x70\x03\x07" },
- { 0x1e58, "\x00\x52\x03\x07" },
- { 0x1e59, "\x00\x72\x03\x07" },
- { 0x1e5a, "\x00\x52\x03\x23" },
- { 0x1e5b, "\x00\x72\x03\x23" },
- { 0x1e5c, "\x1e\x5a\x03\x04" },
- { 0x1e5d, "\x1e\x5b\x03\x04" },
- { 0x1e5e, "\x00\x52\x03\x31" },
- { 0x1e5f, "\x00\x72\x03\x31" },
- { 0x1e60, "\x00\x53\x03\x07" },
- { 0x1e61, "\x00\x73\x03\x07" },
- { 0x1e62, "\x00\x53\x03\x23" },
- { 0x1e63, "\x00\x73\x03\x23" },
- { 0x1e64, "\x01\x5a\x03\x07" },
- { 0x1e65, "\x01\x5b\x03\x07" },
- { 0x1e66, "\x01\x60\x03\x07" },
- { 0x1e67, "\x01\x61\x03\x07" },
- { 0x1e68, "\x1e\x62\x03\x07" },
- { 0x1e69, "\x1e\x63\x03\x07" },
- { 0x1e6a, "\x00\x54\x03\x07" },
- { 0x1e6b, "\x00\x74\x03\x07" },
- { 0x1e6c, "\x00\x54\x03\x23" },
- { 0x1e6d, "\x00\x74\x03\x23" },
- { 0x1e6e, "\x00\x54\x03\x31" },
- { 0x1e6f, "\x00\x74\x03\x31" },
- { 0x1e70, "\x00\x54\x03\x2d" },
- { 0x1e71, "\x00\x74\x03\x2d" },
- { 0x1e72, "\x00\x55\x03\x24" },
- { 0x1e73, "\x00\x75\x03\x24" },
- { 0x1e74, "\x00\x55\x03\x30" },
- { 0x1e75, "\x00\x75\x03\x30" },
- { 0x1e76, "\x00\x55\x03\x2d" },
- { 0x1e77, "\x00\x75\x03\x2d" },
- { 0x1e78, "\x01\x68\x03\x01" },
- { 0x1e79, "\x01\x69\x03\x01" },
- { 0x1e7a, "\x01\x6a\x03\x08" },
- { 0x1e7b, "\x01\x6b\x03\x08" },
- { 0x1e7c, "\x00\x56\x03\x03" },
- { 0x1e7d, "\x00\x76\x03\x03" },
- { 0x1e7e, "\x00\x56\x03\x23" },
- { 0x1e7f, "\x00\x76\x03\x23" },
- { 0x1e80, "\x00\x57\x03\x00" },
- { 0x1e81, "\x00\x77\x03\x00" },
- { 0x1e82, "\x00\x57\x03\x01" },
- { 0x1e83, "\x00\x77\x03\x01" },
- { 0x1e84, "\x00\x57\x03\x08" },
- { 0x1e85, "\x00\x77\x03\x08" },
- { 0x1e86, "\x00\x57\x03\x07" },
- { 0x1e87, "\x00\x77\x03\x07" },
- { 0x1e88, "\x00\x57\x03\x23" },
- { 0x1e89, "\x00\x77\x03\x23" },
- { 0x1e8a, "\x00\x58\x03\x07" },
- { 0x1e8b, "\x00\x78\x03\x07" },
- { 0x1e8c, "\x00\x58\x03\x08" },
- { 0x1e8d, "\x00\x78\x03\x08" },
- { 0x1e8e, "\x00\x59\x03\x07" },
- { 0x1e8f, "\x00\x79\x03\x07" },
- { 0x1e90, "\x00\x5a\x03\x02" },
- { 0x1e91, "\x00\x7a\x03\x02" },
- { 0x1e92, "\x00\x5a\x03\x23" },
- { 0x1e93, "\x00\x7a\x03\x23" },
- { 0x1e94, "\x00\x5a\x03\x31" },
- { 0x1e95, "\x00\x7a\x03\x31" },
- { 0x1e96, "\x00\x68\x03\x31" },
- { 0x1e97, "\x00\x74\x03\x08" },
- { 0x1e98, "\x00\x77\x03\x0a" },
- { 0x1e99, "\x00\x79\x03\x0a" },
- { 0x1e9b, "\x01\x7f\x03\x07" },
- { 0x1ea0, "\x00\x41\x03\x23" },
- { 0x1ea1, "\x00\x61\x03\x23" },
- { 0x1ea2, "\x00\x41\x03\x09" },
- { 0x1ea3, "\x00\x61\x03\x09" },
- { 0x1ea4, "\x00\xc2\x03\x01" },
- { 0x1ea5, "\x00\xe2\x03\x01" },
- { 0x1ea6, "\x00\xc2\x03\x00" },
- { 0x1ea7, "\x00\xe2\x03\x00" },
- { 0x1ea8, "\x00\xc2\x03\x09" },
- { 0x1ea9, "\x00\xe2\x03\x09" },
- { 0x1eaa, "\x00\xc2\x03\x03" },
- { 0x1eab, "\x00\xe2\x03\x03" },
- { 0x1eac, "\x00\xc2\x03\x23" },
- { 0x1ead, "\x00\xe2\x03\x23" },
- { 0x1eae, "\x01\x02\x03\x01" },
- { 0x1eaf, "\x01\x03\x03\x01" },
- { 0x1eb0, "\x01\x02\x03\x00" },
- { 0x1eb1, "\x01\x03\x03\x00" },
- { 0x1eb2, "\x01\x02\x03\x09" },
- { 0x1eb3, "\x01\x03\x03\x09" },
- { 0x1eb4, "\x01\x02\x03\x03" },
- { 0x1eb5, "\x01\x03\x03\x03" },
- { 0x1eb6, "\x01\x02\x03\x23" },
- { 0x1eb7, "\x01\x03\x03\x23" },
- { 0x1eb8, "\x00\x45\x03\x23" },
- { 0x1eb9, "\x00\x65\x03\x23" },
- { 0x1eba, "\x00\x45\x03\x09" },
- { 0x1ebb, "\x00\x65\x03\x09" },
- { 0x1ebc, "\x00\x45\x03\x03" },
- { 0x1ebd, "\x00\x65\x03\x03" },
- { 0x1ebe, "\x00\xca\x03\x01" },
- { 0x1ebf, "\x00\xea\x03\x01" },
- { 0x1ec0, "\x00\xca\x03\x00" },
- { 0x1ec1, "\x00\xea\x03\x00" },
- { 0x1ec2, "\x00\xca\x03\x09" },
- { 0x1ec3, "\x00\xea\x03\x09" },
- { 0x1ec4, "\x00\xca\x03\x03" },
- { 0x1ec5, "\x00\xea\x03\x03" },
- { 0x1ec6, "\x00\xca\x03\x23" },
- { 0x1ec7, "\x00\xea\x03\x23" },
- { 0x1ec8, "\x00\x49\x03\x09" },
- { 0x1ec9, "\x00\x69\x03\x09" },
- { 0x1eca, "\x00\x49\x03\x23" },
- { 0x1ecb, "\x00\x69\x03\x23" },
- { 0x1ecc, "\x00\x4f\x03\x23" },
- { 0x1ecd, "\x00\x6f\x03\x23" },
- { 0x1ece, "\x00\x4f\x03\x09" },
- { 0x1ecf, "\x00\x6f\x03\x09" },
- { 0x1ed0, "\x00\xd4\x03\x01" },
- { 0x1ed1, "\x00\xf4\x03\x01" },
- { 0x1ed2, "\x00\xd4\x03\x00" },
- { 0x1ed3, "\x00\xf4\x03\x00" },
- { 0x1ed4, "\x00\xd4\x03\x09" },
- { 0x1ed5, "\x00\xf4\x03\x09" },
- { 0x1ed6, "\x00\xd4\x03\x03" },
- { 0x1ed7, "\x00\xf4\x03\x03" },
- { 0x1ed8, "\x00\xd4\x03\x23" },
- { 0x1ed9, "\x00\xf4\x03\x23" },
- { 0x1eda, "\x01\xa0\x03\x01" },
- { 0x1edb, "\x01\xa1\x03\x01" },
- { 0x1edc, "\x01\xa0\x03\x00" },
- { 0x1edd, "\x01\xa1\x03\x00" },
- { 0x1ede, "\x01\xa0\x03\x09" },
- { 0x1edf, "\x01\xa1\x03\x09" },
- { 0x1ee0, "\x01\xa0\x03\x03" },
- { 0x1ee1, "\x01\xa1\x03\x03" },
- { 0x1ee2, "\x01\xa0\x03\x23" },
- { 0x1ee3, "\x01\xa1\x03\x23" },
- { 0x1ee4, "\x00\x55\x03\x23" },
- { 0x1ee5, "\x00\x75\x03\x23" },
- { 0x1ee6, "\x00\x55\x03\x09" },
- { 0x1ee7, "\x00\x75\x03\x09" },
- { 0x1ee8, "\x01\xaf\x03\x01" },
- { 0x1ee9, "\x01\xb0\x03\x01" },
- { 0x1eea, "\x01\xaf\x03\x00" },
- { 0x1eeb, "\x01\xb0\x03\x00" },
- { 0x1eec, "\x01\xaf\x03\x09" },
- { 0x1eed, "\x01\xb0\x03\x09" },
- { 0x1eee, "\x01\xaf\x03\x03" },
- { 0x1eef, "\x01\xb0\x03\x03" },
- { 0x1ef0, "\x01\xaf\x03\x23" },
- { 0x1ef1, "\x01\xb0\x03\x23" },
- { 0x1ef2, "\x00\x59\x03\x00" },
- { 0x1ef3, "\x00\x79\x03\x00" },
- { 0x1ef4, "\x00\x59\x03\x23" },
- { 0x1ef5, "\x00\x79\x03\x23" },
- { 0x1ef6, "\x00\x59\x03\x09" },
- { 0x1ef7, "\x00\x79\x03\x09" },
- { 0x1ef8, "\x00\x59\x03\x03" },
- { 0x1ef9, "\x00\x79\x03\x03" },
- { 0x1f00, "\x03\xb1\x03\x13" },
- { 0x1f01, "\x03\xb1\x03\x14" },
- { 0x1f02, "\x1f\x00\x03\x00" },
- { 0x1f03, "\x1f\x01\x03\x00" },
- { 0x1f04, "\x1f\x00\x03\x01" },
- { 0x1f05, "\x1f\x01\x03\x01" },
- { 0x1f06, "\x1f\x00\x03\x42" },
- { 0x1f07, "\x1f\x01\x03\x42" },
- { 0x1f08, "\x03\x91\x03\x13" },
- { 0x1f09, "\x03\x91\x03\x14" },
- { 0x1f0a, "\x1f\x08\x03\x00" },
- { 0x1f0b, "\x1f\x09\x03\x00" },
- { 0x1f0c, "\x1f\x08\x03\x01" },
- { 0x1f0d, "\x1f\x09\x03\x01" },
- { 0x1f0e, "\x1f\x08\x03\x42" },
- { 0x1f0f, "\x1f\x09\x03\x42" },
- { 0x1f10, "\x03\xb5\x03\x13" },
- { 0x1f11, "\x03\xb5\x03\x14" },
- { 0x1f12, "\x1f\x10\x03\x00" },
- { 0x1f13, "\x1f\x11\x03\x00" },
- { 0x1f14, "\x1f\x10\x03\x01" },
- { 0x1f15, "\x1f\x11\x03\x01" },
- { 0x1f18, "\x03\x95\x03\x13" },
- { 0x1f19, "\x03\x95\x03\x14" },
- { 0x1f1a, "\x1f\x18\x03\x00" },
- { 0x1f1b, "\x1f\x19\x03\x00" },
- { 0x1f1c, "\x1f\x18\x03\x01" },
- { 0x1f1d, "\x1f\x19\x03\x01" },
- { 0x1f20, "\x03\xb7\x03\x13" },
- { 0x1f21, "\x03\xb7\x03\x14" },
- { 0x1f22, "\x1f\x20\x03\x00" },
- { 0x1f23, "\x1f\x21\x03\x00" },
- { 0x1f24, "\x1f\x20\x03\x01" },
- { 0x1f25, "\x1f\x21\x03\x01" },
- { 0x1f26, "\x1f\x20\x03\x42" },
- { 0x1f27, "\x1f\x21\x03\x42" },
- { 0x1f28, "\x03\x97\x03\x13" },
- { 0x1f29, "\x03\x97\x03\x14" },
- { 0x1f2a, "\x1f\x28\x03\x00" },
- { 0x1f2b, "\x1f\x29\x03\x00" },
- { 0x1f2c, "\x1f\x28\x03\x01" },
- { 0x1f2d, "\x1f\x29\x03\x01" },
- { 0x1f2e, "\x1f\x28\x03\x42" },
- { 0x1f2f, "\x1f\x29\x03\x42" },
- { 0x1f30, "\x03\xb9\x03\x13" },
- { 0x1f31, "\x03\xb9\x03\x14" },
- { 0x1f32, "\x1f\x30\x03\x00" },
- { 0x1f33, "\x1f\x31\x03\x00" },
- { 0x1f34, "\x1f\x30\x03\x01" },
- { 0x1f35, "\x1f\x31\x03\x01" },
- { 0x1f36, "\x1f\x30\x03\x42" },
- { 0x1f37, "\x1f\x31\x03\x42" },
- { 0x1f38, "\x03\x99\x03\x13" },
- { 0x1f39, "\x03\x99\x03\x14" },
- { 0x1f3a, "\x1f\x38\x03\x00" },
- { 0x1f3b, "\x1f\x39\x03\x00" },
- { 0x1f3c, "\x1f\x38\x03\x01" },
- { 0x1f3d, "\x1f\x39\x03\x01" },
- { 0x1f3e, "\x1f\x38\x03\x42" },
- { 0x1f3f, "\x1f\x39\x03\x42" },
- { 0x1f40, "\x03\xbf\x03\x13" },
- { 0x1f41, "\x03\xbf\x03\x14" },
- { 0x1f42, "\x1f\x40\x03\x00" },
- { 0x1f43, "\x1f\x41\x03\x00" },
- { 0x1f44, "\x1f\x40\x03\x01" },
- { 0x1f45, "\x1f\x41\x03\x01" },
- { 0x1f48, "\x03\x9f\x03\x13" },
- { 0x1f49, "\x03\x9f\x03\x14" },
- { 0x1f4a, "\x1f\x48\x03\x00" },
- { 0x1f4b, "\x1f\x49\x03\x00" },
- { 0x1f4c, "\x1f\x48\x03\x01" },
- { 0x1f4d, "\x1f\x49\x03\x01" },
- { 0x1f50, "\x03\xc5\x03\x13" },
- { 0x1f51, "\x03\xc5\x03\x14" },
- { 0x1f52, "\x1f\x50\x03\x00" },
- { 0x1f53, "\x1f\x51\x03\x00" },
- { 0x1f54, "\x1f\x50\x03\x01" },
- { 0x1f55, "\x1f\x51\x03\x01" },
- { 0x1f56, "\x1f\x50\x03\x42" },
- { 0x1f57, "\x1f\x51\x03\x42" },
- { 0x1f59, "\x03\xa5\x03\x14" },
- { 0x1f5b, "\x1f\x59\x03\x00" },
- { 0x1f5d, "\x1f\x59\x03\x01" },
- { 0x1f5f, "\x1f\x59\x03\x42" },
- { 0x1f60, "\x03\xc9\x03\x13" },
- { 0x1f61, "\x03\xc9\x03\x14" },
- { 0x1f62, "\x1f\x60\x03\x00" },
- { 0x1f63, "\x1f\x61\x03\x00" },
- { 0x1f64, "\x1f\x60\x03\x01" },
- { 0x1f65, "\x1f\x61\x03\x01" },
- { 0x1f66, "\x1f\x60\x03\x42" },
- { 0x1f67, "\x1f\x61\x03\x42" },
- { 0x1f68, "\x03\xa9\x03\x13" },
- { 0x1f69, "\x03\xa9\x03\x14" },
- { 0x1f6a, "\x1f\x68\x03\x00" },
- { 0x1f6b, "\x1f\x69\x03\x00" },
- { 0x1f6c, "\x1f\x68\x03\x01" },
- { 0x1f6d, "\x1f\x69\x03\x01" },
- { 0x1f6e, "\x1f\x68\x03\x42" },
- { 0x1f6f, "\x1f\x69\x03\x42" },
- { 0x1f70, "\x03\xb1\x03\x00" },
- { 0x1f71, "\x03\xac" },
- { 0x1f72, "\x03\xb5\x03\x00" },
- { 0x1f73, "\x03\xad" },
- { 0x1f74, "\x03\xb7\x03\x00" },
- { 0x1f75, "\x03\xae" },
- { 0x1f76, "\x03\xb9\x03\x00" },
- { 0x1f77, "\x03\xaf" },
- { 0x1f78, "\x03\xbf\x03\x00" },
- { 0x1f79, "\x03\xcc" },
- { 0x1f7a, "\x03\xc5\x03\x00" },
- { 0x1f7b, "\x03\xcd" },
- { 0x1f7c, "\x03\xc9\x03\x00" },
- { 0x1f7d, "\x03\xce" },
- { 0x1f80, "\x1f\x00\x03\x45" },
- { 0x1f81, "\x1f\x01\x03\x45" },
- { 0x1f82, "\x1f\x02\x03\x45" },
- { 0x1f83, "\x1f\x03\x03\x45" },
- { 0x1f84, "\x1f\x04\x03\x45" },
- { 0x1f85, "\x1f\x05\x03\x45" },
- { 0x1f86, "\x1f\x06\x03\x45" },
- { 0x1f87, "\x1f\x07\x03\x45" },
- { 0x1f88, "\x1f\x08\x03\x45" },
- { 0x1f89, "\x1f\x09\x03\x45" },
- { 0x1f8a, "\x1f\x0a\x03\x45" },
- { 0x1f8b, "\x1f\x0b\x03\x45" },
- { 0x1f8c, "\x1f\x0c\x03\x45" },
- { 0x1f8d, "\x1f\x0d\x03\x45" },
- { 0x1f8e, "\x1f\x0e\x03\x45" },
- { 0x1f8f, "\x1f\x0f\x03\x45" },
- { 0x1f90, "\x1f\x20\x03\x45" },
- { 0x1f91, "\x1f\x21\x03\x45" },
- { 0x1f92, "\x1f\x22\x03\x45" },
- { 0x1f93, "\x1f\x23\x03\x45" },
- { 0x1f94, "\x1f\x24\x03\x45" },
- { 0x1f95, "\x1f\x25\x03\x45" },
- { 0x1f96, "\x1f\x26\x03\x45" },
- { 0x1f97, "\x1f\x27\x03\x45" },
- { 0x1f98, "\x1f\x28\x03\x45" },
- { 0x1f99, "\x1f\x29\x03\x45" },
- { 0x1f9a, "\x1f\x2a\x03\x45" },
- { 0x1f9b, "\x1f\x2b\x03\x45" },
- { 0x1f9c, "\x1f\x2c\x03\x45" },
- { 0x1f9d, "\x1f\x2d\x03\x45" },
- { 0x1f9e, "\x1f\x2e\x03\x45" },
- { 0x1f9f, "\x1f\x2f\x03\x45" },
- { 0x1fa0, "\x1f\x60\x03\x45" },
- { 0x1fa1, "\x1f\x61\x03\x45" },
- { 0x1fa2, "\x1f\x62\x03\x45" },
- { 0x1fa3, "\x1f\x63\x03\x45" },
- { 0x1fa4, "\x1f\x64\x03\x45" },
- { 0x1fa5, "\x1f\x65\x03\x45" },
- { 0x1fa6, "\x1f\x66\x03\x45" },
- { 0x1fa7, "\x1f\x67\x03\x45" },
- { 0x1fa8, "\x1f\x68\x03\x45" },
- { 0x1fa9, "\x1f\x69\x03\x45" },
- { 0x1faa, "\x1f\x6a\x03\x45" },
- { 0x1fab, "\x1f\x6b\x03\x45" },
- { 0x1fac, "\x1f\x6c\x03\x45" },
- { 0x1fad, "\x1f\x6d\x03\x45" },
- { 0x1fae, "\x1f\x6e\x03\x45" },
- { 0x1faf, "\x1f\x6f\x03\x45" },
- { 0x1fb0, "\x03\xb1\x03\x06" },
- { 0x1fb1, "\x03\xb1\x03\x04" },
- { 0x1fb2, "\x1f\x70\x03\x45" },
- { 0x1fb3, "\x03\xb1\x03\x45" },
- { 0x1fb4, "\x03\xac\x03\x45" },
- { 0x1fb6, "\x03\xb1\x03\x42" },
- { 0x1fb7, "\x1f\xb6\x03\x45" },
- { 0x1fb8, "\x03\x91\x03\x06" },
- { 0x1fb9, "\x03\x91\x03\x04" },
- { 0x1fba, "\x03\x91\x03\x00" },
- { 0x1fbb, "\x03\x86" },
- { 0x1fbc, "\x03\x91\x03\x45" },
- { 0x1fbe, "\x03\xb9" },
- { 0x1fc1, "\x00\xa8\x03\x42" },
- { 0x1fc2, "\x1f\x74\x03\x45" },
- { 0x1fc3, "\x03\xb7\x03\x45" },
- { 0x1fc4, "\x03\xae\x03\x45" },
- { 0x1fc6, "\x03\xb7\x03\x42" },
- { 0x1fc7, "\x1f\xc6\x03\x45" },
- { 0x1fc8, "\x03\x95\x03\x00" },
- { 0x1fc9, "\x03\x88" },
- { 0x1fca, "\x03\x97\x03\x00" },
- { 0x1fcb, "\x03\x89" },
- { 0x1fcc, "\x03\x97\x03\x45" },
- { 0x1fcd, "\x1f\xbf\x03\x00" },
- { 0x1fce, "\x1f\xbf\x03\x01" },
- { 0x1fcf, "\x1f\xbf\x03\x42" },
- { 0x1fd0, "\x03\xb9\x03\x06" },
- { 0x1fd1, "\x03\xb9\x03\x04" },
- { 0x1fd2, "\x03\xca\x03\x00" },
- { 0x1fd3, "\x03\x90" },
- { 0x1fd6, "\x03\xb9\x03\x42" },
- { 0x1fd7, "\x03\xca\x03\x42" },
- { 0x1fd8, "\x03\x99\x03\x06" },
- { 0x1fd9, "\x03\x99\x03\x04" },
- { 0x1fda, "\x03\x99\x03\x00" },
- { 0x1fdb, "\x03\x8a" },
- { 0x1fdd, "\x1f\xfe\x03\x00" },
- { 0x1fde, "\x1f\xfe\x03\x01" },
- { 0x1fdf, "\x1f\xfe\x03\x42" },
- { 0x1fe0, "\x03\xc5\x03\x06" },
- { 0x1fe1, "\x03\xc5\x03\x04" },
- { 0x1fe2, "\x03\xcb\x03\x00" },
- { 0x1fe3, "\x03\xb0" },
- { 0x1fe4, "\x03\xc1\x03\x13" },
- { 0x1fe5, "\x03\xc1\x03\x14" },
- { 0x1fe6, "\x03\xc5\x03\x42" },
- { 0x1fe7, "\x03\xcb\x03\x42" },
- { 0x1fe8, "\x03\xa5\x03\x06" },
- { 0x1fe9, "\x03\xa5\x03\x04" },
- { 0x1fea, "\x03\xa5\x03\x00" },
- { 0x1feb, "\x03\x8e" },
- { 0x1fec, "\x03\xa1\x03\x14" },
- { 0x1fed, "\x00\xa8\x03\x00" },
- { 0x1fee, "\x03\x85" },
- { 0x1fef, "\x00\x60" },
- { 0x1ff2, "\x1f\x7c\x03\x45" },
- { 0x1ff3, "\x03\xc9\x03\x45" },
- { 0x1ff4, "\x03\xce\x03\x45" },
- { 0x1ff6, "\x03\xc9\x03\x42" },
- { 0x1ff7, "\x1f\xf6\x03\x45" },
- { 0x1ff8, "\x03\x9f\x03\x00" },
- { 0x1ff9, "\x03\x8c" },
- { 0x1ffa, "\x03\xa9\x03\x00" },
- { 0x1ffb, "\x03\x8f" },
- { 0x1ffc, "\x03\xa9\x03\x45" },
- { 0x1ffd, "\x00\xb4" },
- { 0x2000, "\x20\x02" },
- { 0x2001, "\x20\x03" },
- { 0x2126, "\x03\xa9" },
- { 0x212a, "\x00\x4b" },
- { 0x212b, "\x00\xc5" },
- { 0x2204, "\x22\x03\x03\x38" },
- { 0x2209, "\x22\x08\x03\x38" },
- { 0x220c, "\x22\x0b\x03\x38" },
- { 0x2224, "\x22\x23\x03\x38" },
- { 0x2226, "\x22\x25\x03\x38" },
- { 0x2241, "\x00\x7e\x03\x38" },
- { 0x2244, "\x22\x43\x03\x38" },
- { 0x2247, "\x22\x45\x03\x38" },
- { 0x2249, "\x22\x48\x03\x38" },
- { 0x2260, "\x00\x3d\x03\x38" },
- { 0x2262, "\x22\x61\x03\x38" },
- { 0x226d, "\x22\x4d\x03\x38" },
- { 0x226e, "\x00\x3c\x03\x38" },
- { 0x226f, "\x00\x3e\x03\x38" },
- { 0x2270, "\x22\x64\x03\x38" },
- { 0x2271, "\x22\x65\x03\x38" },
- { 0x2274, "\x22\x72\x03\x38" },
- { 0x2275, "\x22\x73\x03\x38" },
- { 0x2278, "\x22\x76\x03\x38" },
- { 0x2279, "\x22\x77\x03\x38" },
- { 0x2280, "\x22\x7a\x03\x38" },
- { 0x2281, "\x22\x7b\x03\x38" },
- { 0x2284, "\x22\x82\x03\x38" },
- { 0x2285, "\x22\x83\x03\x38" },
- { 0x2288, "\x22\x86\x03\x38" },
- { 0x2289, "\x22\x87\x03\x38" },
- { 0x22ac, "\x22\xa2\x03\x38" },
- { 0x22ad, "\x22\xa8\x03\x38" },
- { 0x22ae, "\x22\xa9\x03\x38" },
- { 0x22af, "\x22\xab\x03\x38" },
- { 0x22e0, "\x22\x7c\x03\x38" },
- { 0x22e1, "\x22\x7d\x03\x38" },
- { 0x22e2, "\x22\x91\x03\x38" },
- { 0x22e3, "\x22\x92\x03\x38" },
- { 0x22ea, "\x22\xb2\x03\x38" },
- { 0x22eb, "\x22\xb3\x03\x38" },
- { 0x22ec, "\x22\xb4\x03\x38" },
- { 0x22ed, "\x22\xb5\x03\x38" },
- { 0x2329, "\x30\x08" },
- { 0x232a, "\x30\x09" },
- { 0x304c, "\x30\x4b\x30\x99" },
- { 0x304e, "\x30\x4d\x30\x99" },
- { 0x3050, "\x30\x4f\x30\x99" },
- { 0x3052, "\x30\x51\x30\x99" },
- { 0x3054, "\x30\x53\x30\x99" },
- { 0x3056, "\x30\x55\x30\x99" },
- { 0x3058, "\x30\x57\x30\x99" },
- { 0x305a, "\x30\x59\x30\x99" },
- { 0x305c, "\x30\x5b\x30\x99" },
- { 0x305e, "\x30\x5d\x30\x99" },
- { 0x3060, "\x30\x5f\x30\x99" },
- { 0x3062, "\x30\x61\x30\x99" },
- { 0x3065, "\x30\x64\x30\x99" },
- { 0x3067, "\x30\x66\x30\x99" },
- { 0x3069, "\x30\x68\x30\x99" },
- { 0x3070, "\x30\x6f\x30\x99" },
- { 0x3071, "\x30\x6f\x30\x9a" },
- { 0x3073, "\x30\x72\x30\x99" },
- { 0x3074, "\x30\x72\x30\x9a" },
- { 0x3076, "\x30\x75\x30\x99" },
- { 0x3077, "\x30\x75\x30\x9a" },
- { 0x3079, "\x30\x78\x30\x99" },
- { 0x307a, "\x30\x78\x30\x9a" },
- { 0x307c, "\x30\x7b\x30\x99" },
- { 0x307d, "\x30\x7b\x30\x9a" },
- { 0x3094, "\x30\x46\x30\x99" },
- { 0x309e, "\x30\x9d\x30\x99" },
- { 0x30ac, "\x30\xab\x30\x99" },
- { 0x30ae, "\x30\xad\x30\x99" },
- { 0x30b0, "\x30\xaf\x30\x99" },
- { 0x30b2, "\x30\xb1\x30\x99" },
- { 0x30b4, "\x30\xb3\x30\x99" },
- { 0x30b6, "\x30\xb5\x30\x99" },
- { 0x30b8, "\x30\xb7\x30\x99" },
- { 0x30ba, "\x30\xb9\x30\x99" },
- { 0x30bc, "\x30\xbb\x30\x99" },
- { 0x30be, "\x30\xbd\x30\x99" },
- { 0x30c0, "\x30\xbf\x30\x99" },
- { 0x30c2, "\x30\xc1\x30\x99" },
- { 0x30c5, "\x30\xc4\x30\x99" },
- { 0x30c7, "\x30\xc6\x30\x99" },
- { 0x30c9, "\x30\xc8\x30\x99" },
- { 0x30d0, "\x30\xcf\x30\x99" },
- { 0x30d1, "\x30\xcf\x30\x9a" },
- { 0x30d3, "\x30\xd2\x30\x99" },
- { 0x30d4, "\x30\xd2\x30\x9a" },
- { 0x30d6, "\x30\xd5\x30\x99" },
- { 0x30d7, "\x30\xd5\x30\x9a" },
- { 0x30d9, "\x30\xd8\x30\x99" },
- { 0x30da, "\x30\xd8\x30\x9a" },
- { 0x30dc, "\x30\xdb\x30\x99" },
- { 0x30dd, "\x30\xdb\x30\x9a" },
- { 0x30f4, "\x30\xa6\x30\x99" },
- { 0x30f7, "\x30\xef\x30\x99" },
- { 0x30f8, "\x30\xf0\x30\x99" },
- { 0x30f9, "\x30\xf1\x30\x99" },
- { 0x30fa, "\x30\xf2\x30\x99" },
- { 0x30fe, "\x30\xfd\x30\x99" },
- { 0xf900, "\x8c\x48" },
- { 0xf901, "\x66\xf4" },
- { 0xf902, "\x8e\xca" },
- { 0xf903, "\x8c\xc8" },
- { 0xf904, "\x6e\xd1" },
- { 0xf905, "\x4e\x32" },
- { 0xf906, "\x53\xe5" },
- { 0xf907, "\x9f\x9c" },
- { 0xf908, "\x9f\x9c" },
- { 0xf909, "\x59\x51" },
- { 0xf90a, "\x91\xd1" },
- { 0xf90b, "\x55\x87" },
- { 0xf90c, "\x59\x48" },
- { 0xf90d, "\x61\xf6" },
- { 0xf90e, "\x76\x69" },
- { 0xf90f, "\x7f\x85" },
- { 0xf910, "\x86\x3f" },
- { 0xf911, "\x87\xba" },
- { 0xf912, "\x88\xf8" },
- { 0xf913, "\x90\x8f" },
- { 0xf914, "\x6a\x02" },
- { 0xf915, "\x6d\x1b" },
- { 0xf916, "\x70\xd9" },
- { 0xf917, "\x73\xde" },
- { 0xf918, "\x84\x3d" },
- { 0xf919, "\x91\x6a" },
- { 0xf91a, "\x99\xf1" },
- { 0xf91b, "\x4e\x82" },
- { 0xf91c, "\x53\x75" },
- { 0xf91d, "\x6b\x04" },
- { 0xf91e, "\x72\x1b" },
- { 0xf91f, "\x86\x2d" },
- { 0xf920, "\x9e\x1e" },
- { 0xf921, "\x5d\x50" },
- { 0xf922, "\x6f\xeb" },
- { 0xf923, "\x85\xcd" },
- { 0xf924, "\x89\x64" },
- { 0xf925, "\x62\xc9" },
- { 0xf926, "\x81\xd8" },
- { 0xf927, "\x88\x1f" },
- { 0xf928, "\x5e\xca" },
- { 0xf929, "\x67\x17" },
- { 0xf92a, "\x6d\x6a" },
- { 0xf92b, "\x72\xfc" },
- { 0xf92c, "\x90\xce" },
- { 0xf92d, "\x4f\x86" },
- { 0xf92e, "\x51\xb7" },
- { 0xf92f, "\x52\xde" },
- { 0xf930, "\x64\xc4" },
- { 0xf931, "\x6a\xd3" },
- { 0xf932, "\x72\x10" },
- { 0xf933, "\x76\xe7" },
- { 0xf934, "\x80\x01" },
- { 0xf935, "\x86\x06" },
- { 0xf936, "\x86\x5c" },
- { 0xf937, "\x8d\xef" },
- { 0xf938, "\x97\x32" },
- { 0xf939, "\x9b\x6f" },
- { 0xf93a, "\x9d\xfa" },
- { 0xf93b, "\x78\x8c" },
- { 0xf93c, "\x79\x7f" },
- { 0xf93d, "\x7d\xa0" },
- { 0xf93e, "\x83\xc9" },
- { 0xf93f, "\x93\x04" },
- { 0xf940, "\x9e\x7f" },
- { 0xf941, "\x8a\xd6" },
- { 0xf942, "\x58\xdf" },
- { 0xf943, "\x5f\x04" },
- { 0xf944, "\x7c\x60" },
- { 0xf945, "\x80\x7e" },
- { 0xf946, "\x72\x62" },
- { 0xf947, "\x78\xca" },
- { 0xf948, "\x8c\xc2" },
- { 0xf949, "\x96\xf7" },
- { 0xf94a, "\x58\xd8" },
- { 0xf94b, "\x5c\x62" },
- { 0xf94c, "\x6a\x13" },
- { 0xf94d, "\x6d\xda" },
- { 0xf94e, "\x6f\x0f" },
- { 0xf94f, "\x7d\x2f" },
- { 0xf950, "\x7e\x37" },
- { 0xf951, "\x96\xfb" },
- { 0xf952, "\x52\xd2" },
- { 0xf953, "\x80\x8b" },
- { 0xf954, "\x51\xdc" },
- { 0xf955, "\x51\xcc" },
- { 0xf956, "\x7a\x1c" },
- { 0xf957, "\x7d\xbe" },
- { 0xf958, "\x83\xf1" },
- { 0xf959, "\x96\x75" },
- { 0xf95a, "\x8b\x80" },
- { 0xf95b, "\x62\xcf" },
- { 0xf95c, "\x6a\x02" },
- { 0xf95d, "\x8a\xfe" },
- { 0xf95e, "\x4e\x39" },
- { 0xf95f, "\x5b\xe7" },
- { 0xf960, "\x60\x12" },
- { 0xf961, "\x73\x87" },
- { 0xf962, "\x75\x70" },
- { 0xf963, "\x53\x17" },
- { 0xf964, "\x78\xfb" },
- { 0xf965, "\x4f\xbf" },
- { 0xf966, "\x5f\xa9" },
- { 0xf967, "\x4e\x0d" },
- { 0xf968, "\x6c\xcc" },
- { 0xf969, "\x65\x78" },
- { 0xf96a, "\x7d\x22" },
- { 0xf96b, "\x53\xc3" },
- { 0xf96c, "\x58\x5e" },
- { 0xf96d, "\x77\x01" },
- { 0xf96e, "\x84\x49" },
- { 0xf96f, "\x8a\xaa" },
- { 0xf970, "\x6b\xba" },
- { 0xf971, "\x8f\xb0" },
- { 0xf972, "\x6c\x88" },
- { 0xf973, "\x62\xfe" },
- { 0xf974, "\x82\xe5" },
- { 0xf975, "\x63\xa0" },
- { 0xf976, "\x75\x65" },
- { 0xf977, "\x4e\xae" },
- { 0xf978, "\x51\x69" },
- { 0xf979, "\x51\xc9" },
- { 0xf97a, "\x68\x81" },
- { 0xf97b, "\x7c\xe7" },
- { 0xf97c, "\x82\x6f" },
- { 0xf97d, "\x8a\xd2" },
- { 0xf97e, "\x91\xcf" },
- { 0xf97f, "\x52\xf5" },
- { 0xf980, "\x54\x42" },
- { 0xf981, "\x59\x73" },
- { 0xf982, "\x5e\xec" },
- { 0xf983, "\x65\xc5" },
- { 0xf984, "\x6f\xfe" },
- { 0xf985, "\x79\x2a" },
- { 0xf986, "\x95\xad" },
- { 0xf987, "\x9a\x6a" },
- { 0xf988, "\x9e\x97" },
- { 0xf989, "\x9e\xce" },
- { 0xf98a, "\x52\x9b" },
- { 0xf98b, "\x66\xc6" },
- { 0xf98c, "\x6b\x77" },
- { 0xf98d, "\x8f\x62" },
- { 0xf98e, "\x5e\x74" },
- { 0xf98f, "\x61\x90" },
- { 0xf990, "\x62\x00" },
- { 0xf991, "\x64\x9a" },
- { 0xf992, "\x6f\x23" },
- { 0xf993, "\x71\x49" },
- { 0xf994, "\x74\x89" },
- { 0xf995, "\x79\xca" },
- { 0xf996, "\x7d\xf4" },
- { 0xf997, "\x80\x6f" },
- { 0xf998, "\x8f\x26" },
- { 0xf999, "\x84\xee" },
- { 0xf99a, "\x90\x23" },
- { 0xf99b, "\x93\x4a" },
- { 0xf99c, "\x52\x17" },
- { 0xf99d, "\x52\xa3" },
- { 0xf99e, "\x54\xbd" },
- { 0xf99f, "\x70\xc8" },
- { 0xf9a0, "\x88\xc2" },
- { 0xf9a1, "\x8a\xaa" },
- { 0xf9a2, "\x5e\xc9" },
- { 0xf9a3, "\x5f\xf5" },
- { 0xf9a4, "\x63\x7b" },
- { 0xf9a5, "\x6b\xae" },
- { 0xf9a6, "\x7c\x3e" },
- { 0xf9a7, "\x73\x75" },
- { 0xf9a8, "\x4e\xe4" },
- { 0xf9a9, "\x56\xf9" },
- { 0xf9aa, "\x5b\xe7" },
- { 0xf9ab, "\x5d\xba" },
- { 0xf9ac, "\x60\x1c" },
- { 0xf9ad, "\x73\xb2" },
- { 0xf9ae, "\x74\x69" },
- { 0xf9af, "\x7f\x9a" },
- { 0xf9b0, "\x80\x46" },
- { 0xf9b1, "\x92\x34" },
- { 0xf9b2, "\x96\xf6" },
- { 0xf9b3, "\x97\x48" },
- { 0xf9b4, "\x98\x18" },
- { 0xf9b5, "\x4f\x8b" },
- { 0xf9b6, "\x79\xae" },
- { 0xf9b7, "\x91\xb4" },
- { 0xf9b8, "\x96\xb8" },
- { 0xf9b9, "\x60\xe1" },
- { 0xf9ba, "\x4e\x86" },
- { 0xf9bb, "\x50\xda" },
- { 0xf9bc, "\x5b\xee" },
- { 0xf9bd, "\x5c\x3f" },
- { 0xf9be, "\x65\x99" },
- { 0xf9bf, "\x6a\x02" },
- { 0xf9c0, "\x71\xce" },
- { 0xf9c1, "\x76\x42" },
- { 0xf9c2, "\x84\xfc" },
- { 0xf9c3, "\x90\x7c" },
- { 0xf9c4, "\x9f\x8d" },
- { 0xf9c5, "\x66\x88" },
- { 0xf9c6, "\x96\x2e" },
- { 0xf9c7, "\x52\x89" },
- { 0xf9c8, "\x67\x7b" },
- { 0xf9c9, "\x67\xf3" },
- { 0xf9ca, "\x6d\x41" },
- { 0xf9cb, "\x6e\x9c" },
- { 0xf9cc, "\x74\x09" },
- { 0xf9cd, "\x75\x59" },
- { 0xf9ce, "\x78\x6b" },
- { 0xf9cf, "\x7d\x10" },
- { 0xf9d0, "\x98\x5e" },
- { 0xf9d1, "\x51\x6d" },
- { 0xf9d2, "\x62\x2e" },
- { 0xf9d3, "\x96\x78" },
- { 0xf9d4, "\x50\x2b" },
- { 0xf9d5, "\x5d\x19" },
- { 0xf9d6, "\x6d\xea" },
- { 0xf9d7, "\x8f\x2a" },
- { 0xf9d8, "\x5f\x8b" },
- { 0xf9d9, "\x61\x44" },
- { 0xf9da, "\x68\x17" },
- { 0xf9db, "\x73\x87" },
- { 0xf9dc, "\x96\x86" },
- { 0xf9dd, "\x52\x29" },
- { 0xf9de, "\x54\x0f" },
- { 0xf9df, "\x5c\x65" },
- { 0xf9e0, "\x66\x13" },
- { 0xf9e1, "\x67\x4e" },
- { 0xf9e2, "\x68\xa8" },
- { 0xf9e3, "\x6c\xe5" },
- { 0xf9e4, "\x74\x06" },
- { 0xf9e5, "\x75\xe2" },
- { 0xf9e6, "\x7f\x79" },
- { 0xf9e7, "\x88\xcf" },
- { 0xf9e8, "\x88\xe1" },
- { 0xf9e9, "\x91\xcc" },
- { 0xf9ea, "\x96\xe2" },
- { 0xf9eb, "\x53\x3f" },
- { 0xf9ec, "\x6e\xba" },
- { 0xf9ed, "\x54\x1d" },
- { 0xf9ee, "\x71\xd0" },
- { 0xf9ef, "\x74\x98" },
- { 0xf9f0, "\x85\xfa" },
- { 0xf9f1, "\x96\xa3" },
- { 0xf9f2, "\x9c\x57" },
- { 0xf9f3, "\x9e\x9f" },
- { 0xf9f4, "\x67\x97" },
- { 0xf9f5, "\x6d\xcb" },
- { 0xf9f6, "\x81\xe8" },
- { 0xf9f7, "\x7a\xcb" },
- { 0xf9f8, "\x7b\x20" },
- { 0xf9f9, "\x7c\x92" },
- { 0xf9fa, "\x72\xc0" },
- { 0xf9fb, "\x70\x99" },
- { 0xf9fc, "\x8b\x58" },
- { 0xf9fd, "\x4e\xc0" },
- { 0xf9fe, "\x83\x36" },
- { 0xf9ff, "\x52\x3a" },
- { 0xfa00, "\x52\x07" },
- { 0xfa01, "\x5e\xa6" },
- { 0xfa02, "\x62\xd3" },
- { 0xfa03, "\x7c\xd6" },
- { 0xfa04, "\x5b\x85" },
- { 0xfa05, "\x6d\x1e" },
- { 0xfa06, "\x66\xb4" },
- { 0xfa07, "\x8f\x3b" },
- { 0xfa08, "\x88\x4c" },
- { 0xfa09, "\x96\x4d" },
- { 0xfa0a, "\x89\x8b" },
- { 0xfa0b, "\x5e\xd3" },
- { 0xfa0c, "\x51\x40" },
- { 0xfa0d, "\x55\xc0" },
- { 0xfa10, "\x58\x5a" },
- { 0xfa12, "\x66\x74" },
- { 0xfa15, "\x51\xde" },
- { 0xfa16, "\x73\x2a" },
- { 0xfa17, "\x76\xca" },
- { 0xfa18, "\x79\x3c" },
- { 0xfa19, "\x79\x5e" },
- { 0xfa1a, "\x79\x65" },
- { 0xfa1b, "\x79\x8f" },
- { 0xfa1c, "\x97\x56" },
- { 0xfa1d, "\x7c\xbe" },
- { 0xfa1e, "\x7f\xbd" },
- { 0xfa20, "\x86\x12" },
- { 0xfa22, "\x8a\xf8" },
- { 0xfa25, "\x90\x38" },
- { 0xfa26, "\x90\xfd" },
- { 0xfa2a, "\x98\xef" },
- { 0xfa2b, "\x98\xfc" },
- { 0xfa2c, "\x99\x28" },
- { 0xfa2d, "\x9d\xb4" },
- { 0xfb1f, "\x05\xf2\x05\xb7" },
- { 0xfb2a, "\x05\xe9\x05\xc1" },
- { 0xfb2b, "\x05\xe9\x05\xc2" },
- { 0xfb2c, "\xfb\x49\x05\xc1" },
- { 0xfb2d, "\xfb\x49\x05\xc2" },
- { 0xfb2e, "\x05\xd0\x05\xb7" },
- { 0xfb2f, "\x05\xd0\x05\xb8" },
- { 0xfb30, "\x05\xd0\x05\xbc" },
- { 0xfb31, "\x05\xd1\x05\xbc" },
- { 0xfb32, "\x05\xd2\x05\xbc" },
- { 0xfb33, "\x05\xd3\x05\xbc" },
- { 0xfb34, "\x05\xd4\x05\xbc" },
- { 0xfb35, "\x05\xd5\x05\xbc" },
- { 0xfb36, "\x05\xd6\x05\xbc" },
- { 0xfb38, "\x05\xd8\x05\xbc" },
- { 0xfb39, "\x05\xd9\x05\xbc" },
- { 0xfb3a, "\x05\xda\x05\xbc" },
- { 0xfb3b, "\x05\xdb\x05\xbc" },
- { 0xfb3c, "\x05\xdc\x05\xbc" },
- { 0xfb3e, "\x05\xde\x05\xbc" },
- { 0xfb40, "\x05\xe0\x05\xbc" },
- { 0xfb41, "\x05\xe1\x05\xbc" },
- { 0xfb43, "\x05\xe3\x05\xbc" },
- { 0xfb44, "\x05\xe4\x05\xbc" },
- { 0xfb46, "\x05\xe6\x05\xbc" },
- { 0xfb47, "\x05\xe7\x05\xbc" },
- { 0xfb48, "\x05\xe8\x05\xbc" },
- { 0xfb49, "\x05\xe9\x05\xbc" },
- { 0xfb4a, "\x05\xea\x05\xbc" },
- { 0xfb4b, "\x05\xd5\x05\xb9" },
- { 0xfb4c, "\x05\xd1\x05\xbf" },
- { 0xfb4d, "\x05\xdb\x05\xbf" },
- { 0xfb4e, "\x05\xe4\x05\xbf" }
-};
-
-static const decomp_entry full_decomposition[] =
-{
- { 0x005e, "\x00\x20\x03\x02" },
- { 0x005f, "\x00\x20\x03\x32" },
- { 0x0060, "\x00\x20\x03\x00" },
- { 0x00a0, "\x00\x20" },
- { 0x00a8, "\x00\x20\x03\x08" },
- { 0x00aa, "\x00\x61" },
- { 0x00af, "\x00\x20\x03\x04" },
- { 0x00b2, "\x00\x32" },
- { 0x00b3, "\x00\x33" },
- { 0x00b4, "\x00\x20\x03\x01" },
- { 0x00b5, "\x03\xbc" },
- { 0x00b8, "\x00\x20\x03\x27" },
- { 0x00b9, "\x00\x31" },
- { 0x00ba, "\x00\x6f" },
- { 0x00bc, "\x00\x31\x20\x44\x00\x34" },
- { 0x00bd, "\x00\x31\x20\x44\x00\x32" },
- { 0x00be, "\x00\x33\x20\x44\x00\x34" },
- { 0x0132, "\x00\x49\x00\x4a" },
- { 0x0133, "\x00\x69\x00\x6a" },
- { 0x013f, "\x00\x4c\x00\xb7" },
- { 0x0140, "\x00\x6c\x00\xb7" },
- { 0x0149, "\x02\xbc\x00\x6e" },
- { 0x017f, "\x00\x73" },
- { 0x01c4, "\x00\x44\x01\x7d" },
- { 0x01c5, "\x00\x44\x01\x7e" },
- { 0x01c6, "\x00\x64\x01\x7e" },
- { 0x01c7, "\x00\x4c\x00\x4a" },
- { 0x01c8, "\x00\x4c\x00\x6a" },
- { 0x01c9, "\x00\x6c\x00\x6a" },
- { 0x01ca, "\x00\x4e\x00\x4a" },
- { 0x01cb, "\x00\x4e\x00\x6a" },
- { 0x01cc, "\x00\x6e\x00\x6a" },
- { 0x01f1, "\x00\x44\x00\x5a" },
- { 0x01f2, "\x00\x44\x00\x7a" },
- { 0x01f3, "\x00\x64\x00\x7a" },
- { 0x02b0, "\x00\x68" },
- { 0x02b1, "\x02\x66" },
- { 0x02b2, "\x00\x6a" },
- { 0x02b3, "\x00\x72" },
- { 0x02b4, "\x02\x79" },
- { 0x02b5, "\x02\x7b" },
- { 0x02b6, "\x02\x81" },
- { 0x02b7, "\x00\x77" },
- { 0x02b8, "\x00\x79" },
- { 0x02d8, "\x00\x20\x03\x06" },
- { 0x02d9, "\x00\x20\x03\x07" },
- { 0x02da, "\x00\x20\x03\x0a" },
- { 0x02db, "\x00\x20\x03\x28" },
- { 0x02dc, "\x00\x20\x03\x03" },
- { 0x02dd, "\x00\x20\x03\x0b" },
- { 0x02e0, "\x02\x63" },
- { 0x02e1, "\x00\x6c" },
- { 0x02e2, "\x00\x73" },
- { 0x02e3, "\x00\x78" },
- { 0x02e4, "\x02\x95" },
- { 0x037a, "\x00\x20\x03\x45" },
- { 0x0384, "\x00\x20\x03\x01" },
- { 0x0587, "\x05\x65\x05\x82" },
- { 0x0edc, "\x0e\xab\x0e\x99" },
- { 0x0edd, "\x0e\xab\x0e\xa1" },
- { 0x1101, "\x11\x00\x11\x00" },
- { 0x1104, "\x11\x03\x11\x03" },
- { 0x1108, "\x11\x07\x11\x07" },
- { 0x110a, "\x11\x09\x11\x09" },
- { 0x110d, "\x11\x0c\x11\x0c" },
- { 0x1113, "\x11\x02\x11\x00" },
- { 0x1114, "\x11\x02\x11\x02" },
- { 0x1115, "\x11\x02\x11\x03" },
- { 0x1116, "\x11\x02\x11\x07" },
- { 0x1117, "\x11\x03\x11\x00" },
- { 0x1118, "\x11\x05\x11\x02" },
- { 0x1119, "\x11\x05\x11\x05" },
- { 0x111a, "\x11\x05\x11\x12" },
- { 0x111b, "\x11\x05\x11\x0b" },
- { 0x111c, "\x11\x06\x11\x07" },
- { 0x111d, "\x11\x06\x11\x0b" },
- { 0x111e, "\x11\x07\x11\x00" },
- { 0x111f, "\x11\x07\x11\x02" },
- { 0x1120, "\x11\x07\x11\x03" },
- { 0x1121, "\x11\x07\x11\x09" },
- { 0x1122, "\x11\x07\x11\x09\x11\x00" },
- { 0x1123, "\x11\x07\x11\x09\x11\x03" },
- { 0x1124, "\x11\x07\x11\x09\x11\x07" },
- { 0x1125, "\x11\x07\x11\x09\x11\x09" },
- { 0x1126, "\x11\x07\x11\x09\x11\x0c" },
- { 0x1127, "\x11\x07\x11\x0c" },
- { 0x1128, "\x11\x07\x11\x0e" },
- { 0x1129, "\x11\x07\x11\x10" },
- { 0x112a, "\x11\x07\x11\x11" },
- { 0x112b, "\x11\x07\x11\x0b" },
- { 0x112c, "\x11\x07\x11\x07\x11\x0b" },
- { 0x112d, "\x11\x09\x11\x00" },
- { 0x112e, "\x11\x09\x11\x02" },
- { 0x112f, "\x11\x09\x11\x03" },
- { 0x1130, "\x11\x09\x11\x05" },
- { 0x1131, "\x11\x09\x11\x06" },
- { 0x1132, "\x11\x09\x11\x07" },
- { 0x1133, "\x11\x09\x11\x07\x11\x00" },
- { 0x1134, "\x11\x09\x11\x09\x11\x09" },
- { 0x1135, "\x11\x09\x11\x0b" },
- { 0x1136, "\x11\x09\x11\x0c" },
- { 0x1137, "\x11\x09\x11\x0e" },
- { 0x1138, "\x11\x09\x11\x0f" },
- { 0x1139, "\x11\x09\x11\x10" },
- { 0x113a, "\x11\x09\x11\x11" },
- { 0x113b, "\x11\x09\x11\x12" },
- { 0x113d, "\x11\x3c\x11\x3c" },
- { 0x113f, "\x11\x3e\x11\x3e" },
- { 0x1141, "\x11\x0b\x11\x00" },
- { 0x1142, "\x11\x0b\x11\x03" },
- { 0x1143, "\x11\x0b\x11\x06" },
- { 0x1144, "\x11\x0b\x11\x07" },
- { 0x1145, "\x11\x0b\x11\x09" },
- { 0x1146, "\x11\x0b\x11\x40" },
- { 0x1147, "\x11\x0b\x11\x0b" },
- { 0x1148, "\x11\x0b\x11\x0c" },
- { 0x1149, "\x11\x0b\x11\x0e" },
- { 0x114a, "\x11\x0b\x11\x10" },
- { 0x114b, "\x11\x0b\x11\x11" },
- { 0x114d, "\x11\x0c\x11\x0b" },
- { 0x114f, "\x11\x4e\x11\x4e" },
- { 0x1151, "\x11\x50\x11\x50" },
- { 0x1152, "\x11\x0e\x11\x0f" },
- { 0x1153, "\x11\x0e\x11\x12" },
- { 0x1156, "\x11\x11\x11\x07" },
- { 0x1157, "\x11\x11\x11\x0b" },
- { 0x1158, "\x11\x12\x11\x12" },
- { 0x1162, "\x11\x61\x11\x75" },
- { 0x1164, "\x11\x63\x11\x75" },
- { 0x1166, "\x11\x65\x11\x75" },
- { 0x1168, "\x11\x67\x11\x75" },
- { 0x116a, "\x11\x69\x11\x61" },
- { 0x116b, "\x11\x69\x11\x61\x11\x75" },
- { 0x116c, "\x11\x69\x11\x75" },
- { 0x116f, "\x11\x6e\x11\x65" },
- { 0x1170, "\x11\x6e\x11\x65\x11\x75" },
- { 0x1171, "\x11\x6e\x11\x75" },
- { 0x1174, "\x11\x73\x11\x75" },
- { 0x1176, "\x11\x61\x11\x69" },
- { 0x1177, "\x11\x61\x11\x6e" },
- { 0x1178, "\x11\x63\x11\x69" },
- { 0x1179, "\x11\x63\x11\x6d" },
- { 0x117a, "\x11\x65\x11\x69" },
- { 0x117b, "\x11\x65\x11\x6e" },
- { 0x117c, "\x11\x65\x11\x73" },
- { 0x117d, "\x11\x67\x11\x69" },
- { 0x117e, "\x11\x67\x11\x6e" },
- { 0x117f, "\x11\x69\x11\x65" },
- { 0x1180, "\x11\x69\x11\x66" },
- { 0x1181, "\x11\x69\x11\x68" },
- { 0x1182, "\x11\x69\x11\x69" },
- { 0x1183, "\x11\x69\x11\x6e" },
- { 0x1184, "\x11\x6d\x11\x63" },
- { 0x1185, "\x11\x6d\x11\x64" },
- { 0x1186, "\x11\x6d\x11\x67" },
- { 0x1187, "\x11\x6d\x11\x69" },
- { 0x1188, "\x11\x6d\x11\x75" },
- { 0x1189, "\x11\x6e\x11\x61" },
- { 0x118a, "\x11\x6e\x11\x62" },
- { 0x118b, "\x11\x6e\x11\x65\x11\x73" },
- { 0x118c, "\x11\x6e\x11\x68" },
- { 0x118d, "\x11\x6e\x11\x6e" },
- { 0x118e, "\x11\x72\x11\x61" },
- { 0x118f, "\x11\x72\x11\x65" },
- { 0x1190, "\x11\x72\x11\x66" },
- { 0x1191, "\x11\x72\x11\x67" },
- { 0x1192, "\x11\x72\x11\x68" },
- { 0x1193, "\x11\x72\x11\x6e" },
- { 0x1194, "\x11\x72\x11\x75" },
- { 0x1195, "\x11\x73\x11\x6e" },
- { 0x1196, "\x11\x73\x11\x73" },
- { 0x1197, "\x11\x74\x11\x6e" },
- { 0x1198, "\x11\x75\x11\x61" },
- { 0x1199, "\x11\x75\x11\x63" },
- { 0x119a, "\x11\x75\x11\x69" },
- { 0x119b, "\x11\x75\x11\x6e" },
- { 0x119c, "\x11\x75\x11\x73" },
- { 0x119d, "\x11\x75\x11\x9e" },
- { 0x119f, "\x11\x9e\x11\x65" },
- { 0x11a0, "\x11\x9e\x11\x6e" },
- { 0x11a1, "\x11\x9e\x11\x75" },
- { 0x11a2, "\x11\x9e\x11\x9e" },
- { 0x11a9, "\x11\xa8\x11\xa8" },
- { 0x11aa, "\x11\xa8\x11\xba" },
- { 0x11ac, "\x11\xab\x11\xbd" },
- { 0x11ad, "\x11\xab\x11\xc2" },
- { 0x11b0, "\x11\xaf\x11\xa8" },
- { 0x11b1, "\x11\xaf\x11\xb7" },
- { 0x11b2, "\x11\xaf\x11\xb8" },
- { 0x11b3, "\x11\xaf\x11\xba" },
- { 0x11b4, "\x11\xaf\x11\xc0" },
- { 0x11b5, "\x11\xaf\x11\xc1" },
- { 0x11b6, "\x11\xaf\x11\xc2" },
- { 0x11b9, "\x11\xb8\x11\xba" },
- { 0x11bb, "\x11\xba\x11\xba" },
- { 0x11c3, "\x11\xa8\x11\xaf" },
- { 0x11c4, "\x11\xa8\x11\xba\x11\xa8" },
- { 0x11c5, "\x11\xab\x11\xa8" },
- { 0x11c6, "\x11\xab\x11\xae" },
- { 0x11c7, "\x11\xab\x11\xba" },
- { 0x11c8, "\x11\xab\x11\xeb" },
- { 0x11c9, "\x11\xab\x11\xc0" },
- { 0x11ca, "\x11\xae\x11\xa8" },
- { 0x11cb, "\x11\xae\x11\xaf" },
- { 0x11cc, "\x11\xaf\x11\xa8\x11\xba" },
- { 0x11cd, "\x11\xaf\x11\xab" },
- { 0x11ce, "\x11\xaf\x11\xae" },
- { 0x11cf, "\x11\xaf\x11\xae\x11\xc2" },
- { 0x11d0, "\x11\xaf\x11\xaf" },
- { 0x11d1, "\x11\xaf\x11\xb7\x11\xa8" },
- { 0x11d2, "\x11\xaf\x11\xb7\x11\xba" },
- { 0x11d3, "\x11\xaf\x11\xb8\x11\xba" },
- { 0x11d4, "\x11\xaf\x11\xb8\x11\xc2" },
- { 0x11d5, "\x11\xaf\x11\xb8\x11\xbc" },
- { 0x11d6, "\x11\xaf\x11\xba\x11\xba" },
- { 0x11d7, "\x11\xaf\x11\xeb" },
- { 0x11d8, "\x11\xaf\x11\xbf" },
- { 0x11d9, "\x11\xaf\x11\xf9" },
- { 0x11da, "\x11\xb7\x11\xa8" },
- { 0x11db, "\x11\xb7\x11\xaf" },
- { 0x11dc, "\x11\xb7\x11\xb8" },
- { 0x11dd, "\x11\xb7\x11\xba" },
- { 0x11de, "\x11\xb7\x11\xba\x11\xba" },
- { 0x11df, "\x11\xb7\x11\xeb" },
- { 0x11e0, "\x11\xb7\x11\xbe" },
- { 0x11e1, "\x11\xb7\x11\xc2" },
- { 0x11e2, "\x11\xb7\x11\xbc" },
- { 0x11e3, "\x11\xb8\x11\xaf" },
- { 0x11e4, "\x11\xb8\x11\xc1" },
- { 0x11e5, "\x11\xb8\x11\xc2" },
- { 0x11e6, "\x11\xb8\x11\xbc" },
- { 0x11e7, "\x11\xba\x11\xa8" },
- { 0x11e8, "\x11\xba\x11\xae" },
- { 0x11e9, "\x11\xba\x11\xaf" },
- { 0x11ea, "\x11\xba\x11\xb8" },
- { 0x11ec, "\x11\xbc\x11\xa8" },
- { 0x11ed, "\x11\xbc\x11\xa8\x11\xa8" },
- { 0x11ee, "\x11\xbc\x11\xbc" },
- { 0x11ef, "\x11\xbc\x11\xbf" },
- { 0x11f1, "\x11\xf0\x11\xba" },
- { 0x11f2, "\x11\xf0\x11\xeb" },
- { 0x11f3, "\x11\xc1\x11\xb8" },
- { 0x11f4, "\x11\xc1\x11\xbc" },
- { 0x11f5, "\x11\xc2\x11\xab" },
- { 0x11f6, "\x11\xc2\x11\xaf" },
- { 0x11f7, "\x11\xc2\x11\xb7" },
- { 0x11f8, "\x11\xc2\x11\xb8" },
- { 0x1e9a, "\x00\x61\x02\xbe" },
- { 0x1fbd, "\x00\x20\x03\x13" },
- { 0x1fbf, "\x00\x20\x03\x13" },
- { 0x1fc0, "\x00\x20\x03\x42" },
- { 0x1ffe, "\x00\x20\x03\x14" },
- { 0x2002, "\x00\x20" },
- { 0x2003, "\x00\x20" },
- { 0x2004, "\x00\x20" },
- { 0x2005, "\x00\x20" },
- { 0x2006, "\x00\x20" },
- { 0x2007, "\x00\x20" },
- { 0x2008, "\x00\x20" },
- { 0x2009, "\x00\x20" },
- { 0x200a, "\x00\x20" },
- { 0x2011, "\x20\x10" },
- { 0x2017, "\x00\x20\x03\x33" },
- { 0x2024, "\x00\x2e" },
- { 0x2025, "\x00\x2e\x00\x2e" },
- { 0x2026, "\x00\x2e\x00\x2e\x00\x2e" },
- { 0x2033, "\x20\x32\x20\x32" },
- { 0x2034, "\x20\x32\x20\x32\x20\x32" },
- { 0x2036, "\x20\x35\x20\x35" },
- { 0x2037, "\x20\x35\x20\x35\x20\x35" },
- { 0x203c, "\x00\x21\x00\x21" },
- { 0x203e, "\x00\x20\x03\x05" },
- { 0x2070, "\x00\x30" },
- { 0x2074, "\x00\x34" },
- { 0x2075, "\x00\x35" },
- { 0x2076, "\x00\x36" },
- { 0x2077, "\x00\x37" },
- { 0x2078, "\x00\x38" },
- { 0x2079, "\x00\x39" },
- { 0x207a, "\x00\x2b" },
- { 0x207b, "\x22\x12" },
- { 0x207c, "\x00\x3d" },
- { 0x207d, "\x00\x28" },
- { 0x207e, "\x00\x29" },
- { 0x207f, "\x00\x6e" },
- { 0x2080, "\x00\x30" },
- { 0x2081, "\x00\x31" },
- { 0x2082, "\x00\x32" },
- { 0x2083, "\x00\x33" },
- { 0x2084, "\x00\x34" },
- { 0x2085, "\x00\x35" },
- { 0x2086, "\x00\x36" },
- { 0x2087, "\x00\x37" },
- { 0x2088, "\x00\x38" },
- { 0x2089, "\x00\x39" },
- { 0x208a, "\x00\x2b" },
- { 0x208b, "\x22\x12" },
- { 0x208c, "\x00\x3d" },
- { 0x208d, "\x00\x28" },
- { 0x208e, "\x00\x29" },
- { 0x20a8, "\x00\x52\x00\x73" },
- { 0x2100, "\x00\x61\x00\x2f\x00\x63" },
- { 0x2101, "\x00\x61\x00\x2f\x00\x73" },
- { 0x2102, "\x00\x43" },
- { 0x2103, "\x00\xb0\x00\x43" },
- { 0x2105, "\x00\x63\x00\x2f\x00\x6f" },
- { 0x2106, "\x00\x63\x00\x2f\x00\x75" },
- { 0x2107, "\x01\x90" },
- { 0x2109, "\x00\xb0\x00\x46" },
- { 0x210a, "\x00\x67" },
- { 0x210b, "\x00\x48" },
- { 0x210c, "\x00\x48" },
- { 0x210d, "\x00\x48" },
- { 0x210e, "\x00\x68" },
- { 0x210f, "\x01\x27" },
- { 0x2110, "\x00\x49" },
- { 0x2111, "\x00\x49" },
- { 0x2112, "\x00\x4c" },
- { 0x2113, "\x00\x6c" },
- { 0x2115, "\x00\x4e" },
- { 0x2116, "\x00\x4e\x00\x6f" },
- { 0x2119, "\x00\x50" },
- { 0x211a, "\x00\x51" },
- { 0x211b, "\x00\x52" },
- { 0x211c, "\x00\x52" },
- { 0x211d, "\x00\x52" },
- { 0x2120, "\x00\x53\x00\x4d" },
- { 0x2121, "\x00\x54\x00\x45\x00\x4c" },
- { 0x2122, "\x00\x54\x00\x4d" },
- { 0x2124, "\x00\x5a" },
- { 0x2128, "\x00\x5a" },
- { 0x212c, "\x00\x42" },
- { 0x212d, "\x00\x43" },
- { 0x212f, "\x00\x65" },
- { 0x2130, "\x00\x45" },
- { 0x2131, "\x00\x46" },
- { 0x2133, "\x00\x4d" },
- { 0x2134, "\x00\x6f" },
- { 0x2135, "\x05\xd0" },
- { 0x2136, "\x05\xd1" },
- { 0x2137, "\x05\xd2" },
- { 0x2138, "\x05\xd3" },
- { 0x2153, "\x00\x31\x20\x44\x00\x33" },
- { 0x2154, "\x00\x32\x20\x44\x00\x33" },
- { 0x2155, "\x00\x31\x20\x44\x00\x35" },
- { 0x2156, "\x00\x32\x20\x44\x00\x35" },
- { 0x2157, "\x00\x33\x20\x44\x00\x35" },
- { 0x2158, "\x00\x34\x20\x44\x00\x35" },
- { 0x2159, "\x00\x31\x20\x44\x00\x36" },
- { 0x215a, "\x00\x35\x20\x44\x00\x36" },
- { 0x215b, "\x00\x31\x20\x44\x00\x38" },
- { 0x215c, "\x00\x33\x20\x44\x00\x38" },
- { 0x215d, "\x00\x35\x20\x44\x00\x38" },
- { 0x215e, "\x00\x37\x20\x44\x00\x38" },
- { 0x215f, "\x00\x31\x20\x44" },
- { 0x2160, "\x00\x49" },
- { 0x2161, "\x00\x49\x00\x49" },
- { 0x2162, "\x00\x49\x00\x49\x00\x49" },
- { 0x2163, "\x00\x49\x00\x56" },
- { 0x2164, "\x00\x56" },
- { 0x2165, "\x00\x56\x00\x49" },
- { 0x2166, "\x00\x56\x00\x49\x00\x49" },
- { 0x2167, "\x00\x56\x00\x49\x00\x49\x00\x49" },
- { 0x2168, "\x00\x49\x00\x58" },
- { 0x2169, "\x00\x58" },
- { 0x216a, "\x00\x58\x00\x49" },
- { 0x216b, "\x00\x58\x00\x49\x00\x49" },
- { 0x216c, "\x00\x4c" },
- { 0x216d, "\x00\x43" },
- { 0x216e, "\x00\x44" },
- { 0x216f, "\x00\x4d" },
- { 0x2170, "\x00\x69" },
- { 0x2171, "\x00\x69\x00\x69" },
- { 0x2172, "\x00\x69\x00\x69\x00\x69" },
- { 0x2173, "\x00\x69\x00\x76" },
- { 0x2174, "\x00\x76" },
- { 0x2175, "\x00\x76\x00\x69" },
- { 0x2176, "\x00\x76\x00\x69\x00\x69" },
- { 0x2177, "\x00\x76\x00\x69\x00\x69\x00\x69" },
- { 0x2178, "\x00\x69\x00\x78" },
- { 0x2179, "\x00\x78" },
- { 0x217a, "\x00\x78\x00\x69" },
- { 0x217b, "\x00\x78\x00\x69\x00\x69" },
- { 0x217c, "\x00\x6c" },
- { 0x217d, "\x00\x63" },
- { 0x217e, "\x00\x64" },
- { 0x217f, "\x00\x6d" },
- { 0x222c, "\x22\x2b\x22\x2b" },
- { 0x222d, "\x22\x2b\x22\x2b\x22\x2b" },
- { 0x222f, "\x22\x2e\x22\x2e" },
- { 0x2230, "\x22\x2e\x22\x2e\x22\x2e" },
- { 0x2460, "\x00\x31" },
- { 0x2461, "\x00\x32" },
- { 0x2462, "\x00\x33" },
- { 0x2463, "\x00\x34" },
- { 0x2464, "\x00\x35" },
- { 0x2465, "\x00\x36" },
- { 0x2466, "\x00\x37" },
- { 0x2467, "\x00\x38" },
- { 0x2468, "\x00\x39" },
- { 0x2469, "\x00\x31\x00\x30" },
- { 0x246a, "\x00\x31\x00\x31" },
- { 0x246b, "\x00\x31\x00\x32" },
- { 0x246c, "\x00\x31\x00\x33" },
- { 0x246d, "\x00\x31\x00\x34" },
- { 0x246e, "\x00\x31\x00\x35" },
- { 0x246f, "\x00\x31\x00\x36" },
- { 0x2470, "\x00\x31\x00\x37" },
- { 0x2471, "\x00\x31\x00\x38" },
- { 0x2472, "\x00\x31\x00\x39" },
- { 0x2473, "\x00\x32\x00\x30" },
- { 0x2474, "\x00\x28\x00\x31\x00\x29" },
- { 0x2475, "\x00\x28\x00\x32\x00\x29" },
- { 0x2476, "\x00\x28\x00\x33\x00\x29" },
- { 0x2477, "\x00\x28\x00\x34\x00\x29" },
- { 0x2478, "\x00\x28\x00\x35\x00\x29" },
- { 0x2479, "\x00\x28\x00\x36\x00\x29" },
- { 0x247a, "\x00\x28\x00\x37\x00\x29" },
- { 0x247b, "\x00\x28\x00\x38\x00\x29" },
- { 0x247c, "\x00\x28\x00\x39\x00\x29" },
- { 0x247d, "\x00\x28\x00\x31\x00\x30\x00\x29" },
- { 0x247e, "\x00\x28\x00\x31\x00\x31\x00\x29" },
- { 0x247f, "\x00\x28\x00\x31\x00\x32\x00\x29" },
- { 0x2480, "\x00\x28\x00\x31\x00\x33\x00\x29" },
- { 0x2481, "\x00\x28\x00\x31\x00\x34\x00\x29" },
- { 0x2482, "\x00\x28\x00\x31\x00\x35\x00\x29" },
- { 0x2483, "\x00\x28\x00\x31\x00\x36\x00\x29" },
- { 0x2484, "\x00\x28\x00\x31\x00\x37\x00\x29" },
- { 0x2485, "\x00\x28\x00\x31\x00\x38\x00\x29" },
- { 0x2486, "\x00\x28\x00\x31\x00\x39\x00\x29" },
- { 0x2487, "\x00\x28\x00\x32\x00\x30\x00\x29" },
- { 0x2488, "\x00\x31\x00\x2e" },
- { 0x2489, "\x00\x32\x00\x2e" },
- { 0x248a, "\x00\x33\x00\x2e" },
- { 0x248b, "\x00\x34\x00\x2e" },
- { 0x248c, "\x00\x35\x00\x2e" },
- { 0x248d, "\x00\x36\x00\x2e" },
- { 0x248e, "\x00\x37\x00\x2e" },
- { 0x248f, "\x00\x38\x00\x2e" },
- { 0x2490, "\x00\x39\x00\x2e" },
- { 0x2491, "\x00\x31\x00\x30\x00\x2e" },
- { 0x2492, "\x00\x31\x00\x31\x00\x2e" },
- { 0x2493, "\x00\x31\x00\x32\x00\x2e" },
- { 0x2494, "\x00\x31\x00\x33\x00\x2e" },
- { 0x2495, "\x00\x31\x00\x34\x00\x2e" },
- { 0x2496, "\x00\x31\x00\x35\x00\x2e" },
- { 0x2497, "\x00\x31\x00\x36\x00\x2e" },
- { 0x2498, "\x00\x31\x00\x37\x00\x2e" },
- { 0x2499, "\x00\x31\x00\x38\x00\x2e" },
- { 0x249a, "\x00\x31\x00\x39\x00\x2e" },
- { 0x249b, "\x00\x32\x00\x30\x00\x2e" },
- { 0x249c, "\x00\x28\x00\x61\x00\x29" },
- { 0x249d, "\x00\x28\x00\x62\x00\x29" },
- { 0x249e, "\x00\x28\x00\x63\x00\x29" },
- { 0x249f, "\x00\x28\x00\x64\x00\x29" },
- { 0x24a0, "\x00\x28\x00\x65\x00\x29" },
- { 0x24a1, "\x00\x28\x00\x66\x00\x29" },
- { 0x24a2, "\x00\x28\x00\x67\x00\x29" },
- { 0x24a3, "\x00\x28\x00\x68\x00\x29" },
- { 0x24a4, "\x00\x28\x00\x69\x00\x29" },
- { 0x24a5, "\x00\x28\x00\x6a\x00\x29" },
- { 0x24a6, "\x00\x28\x00\x6b\x00\x29" },
- { 0x24a7, "\x00\x28\x00\x6c\x00\x29" },
- { 0x24a8, "\x00\x28\x00\x6d\x00\x29" },
- { 0x24a9, "\x00\x28\x00\x6e\x00\x29" },
- { 0x24aa, "\x00\x28\x00\x6f\x00\x29" },
- { 0x24ab, "\x00\x28\x00\x70\x00\x29" },
- { 0x24ac, "\x00\x28\x00\x71\x00\x29" },
- { 0x24ad, "\x00\x28\x00\x72\x00\x29" },
- { 0x24ae, "\x00\x28\x00\x73\x00\x29" },
- { 0x24af, "\x00\x28\x00\x74\x00\x29" },
- { 0x24b0, "\x00\x28\x00\x75\x00\x29" },
- { 0x24b1, "\x00\x28\x00\x76\x00\x29" },
- { 0x24b2, "\x00\x28\x00\x77\x00\x29" },
- { 0x24b3, "\x00\x28\x00\x78\x00\x29" },
- { 0x24b4, "\x00\x28\x00\x79\x00\x29" },
- { 0x24b5, "\x00\x28\x00\x7a\x00\x29" },
- { 0x24b6, "\x00\x41" },
- { 0x24b7, "\x00\x42" },
- { 0x24b8, "\x00\x43" },
- { 0x24b9, "\x00\x44" },
- { 0x24ba, "\x00\x45" },
- { 0x24bb, "\x00\x46" },
- { 0x24bc, "\x00\x47" },
- { 0x24bd, "\x00\x48" },
- { 0x24be, "\x00\x49" },
- { 0x24bf, "\x00\x4a" },
- { 0x24c0, "\x00\x4b" },
- { 0x24c1, "\x00\x4c" },
- { 0x24c2, "\x00\x4d" },
- { 0x24c3, "\x00\x4e" },
- { 0x24c4, "\x00\x4f" },
- { 0x24c5, "\x00\x50" },
- { 0x24c6, "\x00\x51" },
- { 0x24c7, "\x00\x52" },
- { 0x24c8, "\x00\x53" },
- { 0x24c9, "\x00\x54" },
- { 0x24ca, "\x00\x55" },
- { 0x24cb, "\x00\x56" },
- { 0x24cc, "\x00\x57" },
- { 0x24cd, "\x00\x58" },
- { 0x24ce, "\x00\x59" },
- { 0x24cf, "\x00\x5a" },
- { 0x24d0, "\x00\x61" },
- { 0x24d1, "\x00\x62" },
- { 0x24d2, "\x00\x63" },
- { 0x24d3, "\x00\x64" },
- { 0x24d4, "\x00\x65" },
- { 0x24d5, "\x00\x66" },
- { 0x24d6, "\x00\x67" },
- { 0x24d7, "\x00\x68" },
- { 0x24d8, "\x00\x69" },
- { 0x24d9, "\x00\x6a" },
- { 0x24da, "\x00\x6b" },
- { 0x24db, "\x00\x6c" },
- { 0x24dc, "\x00\x6d" },
- { 0x24dd, "\x00\x6e" },
- { 0x24de, "\x00\x6f" },
- { 0x24df, "\x00\x70" },
- { 0x24e0, "\x00\x71" },
- { 0x24e1, "\x00\x72" },
- { 0x24e2, "\x00\x73" },
- { 0x24e3, "\x00\x74" },
- { 0x24e4, "\x00\x75" },
- { 0x24e5, "\x00\x76" },
- { 0x24e6, "\x00\x77" },
- { 0x24e7, "\x00\x78" },
- { 0x24e8, "\x00\x79" },
- { 0x24e9, "\x00\x7a" },
- { 0x24ea, "\x00\x30" },
- { 0x3000, "\x00\x20" },
- { 0x3036, "\x30\x12" },
- { 0x309b, "\x00\x20\x30\x99" },
- { 0x309c, "\x00\x20\x30\x9a" },
- { 0x3131, "\x11\x00" },
- { 0x3132, "\x11\x01" },
- { 0x3133, "\x11\xaa" },
- { 0x3134, "\x11\x02" },
- { 0x3135, "\x11\xac" },
- { 0x3136, "\x11\xad" },
- { 0x3137, "\x11\x03" },
- { 0x3138, "\x11\x04" },
- { 0x3139, "\x11\x05" },
- { 0x313a, "\x11\xb0" },
- { 0x313b, "\x11\xb1" },
- { 0x313c, "\x11\xb2" },
- { 0x313d, "\x11\xb3" },
- { 0x313e, "\x11\xb4" },
- { 0x313f, "\x11\xb5" },
- { 0x3140, "\x11\x1a" },
- { 0x3141, "\x11\x06" },
- { 0x3142, "\x11\x07" },
- { 0x3143, "\x11\x08" },
- { 0x3144, "\x11\x21" },
- { 0x3145, "\x11\x09" },
- { 0x3146, "\x11\x0a" },
- { 0x3147, "\x11\x0b" },
- { 0x3148, "\x11\x0c" },
- { 0x3149, "\x11\x0d" },
- { 0x314a, "\x11\x0e" },
- { 0x314b, "\x11\x0f" },
- { 0x314c, "\x11\x10" },
- { 0x314d, "\x11\x11" },
- { 0x314e, "\x11\x12" },
- { 0x314f, "\x11\x61" },
- { 0x3150, "\x11\x62" },
- { 0x3151, "\x11\x63" },
- { 0x3152, "\x11\x64" },
- { 0x3153, "\x11\x65" },
- { 0x3154, "\x11\x66" },
- { 0x3155, "\x11\x67" },
- { 0x3156, "\x11\x68" },
- { 0x3157, "\x11\x69" },
- { 0x3158, "\x11\x6a" },
- { 0x3159, "\x11\x6b" },
- { 0x315a, "\x11\x6c" },
- { 0x315b, "\x11\x6d" },
- { 0x315c, "\x11\x6e" },
- { 0x315d, "\x11\x6f" },
- { 0x315e, "\x11\x70" },
- { 0x315f, "\x11\x71" },
- { 0x3160, "\x11\x72" },
- { 0x3161, "\x11\x73" },
- { 0x3162, "\x11\x74" },
- { 0x3163, "\x11\x75" },
- { 0x3164, "\x11\x60" },
- { 0x3165, "\x11\x14" },
- { 0x3166, "\x11\x15" },
- { 0x3167, "\x11\xc7" },
- { 0x3168, "\x11\xc8" },
- { 0x3169, "\x11\xcc" },
- { 0x316a, "\x11\xce" },
- { 0x316b, "\x11\xd3" },
- { 0x316c, "\x11\xd7" },
- { 0x316d, "\x11\xd9" },
- { 0x316e, "\x11\x1c" },
- { 0x316f, "\x11\xdd" },
- { 0x3170, "\x11\xdf" },
- { 0x3171, "\x11\x1d" },
- { 0x3172, "\x11\x1e" },
- { 0x3173, "\x11\x20" },
- { 0x3174, "\x11\x22" },
- { 0x3175, "\x11\x23" },
- { 0x3176, "\x11\x27" },
- { 0x3177, "\x11\x29" },
- { 0x3178, "\x11\x2b" },
- { 0x3179, "\x11\x2c" },
- { 0x317a, "\x11\x2d" },
- { 0x317b, "\x11\x2e" },
- { 0x317c, "\x11\x2f" },
- { 0x317d, "\x11\x32" },
- { 0x317e, "\x11\x36" },
- { 0x317f, "\x11\x40" },
- { 0x3180, "\x11\x47" },
- { 0x3181, "\x11\x4c" },
- { 0x3182, "\x11\xf1" },
- { 0x3183, "\x11\xf2" },
- { 0x3184, "\x11\x57" },
- { 0x3185, "\x11\x58" },
- { 0x3186, "\x11\x59" },
- { 0x3187, "\x11\x84" },
- { 0x3188, "\x11\x85" },
- { 0x3189, "\x11\x88" },
- { 0x318a, "\x11\x91" },
- { 0x318b, "\x11\x92" },
- { 0x318c, "\x11\x94" },
- { 0x318d, "\x11\x9e" },
- { 0x318e, "\x11\xa1" },
- { 0x3192, "\x4e\x00" },
- { 0x3193, "\x4e\x8c" },
- { 0x3194, "\x4e\x09" },
- { 0x3195, "\x56\xdb" },
- { 0x3196, "\x4e\x0a" },
- { 0x3197, "\x4e\x2d" },
- { 0x3198, "\x4e\x0b" },
- { 0x3199, "\x75\x32" },
- { 0x319a, "\x4e\x59" },
- { 0x319b, "\x4e\x19" },
- { 0x319c, "\x4e\x01" },
- { 0x319d, "\x59\x29" },
- { 0x319e, "\x57\x30" },
- { 0x319f, "\x4e\xba" },
- { 0x3200, "\x00\x28\x11\x00\x00\x29" },
- { 0x3201, "\x00\x28\x11\x02\x00\x29" },
- { 0x3202, "\x00\x28\x11\x03\x00\x29" },
- { 0x3203, "\x00\x28\x11\x05\x00\x29" },
- { 0x3204, "\x00\x28\x11\x06\x00\x29" },
- { 0x3205, "\x00\x28\x11\x07\x00\x29" },
- { 0x3206, "\x00\x28\x11\x09\x00\x29" },
- { 0x3207, "\x00\x28\x11\x0b\x00\x29" },
- { 0x3208, "\x00\x28\x11\x0c\x00\x29" },
- { 0x3209, "\x00\x28\x11\x0e\x00\x29" },
- { 0x320a, "\x00\x28\x11\x0f\x00\x29" },
- { 0x320b, "\x00\x28\x11\x10\x00\x29" },
- { 0x320c, "\x00\x28\x11\x11\x00\x29" },
- { 0x320d, "\x00\x28\x11\x12\x00\x29" },
- { 0x320e, "\x00\x28\x11\x00\x11\x61\x00\x29" },
- { 0x320f, "\x00\x28\x11\x02\x11\x61\x00\x29" },
- { 0x3210, "\x00\x28\x11\x03\x11\x61\x00\x29" },
- { 0x3211, "\x00\x28\x11\x05\x11\x61\x00\x29" },
- { 0x3212, "\x00\x28\x11\x06\x11\x61\x00\x29" },
- { 0x3213, "\x00\x28\x11\x07\x11\x61\x00\x29" },
- { 0x3214, "\x00\x28\x11\x09\x11\x61\x00\x29" },
- { 0x3215, "\x00\x28\x11\x0b\x11\x61\x00\x29" },
- { 0x3216, "\x00\x28\x11\x0c\x11\x61\x00\x29" },
- { 0x3217, "\x00\x28\x11\x0e\x11\x61\x00\x29" },
- { 0x3218, "\x00\x28\x11\x0f\x11\x61\x00\x29" },
- { 0x3219, "\x00\x28\x11\x10\x11\x61\x00\x29" },
- { 0x321a, "\x00\x28\x11\x11\x11\x61\x00\x29" },
- { 0x321b, "\x00\x28\x11\x12\x11\x61\x00\x29" },
- { 0x321c, "\x00\x28\x11\x0c\x11\x6e\x00\x29" },
- { 0x3220, "\x00\x28\x4e\x00\x00\x29" },
- { 0x3221, "\x00\x28\x4e\x8c\x00\x29" },
- { 0x3222, "\x00\x28\x4e\x09\x00\x29" },
- { 0x3223, "\x00\x28\x56\xdb\x00\x29" },
- { 0x3224, "\x00\x28\x4e\x94\x00\x29" },
- { 0x3225, "\x00\x28\x51\x6d\x00\x29" },
- { 0x3226, "\x00\x28\x4e\x03\x00\x29" },
- { 0x3227, "\x00\x28\x51\x6b\x00\x29" },
- { 0x3228, "\x00\x28\x4e\x5d\x00\x29" },
- { 0x3229, "\x00\x28\x53\x41\x00\x29" },
- { 0x322a, "\x00\x28\x67\x08\x00\x29" },
- { 0x322b, "\x00\x28\x70\x6b\x00\x29" },
- { 0x322c, "\x00\x28\x6c\x34\x00\x29" },
- { 0x322d, "\x00\x28\x67\x28\x00\x29" },
- { 0x322e, "\x00\x28\x91\xd1\x00\x29" },
- { 0x322f, "\x00\x28\x57\x1f\x00\x29" },
- { 0x3230, "\x00\x28\x65\xe5\x00\x29" },
- { 0x3231, "\x00\x28\x68\x2a\x00\x29" },
- { 0x3232, "\x00\x28\x67\x09\x00\x29" },
- { 0x3233, "\x00\x28\x79\x3e\x00\x29" },
- { 0x3234, "\x00\x28\x54\x0d\x00\x29" },
- { 0x3235, "\x00\x28\x72\x79\x00\x29" },
- { 0x3236, "\x00\x28\x8c\xa1\x00\x29" },
- { 0x3237, "\x00\x28\x79\x5d\x00\x29" },
- { 0x3238, "\x00\x28\x52\xb4\x00\x29" },
- { 0x3239, "\x00\x28\x4e\xe3\x00\x29" },
- { 0x323a, "\x00\x28\x54\x7c\x00\x29" },
- { 0x323b, "\x00\x28\x5b\x66\x00\x29" },
- { 0x323c, "\x00\x28\x76\xe3\x00\x29" },
- { 0x323d, "\x00\x28\x4f\x01\x00\x29" },
- { 0x323e, "\x00\x28\x8c\xc7\x00\x29" },
- { 0x323f, "\x00\x28\x53\x54\x00\x29" },
- { 0x3240, "\x00\x28\x79\x6d\x00\x29" },
- { 0x3241, "\x00\x28\x4f\x11\x00\x29" },
- { 0x3242, "\x00\x28\x81\xea\x00\x29" },
- { 0x3243, "\x00\x28\x81\xf3\x00\x29" },
- { 0x3260, "\x11\x00" },
- { 0x3261, "\x11\x02" },
- { 0x3262, "\x11\x03" },
- { 0x3263, "\x11\x05" },
- { 0x3264, "\x11\x06" },
- { 0x3265, "\x11\x07" },
- { 0x3266, "\x11\x09" },
- { 0x3267, "\x11\x0b" },
- { 0x3268, "\x11\x0c" },
- { 0x3269, "\x11\x0e" },
- { 0x326a, "\x11\x0f" },
- { 0x326b, "\x11\x10" },
- { 0x326c, "\x11\x11" },
- { 0x326d, "\x11\x12" },
- { 0x326e, "\x11\x00\x11\x61" },
- { 0x326f, "\x11\x02\x11\x61" },
- { 0x3270, "\x11\x03\x11\x61" },
- { 0x3271, "\x11\x05\x11\x61" },
- { 0x3272, "\x11\x06\x11\x61" },
- { 0x3273, "\x11\x07\x11\x61" },
- { 0x3274, "\x11\x09\x11\x61" },
- { 0x3275, "\x11\x0b\x11\x61" },
- { 0x3276, "\x11\x0c\x11\x61" },
- { 0x3277, "\x11\x0e\x11\x61" },
- { 0x3278, "\x11\x0f\x11\x61" },
- { 0x3279, "\x11\x10\x11\x61" },
- { 0x327a, "\x11\x11\x11\x61" },
- { 0x327b, "\x11\x12\x11\x61" },
- { 0x3280, "\x4e\x00" },
- { 0x3281, "\x4e\x8c" },
- { 0x3282, "\x4e\x09" },
- { 0x3283, "\x56\xdb" },
- { 0x3284, "\x4e\x94" },
- { 0x3285, "\x51\x6d" },
- { 0x3286, "\x4e\x03" },
- { 0x3287, "\x51\x6b" },
- { 0x3288, "\x4e\x5d" },
- { 0x3289, "\x53\x41" },
- { 0x328a, "\x67\x08" },
- { 0x328b, "\x70\x6b" },
- { 0x328c, "\x6c\x34" },
- { 0x328d, "\x67\x28" },
- { 0x328e, "\x91\xd1" },
- { 0x328f, "\x57\x1f" },
- { 0x3290, "\x65\xe5" },
- { 0x3291, "\x68\x2a" },
- { 0x3292, "\x67\x09" },
- { 0x3293, "\x79\x3e" },
- { 0x3294, "\x54\x0d" },
- { 0x3295, "\x72\x79" },
- { 0x3296, "\x8c\xa1" },
- { 0x3297, "\x79\x5d" },
- { 0x3298, "\x52\xb4" },
- { 0x3299, "\x79\xd8" },
- { 0x329a, "\x75\x37" },
- { 0x329b, "\x59\x73" },
- { 0x329c, "\x90\x69" },
- { 0x329d, "\x51\x2a" },
- { 0x329e, "\x53\x70" },
- { 0x329f, "\x6c\xe8" },
- { 0x32a0, "\x98\x05" },
- { 0x32a1, "\x4f\x11" },
- { 0x32a2, "\x51\x99" },
- { 0x32a3, "\x6b\x63" },
- { 0x32a4, "\x4e\x0a" },
- { 0x32a5, "\x4e\x2d" },
- { 0x32a6, "\x4e\x0b" },
- { 0x32a7, "\x5d\xe6" },
- { 0x32a8, "\x53\xf3" },
- { 0x32a9, "\x53\x3b" },
- { 0x32aa, "\x5b\x97" },
- { 0x32ab, "\x5b\x66" },
- { 0x32ac, "\x76\xe3" },
- { 0x32ad, "\x4f\x01" },
- { 0x32ae, "\x8c\xc7" },
- { 0x32af, "\x53\x54" },
- { 0x32b0, "\x59\x1c" },
- { 0x32c0, "\x00\x31\x67\x08" },
- { 0x32c1, "\x00\x32\x67\x08" },
- { 0x32c2, "\x00\x33\x67\x08" },
- { 0x32c3, "\x00\x34\x67\x08" },
- { 0x32c4, "\x00\x35\x67\x08" },
- { 0x32c5, "\x00\x36\x67\x08" },
- { 0x32c6, "\x00\x37\x67\x08" },
- { 0x32c7, "\x00\x38\x67\x08" },
- { 0x32c8, "\x00\x39\x67\x08" },
- { 0x32c9, "\x00\x31\x00\x30\x67\x08" },
- { 0x32ca, "\x00\x31\x00\x31\x67\x08" },
- { 0x32cb, "\x00\x31\x00\x32\x67\x08" },
- { 0x32d0, "\x30\xa2" },
- { 0x32d1, "\x30\xa4" },
- { 0x32d2, "\x30\xa6" },
- { 0x32d3, "\x30\xa8" },
- { 0x32d4, "\x30\xaa" },
- { 0x32d5, "\x30\xab" },
- { 0x32d6, "\x30\xad" },
- { 0x32d7, "\x30\xaf" },
- { 0x32d8, "\x30\xb1" },
- { 0x32d9, "\x30\xb3" },
- { 0x32da, "\x30\xb5" },
- { 0x32db, "\x30\xb7" },
- { 0x32dc, "\x30\xb9" },
- { 0x32dd, "\x30\xbb" },
- { 0x32de, "\x30\xbd" },
- { 0x32df, "\x30\xbf" },
- { 0x32e0, "\x30\xc1" },
- { 0x32e1, "\x30\xc4" },
- { 0x32e2, "\x30\xc6" },
- { 0x32e3, "\x30\xc8" },
- { 0x32e4, "\x30\xca" },
- { 0x32e5, "\x30\xcb" },
- { 0x32e6, "\x30\xcc" },
- { 0x32e7, "\x30\xcd" },
- { 0x32e8, "\x30\xce" },
- { 0x32e9, "\x30\xcf" },
- { 0x32ea, "\x30\xd2" },
- { 0x32eb, "\x30\xd5" },
- { 0x32ec, "\x30\xd8" },
- { 0x32ed, "\x30\xdb" },
- { 0x32ee, "\x30\xde" },
- { 0x32ef, "\x30\xdf" },
- { 0x32f0, "\x30\xe0" },
- { 0x32f1, "\x30\xe1" },
- { 0x32f2, "\x30\xe2" },
- { 0x32f3, "\x30\xe4" },
- { 0x32f4, "\x30\xe6" },
- { 0x32f5, "\x30\xe8" },
- { 0x32f6, "\x30\xe9" },
- { 0x32f7, "\x30\xea" },
- { 0x32f8, "\x30\xeb" },
- { 0x32f9, "\x30\xec" },
- { 0x32fa, "\x30\xed" },
- { 0x32fb, "\x30\xef" },
- { 0x32fc, "\x30\xf0" },
- { 0x32fd, "\x30\xf1" },
- { 0x32fe, "\x30\xf2" },
- { 0x3300, "\x30\xa2\x30\xd1\x30\xfc\x30\xc8" },
- { 0x3301, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1" },
- { 0x3302, "\x30\xa2\x30\xf3\x30\xda\x30\xa2" },
- { 0x3303, "\x30\xa2\x30\xfc\x30\xeb" },
- { 0x3304, "\x30\xa4\x30\xcb\x30\xf3\x30\xb0" },
- { 0x3305, "\x30\xa4\x30\xf3\x30\xc1" },
- { 0x3306, "\x30\xa6\x30\xa9\x30\xf3" },
- { 0x3307, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc9" },
- { 0x3308, "\x30\xa8\x30\xfc\x30\xab\x30\xfc" },
- { 0x3309, "\x30\xaa\x30\xf3\x30\xb9" },
- { 0x330a, "\x30\xaa\x30\xfc\x30\xe0" },
- { 0x330b, "\x30\xab\x30\xa4\x30\xea" },
- { 0x330c, "\x30\xab\x30\xe9\x30\xc3\x30\xc8" },
- { 0x330d, "\x30\xab\x30\xed\x30\xea\x30\xfc" },
- { 0x330e, "\x30\xac\x30\xed\x30\xf3" },
- { 0x330f, "\x30\xac\x30\xf3\x30\xde" },
- { 0x3310, "\x30\xae\x30\xac" },
- { 0x3311, "\x30\xae\x30\xcb\x30\xfc" },
- { 0x3312, "\x30\xad\x30\xe5\x30\xea\x30\xfc" },
- { 0x3313, "\x30\xae\x30\xeb\x30\xc0\x30\xfc" },
- { 0x3314, "\x30\xad\x30\xed" },
- { 0x3315, "\x30\xad\x30\xed\x30\xb0\x30\xe9\x30\xe0" },
- { 0x3316, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb" },
- { 0x3317, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8" },
- { 0x3318, "\x30\xb0\x30\xe9\x30\xe0" },
- { 0x3319, "\x30\xb0\x30\xe9\x30\xe0\x30\xc8\x30\xf3" },
- { 0x331a, "\x30\xaf\x30\xeb\x30\xbc\x30\xa4\x30\xed" },
- { 0x331b, "\x30\xaf\x30\xed\x30\xfc\x30\xcd" },
- { 0x331c, "\x30\xb1\x30\xfc\x30\xb9" },
- { 0x331d, "\x30\xb3\x30\xeb\x30\xca" },
- { 0x331e, "\x30\xb3\x30\xfc\x30\xdd" },
- { 0x331f, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb" },
- { 0x3320, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0" },
- { 0x3321, "\x30\xb7\x30\xea\x30\xf3\x30\xb0" },
- { 0x3322, "\x30\xbb\x30\xf3\x30\xc1" },
- { 0x3323, "\x30\xbb\x30\xf3\x30\xc8" },
- { 0x3324, "\x30\xc0\x30\xfc\x30\xb9" },
- { 0x3325, "\x30\xc7\x30\xb7" },
- { 0x3326, "\x30\xc9\x30\xeb" },
- { 0x3327, "\x30\xc8\x30\xf3" },
- { 0x3328, "\x30\xca\x30\xce" },
- { 0x3329, "\x30\xce\x30\xc3\x30\xc8" },
- { 0x332a, "\x30\xcf\x30\xa4\x30\xc4" },
- { 0x332b, "\x30\xd1\x30\xfc\x30\xbb\x30\xf3\x30\xc8" },
- { 0x332c, "\x30\xd1\x30\xfc\x30\xc4" },
- { 0x332d, "\x30\xd0\x30\xfc\x30\xec\x30\xeb" },
- { 0x332e, "\x30\xd4\x30\xa2\x30\xb9\x30\xc8\x30\xeb" },
- { 0x332f, "\x30\xd4\x30\xaf\x30\xeb" },
- { 0x3330, "\x30\xd4\x30\xb3" },
- { 0x3331, "\x30\xd3\x30\xeb" },
- { 0x3332, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc9" },
- { 0x3333, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8" },
- { 0x3334, "\x30\xd6\x30\xc3\x30\xb7\x30\xa7\x30\xeb" },
- { 0x3335, "\x30\xd5\x30\xe9\x30\xf3" },
- { 0x3336, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb" },
- { 0x3337, "\x30\xda\x30\xbd" },
- { 0x3338, "\x30\xda\x30\xcb\x30\xd2" },
- { 0x3339, "\x30\xd8\x30\xeb\x30\xc4" },
- { 0x333a, "\x30\xda\x30\xf3\x30\xb9" },
- { 0x333b, "\x30\xda\x30\xfc\x30\xb8" },
- { 0x333c, "\x30\xd9\x30\xfc\x30\xbf" },
- { 0x333d, "\x30\xdd\x30\xa4\x30\xf3\x30\xc8" },
- { 0x333e, "\x30\xdc\x30\xeb\x30\xc8" },
- { 0x333f, "\x30\xdb\x30\xf3" },
- { 0x3340, "\x30\xdd\x30\xf3\x30\xc9" },
- { 0x3341, "\x30\xdb\x30\xfc\x30\xeb" },
- { 0x3342, "\x30\xdb\x30\xfc\x30\xf3" },
- { 0x3343, "\x30\xde\x30\xa4\x30\xaf\x30\xed" },
- { 0x3344, "\x30\xde\x30\xa4\x30\xeb" },
- { 0x3345, "\x30\xde\x30\xc3\x30\xcf" },
- { 0x3346, "\x30\xde\x30\xeb\x30\xaf" },
- { 0x3347, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3" },
- { 0x3348, "\x30\xdf\x30\xaf\x30\xed\x30\xf3" },
- { 0x3349, "\x30\xdf\x30\xea" },
- { 0x334a, "\x30\xdf\x30\xea\x30\xd0\x30\xfc\x30\xeb" },
- { 0x334b, "\x30\xe1\x30\xac" },
- { 0x334c, "\x30\xe1\x30\xac\x30\xc8\x30\xf3" },
- { 0x334d, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb" },
- { 0x334e, "\x30\xe4\x30\xfc\x30\xc9" },
- { 0x334f, "\x30\xe4\x30\xfc\x30\xeb" },
- { 0x3350, "\x30\xe6\x30\xa2\x30\xf3" },
- { 0x3351, "\x30\xea\x30\xc3\x30\xc8\x30\xeb" },
- { 0x3352, "\x30\xea\x30\xe9" },
- { 0x3353, "\x30\xeb\x30\xd4\x30\xfc" },
- { 0x3354, "\x30\xeb\x30\xfc\x30\xd6\x30\xeb" },
- { 0x3355, "\x30\xec\x30\xe0" },
- { 0x3356, "\x30\xec\x30\xf3\x30\xc8\x30\xb2\x30\xf3" },
- { 0x3357, "\x30\xef\x30\xc3\x30\xc8" },
- { 0x3358, "\x00\x30\x70\xb9" },
- { 0x3359, "\x00\x31\x70\xb9" },
- { 0x335a, "\x00\x32\x70\xb9" },
- { 0x335b, "\x00\x33\x70\xb9" },
- { 0x335c, "\x00\x34\x70\xb9" },
- { 0x335d, "\x00\x35\x70\xb9" },
- { 0x335e, "\x00\x36\x70\xb9" },
- { 0x335f, "\x00\x37\x70\xb9" },
- { 0x3360, "\x00\x38\x70\xb9" },
- { 0x3361, "\x00\x39\x70\xb9" },
- { 0x3362, "\x00\x31\x00\x30\x70\xb9" },
- { 0x3363, "\x00\x31\x00\x31\x70\xb9" },
- { 0x3364, "\x00\x31\x00\x32\x70\xb9" },
- { 0x3365, "\x00\x31\x00\x33\x70\xb9" },
- { 0x3366, "\x00\x31\x00\x34\x70\xb9" },
- { 0x3367, "\x00\x31\x00\x35\x70\xb9" },
- { 0x3368, "\x00\x31\x00\x36\x70\xb9" },
- { 0x3369, "\x00\x31\x00\x37\x70\xb9" },
- { 0x336a, "\x00\x31\x00\x38\x70\xb9" },
- { 0x336b, "\x00\x31\x00\x39\x70\xb9" },
- { 0x336c, "\x00\x32\x00\x30\x70\xb9" },
- { 0x336d, "\x00\x32\x00\x31\x70\xb9" },
- { 0x336e, "\x00\x32\x00\x32\x70\xb9" },
- { 0x336f, "\x00\x32\x00\x33\x70\xb9" },
- { 0x3370, "\x00\x32\x00\x34\x70\xb9" },
- { 0x3371, "\x00\x68\x00\x50\x00\x61" },
- { 0x3372, "\x00\x64\x00\x61" },
- { 0x3373, "\x00\x41\x00\x55" },
- { 0x3374, "\x00\x62\x00\x61\x00\x72" },
- { 0x3375, "\x00\x6f\x00\x56" },
- { 0x3376, "\x00\x70\x00\x63" },
- { 0x337b, "\x5e\x73\x62\x10" },
- { 0x337c, "\x66\x2d\x54\x8c" },
- { 0x337d, "\x59\x27\x6b\x63" },
- { 0x337e, "\x66\x0e\x6c\xbb" },
- { 0x337f, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e" },
- { 0x3380, "\x00\x70\x00\x41" },
- { 0x3381, "\x00\x6e\x00\x41" },
- { 0x3382, "\x03\xbc\x00\x41" },
- { 0x3383, "\x00\x6d\x00\x41" },
- { 0x3384, "\x00\x6b\x00\x41" },
- { 0x3385, "\x00\x4b\x00\x42" },
- { 0x3386, "\x00\x4d\x00\x42" },
- { 0x3387, "\x00\x47\x00\x42" },
- { 0x3388, "\x00\x63\x00\x61\x00\x6c" },
- { 0x3389, "\x00\x6b\x00\x63\x00\x61\x00\x6c" },
- { 0x338a, "\x00\x70\x00\x46" },
- { 0x338b, "\x00\x6e\x00\x46" },
- { 0x338c, "\x03\xbc\x00\x46" },
- { 0x338d, "\x03\xbc\x00\x67" },
- { 0x338e, "\x00\x6d\x00\x67" },
- { 0x338f, "\x00\x6b\x00\x67" },
- { 0x3390, "\x00\x48\x00\x7a" },
- { 0x3391, "\x00\x6b\x00\x48\x00\x7a" },
- { 0x3392, "\x00\x4d\x00\x48\x00\x7a" },
- { 0x3393, "\x00\x47\x00\x48\x00\x7a" },
- { 0x3394, "\x00\x54\x00\x48\x00\x7a" },
- { 0x3395, "\x03\xbc\x21\x13" },
- { 0x3396, "\x00\x6d\x21\x13" },
- { 0x3397, "\x00\x64\x21\x13" },
- { 0x3398, "\x00\x6b\x21\x13" },
- { 0x3399, "\x00\x66\x00\x6d" },
- { 0x339a, "\x00\x6e\x00\x6d" },
- { 0x339b, "\x03\xbc\x00\x6d" },
- { 0x339c, "\x00\x6d\x00\x6d" },
- { 0x339d, "\x00\x63\x00\x6d" },
- { 0x339e, "\x00\x6b\x00\x6d" },
- { 0x339f, "\x00\x6d\x00\x6d\x00\xb2" },
- { 0x33a0, "\x00\x63\x00\x6d\x00\xb2" },
- { 0x33a1, "\x00\x6d\x00\xb2" },
- { 0x33a2, "\x00\x6b\x00\x6d\x00\xb2" },
- { 0x33a3, "\x00\x6d\x00\x6d\x00\xb3" },
- { 0x33a4, "\x00\x63\x00\x6d\x00\xb3" },
- { 0x33a5, "\x00\x6d\x00\xb3" },
- { 0x33a6, "\x00\x6b\x00\x6d\x00\xb3" },
- { 0x33a7, "\x00\x6d\x22\x15\x00\x73" },
- { 0x33a8, "\x00\x6d\x22\x15\x00\x73\x00\xb2" },
- { 0x33a9, "\x00\x50\x00\x61" },
- { 0x33aa, "\x00\x6b\x00\x50\x00\x61" },
- { 0x33ab, "\x00\x4d\x00\x50\x00\x61" },
- { 0x33ac, "\x00\x47\x00\x50\x00\x61" },
- { 0x33ad, "\x00\x72\x00\x61\x00\x64" },
- { 0x33ae, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73" },
- { 0x33af, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\xb2" },
- { 0x33b0, "\x00\x70\x00\x73" },
- { 0x33b1, "\x00\x6e\x00\x73" },
- { 0x33b2, "\x03\xbc\x00\x73" },
- { 0x33b3, "\x00\x6d\x00\x73" },
- { 0x33b4, "\x00\x70\x00\x56" },
- { 0x33b5, "\x00\x6e\x00\x56" },
- { 0x33b6, "\x03\xbc\x00\x56" },
- { 0x33b7, "\x00\x6d\x00\x56" },
- { 0x33b8, "\x00\x6b\x00\x56" },
- { 0x33b9, "\x00\x4d\x00\x56" },
- { 0x33ba, "\x00\x70\x00\x57" },
- { 0x33bb, "\x00\x6e\x00\x57" },
- { 0x33bc, "\x03\xbc\x00\x57" },
- { 0x33bd, "\x00\x6d\x00\x57" },
- { 0x33be, "\x00\x6b\x00\x57" },
- { 0x33bf, "\x00\x4d\x00\x57" },
- { 0x33c0, "\x00\x6b\x03\xa9" },
- { 0x33c1, "\x00\x4d\x03\xa9" },
- { 0x33c2, "\x00\x61\x00\x2e\x00\x6d\x00\x2e" },
- { 0x33c3, "\x00\x42\x00\x71" },
- { 0x33c4, "\x00\x63\x00\x63" },
- { 0x33c5, "\x00\x63\x00\x64" },
- { 0x33c6, "\x00\x43\x22\x15\x00\x6b\x00\x67" },
- { 0x33c7, "\x00\x43\x00\x6f\x00\x2e" },
- { 0x33c8, "\x00\x64\x00\x42" },
- { 0x33c9, "\x00\x47\x00\x79" },
- { 0x33ca, "\x00\x68\x00\x61" },
- { 0x33cb, "\x00\x48\x00\x50" },
- { 0x33cc, "\x00\x69\x00\x6e" },
- { 0x33cd, "\x00\x4b\x00\x4b" },
- { 0x33ce, "\x00\x4b\x00\x4d" },
- { 0x33cf, "\x00\x6b\x00\x74" },
- { 0x33d0, "\x00\x6c\x00\x6d" },
- { 0x33d1, "\x00\x6c\x00\x6e" },
- { 0x33d2, "\x00\x6c\x00\x6f\x00\x67" },
- { 0x33d3, "\x00\x6c\x00\x78" },
- { 0x33d4, "\x00\x6d\x00\x62" },
- { 0x33d5, "\x00\x6d\x00\x69\x00\x6c" },
- { 0x33d6, "\x00\x6d\x00\x6f\x00\x6c" },
- { 0x33d7, "\x00\x50\x00\x48" },
- { 0x33d8, "\x00\x70\x00\x2e\x00\x6d\x00\x2e" },
- { 0x33d9, "\x00\x50\x00\x50\x00\x4d" },
- { 0x33da, "\x00\x50\x00\x52" },
- { 0x33db, "\x00\x73\x00\x72" },
- { 0x33dc, "\x00\x53\x00\x76" },
- { 0x33dd, "\x00\x57\x00\x62" },
- { 0x33e0, "\x00\x31\x65\xe5" },
- { 0x33e1, "\x00\x32\x65\xe5" },
- { 0x33e2, "\x00\x33\x65\xe5" },
- { 0x33e3, "\x00\x34\x65\xe5" },
- { 0x33e4, "\x00\x35\x65\xe5" },
- { 0x33e5, "\x00\x36\x65\xe5" },
- { 0x33e6, "\x00\x37\x65\xe5" },
- { 0x33e7, "\x00\x38\x65\xe5" },
- { 0x33e8, "\x00\x39\x65\xe5" },
- { 0x33e9, "\x00\x31\x00\x30\x65\xe5" },
- { 0x33ea, "\x00\x31\x00\x31\x65\xe5" },
- { 0x33eb, "\x00\x31\x00\x32\x65\xe5" },
- { 0x33ec, "\x00\x31\x00\x33\x65\xe5" },
- { 0x33ed, "\x00\x31\x00\x34\x65\xe5" },
- { 0x33ee, "\x00\x31\x00\x35\x65\xe5" },
- { 0x33ef, "\x00\x31\x00\x36\x65\xe5" },
- { 0x33f0, "\x00\x31\x00\x37\x65\xe5" },
- { 0x33f1, "\x00\x31\x00\x38\x65\xe5" },
- { 0x33f2, "\x00\x31\x00\x39\x65\xe5" },
- { 0x33f3, "\x00\x32\x00\x30\x65\xe5" },
- { 0x33f4, "\x00\x32\x00\x31\x65\xe5" },
- { 0x33f5, "\x00\x32\x00\x32\x65\xe5" },
- { 0x33f6, "\x00\x32\x00\x33\x65\xe5" },
- { 0x33f7, "\x00\x32\x00\x34\x65\xe5" },
- { 0x33f8, "\x00\x32\x00\x35\x65\xe5" },
- { 0x33f9, "\x00\x32\x00\x36\x65\xe5" },
- { 0x33fa, "\x00\x32\x00\x37\x65\xe5" },
- { 0x33fb, "\x00\x32\x00\x38\x65\xe5" },
- { 0x33fc, "\x00\x32\x00\x39\x65\xe5" },
- { 0x33fd, "\x00\x33\x00\x30\x65\xe5" },
- { 0x33fe, "\x00\x33\x00\x31\x65\xe5" },
- { 0xfb00, "\x00\x66\x00\x66" },
- { 0xfb01, "\x00\x66\x00\x69" },
- { 0xfb02, "\x00\x66\x00\x6c" },
- { 0xfb03, "\x00\x66\x00\x66\x00\x69" },
- { 0xfb04, "\x00\x66\x00\x66\x00\x6c" },
- { 0xfb05, "\x01\x7f\x00\x74" },
- { 0xfb06, "\x00\x73\x00\x74" },
- { 0xfb13, "\x05\x74\x05\x76" },
- { 0xfb14, "\x05\x74\x05\x65" },
- { 0xfb15, "\x05\x74\x05\x6b" },
- { 0xfb16, "\x05\x7e\x05\x76" },
- { 0xfb17, "\x05\x74\x05\x6d" },
- { 0xfb20, "\x05\xe2" },
- { 0xfb21, "\x05\xd0" },
- { 0xfb22, "\x05\xd3" },
- { 0xfb23, "\x05\xd4" },
- { 0xfb24, "\x05\xdb" },
- { 0xfb25, "\x05\xdc" },
- { 0xfb26, "\x05\xdd" },
- { 0xfb27, "\x05\xe8" },
- { 0xfb28, "\x05\xea" },
- { 0xfb29, "\x00\x2b" },
- { 0xfb4f, "\x05\xd0\x05\xdc" },
- { 0xfb50, "\x06\x71" },
- { 0xfb51, "\x06\x71" },
- { 0xfb52, "\x06\x7b" },
- { 0xfb53, "\x06\x7b" },
- { 0xfb54, "\x06\x7b" },
- { 0xfb55, "\x06\x7b" },
- { 0xfb56, "\x06\x7e" },
- { 0xfb57, "\x06\x7e" },
- { 0xfb58, "\x06\x7e" },
- { 0xfb59, "\x06\x7e" },
- { 0xfb5a, "\x06\x80" },
- { 0xfb5b, "\x06\x80" },
- { 0xfb5c, "\x06\x80" },
- { 0xfb5d, "\x06\x80" },
- { 0xfb5e, "\x06\x7a" },
- { 0xfb5f, "\x06\x7a" },
- { 0xfb60, "\x06\x7a" },
- { 0xfb61, "\x06\x7a" },
- { 0xfb62, "\x06\x7f" },
- { 0xfb63, "\x06\x7f" },
- { 0xfb64, "\x06\x7f" },
- { 0xfb65, "\x06\x7f" },
- { 0xfb66, "\x06\x79" },
- { 0xfb67, "\x06\x79" },
- { 0xfb68, "\x06\x79" },
- { 0xfb69, "\x06\x79" },
- { 0xfb6a, "\x06\xa4" },
- { 0xfb6b, "\x06\xa4" },
- { 0xfb6c, "\x06\xa4" },
- { 0xfb6d, "\x06\xa4" },
- { 0xfb6e, "\x06\xa6" },
- { 0xfb6f, "\x06\xa6" },
- { 0xfb70, "\x06\xa6" },
- { 0xfb71, "\x06\xa6" },
- { 0xfb72, "\x06\x84" },
- { 0xfb73, "\x06\x84" },
- { 0xfb74, "\x06\x84" },
- { 0xfb75, "\x06\x84" },
- { 0xfb76, "\x06\x83" },
- { 0xfb77, "\x06\x83" },
- { 0xfb78, "\x06\x83" },
- { 0xfb79, "\x06\x83" },
- { 0xfb7a, "\x06\x86" },
- { 0xfb7b, "\x06\x86" },
- { 0xfb7c, "\x06\x86" },
- { 0xfb7d, "\x06\x86" },
- { 0xfb7e, "\x06\x87" },
- { 0xfb7f, "\x06\x87" },
- { 0xfb80, "\x06\x87" },
- { 0xfb81, "\x06\x87" },
- { 0xfb82, "\x06\x8d" },
- { 0xfb83, "\x06\x8d" },
- { 0xfb84, "\x06\x8c" },
- { 0xfb85, "\x06\x8c" },
- { 0xfb86, "\x06\x8e" },
- { 0xfb87, "\x06\x8e" },
- { 0xfb88, "\x06\x88" },
- { 0xfb89, "\x06\x88" },
- { 0xfb8a, "\x06\x98" },
- { 0xfb8b, "\x06\x98" },
- { 0xfb8c, "\x06\x91" },
- { 0xfb8d, "\x06\x91" },
- { 0xfb8e, "\x06\xa9" },
- { 0xfb8f, "\x06\xa9" },
- { 0xfb90, "\x06\xa9" },
- { 0xfb91, "\x06\xa9" },
- { 0xfb92, "\x06\xaf" },
- { 0xfb93, "\x06\xaf" },
- { 0xfb94, "\x06\xaf" },
- { 0xfb95, "\x06\xaf" },
- { 0xfb96, "\x06\xb3" },
- { 0xfb97, "\x06\xb3" },
- { 0xfb98, "\x06\xb3" },
- { 0xfb99, "\x06\xb3" },
- { 0xfb9a, "\x06\xb1" },
- { 0xfb9b, "\x06\xb1" },
- { 0xfb9c, "\x06\xb1" },
- { 0xfb9d, "\x06\xb1" },
- { 0xfb9e, "\x06\xba" },
- { 0xfb9f, "\x06\xba" },
- { 0xfba0, "\x06\xbb" },
- { 0xfba1, "\x06\xbb" },
- { 0xfba2, "\x06\xbb" },
- { 0xfba3, "\x06\xbb" },
- { 0xfba4, "\x06\xc0" },
- { 0xfba5, "\x06\xc0" },
- { 0xfba6, "\x06\xc1" },
- { 0xfba7, "\x06\xc1" },
- { 0xfba8, "\x06\xc1" },
- { 0xfba9, "\x06\xc1" },
- { 0xfbaa, "\x06\xbe" },
- { 0xfbab, "\x06\xbe" },
- { 0xfbac, "\x06\xbe" },
- { 0xfbad, "\x06\xbe" },
- { 0xfbae, "\x06\xd2" },
- { 0xfbaf, "\x06\xd2" },
- { 0xfbb0, "\x06\xd3" },
- { 0xfbb1, "\x06\xd3" },
- { 0xfbd3, "\x06\xad" },
- { 0xfbd4, "\x06\xad" },
- { 0xfbd5, "\x06\xad" },
- { 0xfbd6, "\x06\xad" },
- { 0xfbd7, "\x06\xc7" },
- { 0xfbd8, "\x06\xc7" },
- { 0xfbd9, "\x06\xc6" },
- { 0xfbda, "\x06\xc6" },
- { 0xfbdb, "\x06\xc8" },
- { 0xfbdc, "\x06\xc8" },
- { 0xfbdd, "\x06\x77" },
- { 0xfbde, "\x06\xcb" },
- { 0xfbdf, "\x06\xcb" },
- { 0xfbe0, "\x06\xc5" },
- { 0xfbe1, "\x06\xc5" },
- { 0xfbe2, "\x06\xc9" },
- { 0xfbe3, "\x06\xc9" },
- { 0xfbe4, "\x06\xd0" },
- { 0xfbe5, "\x06\xd0" },
- { 0xfbe6, "\x06\xd0" },
- { 0xfbe7, "\x06\xd0" },
- { 0xfbe8, "\x06\x49" },
- { 0xfbe9, "\x06\x49" },
- { 0xfbea, "\x06\x26\x06\x27" },
- { 0xfbeb, "\x06\x26\x06\x27" },
- { 0xfbec, "\x06\x26\x06\xd5" },
- { 0xfbed, "\x06\x26\x06\xd5" },
- { 0xfbee, "\x06\x26\x06\x48" },
- { 0xfbef, "\x06\x26\x06\x48" },
- { 0xfbf0, "\x06\x26\x06\xc7" },
- { 0xfbf1, "\x06\x26\x06\xc7" },
- { 0xfbf2, "\x06\x26\x06\xc6" },
- { 0xfbf3, "\x06\x26\x06\xc6" },
- { 0xfbf4, "\x06\x26\x06\xc8" },
- { 0xfbf5, "\x06\x26\x06\xc8" },
- { 0xfbf6, "\x06\x26\x06\xd0" },
- { 0xfbf7, "\x06\x26\x06\xd0" },
- { 0xfbf8, "\x06\x26\x06\xd0" },
- { 0xfbf9, "\x06\x26\x06\x49" },
- { 0xfbfa, "\x06\x26\x06\x49" },
- { 0xfbfb, "\x06\x26\x06\x49" },
- { 0xfbfc, "\x06\xcc" },
- { 0xfbfd, "\x06\xcc" },
- { 0xfbfe, "\x06\xcc" },
- { 0xfbff, "\x06\xcc" },
- { 0xfc00, "\x06\x26\x06\x2c" },
- { 0xfc01, "\x06\x26\x06\x2d" },
- { 0xfc02, "\x06\x26\x06\x45" },
- { 0xfc03, "\x06\x26\x06\x49" },
- { 0xfc04, "\x06\x26\x06\x4a" },
- { 0xfc05, "\x06\x28\x06\x2c" },
- { 0xfc06, "\x06\x28\x06\x2d" },
- { 0xfc07, "\x06\x28\x06\x2e" },
- { 0xfc08, "\x06\x28\x06\x45" },
- { 0xfc09, "\x06\x28\x06\x49" },
- { 0xfc0a, "\x06\x28\x06\x4a" },
- { 0xfc0b, "\x06\x2a\x06\x2c" },
- { 0xfc0c, "\x06\x2a\x06\x2d" },
- { 0xfc0d, "\x06\x2a\x06\x2e" },
- { 0xfc0e, "\x06\x2a\x06\x45" },
- { 0xfc0f, "\x06\x2a\x06\x49" },
- { 0xfc10, "\x06\x2a\x06\x4a" },
- { 0xfc11, "\x06\x2b\x06\x2c" },
- { 0xfc12, "\x06\x2b\x06\x45" },
- { 0xfc13, "\x06\x2b\x06\x49" },
- { 0xfc14, "\x06\x2b\x06\x4a" },
- { 0xfc15, "\x06\x2c\x06\x2d" },
- { 0xfc16, "\x06\x2c\x06\x45" },
- { 0xfc17, "\x06\x2d\x06\x2c" },
- { 0xfc18, "\x06\x2d\x06\x45" },
- { 0xfc19, "\x06\x2e\x06\x2c" },
- { 0xfc1a, "\x06\x2e\x06\x2d" },
- { 0xfc1b, "\x06\x2e\x06\x45" },
- { 0xfc1c, "\x06\x33\x06\x2c" },
- { 0xfc1d, "\x06\x33\x06\x2d" },
- { 0xfc1e, "\x06\x33\x06\x2e" },
- { 0xfc1f, "\x06\x33\x06\x45" },
- { 0xfc20, "\x06\x35\x06\x2d" },
- { 0xfc21, "\x06\x35\x06\x45" },
- { 0xfc22, "\x06\x36\x06\x2c" },
- { 0xfc23, "\x06\x36\x06\x2d" },
- { 0xfc24, "\x06\x36\x06\x2e" },
- { 0xfc25, "\x06\x36\x06\x45" },
- { 0xfc26, "\x06\x37\x06\x2d" },
- { 0xfc27, "\x06\x37\x06\x45" },
- { 0xfc28, "\x06\x38\x06\x45" },
- { 0xfc29, "\x06\x39\x06\x2c" },
- { 0xfc2a, "\x06\x39\x06\x45" },
- { 0xfc2b, "\x06\x3a\x06\x2c" },
- { 0xfc2c, "\x06\x3a\x06\x45" },
- { 0xfc2d, "\x06\x41\x06\x2c" },
- { 0xfc2e, "\x06\x41\x06\x2d" },
- { 0xfc2f, "\x06\x41\x06\x2e" },
- { 0xfc30, "\x06\x41\x06\x45" },
- { 0xfc31, "\x06\x41\x06\x49" },
- { 0xfc32, "\x06\x41\x06\x4a" },
- { 0xfc33, "\x06\x42\x06\x2d" },
- { 0xfc34, "\x06\x42\x06\x45" },
- { 0xfc35, "\x06\x42\x06\x49" },
- { 0xfc36, "\x06\x42\x06\x4a" },
- { 0xfc37, "\x06\x43\x06\x27" },
- { 0xfc38, "\x06\x43\x06\x2c" },
- { 0xfc39, "\x06\x43\x06\x2d" },
- { 0xfc3a, "\x06\x43\x06\x2e" },
- { 0xfc3b, "\x06\x43\x06\x44" },
- { 0xfc3c, "\x06\x43\x06\x45" },
- { 0xfc3d, "\x06\x43\x06\x49" },
- { 0xfc3e, "\x06\x43\x06\x4a" },
- { 0xfc3f, "\x06\x44\x06\x2c" },
- { 0xfc40, "\x06\x44\x06\x2d" },
- { 0xfc41, "\x06\x44\x06\x2e" },
- { 0xfc42, "\x06\x44\x06\x45" },
- { 0xfc43, "\x06\x44\x06\x49" },
- { 0xfc44, "\x06\x44\x06\x4a" },
- { 0xfc45, "\x06\x45\x06\x2c" },
- { 0xfc46, "\x06\x45\x06\x2d" },
- { 0xfc47, "\x06\x45\x06\x2e" },
- { 0xfc48, "\x06\x45\x06\x45" },
- { 0xfc49, "\x06\x45\x06\x49" },
- { 0xfc4a, "\x06\x45\x06\x4a" },
- { 0xfc4b, "\x06\x46\x06\x2c" },
- { 0xfc4c, "\x06\x46\x06\x2d" },
- { 0xfc4d, "\x06\x46\x06\x2e" },
- { 0xfc4e, "\x06\x46\x06\x45" },
- { 0xfc4f, "\x06\x46\x06\x49" },
- { 0xfc50, "\x06\x46\x06\x4a" },
- { 0xfc51, "\x06\x47\x06\x2c" },
- { 0xfc52, "\x06\x47\x06\x45" },
- { 0xfc53, "\x06\x47\x06\x49" },
- { 0xfc54, "\x06\x47\x06\x4a" },
- { 0xfc55, "\x06\x4a\x06\x2c" },
- { 0xfc56, "\x06\x4a\x06\x2d" },
- { 0xfc57, "\x06\x4a\x06\x2e" },
- { 0xfc58, "\x06\x4a\x06\x45" },
- { 0xfc59, "\x06\x4a\x06\x49" },
- { 0xfc5a, "\x06\x4a\x06\x4a" },
- { 0xfc5b, "\x06\x30\x06\x70" },
- { 0xfc5c, "\x06\x31\x06\x70" },
- { 0xfc5d, "\x06\x49\x06\x70" },
- { 0xfc5e, "\x00\x20\x06\x51\x06\x4c" },
- { 0xfc5f, "\x00\x20\x06\x51\x06\x4d" },
- { 0xfc60, "\x00\x20\x06\x51\x06\x4e" },
- { 0xfc61, "\x00\x20\x06\x51\x06\x4f" },
- { 0xfc62, "\x00\x20\x06\x51\x06\x50" },
- { 0xfc63, "\x00\x20\x06\x51\x06\x70" },
- { 0xfc64, "\x06\x26\x06\x31" },
- { 0xfc65, "\x06\x26\x06\x32" },
- { 0xfc66, "\x06\x26\x06\x45" },
- { 0xfc67, "\x06\x26\x06\x46" },
- { 0xfc68, "\x06\x26\x06\x49" },
- { 0xfc69, "\x06\x26\x06\x4a" },
- { 0xfc6a, "\x06\x28\x06\x31" },
- { 0xfc6b, "\x06\x28\x06\x32" },
- { 0xfc6c, "\x06\x28\x06\x45" },
- { 0xfc6d, "\x06\x28\x06\x46" },
- { 0xfc6e, "\x06\x28\x06\x49" },
- { 0xfc6f, "\x06\x28\x06\x4a" },
- { 0xfc70, "\x06\x2a\x06\x31" },
- { 0xfc71, "\x06\x2a\x06\x32" },
- { 0xfc72, "\x06\x2a\x06\x45" },
- { 0xfc73, "\x06\x2a\x06\x46" },
- { 0xfc74, "\x06\x2a\x06\x49" },
- { 0xfc75, "\x06\x2a\x06\x4a" },
- { 0xfc76, "\x06\x2b\x06\x31" },
- { 0xfc77, "\x06\x2b\x06\x32" },
- { 0xfc78, "\x06\x2b\x06\x45" },
- { 0xfc79, "\x06\x2b\x06\x46" },
- { 0xfc7a, "\x06\x2b\x06\x49" },
- { 0xfc7b, "\x06\x2b\x06\x4a" },
- { 0xfc7c, "\x06\x41\x06\x49" },
- { 0xfc7d, "\x06\x41\x06\x4a" },
- { 0xfc7e, "\x06\x42\x06\x49" },
- { 0xfc7f, "\x06\x42\x06\x4a" },
- { 0xfc80, "\x06\x43\x06\x27" },
- { 0xfc81, "\x06\x43\x06\x44" },
- { 0xfc82, "\x06\x43\x06\x45" },
- { 0xfc83, "\x06\x43\x06\x49" },
- { 0xfc84, "\x06\x43\x06\x4a" },
- { 0xfc85, "\x06\x44\x06\x45" },
- { 0xfc86, "\x06\x44\x06\x49" },
- { 0xfc87, "\x06\x44\x06\x4a" },
- { 0xfc88, "\x06\x45\x06\x27" },
- { 0xfc89, "\x06\x45\x06\x45" },
- { 0xfc8a, "\x06\x46\x06\x31" },
- { 0xfc8b, "\x06\x46\x06\x32" },
- { 0xfc8c, "\x06\x46\x06\x45" },
- { 0xfc8d, "\x06\x46\x06\x46" },
- { 0xfc8e, "\x06\x46\x06\x49" },
- { 0xfc8f, "\x06\x46\x06\x4a" },
- { 0xfc90, "\x06\x49\x06\x70" },
- { 0xfc91, "\x06\x4a\x06\x31" },
- { 0xfc92, "\x06\x4a\x06\x32" },
- { 0xfc93, "\x06\x4a\x06\x45" },
- { 0xfc94, "\x06\x4a\x06\x46" },
- { 0xfc95, "\x06\x4a\x06\x49" },
- { 0xfc96, "\x06\x4a\x06\x4a" },
- { 0xfc97, "\x06\x26\x06\x2c" },
- { 0xfc98, "\x06\x26\x06\x2d" },
- { 0xfc99, "\x06\x26\x06\x2e" },
- { 0xfc9a, "\x06\x26\x06\x45" },
- { 0xfc9b, "\x06\x26\x06\x47" },
- { 0xfc9c, "\x06\x28\x06\x2c" },
- { 0xfc9d, "\x06\x28\x06\x2d" },
- { 0xfc9e, "\x06\x28\x06\x2e" },
- { 0xfc9f, "\x06\x28\x06\x45" },
- { 0xfca0, "\x06\x28\x06\x47" },
- { 0xfca1, "\x06\x2a\x06\x2c" },
- { 0xfca2, "\x06\x2a\x06\x2d" },
- { 0xfca3, "\x06\x2a\x06\x2e" },
- { 0xfca4, "\x06\x2a\x06\x45" },
- { 0xfca5, "\x06\x2a\x06\x47" },
- { 0xfca6, "\x06\x2b\x06\x45" },
- { 0xfca7, "\x06\x2c\x06\x2d" },
- { 0xfca8, "\x06\x2c\x06\x45" },
- { 0xfca9, "\x06\x2d\x06\x2c" },
- { 0xfcaa, "\x06\x2d\x06\x45" },
- { 0xfcab, "\x06\x2e\x06\x2c" },
- { 0xfcac, "\x06\x2e\x06\x45" },
- { 0xfcad, "\x06\x33\x06\x2c" },
- { 0xfcae, "\x06\x33\x06\x2d" },
- { 0xfcaf, "\x06\x33\x06\x2e" },
- { 0xfcb0, "\x06\x33\x06\x45" },
- { 0xfcb1, "\x06\x35\x06\x2d" },
- { 0xfcb2, "\x06\x35\x06\x2e" },
- { 0xfcb3, "\x06\x35\x06\x45" },
- { 0xfcb4, "\x06\x36\x06\x2c" },
- { 0xfcb5, "\x06\x36\x06\x2d" },
- { 0xfcb6, "\x06\x36\x06\x2e" },
- { 0xfcb7, "\x06\x36\x06\x45" },
- { 0xfcb8, "\x06\x37\x06\x2d" },
- { 0xfcb9, "\x06\x38\x06\x45" },
- { 0xfcba, "\x06\x39\x06\x2c" },
- { 0xfcbb, "\x06\x39\x06\x45" },
- { 0xfcbc, "\x06\x3a\x06\x2c" },
- { 0xfcbd, "\x06\x3a\x06\x45" },
- { 0xfcbe, "\x06\x41\x06\x2c" },
- { 0xfcbf, "\x06\x41\x06\x2d" },
- { 0xfcc0, "\x06\x41\x06\x2e" },
- { 0xfcc1, "\x06\x41\x06\x45" },
- { 0xfcc2, "\x06\x42\x06\x2d" },
- { 0xfcc3, "\x06\x42\x06\x45" },
- { 0xfcc4, "\x06\x43\x06\x2c" },
- { 0xfcc5, "\x06\x43\x06\x2d" },
- { 0xfcc6, "\x06\x43\x06\x2e" },
- { 0xfcc7, "\x06\x43\x06\x44" },
- { 0xfcc8, "\x06\x43\x06\x45" },
- { 0xfcc9, "\x06\x44\x06\x2c" },
- { 0xfcca, "\x06\x44\x06\x2d" },
- { 0xfccb, "\x06\x44\x06\x2e" },
- { 0xfccc, "\x06\x44\x06\x45" },
- { 0xfccd, "\x06\x44\x06\x47" },
- { 0xfcce, "\x06\x45\x06\x2c" },
- { 0xfccf, "\x06\x45\x06\x2d" },
- { 0xfcd0, "\x06\x45\x06\x2e" },
- { 0xfcd1, "\x06\x45\x06\x45" },
- { 0xfcd2, "\x06\x46\x06\x2c" },
- { 0xfcd3, "\x06\x46\x06\x2d" },
- { 0xfcd4, "\x06\x46\x06\x2e" },
- { 0xfcd5, "\x06\x46\x06\x45" },
- { 0xfcd6, "\x06\x46\x06\x47" },
- { 0xfcd7, "\x06\x47\x06\x2c" },
- { 0xfcd8, "\x06\x47\x06\x45" },
- { 0xfcd9, "\x06\x47\x06\x70" },
- { 0xfcda, "\x06\x4a\x06\x2c" },
- { 0xfcdb, "\x06\x4a\x06\x2d" },
- { 0xfcdc, "\x06\x4a\x06\x2e" },
- { 0xfcdd, "\x06\x4a\x06\x45" },
- { 0xfcde, "\x06\x4a\x06\x47" },
- { 0xfcdf, "\x06\x26\x06\x45" },
- { 0xfce0, "\x06\x26\x06\x47" },
- { 0xfce1, "\x06\x28\x06\x45" },
- { 0xfce2, "\x06\x28\x06\x47" },
- { 0xfce3, "\x06\x2a\x06\x45" },
- { 0xfce4, "\x06\x2a\x06\x47" },
- { 0xfce5, "\x06\x2b\x06\x45" },
- { 0xfce6, "\x06\x2b\x06\x47" },
- { 0xfce7, "\x06\x33\x06\x45" },
- { 0xfce8, "\x06\x33\x06\x47" },
- { 0xfce9, "\x06\x34\x06\x45" },
- { 0xfcea, "\x06\x34\x06\x47" },
- { 0xfceb, "\x06\x43\x06\x44" },
- { 0xfcec, "\x06\x43\x06\x45" },
- { 0xfced, "\x06\x44\x06\x45" },
- { 0xfcee, "\x06\x46\x06\x45" },
- { 0xfcef, "\x06\x46\x06\x47" },
- { 0xfcf0, "\x06\x4a\x06\x45" },
- { 0xfcf1, "\x06\x4a\x06\x47" },
- { 0xfcf2, "\x06\x40\x06\x51\x06\x4e" },
- { 0xfcf3, "\x06\x40\x06\x51\x06\x4f" },
- { 0xfcf4, "\x06\x40\x06\x51\x06\x50" },
- { 0xfcf5, "\x06\x37\x06\x49" },
- { 0xfcf6, "\x06\x37\x06\x4a" },
- { 0xfcf7, "\x06\x39\x06\x49" },
- { 0xfcf8, "\x06\x39\x06\x4a" },
- { 0xfcf9, "\x06\x3a\x06\x49" },
- { 0xfcfa, "\x06\x3a\x06\x4a" },
- { 0xfcfb, "\x06\x33\x06\x49" },
- { 0xfcfc, "\x06\x33\x06\x4a" },
- { 0xfcfd, "\x06\x34\x06\x49" },
- { 0xfcfe, "\x06\x34\x06\x4a" },
- { 0xfcff, "\x06\x2d\x06\x49" },
- { 0xfd00, "\x06\x2d\x06\x4a" },
- { 0xfd01, "\x06\x2c\x06\x49" },
- { 0xfd02, "\x06\x2c\x06\x4a" },
- { 0xfd03, "\x06\x2e\x06\x49" },
- { 0xfd04, "\x06\x2e\x06\x4a" },
- { 0xfd05, "\x06\x35\x06\x49" },
- { 0xfd06, "\x06\x35\x06\x4a" },
- { 0xfd07, "\x06\x36\x06\x49" },
- { 0xfd08, "\x06\x36\x06\x4a" },
- { 0xfd09, "\x06\x34\x06\x2c" },
- { 0xfd0a, "\x06\x34\x06\x2d" },
- { 0xfd0b, "\x06\x34\x06\x2e" },
- { 0xfd0c, "\x06\x34\x06\x45" },
- { 0xfd0d, "\x06\x34\x06\x31" },
- { 0xfd0e, "\x06\x33\x06\x31" },
- { 0xfd0f, "\x06\x35\x06\x31" },
- { 0xfd10, "\x06\x36\x06\x31" },
- { 0xfd11, "\x06\x37\x06\x49" },
- { 0xfd12, "\x06\x37\x06\x4a" },
- { 0xfd13, "\x06\x39\x06\x49" },
- { 0xfd14, "\x06\x39\x06\x4a" },
- { 0xfd15, "\x06\x3a\x06\x49" },
- { 0xfd16, "\x06\x3a\x06\x4a" },
- { 0xfd17, "\x06\x33\x06\x49" },
- { 0xfd18, "\x06\x33\x06\x4a" },
- { 0xfd19, "\x06\x34\x06\x49" },
- { 0xfd1a, "\x06\x34\x06\x4a" },
- { 0xfd1b, "\x06\x2d\x06\x49" },
- { 0xfd1c, "\x06\x2d\x06\x4a" },
- { 0xfd1d, "\x06\x2c\x06\x49" },
- { 0xfd1e, "\x06\x2c\x06\x4a" },
- { 0xfd1f, "\x06\x2e\x06\x49" },
- { 0xfd20, "\x06\x2e\x06\x4a" },
- { 0xfd21, "\x06\x35\x06\x49" },
- { 0xfd22, "\x06\x35\x06\x4a" },
- { 0xfd23, "\x06\x36\x06\x49" },
- { 0xfd24, "\x06\x36\x06\x4a" },
- { 0xfd25, "\x06\x34\x06\x2c" },
- { 0xfd26, "\x06\x34\x06\x2d" },
- { 0xfd27, "\x06\x34\x06\x2e" },
- { 0xfd28, "\x06\x34\x06\x45" },
- { 0xfd29, "\x06\x34\x06\x31" },
- { 0xfd2a, "\x06\x33\x06\x31" },
- { 0xfd2b, "\x06\x35\x06\x31" },
- { 0xfd2c, "\x06\x36\x06\x31" },
- { 0xfd2d, "\x06\x34\x06\x2c" },
- { 0xfd2e, "\x06\x34\x06\x2d" },
- { 0xfd2f, "\x06\x34\x06\x2e" },
- { 0xfd30, "\x06\x34\x06\x45" },
- { 0xfd31, "\x06\x33\x06\x47" },
- { 0xfd32, "\x06\x34\x06\x47" },
- { 0xfd33, "\x06\x37\x06\x45" },
- { 0xfd34, "\x06\x33\x06\x2c" },
- { 0xfd35, "\x06\x33\x06\x2d" },
- { 0xfd36, "\x06\x33\x06\x2e" },
- { 0xfd37, "\x06\x34\x06\x2c" },
- { 0xfd38, "\x06\x34\x06\x2d" },
- { 0xfd39, "\x06\x34\x06\x2e" },
- { 0xfd3a, "\x06\x37\x06\x45" },
- { 0xfd3b, "\x06\x38\x06\x45" },
- { 0xfd3c, "\x06\x27\x06\x4b" },
- { 0xfd3d, "\x06\x27\x06\x4b" },
- { 0xfd50, "\x06\x2a\x06\x2c\x06\x45" },
- { 0xfd51, "\x06\x2a\x06\x2d\x06\x2c" },
- { 0xfd52, "\x06\x2a\x06\x2d\x06\x2c" },
- { 0xfd53, "\x06\x2a\x06\x2d\x06\x45" },
- { 0xfd54, "\x06\x2a\x06\x2e\x06\x45" },
- { 0xfd55, "\x06\x2a\x06\x45\x06\x2c" },
- { 0xfd56, "\x06\x2a\x06\x45\x06\x2d" },
- { 0xfd57, "\x06\x2a\x06\x45\x06\x2e" },
- { 0xfd58, "\x06\x2c\x06\x45\x06\x2d" },
- { 0xfd59, "\x06\x2c\x06\x45\x06\x2d" },
- { 0xfd5a, "\x06\x2d\x06\x45\x06\x4a" },
- { 0xfd5b, "\x06\x2d\x06\x45\x06\x49" },
- { 0xfd5c, "\x06\x33\x06\x2d\x06\x2c" },
- { 0xfd5d, "\x06\x33\x06\x2c\x06\x2d" },
- { 0xfd5e, "\x06\x33\x06\x2c\x06\x49" },
- { 0xfd5f, "\x06\x33\x06\x45\x06\x2d" },
- { 0xfd60, "\x06\x33\x06\x45\x06\x2d" },
- { 0xfd61, "\x06\x33\x06\x45\x06\x2c" },
- { 0xfd62, "\x06\x33\x06\x45\x06\x45" },
- { 0xfd63, "\x06\x33\x06\x45\x06\x45" },
- { 0xfd64, "\x06\x35\x06\x2d\x06\x2d" },
- { 0xfd65, "\x06\x35\x06\x2d\x06\x2d" },
- { 0xfd66, "\x06\x35\x06\x45\x06\x45" },
- { 0xfd67, "\x06\x34\x06\x2d\x06\x45" },
- { 0xfd68, "\x06\x34\x06\x2d\x06\x45" },
- { 0xfd69, "\x06\x34\x06\x2c\x06\x4a" },
- { 0xfd6a, "\x06\x34\x06\x45\x06\x2e" },
- { 0xfd6b, "\x06\x34\x06\x45\x06\x2e" },
- { 0xfd6c, "\x06\x34\x06\x45\x06\x45" },
- { 0xfd6d, "\x06\x34\x06\x45\x06\x45" },
- { 0xfd6e, "\x06\x36\x06\x2d\x06\x49" },
- { 0xfd6f, "\x06\x36\x06\x2e\x06\x45" },
- { 0xfd70, "\x06\x36\x06\x2e\x06\x45" },
- { 0xfd71, "\x06\x37\x06\x45\x06\x2d" },
- { 0xfd72, "\x06\x37\x06\x45\x06\x2d" },
- { 0xfd73, "\x06\x37\x06\x45\x06\x45" },
- { 0xfd74, "\x06\x37\x06\x45\x06\x4a" },
- { 0xfd75, "\x06\x39\x06\x2c\x06\x45" },
- { 0xfd76, "\x06\x39\x06\x45\x06\x45" },
- { 0xfd77, "\x06\x39\x06\x45\x06\x45" },
- { 0xfd78, "\x06\x39\x06\x45\x06\x49" },
- { 0xfd79, "\x06\x3a\x06\x45\x06\x45" },
- { 0xfd7a, "\x06\x3a\x06\x45\x06\x4a" },
- { 0xfd7b, "\x06\x3a\x06\x45\x06\x49" },
- { 0xfd7c, "\x06\x41\x06\x2e\x06\x45" },
- { 0xfd7d, "\x06\x41\x06\x2e\x06\x45" },
- { 0xfd7e, "\x06\x42\x06\x45\x06\x2d" },
- { 0xfd7f, "\x06\x42\x06\x45\x06\x45" },
- { 0xfd80, "\x06\x44\x06\x2d\x06\x45" },
- { 0xfd81, "\x06\x44\x06\x2d\x06\x4a" },
- { 0xfd82, "\x06\x44\x06\x2d\x06\x49" },
- { 0xfd83, "\x06\x44\x06\x2c\x06\x2c" },
- { 0xfd84, "\x06\x44\x06\x2c\x06\x2c" },
- { 0xfd85, "\x06\x44\x06\x2e\x06\x45" },
- { 0xfd86, "\x06\x44\x06\x2e\x06\x45" },
- { 0xfd87, "\x06\x44\x06\x45\x06\x2d" },
- { 0xfd88, "\x06\x44\x06\x45\x06\x2d" },
- { 0xfd89, "\x06\x45\x06\x2d\x06\x2c" },
- { 0xfd8a, "\x06\x45\x06\x2d\x06\x45" },
- { 0xfd8b, "\x06\x45\x06\x2d\x06\x4a" },
- { 0xfd8c, "\x06\x45\x06\x2c\x06\x2d" },
- { 0xfd8d, "\x06\x45\x06\x2c\x06\x45" },
- { 0xfd8e, "\x06\x45\x06\x2e\x06\x2c" },
- { 0xfd8f, "\x06\x45\x06\x2e\x06\x45" },
- { 0xfd92, "\x06\x45\x06\x2c\x06\x2e" },
- { 0xfd93, "\x06\x47\x06\x45\x06\x2c" },
- { 0xfd94, "\x06\x47\x06\x45\x06\x45" },
- { 0xfd95, "\x06\x46\x06\x2d\x06\x45" },
- { 0xfd96, "\x06\x46\x06\x2d\x06\x49" },
- { 0xfd97, "\x06\x46\x06\x2c\x06\x45" },
- { 0xfd98, "\x06\x46\x06\x2c\x06\x45" },
- { 0xfd99, "\x06\x46\x06\x2c\x06\x49" },
- { 0xfd9a, "\x06\x46\x06\x45\x06\x4a" },
- { 0xfd9b, "\x06\x46\x06\x45\x06\x49" },
- { 0xfd9c, "\x06\x4a\x06\x45\x06\x45" },
- { 0xfd9d, "\x06\x4a\x06\x45\x06\x45" },
- { 0xfd9e, "\x06\x28\x06\x2e\x06\x4a" },
- { 0xfd9f, "\x06\x2a\x06\x2c\x06\x4a" },
- { 0xfda0, "\x06\x2a\x06\x2c\x06\x49" },
- { 0xfda1, "\x06\x2a\x06\x2e\x06\x4a" },
- { 0xfda2, "\x06\x2a\x06\x2e\x06\x49" },
- { 0xfda3, "\x06\x2a\x06\x45\x06\x4a" },
- { 0xfda4, "\x06\x2a\x06\x45\x06\x49" },
- { 0xfda5, "\x06\x2c\x06\x45\x06\x4a" },
- { 0xfda6, "\x06\x2c\x06\x2d\x06\x49" },
- { 0xfda7, "\x06\x2c\x06\x45\x06\x49" },
- { 0xfda8, "\x06\x33\x06\x2e\x06\x49" },
- { 0xfda9, "\x06\x35\x06\x2d\x06\x4a" },
- { 0xfdaa, "\x06\x34\x06\x2d\x06\x4a" },
- { 0xfdab, "\x06\x36\x06\x2d\x06\x4a" },
- { 0xfdac, "\x06\x44\x06\x2c\x06\x4a" },
- { 0xfdad, "\x06\x44\x06\x45\x06\x4a" },
- { 0xfdae, "\x06\x4a\x06\x2d\x06\x4a" },
- { 0xfdaf, "\x06\x4a\x06\x2c\x06\x4a" },
- { 0xfdb0, "\x06\x4a\x06\x45\x06\x4a" },
- { 0xfdb1, "\x06\x45\x06\x45\x06\x4a" },
- { 0xfdb2, "\x06\x42\x06\x45\x06\x4a" },
- { 0xfdb3, "\x06\x46\x06\x2d\x06\x4a" },
- { 0xfdb4, "\x06\x42\x06\x45\x06\x2d" },
- { 0xfdb5, "\x06\x44\x06\x2d\x06\x45" },
- { 0xfdb6, "\x06\x39\x06\x45\x06\x4a" },
- { 0xfdb7, "\x06\x43\x06\x45\x06\x4a" },
- { 0xfdb8, "\x06\x46\x06\x2c\x06\x2d" },
- { 0xfdb9, "\x06\x45\x06\x2e\x06\x4a" },
- { 0xfdba, "\x06\x44\x06\x2c\x06\x45" },
- { 0xfdbb, "\x06\x43\x06\x45\x06\x45" },
- { 0xfdbc, "\x06\x44\x06\x2c\x06\x45" },
- { 0xfdbd, "\x06\x46\x06\x2c\x06\x2d" },
- { 0xfdbe, "\x06\x2c\x06\x2d\x06\x4a" },
- { 0xfdbf, "\x06\x2d\x06\x2c\x06\x4a" },
- { 0xfdc0, "\x06\x45\x06\x2c\x06\x4a" },
- { 0xfdc1, "\x06\x41\x06\x45\x06\x4a" },
- { 0xfdc2, "\x06\x28\x06\x2d\x06\x4a" },
- { 0xfdc3, "\x06\x43\x06\x45\x06\x45" },
- { 0xfdc4, "\x06\x39\x06\x2c\x06\x45" },
- { 0xfdc5, "\x06\x35\x06\x45\x06\x45" },
- { 0xfdc6, "\x06\x33\x06\x2e\x06\x4a" },
- { 0xfdc7, "\x06\x46\x06\x2c\x06\x4a" },
- { 0xfdf0, "\x06\x35\x06\x44\x06\xd2" },
- { 0xfdf1, "\x06\x42\x06\x44\x06\xd2" },
- { 0xfdf2, "\x06\x27\x06\x44\x06\x44\x06\x47" },
- { 0xfdf3, "\x06\x27\x06\x43\x06\x28\x06\x31" },
- { 0xfdf4, "\x06\x45\x06\x2d\x06\x45\x06\x2f" },
- { 0xfdf5, "\x06\x35\x06\x44\x06\x39\x06\x45" },
- { 0xfdf6, "\x06\x31\x06\x33\x06\x48\x06\x44" },
- { 0xfdf7, "\x06\x39\x06\x44\x06\x4a\x06\x47" },
- { 0xfdf8, "\x06\x48\x06\x33\x06\x44\x06\x45" },
- { 0xfdf9, "\x06\x35\x06\x44\x06\x49" },
- { 0xfdfa, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45" },
- { 0xfdfb, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47" },
- { 0xfe30, "\x20\x25" },
- { 0xfe31, "\x20\x14" },
- { 0xfe32, "\x20\x13" },
- { 0xfe33, "\x00\x5f" },
- { 0xfe34, "\x00\x5f" },
- { 0xfe35, "\x00\x28" },
- { 0xfe36, "\x00\x29" },
- { 0xfe37, "\x00\x7b" },
- { 0xfe38, "\x00\x7d" },
- { 0xfe39, "\x30\x14" },
- { 0xfe3a, "\x30\x15" },
- { 0xfe3b, "\x30\x10" },
- { 0xfe3c, "\x30\x11" },
- { 0xfe3d, "\x30\x0a" },
- { 0xfe3e, "\x30\x0b" },
- { 0xfe3f, "\x30\x08" },
- { 0xfe40, "\x30\x09" },
- { 0xfe41, "\x30\x0c" },
- { 0xfe42, "\x30\x0d" },
- { 0xfe43, "\x30\x0e" },
- { 0xfe44, "\x30\x0f" },
- { 0xfe49, "\x20\x3e" },
- { 0xfe4a, "\x20\x3e" },
- { 0xfe4b, "\x20\x3e" },
- { 0xfe4c, "\x20\x3e" },
- { 0xfe4d, "\x00\x5f" },
- { 0xfe4e, "\x00\x5f" },
- { 0xfe4f, "\x00\x5f" },
- { 0xfe50, "\x00\x2c" },
- { 0xfe51, "\x30\x01" },
- { 0xfe52, "\x00\x2e" },
- { 0xfe54, "\x00\x3b" },
- { 0xfe55, "\x00\x3a" },
- { 0xfe56, "\x00\x3f" },
- { 0xfe57, "\x00\x21" },
- { 0xfe58, "\x20\x14" },
- { 0xfe59, "\x00\x28" },
- { 0xfe5a, "\x00\x29" },
- { 0xfe5b, "\x00\x7b" },
- { 0xfe5c, "\x00\x7d" },
- { 0xfe5d, "\x30\x14" },
- { 0xfe5e, "\x30\x15" },
- { 0xfe5f, "\x00\x23" },
- { 0xfe60, "\x00\x26" },
- { 0xfe61, "\x00\x2a" },
- { 0xfe62, "\x00\x2b" },
- { 0xfe63, "\x00\x2d" },
- { 0xfe64, "\x00\x3c" },
- { 0xfe65, "\x00\x3e" },
- { 0xfe66, "\x00\x3d" },
- { 0xfe68, "\x00\x5c" },
- { 0xfe69, "\x00\x24" },
- { 0xfe6a, "\x00\x25" },
- { 0xfe6b, "\x00\x40" },
- { 0xfe70, "\x00\x20\x06\x4b" },
- { 0xfe71, "\x06\x40\x06\x4b" },
- { 0xfe72, "\x00\x20\x06\x4c" },
- { 0xfe74, "\x00\x20\x06\x4d" },
- { 0xfe76, "\x00\x20\x06\x4e" },
- { 0xfe77, "\x06\x40\x06\x4e" },
- { 0xfe78, "\x00\x20\x06\x4f" },
- { 0xfe79, "\x06\x40\x06\x4f" },
- { 0xfe7a, "\x00\x20\x06\x50" },
- { 0xfe7b, "\x06\x40\x06\x50" },
- { 0xfe7c, "\x00\x20\x06\x51" },
- { 0xfe7d, "\x06\x40\x06\x51" },
- { 0xfe7e, "\x00\x20\x06\x52" },
- { 0xfe7f, "\x06\x40\x06\x52" },
- { 0xfe80, "\x06\x21" },
- { 0xfe81, "\x06\x22" },
- { 0xfe82, "\x06\x22" },
- { 0xfe83, "\x06\x23" },
- { 0xfe84, "\x06\x23" },
- { 0xfe85, "\x06\x24" },
- { 0xfe86, "\x06\x24" },
- { 0xfe87, "\x06\x25" },
- { 0xfe88, "\x06\x25" },
- { 0xfe89, "\x06\x26" },
- { 0xfe8a, "\x06\x26" },
- { 0xfe8b, "\x06\x26" },
- { 0xfe8c, "\x06\x26" },
- { 0xfe8d, "\x06\x27" },
- { 0xfe8e, "\x06\x27" },
- { 0xfe8f, "\x06\x28" },
- { 0xfe90, "\x06\x28" },
- { 0xfe91, "\x06\x28" },
- { 0xfe92, "\x06\x28" },
- { 0xfe93, "\x06\x29" },
- { 0xfe94, "\x06\x29" },
- { 0xfe95, "\x06\x2a" },
- { 0xfe96, "\x06\x2a" },
- { 0xfe97, "\x06\x2a" },
- { 0xfe98, "\x06\x2a" },
- { 0xfe99, "\x06\x2b" },
- { 0xfe9a, "\x06\x2b" },
- { 0xfe9b, "\x06\x2b" },
- { 0xfe9c, "\x06\x2b" },
- { 0xfe9d, "\x06\x2c" },
- { 0xfe9e, "\x06\x2c" },
- { 0xfe9f, "\x06\x2c" },
- { 0xfea0, "\x06\x2c" },
- { 0xfea1, "\x06\x2d" },
- { 0xfea2, "\x06\x2d" },
- { 0xfea3, "\x06\x2d" },
- { 0xfea4, "\x06\x2d" },
- { 0xfea5, "\x06\x2e" },
- { 0xfea6, "\x06\x2e" },
- { 0xfea7, "\x06\x2e" },
- { 0xfea8, "\x06\x2e" },
- { 0xfea9, "\x06\x2f" },
- { 0xfeaa, "\x06\x2f" },
- { 0xfeab, "\x06\x30" },
- { 0xfeac, "\x06\x30" },
- { 0xfead, "\x06\x31" },
- { 0xfeae, "\x06\x31" },
- { 0xfeaf, "\x06\x32" },
- { 0xfeb0, "\x06\x32" },
- { 0xfeb1, "\x06\x33" },
- { 0xfeb2, "\x06\x33" },
- { 0xfeb3, "\x06\x33" },
- { 0xfeb4, "\x06\x33" },
- { 0xfeb5, "\x06\x34" },
- { 0xfeb6, "\x06\x34" },
- { 0xfeb7, "\x06\x34" },
- { 0xfeb8, "\x06\x34" },
- { 0xfeb9, "\x06\x35" },
- { 0xfeba, "\x06\x35" },
- { 0xfebb, "\x06\x35" },
- { 0xfebc, "\x06\x35" },
- { 0xfebd, "\x06\x36" },
- { 0xfebe, "\x06\x36" },
- { 0xfebf, "\x06\x36" },
- { 0xfec0, "\x06\x36" },
- { 0xfec1, "\x06\x37" },
- { 0xfec2, "\x06\x37" },
- { 0xfec3, "\x06\x37" },
- { 0xfec4, "\x06\x37" },
- { 0xfec5, "\x06\x38" },
- { 0xfec6, "\x06\x38" },
- { 0xfec7, "\x06\x38" },
- { 0xfec8, "\x06\x38" },
- { 0xfec9, "\x06\x39" },
- { 0xfeca, "\x06\x39" },
- { 0xfecb, "\x06\x39" },
- { 0xfecc, "\x06\x39" },
- { 0xfecd, "\x06\x3a" },
- { 0xfece, "\x06\x3a" },
- { 0xfecf, "\x06\x3a" },
- { 0xfed0, "\x06\x3a" },
- { 0xfed1, "\x06\x41" },
- { 0xfed2, "\x06\x41" },
- { 0xfed3, "\x06\x41" },
- { 0xfed4, "\x06\x41" },
- { 0xfed5, "\x06\x42" },
- { 0xfed6, "\x06\x42" },
- { 0xfed7, "\x06\x42" },
- { 0xfed8, "\x06\x42" },
- { 0xfed9, "\x06\x43" },
- { 0xfeda, "\x06\x43" },
- { 0xfedb, "\x06\x43" },
- { 0xfedc, "\x06\x43" },
- { 0xfedd, "\x06\x44" },
- { 0xfede, "\x06\x44" },
- { 0xfedf, "\x06\x44" },
- { 0xfee0, "\x06\x44" },
- { 0xfee1, "\x06\x45" },
- { 0xfee2, "\x06\x45" },
- { 0xfee3, "\x06\x45" },
- { 0xfee4, "\x06\x45" },
- { 0xfee5, "\x06\x46" },
- { 0xfee6, "\x06\x46" },
- { 0xfee7, "\x06\x46" },
- { 0xfee8, "\x06\x46" },
- { 0xfee9, "\x06\x47" },
- { 0xfeea, "\x06\x47" },
- { 0xfeeb, "\x06\x47" },
- { 0xfeec, "\x06\x47" },
- { 0xfeed, "\x06\x48" },
- { 0xfeee, "\x06\x48" },
- { 0xfeef, "\x06\x49" },
- { 0xfef0, "\x06\x49" },
- { 0xfef1, "\x06\x4a" },
- { 0xfef2, "\x06\x4a" },
- { 0xfef3, "\x06\x4a" },
- { 0xfef4, "\x06\x4a" },
- { 0xfef5, "\x06\x44\x06\x22" },
- { 0xfef6, "\x06\x44\x06\x22" },
- { 0xfef7, "\x06\x44\x06\x23" },
- { 0xfef8, "\x06\x44\x06\x23" },
- { 0xfef9, "\x06\x44\x06\x25" },
- { 0xfefa, "\x06\x44\x06\x25" },
- { 0xfefb, "\x06\x44\x06\x27" },
- { 0xfefc, "\x06\x44\x06\x27" },
- { 0xff01, "\x00\x21" },
- { 0xff02, "\x00\x22" },
- { 0xff03, "\x00\x23" },
- { 0xff04, "\x00\x24" },
- { 0xff05, "\x00\x25" },
- { 0xff06, "\x00\x26" },
- { 0xff07, "\x00\x27" },
- { 0xff08, "\x00\x28" },
- { 0xff09, "\x00\x29" },
- { 0xff0a, "\x00\x2a" },
- { 0xff0b, "\x00\x2b" },
- { 0xff0c, "\x00\x2c" },
- { 0xff0d, "\x00\x2d" },
- { 0xff0e, "\x00\x2e" },
- { 0xff0f, "\x00\x2f" },
- { 0xff10, "\x00\x30" },
- { 0xff11, "\x00\x31" },
- { 0xff12, "\x00\x32" },
- { 0xff13, "\x00\x33" },
- { 0xff14, "\x00\x34" },
- { 0xff15, "\x00\x35" },
- { 0xff16, "\x00\x36" },
- { 0xff17, "\x00\x37" },
- { 0xff18, "\x00\x38" },
- { 0xff19, "\x00\x39" },
- { 0xff1a, "\x00\x3a" },
- { 0xff1b, "\x00\x3b" },
- { 0xff1c, "\x00\x3c" },
- { 0xff1d, "\x00\x3d" },
- { 0xff1e, "\x00\x3e" },
- { 0xff1f, "\x00\x3f" },
- { 0xff20, "\x00\x40" },
- { 0xff21, "\x00\x41" },
- { 0xff22, "\x00\x42" },
- { 0xff23, "\x00\x43" },
- { 0xff24, "\x00\x44" },
- { 0xff25, "\x00\x45" },
- { 0xff26, "\x00\x46" },
- { 0xff27, "\x00\x47" },
- { 0xff28, "\x00\x48" },
- { 0xff29, "\x00\x49" },
- { 0xff2a, "\x00\x4a" },
- { 0xff2b, "\x00\x4b" },
- { 0xff2c, "\x00\x4c" },
- { 0xff2d, "\x00\x4d" },
- { 0xff2e, "\x00\x4e" },
- { 0xff2f, "\x00\x4f" },
- { 0xff30, "\x00\x50" },
- { 0xff31, "\x00\x51" },
- { 0xff32, "\x00\x52" },
- { 0xff33, "\x00\x53" },
- { 0xff34, "\x00\x54" },
- { 0xff35, "\x00\x55" },
- { 0xff36, "\x00\x56" },
- { 0xff37, "\x00\x57" },
- { 0xff38, "\x00\x58" },
- { 0xff39, "\x00\x59" },
- { 0xff3a, "\x00\x5a" },
- { 0xff3b, "\x00\x5b" },
- { 0xff3c, "\x00\x5c" },
- { 0xff3d, "\x00\x5d" },
- { 0xff3e, "\x00\x5e" },
- { 0xff3f, "\x00\x5f" },
- { 0xff40, "\x00\x60" },
- { 0xff41, "\x00\x61" },
- { 0xff42, "\x00\x62" },
- { 0xff43, "\x00\x63" },
- { 0xff44, "\x00\x64" },
- { 0xff45, "\x00\x65" },
- { 0xff46, "\x00\x66" },
- { 0xff47, "\x00\x67" },
- { 0xff48, "\x00\x68" },
- { 0xff49, "\x00\x69" },
- { 0xff4a, "\x00\x6a" },
- { 0xff4b, "\x00\x6b" },
- { 0xff4c, "\x00\x6c" },
- { 0xff4d, "\x00\x6d" },
- { 0xff4e, "\x00\x6e" },
- { 0xff4f, "\x00\x6f" },
- { 0xff50, "\x00\x70" },
- { 0xff51, "\x00\x71" },
- { 0xff52, "\x00\x72" },
- { 0xff53, "\x00\x73" },
- { 0xff54, "\x00\x74" },
- { 0xff55, "\x00\x75" },
- { 0xff56, "\x00\x76" },
- { 0xff57, "\x00\x77" },
- { 0xff58, "\x00\x78" },
- { 0xff59, "\x00\x79" },
- { 0xff5a, "\x00\x7a" },
- { 0xff5b, "\x00\x7b" },
- { 0xff5c, "\x00\x7c" },
- { 0xff5d, "\x00\x7d" },
- { 0xff5e, "\x00\x7e" },
- { 0xff61, "\x30\x02" },
- { 0xff62, "\x30\x0c" },
- { 0xff63, "\x30\x0d" },
- { 0xff64, "\x30\x01" },
- { 0xff65, "\x30\xfb" },
- { 0xff66, "\x30\xf2" },
- { 0xff67, "\x30\xa1" },
- { 0xff68, "\x30\xa3" },
- { 0xff69, "\x30\xa5" },
- { 0xff6a, "\x30\xa7" },
- { 0xff6b, "\x30\xa9" },
- { 0xff6c, "\x30\xe3" },
- { 0xff6d, "\x30\xe5" },
- { 0xff6e, "\x30\xe7" },
- { 0xff6f, "\x30\xc3" },
- { 0xff70, "\x30\xfc" },
- { 0xff71, "\x30\xa2" },
- { 0xff72, "\x30\xa4" },
- { 0xff73, "\x30\xa6" },
- { 0xff74, "\x30\xa8" },
- { 0xff75, "\x30\xaa" },
- { 0xff76, "\x30\xab" },
- { 0xff77, "\x30\xad" },
- { 0xff78, "\x30\xaf" },
- { 0xff79, "\x30\xb1" },
- { 0xff7a, "\x30\xb3" },
- { 0xff7b, "\x30\xb5" },
- { 0xff7c, "\x30\xb7" },
- { 0xff7d, "\x30\xb9" },
- { 0xff7e, "\x30\xbb" },
- { 0xff7f, "\x30\xbd" },
- { 0xff80, "\x30\xbf" },
- { 0xff81, "\x30\xc1" },
- { 0xff82, "\x30\xc4" },
- { 0xff83, "\x30\xc6" },
- { 0xff84, "\x30\xc8" },
- { 0xff85, "\x30\xca" },
- { 0xff86, "\x30\xcb" },
- { 0xff87, "\x30\xcc" },
- { 0xff88, "\x30\xcd" },
- { 0xff89, "\x30\xce" },
- { 0xff8a, "\x30\xcf" },
- { 0xff8b, "\x30\xd2" },
- { 0xff8c, "\x30\xd5" },
- { 0xff8d, "\x30\xd8" },
- { 0xff8e, "\x30\xdb" },
- { 0xff8f, "\x30\xde" },
- { 0xff90, "\x30\xdf" },
- { 0xff91, "\x30\xe0" },
- { 0xff92, "\x30\xe1" },
- { 0xff93, "\x30\xe2" },
- { 0xff94, "\x30\xe4" },
- { 0xff95, "\x30\xe6" },
- { 0xff96, "\x30\xe8" },
- { 0xff97, "\x30\xe9" },
- { 0xff98, "\x30\xea" },
- { 0xff99, "\x30\xeb" },
- { 0xff9a, "\x30\xec" },
- { 0xff9b, "\x30\xed" },
- { 0xff9c, "\x30\xef" },
- { 0xff9d, "\x30\xf3" },
- { 0xff9e, "\x30\x99" },
- { 0xff9f, "\x30\x9a" },
- { 0xffa0, "\x31\x64" },
- { 0xffa1, "\x31\x31" },
- { 0xffa2, "\x31\x32" },
- { 0xffa3, "\x31\x33" },
- { 0xffa4, "\x31\x34" },
- { 0xffa5, "\x31\x35" },
- { 0xffa6, "\x31\x36" },
- { 0xffa7, "\x31\x37" },
- { 0xffa8, "\x31\x38" },
- { 0xffa9, "\x31\x39" },
- { 0xffaa, "\x31\x3a" },
- { 0xffab, "\x31\x3b" },
- { 0xffac, "\x31\x3c" },
- { 0xffad, "\x31\x3d" },
- { 0xffae, "\x31\x3e" },
- { 0xffaf, "\x31\x3f" },
- { 0xffb0, "\x31\x40" },
- { 0xffb1, "\x31\x41" },
- { 0xffb2, "\x31\x42" },
- { 0xffb3, "\x31\x43" },
- { 0xffb4, "\x31\x44" },
- { 0xffb5, "\x31\x45" },
- { 0xffb6, "\x31\x46" },
- { 0xffb7, "\x31\x47" },
- { 0xffb8, "\x31\x48" },
- { 0xffb9, "\x31\x49" },
- { 0xffba, "\x31\x4a" },
- { 0xffbb, "\x31\x4b" },
- { 0xffbc, "\x31\x4c" },
- { 0xffbd, "\x31\x4d" },
- { 0xffbe, "\x31\x4e" },
- { 0xffc2, "\x31\x4f" },
- { 0xffc3, "\x31\x50" },
- { 0xffc4, "\x31\x51" },
- { 0xffc5, "\x31\x52" },
- { 0xffc6, "\x31\x53" },
- { 0xffc7, "\x31\x54" },
- { 0xffca, "\x31\x55" },
- { 0xffcb, "\x31\x56" },
- { 0xffcc, "\x31\x57" },
- { 0xffcd, "\x31\x58" },
- { 0xffce, "\x31\x59" },
- { 0xffcf, "\x31\x5a" },
- { 0xffd2, "\x31\x5b" },
- { 0xffd3, "\x31\x5c" },
- { 0xffd4, "\x31\x5d" },
- { 0xffd5, "\x31\x5e" },
- { 0xffd6, "\x31\x5f" },
- { 0xffd7, "\x31\x60" },
- { 0xffda, "\x31\x61" },
- { 0xffdb, "\x31\x62" },
- { 0xffdc, "\x31\x63" },
- { 0xffe0, "\x00\xa2" },
- { 0xffe1, "\x00\xa3" },
- { 0xffe2, "\x00\xac" },
- { 0xffe3, "\x00\xaf" },
- { 0xffe4, "\x00\xa6" },
- { 0xffe5, "\x00\xa5" },
- { 0xffe6, "\x20\xa9" },
- { 0xffe8, "\x25\x02" },
- { 0xffe9, "\x21\x90" },
- { 0xffea, "\x21\x91" },
- { 0xffeb, "\x21\x92" },
- { 0xffec, "\x21\x93" },
- { 0xffed, "\x25\xa0" },
- { 0xffee, "\x25\xcb" }
-};
-
-#endif /* __JAVA_CHARDECOMP_H__ */
diff --git a/libjava/include/java-chartables.h b/libjava/include/java-chartables.h
deleted file mode 100644
index b1053da61cb..00000000000
--- a/libjava/include/java-chartables.h
+++ /dev/null
@@ -1,82984 +0,0 @@
-// java-chartables.h - Character tables for java.lang.Character -*- c++ -*-
-
-#ifndef __JAVA_CHARTABLES_H__
-#define __JAVA_CHARTABLES_H__
-
-// These tables are automatically generated by the chartables.pl
-// script. DO NOT EDIT the tables. Instead, fix the script
-// and run it again.
-
-// This file should only be included by natCharacter.cc
-
-static const jchar title_to_lower_table[][2] =
- {
- { 0x01c5, 0x01c6 }, // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
- { 0x01c8, 0x01c9 }, // LATIN CAPITAL LETTER L WITH SMALL LETTER J
- { 0x01cb, 0x01cc }, // LATIN CAPITAL LETTER N WITH SMALL LETTER J
- { 0x01f2, 0x01f3 } // LATIN CAPITAL LETTER D WITH SMALL LETTER Z
- };
-
-static const jchar title_to_upper_table[][2] =
- {
- { 0x01c5, 0x01c4 }, // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
- { 0x01c8, 0x01c7 }, // LATIN CAPITAL LETTER L WITH SMALL LETTER J
- { 0x01cb, 0x01ca }, // LATIN CAPITAL LETTER N WITH SMALL LETTER J
- { 0x01f2, 0x01f1 } // LATIN CAPITAL LETTER D WITH SMALL LETTER Z
- };
-
-#ifdef COMPACT_CHARACTER
-
-#define TAMIL_DIGIT_ONE 0x0be7
-
-static const jchar numeric_table[] =
- { 0x00b2, 0x00b3, 0x00b9, 0x00bc, 0x00bd,
- 0x00be, 0x09f4, 0x09f5, 0x09f6, 0x09f7,
- 0x09f8, 0x09f9, 0x0bf0, 0x0bf1, 0x0bf2,
- 0x2070, 0x2074, 0x2075, 0x2076, 0x2077,
- 0x2078, 0x2079, 0x2080, 0x2081, 0x2082,
- 0x2083, 0x2084, 0x2085, 0x2086, 0x2087,
- 0x2088, 0x2089, 0x2153, 0x2154, 0x2155,
- 0x2156, 0x2157, 0x2158, 0x2159, 0x215a,
- 0x215b, 0x215c, 0x215d, 0x215e, 0x215f,
- 0x2160, 0x2161, 0x2162, 0x2163, 0x2164,
- 0x2165, 0x2166, 0x2167, 0x2168, 0x2169,
- 0x216a, 0x216b, 0x216c, 0x216d, 0x216e,
- 0x216f, 0x2170, 0x2171, 0x2172, 0x2173,
- 0x2174, 0x2175, 0x2176, 0x2177, 0x2178,
- 0x2179, 0x217a, 0x217b, 0x217c, 0x217d,
- 0x217e, 0x217f, 0x2180, 0x2181, 0x2182,
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464,
- 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
- 0x246a, 0x246b, 0x246c, 0x246d, 0x246e,
- 0x246f, 0x2470, 0x2471, 0x2472, 0x2473,
- 0x2474, 0x2475, 0x2476, 0x2477, 0x2478,
- 0x2479, 0x247a, 0x247b, 0x247c, 0x247d,
- 0x247e, 0x247f, 0x2480, 0x2481, 0x2482,
- 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
- 0x2488, 0x2489, 0x248a, 0x248b, 0x248c,
- 0x248d, 0x248e, 0x248f, 0x2490, 0x2491,
- 0x2492, 0x2493, 0x2494, 0x2495, 0x2496,
- 0x2497, 0x2498, 0x2499, 0x249a, 0x249b,
- 0x24ea, 0x2776, 0x2777, 0x2778, 0x2779,
- 0x277a, 0x277b, 0x277c, 0x277d, 0x277e,
- 0x277f, 0x2780, 0x2781, 0x2782, 0x2783,
- 0x2784, 0x2785, 0x2786, 0x2787, 0x2788,
- 0x2789, 0x278a, 0x278b, 0x278c, 0x278d,
- 0x278e, 0x278f, 0x2790, 0x2791, 0x2792,
- 0x2793, 0x3007, 0x3021, 0x3022, 0x3023,
- 0x3024, 0x3025, 0x3026, 0x3027, 0x3028,
- 0x3029, 0x3280, 0x3281, 0x3282, 0x3283,
- 0x3284, 0x3285, 0x3286, 0x3287, 0x3288,
- 0x3289 };
-
-static const jshort numeric_value[] =
- { 2, 3, 1, -2, -2, -2, 1, 2, 3, 4,
- -2, 16, 10, 100, 1000, 0, 4, 5, 6, 7,
- 8, 9, 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, 1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 50, 100, 500,
- 1000, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 50, 100, 500, 1000, 1000, 5000, 10000,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 0, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10 };
-
-static const jchar digit_table[][2] =
- {
- { 0x0030, 0x0039 },
- { 0x0660, 0x0669 },
- { 0x06f0, 0x06f9 },
- { 0x0966, 0x096f },
- { 0x09e6, 0x09ef },
- { 0x0a66, 0x0a6f },
- { 0x0ae6, 0x0aef },
- { 0x0b66, 0x0b6f },
- { 0x0be7, 0x0bef },
- { 0x0c66, 0x0c6f },
- { 0x0ce6, 0x0cef },
- { 0x0d66, 0x0d6f },
- { 0x0e50, 0x0e59 },
- { 0x0ed0, 0x0ed9 },
- { 0x0f20, 0x0f29 },
- { 0xff10, 0xff19 }
- };
-
-static const jchar space_table[][2] =
- {
- { 0x0020, 0x0020 },
- { 0x00a0, 0x00a0 },
- { 0x2000, 0x200b },
- { 0x2028, 0x2029 },
- { 0x3000, 0x3000 }
- };
-
-static const jchar upper_case_table[][2] =
- {
- { 0x0041, 0x005a },
- { 0x00c0, 0x00d6 },
- { 0x00d8, 0x00de },
- { 0x0100, 0x0100 },
- { 0x0102, 0x0102 },
- { 0x0104, 0x0104 },
- { 0x0106, 0x0106 },
- { 0x0108, 0x0108 },
- { 0x010a, 0x010a },
- { 0x010c, 0x010c },
- { 0x010e, 0x010e },
- { 0x0110, 0x0110 },
- { 0x0112, 0x0112 },
- { 0x0114, 0x0114 },
- { 0x0116, 0x0116 },
- { 0x0118, 0x0118 },
- { 0x011a, 0x011a },
- { 0x011c, 0x011c },
- { 0x011e, 0x011e },
- { 0x0120, 0x0120 },
- { 0x0122, 0x0122 },
- { 0x0124, 0x0124 },
- { 0x0126, 0x0126 },
- { 0x0128, 0x0128 },
- { 0x012a, 0x012a },
- { 0x012c, 0x012c },
- { 0x012e, 0x012e },
- { 0x0130, 0x0130 },
- { 0x0132, 0x0132 },
- { 0x0134, 0x0134 },
- { 0x0136, 0x0136 },
- { 0x0139, 0x0139 },
- { 0x013b, 0x013b },
- { 0x013d, 0x013d },
- { 0x013f, 0x013f },
- { 0x0141, 0x0141 },
- { 0x0143, 0x0143 },
- { 0x0145, 0x0145 },
- { 0x0147, 0x0147 },
- { 0x014a, 0x014a },
- { 0x014c, 0x014c },
- { 0x014e, 0x014e },
- { 0x0150, 0x0150 },
- { 0x0152, 0x0152 },
- { 0x0154, 0x0154 },
- { 0x0156, 0x0156 },
- { 0x0158, 0x0158 },
- { 0x015a, 0x015a },
- { 0x015c, 0x015c },
- { 0x015e, 0x015e },
- { 0x0160, 0x0160 },
- { 0x0162, 0x0162 },
- { 0x0164, 0x0164 },
- { 0x0166, 0x0166 },
- { 0x0168, 0x0168 },
- { 0x016a, 0x016a },
- { 0x016c, 0x016c },
- { 0x016e, 0x016e },
- { 0x0170, 0x0170 },
- { 0x0172, 0x0172 },
- { 0x0174, 0x0174 },
- { 0x0176, 0x0176 },
- { 0x0178, 0x0178 },
- { 0x0179, 0x0179 },
- { 0x017b, 0x017b },
- { 0x017d, 0x017d },
- { 0x0181, 0x0181 },
- { 0x0182, 0x0182 },
- { 0x0184, 0x0184 },
- { 0x0186, 0x0186 },
- { 0x0187, 0x0187 },
- { 0x0189, 0x018a },
- { 0x018b, 0x018b },
- { 0x018e, 0x018e },
- { 0x018f, 0x018f },
- { 0x0190, 0x0190 },
- { 0x0191, 0x0191 },
- { 0x0193, 0x0193 },
- { 0x0194, 0x0194 },
- { 0x0196, 0x0196 },
- { 0x0197, 0x0197 },
- { 0x0198, 0x0198 },
- { 0x019c, 0x019c },
- { 0x019d, 0x019d },
- { 0x019f, 0x019f },
- { 0x01a0, 0x01a0 },
- { 0x01a2, 0x01a2 },
- { 0x01a4, 0x01a4 },
- { 0x01a6, 0x01a6 },
- { 0x01a7, 0x01a7 },
- { 0x01a9, 0x01a9 },
- { 0x01ac, 0x01ac },
- { 0x01ae, 0x01ae },
- { 0x01af, 0x01af },
- { 0x01b1, 0x01b2 },
- { 0x01b3, 0x01b3 },
- { 0x01b5, 0x01b5 },
- { 0x01b7, 0x01b7 },
- { 0x01b8, 0x01b8 },
- { 0x01bc, 0x01bc },
- { 0x01c4, 0x01c4 },
- { 0x01c7, 0x01c7 },
- { 0x01ca, 0x01ca },
- { 0x01cd, 0x01cd },
- { 0x01cf, 0x01cf },
- { 0x01d1, 0x01d1 },
- { 0x01d3, 0x01d3 },
- { 0x01d5, 0x01d5 },
- { 0x01d7, 0x01d7 },
- { 0x01d9, 0x01d9 },
- { 0x01db, 0x01db },
- { 0x01de, 0x01de },
- { 0x01e0, 0x01e0 },
- { 0x01e2, 0x01e2 },
- { 0x01e4, 0x01e4 },
- { 0x01e6, 0x01e6 },
- { 0x01e8, 0x01e8 },
- { 0x01ea, 0x01ea },
- { 0x01ec, 0x01ec },
- { 0x01ee, 0x01ee },
- { 0x01f1, 0x01f1 },
- { 0x01f4, 0x01f4 },
- { 0x01fa, 0x01fa },
- { 0x01fc, 0x01fc },
- { 0x01fe, 0x01fe },
- { 0x0200, 0x0200 },
- { 0x0202, 0x0202 },
- { 0x0204, 0x0204 },
- { 0x0206, 0x0206 },
- { 0x0208, 0x0208 },
- { 0x020a, 0x020a },
- { 0x020c, 0x020c },
- { 0x020e, 0x020e },
- { 0x0210, 0x0210 },
- { 0x0212, 0x0212 },
- { 0x0214, 0x0214 },
- { 0x0216, 0x0216 },
- { 0x0386, 0x0386 },
- { 0x0388, 0x038a },
- { 0x038c, 0x038c },
- { 0x038e, 0x038f },
- { 0x0391, 0x03a1 },
- { 0x03a3, 0x03ab },
- { 0x03e2, 0x03e2 },
- { 0x03e4, 0x03e4 },
- { 0x03e6, 0x03e6 },
- { 0x03e8, 0x03e8 },
- { 0x03ea, 0x03ea },
- { 0x03ec, 0x03ec },
- { 0x03ee, 0x03ee },
- { 0x0401, 0x040c },
- { 0x040e, 0x040f },
- { 0x0410, 0x042f },
- { 0x0460, 0x0460 },
- { 0x0462, 0x0462 },
- { 0x0464, 0x0464 },
- { 0x0466, 0x0466 },
- { 0x0468, 0x0468 },
- { 0x046a, 0x046a },
- { 0x046c, 0x046c },
- { 0x046e, 0x046e },
- { 0x0470, 0x0470 },
- { 0x0472, 0x0472 },
- { 0x0474, 0x0474 },
- { 0x0476, 0x0476 },
- { 0x0478, 0x0478 },
- { 0x047a, 0x047a },
- { 0x047c, 0x047c },
- { 0x047e, 0x047e },
- { 0x0480, 0x0480 },
- { 0x0490, 0x0490 },
- { 0x0492, 0x0492 },
- { 0x0494, 0x0494 },
- { 0x0496, 0x0496 },
- { 0x0498, 0x0498 },
- { 0x049a, 0x049a },
- { 0x049c, 0x049c },
- { 0x049e, 0x049e },
- { 0x04a0, 0x04a0 },
- { 0x04a2, 0x04a2 },
- { 0x04a4, 0x04a4 },
- { 0x04a6, 0x04a6 },
- { 0x04a8, 0x04a8 },
- { 0x04aa, 0x04aa },
- { 0x04ac, 0x04ac },
- { 0x04ae, 0x04ae },
- { 0x04b0, 0x04b0 },
- { 0x04b2, 0x04b2 },
- { 0x04b4, 0x04b4 },
- { 0x04b6, 0x04b6 },
- { 0x04b8, 0x04b8 },
- { 0x04ba, 0x04ba },
- { 0x04bc, 0x04bc },
- { 0x04be, 0x04be },
- { 0x04c1, 0x04c1 },
- { 0x04c3, 0x04c3 },
- { 0x04c7, 0x04c7 },
- { 0x04cb, 0x04cb },
- { 0x04d0, 0x04d0 },
- { 0x04d2, 0x04d2 },
- { 0x04d4, 0x04d4 },
- { 0x04d6, 0x04d6 },
- { 0x04d8, 0x04d8 },
- { 0x04da, 0x04da },
- { 0x04dc, 0x04dc },
- { 0x04de, 0x04de },
- { 0x04e0, 0x04e0 },
- { 0x04e2, 0x04e2 },
- { 0x04e4, 0x04e4 },
- { 0x04e6, 0x04e6 },
- { 0x04e8, 0x04e8 },
- { 0x04ea, 0x04ea },
- { 0x04ee, 0x04ee },
- { 0x04f0, 0x04f0 },
- { 0x04f2, 0x04f2 },
- { 0x04f4, 0x04f4 },
- { 0x04f8, 0x04f8 },
- { 0x0531, 0x0556 },
- { 0x10a0, 0x10c5 },
- { 0x1e00, 0x1e00 },
- { 0x1e02, 0x1e02 },
- { 0x1e04, 0x1e04 },
- { 0x1e06, 0x1e06 },
- { 0x1e08, 0x1e08 },
- { 0x1e0a, 0x1e0a },
- { 0x1e0c, 0x1e0c },
- { 0x1e0e, 0x1e0e },
- { 0x1e10, 0x1e10 },
- { 0x1e12, 0x1e12 },
- { 0x1e14, 0x1e14 },
- { 0x1e16, 0x1e16 },
- { 0x1e18, 0x1e18 },
- { 0x1e1a, 0x1e1a },
- { 0x1e1c, 0x1e1c },
- { 0x1e1e, 0x1e1e },
- { 0x1e20, 0x1e20 },
- { 0x1e22, 0x1e22 },
- { 0x1e24, 0x1e24 },
- { 0x1e26, 0x1e26 },
- { 0x1e28, 0x1e28 },
- { 0x1e2a, 0x1e2a },
- { 0x1e2c, 0x1e2c },
- { 0x1e2e, 0x1e2e },
- { 0x1e30, 0x1e30 },
- { 0x1e32, 0x1e32 },
- { 0x1e34, 0x1e34 },
- { 0x1e36, 0x1e36 },
- { 0x1e38, 0x1e38 },
- { 0x1e3a, 0x1e3a },
- { 0x1e3c, 0x1e3c },
- { 0x1e3e, 0x1e3e },
- { 0x1e40, 0x1e40 },
- { 0x1e42, 0x1e42 },
- { 0x1e44, 0x1e44 },
- { 0x1e46, 0x1e46 },
- { 0x1e48, 0x1e48 },
- { 0x1e4a, 0x1e4a },
- { 0x1e4c, 0x1e4c },
- { 0x1e4e, 0x1e4e },
- { 0x1e50, 0x1e50 },
- { 0x1e52, 0x1e52 },
- { 0x1e54, 0x1e54 },
- { 0x1e56, 0x1e56 },
- { 0x1e58, 0x1e58 },
- { 0x1e5a, 0x1e5a },
- { 0x1e5c, 0x1e5c },
- { 0x1e5e, 0x1e5e },
- { 0x1e60, 0x1e60 },
- { 0x1e62, 0x1e62 },
- { 0x1e64, 0x1e64 },
- { 0x1e66, 0x1e66 },
- { 0x1e68, 0x1e68 },
- { 0x1e6a, 0x1e6a },
- { 0x1e6c, 0x1e6c },
- { 0x1e6e, 0x1e6e },
- { 0x1e70, 0x1e70 },
- { 0x1e72, 0x1e72 },
- { 0x1e74, 0x1e74 },
- { 0x1e76, 0x1e76 },
- { 0x1e78, 0x1e78 },
- { 0x1e7a, 0x1e7a },
- { 0x1e7c, 0x1e7c },
- { 0x1e7e, 0x1e7e },
- { 0x1e80, 0x1e80 },
- { 0x1e82, 0x1e82 },
- { 0x1e84, 0x1e84 },
- { 0x1e86, 0x1e86 },
- { 0x1e88, 0x1e88 },
- { 0x1e8a, 0x1e8a },
- { 0x1e8c, 0x1e8c },
- { 0x1e8e, 0x1e8e },
- { 0x1e90, 0x1e90 },
- { 0x1e92, 0x1e92 },
- { 0x1e94, 0x1e94 },
- { 0x1ea0, 0x1ea0 },
- { 0x1ea2, 0x1ea2 },
- { 0x1ea4, 0x1ea4 },
- { 0x1ea6, 0x1ea6 },
- { 0x1ea8, 0x1ea8 },
- { 0x1eaa, 0x1eaa },
- { 0x1eac, 0x1eac },
- { 0x1eae, 0x1eae },
- { 0x1eb0, 0x1eb0 },
- { 0x1eb2, 0x1eb2 },
- { 0x1eb4, 0x1eb4 },
- { 0x1eb6, 0x1eb6 },
- { 0x1eb8, 0x1eb8 },
- { 0x1eba, 0x1eba },
- { 0x1ebc, 0x1ebc },
- { 0x1ebe, 0x1ebe },
- { 0x1ec0, 0x1ec0 },
- { 0x1ec2, 0x1ec2 },
- { 0x1ec4, 0x1ec4 },
- { 0x1ec6, 0x1ec6 },
- { 0x1ec8, 0x1ec8 },
- { 0x1eca, 0x1eca },
- { 0x1ecc, 0x1ecc },
- { 0x1ece, 0x1ece },
- { 0x1ed0, 0x1ed0 },
- { 0x1ed2, 0x1ed2 },
- { 0x1ed4, 0x1ed4 },
- { 0x1ed6, 0x1ed6 },
- { 0x1ed8, 0x1ed8 },
- { 0x1eda, 0x1eda },
- { 0x1edc, 0x1edc },
- { 0x1ede, 0x1ede },
- { 0x1ee0, 0x1ee0 },
- { 0x1ee2, 0x1ee2 },
- { 0x1ee4, 0x1ee4 },
- { 0x1ee6, 0x1ee6 },
- { 0x1ee8, 0x1ee8 },
- { 0x1eea, 0x1eea },
- { 0x1eec, 0x1eec },
- { 0x1eee, 0x1eee },
- { 0x1ef0, 0x1ef0 },
- { 0x1ef2, 0x1ef2 },
- { 0x1ef4, 0x1ef4 },
- { 0x1ef6, 0x1ef6 },
- { 0x1ef8, 0x1ef8 },
- { 0x1f08, 0x1f0f },
- { 0x1f18, 0x1f1d },
- { 0x1f28, 0x1f2f },
- { 0x1f38, 0x1f3f },
- { 0x1f48, 0x1f4d },
- { 0x1f59, 0x1f59 },
- { 0x1f5b, 0x1f5b },
- { 0x1f5d, 0x1f5d },
- { 0x1f5f, 0x1f5f },
- { 0x1f68, 0x1f6f },
- { 0x1f88, 0x1f8f },
- { 0x1f98, 0x1f9f },
- { 0x1fa8, 0x1faf },
- { 0x1fb8, 0x1fb9 },
- { 0x1fba, 0x1fbb },
- { 0x1fbc, 0x1fbc },
- { 0x1fc8, 0x1fcb },
- { 0x1fcc, 0x1fcc },
- { 0x1fd8, 0x1fd9 },
- { 0x1fda, 0x1fdb },
- { 0x1fe8, 0x1fe9 },
- { 0x1fea, 0x1feb },
- { 0x1fec, 0x1fec },
- { 0x1ff8, 0x1ff9 },
- { 0x1ffa, 0x1ffb },
- { 0x1ffc, 0x1ffc },
- { 0x2160, 0x216f },
- { 0x24b6, 0x24cf },
- { 0xff21, 0xff3a }
- };
-
-static const jchar upper_case_map_table[] =
- { 0x0061, 0x00e0, 0x00f8, 0x0101, 0x0103,
- 0x0105, 0x0107, 0x0109, 0x010b, 0x010d,
- 0x010f, 0x0111, 0x0113, 0x0115, 0x0117,
- 0x0119, 0x011b, 0x011d, 0x011f, 0x0121,
- 0x0123, 0x0125, 0x0127, 0x0129, 0x012b,
- 0x012d, 0x012f, 0x0069, 0x0133, 0x0135,
- 0x0137, 0x013a, 0x013c, 0x013e, 0x0140,
- 0x0142, 0x0144, 0x0146, 0x0148, 0x014b,
- 0x014d, 0x014f, 0x0151, 0x0153, 0x0155,
- 0x0157, 0x0159, 0x015b, 0x015d, 0x015f,
- 0x0161, 0x0163, 0x0165, 0x0167, 0x0169,
- 0x016b, 0x016d, 0x016f, 0x0171, 0x0173,
- 0x0175, 0x0177, 0x00ff, 0x017a, 0x017c,
- 0x017e, 0x0253, 0x0183, 0x0185, 0x0254,
- 0x0188, 0x0256, 0x018c, 0x01dd, 0x0259,
- 0x025b, 0x0192, 0x0260, 0x0263, 0x0269,
- 0x0268, 0x0199, 0x026f, 0x0272, 0x0275,
- 0x01a1, 0x01a3, 0x01a5, 0x0280, 0x01a8,
- 0x0283, 0x01ad, 0x0288, 0x01b0, 0x028a,
- 0x01b4, 0x01b6, 0x0292, 0x01b9, 0x01bd,
- 0x01c6, 0x01c9, 0x01cc, 0x01ce, 0x01d0,
- 0x01d2, 0x01d4, 0x01d6, 0x01d8, 0x01da,
- 0x01dc, 0x01df, 0x01e1, 0x01e3, 0x01e5,
- 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef,
- 0x01f3, 0x01f5, 0x01fb, 0x01fd, 0x01ff,
- 0x0201, 0x0203, 0x0205, 0x0207, 0x0209,
- 0x020b, 0x020d, 0x020f, 0x0211, 0x0213,
- 0x0215, 0x0217, 0x03ac, 0x03ad, 0x03cc,
- 0x03cd, 0x03b1, 0x03c3, 0x03e3, 0x03e5,
- 0x03e7, 0x03e9, 0x03eb, 0x03ed, 0x03ef,
- 0x0451, 0x045e, 0x0430, 0x0461, 0x0463,
- 0x0465, 0x0467, 0x0469, 0x046b, 0x046d,
- 0x046f, 0x0471, 0x0473, 0x0475, 0x0477,
- 0x0479, 0x047b, 0x047d, 0x047f, 0x0481,
- 0x0491, 0x0493, 0x0495, 0x0497, 0x0499,
- 0x049b, 0x049d, 0x049f, 0x04a1, 0x04a3,
- 0x04a5, 0x04a7, 0x04a9, 0x04ab, 0x04ad,
- 0x04af, 0x04b1, 0x04b3, 0x04b5, 0x04b7,
- 0x04b9, 0x04bb, 0x04bd, 0x04bf, 0x04c2,
- 0x04c4, 0x04c8, 0x04cc, 0x04d1, 0x04d3,
- 0x04d5, 0x04d7, 0x04d9, 0x04db, 0x04dd,
- 0x04df, 0x04e1, 0x04e3, 0x04e5, 0x04e7,
- 0x04e9, 0x04eb, 0x04ef, 0x04f1, 0x04f3,
- 0x04f5, 0x04f9, 0x0561, 0x10d0, 0x1e01,
- 0x1e03, 0x1e05, 0x1e07, 0x1e09, 0x1e0b,
- 0x1e0d, 0x1e0f, 0x1e11, 0x1e13, 0x1e15,
- 0x1e17, 0x1e19, 0x1e1b, 0x1e1d, 0x1e1f,
- 0x1e21, 0x1e23, 0x1e25, 0x1e27, 0x1e29,
- 0x1e2b, 0x1e2d, 0x1e2f, 0x1e31, 0x1e33,
- 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 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, 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, 0x1f00,
- 0x1f10, 0x1f20, 0x1f30, 0x1f40, 0x1f51,
- 0x1f53, 0x1f55, 0x1f57, 0x1f60, 0x1f80,
- 0x1f90, 0x1fa0, 0x1fb0, 0x1f70, 0x1fb3,
- 0x1f72, 0x1fc3, 0x1fd0, 0x1f76, 0x1fe0,
- 0x1f7a, 0x1fe5, 0x1f78, 0x1f7c, 0x1ff3,
- 0x2170, 0x24d0, 0xff41 };
-
-static const jchar lower_case_table[][2] =
- {
- { 0x0061, 0x007a },
- { 0x00e0, 0x00f6 },
- { 0x00f8, 0x00fe },
- { 0x00ff, 0x00ff },
- { 0x0101, 0x0101 },
- { 0x0103, 0x0103 },
- { 0x0105, 0x0105 },
- { 0x0107, 0x0107 },
- { 0x0109, 0x0109 },
- { 0x010b, 0x010b },
- { 0x010d, 0x010d },
- { 0x010f, 0x010f },
- { 0x0111, 0x0111 },
- { 0x0113, 0x0113 },
- { 0x0115, 0x0115 },
- { 0x0117, 0x0117 },
- { 0x0119, 0x0119 },
- { 0x011b, 0x011b },
- { 0x011d, 0x011d },
- { 0x011f, 0x011f },
- { 0x0121, 0x0121 },
- { 0x0123, 0x0123 },
- { 0x0125, 0x0125 },
- { 0x0127, 0x0127 },
- { 0x0129, 0x0129 },
- { 0x012b, 0x012b },
- { 0x012d, 0x012d },
- { 0x012f, 0x012f },
- { 0x0131, 0x0131 },
- { 0x0133, 0x0133 },
- { 0x0135, 0x0135 },
- { 0x0137, 0x0137 },
- { 0x013a, 0x013a },
- { 0x013c, 0x013c },
- { 0x013e, 0x013e },
- { 0x0140, 0x0140 },
- { 0x0142, 0x0142 },
- { 0x0144, 0x0144 },
- { 0x0146, 0x0146 },
- { 0x0148, 0x0148 },
- { 0x014b, 0x014b },
- { 0x014d, 0x014d },
- { 0x014f, 0x014f },
- { 0x0151, 0x0151 },
- { 0x0153, 0x0153 },
- { 0x0155, 0x0155 },
- { 0x0157, 0x0157 },
- { 0x0159, 0x0159 },
- { 0x015b, 0x015b },
- { 0x015d, 0x015d },
- { 0x015f, 0x015f },
- { 0x0161, 0x0161 },
- { 0x0163, 0x0163 },
- { 0x0165, 0x0165 },
- { 0x0167, 0x0167 },
- { 0x0169, 0x0169 },
- { 0x016b, 0x016b },
- { 0x016d, 0x016d },
- { 0x016f, 0x016f },
- { 0x0171, 0x0171 },
- { 0x0173, 0x0173 },
- { 0x0175, 0x0175 },
- { 0x0177, 0x0177 },
- { 0x017a, 0x017a },
- { 0x017c, 0x017c },
- { 0x017e, 0x017e },
- { 0x017f, 0x017f },
- { 0x0183, 0x0183 },
- { 0x0185, 0x0185 },
- { 0x0188, 0x0188 },
- { 0x018c, 0x018c },
- { 0x0192, 0x0192 },
- { 0x0199, 0x0199 },
- { 0x01a1, 0x01a1 },
- { 0x01a3, 0x01a3 },
- { 0x01a5, 0x01a5 },
- { 0x01a8, 0x01a8 },
- { 0x01ad, 0x01ad },
- { 0x01b0, 0x01b0 },
- { 0x01b4, 0x01b4 },
- { 0x01b6, 0x01b6 },
- { 0x01b9, 0x01b9 },
- { 0x01bd, 0x01bd },
- { 0x01c6, 0x01c6 },
- { 0x01c9, 0x01c9 },
- { 0x01cc, 0x01cc },
- { 0x01ce, 0x01ce },
- { 0x01d0, 0x01d0 },
- { 0x01d2, 0x01d2 },
- { 0x01d4, 0x01d4 },
- { 0x01d6, 0x01d6 },
- { 0x01d8, 0x01d8 },
- { 0x01da, 0x01da },
- { 0x01dc, 0x01dc },
- { 0x01dd, 0x01dd },
- { 0x01df, 0x01df },
- { 0x01e1, 0x01e1 },
- { 0x01e3, 0x01e3 },
- { 0x01e5, 0x01e5 },
- { 0x01e7, 0x01e7 },
- { 0x01e9, 0x01e9 },
- { 0x01eb, 0x01eb },
- { 0x01ed, 0x01ed },
- { 0x01ef, 0x01ef },
- { 0x01f3, 0x01f3 },
- { 0x01f5, 0x01f5 },
- { 0x01fb, 0x01fb },
- { 0x01fd, 0x01fd },
- { 0x01ff, 0x01ff },
- { 0x0201, 0x0201 },
- { 0x0203, 0x0203 },
- { 0x0205, 0x0205 },
- { 0x0207, 0x0207 },
- { 0x0209, 0x0209 },
- { 0x020b, 0x020b },
- { 0x020d, 0x020d },
- { 0x020f, 0x020f },
- { 0x0211, 0x0211 },
- { 0x0213, 0x0213 },
- { 0x0215, 0x0215 },
- { 0x0217, 0x0217 },
- { 0x0253, 0x0253 },
- { 0x0254, 0x0254 },
- { 0x0256, 0x0257 },
- { 0x0259, 0x0259 },
- { 0x025b, 0x025b },
- { 0x0260, 0x0260 },
- { 0x0263, 0x0263 },
- { 0x0268, 0x0268 },
- { 0x0269, 0x0269 },
- { 0x026f, 0x026f },
- { 0x0272, 0x0272 },
- { 0x0275, 0x0275 },
- { 0x0280, 0x0280 },
- { 0x0283, 0x0283 },
- { 0x0288, 0x0288 },
- { 0x028a, 0x028b },
- { 0x0292, 0x0292 },
- { 0x0345, 0x0345 },
- { 0x03ac, 0x03ac },
- { 0x03ad, 0x03af },
- { 0x03b1, 0x03c1 },
- { 0x03c2, 0x03c2 },
- { 0x03c3, 0x03cb },
- { 0x03cc, 0x03cc },
- { 0x03cd, 0x03ce },
- { 0x03d0, 0x03d0 },
- { 0x03d1, 0x03d1 },
- { 0x03d5, 0x03d5 },
- { 0x03d6, 0x03d6 },
- { 0x03e3, 0x03e3 },
- { 0x03e5, 0x03e5 },
- { 0x03e7, 0x03e7 },
- { 0x03e9, 0x03e9 },
- { 0x03eb, 0x03eb },
- { 0x03ed, 0x03ed },
- { 0x03ef, 0x03ef },
- { 0x03f0, 0x03f0 },
- { 0x03f1, 0x03f1 },
- { 0x03f2, 0x03f2 },
- { 0x0430, 0x044f },
- { 0x0451, 0x045c },
- { 0x045e, 0x045f },
- { 0x0461, 0x0461 },
- { 0x0463, 0x0463 },
- { 0x0465, 0x0465 },
- { 0x0467, 0x0467 },
- { 0x0469, 0x0469 },
- { 0x046b, 0x046b },
- { 0x046d, 0x046d },
- { 0x046f, 0x046f },
- { 0x0471, 0x0471 },
- { 0x0473, 0x0473 },
- { 0x0475, 0x0475 },
- { 0x0477, 0x0477 },
- { 0x0479, 0x0479 },
- { 0x047b, 0x047b },
- { 0x047d, 0x047d },
- { 0x047f, 0x047f },
- { 0x0481, 0x0481 },
- { 0x0491, 0x0491 },
- { 0x0493, 0x0493 },
- { 0x0495, 0x0495 },
- { 0x0497, 0x0497 },
- { 0x0499, 0x0499 },
- { 0x049b, 0x049b },
- { 0x049d, 0x049d },
- { 0x049f, 0x049f },
- { 0x04a1, 0x04a1 },
- { 0x04a3, 0x04a3 },
- { 0x04a5, 0x04a5 },
- { 0x04a7, 0x04a7 },
- { 0x04a9, 0x04a9 },
- { 0x04ab, 0x04ab },
- { 0x04ad, 0x04ad },
- { 0x04af, 0x04af },
- { 0x04b1, 0x04b1 },
- { 0x04b3, 0x04b3 },
- { 0x04b5, 0x04b5 },
- { 0x04b7, 0x04b7 },
- { 0x04b9, 0x04b9 },
- { 0x04bb, 0x04bb },
- { 0x04bd, 0x04bd },
- { 0x04bf, 0x04bf },
- { 0x04c2, 0x04c2 },
- { 0x04c4, 0x04c4 },
- { 0x04c8, 0x04c8 },
- { 0x04cc, 0x04cc },
- { 0x04d1, 0x04d1 },
- { 0x04d3, 0x04d3 },
- { 0x04d5, 0x04d5 },
- { 0x04d7, 0x04d7 },
- { 0x04d9, 0x04d9 },
- { 0x04db, 0x04db },
- { 0x04dd, 0x04dd },
- { 0x04df, 0x04df },
- { 0x04e1, 0x04e1 },
- { 0x04e3, 0x04e3 },
- { 0x04e5, 0x04e5 },
- { 0x04e7, 0x04e7 },
- { 0x04e9, 0x04e9 },
- { 0x04eb, 0x04eb },
- { 0x04ef, 0x04ef },
- { 0x04f1, 0x04f1 },
- { 0x04f3, 0x04f3 },
- { 0x04f5, 0x04f5 },
- { 0x04f9, 0x04f9 },
- { 0x0561, 0x0586 },
- { 0x1e01, 0x1e01 },
- { 0x1e03, 0x1e03 },
- { 0x1e05, 0x1e05 },
- { 0x1e07, 0x1e07 },
- { 0x1e09, 0x1e09 },
- { 0x1e0b, 0x1e0b },
- { 0x1e0d, 0x1e0d },
- { 0x1e0f, 0x1e0f },
- { 0x1e11, 0x1e11 },
- { 0x1e13, 0x1e13 },
- { 0x1e15, 0x1e15 },
- { 0x1e17, 0x1e17 },
- { 0x1e19, 0x1e19 },
- { 0x1e1b, 0x1e1b },
- { 0x1e1d, 0x1e1d },
- { 0x1e1f, 0x1e1f },
- { 0x1e21, 0x1e21 },
- { 0x1e23, 0x1e23 },
- { 0x1e25, 0x1e25 },
- { 0x1e27, 0x1e27 },
- { 0x1e29, 0x1e29 },
- { 0x1e2b, 0x1e2b },
- { 0x1e2d, 0x1e2d },
- { 0x1e2f, 0x1e2f },
- { 0x1e31, 0x1e31 },
- { 0x1e33, 0x1e33 },
- { 0x1e35, 0x1e35 },
- { 0x1e37, 0x1e37 },
- { 0x1e39, 0x1e39 },
- { 0x1e3b, 0x1e3b },
- { 0x1e3d, 0x1e3d },
- { 0x1e3f, 0x1e3f },
- { 0x1e41, 0x1e41 },
- { 0x1e43, 0x1e43 },
- { 0x1e45, 0x1e45 },
- { 0x1e47, 0x1e47 },
- { 0x1e49, 0x1e49 },
- { 0x1e4b, 0x1e4b },
- { 0x1e4d, 0x1e4d },
- { 0x1e4f, 0x1e4f },
- { 0x1e51, 0x1e51 },
- { 0x1e53, 0x1e53 },
- { 0x1e55, 0x1e55 },
- { 0x1e57, 0x1e57 },
- { 0x1e59, 0x1e59 },
- { 0x1e5b, 0x1e5b },
- { 0x1e5d, 0x1e5d },
- { 0x1e5f, 0x1e5f },
- { 0x1e61, 0x1e61 },
- { 0x1e63, 0x1e63 },
- { 0x1e65, 0x1e65 },
- { 0x1e67, 0x1e67 },
- { 0x1e69, 0x1e69 },
- { 0x1e6b, 0x1e6b },
- { 0x1e6d, 0x1e6d },
- { 0x1e6f, 0x1e6f },
- { 0x1e71, 0x1e71 },
- { 0x1e73, 0x1e73 },
- { 0x1e75, 0x1e75 },
- { 0x1e77, 0x1e77 },
- { 0x1e79, 0x1e79 },
- { 0x1e7b, 0x1e7b },
- { 0x1e7d, 0x1e7d },
- { 0x1e7f, 0x1e7f },
- { 0x1e81, 0x1e81 },
- { 0x1e83, 0x1e83 },
- { 0x1e85, 0x1e85 },
- { 0x1e87, 0x1e87 },
- { 0x1e89, 0x1e89 },
- { 0x1e8b, 0x1e8b },
- { 0x1e8d, 0x1e8d },
- { 0x1e8f, 0x1e8f },
- { 0x1e91, 0x1e91 },
- { 0x1e93, 0x1e93 },
- { 0x1e95, 0x1e95 },
- { 0x1e9b, 0x1e9b },
- { 0x1ea1, 0x1ea1 },
- { 0x1ea3, 0x1ea3 },
- { 0x1ea5, 0x1ea5 },
- { 0x1ea7, 0x1ea7 },
- { 0x1ea9, 0x1ea9 },
- { 0x1eab, 0x1eab },
- { 0x1ead, 0x1ead },
- { 0x1eaf, 0x1eaf },
- { 0x1eb1, 0x1eb1 },
- { 0x1eb3, 0x1eb3 },
- { 0x1eb5, 0x1eb5 },
- { 0x1eb7, 0x1eb7 },
- { 0x1eb9, 0x1eb9 },
- { 0x1ebb, 0x1ebb },
- { 0x1ebd, 0x1ebd },
- { 0x1ebf, 0x1ebf },
- { 0x1ec1, 0x1ec1 },
- { 0x1ec3, 0x1ec3 },
- { 0x1ec5, 0x1ec5 },
- { 0x1ec7, 0x1ec7 },
- { 0x1ec9, 0x1ec9 },
- { 0x1ecb, 0x1ecb },
- { 0x1ecd, 0x1ecd },
- { 0x1ecf, 0x1ecf },
- { 0x1ed1, 0x1ed1 },
- { 0x1ed3, 0x1ed3 },
- { 0x1ed5, 0x1ed5 },
- { 0x1ed7, 0x1ed7 },
- { 0x1ed9, 0x1ed9 },
- { 0x1edb, 0x1edb },
- { 0x1edd, 0x1edd },
- { 0x1edf, 0x1edf },
- { 0x1ee1, 0x1ee1 },
- { 0x1ee3, 0x1ee3 },
- { 0x1ee5, 0x1ee5 },
- { 0x1ee7, 0x1ee7 },
- { 0x1ee9, 0x1ee9 },
- { 0x1eeb, 0x1eeb },
- { 0x1eed, 0x1eed },
- { 0x1eef, 0x1eef },
- { 0x1ef1, 0x1ef1 },
- { 0x1ef3, 0x1ef3 },
- { 0x1ef5, 0x1ef5 },
- { 0x1ef7, 0x1ef7 },
- { 0x1ef9, 0x1ef9 },
- { 0x1f00, 0x1f07 },
- { 0x1f10, 0x1f15 },
- { 0x1f20, 0x1f27 },
- { 0x1f30, 0x1f37 },
- { 0x1f40, 0x1f45 },
- { 0x1f51, 0x1f51 },
- { 0x1f53, 0x1f53 },
- { 0x1f55, 0x1f55 },
- { 0x1f57, 0x1f57 },
- { 0x1f60, 0x1f67 },
- { 0x1f70, 0x1f71 },
- { 0x1f72, 0x1f75 },
- { 0x1f76, 0x1f77 },
- { 0x1f78, 0x1f79 },
- { 0x1f7a, 0x1f7b },
- { 0x1f7c, 0x1f7d },
- { 0x1f80, 0x1f87 },
- { 0x1f90, 0x1f97 },
- { 0x1fa0, 0x1fa7 },
- { 0x1fb0, 0x1fb1 },
- { 0x1fb3, 0x1fb3 },
- { 0x1fbe, 0x1fbe },
- { 0x1fc3, 0x1fc3 },
- { 0x1fd0, 0x1fd1 },
- { 0x1fe0, 0x1fe1 },
- { 0x1fe5, 0x1fe5 },
- { 0x1ff3, 0x1ff3 },
- { 0x2170, 0x217f },
- { 0x24d0, 0x24e9 },
- { 0xff41, 0xff5a }
- };
-
-static const jchar lower_case_map_table[] =
- { 0x0041, 0x00c0, 0x00d8, 0x0178, 0x0100,
- 0x0102, 0x0104, 0x0106, 0x0108, 0x010a,
- 0x010c, 0x010e, 0x0110, 0x0112, 0x0114,
- 0x0116, 0x0118, 0x011a, 0x011c, 0x011e,
- 0x0120, 0x0122, 0x0124, 0x0126, 0x0128,
- 0x012a, 0x012c, 0x012e, 0x0049, 0x0132,
- 0x0134, 0x0136, 0x0139, 0x013b, 0x013d,
- 0x013f, 0x0141, 0x0143, 0x0145, 0x0147,
- 0x014a, 0x014c, 0x014e, 0x0150, 0x0152,
- 0x0154, 0x0156, 0x0158, 0x015a, 0x015c,
- 0x015e, 0x0160, 0x0162, 0x0164, 0x0166,
- 0x0168, 0x016a, 0x016c, 0x016e, 0x0170,
- 0x0172, 0x0174, 0x0176, 0x0179, 0x017b,
- 0x017d, 0x0053, 0x0182, 0x0184, 0x0187,
- 0x018b, 0x0191, 0x0198, 0x01a0, 0x01a2,
- 0x01a4, 0x01a7, 0x01ac, 0x01af, 0x01b3,
- 0x01b5, 0x01b8, 0x01bc, 0x01c4, 0x01c7,
- 0x01ca, 0x01cd, 0x01cf, 0x01d1, 0x01d3,
- 0x01d5, 0x01d7, 0x01d9, 0x01db, 0x018e,
- 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e6,
- 0x01e8, 0x01ea, 0x01ec, 0x01ee, 0x01f1,
- 0x01f4, 0x01fa, 0x01fc, 0x01fe, 0x0200,
- 0x0202, 0x0204, 0x0206, 0x0208, 0x020a,
- 0x020c, 0x020e, 0x0210, 0x0212, 0x0214,
- 0x0216, 0x0181, 0x0186, 0x0189, 0x018f,
- 0x0190, 0x0193, 0x0194, 0x0197, 0x0196,
- 0x019c, 0x019d, 0x019f, 0x01a6, 0x01a9,
- 0x01ae, 0x01b1, 0x01b7, 0x0399, 0x0386,
- 0x0388, 0x0391, 0x03a3, 0x03a3, 0x038c,
- 0x038e, 0x0392, 0x0398, 0x03a6, 0x03a0,
- 0x03e2, 0x03e4, 0x03e6, 0x03e8, 0x03ea,
- 0x03ec, 0x03ee, 0x039a, 0x03a1, 0x03a3,
- 0x0410, 0x0401, 0x040e, 0x0460, 0x0462,
- 0x0464, 0x0466, 0x0468, 0x046a, 0x046c,
- 0x046e, 0x0470, 0x0472, 0x0474, 0x0476,
- 0x0478, 0x047a, 0x047c, 0x047e, 0x0480,
- 0x0490, 0x0492, 0x0494, 0x0496, 0x0498,
- 0x049a, 0x049c, 0x049e, 0x04a0, 0x04a2,
- 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac,
- 0x04ae, 0x04b0, 0x04b2, 0x04b4, 0x04b6,
- 0x04b8, 0x04ba, 0x04bc, 0x04be, 0x04c1,
- 0x04c3, 0x04c7, 0x04cb, 0x04d0, 0x04d2,
- 0x04d4, 0x04d6, 0x04d8, 0x04da, 0x04dc,
- 0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6,
- 0x04e8, 0x04ea, 0x04ee, 0x04f0, 0x04f2,
- 0x04f4, 0x04f8, 0x0531, 0x1e00, 0x1e02,
- 0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c,
- 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16,
- 0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20,
- 0x1e22, 0x1e24, 0x1e26, 0x1e28, 0x1e2a,
- 0x1e2c, 0x1e2e, 0x1e30, 0x1e32, 0x1e34,
- 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e,
- 0x1e40, 0x1e42, 0x1e44, 0x1e46, 0x1e48,
- 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52,
- 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c,
- 0x1e5e, 0x1e60, 0x1e62, 0x1e64, 0x1e66,
- 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70,
- 0x1e72, 0x1e74, 0x1e76, 0x1e78, 0x1e7a,
- 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84,
- 0x1e86, 0x1e88, 0x1e8a, 0x1e8c, 0x1e8e,
- 0x1e90, 0x1e92, 0x1e94, 0x1e60, 0x1ea0,
- 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa,
- 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4,
- 0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe,
- 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8,
- 0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2,
- 0x1ed4, 0x1ed6, 0x1ed8, 0x1eda, 0x1edc,
- 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6,
- 0x1ee8, 0x1eea, 0x1eec, 0x1eee, 0x1ef0,
- 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1f08,
- 0x1f18, 0x1f28, 0x1f38, 0x1f48, 0x1f59,
- 0x1f5b, 0x1f5d, 0x1f5f, 0x1f68, 0x1fba,
- 0x1fc8, 0x1fda, 0x1ff8, 0x1fea, 0x1ffa,
- 0x1f88, 0x1f98, 0x1fa8, 0x1fb8, 0x1fbc,
- 0x0399, 0x1fcc, 0x1fd8, 0x1fe8, 0x1fec,
- 0x1ffc, 0x2160, 0x24b6, 0xff21 };
-
-static const jchar lower_anomalous_table[] =
- { 0x00df, 0x0138, 0x0149, 0x0180, 0x018d,
- 0x0195, 0x019a, 0x019b, 0x019e, 0x01ab,
- 0x01ba, 0x01f0, 0x0250, 0x0251, 0x0252,
- 0x0255, 0x0258, 0x025a, 0x025c, 0x025d,
- 0x025e, 0x025f, 0x0261, 0x0264, 0x0265,
- 0x0266, 0x0267, 0x026b, 0x026c, 0x026d,
- 0x026e, 0x0270, 0x0271, 0x0273, 0x0277,
- 0x0278, 0x0279, 0x027a, 0x027b, 0x027c,
- 0x027d, 0x027e, 0x027f, 0x0282, 0x0284,
- 0x0285, 0x0286, 0x0287, 0x0289, 0x028c,
- 0x028d, 0x028e, 0x0290, 0x0291, 0x0293,
- 0x029a, 0x029d, 0x029e, 0x02a0, 0x02a3,
- 0x02a4, 0x02a5, 0x02a6, 0x02a7, 0x02a8,
- 0x0390, 0x03b0, 0x0587, 0x1e96, 0x1e97,
- 0x1e98, 0x1e99, 0x1e9a, 0x1f50, 0x1f52,
- 0x1f54, 0x1f56, 0x1fb2, 0x1fb4, 0x1fb6,
- 0x1fb7, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fc7,
- 0x1fd2, 0x1fd3, 0x1fd6, 0x1fd7, 0x1fe2,
- 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2,
- 0x1ff4, 0x1ff6, 0x1ff7, 0x207f, 0x2129,
- 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0,
- 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5,
- 0x24a6, 0x24a7, 0x24a8, 0x24a9, 0x24aa,
- 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af,
- 0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4,
- 0x24b5, 0xfb00, 0xfb01, 0xfb02, 0xfb03,
- 0xfb04, 0xfb05, 0xfb06, 0xfb13, 0xfb14,
- 0xfb15, 0xfb16, 0xfb17 };
-
-static const jchar all_table[][2] =
- {
- { 0x0000, 0x001f },
- { 0x0020, 0x0020 },
- { 0x0021, 0x0023 },
- { 0x0024, 0x0024 },
- { 0x0025, 0x0027 },
- { 0x0028, 0x0028 },
- { 0x0029, 0x0029 },
- { 0x002a, 0x002a },
- { 0x002b, 0x002b },
- { 0x002c, 0x002c },
- { 0x002d, 0x002d },
- { 0x002e, 0x002f },
- { 0x0030, 0x0039 },
- { 0x003a, 0x003b },
- { 0x003c, 0x003e },
- { 0x003f, 0x0040 },
- { 0x0041, 0x005a },
- { 0x005b, 0x005b },
- { 0x005c, 0x005c },
- { 0x005d, 0x005d },
- { 0x005e, 0x005e },
- { 0x005f, 0x005f },
- { 0x0060, 0x0060 },
- { 0x0061, 0x007a },
- { 0x007b, 0x007b },
- { 0x007c, 0x007c },
- { 0x007d, 0x007d },
- { 0x007e, 0x007e },
- { 0x007f, 0x009f },
- { 0x00a0, 0x00a0 },
- { 0x00a1, 0x00a1 },
- { 0x00a2, 0x00a5 },
- { 0x00a6, 0x00a7 },
- { 0x00a8, 0x00a8 },
- { 0x00a9, 0x00a9 },
- { 0x00aa, 0x00aa },
- { 0x00ab, 0x00ab },
- { 0x00ac, 0x00ac },
- { 0x00ad, 0x00ad },
- { 0x00ae, 0x00ae },
- { 0x00af, 0x00af },
- { 0x00b0, 0x00b0 },
- { 0x00b1, 0x00b1 },
- { 0x00b2, 0x00b3 },
- { 0x00b4, 0x00b4 },
- { 0x00b5, 0x00b5 },
- { 0x00b6, 0x00b6 },
- { 0x00b7, 0x00b7 },
- { 0x00b8, 0x00b8 },
- { 0x00b9, 0x00b9 },
- { 0x00ba, 0x00ba },
- { 0x00bb, 0x00bb },
- { 0x00bc, 0x00be },
- { 0x00bf, 0x00bf },
- { 0x00c0, 0x00d6 },
- { 0x00d7, 0x00d7 },
- { 0x00d8, 0x00de },
- { 0x00df, 0x00f6 },
- { 0x00f7, 0x00f7 },
- { 0x00f8, 0x00ff },
- { 0x0100, 0x0100 },
- { 0x0101, 0x0101 },
- { 0x0102, 0x0102 },
- { 0x0103, 0x0103 },
- { 0x0104, 0x0104 },
- { 0x0105, 0x0105 },
- { 0x0106, 0x0106 },
- { 0x0107, 0x0107 },
- { 0x0108, 0x0108 },
- { 0x0109, 0x0109 },
- { 0x010a, 0x010a },
- { 0x010b, 0x010b },
- { 0x010c, 0x010c },
- { 0x010d, 0x010d },
- { 0x010e, 0x010e },
- { 0x010f, 0x010f },
- { 0x0110, 0x0110 },
- { 0x0111, 0x0111 },
- { 0x0112, 0x0112 },
- { 0x0113, 0x0113 },
- { 0x0114, 0x0114 },
- { 0x0115, 0x0115 },
- { 0x0116, 0x0116 },
- { 0x0117, 0x0117 },
- { 0x0118, 0x0118 },
- { 0x0119, 0x0119 },
- { 0x011a, 0x011a },
- { 0x011b, 0x011b },
- { 0x011c, 0x011c },
- { 0x011d, 0x011d },
- { 0x011e, 0x011e },
- { 0x011f, 0x011f },
- { 0x0120, 0x0120 },
- { 0x0121, 0x0121 },
- { 0x0122, 0x0122 },
- { 0x0123, 0x0123 },
- { 0x0124, 0x0124 },
- { 0x0125, 0x0125 },
- { 0x0126, 0x0126 },
- { 0x0127, 0x0127 },
- { 0x0128, 0x0128 },
- { 0x0129, 0x0129 },
- { 0x012a, 0x012a },
- { 0x012b, 0x012b },
- { 0x012c, 0x012c },
- { 0x012d, 0x012d },
- { 0x012e, 0x012e },
- { 0x012f, 0x012f },
- { 0x0130, 0x0130 },
- { 0x0131, 0x0131 },
- { 0x0132, 0x0132 },
- { 0x0133, 0x0133 },
- { 0x0134, 0x0134 },
- { 0x0135, 0x0135 },
- { 0x0136, 0x0136 },
- { 0x0137, 0x0138 },
- { 0x0139, 0x0139 },
- { 0x013a, 0x013a },
- { 0x013b, 0x013b },
- { 0x013c, 0x013c },
- { 0x013d, 0x013d },
- { 0x013e, 0x013e },
- { 0x013f, 0x013f },
- { 0x0140, 0x0140 },
- { 0x0141, 0x0141 },
- { 0x0142, 0x0142 },
- { 0x0143, 0x0143 },
- { 0x0144, 0x0144 },
- { 0x0145, 0x0145 },
- { 0x0146, 0x0146 },
- { 0x0147, 0x0147 },
- { 0x0148, 0x0149 },
- { 0x014a, 0x014a },
- { 0x014b, 0x014b },
- { 0x014c, 0x014c },
- { 0x014d, 0x014d },
- { 0x014e, 0x014e },
- { 0x014f, 0x014f },
- { 0x0150, 0x0150 },
- { 0x0151, 0x0151 },
- { 0x0152, 0x0152 },
- { 0x0153, 0x0153 },
- { 0x0154, 0x0154 },
- { 0x0155, 0x0155 },
- { 0x0156, 0x0156 },
- { 0x0157, 0x0157 },
- { 0x0158, 0x0158 },
- { 0x0159, 0x0159 },
- { 0x015a, 0x015a },
- { 0x015b, 0x015b },
- { 0x015c, 0x015c },
- { 0x015d, 0x015d },
- { 0x015e, 0x015e },
- { 0x015f, 0x015f },
- { 0x0160, 0x0160 },
- { 0x0161, 0x0161 },
- { 0x0162, 0x0162 },
- { 0x0163, 0x0163 },
- { 0x0164, 0x0164 },
- { 0x0165, 0x0165 },
- { 0x0166, 0x0166 },
- { 0x0167, 0x0167 },
- { 0x0168, 0x0168 },
- { 0x0169, 0x0169 },
- { 0x016a, 0x016a },
- { 0x016b, 0x016b },
- { 0x016c, 0x016c },
- { 0x016d, 0x016d },
- { 0x016e, 0x016e },
- { 0x016f, 0x016f },
- { 0x0170, 0x0170 },
- { 0x0171, 0x0171 },
- { 0x0172, 0x0172 },
- { 0x0173, 0x0173 },
- { 0x0174, 0x0174 },
- { 0x0175, 0x0175 },
- { 0x0176, 0x0176 },
- { 0x0177, 0x0177 },
- { 0x0178, 0x0179 },
- { 0x017a, 0x017a },
- { 0x017b, 0x017b },
- { 0x017c, 0x017c },
- { 0x017d, 0x017d },
- { 0x017e, 0x0180 },
- { 0x0181, 0x0182 },
- { 0x0183, 0x0183 },
- { 0x0184, 0x0184 },
- { 0x0185, 0x0185 },
- { 0x0186, 0x0187 },
- { 0x0188, 0x0188 },
- { 0x0189, 0x018b },
- { 0x018c, 0x018d },
- { 0x018e, 0x0191 },
- { 0x0192, 0x0192 },
- { 0x0193, 0x0194 },
- { 0x0195, 0x0195 },
- { 0x0196, 0x0198 },
- { 0x0199, 0x019b },
- { 0x019c, 0x019d },
- { 0x019e, 0x019e },
- { 0x019f, 0x01a0 },
- { 0x01a1, 0x01a1 },
- { 0x01a2, 0x01a2 },
- { 0x01a3, 0x01a3 },
- { 0x01a4, 0x01a4 },
- { 0x01a5, 0x01a5 },
- { 0x01a6, 0x01a7 },
- { 0x01a8, 0x01a8 },
- { 0x01a9, 0x01a9 },
- { 0x01aa, 0x01aa },
- { 0x01ab, 0x01ab },
- { 0x01ac, 0x01ac },
- { 0x01ad, 0x01ad },
- { 0x01ae, 0x01af },
- { 0x01b0, 0x01b0 },
- { 0x01b1, 0x01b3 },
- { 0x01b4, 0x01b4 },
- { 0x01b5, 0x01b5 },
- { 0x01b6, 0x01b6 },
- { 0x01b7, 0x01b8 },
- { 0x01b9, 0x01ba },
- { 0x01bb, 0x01bb },
- { 0x01bc, 0x01bc },
- { 0x01bd, 0x01bd },
- { 0x01be, 0x01c3 },
- { 0x01c4, 0x01c4 },
- { 0x01c5, 0x01c5 },
- { 0x01c6, 0x01c6 },
- { 0x01c7, 0x01c7 },
- { 0x01c8, 0x01c8 },
- { 0x01c9, 0x01c9 },
- { 0x01ca, 0x01ca },
- { 0x01cb, 0x01cb },
- { 0x01cc, 0x01cc },
- { 0x01cd, 0x01cd },
- { 0x01ce, 0x01ce },
- { 0x01cf, 0x01cf },
- { 0x01d0, 0x01d0 },
- { 0x01d1, 0x01d1 },
- { 0x01d2, 0x01d2 },
- { 0x01d3, 0x01d3 },
- { 0x01d4, 0x01d4 },
- { 0x01d5, 0x01d5 },
- { 0x01d6, 0x01d6 },
- { 0x01d7, 0x01d7 },
- { 0x01d8, 0x01d8 },
- { 0x01d9, 0x01d9 },
- { 0x01da, 0x01da },
- { 0x01db, 0x01db },
- { 0x01dc, 0x01dd },
- { 0x01de, 0x01de },
- { 0x01df, 0x01df },
- { 0x01e0, 0x01e0 },
- { 0x01e1, 0x01e1 },
- { 0x01e2, 0x01e2 },
- { 0x01e3, 0x01e3 },
- { 0x01e4, 0x01e4 },
- { 0x01e5, 0x01e5 },
- { 0x01e6, 0x01e6 },
- { 0x01e7, 0x01e7 },
- { 0x01e8, 0x01e8 },
- { 0x01e9, 0x01e9 },
- { 0x01ea, 0x01ea },
- { 0x01eb, 0x01eb },
- { 0x01ec, 0x01ec },
- { 0x01ed, 0x01ed },
- { 0x01ee, 0x01ee },
- { 0x01ef, 0x01f0 },
- { 0x01f1, 0x01f1 },
- { 0x01f2, 0x01f2 },
- { 0x01f3, 0x01f3 },
- { 0x01f4, 0x01f4 },
- { 0x01f5, 0x01f5 },
- { 0x01f6, 0x01f9 },
- { 0x01fa, 0x01fa },
- { 0x01fb, 0x01fb },
- { 0x01fc, 0x01fc },
- { 0x01fd, 0x01fd },
- { 0x01fe, 0x01fe },
- { 0x01ff, 0x01ff },
- { 0x0200, 0x0200 },
- { 0x0201, 0x0201 },
- { 0x0202, 0x0202 },
- { 0x0203, 0x0203 },
- { 0x0204, 0x0204 },
- { 0x0205, 0x0205 },
- { 0x0206, 0x0206 },
- { 0x0207, 0x0207 },
- { 0x0208, 0x0208 },
- { 0x0209, 0x0209 },
- { 0x020a, 0x020a },
- { 0x020b, 0x020b },
- { 0x020c, 0x020c },
- { 0x020d, 0x020d },
- { 0x020e, 0x020e },
- { 0x020f, 0x020f },
- { 0x0210, 0x0210 },
- { 0x0211, 0x0211 },
- { 0x0212, 0x0212 },
- { 0x0213, 0x0213 },
- { 0x0214, 0x0214 },
- { 0x0215, 0x0215 },
- { 0x0216, 0x0216 },
- { 0x0217, 0x0217 },
- { 0x0218, 0x024f },
- { 0x0250, 0x02a8 },
- { 0x02a9, 0x02af },
- { 0x02b0, 0x02b8 },
- { 0x02b9, 0x02ba },
- { 0x02bb, 0x02c1 },
- { 0x02c2, 0x02cf },
- { 0x02d0, 0x02d1 },
- { 0x02d2, 0x02de },
- { 0x02df, 0x02df },
- { 0x02e0, 0x02e4 },
- { 0x02e5, 0x02e9 },
- { 0x02ea, 0x02ff },
- { 0x0300, 0x0345 },
- { 0x0346, 0x035f },
- { 0x0360, 0x0361 },
- { 0x0362, 0x0373 },
- { 0x0374, 0x0375 },
- { 0x0376, 0x0379 },
- { 0x037a, 0x037a },
- { 0x037b, 0x037d },
- { 0x037e, 0x037e },
- { 0x037f, 0x0383 },
- { 0x0384, 0x0385 },
- { 0x0386, 0x0386 },
- { 0x0387, 0x0387 },
- { 0x0388, 0x038a },
- { 0x038b, 0x038b },
- { 0x038c, 0x038c },
- { 0x038d, 0x038d },
- { 0x038e, 0x038f },
- { 0x0390, 0x0390 },
- { 0x0391, 0x03a1 },
- { 0x03a2, 0x03a2 },
- { 0x03a3, 0x03ab },
- { 0x03ac, 0x03ce },
- { 0x03cf, 0x03cf },
- { 0x03d0, 0x03d1 },
- { 0x03d2, 0x03d4 },
- { 0x03d5, 0x03d6 },
- { 0x03d7, 0x03d9 },
- { 0x03da, 0x03da },
- { 0x03db, 0x03db },
- { 0x03dc, 0x03dc },
- { 0x03dd, 0x03dd },
- { 0x03de, 0x03de },
- { 0x03df, 0x03df },
- { 0x03e0, 0x03e0 },
- { 0x03e1, 0x03e1 },
- { 0x03e2, 0x03e2 },
- { 0x03e3, 0x03e3 },
- { 0x03e4, 0x03e4 },
- { 0x03e5, 0x03e5 },
- { 0x03e6, 0x03e6 },
- { 0x03e7, 0x03e7 },
- { 0x03e8, 0x03e8 },
- { 0x03e9, 0x03e9 },
- { 0x03ea, 0x03ea },
- { 0x03eb, 0x03eb },
- { 0x03ec, 0x03ec },
- { 0x03ed, 0x03ed },
- { 0x03ee, 0x03ee },
- { 0x03ef, 0x03f2 },
- { 0x03f3, 0x03f3 },
- { 0x03f4, 0x0400 },
- { 0x0401, 0x040c },
- { 0x040d, 0x040d },
- { 0x040e, 0x042f },
- { 0x0430, 0x044f },
- { 0x0450, 0x0450 },
- { 0x0451, 0x045c },
- { 0x045d, 0x045d },
- { 0x045e, 0x045f },
- { 0x0460, 0x0460 },
- { 0x0461, 0x0461 },
- { 0x0462, 0x0462 },
- { 0x0463, 0x0463 },
- { 0x0464, 0x0464 },
- { 0x0465, 0x0465 },
- { 0x0466, 0x0466 },
- { 0x0467, 0x0467 },
- { 0x0468, 0x0468 },
- { 0x0469, 0x0469 },
- { 0x046a, 0x046a },
- { 0x046b, 0x046b },
- { 0x046c, 0x046c },
- { 0x046d, 0x046d },
- { 0x046e, 0x046e },
- { 0x046f, 0x046f },
- { 0x0470, 0x0470 },
- { 0x0471, 0x0471 },
- { 0x0472, 0x0472 },
- { 0x0473, 0x0473 },
- { 0x0474, 0x0474 },
- { 0x0475, 0x0475 },
- { 0x0476, 0x0476 },
- { 0x0477, 0x0477 },
- { 0x0478, 0x0478 },
- { 0x0479, 0x0479 },
- { 0x047a, 0x047a },
- { 0x047b, 0x047b },
- { 0x047c, 0x047c },
- { 0x047d, 0x047d },
- { 0x047e, 0x047e },
- { 0x047f, 0x047f },
- { 0x0480, 0x0480 },
- { 0x0481, 0x0481 },
- { 0x0482, 0x0482 },
- { 0x0483, 0x0486 },
- { 0x0487, 0x048f },
- { 0x0490, 0x0490 },
- { 0x0491, 0x0491 },
- { 0x0492, 0x0492 },
- { 0x0493, 0x0493 },
- { 0x0494, 0x0494 },
- { 0x0495, 0x0495 },
- { 0x0496, 0x0496 },
- { 0x0497, 0x0497 },
- { 0x0498, 0x0498 },
- { 0x0499, 0x0499 },
- { 0x049a, 0x049a },
- { 0x049b, 0x049b },
- { 0x049c, 0x049c },
- { 0x049d, 0x049d },
- { 0x049e, 0x049e },
- { 0x049f, 0x049f },
- { 0x04a0, 0x04a0 },
- { 0x04a1, 0x04a1 },
- { 0x04a2, 0x04a2 },
- { 0x04a3, 0x04a3 },
- { 0x04a4, 0x04a4 },
- { 0x04a5, 0x04a5 },
- { 0x04a6, 0x04a6 },
- { 0x04a7, 0x04a7 },
- { 0x04a8, 0x04a8 },
- { 0x04a9, 0x04a9 },
- { 0x04aa, 0x04aa },
- { 0x04ab, 0x04ab },
- { 0x04ac, 0x04ac },
- { 0x04ad, 0x04ad },
- { 0x04ae, 0x04ae },
- { 0x04af, 0x04af },
- { 0x04b0, 0x04b0 },
- { 0x04b1, 0x04b1 },
- { 0x04b2, 0x04b2 },
- { 0x04b3, 0x04b3 },
- { 0x04b4, 0x04b4 },
- { 0x04b5, 0x04b5 },
- { 0x04b6, 0x04b6 },
- { 0x04b7, 0x04b7 },
- { 0x04b8, 0x04b8 },
- { 0x04b9, 0x04b9 },
- { 0x04ba, 0x04ba },
- { 0x04bb, 0x04bb },
- { 0x04bc, 0x04bc },
- { 0x04bd, 0x04bd },
- { 0x04be, 0x04be },
- { 0x04bf, 0x04bf },
- { 0x04c0, 0x04c0 },
- { 0x04c1, 0x04c1 },
- { 0x04c2, 0x04c2 },
- { 0x04c3, 0x04c3 },
- { 0x04c4, 0x04c4 },
- { 0x04c5, 0x04c6 },
- { 0x04c7, 0x04c7 },
- { 0x04c8, 0x04c8 },
- { 0x04c9, 0x04ca },
- { 0x04cb, 0x04cb },
- { 0x04cc, 0x04cc },
- { 0x04cd, 0x04cf },
- { 0x04d0, 0x04d0 },
- { 0x04d1, 0x04d1 },
- { 0x04d2, 0x04d2 },
- { 0x04d3, 0x04d3 },
- { 0x04d4, 0x04d4 },
- { 0x04d5, 0x04d5 },
- { 0x04d6, 0x04d6 },
- { 0x04d7, 0x04d7 },
- { 0x04d8, 0x04d8 },
- { 0x04d9, 0x04d9 },
- { 0x04da, 0x04da },
- { 0x04db, 0x04db },
- { 0x04dc, 0x04dc },
- { 0x04dd, 0x04dd },
- { 0x04de, 0x04de },
- { 0x04df, 0x04df },
- { 0x04e0, 0x04e0 },
- { 0x04e1, 0x04e1 },
- { 0x04e2, 0x04e2 },
- { 0x04e3, 0x04e3 },
- { 0x04e4, 0x04e4 },
- { 0x04e5, 0x04e5 },
- { 0x04e6, 0x04e6 },
- { 0x04e7, 0x04e7 },
- { 0x04e8, 0x04e8 },
- { 0x04e9, 0x04e9 },
- { 0x04ea, 0x04ea },
- { 0x04eb, 0x04eb },
- { 0x04ec, 0x04ed },
- { 0x04ee, 0x04ee },
- { 0x04ef, 0x04ef },
- { 0x04f0, 0x04f0 },
- { 0x04f1, 0x04f1 },
- { 0x04f2, 0x04f2 },
- { 0x04f3, 0x04f3 },
- { 0x04f4, 0x04f4 },
- { 0x04f5, 0x04f5 },
- { 0x04f6, 0x04f7 },
- { 0x04f8, 0x04f8 },
- { 0x04f9, 0x04f9 },
- { 0x04fa, 0x0530 },
- { 0x0531, 0x0556 },
- { 0x0557, 0x0558 },
- { 0x0559, 0x0559 },
- { 0x055a, 0x055f },
- { 0x0560, 0x0560 },
- { 0x0561, 0x0587 },
- { 0x0588, 0x0588 },
- { 0x0589, 0x0589 },
- { 0x058a, 0x0590 },
- { 0x0591, 0x05a1 },
- { 0x05a2, 0x05a2 },
- { 0x05a3, 0x05b9 },
- { 0x05ba, 0x05ba },
- { 0x05bb, 0x05bd },
- { 0x05be, 0x05be },
- { 0x05bf, 0x05bf },
- { 0x05c0, 0x05c0 },
- { 0x05c1, 0x05c2 },
- { 0x05c3, 0x05c3 },
- { 0x05c4, 0x05c4 },
- { 0x05c5, 0x05cf },
- { 0x05d0, 0x05ea },
- { 0x05eb, 0x05ef },
- { 0x05f0, 0x05f2 },
- { 0x05f3, 0x05f4 },
- { 0x05f5, 0x060b },
- { 0x060c, 0x060c },
- { 0x060d, 0x061a },
- { 0x061b, 0x061b },
- { 0x061c, 0x061e },
- { 0x061f, 0x061f },
- { 0x0620, 0x0620 },
- { 0x0621, 0x063a },
- { 0x063b, 0x063f },
- { 0x0640, 0x0640 },
- { 0x0641, 0x064a },
- { 0x064b, 0x0652 },
- { 0x0653, 0x065f },
- { 0x0660, 0x0669 },
- { 0x066a, 0x066d },
- { 0x066e, 0x066f },
- { 0x0670, 0x0670 },
- { 0x0671, 0x06b7 },
- { 0x06b8, 0x06b9 },
- { 0x06ba, 0x06be },
- { 0x06bf, 0x06bf },
- { 0x06c0, 0x06ce },
- { 0x06cf, 0x06cf },
- { 0x06d0, 0x06d3 },
- { 0x06d4, 0x06d4 },
- { 0x06d5, 0x06d5 },
- { 0x06d6, 0x06dc },
- { 0x06dd, 0x06de },
- { 0x06df, 0x06e4 },
- { 0x06e5, 0x06e6 },
- { 0x06e7, 0x06e8 },
- { 0x06e9, 0x06e9 },
- { 0x06ea, 0x06ed },
- { 0x06ee, 0x06ef },
- { 0x06f0, 0x06f9 },
- { 0x06fa, 0x0900 },
- { 0x0901, 0x0902 },
- { 0x0903, 0x0903 },
- { 0x0904, 0x0904 },
- { 0x0905, 0x0939 },
- { 0x093a, 0x093b },
- { 0x093c, 0x093c },
- { 0x093d, 0x093d },
- { 0x093e, 0x0940 },
- { 0x0941, 0x0948 },
- { 0x0949, 0x094c },
- { 0x094d, 0x094d },
- { 0x094e, 0x094f },
- { 0x0950, 0x0950 },
- { 0x0951, 0x0954 },
- { 0x0955, 0x0957 },
- { 0x0958, 0x0961 },
- { 0x0962, 0x0963 },
- { 0x0964, 0x0965 },
- { 0x0966, 0x096f },
- { 0x0970, 0x0970 },
- { 0x0971, 0x0980 },
- { 0x0981, 0x0981 },
- { 0x0982, 0x0983 },
- { 0x0984, 0x0984 },
- { 0x0985, 0x098c },
- { 0x098d, 0x098e },
- { 0x098f, 0x0990 },
- { 0x0991, 0x0992 },
- { 0x0993, 0x09a8 },
- { 0x09a9, 0x09a9 },
- { 0x09aa, 0x09b0 },
- { 0x09b1, 0x09b1 },
- { 0x09b2, 0x09b2 },
- { 0x09b3, 0x09b5 },
- { 0x09b6, 0x09b9 },
- { 0x09ba, 0x09bb },
- { 0x09bc, 0x09bc },
- { 0x09bd, 0x09bd },
- { 0x09be, 0x09c0 },
- { 0x09c1, 0x09c4 },
- { 0x09c5, 0x09c6 },
- { 0x09c7, 0x09c8 },
- { 0x09c9, 0x09ca },
- { 0x09cb, 0x09cc },
- { 0x09cd, 0x09cd },
- { 0x09ce, 0x09d6 },
- { 0x09d7, 0x09d7 },
- { 0x09d8, 0x09db },
- { 0x09dc, 0x09dd },
- { 0x09de, 0x09de },
- { 0x09df, 0x09e1 },
- { 0x09e2, 0x09e3 },
- { 0x09e4, 0x09e5 },
- { 0x09e6, 0x09ef },
- { 0x09f0, 0x09f1 },
- { 0x09f2, 0x09f3 },
- { 0x09f4, 0x09f9 },
- { 0x09fa, 0x09fa },
- { 0x09fb, 0x0a01 },
- { 0x0a02, 0x0a02 },
- { 0x0a03, 0x0a04 },
- { 0x0a05, 0x0a0a },
- { 0x0a0b, 0x0a0e },
- { 0x0a0f, 0x0a10 },
- { 0x0a11, 0x0a12 },
- { 0x0a13, 0x0a28 },
- { 0x0a29, 0x0a29 },
- { 0x0a2a, 0x0a30 },
- { 0x0a31, 0x0a31 },
- { 0x0a32, 0x0a33 },
- { 0x0a34, 0x0a34 },
- { 0x0a35, 0x0a36 },
- { 0x0a37, 0x0a37 },
- { 0x0a38, 0x0a39 },
- { 0x0a3a, 0x0a3b },
- { 0x0a3c, 0x0a3c },
- { 0x0a3d, 0x0a3d },
- { 0x0a3e, 0x0a40 },
- { 0x0a41, 0x0a42 },
- { 0x0a43, 0x0a46 },
- { 0x0a47, 0x0a48 },
- { 0x0a49, 0x0a4a },
- { 0x0a4b, 0x0a4d },
- { 0x0a4e, 0x0a58 },
- { 0x0a59, 0x0a5c },
- { 0x0a5d, 0x0a5d },
- { 0x0a5e, 0x0a5e },
- { 0x0a5f, 0x0a65 },
- { 0x0a66, 0x0a6f },
- { 0x0a70, 0x0a71 },
- { 0x0a72, 0x0a74 },
- { 0x0a75, 0x0a80 },
- { 0x0a81, 0x0a82 },
- { 0x0a83, 0x0a83 },
- { 0x0a84, 0x0a84 },
- { 0x0a85, 0x0a8b },
- { 0x0a8c, 0x0a8c },
- { 0x0a8d, 0x0a8d },
- { 0x0a8e, 0x0a8e },
- { 0x0a8f, 0x0a91 },
- { 0x0a92, 0x0a92 },
- { 0x0a93, 0x0aa8 },
- { 0x0aa9, 0x0aa9 },
- { 0x0aaa, 0x0ab0 },
- { 0x0ab1, 0x0ab1 },
- { 0x0ab2, 0x0ab3 },
- { 0x0ab4, 0x0ab4 },
- { 0x0ab5, 0x0ab9 },
- { 0x0aba, 0x0abb },
- { 0x0abc, 0x0abc },
- { 0x0abd, 0x0abd },
- { 0x0abe, 0x0ac0 },
- { 0x0ac1, 0x0ac5 },
- { 0x0ac6, 0x0ac6 },
- { 0x0ac7, 0x0ac8 },
- { 0x0ac9, 0x0ac9 },
- { 0x0aca, 0x0aca },
- { 0x0acb, 0x0acc },
- { 0x0acd, 0x0acd },
- { 0x0ace, 0x0acf },
- { 0x0ad0, 0x0ad0 },
- { 0x0ad1, 0x0adf },
- { 0x0ae0, 0x0ae0 },
- { 0x0ae1, 0x0ae5 },
- { 0x0ae6, 0x0aef },
- { 0x0af0, 0x0b00 },
- { 0x0b01, 0x0b01 },
- { 0x0b02, 0x0b03 },
- { 0x0b04, 0x0b04 },
- { 0x0b05, 0x0b0c },
- { 0x0b0d, 0x0b0e },
- { 0x0b0f, 0x0b10 },
- { 0x0b11, 0x0b12 },
- { 0x0b13, 0x0b28 },
- { 0x0b29, 0x0b29 },
- { 0x0b2a, 0x0b30 },
- { 0x0b31, 0x0b31 },
- { 0x0b32, 0x0b33 },
- { 0x0b34, 0x0b35 },
- { 0x0b36, 0x0b39 },
- { 0x0b3a, 0x0b3b },
- { 0x0b3c, 0x0b3c },
- { 0x0b3d, 0x0b3d },
- { 0x0b3e, 0x0b3e },
- { 0x0b3f, 0x0b3f },
- { 0x0b40, 0x0b40 },
- { 0x0b41, 0x0b43 },
- { 0x0b44, 0x0b46 },
- { 0x0b47, 0x0b48 },
- { 0x0b49, 0x0b4a },
- { 0x0b4b, 0x0b4c },
- { 0x0b4d, 0x0b4d },
- { 0x0b4e, 0x0b55 },
- { 0x0b56, 0x0b56 },
- { 0x0b57, 0x0b57 },
- { 0x0b58, 0x0b5b },
- { 0x0b5c, 0x0b5d },
- { 0x0b5e, 0x0b5e },
- { 0x0b5f, 0x0b61 },
- { 0x0b62, 0x0b65 },
- { 0x0b66, 0x0b6f },
- { 0x0b70, 0x0b70 },
- { 0x0b71, 0x0b81 },
- { 0x0b82, 0x0b82 },
- { 0x0b83, 0x0b83 },
- { 0x0b84, 0x0b84 },
- { 0x0b85, 0x0b8a },
- { 0x0b8b, 0x0b8d },
- { 0x0b8e, 0x0b90 },
- { 0x0b91, 0x0b91 },
- { 0x0b92, 0x0b95 },
- { 0x0b96, 0x0b98 },
- { 0x0b99, 0x0b9a },
- { 0x0b9b, 0x0b9b },
- { 0x0b9c, 0x0b9c },
- { 0x0b9d, 0x0b9d },
- { 0x0b9e, 0x0b9f },
- { 0x0ba0, 0x0ba2 },
- { 0x0ba3, 0x0ba4 },
- { 0x0ba5, 0x0ba7 },
- { 0x0ba8, 0x0baa },
- { 0x0bab, 0x0bad },
- { 0x0bae, 0x0bb5 },
- { 0x0bb6, 0x0bb6 },
- { 0x0bb7, 0x0bb9 },
- { 0x0bba, 0x0bbd },
- { 0x0bbe, 0x0bbf },
- { 0x0bc0, 0x0bc0 },
- { 0x0bc1, 0x0bc2 },
- { 0x0bc3, 0x0bc5 },
- { 0x0bc6, 0x0bc8 },
- { 0x0bc9, 0x0bc9 },
- { 0x0bca, 0x0bcc },
- { 0x0bcd, 0x0bcd },
- { 0x0bce, 0x0bd6 },
- { 0x0bd7, 0x0bd7 },
- { 0x0bd8, 0x0be6 },
- { 0x0be7, 0x0bef },
- { 0x0bf0, 0x0bf2 },
- { 0x0bf3, 0x0c00 },
- { 0x0c01, 0x0c03 },
- { 0x0c04, 0x0c04 },
- { 0x0c05, 0x0c0c },
- { 0x0c0d, 0x0c0d },
- { 0x0c0e, 0x0c10 },
- { 0x0c11, 0x0c11 },
- { 0x0c12, 0x0c28 },
- { 0x0c29, 0x0c29 },
- { 0x0c2a, 0x0c33 },
- { 0x0c34, 0x0c34 },
- { 0x0c35, 0x0c39 },
- { 0x0c3a, 0x0c3d },
- { 0x0c3e, 0x0c40 },
- { 0x0c41, 0x0c44 },
- { 0x0c45, 0x0c45 },
- { 0x0c46, 0x0c48 },
- { 0x0c49, 0x0c49 },
- { 0x0c4a, 0x0c4d },
- { 0x0c4e, 0x0c54 },
- { 0x0c55, 0x0c56 },
- { 0x0c57, 0x0c5f },
- { 0x0c60, 0x0c61 },
- { 0x0c62, 0x0c65 },
- { 0x0c66, 0x0c6f },
- { 0x0c70, 0x0c81 },
- { 0x0c82, 0x0c83 },
- { 0x0c84, 0x0c84 },
- { 0x0c85, 0x0c8c },
- { 0x0c8d, 0x0c8d },
- { 0x0c8e, 0x0c90 },
- { 0x0c91, 0x0c91 },
- { 0x0c92, 0x0ca8 },
- { 0x0ca9, 0x0ca9 },
- { 0x0caa, 0x0cb3 },
- { 0x0cb4, 0x0cb4 },
- { 0x0cb5, 0x0cb9 },
- { 0x0cba, 0x0cbd },
- { 0x0cbe, 0x0cbe },
- { 0x0cbf, 0x0cbf },
- { 0x0cc0, 0x0cc4 },
- { 0x0cc5, 0x0cc5 },
- { 0x0cc6, 0x0cc6 },
- { 0x0cc7, 0x0cc8 },
- { 0x0cc9, 0x0cc9 },
- { 0x0cca, 0x0ccb },
- { 0x0ccc, 0x0ccd },
- { 0x0cce, 0x0cd4 },
- { 0x0cd5, 0x0cd6 },
- { 0x0cd7, 0x0cdd },
- { 0x0cde, 0x0cde },
- { 0x0cdf, 0x0cdf },
- { 0x0ce0, 0x0ce1 },
- { 0x0ce2, 0x0ce5 },
- { 0x0ce6, 0x0cef },
- { 0x0cf0, 0x0d01 },
- { 0x0d02, 0x0d03 },
- { 0x0d04, 0x0d04 },
- { 0x0d05, 0x0d0c },
- { 0x0d0d, 0x0d0d },
- { 0x0d0e, 0x0d10 },
- { 0x0d11, 0x0d11 },
- { 0x0d12, 0x0d28 },
- { 0x0d29, 0x0d29 },
- { 0x0d2a, 0x0d39 },
- { 0x0d3a, 0x0d3d },
- { 0x0d3e, 0x0d40 },
- { 0x0d41, 0x0d43 },
- { 0x0d44, 0x0d45 },
- { 0x0d46, 0x0d48 },
- { 0x0d49, 0x0d49 },
- { 0x0d4a, 0x0d4c },
- { 0x0d4d, 0x0d4d },
- { 0x0d4e, 0x0d56 },
- { 0x0d57, 0x0d57 },
- { 0x0d58, 0x0d5f },
- { 0x0d60, 0x0d61 },
- { 0x0d62, 0x0d65 },
- { 0x0d66, 0x0d6f },
- { 0x0d70, 0x0e00 },
- { 0x0e01, 0x0e30 },
- { 0x0e31, 0x0e31 },
- { 0x0e32, 0x0e33 },
- { 0x0e34, 0x0e3a },
- { 0x0e3b, 0x0e3e },
- { 0x0e3f, 0x0e3f },
- { 0x0e40, 0x0e45 },
- { 0x0e46, 0x0e46 },
- { 0x0e47, 0x0e4e },
- { 0x0e4f, 0x0e4f },
- { 0x0e50, 0x0e59 },
- { 0x0e5a, 0x0e5b },
- { 0x0e5c, 0x0e80 },
- { 0x0e81, 0x0e82 },
- { 0x0e83, 0x0e83 },
- { 0x0e84, 0x0e84 },
- { 0x0e85, 0x0e86 },
- { 0x0e87, 0x0e88 },
- { 0x0e89, 0x0e89 },
- { 0x0e8a, 0x0e8a },
- { 0x0e8b, 0x0e8c },
- { 0x0e8d, 0x0e8d },
- { 0x0e8e, 0x0e93 },
- { 0x0e94, 0x0e97 },
- { 0x0e98, 0x0e98 },
- { 0x0e99, 0x0e9f },
- { 0x0ea0, 0x0ea0 },
- { 0x0ea1, 0x0ea3 },
- { 0x0ea4, 0x0ea4 },
- { 0x0ea5, 0x0ea5 },
- { 0x0ea6, 0x0ea6 },
- { 0x0ea7, 0x0ea7 },
- { 0x0ea8, 0x0ea9 },
- { 0x0eaa, 0x0eab },
- { 0x0eac, 0x0eac },
- { 0x0ead, 0x0eb0 },
- { 0x0eb1, 0x0eb1 },
- { 0x0eb2, 0x0eb3 },
- { 0x0eb4, 0x0eb9 },
- { 0x0eba, 0x0eba },
- { 0x0ebb, 0x0ebc },
- { 0x0ebd, 0x0ebd },
- { 0x0ebe, 0x0ebf },
- { 0x0ec0, 0x0ec4 },
- { 0x0ec5, 0x0ec5 },
- { 0x0ec6, 0x0ec6 },
- { 0x0ec7, 0x0ec7 },
- { 0x0ec8, 0x0ecd },
- { 0x0ece, 0x0ecf },
- { 0x0ed0, 0x0ed9 },
- { 0x0eda, 0x0edb },
- { 0x0edc, 0x0edd },
- { 0x0ede, 0x0eff },
- { 0x0f00, 0x0f00 },
- { 0x0f01, 0x0f03 },
- { 0x0f04, 0x0f12 },
- { 0x0f13, 0x0f17 },
- { 0x0f18, 0x0f19 },
- { 0x0f1a, 0x0f1f },
- { 0x0f20, 0x0f29 },
- { 0x0f2a, 0x0f33 },
- { 0x0f34, 0x0f34 },
- { 0x0f35, 0x0f35 },
- { 0x0f36, 0x0f36 },
- { 0x0f37, 0x0f37 },
- { 0x0f38, 0x0f38 },
- { 0x0f39, 0x0f39 },
- { 0x0f3a, 0x0f3a },
- { 0x0f3b, 0x0f3b },
- { 0x0f3c, 0x0f3c },
- { 0x0f3d, 0x0f3d },
- { 0x0f3e, 0x0f3f },
- { 0x0f40, 0x0f47 },
- { 0x0f48, 0x0f48 },
- { 0x0f49, 0x0f69 },
- { 0x0f6a, 0x0f70 },
- { 0x0f71, 0x0f7e },
- { 0x0f7f, 0x0f7f },
- { 0x0f80, 0x0f84 },
- { 0x0f85, 0x0f85 },
- { 0x0f86, 0x0f87 },
- { 0x0f88, 0x0f8b },
- { 0x0f8c, 0x0f8f },
- { 0x0f90, 0x0f95 },
- { 0x0f96, 0x0f96 },
- { 0x0f97, 0x0f97 },
- { 0x0f98, 0x0f98 },
- { 0x0f99, 0x0fad },
- { 0x0fae, 0x0fb0 },
- { 0x0fb1, 0x0fb7 },
- { 0x0fb8, 0x0fb8 },
- { 0x0fb9, 0x0fb9 },
- { 0x0fba, 0x109f },
- { 0x10a0, 0x10c5 },
- { 0x10c6, 0x10cf },
- { 0x10d0, 0x10f6 },
- { 0x10f7, 0x10fa },
- { 0x10fb, 0x10fb },
- { 0x10fc, 0x10ff },
- { 0x1100, 0x1159 },
- { 0x115a, 0x115e },
- { 0x115f, 0x11a2 },
- { 0x11a3, 0x11a7 },
- { 0x11a8, 0x11f9 },
- { 0x11fa, 0x1dff },
- { 0x1e00, 0x1e00 },
- { 0x1e01, 0x1e01 },
- { 0x1e02, 0x1e02 },
- { 0x1e03, 0x1e03 },
- { 0x1e04, 0x1e04 },
- { 0x1e05, 0x1e05 },
- { 0x1e06, 0x1e06 },
- { 0x1e07, 0x1e07 },
- { 0x1e08, 0x1e08 },
- { 0x1e09, 0x1e09 },
- { 0x1e0a, 0x1e0a },
- { 0x1e0b, 0x1e0b },
- { 0x1e0c, 0x1e0c },
- { 0x1e0d, 0x1e0d },
- { 0x1e0e, 0x1e0e },
- { 0x1e0f, 0x1e0f },
- { 0x1e10, 0x1e10 },
- { 0x1e11, 0x1e11 },
- { 0x1e12, 0x1e12 },
- { 0x1e13, 0x1e13 },
- { 0x1e14, 0x1e14 },
- { 0x1e15, 0x1e15 },
- { 0x1e16, 0x1e16 },
- { 0x1e17, 0x1e17 },
- { 0x1e18, 0x1e18 },
- { 0x1e19, 0x1e19 },
- { 0x1e1a, 0x1e1a },
- { 0x1e1b, 0x1e1b },
- { 0x1e1c, 0x1e1c },
- { 0x1e1d, 0x1e1d },
- { 0x1e1e, 0x1e1e },
- { 0x1e1f, 0x1e1f },
- { 0x1e20, 0x1e20 },
- { 0x1e21, 0x1e21 },
- { 0x1e22, 0x1e22 },
- { 0x1e23, 0x1e23 },
- { 0x1e24, 0x1e24 },
- { 0x1e25, 0x1e25 },
- { 0x1e26, 0x1e26 },
- { 0x1e27, 0x1e27 },
- { 0x1e28, 0x1e28 },
- { 0x1e29, 0x1e29 },
- { 0x1e2a, 0x1e2a },
- { 0x1e2b, 0x1e2b },
- { 0x1e2c, 0x1e2c },
- { 0x1e2d, 0x1e2d },
- { 0x1e2e, 0x1e2e },
- { 0x1e2f, 0x1e2f },
- { 0x1e30, 0x1e30 },
- { 0x1e31, 0x1e31 },
- { 0x1e32, 0x1e32 },
- { 0x1e33, 0x1e33 },
- { 0x1e34, 0x1e34 },
- { 0x1e35, 0x1e35 },
- { 0x1e36, 0x1e36 },
- { 0x1e37, 0x1e37 },
- { 0x1e38, 0x1e38 },
- { 0x1e39, 0x1e39 },
- { 0x1e3a, 0x1e3a },
- { 0x1e3b, 0x1e3b },
- { 0x1e3c, 0x1e3c },
- { 0x1e3d, 0x1e3d },
- { 0x1e3e, 0x1e3e },
- { 0x1e3f, 0x1e3f },
- { 0x1e40, 0x1e40 },
- { 0x1e41, 0x1e41 },
- { 0x1e42, 0x1e42 },
- { 0x1e43, 0x1e43 },
- { 0x1e44, 0x1e44 },
- { 0x1e45, 0x1e45 },
- { 0x1e46, 0x1e46 },
- { 0x1e47, 0x1e47 },
- { 0x1e48, 0x1e48 },
- { 0x1e49, 0x1e49 },
- { 0x1e4a, 0x1e4a },
- { 0x1e4b, 0x1e4b },
- { 0x1e4c, 0x1e4c },
- { 0x1e4d, 0x1e4d },
- { 0x1e4e, 0x1e4e },
- { 0x1e4f, 0x1e4f },
- { 0x1e50, 0x1e50 },
- { 0x1e51, 0x1e51 },
- { 0x1e52, 0x1e52 },
- { 0x1e53, 0x1e53 },
- { 0x1e54, 0x1e54 },
- { 0x1e55, 0x1e55 },
- { 0x1e56, 0x1e56 },
- { 0x1e57, 0x1e57 },
- { 0x1e58, 0x1e58 },
- { 0x1e59, 0x1e59 },
- { 0x1e5a, 0x1e5a },
- { 0x1e5b, 0x1e5b },
- { 0x1e5c, 0x1e5c },
- { 0x1e5d, 0x1e5d },
- { 0x1e5e, 0x1e5e },
- { 0x1e5f, 0x1e5f },
- { 0x1e60, 0x1e60 },
- { 0x1e61, 0x1e61 },
- { 0x1e62, 0x1e62 },
- { 0x1e63, 0x1e63 },
- { 0x1e64, 0x1e64 },
- { 0x1e65, 0x1e65 },
- { 0x1e66, 0x1e66 },
- { 0x1e67, 0x1e67 },
- { 0x1e68, 0x1e68 },
- { 0x1e69, 0x1e69 },
- { 0x1e6a, 0x1e6a },
- { 0x1e6b, 0x1e6b },
- { 0x1e6c, 0x1e6c },
- { 0x1e6d, 0x1e6d },
- { 0x1e6e, 0x1e6e },
- { 0x1e6f, 0x1e6f },
- { 0x1e70, 0x1e70 },
- { 0x1e71, 0x1e71 },
- { 0x1e72, 0x1e72 },
- { 0x1e73, 0x1e73 },
- { 0x1e74, 0x1e74 },
- { 0x1e75, 0x1e75 },
- { 0x1e76, 0x1e76 },
- { 0x1e77, 0x1e77 },
- { 0x1e78, 0x1e78 },
- { 0x1e79, 0x1e79 },
- { 0x1e7a, 0x1e7a },
- { 0x1e7b, 0x1e7b },
- { 0x1e7c, 0x1e7c },
- { 0x1e7d, 0x1e7d },
- { 0x1e7e, 0x1e7e },
- { 0x1e7f, 0x1e7f },
- { 0x1e80, 0x1e80 },
- { 0x1e81, 0x1e81 },
- { 0x1e82, 0x1e82 },
- { 0x1e83, 0x1e83 },
- { 0x1e84, 0x1e84 },
- { 0x1e85, 0x1e85 },
- { 0x1e86, 0x1e86 },
- { 0x1e87, 0x1e87 },
- { 0x1e88, 0x1e88 },
- { 0x1e89, 0x1e89 },
- { 0x1e8a, 0x1e8a },
- { 0x1e8b, 0x1e8b },
- { 0x1e8c, 0x1e8c },
- { 0x1e8d, 0x1e8d },
- { 0x1e8e, 0x1e8e },
- { 0x1e8f, 0x1e8f },
- { 0x1e90, 0x1e90 },
- { 0x1e91, 0x1e91 },
- { 0x1e92, 0x1e92 },
- { 0x1e93, 0x1e93 },
- { 0x1e94, 0x1e94 },
- { 0x1e95, 0x1e9b },
- { 0x1e9c, 0x1e9f },
- { 0x1ea0, 0x1ea0 },
- { 0x1ea1, 0x1ea1 },
- { 0x1ea2, 0x1ea2 },
- { 0x1ea3, 0x1ea3 },
- { 0x1ea4, 0x1ea4 },
- { 0x1ea5, 0x1ea5 },
- { 0x1ea6, 0x1ea6 },
- { 0x1ea7, 0x1ea7 },
- { 0x1ea8, 0x1ea8 },
- { 0x1ea9, 0x1ea9 },
- { 0x1eaa, 0x1eaa },
- { 0x1eab, 0x1eab },
- { 0x1eac, 0x1eac },
- { 0x1ead, 0x1ead },
- { 0x1eae, 0x1eae },
- { 0x1eaf, 0x1eaf },
- { 0x1eb0, 0x1eb0 },
- { 0x1eb1, 0x1eb1 },
- { 0x1eb2, 0x1eb2 },
- { 0x1eb3, 0x1eb3 },
- { 0x1eb4, 0x1eb4 },
- { 0x1eb5, 0x1eb5 },
- { 0x1eb6, 0x1eb6 },
- { 0x1eb7, 0x1eb7 },
- { 0x1eb8, 0x1eb8 },
- { 0x1eb9, 0x1eb9 },
- { 0x1eba, 0x1eba },
- { 0x1ebb, 0x1ebb },
- { 0x1ebc, 0x1ebc },
- { 0x1ebd, 0x1ebd },
- { 0x1ebe, 0x1ebe },
- { 0x1ebf, 0x1ebf },
- { 0x1ec0, 0x1ec0 },
- { 0x1ec1, 0x1ec1 },
- { 0x1ec2, 0x1ec2 },
- { 0x1ec3, 0x1ec3 },
- { 0x1ec4, 0x1ec4 },
- { 0x1ec5, 0x1ec5 },
- { 0x1ec6, 0x1ec6 },
- { 0x1ec7, 0x1ec7 },
- { 0x1ec8, 0x1ec8 },
- { 0x1ec9, 0x1ec9 },
- { 0x1eca, 0x1eca },
- { 0x1ecb, 0x1ecb },
- { 0x1ecc, 0x1ecc },
- { 0x1ecd, 0x1ecd },
- { 0x1ece, 0x1ece },
- { 0x1ecf, 0x1ecf },
- { 0x1ed0, 0x1ed0 },
- { 0x1ed1, 0x1ed1 },
- { 0x1ed2, 0x1ed2 },
- { 0x1ed3, 0x1ed3 },
- { 0x1ed4, 0x1ed4 },
- { 0x1ed5, 0x1ed5 },
- { 0x1ed6, 0x1ed6 },
- { 0x1ed7, 0x1ed7 },
- { 0x1ed8, 0x1ed8 },
- { 0x1ed9, 0x1ed9 },
- { 0x1eda, 0x1eda },
- { 0x1edb, 0x1edb },
- { 0x1edc, 0x1edc },
- { 0x1edd, 0x1edd },
- { 0x1ede, 0x1ede },
- { 0x1edf, 0x1edf },
- { 0x1ee0, 0x1ee0 },
- { 0x1ee1, 0x1ee1 },
- { 0x1ee2, 0x1ee2 },
- { 0x1ee3, 0x1ee3 },
- { 0x1ee4, 0x1ee4 },
- { 0x1ee5, 0x1ee5 },
- { 0x1ee6, 0x1ee6 },
- { 0x1ee7, 0x1ee7 },
- { 0x1ee8, 0x1ee8 },
- { 0x1ee9, 0x1ee9 },
- { 0x1eea, 0x1eea },
- { 0x1eeb, 0x1eeb },
- { 0x1eec, 0x1eec },
- { 0x1eed, 0x1eed },
- { 0x1eee, 0x1eee },
- { 0x1eef, 0x1eef },
- { 0x1ef0, 0x1ef0 },
- { 0x1ef1, 0x1ef1 },
- { 0x1ef2, 0x1ef2 },
- { 0x1ef3, 0x1ef3 },
- { 0x1ef4, 0x1ef4 },
- { 0x1ef5, 0x1ef5 },
- { 0x1ef6, 0x1ef6 },
- { 0x1ef7, 0x1ef7 },
- { 0x1ef8, 0x1ef8 },
- { 0x1ef9, 0x1ef9 },
- { 0x1efa, 0x1eff },
- { 0x1f00, 0x1f07 },
- { 0x1f08, 0x1f0f },
- { 0x1f10, 0x1f15 },
- { 0x1f16, 0x1f17 },
- { 0x1f18, 0x1f1d },
- { 0x1f1e, 0x1f1f },
- { 0x1f20, 0x1f27 },
- { 0x1f28, 0x1f2f },
- { 0x1f30, 0x1f37 },
- { 0x1f38, 0x1f3f },
- { 0x1f40, 0x1f45 },
- { 0x1f46, 0x1f47 },
- { 0x1f48, 0x1f4d },
- { 0x1f4e, 0x1f4f },
- { 0x1f50, 0x1f57 },
- { 0x1f58, 0x1f58 },
- { 0x1f59, 0x1f59 },
- { 0x1f5a, 0x1f5a },
- { 0x1f5b, 0x1f5b },
- { 0x1f5c, 0x1f5c },
- { 0x1f5d, 0x1f5d },
- { 0x1f5e, 0x1f5e },
- { 0x1f5f, 0x1f5f },
- { 0x1f60, 0x1f67 },
- { 0x1f68, 0x1f6f },
- { 0x1f70, 0x1f7d },
- { 0x1f7e, 0x1f7f },
- { 0x1f80, 0x1f87 },
- { 0x1f88, 0x1f8f },
- { 0x1f90, 0x1f97 },
- { 0x1f98, 0x1f9f },
- { 0x1fa0, 0x1fa7 },
- { 0x1fa8, 0x1faf },
- { 0x1fb0, 0x1fb4 },
- { 0x1fb5, 0x1fb5 },
- { 0x1fb6, 0x1fb7 },
- { 0x1fb8, 0x1fbc },
- { 0x1fbd, 0x1fbd },
- { 0x1fbe, 0x1fbe },
- { 0x1fbf, 0x1fc1 },
- { 0x1fc2, 0x1fc4 },
- { 0x1fc5, 0x1fc5 },
- { 0x1fc6, 0x1fc7 },
- { 0x1fc8, 0x1fcc },
- { 0x1fcd, 0x1fcf },
- { 0x1fd0, 0x1fd3 },
- { 0x1fd4, 0x1fd5 },
- { 0x1fd6, 0x1fd7 },
- { 0x1fd8, 0x1fdb },
- { 0x1fdc, 0x1fdc },
- { 0x1fdd, 0x1fdf },
- { 0x1fe0, 0x1fe7 },
- { 0x1fe8, 0x1fec },
- { 0x1fed, 0x1fef },
- { 0x1ff0, 0x1ff1 },
- { 0x1ff2, 0x1ff4 },
- { 0x1ff5, 0x1ff5 },
- { 0x1ff6, 0x1ff7 },
- { 0x1ff8, 0x1ffc },
- { 0x1ffd, 0x1ffe },
- { 0x1fff, 0x1fff },
- { 0x2000, 0x200b },
- { 0x200c, 0x200f },
- { 0x2010, 0x2015 },
- { 0x2016, 0x2017 },
- { 0x2018, 0x2018 },
- { 0x2019, 0x2019 },
- { 0x201a, 0x201a },
- { 0x201b, 0x201c },
- { 0x201d, 0x201d },
- { 0x201e, 0x201e },
- { 0x201f, 0x201f },
- { 0x2020, 0x2027 },
- { 0x2028, 0x2028 },
- { 0x2029, 0x2029 },
- { 0x202a, 0x202e },
- { 0x202f, 0x202f },
- { 0x2030, 0x2038 },
- { 0x2039, 0x2039 },
- { 0x203a, 0x203a },
- { 0x203b, 0x203e },
- { 0x203f, 0x2040 },
- { 0x2041, 0x2043 },
- { 0x2044, 0x2044 },
- { 0x2045, 0x2045 },
- { 0x2046, 0x2046 },
- { 0x2047, 0x2069 },
- { 0x206a, 0x206f },
- { 0x2070, 0x2070 },
- { 0x2071, 0x2073 },
- { 0x2074, 0x2079 },
- { 0x207a, 0x207c },
- { 0x207d, 0x207d },
- { 0x207e, 0x207e },
- { 0x207f, 0x207f },
- { 0x2080, 0x2089 },
- { 0x208a, 0x208c },
- { 0x208d, 0x208d },
- { 0x208e, 0x208e },
- { 0x208f, 0x209f },
- { 0x20a0, 0x20ac },
- { 0x20ad, 0x20cf },
- { 0x20d0, 0x20dc },
- { 0x20dd, 0x20e0 },
- { 0x20e1, 0x20e1 },
- { 0x20e2, 0x20ff },
- { 0x2100, 0x2101 },
- { 0x2102, 0x2102 },
- { 0x2103, 0x2106 },
- { 0x2107, 0x2107 },
- { 0x2108, 0x2109 },
- { 0x210a, 0x210a },
- { 0x210b, 0x210d },
- { 0x210e, 0x210f },
- { 0x2110, 0x2112 },
- { 0x2113, 0x2113 },
- { 0x2114, 0x2114 },
- { 0x2115, 0x2115 },
- { 0x2116, 0x2117 },
- { 0x2118, 0x2118 },
- { 0x2119, 0x211d },
- { 0x211e, 0x2123 },
- { 0x2124, 0x2124 },
- { 0x2125, 0x2125 },
- { 0x2126, 0x2126 },
- { 0x2127, 0x2127 },
- { 0x2128, 0x2128 },
- { 0x2129, 0x2129 },
- { 0x212a, 0x212d },
- { 0x212e, 0x212f },
- { 0x2130, 0x2131 },
- { 0x2132, 0x2132 },
- { 0x2133, 0x2133 },
- { 0x2134, 0x2134 },
- { 0x2135, 0x2138 },
- { 0x2139, 0x2152 },
- { 0x2153, 0x215f },
- { 0x2160, 0x2182 },
- { 0x2183, 0x218f },
- { 0x2190, 0x2194 },
- { 0x2195, 0x21d1 },
- { 0x21d2, 0x21d2 },
- { 0x21d3, 0x21d3 },
- { 0x21d4, 0x21d4 },
- { 0x21d5, 0x21ea },
- { 0x21eb, 0x21ff },
- { 0x2200, 0x22f1 },
- { 0x22f2, 0x22ff },
- { 0x2300, 0x2300 },
- { 0x2301, 0x2301 },
- { 0x2302, 0x2307 },
- { 0x2308, 0x230b },
- { 0x230c, 0x231f },
- { 0x2320, 0x2321 },
- { 0x2322, 0x2328 },
- { 0x2329, 0x2329 },
- { 0x232a, 0x232a },
- { 0x232b, 0x237a },
- { 0x237b, 0x23ff },
- { 0x2400, 0x2424 },
- { 0x2425, 0x243f },
- { 0x2440, 0x244a },
- { 0x244b, 0x245f },
- { 0x2460, 0x249b },
- { 0x249c, 0x24e9 },
- { 0x24ea, 0x24ea },
- { 0x24eb, 0x24ff },
- { 0x2500, 0x2595 },
- { 0x2596, 0x259f },
- { 0x25a0, 0x25ef },
- { 0x25f0, 0x25ff },
- { 0x2600, 0x2613 },
- { 0x2614, 0x2619 },
- { 0x261a, 0x266f },
- { 0x2670, 0x2700 },
- { 0x2701, 0x2704 },
- { 0x2705, 0x2705 },
- { 0x2706, 0x2709 },
- { 0x270a, 0x270b },
- { 0x270c, 0x2727 },
- { 0x2728, 0x2728 },
- { 0x2729, 0x274b },
- { 0x274c, 0x274c },
- { 0x274d, 0x274d },
- { 0x274e, 0x274e },
- { 0x274f, 0x2752 },
- { 0x2753, 0x2755 },
- { 0x2756, 0x2756 },
- { 0x2757, 0x2757 },
- { 0x2758, 0x275e },
- { 0x275f, 0x2760 },
- { 0x2761, 0x2767 },
- { 0x2768, 0x2775 },
- { 0x2776, 0x2793 },
- { 0x2794, 0x2794 },
- { 0x2795, 0x2797 },
- { 0x2798, 0x27af },
- { 0x27b0, 0x27b0 },
- { 0x27b1, 0x27be },
- { 0x27bf, 0x2fff },
- { 0x3000, 0x3000 },
- { 0x3001, 0x3003 },
- { 0x3004, 0x3004 },
- { 0x3005, 0x3005 },
- { 0x3006, 0x3006 },
- { 0x3007, 0x3007 },
- { 0x3008, 0x3008 },
- { 0x3009, 0x3009 },
- { 0x300a, 0x300a },
- { 0x300b, 0x300b },
- { 0x300c, 0x300c },
- { 0x300d, 0x300d },
- { 0x300e, 0x300e },
- { 0x300f, 0x300f },
- { 0x3010, 0x3010 },
- { 0x3011, 0x3011 },
- { 0x3012, 0x3013 },
- { 0x3014, 0x3014 },
- { 0x3015, 0x3015 },
- { 0x3016, 0x3016 },
- { 0x3017, 0x3017 },
- { 0x3018, 0x3018 },
- { 0x3019, 0x3019 },
- { 0x301a, 0x301a },
- { 0x301b, 0x301b },
- { 0x301c, 0x301c },
- { 0x301d, 0x301d },
- { 0x301e, 0x301f },
- { 0x3020, 0x3020 },
- { 0x3021, 0x3029 },
- { 0x302a, 0x302f },
- { 0x3030, 0x3030 },
- { 0x3031, 0x3035 },
- { 0x3036, 0x3037 },
- { 0x3038, 0x303e },
- { 0x303f, 0x303f },
- { 0x3040, 0x3040 },
- { 0x3041, 0x3094 },
- { 0x3095, 0x3098 },
- { 0x3099, 0x309a },
- { 0x309b, 0x309c },
- { 0x309d, 0x309e },
- { 0x309f, 0x30a0 },
- { 0x30a1, 0x30fa },
- { 0x30fb, 0x30fb },
- { 0x30fc, 0x30fe },
- { 0x30ff, 0x3104 },
- { 0x3105, 0x312c },
- { 0x312d, 0x3130 },
- { 0x3131, 0x318e },
- { 0x318f, 0x318f },
- { 0x3190, 0x3191 },
- { 0x3192, 0x3195 },
- { 0x3196, 0x319f },
- { 0x31a0, 0x31ff },
- { 0x3200, 0x321c },
- { 0x321d, 0x321f },
- { 0x3220, 0x3229 },
- { 0x322a, 0x3243 },
- { 0x3244, 0x325f },
- { 0x3260, 0x327b },
- { 0x327c, 0x327e },
- { 0x327f, 0x327f },
- { 0x3280, 0x3289 },
- { 0x328a, 0x32b0 },
- { 0x32b1, 0x32bf },
- { 0x32c0, 0x32cb },
- { 0x32cc, 0x32cf },
- { 0x32d0, 0x32fe },
- { 0x32ff, 0x32ff },
- { 0x3300, 0x3376 },
- { 0x3377, 0x337a },
- { 0x337b, 0x33dd },
- { 0x33de, 0x33df },
- { 0x33e0, 0x33fe },
- { 0x33ff, 0x4dff },
- { 0x4e00, 0x9fa5 },
- { 0x9fa6, 0xabff },
- { 0xac00, 0xd7a3 },
- { 0xd7a4, 0xd7ff },
- { 0xd800, 0xdfff },
- { 0xe000, 0xf8ff },
- { 0xf900, 0xfa2d },
- { 0xfa2e, 0xfaff },
- { 0xfb00, 0xfb06 },
- { 0xfb07, 0xfb12 },
- { 0xfb13, 0xfb17 },
- { 0xfb18, 0xfb1d },
- { 0xfb1e, 0xfb1e },
- { 0xfb1f, 0xfb28 },
- { 0xfb29, 0xfb29 },
- { 0xfb2a, 0xfb36 },
- { 0xfb37, 0xfb37 },
- { 0xfb38, 0xfb3c },
- { 0xfb3d, 0xfb3d },
- { 0xfb3e, 0xfb3e },
- { 0xfb3f, 0xfb3f },
- { 0xfb40, 0xfb41 },
- { 0xfb42, 0xfb42 },
- { 0xfb43, 0xfb44 },
- { 0xfb45, 0xfb45 },
- { 0xfb46, 0xfbb1 },
- { 0xfbb2, 0xfbd2 },
- { 0xfbd3, 0xfd3d },
- { 0xfd3e, 0xfd3e },
- { 0xfd3f, 0xfd3f },
- { 0xfd40, 0xfd4f },
- { 0xfd50, 0xfd8f },
- { 0xfd90, 0xfd91 },
- { 0xfd92, 0xfdc7 },
- { 0xfdc8, 0xfdef },
- { 0xfdf0, 0xfdfb },
- { 0xfdfc, 0xfe1f },
- { 0xfe20, 0xfe23 },
- { 0xfe24, 0xfe2f },
- { 0xfe30, 0xfe30 },
- { 0xfe31, 0xfe32 },
- { 0xfe33, 0xfe34 },
- { 0xfe35, 0xfe35 },
- { 0xfe36, 0xfe36 },
- { 0xfe37, 0xfe37 },
- { 0xfe38, 0xfe38 },
- { 0xfe39, 0xfe39 },
- { 0xfe3a, 0xfe3a },
- { 0xfe3b, 0xfe3b },
- { 0xfe3c, 0xfe3c },
- { 0xfe3d, 0xfe3d },
- { 0xfe3e, 0xfe3e },
- { 0xfe3f, 0xfe3f },
- { 0xfe40, 0xfe40 },
- { 0xfe41, 0xfe41 },
- { 0xfe42, 0xfe42 },
- { 0xfe43, 0xfe43 },
- { 0xfe44, 0xfe44 },
- { 0xfe45, 0xfe48 },
- { 0xfe49, 0xfe4c },
- { 0xfe4d, 0xfe4f },
- { 0xfe50, 0xfe52 },
- { 0xfe53, 0xfe53 },
- { 0xfe54, 0xfe57 },
- { 0xfe58, 0xfe58 },
- { 0xfe59, 0xfe59 },
- { 0xfe5a, 0xfe5a },
- { 0xfe5b, 0xfe5b },
- { 0xfe5c, 0xfe5c },
- { 0xfe5d, 0xfe5d },
- { 0xfe5e, 0xfe5e },
- { 0xfe5f, 0xfe61 },
- { 0xfe62, 0xfe62 },
- { 0xfe63, 0xfe63 },
- { 0xfe64, 0xfe66 },
- { 0xfe67, 0xfe67 },
- { 0xfe68, 0xfe68 },
- { 0xfe69, 0xfe69 },
- { 0xfe6a, 0xfe6b },
- { 0xfe6c, 0xfe6f },
- { 0xfe70, 0xfe72 },
- { 0xfe73, 0xfe73 },
- { 0xfe74, 0xfe74 },
- { 0xfe75, 0xfe75 },
- { 0xfe76, 0xfefc },
- { 0xfefd, 0xfefe },
- { 0xfeff, 0xfeff },
- { 0xff00, 0xff00 },
- { 0xff01, 0xff03 },
- { 0xff04, 0xff04 },
- { 0xff05, 0xff07 },
- { 0xff08, 0xff08 },
- { 0xff09, 0xff09 },
- { 0xff0a, 0xff0a },
- { 0xff0b, 0xff0b },
- { 0xff0c, 0xff0c },
- { 0xff0d, 0xff0d },
- { 0xff0e, 0xff0f },
- { 0xff10, 0xff19 },
- { 0xff1a, 0xff1b },
- { 0xff1c, 0xff1e },
- { 0xff1f, 0xff20 },
- { 0xff21, 0xff3a },
- { 0xff3b, 0xff3b },
- { 0xff3c, 0xff3c },
- { 0xff3d, 0xff3d },
- { 0xff3e, 0xff3e },
- { 0xff3f, 0xff3f },
- { 0xff40, 0xff40 },
- { 0xff41, 0xff5a },
- { 0xff5b, 0xff5b },
- { 0xff5c, 0xff5c },
- { 0xff5d, 0xff5d },
- { 0xff5e, 0xff5e },
- { 0xff5f, 0xff60 },
- { 0xff61, 0xff61 },
- { 0xff62, 0xff62 },
- { 0xff63, 0xff63 },
- { 0xff64, 0xff64 },
- { 0xff65, 0xff65 },
- { 0xff66, 0xff6f },
- { 0xff70, 0xff70 },
- { 0xff71, 0xff9d },
- { 0xff9e, 0xff9f },
- { 0xffa0, 0xffbe },
- { 0xffbf, 0xffc1 },
- { 0xffc2, 0xffc7 },
- { 0xffc8, 0xffc9 },
- { 0xffca, 0xffcf },
- { 0xffd0, 0xffd1 },
- { 0xffd2, 0xffd7 },
- { 0xffd8, 0xffd9 },
- { 0xffda, 0xffdc },
- { 0xffdd, 0xffdf },
- { 0xffe0, 0xffe1 },
- { 0xffe2, 0xffe2 },
- { 0xffe3, 0xffe3 },
- { 0xffe4, 0xffe4 },
- { 0xffe5, 0xffe6 },
- { 0xffe7, 0xffe7 },
- { 0xffe8, 0xffec },
- { 0xffed, 0xffee },
- { 0xffef, 0xfffb },
- { 0xfffc, 0xfffd },
- { 0xfffe, 0xffff }
- };
-
-static const jbyte category_table[] =
- { java::lang::Character::CONTROL,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::CONTROL,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::FORMAT,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::LINE_SEPARATOR,
- java::lang::Character::PARAGRAPH_SEPARATOR,
- java::lang::Character::FORMAT,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::FORMAT,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SURROGATE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::FORMAT,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED
- };
-
-#else /* COMPACT_CHARACTER */
-
-#define ROMAN_START 0x2160
-#define ROMAN_END 0x217f
-
-static const jbyte type_table[] =
-{ java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::CONTROL,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::TITLECASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::COMBINING_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::LINE_SEPARATOR,
- java::lang::Character::PARAGRAPH_SEPARATOR,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::FORMAT,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::ENCLOSING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SPACE_SEPARATOR,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::LETTER_NUMBER,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_NUMBER,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::SURROGATE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::PRIVATE_USE,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::NON_SPACING_MARK,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::FORMAT,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DASH_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::DECIMAL_DIGIT_NUMBER,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::UPPERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::LOWERCASE_LETTER,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::START_PUNCTUATION,
- java::lang::Character::END_PUNCTUATION,
- java::lang::Character::OTHER_PUNCTUATION,
- java::lang::Character::CONNECTOR_PUNCTUATION,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::MODIFIER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::OTHER_LETTER,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MODIFIER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::CURRENCY_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::MATH_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::OTHER_SYMBOL,
- java::lang::Character::UNASSIGNED,
- java::lang::Character::UNASSIGNED
-
- };
-
-static const jshort attribute_table[] =
-{ 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, 1, 2, 3,
- 4, 5, 6, 7, 8,
- 9, 0, 0, 0, 0,
- 0, 0, 0, 97, 98,
- 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 0,
- 0, 0, 0, 0, 0,
- 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89,
- 90, 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, 2, 3, 0, 0,
- 0, 0, 0, 1, 0,
- 0, -2, -2, -2, 0,
- 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233,
- 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243,
- 244, 245, 246, 0, 248,
- 249, 250, 251, 252, 253,
- 254, 0, 192, 193, 194,
- 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214,
- 0, 216, 217, 218, 219,
- 220, 221, 222, 376, 257,
- 256, 259, 258, 261, 260,
- 263, 262, 265, 264, 267,
- 266, 269, 268, 271, 270,
- 273, 272, 275, 274, 277,
- 276, 279, 278, 281, 280,
- 283, 282, 285, 284, 287,
- 286, 289, 288, 291, 290,
- 293, 292, 295, 294, 297,
- 296, 299, 298, 301, 300,
- 303, 302, 105, 73, 307,
- 306, 309, 308, 311, 310,
- 0, 314, 313, 316, 315,
- 318, 317, 320, 319, 322,
- 321, 324, 323, 326, 325,
- 328, 327, 0, 331, 330,
- 333, 332, 335, 334, 337,
- 336, 339, 338, 341, 340,
- 343, 342, 345, 344, 347,
- 346, 349, 348, 351, 350,
- 353, 352, 355, 354, 357,
- 356, 359, 358, 361, 360,
- 363, 362, 365, 364, 367,
- 366, 369, 368, 371, 370,
- 373, 372, 375, 374, 255,
- 378, 377, 380, 379, 382,
- 381, 83, 0, 595, 387,
- 386, 389, 388, 596, 392,
- 391, 598, 599, 396, 395,
- 0, 477, 601, 603, 402,
- 401, 608, 611, 0, 617,
- 616, 409, 408, 0, 0,
- 623, 626, 0, 629, 417,
- 416, 419, 418, 421, 420,
- 640, 424, 423, 643, 0,
- 0, 429, 428, 648, 432,
- 431, 650, 651, 436, 435,
- 438, 437, 658, 441, 440,
- 0, 0, 445, 444, 0,
- 0, 0, 0, 0, 0,
- 454, 0, 452, 457, 0,
- 455, 460, 0, 458, 462,
- 461, 464, 463, 466, 465,
- 468, 467, 470, 469, 472,
- 471, 474, 473, 476, 475,
- 398, 479, 478, 481, 480,
- 483, 482, 485, 484, 487,
- 486, 489, 488, 491, 490,
- 493, 492, 495, 494, 0,
- 499, 0, 497, 501, 500,
- 0, 0, 0, 0, 507,
- 506, 509, 508, 511, 510,
- 513, 512, 515, 514, 517,
- 516, 519, 518, 521, 520,
- 523, 522, 525, 524, 527,
- 526, 529, 528, 531, 530,
- 533, 532, 535, 534, 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, 385, 390,
- 0, 393, 394, 0, 399,
- 0, 400, 0, 0, 0,
- 0, 403, 0, 0, 404,
- 0, 0, 0, 0, 407,
- 406, 0, 0, 0, 0,
- 0, 412, 0, 0, 413,
- 0, 0, 415, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 422, 0,
- 0, 425, 0, 0, 0,
- 0, 430, 0, 433, 434,
- 0, 0, 0, 0, 0,
- 0, 439, 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, 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,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 921, 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,
- 940, 0, 941, 942, 943,
- 0, 972, 0, 973, 974,
- 0, 945, 946, 947, 948,
- 949, 950, 951, 952, 953,
- 954, 955, 956, 957, 958,
- 959, 960, 961, 0, 963,
- 964, 965, 966, 967, 968,
- 969, 970, 971, 902, 904,
- 905, 906, 0, 913, 914,
- 915, 916, 917, 918, 919,
- 920, 921, 922, 923, 924,
- 925, 926, 927, 928, 929,
- 931, 931, 932, 933, 934,
- 935, 936, 937, 938, 939,
- 908, 910, 911, 0, 914,
- 920, 0, 0, 0, 934,
- 928, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 995, 994, 997,
- 996, 999, 998, 1001, 1000,
- 1003, 1002, 1005, 1004, 1007,
- 1006, 922, 929, 931, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 1105, 1106,
- 1107, 1108, 1109, 1110, 1111,
- 1112, 1113, 1114, 1115, 1116,
- 0, 1118, 1119, 1072, 1073,
- 1074, 1075, 1076, 1077, 1078,
- 1079, 1080, 1081, 1082, 1083,
- 1084, 1085, 1086, 1087, 1088,
- 1089, 1090, 1091, 1092, 1093,
- 1094, 1095, 1096, 1097, 1098,
- 1099, 1100, 1101, 1102, 1103,
- 1040, 1041, 1042, 1043, 1044,
- 1045, 1046, 1047, 1048, 1049,
- 1050, 1051, 1052, 1053, 1054,
- 1055, 1056, 1057, 1058, 1059,
- 1060, 1061, 1062, 1063, 1064,
- 1065, 1066, 1067, 1068, 1069,
- 1070, 1071, 0, 1025, 1026,
- 1027, 1028, 1029, 1030, 1031,
- 1032, 1033, 1034, 1035, 1036,
- 0, 1038, 1039, 1121, 1120,
- 1123, 1122, 1125, 1124, 1127,
- 1126, 1129, 1128, 1131, 1130,
- 1133, 1132, 1135, 1134, 1137,
- 1136, 1139, 1138, 1141, 1140,
- 1143, 1142, 1145, 1144, 1147,
- 1146, 1149, 1148, 1151, 1150,
- 1153, 1152, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 1169, 1168, 1171, 1170,
- 1173, 1172, 1175, 1174, 1177,
- 1176, 1179, 1178, 1181, 1180,
- 1183, 1182, 1185, 1184, 1187,
- 1186, 1189, 1188, 1191, 1190,
- 1193, 1192, 1195, 1194, 1197,
- 1196, 1199, 1198, 1201, 1200,
- 1203, 1202, 1205, 1204, 1207,
- 1206, 1209, 1208, 1211, 1210,
- 1213, 1212, 1215, 1214, 0,
- 1218, 1217, 1220, 1219, 0,
- 0, 1224, 1223, 0, 0,
- 1228, 1227, 0, 0, 0,
- 1233, 1232, 1235, 1234, 1237,
- 1236, 1239, 1238, 1241, 1240,
- 1243, 1242, 1245, 1244, 1247,
- 1246, 1249, 1248, 1251, 1250,
- 1253, 1252, 1255, 1254, 1257,
- 1256, 1259, 1258, 0, 0,
- 1263, 1262, 1265, 1264, 1267,
- 1266, 1269, 1268, 0, 0,
- 1273, 1272, 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, 1377, 1378, 1379,
- 1380, 1381, 1382, 1383, 1384,
- 1385, 1386, 1387, 1388, 1389,
- 1390, 1391, 1392, 1393, 1394,
- 1395, 1396, 1397, 1398, 1399,
- 1400, 1401, 1402, 1403, 1404,
- 1405, 1406, 1407, 1408, 1409,
- 1410, 1411, 1412, 1413, 1414,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 1329, 1330, 1331, 1332, 1333,
- 1334, 1335, 1336, 1337, 1338,
- 1339, 1340, 1341, 1342, 1343,
- 1344, 1345, 1346, 1347, 1348,
- 1349, 1350, 1351, 1352, 1353,
- 1354, 1355, 1356, 1357, 1358,
- 1359, 1360, 1361, 1362, 1363,
- 1364, 1365, 1366, 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, 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, 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 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, 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,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 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, 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, 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, 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,
- 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, 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, 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, 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,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 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, 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, 1, 2,
- 3, 4, 5, 6, 7,
- 8, 9, 0, 0, 0,
- 0, 1, 2, 3, 4,
- -2, 16, 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, 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 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, 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, 1,
- 2, 3, 4, 5, 6,
- 7, 8, 9, 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, 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, 1, 2, 3,
- 4, 5, 6, 7, 8,
- 9, 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,
- 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,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 100, 1000, 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, 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, 1, 2,
- 3, 4, 5, 6, 7,
- 8, 9, 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, 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 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, 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, 1,
- 2, 3, 4, 5, 6,
- 7, 8, 9, 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, 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, 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, 1, 2,
- 3, 4, 5, 6, 7,
- 8, 9, 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, 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 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, 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, 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, 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, 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, 4304,
- 4305, 4306, 4307, 4308, 4309,
- 4310, 4311, 4312, 4313, 4314,
- 4315, 4316, 4317, 4318, 4319,
- 4320, 4321, 4322, 4323, 4324,
- 4325, 4326, 4327, 4328, 4329,
- 4330, 4331, 4332, 4333, 4334,
- 4335, 4336, 4337, 4338, 4339,
- 4340, 4341, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 7681, 7680,
- 7683, 7682, 7685, 7684, 7687,
- 7686, 7689, 7688, 7691, 7690,
- 7693, 7692, 7695, 7694, 7697,
- 7696, 7699, 7698, 7701, 7700,
- 7703, 7702, 7705, 7704, 7707,
- 7706, 7709, 7708, 7711, 7710,
- 7713, 7712, 7715, 7714, 7717,
- 7716, 7719, 7718, 7721, 7720,
- 7723, 7722, 7725, 7724, 7727,
- 7726, 7729, 7728, 7731, 7730,
- 7733, 7732, 7735, 7734, 7737,
- 7736, 7739, 7738, 7741, 7740,
- 7743, 7742, 7745, 7744, 7747,
- 7746, 7749, 7748, 7751, 7750,
- 7753, 7752, 7755, 7754, 7757,
- 7756, 7759, 7758, 7761, 7760,
- 7763, 7762, 7765, 7764, 7767,
- 7766, 7769, 7768, 7771, 7770,
- 7773, 7772, 7775, 7774, 7777,
- 7776, 7779, 7778, 7781, 7780,
- 7783, 7782, 7785, 7784, 7787,
- 7786, 7789, 7788, 7791, 7790,
- 7793, 7792, 7795, 7794, 7797,
- 7796, 7799, 7798, 7801, 7800,
- 7803, 7802, 7805, 7804, 7807,
- 7806, 7809, 7808, 7811, 7810,
- 7813, 7812, 7815, 7814, 7817,
- 7816, 7819, 7818, 7821, 7820,
- 7823, 7822, 7825, 7824, 7827,
- 7826, 7829, 7828, 0, 0,
- 0, 0, 0, 7776, 0,
- 0, 0, 0, 7841, 7840,
- 7843, 7842, 7845, 7844, 7847,
- 7846, 7849, 7848, 7851, 7850,
- 7853, 7852, 7855, 7854, 7857,
- 7856, 7859, 7858, 7861, 7860,
- 7863, 7862, 7865, 7864, 7867,
- 7866, 7869, 7868, 7871, 7870,
- 7873, 7872, 7875, 7874, 7877,
- 7876, 7879, 7878, 7881, 7880,
- 7883, 7882, 7885, 7884, 7887,
- 7886, 7889, 7888, 7891, 7890,
- 7893, 7892, 7895, 7894, 7897,
- 7896, 7899, 7898, 7901, 7900,
- 7903, 7902, 7905, 7904, 7907,
- 7906, 7909, 7908, 7911, 7910,
- 7913, 7912, 7915, 7914, 7917,
- 7916, 7919, 7918, 7921, 7920,
- 7923, 7922, 7925, 7924, 7927,
- 7926, 7929, 7928, 0, 0,
- 0, 0, 0, 0, 7944,
- 7945, 7946, 7947, 7948, 7949,
- 7950, 7951, 7936, 7937, 7938,
- 7939, 7940, 7941, 7942, 7943,
- 7960, 7961, 7962, 7963, 7964,
- 7965, 0, 0, 7952, 7953,
- 7954, 7955, 7956, 7957, 0,
- 0, 7976, 7977, 7978, 7979,
- 7980, 7981, 7982, 7983, 7968,
- 7969, 7970, 7971, 7972, 7973,
- 7974, 7975, 7992, 7993, 7994,
- 7995, 7996, 7997, 7998, 7999,
- 7984, 7985, 7986, 7987, 7988,
- 7989, 7990, 7991, 8008, 8009,
- 8010, 8011, 8012, 8013, 0,
- 0, 8000, 8001, 8002, 8003,
- 8004, 8005, 0, 0, 0,
- 8025, 0, 8027, 0, 8029,
- 0, 8031, 0, 8017, 0,
- 8019, 0, 8021, 0, 8023,
- 8040, 8041, 8042, 8043, 8044,
- 8045, 8046, 8047, 8032, 8033,
- 8034, 8035, 8036, 8037, 8038,
- 8039, 8122, 8123, 8136, 8137,
- 8138, 8139, 8154, 8155, 8184,
- 8185, 8170, 8171, 8186, 8187,
- 0, 0, 8072, 8073, 8074,
- 8075, 8076, 8077, 8078, 8079,
- 8064, 8065, 8066, 8067, 8068,
- 8069, 8070, 8071, 8088, 8089,
- 8090, 8091, 8092, 8093, 8094,
- 8095, 8080, 8081, 8082, 8083,
- 8084, 8085, 8086, 8087, 8104,
- 8105, 8106, 8107, 8108, 8109,
- 8110, 8111, 8096, 8097, 8098,
- 8099, 8100, 8101, 8102, 8103,
- 8120, 8121, 0, 8124, 0,
- 0, 0, 0, 8112, 8113,
- 8048, 8049, 8115, 0, 921,
- 0, 0, 0, 0, 8140,
- 0, 0, 0, 0, 8050,
- 8051, 8052, 8053, 8131, 0,
- 0, 0, 8152, 8153, 0,
- 0, 0, 0, 0, 0,
- 8144, 8145, 8054, 8055, 0,
- 0, 0, 0, 8168, 8169,
- 0, 0, 0, 8172, 0,
- 0, 8160, 8161, 8058, 8059,
- 8165, 0, 0, 0, 0,
- 0, 0, 8188, 0, 0,
- 0, 0, 8056, 8057, 8060,
- 8061, 8179, 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, 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, 4, 5, 6, 7,
- 8, 9, 0, 0, 0,
- 0, 0, 0, 0, 1,
- 2, 3, 4, 5, 6,
- 7, 8, 9, 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, 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, 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, -2,
- -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2,
- -2, 1, 8560, 8561, 8562,
- 8563, 8564, 8565, 8566, 8567,
- 8568, 8569, 8570, 8571, 8572,
- 8573, 8574, 8575, 8544, 8545,
- 8546, 8547, 8548, 8549, 8550,
- 8551, 8552, 8553, 8554, 8555,
- 8556, 8557, 8558, 8559, 1000,
- 5000, 10000, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20,
- 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, 9424, 9425, 9426, 9427,
- 9428, 9429, 9430, 9431, 9432,
- 9433, 9434, 9435, 9436, 9437,
- 9438, 9439, 9440, 9441, 9442,
- 9443, 9444, 9445, 9446, 9447,
- 9448, 9449, 9398, 9399, 9400,
- 9401, 9402, 9403, 9404, 9405,
- 9406, 9407, 9408, 9409, 9410,
- 9411, 9412, 9413, 9414, 9415,
- 9416, 9417, 9418, 9419, 9420,
- 9421, 9422, 9423, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 1,
- 2, 3, 4, 5, 6,
- 7, 8, 9, 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, 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, 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,
- 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, 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, 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, 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, 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, 1, 2, 3, 4,
- 5, 6, 7, 8, 9,
- 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- 0, 0, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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, 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, 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, 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, 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,
- 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,
- 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 0,
- 0, 0, 0, 0, 0,
- 0, 65345, 65346, 65347, 65348,
- 65349, 65350, 65351, 65352, 65353,
- 65354, 65355, 65356, 65357, 65358,
- 65359, 65360, 65361, 65362, 65363,
- 65364, 65365, 65366, 65367, 65368,
- 65369, 65370, 0, 0, 0,
- 0, 0, 0, 65313, 65314,
- 65315, 65316, 65317, 65318, 65319,
- 65320, 65321, 65322, 65323, 65324,
- 65325, 65326, 65327, 65328, 65329,
- 65330, 65331, 65332, 65333, 65334,
- 65335, 65336, 65337, 65338, 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, 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, 0, 0, 0,
- 0, 0, 0, 0
- };
-
-static const jshort secondary_attribute_table[] =
-{ 1, 2, 3,
- 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 50,
- 100, 500, 1000, 1, 2,
- 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12,
- 50, 100, 500, 1000
- };
-
-#endif /* COMPACT_CHARACTER */
-
-#endif /* __JAVA_CHARTABLES_H__ */
diff --git a/libjava/include/java-cpool.h b/libjava/include/java-cpool.h
deleted file mode 100644
index c636e4c6bca..00000000000
--- a/libjava/include/java-cpool.h
+++ /dev/null
@@ -1,133 +0,0 @@
-// java-cpool.h - Constant pool parsing header. -*- c++ -*-
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_CPOOL_H__
-#define __JAVA_CPOOL_H__
-
-#include <gcj/javaprims.h>
-
-// we rename these, to avoid polluting the name space
-#define JV_CONSTANT_Undefined (0L)
-#define JV_CONSTANT_Utf8 (1L)
-#define JV_CONSTANT_Unicode (2L)
-#define JV_CONSTANT_Integer (3L)
-#define JV_CONSTANT_Float (4L)
-#define JV_CONSTANT_Long (5L)
-#define JV_CONSTANT_Double (6L)
-#define JV_CONSTANT_Class (7L)
-#define JV_CONSTANT_String (8L)
-#define JV_CONSTANT_Fieldref (9L)
-#define JV_CONSTANT_Methodref (10L)
-#define JV_CONSTANT_InterfaceMethodref (11L)
-#define JV_CONSTANT_NameAndType (12L)
-#define JV_CONSTANT_ResolvedFlag (16L)
-#define JV_CONSTANT_ResolvedString (16L | 8L)
-#define JV_CONSTANT_ResolvedClass (16L | 7L)
-
-extern inline void
-_Jv_storeIndexes (_Jv_word *data,
- _Jv_ushort index0,
- _Jv_ushort index1)
-{
- data->i = (((jint)index0) << 16) | (jint) index1;
-}
-
-extern inline void
-_Jv_loadIndexes (const _Jv_word *data,
- _Jv_ushort& index0,
- _Jv_ushort& index1)
-{
- jint udata = data->i;
-
- _Jv_uint uindex0 = ((udata >> 16) & 0xffff);
- _Jv_uint uindex1 = udata & 0xffff;
-
- index0 = uindex0;
- index1 = uindex1;
-}
-
-extern inline void
-_Jv_storeFloat (_Jv_word *data, jfloat f)
-{
- data->f = f;
-}
-
-extern inline jfloat
-_Jv_loadFloat (_Jv_word *data)
-{
- return data->f;
-}
-
-extern inline void
-_Jv_storeInt (_Jv_word *data, jint i)
-{
- data->i = i;
-}
-
-extern inline jint
-_Jv_loadInt (_Jv_word *data)
-{
- return data->i;
-}
-
-extern inline void
-_Jv_storeLong (_Jv_word *data, jlong l)
-{
-#if SIZEOF_VOID_P == 8
- data[0].l = l;
-#else
- _Jv_word2 tmp;
- tmp.l = l;
- data[0].ia[0] = tmp.ia[0];
- data[1].ia[0] = tmp.ia[1];
-#endif
-}
-
-extern inline jlong
-_Jv_loadLong (_Jv_word *data)
-{
-#if SIZEOF_VOID_P == 8
- return data -> l;
-#else
- _Jv_word2 tmp;
- tmp.ia[0] = data[0].ia[0];
- tmp.ia[1] = data[1].ia[0];
- return tmp.l;
-#endif
-}
-
-extern inline void
-_Jv_storeDouble (_Jv_word *data, jdouble d)
-{
-#if SIZEOF_VOID_P == 8
- data[0].d = d;
-#else
- _Jv_word2 tmp;
- tmp.d = d;
- data[0].ia[0] = tmp.ia[0];
- data[1].ia[0] = tmp.ia[1];
-#endif
-}
-
-extern inline jdouble
-_Jv_loadDouble (_Jv_word *data)
-{
-#if SIZEOF_VOID_P == 8
- return data -> d;
-#else
- _Jv_word2 tmp;
- tmp.ia[0] = data[0].ia[0];
- tmp.ia[1] = data[1].ia[0];
- return tmp.d;
-#endif
-}
-
-
-#endif /* __JAVA_CPOOL_H__ */
diff --git a/libjava/include/java-insns.h b/libjava/include/java-insns.h
deleted file mode 100644
index 975a7c906c5..00000000000
--- a/libjava/include/java-insns.h
+++ /dev/null
@@ -1,248 +0,0 @@
-// java-insns.h - Instruction encodings. This is -*- c++ -*-
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_INSNS_H__
-#define __JAVA_INSNS_H__
-
-enum
-{
- op_nop = 0x00,
- op_aconst_null = 0x01,
- op_iconst_m1 = 0x02,
- op_iconst_0 = 0x03,
- op_iconst_1 = 0x04,
- op_iconst_2 = 0x05,
- op_iconst_3 = 0x06,
- op_iconst_4 = 0x07,
- op_iconst_5 = 0x08,
- op_lconst_0 = 0x09,
- op_lconst_1 = 0x0a,
- op_fconst_0 = 0x0b,
- op_fconst_1 = 0x0c,
- op_fconst_2 = 0x0d,
- op_dconst_0 = 0x0e,
- op_dconst_1 = 0x0f,
- op_bipush = 0x10,
- op_sipush = 0x11,
- op_ldc = 0x12,
- op_ldc_w = 0x13,
- op_ldc2_w = 0x14,
- op_iload = 0x15,
- op_lload = 0x16,
- op_fload = 0x17,
- op_dload = 0x18,
- op_aload = 0x19,
- op_iload_0 = 0x1a,
- op_iload_1 = 0x1b,
- op_iload_2 = 0x1c,
- op_iload_3 = 0x1d,
- op_lload_0 = 0x1e,
- op_lload_1 = 0x1f,
- op_lload_2 = 0x20,
- op_lload_3 = 0x21,
- op_fload_0 = 0x22,
- op_fload_1 = 0x23,
- op_fload_2 = 0x24,
- op_fload_3 = 0x25,
- op_dload_0 = 0x26,
- op_dload_1 = 0x27,
- op_dload_2 = 0x28,
- op_dload_3 = 0x29,
- op_aload_0 = 0x2a,
- op_aload_1 = 0x2b,
- op_aload_2 = 0x2c,
- op_aload_3 = 0x2d,
- op_iaload = 0x2e,
- op_laload = 0x2f,
- op_faload = 0x30,
- op_daload = 0x31,
- op_aaload = 0x32,
- op_baload = 0x33,
- op_caload = 0x34,
- op_saload = 0x35,
- op_istore = 0x36,
- op_lstore = 0x37,
- op_fstore = 0x38,
- op_dstore = 0x39,
- op_astore = 0x3a,
- op_istore_0 = 0x3b,
- op_istore_1 = 0x3c,
- op_istore_2 = 0x3d,
- op_istore_3 = 0x3e,
- op_lstore_0 = 0x3f,
- op_lstore_1 = 0x40,
- op_lstore_2 = 0x41,
- op_lstore_3 = 0x42,
- op_fstore_0 = 0x43,
- op_fstore_1 = 0x44,
- op_fstore_2 = 0x45,
- op_fstore_3 = 0x46,
- op_dstore_0 = 0x47,
- op_dstore_1 = 0x48,
- op_dstore_2 = 0x49,
- op_dstore_3 = 0x4a,
- op_astore_0 = 0x4b,
- op_astore_1 = 0x4c,
- op_astore_2 = 0x4d,
- op_astore_3 = 0x4e,
- op_iastore = 0x4f,
- op_lastore = 0x50,
- op_fastore = 0x51,
- op_dastore = 0x52,
- op_aastore = 0x53,
- op_bastore = 0x54,
- op_castore = 0x55,
- op_sastore = 0x56,
- op_pop = 0x57,
- op_pop2 = 0x58,
- op_dup = 0x59,
- op_dup_x1 = 0x5a,
- op_dup_x2 = 0x5b,
- op_dup2 = 0x5c,
- op_dup2_x1 = 0x5d,
- op_dup2_x2 = 0x5e,
- op_swap = 0x5f,
- op_iadd = 0x60,
- op_ladd = 0x61,
- op_fadd = 0x62,
- op_dadd = 0x63,
- op_isub = 0x64,
- op_lsub = 0x65,
- op_fsub = 0x66,
- op_dsub = 0x67,
- op_imul = 0x68,
- op_lmul = 0x69,
- op_fmul = 0x6a,
- op_dmul = 0x6b,
- op_idiv = 0x6c,
- op_ldiv = 0x6d,
- op_fdiv = 0x6e,
- op_ddiv = 0x6f,
- op_irem = 0x70,
- op_lrem = 0x71,
- op_frem = 0x72,
- op_drem = 0x73,
- op_ineg = 0x74,
- op_lneg = 0x75,
- op_fneg = 0x76,
- op_dneg = 0x77,
- op_ishl = 0x78,
- op_lshl = 0x79,
- op_ishr = 0x7a,
- op_lshr = 0x7b,
- op_iushr = 0x7c,
- op_lushr = 0x7d,
- op_iand = 0x7e,
- op_land = 0x7f,
- op_ior = 0x80,
- op_lor = 0x81,
- op_ixor = 0x82,
- op_lxor = 0x83,
- op_iinc = 0x84,
- op_i2l = 0x85,
- op_i2f = 0x86,
- op_i2d = 0x87,
- op_l2i = 0x88,
- op_l2f = 0x89,
- op_l2d = 0x8a,
- op_f2i = 0x8b,
- op_f2l = 0x8c,
- op_f2d = 0x8d,
- op_d2i = 0x8e,
- op_d2l = 0x8f,
- op_d2f = 0x90,
- op_i2b = 0x91,
- op_i2c = 0x92,
- op_i2s = 0x93,
- op_lcmp = 0x94,
- op_fcmpl = 0x95,
- op_fcmpg = 0x96,
- op_dcmpl = 0x97,
- op_dcmpg = 0x98,
- op_ifeq = 0x99,
- op_ifne = 0x9a,
- op_iflt = 0x9b,
- op_ifge = 0x9c,
- op_ifgt = 0x9d,
- op_ifle = 0x9e,
- op_if_icmpeq = 0x9f,
- op_if_icmpne = 0xa0,
- op_if_icmplt = 0xa1,
- op_if_icmpge = 0xa2,
- op_if_icmpgt = 0xa3,
- op_if_icmple = 0xa4,
- op_if_acmpeq = 0xa5,
- op_if_acmpne = 0xa6,
- op_goto = 0xa7,
- op_jsr = 0xa8,
- op_ret = 0xa9,
- op_tableswitch = 0xaa,
- op_lookupswitch = 0xab,
- op_ireturn = 0xac,
- op_lreturn = 0xad,
- op_freturn = 0xae,
- op_dreturn = 0xaf,
- op_areturn = 0xb0,
- op_return = 0xb1,
- op_getstatic = 0xb2,
- op_putstatic = 0xb3,
- op_getfield = 0xb4,
- op_putfield = 0xb5,
- op_invokevirtual = 0xb6,
- op_invokespecial = 0xb7,
- op_invokestatic = 0xb8,
- op_invokeinterface = 0xb9,
- op_xxxunusedxxx1 = 0xba,
- op_new = 0xbb,
- op_newarray = 0xbc,
- op_anewarray = 0xbd,
- op_arraylength = 0xbe,
- op_athrow = 0xbf,
- op_checkcast = 0xc0,
- op_instanceof = 0xc1,
- op_monitorenter = 0xc2,
- op_monitorexit = 0xc3,
- op_wide = 0xc4,
- op_multianewarray = 0xc5,
- op_ifnull = 0xc6,
- op_ifnonnull = 0xc7,
- op_goto_w = 0xc8,
- op_jsr_w = 0xc9,
-
- // new opcodes
-
- op_putfield_1 = 0xca,
- op_putfield_2 = 0xcb,
- op_putfield_4 = 0xcc,
- op_putfield_8 = 0xcd,
- op_putfield_a = 0xce,
-
- op_putstatic_1 = 0xcf,
- op_putstatic_2 = 0xd0,
- op_putstatic_4 = 0xd1,
- op_putstatic_8 = 0xd2,
- op_putstatic_a = 0xd3,
-
- op_getfield_1 = 0xd4,
- op_getfield_2s = 0xd5,
- op_getfield_2u = 0xd6,
- op_getfield_4 = 0xd7,
- op_getfield_8 = 0xd8,
- op_getfield_a = 0xd9,
-
- op_getstatic_1 = 0xda,
- op_getstatic_2s = 0xdb,
- op_getstatic_2u = 0xdc,
- op_getstatic_4 = 0xdd,
- op_getstatic_8 = 0xde,
- op_getstatic_a = 0xdf
-};
-
-#endif /* __JAVA_INSNS_H__ */
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
deleted file mode 100644
index 59976b31acf..00000000000
--- a/libjava/include/java-interp.h
+++ /dev/null
@@ -1,216 +0,0 @@
-// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_INTERP_H__
-#define __JAVA_INTERP_H__
-
-#include <jvm.h>
-#include <java-cpool.h>
-
-#ifdef INTERPRETER
-
-#pragma interface
-
-#include <java/lang/Class.h>
-#include <java/lang/ClassLoader.h>
-
-extern "C" {
-#include <ffi.h>
-}
-
-extern inline jboolean
-_Jv_IsInterpretedClass (jclass c)
-{
- return (c->loader != 0);
-}
-
-struct _Jv_ResolvedMethod;
-
-void _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
-void _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
-void _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length);
-void _Jv_VerifyClassName (_Jv_Utf8Const *name);
-void _Jv_VerifyIdentifier (_Jv_Utf8Const *);
-bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2);
-void _Jv_DefineClass (jclass, jbyteArray, jint, jint);
-void _Jv_ResolveField (_Jv_Field *, java::lang::ClassLoader*);
-
-void _Jv_InitField (jobject, jclass, int);
-void * _Jv_AllocMethodInvocation (jsize size);
-
-/* FIXME: this should really be defined in some more generic place */
-#define ROUND(V, A) (((((unsigned) (V))-1) | ((A)-1))+1)
-
-/* the interpreter is written in C++, primarily because it makes it easy for
- * the entire thing to be "friend" with class Class. */
-
-class _Jv_InterpClass;
-class _Jv_InterpMethod;
-class _Jv_InterpMethodInvocation;
-
-class _Jv_InterpException {
- int start_pc;
- int end_pc;
- int handler_pc;
- int handler_type;
-
- friend class _Jv_ClassReader;
- friend class _Jv_InterpMethod;
-};
-
-// Base class for method representations. Subclasses are interpreted
-// and JNI methods.
-class _Jv_MethodBase
-{
-protected:
- // The class which defined this method.
- _Jv_InterpClass *defining_class;
-
- // The method description.
- _Jv_Method *self;
-
- // Size of raw arguments.
- _Jv_ushort args_raw_size;
-
-public:
- _Jv_Method *get_method ()
- {
- return self;
- }
-};
-
-class _Jv_InterpMethod : public _Jv_MethodBase
-{
- _Jv_ushort max_stack;
- _Jv_ushort max_locals;
- int code_length;
-
- _Jv_ushort exc_count;
-
- unsigned char* bytecode ()
- {
- return
- ((unsigned char*)this)
- + ROUND((sizeof (_Jv_InterpMethod)
- + exc_count*sizeof (_Jv_InterpException)), 4);
- }
-
- _Jv_InterpException * exceptions ()
- {
- return (_Jv_InterpException*) (this+1);
- }
-
- static size_t size (int exc_count, int code_length)
- {
- return
- ROUND ((sizeof (_Jv_InterpMethod)
- + (exc_count * sizeof (_Jv_InterpException))), 4)
- + code_length;
- }
-
- // return the method's invocation pointer (a stub).
- void *ncode ();
- void continue1 (_Jv_InterpMethodInvocation *inv);
-
- static void run_normal (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_object (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_class (ffi_cif*, void*, ffi_raw*, void*);
-
- inline jobject run (ffi_cif*, void*, ffi_raw*,
- _Jv_InterpMethodInvocation*);
-
- bool find_exception (jobject ex,
- _Jv_InterpMethodInvocation *inv);
-
- public:
- static void dump_object(jobject o);
-
- friend class _Jv_ClassReader;
- friend class _Jv_InterpMethodInvocation;
-
- friend void _Jv_PrepareClass(jclass);
-};
-
-class _Jv_InterpMethodInvocation {
- _Jv_InterpMethod *running;
- _Jv_word *sp;
- unsigned char *pc;
- _Jv_word state[0];
-
- _Jv_word* stack_base () { return &state[0]; }
- _Jv_word* local_base () { return &state[running->max_stack]; }
-
- friend class _Jv_InterpMethod;
-};
-
-class _Jv_InterpClass : public java::lang::Class
-{
- _Jv_MethodBase **interpreted_methods;
- _Jv_ushort *field_initializers;
-
- friend class _Jv_ClassReader;
- friend class _Jv_InterpMethod;
- friend void _Jv_PrepareClass(jclass);
- friend void _Jv_InitField (jobject, jclass, int);
- friend void* _Jv_MarkObj (void *, void *, void *, void *);
-
- friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
-};
-
-extern inline _Jv_MethodBase **
-_Jv_GetFirstMethod (_Jv_InterpClass *klass)
-{
- return klass->interpreted_methods;
-}
-
-struct _Jv_ResolvedMethod {
- jint stack_item_count;
- jint vtable_index;
- jclass klass;
- _Jv_Method* method;
-
- // a resolved method holds the cif in-line, so that _Jv_MarkObj just needs
- // to mark the resolved method to hold on to the cif. Some memory could be
- // saved by keeping a cache of cif's, since many will be the same.
- ffi_cif cif;
- ffi_type * arg_types[0];
-};
-
-class _Jv_JNIMethod : public _Jv_MethodBase
-{
- // The underlying function. If NULL we have to look for the
- // function.
- void *function;
-
- // This is the CIF used by the JNI function.
- ffi_cif jni_cif;
-
- // These are the argument types used by the JNI function.
- ffi_type **jni_arg_types;
-
- // This function is used when making a JNI call from the interpreter.
- static void call (ffi_cif *, void *, ffi_raw *, void *);
-
- void *ncode ();
-
- friend class _Jv_ClassReader;
- friend void _Jv_PrepareClass(jclass);
-
-public:
- // FIXME: this is ugly.
- void set_function (void *f)
- {
- function = f;
- }
-};
-
-#endif /* INTERPRETER */
-
-#endif /* __JAVA_INTERP_H__ */
diff --git a/libjava/include/java-props.h b/libjava/include/java-props.h
deleted file mode 100644
index 9be30996ebc..00000000000
--- a/libjava/include/java-props.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// java-props.h - Properties -*- c++ -*-
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_PROPS_H__
-#define __JAVA_PROPS_H__
-
-typedef struct
-{
- char *key;
- size_t key_length;
- char *value;
- size_t value_length;
-} property_pair;
-
-// Set to NULL-terminated list of properties set at compile time.
-extern const char **_Jv_Compiler_Properties;
-
-// The JAR file to add to the beginning of java.class.path.
-extern const char *_Jv_Jar_Class_Path;
-
-// Properties taken from the user's environment.
-extern property_pair *_Jv_Environment_Properties;
-
-#endif
-
diff --git a/libjava/include/jni.h b/libjava/include/jni.h
deleted file mode 100644
index f25679afa69..00000000000
--- a/libjava/include/jni.h
+++ /dev/null
@@ -1,1505 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Note: this file must be compilable by the C compiler (for now,
- assuming GNU C is ok). This means you must never use `//'
- comments, and all C++-specific code must be conditional on
- __cplusplus. */
-
-#ifndef __GCJ_JNI_H__
-#define __GCJ_JNI_H__
-
-#include <stdarg.h>
-#define _Jv_va_list va_list
-
-#ifdef __cplusplus
-
-/* This is wrong, because it pollutes the name-space too much! */
-#include <gcj/javaprims.h>
-#include <gcj/array.h>
-
-typedef struct _Jv_JNIEnv JNIEnv;
-typedef struct _Jv_JavaVM JavaVM;
-
-#define JNI_TRUE true
-#define JNI_FALSE false
-
-#else /* __cplusplus */
-
-typedef int jbyte __attribute__((__mode__(__QI__)));
-typedef int jshort __attribute__((__mode__(__HI__)));
-typedef int jint __attribute__((__mode__(__SI__)));
-typedef int jlong __attribute__((__mode__(__DI__)));
-typedef int jboolean __attribute__((__mode__(__QI__)));
-typedef unsigned short jchar __attribute__((__mode__(__HI__)));
-typedef float jfloat;
-typedef double jdouble;
-typedef jint jsize;
-
-typedef void *jobject;
-typedef jobject jclass;
-typedef jobject jstring;
-typedef jobject jarray;
-typedef jobject jthrowable;
-typedef jobject jobjectArray;
-typedef jobject jbyteArray;
-typedef jobject jshortArray;
-typedef jobject jintArray;
-typedef jobject jlongArray;
-typedef jobject jbooleanArray;
-typedef jobject jcharArray;
-typedef jobject jfloatArray;
-typedef jobject jdoubleArray;
-
-/* Dummy defines. */
-typedef void *jfieldID;
-typedef void *jmethodID;
-
-typedef const struct JNINativeInterface *JNIEnv;
-typedef const struct JNIInvokeInterface *JavaVM;
-
-#define JNI_TRUE 1
-#define JNI_FALSE 0
-
-#endif /* __cplusplus */
-
-/* FIXME: this is wrong. */
-typedef jobject jweak;
-
-/* Version numbers. */
-#define JNI_VERSION_1_1 0x00010001
-#define JNI_VERSION_1_2 0x00010002
-
-/* Used when releasing array elements. */
-#define JNI_COMMIT 1
-#define JNI_ABORT 2
-
-/* Error codes */
-#define JNI_OK 0
-#define JNI_ERR -1
-#define JNI_EDETACHED -2
-#define JNI_EVERSION -3
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/* These functions might be defined in libraries which we load; the
- JNI implementation calls them at the appropriate times. */
-extern jint JNI_OnLoad (JavaVM *, void *);
-extern void JNI_OnUnload (JavaVM *, void *);
-
-/* These functions are called by user code to start using the
- invocation API. */
-extern jint JNI_GetDefaultJavaVMInitArgs (void *);
-extern jint JNI_CreateJavaVM (JavaVM **, void **, void *);
-extern jint JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
-
-#ifdef __cplusplus
-};
-#endif /* __cplusplus */
-
-typedef union jvalue
-{
- jboolean z;
- jbyte b;
- jchar c;
- jshort s;
- jint i;
- jlong j;
- jfloat f;
- jdouble d;
- jobject l;
-} jvalue;
-
-#ifdef __cplusplus
-typedef void * (*_Jv_func) (...);
-#else
-typedef void * (*_Jv_func) ();
-#endif
-
-/* This structure is used when registering native methods. */
-typedef struct
-{
- char *name;
- char *signature;
- void *fnPtr; /* Sigh. */
-} JNINativeMethod;
-
-struct JNINativeInterface
-{
- _Jv_func reserved0;
- _Jv_func reserved1;
- _Jv_func reserved2;
- _Jv_func reserved3;
-
- jint (*GetVersion) (JNIEnv *);
- jclass (*DefineClass) (JNIEnv *, jobject,
- const jbyte *, jsize);
- jclass (*FindClass) (JNIEnv *, const char *);
-
- jmethodID (*FromReflectedMethod) (JNIEnv *, jobject);
- jfieldID (*FromReflectedField) (JNIEnv *, jobject);
- jobject (*ToReflectedMethod) (JNIEnv *, jclass, jmethodID,
- jboolean);
-
- jclass (*GetSuperclass) (JNIEnv *, jclass);
- jboolean (*IsAssignableFrom) (JNIEnv *, jclass, jclass);
-
- jobject (*ToReflectedField) (JNIEnv *, jclass, jfieldID,
- jboolean);
-
- jint (*Throw) (JNIEnv *, jthrowable);
- jint (*ThrowNew) (JNIEnv *, jclass, const char *);
- jthrowable (*ExceptionOccurred) (JNIEnv *);
- void (*ExceptionDescribe) (JNIEnv *);
- void (*ExceptionClear) (JNIEnv *);
- void (*FatalError) (JNIEnv *, const char *);
-
- jint (*PushLocalFrame) (JNIEnv *, jint);
- jobject (*PopLocalFrame) (JNIEnv *, jobject);
-
- jobject (*NewGlobalRef) (JNIEnv *, jobject);
- void (*DeleteGlobalRef) (JNIEnv *, jobject);
- void (*DeleteLocalRef) (JNIEnv *, jobject);;
- jboolean (*IsSameObject) (JNIEnv *, jobject, jobject);
-
- jobject (*NewLocalRef) (JNIEnv *, jobject);
- jint (*EnsureLocalCapacity) (JNIEnv *, jint);
-
- jobject (*AllocObject) (JNIEnv *, jclass);
- jobject (*NewObject) (JNIEnv *, jclass, jmethodID, ...);
- jobject (*NewObjectV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jobject (*NewObjectA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
-
- jclass (*GetObjectClass) (JNIEnv *, jobject);
- jboolean (*IsInstanceOf) (JNIEnv *, jobject, jclass);
- jmethodID (*GetMethodID) (JNIEnv *, jclass, const char *,
- const char *);
-
- jobject (*CallObjectMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jobject (*CallObjectMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jobject (*CallObjectMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jboolean (*CallBooleanMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jboolean (*CallBooleanMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jboolean (*CallBooleanMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jbyte (*CallByteMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jbyte (*CallByteMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jbyte (*CallByteMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jchar (*CallCharMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jchar (*CallCharMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jchar (*CallCharMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jshort (*CallShortMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jshort (*CallShortMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jshort (*CallShortMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jint (*CallIntMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jint (*CallIntMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jint (*CallIntMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jlong (*CallLongMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jlong (*CallLongMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jlong (*CallLongMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jfloat (*CallFloatMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jfloat (*CallFloatMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jfloat (*CallFloatMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- jdouble (*CallDoubleMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- jdouble (*CallDoubleMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- jdouble (*CallDoubleMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
- void (*CallVoidMethod) (JNIEnv *, jobject, jmethodID,
- ...);
- void (*CallVoidMethodV) (JNIEnv *, jobject, jmethodID,
- _Jv_va_list);
- void (*CallVoidMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
-
- jobject (*CallNonvirtualObjectMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jobject (*CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jobject (*CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jboolean (*CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jboolean (*CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jboolean (*CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jbyte (*CallNonvirtualByteMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jbyte (*CallNonvirtualByteMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jbyte (*CallNonvirtualByteMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jchar (*CallNonvirtualCharMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jchar (*CallNonvirtualCharMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jchar (*CallNonvirtualCharMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jshort (*CallNonvirtualShortMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jshort (*CallNonvirtualShortMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jshort (*CallNonvirtualShortMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jint (*CallNonvirtualIntMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jint (*CallNonvirtualIntMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jint (*CallNonvirtualIntMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jlong (*CallNonvirtualLongMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jlong (*CallNonvirtualLongMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jlong (*CallNonvirtualLongMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jfloat (*CallNonvirtualFloatMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jfloat (*CallNonvirtualFloatMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jfloat (*CallNonvirtualFloatMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- jdouble (*CallNonvirtualDoubleMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- jdouble (*CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- jdouble (*CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
- void (*CallNonvirtualVoidMethod) (JNIEnv *, jobject, jclass,
- jmethodID, ...);
- void (*CallNonvirtualVoidMethodV) (JNIEnv *, jobject, jclass,
- jmethodID, _Jv_va_list);
- void (*CallNonvirtualVoidMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
-
- jfieldID (*GetFieldID) (JNIEnv *, jclass, const char *,
- const char *);
-
- jobject (*GetObjectField) (JNIEnv *, jobject, jfieldID);
- jboolean (*GetBooleanField) (JNIEnv *, jobject, jfieldID);
- jbyte (*GetByteField) (JNIEnv *, jobject, jfieldID);
- jchar (*GetCharField) (JNIEnv *, jobject, jfieldID);
- jshort (*GetShortField) (JNIEnv *, jobject, jfieldID);
- jint (*GetIntField) (JNIEnv *, jobject, jfieldID);
- jlong (*GetLongField) (JNIEnv *, jobject, jfieldID);
- jfloat (*GetFloatField) (JNIEnv *, jobject, jfieldID);
- jdouble (*GetDoubleField) (JNIEnv *, jobject, jfieldID);
-
- void (*SetObjectField) (JNIEnv *, jobject,
- jfieldID, jobject);
- void (*SetBooleanField) (JNIEnv *, jobject,
- jfieldID, jboolean);
- void (*SetByteField) (JNIEnv *, jobject,
- jfieldID, jbyte);
- void (*SetCharField) (JNIEnv *, jobject,
- jfieldID, jchar);
- void (*SetShortField) (JNIEnv *, jobject,
- jfieldID, jshort);
- void (*SetIntField) (JNIEnv *, jobject,
- jfieldID, jint);
- void (*SetLongField) (JNIEnv *, jobject,
- jfieldID, jlong);
- void (*SetFloatField) (JNIEnv *, jobject,
- jfieldID, jfloat);
- void (*SetDoubleField) (JNIEnv *, jobject,
- jfieldID, jdouble);
-
- jmethodID (*GetStaticMethodID) (JNIEnv *, jclass, const char *,
- const char *);
-
- jobject (*CallStaticObjectMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jobject (*CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jobject (*CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jboolean (*CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jboolean (*CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jboolean (*CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jbyte (*CallStaticByteMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jbyte (*CallStaticByteMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jbyte (*CallStaticByteMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jchar (*CallStaticCharMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jchar (*CallStaticCharMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jchar (*CallStaticCharMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jshort (*CallStaticShortMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jshort (*CallStaticShortMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jshort (*CallStaticShortMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jint (*CallStaticIntMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jint (*CallStaticIntMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jint (*CallStaticIntMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jlong (*CallStaticLongMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jlong (*CallStaticLongMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jlong (*CallStaticLongMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jfloat (*CallStaticFloatMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jfloat (*CallStaticFloatMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jfloat (*CallStaticFloatMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- jdouble (*CallStaticDoubleMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- jdouble (*CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- jdouble (*CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
- void (*CallStaticVoidMethod) (JNIEnv *, jclass, jmethodID,
- ...);
- void (*CallStaticVoidMethodV) (JNIEnv *, jclass, jmethodID,
- _Jv_va_list);
- void (*CallStaticVoidMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
-
- jfieldID (*GetStaticFieldID) (JNIEnv *, jclass, const char *,
- const char *);
-
- jobject (*GetStaticObjectField) (JNIEnv *, jclass, jfieldID);
- jboolean (*GetStaticBooleanField) (JNIEnv *, jclass, jfieldID);
- jbyte (*GetStaticByteField) (JNIEnv *, jclass, jfieldID);
- jchar (*GetStaticCharField) (JNIEnv *, jclass, jfieldID);
- jshort (*GetStaticShortField) (JNIEnv *, jclass, jfieldID);
- jint (*GetStaticIntField) (JNIEnv *, jclass, jfieldID);
- jlong (*GetStaticLongField) (JNIEnv *, jclass, jfieldID);
- jfloat (*GetStaticFloatField) (JNIEnv *, jclass, jfieldID);
- jdouble (*GetStaticDoubleField) (JNIEnv *, jclass, jfieldID);
-
- void (*SetStaticObjectField) (JNIEnv *, jclass,
- jfieldID, jobject);
- void (*SetStaticBooleanField) (JNIEnv *, jclass,
- jfieldID, jboolean);
- void (*SetStaticByteField) (JNIEnv *, jclass,
- jfieldID, jbyte);
- void (*SetStaticCharField) (JNIEnv *, jclass,
- jfieldID, jchar);
- void (*SetStaticShortField) (JNIEnv *, jclass,
- jfieldID, jshort);
- void (*SetStaticIntField) (JNIEnv *, jclass,
- jfieldID, jint);
- void (*SetStaticLongField) (JNIEnv *, jclass,
- jfieldID, jlong);
- void (*SetStaticFloatField) (JNIEnv *, jclass,
- jfieldID, jfloat);
- void (*SetStaticDoubleField) (JNIEnv *, jclass,
- jfieldID, jdouble);
-
- jstring (*NewString) (JNIEnv *, const jchar *, jsize);
- jint (*GetStringLength) (JNIEnv *, jstring);
- const jchar * (*GetStringChars) (JNIEnv *, jstring, jboolean *);
- void (*ReleaseStringChars) (JNIEnv *, jstring, const jchar *);
- jstring (*NewStringUTF) (JNIEnv *, const char *);
- jsize (*GetStringUTFLength) (JNIEnv *, jstring);
- const char * (*GetStringUTFChars) (JNIEnv *, jstring, jboolean *);
- void (*ReleaseStringUTFChars) (JNIEnv *, jstring, const char *);
- jsize (*GetArrayLength) (JNIEnv *, jarray);
- jarray (*NewObjectArray) (JNIEnv *, jsize, jclass, jobject);
- jobject (*GetObjectArrayElement) (JNIEnv *, jobjectArray, jsize);
- void (*SetObjectArrayElement) (JNIEnv *, jobjectArray, jsize,
- jobject);
-
- jbooleanArray (*NewBooleanArray) (JNIEnv *, jsize);
- jbyteArray (*NewByteArray) (JNIEnv *, jsize);
- jcharArray (*NewCharArray) (JNIEnv *, jsize);
- jshortArray (*NewShortArray) (JNIEnv *, jsize);
- jintArray (*NewIntArray) (JNIEnv *, jsize);
- jlongArray (*NewLongArray) (JNIEnv *, jsize);
- jfloatArray (*NewFloatArray) (JNIEnv *, jsize);
- jdoubleArray (*NewDoubleArray) (JNIEnv *, jsize);
-
- jboolean * (*GetBooleanArrayElements) (JNIEnv *, jbooleanArray,
- jboolean *);
- jbyte * (*GetByteArrayElements) (JNIEnv *, jbyteArray,
- jboolean *);
- jchar * (*GetCharArrayElements) (JNIEnv *, jcharArray,
- jboolean *);
- jshort * (*GetShortArrayElements) (JNIEnv *, jshortArray,
- jboolean *);
- jint * (*GetIntArrayElements) (JNIEnv *, jintArray,
- jboolean *);
- jlong * (*GetLongArrayElements) (JNIEnv *, jlongArray,
- jboolean *);
- jfloat * (*GetFloatArrayElements) (JNIEnv *, jfloatArray,
- jboolean *);
- jdouble * (*GetDoubleArrayElements) (JNIEnv *, jdoubleArray,
- jboolean *);
-
- void (*ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray,
- jboolean *, jint);
- void (*ReleaseByteArrayElements) (JNIEnv *, jbyteArray,
- jbyte *, jint);
- void (*ReleaseCharArrayElements) (JNIEnv *, jcharArray,
- jchar *, jint);
- void (*ReleaseShortArrayElements) (JNIEnv *, jshortArray,
- jshort *, jint);
- void (*ReleaseIntArrayElements) (JNIEnv *, jintArray,
- jint *, jint);
- void (*ReleaseLongArrayElements) (JNIEnv *, jlongArray,
- jlong *, jint);
- void (*ReleaseFloatArrayElements) (JNIEnv *, jfloatArray,
- jfloat *, jint);
- void (*ReleaseDoubleArrayElements) (JNIEnv *, jdoubleArray,
- jdouble *, jint);
-
- void (*GetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetByteArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetCharArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetShortArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetIntArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetLongArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetFloatArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*GetDoubleArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
-
- void (*SetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetByteArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetCharArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetShortArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetIntArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetLongArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetFloatArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
- void (*SetDoubleArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
-
- jint (*RegisterNatives) (JNIEnv *, jclass,
- const JNINativeMethod *, jint);
- jint (*UnregisterNatives) (JNIEnv *, jclass);
- jint (*MonitorEnter) (JNIEnv *, jobject);
- jint (*MonitorExit) (JNIEnv *, jobject);
- jint (*GetJavaVM) (JNIEnv *, JavaVM **);
-
- void (*GetStringRegion) (JNIEnv *, jstring, jsize,
- jsize, jchar *);
- void (*GetStringUTFRegion) (JNIEnv *, jstring, jsize,
- jsize, char *);
-
- void * (*GetPrimitiveArrayCritical) (JNIEnv *, jarray, jboolean *);
- void (*ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *, jint);
-
- const jchar * (*GetStringCritical) (JNIEnv *, jstring, jboolean *);
- void (*ReleaseStringCritical) (JNIEnv *, jstring, const jchar *);
-
- jweak (*NewWeakGlobalRef) (JNIEnv *, jobject);
- void (*DeleteWeakGlobalRef) (JNIEnv *, jweak);
-
- jboolean (*ExceptionCheck) (JNIEnv *);
-};
-
-#ifdef __cplusplus
-
-class _Jv_JNIEnv
-{
-public:
- /* The method table. */
- struct JNINativeInterface *p;
-
- /* FIXME: this is really ugly. */
-#ifndef __GCJ_JNI_IMPL__
-private:
-#endif
- /* The current exception. */
- jthrowable ex;
-
- /* The class of the current native method. */
- jclass klass;
-
- /* The chain of local frames. */
- struct _Jv_JNI_LocalFrame *locals;
-
-public:
- jint GetVersion ()
- { return p->GetVersion (this); }
-
- jclass DefineClass (jobject obj0, const jbyte * val1, jsize val2)
- { return p->DefineClass (this, obj0, val1, val2); }
-
- jclass FindClass (const char * val0)
- { return p->FindClass (this, val0); }
-
- jmethodID FromReflectedMethod (jobject obj0)
- { return p->FromReflectedMethod (this, obj0); }
-
- jfieldID FromReflectedField (jobject obj0)
- { return p->FromReflectedField (this, obj0); }
-
- jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
- { return p->ToReflectedMethod (this, cl0, meth1, val2); }
-
- jclass GetSuperclass (jclass cl0)
- { return p->GetSuperclass (this, cl0); }
-
- jboolean IsAssignableFrom (jclass cl0, jclass cl1)
- { return p->IsAssignableFrom (this, cl0, cl1); }
-
- jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
- { return p->ToReflectedField (this, cl0, fld1, val2); }
-
- jint Throw (jthrowable val0)
- { return p->Throw (this, val0); }
-
- jint ThrowNew (jclass cl0, const char * val1)
- { return p->ThrowNew (this, cl0, val1); }
-
- jthrowable ExceptionOccurred ()
- { return p->ExceptionOccurred (this); }
-
- void ExceptionDescribe ()
- { p->ExceptionDescribe (this); }
-
- void ExceptionClear ()
- { p->ExceptionClear (this); }
-
- void FatalError (const char * val0)
- { p->FatalError (this, val0); }
-
- jint PushLocalFrame (jint val0)
- { return p->PushLocalFrame (this, val0); }
-
- jobject PopLocalFrame (jobject obj0)
- { return p->PopLocalFrame (this, obj0); }
-
- jobject NewGlobalRef (jobject obj0)
- { return p->NewGlobalRef (this, obj0); }
-
- void DeleteGlobalRef (jobject obj0)
- { p->DeleteGlobalRef (this, obj0); }
-
- void DeleteLocalRef (jobject obj0)
- { p->DeleteLocalRef (this, obj0); }
-
- jboolean IsSameObject (jobject obj0, jobject obj1)
- { return p->IsSameObject (this, obj0, obj1); }
-
- jobject NewLocalRef (jobject obj0)
- { return p->NewLocalRef (this, obj0); }
-
- jint EnsureLocalCapacity (jint val0)
- { return p->EnsureLocalCapacity (this, val0); }
-
- jobject AllocObject (jclass cl0)
- { return p->AllocObject (this, cl0); }
-
- jobject NewObject (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jobject result = p->NewObjectV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jobject NewObjectV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->NewObjectV (this, cl0, meth1, val2); }
-
- jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->NewObjectA (this, cl0, meth1, val2); }
-
- jclass GetObjectClass (jobject obj0)
- { return p->GetObjectClass (this, obj0); }
-
- jboolean IsInstanceOf (jobject obj0, jclass cl1)
- { return p->IsInstanceOf (this, obj0, cl1); }
-
- jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
- { return p->GetMethodID (this, cl0, val1, val2); }
-
- jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jobject CallObjectMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallObjectMethodV (this, obj0, meth1, val2); }
-
- jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallObjectMethodA (this, obj0, meth1, val2); }
-
- jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
-
- jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
-
- jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jbyte CallByteMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallByteMethodV (this, obj0, meth1, val2); }
-
- jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallByteMethodA (this, obj0, meth1, val2); }
-
- jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jchar result = p->CallCharMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jchar CallCharMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallCharMethodV (this, obj0, meth1, val2); }
-
- jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallCharMethodA (this, obj0, meth1, val2); }
-
- jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jshort result = p->CallShortMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jshort CallShortMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallShortMethodV (this, obj0, meth1, val2); }
-
- jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallShortMethodA (this, obj0, meth1, val2); }
-
- jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jint result = p->CallIntMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jint CallIntMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallIntMethodV (this, obj0, meth1, val2); }
-
- jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallIntMethodA (this, obj0, meth1, val2); }
-
- jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jlong result = p->CallLongMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jlong CallLongMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallLongMethodV (this, obj0, meth1, val2); }
-
- jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallLongMethodA (this, obj0, meth1, val2); }
-
- jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallFloatMethodV (this, obj0, meth1, val2); }
-
- jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallFloatMethodA (this, obj0, meth1, val2); }
-
- jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
- va_end (args);
- return result;
- }
-
- jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
-
- jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
-
- void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- p->CallVoidMethodV (this, obj0, meth1, args);
- va_end (args);
- }
-
- void CallVoidMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
- { p->CallVoidMethodV (this, obj0, meth1, val2); }
-
- void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { p->CallVoidMethodA (this, obj0, meth1, val2); }
-
- jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
-
- jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
-
- jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
-
- jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
-
- jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
-
- jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
-
- jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
-
- jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
-
- jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
-
- jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
-
- jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
-
- jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
-
- jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
-
- jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
-
- jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
-
- jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
-
- jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- return result;
- }
-
- jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
-
- jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
-
- void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
- {
- _Jv_va_list args;
- va_start (args, meth2);
- p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
- va_end (args);
- }
-
- void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
- { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
-
- void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
- { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
-
- jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
- { return p->GetFieldID (this, cl0, val1, val2); }
-
- jobject GetObjectField (jobject obj0, jfieldID fld1)
- { return p->GetObjectField (this, obj0, fld1); }
-
- jboolean GetBooleanField (jobject obj0, jfieldID fld1)
- { return p->GetBooleanField (this, obj0, fld1); }
-
- jbyte GetByteField (jobject obj0, jfieldID fld1)
- { return p->GetByteField (this, obj0, fld1); }
-
- jchar GetCharField (jobject obj0, jfieldID fld1)
- { return p->GetCharField (this, obj0, fld1); }
-
- jshort GetShortField (jobject obj0, jfieldID fld1)
- { return p->GetShortField (this, obj0, fld1); }
-
- jint GetIntField (jobject obj0, jfieldID fld1)
- { return p->GetIntField (this, obj0, fld1); }
-
- jlong GetLongField (jobject obj0, jfieldID fld1)
- { return p->GetLongField (this, obj0, fld1); }
-
- jfloat GetFloatField (jobject obj0, jfieldID fld1)
- { return p->GetFloatField (this, obj0, fld1); }
-
- jdouble GetDoubleField (jobject obj0, jfieldID fld1)
- { return p->GetDoubleField (this, obj0, fld1); }
-
- void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
- { p->SetObjectField (this, obj0, fld1, obj2); }
-
- void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
- { p->SetBooleanField (this, obj0, fld1, val2); }
-
- void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
- { p->SetByteField (this, obj0, fld1, val2); }
-
- void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
- { p->SetCharField (this, obj0, fld1, val2); }
-
- void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
- { p->SetShortField (this, obj0, fld1, val2); }
-
- void SetIntField (jobject obj0, jfieldID fld1, jint val2)
- { p->SetIntField (this, obj0, fld1, val2); }
-
- void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
- { p->SetLongField (this, obj0, fld1, val2); }
-
- void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
- { p->SetFloatField (this, obj0, fld1, val2); }
-
- void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
- { p->SetDoubleField (this, obj0, fld1, val2); }
-
- jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
- { return p->GetStaticMethodID (this, cl0, val1, val2); }
-
- jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
-
- jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
-
- jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
-
- jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
-
- jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
-
- jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
-
- jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
-
- jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
-
- jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
-
- jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
-
- jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
-
- jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
-
- jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
-
- jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
-
- jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
-
- jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
-
- jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
- va_end (args);
- return result;
- }
-
- jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
-
- jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
-
- void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
- {
- _Jv_va_list args;
- va_start (args, meth1);
- p->CallStaticVoidMethodV (this, cl0, meth1, args);
- va_end (args);
- }
-
- void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
- { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
-
- void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
- { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
-
- jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
- { return p->GetStaticFieldID (this, cl0, val1, val2); }
-
- jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
- { return p->GetStaticObjectField (this, cl0, fld1); }
-
- jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
- { return p->GetStaticBooleanField (this, cl0, fld1); }
-
- jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
- { return p->GetStaticByteField (this, cl0, fld1); }
-
- jchar GetStaticCharField (jclass cl0, jfieldID fld1)
- { return p->GetStaticCharField (this, cl0, fld1); }
-
- jshort GetStaticShortField (jclass cl0, jfieldID fld1)
- { return p->GetStaticShortField (this, cl0, fld1); }
-
- jint GetStaticIntField (jclass cl0, jfieldID fld1)
- { return p->GetStaticIntField (this, cl0, fld1); }
-
- jlong GetStaticLongField (jclass cl0, jfieldID fld1)
- { return p->GetStaticLongField (this, cl0, fld1); }
-
- jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
- { return p->GetStaticFloatField (this, cl0, fld1); }
-
- jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
- { return p->GetStaticDoubleField (this, cl0, fld1); }
-
- void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
- { p->SetStaticObjectField (this, cl0, fld1, obj2); }
-
- void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
- { p->SetStaticBooleanField (this, cl0, fld1, val2); }
-
- void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
- { p->SetStaticByteField (this, cl0, fld1, val2); }
-
- void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
- { p->SetStaticCharField (this, cl0, fld1, val2); }
-
- void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
- { p->SetStaticShortField (this, cl0, fld1, val2); }
-
- void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
- { p->SetStaticIntField (this, cl0, fld1, val2); }
-
- void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
- { p->SetStaticLongField (this, cl0, fld1, val2); }
-
- void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
- { p->SetStaticFloatField (this, cl0, fld1, val2); }
-
- void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
- { p->SetStaticDoubleField (this, cl0, fld1, val2); }
-
- jstring NewString (const jchar * val0, jsize val1)
- { return p->NewString (this, val0, val1); }
-
- jint GetStringLength (jstring val0)
- { return p->GetStringLength (this, val0); }
-
- const jchar * GetStringChars (jstring val0, jboolean * val1)
- { return p->GetStringChars (this, val0, val1); }
-
- void ReleaseStringChars (jstring val0, const jchar * val1)
- { p->ReleaseStringChars (this, val0, val1); }
-
- jstring NewStringUTF (const char * val0)
- { return p->NewStringUTF (this, val0); }
-
- jsize GetStringUTFLength (jstring val0)
- { return p->GetStringUTFLength (this, val0); }
-
- const char * GetStringUTFChars (jstring val0, jboolean * val1)
- { return p->GetStringUTFChars (this, val0, val1); }
-
- void ReleaseStringUTFChars (jstring val0, const char * val1)
- { p->ReleaseStringUTFChars (this, val0, val1); }
-
- jsize GetArrayLength (jarray val0)
- { return p->GetArrayLength (this, val0); }
-
- jarray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
- { return p->NewObjectArray (this, val0, cl1, obj2); }
-
- jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
- { return p->GetObjectArrayElement (this, val0, val1); }
-
- void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
- { p->SetObjectArrayElement (this, val0, val1, obj2); }
-
- jbooleanArray NewBooleanArray (jsize val0)
- { return p->NewBooleanArray (this, val0); }
-
- jbyteArray NewByteArray (jsize val0)
- { return p->NewByteArray (this, val0); }
-
- jcharArray NewCharArray (jsize val0)
- { return p->NewCharArray (this, val0); }
-
- jshortArray NewShortArray (jsize val0)
- { return p->NewShortArray (this, val0); }
-
- jintArray NewIntArray (jsize val0)
- { return p->NewIntArray (this, val0); }
-
- jlongArray NewLongArray (jsize val0)
- { return p->NewLongArray (this, val0); }
-
- jfloatArray NewFloatArray (jsize val0)
- { return p->NewFloatArray (this, val0); }
-
- jdoubleArray NewDoubleArray (jsize val0)
- { return p->NewDoubleArray (this, val0); }
-
- jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
- { return p->GetBooleanArrayElements (this, val0, val1); }
-
- jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
- { return p->GetByteArrayElements (this, val0, val1); }
-
- jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
- { return p->GetCharArrayElements (this, val0, val1); }
-
- jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
- { return p->GetShortArrayElements (this, val0, val1); }
-
- jint * GetIntArrayElements (jintArray val0, jboolean * val1)
- { return p->GetIntArrayElements (this, val0, val1); }
-
- jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
- { return p->GetLongArrayElements (this, val0, val1); }
-
- jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
- { return p->GetFloatArrayElements (this, val0, val1); }
-
- jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
- { return p->GetDoubleArrayElements (this, val0, val1); }
-
- void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
- { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
-
- void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
- { p->ReleaseByteArrayElements (this, val0, val1, val2); }
-
- void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
- { p->ReleaseCharArrayElements (this, val0, val1, val2); }
-
- void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
- { p->ReleaseShortArrayElements (this, val0, val1, val2); }
-
- void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
- { p->ReleaseIntArrayElements (this, val0, val1, val2); }
-
- void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
- { p->ReleaseLongArrayElements (this, val0, val1, val2); }
-
- void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
- { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
-
- void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
- { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
-
- void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
- void GetByteArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
-
- void GetCharArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
-
- void GetShortArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
-
- void GetIntArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
-
- void GetLongArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
-
- void GetFloatArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
-
- void GetDoubleArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
- void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
- void SetByteArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
-
- void SetCharArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
-
- void SetShortArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
-
- void SetIntArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
-
- void SetLongArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
-
- void SetFloatArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
-
- void SetDoubleArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
- jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
- { return p->RegisterNatives (this, cl0, val1, val2); }
-
- jint UnregisterNatives (jclass cl0)
- { return p->UnregisterNatives (this, cl0); }
-
- jint MonitorEnter (jobject obj0)
- { return p->MonitorEnter (this, obj0); }
-
- jint MonitorExit (jobject obj0)
- { return p->MonitorExit (this, obj0); }
-
- jint GetJavaVM (JavaVM ** val0)
- { return p->GetJavaVM (this, val0); }
-
- void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
- { p->GetStringRegion (this, val0, val1, val2, val3); }
-
- void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
- { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
-
- void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
- { return p->GetPrimitiveArrayCritical (this, val0, val1); }
-
- void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
- { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
-
- const jchar * GetStringCritical (jstring val0, jboolean * val1)
- { return p->GetStringCritical (this, val0, val1); }
-
- void ReleaseStringCritical (jstring val0, const jchar * val1)
- { p->ReleaseStringCritical (this, val0, val1); }
-
- jweak NewWeakGlobalRef (jobject obj0)
- { return p->NewWeakGlobalRef (this, obj0); }
-
- void DeleteWeakGlobalRef (jweak val0)
- { p->DeleteWeakGlobalRef (this, val0); }
-
- jboolean ExceptionCheck ()
- { return p->ExceptionCheck (this); }
-};
-#endif /* __cplusplus */
-
-/*
- * Invocation API.
- */
-
-struct JNIInvokeInterface
-{
- _Jv_func reserved0;
- _Jv_func reserved1;
- _Jv_func reserved2;
-
- jint (*DestroyJavaVM) (JavaVM *);
- jint (*AttachCurrentThread) (JavaVM *, void **, void *);
- jint (*DetachCurrentThread) (JavaVM *);
- jint (*GetEnv) (JavaVM *, void **, jint);
-};
-
-#ifdef __cplusplus
-
-class _Jv_JavaVM
-{
-public:
- const struct JNIInvokeInterface *functions;
-
-private:
- /* FIXME: other fields. */
-
-public:
- jint DestroyJavaVM ()
- { return functions->DestroyJavaVM (this); }
-
- jint AttachCurrentThread (void **penv, void *args)
- { return functions->AttachCurrentThread (this, penv, args); }
-
- jint DetachCurrentThread ()
- { return functions->DetachCurrentThread (this); }
-
- jint GetEnv (void **penv, jint version)
- { return functions->GetEnv (this, penv, version); }
-};
-#endif /* __cplusplus */
-
-typedef struct JavaVMAttachArgs
-{
- jint version; /* Must be JNI_VERSION_1_2. */
- char *name; /* The name of the thread (or NULL). */
- jobject group; /* Global ref of a ThreadGroup object
- (or NULL). */
-} JavaVMAttachArgs;
-
-typedef struct JavaVMOption
-{
- char *optionString;
- void *extraInfo;
-} JavaVMOption;
-
-typedef struct JavaVMInitArgs
-{
- /* Must be JNI_VERSION_1_2. */
- jint version;
-
- /* Number of options. */
- jint nOptions;
-
- /* Options to the VM. */
- JavaVMOption *options;
-
- /* Whether we should ignore unrecognized options. */
- jboolean ignoreUnrecognized;
-} JavaVMInitArgs;
-
-#endif /* __GCJ_JNI_H__ */
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
deleted file mode 100644
index e6e6fa6e4aa..00000000000
--- a/libjava/include/jvm.h
+++ /dev/null
@@ -1,279 +0,0 @@
-// jvm.h - Header file for private implementation information. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_JVM_H__
-#define __JAVA_JVM_H__
-
-// FIXME: __builtin_expect doesn't work yet.
-#define __builtin_expect(A,B) (A)
-
-#include <gcj/javaprims.h>
-
-#include <java-assert.h>
-#include <java-threads.h>
-// Must include java-gc.h before Object.h for the implementation.
-#include <java-gc.h>
-
-#include <java/lang/Object.h>
-
-// Include cni.h before field.h to enable all definitions. FIXME.
-#include <gcj/cni.h>
-#include <gcj/field.h>
-
-/* Structure of the virtual table. */
-struct _Jv_VTable
-{
- jclass clas;
- void *method[1];
-};
-
-// Number of virtual methods on object. FIXME: it sucks that we have
-// to keep this up to date by hand.
-#define NUM_OBJECT_METHODS 5
-
-// This structure is the type of an array's vtable.
-struct _Jv_ArrayVTable
-{
- jclass clas;
- // `+1' because there is an extra slot for C++ RTTI compatibility.
- void *method[NUM_OBJECT_METHODS + 1];
-};
-
-union _Jv_word
-{
- jobject o;
- jint i; // Also stores smaller integral types.
- jfloat f;
- jint ia[1]; // Half of _Jv_word2.
- void* p;
-
-#if SIZEOF_VOID_P == 8
- // We can safely put a long or a double in here without increasing
- // the size of _Jv_Word; we take advantage of this in the interpreter.
- jlong l;
- jdouble d;
-#endif
-
- jclass clazz;
- jstring string;
- struct _Jv_Field *field;
- struct _Jv_Utf8Const *utf8;
- struct _Jv_ResolvedMethod *rmethod;
-};
-
-union _Jv_word2
-{
- jint ia[2];
- jlong l;
- jdouble d;
-};
-
-/* Extract a character from a Java-style Utf8 string.
- * PTR points to the current character.
- * LIMIT points to the end of the Utf8 string.
- * PTR is incremented to point after the character thta gets returns.
- * On an error, -1 is returned. */
-#define UTF8_GET(PTR, LIMIT) \
- ((PTR) >= (LIMIT) ? -1 \
- : *(PTR) < 128 ? *(PTR)++ \
- : (*(PTR)&0xE0) == 0xC0 && ((PTR)+=2)<=(LIMIT) && ((PTR)[-1]&0xC0) == 0x80 \
- ? (((PTR)[-2] & 0x1F) << 6) + ((PTR)[-1] & 0x3F) \
- : (*(PTR) & 0xF0) == 0xE0 && ((PTR) += 3) <= (LIMIT) \
- && ((PTR)[-2] & 0xC0) == 0x80 && ((PTR)[-1] & 0xC0) == 0x80 \
- ? (((PTR)[-3]&0x0F) << 12) + (((PTR)[-2]&0x3F) << 6) + ((PTR)[-1]&0x3F) \
- : ((PTR)++, -1))
-
-extern int _Jv_strLengthUtf8(char* str, int len);
-
-typedef struct _Jv_Utf8Const Utf8Const;
-_Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len);
-_Jv_Utf8Const *_Jv_makeUtf8Const (jstring string);
-extern jboolean _Jv_equalUtf8Consts (_Jv_Utf8Const *, _Jv_Utf8Const *);
-extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint);
-extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint);
-
-#define StringClass _CL_Q34java4lang6String
-extern java::lang::Class StringClass;
-
-/* Type of pointer used as finalizer. */
-typedef void _Jv_FinalizerFunc (jobject);
-
-/* Allocate space for a new Java object. */
-void *_Jv_AllocObj (jsize size) __attribute__((__malloc__));
-/* Allocate space for an array of Java objects. */
-void *_Jv_AllocArray (jsize size) __attribute__((__malloc__));
-/* Allocate space that is known to be pointer-free. */
-void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));
-/* Initialize the GC. */
-void _Jv_InitGC (void);
-/* Register a finalizer. */
-void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method);
-
-/* Allocate some unscanned, unmoveable memory. Return NULL if out of
- memory. */
-void *_Jv_MallocUnchecked (jsize size) __attribute__((__malloc__));
-
-/* Run finalizers for objects ready to be finalized.. */
-void _Jv_RunFinalizers (void);
-/* Run all finalizers. Should be called only before exit. */
-void _Jv_RunAllFinalizers (void);
-/* Perform a GC. */
-void _Jv_RunGC (void);
-/* Disable and enable GC. */
-void _Jv_DisableGC (void);
-void _Jv_EnableGC (void);
-
-/* Return approximation of total size of heap. */
-long _Jv_GCTotalMemory (void);
-/* Return approximation of total free memory. */
-long _Jv_GCFreeMemory (void);
-
-/* Set initial heap size. If SIZE==0, ignore. Should be run before
- _Jv_InitGC. Not required to have any actual effect. */
-void _Jv_GCSetInitialHeapSize (size_t size);
-
-/* Set maximum heap size. If SIZE==0, unbounded. Should be run
- before _Jv_InitGC. Not required to have any actual effect. */
-void _Jv_GCSetMaximumHeapSize (size_t size);
-
-/* External interface to setting the heap size. Parses ARG (a number
- which can optionally have "k" or "m" appended and calls
- _Jv_GCSetInitialHeapSize. */
-void _Jv_SetInitialHeapSize (const char *arg);
-
-/* External interface to setting the maximum heap size. Parses ARG (a
- number which can optionally have "k" or "m" appended and calls
- _Jv_GCSetMaximumHeapSize. */
-void _Jv_SetMaximumHeapSize (const char *arg);
-
-/* Allocate some unscanned bytes. Throw exception if out of memory. */
-void *_Jv_AllocBytesChecked (jsize size) __attribute__((__malloc__));
-
-extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
-void _Jv_RunMain (const char* name, int argc, const char **argv, bool is_jar);
-
-// This function is used to determine the hash code of an object.
-inline jint
-_Jv_HashCode (jobject obj)
-{
- // This was chosen to yield relatively well distributed results on
- // both 32- and 64-bit architectures. Note 0x7fffffff is prime.
- // FIXME: we assume sizeof(long) == sizeof(void *).
- return (jint) ((unsigned long) obj % 0x7fffffff);
-}
-
-// Return a raw pointer to the elements of an array given the array
-// and its element type. You might think we could just pick a single
-// array type and use elements() on it, but we can't because we must
-// account for alignment of the element type. When ARRAY is null, we
-// obtain the number of bytes taken by the base part of the array.
-inline char *
-_Jv_GetArrayElementFromElementType (jobject array,
- jclass element_type)
-{
- char *elts;
- if (element_type == JvPrimClass (byte))
- elts = (char *) elements ((jbyteArray) array);
- else if (element_type == JvPrimClass (short))
- elts = (char *) elements ((jshortArray) array);
- else if (element_type == JvPrimClass (int))
- elts = (char *) elements ((jintArray) array);
- else if (element_type == JvPrimClass (long))
- elts = (char *) elements ((jlongArray) array);
- else if (element_type == JvPrimClass (boolean))
- elts = (char *) elements ((jbooleanArray) array);
- else if (element_type == JvPrimClass (char))
- elts = (char *) elements ((jcharArray) array);
- else if (element_type == JvPrimClass (float))
- elts = (char *) elements ((jfloatArray) array);
- else if (element_type == JvPrimClass (double))
- elts = (char *) elements ((jdoubleArray) array);
- else
- elts = (char *) elements ((jobjectArray) array);
- return elts;
-}
-
-extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index);
-extern "C" void _Jv_ThrowNullPointerException (void);
-extern "C" jobject _Jv_NewArray (jint type, jint size)
- __attribute__((__malloc__));
-extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...)
- __attribute__((__malloc__));
-extern "C" void *_Jv_CheckCast (jclass klass, jobject obj);
-extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name,
- Utf8Const *signature);
-extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
- int meth_idx);
-extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj);
-extern "C" void _Jv_RegisterClass (jclass klass);
-extern "C" void _Jv_RegisterClasses (jclass *classes);
-extern void _Jv_UnregisterClass (_Jv_Utf8Const*, java::lang::ClassLoader*);
-
-extern jclass _Jv_FindClass (_Jv_Utf8Const *name,
- java::lang::ClassLoader *loader);
-extern jclass _Jv_FindClassFromSignature (char *,
- java::lang::ClassLoader *loader);
-extern void _Jv_GetTypesFromSignature (jmethodID method,
- jclass declaringClass,
- JArray<jclass> **arg_types_out,
- jclass *return_type_out);
-
-extern jobject _Jv_CallAnyMethodA (jobject obj, jclass return_type,
- jmethodID meth, jboolean is_constructor,
- JArray<jclass> *parameter_types,
- jobjectArray args);
-
-union jvalue;
-extern jthrowable _Jv_CallAnyMethodA (jobject obj,
- jclass return_type,
- jmethodID meth,
- jboolean is_constructor,
- JArray<jclass> *parameter_types,
- jvalue *args,
- jvalue *result);
-
-extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims)
- __attribute__((__malloc__));
-
-/* Checked divide subroutines. */
-extern "C"
-{
- jint _Jv_divI (jint, jint);
- jint _Jv_remI (jint, jint);
- jlong _Jv_divJ (jlong, jlong);
- jlong _Jv_remJ (jlong, jlong);
-}
-
-/* get/set the name of the running executable. */
-extern char *_Jv_ThisExecutable (void);
-extern void _Jv_ThisExecutable (const char *);
-
-/* Return a pointer to a symbol in executable or loaded library. */
-void *_Jv_FindSymbolInExecutable (const char *);
-
-/* Initialize JNI. */
-extern void _Jv_JNI_Init (void);
-
-/* Get or set the per-thread JNIEnv used by the invocation API. */
-_Jv_JNIEnv *_Jv_GetCurrentJNIEnv ();
-void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
-
-struct _Jv_JavaVM;
-_Jv_JavaVM *_Jv_GetJavaVM ();
-
-#ifdef ENABLE_JVMPI
-#include "jvmpi.h"
-
-extern void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event);
-extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event);
-extern void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
-#endif
-
-#endif /* __JAVA_JVM_H__ */
diff --git a/libjava/include/jvmpi.h b/libjava/include/jvmpi.h
deleted file mode 100644
index 1af9617825a..00000000000
--- a/libjava/include/jvmpi.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Note: this file must be compilable by the C compiler (for now,
- assuming GNU C is ok). This means you must never use `//'
- comments, and all C++-specific code must be conditional on
- __cplusplus. */
-
-#ifndef __GCJ_JVMPI_H__
-#define __GCJ_JVMPI_H__
-
-#include <jni.h>
-
-/* JVMPI version numbers. FIXME: this is a semi-random number. The
- documentation doesn't say what it should be. */
-#define JVMPI_VERSION_1 0x00020001
-
-/* JVMPI return codes. FIXME: These are semi-random numbers. The
- documentation doesn't say what they should be. */
-#define JVMPI_SUCCESS 0
-#define JVMPI_FAIL 1
-#define JVMPI_NOT_AVAILABLE 2
-
-/* An opaque pointer representing an object ID. */
-struct _jobjectID;
-typedef struct _jobjectID * jobjectID;
-
-typedef struct
-{
- /* Source line number. */
- jint lineno;
- /* Method being executed. */
- jmethodID method_id;
-} JVMPI_CallFrame;
-
-typedef struct
-{
- JNIEnv *env_id;
- /* Number of frames in the call trace. */
- jint num_frames;
- /* An array of frames representing the trace. Callees first. */
- JVMPI_CallFrame *frames;
-} JVMPI_CallTrace;
-
-typedef struct
-{
- /* Name of the field. */
- char *field_name;
- /* Signature of the field. */
- char *field_signature;
-} JVMPI_Field;
-
-/* The documentation doesn't actually specify what the
- JVMPI_DUMP_LEVEL macros should be defined to. Here's a reasonable
- guess. */
-#define JVMPI_DUMP_LEVEL_0 0
-#define JVMPI_DUMP_LEVEL_1 1
-#define JVMPI_DUMP_LEVEL_2 2
-#define JVMPI_DUMP_LEVEL_3 3
-
-typedef struct
-{
- /* One of JVMPI_DUMP_LEVEL_0, JVMPI_DUMP_LEVEL_1 or
- JVMPI_DUMP_LEVEL_2. */
- jint heap_dump_level;
-} JVMPI_HeapDumpArg;
-
-typedef struct
-{
- /* Offset from the beginning of the method. */
- jint offset;
- /* Line number from the beginning of the source file. */
- jint lineno;
-} JVMPI_Lineno;
-
-typedef struct
-{
- /* Name of the method. */
- char *method_name;
- /* Signature of the method. */
- char *method_signature;
- /* Start line number from the beginning of the source file. */
- jint start_lineno;
- /* End line number from the beginning of the source file. */
- jint end_lineno;
- /* The method ID. */
- jmethodID method_id;
-} JVMPI_Method;
-
-/* An opaque pointer representing a raw monitor. */
-struct _JVMPI_RawMonitor;
-typedef struct _JVMPI_RawMonitor *JVMPI_RawMonitor;
-
-/* JVMPI event codes. FIXME: These are semi-random numbers. The
- documentation doesn't say what they should be. */
-#define JVMPI_EVENT_ARENA_DELETE 0
-#define JVMPI_EVENT_ARENA_NEW 1
-#define JVMPI_EVENT_CLASS_LOAD 2
-#define JVMPI_EVENT_CLASS_LOAD_HOOK 3
-#define JVMPI_EVENT_CLASS_UNLOAD 4
-#define JVMPI_EVENT_COMPILED_METHOD_LOAD 5
-#define JVMPI_EVENT_COMPILED_METHOD_UNLOAD 6
-#define JVMPI_EVENT_DATA_DUMP_REQUEST 7
-#define JVMPI_EVENT_DATA_RESET_REQUEST 8
-#define JVMPI_EVENT_GC_FINISH 9
-#define JVMPI_EVENT_GC_START 10
-#define JVMPI_EVENT_HEAP_DUMP 11
-#define JVMPI_EVENT_JNI_GLOBALREF_ALLOC 12
-#define JVMPI_EVENT_JNI_GLOBALREF_FREE 13
-#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_ALLOC 14
-#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_FREE 15
-#define JVMPI_EVENT_JVM_INIT_DONE 16
-#define JVMPI_EVENT_JVM_SHUT_DOWN 17
-#define JVMPI_EVENT_METHOD_ENTRY 18
-#define JVMPI_EVENT_METHOD_ENTRY2 19
-#define JVMPI_EVENT_METHOD_EXIT 20
-#define JVMPI_EVENT_MONITOR_CONTENDED_ENTER 21
-#define JVMPI_EVENT_MONITOR_CONTENDED_ENTERED 22
-#define JVMPI_EVENT_MONITOR_CONTENDED_EXIT 23
-#define JVMPI_EVENT_MONITOR_DUMP 24
-#define JVMPI_EVENT_MONITOR_WAIT 25
-#define JVMPI_EVENT_MONITOR_WAITED 26
-#define JVMPI_EVENT_OBJECT_ALLOC 27
-#define JVMPI_EVENT_OBJECT_DUMP 28
-#define JVMPI_EVENT_OBJECT_FREE 29
-#define JVMPI_EVENT_OBJECT_MOVE 30
-#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTER 31
-#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTERED 32
-#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_EXIT 33
-#define JVMPI_EVENT_THREAD_END 34
-#define JVMPI_EVENT_THREAD_START 35
-#define JVMPI_EVENT_INSTRUCTION_START 36
-
-
-typedef struct
-{
- /* Event type. */
- jint event_type;
-
- /* Evn where this event occurred. */
- JNIEnv *env_id;
-
- union
- {
- struct
- {
- char *class_name;
- char *source_name;
- jint num_interfaces;
- jint num_methods;
- JVMPI_Method *methods;
- jint num_static_fields;
- JVMPI_Field *statics;
- jint num_instance_fields;
- JVMPI_Field *instances;
- jobjectID class_id;
- } class_load;
-
- struct
- {
- jobjectID class_id;
- } class_unload;
-
- struct
- {
- jint arena_id;
- jobjectID class_id;
- jint is_array;
- jint size;
- jobjectID obj_id;
- } obj_alloc;
-
- struct
- {
- char *thread_name;
- char *group_name;
- char *parent_name;
- jobjectID thread_id;
- JNIEnv *thread_env_id;
- } thread_start;
-
- } u;
-
-} JVMPI_Event;
-
-typedef struct
-{
- /* JVMPI version number. */
- jint version;
-
- /* Implemented by the user... */
- void (*NotifyEvent) (JVMPI_Event *event);
-
- /* Implemented by the runtime... */
- jint (*EnableEvent) (jint event_type, void *arg);
- jint (*DisableEvent) (jint event_type, void *arg);
- jint (*RequestEvent) (jint event_type, void *arg);
- void (*GetCallTrace) (JVMPI_CallTrace *trace, jint depth);
- void (*ProfilerExit) (jint);
- JVMPI_RawMonitor (*RawMonitorCreate) (char *lock_name);
- void (*RawMonitorEnter) (JVMPI_RawMonitor lock_id);
- void (*RawMonitorExit) (JVMPI_RawMonitor lock_id);
- void (*RawMonitorWait) (JVMPI_RawMonitor lock_id, jlong ms);
- void (*RawMonitorNotifyAll) (JVMPI_RawMonitor lock_id);
- void (*RawMonitorDestroy) (JVMPI_RawMonitor lock_id);
- jlong (*GetCurrentThreadCpuTime) (void);
- void (*SuspendThread) (JNIEnv *env);
- void (*ResumeThread) (JNIEnv *env);
- jint (*GetThreadStatus) (JNIEnv *env);
- jboolean (*ThreadHasRun) (JNIEnv *env);
- jint (*CreateSystemThread) (char *name, jint priority, void (*f) (void *));
- void (*SetThreadLocalStorage) (JNIEnv *env_id, void *ptr);
- void *(*GetThreadLocalStorage) (JNIEnv *env_id);
- void (*DisableGC) (void);
- void (*EnableGC) (void);
- void (*RunGC) (void);
- jobjectID (*GetThreadObject) (JNIEnv *env);
- jobjectID (*GetMethodClass) (jmethodID mid);
-
-} JVMPI_Interface;
-
-#endif /* __GCJ_JVMPI_H__ */
diff --git a/libjava/include/name-finder.h b/libjava/include/name-finder.h
deleted file mode 100644
index 2d2ab9f4f6e..00000000000
--- a/libjava/include/name-finder.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// name-finder.h - Convert addresses to names
-
-/* Copyright (C) 2000 Red Hat Inc
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date Jan 6 2000
- */
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <sys/types.h>
-#include <sys/wait.h>
-
-#include <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/* _Jv_name_finder is a class wrapper around a mechanism that can
- convert addresses of methods to their names and the names of files
- in which they appear. */
-
-class _Jv_name_finder
-{
-public:
- _Jv_name_finder (char *executable);
- ~_Jv_name_finder ()
- {
-#if defined (HAVE_PIPE) && defined (HAVE_FORK)
- close (f_pipe[1]);
- fclose (b_pipe_fd);
-
- int wstat;
- // We don't care about errors here.
- waitpid (pid, &wstat, 0);
-#endif
- }
-
-/* Given a pointer to a function or method, try to convert it into a
- name and the appropriate line and source file. The caller passes
- the code pointer in p.
-
- Returns false if the lookup fails. Even if this happens, the field
- hex will have been correctly filled in with the pointer.
-
- The other fields are method_name and file_name, which lookup will
- attempt to fill appropriately. If the lookup has failed, these
- fields contain garbage.*/
- bool lookup (void *p);
-
- char method_name[1024];
- char file_name[1024];
- char hex[sizeof (void *) * 2 + 5];
-
-private:
- void toHex (void *p);
-#if defined (HAVE_PIPE) && defined (HAVE_FORK)
- pid_t pid;
- int f_pipe[2], b_pipe[2];
- FILE *b_pipe_fd;
- int error;
-#endif
-};
diff --git a/libjava/include/no-gc.h b/libjava/include/no-gc.h
deleted file mode 100644
index 18e79e13e10..00000000000
--- a/libjava/include/no-gc.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// -*- c++ -*-
-// no-gc.h - Defines for no garbage collector.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JV_NO_GC__
-#define __JV_NO_GC__
-
-// Nothing.
-
-#endif /* __JV_NO_GC__ */
diff --git a/libjava/include/no-threads.h b/libjava/include/no-threads.h
deleted file mode 100644
index e500184ca67..00000000000
--- a/libjava/include/no-threads.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// -*- c++ -*-
-// no-threads.h - Defines for using no threads.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JV_NO_THREADS__
-#define __JV_NO_THREADS__
-
-#include "config.h"
-
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-//
-// Typedefs.
-//
-
-typedef int _Jv_ConditionVariable_t;
-typedef int _Jv_Mutex_t;
-typedef int _Jv_Thread_t;
-typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
-
-
-//
-// Condition variables.
-//
-
-inline void
-_Jv_CondInit (_Jv_ConditionVariable_t *)
-{
-}
-
-// Waiting is ok provided there is a timeout. Otherwise we will just
-// wait forever.
-inline int
-_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *,
- jlong millis, jint nanos)
-{
- if (millis == 0 && nanos == 0)
- JvFail ("_Jv_CondWait without timeout");
-
-#ifdef HAVE_SLEEP
- int seconds = millis / 1000;
- if (seconds > 0)
- sleep (seconds);
-#endif
-
- return 0;
-}
-
-inline int
-_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
-{
- // It is ok to notify -- it just has no effect.
- return 0;
-}
-
-inline int
-_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
-{
- // It is ok to notify -- it just has no effect.
- return 0;
-}
-
-
-//
-// Mutexes.
-//
-
-inline void
-_Jv_MutexInit (_Jv_Mutex_t *)
-{
-}
-
-inline int
-_Jv_MutexLock (_Jv_Mutex_t *)
-{
- return 0;
-}
-
-inline int
-_Jv_MutexUnlock (_Jv_Mutex_t *)
-{
- return 0;
-}
-
-
-//
-// Thread creation and manipulation.
-//
-
-inline void
-_Jv_InitThreads (void)
-{
-}
-
-inline void
-_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *)
-{
- *data = NULL;
-}
-
-inline java::lang::Thread *
-_Jv_ThreadCurrent (void)
-{
- extern java::lang::Thread *_Jv_OnlyThread;
- return _Jv_OnlyThread;
-}
-
-inline void
-_Jv_ThreadYield (void)
-{
-}
-
-inline void
-_Jv_ThreadSetPriority (_Jv_Thread_t *, jint)
-{
-}
-
-void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *,
- _Jv_ThreadStartFunc *meth);
-
-inline void
-_Jv_ThreadWait (void)
-{
-}
-
-inline void
-_Jv_ThreadInterrupt (_Jv_Thread_t *)
-{
-}
-
-#endif /* __JV_NO_THREADS__ */
diff --git a/libjava/include/posix-threads.h b/libjava/include/posix-threads.h
deleted file mode 100644
index 5b1f075dc0d..00000000000
--- a/libjava/include/posix-threads.h
+++ /dev/null
@@ -1,205 +0,0 @@
-// -*- c++ -*-
-// posix-threads.h - Defines for using POSIX threads.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JV_POSIX_THREADS__
-#define __JV_POSIX_THREADS__
-
-// NOTE: This file may only reference those pthread functions which
-// are known not to be overridden by the Boehm GC. If in doubt, scan
-// boehm-gc/gc.h. This is yucky but lets us avoid including gc.h
-// everywhere (which would be truly yucky).
-
-#include <pthread.h>
-#include <sched.h>
-
-//
-// Typedefs.
-//
-
-typedef struct _Jv_Thread_t
-{
- // Flag values are defined in implementation.
- int flags;
-
- // Actual thread id.
- pthread_t thread;
-
- // Java Thread object.
- java::lang::Thread *thread_obj;
-
- // Condition variable and corresponding mutex, used to implement the
- // interruptable wait/notify mechanism.
- pthread_cond_t wait_cond;
- pthread_mutex_t wait_mutex;
-
- // Next thread for Condition Variable wait-list chain.
- _Jv_Thread_t *next;
-
-} _Jv_Thread_t;
-
-typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
-
-
-// Condition Variables used to implement wait/notify/sleep/interrupt.
-typedef struct
-{
- // Linked list of Threads that are waiting to be notified.
- _Jv_Thread_t *first;
-
-} _Jv_ConditionVariable_t;
-
-typedef struct
-{
- // For compatibility, simplicity, and correctness, we do not use the native
- // pthreads recursive mutex implementation, but simulate them instead.
-
- // Mutex the thread holds the entire time this mutex is held.
- pthread_mutex_t mutex;
-
- // Thread holding this mutex.
- pthread_t owner;
-
- // Number of times mutex is held (lock depth). If 0, the lock is not held.
- int count;
-} _Jv_Mutex_t;
-
-// This is a convenience function used only by the pthreads thread
-// implementation. This is slow, but that's too bad -- we need to do
-// the checks for correctness. It might be nice to be able to compile
-// this out. Returns 0 if the lock is held by the current thread, and
-// 1 otherwise.
-inline int
-_Jv_PthreadCheckMonitor (_Jv_Mutex_t *mu)
-{
- pthread_t self = pthread_self();
- if (mu->owner == self)
- return 0;
- else return 1;
-}
-
-//
-// Condition variables.
-//
-
-int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
- jlong millis, jint nanos);
-
-int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu);
-
-int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu);
-
-inline void
-_Jv_CondInit (_Jv_ConditionVariable_t *cv)
-{
- cv->first = NULL;
-}
-
-//
-// Mutexes.
-//
-
-inline void
-_Jv_MutexInit (_Jv_Mutex_t *mu)
-{
- pthread_mutex_init (&mu->mutex, NULL);
-
- mu->count = 0;
- mu->owner = 0;
-}
-
-inline int
-_Jv_MutexLock (_Jv_Mutex_t *mu)
-{
- pthread_t self = pthread_self ();
- if (mu->owner == self)
- {
- mu->count++;
- }
- else
- {
- pthread_mutex_lock (&mu->mutex);
- mu->count = 1;
- mu->owner = self;
- }
- return 0;
-}
-
-inline int
-_Jv_MutexUnlock (_Jv_Mutex_t *mu)
-{
- if (_Jv_PthreadCheckMonitor (mu))
- return 1;
-
- mu->count--;
-
- if (mu->count == 0)
- {
- mu->owner = 0;
- pthread_mutex_unlock (&mu->mutex);
- }
- return 0;
-}
-
-#ifndef LINUX_THREADS
-
-// pthread_mutex_destroy does nothing on Linux and it is a win to avoid
-// defining this macro.
-
-#define _Jv_HaveMutexDestroy
-
-inline void
-_Jv_MutexDestroy (_Jv_Mutex_t *mu)
-{
- pthread_mutex_destroy (&mu->mutex);
-}
-
-#endif /* LINUX_THREADS */
-
-//
-// Thread creation and manipulation.
-//
-
-void _Jv_InitThreads (void);
-
-void _Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *thread);
-
-inline java::lang::Thread *
-_Jv_ThreadCurrent (void)
-{
- extern pthread_key_t _Jv_ThreadKey;
- return (java::lang::Thread *) pthread_getspecific (_Jv_ThreadKey);
-}
-
-inline _Jv_Thread_t *
-_Jv_ThreadCurrentData (void)
-{
- extern pthread_key_t _Jv_ThreadDataKey;
- return (_Jv_Thread_t *) pthread_getspecific (_Jv_ThreadDataKey);
-}
-
-inline void
-_Jv_ThreadYield (void)
-{
-#ifdef HAVE_SCHED_YIELD
- sched_yield ();
-#endif /* HAVE_SCHED_YIELD */
-}
-
-void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio);
-
-void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
- _Jv_ThreadStartFunc *meth);
-
-void _Jv_ThreadWait (void);
-
-void _Jv_ThreadInterrupt (_Jv_Thread_t *data);
-
-#endif /* __JV_POSIX_THREADS__ */
diff --git a/libjava/include/posix.h b/libjava/include/posix.h
deleted file mode 100644
index 278f7eb773b..00000000000
--- a/libjava/include/posix.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// posix.h -- Helper functions for POSIX-flavored OSs.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <time.h>
-#include <sys/types.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *);
-extern void _Jv_gettimeofday (struct timeval *);
diff --git a/libjava/include/ppc-signal.h b/libjava/include/ppc-signal.h
deleted file mode 100644
index 003a7604533..00000000000
--- a/libjava/include/ppc-signal.h
+++ /dev/null
@@ -1,115 +0,0 @@
-// ppc-signal.h - Catch runtime signals and turn them into exceptions.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef JAVA_SIGNAL_H
-#define JAVA_SIGNAL_H 1
-
-#include <signal.h>
-#include <ucontext.h>
-
-#define HANDLE_SEGV 1
-#undef HANDLE_FPE
-
-#define SIGNAL_HANDLER(_name) \
-__asm ("\t.section\t\".text\"\n" \
- "\t.align 2\n" \
- "_Jv_" #_name ":\n" \
- "\tmr 3, 1\n" \
- "\tb _Jv_stub_" #_name "\n"); \
-extern "C" void _Jv_##_name (int _dummy); \
-extern "C" void _Jv_stub_##_name (char *_sp) \
-
-class java::lang::Throwable;
-
-// Unwind the stack to the point at which the signal was generated and
-// then throw an exception.
-
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- struct sigcontext_struct *_context \
- = (struct sigcontext_struct *)(_sp + __SIGNAL_FRAMESIZE); \
- long int regs [34]; \
- memcpy (regs, &_context->regs->gpr[0], 32 * sizeof (long int)); \
- regs[32] = _context->regs->nip + sizeof (long int); \
- regs[33] = _context->regs->link; \
- \
- __asm volatile ( \
- "\tmr 31,%0\n" \
- "\tmr 3,%1 # exception to throw\n" \
- "\tlwz 0,128(31) # ip\n" \
- "\tmtlr 0\n" \
- "\tlwz 1,4(31) # previous r1\n" \
- "\tlwz 0,132(31) # previous lr\n" \
- "\tlwz 2,0(1) # previous previous r1\n" \
- "\tstw 0,4(2) # save previous lr\n" \
- "\tlwz 0,0(31)\n" \
- "\tlwz 2,8(31)\n" \
- "\tlwz 4,16(31)\n" \
- "\tlwz 5,20(31)\n" \
- "\tlwz 6,24(31)\n" \
- "\tlwz 7,28(31)\n" \
- "\tlwz 8,32(31)\n" \
- "\tlwz 9,36(31)\n" \
- "\tlwz 10,40(31)\n" \
- "\tlwz 11,44(31)\n" \
- "\tlwz 12,48(31)\n" \
- "\tlwz 13,52(31)\n" \
- "\tlwz 14,56(31)\n" \
- "\tlwz 15,60(31)\n" \
- "\tlwz 16,64(31)\n" \
- "\tlwz 17,68(31)\n" \
- "\tlwz 18,72(31)\n" \
- "\tlwz 19,76(31)\n" \
- "\tlwz 20,80(31)\n" \
- "\tlwz 21,84(31)\n" \
- "\tlwz 22,88(31)\n" \
- "\tlwz 23,92(31)\n" \
- "\tlwz 24,96(31)\n" \
- "\tlwz 25,100(31)\n" \
- "\tlwz 26,104(31)\n" \
- "\tlwz 27,108(31)\n" \
- "\tlwz 28,112(31)\n" \
- "\tlwz 29,116(31)\n" \
- "\tlwz 30,120(31)\n" \
- "\tlwz 31,124(31)\n" \
- "\tb _Jv_ThrowSignal\n" \
- : : "r"(regs), "r"(_exception) \
- : "r31", "r3"); \
-} \
-while (0)
-
-
-#define INIT_SEGV \
-do \
- { \
- nullp = new java::lang::NullPointerException (); \
- struct sigaction act; \
- act.sa_handler = _Jv_catch_segv; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = 0; \
- __sigaction (SIGSEGV, &act, NULL); \
- } \
-while (0)
-
-#define INIT_FPE \
-do \
- { \
- arithexception = new java::lang::ArithmeticException \
- (JvNewStringLatin1 ("/ by zero")); \
- struct sigaction act; \
- act.sa_handler = _Jv_catch_fpe; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = 0; \
- __sigaction (SIGFPE, &act, NULL); \
- } \
-while (0)
-
-#endif /* JAVA_SIGNAL_H */
diff --git a/libjava/include/sparc-signal.h b/libjava/include/sparc-signal.h
deleted file mode 100644
index 03538eccf20..00000000000
--- a/libjava/include/sparc-signal.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// sparc-signal.h - Catch runtime signals and turn them into exceptions.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef JAVA_SIGNAL_H
-#define JAVA_SIGNAL_H 1
-
-#include <signal.h>
-#include <ucontext.h>
-
-#define HANDLE_SEGV 1
-#define HANDLE_FPE 1
-
-#define SIGNAL_HANDLER(_name) \
-static void _name (int _dummy, siginfo_t *_info, void *arg)
-
-#define FLUSH_REGISTER_WINDOWS \
- asm volatile ("ta 3");
-
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- ucontext_t *_context = (ucontext_t *) arg; \
- (void)_dummy; \
- (void)_info; \
- register int sp = _context->uc_mcontext.gregs[REG_SP]; \
- register int retaddr = _context->uc_mcontext.gregs[REG_O7]; \
- FLUSH_REGISTER_WINDOWS; \
- asm volatile ("mov %0, %%i6; mov %1, %%i7" \
- : : "r"(sp), "r"(retaddr)); \
-} \
-while (0)
-
-#define INIT_SEGV \
-do \
- { \
- nullp = new java::lang::NullPointerException (); \
- struct sigaction act; \
- act.sa_sigaction = catch_segv; \
- act.sa_flags = SA_SIGINFO | SA_NODEFER; \
- sigemptyset (&act.sa_mask); \
- sigaction (SIGSEGV, &act, NULL); \
- } \
-while (0)
-
-#define INIT_FPE \
-do \
- { \
- arithexception = new java::lang::ArithmeticException \
- (JvNewStringLatin1 ("/ by zero")); \
- struct sigaction act; \
- act.sa_flags = SA_SIGINFO | SA_NODEFER; \
- act.sa_sigaction = catch_fpe; \
- sigemptyset (&act.sa_mask); \
- sigaction (SIGFPE, &act, NULL); \
- } \
-while (0)
-
-#endif /* JAVA_SIGNAL_H */
diff --git a/libjava/include/stamp-h.in b/libjava/include/stamp-h.in
deleted file mode 100644
index 9788f70238c..00000000000
--- a/libjava/include/stamp-h.in
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/libjava/include/win32-signal.h b/libjava/include/win32-signal.h
deleted file mode 100644
index e12c3c36681..00000000000
--- a/libjava/include/win32-signal.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// win32-signal.h - Catch runtime signals and turn them into exceptions.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Exception handling is done totally differently on Win32 this stuff
-// just keeps it compatible
-
-#ifndef JAVA_SIGNAL_H
-#define JAVA_SIGNAL_H 1
-
-#define HANDLE_SEGV 1
-#define HANDLE_FPE 1
-
-#define SIGNAL_HANDLER(_name) \
-static void _name (int _dummy)
-
-#define MAKE_THROW_FRAME(_exception) do {} while (0)
-#define HANDLE_DIVIDE_OVERFLOW do {} while (0)
-
-#define INIT_SEGV \
-do \
- { \
- nullp = new java::lang::NullPointerException (); \
- } \
-while (0)
-
-
-#define INIT_FPE \
-do \
- { \
- arithexception = new java::lang::ArithmeticException \
- (JvNewStringLatin1 ("/ by zero")); \
- } \
-while (0)
-
-
-#endif /* JAVA_SIGNAL_H */
diff --git a/libjava/include/win32-threads.h b/libjava/include/win32-threads.h
deleted file mode 100644
index 4938d5faf57..00000000000
--- a/libjava/include/win32-threads.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// -*- c++ -*-
-// win32-threads.h - Defines for using Win32 threads.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JV_WIN32_THREADS__
-#define __JV_WIN32_THREADS__
-
-#include <windows.h>
-
-//
-// Typedefs.
-//
-
-typedef HANDLE _Jv_ConditionVariable_t;
-typedef HANDLE _Jv_Mutex_t;
-
-typedef struct
-{
- int flags; // Flags are defined in implementation.
- HANDLE handle; // Actual handle to the thread
-} _Jv_Thread_t;
-
-typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
-
-//
-// Condition variables.
-//
-
-inline void
-_Jv_CondInit (_Jv_ConditionVariable_t *cv)
-{
- *cv = CreateEvent (NULL, 0, 0, NULL);
-}
-
-#define _Jv_HaveCondDestroy
-
-inline void
-_Jv_CondDestroy (_Jv_ConditionVariable_t *cv)
-{
- CloseHandle (*cv);
- cv = NULL;
-}
-
-int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
- jlong millis, jint nanos);
-
-inline int
-_Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *)
-{
- // FIXME: check for mutex ownership?
- return PulseEvent (*cv) ? 0 : _JV_NOT_OWNER; // FIXME?
-}
-
-inline int
-_Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *)
-{
- // FIXME: check for mutex ownership?
- return PulseEvent (*cv) ? 0 : _JV_NOT_OWNER; // FIXME?
-}
-
-//
-// Mutexes.
-//
-
-inline void
-_Jv_MutexInit (_Jv_Mutex_t *mu)
-{
- *mu = CreateMutex (NULL, 0, NULL);
-}
-
-#define _Jv_HaveMutexDestroy
-
-inline void
-_Jv_MutexDestroy (_Jv_Mutex_t *mu)
-{
- CloseHandle (*mu);
- mu = NULL;
-}
-
-int _Jv_MutexLock (_Jv_Mutex_t *mu);
-
-inline int
-_Jv_MutexUnlock (_Jv_Mutex_t *mu)
-{
- return ReleaseMutex(*mu) ? 0 : GetLastError(); // FIXME: Map error code?
-}
-
-//
-// Thread creation and manipulation.
-//
-
-void _Jv_InitThreads (void);
-void _Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *thread);
-
-inline java::lang::Thread *
-_Jv_ThreadCurrent (void)
-{
- extern DWORD _Jv_ThreadKey;
- return (java::lang::Thread *) TlsGetValue(_Jv_ThreadKey);
-}
-
-inline _Jv_Thread_t *
-_Jv_ThreadCurrentData (void)
-{
- extern DWORD _Jv_ThreadDataKey;
- return (_Jv_Thread_t *) TlsGetValue(_Jv_ThreadDataKey);
-}
-
-inline void
-_Jv_ThreadYield (void)
-{
- Sleep (0);
-}
-
-void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio);
-void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
- _Jv_ThreadStartFunc *meth);
-void _Jv_ThreadWait (void);
-void _Jv_ThreadInterrupt (_Jv_Thread_t *data);
-
-// Remove defines from <windows.h> that conflict with various things in libgcj code
-
-#undef TRUE
-#undef FALSE
-#undef MAX_PRIORITY
-#undef MIN_PRIORITY
-#undef min
-#undef max
-#undef interface
-#undef STRICT
-#undef VOID
-
-#endif /* __JV_WIN32_THREADS__ */
diff --git a/libjava/interpret.cc b/libjava/interpret.cc
deleted file mode 100644
index 74e87880a02..00000000000
--- a/libjava/interpret.cc
+++ /dev/null
@@ -1,2437 +0,0 @@
-// interpret.cc - Code for the interpreter
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-#include <config.h>
-
-#pragma implementation "java-interp.h"
-
-#include <jvm.h>
-#include <java-cpool.h>
-#include <java-interp.h>
-// #include <java/lang/fdlibm.h>
-#include <java/lang/System.h>
-#include <java/lang/String.h>
-#include <java/lang/Integer.h>
-#include <java/lang/StringBuffer.h>
-#include <java/lang/Class.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/ClassCastException.h>
-#include <java/lang/VirtualMachineError.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/ArithmeticException.h>
-#include <java/lang/IncompatibleClassChangeError.h>
-#include <java-insns.h>
-#include <java-signal.h>
-
-#ifdef INTERPRETER
-
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-
-#define ClassError _CL_Q34java4lang5Error
-extern java::lang::Class ClassError;
-
-static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
-
-static void throw_internal_error (char *msg)
- __attribute__ ((__noreturn__));
-static void throw_incompatible_class_change_error (jstring msg)
- __attribute__ ((__noreturn__));
-#ifndef HANDLE_SEGV
-static void throw_null_pointer_exception ()
- __attribute__ ((__noreturn__));
-#endif
-
-extern "C" double __ieee754_fmod (double,double);
-
-static inline void dupx (_Jv_word *sp, int n, int x)
-{
- // first "slide" n+x elements n to the right
- int top = n-1;
- for (int i = 0; i < n+x; i++)
- {
- sp[(top-i)] = sp[(top-i)-n];
- }
-
- // next, copy the n top elements, n+x down
- for (int i = 0; i < n; i++)
- {
- sp[top-(n+x)-i] = sp[top-i];
- }
-
-};
-
-
-#define PUSHA(V) (sp++)->o = (V)
-#define PUSHI(V) (sp++)->i = (V)
-#define PUSHF(V) (sp++)->f = (V)
-#if SIZEOF_VOID_P == 8
-# define PUSHL(V) (sp->l = (V), sp += 2)
-# define PUSHD(V) (sp->d = (V), sp += 2)
-#else
-# define PUSHL(V) do { _Jv_word2 w2; w2.l=(V); \
- (sp++)->ia[0] = w2.ia[0]; \
- (sp++)->ia[0] = w2.ia[1]; } while (0)
-# define PUSHD(V) do { _Jv_word2 w2; w2.d=(V); \
- (sp++)->ia[0] = w2.ia[0]; \
- (sp++)->ia[0] = w2.ia[1]; } while (0)
-#endif
-
-#define POPA() ((--sp)->o)
-#define POPI() ((jint) (--sp)->i) // cast since it may be promoted
-#define POPF() ((jfloat) (--sp)->f)
-#if SIZEOF_VOID_P == 8
-# define POPL() (sp -= 2, (jlong) sp->l)
-# define POPD() (sp -= 2, (jdouble) sp->d)
-#else
-# define POPL() ({ _Jv_word2 w2; \
- w2.ia[1] = (--sp)->ia[0]; \
- w2.ia[0] = (--sp)->ia[0]; w2.l; })
-# define POPD() ({ _Jv_word2 w2; \
- w2.ia[1] = (--sp)->ia[0]; \
- w2.ia[0] = (--sp)->ia[0]; w2.d; })
-#endif
-
-#define LOADA(I) (sp++)->o = locals[I].o
-#define LOADI(I) (sp++)->i = locals[I].i
-#define LOADF(I) (sp++)->f = locals[I].f
-#if SIZEOF_VOID_P == 8
-# define LOADL(I) (sp->l = locals[I].l, sp += 2)
-# define LOADD(I) (sp->d = locals[I].d, sp += 2)
-#else
-# define LOADL(I) do { jint __idx = (I); \
- (sp++)->ia[0] = locals[__idx].ia[0]; \
- (sp++)->ia[0] = locals[__idx+1].ia[0]; \
- } while (0)
-# define LOADD(I) LOADL(I)
-#endif
-
-#define STOREA(I) locals[I].o = (--sp)->o
-#define STOREI(I) locals[I].i = (--sp)->i
-#define STOREF(I) locals[I].f = (--sp)->f
-#if SIZEOF_VOID_P == 8
-# define STOREL(I) (sp -= 2, locals[I].l = sp->l)
-# define STORED(I) (sp -= 2, locals[I].d = sp->d)
-#else
-# define STOREL(I) do { jint __idx = (I); \
- locals[__idx+1].ia[0] = (--sp)->ia[0]; \
- locals[__idx].ia[0] = (--sp)->ia[0]; \
- } while (0)
-# define STORED(I) STOREL(I)
-#endif
-
-#define PEEKI(I) (locals+(I))->i
-#define PEEKA(I) (locals+(I))->o
-
-#define POKEI(I,V) ((locals+(I))->i = (V))
-
-
-#define BINOPI(OP) { \
- jint value2 = POPI(); \
- jint value1 = POPI(); \
- PUSHI(value1 OP value2); \
-}
-
-#define BINOPF(OP) { \
- jfloat value2 = POPF(); \
- jfloat value1 = POPF(); \
- PUSHF(value1 OP value2); \
-}
-
-#define BINOPL(OP) { \
- jlong value2 = POPL(); \
- jlong value1 = POPL(); \
- PUSHL(value1 OP value2); \
-}
-
-#define BINOPD(OP) { \
- jdouble value2 = POPD(); \
- jdouble value1 = POPD(); \
- PUSHD(value1 OP value2); \
-}
-
-static inline jint get1s(unsigned char* loc) {
- return *(signed char*)loc;
-}
-
-static inline jint get1u(unsigned char* loc) {
- return *loc;
-}
-
-static inline jint get2s(unsigned char* loc) {
- return (((jint)*(signed char*)loc) << 8) | ((jint)*(loc+1));
-}
-
-static inline jint get2u(unsigned char* loc) {
- return (((jint)(*loc)) << 8) | ((jint)*(loc+1));
-}
-
-static jint get4(unsigned char* loc) {
- return (((jint)(loc[0])) << 24)
- | (((jint)(loc[1])) << 16)
- | (((jint)(loc[2])) << 8)
- | (((jint)(loc[3])) << 0);
-}
-
-
-#ifdef HANDLE_SEGV
-#define NULLCHECK(X)
-#else
-#define NULLCHECK(X) \
- do { if ((X)==NULL) throw_null_pointer_exception (); } while (0)
-#endif
-
-
-// this method starts the actual running of the method. It is inlined
-// in three different variants in the static methods run_normal,
-// run_sync_object and run_sync_class (see below). Those static methods
-// are installed directly in the stub for this method (by
-// _Jv_InterpMethod::ncode, in resolve.cc).
-
-inline jobject
-_Jv_InterpMethod::run (ffi_cif* cif,
- void *retp,
- ffi_raw *args,
- _Jv_InterpMethodInvocation *inv)
-{
- inv->running = this;
- inv->pc = bytecode ();
- inv->sp = inv->stack_base ();
- _Jv_word *locals = inv->local_base ();
-
- /* Go straight at it! the ffi raw format matches the internal
- stack representation exactly. At least, that's the idea.
- */
- memcpy ((void*) locals, (void*) args, args_raw_size);
-
- next_segment:
-
- jobject ex = NULL;
-
- try
- {
- continue1 (inv);
- }
- catch (java::lang::Throwable *ex2)
- {
- ex = ex2;
- }
-
- if (ex == 0) // no exception...
- {
- /* define sp locally, so the POP? macros will pick it up */
- _Jv_word *sp = inv->sp;
- int rtype = cif->rtype->type;
-
- if (rtype == FFI_TYPE_POINTER)
- {
- jobject r = POPA();
- *(jobject*) retp = r;
- return 0;
- }
- else if (rtype == FFI_TYPE_SINT32)
- {
- jint r = POPI();
- *(jint*)retp = r;
- return 0;
- }
- else if (rtype == FFI_TYPE_VOID)
- {
- return 0;
- }
- else switch (rtype)
- {
- case FFI_TYPE_FLOAT:
- {
- jfloat r = POPF();
- *(jfloat*)retp = r;
- return 0;
- }
-
- case FFI_TYPE_DOUBLE:
- {
- jdouble r = POPD();
- *(jdouble*)retp = r;
- return 0;
- }
-
- case FFI_TYPE_UINT8:
- case FFI_TYPE_UINT16:
- case FFI_TYPE_UINT32:
- case FFI_TYPE_SINT8:
- case FFI_TYPE_SINT16:
- {
- jint r = POPI();
- *(jint*)retp = r;
- return 0;
- }
-
- case FFI_TYPE_SINT64:
- {
- jlong r = POPL();
- *(jlong*)retp = r;
- return 0;
- }
-
- default:
- throw_internal_error ("unknown return type");
- }
- }
-
- /** handle an exception */
- if ( find_exception (ex, inv) )
- goto next_segment;
-
- return ex;
-}
-
-bool _Jv_InterpMethod::find_exception (jobject ex,
- _Jv_InterpMethodInvocation *inv)
-{
- int logical_pc = inv->pc - bytecode ();
- _Jv_InterpException *exc = exceptions ();
- jclass exc_class = ex->getClass ();
-
- for (int i = 0; i < exc_count; i++)
- {
- if (exc[i].start_pc <= logical_pc && logical_pc < exc[i].end_pc)
- {
- jclass handler;
-
- if (exc[i].handler_type != 0)
- handler = (_Jv_ResolvePoolEntry (defining_class,
- exc[i].handler_type)).clazz;
- else
- handler = NULL;
-
- if (handler==NULL || handler->isAssignableFrom (exc_class))
- {
- inv->pc = bytecode () + exc[i].handler_pc;
- inv->sp = inv->stack_base (); // reset stack
- (inv->sp++)->o = ex; // push exception
- return true;
- }
- }
- }
- return false;
-}
-
-void _Jv_InterpMethod::run_normal (ffi_cif* cif,
- void* ret,
- ffi_raw * args,
- void* __this)
-{
- _Jv_InterpMethod* _this = (_Jv_InterpMethod*)__this;
-
- // we do the alloca of the method invocation here, to allow the method
- // "run" ro be inlined. Otherwise gcc will ignore the inline directive.
- int storage_size = _this->max_stack+_this->max_locals;
- _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*)
- alloca (sizeof (_Jv_InterpMethodInvocation)
- + storage_size * sizeof (_Jv_word));
-
- jobject ex = _this->run (cif, ret, args, inv);
- if (ex != 0) _Jv_Throw (ex);
-}
-
-void _Jv_InterpMethod::run_synch_object (ffi_cif* cif,
- void* ret,
- ffi_raw * args,
- void* __this)
-{
- _Jv_InterpMethod* _this = (_Jv_InterpMethod*)__this;
- jobject rcv = (jobject)args[0].ptr;
-
- int storage_size = _this->max_stack+_this->max_locals;
- _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*)
- alloca (sizeof (_Jv_InterpMethodInvocation)
- + storage_size * sizeof (_Jv_word));
-
- _Jv_MonitorEnter (rcv);
- jobject ex = _this->run (cif, ret, args, inv);
- _Jv_MonitorExit (rcv);
-
- if (ex != 0) _Jv_Throw (ex);
-}
-
-void _Jv_InterpMethod::run_synch_class (ffi_cif* cif,
- void* ret,
- ffi_raw * args,
- void* __this)
-{
- _Jv_InterpMethod* _this = (_Jv_InterpMethod*)__this;
- jclass sync = _this->defining_class;
-
- int storage_size = _this->max_stack+_this->max_locals;
- _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*)
- alloca (sizeof (_Jv_InterpMethodInvocation)
- + storage_size * sizeof (_Jv_word));
-
- _Jv_MonitorEnter (sync);
- jobject ex = _this->run (cif, ret, args, inv);
- _Jv_MonitorExit (sync);
-
- if (ex != 0) _Jv_Throw (ex);
-}
-
-/*
- This proceeds execution, as designated in "inv". If an exception
- happens, then it is simply thrown, and handled in Java. Thus, the pc
- needs to be stored in the inv->pc at all times, so we can figure
- out which handler (if any) to invoke.
-
- One design issue, which I have not completely considered, is if it
- should be possible to have interpreted classes linked in! Seldom used
- (or non-critical) classes could reasonably be interpreted.
-*/
-
-
-void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
-{
- using namespace java::lang::reflect;
-
- _Jv_word *sp = inv->sp;
- unsigned char *pc = inv->pc;
- _Jv_word *locals = inv->local_base ();
-
- _Jv_word *pool_data = defining_class->constants.data;
-
- /* these two are used in the invokeXXX instructions */
- void (*fun)();
- _Jv_ResolvedMethod* rmeth;
-
-#define INSN_LABEL(op) &&insn_##op
-#define GOTO_INSN(op) goto *(insn_target[op])
-
- static const void *const insn_target[] =
- {
- INSN_LABEL(nop),
- INSN_LABEL(aconst_null),
- INSN_LABEL(iconst_m1),
- INSN_LABEL(iconst_0),
- INSN_LABEL(iconst_1),
- INSN_LABEL(iconst_2),
- INSN_LABEL(iconst_3),
- INSN_LABEL(iconst_4),
- INSN_LABEL(iconst_5),
- INSN_LABEL(lconst_0),
- INSN_LABEL(lconst_1),
- INSN_LABEL(fconst_0),
- INSN_LABEL(fconst_1),
- INSN_LABEL(fconst_2),
- INSN_LABEL(dconst_0),
- INSN_LABEL(dconst_1),
- INSN_LABEL(bipush),
- INSN_LABEL(sipush),
- INSN_LABEL(ldc),
- INSN_LABEL(ldc_w),
- INSN_LABEL(ldc2_w),
- INSN_LABEL(iload),
- INSN_LABEL(lload),
- INSN_LABEL(fload),
- INSN_LABEL(dload),
- INSN_LABEL(aload),
- INSN_LABEL(iload_0),
- INSN_LABEL(iload_1),
- INSN_LABEL(iload_2),
- INSN_LABEL(iload_3),
- INSN_LABEL(lload_0),
- INSN_LABEL(lload_1),
- INSN_LABEL(lload_2),
- INSN_LABEL(lload_3),
- INSN_LABEL(fload_0),
- INSN_LABEL(fload_1),
- INSN_LABEL(fload_2),
- INSN_LABEL(fload_3),
- INSN_LABEL(dload_0),
- INSN_LABEL(dload_1),
- INSN_LABEL(dload_2),
- INSN_LABEL(dload_3),
- INSN_LABEL(aload_0),
- INSN_LABEL(aload_1),
- INSN_LABEL(aload_2),
- INSN_LABEL(aload_3),
- INSN_LABEL(iaload),
- INSN_LABEL(laload),
- INSN_LABEL(faload),
- INSN_LABEL(daload),
- INSN_LABEL(aaload),
- INSN_LABEL(baload),
- INSN_LABEL(caload),
- INSN_LABEL(saload),
- INSN_LABEL(istore),
- INSN_LABEL(lstore),
- INSN_LABEL(fstore),
- INSN_LABEL(dstore),
- INSN_LABEL(astore),
- INSN_LABEL(istore_0),
- INSN_LABEL(istore_1),
- INSN_LABEL(istore_2),
- INSN_LABEL(istore_3),
- INSN_LABEL(lstore_0),
- INSN_LABEL(lstore_1),
- INSN_LABEL(lstore_2),
- INSN_LABEL(lstore_3),
- INSN_LABEL(fstore_0),
- INSN_LABEL(fstore_1),
- INSN_LABEL(fstore_2),
- INSN_LABEL(fstore_3),
- INSN_LABEL(dstore_0),
- INSN_LABEL(dstore_1),
- INSN_LABEL(dstore_2),
- INSN_LABEL(dstore_3),
- INSN_LABEL(astore_0),
- INSN_LABEL(astore_1),
- INSN_LABEL(astore_2),
- INSN_LABEL(astore_3),
- INSN_LABEL(iastore),
- INSN_LABEL(lastore),
- INSN_LABEL(fastore),
- INSN_LABEL(dastore),
- INSN_LABEL(aastore),
- INSN_LABEL(bastore),
- INSN_LABEL(castore),
- INSN_LABEL(sastore),
- INSN_LABEL(pop),
- INSN_LABEL(pop2),
- INSN_LABEL(dup),
- INSN_LABEL(dup_x1),
- INSN_LABEL(dup_x2),
- INSN_LABEL(dup2),
- INSN_LABEL(dup2_x1),
- INSN_LABEL(dup2_x2),
- INSN_LABEL(swap),
- INSN_LABEL(iadd),
- INSN_LABEL(ladd),
- INSN_LABEL(fadd),
- INSN_LABEL(dadd),
- INSN_LABEL(isub),
- INSN_LABEL(lsub),
- INSN_LABEL(fsub),
- INSN_LABEL(dsub),
- INSN_LABEL(imul),
- INSN_LABEL(lmul),
- INSN_LABEL(fmul),
- INSN_LABEL(dmul),
- INSN_LABEL(idiv),
- INSN_LABEL(ldiv),
- INSN_LABEL(fdiv),
- INSN_LABEL(ddiv),
- INSN_LABEL(irem),
- INSN_LABEL(lrem),
- INSN_LABEL(frem),
- INSN_LABEL(drem),
- INSN_LABEL(ineg),
- INSN_LABEL(lneg),
- INSN_LABEL(fneg),
- INSN_LABEL(dneg),
- INSN_LABEL(ishl),
- INSN_LABEL(lshl),
- INSN_LABEL(ishr),
- INSN_LABEL(lshr),
- INSN_LABEL(iushr),
- INSN_LABEL(lushr),
- INSN_LABEL(iand),
- INSN_LABEL(land),
- INSN_LABEL(ior),
- INSN_LABEL(lor),
- INSN_LABEL(ixor),
- INSN_LABEL(lxor),
- INSN_LABEL(iinc),
- INSN_LABEL(i2l),
- INSN_LABEL(i2f),
- INSN_LABEL(i2d),
- INSN_LABEL(l2i),
- INSN_LABEL(l2f),
- INSN_LABEL(l2d),
- INSN_LABEL(f2i),
- INSN_LABEL(f2l),
- INSN_LABEL(f2d),
- INSN_LABEL(d2i),
- INSN_LABEL(d2l),
- INSN_LABEL(d2f),
- INSN_LABEL(i2b),
- INSN_LABEL(i2c),
- INSN_LABEL(i2s),
- INSN_LABEL(lcmp),
- INSN_LABEL(fcmpl),
- INSN_LABEL(fcmpg),
- INSN_LABEL(dcmpl),
- INSN_LABEL(dcmpg),
- INSN_LABEL(ifeq),
- INSN_LABEL(ifne),
- INSN_LABEL(iflt),
- INSN_LABEL(ifge),
- INSN_LABEL(ifgt),
- INSN_LABEL(ifle),
- INSN_LABEL(if_icmpeq),
- INSN_LABEL(if_icmpne),
- INSN_LABEL(if_icmplt),
- INSN_LABEL(if_icmpge),
- INSN_LABEL(if_icmpgt),
- INSN_LABEL(if_icmple),
- INSN_LABEL(if_acmpeq),
- INSN_LABEL(if_acmpne),
- INSN_LABEL(goto),
- INSN_LABEL(jsr),
- INSN_LABEL(ret),
- INSN_LABEL(tableswitch),
- INSN_LABEL(lookupswitch),
- INSN_LABEL(ireturn),
- INSN_LABEL(lreturn),
- INSN_LABEL(freturn),
- INSN_LABEL(dreturn),
- INSN_LABEL(areturn),
- INSN_LABEL(return),
- INSN_LABEL(getstatic),
- INSN_LABEL(putstatic),
- INSN_LABEL(getfield),
- INSN_LABEL(putfield),
- INSN_LABEL(invokevirtual),
- INSN_LABEL(invokespecial),
- INSN_LABEL(invokestatic),
- INSN_LABEL(invokeinterface),
- 0, /* op_xxxunusedxxx1, */
- INSN_LABEL(new),
- INSN_LABEL(newarray),
- INSN_LABEL(anewarray),
- INSN_LABEL(arraylength),
- INSN_LABEL(athrow),
- INSN_LABEL(checkcast),
- INSN_LABEL(instanceof),
- INSN_LABEL(monitorenter),
- INSN_LABEL(monitorexit),
- INSN_LABEL(wide),
- INSN_LABEL(multianewarray),
- INSN_LABEL(ifnull),
- INSN_LABEL(ifnonnull),
- INSN_LABEL(goto_w),
- INSN_LABEL(jsr_w),
- };
-
-#define SAVE_PC inv->pc = pc-1
-
- /* If the macro INLINE_SWITCH is not defined, then the main loop
- operates as one big (normal) switch statement. If it is defined,
- then the case selection is performed `inline' in the end of the
- code for each case. The latter saves a native branch instruction
- for each java-instruction, but expands the code size somewhat.
-
- NOTE: On i386 defining INLINE_SWITCH improves over all
- performance approximately seven percent, but it may be different
- for other machines. At some point, this may be made into a proper
- configuration parameter. */
-
-#define INLINE_SWITCH
-
-#ifdef INLINE_SWITCH
-
-#define NEXT_INSN do { GOTO_INSN(*pc++); } while (0)
-
-
- NEXT_INSN;
-#else
-
-#define NEXT_INSN goto next_insn
-
- next_insn:
- GOTO_INSN (*pc++);
-
-#endif
-
- /* The first few instructions here are ordered according to their
- frequency, in the hope that this will improve code locality a
- little. */
-
- insn_aload_0: // 0x2a
- LOADA(0);
- NEXT_INSN;
-
- insn_iload: // 0x15
- LOADI (get1u (pc++));
- NEXT_INSN;
-
- insn_iload_1: // 0x1b
- LOADI (1);
- NEXT_INSN;
-
- insn_invokevirtual: // 0xb6
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
-
- /* _Jv_ResolvePoolEntry returns immediately if the value already
- * is resolved. If we want to clutter up the code here to gain
- * a little performance, then we can check the corresponding bit
- * JV_CONSTANT_ResolvedFlag in the tag directly. For now, I
- * don't think it is worth it. */
-
- rmeth = (_Jv_ResolvePoolEntry (defining_class, index)).rmethod;
-
- sp -= rmeth->stack_item_count;
- NULLCHECK (sp[0].o);
-
- if (rmeth->vtable_index == -1)
- {
- // final methods do not appear in the vtable,
- // if it does not appear in the superclass.
- fun = (void (*)()) rmeth->method->ncode;
- }
- else
- {
- jobject rcv = sp[0].o;
- _Jv_VTable *table = *(_Jv_VTable**)rcv;
- fun = (void (*)()) table->method[rmeth->vtable_index];
- }
- }
- goto perform_invoke;
-
- perform_invoke:
- {
- /* here goes the magic again... */
- ffi_cif *cif = &rmeth->cif;
- ffi_raw *raw = (ffi_raw*) sp;
-
- jdouble rvalue;
-
-#if FFI_NATIVE_RAW_API
- /* We assume that this is only implemented if it's correct */
- /* to use it here. On a 64 bit machine, it never is. */
- ffi_raw_call (cif, fun, (void*)&rvalue, raw);
-#else
- ffi_java_raw_call (cif, fun, (void*)&rvalue, raw);
-#endif
-
- int rtype = cif->rtype->type;
-
- /* the likelyhood of object, int, or void return is very high,
- * so those are checked before the switch */
- if (rtype == FFI_TYPE_POINTER)
- {
- PUSHA (*(jobject*)&rvalue);
- }
- else if (rtype == FFI_TYPE_SINT32)
- {
- PUSHI (*(jint*)&rvalue);
- }
- else if (rtype == FFI_TYPE_VOID)
- {
- /* skip */
- }
- else switch (rtype)
- {
- case FFI_TYPE_SINT8:
- {
- jbyte value = (*(jint*)&rvalue) & 0xff;
- PUSHI (value);
- }
- break;
-
- case FFI_TYPE_SINT16:
- {
- jshort value = (*(jint*)&rvalue) & 0xffff;
- PUSHI (value);
- }
- break;
-
- case FFI_TYPE_UINT16:
- {
- jint value = (*(jint*)&rvalue) & 0xffff;
- PUSHI (value);
- }
- break;
-
- case FFI_TYPE_FLOAT:
- PUSHF (*(jfloat*)&rvalue);
- break;
-
- case FFI_TYPE_DOUBLE:
- PUSHD (rvalue);
- break;
-
- case FFI_TYPE_SINT64:
- PUSHL (*(jlong*)&rvalue);
- break;
-
- default:
- throw_internal_error ("unknown return type in invokeXXX");
- }
-
- }
- NEXT_INSN;
-
-
- insn_nop:
- NEXT_INSN;
-
- insn_aconst_null:
- PUSHA (NULL);
- NEXT_INSN;
-
- insn_iconst_m1:
- PUSHI (-1);
- NEXT_INSN;
-
- insn_iconst_0:
- PUSHI (0);
- NEXT_INSN;
-
- insn_iconst_1:
- PUSHI (1);
- NEXT_INSN;
-
- insn_iconst_2:
- PUSHI (2);
- NEXT_INSN;
-
- insn_iconst_3:
- PUSHI (3);
- NEXT_INSN;
-
- insn_iconst_4:
- PUSHI (4);
- NEXT_INSN;
-
- insn_iconst_5:
- PUSHI (5);
- NEXT_INSN;
-
- insn_lconst_0:
- PUSHL (0);
- NEXT_INSN;
-
- insn_lconst_1:
- PUSHL (1);
- NEXT_INSN;
-
- insn_fconst_0:
- PUSHF (0);
- NEXT_INSN;
-
- insn_fconst_1:
- PUSHF (1);
- NEXT_INSN;
-
- insn_fconst_2:
- PUSHF (2);
- NEXT_INSN;
-
- insn_dconst_0:
- PUSHD (0);
- NEXT_INSN;
-
- insn_dconst_1:
- PUSHD (1);
- NEXT_INSN;
-
- insn_bipush:
- PUSHI (get1s(pc++));
- NEXT_INSN;
-
- insn_sipush:
- PUSHI (get2s(pc)); pc += 2;
- NEXT_INSN;
-
- insn_ldc:
- {
- int index = get1u (pc++);
- PUSHA(pool_data[index].o);
- }
- NEXT_INSN;
-
- insn_ldc_w:
- {
- int index = get2u (pc); pc += 2;
- PUSHA(pool_data[index].o);
- }
- NEXT_INSN;
-
- insn_ldc2_w:
- {
- int index = get2u (pc); pc += 2;
- memcpy (sp, &pool_data[index], 2*sizeof (_Jv_word));
- sp += 2;
- }
- NEXT_INSN;
-
- insn_lload:
- LOADL (get1u (pc++));
- NEXT_INSN;
-
- insn_fload:
- LOADF (get1u (pc++));
- NEXT_INSN;
-
- insn_dload:
- LOADD (get1u (pc++));
- NEXT_INSN;
-
- insn_aload:
- LOADA (get1u (pc++));
- NEXT_INSN;
-
- insn_iload_0:
- LOADI (0);
- NEXT_INSN;
-
- insn_iload_2:
- LOADI (2);
- NEXT_INSN;
-
- insn_iload_3:
- LOADI (3);
- NEXT_INSN;
-
- insn_lload_0:
- LOADL (0);
- NEXT_INSN;
-
- insn_lload_1:
- LOADL (1);
- NEXT_INSN;
-
- insn_lload_2:
- LOADL (2);
- NEXT_INSN;
-
- insn_lload_3:
- LOADL (3);
- NEXT_INSN;
-
- insn_fload_0:
- LOADF (0);
- NEXT_INSN;
-
- insn_fload_1:
- LOADF (1);
- NEXT_INSN;
-
- insn_fload_2:
- LOADF (2);
- NEXT_INSN;
-
- insn_fload_3:
- LOADF (3);
- NEXT_INSN;
-
- insn_dload_0:
- LOADD (0);
- NEXT_INSN;
-
- insn_dload_1:
- LOADD (1);
- NEXT_INSN;
-
- insn_dload_2:
- LOADD (2);
- NEXT_INSN;
-
- insn_dload_3:
- LOADD (3);
- NEXT_INSN;
-
- insn_aload_1:
- LOADA(1);
- NEXT_INSN;
-
- insn_aload_2:
- LOADA(2);
- NEXT_INSN;
-
- insn_aload_3:
- LOADA(3);
- NEXT_INSN;
-
- insn_iaload:
- SAVE_PC;
- {
- jint index = POPI();
- jintArray arr = (jintArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHI( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_laload:
- SAVE_PC;
- {
- jint index = POPI();
- jlongArray arr = (jlongArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHL( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_faload:
- SAVE_PC;
- {
- jint index = POPI();
- jfloatArray arr = (jfloatArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHF( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_daload:
- SAVE_PC;
- {
- jint index = POPI();
- jdoubleArray arr = (jdoubleArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHD( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_aaload:
- SAVE_PC;
- {
- jint index = POPI();
- jobjectArray arr = (jobjectArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHA( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_baload:
- SAVE_PC;
- {
- jint index = POPI();
- jbyteArray arr = (jbyteArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHI( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_caload:
- SAVE_PC;
- {
- jint index = POPI();
- jcharArray arr = (jcharArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHI( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_saload:
- SAVE_PC;
- {
- jint index = POPI();
- jshortArray arr = (jshortArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- PUSHI( elements(arr)[index] );
- }
- NEXT_INSN;
-
- insn_istore:
- STOREI (get1u (pc++));
- NEXT_INSN;
-
- insn_lstore:
- STOREL (get1u (pc++));
- NEXT_INSN;
-
- insn_fstore:
- STOREF (get1u (pc++));
- NEXT_INSN;
-
- insn_dstore:
- STORED (get1u (pc++));
- NEXT_INSN;
-
- insn_astore:
- STOREA (get1u (pc++));
- NEXT_INSN;
-
- insn_istore_0:
- STOREI (0);
- NEXT_INSN;
-
- insn_istore_1:
- STOREI (1);
- NEXT_INSN;
-
- insn_istore_2:
- STOREI (2);
- NEXT_INSN;
-
- insn_istore_3:
- STOREI (3);
- NEXT_INSN;
-
- insn_lstore_0:
- STOREL (0);
- NEXT_INSN;
-
- insn_lstore_1:
- STOREL (1);
- NEXT_INSN;
-
- insn_lstore_2:
- STOREL (2);
- NEXT_INSN;
-
- insn_lstore_3:
- STOREL (3);
- NEXT_INSN;
-
- insn_fstore_0:
- STOREF (0);
- NEXT_INSN;
-
- insn_fstore_1:
- STOREF (1);
- NEXT_INSN;
-
- insn_fstore_2:
- STOREF (2);
- NEXT_INSN;
-
- insn_fstore_3:
- STOREF (3);
- NEXT_INSN;
-
- insn_dstore_0:
- STORED (0);
- NEXT_INSN;
-
- insn_dstore_1:
- STORED (1);
- NEXT_INSN;
-
- insn_dstore_2:
- STORED (2);
- NEXT_INSN;
-
- insn_dstore_3:
- STORED (3);
- NEXT_INSN;
-
- insn_astore_0:
- STOREA(0);
- NEXT_INSN;
-
- insn_astore_1:
- STOREA(1);
- NEXT_INSN;
-
- insn_astore_2:
- STOREA(2);
- NEXT_INSN;
-
- insn_astore_3:
- STOREA(3);
- NEXT_INSN;
-
- insn_iastore:
- SAVE_PC;
- {
- jint value = POPI();
- jint index = POPI();
- jintArray arr = (jintArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_lastore:
- SAVE_PC;
- {
- jlong value = POPL();
- jint index = POPI();
- jlongArray arr = (jlongArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_fastore:
- SAVE_PC;
- {
- jfloat value = POPF();
- jint index = POPI();
- jfloatArray arr = (jfloatArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_dastore:
- SAVE_PC;
- {
- jdouble value = POPD();
- jint index = POPI();
- jdoubleArray arr = (jdoubleArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_aastore:
- SAVE_PC;
- {
- jobject value = POPA();
- jint index = POPI();
- jobjectArray arr = (jobjectArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- _Jv_CheckArrayStore (arr, value);
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_bastore:
- SAVE_PC;
- {
- jbyte value = (jbyte) POPI();
- jint index = POPI();
- jbyteArray arr = (jbyteArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_castore:
- SAVE_PC;
- {
- jchar value = (jchar) POPI();
- jint index = POPI();
- jcharArray arr = (jcharArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_sastore:
- SAVE_PC;
- {
- jshort value = (jshort) POPI();
- jint index = POPI();
- jshortArray arr = (jshortArray) POPA();
- NULLCHECK (arr);
- if (index < 0 || index >= arr->length)
- {
- _Jv_ThrowBadArrayIndex (index);
- }
- elements(arr)[index] = value;
- }
- NEXT_INSN;
-
- insn_pop:
- sp -= 1;
- NEXT_INSN;
-
- insn_pop2:
- sp -= 2;
- NEXT_INSN;
-
- insn_dup:
- sp[0] = sp[-1];
- sp += 1;
- NEXT_INSN;
-
- insn_dup_x1:
- dupx (sp, 1, 1); sp+=1;
- NEXT_INSN;
-
- insn_dup_x2:
- dupx (sp, 1, 2); sp+=1;
- NEXT_INSN;
-
- insn_dup2:
- sp[0] = sp[-2];
- sp[1] = sp[-1];
- sp += 2;
- NEXT_INSN;
-
- insn_dup2_x1:
- dupx (sp, 2, 1); sp+=2;
- NEXT_INSN;
-
- insn_dup2_x2:
- dupx (sp, 2, 2); sp+=2;
- NEXT_INSN;
-
- insn_swap:
- {
- jobject tmp1 = POPA();
- jobject tmp2 = POPA();
- PUSHA (tmp1);
- PUSHA (tmp2);
- }
- NEXT_INSN;
-
- insn_iadd:
- BINOPI(+);
- NEXT_INSN;
-
- insn_ladd:
- BINOPL(+);
- NEXT_INSN;
-
- insn_fadd:
- BINOPF(+);
- NEXT_INSN;
-
- insn_dadd:
- BINOPD(+);
- NEXT_INSN;
-
- insn_isub:
- BINOPI(-);
- NEXT_INSN;
-
- insn_lsub:
- BINOPL(-);
- NEXT_INSN;
-
- insn_fsub:
- BINOPF(-);
- NEXT_INSN;
-
- insn_dsub:
- BINOPD(-);
- NEXT_INSN;
-
- insn_imul:
- BINOPI(*);
- NEXT_INSN;
-
- insn_lmul:
- BINOPL(*);
- NEXT_INSN;
-
- insn_fmul:
- BINOPF(*);
- NEXT_INSN;
-
- insn_dmul:
- BINOPD(*);
- NEXT_INSN;
-
- insn_idiv:
- SAVE_PC;
- {
- jint value2 = POPI();
- jint value1 = POPI();
- jint res = _Jv_divI (value1, value2);
- PUSHI (res);
- }
- NEXT_INSN;
-
- insn_ldiv:
- SAVE_PC;
- {
- jlong value2 = POPL();
- jlong value1 = POPL();
- jlong res = _Jv_divJ (value1, value2);
- PUSHL (res);
- }
- NEXT_INSN;
-
- insn_fdiv:
- SAVE_PC;
- {
- jfloat value2 = POPF();
- jfloat value1 = POPF();
- jfloat res = value1 / value2;
- PUSHF (res);
- }
- NEXT_INSN;
-
- insn_ddiv:
- SAVE_PC;
- {
- jdouble value2 = POPD();
- jdouble value1 = POPD();
- jdouble res = value1 / value2;
- PUSHD (res);
- }
- NEXT_INSN;
-
- insn_irem:
- SAVE_PC;
- {
- jint value2 = POPI();
- jint value1 = POPI();
- jint res = _Jv_remI (value1, value2);
- PUSHI (res);
- }
- NEXT_INSN;
-
- insn_lrem:
- SAVE_PC;
- {
- jlong value2 = POPL();
- jlong value1 = POPL();
- jlong res = _Jv_remJ (value1, value2);
- PUSHL (res);
- }
- NEXT_INSN;
-
- insn_frem:
- SAVE_PC;
- {
- jfloat value2 = POPF();
- jfloat value1 = POPF();
- jfloat res = __ieee754_fmod (value1, value2);
- PUSHF (res);
- }
- NEXT_INSN;
-
- insn_drem:
- SAVE_PC;
- {
- jdouble value2 = POPD();
- jdouble value1 = POPD();
- jdouble res = __ieee754_fmod (value1, value2);
- PUSHD (res);
- }
- NEXT_INSN;
-
- insn_ineg:
- {
- jint value = POPI();
- PUSHI (value * -1);
- }
- NEXT_INSN;
-
- insn_lneg:
- {
- jlong value = POPL();
- PUSHL (value * -1);
- }
- NEXT_INSN;
-
- insn_fneg:
- {
- jfloat value = POPF();
- PUSHF (value * -1);
- }
- NEXT_INSN;
-
- insn_dneg:
- {
- jdouble value = POPD();
- PUSHD (value * -1);
- }
- NEXT_INSN;
-
- insn_ishl:
- {
- jint shift = (POPI() & 0x1f);
- jint value = POPI();
- PUSHI (value << shift);
- }
- NEXT_INSN;
-
- insn_lshl:
- {
- jint shift = (POPI() & 0x3f);
- jlong value = POPL();
- PUSHL (value << shift);
- }
- NEXT_INSN;
-
- insn_ishr:
- {
- jint shift = (POPI() & 0x1f);
- jint value = POPI();
- PUSHI (value >> shift);
- }
- NEXT_INSN;
-
- insn_lshr:
- {
- jint shift = (POPI() & 0x3f);
- jlong value = POPL();
- PUSHL (value >> shift);
- }
- NEXT_INSN;
-
- insn_iushr:
- {
- jint shift = (POPI() & 0x1f);
- unsigned long value = POPI();
- PUSHI ((jint) (value >> shift));
- }
- NEXT_INSN;
-
- insn_lushr:
- {
- jint shift = (POPI() & 0x3f);
- UINT64 value = (UINT64) POPL();
- PUSHL ((value >> shift));
- }
- NEXT_INSN;
-
- insn_iand:
- BINOPI (&);
- NEXT_INSN;
-
- insn_land:
- BINOPL (&);
- NEXT_INSN;
-
- insn_ior:
- BINOPI (|);
- NEXT_INSN;
-
- insn_lor:
- BINOPL (|);
- NEXT_INSN;
-
- insn_ixor:
- BINOPI (^);
- NEXT_INSN;
-
- insn_lxor:
- BINOPL (^);
- NEXT_INSN;
-
- insn_iinc:
- {
- jint index = get1u (pc++);
- jint amount = get1s (pc++);
- locals[index].i += amount;
- }
- NEXT_INSN;
-
- insn_i2l:
- {jlong value = POPI(); PUSHL (value);}
- NEXT_INSN;
-
- insn_i2f:
- {jfloat value = POPI(); PUSHF (value);}
- NEXT_INSN;
-
- insn_i2d:
- {jdouble value = POPI(); PUSHD (value);}
- NEXT_INSN;
-
- insn_l2i:
- {jint value = POPL(); PUSHI (value);}
- NEXT_INSN;
-
- insn_l2f:
- {jfloat value = POPL(); PUSHF (value);}
- NEXT_INSN;
-
- insn_l2d:
- {jdouble value = POPL(); PUSHD (value);}
- NEXT_INSN;
-
- insn_f2i:
- { jint value = (jint)POPF (); PUSHI(value); }
- NEXT_INSN;
-
- insn_f2l:
- { jlong value = (jlong)POPF (); PUSHL(value); }
- NEXT_INSN;
-
- insn_f2d:
- { jdouble value = POPF (); PUSHD(value); }
- NEXT_INSN;
-
- insn_d2i:
- { jint value = (jint)POPD (); PUSHI(value); }
- NEXT_INSN;
-
- insn_d2l:
- { jlong value = (jlong)POPD (); PUSHL(value); }
- NEXT_INSN;
-
- insn_d2f:
- { jfloat value = POPD (); PUSHF(value); }
- NEXT_INSN;
-
- insn_i2b:
- { jbyte value = POPI (); PUSHI(value); }
- NEXT_INSN;
-
- insn_i2c:
- { jchar value = POPI (); PUSHI(value); }
- NEXT_INSN;
-
- insn_i2s:
- { jshort value = POPI (); PUSHI(value); }
- NEXT_INSN;
-
- insn_lcmp:
- {
- jlong value2 = POPL ();
- jlong value1 = POPL ();
- if (value1 > value2)
- { PUSHI (1); }
- else if (value1 == value2)
- { PUSHI (0); }
- else
- { PUSHI (-1); }
- }
- NEXT_INSN;
-
- insn_fcmpl:
- insn_fcmpg:
- {
- jfloat value2 = POPF ();
- jfloat value1 = POPF ();
- if (value1 > value2)
- PUSHI (1);
- else if (value1 == value2)
- PUSHI (0);
- else if (value1 < value2)
- PUSHI (-1);
- else if ((*(pc-1)) == op_fcmpg)
- PUSHI (1);
- else
- PUSHI (-1);
- }
- NEXT_INSN;
-
- insn_dcmpl:
- insn_dcmpg:
- {
- jdouble value2 = POPD ();
- jdouble value1 = POPD ();
- if (value1 > value2)
- PUSHI (1);
- else if (value1 == value2)
- PUSHI (0);
- else if (value1 < value2)
- PUSHI (-1);
- else if ((*(pc-1)) == op_dcmpg)
- PUSHI (1);
- else
- PUSHI (-1);
- }
- NEXT_INSN;
-
- insn_ifeq:
- {
- jint offset = get2s (pc);
- if (POPI() == 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_ifne:
- {
- jint offset = get2s (pc);
- if (POPI() != 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_iflt:
- {
- jint offset = get2s (pc);
- if (POPI() < 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_ifge:
- {
- jint offset = get2s (pc);
- if (POPI() >= 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_ifgt:
- {
- jint offset = get2s (pc);
- if (POPI() > 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_ifle:
- {
- jint offset = get2s (pc);
- if (POPI() <= 0)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmpeq:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 == value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmpne:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 != value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmplt:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 < value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmpge:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 >= value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmpgt:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 > value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_icmple:
- {
- jint offset = get2s (pc);
- jint value2 = POPI();
- jint value1 = POPI();
- if (value1 <= value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_acmpeq:
- {
- jint offset = get2s (pc);
- jobject value2 = POPA();
- jobject value1 = POPA();
- if (value1 == value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_if_acmpne:
- {
- jint offset = get2s (pc);
- jobject value2 = POPA();
- jobject value1 = POPA();
- if (value1 != value2)
- pc = pc-1+offset;
- else
- pc = pc+2;
- }
- NEXT_INSN;
-
- insn_goto:
- {
- jint offset = get2s (pc);
- pc = pc-1+offset;
- }
- NEXT_INSN;
-
- insn_jsr:
- {
- unsigned char *base_pc = pc-1;
- jint offset = get2s (pc); pc += 2;
- PUSHA ((jobject)pc);
- pc = base_pc+offset;
- }
- NEXT_INSN;
-
- insn_ret:
- {
- jint index = get1u (pc);
- pc = (unsigned char*) PEEKA (index);
- }
- NEXT_INSN;
-
- insn_tableswitch:
- {
- unsigned char *base_pc = pc-1;
- int index = POPI();
-
- unsigned char* base = bytecode ();
- while ((pc-base) % 4 != 0)
- pc++;
-
- jint def = get4 (pc);
- jint low = get4 (pc+4);
- jint high = get4 (pc+8);
-
- if (index < low || index > high)
- pc = base_pc + def;
- else
- pc = base_pc + get4 (pc+4*(index-low+3));
- }
- NEXT_INSN;
-
- insn_lookupswitch:
- {
- unsigned char *base_pc = pc-1;
- int index = POPI();
-
- unsigned char* base = bytecode ();
- while ((pc-base) % 4 != 0)
- pc++;
-
- jint def = get4 (pc);
- jint npairs = get4 (pc+4);
-
- int max = npairs-1;
- int min = 0;
-
- // simple binary search...
- while (min < max)
- {
- int half = (min+max)/2;
- int match = get4 (pc+ 4*(2 + 2*half));
-
- if (index == match)
- min = max = half;
-
- else if (index < match)
- max = half-1;
-
- else
- min = half+1;
- }
-
- if (index == get4 (pc+ 4*(2 + 2*min)))
- pc = base_pc + get4 (pc+ 4*(2 + 2*min + 1));
- else
- pc = base_pc + def;
- }
- NEXT_INSN;
-
- /* on return, just save the sp and return to caller */
- insn_ireturn:
- insn_lreturn:
- insn_freturn:
- insn_dreturn:
- insn_areturn:
- insn_return:
- inv->sp = sp;
- return;
-
- insn_getstatic:
- SAVE_PC;
- {
- jint fieldref_index = get2u (pc); pc += 2;
- _Jv_ResolvePoolEntry (defining_class, fieldref_index);
- _Jv_Field *field = pool_data[fieldref_index].field;
-
- if ((field->flags & Modifier::STATIC) == 0)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("field no longer static"));
-
- jclass type = field->type;
-
- if (type->isPrimitive ())
- {
- switch (type->size_in_bytes)
- {
- case 1:
- PUSHI (*(jbyte*) (field->u.addr));
- break;
-
- case 2:
- if (type == JvPrimClass (char))
- PUSHI(*(jchar*) (field->u.addr));
- else
- PUSHI(*(jshort*) (field->u.addr));
- break;
-
- case 4:
- PUSHI(*(jint*) (field->u.addr));
- break;
-
- case 8:
- PUSHL(*(jlong*) (field->u.addr));
- break;
- }
- }
- else
- {
- PUSHA(*(jobject*) (field->u.addr));
- }
- }
- NEXT_INSN;
-
- insn_getfield:
- SAVE_PC;
- {
- jint fieldref_index = get2u (pc); pc += 2;
- _Jv_ResolvePoolEntry (defining_class, fieldref_index);
- _Jv_Field *field = pool_data[fieldref_index].field;
-
- if ((field->flags & Modifier::STATIC) != 0)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("field is static"));
-
- jclass type = field->type;
- jint field_offset = field->u.boffset;
- if (field_offset > 0xffff)
- JvThrow (new java::lang::VirtualMachineError);
-
- jobject obj = POPA();
- NULLCHECK(obj);
-
- if (type->isPrimitive ())
- {
- switch (type->size_in_bytes)
- {
- case 1:
- PUSHI (*(jbyte*) ((char*)obj + field_offset));
- break;
-
- case 2:
- if (type == JvPrimClass (char))
- PUSHI (*(jchar*) ((char*)obj + field_offset));
- else
- PUSHI (*(jshort*) ((char*)obj + field_offset));
- break;
-
- case 4:
- PUSHI (*(jint*) ((char*)obj + field_offset));
- break;
-
- case 8:
- PUSHL(*(jlong*) ((char*)obj + field_offset));
- break;
- }
- }
- else
- {
- PUSHA(*(jobject*) ((char*)obj + field_offset));
- }
- }
- NEXT_INSN;
-
- insn_putstatic:
- SAVE_PC;
- {
- jint fieldref_index = get2u (pc); pc += 2;
- _Jv_ResolvePoolEntry (defining_class, fieldref_index);
- _Jv_Field *field = pool_data[fieldref_index].field;
-
- jclass type = field->type;
-
- // ResolvePoolEntry cannot check this
- if ((field->flags & Modifier::STATIC) == 0)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("field no longer static"));
-
- if (type->isPrimitive ())
- {
- switch (type->size_in_bytes)
- {
- case 1:
- {
- jint value = POPI();
- *(jbyte*) (field->u.addr) = value;
- break;
- }
-
- case 2:
- {
- jint value = POPI();
- *(jchar*) (field->u.addr) = value;
- break;
- }
-
- case 4:
- {
- jint value = POPI();
- *(jint*) (field->u.addr) = value;
- break;
- }
-
- case 8:
- {
- jlong value = POPL();
- *(jlong*) (field->u.addr) = value;
- break;
- }
- }
- }
- else
- {
- jobject value = POPA();
- *(jobject*) (field->u.addr) = value;
- }
- }
- NEXT_INSN;
-
-
- insn_putfield:
- SAVE_PC;
- {
- jint fieldref_index = get2u (pc); pc += 2;
- _Jv_ResolvePoolEntry (defining_class, fieldref_index);
- _Jv_Field *field = pool_data[fieldref_index].field;
-
- jclass type = field->type;
-
- if ((field->flags & Modifier::STATIC) != 0)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("field is static"));
-
- jint field_offset = field->u.boffset;
- if (field_offset > 0xffff)
- JvThrow (new java::lang::VirtualMachineError);
-
- if (type->isPrimitive ())
- {
- switch (type->size_in_bytes)
- {
- case 1:
- {
- jint value = POPI();
- jobject obj = POPA();
- NULLCHECK(obj);
- *(jbyte*) ((char*)obj + field_offset) = value;
- break;
- }
-
- case 2:
- {
- jint value = POPI();
- jobject obj = POPA();
- NULLCHECK(obj);
- *(jchar*) ((char*)obj + field_offset) = value;
- break;
- }
-
- case 4:
- {
- jint value = POPI();
- jobject obj = POPA();
- NULLCHECK(obj);
- *(jint*) ((char*)obj + field_offset) = value;
- break;
- }
-
- case 8:
- {
- jlong value = POPL();
- jobject obj = POPA();
- NULLCHECK(obj);
- *(jlong*) ((char*)obj + field_offset) = value;
- break;
- }
- }
- }
- else
- {
- jobject value = POPA();
- jobject obj = POPA();
- NULLCHECK(obj);
- *(jobject*) ((char*)obj + field_offset) = value;
- }
- }
- NEXT_INSN;
-
- insn_invokespecial:
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
-
- rmeth = (_Jv_ResolvePoolEntry (defining_class, index)).rmethod;
-
- sp -= rmeth->stack_item_count;
-
- NULLCHECK (sp[0].o);
-
- fun = (void (*)()) rmeth->method->ncode;
- }
- goto perform_invoke;
-
- insn_invokestatic:
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
-
- rmeth = (_Jv_ResolvePoolEntry (defining_class, index)).rmethod;
-
- sp -= rmeth->stack_item_count;
-
- _Jv_InitClass (rmeth->klass);
- fun = (void (*)()) rmeth->method->ncode;
- }
- goto perform_invoke;
-
- insn_invokeinterface:
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
-
- // invokeinterface has two unused bytes...
- pc += 2;
-
- rmeth = (_Jv_ResolvePoolEntry (defining_class, index)).rmethod;
-
- sp -= rmeth->stack_item_count;
-
- jobject rcv = sp[0].o;
-
- NULLCHECK (rcv);
-
- fun = (void (*)())
- _Jv_LookupInterfaceMethod (rcv->getClass (),
- rmeth->method->name,
- rmeth->method->signature);
- }
- goto perform_invoke;
-
-
- insn_new:
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
- jclass klass = (_Jv_ResolvePoolEntry (defining_class, index)).clazz;
- _Jv_InitClass (klass);
- jobject res = _Jv_AllocObject (klass, klass->size_in_bytes);
- PUSHA (res);
- }
- NEXT_INSN;
-
- insn_newarray:
- SAVE_PC;
- {
- int atype = get1u (pc++);
- int size = POPI();
- jobject result = _Jv_NewArray (atype, size);
- PUSHA (result);
- }
- NEXT_INSN;
-
- insn_anewarray:
- SAVE_PC;
- {
- int index = get2u (pc); pc += 2;
- jclass klass = (_Jv_ResolvePoolEntry (defining_class, index)).clazz;
- int size = POPI();
- _Jv_InitClass (klass);
- jobject result = _Jv_NewObjectArray (size, klass, 0);
- PUSHA (result);
- }
- NEXT_INSN;
-
- insn_arraylength:
- SAVE_PC;
- {
- __JArray *arr = (__JArray*)POPA();
- PUSHI (arr->length);
- }
- NEXT_INSN;
-
- insn_athrow:
- SAVE_PC;
- {
- jobject value = POPA();
- JvThrow (value);
- }
- NEXT_INSN;
-
- insn_checkcast:
- SAVE_PC;
- {
- jobject value = POPA();
- jint index = get2u (pc); pc += 2;
- jclass to = (_Jv_ResolvePoolEntry (defining_class, index)).clazz;
-
- if (value != NULL && ! to->isInstance (value))
- {
- JvThrow (new java::lang::ClassCastException
- (to->getName()));
- }
-
- PUSHA (value);
- }
- NEXT_INSN;
-
- insn_instanceof:
- SAVE_PC;
- {
- jobject value = POPA();
- jint index = get2u (pc); pc += 2;
- jclass to = (_Jv_ResolvePoolEntry (defining_class, index)).clazz;
- PUSHI (to->isInstance (value));
- }
- NEXT_INSN;
-
- insn_monitorenter:
- SAVE_PC;
- {
- jobject value = POPA();
- NULLCHECK(value);
- _Jv_MonitorEnter (value);
- }
- NEXT_INSN;
-
- insn_monitorexit:
- SAVE_PC;
- {
- jobject value = POPA();
- NULLCHECK(value);
- _Jv_MonitorExit (value);
- }
- NEXT_INSN;
-
- insn_ifnull:
- {
- unsigned char* base_pc = pc-1;
- jint offset = get2s (pc); pc += 2;
- jobject val = POPA();
- if (val == NULL)
- pc = base_pc+offset;
- }
- NEXT_INSN;
-
- insn_ifnonnull:
- {
- unsigned char* base_pc = pc-1;
- jint offset = get2s (pc); pc += 2;
- jobject val = POPA();
- if (val != NULL)
- pc = base_pc+offset;
- }
- NEXT_INSN;
-
- insn_wide:
- SAVE_PC;
- {
- jint the_mod_op = get1u (pc++);
- jint wide = get2u (pc); pc += 2;
-
- switch (the_mod_op)
- {
- case op_istore:
- STOREI (wide);
- NEXT_INSN;
-
- case op_fstore:
- STOREF (wide);
- NEXT_INSN;
-
- case op_astore:
- STOREA (wide);
- NEXT_INSN;
-
- case op_lload:
- LOADL (wide);
- NEXT_INSN;
-
- case op_dload:
- LOADD (wide);
- NEXT_INSN;
-
- case op_iload:
- LOADI (wide);
- NEXT_INSN;
-
- case op_aload:
- LOADA (wide);
- NEXT_INSN;
-
- case op_lstore:
- STOREL (wide);
- NEXT_INSN;
-
- case op_dstore:
- STORED (wide);
- NEXT_INSN;
-
- case op_ret:
- pc = (unsigned char*) PEEKA (wide);
- NEXT_INSN;
-
- case op_iinc:
- {
- jint amount = get2s (pc); pc += 2;
- jint value = PEEKI (wide);
- POKEI (wide, value+amount);
- }
- NEXT_INSN;
-
- default:
- throw_internal_error ("illegal bytecode modified by wide");
- }
-
- }
-
- insn_multianewarray:
- SAVE_PC;
- {
- int kind_index = get2u (pc); pc += 2;
- int dim = get1u (pc); pc += 1;
-
- jclass type
- = (_Jv_ResolvePoolEntry (defining_class, kind_index)).clazz;
- _Jv_InitClass (type);
- jint *sizes = (jint*) alloca (sizeof (jint)*dim);
-
- for (int i = dim - 1; i >= 0; i--)
- {
- sizes[i] = POPI ();
- }
-
- jobject res = _Jv_NewMultiArray (type,dim, sizes);
-
- PUSHA (res);
- }
- NEXT_INSN;
-
- insn_goto_w:
- {
- unsigned char* base_pc = pc-1;
- int offset = get4 (pc); pc += 4;
- pc = base_pc+offset;
- }
- NEXT_INSN;
-
- insn_jsr_w:
- {
- unsigned char* base_pc = pc-1;
- int offset = get4 (pc); pc += 4;
- PUSHA((jobject)pc);
- pc = base_pc+offset;
- }
- NEXT_INSN;
-}
-
-
-static void
-throw_internal_error (char *msg)
-{
- JvThrow (new java::lang::InternalError (JvNewStringLatin1 (msg)));
-}
-
-static void
-throw_incompatible_class_change_error (jstring msg)
-{
- JvThrow (new java::lang::IncompatibleClassChangeError (msg));
-}
-
-#ifndef HANDLE_SEGV
-static java::lang::NullPointerException *null_pointer_exc;
-static void
-throw_null_pointer_exception ()
-{
- if (null_pointer_exc == NULL)
- null_pointer_exc = new java::lang::NullPointerException;
-
- JvThrow (null_pointer_exc);
-}
-#endif
-
-#endif // INTERPRETER
diff --git a/libjava/java/applet/Applet.java b/libjava/java/applet/Applet.java
deleted file mode 100644
index fe962394bc9..00000000000
--- a/libjava/java/applet/Applet.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Applet.java -- Java base applet class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.applet;
-
-import java.awt.Dimension;
-import java.awt.Image;
-import java.net.URL;
-import java.util.Locale;
-
-/**
- * This is the base applet class. An applet is a Java program that
- * runs inside a web browser or other applet viewer in a restricted
- * environment.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Applet extends java.awt.Panel implements java.io.Serializable
-{
- // The applet stub for this applet
- private AppletStub stub;
-
- /**
- * Default constructor for subclasses.
- */
- public Applet() {}
-
- /**
- * Returns the URL of the document this applet is embedded in.
- *
- * @return The URL of the document this applet is embedded in.
- */
- public URL getDocumentBase()
- {
- return (stub.getDocumentBase ());
- }
-
- /**
- * Returns the URL of the code base for this applet.
- *
- * @return The URL of the code base for this applet.
- */
- public URL getCodeBase()
- {
- return (stub.getCodeBase ());
- }
-
- /**
- * Returns the value of the specified parameter that was specified in
- * the &lt;APPLET&gt; tag for this applet.
- *
- * @param name The parameter name.
- *
- * @param value The parameter value, or <code>null</code> if the parameter
- * does not exist.
- */
- public String getParameter(String name)
- {
- return (stub.getParameter (name));
- }
-
- /**
- * Returns the applet context for this applet.
- *
- * @return The applet context for this applet.
- */
- public AppletContext getAppletContext()
- {
- return (stub.getAppletContext ());
- }
-
- /**
- * Tests whether or not this applet is currently active.
- *
- * @return <code>true</code> if this applet is active, <code>false</code>
- * otherwise.
- */
- public boolean isActive()
- {
- return (stub.isActive ());
- }
-
- /**
- * Requests that the applet window for this applet be resized.
- *
- * @param width The new width in pixels.
- * @param height The new height in pixels.
- */
- public void resize(int width, int height)
- {
- stub.appletResize (width, height);
- }
-
- /**
- * Requests that the applet window for this applet be resized.
- *
- * @param dim The <code>Dimension</code> object with the requested
- * width and height.
- */
- public void resize(Dimension dim)
- {
- resize (dim.width, dim.height);
- }
-
- /**
- * Returns an audio clip from the specified URL.
- *
- * @param url The URL of the audio clip.
- *
- * @return The retrieved audio clip.
- */
- public AudioClip getAudioClip(URL url)
- {
- return (getAppletContext ().getAudioClip (url));
- }
-
- /**
- * Returns an audio clip from the specified URL and name
- *
- * @param url The base URL of the audio clip.
- * @param name The name of the clip relative to the URL.
- *
- * @return The retrieved audio clip.
- */
- public AudioClip getAudioClip(URL url, String name)
- {
- try
- {
- return (getAppletContext ().getAudioClip (new URL (url.toExternalForm()
- + name)));
- }
- catch(Exception e)
- {
- return (getAudioClip (url));
- }
- }
-
- /**
- * Loads and plays the audio clip pointed to by the specified URL.
- *
- * @param The URL of the audio clip.
- */
- public void play (URL url)
- {
- getAudioClip (url).play ();
- }
-
- /**
- * Loads and plays the audio clip pointed to by the specified URL.
- *
- * @param The base URL of the audio clip.
- * @param name The name of the audio clip relative to the URL.
- */
- public void play (URL url, String name)
- {
- getAudioClip (url, name).play ();
- }
-
- /**
- * Returns an image from the specified URL. Note that the image is not
- * actually retrieved until the applet attempts to display it, so this
- * method returns immediately.
- *
- * @param url The URL of the image.
- *
- * @return The retrieved image.
- */
- public Image getImage(URL url)
- {
- return (getAppletContext ().getImage (url));
- }
-
- /**
- * Returns an image from the specified URL. Note that the image is not
- * actually retrieved until the applet attempts to display it, so this
- * method returns immediately.
- *
- * @param url The base URL of the image.
- * @param name The name of the image relative to the URL.
- *
- * @return The retrieved image.
- */
- public Image getImage(URL url, String name)
- {
- try
- {
- return (getAppletContext ().getImage (new URL (url.toExternalForm()
- + name)));
- }
- catch(Exception e)
- {
- return (getImage (url));
- }
- }
-
- /**
- * Returns the locale for this applet, if it has been set. If no applet
- * specific locale has been set, the default locale is returned.
- *
- * @return The locale for this applet.
- */
- public Locale getLocale()
- {
- return (super.getLocale ());
- }
-
- /**
- * Returns a descriptive string with applet defined information. The
- * implementation in this class returns <code>null</code>. Applets who
- * wish to return this information should override.
- *
- * @return A string describing the applet.
- */
- public String getAppletInfo()
- {
- return (null);
- }
-
- /**
- * Returns a list of parameters this applet supports. Each element of
- * the array is a list of three strings with the name of the parameter,
- * the data type or valid values, and a description. This method is
- * optional and the default implementation returns <code>null</code>.
- *
- * @return The list of parameters supported by this applet.
- */
- public String[][] getParameterInfo()
- {
- return (null);
- }
-
- /**
- * This method is called when the applet is first loaded. The default
- * implementation does nothing. Applets that wish to do one time
- * initialization should override.
- */
- public void init() {}
-
- /**
- * This method is called when the applet is being unloaded. The default
- * implementation does nothing. Applets that need to clean up resources
- * on exit should override.
- */
- public void destroy() {}
-
- /**
- * This method is called when the applet should start running. This is
- * normally each time a web page containing it is loaded. The default
- * implemention does nothing. Subclasses should override.
- */
- public void start() {}
-
- /**
- * This method is called when the applet should stop running. This is
- * normally when the next web page is loaded. The default implementation
- * does nothing.
- */
- public void stop() {}
-
- /**
- * The browser calls this method to set the applet's stub, which is the
- * low level interface to the browser.
- *
- * @param stub The applet stub for this applet.
- */
- public final void setStub (AppletStub stub)
- {
- this.stub = stub;
- }
-
-} // class Applet
-
diff --git a/libjava/java/applet/AppletContext.java b/libjava/java/applet/AppletContext.java
deleted file mode 100644
index e8c2c935b39..00000000000
--- a/libjava/java/applet/AppletContext.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/* AppletContext.java -- Access the applet's runtime environment.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.applet;
-
-import java.awt.Image;
-import java.net.URL;
-import java.util.Enumeration;
-
-/**
- * This interface allows an applet access to the browser to retrieve
- * additional data files and display documents. It also allows the
- * applet to find out other applets in the same document.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface AppletContext
-{
- /**
- * Returns an audio clip from the specified URL.
- *
- * @param url The URL of the audio clip.
- *
- * @return The retrieved audio clip // FIXME: What happens on error?
- */
- AudioClip getAudioClip(URL url);
-
- /**
- * Returns an image from the specified URL. Note that the image is not
- * actually retrieved until the applet attempts to display it, so this
- * method returns immediately.
- *
- * @param url The URL of the image.
- *
- * @return The retrieved image. // FIXME: What happens on eror?
- */
- Image getImage(URL url);
-
- /**
- * Returns the applet in the document for this object that has the
- * specified name.
- *
- * @param name The applet name.
- *
- * @return The requested applet, or <code>null</code> if an applet with
- * the requested name cannot be found.
- */
- Applet getApplet(String name);
-
- /**
- * Returns a list of all the applets in the document for this object.
- *
- * @return A list of all the applets in the document for this object.
- */
- Enumeration getApplets();
-
- /**
- * Displays the web page pointed to by the specified URL in the window
- * for this object. This page replaces the document that is currently
- * there.
- *
- * @param url The URL of the web page to load.
- */
- void showDocument(URL url);
-
- /**
- * Displays the web page pointed to be the sepcified URL in the window
- * with the specified name. The standard names "_top", "_blank",
- * "_parent", and "_self" are allowed.
- *
- * @param url The URL of the web page to load.
- * @param target The target window.
- */
- void showDocument(URL url, String target);
-
- /**
- * Displays the specified message in the status window if that window
- * exists.
- *
- * @param message The status message.
- */
- void showStatus(String message);
-
-} // interface AppletContext
diff --git a/libjava/java/applet/AppletStub.java b/libjava/java/applet/AppletStub.java
deleted file mode 100644
index 26842647369..00000000000
--- a/libjava/java/applet/AppletStub.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* AppletStub.java -- Low level interface to the browser.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.applet;
-
-import java.net.URL;
-
-/**
- * This interface is the low level interface between the applet and the
- * browser.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface AppletStub
-{
- /**
- * Returns the URL of the document this applet is embedded in.
- *
- * @return The URL of the document this applet is embedded in.
- */
- URL getDocumentBase();
-
- /**
- * Returns the URL of the code base for this applet.
- *
- * @return The URL of the code base for this applet.
- */
- URL getCodeBase();
-
- /**
- * Returns the value of the specified parameter that was specified in
- * the &lt;APPLET&gt; tag for this applet.
- *
- * @param name The parameter name.
- *
- * @param value The parameter value, or <code>null</code> if the parameter
- * does not exist.
- */
- String getParameter(String name);
-
- /**
- * Returns the applet context for this applet.
- *
- * @return The applet context for this applet.
- */
- AppletContext getAppletContext();
-
- /**
- * Tests whether or not this applet is currently active.
- *
- * @return <code>true</code> if this applet is active, <code>false</code>
- * otherwise.
- */
- boolean isActive();
-
- /**
- * Requests that the applet window for this applet be resized.
- *
- * @param width The new width in pixels.
- * @param height The new height in pixels.
- */
- void appletResize(int width, int height);
-
-} // interface AppletStub
-
diff --git a/libjava/java/applet/AudioClip.java b/libjava/java/applet/AudioClip.java
deleted file mode 100644
index add9748c090..00000000000
--- a/libjava/java/applet/AudioClip.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* AudioClip.java -- Play an audio clip.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.applet;
-
-/**
- * This interface provides a simple mechanism for playing audio clips.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface AudioClip
-{
- /**
- * Plays the audio clip starting from the beginning.
- */
- void play();
-
- /**
- * Stops playing this audio clip. There is no mechanism for restarting
- * at the point where the clip is stopped.
- */
- void stop();
-
- /**
- * Plays this audio clip in a continuous loop.
- */
- void loop();
-
-} // interface AudioClip
diff --git a/libjava/java/awt/AWTError.java b/libjava/java/awt/AWTError.java
deleted file mode 100644
index f2761771664..00000000000
--- a/libjava/java/awt/AWTError.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-
-public class AWTError extends IllegalStateException
-{
- public AWTError (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/awt/AWTEvent.java b/libjava/java/awt/AWTEvent.java
deleted file mode 100644
index bb09f0cab98..00000000000
--- a/libjava/java/awt/AWTEvent.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Written using on-line Java 2 Platform Standard Edition v1.3 API
- * Specification, as well as "The Java Class Libraries", 2nd edition
- * (Addison-Wesley, 1998).
- * Status: Believed complete and correct, except for the java.awt.Event
- * compatibility constructor.
- */
-
-/**
- * AWTEvent is the root event class for all AWT events in the JDK 1.1 event
- * model. It supercedes the Event class from JDK 1.0.
- */
-
-public abstract class AWTEvent extends java.util.EventObject
-{
- protected boolean consumed;
- protected int id;
-
- /* Event selection masks */
- public static final long COMPONENT_EVENT_MASK = 1 << 0,
- CONTAINER_EVENT_MASK = 1 << 1,
- FOCUS_EVENT_MASK = 1 << 2,
- KEY_EVENT_MASK = 1 << 3,
- MOUSE_EVENT_MASK = 1 << 4,
- MOUSE_MOTION_EVENT_MASK = 1 << 5,
- WINDOW_EVENT_MASK = 1 << 6,
- ACTION_EVENT_MASK = 1 << 7,
- ADJUSTMENT_EVENT_MASK = 1 << 8,
- ITEM_EVENT_MASK = 1 << 9,
- TEXT_EVENT_MASK = 1 << 10,
- INPUT_METHOD_EVENT_MASK = 1 << 11;
-
- /* Additional event selection masks from JDK 1.3 javadocs */
- public static final long PAINT_EVENT_MASK = 1 << 13,
- INVOCATION_EVENT_MASK = 1 << 14,
- HIERARCHY_EVENT_MASK = 1 << 15,
- HIERARCHY_BOUNDS_EVENT_MASK = 1 << 16;
-
- public static final int RESERVED_ID_MAX = 0x7cf;
-
- public AWTEvent(Event event)
- {
- // FIXME??
- super(event.target);
- this.id = event.id;
- }
-
- public AWTEvent(Object source, int id)
- {
- super(source);
- this.id = id;
- }
-
- public int getID()
- {
- return id;
- }
-
- public String paramString ()
- {
- return "";
- }
-
- public String toString ()
- {
- return getClass().getName() + "[" + paramString() + "] on " + source;
- }
-
- protected void consume()
- {
- consumed = true;
- }
-
- protected boolean isConsumed()
- {
- return consumed;
- }
-}
diff --git a/libjava/java/awt/AWTEventMulticaster.java b/libjava/java/awt/AWTEventMulticaster.java
deleted file mode 100644
index 560ebbe3b66..00000000000
--- a/libjava/java/awt/AWTEventMulticaster.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.event.*;
-import java.util.EventListener;
-import java.io.ObjectOutputStream;
-
-/* Written using on-line Java 2 Platform Standard Edition v1.3 API
- * Specification, as well as "The Java Class Libraries", 2nd edition
- * (Addison-Wesley, 1998).
- * Status: Believed complete and correct to J2SE 1.3, except for
- * serialization support methods, save() and saveInternal(), which are
- * stubbed.
- */
-
-/**
- * Convienience class for thread-safe multicasting of AWT events,
- * without synchronization.
- *
- * @author Bryce McKinlay
- */
-
-public class AWTEventMulticaster implements ComponentListener,
- ContainerListener, FocusListener, KeyListener, MouseListener,
- MouseMotionListener, WindowListener, ActionListener, ItemListener,
- AdjustmentListener, TextListener, InputMethodListener, HierarchyListener,
- HierarchyBoundsListener
-{
- protected final EventListener a, b;
-
- protected AWTEventMulticaster(EventListener a,
- EventListener b)
- {
- this.a = a;
- this.b = b;
- }
-
- protected static EventListener addInternal(EventListener a, EventListener b)
- {
- if (a == null)
- return b;
- else if (b == null)
- return a;
- else return new AWTEventMulticaster(a, b);
- }
-
- protected static EventListener removeInternal(EventListener l,
- EventListener oldl)
- {
- if (l == oldl)
- return null;
- else if (l instanceof AWTEventMulticaster)
- {
- AWTEventMulticaster mc = (AWTEventMulticaster) l;
- return mc.remove(oldl);
- }
- return l;
- }
-
- /* Remove oldl from this multicaster. */
- protected EventListener remove(EventListener oldl)
- {
- // If oldl is an immediate child, return the other child.
- if (a == oldl)
- return b;
- if (b == oldl)
- return a;
-
- // If a and/or b are Multicaster's, search them recursivly.
- if (a instanceof AWTEventMulticaster)
- {
- AWTEventMulticaster mc = (AWTEventMulticaster) a;
- EventListener newa = mc.remove(oldl);
- if (newa != a)
- return new AWTEventMulticaster (newa, b);
- }
- if (b instanceof AWTEventMulticaster)
- {
- AWTEventMulticaster mc = (AWTEventMulticaster) a;
- EventListener newb = mc.remove(oldl);
- if (newb != b)
- return new AWTEventMulticaster (a, newb);
- }
-
- // oldl was not found.
- return this;
- }
-
- public static ActionListener add(ActionListener a, ActionListener b)
- {
- return (ActionListener) addInternal(a, b);
- }
-
- public static AdjustmentListener add(AdjustmentListener a,
- AdjustmentListener b)
- {
- return (AdjustmentListener) addInternal(a, b);
- }
-
- public static ComponentListener add(ComponentListener a, ComponentListener b)
- {
- return (ComponentListener) addInternal(a, b);
- }
-
- public static ContainerListener add(ContainerListener a, ContainerListener b)
- {
- return (ContainerListener) addInternal(a, b);
- }
-
- public static FocusListener add(FocusListener a, FocusListener b)
- {
- return (FocusListener) addInternal(a, b);
- }
-
- public static HierarchyBoundsListener add(HierarchyBoundsListener a,
- HierarchyBoundsListener b)
- {
- return (HierarchyBoundsListener) addInternal(a, b);
- }
-
- public static HierarchyListener add(HierarchyListener a, HierarchyListener b)
- {
- return (HierarchyListener) addInternal(a, b);
- }
-
- public static InputMethodListener add(InputMethodListener a,
- InputMethodListener b)
- {
- return (InputMethodListener) addInternal(a, b);
- }
-
- public static ItemListener add(ItemListener a, ItemListener b)
- {
- return (ItemListener) addInternal(a, b);
- }
-
- public static KeyListener add(KeyListener a, KeyListener b)
- {
- return (KeyListener) addInternal(a, b);
- }
-
- public static MouseListener add(MouseListener a, MouseListener b)
- {
- return (MouseListener) addInternal(a, b);
- }
-
- public static MouseMotionListener add(MouseMotionListener a,
- MouseMotionListener b)
- {
- return (MouseMotionListener) addInternal(a, b);
- }
-
- public static TextListener add(TextListener a, TextListener b)
- {
- return (TextListener) addInternal(a, b);
- }
-
- public static WindowListener add(WindowListener a, WindowListener b)
- {
- return (WindowListener) addInternal(a, b);
- }
-
- public static ActionListener remove(ActionListener l, ActionListener oldl)
- {
- return (ActionListener) removeInternal(l, oldl);
- }
-
- public static AdjustmentListener remove(AdjustmentListener l,
- AdjustmentListener oldl)
- {
- return (AdjustmentListener) removeInternal(l, oldl);
- }
-
- public static ComponentListener remove(ComponentListener l,
- ComponentListener oldl)
- {
- return (ComponentListener) removeInternal(l, oldl);
- }
-
- public static ContainerListener remove(ContainerListener l,
- ContainerListener oldl)
- {
- return (ContainerListener) removeInternal(l, oldl);
- }
-
- public static FocusListener remove(FocusListener l, FocusListener oldl)
- {
- return (FocusListener) removeInternal(l, oldl);
- }
-
- public static HierarchyBoundsListener remove(HierarchyBoundsListener l,
- HierarchyBoundsListener oldl)
- {
- return (HierarchyBoundsListener) removeInternal(l, oldl);
- }
-
- public static HierarchyListener remove(HierarchyListener l,
- HierarchyListener oldl)
- {
- return (HierarchyListener) removeInternal(l, oldl);
- }
-
- public static InputMethodListener remove(InputMethodListener l,
- InputMethodListener oldl)
- {
- return (InputMethodListener) removeInternal(l, oldl);
- }
-
- public static ItemListener remove(ItemListener l, ItemListener oldl)
- {
- return (ItemListener) removeInternal(l, oldl);
- }
-
- public static KeyListener remove(KeyListener l, KeyListener oldl)
- {
- return (KeyListener) removeInternal(l, oldl);
- }
-
- public static MouseListener remove(MouseListener l, MouseListener oldl)
- {
- return (MouseListener) removeInternal(l, oldl);
- }
-
- public static MouseMotionListener remove(MouseMotionListener l,
- MouseMotionListener oldl)
- {
- return (MouseMotionListener) removeInternal(l, oldl);
- }
-
- public static TextListener remove(TextListener l, TextListener oldl)
- {
- return (TextListener) removeInternal(l, oldl);
- }
-
- public static WindowListener remove(WindowListener l, WindowListener oldl)
- {
- return (WindowListener) removeInternal(l, oldl);
- }
-
- public void actionPerformed(ActionEvent e)
- {
- ((ActionListener) a).actionPerformed(e);
- ((ActionListener) b).actionPerformed(e);
- }
-
- public void adjustmentValueChanged(AdjustmentEvent e)
- {
- ((AdjustmentListener) a).adjustmentValueChanged(e);
- ((AdjustmentListener) b).adjustmentValueChanged(e);
- }
-
- public void componentHidden(ComponentEvent e)
- {
- ((ComponentListener) a).componentHidden(e);
- ((ComponentListener) b).componentHidden(e);
- }
-
- public void componentMoved(ComponentEvent e)
- {
- ((ComponentListener) a).componentMoved(e);
- ((ComponentListener) b).componentMoved(e);
- }
-
- public void componentResized(ComponentEvent e)
- {
- ((ComponentListener) a).componentResized(e);
- ((ComponentListener) b).componentResized(e);
- }
-
- public void componentShown(ComponentEvent e)
- {
- ((ComponentListener) a).componentShown(e);
- ((ComponentListener) b).componentShown(e);
- }
-
- public void componentAdded(ContainerEvent e)
- {
- ((ContainerListener) a).componentAdded(e);
- ((ContainerListener) b).componentAdded(e);
- }
-
- public void componentRemoved(ContainerEvent e)
- {
- ((ContainerListener) a).componentRemoved(e);
- ((ContainerListener) b).componentRemoved(e);
- }
-
- public void focusGained(FocusEvent e)
- {
- ((FocusListener) a).focusGained(e);
- ((FocusListener) b).focusGained(e);
- }
-
- public void focusLost(FocusEvent e)
- {
- ((FocusListener) a).focusLost(e);
- ((FocusListener) b).focusLost(e);
- }
-
-
- public void ancestorMoved(HierarchyEvent e)
- {
- ((HierarchyBoundsListener) a).ancestorMoved(e);
- ((HierarchyBoundsListener) b).ancestorMoved(e);
- }
-
- public void ancestorResized(HierarchyEvent e)
- {
- ((HierarchyBoundsListener) a).ancestorResized(e);
- ((HierarchyBoundsListener) b).ancestorResized(e);
- }
-
- public void hierarchyChanged(HierarchyEvent e)
- {
- ((HierarchyListener) a).hierarchyChanged(e);
- ((HierarchyListener) b).hierarchyChanged(e);
- }
-
- public void caretPositionChanged(InputMethodEvent e)
- {
- ((InputMethodListener) a).caretPositionChanged(e);
- ((InputMethodListener) b).caretPositionChanged(e);
- }
-
- public void inputMethodTextChanged(InputMethodEvent e)
- {
- ((InputMethodListener) a).inputMethodTextChanged(e);
- ((InputMethodListener) b).inputMethodTextChanged(e);
- }
-
- public void itemStateChanged(ItemEvent e)
- {
- ((ItemListener) a).itemStateChanged(e);
- ((ItemListener) b).itemStateChanged(e);
- }
-
- public void keyPressed(KeyEvent e)
- {
- ((KeyListener) a).keyPressed(e);
- ((KeyListener) b).keyPressed(e);
- }
-
- public void keyReleased(KeyEvent e)
- {
- ((KeyListener) a).keyReleased(e);
- ((KeyListener) b).keyReleased(e);
- }
-
- public void keyTyped(KeyEvent e)
- {
- ((KeyListener) a).keyTyped(e);
- ((KeyListener) b).keyTyped(e);
- }
-
- public void mouseClicked(MouseEvent e)
- {
- ((MouseListener) a).mouseClicked(e);
- ((MouseListener) b).mouseClicked(e);
- }
-
-
- public void mouseEntered(MouseEvent e)
- {
- ((MouseListener) a).mouseEntered(e);
- ((MouseListener) b).mouseEntered(e);
- }
-
- public void mouseExited(MouseEvent e)
- {
- ((MouseListener) a).mouseExited(e);
- ((MouseListener) b).mouseExited(e);
- }
-
- public void mousePressed(MouseEvent e)
- {
- ((MouseListener) a).mousePressed(e);
- ((MouseListener) b).mousePressed(e);
- }
-
- public void mouseReleased(MouseEvent e)
- {
- ((MouseListener) a).mouseReleased(e);
- ((MouseListener) b).mouseReleased(e);
- }
-
- public void mouseDragged(MouseEvent e)
- {
- ((MouseMotionListener) a).mouseDragged(e);
- ((MouseMotionListener) b).mouseDragged(e);
- }
-
- public void mouseMoved(MouseEvent e)
- {
- ((MouseMotionListener) a).mouseMoved(e);
- ((MouseMotionListener) b).mouseMoved(e);
- }
-
- public void textValueChanged(TextEvent e)
- {
- ((TextListener) a).textValueChanged(e);
- ((TextListener) b).textValueChanged(e);
- }
-
- public void windowActivated(WindowEvent e)
- {
- ((WindowListener) a).windowActivated(e);
- ((WindowListener) b).windowActivated(e);
- }
-
- public void windowClosed(WindowEvent e)
- {
- ((WindowListener) a).windowClosed(e);
- ((WindowListener) b).windowClosed(e);
- }
-
- public void windowClosing(WindowEvent e)
- {
- ((WindowListener) a).windowClosing(e);
- ((WindowListener) b).windowClosing(e);
- }
-
- public void windowDeactivated(WindowEvent e)
- {
- ((WindowListener) a).windowDeactivated(e);
- ((WindowListener) b).windowDeactivated(e);
- }
-
- public void windowDeiconified(WindowEvent e)
- {
- ((WindowListener) a).windowDeiconified(e);
- ((WindowListener) b).windowDeiconified(e);
- }
-
- public void windowIconified(WindowEvent e)
- {
- ((WindowListener) a).windowIconified(e);
- ((WindowListener) b).windowIconified(e);
- }
-
- public void windowOpened(WindowEvent e)
- {
- ((WindowListener) a).windowOpened(e);
- ((WindowListener) b).windowOpened(e);
- }
-
- protected static void save(ObjectOutputStream s, String k, EventListener l)
- {
- // FIXME
- }
-
- protected void saveInternal(ObjectOutputStream s, String k)
- {
- // FIXME
- }
-
-}
diff --git a/libjava/java/awt/AWTException.java b/libjava/java/awt/AWTException.java
deleted file mode 100644
index 8cc7bff9c2d..00000000000
--- a/libjava/java/awt/AWTException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date Tue Apr 4 2000
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class AWTException extends Exception
-{
- public AWTException (String message)
- {
- super (message);
- }
-}
diff --git a/libjava/java/awt/ActiveEvent.java b/libjava/java/awt/ActiveEvent.java
deleted file mode 100644
index 089682e6e7e..00000000000
--- a/libjava/java/awt/ActiveEvent.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface ActiveEvent
-{
- public void dispatch ();
-}
diff --git a/libjava/java/awt/Adjustable.java b/libjava/java/awt/Adjustable.java
deleted file mode 100644
index bfdbb39531b..00000000000
--- a/libjava/java/awt/Adjustable.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface Adjustable
-{
- public static final int HORIZONTAL = 0;
- public static final int VERTICAL = 1;
-
- public void addAdjustmentListener (AdjustmentListener l);
- public int getBlockIncrement ();
- public int getMaximum ();
- public int getMinimum ();
- public int getOrientation ();
- public int getUnitIncrement ();
- public int getValue ();
- public int getVisibleAmount ();
- public void removeAdjustmentListener (AdjustmentListener l);
- public void setBlockIncrement (int b);
- public void setMaximum (int max);
- public void setMinimum (int min);
- public void setUnitIncrement (int u);
- public void setValue (int v);
- public void setVisibleAmount (int v);
-}
diff --git a/libjava/java/awt/BorderLayout.java b/libjava/java/awt/BorderLayout.java
deleted file mode 100644
index 0d779c1a752..00000000000
--- a/libjava/java/awt/BorderLayout.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-public class BorderLayout implements LayoutManager2, java.io.Serializable
-{
- public static final String NORTH = "North",
- SOUTH = "South",
- EAST = "East",
- WEST = "West",
- CENTER = "Center";
-
- // FIXME: use these too
- public static final String BEFORE_FIRST_LINE = "First",
- AFTER_LAST_LINE = "Last",
- BEFORE_LINE_BEGINS = "Before",
- AFTER_LINE_ENDS = "After";
-
-
- // FIXME: check serialization of fields
- int hgap;
- int vgap;
- Component north, south, east, west, center;
-
- public BorderLayout ()
- {
- this (0, 0);
- }
-
- public BorderLayout (int hgap, int vgap)
- {
- this.hgap = hgap;
- this.vgap = vgap;
- }
-
- public int getHgap()
- {
- return hgap;
- }
-
- public void setHgap(int hgap)
- {
- this.hgap = hgap;
- }
-
- public int getVgap()
- {
- return vgap;
- }
-
- public void setVgap(int vgap)
- {
- this.vgap = vgap;
- }
-
- public void addLayoutComponent(Component comp, Object constraints)
- {
- if ((constraints == null) || CENTER.equals(constraints))
- {
- center = comp;
- }
- else if (NORTH.equals(constraints))
- {
- north = comp;
- }
- else if (SOUTH.equals(constraints))
- {
- south = comp;
- }
- else if (EAST.equals(constraints))
- {
- east = comp;
- }
- else if (WEST.equals(constraints))
- {
- west = comp;
- }
- }
-
- public void addLayoutComponent(String name, Component comp)
- {
- addLayoutComponent(comp, name);
- }
-
- public void removeLayoutComponent(Component comp)
- {
- if (center == comp)
- {
- center = null;
- }
- else if (north == comp)
- {
- north = null;
- }
- else if (south == comp)
- {
- south = null;
- }
- else if (east == comp)
- {
- east = null;
- }
- else if (west == comp)
- {
- west = null;
- }
- }
-
- public Dimension minimumLayoutSize(Container target)
- {
- return calcSize(getMinimumSize(center),
- getMinimumSize(north),
- getMinimumSize(south),
- getMinimumSize(east),
- getMinimumSize(west),
- target);
- }
-
- public Dimension preferredLayoutSize(Container target)
- {
- return calcSize(getPreferredSize(center),
- getPreferredSize(north),
- getPreferredSize(south),
- getPreferredSize(east),
- getPreferredSize(west),
- target);
- }
-
- /**
- * Completely disregards the requested maximum sizes of the
- * components, and states that the container has no upper size
- * limit.
- *
- * @return a dimension of width and height Integer.MAX_VALUE.
- */
- public Dimension maximumLayoutSize(Container target)
- {
- return (Dimension) DIM_MAX.clone();
- }
-
- public float getLayoutAlignmentX(Container parent)
- {
- return Component.CENTER_ALIGNMENT;
- }
-
- public float getLayoutAlignmentY(Container parent)
- {
- return Component.CENTER_ALIGNMENT;
- }
-
- public void invalidateLayout(Container target)
- {
- // TODO... implement caching?
- }
-
- public void layoutContainer(Container target)
- {
- Insets i = target.getInsets();
- Dimension c = getPreferredSize(center);
- Dimension n = getPreferredSize(north);
- Dimension s = getPreferredSize(south);
- Dimension e = getPreferredSize(east);
- Dimension w = getPreferredSize(west);
- Dimension t = target.getSize();
-
- /*
- <-> hgap <-> hgap
- +----------------------------+ }
- |t | } i.top
- | +----------------------+ | --- y1 }
- | |n | |
- | +----------------------+ | } vgap
- | +---+ +----------+ +---+ | --- y2 } }
- | |w | |c | |e | | } hh
- | +---+ +----------+ +---+ | } vgap }
- | +----------------------+ | --- y3 }
- | |s | |
- | +----------------------+ | }
- | | } i.bottom
- +----------------------------+ }
- |x1 |x2 |x3
- <---------------------->
- <--> ww <-->
- i.left i.right
- */
-
- int x1 = i.left;
- int x2 = x1 + w.width + hgap;
- int x3 = t.width - i.right - e.width;
- int ww = t.width - i.right - i.left;
-
- int y1 = i.top;
- int y2 = y1 + n.height + vgap;
- int y3 = t.height - i.bottom - s.height;
- int hh = y3-y2-vgap;
-
- setBounds(center, x2, y2, x3-x2-hgap, hh);
- setBounds(north, x1, y1, ww, n.height);
- setBounds(south, x1, y3, ww, s.height);
- setBounds(west, x1, y2, w.width, hh);
- setBounds(east, x3, y2, e.width, hh);
- }
-
- public String toString()
- {
- return getClass().getName() + "[hgap=" + hgap + ",vgap=" + vgap + "]";
- }
-
-
- // Support:
-
- static final Dimension DIM_0 = new Dimension(0, 0);
- static final Dimension DIM_MAX = new Dimension(Integer.MAX_VALUE,
- Integer.MAX_VALUE);
-
- void setBounds(Component comp, int x, int y, int w, int h)
- {
- if (comp == null)
- return;
- comp.setBounds(x, y, w, h);
- }
-
- Dimension getMinimumSize(Component comp)
- {
- if (comp == null)
- return DIM_0;
- return comp.getMinimumSize();
- }
-
- Dimension getPreferredSize(Component comp)
- {
- if (comp == null)
- return DIM_0;
- return comp.getPreferredSize();
- }
-
- Dimension calcSize(Dimension c, Dimension n, Dimension s,
- Dimension e, Dimension w, Container target)
- {
- Insets i = target.getInsets();
-
- return new Dimension(c.width + e.width + w.width + hgap*2 +
- i.left + i.right,
- c.height + n.height + s.height + vgap*2 +
- i.top + i.bottom
- );
- }
-}
diff --git a/libjava/java/awt/Button.java b/libjava/java/awt/Button.java
deleted file mode 100644
index cee3ae75358..00000000000
--- a/libjava/java/awt/Button.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.peer.ButtonPeer;
-import java.awt.peer.ComponentPeer;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.util.EventListener;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date July 30, 2000
- */
-
-public class Button extends Component
-{
- public Button ()
- {
- this (null);
- }
-
- public Button (String label)
- {
- this.label = label;
- }
-
- public void addActionListener (ActionListener l)
- {
- actionListener = AWTEventMulticaster.add (actionListener, l);
- }
-
- public void addNotify ()
- {
- if (peer == null)
- peer = (ComponentPeer) getToolkit ().createButton (this);
- super.addNotify();
- }
-
- public String getActionCommand ()
- {
- return actionCommand;
- }
-
- public String getLabel ()
- {
- return label;
- }
-
- protected String paramString ()
- {
- return "Button[" + label + "]";
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- super.dispatchEventImpl(e);
-
- if (e.id <= ActionEvent.ACTION_LAST
- && e.id >= ActionEvent.ACTION_FIRST
- && (actionListener != null
- || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
- processEvent(e);
- }
-
- protected void processActionEvent (ActionEvent e)
- {
- if (actionListener != null)
- actionListener.actionPerformed (e);
- }
-
- protected void processEvent (AWTEvent e)
- {
- if (e instanceof ActionEvent)
- processActionEvent ((ActionEvent) e);
- else
- super.processEvent (e);
- }
-
- public void removeActionListener (ActionListener l)
- {
- actionListener = AWTEventMulticaster.remove (actionListener, l);
- }
-
- public EventListener[] getListeners(Class listenerType)
- {
- if (listenerType == ActionListener.class)
- return getListenersImpl(listenerType, actionListener);
- return super.getListeners(listenerType);
- }
-
- public void setActionCommand (String command)
- {
- this.actionCommand = (command == null) ? label : command;
- }
-
- public void setLabel (String label)
- {
- this.label = label;
- if (peer != null)
- {
- ButtonPeer bp = (ButtonPeer) peer;
- bp.setLabel (label);
- }
- }
-
- String label;
- String actionCommand;
-
- transient ActionListener actionListener;
-}
diff --git a/libjava/java/awt/Canvas.java b/libjava/java/awt/Canvas.java
deleted file mode 100644
index a4fe50fc5ec..00000000000
--- a/libjava/java/awt/Canvas.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.peer.ComponentPeer;
-
-public class Canvas extends Component
-{
- transient GraphicsConfiguration graphicsConfiguration;
-
- public Canvas() { }
-
- public Canvas(GraphicsConfiguration graphicsConfiguration)
- {
- this.graphicsConfiguration = graphicsConfiguration;
- }
-
- GraphicsConfiguration getGraphicsConfigurationImpl()
- {
- if (graphicsConfiguration != null)
- return graphicsConfiguration;
- return super.getGraphicsConfigurationImpl();
- }
-
- public void addNotify()
- {
- if (peer == null)
- {
- peer = (ComponentPeer) getToolkit().createCanvas(this);
- }
- super.addNotify();
- }
-
- /** Override this to create components with custom painting.
- Defaults to filling the component with the background color. */
- public void paint(Graphics gfx)
- {
- /* This implementation doesn't make much sense since the filling
- of background color is guaranteed for heavyweight components
- such as this. But there's no need to worry, since paint() is
- usually overridden anyway. */
- gfx.setColor(getBackground());
- Dimension size = getSize();
- gfx.fillRect(0, 0, size.width, size.height);
- }
-}
diff --git a/libjava/java/awt/Checkbox.java b/libjava/java/awt/Checkbox.java
deleted file mode 100644
index ec1f20d5b3a..00000000000
--- a/libjava/java/awt/Checkbox.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class Checkbox extends Component
-{
-}
diff --git a/libjava/java/awt/CheckboxGroup.java b/libjava/java/awt/CheckboxGroup.java
deleted file mode 100644
index 0acd7b55974..00000000000
--- a/libjava/java/awt/CheckboxGroup.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Status: Empty placeholder. */
-
-public class CheckboxGroup
-{
- // Fields from the serialization spec. Decalare others "transient".
- boolean state;
- int checkboxMenuItemSerializedDataVersion;
-}
diff --git a/libjava/java/awt/CheckboxMenuItem.java b/libjava/java/awt/CheckboxMenuItem.java
deleted file mode 100644
index a98c94a7ba5..00000000000
--- a/libjava/java/awt/CheckboxMenuItem.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class CheckboxMenuItem extends MenuItem
-{
-}
diff --git a/libjava/java/awt/Choice.java b/libjava/java/awt/Choice.java
deleted file mode 100644
index cc1ddc0a57f..00000000000
--- a/libjava/java/awt/Choice.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class Choice extends Component
-{
-}
diff --git a/libjava/java/awt/Color.java b/libjava/java/awt/Color.java
deleted file mode 100644
index 6225767d2fd..00000000000
--- a/libjava/java/awt/Color.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 15, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Stubbed; A very incomplete implementation.
- */
-
-public class Color extends Object implements Paint, java.io.Serializable
-{
- public static final Color white = new Color(0xFFFFFFFF, true);
- public static final Color lightGray = new Color(0xFFC0C0C0, true);
- public static final Color gray = new Color(0xFF808080, true);
- public static final Color darkGray = new Color(0xFF404040, true);
- public static final Color black = new Color(0xFF000000, true);
- public static final Color red = new Color(0xFFFF0000, true);
- public static final Color pink = new Color(0xFFFFAFAF, true);
- public static final Color orange = new Color(0xFFFFC800, true);
- public static final Color yellow = new Color(0xFFFFFF00, true);
- public static final Color green = new Color(0xFF00FF00, true);
- public static final Color magenta = new Color(0xFFFF00FF, true);
- public static final Color cyan = new Color(0xFF00FFFF, true);
- public static final Color blue = new Color(0xFF0000FF, true);
-
- // The internal sRGB representation.
- // Alpha is bits 24-31, if hasalpha is true.
- // Red is bits 16-23; Green is bits 8-15; Blue is bits 0-7.
- private int rgba = 0xFFFFFFFF;
-
- public Color(int rgb)
- {
- this(rgb, false);
- }
-
- public Color(int rgba, boolean hasalpha)
- {
- this.rgba = rgba;
- if (!hasalpha)
- rgba |= 0xFF000000;
- }
-
- public Color(int r, int g, int b)
- {
- this(r, g, b, 0xFF);
- }
-
- public Color(int r, int g, int b, int a)
- {
- rgba = a << 24 | ((r << 16) & 0x00FF0000) | ((g << 8) & 0x0000FF00) |
- (b & 0x000000FF);
- }
-
- public int getRed()
- {
- return (rgba >> 16) & 0xFF;
- }
-
- public int getGreen()
- {
- return (rgba >> 8) & 0xFF;
- }
-
- public int getBlue()
- {
- return rgba & 0xFF;
- }
-
- public int getAlpha()
- {
- return (rgba >> 24) & 0xFF;
- }
-
- public int getRGB()
- {
- return rgba;
- }
-
- static final int BRIGHT_STEP = 0x30;
-
- public Color brighter()
- {
- return new Color(Math.min(255, getRed() + BRIGHT_STEP),
- Math.min(255, getGreen() + BRIGHT_STEP),
- Math.min(255, getBlue() + BRIGHT_STEP),
- getAlpha());
- }
-
- public Color darker()
- {
- return new Color(Math.max(0, getRed() - BRIGHT_STEP),
- Math.max(0, getGreen() - BRIGHT_STEP),
- Math.max(0, getBlue() - BRIGHT_STEP),
- getAlpha());
- }
-
- public int hashCode()
- {
- return rgba;
- }
-
- public int getTransparency()
- {
- if (getAlpha() == 0xFF)
- return Transparency.OPAQUE;
- else
- return Transparency.TRANSLUCENT;
- }
-}
-
diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java
deleted file mode 100644
index e7489046755..00000000000
--- a/libjava/java/awt/Component.java
+++ /dev/null
@@ -1,1589 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-import java.awt.image.*;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.lang.reflect.*;
-import java.util.EventListener;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Vector;
-import java.awt.peer.ComponentPeer;
-import java.awt.peer.LightweightPeer;
-import java.beans.PropertyChangeSupport;
-import java.beans.PropertyChangeListener;
-// import javax.accessibility.AccessibleContext;
-
-/**
- * The root of all evil.
- *
- * Status: Incomplete. The event dispatch mechanism is implemented. All
- * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly
- * incomplete or only stubs; except for methods relating to the Drag and Drop,
- * Input Method, and Accessibility frameworks: These methods are present but
- * commented out.
- */
-public abstract class Component implements ImageObserver, MenuContainer,
- java.io.Serializable
-{
-
- /* Constants for use with getAlignmentX()/getAlignmentY(). */
- public static final float BOTTOM_ALIGNMENT = 1.0f,
- CENTER_ALIGNMENT = 0.5f,
- LEFT_ALIGNMENT = 0.0f,
- RIGHT_ALIGNMENT = 1.0f,
- TOP_ALIGNMENT = 0.0f;
-
- /* Make the treelock a String so that it can easily be identified
- in debug dumps. We clone the String in order to avoid a conflict in
- the unlikely event that some other package uses exactly the same string
- as a lock object. */
- static Object treeLock = new String("AWT_TREE_LOCK");
-
- /* Serialized fields from the serialization spec. */
- // FIXME: Default values?
- int x;
- int y;
- int width;
- int height;
- Color foreground;
- Color background;
- Font font;
- Font peerFont;
- Cursor cursor;
- Locale locale;
- boolean visible = true; // default (except for Window)
- boolean enabled = true;
- boolean valid;
- boolean hasFocus;
- //DropTarget dropTarget;
- Vector popups;
- String name;
- boolean nameExplicitlySet;
- Dimension minSize;
- Dimension prefSize;
- boolean newEventsOnly;
- long eventMask = AWTEvent.PAINT_EVENT_MASK;
- PropertyChangeSupport changeSupport;
- boolean isPacked;
- int componentSerializedDataVersion;
- /* AccessibleContext accessibleContext; */
-
- /* Anything else is non-serializable, and should be declared "transient". */
- transient Container parent;
- transient java.awt.peer.ComponentPeer peer;
-
- transient ComponentListener componentListener;
- transient FocusListener focusListener;
- transient KeyListener keyListener;
- transient MouseListener mouseListener;
- transient MouseMotionListener mouseMotionListener;
- transient InputMethodListener inputMethodListener;
- transient HierarchyListener hierarchyListener;
- transient HierarchyBoundsListener hierarchyBoundsListener;
-
- protected Component()
- {
- }
-
- public String getName()
- {
- if (name == null && !nameExplicitlySet)
- name = generateName();
- return name;
- }
-
- public void setName(String name)
- {
- nameExplicitlySet = true;
- this.name = name;
- }
-
- /** Subclasses should override this to return unique component names like
- * "menuitem0".
- */
- String generateName()
- {
- // Component is abstract.
- return null;
- }
-
- public Container getParent()
- {
- return parent;
- }
-
- /** @deprecated */
- // However, Classpath's Gtk peers rely on it.
- public java.awt.peer.ComponentPeer getPeer()
- {
- return peer;
- }
-
- // FIXME: java.awt.dnd classes not yet implemented
- /*
- public void setDropTarget(DropTarget dt)
- {
- this.dropTarget = dt;
- }
-
- public DropTarget getDropTarget()
- {
- return dropTarget;
- }
- */
-
- /** @since 1.3 */
- public GraphicsConfiguration getGraphicsConfiguration()
- {
- return getGraphicsConfigurationImpl();
- }
-
- /** Implementation method that allows classes such as Canvas and
- Window to override the graphics configuration without violating
- the published API. */
- GraphicsConfiguration getGraphicsConfigurationImpl()
- {
- if (peer != null)
- {
- GraphicsConfiguration config = peer.getGraphicsConfiguration();
- if (config != null)
- return config;
- }
-
- if (parent != null)
- return parent.getGraphicsConfiguration();
-
- return null;
- }
-
- public final Object getTreeLock()
- {
- return treeLock;
- }
-
- public Toolkit getToolkit()
- {
- if (peer != null)
- {
- Toolkit tk = peer.getToolkit();
- if (tk != null)
- return tk;
- }
- if (parent != null)
- return parent.getToolkit ();
- return Toolkit.getDefaultToolkit ();
- }
-
- public boolean isValid()
- {
- return valid;
- }
-
- /** @since 1.2 */
- public boolean isDisplayable()
- {
- if (parent != null)
- return parent.isDisplayable();
- return false;
- }
-
- public boolean isVisible()
- {
- return visible;
- }
-
- public boolean isShowing()
- {
- if (! visible)
- return false;
-
- if (parent != null)
- return (parent.isShowing());
-
- return false;
- }
-
- public boolean isEnabled()
- {
- return enabled;
- }
-
- public void setEnabled(boolean b)
- {
- this.enabled = b;
- }
-
- /** @deprecated */
- public void enable()
- {
- setEnabled(true);
- }
-
- /** @deprecated */
- public void enable(boolean b)
- {
- setEnabled(b);
- }
-
- /** @deprecated */
- public void disable()
- {
- setEnabled(false);
- }
-
- public boolean isDoubleBuffered()
- {
- return false;
- }
-
- /** @since 1.2 */
- public void enableInputMethods(boolean enable)
- {
- // FIXME
- }
-
- /** @specnote Inspection by subclassing shows that Sun's implementation
- calls show(boolean) which then calls show() or hide(). It is
- the show() method that is overriden in subclasses like Window.
- We do the same to preserve compatibility for subclasses. */
- public void setVisible(boolean b)
- {
- show (b);
- }
-
- /** @deprecated */
- public void show()
- {
- if (peer != null)
- peer.setVisible(true);
- this.visible = true;
- }
-
- /** @deprecated */
- public void show(boolean b)
- {
- if (b)
- show();
- else
- hide();
- }
-
- /** @deprecated */
- public void hide()
- {
- if (peer != null)
- peer.setVisible(false);
- this.visible = false;
- }
-
- public Color getForeground()
- {
- if (foreground != null)
- return foreground;
- if (parent != null)
- return parent.getForeground();
- return null;
- }
-
- public void setForeground(Color c)
- {
- if (peer != null)
- peer.setForeground(c);
- this.foreground = c;
- if (peer != null)
- peer.setForeground(foreground);
- }
-
- /** @return the background color of the component. null may be
- returned instead of the actual background color, if this
- method is called before the component is added to the
- component hierarchy. */
- public Color getBackground()
- {
- if (background != null)
- return background;
- if (parent != null)
- return parent.getBackground();
- return null;
- }
-
- public void setBackground(Color c)
- {
- if (peer != null)
- peer.setBackground(c);
- this.background = c;
- if (peer != null) peer.setBackground(background);
- }
-
- public Font getFont()
- {
- if (font != null)
- return font;
- if (parent != null)
- return parent.getFont();
- return null;
- }
-
- public void setFont(Font f)
- {
- if (peer != null)
- peer.setFont(f);
- this.font = f;
- }
-
- public Locale getLocale() throws IllegalComponentStateException
- {
- if (locale != null)
- return locale;
- if (parent == null)
- throw new IllegalComponentStateException
- ("Component has no parent: Can not determine Locale");
- return parent.getLocale();
- }
-
- public void setLocale(Locale l)
- {
- this.locale = l;
-
- /* new writing/layout direction perhaps, or make more/less
- room for localized text labels */
- invalidate();
- }
-
- public ColorModel getColorModel()
- {
- GraphicsConfiguration config = getGraphicsConfiguration();
-
- if (config != null)
- return config.getColorModel();
-
- return getToolkit().getColorModel();
- }
-
- public Point getLocation()
- {
- return new Point(x, y);
- }
-
- public Point getLocationOnScreen()
- {
- // FIXME
- return null;
- }
-
- /** @deprecated Use getLocation() instead. */
- public Point location()
- {
- return getLocation();
- }
-
- public void setLocation (int x, int y)
- {
- if ((this.x == x) && (this.y == y))
- return;
-
- invalidate();
-
- this.x = x;
- this.y = y;
- if (peer != null)
- peer.setBounds(x, y, width, height);
- }
-
- /** @deprecated */
- public void move(int x, int y)
- {
- setLocation(x,y);
- }
-
- public void setLocation(Point p)
- {
- setLocation(p.x, p.y);
- }
-
- public Dimension getSize()
- {
- return new Dimension(width, height);
- }
-
- /** @deprecated */
- public Dimension size()
- {
- return getSize();
- }
-
- public void setSize(int width, int height)
- {
- if ((this.width == width) && (this.height == height))
- return;
-
- invalidate();
-
- this.width = width;
- this.height = height;
- if (peer != null)
- peer.setBounds(x, y, width, height);
- }
-
- /** @deprecated */
- public void resize(int width, int height)
- {
- setSize(width, height);
- }
-
- public void setSize(Dimension d)
- {
- setSize(d.width, d.height);
- }
-
- /** @deprecated */
- public void resize(Dimension d)
- {
- setSize(d.width, d.height);
- }
-
- public Rectangle getBounds()
- {
- return new Rectangle (x, y, width, height);
- }
-
- /** @deprecated */
- public Rectangle bounds()
- {
- return getBounds();
- }
-
- public void setBounds(int x, int y, int w, int h)
- {
- if (this.x == x
- && this.y == y
- && this.width == w
- && this.height == h)
- return;
-
- invalidate();
-
- this.x = x;
- this.y = y;
- this.width = w;
- this.height = h;
-
- if (peer != null)
- peer.setBounds(x, y, w, h);
- }
-
- /** @deprecated */
- public void reshape(int x, int y, int width, int height)
- {
- setBounds(x, y, width, height);
- }
-
- public void setBounds(Rectangle r)
- {
- setBounds(r.x, r.y, r.width, r.height);
- }
-
- /** @since 1.2 */
- public int getX()
- {
- return x;
- }
-
- /** @since 1.2 */
- public int getY()
- {
- return y;
- }
-
- /** @since 1.2 */
- public int getWidth()
- {
- return width;
- }
-
- /** @since 1.2 */
- public int getHeight()
- {
- return height;
- }
-
- public Rectangle getBounds(Rectangle r)
- {
- r.x = this.x;
- r.y = this.y;
- r.width = this.width;
- r.height = this.height;
- return r;
- }
-
- public Dimension getSize(Dimension d)
- {
- d.width = this.width;
- d.height = this.height;
- return d;
- }
-
- public Point getLocation(Point p)
- {
- p.x = x;
- p.y = y;
- return p;
- }
-
- /** @since 1.2 */
- public boolean isOpaque()
- {
- return !isLightweight();
- }
-
- /**
- * Return whether the component is lightweight.
- *
- * @return true if component has a peer and and the peer is lightweight.
- *
- * @since 1.2
- */
- public boolean isLightweight()
- {
- return (peer != null) && (peer instanceof LightweightPeer);
- }
-
- public Dimension getPreferredSize()
- {
- // FIXME?
- if (peer == null)
- return new Dimension(width, height);
- else
- return peer.getPreferredSize();
- }
-
- /** @deprecated */
- public Dimension preferredSize()
- {
- return getPreferredSize();
- }
-
- public Dimension getMinimumSize()
- {
- // FIXME?
- if (peer == null)
- return new Dimension(width, height);
- else
- return peer.getMinimumSize();
- }
-
- /** @deprecated */
- public Dimension minimumSize()
- {
- return getMinimumSize();
- }
-
- public Dimension getMaximumSize()
- {
- return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
- }
-
- public float getAlignmentX()
- {
- // FIXME
- return 0;
- }
-
- public float getAlignmentY()
- {
- // FIXME
- return 0;
- }
-
- public void doLayout()
- {
- // nothing to do unless we're a container
- }
-
- /** @deprecated */
- public void layout()
- {
- doLayout();
- }
-
- public void validate()
- {
- // nothing to do unless we're a container
- }
-
- public void invalidate()
- {
- valid = false;
-
- if ((parent != null) && parent.valid)
- parent.invalidate ();
- }
-
- public Graphics getGraphics()
- {
- if (peer != null)
- {
- Graphics gfx = peer.getGraphics();
- if (gfx != null)
- return gfx;
-
- // create graphics for lightweight:
- Container parent = getParent();
- if (parent != null)
- {
- gfx = parent.getGraphics();
- Rectangle bounds = getBounds();
- gfx.setClip(bounds);
- gfx.translate(bounds.x, bounds.y);
- return gfx;
- }
- }
- return null;
- }
-
- public FontMetrics getFontMetrics(Font font)
- {
- return getToolkit().getFontMetrics(font);
- }
-
- public void setCursor(Cursor cursor)
- {
- this.cursor = cursor;
- }
-
- public Cursor getCursor()
- {
- return this.cursor;
- }
-
- public void paint(Graphics g)
- {
- }
-
- public void update(Graphics g)
- {
- paint(g);
- }
-
- public void paintAll(Graphics g)
- {
- if (!visible)
- return;
-
- if (peer != null)
- peer.paint(g);
- paint(g);
- }
-
- public void repaint()
- {
- repaint(0, 0, 0, getWidth(), getHeight());
- }
-
- public void repaint(long tm)
- {
- repaint(tm, 0, 0, getWidth(), getHeight());
- }
-
- public void repaint(int x, int y, int width, int height)
- {
- repaint(0, x, y, width, height);
- }
-
- public void repaint(long tm, int x, int y, int width, int height)
- {
- // Handle lightweight repainting by forwarding to native parent
- if (isLightweight() && (parent != null))
- {
- if (parent != null)
- parent.repaint(tm, x+getX(), y+getY(), width, height);
- return;
- }
-
- if (peer != null)
- peer.repaint(tm, x, y, width, height);
- }
-
- public void print(Graphics g)
- {
- paint(g);
- }
-
- public void printAll(Graphics g)
- {
- paintAll(g);
- }
-
- public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h)
- {
- // FIXME
- return false;
- }
-
- public Image createImage(ImageProducer producer)
- {
- // FIXME
- return null;
- }
-
- public Image createImage(int width, int height)
- {
- return getGraphicsConfiguration().createCompatibleImage(width, height);
- }
-
- public boolean prepareImage(Image image, ImageObserver observer)
- {
- // FIXME
- return false;
- }
-
- public boolean prepareImage(Image image, int width, int height, ImageObserver observer)
- {
- // FIXME
- return false;
- }
-
- public int checkImage(Image image, ImageObserver observer)
- {
- // FIXME
- return 0;
- }
-
- public int checkImage(Image image, int width, int height, ImageObserver observer)
- {
- // FIXME
- return 0;
- }
-
- public boolean contains(int x, int y)
- {
- return (x >= 0) && (y >= 0) && (x < width) && (y < height);
- }
-
- /** @deprecated */
- public boolean inside(int x, int y)
- {
- return contains(x,y);
- }
-
- public boolean contains(Point p)
- {
- return contains(p.x, p.y);
- }
-
- public Component getComponentAt(int x, int y)
- {
- if (contains(x,y))
- return this;
- return null;
- }
-
- /** @deprecated */
- public Component locate(int x, int y)
- {
- return getComponentAt(x, y);
- }
-
- public Component getComponentAt(Point p)
- {
- return getComponentAt(p.x, p.y);
- }
-
- /** @deprecated */
- public void deliverEvent(Event e)
- {
-
- }
-
- /** Forward AWT events to processEvent() if:
- * - Events have been enabled for this type of event via enableEvents(),
- * OR:
- * - There is at least one registered listener for this type of event
- *
- * @specnote This method is final, but we need to be able to
- * override it in order to handle other event types in our
- * subclasses. The solution is to define a second, non-final
- * method - dispatchEventImpl() - to actually do the work.
- * Investigations with Thread.dumpStack() on the dispatch thread
- * in JDK 1.3 show Sun's implementation is doing the same
- * thing.
- */
- public final void dispatchEvent(AWTEvent e)
- {
- dispatchEventImpl(e);
-
- /* Give the peer a chance to handle the event. */
- if (peer != null)
- peer.handleEvent(e);
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- // Make use of event id's in order to avoid multiple instanceof tests.
- if (e.id <= ComponentEvent.COMPONENT_LAST
- && e.id >= ComponentEvent.COMPONENT_FIRST
- && (componentListener != null
- || (eventMask & AWTEvent.COMPONENT_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= KeyEvent.KEY_LAST
- && e.id >= KeyEvent.KEY_FIRST
- && (keyListener != null
- || (eventMask & AWTEvent.KEY_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= MouseEvent.MOUSE_LAST
- && e.id >= MouseEvent.MOUSE_FIRST
- && (mouseListener != null
- || mouseMotionListener != null
- || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= FocusEvent.FOCUS_LAST
- && e.id >= FocusEvent.FOCUS_FIRST
- && (focusListener != null
- || (eventMask & AWTEvent.FOCUS_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= InputMethodEvent.INPUT_METHOD_LAST
- && e.id >= InputMethodEvent.INPUT_METHOD_FIRST
- && (inputMethodListener != null
- || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= HierarchyEvent.HIERARCHY_LAST
- && e.id >= HierarchyEvent.HIERARCHY_FIRST
- && (hierarchyListener != null
- || hierarchyBoundsListener != null
- || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0))
- processEvent(e);
- else if (e.id <= PaintEvent.PAINT_LAST
- && e.id >= PaintEvent.PAINT_FIRST
- && (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0)
- processEvent(e);
- }
-
- /** @deprecated */
- public boolean postEvent(Event e)
- {
- return false;
- }
-
- public synchronized void addComponentListener(ComponentListener l)
- {
- componentListener = AWTEventMulticaster.add(componentListener, l);
- if (componentListener != null)
- enableEvents(AWTEvent.COMPONENT_EVENT_MASK);
- }
-
- public synchronized void removeComponentListener(ComponentListener l)
- {
- componentListener = AWTEventMulticaster.remove(componentListener, l);
- }
-
- public synchronized void addFocusListener(FocusListener l)
- {
- focusListener = AWTEventMulticaster.add(focusListener, l);
- if (focusListener != null)
- enableEvents(AWTEvent.FOCUS_EVENT_MASK);
- }
-
- public synchronized void removeFocusListener(FocusListener l)
- {
- focusListener = AWTEventMulticaster.remove(focusListener, l);
- }
-
- /** @since 1.3 */
- public synchronized void addHierarchyListener(HierarchyListener l)
- {
- hierarchyListener = AWTEventMulticaster.add(hierarchyListener, l);
- if (hierarchyListener != null)
- enableEvents(AWTEvent.HIERARCHY_EVENT_MASK);
- }
-
- /** @since 1.3 */
- public synchronized void removeHierarchyListener(HierarchyListener l)
- {
- hierarchyListener = AWTEventMulticaster.remove(hierarchyListener, l);
- }
-
- /** @since 1.3 */
- public synchronized void addHierarchyBoundsListener(HierarchyBoundsListener l)
- {
- hierarchyBoundsListener =
- AWTEventMulticaster.add(hierarchyBoundsListener, l);
- if (hierarchyBoundsListener != null)
- enableEvents(AWTEvent.HIERARCHY_EVENT_MASK);
- }
-
- /** @since 1.3 */
- public synchronized void
- removeHierarchyBoundsListener(HierarchyBoundsListener l)
- {
- hierarchyBoundsListener =
- AWTEventMulticaster.remove(hierarchyBoundsListener, l);
- }
-
- public synchronized void addKeyListener(KeyListener l)
- {
- keyListener = AWTEventMulticaster.add(keyListener, l);
- if (keyListener != null)
- enableEvents(AWTEvent.KEY_EVENT_MASK);
- }
-
- public synchronized void removeKeyListener(KeyListener l)
- {
- keyListener = AWTEventMulticaster.remove(keyListener, l);
- }
-
- public synchronized void addMouseListener(MouseListener l)
- {
- mouseListener = AWTEventMulticaster.add(mouseListener, l);
- if (mouseListener != null)
- enableEvents(AWTEvent.MOUSE_EVENT_MASK);
- }
-
- public synchronized void removeMouseListener(MouseListener l)
- {
- mouseListener = AWTEventMulticaster.remove(mouseListener, l);
- }
-
- public synchronized void addMouseMotionListener(MouseMotionListener l)
- {
- mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, l);
- if (mouseMotionListener != null)
- enableEvents(AWTEvent.MOUSE_EVENT_MASK);
- }
-
- public synchronized void removeMouseMotionListener(MouseMotionListener l)
- {
- mouseMotionListener = AWTEventMulticaster.remove(mouseMotionListener, l);
- }
-
- /** @since 1.2 */
- public synchronized void addInputMethodListener(InputMethodListener l)
- {
- inputMethodListener = AWTEventMulticaster.add(inputMethodListener, l);
- if (inputMethodListener != null)
- enableEvents(AWTEvent.INPUT_METHOD_EVENT_MASK);
- }
-
- /** @since 1.2 */
- public synchronized void removeInputMethodListener(InputMethodListener l)
- {
- inputMethodListener = AWTEventMulticaster.remove(inputMethodListener, l);
- }
-
- /** Returns all registered EventListers of the given listenerType.
- * listenerType must be a subclass of EventListener, or a
- * ClassClassException is thrown.
- * @since 1.3
- */
- public EventListener[] getListeners(Class listenerType)
- {
- if (listenerType == ComponentListener.class)
- return getListenersImpl(listenerType, componentListener);
- else if (listenerType == FocusListener.class)
- return getListenersImpl(listenerType, focusListener);
- else if (listenerType == KeyListener.class)
- return getListenersImpl(listenerType, keyListener);
- else if (listenerType == MouseListener.class)
- return getListenersImpl(listenerType, mouseListener);
- else if (listenerType == MouseMotionListener.class)
- return getListenersImpl(listenerType, mouseMotionListener);
- else if (listenerType == InputMethodListener.class)
- return getListenersImpl(listenerType, inputMethodListener);
- else if (listenerType == HierarchyListener.class)
- return getListenersImpl(listenerType, hierarchyListener);
- else if (listenerType == HierarchyBoundsListener.class)
- return getListenersImpl(listenerType, hierarchyBoundsListener);
- else
- return getListenersImpl(listenerType, null);
- }
-
- static EventListener[] getListenersImpl(Class listenerType, EventListener el)
- {
- if (! EventListener.class.isAssignableFrom(listenerType))
- throw new ClassCastException();
-
- Vector v = new Vector();
- if (el != null)
- getListenerList (el, v);
- EventListener[] el_a = (EventListener[]) Array.newInstance(listenerType,
- v.size());
- v.copyInto(el_a);
- return el_a;
- }
-
- static void getListenerList(EventListener el, Vector v)
- {
- if (el instanceof AWTEventMulticaster)
- {
- AWTEventMulticaster mc = (AWTEventMulticaster) el;
- getListenerList(mc.a, v);
- getListenerList(mc.b, v);
- }
- else
- v.addElement(el);
- }
-
- // The input method framework is currently unimplemented.
- // /** @since 1.2 */
- //
- //public InputMethodRequests getInputMethodRequests()
- //
- // /** @since 1.2 */
- //
- // public InputContext getInputContext()
-
- protected final void enableEvents(long eventsToEnable)
- {
- eventMask |= eventsToEnable;
- // TODO: Unlike Sun's implementation, I think we should try and
- // enable/disable events at the peer (gtk/X) level. This will avoid
- // clogging the event pipeline with useless mousemove events that
- // we arn't interested in, etc. This will involve extending the peer
- // interface, but thats okay because the peer interfaces have been
- // deprecated for a long time, and no longer feature in the
- // API specification at all.
-
- if (isLightweight() && (parent != null))
- parent.enableEvents(eventsToEnable);
- }
-
- protected final void disableEvents(long eventsToDisable)
- {
- eventMask &= ~eventsToDisable;
- // forward new event mask to peer?
- }
-
- /** coalesceEvents is called by the EventQueue if two events with the same
- * event id are queued. Returns a new combined event, or null if no
- * combining is done.
- */
- protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent)
- {
- switch (existingEvent.id)
- {
- case MouseEvent.MOUSE_MOVED:
- case MouseEvent.MOUSE_DRAGGED:
- // Just drop the old (intermediate) event and return the new one.
- return newEvent;
- case PaintEvent.PAINT:
- case PaintEvent.UPDATE:
- return coalescePaintEvents((PaintEvent) existingEvent,
- (PaintEvent) newEvent);
- }
- return null;
- }
-
- /**
- * Coalesce paint events. Current heuristic is: Merge if the union of
- * areas is less than twice that of the sum of the areas. The X server
- * tend to create a lot of paint events that are adjacent but not
- * overlapping.
- *
- * <pre>
- * +------+
- * | +-----+ ...will be merged
- * | | |
- * | | |
- * +------+ |
- * +-----+
- *
- * +---------------+--+
- * | | | ...will not be merged
- * +---------------+ |
- * | |
- * | |
- * | |
- * | |
- * | |
- * +--+
- * </pre>
- */
-
- private PaintEvent coalescePaintEvents(PaintEvent queuedEvent,
- PaintEvent newEvent)
- {
- Rectangle r1 = queuedEvent.getUpdateRect();
- Rectangle r2 = newEvent.getUpdateRect();
- Rectangle union = r1.union(r2);
-
- int r1a = r1.width * r1.height;
- int r2a = r2.width * r2.height;
- int ua = union.width * union.height;
-
- if (ua > (r1a+r2a)*2)
- return null;
- /* The 2 factor should maybe be reconsidered. Perhaps 3/2
- would be better? */
-
- newEvent.setUpdateRect(union);
- return newEvent;
- }
-
-
-
-
- /** Forward event to the appropriate processXXXEvent method based on the
- * event type.
- */
- protected void processEvent(AWTEvent e)
- {
-
- /* Note: the order of these if statements are
- important. Subclasses must be checked first. Eg. MouseEvent
- must be checked before ComponentEvent, since a MouseEvent
- object is also an instance of a ComponentEvent. */
-
- if (e instanceof FocusEvent)
- processFocusEvent((FocusEvent) e);
- else if (e instanceof PaintEvent)
- processPaintEvent((PaintEvent) e);
- else if (e instanceof MouseEvent)
- {
- if (e.id == MouseEvent.MOUSE_MOVED
- || e.id == MouseEvent.MOUSE_DRAGGED)
- processMouseMotionEvent((MouseEvent) e);
- else
- processMouseEvent((MouseEvent) e);
- }
- else if (e instanceof ComponentEvent)
- processComponentEvent((ComponentEvent) e);
- else if (e instanceof KeyEvent)
- processKeyEvent((KeyEvent) e);
- else if (e instanceof InputMethodEvent)
- processInputMethodEvent((InputMethodEvent) e);
- else if (e instanceof HierarchyEvent)
- {
- if (e.id == HierarchyEvent.HIERARCHY_CHANGED)
- processHierarchyEvent((HierarchyEvent) e);
- else
- processHierarchyBoundsEvent((HierarchyEvent) e);
- }
- }
-
- protected void processComponentEvent(ComponentEvent e)
- {
- if (componentListener == null)
- return;
- switch (e.id)
- {
- case ComponentEvent.COMPONENT_HIDDEN:
- componentListener.componentHidden(e);
- break;
-
- case ComponentEvent.COMPONENT_MOVED:
- componentListener.componentMoved(e);
- break;
-
- case ComponentEvent.COMPONENT_RESIZED:
- componentListener.componentResized(e);
- break;
-
- case ComponentEvent.COMPONENT_SHOWN:
- componentListener.componentShown(e);
- break;
- }
- }
-
- protected void processFocusEvent(FocusEvent e)
- {
- if (focusListener == null)
- return;
- switch (e.id)
- {
- case FocusEvent.FOCUS_GAINED:
- focusListener.focusGained(e);
- break;
- case FocusEvent.FOCUS_LOST:
- focusListener.focusLost(e);
- break;
- }
- }
-
- protected void processKeyEvent(KeyEvent e)
- {
- if (keyListener == null)
- return;
- switch (e.id)
- {
- case KeyEvent.KEY_PRESSED:
- keyListener.keyPressed(e);
- break;
- case KeyEvent.KEY_RELEASED:
- keyListener.keyReleased(e);
- break;
- case KeyEvent.KEY_TYPED:
- keyListener.keyTyped(e);
- break;
- }
- }
-
- protected void processMouseEvent(MouseEvent e)
- {
- if (mouseListener == null)
- return;
- switch (e.id)
- {
- case MouseEvent.MOUSE_CLICKED:
- mouseListener.mouseClicked(e);
- break;
- case MouseEvent.MOUSE_ENTERED:
- mouseListener.mouseEntered(e);
- break;
- case MouseEvent.MOUSE_EXITED:
- mouseListener.mouseExited(e);
- break;
- case MouseEvent.MOUSE_PRESSED:
- mouseListener.mousePressed(e);
- break;
- case MouseEvent.MOUSE_RELEASED:
- mouseListener.mouseReleased(e);
- break;
- }
- }
-
- protected void processMouseMotionEvent(MouseEvent e)
- {
- if (mouseMotionListener == null)
- return;
- switch (e.id)
- {
- case MouseEvent.MOUSE_DRAGGED:
- mouseMotionListener.mouseDragged(e);
- break;
- case MouseEvent.MOUSE_MOVED:
- mouseMotionListener.mouseMoved(e);
- break;
- }
- }
-
- /** @since 1.2 */
- protected void processInputMethodEvent(InputMethodEvent e)
- {
- if (inputMethodListener == null)
- return;
- switch (e.id)
- {
- case InputMethodEvent.CARET_POSITION_CHANGED:
- inputMethodListener.caretPositionChanged(e);
- break;
- case InputMethodEvent.INPUT_METHOD_TEXT_CHANGED:
- inputMethodListener.inputMethodTextChanged(e);
- break;
- }
- }
-
- /** @since 1.3 */
- protected void processHierarchyEvent(HierarchyEvent e)
- {
- if (hierarchyListener == null)
- return;
- if (e.id == HierarchyEvent.HIERARCHY_CHANGED)
- hierarchyListener.hierarchyChanged(e);
- }
-
- /** @since 1.3 */
- protected void processHierarchyBoundsEvent(HierarchyEvent e)
- {
- if (hierarchyBoundsListener == null)
- return;
- switch (e.id)
- {
- case HierarchyEvent.ANCESTOR_MOVED:
- hierarchyBoundsListener.ancestorMoved(e);
- break;
- case HierarchyEvent.ANCESTOR_RESIZED:
- hierarchyBoundsListener.ancestorResized(e);
- break;
- }
- }
-
- private void processPaintEvent(PaintEvent event)
- {
- ComponentPeer peer = getPeer();
-
- // Can't do graphics without peer
- if (peer == null)
- return;
-
- Graphics gfx = getGraphics();
- Shape clip = event.getUpdateRect();
- gfx.setClip(clip);
-
- switch (event.id)
- {
- case PaintEvent.PAINT:
- if (peer != null) paint(gfx);
- break;
- case PaintEvent.UPDATE:
- if (peer != null) update(gfx);
- break;
- default:
- throw new IllegalArgumentException("unknown paint event");
- }
- }
-
- /** @deprecated */
- public boolean handleEvent(Event evt)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseDown(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseDrag(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseUp(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseMove(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseEnter(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean mouseExit(Event evt, int x, int y)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean keyDown(Event evt, int key)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean keyUp(Event evt, int key)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean action(Event evt, Object what)
- {
- return false;
- }
-
- public void addNotify()
- {
- if (peer == null)
- peer = getToolkit().createComponent(this);
-
- /* Add notify children using a template method, so that it is
- possible to ensure that the new event mask delivered to the
- peer. */
- addNotifyContainerChildren();
-
- /* Now that all the children has gotten their peers, we should
- have the event mask needed for this component and its
- lightweight subcomponents. */
-
- peer.setEventMask(eventMask);
-
- /* We do not invalidate here, but rather leave that job up to
- the peer. For efficiency, the peer can choose not to
- invalidate if it is happy with the current dimensions,
- etc. */
- }
-
- void addNotifyContainerChildren() {
- // nothing to do unless we're a container
- }
-
- public void removeNotify()
- {
- if (peer != null)
- peer.dispose();
- peer = null;
- }
-
- /** @deprecated */
- public boolean gotFocus(Event evt, Object what)
- {
- return false;
- }
-
- /** @deprecated */
- public boolean lostFocus(Event evt, Object what)
- {
- return false;
- }
-
- public boolean isFocusTraversable()
- {
- // FIXME
- return false;
- }
-
- public void requestFocus()
- {
- // FIXME
- }
-
- public void transferFocus()
- {
- // FIXME
- }
-
- /** @deprecated */
- public void nextFocus()
- {
- transferFocus();
- }
-
- /** @since 1.2 */
- public boolean hasFocus()
- {
- // FIXME
- return false;
- }
-
- public synchronized void add(PopupMenu popup)
- {
- if (popups == null)
- popups = new Vector();
- popups.addElement(popup);
- }
-
- public synchronized void remove(MenuComponent popup)
- {
- popups.removeElement(popup);
- }
-
- protected String paramString()
- {
- StringBuffer param = new StringBuffer();
- String name = getName();
- if (name != null)
- {
- param.append(name);
- param.append(",");
- }
- param.append(width);
- param.append("x");
- param.append(height);
- param.append("+");
- param.append(x);
- param.append("+");
- param.append(y);
-
- if (!isValid())
- param.append(",invalid");
- if (!isVisible())
- param.append(",invisible");
- if (!isEnabled())
- param.append(",disabled");
- if (!isOpaque())
- param.append(",translucent");
- if (isDoubleBuffered())
- param.append(",doublebuffered");
-
- return param.toString();
- }
-
- public String toString()
- {
- return this.getClass().getName() + "[" + paramString() + "]";
- }
-
- public void list()
- {
- list(System.out);
- }
-
- public void list(PrintStream out)
- {
- list(out, 0);
- }
-
- public void list(PrintStream out, int indent)
- {
- }
-
- public void list(PrintWriter out)
- {
- }
-
- public void list(PrintWriter out, int indent)
- {
- }
-
- public void addPropertyChangeListener(PropertyChangeListener listener)
- {
- if (changeSupport == null)
- changeSupport = new PropertyChangeSupport(this);
- changeSupport.addPropertyChangeListener(listener);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener)
- {
- if (changeSupport != null)
- changeSupport.removePropertyChangeListener(listener);
- }
-
- public void addPropertyChangeListener(String propertyName,
- PropertyChangeListener listener)
- {
- if (changeSupport == null)
- changeSupport = new PropertyChangeSupport(this);
- changeSupport.addPropertyChangeListener(propertyName, listener);
- }
-
- public void removePropertyChangeListener(String propertyName,
- PropertyChangeListener listener)
- {
- if (changeSupport != null)
- changeSupport.removePropertyChangeListener(propertyName, listener);
- }
-
- protected void firePropertyChange(String propertyName, Object oldValue,
- Object newValue)
- {
- if (changeSupport != null)
- changeSupport.firePropertyChange(propertyName, oldValue, newValue);
- }
-
- public void setComponentOrientation(ComponentOrientation o)
- {
- // FIXME
- }
-
- public ComponentOrientation getComponentOrientation()
- {
- // FIXME
- return null;
- }
-
- /*
- public AccessibleContext getAccessibleContext()
- {
- return accessibleContext;
- }
- */
-}
diff --git a/libjava/java/awt/ComponentOrientation.java b/libjava/java/awt/ComponentOrientation.java
deleted file mode 100644
index 8cc0664ba54..00000000000
--- a/libjava/java/awt/ComponentOrientation.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Status: Incomplete. Needs a Locale lookup table. */
-
-package java.awt;
-
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-public class ComponentOrientation implements java.io.Serializable
-{
- // Here is a wild guess.
- private static int HORIZONTAL_ID = 1 << 0,
- LEFT_TO_RIGHT_ID = 1 << 1;
-
- public static final ComponentOrientation LEFT_TO_RIGHT
- = new ComponentOrientation(HORIZONTAL_ID & LEFT_TO_RIGHT_ID);
- public static final ComponentOrientation RIGHT_TO_LEFT
- = new ComponentOrientation(HORIZONTAL_ID);
- public static final ComponentOrientation UNKNOWN
- = new ComponentOrientation(0);
-
- // FIXME: This field is from the serialization spec, but what are the
- // correct values?
- int orientation;
-
- ComponentOrientation(int orientation)
- {
- this.orientation = orientation;
- }
-
- public boolean isHorizontal()
- {
- return ((orientation & HORIZONTAL_ID) != 0);
- }
-
- public boolean isLeftToRight()
- {
- return ((orientation & LEFT_TO_RIGHT_ID) != 0);
- }
-
- public static ComponentOrientation getOrientation(Locale locale)
- {
- // FIXME: Use a table to look this up.
- return LEFT_TO_RIGHT;
- }
-
- public static ComponentOrientation getOrientation(ResourceBundle bdl)
- {
- ComponentOrientation r;
-
- try
- {
- Object obj = bdl.getObject("Orientation");
- r = (ComponentOrientation) obj;
- if (r != null)
- return r;
- }
- catch (Exception x)
- {
- // Fall through
- }
-
- try
- {
- Locale l = bdl.getLocale();
- r = getOrientation(l);
- if (r != null)
- return r;
- }
- catch (Exception x)
- {
- // Fall through
- }
-
- return (getOrientation (Locale.getDefault ()));
- }
-}
diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java
deleted file mode 100644
index 0cb60bae1c2..00000000000
--- a/libjava/java/awt/Container.java
+++ /dev/null
@@ -1,625 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.event.*;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.EventListener;
-import java.awt.peer.ComponentPeer;
-import java.awt.peer.ContainerPeer;
-import java.awt.peer.LightweightPeer;
-
-/* A somewhat incomplete class. */
-
-public abstract class Container extends Component
-{
- /* Serialized fields from the serialization spec. */
- int ncomponents;
- Component[] component;
- LayoutManager layoutMgr;
- /* LightweightDispatcher dispatcher; */ // wtf?
- Dimension maxSize;
- int containerSerializedDataVersion;
-
- /* Anything else is non-serializable, and should be declared "transient". */
- transient ContainerListener containerListener;
-
- public Container()
- {
- }
-
- public int getComponentCount()
- {
- return ncomponents;
- }
-
- /** @deprecated Use getComponentCount() instead. */
- public int countComponents()
- {
- return ncomponents;
- }
-
- public Component getComponent (int n)
- {
- if (n < 0 || n >= ncomponents)
- throw new ArrayIndexOutOfBoundsException("no such component");
- return component[n];
- }
-
- public Component[] getComponents()
- {
- Component[] result = new Component[ncomponents];
- if (ncomponents > 0)
- System.arraycopy(component, 0, result, 0, ncomponents);
- return result;
- }
-
- public Insets getInsets()
- {
- if (peer == null)
- return new Insets(0, 0, 0, 0);
-
- return ((ContainerPeer) peer).getInsets();
- }
-
- /** @deprecated Use getInsets() instead. */
- public Insets insets()
- {
- return getInsets();
- }
-
- public Component add (Component comp)
- {
- addImpl (comp, null, -1);
- return comp;
- }
-
- public Component add (String name, Component comp)
- {
- addImpl (comp, name, -1);
- return comp;
- }
-
- public Component add (Component comp, int index)
- {
- addImpl (comp, null, index);
- return comp;
- }
-
- public void add (Component comp, Object constraints)
- {
- addImpl (comp, constraints, -1);
- }
-
- public void add (Component comp, Object constraints, int index)
- {
- addImpl (comp, constraints, index);
- }
-
- protected void addImpl (Component comp, Object constraints, int index)
- {
- if (index > ncomponents
- || comp instanceof Window
- || (comp instanceof Container
- && ((Container) comp).isAncestorOf (this)))
- throw new IllegalArgumentException ();
-
- // Reparent component, and make sure component is instantiated if
- // we are.
- if (comp.parent != null)
- comp.parent.remove (comp);
- comp.parent = this;
- if (peer != null)
- {
- comp.addNotify ();
-
- if (comp.isLightweight())
- enableEvents(comp.eventMask);
- }
-
- invalidate ();
-
- if (component == null)
- component = new Component[4]; // FIXME, better initial size?
-
- // This isn't the most efficient implementation. We could do less
- // copying when growing the array. It probably doesn't matter.
- if (ncomponents >= component.length)
- {
- int nl = component.length * 2;
- Component[] c = new Component[nl];
- System.arraycopy (component, 0, c, 0, ncomponents);
- component = c;
- }
- if (index == -1)
- component[ncomponents++] = comp;
- else
- {
- System.arraycopy (component, index, component, index + 1,
- ncomponents - index);
- component[index] = comp;
- ++ncomponents;
- }
-
- // Notify the layout manager.
- if (layoutMgr != null)
- {
- if (constraints != null && layoutMgr instanceof LayoutManager2)
- {
- LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
- lm2.addLayoutComponent (comp, constraints);
- }
- else
- layoutMgr.addLayoutComponent ((String) constraints, comp);
- }
-
- ContainerEvent ce = new ContainerEvent (this,
- ContainerEvent.COMPONENT_ADDED,
- comp);
- dispatchEvent (ce);
- }
-
- public void remove (int index)
- {
- Component r = component[index];
-
- r.removeNotify ();
-
- System.arraycopy (component, index + 1, component, index,
- ncomponents - index - 1);
- component[--ncomponents] = null;
-
- invalidate ();
-
- if (layoutMgr != null)
- layoutMgr.removeLayoutComponent (r);
-
- ContainerEvent ce = new ContainerEvent (this,
- ContainerEvent.COMPONENT_REMOVED,
- r);
- dispatchEvent (ce);
- }
-
- public void remove (Component comp)
- {
- for (int i = 0; i < ncomponents; ++i)
- {
- if (component[i] == comp)
- {
- remove (i);
- break;
- }
- }
- }
-
- public void removeAll()
- {
- while (ncomponents > 0)
- remove (0);
- }
-
- public LayoutManager getLayout()
- {
- return layoutMgr;
- }
-
- public void setLayout(LayoutManager mgr)
- {
- layoutMgr = mgr;
- // FIXME
- }
-
- public void doLayout()
- {
- if (layoutMgr != null)
- layoutMgr.layoutContainer (this);
- }
-
- /** @deprecated Use doLayout() instead. */
- public void layout()
- {
- doLayout();
- }
-
- public void invalidate()
- {
- super.invalidate ();
- }
-
- public void validate()
- {
- if (! isValid ())
- {
- validateTree ();
- }
- }
-
- protected void validateTree()
- {
- if (valid) return;
-
- ContainerPeer cPeer = null;
- if ((peer != null) && !(peer instanceof LightweightPeer))
- {
- cPeer = (ContainerPeer) peer;
- cPeer.beginValidate();
- }
-
- doLayout ();
- for (int i = 0; i < ncomponents; ++i)
- {
- Component comp = component[i];
- if (comp instanceof Container)
- {
- ((Container) comp).validateTree();
- }
- else
- {
- component[i].validate();
- }
- }
-
- /* children will call invalidate() when they are layed out. It
- is therefore imporant that valid is not set to true
- before after the children has been layed out. */
- valid = true;
-
- if (cPeer != null)
- cPeer.endValidate();
- }
-
- public void setFont(Font f)
- {
- super.setFont(f);
- // FIXME, should invalidate all children with font == null
- }
-
- public Dimension getPreferredSize()
- {
- if (layoutMgr != null)
- return layoutMgr.preferredLayoutSize (this);
- else
- return super.getPreferredSize ();
- }
-
- /** @deprecated Use getPreferredSize() instead */
- public Dimension preferredSize()
- {
- return getPreferredSize();
- }
-
- public Dimension getMinimumSize()
- {
- if (layoutMgr != null)
- return layoutMgr.minimumLayoutSize (this);
- else
- return super.getMinimumSize ();
- }
-
- /** @deprecated Use getMinimumSize() instead */
- public Dimension minimumSize()
- {
- return getMinimumSize();
- }
-
- public Dimension getMaximumSize()
- {
- if (layoutMgr != null && layoutMgr instanceof LayoutManager2)
- {
- LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
- return lm2.maximumLayoutSize (this);
- }
- else
- return super.getMaximumSize ();
- }
-
- public float getAlignmentX()
- {
- if (layoutMgr instanceof LayoutManager2)
- {
- LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
- return lm2.getLayoutAlignmentX (this);
- }
- else
- return CENTER_ALIGNMENT;
- }
-
- public float getAlignmentY()
- {
- if (layoutMgr instanceof LayoutManager2)
- {
- LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
- return lm2.getLayoutAlignmentY (this);
- }
- else
- return CENTER_ALIGNMENT;
- }
-
- public void paint(Graphics g)
- {
- if (!isShowing())
- return;
- super.paint(g);
- visitChildren(g, GfxPaintVisitor.INSTANCE, true);
- }
-
- /**
- * Perform a graphics operation on the children of this container.
- * For each applicable child, the visitChild() method will be called
- * to perform the graphics operation.
- *
- * @param gfx The graphics object that will be used to derive new
- * graphics objects for the children.
- *
- * @param visitor Object encapsulating the graphics operation that
- * should be performed.
- *
- * @param lightweightOnly If true, only lightweight components will
- * be visited.
- */
- private void visitChildren(Graphics gfx, GfxVisitor visitor,
- boolean lightweightOnly)
- {
- // FIXME: do locking
-
- for (int i = 0; i < ncomponents; ++i)
- {
- Component comp = component[i];
- boolean applicable = comp.isVisible()
- && (comp.isLightweight() || !lightweightOnly);
-
- if (applicable)
- visitChild(gfx, visitor, comp);
- }
- }
-
- /**
- * Perform a graphics operation on a child. A translated and clipped
- * graphics object will be created, and the visit() method of the
- * visitor will be called to perform the operation.
- *
- * @param gfx The graphics object that will be used to derive new
- * graphics objects for the child.
- *
- * @param visitor Object encapsulating the graphics operation that
- * should be performed.
- *
- * @param comp The child component that should be visited.
- */
- private void visitChild(Graphics gfx, GfxVisitor visitor,
- Component comp)
- {
- Rectangle bounds = comp.getBounds();
- Rectangle clip = gfx.getClipBounds().intersection(bounds);
-
- if (clip.isEmpty()) return;
-
- Graphics gfx2 = gfx.create();
- gfx2.setClip(clip.x, clip.y, clip.width, clip.height);
- gfx2.translate(bounds.x, bounds.y);
-
- visitor.visit(comp, gfx2);
- }
-
- public void update(Graphics g)
- {
- super.update(g);
- }
-
- public void print(Graphics g)
- {
- super.print(g);
- visitChildren(g, GfxPrintVisitor.INSTANCE, true);
- }
-
- public void paintComponents(Graphics g)
- {
- super.paint(g);
- visitChildren(g, GfxPaintAllVisitor.INSTANCE, true);
- }
-
- public void printComponents(Graphics g)
- {
- super.paint(g);
- visitChildren(g, GfxPrintAllVisitor.INSTANCE, true);
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- if ((e.id <= ContainerEvent.CONTAINER_LAST
- && e.id >= ContainerEvent.CONTAINER_FIRST)
- && (containerListener != null
- || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0))
- processEvent(e);
- else super.dispatchEventImpl(e);
- }
-
- public void addContainerListener(ContainerListener l)
- {
- containerListener = AWTEventMulticaster.add (containerListener, l);
- }
-
- public void removeContainerListener(ContainerListener l)
- {
- containerListener = AWTEventMulticaster.remove(containerListener, l);
- }
-
- /** @since 1.3 */
- public EventListener[] getListeners(Class listenerType)
- {
- if (listenerType == ContainerListener.class)
- return getListenersImpl(listenerType, containerListener);
- else return super.getListeners(listenerType);
- }
-
- protected void processEvent(AWTEvent e)
- {
- if (e instanceof ContainerEvent)
- processContainerEvent((ContainerEvent) e);
- else super.processEvent(e);
- }
-
- protected void processContainerEvent(ContainerEvent e)
- {
- if (containerListener == null)
- return;
- switch (e.id)
- {
- case ContainerEvent.COMPONENT_ADDED:
- containerListener.componentAdded(e);
- break;
-
- case ContainerEvent.COMPONENT_REMOVED:
- containerListener.componentRemoved(e);
- break;
- }
- }
-
- /** @deprecated */
- public void deliverEvent(Event e)
- {
- }
-
- public Component getComponentAt (int x, int y)
- {
- if (! contains (x, y))
- return null;
- for (int i = 0; i < ncomponents; ++i)
- {
- // Ignore invisible children...
- if (!component[i].isVisible())
- continue;
-
- int x2 = x - component[i].x;
- int y2 = y - component[i].y;
- if (component[i].contains (x2, y2))
- return component[i];
- }
- return this;
- }
-
- /** @deprecated Use getComponentAt() instead */
- public Component locate(int x, int y)
- {
- return getComponentAt(x, y);
- }
-
- public Component getComponentAt(Point p)
- {
- return getComponentAt(p.x, p.y);
- }
-
- public Component findComponentAt(int x, int y)
- {
- // FIXME
- return null;
- }
-
- public Component findComponentAt(Point p)
- {
- return findComponentAt(p.x, p.y);
- }
-
- public void addNotify ()
- {
- super.addNotify();
- }
-
- void addNotifyContainerChildren()
- {
- for (int i = ncomponents; --i >= 0; )
- {
- component[i].addNotify();
- if (component[i].isLightweight())
- enableEvents(component[i].eventMask);
- }
- }
-
- public void removeNotify()
- {
- for (int i = 0; i < ncomponents; ++i)
- component[i].removeNotify ();
- super.removeNotify();
- }
-
- public boolean isAncestorOf (Component comp)
- {
- for (;;)
- {
- if (comp == null)
- return false;
- if (comp == this)
- return true;
- comp = comp.getParent();
- }
- }
-
- protected String paramString()
- {
- String param = super.paramString();
- if (layoutMgr != null)
- param = param + "," + layoutMgr.getClass().getName();
-
- return param;
- }
-
- public void list (PrintStream out, int indent)
- {
- for (int i = 0; i < indent; ++i)
- out.print (' ');
- out.println (toString ());
- for (int i = 0; i < ncomponents; ++i)
- component[i].list (out, indent + 2);
- }
-
- public void list(PrintWriter out, int indent)
- {
- for (int i = 0; i < indent; ++i)
- out.print (' ');
- out.println (toString ());
- for (int i = 0; i < ncomponents; ++i)
- component[i].list (out, indent + 2);
- }
-
-
- /* The following classes are used in concert with the
- visitChildren() method to implement all the graphics operations
- that requires traversal of the containment hierarchy. */
-
- abstract static class GfxVisitor
- {
- public abstract void visit(Component c, Graphics gfx);
- }
-
- static class GfxPaintVisitor extends GfxVisitor
- {
- public void visit(Component c, Graphics gfx) { c.paint(gfx); }
- public static final GfxVisitor INSTANCE = new GfxPaintVisitor();
- }
-
- static class GfxPrintVisitor extends GfxVisitor
- {
- public void visit(Component c, Graphics gfx) { c.print(gfx); }
- public static final GfxVisitor INSTANCE = new GfxPrintVisitor();
- }
-
- static class GfxPaintAllVisitor extends GfxVisitor
- {
- public void visit(Component c, Graphics gfx) { c.paintAll(gfx); }
- public static final GfxVisitor INSTANCE = new GfxPaintAllVisitor();
- }
-
- static class GfxPrintAllVisitor extends GfxVisitor
- {
- public void visit(Component c, Graphics gfx) { c.printAll(gfx); }
- public static final GfxVisitor INSTANCE = new GfxPrintAllVisitor();
- }
-
-}
diff --git a/libjava/java/awt/Cursor.java b/libjava/java/awt/Cursor.java
deleted file mode 100644
index 96d36e70934..00000000000
--- a/libjava/java/awt/Cursor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A somewhat incomplete placeholder. */
-
-public class Cursor
-{
- public static final int DEFAULT_CURSOR = 0,
- CROSSHAIR_CURSOR = 1,
- TEXT_CURSOR = 2,
- WAIT_CURSOR = 3,
- SW_RESIZE_CURSOR = 4,
- SE_RESIZE_CURSOR = 5,
- NW_RESIZE_CURSOR = 6,
- NE_RESIZE_CURSOR = 7,
- N_RESIZE_CURSOR = 8,
- S_RESIZE_CURSOR = 9,
- W_RESIZE_CURSOR = 10,
- E_RESIZE_CURSOR = 11,
- HAND_CURSOR = 12,
- MOVE_CURSOR = 13,
- CUSTOM_CURSOR = 0xFFFFFFFF;
-
- private static final int PREDEFINED_COUNT = 14;
-
- protected static Cursor[] predefined = new Cursor[PREDEFINED_COUNT];
- protected String name;
- int type;
-
- public Cursor(int type)
- {
- this.type = type;
- // FIXME: lookup and set name?
- }
-
- /** This constructor is used internally only.
- * Application code should call Toolkit.createCustomCursor().
- */
- protected Cursor(String name)
- {
- this.name = name;
- // FIXME
- }
-
- public static Cursor getPredefinedCursor(int type)
- {
- if (type >= PREDEFINED_COUNT)
- return null;
- if (predefined[type] == null)
- predefined[type] = new Cursor(type);
- return predefined[type];
- }
-
- public static Cursor getSystemCustomCursor(String name)
- throws AWTException
- {
- // FIXME
- return null;
- }
-
- public static Cursor getDefaultCursor()
- {
- return getPredefinedCursor(0);
- }
-
- public int getType()
- {
- return type;
- }
-
- public String getName()
- {
- return name;
- }
-
- public String toString()
- {
- return (this.getClass() + "[" + getName() + "]");
- }
-}
diff --git a/libjava/java/awt/Dialog.java b/libjava/java/awt/Dialog.java
deleted file mode 100644
index fcd8d631168..00000000000
--- a/libjava/java/awt/Dialog.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class Dialog extends Window
-{
- public Dialog (Frame owner)
- {
- super(owner);
- // FIXME
- }
-}
diff --git a/libjava/java/awt/Dimension.java b/libjava/java/awt/Dimension.java
deleted file mode 100644
index 38ba32729cf..00000000000
--- a/libjava/java/awt/Dimension.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary 8, 1999.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct, except that neither toString
- * has not been compared with JDK output.
- */
-
-public class Dimension extends java.awt.geom.Dimension2D
-{
- public int height;
- public int width;
-
- public Dimension () { }
-
- public Dimension (Dimension dim)
- {
- this.width = dim.width;
- this.height = dim.height;
- }
-
- public Dimension (int width, int height)
- {
- this.width = width;
- this.height = height;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Dimension))
- return false;
- Dimension dim = (Dimension) obj;
- return height == dim.height && width == dim.width;
- }
-
- public Dimension getSize () { return new Dimension(this); }
-
- public void setSize (Dimension dim)
- {
- this.width = dim.width;
- this.height = dim.height;
- }
-
- public void setSize (int width, int height)
- {
- this.width = width;
- this.height = height;
- }
-
- public String toString ()
- {
- return "Dimension[w:"+width+",h:"+height+']';
- }
-
- /* Note: There is no Dimension.hashCode. */
-
- public double getWidth() { return width; }
- public double getHeight() { return height; }
-
- public void setSize (double width, double height)
- {
- this.width = (int) width;
- this.height = (int) height;
- }
-}
diff --git a/libjava/java/awt/Event.java b/libjava/java/awt/Event.java
deleted file mode 100644
index f1f81c170e7..00000000000
--- a/libjava/java/awt/Event.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class Event
-{
- public static final int SHIFT_MASK = 1,
- CTRL_MASK = 2,
- META_MASK = 4,
- ALT_MASK = 8;
-
- public static final int ACTION_EVENT = 1001,
- BACK_SPACE = 8,
- CAPS_LOCK = 1022,
- DELETE = 127,
- DOWN = 1005,
- END = 1001,
- ENTER = 10,
- ESCAPE = 27,
- F1 = 1008,
- F10 = 1017,
- F11 = 1018,
- F12 = 1019,
- F2 = 1009,
- F3 = 1010,
- F4 = 1011,
- F5 = 1012,
- F6 = 1013,
- F7 = 1014,
- F8 = 1015,
- F9 = 1016,
- GOT_FOCUS = 1004,
- HOME = 1000,
- INSERT = 1025,
- KEY_ACTION = 403,
- KEY_ACTION_RELEASE = 404,
- KEY_PRESS = 401,
- KEY_RELEASE = 402,
- LEFT = 1006,
- LIST_DESELECT = 702,
- LIST_SELECT = 701,
- LOAD_FILE = 1002,
- LOST_FOCUS = 1005,
- MOUSE_DOWN = 501,
- MOUSE_DRAG = 506,
- MOUSE_ENTER = 504,
- MOUSE_EXIT = 505,
- MOUSE_MOVE = 503,
- MOUSE_UP = 502,
- NUM_LOCK = 1023,
- PAUSE = 1024,
- PGDN = 1003,
- PGUP = 1002,
- PRINT_SCREEN = 1020,
- RIGHT = 1007,
- SAVE_FILE = 1003,
- SCROLL_ABSOLUTE = 605,
- SCROLL_BEGIN = 606,
- SCROLL_END = 607,
- SCROLL_LINE_DOWN = 602,
- SCROLL_LINE_UP = 601,
- SCROLL_LOCK = 1021,
- SCROLL_PAGE_DOWN = 604,
- SCROLL_PAGE_UP = 603,
- TAB = 9,
- UP = 1004,
- WINDOW_DEICONIFY = 204,
- WINDOW_DESTROY = 201,
- WINDOW_EXPOSE = 202,
- WINDOW_ICONIFY = 203,
- WINDOW_MOVED = 205;
-
- public Event evt;
- public Object arg;
- public int clickCount;
- public int id;
- public int key;
- public int modifiers;
- public Object target;
- public long when;
- public int x;
- public int y;
-
- public Event (Object target, int id, Object arg)
- {
- this.id = id;
- this.target = target;
- this.arg = arg;
- }
-
- public Event (Object target, long when, int id, int x, int y, int key,
- int modifiers)
- {
- this.target = target;
- this.when = when;
- this.id = id;
- this.x = x;
- this.y = y;
- this.key = key;
- this.modifiers = modifiers;
- }
-
- public Event (Object target, long when, int id, int x, int y, int key,
- int modifiers, Object arg)
- {
- this (target, when, id, x, y, key, modifiers);
- this.arg = arg;
- }
-
- public boolean controlDown ()
- {
- return ((modifiers & CTRL_MASK) == 0 ? false : true);
- }
-
- public boolean metaDown ()
- {
- return ((modifiers & META_MASK) == 0 ? false : true);
- }
-
- protected String paramString ()
- {
- return "id=" + id + ",x=" + x + ",y=" + y + "target=" + target;
- }
-
- public boolean shiftDown()
- {
- return ((modifiers & SHIFT_MASK) == 0 ? false : true);
- }
-
- public String toString()
- {
- return getClass().getName() + "[" + paramString() + "]";
- }
-
- public void translate (int x, int y)
- {
- this.x += x;
- this.y += y;
- }
-}
diff --git a/libjava/java/awt/EventDispatchThread.java b/libjava/java/awt/EventDispatchThread.java
deleted file mode 100644
index cf2e7a676d9..00000000000
--- a/libjava/java/awt/EventDispatchThread.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/** @author Bryce McKinlay */
-
-/* Status: believed complete, but untested. */
-
-package java.awt;
-
-class EventDispatchThread extends Thread
-{
- private static int dispatchThreadNum = 1;
-
- private EventQueue queue;
-
- EventDispatchThread(EventQueue queue)
- {
- super();
- setName("AWT-EventQueue-" + dispatchThreadNum++);
- this.queue = queue;
- setPriority(NORM_PRIORITY + 1);
- }
-
- public void run()
- {
- while (true)
- {
- try
- {
- AWTEvent evt = queue.getNextEvent();
- queue.dispatchEvent(evt);
- }
- catch (Throwable x)
- {
- System.err.println("Exception during event dispatch:");
- x.printStackTrace(System.err);
- }
- }
- }
-}
diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java
deleted file mode 100644
index 2cddc6ba119..00000000000
--- a/libjava/java/awt/EventQueue.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.event.*;
-import java.util.EmptyStackException;
-import java.lang.reflect.InvocationTargetException;
-
-/* Written using on-line Java 2 Platform Standard Edition v1.3 API
- * Specification, as well as "The Java Class Libraries", 2nd edition
- * (Addison-Wesley, 1998).
- * Status: Believed complete, but untested. Check FIXME's.
- */
-
-/** @author Bryce McKinlay */
-
-public class EventQueue
-{
- private static final int INITIAL_QUEUE_DEPTH = 8;
- private AWTEvent[] queue = new AWTEvent[INITIAL_QUEUE_DEPTH];
-
- private int next_in = 0; // Index where next event will be added to queue
- private int next_out = 0; // Index of next event to be removed from queue
-
- private EventQueue next;
- private EventQueue prev;
-
- private EventDispatchThread dispatchThread = new EventDispatchThread(this);
-
- public EventQueue()
- {
- }
-
- public synchronized AWTEvent getNextEvent()
- throws InterruptedException
- {
- if (next != null)
- return next.getNextEvent();
-
- while (next_in == next_out)
- wait();
-
- AWTEvent res = queue[next_out];
-
- if (++next_out == queue.length)
- next_out = 0;
- return res;
- }
-
- /** @specnote Does not block. Returns null if there are no events on the
- * queue.
- */
- public synchronized AWTEvent peekEvent()
- {
- if (next != null)
- return next.peekEvent();
-
- if (next_in != next_out)
- return queue[next_out];
- else return null;
- }
-
- /** @specnote Does not block. Returns null if there are no matching events
- * on the queue.
- */
- public synchronized AWTEvent peekEvent(int id)
- {
- if (next != null)
- return next.peekEvent(id);
-
- int i = next_out;
- while (i != next_in)
- {
- AWTEvent qevt = queue[i];
- if (qevt.id == id)
- return qevt;
- }
- return null;
- }
-
- public synchronized void postEvent(AWTEvent evt)
- {
- if (next != null)
- {
- next.postEvent(evt);
- return;
- }
- // FIXME: Security checks?
-
- /* Check for any events already on the queue with the same source
- and ID. */
- int i = next_out;
- while (i != next_in)
- {
- AWTEvent qevt = queue[i];
- Object src;
- if (qevt.id == evt.id
- && (src = qevt.getSource()) == evt.getSource()
- && src instanceof Component)
- {
- /* If there are, call coalesceEvents on the source component
- to see if they can be combined. */
- Component srccmp = (Component) src;
- AWTEvent coalesced_evt = srccmp.coalesceEvents(qevt, evt);
- if (coalesced_evt != null)
- {
- /* Yes. Replace the existing event with the combined event. */
- queue[i] = coalesced_evt;
- return;
- }
- break;
- }
- if (++i == queue.length)
- i = 0;
- }
-
- queue[next_in] = evt;
- if (++next_in == queue.length)
- next_in = 0;
-
- if (next_in == next_out)
- {
- /* Queue is full. Extend it. */
- AWTEvent[] oldQueue = queue;
- queue = new AWTEvent[queue.length * 2];
-
- int len = oldQueue.length - next_out;
- System.arraycopy(oldQueue, next_out, queue, 0, len);
- if (next_out != 0)
- System.arraycopy(oldQueue, 0, queue, len, next_out);
-
- next_out = 0;
- next_in = oldQueue.length;
- }
- notify();
- }
-
- /** @since JDK1.2 */
- public static void invokeAndWait(Runnable runnable)
- throws InterruptedException, InvocationTargetException
- {
- EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();
- Thread current = Thread.currentThread();
- if (current == eq.dispatchThread)
- throw new Error("Can't call invokeAndWait from event dispatch thread");
-
- InvocationEvent ie =
- new InvocationEvent(eq, runnable, current, true);
-
- synchronized (current)
- {
- eq.postEvent(ie);
- current.wait();
- }
-
- Exception exception;
-
- if ((exception = ie.getException()) != null)
- throw new InvocationTargetException(exception);
- }
-
- /** @since JDK1.2 */
- static void invokeLater(Runnable runnable)
- {
- EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();
-
- InvocationEvent ie =
- new InvocationEvent(eq, runnable, null, false);
-
- eq.postEvent(ie);
- }
-
- static boolean isDispatchThread()
- {
- EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();
- return (Thread.currentThread() == eq.dispatchThread);
- }
-
- /** Allows a custom EventQueue implementation to replace this one.
- * All pending events are transferred to the new queue. Calls to postEvent,
- * getNextEvent, and peekEvent are forwarded to the pushed queue until it
- * is removed with a pop().
- */
- public synchronized void push(EventQueue newEventQueue)
- {
- int i = next_out;
- while (i != next_in)
- {
- newEventQueue.postEvent(queue[i]);
- next_out = i;
- if (++i == queue.length)
- i = 0;
- }
-
- next = newEventQueue;
- newEventQueue.prev = this;
- }
-
- /** Transfer any pending events from this queue back to the parent queue that
- * was previously push()ed. Event dispatch from this queue is suspended. */
- protected void pop() throws EmptyStackException
- {
- if (prev == null)
- throw new EmptyStackException();
-
- // Don't synchronize both this and prev at the same time, or deadlock could
- // occur.
- synchronized (prev)
- {
- prev.next = null;
- }
-
- synchronized (this)
- {
- int i = next_out;
- while (i != next_in)
- {
- prev.postEvent(queue[i]);
- next_out = i;
- if (++i == queue.length)
- i = 0;
- }
- }
- }
-
- protected void dispatchEvent(AWTEvent evt)
- {
- if (evt instanceof ActiveEvent)
- {
- ActiveEvent active_evt = (ActiveEvent) evt;
- active_evt.dispatch();
- }
- else
- {
- Object source = evt.getSource();
-
- if (source instanceof Component)
- {
- Component srccmp = (Component) source;
- srccmp.dispatchEvent(evt);
- }
- else if (source instanceof MenuComponent)
- {
- MenuComponent srccmp = (MenuComponent) source;
- srccmp.dispatchEvent(evt);
- }
- }
- }
-}
diff --git a/libjava/java/awt/FileDialog.java b/libjava/java/awt/FileDialog.java
deleted file mode 100644
index cdcf442dfd3..00000000000
--- a/libjava/java/awt/FileDialog.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class FileDialog extends Dialog
-{
- public FileDialog (Frame owner)
- {
- super(owner);
- // FIXME
- }
-}
diff --git a/libjava/java/awt/Font.java b/libjava/java/awt/Font.java
deleted file mode 100644
index 833b3c85b2b..00000000000
--- a/libjava/java/awt/Font.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.util.Locale;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Stubbed; A very incomplete implementation.
- */
-
-public class Font
-{
- // FIXME
-
- public static final int PLAIN = 0;
- public static final int BOLD = 1;
- public static final int ITALIC = 2;
- public static final int ROMAN_BASELINE = 0;
- public static final int CENTER_BASELINE = 1;
- public static final int HANGING_BASELINE = 2;
- protected String name;
- protected int style;
- protected int size;
- protected float pointSize;
-
- public Font(String name, int style, int size)
- {
- this.name = name;
- this.style = style & 0x3; // Only use lowest 2 bits.
- this.size = size;
- pointSize = size; // Assume some subclass can set a different val.
- }
-
- public boolean isPlain()
- {
- if (style == PLAIN)
- return true;
-
- return false;
- }
-
- public boolean isBold()
- {
- if ((style & BOLD) == BOLD)
- return true;
-
- return false;
- }
-
- public boolean isItalic()
- {
- if ((style & ITALIC) == ITALIC)
- return true;
-
- return false;
- }
-
- public String getName()
- {
- return name;
- }
-
- public String getFamily()
- {
- // FIXME
- return null;
- }
-
- public String getFamily(Locale l)
- {
- // FIXME
- return null;
- }
-
- public int getStyle()
- {
- return style;
- }
-
- public int getSize()
- {
- return size;
- }
-
- public float getSize2D()
- {
- return pointSize;
- }
-
- public static Font decode(String str) { return null; } // FIXME
-
- public String toString()
- {
- String style_str = "";
- if (isPlain())
- style_str = "plain";
- else
- {
- if (isBold())
- style_str += "bold";
- if (isItalic())
- style_str += "italic";
- }
- return getClass().getName() + "[family=" + getFamily() + ",name=" +
- getName() + ",style=" + style_str + ",size=" + getSize() + "]";
- }
-}
diff --git a/libjava/java/awt/FontMetrics.java b/libjava/java/awt/FontMetrics.java
deleted file mode 100644
index dcd0946fa5b..00000000000
--- a/libjava/java/awt/FontMetrics.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * Status: Stubbed; A very incomplete implementation.
- */
-
-public class FontMetrics implements java.io.Serializable
-{
- protected Font font;
-
- protected FontMetrics(Font font)
- {
- this.font = font;
- }
-
- public Font getFont()
- {
- return font;
- }
-
- public int getLeading()
- {
- return getMaxAscent() + getMaxDescent() - (getAscent() + getDescent());
- }
-
- public int getAscent()
- {
- return getHeight() - (getDescent() + getLeading());
- }
-
- public int getDescent()
- {
- return getHeight() - (getLeading() + getDescent());
- }
-
- public int getHeight()
- {
- return getLeading() + getAscent() + getDescent();
- }
-
- public int getMaxAscent()
- {
- return getAscent();
- }
-
- public int getMaxDescent()
- {
- return getDescent();
- }
-
- /* @deprecated Use getMaxDescent() instead. */
- public int getMaxDecent()
- {
- return getMaxDescent();
- }
-
- /** @return max advance, or -1 if unknown. */
- public int getMaxAdvance()
- {
- return -1;
- }
-
-
- public int charWidth(int ch)
- {
- return charWidth((char) ch);
- }
-
- public int charWidth(char ch)
- {
- Character chObj = new Character(ch);
- return stringWidth(chObj.toString());
- }
-
- public int stringWidth(String str)
- {
- return charsWidth(str.toCharArray(), 0, str.length());
- }
-
- public int charsWidth(char[] data, int off, int len)
- {
- return stringWidth(new String(data, off, len));
- }
-
- public int bytesWidth(byte[] data, int off, int len)
- {
- return stringWidth(new String(data, off, len));
- }
-
- public int[] getWidths()
- {
- int[] widths = new int[256];
- for (char c=0; c<256; c++) widths[c] = charWidth(c);
- return widths;
- }
-
- public boolean hasUniformLineMetrics()
- {
- // FIXME
- return false;
- }
-
- // Don't have LineMetrics yet...
- /*
- public LineMetrics getLineMetrics(String str, Graphics context)
-
- public LineMetrics getLineMetrics(String str, int beginIndex, int limit,
- Graphics context)
-
- public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit,
- Graphics context)
-
- public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex,
- int limit, Graphics context)
- */
-
- // Don't have Java2D yet.
- /*
- public Rectangle2D getStringBounds(String str, Graphics context)
-
- public Rectangle2D getStringBounds(String str, int beginIndex, int limit,
- Graphics context)
-
- public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit,
- Graphics context)
-
- public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex,
- int limit, Graphics context)
-
- public Rectangle2D getMaxCharBounds(Graphics context)
- */
-
- public String toString()
- {
- return this.getClass() + "[font=" + font + ",ascent=" + getAscent()
- + ",descent=" + getDescent() + ",height=" + getHeight() + "]";
- }
-}
diff --git a/libjava/java/awt/Frame.java b/libjava/java/awt/Frame.java
deleted file mode 100644
index 22497f7f6b7..00000000000
--- a/libjava/java/awt/Frame.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.peer.FramePeer;
-
-/* A very incomplete placeholder. */
-
-public class Frame extends Window implements MenuContainer
-{
- public static final int NORMAL = 0;
- public static final int ICONIFIED = 1;
-
- MenuBar menuBar = null;
- String title;
-
- private transient Image iconImage;
- private transient boolean isResizable = true;
- private transient int state = NORMAL;
-
- public Frame ()
- {
- super();
- }
-
- public Frame(GraphicsConfiguration gc)
- {
- super(gc);
- }
-
- public Frame (String title)
- {
- super();
- setTitle(title);
- }
-
- public Frame(String title, GraphicsConfiguration gc)
- {
- super(gc);
- setTitle(title);
- }
-
- public String getTitle()
- {
- return (title != null) ? title : "";
- }
-
- public void setTitle (String title)
- {
- this.title = title;
- if (peer != null)
- ((FramePeer)peer).setTitle(title);
- }
-
- public Image getIconImage()
- {
- return iconImage;
- }
-
- public void setIconImage(Image image)
- {
- iconImage = image;
- if (peer != null)
- ((FramePeer) peer).setIconImage(iconImage);
- }
-
- protected void finalize() throws Throwable
- {
- //frames.remove(this);
- /* FIXME: This won't work. Finalize will never be called if frames
- has a reference to the object. We need weak references to
- implement this correctly. */
-
- super.finalize();
- }
-
- public synchronized void setMenuBar (MenuBar menuBar)
- {
- if (this.menuBar != menuBar)
- {
- //this.menuBar.removeNotify();
- this.menuBar = menuBar;
- //this.menuBar.addNotify();
- }
-
- if (peer != null)
- ((FramePeer) peer).setMenuBar(menuBar);
- }
-
- public boolean isResizable()
- {
- return isResizable;
- }
-
- public void setResizable(boolean resizable)
- {
- isResizable = resizable;
- if (peer != null)
- ((FramePeer) peer).setResizable(isResizable);
- }
-
- public int getState()
- {
- /* FIXME: State might have changed in the peer... Must check. */
-
- return state;
- }
-
-
- public synchronized void addNotify ()
- {
- if (peer == null)
- peer = getToolkit ().createFrame (this);
- super.addNotify();
- }
-
- public boolean postEvent(Event evt) { return false; } // FIXME
-
- public void remove(MenuComponent m)
- {
- if (m == menuBar)
- {
- setMenuBar(null);
- return;
- }
-
- super.remove(m);
- }
-
- public void removeNotify()
- {
- //if ((peer != null) && (menuBar != null)) menuBar.removeNotify();
- super.removeNotify();
- }
-
- public static Frame[] getFrames()
- {
- //Frame[] array = new Frames[frames.size()];
- //return frames.toArray(array);
-
- // see finalize() comment
- String msg = "FIXME: can't be implemented without weak references";
- throw new UnsupportedOperationException(msg);
- }
-}
diff --git a/libjava/java/awt/Graphics.java b/libjava/java/awt/Graphics.java
deleted file mode 100644
index 56c732fc2f1..00000000000
--- a/libjava/java/awt/Graphics.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.image.ImageObserver;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 15, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Almost complete
- */
-
-public abstract class Graphics
-{
- protected Graphics() {}
-
- public abstract Graphics create();
-
- public Graphics create(int x, int y, int width, int height)
- {
- Graphics gfx = create();
- gfx.translate(x, y);
- gfx.setClip(0, y, width, height);
- return gfx;
- }
-
- public abstract void translate(int x, int y);
-
- public abstract Color getColor();
-
- public abstract void setColor(Color color);
-
- public abstract void setPaintMode();
-
- public abstract void setXORMode(Color altColor);
-
- public abstract Font getFont();
-
- public abstract void setFont(Font font);
-
- public FontMetrics getFontMetrics()
- {
- return getFontMetrics(getFont());
- }
-
- public abstract FontMetrics getFontMetrics(Font font);
-
- public abstract Rectangle getClipBounds();
-
- public abstract void clipRect(int x, int y, int width, int height);
-
- public abstract void setClip(int x, int y, int width, int height);
-
- public abstract Shape getClip();
-
- public abstract void setClip(Shape clip);
-
- public abstract void copyArea(int x, int y, int width, int height,
- int dx, int dy);
-
- public abstract void drawLine(int x1, int y1, int x2, int y2);
-
- public abstract void fillRect(int x, int y, int width, int height);
-
- public void drawRect(int x, int y, int width, int height)
- {
- int x1 = x;
- int y1 = y;
- int x2 = x + width;
- int y2 = y + height;
- drawLine(x1, y1, x2, y1);
- drawLine(x2, y1, x2, y2);
- drawLine(x2, y2, x1, y2);
- drawLine(x1, y2, x1, y1);
- }
-
- public abstract void clearRect(int x, int y, int width, int height);
-
- public abstract void drawRoundRect(int x, int y, int width, int height,
- int arcWidth, int arcHeight);
-
- public abstract void fillRoundRect(int x, int y, int width, int height,
- int arcWidth, int arcHeight);
-
- public void draw3DRect(int x, int y, int width, int height,
- boolean raised)
- {
- Color color = getColor();
- Color tl = color.brighter();
- Color br = color.darker();
-
- if (!raised)
- {
- Color tmp = tl;
- tl = br;
- br = tmp;
- }
-
- int x1 = x;
- int y1 = y;
- int x2 = x + width;
- int y2 = y + height;
-
- setColor(tl);
- drawLine(x1, y1, x2, y1);
- drawLine(x1, y2, x1, y1);
- setColor(br);
- drawLine(x2, y1, x2, y2);
- drawLine(x2, y1, x1, y2);
- setColor(color);
- }
-
- public void fill3DRect(int x, int y, int width, int height,
- boolean raised)
- {
- fillRect(x, y, width, height);
- draw3DRect(x, y, width-1, height-1, raised);
- }
-
- public abstract void drawOval(int x, int y, int width, int height);
-
- public abstract void fillOval(int x, int y, int width, int height);
-
- public abstract void drawArc(int x, int y, int width, int height,
- int startAngle, int arcAngle);
-
- public abstract void fillArc(int x, int y, int width, int height,
- int startAngle, int arcAngle);
-
- public abstract void drawPolyline(int[] xPoints, int[] yPoints,
- int nPoints);
-
- public abstract void drawPolygon(int[] xPoints, int[] yPoints,
- int nPoints);
-
- //public void drawPolygon(Polygon p);
-
- public abstract void fillPolygon(int[] xPoints, int[] yPoints,
- int nPoints);
-
- //public void fillPolygon(Polygon p);
-
- public abstract void drawString(String str, int x, int y);
-
- /*
- public abstract void drawString(AttributedCharacterIterator iterator,
- int x, int y)
- */
-
- public void drawChars(char[] data, int offset, int length,
- int x, int y)
- {
- String str = new String(data, offset, length);
- drawString(str, x, y);
- }
-
- public void drawBytes(byte[] data, int offset, int length,
- int x, int y)
- {
- String str = new String(data, offset, length);
- drawString(str, x, y);
- }
-
- public abstract boolean drawImage(Image img, int x, int y,
- ImageObserver observer);
-
- public abstract boolean drawImage(Image img, int x, int y,
- int width, int height,
- ImageObserver observer);
-
- public abstract boolean drawImage(Image img, int x, int y, Color bgcolor,
- ImageObserver observer);
-
- public abstract boolean drawImage(Image img, int x, int y,
- int width, int height, Color bgcolor,
- ImageObserver observer);
-
- public abstract boolean drawImage(Image img,
- int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- ImageObserver observer);
-
- public abstract boolean drawImage(Image img,
- int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- Color bgcolor, ImageObserver observer);
-
- public abstract void dispose();
-
- public void finalize()
- {
- dispose();
- }
-
- public String toString()
- {
- return super.toString(); // FIXME
- }
-
- /** @deprecated */
- public Rectangle getClipRect()
- {
- return getClipBounds(null);
- }
-
- public boolean hitClip(int x, int y, int width, int height)
- {
- throw new UnsupportedOperationException("not implemented yet");
- }
-
- public Rectangle getClipBounds(Rectangle r)
- {
- Rectangle clipBounds = getClipBounds();
-
- if (r == null)
- return clipBounds;
-
- r.x = clipBounds.x;
- r.y = clipBounds.y;
- r.width = clipBounds.width;
- r.height = clipBounds.height;
- return r;
- }
-}
diff --git a/libjava/java/awt/Graphics2D.java b/libjava/java/awt/Graphics2D.java
deleted file mode 100644
index 0f5cce1e983..00000000000
--- a/libjava/java/awt/Graphics2D.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.geom.AffineTransform;
-import java.awt.image.ImageObserver;
-
-//import java.util.Map;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public abstract class Graphics2D extends Graphics
-{
-
- protected Graphics2D()
- {
- }
-
- public void draw3DRect(int x, int y, int width, int height,
- boolean raised)
- {
- super.draw3DRect(x, y, width, height, raised);
- }
-
- public void fill3DRect(int x, int y, int width, int height,
- boolean raised)
- {
- super.fill3DRect(x, y, width, height, raised);
- }
-
- public abstract void draw(Shape shape);
-
- public abstract boolean drawImage(Image image, AffineTransform xform,
- ImageObserver obs);
-
- /*
- public abstract void drawImage(BufferedImage image,
- BufferedImageOp op,
- int x,
- int y);
- */
-
- /*
- public abstract void drawRenderedImage(RenderedImage image,
- AffineTransform xform);
- */
-
- /*
- public abstract void drawRenderableImage(RenderableImage image,
- AffineTransform xform);
- */
-
- public abstract void drawString(String text, int x, int y);
-
- public abstract void drawString(String text, float x, float y);
-
- /*
- public abstract void drawString(AttributedCharacterIterator iterator,
- int x, int y);
- */
-
- /*
- public abstract void drawString(AttributedCharacterIterator iterator,
- float x, float y);
- */
-
- /*
- public abstract void drawGlyphVector(GlyphVector g, float x, float y);
- */
-
- public abstract void fill(Shape shape);
-
- public abstract boolean hit(Rectangle rect, Shape text,
- boolean onStroke);
-
- public abstract GraphicsConfiguration getDeviceConfiguration();
-
- //public abstract void setComposite(Composite comp);
-
- public abstract void setPaint(Paint paint);
-
- //public abstract void setStroke(Stroke stroke)
-
- public abstract void setRenderingHint(RenderingHints.Key hintKey,
- Object hintValue);
-
- public abstract Object getRenderingHint(RenderingHints.Key hintKey);
-
- //public abstract void setRenderingHints(Map hints);
-
- //public abstract void addRenderingHints(Map hints);
-
- public abstract RenderingHints getRenderingHints();
-
- public abstract void translate(int x, int y);
-
- public abstract void translate(double tx, double ty);
-
- public abstract void rotate(double theta);
-
- public abstract void rotate(double theta, double x, double y);
-
- public abstract void scale(double scaleX, double scaleY);
-
- public abstract void shear(double shearX, double shearY);
-
- public abstract void transform(AffineTransform Tx);
-
- public abstract void setTransform(AffineTransform Tx);
-
- public abstract AffineTransform getTransform();
-
- public abstract Paint getPaint();
-
- //public abstract Composite getComposite();
-
- public abstract void setBackground(Color color);
-
- public abstract Color getBackground();
-
- //public abstract Stroke getStroke();
-
- public abstract void clip(Shape s);
-
- //public abstract FontRenderContext getFontRenderContext()
-}
diff --git a/libjava/java/awt/GraphicsConfiguration.java b/libjava/java/awt/GraphicsConfiguration.java
deleted file mode 100644
index ca4b56622a6..00000000000
--- a/libjava/java/awt/GraphicsConfiguration.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Status: Complete, but commented out until we have the required
- GraphicsDevice. */
-
-package java.awt;
-
-import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.geom.AffineTransform;
-
-public abstract class GraphicsConfiguration
-{
- /*
- public abstract GraphicsDevice getDevice();
- */
-
- public abstract BufferedImage createCompatibleImage(int width, int height);
- public abstract BufferedImage createCompatibleImage(int width, int height,
- int transparency);
- public abstract ColorModel getColorModel();
- public abstract ColorModel getColorModel(int transparency);
- public abstract AffineTransform getDefaultTransform();
- public abstract AffineTransform getNormalizingTransform();
-
- /* @since 1.3 */
- public abstract Rectangle getBounds();
-}
diff --git a/libjava/java/awt/IllegalComponentStateException.java b/libjava/java/awt/IllegalComponentStateException.java
deleted file mode 100644
index ff97a576ecf..00000000000
--- a/libjava/java/awt/IllegalComponentStateException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-
-public class IllegalComponentStateException extends IllegalStateException
-{
- public IllegalComponentStateException ()
- {
- super ();
- }
-
- public IllegalComponentStateException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/awt/Image.java b/libjava/java/awt/Image.java
deleted file mode 100644
index 488109b73a9..00000000000
--- a/libjava/java/awt/Image.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.image.ImageObserver;
-import java.awt.image.ImageProducer;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 15, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Mostly complete, but look for FIXMEs.
- */
-
-public abstract class Image extends Object
-{
- public static final Object UndefinedProperty;
-
- public static final int SCALE_DEFAULT = 1<<0,
- SCALE_FAST = 1<<1,
- SCALE_SMOOTH = 1<<2,
- SCALE_REPLICATE = 1<<3,
- SCALE_AREA_AVERAGING = 1<<4;
-
- public abstract int getWidth(ImageObserver observer);
-
- public abstract int getHeight(ImageObserver observer);
-
- public abstract ImageProducer getSource();
-
- public abstract Graphics getGraphics();
-
- public abstract Object getProperty(String name, ImageObserver observer);
-
- public Image getScaledInstance(int width, int height, int hints)
- {
- throw new UnsupportedOperationException("FIXME: not implemented yet");
- }
-
- public abstract void flush();
-}
diff --git a/libjava/java/awt/Insets.java b/libjava/java/awt/Insets.java
deleted file mode 100644
index c28353e435e..00000000000
--- a/libjava/java/awt/Insets.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-public class Insets implements Cloneable, java.io.Serializable
-{
- public int top;
- public int left;
- public int bottom;
- public int right;
-
- public Insets(int top, int left, int bottom, int right)
- {
- this.top = top;
- this.left = left;
- this.bottom = bottom;
- this.right = right;
- }
-
- public boolean equals(Object obj)
- {
- if (obj instanceof Insets)
- {
- Insets i = (Insets) obj;
- return (i.top == top
- && i.left == left
- && i.bottom == bottom
- && i.right == right);
- }
- return false;
- }
-
- public int hashCode()
- {
- // FIXME: what is the correct algorithm for this?
- return (top * (2 * left) * (3 * right) * (4 * bottom));
- }
-
- public String toString()
- {
- return (getClass() + "[top=" + top + ",left=" + left + ",bottom="
- + bottom + ",right=" + right + "]");
- }
-
- public Object clone()
- {
- Insets r = new Insets(top, left, bottom, right);
- return r;
- }
-}
diff --git a/libjava/java/awt/ItemSelectable.java b/libjava/java/awt/ItemSelectable.java
deleted file mode 100644
index f51bb33ea5a..00000000000
--- a/libjava/java/awt/ItemSelectable.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface ItemSelectable
-{
- public void addItemListener (ItemListener l);
- public Object[] getSelectedObjects ();
- public void removeItemListener (ItemListener l);
-}
diff --git a/libjava/java/awt/Label.java b/libjava/java/awt/Label.java
deleted file mode 100644
index 840456db74f..00000000000
--- a/libjava/java/awt/Label.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.peer.ComponentPeer;
-import java.awt.peer.LabelPeer;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 12, 2000
- */
-
-public class Label extends Component
-{
- public static final int CENTER = 1;
- public static final int LEFT = 0;
- public static final int RIGHT = 2;
-
- public Label ()
- {
- this ("", LEFT);
- }
-
- public Label (String text)
- {
- this (text, LEFT);
- }
-
- public Label (String text, int alignment)
- {
- if (alignment != CENTER && alignment != LEFT && alignment != RIGHT)
- throw new IllegalArgumentException ();
- this.text = text;
- this.alignment = alignment;
- }
-
- public void addNotify ()
- {
- if (peer == null)
- peer = (ComponentPeer) getToolkit ().createLabel (this);
- }
-
- public int getAlignment ()
- {
- return alignment;
- }
-
- public String getText ()
- {
- return text;
- }
-
- protected String paramString ()
- {
- return "Label[" + alignment + "," + text + "]";
- }
-
- public void setAlignment (int alignment)
- {
- if (alignment != CENTER && alignment != LEFT && alignment != RIGHT)
- throw new IllegalArgumentException ();
- this.alignment = alignment;
- if (peer != null)
- {
- LabelPeer lp = (LabelPeer) peer;
- lp.setAlignment (alignment);
- }
- }
-
- public void setText (String text)
- {
- this.text = text;
- if (peer != null)
- {
- LabelPeer lp = (LabelPeer) peer;
- lp.setText (text);
- }
- }
-
- private String text;
- private int alignment;
-}
diff --git a/libjava/java/awt/LayoutManager.java b/libjava/java/awt/LayoutManager.java
deleted file mode 100644
index 671596ec371..00000000000
--- a/libjava/java/awt/LayoutManager.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Status: Believed complete and correct. */
-
-public interface LayoutManager
-{
- public void addLayoutComponent (String name, Component comp);
- public void layoutContainer (Container parent);
- public Dimension minimumLayoutSize (Container parent);
- public Dimension preferredLayoutSize (Container parent);
- public void removeLayoutComponent (Component comp);
-}
diff --git a/libjava/java/awt/LayoutManager2.java b/libjava/java/awt/LayoutManager2.java
deleted file mode 100644
index a79d64e85fa..00000000000
--- a/libjava/java/awt/LayoutManager2.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Status: Believed complete and correct. */
-
-public interface LayoutManager2 extends LayoutManager
-{
- public void addLayoutComponent (Component comp, Object constraints);
- public float getLayoutAlignmentX (Container target);
- public float getLayoutAlignmentY (Container target);
- public void invalidateLayout (Container target);
- public Dimension maximumLayoutSize (Container target);
-}
diff --git a/libjava/java/awt/List.java b/libjava/java/awt/List.java
deleted file mode 100644
index ddc57767978..00000000000
--- a/libjava/java/awt/List.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class List extends Component
-{
-}
diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java
deleted file mode 100644
index 34dd600d779..00000000000
--- a/libjava/java/awt/Menu.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.util.Vector;
-
-/* Status: Incomplete. */
-
-public class Menu extends MenuItem implements MenuContainer
-{
- // Fields from the serialization spec. Decalare others "transient".
- Vector items = new Vector();
- boolean tearOff;
- boolean isHelpMenu;
- int menuSerializedDataVersion;
-
- static final MenuItem separator = new MenuItem("-");
-
- public Menu()
- {
- this(null, false);
- }
-
- public Menu(String label)
- {
- this(label, false);
- }
-
- public Menu(String label, boolean tearOff)
- {
- super(label);
- this.tearOff = tearOff;
- }
-
- public void addNotify()
- {
- // FIXME
- }
-
- public void removeNotify()
- {
- // FIXME
- }
-
- public boolean isTearOff()
- {
- return tearOff;
- }
-
- public int getItemCount()
- {
- return items.size();
- }
-
- /** @deprecated Use getItemCount() instead. */
- public int countItems()
- {
- return getItemCount();
- }
-
- public MenuItem getItem(int index)
- {
- return (MenuItem) items.elementAt(index);
- }
-
- public synchronized MenuItem add(MenuItem mi)
- {
- items.addElement(mi);
- if (mi.parent != null)
- {
- mi.parent.remove(mi);
- }
- mi.parent = this;
- return mi;
- }
-
- public void add(String label)
- {
- MenuItem mi = new MenuItem(label);
- this.add(mi);
- }
-
- public synchronized void insert(MenuItem menuitem, int index)
- {
- if (index < 0)
- throw new IllegalArgumentException();
- items.insertElementAt(menuitem, index);
- }
-
- public void insert(String label, int index)
- {
- MenuItem mi = new MenuItem(label);
- this.insert(mi, index);
- }
-
- public void addSeparator()
- {
- this.add(separator);
- }
-
- public void insertSeparator(int index)
- {
- this.insert(separator, index);
- }
-
- public synchronized void remove(int index)
- {
- items.removeElementAt(index);
- }
-
- public synchronized void remove(MenuComponent item)
- {
- items.removeElement(item);
- }
-
- public synchronized void removeAll()
- {
- items.removeAllElements();
- }
-
- public String paramString()
- {
- return getName() + ",label" + label + ",tearOff=" + tearOff +
- ",isHelpMenu=" + isHelpMenu;
- }
-
- // Accessibility API not yet implemented.
- // public AccessibleContext getAccessibleContext()
-}
diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java
deleted file mode 100644
index ce7d3bc368f..00000000000
--- a/libjava/java/awt/MenuBar.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class MenuBar extends MenuComponent implements MenuContainer
-{
- Menu[] menus;
- int count;
-
- public synchronized Menu add (Menu m)
- {
- if (menus == null)
- menus = new Menu[1];
- else if (count == menus.length)
- {
- Menu[] newMenus = new Menu[2 * count];
- System.arraycopy(menus, 0, newMenus, 0, count);
- }
- menus[count++] = m;
- return m;
- }
-
- public void remove (MenuComponent comp)
- {
- for (int i = count; --i >= 0; )
- {
- if (menus[i] == comp)
- {
- System.arraycopy(menus, i, menus, i+1, count-i-1);
- count--;
- // FIXME: destroy peer
- return;
- }
- }
- }
-
- public Font getFont() { return null; } // FIXME
- public boolean postEvent(Event evt) { return false; } // FIXME
-}
diff --git a/libjava/java/awt/MenuComponent.java b/libjava/java/awt/MenuComponent.java
deleted file mode 100644
index 5c0ea69419a..00000000000
--- a/libjava/java/awt/MenuComponent.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Status: partially complete, untested. */
-
-public abstract class MenuComponent
-{
- // Fields from the serialization spec. Decalare others "transient".
- Font font;
- String name;
- boolean nameExplicitlySet;
- boolean newEventsOnly;
- //AccessibleContext accessibleContext;
-
- transient MenuContainer parent;
- transient java.awt.peer.MenuComponentPeer peer;
-
- public MenuComponent()
- {
- }
-
- public String getName()
- {
- if (name == null && !nameExplicitlySet)
- name = generateName();
- return name;
- }
-
- /** Subclasses should override this to generate unique names like
- * "menuitem0".
- */
- String generateName()
- {
- // MenuComponent is abstract.
- return null;
- }
-
- public void setName(String name)
- {
- nameExplicitlySet = true;
- this.name = name;
- }
-
- public MenuContainer getParent()
- {
- return parent;
- }
-
- /** @deprecated Don't use this. */
- public java.awt.peer.MenuComponentPeer getPeer()
- {
- return peer;
- }
-
- public Font getFont()
- {
- return font;
- }
-
- public void setFont(Font f)
- {
- this.font = f;
- }
-
- public void removeNotify()
- {
- // FIXME
- }
-
- /** @deprecated Replaced by dispatchEvent(AWTEvent) */
- public boolean postEvent(Event evt)
- {
- return false;
- }
-
- public final void dispatchEvent(AWTEvent e)
- {
- // FIXME
- dispatchEventImpl(e);
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- // This is overridden by subclasses that support events.
- }
-
- protected void processEvent(AWTEvent e)
- {
- // Nothing to do here? This is be overridden by subclasses that
- // support events.
- }
-
- protected String paramString()
- {
- return name;
- }
-
- public String toString()
- {
- return this.getClass().getName() + "[" + paramString() + "]";
- }
-
- protected final Object getTreeLock()
- {
- // FIXME: figure out how the tree lock works.
- return null;
- }
-
- // Accessibility API not yet implemented.
- // public AccessibleContext getAccessibleContext()
-}
diff --git a/libjava/java/awt/MenuContainer.java b/libjava/java/awt/MenuContainer.java
deleted file mode 100644
index 295e240cc7b..00000000000
--- a/libjava/java/awt/MenuContainer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public interface MenuContainer
-{
- public Font getFont();
-
- /**
- * @deprected
- */
- public boolean postEvent(Event evt);
-
- public void remove(MenuComponent comp);
-}
-
diff --git a/libjava/java/awt/MenuItem.java b/libjava/java/awt/MenuItem.java
deleted file mode 100644
index 6e79ca0fc85..00000000000
--- a/libjava/java/awt/MenuItem.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-import java.util.EventListener;
-
-/* A very incomplete placeholder. */
-
-public class MenuItem extends MenuComponent
-{
- // Fields from the serialization spec. Decalare others "transient".
- boolean enabled;
- String label;
- String actionCommand;
- long eventMask;
- MenuShortcut shortcut;
- int menuItemSerializedDataVersion;
-
- transient ActionListener actionListener;
-
- public MenuItem ()
- {
- this.label = "";
- }
-
- public MenuItem (String label)
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- public synchronized void setLabel(String label)
- {
- this.label = label;
- }
-
- public boolean isEnabled()
- {
- return enabled;
- }
-
- public synchronized void setEnabled(boolean b)
- {
- this.enabled = b;
- }
-
- /** @deprecated Use setEnabled() instead. */
- public void enable()
- {
- setEnabled(true);
- }
-
- /** @deprecated Use setEnabled() instead. */
- public void enable(boolean b)
- {
- setEnabled(b);
- }
-
- /** @deprecated Use setEnabled() instead. */
- public void disable()
- {
- setEnabled(false);
- }
-
- public MenuShortcut getShortcut()
- {
- return shortcut;
- }
-
- public void setShortcut(MenuShortcut s)
- {
- this.shortcut = s;
- }
-
- public void deleteShortcut()
- {
- setShortcut(null);
- }
-
- protected final void enableEvents(long eventsToEnable)
- {
- eventMask |= eventsToEnable;
- // TODO: see comment in Component.enableEvents().
- }
-
- protected final void disableEvents(long eventsToDisable)
- {
- eventMask &= ~eventsToDisable;
- }
-
- public void setActionCommand(String command)
- {
- this.actionCommand = command;
- }
-
- public String getActionCommand()
- {
- return actionCommand;
- }
-
- public synchronized void addActionListener(ActionListener l)
- {
- actionListener = AWTEventMulticaster.add(actionListener, l);
- if (actionListener != null)
- enableEvents(AWTEvent.ACTION_EVENT_MASK);
- }
-
- public synchronized void removeActionListener(ActionListener l)
- {
- actionListener = AWTEventMulticaster.remove(actionListener, l);
- }
-
- /** Returns all registered EventListers of the given listenerType.
- * listenerType must be a subclass of EventListener, or a
- * ClassClassException is thrown.
- * @since 1.3
- */
- public EventListener[] getListeners(Class listenerType)
- {
- if (listenerType == ActionListener.class)
- return Component.getListenersImpl(listenerType, actionListener);
- else
- return Component.getListenersImpl(listenerType, null);
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- if (e.id <= ActionEvent.ACTION_LAST
- && e.id >= ActionEvent.ACTION_FIRST
- && (actionListener != null
- || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
- processEvent(e);
- }
-
- protected void processEvent(AWTEvent e)
- {
- if (e instanceof ActionEvent)
- processActionEvent((ActionEvent) e);
- }
-
- protected void processActionEvent(ActionEvent e)
- {
- if (actionListener != null)
- actionListener.actionPerformed(e);
- }
-
- public String paramString()
- {
- return name + ",label=" + label;
- }
-
- // Accessibility API not yet implemented.
- // public AccessibleContext getAccessibleContext()
-}
diff --git a/libjava/java/awt/MenuShortcut.java b/libjava/java/awt/MenuShortcut.java
deleted file mode 100644
index b1989262771..00000000000
--- a/libjava/java/awt/MenuShortcut.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.event.KeyEvent;
-
-/* Status: Complete, except for hashCode(). Untested. */
-
-public class MenuShortcut
-{
- // Fields from the serialization spec. Decalare others "transient".
- int key;
- boolean usesShift;
-
- public MenuShortcut(int key)
- {
- this.key = key;
- }
-
- public MenuShortcut(int key, boolean useShiftModifier)
- {
- this.key = key;
- this.usesShift = useShiftModifier;
- }
-
- public int getKey()
- {
- return key;
- }
-
- public boolean usesShiftModifier()
- {
- return usesShift;
- }
-
- public boolean equals(MenuShortcut ms)
- {
- return (ms.key == key && ms.usesShift == usesShift);
- }
-
- public boolean equals(Object obj)
- {
- if (obj instanceof MenuShortcut)
- {
- MenuShortcut ms = (MenuShortcut) obj;
- return (ms.key == key && ms.usesShift == usesShift);
- }
- return false;
- }
-
- public int hashCode()
- {
- // FIXME: find/implement the correct algorithm for this
- if (usesShift)
- return (2 * key);
- else
- return key;
- }
-
- public String toString()
- {
- return paramString(); // ?
- }
-
- protected String paramString()
- {
- return KeyEvent.getKeyText(key);
- }
-}
diff --git a/libjava/java/awt/Paint.java b/libjava/java/awt/Paint.java
deleted file mode 100644
index 0836402ef91..00000000000
--- a/libjava/java/awt/Paint.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 15, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Stubbed.
- */
-
-public interface Paint extends Transparency
-{
- // FIXME
- // public PaintContext createContext(ColorModel cm,
- // Rectangle deviceBounds,
- // Rectangle2D userBounds,
- // AffineTransform xform,
- // RenderingHints hints);
-}
diff --git a/libjava/java/awt/PaintContext.java b/libjava/java/awt/PaintContext.java
deleted file mode 100644
index 0b4e6a7b0d7..00000000000
--- a/libjava/java/awt/PaintContext.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Partially stubbed.
- */
-
-public interface PaintContext
-{
- public void dispose();
- // FIXME
- // public ColorModel getColorModel();
- // public Raster getRaster(int x, int y, int w, int h);
-}
diff --git a/libjava/java/awt/Panel.java b/libjava/java/awt/Panel.java
deleted file mode 100644
index a6e4f3e39f2..00000000000
--- a/libjava/java/awt/Panel.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-import java.awt.peer.ComponentPeer;
-
-/* An incomplete placeholder. */
-
-public class Panel extends Container
-{
- public Panel()
- {
- this(
- // should be: new FlowLayout()
- null // FIXME
- );
- }
-
- public Panel(LayoutManager layout)
- {
- super();
- setLayout (layout);
- }
-
- //public AccessibleContext getAccessibleContext()
-
- public void addNotify()
- {
- if (getPeer() == null)
- peer = (ComponentPeer) getToolkit().createPanel(this);
- super.addNotify();
- }
-}
diff --git a/libjava/java/awt/Point.java b/libjava/java/awt/Point.java
deleted file mode 100644
index df8aba51700..00000000000
--- a/libjava/java/awt/Point.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.geom.Point2D;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date February 8, 1999.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct, except that neither toString
- * nor hashCode have been compared with JDK output.
- */
-
-public class Point extends Point2D implements java.io.Serializable
-{
- public int x;
- public int y;
-
- public Point () { }
-
- public Point (Point p) { this.x = p.x; this.y = p.y; }
-
- public Point (int x, int y) { this.x = x; this.y = y; }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Point))
- return false;
- Point p = (Point) obj;
- return this.x == p.x && this.y == p.y;
- }
-
- public int hashCode () { return x ^ y; }
-
- public Point getLocation () { return new Point(this); }
-
- public void move (int x, int y) { this.x = x; this.y = y; }
-
- public void setLocation (int x, int y) { this.x = x; this.y = y; }
-
- public void setLocation (Point pt) { this.x = pt.x; this.y = pt.y; }
-
- public void translate (int x, int y) { this.x += x; this.y += y; }
-
- public String toString ()
- {
- return "Point[x:"+x+",y:"+y+']';
- }
-
- public double getX() { return x; }
- public double getY() { return y; }
-
- public void setLocation (double x, double y)
- { this.x = (int) x; this.y = (int) y; }
-
-}
diff --git a/libjava/java/awt/PopupMenu.java b/libjava/java/awt/PopupMenu.java
deleted file mode 100644
index 3be7f847cae..00000000000
--- a/libjava/java/awt/PopupMenu.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* Status: Incomplete. */
-
-public class PopupMenu extends Menu
-{
- public PopupMenu()
- {
- super();
- }
-
- public PopupMenu(String label)
- {
- super(label);
- }
-
- public void addNotify()
- {
- // FIXME
- }
-
- public void show(Component origin, int x, int y)
- {
- // FIXME
- }
-
- // Accessibility API not yet implemented.
- // public AccessibleContext getAccessibleContext()
-}
diff --git a/libjava/java/awt/Rectangle.java b/libjava/java/awt/Rectangle.java
deleted file mode 100644
index 6695c580b1f..00000000000
--- a/libjava/java/awt/Rectangle.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.geom.*;
-
-/* Status: Mostly complete. Some of the Java2D stuff is commented out. */
-
-public class Rectangle extends Rectangle2D implements Cloneable, Shape
-{
- public int x;
- public int y;
- public int width;
- public int height;
-
- public Rectangle()
- {
- x = 0;
- y = 0;
- width = 0;
- height = 0;
- }
-
- public Rectangle(Rectangle r)
- {
- x = r.x;
- y = r.y;
- width = r.width;
- height = r.height;
- }
-
- public Rectangle(int x, int y, int width, int height)
- {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- }
-
- public Rectangle(int width, int height)
- {
- x = 0;
- y = 0;
- this.width = width;
- this.height = height;
- }
-
- public Rectangle(Point p, Dimension d)
- {
- x = p.x;
- y = p.y;
- width = d.width;
- height = d.height;
- }
-
- public Rectangle(Point p)
- {
- x = p.x;
- y = p.y;
- width = 0;
- height = 0;
- }
-
- public Rectangle(Dimension d)
- {
- x = 0;
- y = 0;
- width = d.width;
- height = d.height;
- }
-
- public Rectangle getBounds ()
- {
- return (Rectangle) this.clone();
- }
-
- public void add(int newx, int newy)
- {
- int x = this.x > newx ? newx : this.x;
- int y = this.y > newy ? newy : this.y;
- width = (this.x + width > newx ? this.x + width : newx) - x;
- height = (this.y + height > newy ? this.y + height : newy) - y;
- this.x = x;
- this.y = y;
- }
-
- public void add(Point pt)
- {
- add (pt.x, pt.y);
- }
-
- public void add(Rectangle r)
- {
- int x = this.x > r.x ? r.x : this.x;
- int y = this.y > r.y ? r.y : this.y;
- width = (this.x + width > r.x + r.width ?
- this.x + width : r.x + r.width) - x;
- height = (this.y + height > r.y + r.height ?
- this.y + height : r.y + r.height) - y;
- this.x = x;
- this.y = y;
- }
-
- public boolean contains(int x, int y)
- {
- return (x >= this.x && x <= this.x + this.width
- && y >= this.y && y <= this.y + this.height);
- }
-
- public boolean contains(int x, int y, int w, int h)
- {
- return (x >= this.x && x + w <= this.x + this.width
- && y >= this.y && y + h <= this.y + this.height);
- }
-
- public boolean contains(Point p)
- {
- return contains(p.x, p.y);
- }
-
- public boolean contains(Rectangle r)
- {
- return contains(r.x, r.y, r.width, r.height);
- }
-
- public boolean equals(Object obj)
- {
- if (obj instanceof Rectangle)
- {
- Rectangle r = (Rectangle) obj;
- return (r.x == x
- && r.y == y
- && r.width == width
- && r.height == height);
- }
- return false;
- }
-
- public double getHeight()
- {
- return (double) this.height;
- }
-
- public Point getLocation()
- {
- return new Point(x,y);
- }
-
- public PathIterator getPathIterator (AffineTransform t)
- {
- // FIXME
- return null;
- }
-
- public Dimension getSize()
- {
- return new Dimension(width, height);
- }
-
- public double getWidth()
- {
- return (double) this.width;
- }
-
- public double getX()
- {
- return (double) x;
- }
-
- public double getY()
- {
- return (double) y;
- }
-
- public void grow(int h, int v)
- {
- width += h;
- height += v;
- }
-
- /** @deprecated Use contains() instead. */
- public boolean inside(int x, int y)
- {
- return contains(x, y);
- }
-
- /** @specnote If there is no intersection, an empty rectangle at 0,0
- * is returned.
- */
- public Rectangle intersection(Rectangle r)
- {
- int newx = x < r.x ? r.x : x;
- int newy = y < r.y ? r.y : y;
- int neww = (x + width < r.x + r.width ?
- x + width : r.x + r.width) - newx;
- int newh = (y + height < r.y + r.height ?
- y + height : r.y + r.height) - newy;
- if (neww >= 0 && newh >= 0)
- return new Rectangle(newx, newy, neww, newh);
- else
- return new Rectangle(0, 0, 0, 0);
- }
-
- /** @specnote If the intersection is at an edge or corner only (an empty
- * intersection with a non-zero location), false is returned.
- */
- public boolean intersects(Rectangle r)
- {
- int neww = (x + width < r.x + r.width ?
- x + width : r.x + r.width) - (x < r.x ? r.x : x);
- int newh = (y + height < r.y + r.height ?
- y + height : r.y + r.height) - (y < r.y ? r.y : y);
- return (neww > 0 && newh > 0);
- }
-
- public boolean isEmpty()
- {
- return !(width > 0 && height > 0);
- }
-
- /** @deprecated Use setLocation() instead. */
- public void move(int x, int y)
- {
- setLocation(x, y);
- }
-
- public int outcode(double x, double y)
- {
- // FIXME
- return 0;
- }
-
- /** @deprecated Use setBounds() instead. */
- public void reshape(int x, int y, int width, int height)
- {
- setBounds(x, y, width, height);
- }
-
- /** @deprecated Use setSize() instead. */
- public void resize(int width, int height)
- {
- setSize(width, height);
- }
-
- public void setBounds(int x, int y, int width, int height)
- {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- }
-
- public void setBounds(Rectangle r)
- {
- this.x = r.x;
- this.y = r.y;
- this.width = r.width;
- this.height = r.height;
- }
-
- public void setLocation(int x, int y)
- {
- this.x = x;
- this.y = y;
- }
-
- public void setLocation(Point p)
- {
- this.x = p.x;
- this.y = p.y;
- }
-
- public void setRect(double x, double y, double width, double height)
- {
- this.x = (int) x;
- this.y = (int) y;
- this.width = (int) width;
- this.height = (int) height;
- }
-
- public void setSize(Dimension d)
- {
- this.width = d.width;
- this.height = d.height;
- }
-
- public void setSize(int width, int height)
- {
- this.width = width;
- this.height = height;
- }
-
- public void translate(int x, int y)
- {
- x += x;
- y += y;
- }
-
- public Rectangle union(Rectangle r)
- {
- int newx = x > r.x ? r.x : x;
- int newy = y > r.y ? r.y : y;
- int neww = (this.x + width > r.x + r.width ?
- this.x + width : r.x + r.width) - newx;
- int newh = (this.y + height > r.y + r.height ?
- this.y + height : r.y + r.height) - newy;
- return new Rectangle(newx, newy, neww, newh);
- }
-
- // Commented out until we have Rectangle2D
- public Rectangle2D createIntersection(Rectangle2D r)
- {
- // FIXME: maybe we should consider returning a Rectangle or
- // Rectangle2D.Float depending on type of R.
- Rectangle2D.Double res = new Rectangle2D.Double ();
- intersect (this, r, res);
- return res;
- }
-
- public Rectangle2D createUnion(Rectangle2D r)
- {
- // FIXME: maybe we should consider returning a Rectangle or
- // Rectangle2D.Float depending on type of R.
- Rectangle2D.Double res = new Rectangle2D.Double ();
- union (this, r, res);
- return res;
- }
-
- public Rectangle2D getBounds2D()
- {
- return new Rectangle (x, y, width, height);
- }
-
- public String toString()
- {
- return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width +
- ",height=" + height + "]";
- }
-}
diff --git a/libjava/java/awt/RenderingHints.java b/libjava/java/awt/RenderingHints.java
deleted file mode 100644
index a2dace68ae3..00000000000
--- a/libjava/java/awt/RenderingHints.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class RenderingHints implements
- //java.util.Map,
- Cloneable
-{
-
- static abstract class Key
- {
- private int intKey;
-
- protected Key(int privateKey)
- {
- intKey = privateKey;
- }
-
- public abstract boolean isCompatibleValue(Object value);
-
- protected final int intKey()
- {
- return intKey;
- }
-
- public final int hashCode()
- {
- return System.identityHashCode(this);
- }
-
- public final boolean equals(Object other)
- {
- return (this == other);
- }
- }
-
- private static class KeyImpl extends Key
- {
- String description;
- Object v1, v2, v3;
-
- KeyImpl(int privateKey, String description,
- Object v1, Object v2, Object v3)
- {
- super(privateKey);
- this.description = description;
- this.v1 = v1;
- this.v2 = v2;
- this.v3 = v3;
- }
-
- public boolean isCompatibleValue(Object value)
- {
- return (value == v1) || (value == v2) || (value == v3);
- }
-
- public String toString()
- {
- return description;
- }
- }
-
-
- //java.util.HashMap hintMap;
-
- public static final Key KEY_ANTIALIASING;
- public static final Object
- VALUE_ANTIALIAS_ON = "Antialiased rendering mode",
- VALUE_ANTIALIAS_DEFAULT = "Default antialiasing rendering mode";
-
- static
- {
- KEY_ANTIALIASING = new KeyImpl(1, "Global antialiasing enable key",
- VALUE_ANTIALIAS_ON,
- VALUE_ANTIALIAS_DEFAULT,
- VALUE_ANTIALIAS_DEFAULT);
- }
-
- public static final Key KEY_RENDERING;
- public static final Object
- VALUE_RENDER_SPEED = "Fastest rendering methods",
- VALUE_RENDER_QUALITY = "Highest quality rendering methods",
- VALUE_RENDER_DEFAULT = "Default rendering methods";
-
- static
- {
- KEY_RENDERING = new KeyImpl(2, "Global rendering quality key",
- VALUE_RENDER_SPEED,
- VALUE_RENDER_QUALITY,
- VALUE_RENDER_DEFAULT);
- }
-
- public static final Key KEY_DITHERING;
- public static final Object
- VALUE_DITHER_DISABLE = "Nondithered rendering mode",
- VALUE_DITHER_ENABLE = "Dithered rendering mode",
- VALUE_DITHER_DEFAULT = "Default dithering mode";
-
- static
- {
- KEY_DITHERING = new KeyImpl(3, "Dithering quality key",
- VALUE_DITHER_DISABLE,
- VALUE_DITHER_ENABLE,
- VALUE_DITHER_DEFAULT);
- }
-
- public static final Key KEY_TEXT_ANTIALIASING;
- public static final Object
- VALUE_TEXT_ANTIALIAS_ON = "Antialiased text mode",
- VALUE_TEXT_ANTIALIAS_OFF = "Nonantialiased text mode",
- VALUE_TEXT_ANTIALIAS_DEFAULT = "Default antialiasing text mode";
-
- static
- {
- KEY_TEXT_ANTIALIASING = new KeyImpl(4, "Text-specific antialiasing enable key",
- VALUE_TEXT_ANTIALIAS_ON,
- VALUE_TEXT_ANTIALIAS_OFF,
- VALUE_TEXT_ANTIALIAS_DEFAULT);
- }
-
- public static final Key KEY_FRACTIONALMETRICS;
- public static final Object
- VALUE_FRACTIONALMETRICS_OFF = "Integer text metrics mode",
- VALUE_FRACTIONALMETRICS_ON = "Fractional text metrics mode",
- VALUE_FRACTIONALMETRICS_DEFAULT = "Default fractional text metrics mode";
-
- static
- {
- KEY_FRACTIONALMETRICS = new KeyImpl(5, "Fractional metrics enable key",
- VALUE_FRACTIONALMETRICS_OFF,
- VALUE_FRACTIONALMETRICS_ON,
- VALUE_FRACTIONALMETRICS_DEFAULT);
- }
-
- public static final Key KEY_INTERPOLATION;
- public static final Object
- VALUE_INTERPOLATION_NEAREST_NEIGHBOR = "Nearest Neighbor image interpolation mode",
- VALUE_INTERPOLATION_BILINEAR = "Bilinear image interpolation mode",
- VALUE_INTERPOLATION_BICUBIC = "Bicubic image interpolation mode";
-
- static
- {
- KEY_INTERPOLATION = new KeyImpl(6, "Image interpolation method key",
- VALUE_INTERPOLATION_NEAREST_NEIGHBOR,
- VALUE_INTERPOLATION_BILINEAR,
- VALUE_INTERPOLATION_BICUBIC);
- }
-
- public static final Key KEY_ALPHA_INTERPOLATION;
- public static final Object
- VALUE_ALPHA_INTERPOLATION_SPEED = "Fastest alpha blending methods",
- VALUE_ALPHA_INTERPOLATION_QUALITY = "Highest quality alpha blending methods",
- VALUE_ALPHA_INTERPOLATION_DEFAULT = "Default alpha blending methods";
-
- static
- {
- KEY_ALPHA_INTERPOLATION = new KeyImpl(7, "Alpha blending interpolation method key",
- VALUE_ALPHA_INTERPOLATION_SPEED,
- VALUE_ALPHA_INTERPOLATION_QUALITY,
- VALUE_ALPHA_INTERPOLATION_DEFAULT);
- }
-
- public static final Key KEY_COLOR_RENDERING;
- public static final Object
- VALUE_COLOR_RENDER_SPEED = "Fastest color rendering mode",
- VALUE_COLOR_RENDER_QUALITY = "Highest quality color rendering mode",
- VALUE_COLOR_RENDER_DEFAULT = "Default color rendering mode";
-
- static
- {
- KEY_COLOR_RENDERING = new KeyImpl(8, "Color rendering quality key",
- VALUE_COLOR_RENDER_SPEED,
- VALUE_COLOR_RENDER_QUALITY,
- VALUE_COLOR_RENDER_DEFAULT);
- }
-
- public static final Key KEY_STROKE_CONTROL;
- public static final Object
- VALUE_STROKE_DEFAULT = "Default stroke control mode",
- VALUE_STROKE_NORMALIZE = "Normalize stroke control mode",
- VALUE_STROKE_PURE = "Pure stroke control mode";
-
- static
- {
- KEY_STROKE_CONTROL = new KeyImpl(9, "Stroke normalization control key",
- VALUE_STROKE_DEFAULT,
- VALUE_STROKE_NORMALIZE,
- VALUE_STROKE_PURE);
- }
-
- //public RenderingHints(Map init);
-
- public RenderingHints(Key key, Object value)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public int size()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public boolean isEmpty()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public boolean containsKey(Object key)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public boolean containsValue(Object value)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public Object get(Object key)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public Object put(Object key, Object value)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public void add(RenderingHints hints)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public void clear()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public Object remove(Object key)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- /*
- public void putAll(Map m)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
- */
-
- /*
- public Set keySet()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
- */
-
- /*
- public Collection values()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
- */
-
- /*
- public Set entrySet()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
- */
-
- public boolean equals(Object o)
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public int hashCode()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public Object clone()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-
- public String toString()
- {
- throw new UnsupportedOperationException("FIXME, not implemented yet");
- }
-}
diff --git a/libjava/java/awt/ScrollPane.java b/libjava/java/awt/ScrollPane.java
deleted file mode 100644
index 2c3454c0bf0..00000000000
--- a/libjava/java/awt/ScrollPane.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class ScrollPane extends Container
-{
-}
diff --git a/libjava/java/awt/Scrollbar.java b/libjava/java/awt/Scrollbar.java
deleted file mode 100644
index afe3abaf844..00000000000
--- a/libjava/java/awt/Scrollbar.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-import java.awt.peer.ScrollbarPeer;
-import java.awt.peer.ComponentPeer;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 12, 2000
- */
-
-public class Scrollbar extends Component implements Adjustable
-{
- public Scrollbar ()
- {
- this (VERTICAL, 0, 10, 0, 100);
- }
-
- public Scrollbar (int orientation)
- {
- this (orientation, 0, 10, 0, 100);
- }
-
- public Scrollbar (int orientation, int value, int visible,
- int minimum, int maximum)
- {
- if (orientation != HORIZONTAL && orientation != VERTICAL)
- throw new IllegalArgumentException ();
-
- if (maximum < minimum)
- maximum = minimum;
- if (value < minimum)
- value = minimum;
- if (value > maximum)
- value = maximum;
-
- this.orientation = orientation;
- this.value = value;
- this.visible = visible;
- this.minimum = minimum;
- this.maximum = maximum;
- this.unit = 1;
-
- this.block = 0; // FIXME
- }
-
- public void addNotify ()
- {
- if (peer == null)
- peer = (ComponentPeer) getToolkit ().createScrollbar (this);
- }
-
- public int getOrientation ()
- {
- return orientation;
- }
-
- public void setOrientation (int orientation)
- {
- if (orientation != HORIZONTAL && orientation != VERTICAL)
- throw new IllegalArgumentException ();
- this.orientation = orientation;
- }
-
- public int getValue ()
- {
- return value;
- }
-
- public void setValue (int value)
- {
- setValues (value, visible, minimum, maximum);
- }
-
- public int getMinimum ()
- {
- return minimum;
- }
-
- public void setMinimum (int minimum)
- {
- setValues (value, visible, minimum, maximum);
- }
-
- public int getMaximum ()
- {
- return maximum;
- }
-
- public void setMaximum (int maximum)
- {
- setValues (value, visible, minimum, maximum);
- }
-
- public int getVisibleAmount ()
- {
- return visible;
- }
-
- public int getVisible ()
- {
- return visible;
- }
-
- public void setVisibleAmount (int visible)
- {
- setValues (value, visible, minimum, maximum);
- }
-
- public void setUnitIncrement (int v)
- {
- unit = v;
- if (peer != null)
- {
- ScrollbarPeer sp = (ScrollbarPeer) peer;
- sp.setLineIncrement (v);
- }
- }
-
- /** @deprecated */
- public void setLineIncrement (int v)
- {
- setUnitIncrement (v);
- }
-
- public int getUnitIncrement ()
- {
- return unit;
- }
-
- public int getLineIncrement ()
- {
- return unit;
- }
-
- public void setBlockIncrement (int v)
- {
- block = v;
- if (peer != null)
- {
- ScrollbarPeer sp = (ScrollbarPeer) peer;
- sp.setPageIncrement (v);
- }
- }
-
- public void setPageIncrement (int v)
- {
- setBlockIncrement (v);
- }
-
- public int getBlockIncrement ()
- {
- return block;
- }
-
- public int getPageIncrement ()
- {
- return block;
- }
-
- public synchronized void setValues (int value, int visible,
- int minimum, int maximum)
- {
- if (maximum < minimum)
- maximum = minimum;
- if (value < minimum)
- value = minimum;
- if (value > maximum)
- value = maximum;
-
- this.value = value;
- this.visible = visible;
- this.minimum = minimum;
- this.maximum = maximum;
-
- if (peer != null)
- {
- ScrollbarPeer sp = (ScrollbarPeer) peer;
- sp.setValues (value, visible, minimum, maximum);
- }
- }
-
- public void addAdjustmentListener (AdjustmentListener l)
- {
- listeners = AWTEventMulticaster.add (listeners, l);
- }
-
- public void removeAdjustmentListener (AdjustmentListener l)
- {
- listeners = AWTEventMulticaster.add (listeners, l);
- }
-
- protected void processEvent (AWTEvent e)
- {
- if (e instanceof AdjustmentEvent)
- processAdjustmentEvent ((AdjustmentEvent) e);
- else
- super.processEvent (e);
- }
-
- protected void processAdjustmentEvent (AdjustmentEvent e)
- {
- if (listeners != null)
- listeners.adjustmentValueChanged (e);
- }
-
- protected String paramString ()
- {
- return ("Scrollbar["
- + ((orientation == VERTICAL) ? "VERTICAL" : "HORIZONTAL") + ","
- + value + ","
- + visible + ","
- + minimum + ","
- + maximum + ","
- + unit + ","
- + block + "]");
- }
-
- private AdjustmentListener listeners;
- private int orientation;
- private int value;
- private int visible;
- private int minimum;
- private int maximum;
- private int unit;
- private int block;
-}
diff --git a/libjava/java/awt/Shape.java b/libjava/java/awt/Shape.java
deleted file mode 100644
index a5cc730adab..00000000000
--- a/libjava/java/awt/Shape.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.geom.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date February 8, 1999.
- */
-
-/* Written using "Java Class Libraries", 2nd edition.
- * Status: Believed complete and correct to JDK 1.2.
- */
-
-public interface Shape
-{
- public boolean contains (double x, double y);
- public boolean contains (double x, double y, double w, double h);
- public boolean contains (Point2D p);
- public boolean contains (Rectangle2D r);
- public Rectangle getBounds ();
- public Rectangle2D getBounds2D ();
- public PathIterator getPathIterator (AffineTransform at);
- public PathIterator getPathIterator (AffineTransform at, double flatness);
- public boolean intersects (double x, double y, double w, double h);
- public boolean intersects (Rectangle2D r);
-}
diff --git a/libjava/java/awt/TextArea.java b/libjava/java/awt/TextArea.java
deleted file mode 100644
index 09f5cb2e348..00000000000
--- a/libjava/java/awt/TextArea.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-
-/* A very incomplete placeholder. */
-
-public class TextArea extends TextComponent
-{
- public synchronized void append (String str)
- {
- replaceRange(str, length, length);
- }
-
- public synchronized void insert (String str, int pos)
- {
- replaceRange(str, pos, pos);
- }
-
- public synchronized void replaceRange (String str, int start, int end)
- {
- if (length == 0)
- setText (str);
- else
- {
- int len = str.length();
- int delta = len - (end - start);
- int new_length = length + delta;
- if (buffer.length < new_length)
- {
- int new_size = 2 * buffer.length;
- if (new_size < new_length)
- new_size = new_length;
- char[] new_buffer = new char[new_size];
- System.arraycopy(buffer, 0, new_buffer, 0, length);
- buffer = new_buffer;
- }
- if (len != end)
- System.arraycopy(buffer, start, buffer, start + len, len - end);
- str.getChars(0, len, buffer, start);
- length += delta;
- }
- }
-}
diff --git a/libjava/java/awt/TextComponent.java b/libjava/java/awt/TextComponent.java
deleted file mode 100644
index 738cc89c7e8..00000000000
--- a/libjava/java/awt/TextComponent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-
-/* A very incomplete placeholder. */
-
-public class TextComponent extends Component
-{
- char[] buffer;
- int length;
- int caretPosition;
-
- public synchronized String getText ()
- { return new String(buffer, 0, length); }
-
- public synchronized void setText (String text)
- {
- length = text.length();
- if (buffer == null || buffer.length < length)
- buffer = new char[length];
- text.getChars(0, length, buffer, 0);
- }
-
- public synchronized void addTextListener (TextListener listener)
- { /* FIXME */ }
-
- public int getCaretPosition () { return caretPosition; }
-
- public void setCaretPosition (int pos) { caretPosition = pos; }
-
-}
diff --git a/libjava/java/awt/TextField.java b/libjava/java/awt/TextField.java
deleted file mode 100644
index e8059d4e679..00000000000
--- a/libjava/java/awt/TextField.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.*;
-
-/* A very incomplete placeholder. */
-
-public class TextField extends TextComponent
-{
-}
diff --git a/libjava/java/awt/Toolkit.java b/libjava/java/awt/Toolkit.java
deleted file mode 100644
index 9675e20975c..00000000000
--- a/libjava/java/awt/Toolkit.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.peer.*;
-import java.awt.event.*;
-import java.net.URL;
-import java.beans.*;
-import java.awt.image.*;
-import java.awt.datatransfer.Clipboard;
-import java.util.Hashtable;
-import gnu.gcj.awt.GLightweightPeer;
-
-/* A very incomplete placeholder. */
-
-public abstract class Toolkit
-{
- static Toolkit defaultToolkit;
- static EventQueue systemEventQueue = new EventQueue();
- PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
- Hashtable desktopProperties = new Hashtable();
-
- public static Toolkit getDefaultToolkit()
- {
- if (defaultToolkit != null)
- return defaultToolkit;
-
- Class toolkit_class;
- String tk_class_name = System.getProperty("awt.toolkit");
- if (tk_class_name == null)
- tk_class_name = "gnu.awt.peer.gtk.GTKToolkit";
-
- try
- {
- toolkit_class = Class.forName(tk_class_name);
- defaultToolkit = (Toolkit) toolkit_class.newInstance();
- }
- catch (Exception x)
- {
- throw new AWTError("Toolkit class " + tk_class_name +
- " could not be initialized:\n " + x);
- }
-
- return defaultToolkit;
- }
-
- protected abstract ButtonPeer createButton(Button target);
- protected abstract TextFieldPeer createTextField(TextField target);
- protected abstract LabelPeer createLabel(Label target);
- protected abstract ListPeer createList(List target);
- protected abstract CheckboxPeer createCheckbox(Checkbox target);
- protected abstract ScrollbarPeer createScrollbar(Scrollbar target);
- protected abstract ScrollPanePeer createScrollPane(ScrollPane target);
- protected abstract TextAreaPeer createTextArea(TextArea target);
- protected abstract ChoicePeer createChoice(Choice target);
- protected abstract FramePeer createFrame(Frame target);
- protected abstract CanvasPeer createCanvas(Canvas target);
- protected abstract PanelPeer createPanel(Panel target);
- protected abstract WindowPeer createWindow(Window target);
- protected abstract DialogPeer createDialog(Dialog target);
- protected abstract MenuBarPeer createMenuBar(MenuBar target);
- protected abstract MenuPeer createMenu(Menu target);
- protected abstract PopupMenuPeer createPopupMenu(PopupMenu target);
- protected abstract MenuItemPeer createMenuItem(MenuItem target);
- protected abstract FileDialogPeer createFileDialog(FileDialog target);
- protected abstract CheckboxMenuItemPeer
- createCheckboxMenuItem(CheckboxMenuItem target);
-
- protected LightweightPeer createComponent(Component target)
- {
- return GLightweightPeer.INSTANCE;
- }
-
- /* @deprecated Use GraphicsEnvironment.getAllFonts() */
- protected abstract java.awt.peer.FontPeer getFontPeer(String name, int style);
-
- /*
- public abstract DragSourceContextPeer
- createDragSourceContextPeer(DragGestureEvent dge)
- throws InvalidDnDOperationException;
- */
-
- protected void loadSystemColors(int[] systemColors)
- {
- // FIXME
- }
-
- public abstract Dimension getScreenSize();
- public abstract int getScreenResolution();
- public abstract ColorModel getColorModel();
- /* @deprecated Use GraphicsEnvironment.getAvailableFontFamilyNames() */
- public abstract String[] getFontList();
- public abstract FontMetrics getFontMetrics(Font font);
- public abstract void sync();
- public abstract Image getImage(String filename);
- public abstract Image getImage(URL url);
- public abstract Image createImage(String filename);
- public abstract Image createImage(URL url);
- public abstract boolean prepareImage(Image image, int width, int height,
- ImageObserver observer);
- public abstract int checkImage(Image image, int width, int height,
- ImageObserver observer);
- public abstract Image createImage(ImageProducer producer);
-
- public Image createImage(byte[] imagedata)
- {
- return createImage (imagedata, 0, imagedata.length);
- }
-
- public abstract Image createImage(byte[] imagedata, int imageoffset,
- int imagelength);
- /*
- public abstract PrintJob getPrintJob(Frame frame, String jobtitle,
- Properties props);
- public PrintJob getPrintJob(Frame frame, String jobtitle,
- JobAttributes jobAttributes,
- PageAttributes pageAttributes)
- {
-
- }
- */
-
- public abstract void beep();
- public abstract Clipboard getSystemClipboard();
-
- public int getMenuShortcutKeyMask()
- {
- return InputEvent.CTRL_MASK;
- }
-
- public boolean getLockingKeyState(int keyCode)
- {
- if (keyCode != KeyEvent.VK_CAPS_LOCK
- && keyCode != KeyEvent.VK_NUM_LOCK
- && keyCode != KeyEvent.VK_SCROLL_LOCK)
- throw new IllegalArgumentException();
-
- throw new UnsupportedOperationException();
- }
-
- public void setLockingKeyState(int keyCode, boolean on)
- {
- if (keyCode != KeyEvent.VK_CAPS_LOCK
- && keyCode != KeyEvent.VK_NUM_LOCK
- && keyCode != KeyEvent.VK_SCROLL_LOCK)
- throw new IllegalArgumentException();
-
- throw new UnsupportedOperationException();
- }
-
- protected static Container getNativeContainer(Component c)
- {
- while (c != null)
- {
- if (!c.isLightweight ())
- return (Container) c;
-
- c = c.getParent();
- }
- return null;
- }
-
- public Cursor createCustomCursor(Image cursor, Point hotSpot, String name)
- throws IndexOutOfBoundsException
- {
- // Presumably the only reason this isn't abstract is for backwards
- // compatibility? FIXME?
- return null;
- }
-
- public Dimension getBestCursorSize(int preferredWidth, int preferredHeight)
- {
- return new Dimension (0,0);
- }
-
- public int getMaximumCursorColors()
- {
- return 0;
- }
-
- public static String getProperty(String key, String defaultValue)
- {
- // FIXME
- return defaultValue;
- }
-
- public final EventQueue getSystemEventQueue()
- {
- return getSystemEventQueueImpl();
- }
-
- protected abstract EventQueue getSystemEventQueueImpl();
-
- /*
- public DragGestureRecognizer
- createDragGestureRecognizer(Class abstractRecognizerClass, DragSource ds,
- Component c, int srcActions,
- DragGestureListener dgl)
- {
- // err... FIXME
- return null;
- }
- */
-
- public final Object getDesktopProperty(String propertyName)
- {
- return desktopProperties.get(propertyName);
- }
-
- protected final void setDesktopProperty(String name, Object newValue)
- {
- Object oldValue = getDesktopProperty(name);
- desktopProperties.put(name, newValue);
- changeSupport.firePropertyChange(name, oldValue, newValue);
- }
-
- protected Object lazilyLoadDesktopProperty(String name)
- {
- // FIXME - what is this??
- return null;
- }
-
- protected void initializeDesktopProperties()
- {
- // Overridden by toolkit implementation?
- }
-
- public void addPropertyChangeListener(String name,
- PropertyChangeListener pcl)
- {
- changeSupport.addPropertyChangeListener(name, pcl);
- }
-
- public void removePropertyChangeListener(String name,
- PropertyChangeListener pcl)
- {
- changeSupport.removePropertyChangeListener(name, pcl);
- }
-
- public void addAWTEventListener(AWTEventListener listener, long eventMask)
- {
- // SecurityManager s = System.getSecurityManager();
- // if (s != null)
- // s.checkPermission(AWTPermission("listenToAllAWTEvents"));
-
- // FIXME
- }
-
- public void removeAWTEventListener(AWTEventListener listener)
- {
- // FIXME
- }
-
- /*
- public abstract Map mapInputMethodHighlight(InputMethodHighlight highlight)
- {
- }
- */
-}
diff --git a/libjava/java/awt/Transparency.java b/libjava/java/awt/Transparency.java
deleted file mode 100644
index c1190069839..00000000000
--- a/libjava/java/awt/Transparency.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 15, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public interface Transparency
-{
- public static final int OPAQUE = 1;
- public static final int BITMASK = 2;
- public static final int TRANSLUCENT = 3;
-
- public int getTransparency();
-}
diff --git a/libjava/java/awt/Window.java b/libjava/java/awt/Window.java
deleted file mode 100644
index 928c255e761..00000000000
--- a/libjava/java/awt/Window.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.awt.peer.WindowPeer;
-import java.awt.peer.ComponentPeer;
-import java.util.EventListener;
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-/* Status: partially implemented. */
-
-public class Window extends Container
-{
- // Serialized fields, from Sun's serialization spec.
- // private FocusManager focusMgr; // FIXME: what is this?
- private String warningString = null;
- private int state = 0;
- private int windowSerializedDataVersion = 0; // FIXME
-
- private transient WindowListener windowListener;
- private transient GraphicsConfiguration graphicsConfiguration;
-
- /**
- * This (package access) constructor is used by subclasses that want
- * to build windows that do not have parents. Eg. toplevel
- * application frames. Subclasses cannot call super(null), since
- * null is an illegal argument.
- */
- Window()
- {
- setVisible(false);
- setLayout((LayoutManager) new BorderLayout());
- }
-
- Window(GraphicsConfiguration gc)
- {
- this();
- graphicsConfiguration = gc;
- }
-
- public Window(Frame owner)
- {
- this((Window) owner);
- }
-
- /** @since 1.2 */
- public Window(Window owner)
- {
- this();
- if (owner == null)
- throw new IllegalArgumentException("owner must not be null");
-
- this.parent = owner;
-
- // FIXME: add to owner's "owned window" list
- //owner.owned.add(this); // this should be a weak reference
- }
-
- /** @since 1.3 */
- public Window(Window owner, GraphicsConfiguration gc)
- {
- this(owner);
-
- /* FIXME: Security check
- SecurityManager.checkTopLevelWindow(...)
-
- if (gc != null
- && gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN)
- throw new IllegalArgumentException ("gc must be from a screen device");
-
- if (gc == null)
- graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
- .getDefaultScreenDevice()
- .getDefaultConfiguration();
- else
- */
- graphicsConfiguration = gc;
- }
-
- GraphicsConfiguration getGraphicsConfigurationImpl()
- {
- if (graphicsConfiguration != null)
- return graphicsConfiguration;
-
- return super.getGraphicsConfigurationImpl();
- }
-
- protected void finalize() throws Throwable
- {
- // FIXME: remove from owner's "owned window" list (Weak References)
- super.finalize();
- }
-
- public void addNotify()
- {
- if (peer == null)
- // FIXME: This cast should NOT be required. ??? Compiler bug ???
- peer = (ComponentPeer) getToolkit ().createWindow (this);
- super.addNotify ();
- }
-
- /** @specnote pack() doesn't appear to be called internally by show(), so
- we duplicate some of the functionality. */
- public void pack()
- {
- if (parent != null
- && !parent.isDisplayable())
- parent.addNotify();
- if (peer == null)
- addNotify();
-
- setSize(getPreferredSize());
-
- validate();
- }
-
- public void show ()
- {
- if (peer == null)
- addNotify();
- validate ();
-
- if (isVisible())
- {
- this.toFront();
- return;
- }
-
- if (parent != null
- && !parent.isDisplayable())
- parent.addNotify();
- if (peer == null)
- addNotify ();
-
- validate ();
-
- super.show ();
-
- // FIXME: Is this call neccessary or do we assume the peer takes care of
- // it?
- // this.toFront();
- }
-
- public void hide()
- {
- // FIXME: call hide() on amy "owned" children here.
- super.hide();
- }
-
- public void dispose()
- {
- hide();
-
- Window[] list = getOwnedWindows();
- for (int i=0; i<list.length; i++)
- list[i].dispose();
-
- for (int i = 0; i < ncomponents; ++i)
- component[i].removeNotify();
- this.removeNotify();
- }
-
- public void toBack ()
- {
- if (peer != null)
- {
- WindowPeer wp = (WindowPeer) peer;
- wp.toBack ();
- }
- }
-
- public void toFront ()
- {
- if (peer != null)
- {
- WindowPeer wp = (WindowPeer) peer;
- wp.toFront ();
- }
- }
-
- public Toolkit getToolkit()
- {
- // FIXME: why different from Component.getToolkit() ?
- return super.getToolkit();
- }
-
- public final String getWarningString()
- {
- boolean secure = true;
- /* boolean secure = SecurityManager.checkTopLevelWindow(...) */
-
- if (!secure)
- {
- if (warningString != null)
- return warningString;
- else
- {
- String warning = System.getProperty("awt.appletWarning");
- return warning;
- }
- }
- return null;
- }
-
- public Locale getLocale ()
- {
- return locale == null ? Locale.getDefault () : locale;
- }
-
- /*
- /** @since 1.2
- public InputContext getInputContext()
- {
- // FIXME
- }
- */
-
- public void setCursor(Cursor cursor)
- {
- // FIXME: why different from Component.setCursor() ?
- super.setCursor(cursor);
- }
-
- public Window getOwner()
- {
- return (Window) parent;
- }
-
- /** @since 1.2 */
- public Window[] getOwnedWindows()
- {
- // FIXME: return array containing all the windows this window currently
- // owns.
- return null;
- }
-
- public synchronized void addWindowListener (WindowListener listener)
- {
- windowListener = AWTEventMulticaster.add (windowListener, listener);
- }
-
- public synchronized void removeWindowListener (WindowListener listener)
- {
- windowListener = AWTEventMulticaster.remove (windowListener, listener);
- }
-
- /** @since 1.3 */
- public EventListener[] getListeners(Class listenerType)
- {
- if (listenerType == WindowListener.class)
- return getListenersImpl(listenerType, windowListener);
- else return super.getListeners(listenerType);
- }
-
- void dispatchEventImpl(AWTEvent e)
- {
- // Make use of event id's in order to avoid multiple instanceof tests.
- if (e.id <= WindowEvent.WINDOW_LAST
- && e.id >= WindowEvent.WINDOW_FIRST
- && (windowListener != null
- || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0))
- processEvent(e);
- else
- super.dispatchEventImpl(e);
- }
-
- protected void processEvent (AWTEvent evt)
- {
- if (evt instanceof WindowEvent)
- processWindowEvent ((WindowEvent) evt);
- else
- super.processEvent (evt);
- }
-
- protected void processWindowEvent (WindowEvent evt)
- {
- if (windowListener != null)
- {
- switch (evt.getID ())
- {
- case WindowEvent.WINDOW_ACTIVATED:
- windowListener.windowActivated (evt);
- break;
- case WindowEvent.WINDOW_CLOSED:
- windowListener.windowClosed (evt);
- break;
- case WindowEvent.WINDOW_CLOSING:
- windowListener.windowClosing (evt);
- break;
- case WindowEvent.WINDOW_DEACTIVATED:
- windowListener.windowDeactivated (evt);
- break;
- case WindowEvent.WINDOW_DEICONIFIED:
- windowListener.windowDeiconified (evt);
- break;
- case WindowEvent.WINDOW_ICONIFIED:
- windowListener.windowIconified (evt);
- break;
- case WindowEvent.WINDOW_OPENED:
- windowListener.windowOpened (evt);
- break;
- }
- }
- }
-
- public Component getFocusOwner()
- {
- // FIXME
- return null;
- }
-
- public boolean postEvent(Event e)
- {
- // FIXME
- return false;
- }
-
- public boolean isShowing()
- {
- // FIXME: Also check if window is within the boundary of the screen?
- return isVisible();
- }
-
- /** @since 1.2 */
- public void applyResourceBundle(ResourceBundle rb)
- {
- // FIXME
- }
-
- /** @since 1.2 */
- public void applyResourceBundle(String rbName)
- {
- ResourceBundle rb = ResourceBundle.getBundle(rbName);
- if (rb != null)
- applyResourceBundle(rb);
- }
-
- /*
- public AccessibleContext getAccessibleContext()
- {
- // FIXME
- }
- */
-
- /**
- * Get graphics configuration. The implementation for Window will
- * not ask any parent containers, since Window is a toplevel
- * window and not actually embedded in the parent component.
- */
- public GraphicsConfiguration getGraphicsConfiguration()
- {
- if (graphicsConfiguration != null) return graphicsConfiguration;
- if (peer != null) return peer.getGraphicsConfiguration();
- return null;
- }
-
-}
diff --git a/libjava/java/awt/color/ColorSpace.java b/libjava/java/awt/color/ColorSpace.java
deleted file mode 100644
index 8a0edcb2a66..00000000000
--- a/libjava/java/awt/color/ColorSpace.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.color;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public abstract class ColorSpace
-{
- public static final int TYPE_XYZ = 0;
- public static final int TYPE_Lab = 1;
- public static final int TYPE_Luv = 2;
- public static final int TYPE_YCbCr = 3;
- public static final int TYPE_Yxy = 4;
- public static final int TYPE_RGB = 5;
- public static final int TYPE_GRAY = 6;
- public static final int TYPE_HSV = 7;
- public static final int TYPE_HLS = 8;
- public static final int TYPE_CMYK = 9;
- // mysterious gap in the enumeration sequenece
- public static final int TYPE_CMY = 11;
- public static final int TYPE_2CLR = 12;
- public static final int TYPE_3CLR = 13;
- public static final int TYPE_4CLR = 14;
- public static final int TYPE_5CLR = 15;
- public static final int TYPE_6CLR = 16;
- public static final int TYPE_7CLR = 17;
- public static final int TYPE_8CLR = 18;
- public static final int TYPE_9CLR = 19;
- public static final int TYPE_ACLR = 20;
- public static final int TYPE_BCLR = 21;
- public static final int TYPE_CCLR = 22;
- public static final int TYPE_DCLR = 23;
- public static final int TYPE_ECLR = 24;
- public static final int TYPE_FCLR = 25;
-
- public static final int CS_sRGB = 1000;
- public static final int CS_CIEXYZ = 1001;
- public static final int CS_PYCC = 1002;
- public static final int CS_GRAY = 1003;
- public static final int CS_LINEAR_RGB = 1004;
-
- private static final int CS_BASE = CS_sRGB;
- private static final int CS_END = CS_LINEAR_RGB+1;
- private static final int CS_COUNT = CS_END - CS_BASE;
-
- // Instances are lazily instantiated
- private static final ColorSpace[] INSTANCES = new ColorSpace[CS_COUNT];
-
- private int type;
- private int numcomponents;
- protected ColorSpace(int type, int numcomponents)
- {
- this.type = type;
- this.numcomponents = numcomponents;
- }
-
- public static ColorSpace getInstance(int colorspace)
- {
- if ((colorspace >= CS_BASE) && (colorspace < CS_END))
- {
- int instanceIndex = colorspace - CS_BASE;
- if (INSTANCES[instanceIndex] == null)
- {
- ICC_Profile profile = new ICC_Profile(colorspace);
- INSTANCES[instanceIndex] = new ICC_ColorSpace(profile);
- }
- return INSTANCES[instanceIndex];
- }
- throw new IllegalArgumentException("unknown/unsupported colorspace");
- }
-
- public boolean isCS_sRGB()
- {
- return false;
- }
-
- public abstract float[] toRGB(float[] colorvalue);
-
- public abstract float[] fromRGB(float[] rgbvalue);
-
- public abstract float[] toCIEXYZ(float[] colorvalue);
-
- public abstract float[] fromCIEXYZ(float[] colorvalue);
-
- public int getType()
- {
- return type;
- }
-
- public int getNumComponents()
- {
- return numcomponents;
- }
-
- public String getName(int idx)
- {
- return "type " + type;
- }
-
- public String toString()
- {
- return getClass().getName() + "[type=" + type + "]";
- }
-}
diff --git a/libjava/java/awt/color/ICC_ColorSpace.java b/libjava/java/awt/color/ICC_ColorSpace.java
deleted file mode 100644
index 7afa33d822d..00000000000
--- a/libjava/java/awt/color/ICC_ColorSpace.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.color;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class ICC_ColorSpace extends ColorSpace
-{
- private ICC_Profile profile;
-
- public ICC_ColorSpace(ICC_Profile profile)
- {
- super(CS_sRGB, profile.getNumComponents());
-
- this.profile = profile;
- }
-
- public ICC_Profile getProfile()
- {
- return profile;
- }
-
- public float[] toRGB(float[] colorvalue)
- {
- // FIXME: Always assumes sRGB:
- return colorvalue;
- }
-
- public float[] fromRGB(float[] rgbvalue)
- {
- // FIXME: Always assumes sRGB:
- return rgbvalue;
- }
-
- public float[] toCIEXYZ(float[] colorvalue)
- {
- // FIXME: Not implemented
- throw new UnsupportedOperationException();
- }
-
- public float[] fromCIEXYZ(float[] colorvalue)
- {
- // FIXME: Not implemented
- throw new UnsupportedOperationException();
- }
-}
diff --git a/libjava/java/awt/color/ICC_Profile.java b/libjava/java/awt/color/ICC_Profile.java
deleted file mode 100644
index 4a30708229b..00000000000
--- a/libjava/java/awt/color/ICC_Profile.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.color;
-
-// Currently just a stub.
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class ICC_Profile
-{
- long profileID; // why long?
-
- ICC_Profile(long profileID)
- {
- this.profileID = profileID;
- }
-
- public int getNumComponents()
- {
- switch ((int) profileID)
- {
- case ColorSpace.CS_sRGB:
- case ColorSpace.CS_LINEAR_RGB:
- case ColorSpace.CS_CIEXYZ:
- return 3;
- case ColorSpace.CS_GRAY:
- return 1;
- case ColorSpace.CS_PYCC: // have no clue about this one
- default:
- throw new UnsupportedOperationException("profile not implemented");
- }
- }
-}
diff --git a/libjava/java/awt/datatransfer/Clipboard.java b/libjava/java/awt/datatransfer/Clipboard.java
deleted file mode 100644
index 634a8d5a94e..00000000000
--- a/libjava/java/awt/datatransfer/Clipboard.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.datatransfer;
-
-/* A very incomplete placeholder. */
-
-public class Clipboard
-{
-}
diff --git a/libjava/java/awt/event/AWTEventListener.java b/libjava/java/awt/event/AWTEventListener.java
deleted file mode 100644
index ec9e4ffa27d..00000000000
--- a/libjava/java/awt/event/AWTEventListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface AWTEventListener extends java.util.EventListener
-{
- public void eventDispatched (AWTEvent e);
-}
diff --git a/libjava/java/awt/event/ActionEvent.java b/libjava/java/awt/event/ActionEvent.java
deleted file mode 100644
index 891b6bd4e51..00000000000
--- a/libjava/java/awt/event/ActionEvent.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class ActionEvent extends AWTEvent
-{
- public static final int ACTION_FIRST = 1001;
- public static final int ACTION_LAST = 1001;
- public static final int ACTION_PERFORMED = 1001;
- public static final int ALT_MASK = 8;
- public static final int CTRL_MASK = 2;
- public static final int META_MASK = 4;
- public static final int SHIFT_MASK = 1;
-
- String cmd;
- int modifiers;
-
- public ActionEvent (Object source, int id, String command)
- {
- super(source, id);
- cmd = command;
- }
-
- public ActionEvent (Object source, int id, String command, int modifiers)
- {
- super(source, id);
- cmd = command;
- this.modifiers = modifiers;
- }
-
- public String getActionCommand ()
- {
- return cmd;
- }
-
- public int getModifiers ()
- {
- return modifiers;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case ACTION_PERFORMED:
- r = "ACTION_PERFORMED";
- break;
- default:
- r = "unknown type";
- break;
- }
-
- r += ",cmd=" + cmd;
- return r;
- }
-}
diff --git a/libjava/java/awt/event/ActionListener.java b/libjava/java/awt/event/ActionListener.java
deleted file mode 100644
index 7fb359ff076..00000000000
--- a/libjava/java/awt/event/ActionListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Status: Believed complete and correct. */
-
-public interface ActionListener extends java.util.EventListener
-{
- public void actionPerformed (ActionEvent e);
-}
diff --git a/libjava/java/awt/event/AdjustmentEvent.java b/libjava/java/awt/event/AdjustmentEvent.java
deleted file mode 100644
index 9da9993a794..00000000000
--- a/libjava/java/awt/event/AdjustmentEvent.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class AdjustmentEvent extends AWTEvent
-{
- public static final int ADJUSTMENT_FIRST = 601;
- public static final int ADJUSTMENT_LAST = 601;
- public static final int ADJUSTMENT_VALUE_CHANGED = 601;
- public static final int BLOCK_DECREMENT = 3;
- public static final int BLOCK_INCREMENT = 4;
- public static final int TRACK = 5;
- public static final int UNIT_DECREMENT = 2;
- public static final int UNIT_INCREMENT = 1;
-
- public AdjustmentEvent (Adjustable source, int id, int type, int value)
- {
- super (source, id);
- this.adjType = type;
- this.value = value;
- }
-
- public Adjustable getAdjustable ()
- {
- return (Adjustable) source;
- }
-
- public int getAdjustmentType ()
- {
- return adjType;
- }
-
- public int getValue ()
- {
- return value;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case ADJUSTMENT_VALUE_CHANGED:
- r = "ADJUSTMENT_VALUE_CHANGED";
- break;
- default:
- r = "unknown id";
- break;
- }
-
- r += ",adjType=";
-
- switch (adjType)
- {
- case BLOCK_DECREMENT:
- r += "BLOCK_DECREMENT";
- break;
- case BLOCK_INCREMENT:
- r += "BLOCK_INCREMENT";
- break;
- case TRACK:
- r += "TRACK";
- break;
- case UNIT_DECREMENT:
- r += "UNIT_DECREMENT";
- break;
- case UNIT_INCREMENT:
- r += "UNIT_INCREMENT";
- break;
- default:
- r += "unknown type";
- break;
- }
-
- r += ",value=" + value;
- return r;
- }
-
- private int adjType;
- private int value;
-}
diff --git a/libjava/java/awt/event/AdjustmentListener.java b/libjava/java/awt/event/AdjustmentListener.java
deleted file mode 100644
index 1d103328c63..00000000000
--- a/libjava/java/awt/event/AdjustmentListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface AdjustmentListener extends java.util.EventListener
-{
- public void adjustmentValueChanged (AdjustmentEvent e);
-}
diff --git a/libjava/java/awt/event/ComponentAdapter.java b/libjava/java/awt/event/ComponentAdapter.java
deleted file mode 100644
index 0faba3d6eff..00000000000
--- a/libjava/java/awt/event/ComponentAdapter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class ComponentAdapter implements ComponentListener
-{
- public void componentHidden (ComponentEvent e)
- {
- }
-
- public void componentMoved (ComponentEvent e)
- {
- }
-
- public void componentResized (ComponentEvent e)
- {
- }
-
- public void componentShown (ComponentEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/ComponentEvent.java b/libjava/java/awt/event/ComponentEvent.java
deleted file mode 100644
index bdf80ce2f35..00000000000
--- a/libjava/java/awt/event/ComponentEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class ComponentEvent extends AWTEvent
-{
- public static final int COMPONENT_FIRST = 100;
- public static final int COMPONENT_HIDDEN = 103;
- public static final int COMPONENT_LAST = 103;
- public static final int COMPONENT_MOVED = 100;
- public static final int COMPONENT_RESIZED = 101;
- public static final int COMPONENT_SHOWN = 102;
-
- public ComponentEvent (Component source, int id)
- {
- super(source, id);
- }
-
- public Component getComponent ()
- {
- return (Component) source;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case COMPONENT_HIDDEN:
- r = "COMPONENT_HIDDEN";
- break;
- case COMPONENT_MOVED:
- r = "COMPONENT_MOVED";
- break;
- case COMPONENT_RESIZED:
- r = "COMPONENT_RESIZED";
- break;
- case COMPONENT_SHOWN:
- r = "COMPONENT_SHOWN";
- break;
- default:
- r = "unknown id";
- break;
- }
- return r;
- }
-}
diff --git a/libjava/java/awt/event/ComponentListener.java b/libjava/java/awt/event/ComponentListener.java
deleted file mode 100644
index 3302cf2a713..00000000000
--- a/libjava/java/awt/event/ComponentListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface ComponentListener extends java.util.EventListener
-{
- public void componentHidden (ComponentEvent e);
- public void componentMoved (ComponentEvent e);
- public void componentResized (ComponentEvent e);
- public void componentShown (ComponentEvent e);
-}
diff --git a/libjava/java/awt/event/ContainerAdapter.java b/libjava/java/awt/event/ContainerAdapter.java
deleted file mode 100644
index 18c12a5f19b..00000000000
--- a/libjava/java/awt/event/ContainerAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class ContainerAdapter implements ContainerListener
-{
- public void componentAdded (ContainerEvent e)
- {
- }
-
- public void componentRemoved (ContainerEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/ContainerEvent.java b/libjava/java/awt/event/ContainerEvent.java
deleted file mode 100644
index fc68d1403bd..00000000000
--- a/libjava/java/awt/event/ContainerEvent.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class ContainerEvent extends ComponentEvent
-{
- public static final int COMPONENT_ADDED = 300;
- public static final int COMPONENT_REMOVED = 301;
- public static final int CONTAINER_FIRST = 300;
- public static final int CONTAINER_LAST = 301;
-
- /** @specnote In JDK1.2 and 1.3, source is a Component. */
- public ContainerEvent (Component source, int id, Component child)
- {
- super (source, id);
- this.child = child;
- }
-
- public Component getChild ()
- {
- return child;
- }
-
- public Component getComponent ()
- {
- return (Component) source;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case COMPONENT_ADDED:
- r = "COMPONENT_ADDED";
- break;
- case COMPONENT_REMOVED:
- r = "COMPONENT_REMOVED";
- break;
- default:
- r = "unknown id";
- break;
-
- }
- r += ",child=" + child;
- return r;
- }
-
- private Component child;
-}
diff --git a/libjava/java/awt/event/ContainerListener.java b/libjava/java/awt/event/ContainerListener.java
deleted file mode 100644
index 65acba4a756..00000000000
--- a/libjava/java/awt/event/ContainerListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface ContainerListener extends java.util.EventListener
-{
- public void componentAdded (ContainerEvent e);
- public void componentRemoved (ContainerEvent e);
-}
diff --git a/libjava/java/awt/event/FocusAdapter.java b/libjava/java/awt/event/FocusAdapter.java
deleted file mode 100644
index f8419d92efa..00000000000
--- a/libjava/java/awt/event/FocusAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class FocusAdapter implements FocusListener
-{
- public void focusGained (FocusEvent e)
- {
- }
-
- public void focusLost (FocusEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/FocusEvent.java b/libjava/java/awt/event/FocusEvent.java
deleted file mode 100644
index ab125f55cab..00000000000
--- a/libjava/java/awt/event/FocusEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class FocusEvent extends AWTEvent
-{
- public static final int FOCUS_FIRST = 1004;
- public static final int FOCUS_GAINED = 1004;
- public static final int FOCUS_LAST = 1005;
- public static final int FOCUS_LOST = 1005;
-
- public FocusEvent (Component source, int id)
- {
- super (source, id);
- this.temporary = false;
- }
-
- public FocusEvent (Component source, int id, boolean temporary)
- {
- super (source, id);
- this.temporary = temporary;
- }
-
- public boolean isTemporary ()
- {
- return temporary;
- }
-
- public String paramString ()
- {
- String r = "";
- switch (id)
- {
- case FOCUS_GAINED:
- r += "FOCUS_GAINED";
- break;
- case FOCUS_LOST:
- r += "FOCUS_LOST";
- break;
- default:
- r += "unknown id";
- break;
- }
- r += (temporary ? "temporary" : "permanent");
- return r;
- }
-
- private boolean temporary;
-}
diff --git a/libjava/java/awt/event/FocusListener.java b/libjava/java/awt/event/FocusListener.java
deleted file mode 100644
index f4167de6c01..00000000000
--- a/libjava/java/awt/event/FocusListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface FocusListener extends java.util.EventListener
-{
- public void focusGained (FocusEvent e);
- public void focusLost (FocusEvent e);
-}
diff --git a/libjava/java/awt/event/HierarchyBoundsAdapter.java b/libjava/java/awt/event/HierarchyBoundsAdapter.java
deleted file mode 100644
index 39ce1ab1592..00000000000
--- a/libjava/java/awt/event/HierarchyBoundsAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @since 1.3
- * @author Bryce McKinlay
- */
-
-/* Status: Believed complete and correct. */
-
-public abstract class HierarchyBoundsAdapter implements HierarchyBoundsListener
-{
- public void ancestorMoved(HierarchyEvent e)
- {
- }
-
- public void ancestorResized(HierarchyEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/HierarchyBoundsListener.java b/libjava/java/awt/event/HierarchyBoundsListener.java
deleted file mode 100644
index aa853a0c27d..00000000000
--- a/libjava/java/awt/event/HierarchyBoundsListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @since 1.3
- * @author Bryce McKinlay
- */
-
-/* Status: Believed complete and correct. */
-
-public interface HierarchyBoundsListener extends java.util.EventListener
-{
- public void ancestorMoved(HierarchyEvent e);
- public void ancestorResized(HierarchyEvent e);
-}
diff --git a/libjava/java/awt/event/HierarchyEvent.java b/libjava/java/awt/event/HierarchyEvent.java
deleted file mode 100644
index 171d8b212ab..00000000000
--- a/libjava/java/awt/event/HierarchyEvent.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @since 1.3
- * @author Bryce McKinlay
- */
-
-/* Status: thought to be complete and correct. */
-
-public class HierarchyEvent extends AWTEvent
-{
- public static final int PARENT_CHANGED = 1 << 0,
- DISPLAYABILITY_CHANGED = 1 << 1,
- SHOWING_CHANGED = 1 << 2,
- HIERARCHY_FIRST = 1400,
- HIERARCHY_CHANGED = 1400,
- ANCESTOR_MOVED = 1401,
- ANCESTOR_RESIZED = 1402,
- HIERARCHY_LAST = 1402;
-
- /* Serialized fields from the serialization spec. */
- Component changed;
- Container changedParent;
- long changeFlags = 0;
-
- public HierarchyEvent(Component source, int id, Component changed,
- Container changedParent)
- {
- super(source, id);
- this.changed = changed;
- this.changedParent = changedParent;
- }
-
- public HierarchyEvent(Component source, int id, Component changed,
- Container changedParent, long changeFlags)
- {
- super(source,id);
- this.changed = changed;
- this.changedParent = changedParent;
- this.changeFlags = changeFlags;
- }
-
- public Component getComponent()
- {
- return (Component) source;
- }
-
- public Component getChanged()
- {
- return changed;
- }
-
- public Container getChangedParent()
- {
- return changedParent;
- }
-
- public long getChangeFlags()
- {
- return changeFlags;
- }
-
- public String paramString()
- {
- String r;
- switch (id)
- {
- case HIERARCHY_CHANGED:
- r = "HIERARCHY_CHANGED";
- break;
-
- case ANCESTOR_MOVED:
- r = "ANCESTOR_MOVED";
- break;
-
- case ANCESTOR_RESIZED:
- r = "ANCESTOR_RESIZED";
- break;
-
- default:
- return "unknown type";
- }
-
- r += "(" + changed + "," + changedParent + ")";
- return r;
- }
-}
diff --git a/libjava/java/awt/event/HierarchyListener.java b/libjava/java/awt/event/HierarchyListener.java
deleted file mode 100644
index b78e857a46e..00000000000
--- a/libjava/java/awt/event/HierarchyListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @since 1.3
- * @author Bryce McKinlay
- */
-
-/* Status: Believed complete and correct. */
-
-public interface HierarchyListener extends java.util.EventListener
-{
- public void hierarchyChanged(HierarchyEvent e);
-}
diff --git a/libjava/java/awt/event/InputEvent.java b/libjava/java/awt/event/InputEvent.java
deleted file mode 100644
index 2da79226316..00000000000
--- a/libjava/java/awt/event/InputEvent.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class InputEvent extends ComponentEvent
-{
- public static final int ALT_GRAPH_MASK = 32;
- public static final int ALT_MASK = 8;
- public static final int BUTTON1_MASK = 16;
- public static final int BUTTON2_MASK = 8;
- public static final int BUTTON3_MASK = 4;
- public static final int CTRL_MASK = 2;
- public static final int META_MASK = 4;
- public static final int SHIFT_MASK = 1;
-
- InputEvent (Component source, int id) // Not public
- {
- super(source, id);
- }
-
- public boolean isShiftDown ()
- {
- return (modifiers & SHIFT_MASK) != 0;
- }
-
- public boolean isControlDown ()
- {
- return (modifiers & CTRL_MASK) != 0;
- }
-
- public boolean isMetaDown ()
- {
- return (modifiers & META_MASK) != 0;
- }
-
- public boolean isAltDown ()
- {
- return (modifiers & ALT_MASK) != 0;
- }
-
- public long getWhen ()
- {
- return when;
- }
-
- public int getModifiers ()
- {
- return modifiers;
- }
-
- public boolean isConsumed ()
- {
- return consumed;
- }
-
- public void consume ()
- {
- /* FIXME */
- consumed = true;
- }
-
- private long when;
- private int modifiers;
-}
diff --git a/libjava/java/awt/event/InputMethodEvent.java b/libjava/java/awt/event/InputMethodEvent.java
deleted file mode 100644
index 3cafd3508a3..00000000000
--- a/libjava/java/awt/event/InputMethodEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* A very incomplete placeholder. */
-
-public class InputMethodEvent extends AWTEvent
-{
- public static final int CARET_POSITION_CHANGED = 1101;
- public static final int INPUT_METHOD_FIRST = 1100;
- public static final int INPUT_METHOD_LAST = 1101;
- public static final int INPUT_METHOD_TEXT_CHANGED = 1100;
-
- /*
- public InputMethodEvent (Component source, int id,
- AttributedCharacterIterator text,
- int committedCharacterCount, TextHitInfo caret,
- TextHitInfo visiblePosition)
- {
- if (id < INPUT_METHOD_FIRST
- || id > INPUT_METHOD_LAST
- || (id == CARET_POSITION_CHANGED && text != null)
- || committedCharacterCount < 0
- || (committedCharacterCount
- > text.getEndIndex () - text.getBeginIndex ()))
- throw new IllegalArgumentException ();
- }
-
- public InputMethodEvent (Component source, int id, TextHitInfo caret,
- TextHitInfo visiblePosition);
-
- public void consume ();
- public TextHitInfo getCaret ();
- public int getCommittedCharacterCount ();
- public AttributedCharacterIterator getText ();
- public TextHitInfo getVisiblePosition ();
- public boolean isConsumed ();
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case CARET_POSITION_CHANGED:
- r = "CARET_POSITION_CHANGED";
- break;
- case INPUT_METHOD_TEXT_CHANGED:
- r = "INPUT_METHOD_TEXT_CHANGED";
- break;
- }
- r += ""; // FIXME
- return r;
- }
- */
-
- // FIXME: this is just to let it compile.
- private InputMethodEvent ()
- {
- super (null, -1);
- }
-}
diff --git a/libjava/java/awt/event/InputMethodListener.java b/libjava/java/awt/event/InputMethodListener.java
deleted file mode 100644
index 0712404af39..00000000000
--- a/libjava/java/awt/event/InputMethodListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface InputMethodListener extends java.util.EventListener
-{
- public void caretPositionChanged (InputMethodEvent e);
- public void inputMethodTextChanged (InputMethodEvent e);
-}
diff --git a/libjava/java/awt/event/InvocationEvent.java b/libjava/java/awt/event/InvocationEvent.java
deleted file mode 100644
index 6ee6300e7fc..00000000000
--- a/libjava/java/awt/event/InvocationEvent.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed to be complete and correct. */
-
-public class InvocationEvent extends AWTEvent implements ActiveEvent
-{
- public static final int INVOCATION_DEFAULT = 1200;
- public static final int INVOCATION_FIRST = 1200;
- public static final int INVOCATION_LAST = 1200;
-
- protected InvocationEvent (Object source, int id, Runnable runnable,
- Object notifier, boolean catchExceptions)
- {
- super (source, id);
- this.runnable = runnable;
- this.notifier = notifier;
- this.catchExceptions = catchExceptions;
- }
-
- public InvocationEvent (Object source, Runnable runnable)
- {
- super (source, INVOCATION_DEFAULT);
- this.runnable = runnable;
- }
-
- public InvocationEvent(Object source, Runnable runnable, Object notifier,
- boolean catchExceptions)
- {
- super (source, INVOCATION_DEFAULT);
- this.runnable = runnable;
- this.notifier = notifier;
- this.catchExceptions = catchExceptions;
- }
-
- public void dispatch ()
- {
- Exception e = null;
- if (catchExceptions)
- try
- {
- runnable.run ();
- }
- catch (Exception x)
- {
- exception = x;
- }
- else
- runnable.run ();
-
- if (notifier != null)
- {
- synchronized (notifier)
- {
- notifier.notifyAll ();
- }
- }
- }
-
- public Exception getException ()
- {
- return exception;
- }
-
- public String paramString ()
- {
- String r;
- if (id == INVOCATION_DEFAULT)
- r = "INVOCATION_DEFAULT";
- else
- r = "unknown type";
-
- r += ",runnable=" + runnable + ",notifier=" + notifier +
- ",catchExceptions=" + catchExceptions;
- return r;
- }
-
- protected boolean catchExceptions;
- protected Object notifier;
- protected Runnable runnable;
-
- private Exception exception;
-}
diff --git a/libjava/java/awt/event/ItemEvent.java b/libjava/java/awt/event/ItemEvent.java
deleted file mode 100644
index 3d2e502655a..00000000000
--- a/libjava/java/awt/event/ItemEvent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class ItemEvent extends AWTEvent
-{
- public static final int DESELECTED = 2;
- public static final int ITEM_FIRST = 701;
- public static final int ITEM_LAST = 701;
- public static final int ITEM_STATE_CHANGED = 701;
- public static final int SELECTED = 1;
-
- public ItemEvent (ItemSelectable source, int id, Object item, int sc)
- {
- super (source, id);
- this.item = item;
- this.stateChange = sc;
- }
-
- public Object getItem ()
- {
- return item;
- }
-
- public ItemSelectable getItemSelectable ()
- {
- return (ItemSelectable) source;
- }
-
- public int getStateChange ()
- {
- return stateChange;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case ITEM_STATE_CHANGED:
- r = "ITEM_STATE_CHANGED";
- break;
- default:
- r = "unknown id";
- break;
- }
-
- r += ",item=" + item + ",stateChange=";
- switch (stateChange)
- {
- case SELECTED:
- r += "SELECTED";
- break;
- case DESELECTED:
- r += "DESELECTED";
- break;
- default:
- r += "unknown";
- break;
- }
-
- return r;
- }
-
- private Object item;
- private int stateChange;
-}
diff --git a/libjava/java/awt/event/ItemListener.java b/libjava/java/awt/event/ItemListener.java
deleted file mode 100644
index 30bfcac3cab..00000000000
--- a/libjava/java/awt/event/ItemListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface ItemListener extends java.util.EventListener
-{
- public void itemStateChanged (ItemEvent e);
-}
diff --git a/libjava/java/awt/event/KeyAdapter.java b/libjava/java/awt/event/KeyAdapter.java
deleted file mode 100644
index 0e1297eb80d..00000000000
--- a/libjava/java/awt/event/KeyAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class KeyAdapter implements KeyListener
-{
- public void keyPressed (KeyEvent w)
- {
- }
-
- public void keyReleased (KeyEvent w)
- {
- }
-
- public void keyTyped (KeyEvent w)
- {
- }
-}
diff --git a/libjava/java/awt/event/KeyEvent.java b/libjava/java/awt/event/KeyEvent.java
deleted file mode 100644
index 36e116f4748..00000000000
--- a/libjava/java/awt/event/KeyEvent.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* Status: still incomplete. */
-
-public class KeyEvent extends InputEvent
-{
- public static char CHAR_UNDEFINED = 0;;
- public static final int KEY_FIRST = 400;
- public static final int KEY_LAST = 402;
- public static final int KEY_PRESSED = 401;
- public static final int KEY_RELEASED = 402;
- public static final int KEY_TYPED = 400;
- public static final int VK_0 = 48;
- public static final int VK_1 = 49;
- public static final int VK_2 = 50;
- public static final int VK_3 = 51;
- public static final int VK_4 = 52;
- public static final int VK_5 = 53;
- public static final int VK_6 = 54;
- public static final int VK_7 = 55;
- public static final int VK_8 = 56;
- public static final int VK_9 = 57;
- public static final int VK_A = 65;
- public static final int VK_ACCEPT = 30;
- public static final int VK_ADD = 107;
- public static final int VK_AGAIN = 65481;
- public static final int VK_ALL_CANDIDATES = 256;
- public static final int VK_ALPHANUMERIC = 240;
- public static final int VK_ALT = 18;
- public static final int VK_ALT_GRAPH = 65406;
- public static final int VK_AMPERSAND = 150;
- public static final int VK_ASTERISK = 151;
- public static final int VK_AT = 512;
- public static final int VK_B = 66;
- public static final int VK_BACK_QUOTE = 192;
- public static final int VK_BACK_SLASH = 92;
- public static final int VK_BACK_SPACE = 8;
- public static final int VK_BRACELEFT = 161;
- public static final int VK_BRACERIGHT = 162;
- public static final int VK_C = 67;
- public static final int VK_CANCEL = 3;
- public static final int VK_CAPS_LOCK = 20;
- public static final int VK_CIRCUMFLEX = 514;
- public static final int VK_CLEAR = 12;
- public static final int VK_CLOSE_BRACKET = 93;
- public static final int VK_CODE_INPUT = 258;
- public static final int VK_COLON = 513;
- public static final int VK_COMMA = 44;
- public static final int VK_COMPOSE = 65312;
- public static final int VK_CONTROL = 17;
- public static final int VK_CONVERT = 28;
- public static final int VK_COPY = 65485;
- public static final int VK_CUT = 65489;
- public static final int VK_D = 68;
- public static final int VK_DEAD_ABOVEDOT = 134;
- public static final int VK_DEAD_ABOVERING = 136;
- public static final int VK_DEAD_ACUTE = 129;
- public static final int VK_DEAD_BREVE = 133;
- public static final int VK_DEAD_CARON = 138;
- public static final int VK_DEAD_CEDILLA = 139;
- public static final int VK_DEAD_CIRCUMFLEX = 130;
- public static final int VK_DEAD_DIAERESIS = 135;
- public static final int VK_DEAD_DOUBLEACUTE = 137;
- public static final int VK_DEAD_GRAVE = 128;
- public static final int VK_DEAD_IOTA = 141;
- public static final int VK_DEAD_MACRON = 132;
- public static final int VK_DEAD_OGONEK = 140;
- public static final int VK_DEAD_SEMIVOICED_SOUND = 143;
- public static final int VK_DEAD_TILDE = 131;
- public static final int VK_DEAD_VOICED_SOUND = 142;
- public static final int VK_DECIMAL = 110;
- public static final int VK_DELETE = 127;
- public static final int VK_DIVIDE = 111;
- public static final int VK_DOLLAR = 515;
- public static final int VK_DOWN = 40;
- public static final int VK_E = 69;
- public static final int VK_END = 35;
- public static final int VK_ENTER = 10;
- public static final int VK_EQUALS = 61;
- public static final int VK_ESCAPE = 27;
- public static final int VK_EURO_SIGN = 516;
- public static final int VK_EXCLAMATION_MARK = 517;
- public static final int VK_F = 70;
- public static final int VK_F1 = 112;
- public static final int VK_F10 = 121;
- public static final int VK_F11 = 122;
- public static final int VK_F12 = 123;
- public static final int VK_F13 = 61440;
- public static final int VK_F14 = 61441;
- public static final int VK_F15 = 61442;
- public static final int VK_F16 = 61443;
- public static final int VK_F17 = 61444;
- public static final int VK_F18 = 61445;
- public static final int VK_F19 = 61446;
- public static final int VK_F2 = 113;
- public static final int VK_F20 = 61447;
- public static final int VK_F21 = 61448;
- public static final int VK_F22 = 61449;
- public static final int VK_F23 = 61450;
- public static final int VK_F24 = 61451;
- public static final int VK_F3 = 114;
- public static final int VK_F4 = 115;
- public static final int VK_F5 = 116;
- public static final int VK_F6 = 117;
- public static final int VK_F7 = 118;
- public static final int VK_F8 = 119;
- public static final int VK_F9 = 120;
- public static final int VK_FINAL = 24;
- public static final int VK_FIND = 65488;
- public static final int VK_FULL_WIDTH = 243;
- public static final int VK_G = 71;
- public static final int VK_GREATER = 160;
- public static final int VK_H = 72;
- public static final int VK_HALF_WIDTH = 244;
- public static final int VK_HELP = 156;
- public static final int VK_HIRAGANA = 242;
- public static final int VK_HOME = 36;
- public static final int VK_I = 73;
- public static final int VK_INSERT = 155;
- public static final int VK_INVERTED_EXCLAMATION_MARK = 518;
- public static final int VK_J = 74;
- public static final int VK_JAPANESE_HIRAGANA = 260;
- public static final int VK_JAPANESE_KATAKANA = 259;
- public static final int VK_JAPANESE_ROMAN = 261;
- public static final int VK_K = 75;
- public static final int VK_KANA = 21;
- public static final int VK_KANJI = 25;
- public static final int VK_KATAKANA = 241;
- public static final int VK_KP_DOWN = 225;
- public static final int VK_KP_LEFT = 226;
- public static final int VK_KP_RIGHT = 227;
- public static final int VK_KP_UP = 224;
- public static final int VK_L = 76;
- public static final int VK_LEFT = 37;
- public static final int VK_LEFT_PARENTHESIS = 519;
- public static final int VK_LESS = 153;
- public static final int VK_M = 77;
- public static final int VK_META = 157;
- public static final int VK_MINUS = 45;
- public static final int VK_MODECHANGE = 31;
- public static final int VK_MULTIPLY = 106;
- public static final int VK_N = 78;
- public static final int VK_NONCONVERT = 29;
- public static final int VK_NUM_LOCK = 144;
- public static final int VK_NUMBER_SIGN = 520;
- public static final int VK_NUMPAD0 = 96;
- public static final int VK_NUMPAD1 = 97;
- public static final int VK_NUMPAD2 = 98;
- public static final int VK_NUMPAD3 = 99;
- public static final int VK_NUMPAD4 = 100;
- public static final int VK_NUMPAD5 = 101;
- public static final int VK_NUMPAD6 = 102;
- public static final int VK_NUMPAD7 = 103;
- public static final int VK_NUMPAD8 = 104;
- public static final int VK_NUMPAD9 = 105;
- public static final int VK_O = 79;
- public static final int VK_OPEN_BRACKET = 91;
- public static final int VK_P = 80;
- public static final int VK_PAGE_DOWN = 34;
- public static final int VK_PAGE_UP = 33;
- public static final int VK_PASTE = 65487;
- public static final int VK_PAUSE = 19;
- public static final int VK_PERIOD = 46;
- public static final int VK_PLUS = 521;
- public static final int VK_PREVIOUS_CANDIDATE = 257;
- public static final int VK_PRINTSCREEN = 154;
- public static final int VK_PROPS = 65482;
- public static final int VK_Q = 81;
- public static final int VK_QUOTE = 222;
- public static final int VK_QUOTEDBL = 152;
- public static final int VK_R = 82;
- public static final int VK_RIGHT = 39;
- public static final int VK_RIGHT_PARENTHESIS = 522;
- public static final int VK_ROMAN_CHARACTERS = 245;
- public static final int VK_S = 83;
- public static final int VK_SCROLL_LOCK = 145;
- public static final int VK_SEMICOLON = 59;
- public static final int VK_SEPARATER = 108;
- public static final int VK_SHIFT = 16;
- public static final int VK_SLASH = 47;
- public static final int VK_SPACE = 32;
- public static final int VK_STOP = 65480;
- public static final int VK_SUBTRACT = 109;
- public static final int VK_T = 84;
- public static final int VK_TAB = 9;
- public static final int VK_U = 85;
- public static final int VK_UNDEFINED = 0;
- public static final int VK_UNDERSCORE = 523;
- public static final int VK_UNDO = 65483;
- public static final int VK_UP = 38;
- public static final int VK_V = 86;
- public static final int VK_W = 87;
- public static final int VK_X = 88;
- public static final int VK_Y = 89;
- public static final int VK_Z = 90;
-
- public KeyEvent (Component source, int id, long when,
- int modifiers, int keyCode, char keyChar)
- {
- super (source, id);
- this.keyCode = keyCode;
- this.keyChar = keyChar;
- this.modifiers = modifiers;
- }
-
- public KeyEvent (Component source, int id, long when,
- int modifiers, int keyCode)
- {
- super (source, id);
- this.keyCode = keyCode;
- this.keyChar = CHAR_UNDEFINED; // FIXME?
- this.modifiers = modifiers;
- }
-
- public int getKeyCode () { return keyCode; }
-
- public char getKeyChar () { return keyChar; }
-
- public void setKeyCode (int keyCode) { this.keyCode = keyCode; }
-
- public void setKeyChar (char keyChar) { this.keyChar = keyChar; }
-
- public void setModifiers (int modifiers) { this.modifiers = modifiers; }
-
- public static String getKeyText (int keyCode)
- {
- // FIXME
- throw new InternalError ("unimplemented");
- }
-
- public static String getKeyModifiersText (int modifiers)
- {
- // FIXME
- throw new InternalError ("unimplemented");
- }
-
- public boolean isActionKey ()
- {
- // FIXME
- return false;
- }
-
- public String paramString ()
- {
- String r = "";
- switch (id)
- {
- case KEY_PRESSED:
- r = "KEY_PRESSED";
- break;
- case KEY_RELEASED:
- r = "KEY_RELEASED";
- break;
- case KEY_TYPED:
- r = "KEY_TYPED";
- break;
- }
- r += ",keyCode=" + keyCode + "," + getKeyText(keyCode) + ",modifiers=" +
- getKeyModifiersText(modifiers);
- return r;
- }
-
- private int keyCode;
- private char keyChar;
- private int modifiers;
-}
diff --git a/libjava/java/awt/event/KeyListener.java b/libjava/java/awt/event/KeyListener.java
deleted file mode 100644
index e08d67e214e..00000000000
--- a/libjava/java/awt/event/KeyListener.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Status: Believed complete and correct. */
-
-public interface KeyListener extends java.util.EventListener
-{
- public void keyPressed (KeyEvent w);
- public void keyReleased (KeyEvent w);
- public void keyTyped (KeyEvent w);
-}
diff --git a/libjava/java/awt/event/MouseAdapter.java b/libjava/java/awt/event/MouseAdapter.java
deleted file mode 100644
index 65189385738..00000000000
--- a/libjava/java/awt/event/MouseAdapter.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class MouseAdapter implements MouseListener
-{
- public void mouseClicked (MouseEvent e)
- {
- }
-
- public void mouseEntered (MouseEvent e)
- {
- }
-
- public void mouseExited (MouseEvent e)
- {
- }
-
- public void mousePressed (MouseEvent e)
- {
- }
-
- public void mouseReleased (MouseEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/MouseEvent.java b/libjava/java/awt/event/MouseEvent.java
deleted file mode 100644
index bb9602cd17b..00000000000
--- a/libjava/java/awt/event/MouseEvent.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class MouseEvent extends InputEvent
-{
- public static final int MOUSE_CLICKED = 500;
- public static final int MOUSE_DRAGGED = 506;
- public static final int MOUSE_ENTERED = 504;
- public static final int MOUSE_EXITED = 505;
- public static final int MOUSE_FIRST = 500;
- public static final int MOUSE_LAST = 506;
- public static final int MOUSE_MOVED = 503;
- public static final int MOUSE_PRESSED = 501;
- public static final int MOUSE_RELEASED = 502;
-
- public MouseEvent (Component source, int id, long when, int modifiers,
- int x, int y, int clickCount, boolean popupTrigger)
- {
- super (source, id);
- this.when = when;
- this.modifiers = modifiers;
- this.x = x;
- this.y = y;
- this.clickCount = clickCount;
- this.popupTrigger = popupTrigger;
- }
-
- public int getClickCount ()
- {
- return clickCount;
- }
-
- public Point getPoint ()
- {
- return new Point (x, y);
- }
-
- public int getX ()
- {
- return x;
- }
-
- public int getY ()
- {
- return y;
- }
-
- public boolean isPopupTrigger ()
- {
- return popupTrigger;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case MOUSE_CLICKED:
- r = "MOUSE_CLICKED";
- break;
- case MOUSE_DRAGGED:
- r = "MOUSE_DRAGGED";
- break;
- case MOUSE_ENTERED:
- r = "MOUSE_ENTERED";
- break;
- case MOUSE_EXITED:
- r = "MOUSE_EXITED";
- break;
- case MOUSE_MOVED:
- r = "MOUSE_MOVED";
- break;
- case MOUSE_PRESSED:
- r = "MOUSE_PRESSED";
- break;
- case MOUSE_RELEASED:
- r = "MOUSE_RELEASED";
- break;
- default:
- r = "unknown id";
- break;
- }
- r += ",(" + x + "," + y + "),modifiers=" + modifiers + ",clickCount=" +
- clickCount;
- return r;
- }
-
- public void translatePoint (int x, int y)
- {
- this.x += x;
- this.y += y;
- }
-
- private long when;
- private int modifiers;
- private int x;
- private int y;
- private int clickCount;
- private boolean popupTrigger;
-}
diff --git a/libjava/java/awt/event/MouseListener.java b/libjava/java/awt/event/MouseListener.java
deleted file mode 100644
index 0f1b8243d8c..00000000000
--- a/libjava/java/awt/event/MouseListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface MouseListener extends java.util.EventListener
-{
- public void mouseClicked (MouseEvent e);
- public void mouseEntered (MouseEvent e);
- public void mouseExited (MouseEvent e);
- public void mousePressed (MouseEvent e);
- public void mouseReleased (MouseEvent e);
-}
diff --git a/libjava/java/awt/event/MouseMotionAdapter.java b/libjava/java/awt/event/MouseMotionAdapter.java
deleted file mode 100644
index ce30d2eb5c3..00000000000
--- a/libjava/java/awt/event/MouseMotionAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public abstract class MouseMotionAdapter implements MouseMotionListener
-{
- public void mouseDragged (MouseEvent e)
- {
- }
-
- public void mouseMoved (MouseEvent e)
- {
- }
-}
diff --git a/libjava/java/awt/event/MouseMotionListener.java b/libjava/java/awt/event/MouseMotionListener.java
deleted file mode 100644
index 6b12da5da3e..00000000000
--- a/libjava/java/awt/event/MouseMotionListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public interface MouseMotionListener extends java.util.EventListener
-{
- public void mouseDragged (MouseEvent e);
- public void mouseMoved (MouseEvent e);
-}
diff --git a/libjava/java/awt/event/PaintEvent.java b/libjava/java/awt/event/PaintEvent.java
deleted file mode 100644
index 21c42e49a7c..00000000000
--- a/libjava/java/awt/event/PaintEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 8, 2000
- */
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class PaintEvent extends ComponentEvent
-{
- public static final int PAINT = 800;
- public static final int PAINT_FIRST = 800;
- public static final int PAINT_LAST = 801;
- public static final int UPDATE = 801;
-
- public PaintEvent (Component source, int id, Rectangle updateRect)
- {
- super (source, id);
- this.updateRect = updateRect;
- }
-
- public Rectangle getUpdateRect ()
- {
- return updateRect;
- }
-
- public String paramString ()
- {
- String r;
- switch (id)
- {
- case UPDATE:
- r = "UPDATE";
- break;
- case PAINT:
- r = "PAINT";
- break;
- default:
- r = "unknown id";
- break;
- }
-
- r += ",updateRect=" + updateRect;
- return r;
- }
-
- public void setUpdateRect (Rectangle updateRect)
- {
- this.updateRect = updateRect;
- }
-
- private Rectangle updateRect;
-}
diff --git a/libjava/java/awt/event/TextEvent.java b/libjava/java/awt/event/TextEvent.java
deleted file mode 100644
index 85c5d85a4eb..00000000000
--- a/libjava/java/awt/event/TextEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class TextEvent extends AWTEvent
-{
- public static final int TEXT_FIRST = 900;
- public static final int TEXT_LAST = 900;
- public static final int TEXT_VALUE_CHANGED = 900;
-
- public TextEvent (Object source, int id)
- {
- super (source, id);
- }
-
- public String paramString ()
- {
- return "TEXT_VALUE_CHANGED";
- }
-}
diff --git a/libjava/java/awt/event/TextListener.java b/libjava/java/awt/event/TextListener.java
deleted file mode 100644
index 45c4da898ee..00000000000
--- a/libjava/java/awt/event/TextListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Status: Believed complete and correct. */
-
-public interface TextListener extends java.util.EventListener
-{
- public void textValueChanged (TextEvent w);
-}
-
diff --git a/libjava/java/awt/event/WindowAdapter.java b/libjava/java/awt/event/WindowAdapter.java
deleted file mode 100644
index caf2b18b48f..00000000000
--- a/libjava/java/awt/event/WindowAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Status: Believed complete and correct. */
-
-public class WindowAdapter implements WindowListener
-{
- public void windowActivated (WindowEvent w) { }
- public void windowClosed (WindowEvent w) { }
- public void windowClosing (WindowEvent w) { }
- public void windowDeactivated (WindowEvent w) { }
- public void windowDeiconified (WindowEvent w) { }
- public void windowIconified (WindowEvent w) { }
- public void windowOpened (WindowEvent w) { }
-}
diff --git a/libjava/java/awt/event/WindowEvent.java b/libjava/java/awt/event/WindowEvent.java
deleted file mode 100644
index 28108f8e4a8..00000000000
--- a/libjava/java/awt/event/WindowEvent.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-import java.awt.*;
-
-/* Status: Believed complete and correct to JDK 1.2. */
-
-public class WindowEvent extends ComponentEvent
-{
- public static final int WINDOW_ACTIVATED = 205;
- public static final int WINDOW_CLOSED = 202;
- public static final int WINDOW_CLOSING = 201;
- public static final int WINDOW_DEACTIVATED = 206;
- public static final int WINDOW_DEICONIFIED = 204;
- public static final int WINDOW_FIRST = 200;
- public static final int WINDOW_ICONIFIED = 203;
- public static final int WINDOW_LAST = 206;
- public static final int WINDOW_OPENED = 200;
-
- public WindowEvent (Window source, int id)
- {
- super (source, id);
- }
-
- public Window getWindow ()
- {
- return (Window) source;
- }
-
- public String paramString ()
- {
- String r = "";
- switch (id)
- {
- case WINDOW_ACTIVATED:
- r = "WINDOW_ACTIVATED";
- break;
- case WINDOW_CLOSED:
- r = "WINDOW_CLOSED";
- break;
- case WINDOW_CLOSING:
- r = "WINDOW_CLOSING";
- break;
- case WINDOW_DEACTIVATED:
- r = "WINDOW_DEACTIVATED";
- break;
- case WINDOW_DEICONIFIED:
- r = "WINDOW_DEICONIFIED";
- break;
- case WINDOW_ICONIFIED:
- r = "WINDOW_ICONIFIED";
- break;
- case WINDOW_OPENED:
- r = "WINDOW_OPENED";
- break;
- }
- return r;
- }
-}
diff --git a/libjava/java/awt/event/WindowListener.java b/libjava/java/awt/event/WindowListener.java
deleted file mode 100644
index e939ce7dcf6..00000000000
--- a/libjava/java/awt/event/WindowListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.event;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Status: Believed complete and correct. */
-
-public interface WindowListener extends java.util.EventListener
-{
- public void windowActivated (WindowEvent w);
- public void windowClosed (WindowEvent w);
- public void windowClosing (WindowEvent w);
- public void windowDeactivated (WindowEvent w);
- public void windowDeiconified (WindowEvent w);
- public void windowIconified (WindowEvent w);
- public void windowOpened (WindowEvent w);
-}
diff --git a/libjava/java/awt/geom/AffineTransform.java b/libjava/java/awt/geom/AffineTransform.java
deleted file mode 100644
index 71208c08ecc..00000000000
--- a/libjava/java/awt/geom/AffineTransform.java
+++ /dev/null
@@ -1,652 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-import java.awt.*;
-import java.io.Serializable;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 16, 2000
- */
-
-/* Status: mostly complete. Search for fixme to see problems.
- Also, TYPE_ returns are not handled correctly. */
-
-public class AffineTransform implements Cloneable, Serializable
-{
- static final int TYPE_IDENTITY = 0;
- static final int TYPE_FLIP = 64;
- static final int TYPE_GENERAL_ROTATION = 16;
- static final int TYPE_GENERAL_SCALE = 4;
- static final int TYPE_GENERAL_TRANSFORM = 32;
- static final int TYPE_MASK_ROTATION = 24;
- static final int TYPE_MASK_SCALE = 6;
- static final int TYPE_QUADRANT_ROTATION = 8;
- static final int TYPE_TRANSLATION = 1;
- static final int TYPE_UNIFORM_SCALE = 2;
-
- public AffineTransform ()
- {
- setToIdentity ();
- }
-
- public AffineTransform (AffineTransform tx)
- {
- setTransform (tx);
- }
-
- public AffineTransform (float m00, float m10,
- float m01, float m11,
- float m02, float m12)
- {
- this.m00 = m00;
- this.m10 = m10;
- this.m01 = m01;
- this.m11 = m11;
- this.m02 = m02;
- this.m12 = m12;
- this.type = 0; // fixme;
- }
-
- public AffineTransform (float[] flatmatrix)
- {
- m00 = flatmatrix[0];
- m10 = flatmatrix[1];
- m01 = flatmatrix[2];
- m11 = flatmatrix[3];
- if (flatmatrix.length >= 6)
- {
- m02 = flatmatrix[4];
- m12 = flatmatrix[5];
- }
- }
-
- public AffineTransform (double m00, double m10, double m01,
- double m11, double m02, double m12)
- {
- this.m00 = m00;
- this.m10 = m10;
- this.m01 = m01;
- this.m11 = m11;
- this.m02 = m02;
- this.m12 = m12;
- this.type = TYPE_GENERAL_TRANSFORM;
- }
-
- public AffineTransform (double[] flatmatrix)
- {
- m00 = flatmatrix[0];
- m10 = flatmatrix[1];
- m01 = flatmatrix[2];
- m11 = flatmatrix[3];
- if (flatmatrix.length >= 6)
- {
- m02 = flatmatrix[4];
- m12 = flatmatrix[5];
- }
- }
-
- public static AffineTransform getTranslateInstance (double tx, double ty)
- {
- AffineTransform t = new AffineTransform ();
- t.setToTranslation (tx, ty);
- return t;
- }
-
- public static AffineTransform getRotateInstance (double theta)
- {
- AffineTransform t = new AffineTransform ();
- t.setToRotation (theta);
- return t;
- }
-
- public static AffineTransform getRotateInstance (double theta,
- double x, double y)
- {
- AffineTransform t = new AffineTransform ();
- t.rotate (theta, x, y);
- return t;
- }
-
- public static AffineTransform getScaleInstance (double sx, double sy)
- {
- AffineTransform t = new AffineTransform ();
- t.setToScale (sx, sy);
- return t;
- }
-
- public static AffineTransform getShearInstance (double shx, double shy)
- {
- AffineTransform t = new AffineTransform ();
- t.setToShear (shx, shy);
- return t;
- }
-
- public int getType ()
- {
- return type;
- }
-
- public double getDeterminant ()
- {
- return m00 * m11 - m01 * m10;
- }
-
- public void getMatrix (double[] flatmatrix)
- {
- flatmatrix[0] = m00;
- flatmatrix[1] = m10;
- flatmatrix[2] = m01;
- flatmatrix[3] = m11;
- if (flatmatrix.length >= 6)
- {
- flatmatrix[4] = m02;
- flatmatrix[5] = m12;
- }
- }
-
- public double getScaleX ()
- {
- return m00;
- }
-
- public double getScaleY ()
- {
- return m11;
- }
-
- public double getShearX ()
- {
- return m01;
- }
-
- public double getShearY ()
- {
- return m10;
- }
-
- public double getTranslateX ()
- {
- return m02;
- }
-
- public double getTranslateY ()
- {
- return m12;
- }
-
- public void translate (double tx, double ty)
- {
- m02 += tx * m00 + ty * m01;
- m12 += tx * m10 + ty * m11;
- }
-
- public void rotate (double theta)
- {
- double c = Math.cos (theta);
- double s = Math.sin (theta);
- double n00 = m00 * c + m01 * s;
- double n01 = m00 * -s + m01 * c;
- double n10 = m10 * c + m11 * s;
- double n11 = m10 * -s + m11 * c;
-
- m00 = n00;
- m01 = n01;
- m10 = n10;
- m11 = n11;
- }
-
- public void rotate (double theta, double x, double y)
- {
- translate (x, y);
- rotate (theta);
- translate (-x, -y);
- }
-
- public void scale (double sx, double sy)
- {
- m00 *= sx;
- m01 *= sy;
- m10 *= sx;
- m11 *= sy;
- }
-
- public void shear (double shx, double shy)
- {
- double n00 = m00 + shx * m01;
- double n01 = shx * m00 + m01;
- double n10 = m10 * shy + m11;
- double n11 = shx * m10 + m11;
-
- m00 = n00;
- m01 = n01;
- m10 = n10;
- m11 = n11;
- }
-
- public void setToIdentity ()
- {
- m00 = m11 = 1;
- m01 = m02 = m10 = m12 = 0;
- type = TYPE_IDENTITY;
- }
-
- public void setToTranslation (double tx, double ty)
- {
- m00 = m11 = 1;
- m01 = m10 = 0;
- m02 = tx;
- m12 = ty;
- type = TYPE_TRANSLATION;
- }
-
- public void setToRotation (double theta)
- {
- double c = Math.cos (theta);
- double s = Math.sin (theta);
-
- m00 = c;
- m01 = -s;
- m02 = 0;
- m10 = s;
- m11 = c;
- m12 = 0;
- type = TYPE_GENERAL_ROTATION;
- }
-
- public void setToScale (double sx, double sy)
- {
- m00 = sx;
- m01 = m02 = m10 = m12 = 0;
- m11 = sy;
- type = (sx == sy) ? TYPE_UNIFORM_SCALE : TYPE_GENERAL_SCALE;
- }
-
- public void setToShear (double shx, double shy)
- {
- m00 = m11 = 1;
- m01 = shx;
- m10 = shy;
- m02 = m12 = 0;
- type = 0; // FIXME
- }
-
- public void setTransform (AffineTransform tx)
- {
- m00 = tx.m00;
- m01 = tx.m01;
- m02 = tx.m02;
- m10 = tx.m10;
- m11 = tx.m11;
- m12 = tx.m12;
- type = tx.type;
- }
-
- public void setTransform (double m00, double m10, double m01,
- double m11, double m02, double m12)
- {
- this.m00 = m00;
- this.m10 = m10;
- this.m01 = m01;
- this.m11 = m11;
- this.m02 = m02;
- this.m12 = m12;
- this.type = 0; // FIXME
- }
-
- public void concatentate (AffineTransform tx)
- {
- double n00 = m00 * tx.m00 + m01 * tx.m10;
- double n01 = m00 * tx.m01 + m01 * tx.m11;
- double n02 = m00 * tx.m02 + m01 * tx.m12 + m02;
- double n10 = m10 * tx.m00 + m11 * tx.m10;
- double n11 = m10 * tx.m01 + m11 * tx.m11;
- double n12 = m10 * tx.m02 + m11 * tx.m12 + m12;
-
- m00 = n00;
- m01 = n01;
- m02 = n02;
- m10 = n10;
- m11 = n11;
- m12 = n12;
- }
-
- public void preConcatenate (AffineTransform tx)
- {
- double n00 = tx.m00 * m00 + tx.m01 * m10;
- double n01 = tx.m00 * m01 + tx.m01 * m11;
- double n02 = tx.m00 * m02 + tx.m01 * m12 + tx.m02;
- double n10 = tx.m10 * m00 + tx.m11 * m10;
- double n11 = tx.m10 * m01 + tx.m11 * m11;
- double n12 = tx.m10 * m02 + tx.m11 * m12 + tx.m12;
-
- m00 = n00;
- m01 = n01;
- m02 = n02;
- m10 = n10;
- m11 = n11;
- m12 = n12;
- }
-
- public AffineTransform createInverse ()
- throws NoninvertibleTransformException
- {
- double det = getDeterminant ();
- if (det == 0)
- throw new NoninvertibleTransformException ("can't invert transform");
-
- double i00 = m11 / det;
- double i01 = -m10 / det;
- double i02 = 0;
- double i10 = m01 / det;
- double i11 = -m00 / det;
- double i12 = 0;
-
- return new AffineTransform (i00, i01, i02,
- i10, i11, i12);
- }
-
- public Point2D transform (Point2D src, Point2D dst)
- {
- if (dst == null)
- dst = new Point2D.Double ();
-
- // We compute and set separately to correctly overwrite if
- // src==dst.
- double x = src.getX ();
- double y = src.getY ();
- double nx = m00 * x + m01 * y + m02;
- double ny = m10 * x + m11 * y + m12;
-
- dst.setLocation (nx, ny);
-
- return dst;
- }
-
- public void transform (Point2D[] src, int srcOff,
- Point2D[] dst, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- dst[dstOff] = transform (src[srcOff], dst[dstOff]);
- ++srcOff;
- ++dstOff;
- }
- }
-
- public void transform (float[] srcPts, int srcOff,
- float[] dstPts, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- float x = srcPts[srcOff];
- float y = srcPts[srcOff + 1];
- srcOff += 2;
- float nx = (float) (m00 * x + m01 * y + m02);
- float ny = (float) (m10 * x + m10 * y + m12);
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- }
- }
-
- public void transform (double[] srcPts, int srcOff,
- double[] dstPts, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- double x = srcPts[srcOff];
- double y = srcPts[srcOff + 1];
- srcOff += 2;
- double nx = m00 * x + m01 * y + m02;
- double ny = m10 * x + m10 * y + m12;
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- }
- }
-
- public void transform (float[] srcPts, int srcOff,
- double[] dstPts, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- float x = srcPts[srcOff];
- float y = srcPts[srcOff + 1];
- srcOff += 2;
- double nx = m00 * x + m01 * y + m02;
- double ny = m10 * x + m10 * y + m12;
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- }
- }
-
- public void transform (double[] srcPts, int srcOff,
- float[] dstPts, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- double x = srcPts[srcOff];
- double y = srcPts[srcOff + 1];
- srcOff += 2;
- float nx = (float) (m00 * x + m01 * y + m02);
- float ny = (float) (m10 * x + m10 * y + m12);
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- }
- }
-
- public Point2D inverseTransform (Point2D src, Point2D dst)
- throws NoninvertibleTransformException
- {
- double det = getDeterminant ();
- if (det == 0)
- throw new NoninvertibleTransformException ("couldn't invert transform");
-
- if (dst == null)
- dst = new Point2D.Double ();
- double x = src.getX ();
- double y = src.getY ();
- double nx = (m11 * x + - m10 * y) / det;
- double ny = (m01 * x + - m00 * y) / det;
- dst.setLocation (nx, ny);
- return dst;
- }
-
- public void inverseTransform (double[] srcPts, int srcOff,
- double[] dstPts, int dstOff,
- int num)
- throws NoninvertibleTransformException
- {
- double det = getDeterminant ();
- if (det == 0)
- throw new NoninvertibleTransformException ("couldn't invert transform");
-
- while (num-- > 0)
- {
- double x = srcPts[srcOff];
- double y = srcPts[srcOff + 1];
- double nx = (m11 * x + - m10 * y) / det;
- double ny = (m01 * x + - m00 * y) / det;
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- srcOff += 2;
- }
- }
-
- public Point2D deltaTransform (Point2D src, Point2D dst)
- {
- if (dst == null)
- dst = new Point2D.Double ();
- double x = src.getX ();
- double y = src.getY ();
- double nx = m00 * x + m01 * y;
- double ny = m10 * x + m11 * y;
- dst.setLocation (nx, ny);
- return dst;
- }
-
- public void deltaTransform (double[] srcPts, int srcOff,
- double[] dstPts, int dstOff,
- int num)
- {
- while (num-- > 0)
- {
- double x = srcPts[srcOff];
- double y = srcPts[srcOff + 1];
- double nx = m00 * x + m01 * y;
- double ny = m10 * x + m11 * y;
- dstPts[dstOff] = nx;
- dstPts[dstOff + 1] = ny;
- dstOff += 2;
- srcOff += 2;
- }
- }
-
- public Shape createTransformedShape (Shape pSrc)
- {
- // FIXME
- return null;
- }
-
- public String toString ()
- {
- // FIXME
- return null;
- }
-
- public boolean isIdentity ()
- {
- return (m00 == 1 && m01 == 0 && m02 == 0
- && m10 == 0 && m11 == 1 && m12 == 0);
- }
-
- public Object clone ()
- {
- return new AffineTransform (this);
- }
-
- public int hashCode ()
- {
- // FIXME
- return 23;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof AffineTransform))
- return false;
- AffineTransform t = (AffineTransform) obj;
- return (m00 == t.m00 && m01 == t.m01 && m02 == t.m02
- && m10 == t.m10 && m11 == t.m11 && m12 == t.m12);
- }
-
- // This iterator is used to apply an AffineTransform to some other
- // iterator. It is not private because we want to be able to access
- // it from the rest of this package.
- class Iterator implements PathIterator
- {
- // The iterator we are applied to.
- private PathIterator subIterator;
-
- public Iterator (PathIterator subIterator)
- {
- this.subIterator = subIterator;
- }
-
- public int currentSegment (double[] coords)
- {
- int r = subIterator.currentSegment (coords);
- int count = 0;
-
- switch (r)
- {
- case SEG_CUBICTO:
- count = 3;
- break;
-
- case SEG_QUADTO:
- count = 2;
- break;
-
- case SEG_LINETO:
- case SEG_MOVETO:
- count = 1;
- break;
-
- default:
- // Error. But how to report?
- case SEG_CLOSE:
- break;
- }
-
- transform (coords, 0, coords, 0, count);
-
- return r;
- }
-
- public int currentSegment (float[] coords)
- {
- int r = subIterator.currentSegment (coords);
- int count = 0;
-
- switch (r)
- {
- case SEG_CUBICTO:
- count = 3;
- break;
-
- case SEG_QUADTO:
- count = 2;
- break;
-
- case SEG_LINETO:
- case SEG_MOVETO:
- count = 1;
- break;
-
- default:
- // Error. But how to report?
- case SEG_CLOSE:
- break;
- }
-
- transform (coords, 0, coords, 0, count);
-
- return r;
- }
-
- public int getWindingRule ()
- {
- return subIterator.getWindingRule ();
- }
-
- public boolean isDone ()
- {
- return subIterator.isDone ();
- }
-
- public void next ()
- {
- subIterator.next ();
- }
- }
-
- private double m00, m01, m02;
- private double m10, m11, m12;
- private int type;
-}
diff --git a/libjava/java/awt/geom/Dimension2D.java b/libjava/java/awt/geom/Dimension2D.java
deleted file mode 100644
index f891bf056ab..00000000000
--- a/libjava/java/awt/geom/Dimension2D.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date Fenruary, 1999.
- */
-
-/* Written using online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class Dimension2D implements Cloneable
-{
- public abstract double getWidth();
- public abstract double getHeight();
-
- public abstract void setSize (double width, double height);
-
- public void setSize (Dimension2D dim)
- {
- setSize(dim.getWidth(), dim.getHeight());
- }
-
- public Object clone ()
- {
- try
- {
- return super.clone ();
- }
- catch (CloneNotSupportedException _) {return null;}
- }
-}
diff --git a/libjava/java/awt/geom/Ellipse2D.java b/libjava/java/awt/geom/Ellipse2D.java
deleted file mode 100644
index ab830ffea93..00000000000
--- a/libjava/java/awt/geom/Ellipse2D.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 16, 2000
- */
-
-public abstract class Ellipse2D extends RectangularShape
-{
- protected Ellipse2D ()
- {
- }
-
- public boolean contains (double x, double y)
- {
- double rx = getWidth () / 2;
- double ry = getHeight () / 2;
- double tx = (x - getCenterX ()) / rx;
- double ty = (y - getCenterY ()) / ry;
- return tx * tx + ty * ty <= 1.0;
- }
-
- public boolean contains (double x, double y, double w, double h)
- {
- double x2 = x + w;
- double y2 = y + h;
- return (contains (x, y) && contains (x, y2)
- && contains (x2, y) && contains (x2, y2));
- }
-
- public PathIterator getPathIterator (AffineTransform at)
- {
- // fixme;
- return null;
- }
-
- public boolean intersects (double x, double y, double w, double h)
- {
- // fixme
- return false;
- }
-
- public static class Double extends Ellipse2D
- {
- public double height;
- public double width;
- public double x;
- public double y;
-
- public Double ()
- {
- height = width = x = y = 0;
- }
-
- public Double (double x, double y, double w, double h)
- {
- this.x = x;
- this.y = y;
- this.height = h;
- this.width = w;
- }
-
- public Rectangle2D getBounds2D ()
- {
- return new Rectangle2D.Double (x, y, width, height);
- }
-
- public double getHeight ()
- {
- return height;
- }
-
- public double getWidth ()
- {
- return width;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public boolean isEmpty ()
- {
- return height <= 0 || width <= 0;
- }
-
- public void setFrame (double x, double y, double w, double h)
- {
- this.x = x;
- this.y = y;
- this.height = h;
- this.width = w;
- }
- }
-
- public static class Float extends Ellipse2D
- {
- public float height;
- public float width;
- public float x;
- public float y;
-
- public Float ()
- {
- height = width = x = y = 0;
- }
-
- public Float (float x, float y, float w, float h)
- {
- this.x = x;
- this.y = y;
- this.height = h;
- this.width = w;
- }
-
- public Rectangle2D getBounds2D ()
- {
- return new Rectangle2D.Float (x, y, width, height);
- }
-
- public double getHeight ()
- {
- return height;
- }
-
- public double getWidth ()
- {
- return width;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public boolean isEmpty ()
- {
- return height <= 0 || width <= 0;
- }
-
- public void setFrame (float x, float y, float w, float h)
- {
- this.x = x;
- this.y = y;
- this.height = h;
- this.width = w;
- }
-
- public void setFrame (double x, double y, double w, double h)
- {
- this.x = (float) x;
- this.y = (float) y;
- this.height = (float) h;
- this.width = (float) w;
- }
- }
-}
diff --git a/libjava/java/awt/geom/IllegalPathStateException.java b/libjava/java/awt/geom/IllegalPathStateException.java
deleted file mode 100644
index d8022e54bb4..00000000000
--- a/libjava/java/awt/geom/IllegalPathStateException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date July 17, 2000
- */
-
-public class IllegalPathStateException extends RuntimeException
-{
- public IllegalPathStateException ()
- {
- super ();
- }
-
- public IllegalPathStateException (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/awt/geom/NoninvertibleTransformException.java b/libjava/java/awt/geom/NoninvertibleTransformException.java
deleted file mode 100644
index 2ff006f40c5..00000000000
--- a/libjava/java/awt/geom/NoninvertibleTransformException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date July 15, 2000
- */
-
-public class NoninvertibleTransformException extends Exception
-{
- public NoninvertibleTransformException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/awt/geom/PathIterator.java b/libjava/java/awt/geom/PathIterator.java
deleted file mode 100644
index 49d9a3bb3c1..00000000000
--- a/libjava/java/awt/geom/PathIterator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 16, 2000
- */
-
-public interface PathIterator
-{
- public static final int SEG_CLOSE = 4;
- public static final int SEG_CUBICTO = 3;
- public static final int SEG_LINETO = 1;
- public static final int SEG_MOVETO = 0;
- public static final int SEG_QUADTO = 2;
- public static final int WIND_EVEN_ODD = 0;
- public static final int WIND_NON_ZERO = 1;
-
- public int currentSegment (double[] coords);
- public int currentSegment (float[] coords);
- public int getWindingRule ();
- public boolean isDone ();
- public void next ();
-}
diff --git a/libjava/java/awt/geom/Point2D.java b/libjava/java/awt/geom/Point2D.java
deleted file mode 100644
index 1e92adce3a1..00000000000
--- a/libjava/java/awt/geom/Point2D.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date February 8, 1999.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct, except that neither toString
- * nor hashCode have been compared with JDK output.
- */
-
-public abstract class Point2D implements Cloneable
-{
- public abstract double getX();
- public abstract double getY();
-
- public abstract void setLocation (double x, double y);
-
- public void setLocation (Point2D pt) { setLocation(pt.getX(), pt.getY()); }
-
- static public double distanceSq (double X1, double Y1, double X2, double Y2)
- {
- X2 -= X1;
- Y2 -= Y1;
- return X2*X2 + Y2*Y2;
- }
-
- static public double distance (double X1, double Y1, double X2, double Y2)
- {
- return Math.sqrt(distance(X1, Y1, X2, Y2));
- }
-
- public double distanceSq (double PX, double PY)
- {
- return distanceSq (getX(), PX, getY(), PY);
- }
-
- public double distance (double PX, double PY)
- {
- return distance (getX(), PX, getY(), PY);
- }
-
- public double distanceSq (Point2D pt)
- {
- return distanceSq (getX(), pt.getX(), getY(), pt.getY());
- }
-
- public double distance (Point2D pt)
- {
- return distance (getX(), pt.getX(), getY(), pt.getY());
- }
-
- public int hashCode() { return (int) getX() ^ (int) getY(); }
-
- public Object clone()
- {
- try
- {
- return super.clone ();
- }
- catch (CloneNotSupportedException _) {return null;}
- }
-
- public static class Double extends Point2D
- {
- public double x;
- public double y;
-
- public Double ()
- {
- x = 0;
- y = 0;
- }
-
- public Double (double x, double y)
- {
- this.x = x;
- this.y = y;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public void setLocation (double x, double y)
- {
- this.x = x;
- this.y = y;
- }
-
- public String toString ()
- {
- return "(" + x + ", " + y + ")";
- }
- }
-
- public static class Float extends Point2D
- {
- public float x;
- public float y;
-
- public Float ()
- {
- x = 0;
- y = 0;
- }
-
- public Float (float x, float y)
- {
- this.x = x;
- this.y = y;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public void setLocation (double x, double y)
- {
- this.x = (float) x;
- this.y = (float) y;
- }
-
- public String toString ()
- {
- return "(" + x + ", " + y + ")";
- }
- }
-}
diff --git a/libjava/java/awt/geom/Rectangle2D.java b/libjava/java/awt/geom/Rectangle2D.java
deleted file mode 100644
index 16ab826ee9a..00000000000
--- a/libjava/java/awt/geom/Rectangle2D.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 16, 2000
- */
-
-public abstract class Rectangle2D extends RectangularShape
-{
- public static final int OUT_LEFT = 1;
- public static final int OUT_TOP = 2;
- public static final int OUT_RIGHT = 4;
- public static final int OUT_BOTTOM = 8;
-
- protected Rectangle2D ()
- {
- }
-
- /** Set the bounding box of this rectangle.
- * @param x X coordinate
- * @param y Y coordinate
- * @param w Width
- * @param h Height
- */
- public abstract void setRect (double x, double y, double w, double h);
-
- /** Set the bounding box of this rectangle.
- * @param r Bounding rectangle.
- */
- public void setRect (Rectangle2D r)
- {
- setRect (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
- }
-
- /** Returns true if line segment intersects interior of this
- * rectangle.
- * @param x1 X coordinate of first end of line segment
- * @param y1 Y coordinate of first end of line segment
- * @param x2 X coordinate of second end of line segment
- * @param y1 Y coordinate of segment end of line segment
- */
- public boolean intersectsLine (double x1, double y1, double x2, double y2)
- {
- int o1 = outcode (x1, y1);
- int o2 = outcode (x2, y2);
-
- double mx = getX ();
- double my = getY ();
- double mx2 = getWidth ();
- double my2 = getHeight ();
- x1 -= mx;
- x2 -= mx;
- y1 -= my;
- y2 -= my;
-
- // Here we handle all lines that stay entirely on one side of the
- // rectangle. We also handle some lines that intersect the
- // rectangle. All vertical and horizontal lines are handled here.
- int xor = o1 ^ o2;
- int or = o1 | o2;
- if ((xor & (OUT_BOTTOM | OUT_TOP)) == 0)
- {
- if ((or & (OUT_BOTTOM | OUT_TOP)) != 0)
- return false;
- return ((o1 & (OUT_LEFT | OUT_RIGHT)) != 0
- || (o2 & (OUT_LEFT | OUT_RIGHT)) != 0);
- }
- else if ((xor & (OUT_LEFT | OUT_RIGHT)) == 0)
- {
- if ((or & (OUT_LEFT | OUT_RIGHT)) != 0)
- return false;
- return ((o1 & (OUT_BOTTOM | OUT_TOP)) != 0
- || (o2 & (OUT_BOTTOM | OUT_TOP)) != 0);
- }
-
- double dx = x2 - x1;
- double dy = y2 - y1;
-
- double t1l = - x1 / dx;
- double t1h = (mx2 - x1) / dx;
-
- if (t1l >= t1h)
- return false;
- double t2l = - y1 / dy;
- double t2h = (my2 - y1) / dy;
-
- if (t2l >= t2h || t2l >= t1h || t2h < t1l)
- return false;
- return true;
- }
-
- /** Return true if line segment intersects interior of this
- * rectangle.
- * @param l The line segment
- */
-// public boolean intersectsLine (Line2D l)
-// {
-// }
-
- public abstract int outcode (double x, double y);
-
- public int outcode (Point2D p)
- {
- return outcode (p.getX (), p.getY ());
- }
-
- /** Set bounding frame for this rectangle.
- * @param x X coordinate
- * @param y Y coordinate
- * @param w Width
- * @param h Height
- */
- public void setFrame (double x, double y, double w, double h)
- {
- setRect (x, y, w, h);
- }
-
- public Rectangle2D getBounds2D ()
- {
- // FIXME.
- return (Rectangle2D) clone ();
- }
-
- public boolean contains (double x, double y)
- {
- double mx = getX ();
- double mw = getWidth ();
- if (x < mx || x >= mx + mw)
- return false;
- double my = getY ();
- double mh = getHeight ();
- return y >= my && y < my + mh;
- }
-
- public boolean intersects (double x, double y, double w, double h)
- {
- double mx = getX ();
- double mw = getWidth ();
- if (x < mx || x >= mx + mw || x + w < mx || x + w >= mx + mw)
- return false;
- double my = getY ();
- double mh = getHeight ();
- return y >= my && y < my + mh && y + h >= my && y + h < my + mh;
- }
-
- public boolean contains (double x, double y, double w, double h)
- {
- return contains (x, y) && contains (x + w, y + h);
- }
-
- public abstract Rectangle2D createIntersection (Rectangle2D r);
-
- public static void intersect (Rectangle2D src1, Rectangle2D src2,
- Rectangle2D dest)
- {
- double x1l = src1.getMinX ();
- double x2l = src2.getMinX ();
- double nxl = Math.max (x1l, x2l);
- double x1h = src1.getMaxX ();
- double x2h = src2.getMaxX ();
- double nxh = Math.min (x1h, x2h);
- if (nxh < nxl)
- nxh = nxl;
- double y1l = src1.getMinY ();
- double y2l = src2.getMinY ();
- double nyl = Math.max (y1l, y2l);
- double y1h = src1.getMaxY ();
- double y2h = src2.getMaxY ();
- double nyh = Math.min (y1h, y2h);
- if (nyh < nyl)
- nyh = nyl;
- dest.setFrameFromDiagonal (nxl, nyl, nxh, nyh);
- }
-
- public abstract Rectangle2D createUnion (Rectangle2D r);
-
- public static void union (Rectangle2D src1, Rectangle2D src2,
- Rectangle2D dest)
- {
- double x1l = src1.getMinX ();
- double x2l = src2.getMinX ();
- double nxl = Math.max (x1l, x2l);
- double x1h = src1.getMaxX ();
- double x2h = src2.getMaxX ();
- double nxh = Math.min (x1h, x2h);
- double y1l = src1.getMinY ();
- double y2l = src2.getMinY ();
- double nyl = Math.max (y1l, y2l);
- double y1h = src1.getMaxY ();
- double y2h = src2.getMaxY ();
- double nyh = Math.min (y1h, y2h);
- dest.setFrameFromDiagonal (nxl, nyl, nxh, nyh);
- }
-
- public void add (double newx, double newy)
- {
- double minx = Math.min (getMinX (), newx);
- double maxx = Math.max (getMaxX (), newx);
- double miny = Math.min (getMinY (), newy);
- double maxy = Math.max (getMaxY (), newy);
- setFrameFromDiagonal (minx, miny, maxx, maxy);
- }
-
- public void add (Point2D p)
- {
- add (p.getX (), p.getY ());
- }
-
- public void add (Rectangle2D r)
- {
- add (r.getMinX (), r.getMinY ());
- add (r.getMaxX (), r.getMaxY ());
- }
-
- public PathIterator getPathIterator (AffineTransform at)
- {
- // We know the superclass just ignores the flatness parameter.
- return getPathIterator (at, 0);
- }
-
- public static class Double extends Rectangle2D
- {
- public double height;
- public double width;
- public double x;
- public double y;
-
- public Double ()
- {
- height = width = x = y = 0;
- }
-
- public Double (double x, double y, double w, double h)
- {
- this.x = x;
- this.y = y;
- this.width = w;
- this.height = h;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public double getWidth ()
- {
- return width;
- }
-
- public double getHeight ()
- {
- return height;
- }
-
- public boolean isEmpty ()
- {
- return width <= 0 || height <= 0;
- }
-
- public void setRect (double x, double y, double w, double h)
- {
- this.x = x;
- this.y = y;
- this.width = w;
- this.height = h;
- }
-
- public void setRect (Rectangle2D r)
- {
- this.x = r.getX ();
- this.y = r.getY ();
- this.width = r.getWidth ();
- this.height = r.getHeight ();
- }
-
- public int outcode (double x, double y)
- {
- int code = 0;
- if (x < this.x)
- code |= OUT_LEFT;
- else if (x >= this.x + this.width)
- code |= OUT_RIGHT;
- if (y < this.y)
- code |= OUT_TOP;
- else if (y >= this.y + this.height)
- code |= OUT_BOTTOM;
- return code;
- }
-
- public Rectangle2D getBounds2D ()
- {
- return new Rectangle2D.Double (x, y, width, height);
- }
-
- public Rectangle2D createIntersection (Rectangle2D r)
- {
- Double res = new Double ();
- intersect (this, r, res);
- return res;
- }
-
- public Rectangle2D createUnion (Rectangle2D r)
- {
- Double res = new Double ();
- union (this, r, res);
- return res;
- }
-
- public String toString ()
- {
- return "fixme";
- }
- }
-
- public static class Float extends Rectangle2D
- {
- public float height;
- public float width;
- public float x;
- public float y;
-
- public Float ()
- {
- height = width = x = y = 0;
- }
-
- public Float (float x, float y, float w, float h)
- {
- this.x = x;
- this.y = y;
- this.width = w;
- this.height = h;
- }
-
- public double getX ()
- {
- return x;
- }
-
- public double getY ()
- {
- return y;
- }
-
- public double getWidth ()
- {
- return width;
- }
-
- public double getHeight ()
- {
- return height;
- }
-
- public boolean isEmpty ()
- {
- return width <= 0 || height <= 0;
- }
-
- public void setRect (double x, double y, double w, double h)
- {
- this.x = (float) x;
- this.y = (float) y;
- this.width = (float) w;
- this.height = (float) h;
- }
-
- public void setRect (Rectangle2D r)
- {
- this.x = (float) r.getX ();
- this.y = (float) r.getY ();
- this.width = (float) r.getWidth ();
- this.height = (float) r.getHeight ();
- }
-
- public int outcode (double x, double y)
- {
- int code = 0;
- if (x < this.x)
- code |= OUT_LEFT;
- else if (x >= this.x + this.width)
- code |= OUT_RIGHT;
- if (y < this.y)
- code |= OUT_TOP;
- else if (y >= this.y + this.height)
- code |= OUT_BOTTOM;
- return code;
- }
-
- public Rectangle2D getBounds2D ()
- {
- return new Rectangle2D.Float (x, y, width, height);
- }
-
- public Rectangle2D createIntersection (Rectangle2D r)
- {
- Float res = new Float ();
- intersect (this, r, res);
- return res;
- }
-
- public Rectangle2D createUnion (Rectangle2D r)
- {
- Float res = new Float ();
- union (this, r, res);
- return res;
- }
-
- public String toString ()
- {
- return "fixme";
- }
- }
-}
diff --git a/libjava/java/awt/geom/RectangularShape.java b/libjava/java/awt/geom/RectangularShape.java
deleted file mode 100644
index 536dd28b88f..00000000000
--- a/libjava/java/awt/geom/RectangularShape.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.awt.geom;
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date April 16, 2000
- */
-
-public abstract class RectangularShape implements Shape, Cloneable
-{
- protected RectangularShape ()
- {
- }
-
- public abstract double getX ();
- public abstract double getY ();
- public abstract double getWidth ();
- public abstract double getHeight ();
-
- public double getMinX ()
- {
- return Math.min (getX (), getX () + getWidth ());
- }
-
- public double getMinY ()
- {
- return Math.min (getY (), getY () + getHeight ());
- }
-
- public double getMaxX ()
- {
- return Math.max (getX (), getX () + getWidth ());
- }
-
- public double getMaxY ()
- {
- return Math.max (getY (), getY () + getHeight ());
- }
-
- public double getCenterX ()
- {
- return getX () + getWidth () / 2;
- }
-
- public double getCenterY ()
- {
- return getY () + getHeight () / 2;
- }
-
- public Rectangle2D getFrame ()
- {
- return new Rectangle2D.Double (getX (), getY (),
- getWidth (), getHeight ());
- }
-
- public abstract boolean isEmpty ();
- public abstract void setFrame (double x, double y, double w, double h);
-
- public void setFrame (Point2D loc, Dimension2D size)
- {
- setFrame (loc.getX (), loc.getY (), size.getWidth (), size.getHeight ());
- }
-
- public void setFrame (Rectangle2D r)
- {
- setFrame (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
- }
-
- public void setFrameFromDiagonal (double x1, double y1,
- double x2, double y2)
- {
- if (x1 > x2)
- {
- double t = x2;
- x2 = x1;
- x1 = t;
- }
- if (y1 > y2)
- {
- double t = y2;
- y2 = y1;
- y1 = t;
- }
- setFrame (x1, y1, x2 - x1, y2 - y1);
- }
-
- public void setFrameFromDiagonal (Point2D p1, Point2D p2)
- {
- setFrameFromDiagonal (p1.getX (), p1.getY (),
- p2.getX (), p2.getY ());
- }
-
- public void setFrameFromCenter (double centerX, double centerY,
- double cornerX, double cornerY)
- {
- double halfw = Math.abs (cornerX - centerX);
- double halfh = Math.abs (cornerY - centerY);
- setFrame (centerX - halfw, centerY - halfh,
- 2 * halfw, 2 * halfh);
- }
-
- public void setFrameFromCenter (Point2D center, Point2D corner)
- {
- setFrameFromCenter (center.getX (), center.getY (),
- corner.getX (), corner.getY ());
- }
-
- public boolean contains (Point2D p)
- {
- double x = p.getX ();
- double y = p.getY ();
- double rx = getX ();
- double ry = getY ();
- double w = getWidth ();
- double h = getHeight ();
- return x >= rx && x < rx + w && y >= ry && y < ry + h;
- }
-
- public boolean intersects (Rectangle2D r)
- {
- double x = getX ();
- double w = getWidth ();
- double mx = r.getX ();
- double mw = r.getWidth ();
- if (x < mx || x >= mx + mw || x + w < mx || x + w >= mx + mw)
- return false;
- double y = getY ();
- double h = getHeight ();
- double my = r.getY ();
- double mh = r.getHeight ();
- return y >= my && y < my + mh && y + h >= my && y + h < my + mh;
- }
-
- private boolean containsPoint (double x, double y)
- {
- double mx = getX ();
- double mw = getWidth ();
- if (x < mx || x >= mx + mw)
- return false;
- double my = getY ();
- double mh = getHeight ();
- return y >= my && y < my + mh;
- }
-
- public boolean contains (Rectangle2D r)
- {
- return (containsPoint (r.getMinX (), r.getMinY ())
- && containsPoint (r.getMaxX (), r.getMaxY ()));
- }
-
- public Rectangle getBounds ()
- {
- return new Rectangle ((int) getX (), (int) getY (),
- (int) getWidth (), (int) getHeight ());
- }
-
- public PathIterator getPathIterator (AffineTransform at, double flatness)
- {
- return at.new Iterator (new Iterator ());
- }
-
- public Object clone ()
- {
- try
- {
- return super.clone ();
- }
- catch (CloneNotSupportedException _) {return null;}
- }
-
- // This implements the PathIterator for all RectangularShape objects
- // that don't override getPathIterator.
- private class Iterator implements PathIterator
- {
- // Our current coordinate.
- private int coord;
-
- private static final int START = 0;
- private static final int END_PLUS_ONE = 5;
-
- public Iterator ()
- {
- coord = START;
- }
-
- public int currentSegment (double[] coords)
- {
- int r;
- switch (coord)
- {
- case 0:
- coords[0] = getX ();
- coords[1] = getY ();
- r = SEG_MOVETO;
- break;
-
- case 1:
- coords[0] = getX () + getWidth ();
- coords[1] = getY ();
- r = SEG_LINETO;
- break;
-
- case 2:
- coords[0] = getX () + getWidth ();
- coords[1] = getY () + getHeight ();
- r = SEG_LINETO;
- break;
-
- case 3:
- coords[0] = getX ();
- coords[1] = getY () + getHeight ();
- r = SEG_LINETO;
- break;
-
- case 4:
- r = SEG_CLOSE;
- break;
-
- default:
- // It isn't clear what to do if the caller calls us after
- // isDone returns true.
- r = SEG_CLOSE;
- break;
- }
-
- return r;
- }
-
- public int currentSegment (float[] coords)
- {
- int r;
- switch (coord)
- {
- case 0:
- coords[0] = (float) getX ();
- coords[1] = (float) getY ();
- r = SEG_MOVETO;
- break;
-
- case 1:
- coords[0] = (float) (getX () + getWidth ());
- coords[1] = (float) getY ();
- r = SEG_LINETO;
- break;
-
- case 2:
- coords[0] = (float) (getX () + getWidth ());
- coords[1] = (float) (getY () + getHeight ());
- r = SEG_LINETO;
- break;
-
- case 3:
- coords[0] = (float) getX ();
- coords[1] = (float) (getY () + getHeight ());
- r = SEG_LINETO;
- break;
-
- case 4:
- default:
- // It isn't clear what to do if the caller calls us after
- // isDone returns true. We elect to keep returning
- // SEG_CLOSE.
- r = SEG_CLOSE;
- break;
- }
-
- return r;
- }
-
- public int getWindingRule ()
- {
- return WIND_NON_ZERO;
- }
-
- public boolean isDone ()
- {
- return coord == END_PLUS_ONE;
- }
-
- public void next ()
- {
- if (coord < END_PLUS_ONE)
- ++coord;
- }
- }
-}
diff --git a/libjava/java/awt/image/BufferedImage.java b/libjava/java/awt/image/BufferedImage.java
deleted file mode 100644
index 9eba6fcb96c..00000000000
--- a/libjava/java/awt/image/BufferedImage.java
+++ /dev/null
@@ -1,543 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.*;
-import java.awt.color.*;
-import java.util.*;
-
-import gnu.gcj.awt.ComponentDataBlitOp;
-
-/**
- * A buffered image always starts at coordinates (0, 0).
- *
- * The buffered image is not subdivided into multiple tiles. Instead,
- * the image consists of one large tile (0,0) with the width and
- * height of the image. This tile is always considered to be checked
- * out.
- *
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class BufferedImage extends java.awt.Image
- //implements java.awt.image.WritableRenderedImage
-{
- public static final int TYPE_CUSTOM = 0,
- TYPE_INT_RGB = 1,
- TYPE_INT_ARGB = 2,
- TYPE_INT_ARGB_PRE = 3,
- TYPE_INT_BGR = 4,
- TYPE_3BYTE_BGR = 5,
- TYPE_4BYTE_ABGR = 6,
- TYPE_4BYTE_ABGR_PRE = 7,
- TYPE_USHORT_565_RGB = 8,
- TYPE_USHORT_555_RGB = 9,
- TYPE_BYTE_GRAY = 10,
- TYPE_USHORT_GRAY = 11,
- TYPE_BYTE_BINARY = 12,
- TYPE_BYTE_INDEXED = 13;
-
- final static int[] bits3 = { 8, 8, 8 };
- final static int[] bits4 = { 8, 8, 8 };
- final static int[] bits1byte = { 8 };
- final static int[] bits1ushort = { 16 };
-
- final static int[] masks_int = { 0x00ff0000,
- 0x0000ff00,
- 0x000000ff,
- DataBuffer.TYPE_INT };
- final static int[] masks_565 = { 0xf800,
- 0x07e0,
- 0x001f,
- DataBuffer.TYPE_USHORT};
- final static int[] masks_555 = { 0x7c00,
- 0x03e0,
- 0x001f,
- DataBuffer.TYPE_USHORT};
-
- public BufferedImage(int w, int h, int type)
- {
- ColorModel cm;
-
- boolean alpha = false;
- boolean premultiplied = false;
- switch (type)
- {
- case TYPE_4BYTE_ABGR_PRE:
- case TYPE_INT_ARGB_PRE:
- premultiplied = true;
- // fall through
- case TYPE_INT_ARGB:
- case TYPE_4BYTE_ABGR:
- alpha = true;
- }
-
- ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
- switch (type)
- {
- case TYPE_INT_RGB:
- case TYPE_INT_ARGB:
- case TYPE_INT_ARGB_PRE:
- case TYPE_USHORT_565_RGB:
- case TYPE_USHORT_555_RGB:
- int[] masks;
- switch (type)
- {
- case TYPE_INT_RGB:
- case TYPE_INT_ARGB:
- case TYPE_INT_ARGB_PRE:
- masks = masks_int;
- break;
- case TYPE_USHORT_565_RGB:
- masks = masks_565;
- break;
- case TYPE_USHORT_555_RGB:
- masks = masks_555;
- break;
- }
-
- cm = new DirectColorModel(cs,
- 32, // 32 bits in an int
- masks[0], // r
- masks[1], // g
- masks[2], // b
- alpha ? 0xff000000 : 0,
- premultiplied,
- masks[3] // data type
- );
- break;
-
- case TYPE_INT_BGR:
- String msg =
- "FIXME: Programmer is confused. Why (and how) does a " +
- "TYPE_INT_BGR image use ComponentColorModel to store " +
- "8-bit values? Is data type TYPE_INT or TYPE_BYTE. What " +
- "is the difference between TYPE_INT_BGR and TYPE_3BYTE_BGR?";
- throw new UnsupportedOperationException(msg);
-
- case TYPE_3BYTE_BGR:
- case TYPE_4BYTE_ABGR:
- case TYPE_4BYTE_ABGR_PRE:
- case TYPE_BYTE_GRAY:
- case TYPE_USHORT_GRAY:
- int[] bits = null;
- int dataType = DataBuffer.TYPE_BYTE;
- switch (type) {
- case TYPE_3BYTE_BGR:
- bits = bits3;
- break;
- case TYPE_4BYTE_ABGR:
- case TYPE_4BYTE_ABGR_PRE:
- bits = bits4;
- break;
- case TYPE_BYTE_GRAY:
- bits = bits1byte;
- break;
- case TYPE_USHORT_GRAY:
- bits = bits1ushort;
- dataType = DataBuffer.TYPE_USHORT;
- break;
- }
- cm = new ComponentColorModel(cs, bits, alpha, premultiplied,
- alpha ?
- Transparency.TRANSLUCENT:
- Transparency.OPAQUE,
- dataType);
- break;
- case TYPE_BYTE_BINARY:
- byte[] vals = { 0, (byte) 0xff };
- cm = new IndexColorModel(8, 2, vals, vals, vals);
- break;
- case TYPE_BYTE_INDEXED:
- String msg2 = "type not implemented yet";
- throw new UnsupportedOperationException(msg2);
- // FIXME: build color-cube and create color model
- }
-
- init(cm,
- cm.createCompatibleWritableRaster(w, h),
- premultiplied,
- null, // no properties
- type
- );
- }
-
- public BufferedImage(int w, int h, int type,
- IndexColorModel indexcolormodel)
- {
- if ((type != TYPE_BYTE_BINARY) && (type != TYPE_BYTE_INDEXED))
- throw new IllegalArgumentException("type must be binary or indexed");
-
- init(indexcolormodel,
- indexcolormodel.createCompatibleWritableRaster(w, h),
- false, // not premultiplied (guess)
- null, // no properties
- type);
- }
-
- public BufferedImage(ColorModel colormodel,
- WritableRaster writableraster,
- boolean premultiplied,
- Hashtable properties)
- {
- init(colormodel, writableraster, premultiplied, properties,
- TYPE_CUSTOM);
- // TODO: perhaps try to identify type?
- }
-
- WritableRaster raster;
- ColorModel colorModel;
- Hashtable properties;
- boolean isPremultiplied;
- int type;
-
- private void init(ColorModel cm,
- WritableRaster writableraster,
- boolean premultiplied,
- Hashtable properties,
- int type)
- {
- raster = writableraster;
- colorModel = cm;
- this.properties = properties;
- isPremultiplied = premultiplied;
- this.type = type;
- }
-
- //public void addTileObserver(TileObserver tileobserver) {}
-
- public void coerceData(boolean premultiplied)
- {
- colorModel = colorModel.coerceData(raster, premultiplied);
- }
-
- public WritableRaster copyData(WritableRaster dest)
- {
- if (dest == null)
- dest = raster.createCompatibleWritableRaster();
-
- int x = dest.getMinX();
- int y = dest.getMinY();
- int w = dest.getWidth();
- int h = dest.getHeight();
-
- // create a src child that has the right bounds...
- WritableRaster src =
- raster.createWritableChild(x, y, w, h, x, y,
- null // same bands
- );
-
- // Refer to ComponentDataBlitOp for optimized data blitting:
- ComponentDataBlitOp.INSTANCE.filter(src, dest);
- return dest;
- }
-
- public Graphics2D createGraphics()
- {
- throw new UnsupportedOperationException("not implemented");
- // will require a lot of effort to implement
- }
-
- public void flush() {
- }
-
- public WritableRaster getAlphaRaster()
- {
- return colorModel.getAlphaRaster(raster);
- }
-
- public ColorModel getColorModel()
- {
- return colorModel;
- }
-
- public Raster getData()
- {
- return copyData(null);
- /* TODO: this might be optimized by returning the same
- raster (not writable) as long as image data doesn't change. */
- }
-
- public Raster getData(Rectangle rectangle)
- {
- WritableRaster dest =
- raster.createCompatibleWritableRaster(rectangle);
- return copyData(dest);
- }
-
- public Graphics getGraphics()
- {
- return createGraphics();
- }
-
- public int getHeight()
- {
- return raster.getHeight();
- }
-
- public int getHeight(ImageObserver imageobserver)
- {
- return getHeight();
- }
-
- public int getMinTileX()
- {
- return 0;
- }
-
- public int getMinTileY()
- {
- return 0;
- }
-
- public int getMinX()
- {
- return 0;
- }
-
- public int getMinY()
- {
- return 0;
- }
-
- public int getNumXTiles()
- {
- return 1;
- }
-
- public int getNumYTiles()
- {
- return 1;
- }
-
- public Object getProperty(String string)
- {
- if (properties == null)
- return null;
- return properties.get(string);
- }
-
- public Object getProperty(String string, ImageObserver imageobserver)
- {
- return getProperty(string);
- }
-
-
- public String[] getPropertyNames()
- {
- // FIXME: implement
- return null;
- }
-
- public int getRGB(int x, int y)
- {
- Object rgbElem = raster.getDataElements(x, y,
- null // create as needed
- );
- return colorModel.getRGB(rgbElem);
- }
-
- public int[] getRGB(int startX, int startY, int w, int h,
- int[] rgbArray,
- int offset, int scanlineStride)
- {
- if (rgbArray == null)
- {
- /*
- 000000000000000000
- 00000[#######----- [ = start
- -----########----- ] = end
- -----#######]00000
- 000000000000000000 */
- int size = (h-1)*scanlineStride + w;
- rgbArray = new int[size];
- }
-
- int endX = startX + w;
- int endY = startY + h;
-
- /* *TODO*:
- Opportunity for optimization by examining color models...
-
- Perhaps wrap the rgbArray up in a WritableRaster with packed
- sRGB color model and perform optimized rendering into the
- array. */
-
- Object rgbElem = null;
- for (int y=startY; y<endY; y++)
- {
- int xoffset = offset;
- for (int x=startX; x<endX; x++)
- {
- int rgb;
- rgbElem = raster.getDataElements(x, y, rgbElem);
- rgb = colorModel.getRGB(rgbElem);
- rgbArray[xoffset++] = rgb;
- }
- offset += scanlineStride;
- }
- return rgbArray;
- }
-
- public WritableRaster getRaster()
- {
- return raster;
- }
-
- public SampleModel getSampleModel()
- {
- return raster.getSampleModel();
- }
-
- public ImageProducer getSource()
- {
- throw new UnsupportedOperationException("not implemented");
- }
-
- public Vector getSources()
- {
- return null;
- }
-
- public BufferedImage getSubimage(int x, int y, int w, int h)
- {
- WritableRaster subRaster =
- getRaster().createWritableChild(x, y, w, h, 0, 0, null);
-
- return new BufferedImage(getColorModel(),
- subRaster,
- isPremultiplied,
- properties);
- }
-
- public Raster getTile(int tileX, int tileY)
- {
- return getWritableTile(tileX, tileY);
- }
-
- public int getTileGridXOffset()
- {
- return 0; // according to javadocs
- }
-
- public int getTileGridYOffset()
- {
- return 0; // according to javadocs
- }
-
- public int getTileHeight()
- {
- return getHeight(); // image is one big tile
- }
-
- public int getTileWidth()
- {
- return getWidth(); // image is one big tile
- }
-
- public int getType()
- {
- return type;
- }
-
- public int getWidth()
- {
- return raster.getWidth();
- }
-
- public int getWidth(ImageObserver imageobserver)
- {
- return getWidth();
- }
-
- public WritableRaster getWritableTile(int tileX, int tileY)
- {
- isTileWritable(tileX, tileY); // for exception
- return raster;
- }
-
- private static final Point[] tileIndices = { new Point() };
-
- public Point[] getWritableTileIndices()
- {
- return tileIndices;
- }
-
- public boolean hasTileWriters()
- {
- return true;
- }
-
- public boolean isAlphaPremultiplied()
- {
- return isPremultiplied;
- }
-
- public boolean isTileWritable(int tileX, int tileY)
- {
- if ((tileX != 0) || (tileY != 0))
- throw new ArrayIndexOutOfBoundsException("only tile is (0,0)");
- return true;
- }
-
- public void releaseWritableTile(int tileX, int tileY)
- {
- isTileWritable(tileX, tileY); // for exception
- }
-
- //public void removeTileObserver(TileObserver tileobserver) {}
-
- public void setData(Raster src)
- {
- int x = src.getMinX();
- int y = src.getMinY();
- int w = src.getWidth();
- int h = src.getHeight();
-
- // create a dest child that has the right bounds...
- WritableRaster dest =
- raster.createWritableChild(x, y, w, h, x, y,
- null // same bands
- );
-
- // Refer to ComponentDataBlitOp for optimized data blitting:
- ComponentDataBlitOp.INSTANCE.filter(src, dest);
- }
-
- public void setRGB(int x, int y, int argb)
- {
- Object rgbElem = colorModel.getDataElements(argb, null);
- raster.setDataElements(x, y, rgbElem);
- }
-
- public void setRGB(int startX, int startY, int w, int h,
- int[] argbArray, int offset, int scanlineStride)
- {
- int endX = startX + w;
- int endY = startY + h;
-
- Object rgbElem = null;
- for (int y=startY; y<endY; y++)
- {
- int xoffset = offset;
- for (int x=startX; x<endX; x++)
- {
- int argb = argbArray[xoffset++];
- rgbElem = colorModel.getDataElements(argb, rgbElem);
- raster.setDataElements(x, y, rgbElem);
- }
- offset += scanlineStride;
- }
- }
-
- public String toString()
- {
- // FIXME: implement:
- return super.toString();
- }
-}
diff --git a/libjava/java/awt/image/ColorModel.java b/libjava/java/awt/image/ColorModel.java
deleted file mode 100644
index 51e0bbbe36b..00000000000
--- a/libjava/java/awt/image/ColorModel.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.Point;
-import java.awt.Transparency;
-import java.awt.color.ColorSpace;
-import gnu.gcj.awt.Buffers;
-
-/**
- * A color model operates with colors in several formats:
- *
- * <ul>
- * <li>normalized: component samples are in range [0.0, 1.0].</li>
- *
- * <li>color model pixel value: all the color component samples for a
- * sigle pixel packed/encoded in a way natural for the color
- * model.</li>
- *
- * <li>color model pixel int value: only makes sense if the natural
- * encoding of a single pixel can fit in a single int value.</li>
- *
- * <li>array of transferType containing a single pixel: the pixel is
- * encoded in the natural way of the color model, taking up as many
- * array elements as needed.</li>
- *
- * <li>sRGB pixel int value: a pixel in sRGB color space, encoded in
- * default 0xAARRGGBB format, assumed not alpha premultiplied.</li>
- *
- * <li>single [0, 255] scaled int samples from default sRGB color
- * space. These are always assumed to be alpha non-premultiplied.</li>
- *
- * <li>arrays of unnormalized component samples of single pixel: these
- * samples are scaled and multiplied according to the color model, but
- * is otherwise not packed or encoded. Each element of the array is one
- * seperate component sample. The color model only operate on the
- * components from one pixel at a time, but using offsets, allows
- * manipulation of arrays that contain the components of more than one
- * pixel.</li>
- *
- * </ul>
- *
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-
-public abstract class ColorModel implements Transparency
-{
- protected int pixel_bits;
- protected int transferType;
-
- int[] bits;
- ColorSpace cspace;
- int transparency;
- boolean hasAlpha;
- boolean isAlphaPremultiplied;
-
- static int[] nArray(int value, int times)
- {
- int[] array = new int[times];
- java.util.Arrays.fill(array, value);
- return array;
- }
-
- static byte[] nArray(byte value, int times)
- {
- byte[] array = new byte[times];
- java.util.Arrays.fill(array, value);
- return array;
- }
-
- public ColorModel(int bits)
- {
- this(bits * 4, // total bits, sRGB, four channels
- nArray(bits, 4), // bits for each channel
- null, // FIXME: should be sRGB
- true, // has alpha
- false, // not premultiplied
- TRANSLUCENT,
- Buffers.smallestAppropriateTransferType(bits * 4));
- }
-
- protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace,
- boolean hasAlpha, boolean isAlphaPremultiplied,
- int transparency, int transferType)
- {
- this.pixel_bits = pixel_bits;
- this.bits = bits;
- this.cspace = cspace;
- this.hasAlpha = hasAlpha;
- this.isAlphaPremultiplied = isAlphaPremultiplied;
- this.transparency = transparency;
- this.transferType = transferType;
- }
-
- public static ColorModel getRGBdefault()
- {
- return new DirectColorModel(8, 0xff0000, 0xff00, 0xff, 0xff000000);
- }
-
- public final boolean hasAlpha()
- {
- return hasAlpha;
- }
-
- public final boolean isAlphaPremultiplied()
- {
- return isAlphaPremultiplied;
- }
-
- public int getPixelSize()
- {
- return pixel_bits;
- }
-
- public int getComponentSize(int componentIdx)
- {
- return bits[componentIdx];
- }
-
- public int[] getComponentSize()
- {
- return bits;
- }
-
- public int getTransparency()
- {
- return transparency;
- }
-
- public int getNumComponents()
- {
- return getNumColorComponents() + (hasAlpha ? 1 : 0);
- }
-
- public int getNumColorComponents()
- {
- return cspace.getNumComponents();
- }
-
- /**
- * Converts pixel value to sRGB and extract red int sample scaled
- * to range [0, 255].
- *
- * @param pixel pixel value that will be interpreted according to
- * the color model, (assumed alpha premultiplied if color model says
- * so.)
- *
- * @return red sample scaled to range [0, 255], from default color
- * space sRGB, alpha non-premultiplied.
- */
- public abstract int getRed(int pixel);
-
- /**
- * Converts pixel value to sRGB and extract green int sample
- * scaled to range [0, 255].
- *
- * @see #getRed(int)
- */
- public abstract int getGreen(int pixel);
-
- /**
- * Converts pixel value to sRGB and extract blue int sample
- * scaled to range [0, 255].
- *
- * @see #getRed(int)
- */
- public abstract int getBlue(int pixel);
-
- /**
- * Extract alpha int sample from pixel value, scaled to [0, 255].
- *
- * @param pixel pixel value that will be interpreted according to
- * the color model.
- *
- * @return alpha sample, scaled to range [0, 255].
- */
- public abstract int getAlpha(int pixel);
-
- /**
- * Converts a pixel int value of the color space of the color
- * model to a sRGB pixel int value.
- *
- * This method is typically overriden in subclasses to provide a
- * more efficient implementation.
- *
- * @param pixel pixel value that will be interpreted according to
- * the color model.
- *
- * @return a pixel in sRGB color space, encoded in default
- * 0xAARRGGBB format. */
- public int getRGB(int pixel)
- {
- return
- ((getAlpha(pixel) & 0xff) << 24) |
- (( getRed(pixel) & 0xff) << 16) |
- ((getGreen(pixel) & 0xff) << 8) |
- (( getBlue(pixel) & 0xff) << 0);
- }
-
-
- /**
- * In this color model we know that the whole pixel value will
- * always be contained within the first element of the pixel
- * array.
- */
- final int getPixelFromArray(Object inData) {
- DataBuffer data =
- Buffers.createBufferFromData(transferType, inData, 1);
- Object da = Buffers.getData(data);
-
- return data.getElem(0);
- }
-
- /**
- * Converts pixel in the given array to sRGB and extract blue int
- * sample scaled to range [0-255].
- *
- * This method is typically overriden in subclasses to provide a
- * more efficient implementation.
- *
- * @param array of transferType containing a single pixel. The
- * pixel should be encoded in the natural way of the color model.
- */
- public int getRed(Object inData)
- {
- return getRed(getPixelFromArray(inData));
- }
-
- /**
- * @see #getRed(Object)
- */
- public int getGreen(Object inData)
- {
- return getGreen(getPixelFromArray(inData));
- }
-
- /**
- * @see #getRed(Object)
- */
- public int getBlue(Object inData) {
- return getBlue(getPixelFromArray(inData));
- }
-
- /**
- * @see #getRed(Object)
- */
- public int getAlpha(Object inData) {
- return getBlue(getPixelFromArray(inData));
- }
-
- /**
- * Converts a pixel in the given array of the color space of the
- * color model to an sRGB pixel int value.
- *
- * <p>This method performs the inverse function of
- * <code>getDataElements(int rgb, Object pixel)</code>.
- * I.e. <code>(rgb == cm.getRGB(cm.getDataElements(rgb,
- * null)))</code>.
- *
- * @param inData array of transferType containing a single pixel. The
- * pixel should be encoded in the natural way of the color model.
- *
- * @return a pixel in sRGB color space, encoded in default
- * 0xAARRGGBB format.
- *
- * @see #getDataElements(int, Object)
- */
- public int getRGB(Object inData)
- {
- return
- ((getAlpha(inData) & 0xff) << 24) |
- (( getRed(inData) & 0xff) << 16) |
- ((getGreen(inData) & 0xff) << 8) |
- (( getBlue(inData) & 0xff) << 0);
- }
-
- /**
- * Converts an sRGB pixel int value to an array containing a
- * single pixel of the color space of the color model.
- *
- * <p>This method performs the inverse function of
- * <code>getRGB(Object inData)</code>.
- *
- * Outline of conversion process:
- *
- * <ol>
- *
- * <li>Convert rgb to normalized [0.0, 1.0] sRGB values.</li>
- *
- * <li>Convert to color space components using fromRGB in
- * ColorSpace.</li>
- *
- * <li>If color model has alpha and should be premultiplied,
- * multiply color space components with alpha value</li>
- *
- * <li>Scale the components to the correct number of bits.</li>
- *
- * <li>Arrange the components in the output array</li>
- *
- * </ol>
- *
- * @param rgb The color to be converted to dataElements. A pixel
- * in sRGB color space, encoded in default 0xAARRGGBB format,
- * assumed not alpha premultiplied.
- *
- * @param pixel to avoid needless creation of arrays, an array to
- * use to return the pixel can be given. If null, a suitable array
- * will be created.
- *
- * @return An array of transferType values representing the color,
- * in the color model format. The color model defines whether the
- *
- * @see #getRGB(Object)
- */
- public Object getDataElements(int rgb, Object pixel)
- {
- // FIXME: implement
- throw new UnsupportedOperationException();
- }
-
- /**
- * Fills an array with the unnormalized component samples from a
- * pixel value. I.e. decompose the pixel, but not perform any
- * color conversion.
- *
- * This method is typically overriden in subclasses to provide a
- * more efficient implementation.
- *
- * @param pixel pixel value encoded according to the color model.
- *
- * @return arrays of unnormalized component samples of single
- * pixel. The scale and multiplication state of the samples are
- * according to the color model. Each component sample is stored
- * as a seperate element in the array.
- */
- public int[] getComponents(int pixel, int[] components, int offset) {
- // FIXME: implement
- throw new UnsupportedOperationException();
- }
-
- /**
- * Fills an array with the unnormalized component samples from an
- * array of transferType containing a single pixel. I.e. decompose
- * the pixel, but not perform any color conversion.
- *
- * This method is typically overriden in subclasses to provide a
- * more efficient implementation.
- *
- * @param array of transferType containing a single pixel. The
- * pixel should be encoded in the natural way of the color model.
- *
- * @return arrays of unnormalized component samples of single
- * pixel. The scale and multiplication state of the samples are
- * according to the color model. Each component sample is stored
- * as a seperate element in the array.
- */
- public int[] getComponents(Object pixel, int[] components, int offset)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Convert normalized components to unnormalized components.
- */
- public int[] getUnnormalizedComponents(float[] normComponents,
- int normOffset,
- int[] components,
- int offset)
- {
- int numComponents = getNumComponents();
- if (components == null)
- {
- components = new int[offset + numComponents];
- }
-
- for (int i=0; i<numComponents; i++)
- {
- float in = normComponents[normOffset++];
- int out = (int) (in * ((2<<getComponentSize(i)) - 1));
- components[offset++] = out;
- }
- return components;
- }
-
- /**
- * Convert unnormalized components to normalized components.
- */
- public float[] getNormalizedComponents(int[] components,
- int offset,
- float[] normComponents,
- int normOffset)
- {
- int numComponents = getNumComponents();
- if (normComponents == null)
- {
- normComponents = new float[normOffset + numComponents];
- }
-
- for (int i=0; i<numComponents; i++)
- {
- float in = components[offset++];
- float out = in / ((2<<getComponentSize(i)) - 1);
- normComponents[normOffset++] = out;
- }
- return normComponents;
- }
-
- /**
- * Converts the unnormalized component samples from an array to a
- * pixel value. I.e. composes the pixel from component samples, but
- * does not perform any color conversion or scaling of the samples.
- *
- * This method performs the inverse function of
- * <code>getComponents(int pixel, int[] components,
- * int offset)</code>. I.e.
- *
- * <code>(pixel == cm.getDataElement(cm.getComponents(pixel, null,
- * 0), 0))</code>.
- *
- * This method is typically overriden in subclasses to provide a
- * more efficient implementation.
- *
- * @param arrays of unnormalized component samples of single
- * pixel. The scale and multiplication state of the samples are
- * according to the color model. Each component sample is stored
- * as a seperate element in the array.
- *
- * @return pixel value encoded according to the color model.
- */
- public int getDataElement(int[] components, int offset)
- {
- throw new UnsupportedOperationException();
- }
-
- public Object getDataElements(int[] components, int offset, Object obj)
- {
- throw new UnsupportedOperationException();
- }
-
- public boolean equals(Object obj)
- {
- if (!(obj instanceof ColorModel)) return false;
-
- ColorModel o = (ColorModel) obj;
- return
- (pixel_bits == o.pixel_bits) &&
- (transferType == o.transferType) &&
- (transparency == o.transparency) &&
- (hasAlpha == o.hasAlpha) &&
- (isAlphaPremultiplied == isAlphaPremultiplied) &&
- (bits.equals(o.bits)) &&
- (cspace.equals(o.cspace));
- }
-
- public final ColorSpace getColorSpace()
- {
- return cspace;
- }
-
- // Typically overridden
- public ColorModel coerceData(WritableRaster raster,
- boolean isAlphaPremultiplied)
- {
- if (this.isAlphaPremultiplied == isAlphaPremultiplied)
- return this;
-
- int w = raster.getWidth();
- int h = raster.getHeight();
- int x = raster.getMinX();
- int y = raster.getMinY();
- int size = w*h;
- int numColors = getNumColorComponents();
- int numComponents = getNumComponents();
- int alphaScale = (1<<getComponentSize(numColors)) - 1;
- double[] pixels = raster.getPixels(x, y, w, h, (double[]) null);
-
- for (int i=0; i<size; i++)
- {
- double alpha = pixels[i*numComponents+numColors]*alphaScale;
- for (int c=0; c<numColors; c++)
- {
- int offset = i*numComponents+c;
- if (isAlphaPremultiplied)
- pixels[offset] = pixels[offset]/alpha;
- else
- pixels[offset] = pixels[offset]*alpha;
- }
- }
-
- raster.setPixels(0, 0, w, h, pixels);
-
- // FIXME: what can we return?
- return null;
- }
-
- // Typically overridden
- public boolean isCompatibleRaster(Raster raster)
- {
- SampleModel sampleModel = raster.getSampleModel();
- return isCompatibleSampleModel(sampleModel);
- }
-
- // Typically overridden
- public WritableRaster createCompatibleWritableRaster(int w, int h)
- {
- return new WritableRaster(createCompatibleSampleModel(w, h),
- new Point(0, 0));
- }
-
- // Typically overridden
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- throw new UnsupportedOperationException();
- }
-
- // Typically overridden
- public boolean isCompatibleSampleModel(SampleModel sm)
- {
- return sm.getTransferType() == transferType;
- }
-
- public void finalize() {
- }
-
- /**
- * Subclasses must override this method if it is possible for the
- * color model to have an alpha channel.
- *
- * @return null, as per JDK 1.3 doc. Subclasses will only return
- * null if no alpha raster exists.
- */
- public WritableRaster getAlphaRaster(WritableRaster raster)
- {
- return null;
-
- /* It is a mystery to me why we couldn't use the following code...
-
-
- if (!hasAlpha()) return null;
-
- SampleModel sm = raster.getSampleModel();
- int[] alphaBand = { sm.getNumBands() - 1 };
- SampleModel alphaModel = sm.createSubsetSampleModel(alphaBand);
- DataBuffer buffer = raster.getDataBuffer();
- Point origin = new Point(0, 0);
- return Raster.createWritableRaster(alphaModel, buffer, origin);
-
-
- ...here, and avoided overriding the method in subclasses,
- but the Sun docs state that this method always will return
- null, and that overriding is required. Oh, well.
- */
- }
-
- String stringParam()
- {
- return "pixel_bits=" + pixel_bits +
- ", cspace=" + cspace +
- ", transferType=" + transferType +
- ", transparency=" + transparency +
- ", hasAlpha=" + hasAlpha +
- ", isAlphaPremultiplied=" + isAlphaPremultiplied;
- }
-
- public String toString()
- {
- return getClass().getName() + "[" + stringParam() + "]";
- }
-}
diff --git a/libjava/java/awt/image/ComponentColorModel.java b/libjava/java/awt/image/ComponentColorModel.java
deleted file mode 100644
index e70984b3a3b..00000000000
--- a/libjava/java/awt/image/ComponentColorModel.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.color.*;
-import java.awt.Point;
-import gnu.gcj.awt.Buffers;
-
-public class ComponentColorModel extends ColorModel
-{
- private static int sum(int[] values)
- {
- int sum = 0;
- for (int i=0; i<values.length; i++)
- sum += values[i];
- return sum;
- }
-
- public ComponentColorModel(ColorSpace colorSpace, int[] bits,
- boolean hasAlpha,
- boolean isAlphaPremultiplied,
- int transparency, int transferType)
- {
- super(sum(bits), bits, colorSpace, hasAlpha, isAlphaPremultiplied,
- transparency, transferType);
- }
-
- public int getRed(int pixel)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- return (int) getRGBFloat(pixel)[0];
- }
-
- public int getGreen(int pixel)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- return (int) getRGBFloat(pixel)[0];
- }
-
- public int getBlue(int pixel)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- return (int) getRGBFloat(pixel)[0];
- }
-
- public int getAlpha(int pixel)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- int shift = 8 - getComponentSize(getNumColorComponents());
- if (shift >= 0) return pixel << shift;
- return pixel >> (-shift);
- }
-
- public int getRGB(int pixel)
- {
- float[] rgb = getRGBFloat(pixel);
- int ret = getRGB(rgb);
- if (hasAlpha()) ret |= getAlpha(pixel) << 24;
- return ret;
- }
-
-
- /* FIXME: Is the values returned from toRGB() in the [0.0, 1.0] or the
- [0.0, 256) range?
-
- we assume it is in the [0.0, 1.0] range along with the
- other color spaces. */
-
- /* Note, it's OK to pass a to large array to toRGB(). Extra
- elements are ignored. */
-
- private float[] getRGBFloat(int pixel)
- {
- float[] data = { pixel };
- return cspace.toRGB(data);
- }
-
- private float[] getRGBFloat(Object inData)
- {
- DataBuffer buffer =
- Buffers.createBufferFromData(transferType, inData,
- getNumComponents());
- int colors = getNumColorComponents();
- float[] data = new float[colors];
-
- // FIXME: unpremultiply data that is premultiplied
- for (int i=0; i<colors; i++)
- {
- float maxValue = (1<<getComponentSize(i))-1;
- data[i] = buffer.getElemFloat(i)/maxValue;
- }
- float[] rgb = cspace.toRGB(data);
- return rgb;
- }
-
- public int getRed(Object inData)
- {
- return (int) getRGBFloat(inData)[0]*255;
- }
-
- public int getGreen(Object inData)
- {
- return (int) getRGBFloat(inData)[1]*255;
- }
-
- public int getBlue(Object inData)
- {
- return (int) getRGBFloat(inData)[2]*255;
- }
-
- public int getAlpha(Object inData)
- {
- DataBuffer buffer =
- Buffers.createBufferFromData(transferType, inData,
- getNumComponents());
- int shift = 8 - getComponentSize(getNumColorComponents());
- int alpha = buffer.getElem(getNumColorComponents());
- if (shift >= 0) return alpha << shift;
- return alpha >> (-shift);
- }
-
- private int getRGB(float[] rgb)
- {
- /* NOTE: We could cast to byte instead of int here. This would
- avoid bits spilling over from one bit field to
- another. But, if we assume that floats are in the [0.0,
- 1.0] range, this will never happen anyway. */
-
- /* Remember to multiply BEFORE casting to int, otherwise, decimal
- point data will be lost. */
- int ret =
- (((int) (rgb[0]*255F)) << 16) |
- (((int) (rgb[1]*255F)) << 8) |
- (((int) (rgb[2]*255F)) << 0);
- return ret;
- }
-
- /**
- * @param inData pixel data of transferType, as returned by the
- * getDataElements method in SampleModel.
- */
- public int getRGB(Object inData)
- {
- float[] rgb = getRGBFloat(inData);
- int ret = getRGB(rgb);
- if (hasAlpha()) ret |= getAlpha(inData) << 24;
- return ret;
- }
-
- public Object getDataElements(int rgb, Object pixel)
- {
- // Convert rgb to [0.0, 1.0] sRGB values.
- float[] rgbFloats = {
- ((rgb >> 16)&0xff)/255.0F,
- ((rgb >> 8)&0xff)/255.0F,
- ((rgb >> 0)&0xff)/255.0F
- };
-
- // Convert from rgb to color space components.
- float[] data = cspace.fromRGB(rgbFloats);
- DataBuffer buffer = Buffers.createBuffer(transferType, pixel,
- getNumComponents());
- int numColors = getNumColorComponents();
-
- if (hasAlpha())
- {
- float alpha = ((rgb >> 24)&0xff)/255.0F;
-
- /* If color model has alpha and should be premultiplied, multiply
- color space components with alpha value. */
- if (isAlphaPremultiplied()) {
- for (int i=0; i<numColors; i++)
- data[i] *= alpha;
- }
- // Scale the alpha sample to the correct number of bits.
- alpha *= (1<<(bits[numColors]-1));
- // Arrange the alpha sample in the output array.
- buffer.setElemFloat(numColors, alpha);
- }
- for (int i=0; i<numColors; i++)
- {
- // Scale the color samples to the correct number of bits.
- float value = data[i]*(1<<(bits[i]-1));
- // Arrange the color samples in the output array.
- buffer.setElemFloat(i, value);
- }
- return Buffers.getData(buffer);
- }
-
- public int[] getComponents(int pixel, int[] components, int offset)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- if (components == null)
- components = new int[getNumComponents() + offset];
- components[offset] = pixel;
- return components;
- }
-
- public int[] getComponents(Object pixel, int[] components, int offset)
- {
- DataBuffer buffer = Buffers.createBuffer(transferType, pixel,
- getNumComponents());
- int numComponents = getNumComponents();
-
- if (components == null)
- components = new int[numComponents + offset];
-
- for (int i=0; i<numComponents; i++)
- components[offset++] = buffer.getElem(i);
-
- return components;
- }
-
- public int getDataElement(int[] components, int offset)
- {
- if (getNumComponents()>1) throw new IllegalArgumentException();
- return components[offset];
- }
-
- public Object getDataElements(int[] components, int offset, Object obj)
- {
- DataBuffer buffer = Buffers.createBuffer(transferType, obj,
- getNumComponents());
- int numComponents = getNumComponents();
-
- for (int i=0; i<numComponents; i++)
- buffer.setElem(i, components[offset++]);
-
- return Buffers.getData(buffer);
- }
-
- public ColorModel coerceData(WritableRaster raster,
- boolean isAlphaPremultiplied) {
- if (this.isAlphaPremultiplied == isAlphaPremultiplied)
- return this;
-
- /* TODO: provide better implementation based on the
- assumptions we can make due to the specific type of the
- color model. */
- super.coerceData(raster, isAlphaPremultiplied);
-
- return new ComponentColorModel(cspace, bits, hasAlpha(),
- isAlphaPremultiplied, // argument
- transparency, transferType);
- }
-
- public boolean isCompatibleRaster(Raster raster)
- {
- return super.isCompatibleRaster(raster);
- // FIXME: Should we test something more here? (Why override?)
- }
-
- public WritableRaster createCompatibleWritableRaster(int w, int h)
- {
- SampleModel sm = createCompatibleSampleModel(w, h);
- Point origin = new Point(0, 0);
- return Raster.createWritableRaster(sm, origin);
- }
-
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- int pixelStride = getNumComponents();
-
- /* TODO: Maybe we don't need to create a new offset array each
- time, but rather use the same array every time. */
- int[] bandOffsets = new int[pixelStride];
- for (int i=0; i<pixelStride; i++) bandOffsets[i] = i;
- return new ComponentSampleModel(transferType, w, h,
- pixelStride, pixelStride*w,
- bandOffsets);
- }
-
- public boolean isCompatibleSampleModel(SampleModel sm)
- {
- return
- (sm instanceof ComponentSampleModel) &&
- super.isCompatibleSampleModel(sm);
- }
-
- public WritableRaster getAlphaRaster(WritableRaster raster)
- {
- if (!hasAlpha()) return null;
-
- SampleModel sm = raster.getSampleModel();
- int[] alphaBand = { sm.getNumBands() - 1 };
- SampleModel alphaModel = sm.createSubsetSampleModel(alphaBand);
- DataBuffer buffer = raster.getDataBuffer();
- Point origin = new Point(0, 0);
- return Raster.createWritableRaster(alphaModel, buffer, origin);
- }
-
- public boolean equals(Object obj)
- {
- if (!(obj instanceof ComponentColorModel)) return false;
- return super.equals(obj);
- }
-}
diff --git a/libjava/java/awt/image/ComponentSampleModel.java b/libjava/java/awt/image/ComponentSampleModel.java
deleted file mode 100644
index 97c12c2515e..00000000000
--- a/libjava/java/awt/image/ComponentSampleModel.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import gnu.gcj.awt.Buffers;
-
-/* FIXME: This class does not yet support data type TYPE_SHORT */
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class ComponentSampleModel extends SampleModel
-{
- protected int[] bandOffsets;
- protected int[] bankIndices;
-
- // FIXME: Should we really shadow the numBands in the superclass?
- //protected int numBands;
-
- /** Used when creating data buffers. */
- protected int numBanks;
-
- protected int scanlineStride;
-
- protected int pixelStride;
-
- private boolean tightPixelPacking = false;
-
- public ComponentSampleModel(int dataType,
- int w, int h,
- int pixelStride,
- int scanlineStride,
- int[] bandOffsets)
- {
- this(dataType, w, h, pixelStride, scanlineStride,
- new int[bandOffsets.length], bandOffsets);
- }
-
- public ComponentSampleModel(int dataType,
- int w, int h,
- int pixelStride,
- int scanlineStride,
- int[] bankIndices,
- int[] bandOffsets)
- {
- super(dataType, w, h, bandOffsets.length);
- if ((pixelStride<0) || (scanlineStride<0) ||
- (bandOffsets.length<1) ||
- (bandOffsets.length != bankIndices.length))
- throw new IllegalArgumentException();
-
- this.bandOffsets = bandOffsets;
- this.bankIndices = bankIndices;
-
- for (int b=0; b<bankIndices.length; b++)
- this.numBanks = Math.max(this.numBanks, bankIndices[b]+1);
-
- this.scanlineStride = scanlineStride;
- this.pixelStride = pixelStride;
-
- // See if we can use some speedups
-
- /* FIXME: May these checks should be reserved for the
- PixelInterleavedSampleModel? */
-
- if (pixelStride == numBands)
- {
- tightPixelPacking = true;
- for (int b=0; b<numBands; b++) {
- if ((bandOffsets[b] != b) || (bankIndices[b] !=0))
- {
- tightPixelPacking = false;
- break;
- }
- }
- }
- }
-
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- return new ComponentSampleModel(dataType, w, h, pixelStride,
- scanlineStride, bankIndices,
- bandOffsets);
- }
-
- public SampleModel createSubsetSampleModel(int[] bands)
- {
- int numBands = bands.length;
-
- int[] bankIndices = new int[numBands];
- int[] bandOffsets = new int[numBands];
- for (int b=0; b<numBands; b++)
- {
- bankIndices[b] = this.bankIndices[bands[b]];
- bandOffsets[b] = this.bandOffsets[bands[b]];
- }
-
- return new ComponentSampleModel(dataType, width, height, pixelStride,
- scanlineStride, bankIndices,
- bandOffsets);
- }
-
- public DataBuffer createDataBuffer()
- {
- // Maybe this value should be precalculated in the constructor?
- int highestOffset = 0;
- for (int b=0; b<numBands; b++)
- {
- highestOffset = Math.max(highestOffset, bandOffsets[b]);
- }
- int size = pixelStride*(width-1) + scanlineStride*(height-1) +
- highestOffset + 1;
-
- return Buffers.createBuffer(getDataType(), size, numBanks);
- }
-
- public int getOffset(int x, int y)
- {
- return getOffset(x, y, 0);
- }
-
- public int getOffset(int x, int y, int b)
- {
- return bandOffsets[b] + pixelStride*x + scanlineStride*y;
- }
-
- public final int[] getSampleSize()
- {
- int size = DataBuffer.getDataTypeSize(getDataType());
- int[] sizes = new int[numBands];
-
- java.util.Arrays.fill(sizes, size);
- return sizes;
- }
-
- public final int getSampleSize(int band)
- {
- return DataBuffer.getDataTypeSize(getDataType());
- }
-
- public final int[] getBankIndices()
- {
- return bankIndices;
- }
-
- public final int[] getBandOffsets()
- {
- return bandOffsets;
- }
-
- public final int getScanlineStride()
- {
- return scanlineStride;
- }
-
- public final int getPixelStride()
- {
- return pixelStride;
- }
-
- public final int getNumDataElements()
- {
- return numBands;
- }
-
- public Object getDataElements(int x, int y, Object obj, DataBuffer data)
- {
- int xyOffset = pixelStride*x + scanlineStride*y;
-
- int[] totalBandDataOffsets = new int[numBands];
-
- /* Notice that band and bank offsets are different. Band offsets
- are managed by the sample model, and bank offsets are managed
- by the data buffer. Both must be accounted for. */
-
- /* FIXME: For single pixels, it is probably easier to simple
- call getElem instead of calculating the bank offset ourself.
-
- On the other hand, then we need to push the value through
- the int type returned by the getElem method. */
-
- int[] bankOffsets = data.getOffsets();
-
- for (int b=0; b<numBands; b++)
- {
- totalBandDataOffsets[b] =
- bandOffsets[b]+bankOffsets[bankIndices[b]] + xyOffset;
- }
-
- try
- {
- switch (getTransferType())
- {
- case DataBuffer.TYPE_BYTE:
- DataBufferByte inByte = (DataBufferByte) data;
- byte[] outByte = (byte[]) obj;
- if (outByte == null) outByte = new byte[numBands];
-
- for (int b=0; b<numBands; b++)
- {
- int dOffset = totalBandDataOffsets[b];
- outByte[b] = inByte.getData(bankIndices[b])[dOffset];
- }
- return outByte;
-
- case DataBuffer.TYPE_USHORT:
- DataBufferUShort inUShort = (DataBufferUShort) data;
- short[] outUShort = (short[]) obj;
- if (outUShort == null) outUShort = new short[numBands];
-
- for (int b=0; b<numBands; b++)
- {
- int dOffset = totalBandDataOffsets[b];
- outUShort[b] = inUShort.getData(bankIndices[b])[dOffset];
- }
- return outUShort;
-
- case DataBuffer.TYPE_INT:
- DataBufferInt inInt = (DataBufferInt) data;
- int[] outInt = (int[]) obj;
- if (outInt == null) outInt = new int[numBands];
-
- for (int b=0; b<numBands; b++)
- {
- int dOffset = totalBandDataOffsets[b];
- outInt[b] = inInt.getData(bankIndices[b])[dOffset];
- }
- return outInt;
-
- // FIXME: Fill in the other possible types.
- default:
- throw new IllegalStateException("unknown transfer type " +
- getTransferType());
- }
- }
- catch (ArrayIndexOutOfBoundsException aioobe)
- {
- String msg = "While reading data elements, " +
- "x=" + x + ", y=" + y +", " + ", xyOffset=" + xyOffset +
- ", data.getSize()=" + data.getSize() + ": " + aioobe;
- throw new ArrayIndexOutOfBoundsException(msg);
- }
- }
-
- public Object getDataElements(int x, int y, int w, int h, Object obj,
- DataBuffer data)
- {
- if (!tightPixelPacking)
- {
- return super.getDataElements(x, y, w, h, obj, data);
- }
-
- // using get speedup
-
- // We can copy whole rows
- int rowSize = w*numBands;
- int dataSize = rowSize*h;
-
- DataBuffer transferBuffer =
- Buffers.createBuffer(getTransferType(), obj, dataSize);
- obj = Buffers.getData(transferBuffer);
-
- int inOffset =
- pixelStride*x +
- scanlineStride*y +
- data.getOffset(); // Assumes only one band is used
-
- /* We don't add band offsets since we assume that bands have
- offsets 0, 1, 2, ... */
-
- // See if we can copy everything in one go
- if (scanlineStride == rowSize)
- {
- // Collapse scan lines:
- rowSize *= h;
- // We ignore scanlineStride since it won't be of any use
- h = 1;
- }
-
- int outOffset = 0;
- Object inArray = Buffers.getData(data);
- for (int yd = 0; yd<h; yd++)
- {
- System.arraycopy(inArray, inOffset, obj, outOffset, rowSize);
- inOffset += scanlineStride;
- outOffset += rowSize;
- }
- return obj;
- }
-
- public void setDataElements(int x, int y, int w, int h,
- Object obj, DataBuffer data)
- {
- if (!tightPixelPacking)
- {
- super.setDataElements(x, y, w, h, obj, data);
- return;
- }
-
- // using set speedup, we can copy whole rows
- int rowSize = w*numBands;
- int dataSize = rowSize*h;
-
- DataBuffer transferBuffer =
- Buffers.createBufferFromData(getTransferType(), obj, dataSize);
-
- int[] bankOffsets = data.getOffsets();
-
- int outOffset =
- pixelStride*x +
- scanlineStride*y +
- bankOffsets[0]; // same assuptions as in get...
-
- // See if we can copy everything in one go
- if (scanlineStride == rowSize)
- {
- // Collapse scan lines:
- scanlineStride = rowSize *= h;
- h = 1;
- }
-
- int inOffset = 0;
- Object outArray = Buffers.getData(data);
- for (int yd = 0; yd<h; yd++)
- {
- System.arraycopy(obj, inOffset, outArray, outOffset, rowSize);
- outOffset += scanlineStride;
- inOffset += rowSize;
- }
- }
-
- public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- int offset = pixelStride*x + scanlineStride*y;
- if (iArray == null) iArray = new int[numBands];
- for (int b=0; b<numBands; b++)
- {
- iArray[b] = data.getElem(bankIndices[b], offset+bandOffsets[b]);
- }
- return iArray;
- }
-
- public int[] getPixels(int x, int y, int w, int h, int[] iArray,
- DataBuffer data)
- {
- int offset = pixelStride*x + scanlineStride*y;
- if (iArray == null) iArray = new int[numBands*w*h];
- int outOffset = 0;
- for (y=0; y<h; y++)
- {
- int lineOffset = offset;
- for (x=0; x<w; x++)
- {
- for (int b=0; b<numBands; b++)
- {
- iArray[outOffset++] =
- data.getElem(bankIndices[b], lineOffset+bandOffsets[b]);
- }
- lineOffset += pixelStride;
- }
- offset += scanlineStride;
- }
- return iArray;
- }
-
- public int getSample(int x, int y, int b, DataBuffer data)
- {
- return data.getElem(bankIndices[b], getOffset(x, y, b));
- }
-
- public void setDataElements(int x, int y, Object obj, DataBuffer data)
- {
- int offset = pixelStride*x + scanlineStride*y;
- int[] totalBandDataOffsets = new int[numBands];
- int[] bankOffsets = data.getOffsets();
- for (int b=0; b<numBands; b++)
- totalBandDataOffsets[b] =
- bandOffsets[b]+bankOffsets[bankIndices[b]] + offset;
-
- switch (getTransferType())
- {
- case DataBuffer.TYPE_BYTE:
- {
- DataBufferByte out = (DataBufferByte) data;
- byte[] in = (byte[]) obj;
-
- for (int b=0; b<numBands; b++)
- out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];
-
- return;
- }
- case DataBuffer.TYPE_USHORT:
- {
- DataBufferUShort out = (DataBufferUShort) data;
- short[] in = (short[]) obj;
-
- for (int b=0; b<numBands; b++)
- out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];
-
- return;
- }
- case DataBuffer.TYPE_INT:
- {
- DataBufferInt out = (DataBufferInt) data;
- int[] in = (int[]) obj;
-
- for (int b=0; b<numBands; b++)
- out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];
-
- return;
- }
- default:
- throw new UnsupportedOperationException("transfer type not " +
- "implemented");
- }
- }
-
- public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- int offset = pixelStride*x + scanlineStride*y;
- for (int b=0; b<numBands; b++)
- data.setElem(bankIndices[b], offset+bandOffsets[b], iArray[b]);
- }
-
- public void setSample(int x, int y, int b, int s, DataBuffer data)
- {
- data.setElem(bankIndices[b], getOffset(x, y, b), s);
- }
-}
diff --git a/libjava/java/awt/image/DataBuffer.java b/libjava/java/awt/image/DataBuffer.java
deleted file mode 100644
index 0121e5bf900..00000000000
--- a/libjava/java/awt/image/DataBuffer.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-/**
- * Class that manages arrays of data elements. A data buffer consists
- * of one or more banks. A bank is a continuous region of data
- * elements.
- *
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public abstract class DataBuffer
-{
- public static final int TYPE_BYTE = 0;
- public static final int TYPE_USHORT = 1;
- public static final int TYPE_SHORT = 2;
- public static final int TYPE_INT = 3;
- public static final int TYPE_FLOAT = 4;
- public static final int TYPE_DOUBLE = 5;
- public static final int TYPE_UNDEFINED = 32;
-
- /** The type of the data elements stored in the data buffer. */
- protected int dataType;
-
- /** The number of banks in this buffer. */
- protected int banks = 1;
-
- /** Offset into the default (0'th) bank). */
- protected int offset; // FIXME: Is offsets[0] always mirrored in offset?
-
- /** The size of the banks. */
- protected int size;
-
- /** Offset into each bank. */
- protected int[] offsets;
-
- protected DataBuffer(int dataType, int size)
- {
- this.dataType = dataType;
- this.size = size;
- }
-
- protected DataBuffer(int dataType, int size, int numBanks) {
- this(dataType, size);
- banks = numBanks;
- offsets = new int[numBanks];
- }
-
- protected DataBuffer(int dataType, int size, int numBanks, int offset) {
- this(dataType, size, numBanks);
-
- java.util.Arrays.fill(offsets, offset);
-
- this.offset = offset;
- }
-
- protected DataBuffer(int dataType, int size, int numBanks, int[] offsets) {
- this(dataType, size);
- if (numBanks != offsets.length)
- throw new ArrayIndexOutOfBoundsException();
-
- banks = numBanks;
- this.offsets = offsets;
-
- offset = offsets[0];
- }
-
- public static int getDataTypeSize(int dataType) {
- // Maybe this should be a lookup table instead.
- switch (dataType)
- {
- case TYPE_BYTE:
- return 8;
- case TYPE_USHORT:
- case TYPE_SHORT:
- return 16;
- case TYPE_INT:
- case TYPE_FLOAT:
- return 32;
- case TYPE_DOUBLE:
- return 64;
- default:
- throw new IllegalArgumentException();
- }
- }
-
- public int getDataType()
- {
- return dataType;
- }
-
- public int getSize()
- {
- return size;
- }
-
- public int getOffset()
- {
- return offset;
- }
-
- public int[] getOffsets()
- {
- if (offsets == null)
- {
- // is this necessary?
- offsets = new int[1];
- offsets[0] = offset;
- }
- return offsets;
- }
-
- public int getNumBanks()
- {
- return banks;
- }
-
- public int getElem(int i)
- {
- return getElem(0, i);
- }
-
- public abstract int getElem(int bank, int i);
-
- public void setElem(int i, int val)
- {
- setElem(0, i, val);
- }
-
- public abstract void setElem(int bank, int i, int val);
-
- public float getElemFloat(int i)
- {
- return getElem(i);
- }
-
- public float getElemFloat(int bank, int i)
- {
- return getElem(bank, i);
- }
-
- public void setElemFloat(int i, float val)
- {
- setElem(i, (int) val);
- }
-
- public void setElemFloat(int bank, int i, float val)
- {
- setElem(bank, i, (int) val);
- }
-
- public double getElemDouble(int i)
- {
- return getElem(i);
- }
-
- public double getElemDouble(int bank, int i)
- {
- return getElem(bank, i);
- }
-
- public void setElemDouble(int i, double val)
- {
- setElem(i, (int) val);
- }
-
- public void setElemDouble(int bank, int i, double val)
- {
- setElem(bank, i, (int) val);
- }
-}
diff --git a/libjava/java/awt/image/DataBufferByte.java b/libjava/java/awt/image/DataBufferByte.java
deleted file mode 100644
index dba81014312..00000000000
--- a/libjava/java/awt/image/DataBufferByte.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-/* This is one of several classes that are nearly identical. Maybe we
- should have a central template and generate all these files. This
- is one of the cases where templates or macros would have been
- useful to have in Java.
-
- This file has been created using search-replace. My only fear is
- that these classes will grow out-of-sync as of a result of changes
- that are not propagated to the other files. As always, mirroring
- code is a maintenance nightmare. */
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class DataBufferByte extends DataBuffer
-{
- private byte[] data;
- private byte[][] bankData;
-
- public DataBufferByte(int size)
- {
- super(TYPE_BYTE, size);
- data = new byte[size];
- }
-
- public DataBufferByte(int size, int numBanks)
- {
- super(TYPE_BYTE, size, numBanks);
- bankData = new byte[numBanks][size];
- data = bankData[0];
- }
-
- public DataBufferByte(byte[] dataArray, int size)
- {
- super(TYPE_BYTE, size);
- data = dataArray;
- }
-
- public DataBufferByte(byte[] dataArray, int size, int offset)
- {
- super(TYPE_BYTE, size, 1, offset);
- data = dataArray;
- }
-
- public DataBufferByte(byte[][] dataArray, int size)
- {
- super(TYPE_BYTE, size, dataArray.length);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public DataBufferByte(byte[][] dataArray, int size, int[] offsets)
- {
- super(TYPE_BYTE, size, dataArray.length, offsets);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public byte[] getData()
- {
- return data;
- }
-
- public byte[] getData(int bank)
- {
- return bankData[bank];
- }
-
- public byte[][] getBankData()
- {
- return bankData;
- }
-
- public int getElem(int i)
- {
- return data[i+offset] & 0xff; // get unsigned byte as int
- }
-
- public int getElem(int bank, int i)
- {
- // get unsigned byte as int
- return bankData[bank][i+offsets[bank]] & 0xff;
- }
-
- public void setElem(int i, int val)
- {
- data[i+offset] = (byte) val;
- }
-
- public void setElem(int bank, int i, int val)
- {
- bankData[bank][i+offsets[bank]] = (byte) val;
- }
-}
diff --git a/libjava/java/awt/image/DataBufferInt.java b/libjava/java/awt/image/DataBufferInt.java
deleted file mode 100644
index 36ddbd94c57..00000000000
--- a/libjava/java/awt/image/DataBufferInt.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-/* This is one of several classes that are nearly identical. Maybe we
- should have a central template and generate all these files. This
- is one of the cases where templates or macros would have been
- useful to have in Java.
-
- This file has been created using search-replace. My only fear is
- that these classes will grow out-of-sync as of a result of changes
- that are not propagated to the other files. As always, mirroring
- code is a maintenance nightmare. */
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class DataBufferInt extends DataBuffer
-{
- private int[] data;
- private int[][] bankData;
-
- public DataBufferInt(int size)
- {
- super(TYPE_INT, size);
- data = new int[size];
- }
-
- public DataBufferInt(int size, int numBanks)
- {
- super(TYPE_INT, size, numBanks);
- bankData = new int[numBanks][size];
- data = bankData[0];
- }
-
- public DataBufferInt(int[] dataArray, int size)
- {
- super(TYPE_INT, size);
- data = dataArray;
- }
-
- public DataBufferInt(int[] dataArray, int size, int offset)
- {
- super(TYPE_INT, size, 1, offset);
- data = dataArray;
- }
-
- public DataBufferInt(int[][] dataArray, int size)
- {
- super(TYPE_INT, size, dataArray.length);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public DataBufferInt(int[][] dataArray, int size, int[] offsets)
- {
- super(TYPE_INT, size, dataArray.length, offsets);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public int[] getData()
- {
- return data;
- }
-
- public int[] getData(int bank)
- {
- return bankData[bank];
- }
-
- public int[][] getBankData()
- {
- return bankData;
- }
-
- public int getElem(int i)
- {
- return data[i+offset];
- }
-
- public int getElem(int bank, int i)
- {
- // get unsigned int as int
- return bankData[bank][i+offsets[bank]];
- }
-
- public void setElem(int i, int val)
- {
- data[i+offset] = (int) val;
- }
-
- public void setElem(int bank, int i, int val)
- {
- bankData[bank][i+offsets[bank]] = (int) val;
- }
-}
diff --git a/libjava/java/awt/image/DataBufferUShort.java b/libjava/java/awt/image/DataBufferUShort.java
deleted file mode 100644
index 2be68d12e16..00000000000
--- a/libjava/java/awt/image/DataBufferUShort.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-/* This is one of several classes that are nearly identical. Maybe we
- should have a central template and generate all these files. This
- is one of the cases where templates or macros would have been
- useful to have in Java.
-
- This file has been created using search-replace. My only fear is
- that these classes will grow out-of-sync as of a result of changes
- that are not propagated to the other files. As always, mirroring
- code is a maintenance nightmare. */
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class DataBufferUShort extends DataBuffer
-{
- private short[] data;
- private short[][] bankData;
-
- public DataBufferUShort(int size)
- {
- super(TYPE_USHORT, size);
- data = new short[size];
- }
-
- public DataBufferUShort(int size, int numBanks)
- {
- super(TYPE_USHORT, size, numBanks);
- bankData = new short[numBanks][size];
- data = bankData[0];
- }
-
- public DataBufferUShort(short[] dataArray, int size)
- {
- super(TYPE_USHORT, size);
- data = dataArray;
- }
-
- public DataBufferUShort(short[] dataArray, int size, int offset)
- {
- super(TYPE_USHORT, size, 1, offset);
- data = dataArray;
- }
-
- public DataBufferUShort(short[][] dataArray, int size)
- {
- super(TYPE_USHORT, size, dataArray.length);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public DataBufferUShort(short[][] dataArray, int size, int[] offsets)
- {
- super(TYPE_USHORT, size, dataArray.length, offsets);
- bankData = dataArray;
- data = bankData[0];
- }
-
- public short[] getData()
- {
- return data;
- }
-
- public short[] getData(int bank)
- {
- return bankData[bank];
- }
-
- public short[][] getBankData()
- {
- return bankData;
- }
-
- public int getElem(int i)
- {
- return data[i+offset] & 0xffff; // get unsigned short as int
- }
-
- public int getElem(int bank, int i)
- {
- // get unsigned short as int
- return bankData[bank][i+offsets[bank]] & 0xffff;
- }
-
- public void setElem(int i, int val)
- {
- data[i+offset] = (short) val;
- }
-
- public void setElem(int bank, int i, int val)
- {
- bankData[bank][i+offsets[bank]] = (short) val;
- }
-}
diff --git a/libjava/java/awt/image/DirectColorModel.java b/libjava/java/awt/image/DirectColorModel.java
deleted file mode 100644
index b79c0af1cc6..00000000000
--- a/libjava/java/awt/image/DirectColorModel.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.Point;
-import java.awt.Transparency;
-import java.awt.color.ColorSpace;
-import gnu.gcj.awt.Buffers;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class DirectColorModel extends PackedColorModel
-{
- public DirectColorModel(int pixelBits, int rmask, int gmask, int bmask)
- {
- this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits,
- rmask, gmask, bmask, 0,
- false, // not alpha premultiplied
- Buffers.smallestAppropriateTransferType(pixelBits) // find type
- );
- }
-
- public DirectColorModel(int pixelBits,
- int rmask, int gmask, int bmask, int amask)
- {
- this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits,
- rmask, gmask, bmask, amask,
- false, // not alpha premultiplied
- Buffers.smallestAppropriateTransferType(pixelBits) // find type
- );
- }
-
- public DirectColorModel(ColorSpace cspace, int pixelBits,
- int rmask, int gmask, int bmask, int amask,
- boolean isAlphaPremultiplied,
- int transferType)
- {
- super(cspace, pixelBits,
- rmask, gmask, bmask, amask, isAlphaPremultiplied,
- ((amask == 0) ? Transparency.OPAQUE : Transparency.TRANSLUCENT),
- transferType);
- }
-
- public final int getRedMask()
- {
- return getMask(0);
- }
-
- public final int getGreenMask()
- {
- return getMask(1);
- }
-
- public final int getBlueMask()
- {
- return getMask(2);
- }
-
- public final int getAlphaMask()
- {
- return hasAlpha() ? getMask(3) : 0;
- }
-
- public final int getRed(int pixel)
- {
- return extractAndNormalizeSample(pixel, 0);
- }
-
- public final int getGreen(int pixel)
- {
- return extractAndNormalizeSample(pixel, 1);
- }
-
- public final int getBlue(int pixel)
- {
- return extractAndNormalizeSample(pixel, 2);
- }
-
- public final int getAlpha(int pixel)
- {
- if (!hasAlpha()) return 0;
- return extractAndScaleSample(pixel, 3);
- }
-
- private final int extractAndNormalizeSample(int pixel, int component)
- {
- int value = extractAndScaleSample(pixel, component);
- if (hasAlpha() && isAlphaPremultiplied())
- value = value*255/getAlpha(pixel);
- return value;
- }
-
- private final int extractAndScaleSample(int pixel, int component)
- {
- int field = pixel & getMask(component);
- int to8BitShift =
- 8 - shifts[component] - getComponentSize(component);
- return (to8BitShift>0) ?
- (field << to8BitShift) :
- (field >>> (-to8BitShift));
- }
-
-
- /* FIXME: The Sun docs show that this method is overridden, but I don't
- see any way to improve on the superclass implementation. */
- public final int getRGB(int pixel)
- {
- return super.getRGB(pixel);
- }
-
- public int getRed(Object inData)
- {
- return getRed(getPixelFromArray(inData));
- }
-
- public int getGreen(Object inData)
- {
- return getGreen(getPixelFromArray(inData));
- }
-
- public int getBlue(Object inData)
- {
- return getBlue(getPixelFromArray(inData));
- }
-
- public int getAlpha(Object inData)
- {
- return getAlpha(getPixelFromArray(inData));
- }
-
- public int getRGB(Object inData)
- {
- return getRGB(getPixelFromArray(inData));
- }
-
- /**
- * Converts a normalized pixel int value in the sRGB color
- * space to an array containing a single pixel of the color space
- * of the color model.
- *
- * <p>This method performs the inverse function of
- * <code>getRGB(Object inData)</code>.
- *
- * @param rgb pixel as a normalized sRGB, 0xAARRGGBB value.
- *
- * @param pixel to avoid needless creation of arrays, an array to
- * use to return the pixel can be given. If null, a suitable array
- * will be created.
- *
- * @return array of transferType containing a single pixel. The
- * pixel should be encoded in the natural way of the color model.
- *
- * @see #getRGB(Object)
- */
- public Object getDataElements(int rgb, Object pixel)
- {
- // FIXME: handle alpha multiply
-
- int pixelValue = 0;
- int a = 0;
- if (hasAlpha()) {
- a = (rgb >>> 24) & 0xff;
- pixelValue = valueToField(a, 3, 8);
- }
-
- if (hasAlpha() && isAlphaPremultiplied())
- {
- int r, g, b;
- /* if r=0xff and a=0xff, then resulting
- value will be (r*a)>>>8 == 0xfe... This seems wrong.
- We should divide by 255 rather than shifting >>>8 after
- multiplying.
-
- Too bad, shifting is probably less expensive.
- r = ((rgb >>> 16) & 0xff)*a;
- g = ((rgb >>> 8) & 0xff)*a;
- b = ((rgb >>> 0) & 0xff)*a; */
- /* The r, g, b values we calculate are 16 bit. This allows
- us to avoid discarding the lower 8 bits obtained if
- multiplying with the alpha band. */
-
- // using 16 bit values
- r = ((rgb >>> 8) & 0xff00)*a/255;
- g = ((rgb >>> 0) & 0xff00)*a/255;
- b = ((rgb << 8) & 0xff00)*a/255;
- pixelValue |=
- valueToField(r, 0, 16) | // Red
- valueToField(g, 1, 16) | // Green
- valueToField(b, 2, 16); // Blue
- }
- else
- {
- int r, g, b;
- // using 8 bit values
- r = (rgb >>> 16) & 0xff;
- g = (rgb >>> 8) & 0xff;
- b = (rgb >>> 0) & 0xff;
-
- pixelValue |=
- valueToField(r, 0, 8) | // Red
- valueToField(g, 1, 8) | // Green
- valueToField(b, 2, 8); // Blue
- }
-
- /* In this color model, the whole pixel fits in the first element
- of the array. */
- DataBuffer buffer = Buffers.createBuffer(transferType, pixel, 1);
- buffer.setElem(0, pixelValue);
- return Buffers.getData(buffer);
- }
-
- /**
- * Converts a value to the correct field bits based on the
- * information derived from the field masks.
- *
- * @param highBit the position of the most significant bit in the
- * val parameter.
- */
- private final int valueToField(int val, int component, int highBit)
- {
- int toFieldShift =
- getComponentSize(component) + shifts[component] - highBit;
- int ret = (toFieldShift>0) ?
- (val << toFieldShift) :
- (val >>> (-toFieldShift));
- return ret & getMask(component);
- }
-
- /**
- * Converts a 16 bit value to the correct field bits based on the
- * information derived from the field masks.
- */
- private final int value16ToField(int val, int component)
- {
- int toFieldShift = getComponentSize(component) + shifts[component] - 16;
- return (toFieldShift>0) ?
- (val << toFieldShift) :
- (val >>> (-toFieldShift));
- }
-
- /**
- * Fills an array with the unnormalized component samples from a
- * pixel value. I.e. decompose the pixel, but not perform any
- * color conversion.
- */
- public final int[] getComponents(int pixel, int[] components, int offset)
- {
- int numComponents = getNumComponents();
- if (components == null) components = new int[offset + numComponents];
-
- for (int b=0; b<numComponents; b++)
- components[offset++] = (pixel&getMask(b)) >>> shifts[b];
-
- return components;
- }
-
- public final int[] getComponents(Object pixel, int[] components,
- int offset)
- {
- return getComponents(getPixelFromArray(pixel), components, offset);
- }
-
- public final WritableRaster createCompatibleWritableRaster(int w, int h)
- {
- SampleModel sm = createCompatibleSampleModel(w, h);
- Point origin = new Point(0, 0);
- return Raster.createWritableRaster(sm, origin);
- }
-
- public int getDataElement(int[] components, int offset)
- {
- int numComponents = getNumComponents();
- int pixelValue = 0;
-
- for (int c=0; c<numComponents; c++)
- pixelValue |= (components[offset++] << shifts[c]) & getMask(c);
-
- return pixelValue;
- }
-
- public Object getDataElements(int[] components, int offset, Object obj)
- {
- /* In this color model, the whole pixel fits in the first element
- of the array. */
- int pixelValue = getDataElement(components, offset);
-
- DataBuffer buffer = Buffers.createBuffer(transferType, obj, 1);
- buffer.setElem(0, pixelValue);
- return Buffers.getData(buffer);
- }
-
- public ColorModel coerceData(WritableRaster raster,
- boolean isAlphaPremultiplied)
- {
- if (this.isAlphaPremultiplied == isAlphaPremultiplied)
- return this;
-
- /* TODO: provide better implementation based on the
- assumptions we can make due to the specific type of the
- color model. */
- super.coerceData(raster, isAlphaPremultiplied);
-
- return new ComponentColorModel(cspace, bits, hasAlpha(),
- isAlphaPremultiplied, // argument
- transparency, transferType);
- }
-
- public boolean isCompatibleRaster(Raster raster)
- {
- /* FIXME: the Sun docs say this method is overridden here,
- but I don't see any way to improve upon the implementation
- in ColorModel. */
- return super.isCompatibleRaster(raster);
- }
-
- String stringParam()
- {
- return super.stringParam() +
- ", redMask=" + Integer.toHexString(getRedMask()) +
- ", greenMask=" + Integer.toHexString(getGreenMask()) +
- ", blueMask=" + Integer.toHexString(getBlueMask()) +
- ", alphaMask=" + Integer.toHexString(getAlphaMask());
- }
-
- public String toString()
- {
- /* FIXME: Again, docs say override, but how do we improve upon the
- superclass implementation? */
- return super.toString();
- }
-}
diff --git a/libjava/java/awt/image/ImageConsumer.java b/libjava/java/awt/image/ImageConsumer.java
deleted file mode 100644
index 26519cbe467..00000000000
--- a/libjava/java/awt/image/ImageConsumer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-import java.util.Hashtable;
-
-public interface ImageConsumer
-{
-
- public static final int RANDOMPIXELORDER = 1 << 0,
- TOPDOWNLEFTRIGHT = 1 << 1,
- COMPLETESCANLINES = 1 << 2,
- SINGLEPASS = 1 << 3,
- SINGLEFRAME = 1 << 4;
-
- public static final int IMAGEERROR = 1,
- SINGLEFRAMEDONE = 2,
- STATICIMAGEDONE = 3,
- IMAGEABORTED = 4;
-
- public void setDimensions(int width, int height);
- public void setProperties(Hashtable props);
- public void setColorModel(ColorModel model);
- public void setHints(int hintflags);
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- byte[] pixels, int off, int scansize);
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- int[] pixels, int off, int scansize);
- public void imageComplete(int status);
-}
diff --git a/libjava/java/awt/image/ImageObserver.java b/libjava/java/awt/image/ImageObserver.java
deleted file mode 100644
index 770e28ca053..00000000000
--- a/libjava/java/awt/image/ImageObserver.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.Image;
-
-public interface ImageObserver
-{
- int WIDTH = 1 << 0;
- int HEIGHT = 1 << 1;
- int PROPERTIES = 1 << 2;
- int SOMEBITS = 1 << 3;
- int FRAMEBITS = 1 << 4;
- int ALLBITS = 1 << 5;
- int ERROR = 1 << 6;
- int ABORT = 1 << 7;
-
- boolean imageUpdate(Image image, int infoFlags, int x, int y, int width,
- int height);
-}
-
-
diff --git a/libjava/java/awt/image/ImageProducer.java b/libjava/java/awt/image/ImageProducer.java
deleted file mode 100644
index c8cfe12b807..00000000000
--- a/libjava/java/awt/image/ImageProducer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-public interface ImageProducer
-{
- void addConsumer(ImageConsumer ic);
- boolean isConsumer(ImageConsumer ic);
- void removeConsumer(ImageConsumer ic);
- void startProduction(ImageConsumer ic);
- void requestTopDownLeftRightResend(ImageConsumer ic);
-}
diff --git a/libjava/java/awt/image/IndexColorModel.java b/libjava/java/awt/image/IndexColorModel.java
deleted file mode 100644
index 896d97f9372..00000000000
--- a/libjava/java/awt/image/IndexColorModel.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.Transparency;
-import java.awt.color.ColorSpace;
-import gnu.gcj.awt.Buffers;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class IndexColorModel extends ColorModel
-{
- private byte[] r;
- private byte[] g;
- private byte[] b;
- private byte[] a;
- private int[] argb;
- private byte[] cmap;
- private int start;
- private int transparent;
- private int size;
-
- public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b)
- {
- super(bits, nArray(bits, 3),
- ColorSpace.getInstance(ColorSpace.CS_sRGB),
- false, // no transparency
- false, // no premultiplied
- Transparency.OPAQUE,
- Buffers.smallestAppropriateTransferType(bits));
- this.r = r;
- this.g = g;
- this.b = b;
- this.size = size;
- }
-
- public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b,
- int transparent)
- {
- super(bits, nArray(bits, 4),
- ColorSpace.getInstance(ColorSpace.CS_sRGB),
- true, // has transparency
- false,
- Transparency.BITMASK,
- Buffers.smallestAppropriateTransferType(bits));
- this.r = r;
- this.g = g;
- this.b = b;
- this.transparent = transparent;
- this.size = size;
- }
-
- public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b,
- byte[] a)
- {
- super(bits, nArray(bits, 4),
- ColorSpace.getInstance(ColorSpace.CS_sRGB),
- true, // has transparency
- false,
- Transparency.BITMASK,
- Buffers.smallestAppropriateTransferType(bits));
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- this.size = size;
- }
-
- public IndexColorModel(int bits, int size, byte[] cmap, int start,
- boolean hasAlpha)
- {
- super(bits, nArray(bits, hasAlpha ? 4 : 3),
- ColorSpace.getInstance(ColorSpace.CS_sRGB),
- hasAlpha,
- false,
- hasAlpha ? Transparency.TRANSLUCENT : Transparency.OPAQUE,
- Buffers.smallestAppropriateTransferType(bits));
- this.cmap = cmap;
- this.start = start;
- this.size = size;
- }
-
- public IndexColorModel(int bits, int size, byte[] cmap, int start,
- boolean hasAlpha, int transparent,
- int transferType)
- {
- super(bits, nArray(bits, hasAlpha ? 4 : 3),
- ColorSpace.getInstance(ColorSpace.CS_sRGB),
- hasAlpha,
- false,
- hasAlpha ?
- Transparency.TRANSLUCENT :
- ((transparent < 0) ?
- Transparency.OPAQUE :
- Transparency.BITMASK),
- transferType);
- this.cmap = cmap;
- this.start = start;
- this.size = size;
- }
-
- public final int getMapSize()
- {
- return size;
- }
-
- public final int getTransparentPixel()
- {
- return transparent;
- }
-
- public final void getReds(byte r[])
- {
- if (this.r == null) calcRGBArrays();
- System.arraycopy(this.r, 0, r, 0, getMapSize());
- }
-
- public final void getGreens(byte g[])
- {
- if (this.g == null) calcRGBArrays();
- System.arraycopy(this.g, 0, g, 0, getMapSize());
- }
-
- public final void getBlues(byte b[])
- {
- if (this.b == null) calcRGBArrays();
- System.arraycopy(this.b, 0, b, 0, getMapSize());
- }
-
- public final void getAlphas(byte a[])
- {
- if (this.a == null) calcAlphaArray();
- System.arraycopy(this.a, 0, a, 0, getMapSize());
- }
-
- public final void getRGBs(int rgb[])
- {
- if (this.argb == null) calcARGBArray();
- System.arraycopy(this.argb, 0, rgb, 0, getMapSize());
- }
-
- public int getRed(int pixel)
- {
- try
- {
- return r[pixel];
- }
- catch (NullPointerException npe)
- {
- calcRGBArrays();
- return r[pixel];
- }
- }
-
- public int getGreen(int pixel)
- {
- try
- {
- return g[pixel];
- }
- catch (NullPointerException npe)
- {
- calcRGBArrays();
- return g[pixel];
- }
- }
-
- public int getBlue(int pixel)
- {
- try
- {
- return b[pixel];
- }
- catch (NullPointerException npe)
- {
- calcRGBArrays();
- return b[pixel];
- }
- }
-
- public int getAlpha(int pixel)
- {
- try
- {
- return a[pixel];
- }
- catch (NullPointerException npe)
- {
- calcAlphaArray();
- return a[pixel];
- }
- }
-
- private void calcRGBArrays() {
- int j=0;
- boolean hasAlpha = hasAlpha();
- r = new byte[size];
- g = new byte[size];
- b = new byte[size];
- if (hasAlpha) a = new byte[size];
-
- for (int i=0; i<size; i++)
- {
- r[i] = cmap[j++];
- g[i] = cmap[j++];
- b[i] = cmap[j++];
- if (hasAlpha()) a[i] = cmap[j++];
- }
- }
-
- private void calcAlphaArray()
- {
- int transparency = getTransparency();
- switch (transparency)
- {
- case Transparency.OPAQUE:
- case Transparency.BITMASK:
- a = nArray((byte) 255, size);
- if (transparency == Transparency.BITMASK)
- a[transparent] = 0;
- break;
- case Transparency.TRANSLUCENT:
- calcRGBArrays();
- }
- }
-
- private void calcARGBArray()
- {
- int mapSize = getMapSize();
- argb = new int[mapSize];
- for (int p=0; p<mapSize; p++) argb[p] = getRGB(p);
- }
-
- public int getRed(Object inData)
- {
- return getRed(getPixelFromArray(inData));
- }
-
- public int getGreen(Object inData)
- {
- return getGreen(getPixelFromArray(inData));
- }
-
- public int getBlue(Object inData)
- {
- return getBlue(getPixelFromArray(inData));
- }
-
- public int getAlpha(Object inData)
- {
- return getAlpha(getPixelFromArray(inData));
- }
-
- public int getRGB(Object inData)
- {
- return getRGB(getPixelFromArray(inData));
- }
-
- public Object getDataElements(int rgb, Object pixel)
- {
- int av, rv, gv, bv;
- // using 8 bit values
- av = (rgb >>> 24) & 0xff;
- rv = (rgb >>> 16) & 0xff;
- gv = (rgb >>> 8) & 0xff;
- bv = (rgb >>> 0) & 0xff;
-
- int pixelValue = getPixelValue(av, rv, gv, bv);
-
- /* In this color model, the whole pixel fits in the first element
- of the array. */
- DataBuffer buffer = Buffers.createBuffer(transferType, pixel, 1);
- buffer.setElem(0, pixelValue);
- return Buffers.getData(buffer);
- }
-
- private int getPixelValue(int av, int rv, int gv, int bv)
- {
- if (r == null) calcRGBArrays();
- if (a == null) calcAlphaArray();
-
- int minDAlpha = 1<<8;
- int minDRGB = (1<<8)*(1<<8)*3;
- int pixelValue = -1;
- for (int i=0; i<size; i++)
- {
- int dAlpha = Math.abs(av-(a[i]&0xff));
- if (dAlpha > minDAlpha) continue;
- int dR = rv-(r[i]&0xff);
- int dG = gv-(g[i]&0xff);
- int dB = bv-(b[i]&0xff);
- int dRGB = dR*dR + dG*dG + dB*dB;
-
- if (dRGB >= minDRGB) continue;
-
- pixelValue = i;
- minDRGB = dRGB;
- }
- return pixelValue;
- }
-
- public int[] getComponents(int pixel, int[] components, int offset)
- {
- int numComponents = getNumComponents();
- if (components == null) components = new int[offset + numComponents];
- components[offset++] = (r[pixel]&0xff);
- components[offset++] = (g[pixel]&0xff);
- components[offset++] = (b[pixel]&0xff);
- if (hasAlpha()) components[offset++] = (a[pixel]&0xff);
- return components;
- }
-
- public final int[] getComponents(Object pixel, int[] components,
- int offset)
- {
- return getComponents(getPixelFromArray(pixel), components, offset);
- }
-
- public int getDataElement(int[] components, int offset)
- {
- int r = components[offset++];
- int g = components[offset++];
- int b = components[offset++];
- int a = hasAlpha() ? components[offset++] : 255;
-
- return getPixelValue(a, r, g, b);
- }
-
- public Object getDataElements(int[] components, int offset, Object pixel)
- {
- int pixelValue = getDataElement(components, offset);
-
- /* In this color model, the whole pixel fits in the first element
- of the array. */
- DataBuffer buffer = Buffers.createBuffer(transferType, pixel, 1);
- buffer.setElem(0, pixelValue);
- return Buffers.getData(buffer);
- }
-
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- int[] bandOffsets = {0};
- return new ComponentSampleModel(transferType, w, h,
- 1, // pixel stride
- w, // scanline stride
- bandOffsets);
- }
-}
diff --git a/libjava/java/awt/image/PackedColorModel.java b/libjava/java/awt/image/PackedColorModel.java
deleted file mode 100644
index b2efd76bead..00000000000
--- a/libjava/java/awt/image/PackedColorModel.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.Point;
-import java.awt.color.ColorSpace;
-import gnu.gcj.awt.BitMaskExtent;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public abstract class PackedColorModel extends ColorModel
-{
- private int masks[];
-
- /* Package accessibility, the DirectColorModel needs this array */
- int shifts[];
-
- public PackedColorModel(ColorSpace cspace, int pixelBits,
- int[] colorMaskArray, int alphaMask,
- boolean isAlphaPremultiplied,
- int transparency,
- int transferType)
- {
- super(pixelBits, calcBitsPerComponent(colorMaskArray, alphaMask),
- cspace, (alphaMask != 0), isAlphaPremultiplied, transparency,
- transferType);
- initMasks(colorMaskArray, alphaMask);
- if ((pixelBits<1) || (pixelBits>32)) {
- throw new IllegalArgumentException("pixels per bits must be " +
- "in the range [1, 32]");
- }
- }
-
- private static int[] calcBitsPerComponent(int[] colorMaskArray,
- int alphaMask)
- {
- int numComponents = colorMaskArray.length;
- if (alphaMask != 0) numComponents++;
-
- int[] bitsPerComponent = new int[numComponents];
-
- BitMaskExtent extent = new BitMaskExtent();
- for (int b=0; b<colorMaskArray.length; b++)
- {
- extent.setMask(colorMaskArray[b]);
- bitsPerComponent[b] = extent.bitWidth;
- }
- if (alphaMask != 0)
- {
- extent.setMask(alphaMask);
- bitsPerComponent[numComponents-1] = extent.bitWidth;
- }
- return bitsPerComponent;
- }
-
- /** Initializes the masks.
- *
- * @return an array containing the number of bits per color
- * component.
- */
- private void initMasks(int[] colorMaskArray, int alphaMask)
- {
- int numComponents = colorMaskArray.length;
- if (alphaMask == 0)
- {
- masks = colorMaskArray;
- }
- else
- {
- masks = new int[numComponents+1];
- System.arraycopy(colorMaskArray, 0,
- masks, 0,
- numComponents);
- masks[numComponents++] = alphaMask;
- }
-
- shifts = new int[numComponents];
-
- // Bit field handling have been moved to a utility class
- BitMaskExtent extent = new BitMaskExtent();
- for (int b=0; b<numComponents; b++)
- {
- extent.setMask(masks[b]);
- shifts[b] = extent.leastSignificantBit;
- }
- }
-
- public PackedColorModel(ColorSpace cspace, int pixelBits,
- int rmask, int gmask, int bmask,
- int amask, boolean isAlphaPremultiplied,
- int transparency,
- int transferType)
- {
- this(cspace, pixelBits, makeColorMaskArray(rmask, gmask, bmask),
- amask, isAlphaPremultiplied, transparency, transferType);
- }
-
- /* TODO: If there is a alpha mask, it is inefficient to create a
- color mask array that will be discarded when the alpha mask is
- appended. We should probably create a private constructor that
- takes a complete array of masks (color+alpha) as an
- argument. */
-
- private static int[] makeColorMaskArray(int rmask, int gmask, int bmask)
- {
- int[] colorMaskArray = { rmask, gmask, bmask };
- return colorMaskArray;
- }
-
- public final int getMask(int index)
- {
- return masks[index];
- }
-
- public final int[] getMasks()
- {
- return masks;
- }
-
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- return new SinglePixelPackedSampleModel(transferType, w, h, masks);
- }
-
- public boolean isCompatibleSampleModel(SampleModel sm)
- {
- if (!super.isCompatibleSampleModel(sm)) return false;
- if (!(sm instanceof SinglePixelPackedSampleModel)) return false;
-
- SinglePixelPackedSampleModel sppsm =
- (SinglePixelPackedSampleModel) sm;
- return java.util.Arrays.equals(sppsm.getBitMasks(), masks);
- }
-
- public WritableRaster getAlphaRaster(WritableRaster raster) {
- if (!hasAlpha()) return null;
-
- SampleModel sm = raster.getSampleModel();
- int[] alphaBand = { sm.getNumBands() - 1 };
- SampleModel alphaModel = sm.createSubsetSampleModel(alphaBand);
- DataBuffer buffer = raster.getDataBuffer();
- Point origin = new Point(0, 0);
- return Raster.createWritableRaster(alphaModel, buffer, origin);
- }
-
- public boolean equals(Object obj)
- {
- if (!super.equals(obj)) return false;
- if (!(obj instanceof PackedColorModel)) return false;
-
- PackedColorModel other = (PackedColorModel) obj;
-
- return java.util.Arrays.equals(masks, other.masks);
- }
-}
diff --git a/libjava/java/awt/image/Raster.java b/libjava/java/awt/image/Raster.java
deleted file mode 100644
index 07f9da88068..00000000000
--- a/libjava/java/awt/image/Raster.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.*;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class Raster
-{
- protected SampleModel sampleModel;
- protected DataBuffer dataBuffer;
- protected int minX;
- protected int minY;
- protected int width;
- protected int height;
- protected int sampleModelTranslateX;
- protected int sampleModelTranslateY;
- protected int numBands;
- protected int numDataElements;
- protected Raster parent;
-
- protected Raster(SampleModel sampleModel, Point origin)
- {
- this(sampleModel, sampleModel.createDataBuffer(), origin);
- }
-
- protected Raster(SampleModel sampleModel, DataBuffer dataBuffer,
- Point origin)
- {
- this(sampleModel, dataBuffer,
- new Rectangle(origin.x, origin.y,
- sampleModel.getWidth(), sampleModel.getHeight()),
- origin, null);
- }
-
- protected Raster(SampleModel sampleModel, DataBuffer dataBuffer,
- Rectangle aRegion,
- Point sampleModelTranslate, Raster parent)
- {
- this.sampleModel = sampleModel;
- this.dataBuffer = dataBuffer;
- this.minX = aRegion.x;
- this.minY = aRegion.y;
- this.width = aRegion.width;
- this.height = aRegion.height;
- this.sampleModelTranslateX = sampleModelTranslate.x;
- this.sampleModelTranslateY = sampleModelTranslate.y;
- this.numBands = sampleModel.getNumBands();
- this.numDataElements = sampleModel.getNumDataElements();
- this.parent = parent;
- }
-
- public static WritableRaster createInterleavedRaster(int dataType,
- int w, int h,
- int bands,
- Point location)
- {
- int[] bandOffsets = new int[bands];
- // TODO: Maybe not generate this every time.
- for (int b=0; b<bands; b++) bandOffsets[b] = b;
-
- int scanlineStride = bands*w;
- return createInterleavedRaster(dataType, w, h, scanlineStride, bands,
- bandOffsets, location);
- }
-
- public static WritableRaster createInterleavedRaster(int dataType,
- int w, int h,
- int scanlineStride,
- int pixelStride,
- int[] bandOffsets,
- Point location)
- {
- SampleModel sm = new ComponentSampleModel(dataType,
- w, h,
- pixelStride,
- scanlineStride,
- bandOffsets);
- return createWritableRaster(sm, location);
- }
-
- public static WritableRaster createBandedRaster(int dataType,
- int w, int h, int bands,
- Point location)
- {
- // FIXME: Implement;
- throw new UnsupportedOperationException("not implemented yet");
- }
-
- public static WritableRaster createBandedRaster(int dataType,
- int w, int h,
- int scanlineStride,
- int[] bankIndices,
- int[] bandOffsets,
- Point location)
- {
- // FIXME: Implement;
- throw new UnsupportedOperationException("not implemented yet");
- }
-
- public static WritableRaster createPackedRaster(int dataType,
- int w, int h,
- int[] bandMasks,
- Point location)
- {
- SampleModel sm = new SinglePixelPackedSampleModel(dataType,
- w, h,
- bandMasks);
- return createWritableRaster(sm, location);
- }
-
- public static WritableRaster
- createInterleavedRaster(DataBuffer dataBuffer, int w, int h,
- int scanlineStride, int pixelStride,
- int[] bandOffsets, Point location)
- {
- SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(),
- w, h,
- scanlineStride,
- pixelStride,
- bandOffsets);
- return createWritableRaster(sm, dataBuffer, location);
- }
-
- public static
- WritableRaster createBandedRaster(DataBuffer dataBuffer,
- int w, int h,
- int scanlineStride,
- int[] bankIndices,
- int[] bandOffsets,
- Point location)
- {
- // FIXME: Implement;
- throw new UnsupportedOperationException("not implemented yet");
- }
-
- public static WritableRaster
- createPackedRaster(DataBuffer dataBuffer,
- int w, int h,
- int scanlineStride,
- int[] bandMasks,
- Point location) {
- SampleModel sm =
- new SinglePixelPackedSampleModel(dataBuffer.getDataType(),
- w, h,
- scanlineStride,
- bandMasks);
- return createWritableRaster(sm, dataBuffer, location);
- }
-
- public static Raster createRaster(SampleModel sm, DataBuffer db,
- Point location)
- {
- return new Raster(sm, db, location);
- }
-
- public static WritableRaster createWritableRaster(SampleModel sm,
- Point location)
- {
- return new WritableRaster(sm, location);
- }
-
- public static WritableRaster createWritableRaster(SampleModel sm,
- DataBuffer db,
- Point location)
- {
- return new WritableRaster(sm, db, location);
- }
-
- public Raster getParent()
- {
- return parent;
- }
-
- public final int getSampleModelTranslateX()
- {
- return sampleModelTranslateX;
- }
-
- public final int getSampleModelTranslateY()
- {
- return sampleModelTranslateY;
- }
-
- public WritableRaster createCompatibleWritableRaster()
- {
- return new WritableRaster(getSampleModel(), new Point(minX, minY));
- }
-
- public WritableRaster createCompatibleWritableRaster(int w, int h)
- {
- return createCompatibleWritableRaster(minX, minY, w, h);
- }
-
- public WritableRaster createCompatibleWritableRaster(Rectangle rect)
- {
- return createCompatibleWritableRaster(rect.x, rect.y,
- rect.width, rect.height);
- }
-
- public WritableRaster createCompatibleWritableRaster(int x, int y,
- int w, int h)
- {
- SampleModel sm = getSampleModel().createCompatibleSampleModel(w, h);
- return new WritableRaster(sm, sm.createDataBuffer(),
- new Point(x, y));
- }
-
- public Raster createTranslatedChild(int childMinX, int childMinY) {
- int tcx = sampleModelTranslateX - minX + childMinX;
- int tcy = sampleModelTranslateY - minY + childMinY;
-
- return new Raster(sampleModel, dataBuffer,
- new Rectangle(childMinX, childMinY,
- width, height),
- new Point(tcx, tcy),
- this);
- }
-
- public Raster createChild(int parentX, int parentY, int width,
- int height, int childMinX, int childMinY,
- int[] bandList)
- {
- /* FIXME: Throw RasterFormatException if child bounds extends
- beyond the bounds of this raster. */
-
- SampleModel sm = (bandList == null) ?
- sampleModel :
- sampleModel.createSubsetSampleModel(bandList);
-
- /*
- data origin
- /
- +-------------------------
- |\. __ parent trans
- | \`.
- | \ `. parent origin
- | \ `. /
- | /\ +-------- - -
- |trans\ /<\-- deltaTrans
- |child +-+-\---- - -
- | /|`| \__ parent [x, y]
- |child | |`. \
- |origin| : `.\
- | | / `\
- | : / +
- | child [x, y]
-
- parent_xy - parent_trans = child_xy - child_trans
-
- child_trans = parent_trans + child_xy - parent_xy
- */
-
- return new Raster(sm, dataBuffer,
- new Rectangle(childMinX, childMinY,
- width, height),
- new Point(sampleModelTranslateX+childMinX-parentX,
- sampleModelTranslateY+childMinY-parentY),
- this);
- }
-
- public Rectangle getBounds()
- {
- return new Rectangle(minX, minY, width, height);
- }
-
- public final int getMinX()
- {
- return minX;
- }
-
- public final int getMinY()
- {
- return minY;
- }
-
- public final int getWidth()
- {
- return width;
- }
-
- public final int getHeight()
- {
- return height;
- }
-
- public final int getNumDataElements()
- {
- return numDataElements;
- }
-
- public final int getTransferType()
- {
- return sampleModel.getTransferType();
- }
-
- public DataBuffer getDataBuffer()
- {
- return dataBuffer;
- }
-
- public SampleModel getSampleModel()
- {
- return sampleModel;
- }
-
- public Object getDataElements(int x, int y, Object outData)
- {
- return sampleModel.getDataElements(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- outData, dataBuffer);
- }
-
- public Object getDataElements(int x, int y, int w, int h,
- Object outData)
- {
- return sampleModel.getDataElements(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, outData, dataBuffer);
- }
-
- public int[] getPixel(int x, int y, int[] iArray)
- {
- return sampleModel.getPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- iArray, dataBuffer);
- }
-
- public float[] getPixel(int x, int y, float[] fArray)
- {
- return sampleModel.getPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- fArray, dataBuffer);
- }
-
- public double[] getPixel(int x, int y, double[] dArray)
- {
- return sampleModel.getPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- dArray, dataBuffer);
- }
-
- public int[] getPixels(int x, int y, int w, int h, int[] iArray)
- {
- return sampleModel.getPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, iArray, dataBuffer);
- }
-
- public float[] getPixels(int x, int y, int w, int h,
- float[] fArray)
- {
- return sampleModel.getPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, fArray, dataBuffer);
- }
-
- public double[] getPixels(int x, int y, int w, int h,
- double[] dArray)
- {
- return sampleModel.getPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, dArray, dataBuffer);
- }
-
- public int getSample(int x, int y, int b)
- {
- return sampleModel.getSample(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, dataBuffer);
- }
-
- public float getSampleFloat(int x, int y, int b)
- {
- return sampleModel.getSampleFloat(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, dataBuffer);
- }
-
- public double getSampleDouble(int x, int y, int b)
- {
- return sampleModel.getSampleDouble(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, dataBuffer);
- }
-
- public int[] getSamples(int x, int y, int w, int h, int b,
- int[] iArray)
- {
- return sampleModel.getSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, iArray, dataBuffer);
- }
-
- public float[] getSamples(int x, int y, int w, int h, int b,
- float[] fArray)
- {
- return sampleModel.getSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, fArray, dataBuffer);
- }
-
- public double[] getSamples(int x, int y, int w, int h, int b,
- double[] dArray)
- {
- return sampleModel.getSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, dArray, dataBuffer);
- }
-}
diff --git a/libjava/java/awt/image/RasterOp.java b/libjava/java/awt/image/RasterOp.java
deleted file mode 100644
index efcb65f4a4f..00000000000
--- a/libjava/java/awt/image/RasterOp.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.RenderingHints;
-
-public interface RasterOp {
-
- WritableRaster filter(Raster src, WritableRaster dest);
-
- Rectangle2D getBounds2D(Raster src);
-
- WritableRaster createCompatibleDestRaster(Raster src);
-
- Point2D getPoint2D(Point2D srcPoint, Point2D destPoint);
-
- public RenderingHints getRenderingHints();
-}
-
diff --git a/libjava/java/awt/image/SampleModel.java b/libjava/java/awt/image/SampleModel.java
deleted file mode 100644
index 5840f78d262..00000000000
--- a/libjava/java/awt/image/SampleModel.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public abstract class SampleModel
-{
- /** Width of image described. */
- protected int width;
-
- /** Height of image described. */
- protected int height;
-
- /** Number of bands in the image described. */
- protected int numBands;
-
- /**
- * The DataBuffer type that is used to store the data of the image
- * described.
- */
- protected int dataType;
-
- public SampleModel(int dataType, int w, int h, int numBands)
- {
- if ((w<=0) || (h<=0)) throw new IllegalArgumentException();
-
- // FIXME: How can an int be greater than Integer.MAX_VALUE?
- // FIXME: How do we identify an unsupported data type?
-
- this.dataType = dataType;
- this.width = w;
- this.height = h;
- this.numBands = numBands;
- }
-
- public final int getWidth()
- {
- return width;
- }
-
- public final int getHeight()
- {
- return height;
- }
-
- public final int getNumBands()
- {
- return numBands;
- }
-
- public abstract int getNumDataElements();
-
- public final int getDataType()
- {
- return dataType;
- }
-
- public int getTransferType()
- {
- // FIXME: Is this a reasonable default implementation?
- return dataType;
- }
-
- public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- if (iArray == null) iArray = new int[numBands];
- for (int b=0; b<numBands; b++) iArray[b] = getSample(x, y, b, data);
- return iArray;
- }
-
- /**
- *
- * This method is provided as a faster alternative to getPixel(),
- * that can be used when there is no need to decode the pixel into
- * seperate sample values.
- *
- * @param obj An array to return the pixel data in. If null, an
- * array of the right type and size will be created.
- *
- * @return A single pixel as an array object of a primitive type,
- * based on the transfer type. Eg. if transfer type is
- * DataBuffer.TYPE_USHORT, then a short[] object is returned.
- */
- public abstract Object getDataElements(int x, int y, Object obj,
- DataBuffer data);
-
-
- public Object getDataElements(int x, int y, int w, int h, Object obj,
- DataBuffer data)
- {
- int size = w*h;
- int numDataElements = getNumDataElements();
- int dataSize = numDataElements*size;
-
- if (obj == null)
- {
- switch (getTransferType())
- {
- case DataBuffer.TYPE_BYTE:
- obj = new byte[dataSize];
- break;
- case DataBuffer.TYPE_USHORT:
- obj = new short[dataSize];
- break;
- case DataBuffer.TYPE_INT:
- obj = new int[dataSize];
- break;
- default:
- // Seems like the only sensible thing to do.
- throw new ClassCastException();
- }
- }
- Object pixelData = null;
- int outOffset = 0;
- for (int yy = y; yy<(y+h); yy++)
- {
- for (int xx = x; xx<(x+w); xx++)
- {
- pixelData = getDataElements(xx, yy, pixelData, data);
- System.arraycopy(pixelData, 0, obj, outOffset,
- numDataElements);
- outOffset += numDataElements;
- }
- }
- return obj;
- }
-
- public abstract void setDataElements(int x, int y, Object obj,
- DataBuffer data);
-
- public void setDataElements(int x, int y, int w, int h,
- Object obj, DataBuffer data)
- {
- int size = w*h;
- int numDataElements = getNumDataElements();
- int dataSize = numDataElements*size;
-
- Object pixelData;
- switch (getTransferType())
- {
- case DataBuffer.TYPE_BYTE:
- pixelData = new byte[numDataElements];
- break;
- case DataBuffer.TYPE_USHORT:
- pixelData = new short[numDataElements];
- break;
- case DataBuffer.TYPE_INT:
- pixelData = new int[numDataElements];
- break;
- default:
- // Seems like the only sensible thing to do.
- throw new ClassCastException();
- }
- int inOffset = 0;
-
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- System.arraycopy(obj, inOffset, pixelData, 0,
- numDataElements);
- setDataElements(xx, yy, pixelData, data);
- inOffset += numDataElements;
- }
- }
- }
-
- public float[] getPixel(int x, int y, float[] fArray, DataBuffer data)
- {
- if (fArray == null) fArray = new float[numBands];
-
- for (int b=0; b<numBands; b++)
- {
- fArray[0] = getSampleFloat(x, y, b, data);
- }
- return fArray;
- }
-
- public double[] getPixel(int x, int y, double[] dArray, DataBuffer data) {
- if (dArray == null) dArray = new double[numBands];
- for (int b=0; b<numBands; b++)
- {
- dArray[0] = getSampleDouble(x, y, b, data);
- }
- return dArray;
- }
-
- /* FIXME: Should it return a banded or pixel interleaved array of
- samples? (Assume interleaved.) */
- public int[] getPixels(int x, int y, int w, int h, int[] iArray,
- DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- int[] pixel = null;
- if (iArray == null) iArray = new int[w*h*numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- getPixel(xx, yy, pixel, data);
- System.arraycopy(pixel, 0, iArray, outOffset, numBands);
- outOffset += numBands;
- }
- }
- return iArray;
- }
-
- /* FIXME: Should it return a banded or pixel interleaved array of
- samples? (Assume interleaved.) */
- public float[] getPixels(int x, int y, int w, int h, float[] fArray,
- DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- float[] pixel = null;
- if (fArray == null) fArray = new float[w*h*numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- getPixel(xx, yy, pixel, data);
- System.arraycopy(pixel, 0, fArray, outOffset, numBands);
- outOffset += numBands;
- }
- }
- return fArray;
- }
-
- /* FIXME: Should it return a banded or pixel interleaved array of
- samples? (Assume interleaved.) */
- public double[] getPixels(int x, int y, int w, int h, double[] dArray,
- DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- double[] pixel = null;
- if (dArray == null) dArray = new double[w*h*numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- getPixel(xx, yy, pixel, data);
- System.arraycopy(pixel, 0, dArray, outOffset, numBands);
- outOffset += numBands;
- }
- }
- return dArray;
- }
-
- public abstract int getSample(int x, int y, int b, DataBuffer data);
-
- public float getSampleFloat(int x, int y, int b, DataBuffer data)
- {
- return getSample(x, y, b, data);
- }
-
- public double getSampleDouble(int x, int y, int b, DataBuffer data)
- {
- return getSampleFloat(x, y, b, data);
- }
-
- public int[] getSamples(int x, int y, int w, int h, int b,
- int[] iArray, DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- if (iArray == null) iArray = new int[size];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- iArray[outOffset++] = getSample(xx, yy, b, data);
- }
- }
- return iArray;
- }
-
- public float[] getSamples(int x, int y, int w, int h, int b,
- float[] fArray, DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- if (fArray == null) fArray = new float[size];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- fArray[outOffset++] = getSampleFloat(xx, yy, b, data);
- }
- }
- return fArray;
- }
-
- public double[] getSamples(int x, int y, int w, int h, int b,
- double[] dArray, DataBuffer data)
- {
- int size = w*h;
- int outOffset = 0;
- if (dArray == null) dArray = new double[size];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- dArray[outOffset++] = getSampleDouble(xx, yy, b, data);
- }
- }
- return dArray;
- }
-
- public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- for (int b=0; b<numBands; b++) setSample(x, y, b, iArray[b], data);
- }
-
- public void setPixel(int x, int y, float[] fArray, DataBuffer data)
- {
- for (int b=0; b<numBands; b++) setSample(x, y, b, fArray[b], data);
- }
-
- public void setPixel(int x, int y, double[] dArray, DataBuffer data)
- {
- for (int b=0; b<numBands; b++) setSample(x, y, b, dArray[b], data);
- }
-
- public void setPixels(int x, int y, int w, int h, int[] iArray,
- DataBuffer data)
- {
- int inOffset = 0;
- int[] pixel = new int[numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- System.arraycopy(iArray, inOffset, pixel, 0, numBands);
- setPixel(xx, yy, pixel, data);
- inOffset += numBands;
- }
- }
- }
-
- public void setPixels(int x, int y, int w, int h, float[] fArray,
- DataBuffer data)
- {
- int inOffset = 0;
- float[] pixel = new float[numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- System.arraycopy(fArray, inOffset, pixel, 0, numBands);
- setPixel(xx, yy, pixel, data);
- inOffset += numBands;
- }
- }
- }
-
- public void setPixels(int x, int y, int w, int h, double[] dArray,
- DataBuffer data)
- {
- int inOffset = 0;
- double[] pixel = new double[numBands];
- for (int yy=y; yy<(y+h); yy++)
- {
- for (int xx=x; xx<(x+w); xx++)
- {
- System.arraycopy(dArray, inOffset, pixel, 0, numBands);
- setPixel(xx, yy, pixel, data);
- inOffset += numBands;
- }
- }
- }
-
- public abstract void setSample(int x, int y, int b, int s,
- DataBuffer data);
-
- public void setSample(int x, int y, int b, float s,
- DataBuffer data)
- {
- setSample(x, y, b, (int) s, data);
- }
-
- public void setSample(int x, int y, int b, double s,
- DataBuffer data)
- {
- setSample(x, y, b, (float) s, data);
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- int[] iArray, DataBuffer data)
- {
- int size = w*h;
- int inOffset = 0;
- for (int yy=y; yy<(y+h); yy++)
- for (int xx=x; xx<(x+w); xx++)
- setSample(xx, yy, b, iArray[inOffset++], data);
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- float[] fArray, DataBuffer data)
- {
- int size = w*h;
- int inOffset = 0;
- for (int yy=y; yy<(y+h); yy++)
- for (int xx=x; xx<(x+w); xx++)
- setSample(xx, yy, b, fArray[inOffset++], data);
-
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- double[] dArray, DataBuffer data) {
- int size = w*h;
- int inOffset = 0;
- for (int yy=y; yy<(y+h); yy++)
- for (int xx=x; xx<(x+w); xx++)
- setSample(xx, yy, b, dArray[inOffset++], data);
- }
-
- public abstract SampleModel createCompatibleSampleModel(int w, int h);
-
- public abstract SampleModel createSubsetSampleModel(int[] bands);
-
- public abstract DataBuffer createDataBuffer();
-
- public abstract int[] getSampleSize();
-
- public abstract int getSampleSize(int band);
-}
diff --git a/libjava/java/awt/image/SinglePixelPackedSampleModel.java b/libjava/java/awt/image/SinglePixelPackedSampleModel.java
deleted file mode 100644
index 91979c50347..00000000000
--- a/libjava/java/awt/image/SinglePixelPackedSampleModel.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import gnu.gcj.awt.BitMaskExtent;
-import gnu.gcj.awt.Buffers;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class SinglePixelPackedSampleModel extends SampleModel
-{
- private int scanlineStride;
- private int[] bitMasks;
- private int[] bitOffsets;
- private int[] sampleSize;;
-
- public SinglePixelPackedSampleModel(int dataType, int w, int h,
- int[] bitMasks)
- {
- this(dataType, w, h, w, bitMasks);
- }
-
- public SinglePixelPackedSampleModel(int dataType, int w, int h,
- int scanlineStride, int[] bitMasks)
- {
- super(dataType, w, h, bitMasks.length);
-
- this.scanlineStride = scanlineStride;
- this.bitMasks = bitMasks;
-
- bitOffsets = new int[numBands];
- sampleSize = new int[numBands];
-
- BitMaskExtent extent = new BitMaskExtent();
- for (int b=0; b<numBands; b++)
- {
- extent.setMask(bitMasks[b]);
- sampleSize[b] = extent.bitWidth;
- bitOffsets[b] = extent.leastSignificantBit;
- }
- }
-
- public int getNumDataElements()
- {
- return 1;
- }
-
- public SampleModel createCompatibleSampleModel(int w, int h)
- {
- /* FIXME: We can avoid recalculation of bit offsets and sample
- sizes here by passing these from the current instance to a
- special private constructor. */
- return new SinglePixelPackedSampleModel(dataType, w, h, bitMasks);
- }
-
- public DataBuffer createDataBuffer()
- {
- // Important: use scanlineStride here, not width!
- int size = scanlineStride*height;
- return Buffers.createBuffer(getDataType(), size);
- }
-
- public int[] getSampleSize()
- {
- return sampleSize;
- }
-
- public int getSampleSize(int band)
- {
- return sampleSize[band];
- }
-
- public int getOffset(int x, int y)
- {
- return scanlineStride*y + x;
- }
-
- public int[] getBitOffsets()
- {
- return bitOffsets;
- }
-
- public int[] getBitMasks()
- {
- return bitMasks;
- }
-
- public int getScanlineStride()
- {
- return scanlineStride;
- }
-
- public SampleModel createSubsetSampleModel(int[] bands)
- {
- // FIXME: Is this the right way to interpret bands?
-
- int numBands = bands.length;
-
- int[] bitMasks = new int[numBands];
-
- for (int b=0; b<numBands; b++)
- bitMasks[b] = this.bitMasks[bands[b]];
-
- return new SinglePixelPackedSampleModel(dataType, width, height,
- scanlineStride, bitMasks);
- }
-
- public Object getDataElements(int x, int y, Object obj,
- DataBuffer data)
- {
- int offset = scanlineStride*y + x + data.getOffset();
-
- return Buffers.getData(data, offset, obj,
- 0, // destination offset,
- 1 // length
- );
- }
-
- public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- int offset = scanlineStride*y + x;
- if (iArray == null) iArray = new int[numBands];
- int samples = data.getElem(offset);
-
- for (int b=0; b<numBands; b++)
- iArray[b] = (samples & bitMasks[b]) >>> bitOffsets[b];
-
- return iArray;
- }
-
- public int[] getPixels(int x, int y, int w, int h, int[] iArray,
- DataBuffer data)
- {
- int offset = scanlineStride*y + x;
- if (iArray == null) iArray = new int[numBands*w*h];
- int outOffset = 0;
- for (y=0; y<h; y++)
- {
- int lineOffset = offset;
- for (x=0; x<w; x++)
- {
- int samples = data.getElem(lineOffset++);
- for (int b=0; b<numBands; b++)
- iArray[outOffset++] = (samples & bitMasks[b]) >>> bitOffsets[b];
- }
- offset += scanlineStride;
- }
- return iArray;
- }
-
- public int getSample(int x, int y, int b, DataBuffer data)
- {
- int offset = scanlineStride*y + x;
- int samples = data.getElem(offset);
- return (samples & bitMasks[b]) >>> bitOffsets[b];
- }
-
- public void setDataElements(int x, int y, Object obj, DataBuffer data)
- {
- int offset = scanlineStride*y + x + data.getOffset();
-
- int transferType = getTransferType();
- if (getTransferType() != data.getDataType())
- {
- throw new IllegalArgumentException("transfer type ("+
- getTransferType()+"), "+
- "does not match data "+
- "buffer type (" +
- data.getDataType() +
- ").");
- }
-
- try
- {
- switch (transferType)
- {
- case DataBuffer.TYPE_BYTE:
- {
- DataBufferByte out = (DataBufferByte) data;
- byte[] in = (byte[]) obj;
- out.getData()[offset] = in[0];
- return;
- }
- case DataBuffer.TYPE_USHORT:
- {
- DataBufferUShort out = (DataBufferUShort) data;
- short[] in = (short[]) obj;
- out.getData()[offset] = in[0];
- return;
- }
- case DataBuffer.TYPE_INT:
- {
- DataBufferInt out = (DataBufferInt) data;
- int[] in = (int[]) obj;
- out.getData()[offset] = in[0];
- return;
- }
- // FIXME: Fill in the other possible types.
- default:
- throw new InternalError();
- }
- }
- catch (ArrayIndexOutOfBoundsException aioobe)
- {
- String msg = "While writing data elements" +
- ", x="+x+", y="+y+
- ", width="+width+", height="+height+
- ", scanlineStride="+scanlineStride+
- ", offset="+offset+
- ", data.getSize()="+data.getSize()+
- ", data.getOffset()="+data.getOffset()+
- ": " +
- aioobe;
- throw new ArrayIndexOutOfBoundsException(msg);
- }
- }
-
- public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- {
- int offset = scanlineStride*y + x;
-
- int samples = 0;
- for (int b=0; b<numBands; b++)
- samples |= (iArray[b] << bitOffsets[b]) & bitMasks[b];
-
- data.setElem(offset, samples);
- }
-
- public void setSample(int x, int y, int b, int s, DataBuffer data)
- {
- int offset = scanlineStride*y + x;
- int samples = data.getElem(offset);
- int bitMask = bitMasks[b];
- samples &= ~bitMask;
- samples |= (s << bitOffsets[b]) & bitMask;
- data.setElem(offset, samples);
- }
-}
diff --git a/libjava/java/awt/image/WritableRaster.java b/libjava/java/awt/image/WritableRaster.java
deleted file mode 100644
index 5a44aaec029..00000000000
--- a/libjava/java/awt/image/WritableRaster.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.image;
-
-import java.awt.*;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class WritableRaster extends Raster
-{
- protected WritableRaster(SampleModel sampleModel, Point origin)
- {
- this(sampleModel, sampleModel.createDataBuffer(), origin);
- }
-
- protected WritableRaster(SampleModel sampleModel,
- DataBuffer dataBuffer, Point origin)
- {
- this(sampleModel, dataBuffer,
- new Rectangle(origin.x, origin.y,
- sampleModel.getWidth(), sampleModel.getHeight()),
- origin,
- null);
- }
-
- protected WritableRaster(SampleModel sampleModel,
- DataBuffer dataBuffer,
- Rectangle aRegion,
- Point sampleModelTranslate,
- WritableRaster parent)
- {
- super(sampleModel, dataBuffer, aRegion, sampleModelTranslate,
- parent);
- }
-
- public WritableRaster getWritableParent()
- {
- return (WritableRaster) getParent();
- }
-
- public WritableRaster createWritableTranslatedChild(int childMinX,
- int childMinY)
- {
- // This mirrors the code from the super class
- int tcx = sampleModelTranslateX - minX + childMinX;
- int tcy = sampleModelTranslateY - minY + childMinY;
-
- return new WritableRaster(sampleModel, dataBuffer,
- new Rectangle(childMinX, childMinY,
- width, height),
- new Point(tcx, tcy),
- this);
- }
-
- public WritableRaster createWritableChild(int parentX,
- int parentY,
- int w, int h,
- int childMinX,
- int childMinY,
- int[] bandList)
- {
- // This mirrors the code from the super class
-
- // FIXME: Throw RasterFormatException if child bounds extends
- // beyond the bounds of this raster.
-
- SampleModel sm = (bandList == null) ?
- sampleModel :
- sampleModel.createSubsetSampleModel(bandList);
-
- return new
- WritableRaster(sm, dataBuffer,
- new Rectangle(childMinX, childMinY,
- w, h),
- new Point(sampleModelTranslateX+childMinX-parentX,
- sampleModelTranslateY+childMinY-parentY),
- this);
- }
-
- public void setDataElements(int x, int y, Object inData)
- {
- sampleModel.setDataElements(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- inData, dataBuffer);
- }
-
- public void setDataElements(int x, int y, Raster inRaster)
- {
- Object dataElements = getDataElements(0, 0,
- inRaster.getWidth(),
- inRaster.getHeight(),
- null);
- setDataElements(x, y, dataElements);
- }
-
- public void setDataElements(int x, int y, int w, int h,
- Object inData)
- {
- sampleModel.setDataElements(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, inData, dataBuffer);
- }
-
- public void setRect(Raster srcRaster)
- {
- setRect(srcRaster, 0, 0);
- }
-
- public void setRect(Raster srcRaster, int dx, int dy)
- {
- Rectangle targetUnclipped = new Rectangle(srcRaster.getMinX()+dx,
- srcRaster.getMinY()+dy,
- srcRaster.getWidth(),
- srcRaster.getHeight());
-
- Rectangle target = getBounds().intersection(targetUnclipped);
-
- if (target.isEmpty()) return;
-
- int sx = target.x - dx;
- int sy = target.y - dy;
-
- // FIXME: Do tests on rasters and use get/set data instead.
-
- /* The JDK documentation seems to imply this implementation.
- (the trucation of higher bits), but an implementation using
- get/setDataElements would be more efficient. None of the
- implementations would do anything sensible when the sample
- models don't match.
-
- But this is probably not the place to consider such
- optimizations.*/
-
- int[] pixels = srcRaster.getPixels(sx, sy,
- target.width, target.height,
- (int[]) null);
-
- setPixels(target.x, target.y, target.width, target.height, pixels);
- }
-
- public void setPixel(int x, int y, int[] iArray)
- {
- sampleModel.setPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- iArray, dataBuffer);
- }
-
- public void setPixel(int x, int y, float[] fArray)
- {
- sampleModel.setPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- fArray, dataBuffer);
- }
-
- public void setPixel(int x, int y, double[] dArray)
- {
- sampleModel.setPixel(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- dArray, dataBuffer);
- }
-
- public void setPixels(int x, int y, int w, int h, int[] iArray)
- {
- sampleModel.setPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, iArray, dataBuffer);
- }
-
- public void setPixels(int x, int y, int w, int h, float[] fArray)
- {
- sampleModel.setPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, fArray, dataBuffer);
- }
-
- public void setPixels(int x, int y, int w, int h, double[] dArray)
- {
- sampleModel.setPixels(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, dArray, dataBuffer);
- }
-
- public void setSample(int x, int y, int b, int s)
- {
- sampleModel.setSample(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, s, dataBuffer);
- }
-
- public void setSample(int x, int y, int b, float s)
- {
- sampleModel.setSample(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, s, dataBuffer);
- }
-
- public void setSample(int x, int y, int b, double s)
- {
- sampleModel.setSample(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- b, s, dataBuffer);
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- int[] iArray)
- {
- sampleModel.setSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, iArray, dataBuffer);
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- float[] fArray)
- {
- sampleModel.setSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, fArray, dataBuffer);
- }
-
- public void setSamples(int x, int y, int w, int h, int b,
- double[] dArray)
- {
- sampleModel.setSamples(x-sampleModelTranslateX,
- y-sampleModelTranslateY,
- w, h, b, dArray, dataBuffer);
- }
-}
diff --git a/libjava/java/awt/peer/ButtonPeer.java b/libjava/java/awt/peer/ButtonPeer.java
deleted file mode 100644
index d4d8034bd13..00000000000
--- a/libjava/java/awt/peer/ButtonPeer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface ButtonPeer extends ComponentPeer
-{
- void setLabel(String label);
-}
-
diff --git a/libjava/java/awt/peer/CanvasPeer.java b/libjava/java/awt/peer/CanvasPeer.java
deleted file mode 100644
index 67c405504bb..00000000000
--- a/libjava/java/awt/peer/CanvasPeer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface CanvasPeer extends ComponentPeer
-{
-}
diff --git a/libjava/java/awt/peer/CheckboxMenuItemPeer.java b/libjava/java/awt/peer/CheckboxMenuItemPeer.java
deleted file mode 100644
index 42c6c8f31cd..00000000000
--- a/libjava/java/awt/peer/CheckboxMenuItemPeer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface CheckboxMenuItemPeer extends MenuItemPeer
-{
- void setState(boolean state);
-}
-
diff --git a/libjava/java/awt/peer/CheckboxPeer.java b/libjava/java/awt/peer/CheckboxPeer.java
deleted file mode 100644
index b27b2cf1fc6..00000000000
--- a/libjava/java/awt/peer/CheckboxPeer.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface CheckboxPeer extends ComponentPeer
-{
- void setCheckboxGroup(java.awt.CheckboxGroup group);
- void setLabel(String label);
- void setState(boolean state);
-}
diff --git a/libjava/java/awt/peer/ChoicePeer.java b/libjava/java/awt/peer/ChoicePeer.java
deleted file mode 100644
index f1006151245..00000000000
--- a/libjava/java/awt/peer/ChoicePeer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface ChoicePeer extends ComponentPeer
-{
- void add(String item, int index);
- void addItem(String item, int index);
- void remove(int index);
- void select(int index);
-}
-
diff --git a/libjava/java/awt/peer/ComponentPeer.java b/libjava/java/awt/peer/ComponentPeer.java
deleted file mode 100644
index 12e4749fbaf..00000000000
--- a/libjava/java/awt/peer/ComponentPeer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.*;
-import java.awt.image.*;
-
-public interface ComponentPeer
-{
- int checkImage(Image img, int width, int height, ImageObserver o);
- Image createImage(ImageProducer prod);
- Image createImage(int width, int height);
- void disable();
- void dispose();
- void enable();
-
- /**
- * Get the graphics configuration of the component. The color model
- * of the component can be derived from the configuration.
- */
- GraphicsConfiguration getGraphicsConfiguration();
-
- FontMetrics getFontMetrics(Font f);
- Graphics getGraphics();
- Point getLocationOnScreen();
- Dimension getMinimumSize();
- Dimension getPreferredSize();
- Toolkit getToolkit();
- void handleEvent(AWTEvent e);
- void hide();
- boolean isFocusTraversable();
- Dimension minimumSize();
- Dimension preferredSize();
- void paint(Graphics graphics);
- boolean prepareImage(Image img, int width, int height, ImageObserver o);
- void print(Graphics graphics);
- void repaint(long tm, int x, int y, int width, int height);
- void requestFocus();
- void reshape(int x, int y, int width, int height);
- void setBackground(Color color);
- void setBounds(int x, int y, int width, int height);
- void setCursor(Cursor cursor);
- void setEnabled(boolean enabled);
- void setEventMask(long eventMask);
- void setFont(Font font);
- void setForeground(Color color);
- void setVisible(boolean visible);
- void show();
-}
diff --git a/libjava/java/awt/peer/ContainerPeer.java b/libjava/java/awt/peer/ContainerPeer.java
deleted file mode 100644
index 8f1235cb6db..00000000000
--- a/libjava/java/awt/peer/ContainerPeer.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Insets;
-
-public interface ContainerPeer extends ComponentPeer
-{
- Insets insets();
- Insets getInsets();
- void beginValidate();
- void endValidate();
-}
diff --git a/libjava/java/awt/peer/DialogPeer.java b/libjava/java/awt/peer/DialogPeer.java
deleted file mode 100644
index 009410f0e6a..00000000000
--- a/libjava/java/awt/peer/DialogPeer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface DialogPeer extends WindowPeer
-{
- void setResizable(boolean resizeable);
- void setTitle(String title);
-}
diff --git a/libjava/java/awt/peer/FileDialogPeer.java b/libjava/java/awt/peer/FileDialogPeer.java
deleted file mode 100644
index c378f1059f3..00000000000
--- a/libjava/java/awt/peer/FileDialogPeer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.io.FilenameFilter;
-
-public interface FileDialogPeer extends DialogPeer
-{
- void setDirectory(String dir);
- void setFile(String file);
- void setFilenameFilter(FilenameFilter filter);
-}
diff --git a/libjava/java/awt/peer/FontPeer.java b/libjava/java/awt/peer/FontPeer.java
deleted file mode 100644
index 2a65a38f574..00000000000
--- a/libjava/java/awt/peer/FontPeer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface FontPeer
-{
-}
diff --git a/libjava/java/awt/peer/FramePeer.java b/libjava/java/awt/peer/FramePeer.java
deleted file mode 100644
index c47b0f5e7c4..00000000000
--- a/libjava/java/awt/peer/FramePeer.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Image;
-import java.awt.MenuBar;
-
-public interface FramePeer extends WindowPeer
-{
- void setIconImage(Image image);
- void setMenuBar(MenuBar mb);
- void setResizable(boolean resizable);
- void setTitle(String title);
-}
diff --git a/libjava/java/awt/peer/LabelPeer.java b/libjava/java/awt/peer/LabelPeer.java
deleted file mode 100644
index 4d32b799090..00000000000
--- a/libjava/java/awt/peer/LabelPeer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface LabelPeer extends ComponentPeer
-{
- void setAlignment(int alignment);
- void setText(String text);
-}
diff --git a/libjava/java/awt/peer/LightweightPeer.java b/libjava/java/awt/peer/LightweightPeer.java
deleted file mode 100644
index af3c1321eef..00000000000
--- a/libjava/java/awt/peer/LightweightPeer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface LightweightPeer extends ComponentPeer
-{
-}
diff --git a/libjava/java/awt/peer/ListPeer.java b/libjava/java/awt/peer/ListPeer.java
deleted file mode 100644
index a334e380506..00000000000
--- a/libjava/java/awt/peer/ListPeer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Dimension;
-
-public interface ListPeer extends ComponentPeer
-{
- void add(String item, int index);
- void addItem(String item, int index);
- void clear();
- void delItems(int start_index, int end_index);
- void deselect(int index);
- int[] getSelectedIndexes();
- void makeVisible(int index);
- Dimension minimumSize(int size);
- Dimension preferredSize(int size);
- void removeAll();
- void select(int index);
- void setMultipleMode(boolean multipleMode);
- void setMultipleSelections(boolean multipleSelections);
-}
diff --git a/libjava/java/awt/peer/MenuBarPeer.java b/libjava/java/awt/peer/MenuBarPeer.java
deleted file mode 100644
index e660ba26c5c..00000000000
--- a/libjava/java/awt/peer/MenuBarPeer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Menu;
-
-public interface MenuBarPeer extends MenuComponentPeer
-{
- void addHelpMenu(Menu menu);
- void addMenu(Menu menu);
- void delMenu(int index);
-}
diff --git a/libjava/java/awt/peer/MenuComponentPeer.java b/libjava/java/awt/peer/MenuComponentPeer.java
deleted file mode 100644
index 080f9ea771c..00000000000
--- a/libjava/java/awt/peer/MenuComponentPeer.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface MenuComponentPeer
-{
- void dispose();
-}
diff --git a/libjava/java/awt/peer/MenuItemPeer.java b/libjava/java/awt/peer/MenuItemPeer.java
deleted file mode 100644
index 555a38b25df..00000000000
--- a/libjava/java/awt/peer/MenuItemPeer.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface MenuItemPeer extends MenuComponentPeer
-{
- void disable();
- void enable();
- void setEnabled(boolean enabled);
- void setLabel(String text);
-}
diff --git a/libjava/java/awt/peer/MenuPeer.java b/libjava/java/awt/peer/MenuPeer.java
deleted file mode 100644
index eca98dc4335..00000000000
--- a/libjava/java/awt/peer/MenuPeer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.MenuItem;
-
-public interface MenuPeer extends MenuItemPeer
-{
- void addItem(MenuItem item);
- void addSeparator();
- void delItem(int index);
-}
diff --git a/libjava/java/awt/peer/PanelPeer.java b/libjava/java/awt/peer/PanelPeer.java
deleted file mode 100644
index 13b0e903c57..00000000000
--- a/libjava/java/awt/peer/PanelPeer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface PanelPeer extends ContainerPeer
-{
-}
diff --git a/libjava/java/awt/peer/PopupMenuPeer.java b/libjava/java/awt/peer/PopupMenuPeer.java
deleted file mode 100644
index e0b398077c1..00000000000
--- a/libjava/java/awt/peer/PopupMenuPeer.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Event;
-
-public interface PopupMenuPeer extends MenuPeer
-{
- void show(Event e);
-}
diff --git a/libjava/java/awt/peer/ScrollPanePeer.java b/libjava/java/awt/peer/ScrollPanePeer.java
deleted file mode 100644
index fe300e423c8..00000000000
--- a/libjava/java/awt/peer/ScrollPanePeer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Adjustable;
-
-public interface ScrollPanePeer extends ContainerPeer
-{
- void childResized(int width, int height);
- int getHScrollbarHeight();
- int getVScrollbarWidth();
- void setScrollPosition(int x, int y);
- void setUnitIncrement(Adjustable adj, int increment);
- void setValue(Adjustable adj, int value);
-}
diff --git a/libjava/java/awt/peer/ScrollbarPeer.java b/libjava/java/awt/peer/ScrollbarPeer.java
deleted file mode 100644
index 3981c22b09d..00000000000
--- a/libjava/java/awt/peer/ScrollbarPeer.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface ScrollbarPeer extends ComponentPeer
-{
- void setLineIncrement(int increment);
- void setPageIncrement(int increment);
- void setValues(int value, int visible, int minimum, int maximum);
-}
diff --git a/libjava/java/awt/peer/TextAreaPeer.java b/libjava/java/awt/peer/TextAreaPeer.java
deleted file mode 100644
index ce5a294ab86..00000000000
--- a/libjava/java/awt/peer/TextAreaPeer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Dimension;
-
-public interface TextAreaPeer extends TextComponentPeer
-{
- Dimension getMinimumSize(int rows, int columns);
- Dimension getPreferredSize(int rows, int columns);
- void insert(String text, int pos);
- void insertText(String text, int pos);
- Dimension minimumSize(int rows, int cols);
- Dimension preferredSize(int rows, int cols);
- void replaceRange(String text, int start, int end);
- void replaceText(String text, int start, int end);
-}
diff --git a/libjava/java/awt/peer/TextComponentPeer.java b/libjava/java/awt/peer/TextComponentPeer.java
deleted file mode 100644
index ba4ce1d4df0..00000000000
--- a/libjava/java/awt/peer/TextComponentPeer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface TextComponentPeer extends ComponentPeer
-{
- int getCaretPosition();
- int getSelectionEnd();
- int getSelectionStart();
- String getText();
- void select(int start, int end);
- void setCaretPosition(int pos);
- void setEditable(boolean editable);
- void setText(String text);
-}
diff --git a/libjava/java/awt/peer/TextFieldPeer.java b/libjava/java/awt/peer/TextFieldPeer.java
deleted file mode 100644
index cf4d6754179..00000000000
--- a/libjava/java/awt/peer/TextFieldPeer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-import java.awt.Dimension;
-
-public interface TextFieldPeer extends TextComponentPeer
-{
- Dimension getMinimumSize(int columns);
- Dimension getPreferredSize(int columns);
- Dimension minimumSize(int columns);
- Dimension preferredSize(int columns);
- void setEchoChar(char echo);
- void setEchoCharacter(char echo);
-}
diff --git a/libjava/java/awt/peer/WindowPeer.java b/libjava/java/awt/peer/WindowPeer.java
deleted file mode 100644
index d8058056973..00000000000
--- a/libjava/java/awt/peer/WindowPeer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.awt.peer;
-
-public interface WindowPeer extends ContainerPeer
-{
- void toBack();
- void toFront();
-}
diff --git a/libjava/java/beans/BeanDescriptor.java b/libjava/java/beans/BeanDescriptor.java
deleted file mode 100644
index b96a94f5687..00000000000
--- a/libjava/java/beans/BeanDescriptor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* java.beans.BeanDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.util.*;
-
-/**
- ** BeanDescriptor describes general information about a Bean, plus
- ** stores the Bean's Class and it's customizer's Class.<P>
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- **/
-
-public class BeanDescriptor extends FeatureDescriptor {
- Class beanClass;
- Class customizerClass;
-
- /** Create a new BeanDescriptor with the given beanClass and
- ** no customizer class.
- ** @param beanClass the class of the Bean.
- **/
- public BeanDescriptor(Class beanClass) {
- this(beanClass,null);
- }
-
- /** Create a new BeanDescriptor with the given bean class and
- ** customizer class.
- ** @param beanClass the class of the Bean.
- ** @param customizerClass the class of the Bean's Customizer.
- **/
- public BeanDescriptor(Class beanClass, Class customizerClass) {
- this.beanClass = beanClass;
- this.customizerClass = customizerClass;
- }
-
- /** Get the Bean's class. **/
- public Class getBeanClass() {
- return beanClass;
- }
-
- /** Get the Bean's customizer's class. **/
- public Class getCustomizerClass() {
- return customizerClass;
- }
-}
diff --git a/libjava/java/beans/BeanInfo.java b/libjava/java/beans/BeanInfo.java
deleted file mode 100644
index 3fcc527e0fd..00000000000
--- a/libjava/java/beans/BeanInfo.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/* java.beans.BeanInfo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** BeanInfo can be implemented in order to provide explicit information to the Introspector.
- **
- ** When you write a BeanInfo class, you implement this interface
- ** and provide explicit information by returning a non-null
- ** value from the appropriate method. If you wish the
- ** Introspector to determine certain information in the normal
- ** way, just return null (or in the case of int methods, return
- ** -1). There is a class called SimpleBeanInfo which returns
- ** null from all methods, which you may extend and only
- ** override the methods you wish to override.<P>
- **
- ** When you have written the class, give it the name
- ** <CODE>&lt;Bean Class Name&gt;BeanInfo</CODE> and place it in
- ** the same package as the Bean, or in the bean info search path
- ** (see Introspector for information on search paths).<P>
- **
- ** A simple note about the way the Introspector interacts with
- ** BeanInfo. Introspectors look at a Bean class and determine
- ** if there is a BeanInfo class with it. If there is not a
- ** BeanInfo class, it will behave as if the BeanInfo class
- ** provided was a SimpleBeanInfo class (i.e. it will determine
- ** all information automatically).<P>If there is a BeanInfo
- ** class, then any methods that do *not* return null are
- ** regarded as providing definitive information about the class
- ** and all of its superclasses for those information types.
- ** Even if a parent BeanInfo class explicitly returns that
- ** information, it will not be used.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 28 Jul 1998
- **/
-
-public interface BeanInfo {
- /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/
- public static int ICON_COLOR_16x16 = 1;
- /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/
- public static int ICON_COLOR_32x32 = 2;
- /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/
- public static int ICON_MONO_16x16 = 3;
- /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/
- public static int ICON_MONO_32x32 = 4;
-
- /** Get the general description of this Bean type.
- ** @return the BeanDescriptor for the Bean, or null if
- ** the BeanDescriptor should be obtained by
- ** Introspection.
- **/
- public abstract BeanDescriptor getBeanDescriptor();
-
- /** Get the events this Bean type fires.
- ** @return the EventDescriptors representing events this
- ** Bean fires. Returns <CODE>null</CODE> if the
- ** events are to be acquired by Introspection.
- **/
- public abstract EventSetDescriptor[] getEventSetDescriptors();
-
- /** Get the "default" event, basically the one a RAD tool
- ** user is most likely to select.
- ** @return the index into the getEventSetDescriptors()
- ** that the user is most likely to use. Returns
- ** <CODE>-1</CODE> if there is no default event.
- **/
- public abstract int getDefaultEventIndex();
-
- /** Get the properties (get/set method pairs) this Bean
- ** type supports.
- ** @return the PropertyDescriptors representing the
- ** properties this Bean type supports.
- ** Returns <CODE>null</CODE> if the properties
- ** are to be obtained by Introspection.
- **/
- public abstract PropertyDescriptor[] getPropertyDescriptors();
-
- /** Get the "default" property, basically the one a RAD
- ** tool user is most likely to select.
- ** @return the index into the getPropertyDescriptors()
- ** that the user is most likely to use. Returns
- ** <CODE>-1</CODE> if there is no default event.
- **/
- public abstract int getDefaultPropertyIndex();
-
- /** Get the methods this Bean type supports.
- ** @return the MethodDescriptors representing the
- ** methods this Bean type supports. Returns
- ** <CODE>null</CODE> if the methods are to be
- ** obtained by Introspection.
- **/
- public abstract MethodDescriptor[] getMethodDescriptors();
-
- /** Get additional BeanInfos representing this Bean.
- ** In this version of JavaBeans, this method is used so
- ** that space and time can be saved by reading a BeanInfo
- ** for each class in the hierarchy (super, super(super),
- ** and so on).<P>
- **
- ** The order of precedence when two pieces of BeanInfo
- ** conflict (such as two PropertyDescriptors that have
- ** the same name), in order from highest precedence to
- ** lowest, is:
- ** <OL>
- ** <LI>This BeanInfo object.</LI>
- ** <LI><CODE>getAdditionalBeanInfo()[getAdditionalBeanInfo().length]</CODE></LI>
- ** <LI> ... </LI>
- ** <LI><CODE>getAdditionalBeanInfo()[1]</CODE></LI>
- ** <LI><CODE>getAdditionalBeanInfo()[0]</CODE></LI>
- ** </OL><P>
- **
- ** <STRONG>Spec Note:</STRONG> It is possible that
- ** returning <CODE>null</CODE> from this method could
- ** stop Introspection in its tracks, but it is unclear
- ** from the spec whether this is the case.
- **
- ** @return additional BeanInfos representing this Bean.
- ** <CODE>null</CODE> may be returned (see Spec
- ** Note, above).
- **/
- public abstract BeanInfo[] getAdditionalBeanInfo();
-
- /** Get a visual icon for this Bean.
- ** A Bean does not have to support icons, and if it does
- ** support icons, it does not have to support every single
- ** type. Sun recommends that if you only support one
- ** type, you support 16x16 color. Sun also notes that you
- ** should try to use a type (like GIF) that allows for
- ** transparent pixels, so that the background of the RAD
- ** tool can show through.<P>
- **
- ** <STRONG>Spec Note:</STRONG> If you do not support the
- ** type of icon that is being asked for, but you do
- ** support another type, it is unclear whether you should
- ** return the other type or not. I would presume not.
- **
- ** @param iconType the type of icon to get (see the
- ** ICON_* constants in this class).
- ** @return the icon, or null if that type of icon is
- ** unsupported by this Bean.
- **/
- public abstract java.awt.Image getIcon(int iconType);
-}
diff --git a/libjava/java/beans/Beans.java b/libjava/java/beans/Beans.java
deleted file mode 100644
index 08e5623cf4f..00000000000
--- a/libjava/java/beans/Beans.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/* java.beans.Beans
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.io.*;
-// import java.applet.*;
-import gnu.java.io.*;
-
-/**
- * <code>Beans</code> provides some helper methods that allow the basic operations of Bean-ness.
- *
- * @author John Keiser
- * @since JDK1.1
- * @version 1.1.0, 29 Jul 1998
- *
- */
-public class Beans {
- static boolean designTime = false;
- static boolean guiAvailable = true;
-
-
- /**
- * Once again, we have a java.beans class with only
- * static methods that can be instantiated. When
- * will the madness end? :)
- */
- public Beans() {
- }
-
- /**
- * Allows you to instantiate a Bean. This method takes
- * a ClassLoader from which to read the Bean and the
- * name of the Bean.<P>
- *
- * The Bean name should be a dotted name, like a class.
- * It can represent several things. Beans will search
- * for the Bean using the name like this:<P>
- * <OL>
- * <LI>Searches for a serialized instance of the Bean
- * using getResource(), mangling the Bean name by
- * replacing the dots with slashes and appending .ser
- * (for example, gnu.beans.BlahDeBlah would cause
- * Beans to search for gnu/beans/BlahDeBlah.ser using
- * getResource()).</LI>
- * <LI>Searches for the Bean class using the beanName,
- * and then instantiates it with the no-arg constructor.
- * At that point, if it is an Applet, it provides it
- * with AppletContext and AppletStub, and then calls
- * init().</LI>
- * </OL>
- * @param cl the ClassLoader to use, or <CODE>null</CODE>
- * to use the default ClassLoader.
- * @param beanName the name of the Bean.
- * @return the Bean.
- * @XXX
- */
- public static Object instantiate(ClassLoader cl, String beanName) throws IOException, ClassNotFoundException {
- Object bean;
-
- InputStream serStream;
- if(cl == null) {
- serStream = ClassLoader.getSystemResourceAsStream(beanName.replace('.','/')+".ser");
- } else {
- serStream = cl.getResourceAsStream(beanName.replace('.','/')+".ser");
- }
- if(serStream != null) {
- if(cl == null) {
- ObjectInputStream ois = new ObjectInputStream(serStream);
- bean = ois.readObject();
- } else {
- ClassLoaderObjectInputStream ois = new ClassLoaderObjectInputStream(serStream, cl);
- bean = ois.readObject();
- }
- } else if(cl == null) {
- Class beanClass = Class.forName(beanName);
- try {
- bean = beanClass.newInstance();
- } catch(IllegalAccessException E) {
- bean = null;
- } catch(InstantiationException E) {
- bean = null;
- }
- } else {
- Class beanClass = cl.loadClass(beanName);
- try {
- bean = beanClass.newInstance();
- } catch(IllegalAccessException E) {
- bean = null;
- } catch(InstantiationException E) {
- bean = null;
- }
- }
-
-/* FIXME - Turned off since java.applet doesn't exist for libgcj.
- * FIXME if(bean instanceof Applet) {
- * FIXME Applet a = (Applet)bean;
- * FIXME //a.setAppletContext(???);
- * FIXME //a.setStub(???);
- * FIXME if(serStream == null) {
- * FIXME a.init();
- * FIXME }
- * FIXME }
- * FIXME ********************************************************/
-
- return bean;
- }
-
- /**
- * Get the Bean as a different class type.
- * This should be used instead of casting to get a new
- * type view of a Bean, because in the future there may
- * be new types of Bean, even Beans spanning multiple
- * Objects.
- * @param bean the Bean to cast.
- * @param newClass the Class to cast it to.
- * @return the Bean as a new view, or if the operation
- * could not be performed, the Bean itself.
- */
- public static Object getInstanceOf(Object bean, Class newClass) {
- return bean;
- }
-
- /**
- * Determine whether the Bean can be cast to a different
- * class type.
- * This should be used instead of instanceof to determine
- * a Bean's castability, because in the future there may
- * be new types of Bean, even Beans spanning multiple
- * Objects.
- * @param bean the Bean to cast.
- * @param newClass the Class to cast it to.
- * @return whether the Bean can be cast to the class type
- * in question.
- */
- public static boolean isInstanceOf(Object bean, Class newBeanClass) {
- return newBeanClass.isInstance(bean);
- }
-
- /**
- * Find out whether the GUI is available to use.
- * Defaults to true.
- * @return whether the GUI is available to use.
- */
- public static boolean isGuiAvailable() {
- return guiAvailable;
- }
-
- /**
- * Find out whether it is design time. Design time means
- * we are in a RAD tool.
- * Defaults to false.
- * @return whether it is design time.
- */
- public static boolean isDesignTime() {
- return designTime;
- }
-
- /**
- * Set whether the GUI is available to use.
- * @param guiAvailable whether the GUI is available to use.
- */
- public static void setGuiAvailable(boolean guiAvailable) throws SecurityException {
- Beans.guiAvailable = guiAvailable;
- }
-
- /**
- * Set whether it is design time. Design time means we
- * are in a RAD tool.
- * @param designTime whether it is design time.
- */
- public static void setDesignTime(boolean designTime) throws SecurityException {
- Beans.designTime = designTime;
- }
-}
diff --git a/libjava/java/beans/Customizer.java b/libjava/java/beans/Customizer.java
deleted file mode 100644
index 1fecd4f9a77..00000000000
--- a/libjava/java/beans/Customizer.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* java.beans.Customizer
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** You may explicitly provide a Customizer for your Bean
- ** class, which allows you complete control of the editing
- ** of the Bean.<P>
- **
- ** A Customizer is meant to be embedded in an RAD tool,
- ** and thus must be a descendant of <CODE>java.awt.Component</CODE>.<P>
- **
- ** It must also have a constructor with no arguments. This
- ** is the constructor that will be called by the RAD tool to
- ** instantiate the Customizer.<P>
- **
- ** Over its lifetime, an instance of a Customizer will only
- ** customize one single Bean. A new instance of the
- ** Customizer will be instantiated to edit any other Beans.<P>
- **
- ** The Customizer is responsible for notifying its
- ** PropertyChangeListeners of any changes that are made,
- ** according to the rules of PropertyChangeListeners (i.e.
- ** notify the clients <EM>after</EM> the property has
- ** changed).
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- ** @see java.beans.BeanDescriptor.getCustomizerClass()
- **/
-
-public interface Customizer {
- /** Set the object to Customize. This will always be a
- ** Bean that had a BeanDescriptor indicating this
- ** Customizer.
- ** @param bean the Bean to customize.
- **/
- public abstract void setObject(Object bean);
-
- /** Add a PropertyChangeListener.
- ** @param l the PropertyChangeListener to add.
- **/
- public abstract void addPropertyChangeListener(PropertyChangeListener l);
-
- /** Remove a PropertyChangeListener.
- ** @param l the PropertyChangeListener to remove.
- **/
- public abstract void removePropertyChangeListener(PropertyChangeListener l);
-}
diff --git a/libjava/java/beans/DesignMode.java b/libjava/java/beans/DesignMode.java
deleted file mode 100644
index b7782f99788..00000000000
--- a/libjava/java/beans/DesignMode.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* java.beans.DesignMode
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- * <code>BeanContextChild</code> implementors implement this to get information about whether they are in a design time or runtime environment.
- * The reason this is restricted to <code>BeanContextChild</code>ren is that
- * only things in the <code>BeanContext</code> hierarchy are given this
- * information in the first place.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContextChild
- */
-
-public interface DesignMode {
- /**
- * Use this name when firing <code>PropertyChangeEvent</code>s from your Bean.
- * @fixme Check whether PROPERTYNAME is set to same value as Sun.
- */
- public static final String PROPERTYNAME = "designTime";
-
- /**
- * The environment will call this method on your
- * <code>BeanContextChild</code> when it is registered in a parent
- * <code>BeanContext</code> or when behavior needs to switch from
- * design time to runtime behavior (or vice versa).
- * <P>
- *
- * <code>BeanContext</code>s are required to fire
- * <code>PropertyChangeEvent</code>s when properties change.
- * <code>designTime</code> is a property, and therefore when you
- * implement <code>setDesignTime()</code>, you need to fire a
- * <code>PropertyChangeEvent</code> with the old value, the new
- * value and using <code>PROPERTYNAME</code> as the property name.
- *
- * @param designTime the new value of design time,
- * <code>true</code> if it is design time,
- * <code>false</code> if it is runtime.
- *
- * @fixme I'm frankly not really sure whether it's the case that
- * the BeanContext can <em>change</em> the status of the Bean from
- * design time to runtime. But it appears that it may be so.
- *
- * @see java.util.PropertyChangeEvent
- * @see java.beans.beancontext.BeanContext
- * @see #PROPERTYNAME
- */
- public void setDesignTime(boolean designTime);
-
- /**
- * This method should tell whether it is design time or runtime.
- * @return <code>true</code> if design time, <code>false</code> if
- * runtime.
- */
- public boolean isDesignTime();
-}
diff --git a/libjava/java/beans/EventSetDescriptor.java b/libjava/java/beans/EventSetDescriptor.java
deleted file mode 100644
index c0840fe4b9e..00000000000
--- a/libjava/java/beans/EventSetDescriptor.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/* java.beans.EventSetDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.util.*;
-import java.lang.reflect.*;
-import gnu.java.lang.*;
-
-/**
- ** EventSetDescriptor describes the hookup between an event source
- ** class and an event listener class.
- **
- ** EventSets have several attributes: the listener class, the events
- ** that can be fired to the listener (methods in the listener class), and
- ** an add and remove listener method from the event firer's class.<P>
- **
- ** The methods have these constraints on them:<P>
- ** <UL>
- ** <LI>event firing methods: must have <CODE>void</CODE> return value. Any
- ** parameters and exceptions are allowed. May be public, protected or
- ** package-protected. (Don't ask me why that is, I'm just following the spec.
- ** The only place it is even mentioned is in the Java Beans white paper, and
- ** there it is only implied.)</LI>
- ** <LI>add listener method: must have <CODE>void</CODE> return value. Must
- ** take exactly one argument, of the listener class's type. May fire either
- ** zero exceptions, or one exception of type <CODE>java.util.TooManyListenersException</CODE>.
- ** Must be public.</LI>
- ** <LI>remove listener method: must have <CODE>void</CODE> return value.
- ** Must take exactly one argument, of the listener class's type. May not
- ** fire any exceptions. Must be public.</LI>
- ** </UL>
- **
- ** A final constraint is that event listener classes must extend from EventListener.<P>
- **
- ** There are also various design patterns associated with some of the methods
- ** of construction. Those are explained in more detail in the appropriate
- ** constructors.<P>
- **
- ** <STRONG>Documentation Convention:</STRONG> for proper
- ** Internalization of Beans inside an RAD tool, sometimes there
- ** are two names for a property or method: a programmatic, or
- ** locale-independent name, which can be used anywhere, and a
- ** localized, display name, for ease of use. In the
- ** documentation I will specify different String values as
- ** either <EM>programmatic</EM> or <EM>localized</EM> to
- ** make this distinction clear.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- **/
-
-public class EventSetDescriptor extends FeatureDescriptor {
- private Method addListenerMethod;
- private Method removeListenerMethod;
- private Class listenerType;
- private MethodDescriptor[] listenerMethodDescriptors;
- private Method[] listenerMethods;
-
- private boolean unicast;
- private boolean inDefaultEventSet = true;
-
- /** Create a new EventSetDescriptor.
- ** This version of the constructor enforces the rules imposed on the methods
- ** described at the top of this class, as well as searching for:<P>
- ** <OL>
- ** <LI>The event-firing method must be non-private with signature
- ** <CODE>void &lt;listenerMethodName&gt;(&lt;eventSetName&gt;Event)</CODE>
- ** (where <CODE>&lt;eventSetName&gt;</CODE> has its first character capitalized
- ** by the constructor and the Event is a descendant of
- ** <CODE>java.util.EventObject</CODE>) in class <CODE>listenerType</CODE>
- ** (any exceptions may be thrown).
- ** <B>Implementation note:</B> Note that there could conceivably be multiple
- ** methods with this type of signature (example: java.util.MouseEvent vs.
- ** my.very.own.MouseEvent). In this implementation, all methods fitting the
- ** description will be put into the <CODE>EventSetDescriptor</CODE>, even
- ** though the spec says only one should be chosen (they probably weren't thinking as
- ** pathologically as I was). I don't like arbitrarily choosing things.
- ** If your class has only one such signature, as most do, you'll have no problems.</LI>
- ** <LI>The add and remove methods must be public and named
- ** <CODE>void add&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</CODE> and
- ** <CODE>void remove&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</CODE> in
- ** in class <CODE>eventSourceClass</CODE>, where
- ** <CODE>&lt;eventSetName&gt;</CODE> will have its first letter capitalized.
- ** Standard exception rules (see class description) apply.</LI>
- ** </OL>
- ** @param eventSourceClass the class containing the add/remove listener methods.
- ** @param eventSetName the programmatic name of the event set, generally starting
- ** with a lowercase letter (i.e. fooManChu instead of FooManChu). This will be used
- ** to generate the name of the event object as well as the names of the add and
- ** remove methods.
- ** @param listenerType the class containing the event firing method.
- ** @param listenerMethodName the name of the event firing method.
- ** @exception IntrospectionException if listenerType is not an EventListener,
- ** or if methods are not found or are invalid.
- **/
- public EventSetDescriptor(Class eventSourceClass,
- String eventSetName,
- Class listenerType,
- String listenerMethodName) throws IntrospectionException {
- setName(eventSetName);
- if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
- throw new IntrospectionException("Listener type is not an EventListener.");
- }
-
- String[] names = new String[1];
- names[0] = listenerMethodName;
-
- try {
- eventSetName = Character.toUpperCase(eventSetName.charAt(0)) + eventSetName.substring(1);
- } catch(StringIndexOutOfBoundsException e) {
- eventSetName = "";
- }
-
- findMethods(eventSourceClass,listenerType,names,"add"+eventSetName+"Listener","remove"+eventSetName+"Listener",eventSetName+"Event");
- this.listenerType = listenerType;
- checkAddListenerUnicast();
- if(this.removeListenerMethod.getExceptionTypes().length > 0) {
- throw new IntrospectionException("Listener remove method throws exceptions.");
- }
- }
-
- /** Create a new EventSetDescriptor.
- ** This form of the constructor allows you to specify the names of the methods and adds
- ** no new constraints on top of the rules already described at the top of the class.<P>
- **
- ** @param eventSourceClass the class containing the add and remove listener methods.
- ** @param eventSetName the programmatic name of the event set, generally starting
- ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
- ** @param listenerType the class containing the event firing methods.
- ** @param listenerMethodNames the names of the even firing methods.
- ** @param addListenerMethodName the name of the add listener method.
- ** @param removeListenerMethodName the name of the remove listener method.
- ** @exception IntrospectionException if listenerType is not an EventListener
- ** or if methods are not found or are invalid.
- **/
- public EventSetDescriptor(Class eventSourceClass,
- String eventSetName,
- Class listenerType,
- String[] listenerMethodNames,
- String addListenerMethodName,
- String removeListenerMethodName) throws IntrospectionException {
- setName(eventSetName);
- if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
- throw new IntrospectionException("Listener type is not an EventListener.");
- }
-
- findMethods(eventSourceClass,listenerType,listenerMethodNames,addListenerMethodName,removeListenerMethodName,null);
- this.listenerType = listenerType;
- checkAddListenerUnicast();
- if(this.removeListenerMethod.getExceptionTypes().length > 0) {
- throw new IntrospectionException("Listener remove method throws exceptions.");
- }
- }
-
- /** Create a new EventSetDescriptor.
- ** This form of constructor allows you to explicitly say which methods do what, and
- ** no reflection is done by the EventSetDescriptor. The methods are, however,
- ** checked to ensure that they follow the rules set forth at the top of the class.
- ** @param eventSetName the programmatic name of the event set, generally starting
- ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
- ** @param listenerType the class containing the listenerMethods.
- ** @param listenerMethods the event firing methods.
- ** @param addListenerMethod the add listener method.
- ** @param removeListenerMethod the remove listener method.
- ** @exception IntrospectionException if the listenerType is not an EventListener,
- ** or any of the methods are invalid.
- **/
- public EventSetDescriptor(String eventSetName,
- Class listenerType,
- Method[] listenerMethods,
- Method addListenerMethod,
- Method removeListenerMethod) throws IntrospectionException {
- setName(eventSetName);
- if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
- throw new IntrospectionException("Listener type is not an EventListener.");
- }
-
- this.listenerMethods = listenerMethods;
- this.addListenerMethod = addListenerMethod;
- this.removeListenerMethod = removeListenerMethod;
- this.listenerType = listenerType;
- checkMethods();
- checkAddListenerUnicast();
- if(this.removeListenerMethod.getExceptionTypes().length > 0) {
- throw new IntrospectionException("Listener remove method throws exceptions.");
- }
- }
-
- /** Create a new EventSetDescriptor.
- ** This form of constructor allows you to explicitly say which methods do what, and
- ** no reflection is done by the EventSetDescriptor. The methods are, however,
- ** checked to ensure that they follow the rules set forth at the top of the class.
- ** @param eventSetName the programmatic name of the event set, generally starting
- ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
- ** @param listenerType the class containing the listenerMethods.
- ** @param listenerMethodDescriptors the event firing methods.
- ** @param addListenerMethod the add listener method.
- ** @param removeListenerMethod the remove listener method.
- ** @exception IntrospectionException if the listenerType is not an EventListener,
- ** or any of the methods are invalid.
- **/
- public EventSetDescriptor(String eventSetName,
- Class listenerType,
- MethodDescriptor[] listenerMethodDescriptors,
- Method addListenerMethod,
- Method removeListenerMethod) throws IntrospectionException {
- setName(eventSetName);
- if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
- throw new IntrospectionException("Listener type is not an EventListener.");
- }
-
- this.listenerMethodDescriptors = listenerMethodDescriptors;
- this.listenerMethods = new Method[listenerMethodDescriptors.length];
- for(int i=0;i<this.listenerMethodDescriptors.length;i++) {
- this.listenerMethods[i] = this.listenerMethodDescriptors[i].getMethod();
- }
-
- this.addListenerMethod = addListenerMethod;
- this.removeListenerMethod = removeListenerMethod;
- this.listenerType = listenerType;
- checkMethods();
- checkAddListenerUnicast();
- if(this.removeListenerMethod.getExceptionTypes().length > 0) {
- throw new IntrospectionException("Listener remove method throws exceptions.");
- }
- }
-
- /** Get the class that contains the event firing methods. **/
- public Class getListenerType() {
- return listenerType;
- }
-
- /** Get the event firing methods. **/
- public Method[] getListenerMethods() {
- return listenerMethods;
- }
-
- /** Get the event firing methods as MethodDescriptors. **/
- public MethodDescriptor[] getListenerMethodDescriptors() {
- if(listenerMethodDescriptors == null) {
- listenerMethodDescriptors = new MethodDescriptor[listenerMethods.length];
- for(int i=0;i<listenerMethods.length;i++) {
- listenerMethodDescriptors[i] = new MethodDescriptor(listenerMethods[i]);
- }
- }
- return listenerMethodDescriptors;
- }
-
- /** Get the add listener method. **/
- public Method getAddListenerMethod() {
- return addListenerMethod;
- }
-
- /** Get the remove listener method. **/
- public Method getRemoveListenerMethod() {
- return removeListenerMethod;
- }
-
- /** Set whether or not multiple listeners may be added.
- ** @param unicast whether or not multiple listeners may be added.
- **/
- public void setUnicast(boolean unicast) {
- this.unicast = unicast;
- }
-
- /** Get whether or not multiple listeners may be added. (Defaults to false.) **/
- public boolean isUnicast() {
- return unicast;
- }
-
- /** Set whether or not this is in the default event set.
- ** @param inDefaultEventSet whether this is in the default event set.
- **/
- public void setInDefaultEventSet(boolean inDefaultEventSet) {
- this.inDefaultEventSet = inDefaultEventSet;
- }
-
- /** Get whether or not this is in the default event set. (Defaults to true.)**/
- public boolean isInDefaultEventSet() {
- return inDefaultEventSet;
- }
-
- private void checkAddListenerUnicast() throws IntrospectionException {
- Class[] addListenerExceptions = this.addListenerMethod.getExceptionTypes();
- if(addListenerExceptions.length > 1) {
- throw new IntrospectionException("Listener add method throws too many exceptions.");
- } else if(addListenerExceptions.length == 1
- && !java.util.TooManyListenersException.class.isAssignableFrom(addListenerExceptions[0])) {
- throw new IntrospectionException("Listener add method throws too many exceptions.");
- }
- }
-
- private void checkMethods() throws IntrospectionException {
- if(!addListenerMethod.getDeclaringClass().isAssignableFrom(removeListenerMethod.getDeclaringClass())
- && !removeListenerMethod.getDeclaringClass().isAssignableFrom(addListenerMethod.getDeclaringClass())) {
- throw new IntrospectionException("add and remove listener methods do not come from the same class. This is bad.");
- }
- if(!addListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
- || addListenerMethod.getParameterTypes().length != 1
- || !listenerType.equals(addListenerMethod.getParameterTypes()[0])
- || !Modifier.isPublic(addListenerMethod.getModifiers())) {
- throw new IntrospectionException("Add Listener Method invalid.");
- }
- if(!removeListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
- || removeListenerMethod.getParameterTypes().length != 1
- || !listenerType.equals(removeListenerMethod.getParameterTypes()[0])
- || removeListenerMethod.getExceptionTypes().length > 0
- || !Modifier.isPublic(removeListenerMethod.getModifiers())) {
- throw new IntrospectionException("Remove Listener Method invalid.");
- }
-
- for(int i=0;i<listenerMethods.length;i++) {
- if(!listenerMethods[i].getReturnType().equals(java.lang.Void.TYPE)
- || Modifier.isPrivate(listenerMethods[i].getModifiers())) {
- throw new IntrospectionException("Event Method " + listenerMethods[i].getName() + " non-void or private.");
- }
- if(!listenerMethods[i].getDeclaringClass().isAssignableFrom(listenerType)) {
- throw new IntrospectionException("Event Method " + listenerMethods[i].getName() + " not from class " + listenerType.getName());
- }
- }
- }
-
- private void findMethods(Class eventSourceClass,
- Class listenerType,
- String listenerMethodNames[],
- String addListenerMethodName,
- String removeListenerMethodName,
- String absurdEventClassCheckName) throws IntrospectionException {
-
- /* Find add listener method and remove listener method. */
- Class[] listenerArgList = new Class[1];
- listenerArgList[0] = listenerType;
- try {
- this.addListenerMethod = eventSourceClass.getMethod(addListenerMethodName,listenerArgList);
- } catch(SecurityException E) {
- throw new IntrospectionException("SecurityException trying to access method " + addListenerMethodName + ".");
- } catch(NoSuchMethodException E) {
- throw new IntrospectionException("Could not find method " + addListenerMethodName + ".");
- }
-
- if(this.addListenerMethod == null || !this.addListenerMethod.getReturnType().equals(java.lang.Void.TYPE)) {
- throw new IntrospectionException("Add listener method does not exist, is not public, or is not void.");
- }
-
- try {
- this.removeListenerMethod = eventSourceClass.getMethod(removeListenerMethodName,listenerArgList);
- } catch(SecurityException E) {
- throw new IntrospectionException("SecurityException trying to access method " + removeListenerMethodName + ".");
- } catch(NoSuchMethodException E) {
- throw new IntrospectionException("Could not find method " + removeListenerMethodName + ".");
- }
- if(this.removeListenerMethod == null || !this.removeListenerMethod.getReturnType().equals(java.lang.Void.TYPE)) {
- throw new IntrospectionException("Remove listener method does not exist, is not public, or is not void.");
- }
-
- /* Find the listener methods. */
- Method[] methods;
- try {
- methods = ClassHelper.getAllMethods(listenerType);
- } catch(SecurityException E) {
- throw new IntrospectionException("Security: You cannot access fields in this class.");
- }
-
- Vector chosenMethods = new Vector();
- boolean[] listenerMethodFound = new boolean[listenerMethodNames.length];
- for(int i=0;i<methods.length;i++) {
- if(Modifier.isPrivate(methods[i].getModifiers())) {
- continue;
- }
- Method currentMethod = methods[i];
- Class retval = currentMethod.getReturnType();
- if(retval.equals(java.lang.Void.TYPE)) {
- for(int j=0;j<listenerMethodNames.length;j++) {
- if(currentMethod.getName().equals(listenerMethodNames[j])
- && (absurdEventClassCheckName == null
- || (currentMethod.getParameterTypes().length == 1
- && ((currentMethod.getParameterTypes()[0]).getName().equals(absurdEventClassCheckName)
- || (currentMethod.getParameterTypes()[0]).getName().endsWith("."+absurdEventClassCheckName)
- )
- )
- )
- ) {
- chosenMethods.addElement(currentMethod);
- listenerMethodFound[j] = true;
- }
- }
- }
- }
-
- /* Make sure we found all the methods we were looking for. */
- for(int i=0;i<listenerMethodFound.length;i++) {
- if(!listenerMethodFound[i]) {
- throw new IntrospectionException("Could not find event method " + listenerMethodNames[i]);
- }
- }
-
- /* Now that we've chosen the listener methods we want, store them. */
- this.listenerMethods = new Method[chosenMethods.size()];
- for(int i=0;i<chosenMethods.size();i++) {
- this.listenerMethods[i] = (Method)chosenMethods.elementAt(i);
- }
- }
-}
diff --git a/libjava/java/beans/FeatureDescriptor.java b/libjava/java/beans/FeatureDescriptor.java
deleted file mode 100644
index 102a3a327cd..00000000000
--- a/libjava/java/beans/FeatureDescriptor.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/* java.beans.FeatureDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.util.*;
-
-/**
- ** FeatureDescriptor is the common superclass for all JavaBeans Descriptor classes.
- ** JavaBeans descriptors are abstract descriptors of properties,
- ** events, methods, beans, etc.<P>
- **
- ** <STRONG>Documentation Convention:</STRONG> for proper
- ** Internalization of Beans inside an RAD tool, sometimes there
- ** are two names for a property or method: a programmatic, or
- ** locale-independent name, which can be used anywhere, and a
- ** localized, display name, for ease of use. In the
- ** documentation I will specify different String values as
- ** either <EM>programmatic</EM> or <EM>localized</EM> to
- ** make this distinction clear.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- **/
-
-public class FeatureDescriptor {
- String name;
- String displayName;
- String shortDescription;
- boolean expert;
- boolean hidden;
-
- Hashtable valueHash;
-
- /** Instantiate this FeatureDescriptor with appropriate default values.**/
- public FeatureDescriptor() {
- valueHash = new Hashtable();
- }
-
- /** Get the programmatic name of this feature. **/
- public String getName() {
- return name;
- }
-
- /** Set the programmatic name of this feature.
- ** @param name the new name for this feature.
- **/
- public void setName(String name) {
- this.name = name;
- }
-
- /** Get the localized (display) name of this feature. **/
- public String getDisplayName() {
- return displayName;
- }
-
- /** Set the localized (display) name of this feature.
- ** @param displayName the new display name for this feature.
- **/
- public void setDisplayName(String displayName) {
- this.displayName = displayName;
- }
-
- /** Get the localized short description for this feature. **/
- public String getShortDescription() {
- return shortDescription;
- }
-
- /** Set the localized short description for this feature.
- ** @param shortDescription the new short description for this feature.
- **/
- public void setShortDescription(String shortDescription) {
- this.shortDescription = shortDescription;
- }
-
- /** Indicates whether this feature is for expert use only.
- ** @return true if for use by experts only, or false if anyone can use it.
- **/
- public boolean isExpert() {
- return expert;
- }
-
- /** Set whether this feature is for expert use only.
- ** @param expert true if for use by experts only, or false if anyone can use it.
- **/
- public void setExpert(boolean expert) {
- this.expert = expert;
- }
-
- /** Indicates whether this feature is for use by tools only.
- ** If it is for use by tools only, then it should not be displayed.
- ** @return true if tools only should use it, or false if anyone can see it.
- **/
- public boolean isHidden() {
- return hidden;
- }
-
- /** Set whether this feature is for use by tools only.
- ** If it is for use by tools only, then it should not be displayed.
- ** @param hidden true if tools only should use it, or false if anyone can see it.
- **/
- public void setHidden(boolean hidden) {
- this.hidden = hidden;
- }
-
-
- /** Get an arbitrary value set with setValue().
- ** @param name the programmatic name of the key.
- ** @return the value associated with this name, or null if there is none.
- **/
- public Object getValue(String name) {
- return valueHash.get(name);
- }
-
- /** Set an arbitrary string-value pair with this feature.
- ** @param name the programmatic name of the key.
- ** @param value the value to associate with the name.
- **/
- public void setValue(String name, Object value) {
- valueHash.put(name, value);
- }
-
- /** Get a list of the programmatic key names set with setValue().
- ** @return an Enumerator over all the programmatic key names associated
- ** with this feature.
- **/
- public Enumeration attributeNames() {
- return valueHash.keys();
- }
-}
diff --git a/libjava/java/beans/IndexedPropertyDescriptor.java b/libjava/java/beans/IndexedPropertyDescriptor.java
deleted file mode 100644
index daf8441ec6b..00000000000
--- a/libjava/java/beans/IndexedPropertyDescriptor.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/* java.beans.IndexedPropertyDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.util.*;
-import java.lang.reflect.*;
-
-/**
- ** IndexedPropertyDescriptor describes information about a JavaBean
- ** indexed property, by which we mean an array-like property that
- ** has been exposed via a pair of get and set methods and another
- ** pair that allows you to get to the property by an index.<P>
- **
- ** An example property would have four methods like this:<P>
- ** <CODE>FooBar[] getFoo()</CODE><BR>
- ** <CODE>void setFoo(FooBar[])</CODE><BR>
- ** <CODE>FooBar getFoo(int)</CODE><BR>
- ** <CODE>void setFoo(int,FooBar)</CODE><P>
- **
- ** The constraints put on get and set methods are:<P>
- ** <OL>
- ** <LI>There must be at least a get(int) or a set(int,...) method.
- ** Nothing else is required. <B>Spec note:</B>One nice restriction
- ** would be that if there is a get() there must be a get(int), same
- ** with set, but that is not in the spec and is fairly harmless.)</LI>
- ** <LI>A get array method must have signature
- ** <CODE>&lt;propertyType&gt;[] &lt;getMethodName&gt;()</CODE></LI>
- ** <LI>A set array method must have signature
- ** <CODE>void &lt;setMethodName&gt;(&lt;propertyType&gt;[])</CODE></LI>
- ** <LI>A get index method must have signature
- ** <CODE>&lt;propertyType&gt; &lt;getMethodName&gt;(int)</CODE></LI>
- ** <LI>A set index method must have signature
- ** <CODE>void &lt;setMethodName&gt;(int,&lt;propertyType&gt;)</CODE></LI>
- ** <LI>All these methods may throw any exception.</LI>
- ** <LI>All these methods must be public.</LI>
- ** </OL>
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 26 Jul 1998
- **/
-
-public class IndexedPropertyDescriptor extends PropertyDescriptor {
- private Class indexedPropertyType;
- private Method setIndex;
- private Method getIndex;
-
- /** Create a new IndexedPropertyDescriptor by introspection.
- ** This form of constructor creates the PropertyDescriptor by
- ** looking for getter methods named <CODE>get&lt;name&gt;()</CODE>
- ** and setter methods named
- ** <CODE>set&lt;name&gt;()</CODE> in class
- ** <CODE>&lt;beanClass&gt;</CODE>, where &lt;name&gt; has its
- ** first letter capitalized by the constructor.<P>
- **
- ** <B>Implementation note:</B> If there is a get(int) method,
- ** then the return type of that method is used to find the
- ** remaining methods. If there is no get method, then the
- ** set(int) method is searched for exhaustively and that type
- ** is used to find the others.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get(int) method and multiple set(int) methods with
- ** the same name and the correct parameters (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public IndexedPropertyDescriptor(String name, Class beanClass) throws IntrospectionException {
- super(name);
- String capitalized;
- try {
- capitalized = Character.toUpperCase(name.charAt(0)) + name.substring(1);
- } catch(StringIndexOutOfBoundsException e) {
- capitalized = "";
- }
- findMethods(beanClass, "get" + capitalized, "set" + capitalized, "get" + capitalized, "set" + capitalized);
- }
-
- /** Create a new IndexedPropertyDescriptor by introspection.
- ** This form of constructor allows you to specify the
- ** names of the get and set methods to search for.<P>
- **
- ** <B>Implementation note:</B> If there is a get(int) method,
- ** then the return type of that method is used to find the
- ** remaining methods. If there is no get method, then the
- ** set(int) method is searched for exhaustively and that type
- ** is used to find the others.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get(int) method and multiple set(int) methods with
- ** the same name and the correct parameters (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @param getMethodName the name of the get array method.
- ** @param setMethodName the name of the set array method.
- ** @param getIndexName the name of the get index method.
- ** @param setIndexName the name of the set index method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public IndexedPropertyDescriptor(String name, Class beanClass, String getMethodName, String setMethodName, String getIndexName, String setIndexName) throws IntrospectionException {
- super(name);
- findMethods(beanClass, getMethodName, setMethodName, getIndexName, setIndexName);
- }
-
- /** Create a new PropertyDescriptor using explicit Methods.
- ** Note that the methods will be checked for conformance to standard
- ** Property method rules, as described above at the top of this class.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param getMethod the get array method.
- ** @param setMethod the set array method.
- ** @param getIndex the get index method.
- ** @param setIndex the set index method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public IndexedPropertyDescriptor(String name, Method getMethod, Method setMethod, Method getIndex, Method setIndex) throws IntrospectionException {
- super(name);
- if(getMethod != null && getMethod.getParameterTypes().length > 0) {
- throw new IntrospectionException("get method has parameters");
- }
- if(getMethod != null && setMethod.getParameterTypes().length != 1) {
- throw new IntrospectionException("set method does not have exactly one parameter");
- }
- if(getMethod != null && setMethod != null) {
- if(!getMethod.getReturnType().equals(setMethod.getParameterTypes()[0])) {
- throw new IntrospectionException("set and get methods do not share the same type");
- }
- if(!getMethod.getDeclaringClass().isAssignableFrom(setMethod.getDeclaringClass())
- && !setMethod.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass())) {
- throw new IntrospectionException("set and get methods are not in the same class.");
- }
- }
-
- if(getIndex != null && (getIndex.getParameterTypes().length != 1
- || !(getIndex.getParameterTypes()[0]).equals(java.lang.Integer.TYPE))) {
- throw new IntrospectionException("get index method has wrong parameters");
- }
- if(setIndex != null && (setIndex.getParameterTypes().length != 2
- || !(setIndex.getParameterTypes()[0]).equals(java.lang.Integer.TYPE))) {
- throw new IntrospectionException("set index method has wrong parameters");
- }
- if(getIndex != null && setIndex != null) {
- if(!getIndex.getReturnType().equals(setIndex.getParameterTypes()[1])) {
- throw new IntrospectionException("set index methods do not share the same type");
- }
- if(!getIndex.getDeclaringClass().isAssignableFrom(setIndex.getDeclaringClass())
- && !setIndex.getDeclaringClass().isAssignableFrom(getIndex.getDeclaringClass())) {
- throw new IntrospectionException("get and set index methods are not in the same class.");
- }
- }
-
- if(getIndex != null && getMethod != null && !getIndex.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass())
- && !getMethod.getDeclaringClass().isAssignableFrom(getIndex.getDeclaringClass())) {
- throw new IntrospectionException("methods are not in the same class.");
- }
-
- if(getIndex != null && getMethod != null && !Array.newInstance(getIndex.getReturnType(),0).getClass().equals(getMethod.getReturnType())) {
- throw new IntrospectionException("array methods do not match index methods.");
- }
-
- this.getMethod = getMethod;
- this.setMethod = setMethod;
- this.getIndex = getIndex;
- this.setIndex = getIndex;
- this.indexedPropertyType = getIndex != null ? getIndex.getReturnType() : setIndex.getParameterTypes()[1];
- this.propertyType = getMethod != null ? getMethod.getReturnType() : (setMethod != null ? setMethod.getParameterTypes()[0] : Array.newInstance(this.indexedPropertyType,0).getClass());
- }
-
- public Class getIndexedPropertyType() {
- return indexedPropertyType;
- }
-
- public Method getIndexedReadMethod() {
- return getIndex;
- }
-
- public Method getIndexedWriteMethod() {
- return setIndex;
- }
-
- private void findMethods(Class beanClass, String getMethodName, String setMethodName, String getIndexName, String setIndexName) throws IntrospectionException {
- try {
- if(getIndexName != null) {
- try {
- Class[] getArgs = new Class[1];
- getArgs[0] = java.lang.Integer.TYPE;
- getIndex = beanClass.getMethod(getIndexName,getArgs);
- indexedPropertyType = getIndex.getReturnType();
- } catch(NoSuchMethodException E) {
- }
- }
- if(getIndex != null) {
- if(setIndexName != null) {
- try {
- Class[] setArgs = new Class[2];
- setArgs[0] = java.lang.Integer.TYPE;
- setArgs[1] = indexedPropertyType;
- setIndex = beanClass.getMethod(setIndexName,setArgs);
- if(!setIndex.getReturnType().equals(java.lang.Void.TYPE)) {
- throw new IntrospectionException(setIndexName + " has non-void return type");
- }
- } catch(NoSuchMethodException E) {
- }
- }
- } else if(setIndexName != null) {
- Method[] m = beanClass.getMethods();
- for(int i=0;i<m.length;i++) {
- Method current = m[i];
- if(current.getName().equals(setIndexName)
- && current.getParameterTypes().length == 2
- && (current.getParameterTypes()[0]).equals(java.lang.Integer.TYPE)
- && current.getReturnType().equals(java.lang.Void.TYPE)) {
- if(setIndex != null) {
- throw new IntrospectionException("Multiple, different set methods found that fit the bill!");
- } else {
- setIndex = current;
- indexedPropertyType = current.getParameterTypes()[1];
- }
- }
- }
- if(setIndex == null) {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
- } else {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
-
- Class arrayType = Array.newInstance(indexedPropertyType,0).getClass();
-
- Class[] setArgs = new Class[1];
- setArgs[0] = arrayType;
- try {
- setMethod = beanClass.getMethod(setMethodName,setArgs);
- if(!setMethod.getReturnType().equals(java.lang.Void.TYPE)) {
- setMethod = null;
- }
- } catch(NoSuchMethodException E) {
- }
-
- Class[] getArgs = new Class[0];
- try {
- getMethod = beanClass.getMethod(getMethodName,getArgs);
- if(!getMethod.getReturnType().equals(arrayType)) {
- getMethod = null;
- }
- } catch(NoSuchMethodException E) {
- }
- } catch(SecurityException E) {
- throw new IntrospectionException("SecurityException while trying to find methods.");
- }
- }
-}
diff --git a/libjava/java/beans/IntrospectionException.java b/libjava/java/beans/IntrospectionException.java
deleted file mode 100644
index 0bbd579ef92..00000000000
--- a/libjava/java/beans/IntrospectionException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* java.beans.IntrospectionException
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** IntrospectionException is thrown when the Introspector fails. Surprise, surprise.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- ** @see java.beans.Introspector
- **/
-
-public class IntrospectionException extends Exception {
- /** Instantiate this exception with the given message.
- ** @param msg the message for the exception.
- **/
- public IntrospectionException(String msg) {
- super(msg);
- }
-}
diff --git a/libjava/java/beans/Introspector.java b/libjava/java/beans/Introspector.java
deleted file mode 100644
index a1919714a1c..00000000000
--- a/libjava/java/beans/Introspector.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/* java.beans.Introspector
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import gnu.java.beans.*;
-import java.util.*;
-import java.lang.reflect.*;
-import gnu.java.lang.*;
-
-/**
- ** Introspector is the class that does the bulk of the
- ** design-time work in Java Beans. Every class must have
- ** a BeanInfo in order for an RAD tool to use it; but, as
- ** promised, you don't have to write the BeanInfo class
- ** yourself if you don't want to. All you have to do is
- ** call getBeanInfo() in the Introspector and it will use
- ** standard JavaBeans-defined method signatures to
- ** determine the information about your class.<P>
- **
- ** Don't worry about it too much, though: you can provide
- ** JavaBeans with as much customized information as you
- ** want, or as little as you want, using the BeanInfo
- ** interface (see BeanInfo for details).<P>
- **
- ** <STRONG>Order of Operations</STRONG><P>
- **
- ** When you call getBeanInfo(class c), the Introspector
- ** first searches for BeanInfo class to see if you
- ** provided any explicit information. It searches for a
- ** class named <bean class name>BeanInfo in different
- ** packages, first searching the bean class's package
- ** and then moving on to search the beanInfoSearchPath.<P>
- **
- ** If it does not find a BeanInfo class, it acts as though
- ** it had found a BeanInfo class returning null from all
- ** methods (meaning it should discover everything through
- ** Introspection). If it does, then it takes the
- ** information it finds in the BeanInfo class to be
- ** canonical (that is, the information speaks for its
- ** class as well as all superclasses).<P>
- **
- ** When it has introspected the class, calls
- ** getBeanInfo(c.getSuperclass) and adds that information
- ** to the information it has, not adding to any information
- ** it already has that is canonical.<P>
- **
- ** <STRONG>Introspection Design Patterns</STRONG><P>
- **
- ** When the Introspector goes in to read the class, it
- ** follows a well-defined order in order to not leave any
- ** methods unaccounted for. Its job is to step over all
- ** of the public methods in a class and determine whether
- ** they are part of a property, an event, or a method (in
- ** that order).
- **
- **
- ** <STRONG>Properties:</STRONG><P>
- **
- ** <OL>
- ** <LI>If there is a <CODE>public boolean isXXX()</CODE>
- ** method, then XXX is a read-only boolean property.
- ** <CODE>boolean getXXX()</CODE> may be supplied in
- ** addition to this method, although isXXX() is the
- ** one that will be used in this case and getXXX()
- ** will be ignored. If there is a
- ** <CODE>public void setXXX(boolean)</CODE> method,
- ** it is part of this group and makes it a read-write
- ** property.</LI>
- ** <LI>If there is a
- ** <CODE>public &lt;type&gt; getXXX(int)</CODE>
- ** method, then XXX is a read-only indexed property of
- ** type &lt;type&gt;. If there is a
- ** <CODE>public void setXXX(int,&lt;type&gt;)</CODE>
- ** method, then it is a read-write indexed property of
- ** type &lt;type&gt;. There may also be a
- ** <CODE>public &lt;type&gt;[] getXXX()</CODE> and a
- ** <CODE>public void setXXX(&lt;type&gt;)</CODE>
- ** method as well.</CODE></LI>
- ** <LI>If there is a
- ** <CODE>public void setXXX(int,&lt;type&gt;)</CODE>
- ** method, then it is a write-only indexed property of
- ** type &lt;type&gt;. There may also be a
- ** <CODE>public &lt;type&gt;[] getXXX()</CODE> and a
- ** <CODE>public void setXXX(&lt;type&gt;)</CODE>
- ** method as well.</CODE></LI>
- ** <LI>If there is a
- ** <CODE>public &lt;type&gt; getXXX()</CODE> method,
- ** then XXX is a read-only property of type
- ** &lt;type&gt;. If there is a
- ** <CODE>public void setXXX(&lt;type&gt;)</CODE>
- ** method, then it will be used for the property and
- ** the property will be considered read-write.</LI>
- ** <LI>If there is a
- ** <CODE>public void setXXX(&lt;type&gt;)</CODE>
- ** method, then as long as XXX is not already used as
- ** the name of a property, XXX is assumed to be a
- ** write-only property of type &lt;type&gt;.</LI>
- ** <LI>In all of the above cases, if the setXXX() method
- ** throws <CODE>PropertyVetoException</CODE>, then the
- ** property in question is assumed to be constrained.
- ** No properties are ever assumed to be bound
- ** (<STRONG>Spec Note:</STRONG> this is not in the
- ** spec, it just makes sense). See PropertyDescriptor
- ** for a description of bound and constrained
- ** properties.</LI>
- ** </OL>
- **
- ** <STRONG>Events:</STRONG><P>
- **
- ** If there is a pair of methods,
- ** <CODE>public void addXXX(&lt;type&gt;)</CODE> and
- ** <CODE>public void removeXXX(&lt;type&gt;)</CODE>, where
- ** &lt;type&gt; is a descendant of
- ** <CODE>java.util.EventListener</CODE>, then the pair of
- ** methods imply that this Bean will fire events to
- ** listeners of type &lt;type&gt;.<P>
- **
- ** If the addXXX() method throws
- ** <CODE>java.util.TooManyListenersException</CODE>, then
- ** the event set is assumed to be <EM>unicast</EM>. See
- ** EventSetDescriptor for a discussion of unicast event
- ** sets.<P>
- **
- ** <STRONG>Spec Note:</STRONG> the spec seems to say that
- ** the listener type's classname must be equal to the XXX
- ** part of addXXX() and removeXXX(), but that is not the
- ** case in Sun's implementation, so I am assuming it is
- ** not the case in general.<P>
- **
- ** <STRONG>Methods:</STRONG><P>
- **
- ** Any public methods (including those which were used
- ** for Properties or Events) are used as Methods.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- ** @see java.beans.BeanInfo
- **/
-
-public class Introspector {
- static String[] beanInfoSearchPath = {"gnu.java.beans.info", "sun.beans.infos"};
- static Hashtable beanInfoCache = new Hashtable();
-
- private Introspector() {}
-
- /** Get the BeanInfo for class <CODE>beanClass</CODE>,
- ** first by looking for explicit information, next by
- ** using standard design patterns to determine
- ** information about the class.
- ** @param beanClass the class to get BeanInfo about.
- ** @return the BeanInfo object representing the class.
- **/
- public static BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException {
- BeanInfo cachedInfo;
- synchronized(beanClass) {
- cachedInfo = (BeanInfo)beanInfoCache.get(beanClass);
- if(cachedInfo != null) {
- return cachedInfo;
- }
- cachedInfo = getBeanInfo(beanClass,null);
- beanInfoCache.put(beanClass,cachedInfo);
- return cachedInfo;
- }
- }
-
- /** Get the BeanInfo for class <CODE>beanClass</CODE>,
- ** first by looking for explicit information, next by
- ** using standard design patterns to determine
- ** information about the class. It crawls up the
- ** inheritance tree until it hits <CODE>topClass</CODE>.
- ** @param beanClass the Bean class.
- ** @param stopClass the class to stop at.
- ** @return the BeanInfo object representing the class.
- **/
- public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) throws IntrospectionException {
- ExplicitInfo explicit = new ExplicitInfo(beanClass,stopClass);
-
- IntrospectionIncubator ii = new IntrospectionIncubator();
- ii.setPropertyStopClass(explicit.propertyStopClass);
- ii.setEventStopClass(explicit.eventStopClass);
- ii.setMethodStopClass(explicit.methodStopClass);
- ii.addMethods(beanClass.getMethods());
-
- BeanInfoEmbryo currentInfo = ii.getBeanInfoEmbryo();
- PropertyDescriptor[] p = explicit.explicitPropertyDescriptors;
- if(p!=null) {
- for(int i=0;i<p.length;i++) {
- if(!currentInfo.hasProperty(p[i])) {
- currentInfo.addProperty(p[i]);
- }
- }
- if(explicit.defaultProperty != -1) {
- currentInfo.setDefaultPropertyName(p[explicit.defaultProperty].getName());
- }
- }
- EventSetDescriptor[] e = explicit.explicitEventSetDescriptors;
- if(e!=null) {
- for(int i=0;i<e.length;i++) {
- if(!currentInfo.hasEvent(e[i])) {
- currentInfo.addEvent(e[i]);
- }
- }
- if(explicit.defaultEvent != -1) {
- currentInfo.setDefaultEventName(e[explicit.defaultEvent].getName());
- }
- }
- MethodDescriptor[] m = explicit.explicitMethodDescriptors;
- if(m!=null) {
- for(int i=0;i<m.length;i++) {
- if(!currentInfo.hasMethod(m[i])) {
- currentInfo.addMethod(m[i]);
- }
- }
- }
-
- if(explicit.explicitBeanDescriptor != null) {
- currentInfo.setBeanDescriptor(new BeanDescriptor(beanClass,explicit.explicitBeanDescriptor.getCustomizerClass()));
- } else {
- currentInfo.setBeanDescriptor(new BeanDescriptor(beanClass,null));
- }
-
- currentInfo.setAdditionalBeanInfo(explicit.explicitBeanInfo);
- currentInfo.setIcons(explicit.im);
-
- return currentInfo.getBeanInfo();
- }
-
- /** Get the search path for BeanInfo classes.
- ** @return the BeanInfo search path.
- **/
- public static String[] getBeanInfoSearchPath() {
- return beanInfoSearchPath;
- }
-
- /** Set the search path for BeanInfo classes.
- ** @param beanInfoSearchPath the new BeanInfo search
- ** path.
- **/
- public static void setBeanInfoSearchPath(String[] beanInfoSearchPath) {
- Introspector.beanInfoSearchPath = beanInfoSearchPath;
- }
-
- /** A helper method to convert a name to standard Java
- ** naming conventions: anything with two capitals as the
- ** first two letters remains the same, otherwise the
- ** first letter is decapitalized. URL = URL, I = i,
- ** MyMethod = myMethod.
- ** @param name the name to decapitalize.
- ** @return the decapitalized name.
- **/
- public static String decapitalize(String name) {
- try {
- if(!Character.isUpperCase(name.charAt(0))) {
- return name;
- } else {
- try {
- if(Character.isUpperCase(name.charAt(1))) {
- return name;
- } else {
- char[] c = name.toCharArray();
- c[0] = Character.toLowerCase(c[0]);
- return new String(c);
- }
- } catch(StringIndexOutOfBoundsException E) {
- char[] c = new char[1];
- c[0] = Character.toLowerCase(name.charAt(0));
- return new String(c);
- }
- }
- } catch(StringIndexOutOfBoundsException E) {
- return name;
- } catch(NullPointerException E) {
- return null;
- }
- }
-
- static BeanInfo copyBeanInfo(BeanInfo b) {
- java.awt.Image[] icons = new java.awt.Image[4];
- for(int i=1;i<=4;i++) {
- icons[i-1] = b.getIcon(i);
- }
- return new ExplicitBeanInfo(b.getBeanDescriptor(),b.getAdditionalBeanInfo(),
- b.getPropertyDescriptors(),b.getDefaultPropertyIndex(),
- b.getEventSetDescriptors(),b.getDefaultEventIndex(),
- b.getMethodDescriptors(),icons);
- }
-}
-
-class ExplicitInfo {
- BeanDescriptor explicitBeanDescriptor;
- BeanInfo[] explicitBeanInfo;
-
- PropertyDescriptor[] explicitPropertyDescriptors;
- EventSetDescriptor[] explicitEventSetDescriptors;
- MethodDescriptor[] explicitMethodDescriptors;
-
- int defaultProperty;
- int defaultEvent;
-
- java.awt.Image[] im = new java.awt.Image[4];
-
- Class propertyStopClass;
- Class eventStopClass;
- Class methodStopClass;
-
- ExplicitInfo(Class beanClass, Class stopClass) {
- while(beanClass != null && !beanClass.equals(stopClass)) {
- BeanInfo explicit = findExplicitBeanInfo(beanClass);
- if(explicit != null) {
- if(explicitBeanDescriptor == null) {
- explicitBeanDescriptor = explicit.getBeanDescriptor();
- }
- if(explicitBeanInfo == null) {
- explicitBeanInfo = explicit.getAdditionalBeanInfo();
- }
- if(explicitPropertyDescriptors == null) {
- if(explicit.getPropertyDescriptors() != null) {
- explicitPropertyDescriptors = explicit.getPropertyDescriptors();
- defaultProperty = explicit.getDefaultPropertyIndex();
- propertyStopClass = beanClass;
- }
- }
- if(explicitEventSetDescriptors == null) {
- if(explicit.getEventSetDescriptors() != null) {
- explicitEventSetDescriptors = explicit.getEventSetDescriptors();
- defaultEvent = explicit.getDefaultEventIndex();
- eventStopClass = beanClass;
- }
- }
- if(explicitMethodDescriptors == null) {
- if(explicit.getMethodDescriptors() != null) {
- explicitMethodDescriptors = explicit.getMethodDescriptors();
- methodStopClass = beanClass;
- }
- }
- if(im[0] == null
- && im[1] == null
- && im[2] == null
- && im[3] == null) {
- im[0] = explicit.getIcon(0);
- im[1] = explicit.getIcon(1);
- im[2] = explicit.getIcon(2);
- im[3] = explicit.getIcon(3);
- }
- }
- beanClass = beanClass.getSuperclass();
- }
- if(propertyStopClass == null) {
- propertyStopClass = stopClass;
- }
- if(eventStopClass == null) {
- eventStopClass = stopClass;
- }
- if(methodStopClass == null) {
- methodStopClass = stopClass;
- }
- }
-
- static Hashtable explicitBeanInfos = new Hashtable();
- static Vector emptyBeanInfos = new Vector();
-
- static BeanInfo findExplicitBeanInfo(Class beanClass) {
- BeanInfo retval = (BeanInfo)explicitBeanInfos.get(beanClass);
- if(retval != null) {
- return retval;
- } else if(emptyBeanInfos.indexOf(beanClass) != -1) {
- return null;
- } else {
- retval = reallyFindExplicitBeanInfo(beanClass);
- if(retval != null) {
- explicitBeanInfos.put(beanClass,retval);
- } else {
- emptyBeanInfos.addElement(beanClass);
- }
- return retval;
- }
- }
-
- static BeanInfo reallyFindExplicitBeanInfo(Class beanClass) {
- try {
- try {
- return (BeanInfo)Class.forName(beanClass.getName()+"BeanInfo").newInstance();
- } catch(ClassNotFoundException E) {
- }
- String newName = ClassHelper.getTruncatedClassName(beanClass) + "BeanInfo";
- for(int i=0;i<Introspector.beanInfoSearchPath.length;i++) {
- try {
- if(Introspector.beanInfoSearchPath[i].equals("")) {
- return (BeanInfo)Class.forName(newName).newInstance();
- } else {
- return (BeanInfo)Class.forName(Introspector.beanInfoSearchPath[i] + "." + newName).newInstance();
- }
- } catch(ClassNotFoundException E) {
- }
- }
- } catch(IllegalAccessException E) {
- } catch(InstantiationException E) {
- }
- return null;
- }
-}
diff --git a/libjava/java/beans/MethodDescriptor.java b/libjava/java/beans/MethodDescriptor.java
deleted file mode 100644
index bb052f7a840..00000000000
--- a/libjava/java/beans/MethodDescriptor.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/* java.beans.MethodDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.lang.reflect.*;
-
-/** MethodDescriptor describes information about a JavaBeans method.
- ** It's a fairly straightforward class (at least something in this
- ** package is straightforward!).
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 26 Jul 1998
- **/
-public class MethodDescriptor extends FeatureDescriptor {
- private Method m;
- private ParameterDescriptor[] parameterDescriptors;
-
- /** Create a new MethodDescriptor.
- ** This method sets the name to the name of the method (Method.getName()).
- ** @param m the method it will represent.
- **/
- public MethodDescriptor(Method m) {
- setName(m.getName());
- this.m = m;
- }
-
- /** Create a new MethodDescriptor.
- ** This method sets the name to the name of the method (Method.getName()).
- ** @param m the method it will represent.
- ** @param parameterDescriptors descriptions of the parameters (especially names).
- **/
- public MethodDescriptor(Method m, ParameterDescriptor[] parameterDescriptors) {
- setName(m.getName());
- this.m = m;
- this.parameterDescriptors = parameterDescriptors;
- }
-
- /** Get the parameter descriptors from this method.
- ** Since MethodDescriptor has no way of determining what
- ** the parameter names were, this defaults to null.
- **/
- public ParameterDescriptor[] getParameterDescriptors() {
- return parameterDescriptors;
- }
-
- /** Get the method this MethodDescriptor represents. **/
- public Method getMethod() {
- return m;
- }
-}
-
diff --git a/libjava/java/beans/ParameterDescriptor.java b/libjava/java/beans/ParameterDescriptor.java
deleted file mode 100644
index 664d5caa6c9..00000000000
--- a/libjava/java/beans/ParameterDescriptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/* java.beans.MethodDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/** ParameterDescriptor represents a single parameter to a method.
- ** As it turns out, FeatureDescriptor is sufficient to hold all
- ** the information. Use its constructor and methods to set
- ** the appropriate values.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 26 Jul 1998
- **/
-public class ParameterDescriptor extends FeatureDescriptor {
-
-}
diff --git a/libjava/java/beans/PropertyChangeEvent.java b/libjava/java/beans/PropertyChangeEvent.java
deleted file mode 100644
index 3dc347809a7..00000000000
--- a/libjava/java/beans/PropertyChangeEvent.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/* java.beans.PropertyChangeEvent
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** PropertyChangeEvents are fired in the PropertyChange
- ** and VetoableChange event classes. They represent the
- ** old and new values as well as the source Bean.<P>
- **
- ** If the old or new value is a primitive type, it must
- ** be wrapped in the appropriate wrapper type
- ** (java.lang.Integer for int, etc., etc.).<P>
- **
- ** If the old or new values are unknown (although why
- ** that would be I do not know), they may be null.<P>
- **
- ** Right now Sun put in a propagationId, reserved for
- ** future use. Read the comments on the constructor
- ** and on setPropagationId for more information.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class PropertyChangeEvent extends java.util.EventObject {
- String propertyName;
- Object oldValue;
- Object newValue;
- Object propagationId;
-
- private static final long serialVersionUID = 7042693688939648123L;
-
- /** Create a new PropertyChangeEvent. Remember that if
- ** you received a PropertyChangeEvent and are sending
- ** a new one, you should also set the propagation ID
- ** from the old PropertyChangeEvent.
- ** @param source the Bean containing the property.
- ** @param propertyName the property's name.
- ** @param oldValue the old value of the property.
- ** @param newValue the new value of the property.
- **/
- public PropertyChangeEvent(Object source, String propertyName, Object oldVal, Object newVal) {
- super(source);
- this.propertyName = propertyName;
- oldValue = oldVal;
- newValue = newVal;
- }
-
- /** Get the property name.
- ** @return the property name.
- **/
- public String getPropertyName() {
- return propertyName;
- }
-
- /** Get the property's old value.
- ** @return the property's old value.
- **/
- public Object getOldValue() {
- return oldValue;
- }
-
- /** Get the property's new value.
- ** @return the property's new value.
- **/
- public Object getNewValue() {
- return newValue;
- }
-
- /** Set the propagation ID. This is a way for the event
- ** to be passed from hand to hand and retain a little
- ** extra state. Right now it is unused, but it should
- ** be propagated anyway so that future versions of
- ** JavaBeans can use it, for God knows what.
- ** @param propagationId the propagation ID.
- **/
- public void setPropagationId(Object propagationId) {
- this.propagationId = propagationId;
- }
-
- /** Get the propagation ID.
- ** @return the propagation ID.
- **/
- public Object getPropagationId() {
- return propagationId;
- }
-}
diff --git a/libjava/java/beans/PropertyChangeListener.java b/libjava/java/beans/PropertyChangeListener.java
deleted file mode 100644
index 7f1df72c50c..00000000000
--- a/libjava/java/beans/PropertyChangeListener.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/* java.beans.PropertyChangeListener
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** PropertyChangeListener allows a class to monitor
- ** properties of a Bean for changes.<P>
- **
- ** A propertyChange() event will only be fired
- ** <EM>after</EM> the property has changed.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- ** @see java.beans.PropertyChangeSupport
- **/
-
-public interface PropertyChangeListener {
- /** Fired after a Bean's property has changed.
- ** @param e the change (containing the old and new values)
- **/
- public abstract void propertyChange(PropertyChangeEvent e);
-}
diff --git a/libjava/java/beans/PropertyChangeSupport.java b/libjava/java/beans/PropertyChangeSupport.java
deleted file mode 100644
index 512c8edeb7d..00000000000
--- a/libjava/java/beans/PropertyChangeSupport.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/* java.beans.PropertyChangeSupport
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-import java.util.Hashtable;
-import java.util.Vector;
-
-/**
- ** PropertyChangeSupport makes it easy to fire property
- ** change events and handle listeners.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.2.0, 15 Mar 1999
- **/
-
-public class PropertyChangeSupport implements java.io.Serializable {
- Hashtable propertyListeners = new Hashtable();
- Vector listeners = new Vector();
- Object bean;
-
- /** Create PropertyChangeSupport to work with a specific
- ** source bean.
- ** @param bean the source bean to use.
- **/
- public PropertyChangeSupport(Object bean) {
- this.bean = bean;
- }
-
- /** Adds a PropertyChangeListener to the list of listeners.
- ** All property change events will be sent to this listener.
- ** <P>
- **
- ** The listener add is not unique: that is, <em>n</em> adds with
- ** the same listener will result in <em>n</em> events being sent
- ** to that listener for every property change.
- ** <P>
- **
- ** Adding a null listener will cause undefined behavior.
- **
- ** @param l the listener to add.
- **/
- public void addPropertyChangeListener(PropertyChangeListener l) {
- listeners.addElement(l);
- }
-
- /** Adds a PropertyChangeListener listening on the specified property.
- ** Events will be sent to the listener for that particular property.
- ** <P>
- **
- ** The listener add is not unique; that is, <em>n</em> adds on a
- ** particular property for a particular listener will result in
- ** <em>n</em> events being sent to that listener when that
- ** property is changed.
- ** <P>
- **
- ** The effect is cumulative, too; if you are registered to listen
- ** to receive events on all property changes, and then you
- ** register on a particular property, you will receive change
- ** events for that property twice.
- ** <P>
- **
- ** Adding a null listener will cause undefined behavior.
- **
- ** @param propertyName the name of the property to listen on.
- ** @param l the listener to add.
- **/
- public void addPropertyChangeListener(String propertyName, PropertyChangeListener l) {
- synchronized(propertyListeners) {
- Vector v = (Vector)propertyListeners.get(propertyName);
- try {
- v.addElement(l);
- } catch(NullPointerException e) {
- /* If v is not found, create a new vector. */
- v = new Vector();
- v.addElement(l);
- propertyListeners.put(propertyName, v);
- }
- }
- }
-
- /** Removes a PropertyChangeListener from the list of listeners.
- ** If any specific properties are being listened on, they must
- ** be deregistered by themselves; this will only remove the
- ** general listener to all properties.
- ** <P>
- **
- ** If <code>add()</code> has been called multiple times for a
- ** particular listener, <code>remove()</code> will have to be
- ** called the same number of times to deregister it.
- **
- ** @param l the listener to remove.
- **/
- public void removePropertyChangeListener(PropertyChangeListener l) {
- listeners.removeElement(l);
- }
-
- /** Removes a PropertyChangeListener from listening to a specific property.
- ** <P>
- **
- ** If <code>add()</code> has been called multiple times for a
- ** particular listener on a property, <code>remove()</code> will
- ** have to be called the same number of times to deregister it.
- **
- ** @param propertyName the property to stop listening on.
- ** @param l the listener to remove.
- **/
- public void removePropertyChangeListener(String propertyName, PropertyChangeListener l) {
- synchronized(propertyListeners) {
- Vector v = (Vector)propertyListeners.get(propertyName);
- try {
- v.removeElement(l);
- if(v.size() == 0) {
- propertyListeners.remove(propertyName);
- }
- } catch(NullPointerException e) {
- /* if v is not found, do nothing. */
- }
- }
- }
-
- /** Fire a PropertyChangeEvent to all the listeners.
- **
- ** @param event the event to fire.
- **/
- public void firePropertyChange(PropertyChangeEvent event) {
- for(int i=0;i<listeners.size();i++) {
- ((PropertyChangeListener)listeners.elementAt(i)).propertyChange(event);
- }
- Vector moreListeners = (Vector)propertyListeners.get(event.getPropertyName());
- if(moreListeners != null) {
- for(int i=0;i<moreListeners.size();i++) {
- ((PropertyChangeListener)moreListeners.elementAt(i)).propertyChange(event);
- }
- }
- }
-
- /** Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
- **
- ** @param propertyName the name of the property that changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- **/
- public void firePropertyChange(String propertyName, Object oldVal, Object newVal) {
- firePropertyChange(new PropertyChangeEvent(bean,propertyName,oldVal,newVal));
- }
-
- /** Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
- **
- ** @param propertyName the name of the property that changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- **/
- public void firePropertyChange(String propertyName, boolean oldVal, boolean newVal) {
- firePropertyChange(new PropertyChangeEvent(bean, propertyName, new Boolean(oldVal), new Boolean(newVal)));
- }
-
- /** Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
- **
- ** @param propertyName the name of the property that changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- **/
- public void firePropertyChange(String propertyName, int oldVal, int newVal) {
- firePropertyChange(new PropertyChangeEvent(bean, propertyName, new Integer(oldVal), new Integer(newVal)));
- }
-
- /** Tell whether the specified property is being listened on or not.
- ** This will only return <code>true</code> if there are listeners
- ** on all properties or if there is a listener specifically on this
- ** property.
- **
- ** @param propertyName the property that may be listened on
- ** @return whether the property is being listened on
- **/
- public boolean hasListeners(String propertyName) {
- return listeners.size() > 0 || propertyListeners.get(propertyName) != null;
- }
-}
diff --git a/libjava/java/beans/PropertyDescriptor.java b/libjava/java/beans/PropertyDescriptor.java
deleted file mode 100644
index ec1431273eb..00000000000
--- a/libjava/java/beans/PropertyDescriptor.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/* java.beans.PropertyDescriptor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.util.*;
-import java.lang.reflect.*;
-
-
-/**
- ** PropertyDescriptor describes information about a JavaBean property,
- ** by which we mean a property that has been exposed via a pair of
- ** get and set methods. (There may be no get method, which means
- ** the property is write-only, or no set method, which means the
- ** the property is read-only.)<P>
- **
- ** The constraints put on get and set methods are:<P>
- ** <OL>
- ** <LI>A get method must have signature
- ** <CODE>&lt;propertyType&gt; &lt;getMethodName&gt;()</CODE></LI>
- ** <LI>A set method must have signature
- ** <CODE>void &lt;setMethodName&gt;(&lt;propertyType&gt;)</CODE></LI>
- ** <LI>Either method type may throw any exception.</LI>
- ** <LI>Both methods must be public.</LI>
- ** </OL>
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 26 Jul 1998
- **/
-
-public class PropertyDescriptor extends FeatureDescriptor {
- Class propertyType;
- Method getMethod;
- Method setMethod;
-
- Class propertyEditorClass;
- boolean bound;
- boolean constrained;
-
- PropertyDescriptor(String name) {
- setName(name);
- }
-
- /** Create a new PropertyDescriptor by introspection.
- ** This form of constructor creates the PropertyDescriptor by
- ** looking for a getter method named <CODE>get&lt;name&gt;()</CODE>
- ** (or, optionally, if the property is boolean,
- ** <CODE>is&lt;name&gt;()</CODE>) and
- ** <CODE>set&lt;name&gt;()</CODE> in class
- ** <CODE>&lt;beanClass&gt;</CODE>, where &lt;name&gt; has its
- ** first letter capitalized by the constructor.<P>
- **
- ** <B>Implementation note:</B> If there is a get method (or
- ** boolean isXXX() method), then the return type of that method
- ** is used to find the set method. If there is no get method,
- ** then the set method is searched for exhaustively.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get method and multiple set methods with
- ** the same name and a single parameter (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Class beanClass) throws IntrospectionException {
- setName(name);
- String capitalized;
- try {
- capitalized = Character.toUpperCase(name.charAt(0)) + name.substring(1);
- } catch(StringIndexOutOfBoundsException e) {
- capitalized = "";
- }
- findMethods(beanClass, "is" + capitalized, "get" + capitalized, "set" + capitalized);
- }
-
- /** Create a new PropertyDescriptor by introspection.
- ** This form of constructor allows you to specify the
- ** names of the get and set methods to search for.<P>
- **
- ** <B>Implementation note:</B> If there is a get method (or
- ** boolean isXXX() method), then the return type of that method
- ** is used to find the set method. If there is no get method,
- ** then the set method is searched for exhaustively.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get method and multiple set methods with
- ** the same name and a single parameter (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @param getMethodName the name of the get method.
- ** @param setMethodName the name of the set method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Class beanClass, String getMethodName, String setMethodName) throws IntrospectionException {
- setName(name);
- findMethods(beanClass, getMethodName, null, setMethodName);
- }
-
- /** Create a new PropertyDescriptor using explicit Methods.
- ** Note that the methods will be checked for conformance to standard
- ** Property method rules, as described above at the top of this class.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param getMethod the get method.
- ** @param setMethod the set method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Method getMethod, Method setMethod) throws IntrospectionException {
- setName(name);
- if(getMethod != null && getMethod.getParameterTypes().length > 0) {
- throw new IntrospectionException("get method has parameters");
- }
- if(setMethod != null && setMethod.getParameterTypes().length != 1) {
- throw new IntrospectionException("set method does not have exactly one parameter");
- }
- if(getMethod != null && setMethod != null) {
- if(!getMethod.getReturnType().equals(setMethod.getParameterTypes()[0])) {
- throw new IntrospectionException("set and get methods do not share the same type");
- }
- if(!getMethod.getDeclaringClass().isAssignableFrom(setMethod.getDeclaringClass())
- && !setMethod.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass())) {
- throw new IntrospectionException("set and get methods are not in the same class.");
- }
- }
- this.getMethod = getMethod;
- this.setMethod = setMethod;
- if(getMethod != null) {
- this.propertyType = getMethod.getReturnType();
- } else {
- this.propertyType = setMethod.getParameterTypes()[0];
- }
- }
-
- /** Get the property type.
- ** This is the type the get method returns and the set method
- ** takes in.
- **/
- public Class getPropertyType() {
- return propertyType;
- }
-
- /** Get the get method. Why they call it readMethod here and
- ** get everywhere else is beyond me.
- **/
- public Method getReadMethod() {
- return getMethod;
- }
-
- /** Get the set method. Why they call it writeMethod here and
- ** set everywhere else is beyond me.
- **/
- public Method getWriteMethod() {
- return setMethod;
- }
-
- /** Get whether the property is bound. Defaults to false. **/
- public boolean isBound() {
- return bound;
- }
-
- /** Set whether the property is bound.
- ** As long as the the bean implements addPropertyChangeListener() and
- ** removePropertyChangeListener(), setBound(true) may safely be called.<P>
- ** If these things are not true, then the behavior of the system
- ** will be undefined.<P>
- **
- ** When a property is bound, its set method is required to fire the
- ** <CODE>PropertyChangeListener.propertyChange())</CODE event
- ** after the value has changed.
- ** @param bound whether the property is bound or not.
- **/
- public void setBound(boolean bound) {
- this.bound = bound;
- }
-
- /** Get whether the property is constrained. Defaults to false. **/
- public boolean isConstrained() {
- return constrained;
- }
-
- /** Set whether the property is constrained.
- ** If the set method throws <CODE>java.beans.PropertyVetoException</CODE>
- ** (or subclass thereof) and the bean implements addVetoableChangeListener()
- ** and removeVetoableChangeListener(), then setConstrained(true) may safely
- ** be called. Otherwise, the system behavior is undefined.
- ** <B>Spec note:</B> given those strict parameters, it would be nice if it
- ** got set automatically by detection, but oh well.<P>
- ** When a property is constrained, its set method is required to:<P>
- ** <OL>
- ** <LI>Fire the <CODE>VetoableChangeListener.vetoableChange()</CODE>
- ** event notifying others of the change and allowing them a chance to
- ** say it is a bad thing.</LI>
- ** <LI>If any of the listeners throws a PropertyVetoException, then
- ** it must fire another vetoableChange() event notifying the others
- ** of a reversion to the old value (though, of course, the change
- ** was never made). Then it rethrows the PropertyVetoException and
- ** exits.</LI>
- ** <LI>If all has gone well to this point, the value may be changed.</LI>
- ** </OL>
- ** @param constrained whether the property is constrained or not.
- **/
- public void setConstrained(boolean constrained) {
- this.constrained = constrained;
- }
-
- /** Get the PropertyEditor class. Defaults to null. **/
- public Class getPropertyEditorClass() {
- return propertyEditorClass;
- }
-
- /** Set the PropertyEditor class. If the class does not implement
- ** the PropertyEditor interface, you will likely get an exception
- ** late in the game.
- ** @param propertyEditorClass the PropertyEditor class for this class to use.
- **/
- public void setPropertyEditorClass(Class propertyEditorClass) {
- this.propertyEditorClass = propertyEditorClass;
- }
-
- private void findMethods(Class beanClass, String getMethodName1, String getMethodName2, String setMethodName) throws IntrospectionException {
- try {
- if(getMethodName1 != null) {
- try {
- getMethod = beanClass.getMethod(getMethodName1, new Class[0]);
- } catch(NoSuchMethodException E) {
- }
- if(getMethodName2 != null) {
- if(getMethod != null && !getMethod.getReturnType().equals(java.lang.Boolean.TYPE)) {
- // If the is() method exists but isn't boolean, we'll just go on and look for
- // an ordinary get() method.
- getMethod = null;
- }
-
- Method getMethod2;
- try {
- getMethod2 = beanClass.getMethod(getMethodName2, new Class[0]);
- } catch(NoSuchMethodException E) {
- getMethod2 = null;
- }
- if(getMethod2 != null) {
- if(getMethod != null) {
- if(!getMethod.getReturnType().equals(getMethod2.getReturnType())) {
- throw new IntrospectionException("Both " + getMethodName1 + " and " + getMethodName2 + " exist, and have contradictory return types.");
- }
- } else {
- getMethod = getMethod2;
- }
- }
- }
- }
-
- if(getMethod != null) {
- propertyType = getMethod.getReturnType();
- if(setMethodName != null) {
- Class[] setArgs = new Class[1];
- setArgs[0] = propertyType;
- try {
- setMethod = beanClass.getMethod(setMethodName, setArgs);
- if(!setMethod.getReturnType().equals(java.lang.Void.TYPE)) {
- throw new IntrospectionException(setMethodName + " has non-void return type");
- }
- } catch(NoSuchMethodException E) {
- }
- }
- } else if(setMethodName != null) {
- Method[] m = beanClass.getMethods();
- for(int i=0;i<m.length;i++) {
- Method current = m[i];
- if(current.getName().equals(setMethodName)
- && current.getParameterTypes().length == 1
- && current.getReturnType().equals(java.lang.Void.TYPE)) {
- if(setMethod != null) {
- throw new IntrospectionException("Multiple, different set methods found that fit the bill!");
- } else {
- setMethod = current;
- propertyType = current.getParameterTypes()[0];
- }
- }
- }
- if(setMethod == null) {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
- } else {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
- } catch(SecurityException E) {
- throw new IntrospectionException("SecurityException thrown on attempt to access methods.");
- }
- }
-}
diff --git a/libjava/java/beans/PropertyEditor.java b/libjava/java/beans/PropertyEditor.java
deleted file mode 100644
index b861b52cc4a..00000000000
--- a/libjava/java/beans/PropertyEditor.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/* java.beans.PropertyEditor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** PropertyEditors are custom GUI editors for specific types of values.
- **
- ** A PropertyEditor can be used, for example, if you are editing a type of value
- ** that can be more easily represented graphically, such as a Point, or one that
- ** can be more easily represented by a list, such as a boolean (true/false).<P>
- **
- ** A PropertyEditor must be able to display its contents when asked to and
- ** be able to allow the user to change its underlying field value. However, it
- ** is not the PropertyEditor's responsibility to make the change to the
- ** underlying Object; in fact, the PropertyEditor does not even know about the
- ** Object it is actually editing--only about the property it is currently
- ** editing. When a change is made to the property, the PropertyEditor must
- ** simply fire a PropertyChangeEvent and allow the RAD tool to actually set
- ** the property in the underlying Bean.<P>
- **
- ** PropertyEditors should not change the Objects they are given by setValue().
- ** These Objects may or may not be the actual Objects which are properties of
- ** the Bean being edited. Instead, PropertyEditors should create a new Object
- ** and fire a PropertyChangeEvent with the old and new values.<P>
- **
- ** PropertyEditors also must support the ability to return a Java
- ** initialization string. See the getJavaInitializationString() method for
- ** details.<P>
- **
- ** There are several different ways a PropertyEditor may display and control
- ** editing of its value. When multiple types of input and display are
- ** given by a single PropertyEditor, the RAD tool may decide which of the call
- ** to support. Some RAD tools may even be text-only, so even if you support
- ** a graphical set and get, it may choose the text set and get whenever it can.
- ** <OL>
- ** <LI>Every PropertyEditor must support getValue() and setValue(). For
- ** setValue(), the component must only support it when the argument is
- ** the same type that the PropertyEditor supports.</LI>
- ** <LI>Every PropertyEditor must support getJavaInitializationString().</LI>
- ** <LI>You may support painting the value yourself if you wish. To do this,
- ** have isPaintable() return true and implement the paintValue() method.
- ** This method does not determine in any way how the value is edited;
- ** merely how it is displayed.</LI>
- ** <LU>Let the caller of the PropertyEditor give the user a text input. Do
- ** this by returning a non-null String from getAsText(). If you support
- ** text input, you *must* support setAsText().</LI>
- ** <LI>Give the caller a set of possible values, such as "true"/"false", that
- ** the user must select from. To do this, return the list of Strings
- ** from the getTags() method. The RAD tool may choose to implement the
- ** user input any way it wishes, and only guarantees that setAsText() will
- ** only be called with one of the Strings returned from getTags().</LI>
- ** <LI>You may support a whole custom editing control by supporting
- ** getCustomEditor(). To do this, return true from supportsCustomEditor()
- ** and return a Component that does the job. It is the component's job,
- ** or the PropertyEditor's job, to make sure that when the editor changes
- ** its value, the PropertyChangeEvent is thrown.</LI>
- ** </OL>
- **
- ** The PropertyEditor for a particular Bean can be found using the
- ** PropertyEditorManager class, which goes through a series of different
- ** checks to find the appropriate class.<P>
- **
- ** A PropertyChangeEvent should be thrown from the PropertyEditor whenever a
- ** bound property (a property PropertyDescriptor.isBound() set to true)
- ** changes. When this happens, the editor itself should *not* change the value
- ** itself, but rather allow the RAD tool to call setValue() or setAsText().
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 30 June 1998
- ** @see java.beans.PropertyEditorManager
- ** @see java.beans.PropertyEditorSupport
- **/
-
-public interface PropertyEditor {
- /** Called by the RAD tool to set the value of this property for the PropertyEditor.
- ** If the property type is native, it should be wrapped in the appropriate
- ** wrapper type.
- ** @param value the value to set this property to.
- **/
- public abstract void setValue(Object value);
-
- /** Accessor method to get the current value the PropertyEditor is working with.
- ** If the property type is native, it will be wrapped in the appropriate
- ** wrapper type.
- ** @return the current value of the PropertyEditor.
- **/
- public abstract Object getValue();
-
-
- /** Set the value of this property using a String.
- ** Whether or not this PropertyEditor is editing a String type, this converts
- ** the String into the type of the PropertyEditor.
- ** @param text the text to set it to.
- ** @exception IllegalArgumentException if the String is in the wrong format or setAsText() is not supported.
- **/
- public abstract void setAsText(String text) throws IllegalArgumentException;
-
- /** Get the value of this property in String format.
- ** Many times this can simply use Object.toString().<P>
- ** Return null if you do not support getAsText()/setAsText().
- ** <code>setAsText(getAsText())</code> should be valid; i.e. the stuff you spit out in
- ** getAsText() should be able to go into setAsText().
- ** @return the value of this property in String format.
- **/
- public abstract String getAsText();
-
- /** Get a list of possible Strings which this property type can have.
- ** The value of these will be used by the RAD tool to construct some sort
- ** of list box or to check text box input, and the resulting String passed
- ** to setAsText() should be one of these. Note, however, that like most things
- ** with this mammoth, unwieldy interface, this is not guaranteed. Thus, you
- ** must check the value in setAsText() anyway.
- ** @return the list of possible String values for this property type.
- **/
- public abstract String[] getTags();
-
-
- /** The RAD tool calls this to find out whether the PropertyEditor can paint itself.
- ** @return true if it can paint itself graphically, false if it cannot.
- **/
- public abstract boolean isPaintable();
-
- /** The RAD tool calls this to paint the actual value of the property.
- ** The Graphics context will have the same current font, color, etc. as the
- ** parent Container. You may safely change the font, color, etc. and not
- ** change them back.<P>
- ** This method should do a silent no-op if isPaintable() is false.
- ** @param g the Graphics context to paint on
- ** @param bounds the rectangle you have reserved to work in
- **/
- public abstract void paintValue(java.awt.Graphics g, java.awt.Rectangle bounds);
-
-
- /** The RAD tool calls this to find out whether the PropertyEditor supports a custom component to edit and display itself.
- ** @return true if getCustomEditor() will return a component, false if not.
- **/
- public abstract boolean supportsCustomEditor();
-
- /** The RAD tool calls this to grab the component that can edit this type.
- ** The component may be painted anywhere the RAD tool wants to paint it--
- ** even in its own window.<P>
- ** The component must hook up with the PropertyEditor and, whenever a
- ** change to the value is made, fire a PropertyChangeEvent to the source.<P>
- ** @return the custom editor for this property type.
- **/
- public abstract java.awt.Component getCustomEditor();
-
-
- /** Adds a property change listener to this PropertyEditor.
- ** @param listener the listener to add
- **/
- public abstract void addPropertyChangeListener(PropertyChangeListener listener);
-
- /** Removes a property change listener from this PropertyEditor.
- ** @param listener the listener to remove
- **/
- public abstract void removePropertyChangeListener(PropertyChangeListener listener);
-
- /** Get a Java language-specific String which could be used to create an Object
- ** of the specified type. Every PropertyEditor must support this.<P>
- ** The reason for this is that while most RAD tools will serialize the Beans
- ** and deserialize them at runtime, some RAD tools will generate code that
- ** creates the Beans. Examples of Java initialization strings would be:<P>
- ** <OL>
- ** <LI><CODE>2</CODE></LI>
- ** <LI><CODE>"I am a String"</CODE></LI>
- ** <LI><CODE>new MyObject(2, "String", new StringBuffer())</CODE></LI>
- ** </OL>
- ** @return the initialization string for this object in Java.
- **/
- public abstract String getJavaInitializationString();
-}
diff --git a/libjava/java/beans/PropertyEditorManager.java b/libjava/java/beans/PropertyEditorManager.java
deleted file mode 100644
index b64b2a83b7c..00000000000
--- a/libjava/java/beans/PropertyEditorManager.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* java.beans.PropertyEditorManager
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import gnu.java.lang.ClassHelper;
-
-/**
- ** PropertyEditorManager is used to find property editors
- ** for various types (not necessarily Beans).<P>
- **
- ** It first checks to see if the property editor is
- ** already registered; if it is, that property editor is
- ** used. Next it takes the type's classname and appends
- ** "Editor" to it, and searches first in the class's
- ** package and then in the property editor search path.<P>
- **
- ** Default property editors are provided for:<P>
- ** <OL>
- ** <LI>boolean, byte, short, int, long, float, and double</LI>
- ** <LI>java.lang.String</LI>
- ** <LI>java.awt.Color</LI>
- ** <LI>java.awt.Font</LI>
- ** <OL>
- **
- ** <STRONG>Spec Suggestion:</STRONG> Perhaps an editor for
- ** Filename or something like it should be provided. As well
- ** as char.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class PropertyEditorManager {
- static java.util.Hashtable editors = new java.util.Hashtable();
- static String[] editorSearchPath = {"gnu.java.beans.editors","sun.beans.editors"};
-
- static {
- registerEditor(java.lang.Boolean.TYPE, gnu.java.beans.editors.NativeBooleanEditor.class);
- registerEditor(java.lang.Byte.TYPE, gnu.java.beans.editors.NativeByteEditor.class);
- registerEditor(java.lang.Short.TYPE, gnu.java.beans.editors.NativeShortEditor.class);
- registerEditor(java.lang.Integer.TYPE, gnu.java.beans.editors.NativeIntEditor.class);
- registerEditor(java.lang.Long.TYPE, gnu.java.beans.editors.NativeLongEditor.class);
- registerEditor(java.lang.Float.TYPE, gnu.java.beans.editors.NativeFloatEditor.class);
- registerEditor(java.lang.Double.TYPE, gnu.java.beans.editors.NativeDoubleEditor.class);
- registerEditor(java.lang.String.class, gnu.java.beans.editors.StringEditor.class);
- registerEditor(java.awt.Color.class, gnu.java.beans.editors.ColorEditor.class);
- registerEditor(java.awt.Font.class, gnu.java.beans.editors.FontEditor.class);
- }
-
- /** Beats me why this class can be instantiated, but there
- ** you have it.
- **/
- public PropertyEditorManager() { }
-
- /** Register an editor for a class. Replaces old editor
- ** if there was one registered before.
- ** @param editedClass the class that the property editor
- ** will edit.
- ** @param editorClass the PropertyEditor class.
- **/
- public static void registerEditor(Class editedClass, Class editorClass) {
- editors.put(editedClass, editorClass);
- }
-
- /** Returns a new instance of the property editor for the
- ** specified class.
- ** @param editedClass the class that the property editor
- ** will edit.
- ** @return a PropertyEditor instance that can edit the
- ** specified class.
- **/
- public static PropertyEditor findEditor(Class editedClass) {
- try {
-
- Class found = (Class)editors.get(editedClass);
- if(found != null) {
- return (PropertyEditor)found.newInstance();
- }
-
- try {
- found = Class.forName(editedClass.getName()+"Editor");
- registerEditor(editedClass,found);
- return (PropertyEditor)found.newInstance();
- } catch(ClassNotFoundException E) {
- }
-
- String appendName = "." + ClassHelper.getTruncatedClassName(editedClass) + "Editor";
- synchronized(editorSearchPath) {
- for(int i=0;i<editorSearchPath.length;i++) {
- try {
- found = Class.forName(editorSearchPath[i] + appendName);
- registerEditor(editedClass,found);
- return (PropertyEditor)found.newInstance();
- } catch(ClassNotFoundException E) {
- }
- }
- }
-
- } catch(InstantiationException E) {
- } catch(IllegalAccessException E) {
- }
- return null;
- }
-
- /** Get the editor search path.
- ** As a minor departure from the spec, the default value
- ** for the editor search path is "gnu.java.beans.editors",
- ** "sun.beans.editors".
- ** @return the editor search path.
- **/
- public static String[] getEditorSearchPath() {
- return editorSearchPath;
- }
-
- /** Set the editor search path.
- ** @param editorSearchPath the new value for the editor
- ** search path.
- **/
- public static void setEditorSearchPath(String[] editorSearchPath) {
- synchronized(editorSearchPath) {
- PropertyEditorManager.editorSearchPath = editorSearchPath;
- }
- }
-}
diff --git a/libjava/java/beans/PropertyEditorSupport.java b/libjava/java/beans/PropertyEditorSupport.java
deleted file mode 100644
index 6fadaccb8c6..00000000000
--- a/libjava/java/beans/PropertyEditorSupport.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/* java.beans.PropertyEditorSupport
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** PropertyEditorSupport helps with PropertyEditors,
- ** implementing base functionality that they usually must
- ** have but which is a pain to implement. You may extend
- ** from this class or use it as a standalone.<P>
- **
- ** This class does not do any painting or actual editing.
- ** For that, you must use or extend it. See the
- ** PropertyEditor class for better descriptions of what
- ** the various methods do.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- **/
-
-public class PropertyEditorSupport implements PropertyEditor {
- Object eventSource;
- Object val;
- PropertyChangeSupport pSupport;
-
- /** Call this constructor when you are deriving from
- ** PropertyEditorSupport.
- **/
- protected PropertyEditorSupport() {
- this.eventSource = this;
- this.pSupport = new PropertyChangeSupport(this);
- }
-
- /** Call this constructor when you are using
- ** PropertyEditorSupport as a helper object.
- ** @param eventSource the source to use when firing
- ** property change events.
- **/
- protected PropertyEditorSupport(Object eventSource) {
- this.eventSource = eventSource;
- this.pSupport = new PropertyChangeSupport(this);
- }
-
- /** Set the current value of the property.
- ** <STRONG>Implementation Note</STRONG> Sun does not
- ** state what exactly this version of the method does.
- ** Thus, in this implementation, it sets the value, and
- ** then if the old and new values are different, it
- ** fires a property change event with no property name
- ** and the old and new values.
- ** @param val the new value for the property.
- **/
- public void setValue(Object val) {
- Object oldVal = val;
- this.val = val;
- if(!oldVal.equals(val)) {
- pSupport.firePropertyChange(null,oldVal,val);
- }
- }
-
- /** Get the current value of the property.
- ** @return the current value of the property.
- **/
- public Object getValue() {
- return val;
- }
-
- /** Get whether this object is paintable or not.
- ** @return <CODE>false</CODE>
- **/
- public boolean isPaintable() {
- return false;
- }
-
- /** Paint this object. This class does nothing in
- ** this method.
- **/
- public void paintValue(java.awt.Graphics g, java.awt.Rectangle r) {
- }
-
- /** Get the Java initialization String for the current
- ** value of the Object. This class returns gibberish or
- ** null (though the spec does not say which).<P>
- ** <STRONG>Implementation Note:</STRONG> This class
- ** returns the string "@$#^" to make sure the code will
- ** be broken, so that you will know to override it when
- ** you create your own property editor.
- ** @return the Java initialization string.
- **/
- public String getJavaInitializationString() {
- return "@$#^";
- }
-
- /** Get the value as text.
- ** In this class, you cannot count on getAsText() doing
- ** anything useful, although in this implementation I
- ** do toString().
- ** @return the value as text.
- **/
- public String getAsText() {
- return val != null ? val.toString() : "null";
- }
-
- /** Set the value as text.
- ** In this class, you cannot count on setAsText() doing
- ** anything useful across implementations.
- ** <STRONG>Implementation Note:</STRONG> In this
- ** implementation it checks if the String is "null", and
- ** if it is, sets the value to null, otherwise it throws
- ** an IllegalArgumentException.
- ** @param s the text to convert to a new value.
- ** @exception IllegalArgumentException if the text is
- ** malformed.
- **/
- public void setAsText(String s) throws IllegalArgumentException {
- if(s.equals("null")) {
- setValue(null);
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- /** Returns a list of possible choices for the value.
- ** @return <CODE>null</CODE>
- **/
- public String[] getTags() {
- return null;
- }
-
- /** Return a custom component to edit the value.
- ** @return <CODE>null</CODE> in this class.
- **/
- public java.awt.Component getCustomEditor() {
- return null;
- }
-
- /** Find out whether this property editor supports a
- ** custom component to edit its value.
- ** @return <CODE>false</CODE> in this class.
- **/
- public boolean supportsCustomEditor() {
- return false;
- }
-
- /** Add a property change listener to this property editor.
- ** @param l the listener to add.
- **/
- public void addPropertyChangeListener(PropertyChangeListener l) {
- pSupport.addPropertyChangeListener(l);
- }
-
- /** Remove a property change listener from this property editor.
- ** @param l the listener to remove.
- **/
- public void removePropertyChangeListener(PropertyChangeListener l) {
- pSupport.removePropertyChangeListener(l);
- }
-
-
- /** Notify people that we've changed, although we don't
- ** tell them just how. The only thing I can think of to
- ** send in the event is the new value (since the old value
- ** is unavailable and there is no property name).
- ** I confess I do not understand the point of this method.
- **/
- public void firePropertyChange() {
- pSupport.firePropertyChange(null,null,val);
- }
-}
-
diff --git a/libjava/java/beans/PropertyVetoException.java b/libjava/java/beans/PropertyVetoException.java
deleted file mode 100644
index daad0105c79..00000000000
--- a/libjava/java/beans/PropertyVetoException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* java.beans.PropertyVetoException
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** PropertyVetoException is thrown when a VetoableChangeListener doesn't like the proposed change.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- ** @see java.beans.VetoableChangeListener
- **/
-
-public class PropertyVetoException extends Exception {
- PropertyChangeEvent evt;
-
- private static final long serialVersionUID = 129596057694162164L;
-
- /** Instantiate this exception with the given message and property change.
- ** @param msg the reason for the veto.
- ** @param changeEvent the PropertyChangeEvent that was thrown.
- **/
- public PropertyVetoException(String msg, PropertyChangeEvent changeEvent) {
- super(msg);
- evt = changeEvent;
- }
-
- /** Get the PropertyChange event that was vetoed. **/
- public PropertyChangeEvent getPropertyChangeEvent() {
- return evt;
- }
-}
diff --git a/libjava/java/beans/SimpleBeanInfo.java b/libjava/java/beans/SimpleBeanInfo.java
deleted file mode 100644
index e8b67778792..00000000000
--- a/libjava/java/beans/SimpleBeanInfo.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/* java.beans.SimpleBeanInfo
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-import java.awt.*;
-
-/**
- ** SimpleBeanInfo is a class you may extend to more easily
- ** provide select information to the Introspector. It
- ** implements all of the methods in BeanInfo by returning
- ** null and forces the Introspector to behave exactly as
- ** if there were no BeanInfo class at all (Introspecting
- ** everything).<P>
- **
- ** Overriding one or two of these functions
- ** to give explicit information on only those things you
- ** wish to give explicit information is perfectly safe,
- ** and even desirable.<P>
- **
- ** See the BeanInfo class for information on what the
- ** various methods actually do.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 29 Jul 1998
- ** @see java.beans.BeanInfo
- **/
-
-public class SimpleBeanInfo implements BeanInfo {
- /** Force Introspection of the general bean info.
- ** @return <CODE>null</CODE>.
- **/
- public BeanDescriptor getBeanDescriptor() {
- return null;
- }
-
- /** Force Introspection of the events this Bean type
- ** fires.
- ** @return <CODE>null</CODE>
- **/
- public EventSetDescriptor[] getEventSetDescriptors() {
- return null;
- }
-
- /** Say that there is no "default" event set.
- ** @return <CODE>-1</CODE>.
- **/
- public int getDefaultEventIndex() {
- return -1;
- }
-
- /** Force Introspection of the Bean properties.
- ** @return <CODE>null</CODE>.
- **/
- public PropertyDescriptor[] getPropertyDescriptors() {
- return null;
- }
-
- /** Say that there is no "default" property.
- ** @return <CODE>-1</CODE>.
- **/
- public int getDefaultPropertyIndex() {
- return -1;
- }
-
- /** Force Introspection of the Bean's methods.
- ** @return <CODE>null</CODE>.
- **/
- public MethodDescriptor[] getMethodDescriptors() {
- return null;
- }
-
- /** Tell the Introspector to go look for other BeanInfo
- ** itself.
- ** @return <CODE>null</CODE>.
- **/
- public BeanInfo[] getAdditionalBeanInfo() {
- return null;
- }
-
- /** Say that this Bean has no icons.
- ** @param iconType the type of icon
- ** @return <CODE>null</CODE>.
- **/
- public Image getIcon(int iconType) {
- return null;
- }
-
- /** Helper method to load an image using the Bean class
- ** getResource() method on the BeanInfo class (using
- ** getClass(), since you'll extend this class to get
- ** the BeanInfo). Basically it's assumed that the Bean
- ** and its BeanInfo are both loaded by the same
- ** ClassLoader, generally a reasonable assumption.
- ** @param location the URL relative
- ** @return the Image in question.
- **/
- public Image loadImage(String location) {
- return Toolkit.getDefaultToolkit().getImage(getClass().getResource(location));
- }
-}
-
diff --git a/libjava/java/beans/VetoableChangeListener.java b/libjava/java/beans/VetoableChangeListener.java
deleted file mode 100644
index 253d712dcce..00000000000
--- a/libjava/java/beans/VetoableChangeListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* java.beans.VetoableChangeListener
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- ** VetoableChangeListener allows a class to monitor
- ** proposed changes to properties of a Bean and, if
- ** desired, prevent them from occurring.<P>
- **
- ** A vetoableChange() event will be fired <EM>before</EM>
- ** the property has changed. If any listener rejects the
- ** change by throwing the PropertyChangeException, a new
- ** vetoableChange() event will be fired to all listeners
- ** who received a vetoableChange() event in the first
- ** place informing them of a reversion to the old value.
- ** The value, of course, never actually changed.<P>
- **
- ** <STRONG>Note:</STRONG> This class may not be reliably
- ** used to determine whether a property has actually
- ** changed. Use the PropertyChangeListener interface
- ** for that instead.
- **
- ** @author John Keiser
- ** @version 1.1.0, 29 Jul 1998
- ** @since JDK1.1
- ** @see java.beans.PropertyChangeListener
- ** @see java.beans.VetoableChangeSupport
- **/
-
-public interface VetoableChangeListener {
- /** Fired before a Bean's property changes.
- ** @param e the change (containing the old and new values)
- ** @exception PropertyChangeException if the listener
- ** does not desire the change to be made.
- **/
- public abstract void vetoableChange(PropertyChangeEvent e) throws PropertyVetoException;
-}
diff --git a/libjava/java/beans/VetoableChangeSupport.java b/libjava/java/beans/VetoableChangeSupport.java
deleted file mode 100644
index 6d0ff0c0acb..00000000000
--- a/libjava/java/beans/VetoableChangeSupport.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * java.beans.VetoableChangeSupport: part of the Java Class Libraries project.
- * Copyright (C) 1998 Free Software Foundation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-package java.beans;
-import java.util.Hashtable;
-import java.util.Vector;
-
-/**
- ** VetoableChangeSupport makes it easy to fire vetoable
- ** change events and handle listeners as well as reversion
- ** of old values when things go wrong.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.2.0, 15 Mar 1998
- **/
-
-public class VetoableChangeSupport implements java.io.Serializable {
- Hashtable propertyListeners = new Hashtable();
- Vector listeners = new Vector();
- Object bean;
-
- /** Create VetoableChangeSupport to work with a specific
- ** source bean.
- ** @param bean the source bean to use.
- **/
- public VetoableChangeSupport(Object bean) {
- this.bean = bean;
- }
-
- /** Adds a VetoableChangeListener to the list of listeners.
- ** All property change events will be sent to this listener.
- ** <P>
- **
- ** The listener add is not unique: that is, <em>n</em> adds with
- ** the same listener will result in <em>n</em> events being sent
- ** to that listener for every property change.
- ** <P>
- **
- ** Adding a null listener will cause undefined behavior.
- **
- ** @param l the listener to add.
- **/
- public void addVetoableChangeListener(VetoableChangeListener l) {
- listeners.addElement(l);
- }
-
- /** Adds a VetoableChangeListener listening on the specified property.
- ** Events will be sent to the listener for that particular property.
- ** <P>
- **
- ** The listener add is not unique; that is, <em>n</em> adds on a
- ** particular property for a particular listener will result in
- ** <em>n</em> events being sent to that listener when that
- ** property is changed.
- ** <P>
- **
- ** The effect is cumulative, too; if you are registered to listen
- ** to receive events on all property changes, and then you
- ** register on a particular property, you will receive change
- ** events for that property twice.
- ** <P>
- **
- ** Adding a null listener will cause undefined behavior.
- **
- ** @param propertyName the name of the property to listen on.
- ** @param l the listener to add.
- **/
- public void addVetoableChangeListener(String propertyName, VetoableChangeListener l) {
- synchronized(propertyListeners) {
- Vector v = (Vector)propertyListeners.get(propertyName);
- try {
- v.addElement(l);
- } catch(NullPointerException e) {
- /* If v is not found, create a new vector. */
- v = new Vector();
- v.addElement(l);
- propertyListeners.put(propertyName, v);
- }
- }
- }
-
- /** Removes a VetoableChangeListener from the list of listeners.
- ** If any specific properties are being listened on, they must
- ** be deregistered by themselves; this will only remove the
- ** general listener to all properties.
- ** <P>
- **
- ** If <code>add()</code> has been called multiple times for a
- ** particular listener, <code>remove()</code> will have to be
- ** called the same number of times to deregister it.
- **
- ** @param l the listener to remove.
- **/
- public void removeVetoableChangeListener(VetoableChangeListener l) {
- listeners.removeElement(l);
- }
-
- /** Removes a VetoableChangeListener from listening to a specific property.
- ** <P>
- **
- ** If <code>add()</code> has been called multiple times for a
- ** particular listener on a property, <code>remove()</code> will
- ** have to be called the same number of times to deregister it.
- **
- ** @param propertyName the property to stop listening on.
- ** @param l the listener to remove.
- **/
- public void removeVetoableChangeListener(String propertyName, VetoableChangeListener l) {
- synchronized(propertyListeners) {
- Vector v = (Vector)propertyListeners.get(propertyName);
- try {
- v.removeElement(l);
- if(v.size() == 0) {
- propertyListeners.remove(propertyName);
- }
- } catch(NullPointerException e) {
- /* if v is not found, do nothing. */
- }
- }
- }
-
-
- /** Fire a VetoableChangeEvent to all the listeners.
- ** If any listener objects, a reversion event will be sent to
- ** those listeners who received the initial event.
- **
- ** @param proposedChange the event to send.
- ** @exception PropertyVetoException if the change is vetoed.
- **/
- public void fireVetoableChange(PropertyChangeEvent proposedChange) throws PropertyVetoException {
- int currentListener=0;
- try {
- for(;currentListener<listeners.size();currentListener++) {
- ((VetoableChangeListener)listeners.elementAt(currentListener)).vetoableChange(proposedChange);
- }
- } catch(PropertyVetoException e) {
- PropertyChangeEvent reversion = new PropertyChangeEvent(proposedChange.getSource(),proposedChange.getPropertyName(),proposedChange.getNewValue(),proposedChange.getOldValue());
- for(int sendAgain=0;sendAgain<currentListener;sendAgain++) {
- try {
- ((VetoableChangeListener)listeners.elementAt(sendAgain)).vetoableChange(reversion);
- } catch(PropertyVetoException e2) {
- }
- }
- throw e;
- }
-
- Vector moreListeners = (Vector)propertyListeners.get(proposedChange.getPropertyName());
- if(moreListeners != null) {
- try {
- for(currentListener = 0; currentListener < moreListeners.size(); currentListener++) {
- ((VetoableChangeListener)moreListeners.elementAt(currentListener)).vetoableChange(proposedChange);
- }
- } catch(PropertyVetoException e) {
- PropertyChangeEvent reversion = new PropertyChangeEvent(proposedChange.getSource(),proposedChange.getPropertyName(),proposedChange.getNewValue(),proposedChange.getOldValue());
- for(int sendAgain=0;sendAgain<listeners.size();sendAgain++) {
- try {
- ((VetoableChangeListener)listeners.elementAt(currentListener)).vetoableChange(proposedChange);
- } catch(PropertyVetoException e2) {
- }
- }
-
- for(int sendAgain=0;sendAgain<currentListener;sendAgain++) {
- try {
- ((VetoableChangeListener)moreListeners.elementAt(sendAgain)).vetoableChange(reversion);
- } catch(PropertyVetoException e2) {
- }
- }
- throw e;
- }
- }
- }
-
- /** Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
- ** If any listener objects, a reversion event will be sent to
- ** those listeners who received the initial event.
- **
- ** @param propertyName the name of the property that
- ** changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- ** @exception PropertyVetoException if the change is vetoed.
- **/
- public void fireVetoableChange(String propertyName, Object oldVal, Object newVal) throws PropertyVetoException {
- fireVetoableChange(new PropertyChangeEvent(bean,propertyName,oldVal,newVal));
- }
-
- /** Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
- ** If any listener objects, a reversion event will be sent to
- ** those listeners who received the initial event.
- **
- ** @param propertyName the name of the property that
- ** changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- ** @exception PropertyVetoException if the change is vetoed.
- **/
- public void fireVetoableChange(String propertyName, boolean oldVal, boolean newVal) throws PropertyVetoException {
- fireVetoableChange(new PropertyChangeEvent(bean,propertyName,new Boolean(oldVal),new Boolean(newVal)));
- }
-
- /** Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
- ** If any listener objects, a reversion event will be sent to
- ** those listeners who received the initial event.
- **
- ** @param propertyName the name of the property that
- ** changed.
- ** @param oldVal the old value.
- ** @param newVal the new value.
- ** @exception PropertyVetoException if the change is vetoed.
- **/
- public void fireVetoableChange(String propertyName, int oldVal, int newVal) throws PropertyVetoException {
- fireVetoableChange(new PropertyChangeEvent(bean,propertyName,new Integer(oldVal),new Integer(newVal)));
- }
-
-
- /** Tell whether the specified property is being listened on or not.
- ** This will only return <code>true</code> if there are listeners
- ** on all properties or if there is a listener specifically on this
- ** property.
- **
- ** @param propertyName the property that may be listened on
- ** @return whether the property is being listened on
- **/
- public boolean hasListeners(String propertyName) {
- return listeners.size() > 0 || propertyListeners.get(propertyName) != null;
- }
-}
diff --git a/libjava/java/beans/Visibility.java b/libjava/java/beans/Visibility.java
deleted file mode 100644
index ca8c4040cec..00000000000
--- a/libjava/java/beans/Visibility.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* java.beans.Visibility
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans;
-
-/**
- * Visibility is an interface a Bean may implement so that the environment
- * can tell the Bean whether there is a GUI or not, and so that the Bean
- * can tell the environment whether it needs one or can run without one.
- * <P>
- *
- * Sun decided not to use standard Introspection patterns so that these
- * methods did not get included when the Introspector made its sweep on
- * the class.
- *
- * @author John Keiser
- * @since JDK1.1
- * @version 1.1.0, 29 Jul 1998
- */
-
-public interface Visibility {
- /**
- * Tells whether the Bean can run without a GUI or not.
- * @return false if Bean can run without a GUI, else true.
- */
- public abstract boolean needsGui();
-
- /**
- * Tells whether Bean is trying not to use the GUI.
- * If needsGui() is true, this method should always return false.
- * @return true if definitely not using GUI, otherwise false.
- */
- public abstract boolean avoidingGui();
-
- /**
- * Tells the Bean not to use GUI methods.
- * If needsGUI() is false, then after this method is called,
- * avoidingGui() should return true.
- */
- public abstract void dontUseGui();
-
- /**
- * Tells the Bean it may use the GUI.
- * The Bean is not required to use the GUI in this case, it is
- * merely being <EM>permitted</EM> to use it. If needsGui() is
- * false, avoidingGui() may return true or false after this method
- * is called.
- */
- public abstract void okToUseGui();
-}
diff --git a/libjava/java/beans/beancontext/BeanContext.java b/libjava/java/beans/beancontext/BeanContext.java
deleted file mode 100644
index d5274d85593..00000000000
--- a/libjava/java/beans/beancontext/BeanContext.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/* java.beans.beancontext.BeanContext
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.Collection;
-import java.beans.Visibility;
-import java.beans.DesignMode;
-import java.net.URL;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * Acts as a container for sub-beans and as a sub-bean,
- * so that an entire hierarchy of beans can be made up of
- * <code>BeanContext</code>s.
- * <P>
- *
- * Since I can't sprinkle the <code>Collections</code> interface
- * documentation with special information for <code>BeanContext</code>
- * implementors, I'll have to document special requirements for
- * implementors of those functions here.
- * <P>
- *
- * <code><strong>add()</strong></code> or <code>addAll()</code>:
- * <br>
- * <OL>
- * <LI>
- * May add any <code>Object</code> into the hierarchy as well as a
- * <code>BeanContextChild</code>, <code>BeanContext</code> or
- * <code>BeanContextProxy</code> object.
- * This way, any Bean can be in the hierarchy.
- * </LI>
- * <LI>
- * Must synchronize on <code>BeanContext.globalHierarchyLock</code>.
- * </LI>
- * <LI>
- * Don't add the <code>Object</code> if it's already there (only once
- * per <code>BeanContext</code>).
- * </LI>
- * <LI>
- * If it is a <code>BeanContextChild</code> implementor, call
- * <code>setBeanContext()</code> on it. If it's a
- * <code>BeanContextProxy</code> implementor, call
- * <code>getBeanContextProxy().setBeanContext()</code> on it.
- * If <code>setBeanContext()</code> vetoes the change, back out
- * all changes so far and throw <code>IllegalStateException</code>.
- * </LI>
- * <LI>
- * If it (or its proxy) implements <code>Visibility</code>, call
- * <code>dontUseGui()</code> or <code>okToUseGui()</code> on it,
- * depending on whether you (the <code>BeanContext</code>) feel like
- * allowing it to use the GUI or not.
- * </LI>
- * <LI>
- * If it implements <code>BeanContextChild</code> or
- * <code>BeanContextProxy</code>, register yourself (the
- * <code>BeanContext</code>) as both a
- * <code>PropertyChangeListener</code> and
- * <code>VetoableChangeListener</code> on the "beanContext"
- * property (it may also add itself on any other properties it wishes
- * to).
- * </LI>
- * <LI>
- * If it is a listener or event source that you (the
- * <code>BeanContext</code>) are interested in, you may register
- * yourself to it or register it to you.
- * </LI>
- * <LI>
- * Fire a <code>java.beans.beancontext.BeanContextMembershipEvent</code>
- * before exiting. <code>addAll()</code> should wait until everything
- * is done changing before firing the event (or events) so that if a
- * failure occurs, the backing-out process can proceed without any
- * events being fired at all.
- * </LI>
- * </OL>
- * <P>
- *
- * <code><strong>remove()</strong></code> or <code>removeAll()</code>:
- * <br>
- * <OL>
- * <LI>
- * Must synchronize on <code>BeanContext.globalHierarchyLock</code>.
- * </LI>
- * <LI>
- * If the specified <code>Object</code> is not a child of this
- * <code>BeanContext</code>, just exit without performing any actions.
- * </LI>
- * <LI>
- * Remove the <code>Object</code> from your collection of children.
- * </LI>
- * <LI>
- * If it is a <code>BeanContextChild</code> implementor, call
- * <code>setBeanContext(null)</code> on it. If it's a
- * <code>BeanContextProxy</code> implementor, call
- * <code>getBeanContextProxy().setBeanContext(null)</code> on it.
- * If <code>setBeanContext()</code> vetoes the change, back out
- * all changes so far and throw <code>IllegalStateException</code>.
- * </LI>
- * <LI>
- * If you registered the <code>Object</code> to listen to you or
- * registered yourself as a listener on the <code>Object</code> during
- * <code>add()</code> or <code>addAll()</code>, undo the registration
- * bycalling the appropriate <code>removeListener()</code> method.
- * </LI>
- * <LI>
- * Fire a <code>java.beans.beancontext.BeanContextMembershipEvent</code>
- * before exiting. <code>removeAll()</code> should wait until
- * everything is done changing before firing the event (or events) so
- * that if a failure occurs, the backing-out process can proceed
- * without any events being fired at all.
- * </LI>
- * </OL>
- * <P>
- *
- * <code>addAll()</code>, <code>removeAll()</code>,
- * <code>retainAll()</code> and <code>clear()</code> do not need to be
- * implemented, but may be if so desired.
- * <P>
- *
- * Similarly, <code>Visibility</code> and <code>DesignMode</code> methods
- * should propagate changed values to children that implement interfaces
- * of the same name.
- * <P>
- *
- * A hierarchy of beans is mainly useful so that different sets of beans
- * can be established, each with their own set of resources.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContext
- extends Collection, BeanContextChild, Visibility, DesignMode {
-
- /**
- * The global lock on changing any BeanContext hierarchy.
- * It kinda sucks that there is only one lock, since there can be
- * multiple hierarchies. Oh well, I didn't design, I just code.
- * <P>
- *
- * Methods that must (or do) synchronize on the global lock:
- * <BR>
- * <UL>
- * <LI>
- * Implementors of <CODE>BeanContext.add()</CODE> and <code>addAll()</code>
- * </LI>
- * </UL>
- * @fixme fill in the rest of the methods which use the global lock.
- */
- public static final Object globalHierarchyLock = new Object();
-
- /**
- * Instantiate a Bean using this Bean's <code>ClassLoader</code>
- * and this <code>BeanContext</code> as the parent.
- * <P>
- *
- * This method exists mainly so that <code>BeanContext</code>
- * implementations can perform extra actions on Beans that are
- * created within them.
- *
- * @param beanName the name of the bean to instantiate
- * @return the created Bean
- *
- * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String)
- * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String,java.lang.BeanContext)
- * @exception IOException if there is an I/O problem during
- * instantiation.
- * @exception ClassNotFoundException if a serialized Bean's class
- * is not found.
- */
- public Object instantiateChild(String beanName)
- throws IOException,
- ClassNotFoundException;
-
- /**
- * Get a resource. The <code>BeanContext</code> will typically
- * call <code>ClassLoader.getResource()</code>, but may do it any
- * way it wants to. This allows a <code>BeanContext</code> to
- * have its own set of resources separate from the rest of the
- * system.
- * <P>
- *
- * Beans should call this method on their parent rather than the
- * associated <code>ClassLoader</code> method.
- * <P>
- *
- * I am assuming, but am not entirely sure, that if a
- * <code>BeanContext</code> cannot find a resource, its
- * responsibility is to call the <code>getResource</code> method
- * of its parent <code>BeanContext</code>.
- *
- * @return a URL to the requested resource.
- * @param resourceName the name of the resource requested.
- * @param requestor a reference to the child requesting the resource.
- * @see java.lang.ClassLoader#getResource(java.lang.String)
- */
- public URL getResource(String resourceName, BeanContextChild requestor);
-
- /**
- * Get a resource as a stream. The <code>BeanContext</code> will
- * typically call <code>ClassLoader.getResourceAsStream()</code>,
- * but may do it any way it wants to. This allows a
- * <code>BeanContext</code>'s children to have their own set of
- * resources separate from the rest of the system.
- * <P>
- *
- * Beans should call this method on their parent rather than the
- * associated <code>ClassLoader</code> method.
- * <P>
- *
- * I am assuming, but am not entirely sure, that if a
- * <code>BeanContext</code> cannot find a resource, its
- * responsibility is to call the <code>getResourceAsStream</code>
- * method of its parent <code>BeanContext</code>.
- *
- * @return the requested resource as a stream.
- * @param resourceName the name of the resource requested.
- * @param requestor a reference to the child requesting the resource.
- * @see java.lang.ClassLoader#getResourceAsStream(java.lang.String)
- */
- public InputStream getResourceAsStream(String resourceName, BeanContextChild requestor);
-
- /**
- * Add a listener on changes to the membership of this
- * <code>BeanContext</code> object.
- * @param listener the listener to add.
- */
- public void addBeanContextMembershipListener(BeanContextMembershipListener listener);
-
- /**
- * Remove a listener on changes to the membership of this
- * <code>BeanContext</code> object.
- * @param listener the listener to remove.
- */
- public void removeBeanContextMembershipListener(BeanContextMembershipListener listener);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextChild.java b/libjava/java/beans/beancontext/BeanContextChild.java
deleted file mode 100644
index d8bcb5ef2fc..00000000000
--- a/libjava/java/beans/beancontext/BeanContextChild.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* java.beans.beancontext.BeanContextChild
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.beans.PropertyChangeListener;
-import java.beans.VetoableChangeListener;
-import java.beans.PropertyVetoException;
-
-/**
- * Beans implement this to get information about the execution environment and its services and to be placed in the hierarchy.
- * <P>
- *
- * The difference between a <code>BeanContext</code> and a
- * <code>BeanContextChild</code>, mainly, is that a
- * <code>BeanContext</code> may be a parent.
- * <P>
- *
- * <code>BeanContextChild</code> instances will be serialized at some
- * point in their life, but you need to make sure your bean context does
- * not contain a serializable reference (directly or indirectly) to the
- * parent <code>BeanContext</code>, to any of the other
- * <code>BeanContext</code>s in the tree, or to any resources obtained
- * via the <code>BeanContextServices</code> interface. One way to do this
- * is to mark any fields that contain such references as
- * <code>transient</code>. Another way is to use a custom serializer.
- * <P>
- *
- * If you do not do this, when the <code>BeanContext</code> is serialized,
- * all the other <code>BeanContext</code>s and other unnecessary things
- * will be serialized along with it.
- * <P>
- *
- * Before dying, a <code>BeanContextChild</code> should call
- * <code>getBeanContext().remove(this)</code> to detach from the
- * hierarchy and exit cleanly.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContext
- */
-
-public interface BeanContextChild {
- /**
- * Set the parent <code>BeanContext</code>.
- * <P>
- *
- * This method is called from <code>BeanContext.add()</code> and
- * should not be called directly.
- * <P>
- *
- * When this Object is being added to a new BeanContext or moved
- * from an old one, a non-null value will be passed in.
- * <P>
- *
- * When this Object is being removed from the current
- * <code>BeanContext</code>, <code>setBeanContext()</code> will
- * receive the parameter <code>null</code>.
- * <P>
- *
- * When being removed from the current <code>BeanContext</code>,
- * it is the <code>BeanContextChild</code>'s responsibility to
- * release all services it has obtained.
- * <P>
- *
- * This change should generate <code>PropertyChangeEvent</code>
- * and <code>VetoableChangeEvent</code>s with the property name
- * "beanContext". If the change is vetoed, it must re-throw the
- * exception and not change anything. In this way, the parent
- * <code>BeanContextChild</code>, who has registered himself with
- * you, will have a chance to remove this child from its
- * collection.
- * <P>
- *
- * If the Bean does not wish to change the parent or be removed
- * from one, it may throw the <code>PropertyVetoException</code>.
- * If you veto a <code>setBeanContext(null)</code> call, then you
- * should try your hardest to remedy whatever problem is keeping
- * you from being removed from the <code>BeanContext</code> so
- * that you can <em>not</em> veto it the next time.
- * Otherwise, nasty pathological recursion stuff could occur in
- * certain situations.
- * <P>
- *
- * If you do veto the change, you must first back out any changes
- * you made prior to the veto. Best not to make any such changes
- * prior to the veto in the first place.
- * <P>
- *
- * This method is called from <code>BeanContext.add()</code> and
- * should not be called directly.
- *
- * @param parent the new parent for the <code>BeanContextChild</code>,
- * or <code>null</code> to signify removal from a tree.
- * @exception PropertyVetoException if the
- * <code>BeanContextChild</code> implementor does not
- * wish to have its parent changed.
- */
- public void setBeanContext(BeanContext parent)
- throws PropertyVetoException;
-
- /**
- * Get the parent <code>BeanContext</code>.
- * @return the parent <code>BeanContext</code>.
- */
- public BeanContext getBeanContext();
-
- /**
- * Add a listener that will be notified when a specific property changes.
- * @param prop the name of the property to listen on
- * @param listener the listener to listen on the property.
- */
- public void addPropertyChangeListener(String prop, PropertyChangeListener listener);
-
- /**
- * Remove a listener to a certain property.
- * @param prop the name of the property being listened on
- * @param listener the listener listening on the property.
- */
- public void removePropertyChangeListener(String prop, PropertyChangeListener listener);
-
- /**
- * Add a listener that will be notified when a specific property
- * change is requested (a PropertyVetoException may be thrown) as
- * well as after the change is successfully made.
- *
- * @param prop the name of the property to listen on
- * @param listener the listener to listen on the property.
- */
- public void addVetoableChangeListener(String prop, VetoableChangeListener listener);
-
- /**
- * Remove a listener to a certain property.
- * @param prop the name of the property being listened on
- * @param listener the listener listening on the property.
- */
- public void removeVetoableChangeListener(String prop, VetoableChangeListener listener);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextChildComponentProxy.java b/libjava/java/beans/beancontext/BeanContextChildComponentProxy.java
deleted file mode 100644
index f8ef7cacac0..00000000000
--- a/libjava/java/beans/beancontext/BeanContextChildComponentProxy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* java.beans.beancontext.BeanContextChildComponentProxy
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.awt.Component;
-
-/**
- * Interface for <code>BeanContextChild</code>s which wish to associate an
- * AWT component with them. The proxy is provided because the
- * <code>addPropertyChangeListener()</code> method would conflict with
- * <code>Component</code> if you tried to extend.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextChildComponentProxy {
- /**
- * Get the <code>Component</code> associated with this <code>BeanContextChild</code>.
- * @return the <code>Component</code> associated with this
- * <code>BeanContextChild</code>.
- */
- public Component getComponent();
-}
diff --git a/libjava/java/beans/beancontext/BeanContextChildSupport.java b/libjava/java/beans/beancontext/BeanContextChildSupport.java
deleted file mode 100644
index 08d2a718ea4..00000000000
--- a/libjava/java/beans/beancontext/BeanContextChildSupport.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/* java.beans.beancontext.BeanContextChildSupport
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.beans.PropertyChangeListener;
-import java.beans.VetoableChangeListener;
-import java.beans.PropertyVetoException;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeSupport;
-import java.beans.VetoableChangeSupport;
-import java.io.Serializable;
-
-/**
- * Support for creating a <code>BeanContextChild</code>.
- * This class contains the most common implementations of the methods in
- * the <code>BeanContextChild</code>
- *
- * @specnote This class is not very well specified. I had to "fill in the
- * blanks" in most places with what I thought was reasonable
- * behavior. If there are problems, let me know.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContextChild
- */
-
-public class BeanContextChildSupport implements BeanContextChild, BeanContextServicesListener, Serializable {
- /**
- * The peer on which to perform <code>set</code> actions.
- * This is here so that this class can be used as a peer.
- * <P>
- *
- * When extending this class, this variable will be set to
- * <code>this</code>.
- */
- public BeanContextChild beanContextChildPeer;
-
- /**
- * The parent <code>BeanContext</code>.
- */
- protected transient BeanContext beanContext;
-
- /**
- * If <code>setBeanContext()</code> was vetoed once before, this
- * is set to <code>true</code> so that the next time, vetoes will
- * be ignored.
- */
- protected transient boolean rejectedSetBCOnce;
-
- /**
- * Listeners are registered here and events are fired through here.
- */
- protected PropertyChangeSupport pcSupport;
-
- /**
- * Listeners are registered here and events are fired through here.
- */
- protected VetoableChangeSupport vcSupport;
-
-
- /**
- * Create a new <code>BeanContextChildSupport</code> with itself as the peer.
- * This is meant to be used when you subclass
- * <code>BeanContextChildSupport</code> to create your child.
- */
- public BeanContextChildSupport() {
- this(null);
- };
-
- /**
- * Create a new <code>BeanContextChildSupport</code> with the specified peer.
- * @param peer the peer to use, or <code>null</code> to specify
- * <code>this</code>.
- */
- public BeanContextChildSupport(BeanContextChild peer) {
- if(peer == null) {
- peer = this;
- }
-
- beanContextChildPeer = peer;
- pcSupport = new PropertyChangeSupport(peer);
- vcSupport = new VetoableChangeSupport(peer);
- }
-
- /**
- * Set the parent <code>BeanContext</code>.
- * <P>
- *
- * When this Object is being added to a new BeanContext or moved
- * from an old one, a non-null value will be passed in.
- * <P>
- *
- * When this Object is being removed from the current
- * <code>BeanContext</code>, <code>setBeanContext()</code> will
- * receive the parameter <code>null</code>.
- * <P>
- *
- * Order of events:
- * <OL>
- * <LI>
- * If the new <code>BeanContext</code> is the same as the old
- * one, nothing happens.
- * </LI>
- * <LI>
- * If the change has not been rejected or vetoed before, call
- * <code>validatePendingSetBeanContext()</code>. If this call
- * returns <code>false</code>, the change is rejected and a
- * <code>PropertyVetoException</code> is thrown.
- * </LI>
- * <LI>
- * If the change has not been rejected or vetoed before,
- * <code>VetoableChangeEvent</code>s are fired with the name
- * <code>"beanContext"</code>, using the
- * <code>fireVetoableChange()</code> method. If a veto
- * occurs, reversion events are fired using the same method,
- * the change is rejected, and the veto is rethrown.
- * </LI>
- * <LI>
- * <code>releaseBeanContextResources()</code> is called.
- * </LI>
- * <LI>
- * The change is made.
- * </LI>
- * <LI>
- * <code>PropertyChangeEvent</code>s are fired using the
- * <code>firePropertyChange()</code> method.
- * </LI>
- * <LI>
- * <code>initializeBeanContextResources()</code> is called.
- * </LI>
- * </OL>
- * <P>
- *
- * @param newBeanContext the new parent for the
- * <code>BeanContextChild</code>, or <code>null</code> to
- * signify removal from a tree.
- * @exception PropertyVetoException if the
- * <code>BeanContextChild</code> implementor does not
- * wish to have its parent changed.
- */
- public void setBeanContext(BeanContext newBeanContext)
- throws PropertyVetoException {
- synchronized(beanContextChildPeer) {
- if(newBeanContext == beanContext)
- return;
-
- if(!rejectedSetBCOnce) {
- if(!validatePendingSetBeanContext(newBeanContext)) {
- rejectedSetBCOnce = true;
- throw new PropertyVetoException("validatePendingSetBeanContext() rejected change",
- new PropertyChangeEvent(beanContextChildPeer, "beanContext", beanContext, newBeanContext));
- }
- try {
- fireVetoableChange("beanContext", beanContext, newBeanContext);
- } catch(PropertyVetoException e) {
- rejectedSetBCOnce = true;
- throw e;
- }
- }
-
- releaseBeanContextResources();
-
- beanContext = newBeanContext;
- rejectedSetBCOnce = false;
-
- firePropertyChange("beanContext", beanContext, newBeanContext);
-
- initializeBeanContextResources();
- }
- }
-
- /**
- * Get the parent <code>BeanContext</code>.
- * @return the parent <code>BeanContext</code>.
- */
- public BeanContext getBeanContext() {
- return beanContext;
- }
-
- /**
- * Get the peer (or <code>this</code> if there is no peer).
- * @return the peer, or <code>this</code> if there is no peer.
- */
- public BeanContextChild getBeanContextChildPeer() {
- return beanContextChildPeer;
- }
-
- /**
- * Determine whether there is a peer.
- * This is true iff <code>getBeanContextChildPeer() == this</code>.
- * @return whether there is a peer.
- */
- public boolean isDelegated() {
- return beanContextChildPeer == this;
- }
-
- /**
- * Add a listener that will be notified when a specific property changes.
- * @param propertyName the name of the property to listen on.
- * @param listener the listener to listen on the property.
- */
- public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- pcSupport.addPropertyChangeListener(propertyName, listener);
- }
-
- /**
- * Remove a listener to a certain property.
- *
- * @param propertyName the name of the property being listened on.
- * @param listener the listener listening on the property.
- */
- public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- pcSupport.removePropertyChangeListener(propertyName, listener);
- }
-
- /**
- * Add a listener that will be notified when a specific property
- * change is requested (a PropertyVetoException may be thrown) as
- * well as after the change is successfully made.
- *
- * @param propertyName the name of the property to listen on.
- * @param listener the listener to listen on the property.
- */
- public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener) {
- vcSupport.addVetoableChangeListener(propertyName, listener);
- }
-
- /**
- * Remove a listener to a certain property.
- *
- * @param propertyName the name of the property being listened on
- * @param listener the listener listening on the property.
- */
- public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener) {
- vcSupport.removeVetoableChangeListener(propertyName, listener);
- }
-
- /**
- * Fire a property change.
- *
- * @param propertyName the name of the property that changed
- * @param oldVal the old value of the property
- * @param newVal the new value of the property
- */
- public void firePropertyChange(String propertyName, Object oldVal, Object newVal) {
- pcSupport.firePropertyChange(propertyName, oldVal, newVal);
- }
-
- /**
- * Fire a vetoable property change.
- *
- * @param propertyName the name of the property that changed
- * @param oldVal the old value of the property
- * @param newVal the new value of the property
- * @exception PropertyVetoException if the change is vetoed.
- */
- public void fireVetoableChange(String propertyName, Object oldVal, Object newVal)
- throws PropertyVetoException {
- vcSupport.fireVetoableChange(propertyName, oldVal, newVal);
- }
-
- /**
- * Called by <code>BeanContextServices.revokeService()</code> to indicate that a service has been revoked.
- * If you have a reference to such a service, it should be
- * discarded and may no longer function properly.
- * <code>getService()</code> will no longer work on the specified
- * service class after this event has been fired.
- * <P>
- *
- * <EM>This method is meant to be overriden.</EM>
- * <code>BeanContextChildSupport</code>'s implementation does
- * nothing.
- *
- * @param event the service revoked event.
- * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean)
- */
- public void serviceRevoked(BeanContextServiceRevokedEvent event) {
- }
-
- /**
- * Called by <code>BeanContextServices</code> whenever a service is made available.
- * <P>
- *
- * <EM>This method is meant to be overriden.</EM>
- * <code>BeanContextChildSupport</code>'s implementation does
- * nothing.
- *
- * @param event the service revoked event, with useful information
- * about the new service.
- */
- public void serviceAvailable(BeanContextServiceAvailableEvent event) {
- }
-
- /**
- * Called by <code>setBeanContext()</code> to determine whether the set should be rejected.
- * <P>
- *
- * <EM>This method is meant to be overriden.</EM>
- * <code>BeanContextChildSupport</code>'s implementation simply
- * returns <code>true</code>.
- *
- * @param newBeanContext the new parent.
- * @return whether to allow the parent to be changed to the new
- * value.
- */
- public boolean validatePendingSetBeanContext(BeanContext newBeanContext) {
- return true;
- }
-
- /**
- * Called by <code>setBeanContext()</code> to release resources of a what will soon no longer be the parent.
- * <P>
- *
- * <EM>This method is meant to be overriden.</EM>
- * <code>BeanContextChildSupport</code>'s implementation does
- * nothing.
- */
- protected void releaseBeanContextResources() {
- }
-
- /**
- * Called by <code>setBeanContext()</code> to grab resources when the parent has been set.
- * <P>
- *
- * <EM>This method is meant to be overriden.</EM>
- * <code>BeanContextChildSupport</code>'s implementation does
- * nothing.
- */
- protected void initializeBeanContextResources() {
- }
-}
diff --git a/libjava/java/beans/beancontext/BeanContextContainerProxy.java b/libjava/java/beans/beancontext/BeanContextContainerProxy.java
deleted file mode 100644
index 28d967b06d0..00000000000
--- a/libjava/java/beans/beancontext/BeanContextContainerProxy.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* java.beans.beancontext.BeanContextContainerProxy
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.awt.Container;
-
-/**
- * Interface for <code>BeanContext</code>s which wish to associate an
- * AWT container with them. The proxy is provided because the
- * <code>addPropertyChangeListener()</code> and <code>add()</code> methods
- * would conflict with <code>Component</code> and <code>Container</code>
- * if you tried to extend.
- *
- * @specnote It is unclear whether anything besides <code>BeanContext</code>s
- * are allowed to implement this interface.
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextContainerProxy {
- /**
- * Get the <code>Container</code> associated with this <code>BeanContext</code>.
- * @return the <code>Container</code> associated with this
- * <code>BeanContext</code>.
- */
- public Container getContainer();
-}
diff --git a/libjava/java/beans/beancontext/BeanContextEvent.java b/libjava/java/beans/beancontext/BeanContextEvent.java
deleted file mode 100644
index 0e4f20ae1ec..00000000000
--- a/libjava/java/beans/beancontext/BeanContextEvent.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* java.beans.beancontext.BeanContextEvent
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.EventObject;
-
-/**
- * Generic superclass for events fired by <code>BeanContext</code>s.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public abstract class BeanContextEvent extends EventObject {
- /**
- * The <code>BeanContext</code> that most recently passed this
- * event on.
- */
- protected BeanContext propagatedFrom;
-
- /**
- * Create a new event, from the specified <code>BeanContext</code>.
- * <code>propagatedFrom</code> will be initialized to
- * <code>null</code>.
- *
- * @param source the source of the event.
- */
- protected BeanContextEvent(BeanContext source) {
- super(source);
- }
-
- /**
- * Get the <code>BeanContext</code> that originated this event.
- * @return the originator of this event.
- */
- public BeanContext getBeanContext() {
- return (BeanContext)getSource();
- }
-
- /**
- * Get the most recent propagator of this event.
- * If this value is <code>null</code>, you have received the event
- * straight from the source.
- *
- * @return the most recent propagator of this event.
- */
- public BeanContext getPropagatedFrom() {
- return propagatedFrom;
- }
-
- /**
- * Tell whether this event has been propagated.
- * @return <code>true</code> iff <code>getPropagatedFrom() != null</code>.
- */
- public boolean isPropagated() {
- return propagatedFrom != null;
- }
-
- /**
- * Set the most recent propagator of this event.
- * @param propagator the most recent propagator of this event.
- */
- public void setPropagatedFrom(BeanContext propagator) {
- propagatedFrom = propagator;
- }
-}
diff --git a/libjava/java/beans/beancontext/BeanContextMembershipEvent.java b/libjava/java/beans/beancontext/BeanContextMembershipEvent.java
deleted file mode 100644
index d808735575b..00000000000
--- a/libjava/java/beans/beancontext/BeanContextMembershipEvent.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* java.beans.beancontext.BeanContextMembershipEvent
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.Collection;
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * Event fired when children are added to or removed from a <code>BeanContext</code>.
- * Whether they were added or removed depends entirely on which method
- * of the listener interface was called.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContextMembershipListener
- */
-
-public class BeanContextMembershipEvent extends BeanContextEvent {
- /**
- * The children that were added or removed.
- */
- protected Collection children;
-
- /**
- * Create a new membership event.
- * @param context the event source.
- * @param children the children added to or removed from the source.
- */
- public BeanContextMembershipEvent(BeanContext context, Collection children) {
- super(context);
- this.children = children;
- }
-
- /**
- * Create a new membership event.
- * @param context the event source.
- * @param children the children added to or removed from the source.
- */
- public BeanContextMembershipEvent(BeanContext context, Object[] children) {
- super(context);
- this.children = Arrays.asList(children);
- }
-
- /**
- * The number of children removed or added.
- * @return the number of children removed or added.
- */
- public int size() {
- return children.size();
- }
-
- /**
- * An iterator that will step through all the children.
- * @return an iterator over all the children.
- */
- public Iterator iterator() {
- return children.iterator();
- }
-
- /**
- * An array of the children.
- * @return an array of the children.
- */
- public Object[] toArray() {
- return children.toArray();
- }
-
- /**
- * Tell whether the <code>Object</code> is one of the children added or removed.
- * @param child the child to check.
- * @return whether the <code>Object</code> is added or removed.
- */
- public boolean contains(Object child) {
- return children.contains(child);
- }
-}
diff --git a/libjava/java/beans/beancontext/BeanContextMembershipListener.java b/libjava/java/beans/beancontext/BeanContextMembershipListener.java
deleted file mode 100644
index fc0b5b6b4b3..00000000000
--- a/libjava/java/beans/beancontext/BeanContextMembershipListener.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* java.beans.beancontext.BeanContextMembershipListener
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.EventListener;
-
-/**
- * This is the interface to which <code>BeanContextMembershipEvent</code>s are sent.
- * This happens when children are added to or removed from a
- * <code>BeanContext</code>.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextMembershipListener extends EventListener {
- /**
- * When beans are added to a <code>BeanContext</code>,
- * this method is called to fire the event.
- *
- * @param event the event, including which children were added.
- * @see java.beans.beancontext.BeanContext#add(java.lang.Object)
- */
- public void childrenAdded(BeanContextMembershipEvent event);
-
- /**
- * When beans are removed from a <code>BeanContext</code>,
- * this method is called to fire the event.
- *
- * @param event the event, including which children were removed.
- * @see java.beans.beancontext.BeanContext#remove(java.lang.Object)
- */
- public void childrenRemoved(BeanContextMembershipEvent event);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextProxy.java b/libjava/java/beans/beancontext/BeanContextProxy.java
deleted file mode 100644
index 129e4f87485..00000000000
--- a/libjava/java/beans/beancontext/BeanContextProxy.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/* java.beans.beancontext.BeanContextProxy
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-/**
- * Beans that wish to have a <code>BeanContextChild</code> or <code>BeanContext</code> associated with them
- * but do not wish to implement those interfaces directly, can implement this interface.
- * <P>
- *
- * Don't shoot yourself in the foot: if you already implement
- * <code>BeanContextChild</code>, directly or indirectly, the whole
- * workings of this package will be unpredictable because it is
- * indeterminate as to whether the <code>BeanContextChild</code> is used
- * in preference to its proxy or vice versa.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextProxy {
- /**
- * Return the <code>BeanContextChild</code> associated with this
- * <code>Object</code>.
- *
- * @return the <code>BeanContextChild</code> associated with this
- * <code>Object</code>.
- */
- public BeanContextChild getBeanContextProxy();
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.java b/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.java
deleted file mode 100644
index 933ef3d7f88..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* java.beans.beancontext.BeanContextServiceAvailableEvent
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.Iterator;
-
-/**
- * Event fired when new services become available through a <code>BeanContextServices</code>.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContextServicesListener
- */
-
-public class BeanContextServiceAvailableEvent extends BeanContextEvent {
- /**
- * The <code>Class</code> representing the service which is now
- * available.
- */
- protected Class serviceClass;
-
- /**
- * Create a new service available event.
- * @param services the <code>BeanContextServices</code> through
- * which the service is available. This is also the source
- * of the event.
- * @param serviceClass the service class that is now available.
- */
- public BeanContextServiceAvailableEvent(BeanContextServices services, Class serviceClass) {
- super(services);
- this.serviceClass = serviceClass;
- }
-
- /**
- * Get the current service selectors of the service class.
- * This is identical to <code>getSourceAsBeanContextServices().getCurrentServiceSelectors(getServiceClass())</code>
- * @return the current service selectors of the service class.
- */
- public Iterator getCurrentServiceSelectors() {
- return getSourceAsBeanContextServices().getCurrentServiceSelectors(serviceClass);
- }
-
- /**
- * Get the newly available service class.
- * @return the service class.
- */
- public Class getServiceClass() {
- return serviceClass;
- }
-
- /**
- * Get the <code>BeanContextServices</code> through which the new service is available.
- * @return the <code>BeanContextServices</code> through which the
- * new service is available.
- */
- public BeanContextServices getSourceAsBeanContextServices() {
- return (BeanContextServices)getSource();
- }
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServiceProvider.java b/libjava/java/beans/beancontext/BeanContextServiceProvider.java
deleted file mode 100644
index c7a570e355e..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServiceProvider.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/* java.beans.beancontext.BeanContextServiceProvider
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.Iterator;
-
-/**
- * An actual factory for services.
- * <P>
- *
- * It is the <code>BeanContextServiceProvider</code>'s responsibility to
- * register itself with whatever <code>BeanContextServices</code> object
- * it wishes to provide services through using the
- * <code>addService()</code> method.
- * <P>
- *
- * If for some reason it can no longer provide services for a particular
- * class, this class must invoke
- * <code>BeanContextServices.revokeService(serviceClass,this,true)</code>
- * for all the places it has registered the service.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextServiceProvider {
- /**
- * Get a service.
- * Called from <code>BeanContextServices.getService().
- * <P>
- *
- * If the requested service class is not available, or if this
- * <code>BeanContextServiceProvider</code> chooses not honor the
- * request for some reason, then this method will return
- * <code>null</code>.
- * <P>
- *
- * This method may throw unchecked exceptions, so watch out.
- *
- * @param services the <code>BeanContextServices</code> that wants
- * to get the service. Only weak references to this will
- * be retained, and it will never be changed, only queried
- * in a read-only manner.
- * @param requestor the actual requestor of the service. Only
- * weak references to this will be retained, and it will
- * never be changed, only queried in a read-only manner.
- * @param serviceClass the <code>Class</code> of the service being
- * requested.
- * @param serviceSelector a parameter to customize the service
- * returned with.
- * @return an instance of <code>serviceClass</code> (such that
- * <code>instanceof</code> serviceClass is true), or
- * <code>null</code>.
- * @see java.beans.beancontext.BeanContextServices#getService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Class,java.lang.Object,java.beans.beancontext.BeanContextServiceRevokedListener)
- */
- public Object getService(BeanContextServices services, Object requestor, Class serviceClass, Object serviceSelector);
-
- /**
- * Release the service.
- * <P>
- *
- * Called by <code>BeanContextServices.releaseService()</code>.
- * <P>
- *
- * Most <code>BeanContextServiceProvider</code>s won't have to do
- * anything here.
- *
- * @param services the <code>BeanContextServices</code> that wants
- * to release the service. Only weak references to this will
- * be retained, and it will never be changed, only queried
- * in a read-only manner.
- * @param requestor the original requestor of the service.
- * @param service the service to relinquish
- * @see java.beans.beancontext.BeanContextServices#releaseService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Object)
- */
- public void releaseService(BeanContextServices services, Object requestor, Object service);
-
- /**
- * Get a list of valid service selectors for the specified service class.
- * This method is called from
- * <code>BeanContextServices.getCurrentServiceSelectors()</code>.
- * <P>
- *
- * If the specified service class does not have a finite number of
- * valid service selectors, it should return <code>null</code>.
- * If it takes a general <code>Integer</code> parameter, for
- * example, you may as well return <code>null</code> or the poor
- * soul who called this method will be iterating all day.
- * <P>
- *
- * If it has no valid service selectors, it should still return an empty
- * <code>Iterator</code>.
- *
- * @param services the <code>BeanContextServices</code> that wants
- * to get the service selectors. Only weak references to this will
- * be retained, and it will never be changed, only queried
- * in a read-only manner.
- * @param serviceClass the service class to get selectors for.
- * @return a list of valid service selectors for the service
- * class, or <code>null</code>.
- * @see java.beans.beancontext.BeanContextServices#getCurrentServiceSelectors(java.lang.Class)
- */
- public Iterator getCurrentServiceSelectors(BeanContextServices services, Class serviceClass);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java b/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java
deleted file mode 100644
index d751f70c674..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* java.beans.beancontext.BeanContextServiceProviderBeanInfo
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.beans.BeanInfo;
-
-/**
- * <code>BeanContextServiceProvider</code>s implement this to provide information about all of the services they provide.
- * <P>
- *
- * This is apparently so that you can import a bunch of services into a
- * RAD tool and it will know about all of them and export them to the
- * user in a readable manner.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-public interface BeanContextServiceProviderBeanInfo extends BeanInfo {
- /**
- * Get <code>BeanInfo</code>s for all of the service classes of this <code>BeanInfoServiceProvider</code>.
- * @return <code>BeanInfo</code>s for all provided service classes.
- */
- public BeanInfo[] getServicesBeanInfo();
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.java b/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.java
deleted file mode 100644
index f19fcdaaaf7..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* java.beans.beancontext.BeanContextServiceRevokedEvent
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-/**
- * Event fired when services are revoked from a <code>BeanContextServices</code>.
- *
- * @author John Keiser
- * @since JDK1.2
- * @see java.beans.beancontext.BeanContextServiceRevokedListener
- */
-
-public class BeanContextServiceRevokedEvent extends BeanContextEvent {
- /**
- * The <code>Class</code> representing the service which is now
- * available.
- */
- protected Class serviceClass;
- private boolean invalidateRefs;
-
- /**
- * Create a new service revoked event.
- * @param services the <code>BeanContextServices</code> through
- * which the service was available. This is also the source
- * of the event.
- * @param serviceClass the service class that is now revoked.
- * @param revokeNow whether the revocation is immediate for all
- * classes or just a suggestion.
- */
- public BeanContextServiceRevokedEvent(BeanContextServices services, Class serviceClass, boolean revokeNow) {
- super(services);
- this.serviceClass = serviceClass;
- invalidateRefs = revokeNow;
- }
-
- /**
- * Get the revoked service class.
- * @return the service class.
- */
- public Class getServiceClass() {
- return serviceClass;
- }
-
- /**
- * Tell whether the revoked service class is the same as the specified class.
- * Identical to <code>getServiceClass().equals(c)</code>.
- * @param c the class to compare.
- * @return whether the clases are equal.
- */
- public boolean isServiceClass(Class c) {
- return serviceClass.equals(c);
- }
-
- /**
- * Get the <code>BeanContextServices</code> through which the service was available.
- * @return the <code>BeanContextServices</code> through which the
- * service was available.
- */
- public BeanContextServices getSourceAsBeanContextServices() {
- return (BeanContextServices)getSource();
- }
-
- /**
- * Tell whether current instances of the revoked service are usable or not.
- * This is determined by whether the service was revoked
- * immediately.
- *
- * @return whether current instances of the revoked service are
- * usable.
- */
- public boolean isCurrentServiceInvalidNow() {
- return invalidateRefs;
- }
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.java b/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.java
deleted file mode 100644
index 8caf3576a2d..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/* java.beans.beancontext.BeanContextServiceRevokedListener
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.EventListener;
-
-/**
- * Listens for service revoke events.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextServiceRevokedListener extends EventListener {
- /**
- * Called by <code>BeanContextServices.revokeService()</code> to indicate that a service has been revoked.
- * If you have a reference to such a service, it should be
- * discarded and may no longer function properly.
- * <code>getService()</code> will no longer work on the specified
- * service class after this event has been fired.
- *
- * @param event the service revoked event.
- * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean)
- */
- public void serviceRevoked(BeanContextServiceRevokedEvent event);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServices.java b/libjava/java/beans/beancontext/BeanContextServices.java
deleted file mode 100644
index e67687b6efe..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServices.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/* java.beans.beancontext.BeanContextServices
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-import java.util.Iterator;
-
-/**
- * Allows a <code>BeanContext</code> to provide services to its children.
- *
- * @specnote it is unclear whether a <code>BeanContextServices</code>
- * should delegate unhandled requests to parents. I assume so.
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextServices extends BeanContext, BeanContextServicesListener {
- /**
- * Register a service to make it available to others.
- * This class may refuse to add the service based on whatever
- * information it can gather, including whether the service
- * provider is trusted.
- *
- * @param serviceClass the service class.
- * @param provider the factory that will actually provide the service.
- * @return whether the service was added or not.
- */
- public boolean addService(Class serviceClass, BeanContextServiceProvider provider);
-
- /**
- * Make it so that no one else can use this service.
- * <P>
- *
- * If <code>revokeNow</code> is <code>false</code>, the only
- * effect of this method is to make all subsequent calls to
- * <code>getService()</code> on this service class fail.
- * <P>
- *
- * If it is <code>true</code>, a message is also sent out to all
- * listeners on the service and all references to it are released.
- *
- * @param serviceClass the service class to revoke.
- * @param provider the service provider providing the service class.
- * @param revokeNow whether to release all current references to
- * the service.
- */
- public void revokeService(Class serviceClass, BeanContextServiceProvider provider, boolean revokeNow);
-
- /**
- * Release your copy of this service.
- * <P>
- *
- * If all copies of the service's class have been relinquished by
- * the requestor, the <code>BeanContextServiceRevokedListener</code>
- * previously registered by <code>getService()</code> will be
- * unregistered.
- *
- * @param requestorChild the original <code>BeanContextChild</code>
- * requesting the service.
- * @param requestor the original requestor of the service.
- * @param service the service to relinquish
- * @see #getService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Class,java.lang.Object,java.beans.beancontext.BeanContextServiceRevokedListener)
- */
- public void releaseService(BeanContextChild requestorChild, Object requestor, Object service);
-
- /**
- * Get a service from this <code>BeanContextServices</code>.
- * <P>
- *
- * The specified listener will be registered to receive a
- * revocation notice for the specified serviceClass. One
- * notification per service class per requestor object will be
- * sent.
- * <P>
- *
- * The listener will be unregistered when all services that were
- * obtained by that requestor for that service class are released.
- * <P>
- *
- * If the requested service class is not available, or if this
- * <code>BeanContextServices</code> object chooses not honor the
- * request because the service class has been revoked or for some
- * other reason, then this method will return <code>null</code>.
- * <P>
- *
- * This method may throw unchecked exceptions, so watch out.
- *
- * @specnote it is not specified what happens when two subsequent
- * calls are made to <code>getService()</code> with the
- * same requestor object and service class but different
- * listeners. Which listener is to be notified?
- *
- * @param requestorChild the <code>BeanContextChild</code>
- * associated with the requestor. Typically this will be
- * the same as the requestor itself, but since any
- * <code>Object</code>, even one outside the hierarchy, may
- * make a request, this parameter is necessary. Only weak
- * references to this will be retained, and it will never
- * be changed, only queried in a read-only manner.
- * @param requestor the actual requestor of the service. Only
- * weak references to this will be retained, and it will
- * never be changed, only queried in a read-only manner.
- * @param serviceClass the <code>Class</code> of the service being
- * requested.
- * @param serviceSelector a parameter to customize the service
- * returned with.
- * @param listener a listener that will be notified if the service
- * being requested is revoked.
- * @return an instance of <code>serviceClass</code> (such that
- * <code>instanceof</code> serviceClass is true), or
- * <code>null</code>.
- */
- public Object getService(BeanContextChild requestorChild, Object requestor, Class serviceClass, Object serviceSelector, BeanContextServiceRevokedListener listener);
-
- /**
- * Get a list of all service classes supported.
- * <P>
- *
- * This method must synchronize on
- * <code>BeanContext.globalHierarchyLock</code>.
- *
- * @return a list of all service classes supported.
- * @see java.beans.beancontext.BeanContext#globalHierarchyLock
- */
- public Iterator getCurrentServiceClasses();
-
- /**
- * Get a list of valid service selectors for the specified service class.
- * <P>
- *
- * If the specified service class does not have a finite number of
- * valid service selectors, it should return <code>null</code>.
- * If it takes a general <code>Integer</code> parameter, for
- * example, you may as well return <code>null</code> or the poor
- * soul who called this method will be iterating all day.
- * <P>
- *
- * If it has no valid service selectors, it should still return an empty
- * <code>Iterator</code>.
- *
- * @param serviceClass the service class to get selectors for.
- * @return a list of valid service selectors for the service
- * class, or <code>null</code>.
- */
- public Iterator getCurrentServiceSelectors(Class serviceClass);
-
- /**
- * Tell whether the specified service class is available.
- * Iff getService() could return a non-null value for the
- * specified service, this method will return <code>true</code>.
- *
- * @param serviceClass the service class to check on.
- * @return whether the specified service class is availabe.
- */
- public boolean hasService(Class serviceClass);
-
- /**
- * Add a listener on all adds and removes of services.
- * @param listener the listener to add.
- */
- public void addBeanContextServicesListener(BeanContextServicesListener listener);
-
- /**
- * Remove a listener on all adds and removes of services.
- * @specnote it is not certain whether this should remove this
- * listener if it was specified in
- * <code>getService()</code>.
- * @param listener the listener to add.
- */
- public void removeBeanContextServicesListener(BeanContextServicesListener listener);
-}
diff --git a/libjava/java/beans/beancontext/BeanContextServicesListener.java b/libjava/java/beans/beancontext/BeanContextServicesListener.java
deleted file mode 100644
index bb55f8d1274..00000000000
--- a/libjava/java/beans/beancontext/BeanContextServicesListener.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* java.beans.beancontext.BeanContextServicesListener
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.beans.beancontext;
-
-/**
- * Listens for service add and revoke events.
- *
- * @author John Keiser
- * @since JDK1.2
- */
-
-public interface BeanContextServicesListener extends BeanContextServiceRevokedListener {
- /**
- * Called by <code>BeanContextServices</code> whenever a service is made available.
- *
- * @param event the service revoked event, with useful information
- * about the new service.
- */
- public void serviceAvailable(BeanContextServiceAvailableEvent event);
-}
diff --git a/libjava/java/io/BlockDataException.java b/libjava/java/io/BlockDataException.java
deleted file mode 100644
index ef70f54c557..00000000000
--- a/libjava/java/io/BlockDataException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* BlockDataException.java -- Class used to store name and class of fields
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-//TODO: check 1.2 API to make sure this mathces
-
-class BlockDataException extends IOException
-{
- public BlockDataException( int bytes )
- {
- super( bytes + " bytes are available in the next data block" );
- }
-}
-
diff --git a/libjava/java/io/BufferedInputStream.java b/libjava/java/io/BufferedInputStream.java
deleted file mode 100644
index 6473854456b..00000000000
--- a/libjava/java/io/BufferedInputStream.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 8, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class BufferedInputStream extends FilterInputStream
-{
- /* Internal buffer array for data. */
- protected byte[] buf;
-
- /* Index one greater than the last valid byte in the buffer. */
- protected int count = 0;
-
- /* The current position in the buffer. */
- protected int pos = 0;
-
- /* The value of pos the last time mark() was called. */
- protected int markpos = -1;
-
- /* The maximum read-ahead allowed before calls to reset() fail. */
- protected int marklimit = 0;
-
- public BufferedInputStream(InputStream in)
- {
- this(in, 2048);
- }
-
- public BufferedInputStream(InputStream in, int size)
- {
- super(in);
- if (size <= 0)
- throw new IllegalArgumentException();
- buf = new byte[size];
- }
-
- public synchronized int available() throws IOException
- {
- return count - pos + super.available();
- }
-
- public void close() throws IOException
- {
- // Free up the array memory.
- buf = null;
- super.close();
- }
-
- public synchronized void mark(int readlimit)
- {
- marklimit = readlimit;
- markpos = pos;
- }
-
- public boolean markSupported()
- {
- return true;
- }
-
- public synchronized int read() throws IOException
- {
- if (pos >= count && !refill())
- return -1; // EOF
-
- if (markpos >= 0 && pos - markpos > marklimit)
- markpos = -1;
-
- return ((int) buf[pos++]) & 0xFF;
- }
-
- public synchronized int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- if (pos >= count && !refill())
- return -1; // No bytes were read before EOF.
-
- int remain = Math.min(count - pos, len);
- System.arraycopy(buf, pos, b, off, remain);
- pos += remain;
-
- if (markpos >= 0 && pos - markpos > marklimit)
- markpos = -1;
-
- return remain;
- }
-
- public synchronized void reset() throws IOException
- {
- if (markpos < 0)
- throw new IOException();
-
- pos = markpos;
- }
-
- public synchronized long skip(long n) throws IOException
- {
- final long origN = n;
-
- while (n > 0L)
- {
- if (pos >= count && !refill())
- if (n < origN)
- break;
- else
- return -1; // No bytes were read before EOF.
-
- int numread = (int) Math.min((long) (count - pos), n);
- pos += numread;
- n -= numread;
-
- if (markpos >= 0 && pos - markpos > marklimit)
- markpos = -1;
- }
-
- return origN - n;
- }
-
- private boolean refill() throws IOException
- {
- if (markpos < 0)
- count = pos = 0;
- else if (markpos > 0)
- {
- // Shift the marked bytes (if any) to the beginning of the array
- // but don't grow it. This saves space in case a reset is done
- // before we reach the max capacity of this array.
- System.arraycopy(buf, markpos, buf, 0, count - markpos);
- count -= markpos;
- pos -= markpos;
- markpos = 0;
- }
- else if (marklimit >= buf.length) // BTW, markpos == 0
- {
- // Need to grow the buffer now to have room for marklimit bytes.
- // Note that the new buffer is one greater than marklimit.
- // This is so that there will be one byte past marklimit to be read
- // before having to call refill again, thus allowing marklimit to be
- // invalidated. That way refill doesn't have to check marklimit.
- byte[] newbuf = new byte[marklimit + 1];
- System.arraycopy(buf, 0, newbuf, 0, count);
- buf = newbuf;
- }
-
- int numread = super.read(buf, count, buf.length - count);
-
- if (numread < 0) // EOF
- return false;
-
- count += numread;
- return true;
- }
-}
diff --git a/libjava/java/io/BufferedOutputStream.java b/libjava/java/io/BufferedOutputStream.java
deleted file mode 100644
index 09e0db822d0..00000000000
--- a/libjava/java/io/BufferedOutputStream.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/* BufferedOutputStream.java -- Buffer output into large blocks before writing
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This class accumulates bytes written in a buffer instead of immediately
- * writing the data to the underlying output sink. The bytes are instead
- * as one large block when the buffer is filled, or when the stream is
- * closed or explicitly flushed. This mode operation can provide a more
- * efficient mechanism for writing versus doing numerous small unbuffered
- * writes.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class BufferedOutputStream extends FilterOutputStream
-{
-
-/*************************************************************************/
-
-/*
- * Class Variables
- */
-
-/**
- * This is the default buffer size
- */
-private static final int DEFAULT_BUFFER_SIZE = 512;
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the internal byte array used for buffering output before
- * writing it.
- */
-protected byte[] buf;
-
-/**
- * This is the number of bytes that are currently in the buffer and
- * are waiting to be written to the underlying stream. It always points to
- * the index into the buffer where the next byte of data will be stored
- */
-protected int count;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new <code>BufferedOutputStream</code> instance
- * that will write to the specified subordinate <code>OutputStream</code>
- * and which will use a default buffer size of 512 bytes.
- *
- * @param out The underlying <code>OutputStream</code> to write data to
- */
-public
-BufferedOutputStream(OutputStream out)
-{
- this(out, DEFAULT_BUFFER_SIZE);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new <code>BufferedOutputStream</code> instance
- * that will write to the specified subordinate <code>OutputStream</code>
- * and which will use the specified buffer size
- *
- * @param out The underlying <code>OutputStream</code> to write data to
- * @param size The size of the internal buffer
- */
-public
-BufferedOutputStream(OutputStream out, int size)
-{
- super(out);
-
- buf = new byte[size];
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method causes any currently buffered bytes to be immediately
- * written to the underlying output stream.
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-flush() throws IOException
-{
- if (count == 0)
- return;
-
- out.write(buf, 0, count);
- count = 0;
-}
-
-/*************************************************************************/
-
-/*
- * This method flushes any remaining buffered bytes then closes the
- * underlying output stream. Any further attempts to write to this stream
- * may throw an exception
- *
-public synchronized void
-close() throws IOException
-{
- flush();
- out.close();
-}
-*/
-
-/*************************************************************************/
-
-/*
- * This method runs when the object is garbage collected. It is
- * responsible for ensuring that all buffered bytes are written and
- * for closing the underlying stream.
- *
- * @exception IOException If an error occurs (ignored by the Java runtime)
- *
-protected void
-finalize() throws IOException
-{
- close();
-}
-*/
-
-/*************************************************************************/
-
-/**
- * This method writes a single byte of data. This will be written to the
- * buffer instead of the underlying data source. However, if the buffer
- * is filled as a result of this write request, it will be flushed to the
- * underlying output stream.
- *
- * @param b The byte of data to be written, passed as an int
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-write(int b) throws IOException
-{
- buf[count] = (byte)(b & 0xFF);
-
- ++count;
- if (count == buf.length)
- flush();
-}
-
-/*************************************************************************/
-
-/**
- * This method writes <code>len</code> bytes from the byte array
- * <code>buf</code> starting at position <code>offset</code> in the buffer.
- * These bytes will be written to the internal buffer. However, if this
- * write operation fills the buffer, the buffer will be flushed to the
- * underlying output stream.
- *
- * @param buf The array of bytes to write.
- * @param offset The index into the byte array to start writing from.
- * @param len The number of bytes to write.
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-write(byte[] buf, int offset, int len) throws IOException
-{
- // Buffer can hold everything. Note that the case where LEN < 0
- // is automatically handled by the downstream write.
- if (len < (this.buf.length - count))
- {
- System.arraycopy(buf, offset, this.buf, count, len);
- count += len;
- }
- else
- {
- // The write was too big. So flush the buffer and write the new
- // bytes directly to the underlying stream, per the JDK 1.2
- // docs.
- flush();
- out.write (buf, offset, len);
- }
-}
-
-} // class BufferedOutputStream
diff --git a/libjava/java/io/BufferedReader.java b/libjava/java/io/BufferedReader.java
deleted file mode 100644
index 73601deb593..00000000000
--- a/libjava/java/io/BufferedReader.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 22, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class BufferedReader extends Reader
-{
- Reader in;
- char[] buffer;
- /* Index of current read position. Must be >= 0 and <= limit. */
- /* There is a special case where pos may be equal to limit+1; this
- * is used as an indicator that a readLine was done with a '\r' was
- * the very last char in the buffer. Since we don't want to read-ahead
- * and potentially block, we set pos this way to indicate the situation
- * and deal with it later. Doing it this way rather than having a
- * separate boolean field to indicate the condition has the advantage
- * that it is self-clearing on things like mark/reset.
- */
- int pos;
- /* Limit of valid data in buffer. Must be >= pos and <= buffer.length. */
- /* This can be < pos in the one special case described above. */
- int limit;
-
- /* The value -1 means there is no mark, or the mark has been invalidated.
- Otherwise, markPos is the index in the buffer of the marked position.
- Must be >= 0 and <= pos.
- Note we do not explicitly store the read-limit.
- The implicit read-limit is (buffer.length - markPos), which is
- guaranteed to be >= the read-limit requested in the call to mark. */
- int markPos = -1;
-
- public BufferedReader(Reader in)
- {
- this(in, 8192);
- }
-
- public BufferedReader(Reader in, int size)
- {
- super(in.lock);
- this.in = in;
- buffer = new char[size];
- }
-
- public void close() throws IOException
- {
- synchronized (lock)
- {
- if (in != null)
- in.close();
- in = null;
- buffer = null;
- }
- }
-
- public boolean markSupported()
- {
- return true;
- }
-
- public void mark(int readLimit) throws IOException
- {
- synchronized (lock)
- {
- // In this method we need to be aware of the special case where
- // pos + 1 == limit. This indicates that a '\r' was the last char
- // in the buffer during a readLine. We'll want to maintain that
- // condition after we shift things around and if a larger buffer is
- // needed to track readLimit, we'll have to make it one element
- // larger to ensure we don't invalidate the mark too early, if the
- // char following the '\r' is NOT a '\n'. This is ok because, per
- // the spec, we are not required to invalidate when passing readLimit.
- //
- // Note that if 'pos > limit', then doing 'limit -= pos' will cause
- // limit to be negative. This is the only way limit will be < 0.
-
- if (pos + readLimit > limit)
- {
- char[] old_buffer = buffer;
- int extraBuffSpace = 0;
- if (pos > limit)
- extraBuffSpace = 1;
- if (readLimit + extraBuffSpace > limit)
- buffer = new char[readLimit + extraBuffSpace];
- limit -= pos;
- if (limit >= 0)
- {
- System.arraycopy(old_buffer, pos, buffer, 0, limit);
- pos = 0;
- }
- }
-
- if (limit < 0)
- {
- // Maintain the relationship of 'pos > limit'.
- pos = 1;
- limit = markPos = 0;
- }
- else
- markPos = pos;
- // Now pos + readLimit <= buffer.length. thus if we need to read
- // beyond buffer.length, then we are allowed to invalidate markPos.
- }
- }
-
- public void reset() throws IOException
- {
- synchronized (lock)
- {
- if (markPos < 0)
- throw new IOException("mark never set or invalidated");
-
- // Need to handle the extremely unlikely case where a readLine was
- // done with a '\r' as the last char in the buffer; which was then
- // immediately followed by a mark and a reset with NO intervening
- // read of any sort. In that case, setting pos to markPos would
- // lose that info and a subsequent read would thus not skip a '\n'
- // (if one exists). The value of limit in this rare case is zero.
- // We can assume that if limit is zero for other reasons, then
- // pos is already set to zero and doesn't need to be readjusted.
- if (limit > 0)
- pos = markPos;
- }
- }
-
- public boolean ready() throws IOException
- {
- synchronized (lock)
- {
- return pos < limit || in.ready();
- }
- }
-
- public int read(char[] buf, int offset, int count) throws IOException
- {
- synchronized (lock)
- {
- // Once again, we need to handle the special case of a readLine
- // that has a '\r' at the end of the buffer. In this case, we'll
- // need to skip a '\n' if it is the next char to be read.
- // This special case is indicated by 'pos > limit'.
- boolean retAtEndOfBuffer = false;
-
- int avail = limit - pos;
- if (count > avail)
- {
- if (avail > 0)
- count = avail;
- else // pos >= limit
- {
- if (limit == buffer.length)
- markPos = -1; // read too far - invalidate the mark.
- if (pos > limit)
- {
- // Set a boolean and make pos == limit to simplify things.
- retAtEndOfBuffer = true;
- --pos;
- }
- if (markPos < 0)
- {
- // Optimization: can read directly into buf.
- if (count >= buffer.length && !retAtEndOfBuffer)
- return in.read(buf, offset, count);
- pos = limit = 0;
- }
- avail = in.read(buffer, limit, buffer.length - limit);
- if (retAtEndOfBuffer && avail > 0 && buffer[limit] == '\n')
- {
- --avail;
- limit++;
- }
- if (avail < count)
- {
- if (avail <= 0)
- return avail;
- count = avail;
- }
- limit += avail;
- }
- }
- System.arraycopy(buffer, pos, buf, offset, count);
- pos += count;
- return count;
- }
- }
-
- /* Read more data into the buffer. Update pos and limit appropriately.
- Assumes pos==limit initially. May invalidate the mark if read too much.
- Return number of chars read (never 0), or -1 on eof. */
- private int fill() throws IOException
- {
- // Handle the special case of a readLine that has a '\r' at the end of
- // the buffer. In this case, we'll need to skip a '\n' if it is the
- // next char to be read. This special case is indicated by 'pos > limit'.
- boolean retAtEndOfBuffer = false;
- if (pos > limit)
- {
- retAtEndOfBuffer = true;
- --pos;
- }
-
- if (markPos >= 0 && limit == buffer.length)
- markPos = -1;
- if (markPos < 0)
- pos = limit = 0;
- int count = in.read(buffer, limit, buffer.length - limit);
- if (count > 0)
- limit += count;
-
- if (retAtEndOfBuffer && buffer[pos] == '\n')
- {
- --count;
- pos++;
- }
-
- return count;
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- if (pos >= limit && fill () <= 0)
- return -1;
- return buffer[pos++];
- }
- }
-
- /* Return the end of the line starting at this.pos and ending at limit.
- * The index returns is *before* any line terminators, or limit
- * if no line terminators were found.
- */
- private int lineEnd(int limit)
- {
- int i = pos;
- for (; i < limit; i++)
- {
- char ch = buffer[i];
- if (ch == '\n' || ch == '\r')
- break;
- }
- return i;
- }
-
- public String readLine() throws IOException
- {
- // Handle the special case where a previous readLine (with no intervening
- // reads/skips) had a '\r' at the end of the buffer.
- // In this case, we'll need to skip a '\n' if it's the next char to be read.
- // This special case is indicated by 'pos > limit'.
- if (pos > limit)
- {
- int ch = read();
- if (ch < 0)
- return null;
- if (ch != '\n')
- --pos;
- }
- int i = lineEnd(limit);
- if (i < limit)
- {
- String str = new String(buffer, pos, i - pos);
- pos = i + 1;
- // If the last char in the buffer is a '\r', we must remember
- // to check if the next char to be read after the buffer is refilled
- // is a '\n'. If so, skip it. To indicate this condition, we set pos
- // to be limit + 1, which normally is never possible.
- if (buffer[i] == '\r')
- if (pos == limit || buffer[pos] == '\n')
- pos++;
- return str;
- }
- StringBuffer sbuf = new StringBuffer(200);
- sbuf.append(buffer, pos, i - pos);
- pos = i;
- // We only want to return null when no characters were read before
- // EOF. So we must keep track of this separately. Otherwise we
- // would treat an empty `sbuf' as an EOF condition, which is wrong
- // when there is just a newline.
- boolean eof = false;
- for (;;)
- {
- int ch = read();
- if (ch < 0)
- {
- eof = true;
- break;
- }
- if (ch == '\n' || ch == '\r')
- {
- // Check here if a '\r' was the last char in the buffer; if so,
- // mark it as in the comment above to indicate future reads
- // should skip a newline that is the next char read after
- // refilling the buffer.
- if (ch == '\r')
- if (pos == limit || buffer[pos] == '\n')
- pos++;
- break;
- }
- i = lineEnd(limit);
- sbuf.append(buffer, pos - 1, i - (pos - 1));
- pos = i;
- }
- return (sbuf.length() == 0 && eof) ? null : sbuf.toString();
- }
-
- public long skip(long count) throws IOException
- {
- if (count <= 0)
- return 0;
- synchronized (lock)
- {
- // Yet again, we need to handle the special case of a readLine
- // that has a '\r' at the end of the buffer. In this case, we need
- // to ignore a '\n' if it is the next char to be read.
- // This special case is indicated by 'pos > limit' (i.e. avail < 0).
- // To simplify things, if we're dealing with the special case for
- // readLine, just read the next char (since the fill method will
- // skip the '\n' for us). By doing this, we'll have to back up pos.
- // That's easier than trying to keep track of whether we've skipped
- // one element or not.
- int ch;
- if (pos > limit)
- if ((ch = read()) < 0)
- return 0;
- else
- --pos;
-
- int avail = limit - pos;
-
- if (count < avail)
- {
- pos += count;
- return count;
- }
-
- pos = limit;
- long todo = count - avail;
- if (todo > buffer.length)
- {
- markPos = -1;
- todo -= in.skip(todo);
- }
- else
- {
- while (todo > 0)
- {
- avail = fill();
- if (avail <= 0)
- break;
- if (avail > todo)
- avail = (int) todo;
- pos += avail;
- todo -= avail;
- }
- }
- return count - todo;
- }
- }
-}
diff --git a/libjava/java/io/BufferedWriter.java b/libjava/java/io/BufferedWriter.java
deleted file mode 100644
index f31dc28a0d2..00000000000
--- a/libjava/java/io/BufferedWriter.java
+++ /dev/null
@@ -1,224 +0,0 @@
-// BufferedWriter.java - Filtered character output stream.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-/**
- * This class accumulates chars written in a buffer instead of immediately
- * writing the data to the underlying output sink. The chars are instead
- * as one large block when the buffer is filled, or when the stream is
- * closed or explicitly flushed. This mode operation can provide a more
- * efficient mechanism for writing versus doing numerous small unbuffered
- * writes.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-public class BufferedWriter extends Writer
-{
- /**
- * This method initializes a new <code>BufferedWriter</code> instance
- * that will write to the specified subordinate <code>Writer</code>
- * and which will use a default buffer size of 512 chars.
- *
- * @param out The underlying <code>Writer</code> to write data to
- */
- public BufferedWriter (Writer out)
- {
- this (out, DEFAULT_BUFFER_SIZE);
- }
-
- /**
- * This method initializes a new <code>BufferedWriter</code> instance
- * that will write to the specified subordinate <code>Writer</code>
- * and which will use the specified buffer size
- *
- * @param out The underlying <code>Writer</code> to write data to
- * @param size The size of the internal buffer
- */
- public BufferedWriter (Writer ox, int size)
- {
- super (ox);
- out = ox;
- buffer = new char[size];
- count = 0;
- }
-
- /**
- * This method flushes any remaining buffered chars then closes the
- * underlying output stream. Any further attempts to write to this stream
- * may throw an exception
- */
- public void close () throws IOException
- {
- localFlush ();
- out.close();
- }
-
- /**
- * This method causes any currently buffered chars to be immediately
- * written to the underlying output stream.
- *
- * @exception IOException If an error occurs
- */
- public void flush () throws IOException
- {
- localFlush ();
- out.flush();
- }
-
- /**
- * This method writes out a system depedent line separator sequence. The
- * actual value written is detemined from the <xmp>line.separator</xmp>
- * system property.
- *
- * @exception IOException If an error occurs
- */
- public void newLine () throws IOException
- {
- write (System.getProperty("line.separator"));
- }
-
- /**
- * This method writes a single char of data. This will be written to the
- * buffer instead of the underlying data source. However, if the buffer
- * is filled as a result of this write request, it will be flushed to the
- * underlying output stream.
- *
- * @param b The char of data to be written, passed as an int
- *
- * @exception IOException If an error occurs
- */
- public void write (int oneChar) throws IOException
- {
- synchronized (lock)
- {
- buffer[count++] = (char) oneChar;
- if (count == buffer.length)
- localFlush ();
- }
- }
-
- /**
- * This method writes <code>len</code> chars from the char array
- * <code>buf</code> starting at position <code>offset</code> in the buffer.
- * These chars will be written to the internal buffer. However, if this
- * write operation fills the buffer, the buffer will be flushed to the
- * underlying output stream.
- *
- * @param buf The array of chars to write.
- * @param offset The index into the char array to start writing from.
- * @param len The number of chars to write.
- *
- * @exception IOException If an error occurs
- */
- public void write (char[] buf, int offset, int len) throws IOException
- {
- if (offset < 0 || len < 0 || offset + len > buf.length)
- throw new ArrayIndexOutOfBoundsException ();
-
- synchronized (lock)
- {
- // Bypass buffering if there is too much incoming data.
- if (count + len > buffer.length)
- {
- localFlush ();
- out.write(buf, offset, len);
- }
- else
- {
- System.arraycopy(buf, offset, buffer, count, len);
- count += len;
- if (count == buffer.length)
- localFlush ();
- }
- }
- }
-
- /**
- * This method writes <code>len</code> chars from the <code>String</code>
- * <code>str</code> starting at position <code>offset</code> in the string.
- * These chars will be written to the internal buffer. However, if this
- * write operation fills the buffer, the buffer will be flushed to the
- * underlying output stream.
- *
- * @param str The <code>String</code> to write.
- * @param offset The index into the string to start writing from.
- * @param len The number of chars to write.
- *
- * @exception IOException If an error occurs
- */
- public void write (String str, int offset, int len) throws IOException
- {
- if (offset < 0 || len < 0 || offset + len < str.length())
- throw new ArrayIndexOutOfBoundsException ();
-
- synchronized (lock)
- {
- if (count + len > buffer.length)
- {
- localFlush ();
- out.write(str, offset, len);
- }
- else
- {
- str.getChars(offset, offset + len, buffer, count);
- count += len;
- if (count == buffer.length)
- localFlush ();
- }
- }
- }
-
- private final void localFlush () throws IOException
- {
- if (count > 0)
- {
- synchronized (lock)
- {
- out.write(buffer, 0, count);
- count = 0;
- }
- }
- }
-
- /**
- * This is the underlying <code>Writer</code> to which this object
- * sends its output.
- */
- private Writer out;
-
- /**
- * This is the internal char array used for buffering output before
- * writing it.
- */
- char[] buffer;
-
- /**
- * This is the number of chars that are currently in the buffer and
- * are waiting to be written to the underlying stream. It always points to
- * the index into the buffer where the next char of data will be stored
- */
- int count;
-
- /**
- * This is the default buffer size
- */
- private static final int DEFAULT_BUFFER_SIZE = 8192;
-}
diff --git a/libjava/java/io/ByteArrayInputStream.java b/libjava/java/io/ByteArrayInputStream.java
deleted file mode 100644
index 97ec6e79818..00000000000
--- a/libjava/java/io/ByteArrayInputStream.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 7, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public class ByteArrayInputStream extends InputStream
-{
- /* An array of bytes provided by the creator of the stream. */
- protected byte[] buf;
-
- /* Position of the next byte in buf to be read. */
- protected int pos;
-
- /* The currently marked position in the stream. */
- protected int mark;
-
- /* The index in buf one greater than the last valid character. */
- protected int count;
-
- public ByteArrayInputStream(byte[] buffer)
- {
- this(buffer, 0, buffer.length);
- }
-
- public ByteArrayInputStream(byte[] buffer, int offset, int length)
- {
- buf = buffer;
-
- count = offset + length;
- if (count > buf.length)
- count = buf.length;
-
- pos = offset;
- // TBD: What should we do if pos is neg. or > count? E.g. throw exc. or:
- // if (pos < 0 || pos > count)
- // pos = 0;
-
- mark = pos;
- }
-
- public synchronized int available()
- {
- return count - pos;
- }
-
- public synchronized void mark(int readAheadLimit)
- {
- // readAheadLimit is ignored per Java Class Lib. book, p.220.
- mark = pos;
- }
-
- public boolean markSupported()
- {
- return true;
- }
-
- public synchronized int read()
- {
- if (pos < 0)
- throw new ArrayIndexOutOfBoundsException(pos);
-
- if (pos < count)
- return ((int) buf[pos++]) & 0xFF;
- return -1;
- }
-
- public synchronized int read(byte[] b, int off, int len)
- {
- /* Don't need to check pos value, arraycopy will check it. */
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- if (pos >= count)
- return -1;
-
- int numBytes = Math.min(count - pos, len);
- System.arraycopy(buf, pos, b, off, numBytes);
- pos += numBytes;
- return numBytes;
- }
-
- public synchronized void reset()
- {
- pos = mark;
- }
-
- public synchronized long skip(long n)
- {
- // Even though the var numBytes is a long, in reality it can never
- // be larger than an int since the result of subtracting 2 positive
- // ints will always fit in an int. Since we have to return a long
- // anyway, numBytes might as well just be a long.
- long numBytes = Math.min((long) (count - pos), n < 0 ? 0L : n);
- pos += numBytes;
- return numBytes;
- }
-}
diff --git a/libjava/java/io/ByteArrayOutputStream.java b/libjava/java/io/ByteArrayOutputStream.java
deleted file mode 100644
index e72421e0d38..00000000000
--- a/libjava/java/io/ByteArrayOutputStream.java
+++ /dev/null
@@ -1,257 +0,0 @@
-// ByteArrayOutputStream.java - Write bytes to an array.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-/**
- * This class allows data to be written to a byte array buffer and
- * and then retrieved by an application. The internal byte array
- * buffer is dynamically resized to hold all the data written. Please
- * be aware that writing large amounts to data to this stream will
- * cause large amounts of memory to be allocated.
- * <p>
- * The size of the internal buffer defaults to 32 and it is resized
- * by doubling the size of the buffer. This default size can be
- * overridden by using the
- * <code>gnu.java.io.ByteArrayOutputStream.initialBufferSize</code>
- * property.
- * <p>
- * There is a constructor that specified the initial buffer size and
- * that is the preferred way to set that value because it it portable
- * across all Java class library implementations.
- * <p>
- * Note that this class also has methods that convert the byte array
- * buffer to a <code>String</code> using either the system default or an
- * application specified character encoding. Thus it can handle
- * multibyte character encodings.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-public class ByteArrayOutputStream extends OutputStream
-{
- /**
- * This method initializes a new <code>ByteArrayOutputStream</code>
- * with the default buffer size of 32 bytes. If a different initial
- * buffer size is desired, see the constructor
- * <code>ByteArrayOutputStream(int size)</code>. For applications
- * where the source code is not available, the default buffer size
- * can be set using the system property
- * <code>gnu.java.io.ByteArrayOutputStream.initialBufferSize</code>
- */
- public ByteArrayOutputStream ()
- {
- this (initial_buffer_size);
- }
-
- /**
- * This method initializes a new <code>ByteArrayOutputStream</code> with
- * a specified initial buffer size.
- *
- * @param size The initial buffer size in bytes
- */
- public ByteArrayOutputStream (int size)
- {
- buf = new byte[size];
- count = 0;
- }
-
- /**
- * This method discards all of the bytes that have been written to
- * the internal buffer so far by setting the <code>count</code>
- * variable to 0. The internal buffer remains at its currently
- * allocated size.
- */
- public synchronized void reset ()
- {
- count = 0;
- }
-
- /**
- * This method returns the number of bytes that have been written to
- * the buffer so far. This is the same as the value of the protected
- * <code>count</code> variable. If the <code>reset</code> method is
- * called, then this value is reset as well. Note that this method does
- * not return the length of the internal buffer, but only the number
- * of bytes that have been written to it.
- *
- * @return The number of bytes in the internal buffer
- *
- * @see reset
- */
- public int size ()
- {
- return count;
- }
-
- /**
- * This method returns a byte array containing the bytes that have been
- * written to this stream so far. This array is a copy of the valid
- * bytes in the internal buffer and its length is equal to the number of
- * valid bytes, not necessarily to the the length of the current
- * internal buffer. Note that since this method allocates a new array,
- * it should be used with caution when the internal buffer is very large.
- */
- public synchronized byte[] toByteArray ()
- {
- byte[] ret = new byte[count];
- System.arraycopy(buf, 0, ret, 0, count);
- return ret;
- }
-
- /**
- * Returns the bytes in the internal array as a <code>String</code>. The
- * bytes in the buffer are converted to characters using the system default
- * encoding. There is an overloaded <code>toString()</code> method that
- * allows an application specified character encoding to be used.
- *
- * @return A <code>String</code> containing the data written to this
- * stream so far
- */
- public String toString ()
- {
- return new String (buf, 0, count);
- }
-
- /**
- * Returns the bytes in the internal array as a <code>String</code>. The
- * bytes in the buffer are converted to characters using the specified
- * encoding.
- *
- * @param enc The name of the character encoding to use
- *
- * @return A <code>String</code> containing the data written to this
- * stream so far
- *
- * @exception UnsupportedEncodingException If the named encoding is
- * not available
- */
- public String toString (String enc) throws UnsupportedEncodingException
- {
- return new String (buf, 0, count, enc);
- }
-
- /**
- * This method returns the bytes in the internal array as a
- * <code>String</code>. It uses each byte in the array as the low
- * order eight bits of the Unicode character value and the passed in
- * parameter as the high eight bits.
- * <p>
- * This method does not convert bytes to characters in the proper way and
- * so is deprecated in favor of the other overloaded <code>toString</code>
- * methods which use a true character encoding.
- *
- * @param hibyte The high eight bits to use for each character in
- * the <code>String</code>
- *
- * @return A <code>String</code> containing the data written to this
- * stream so far
- *
- * @deprecrated
- */
- public String toString (int hibyte)
- {
- return new String (buf, 0, count, hibyte);
- }
-
- // Resize buffer to accomodate new bytes.
- private void resize (int add)
- {
- if (count + add >= buf.length)
- {
- int newlen = buf.length * 2;
- if (count + add > newlen)
- newlen = count + add;
- byte[] newbuf = new byte[newlen];
- System.arraycopy(buf, 0, newbuf, 0, count);
- buf = newbuf;
- }
- }
-
- /**
- * This method writes the writes the specified byte into the internal
- * buffer.
- *
- * @param oneByte The byte to be read passed as an int
- */
- public synchronized void write (int oneByte)
- {
- resize (1);
- buf[count++] = (byte) oneByte;
- }
-
- /**
- * This method writes <code>len</code> bytes from the passed in array
- * <code>buf</code> starting at index <code>offset</code> into the
- * internal buffer.
- *
- * @param buffer The byte array to write data from
- * @param offset The index into the buffer to start writing data from
- * @param add The number of bytes to write
- */
- public synchronized void write (byte[] buffer, int offset, int add)
- {
- // If ADD < 0 then arraycopy will throw the appropriate error for
- // us.
- if (add >= 0)
- resize (add);
- System.arraycopy(buffer, offset, buf, count, add);
- count += add;
- }
-
- /**
- * This method writes all the bytes that have been written to this stream
- * from the internal buffer to the specified <code>OutputStream</code>.
- *
- * @param out The <code>OutputStream</code> to write to
- *
- * @exception IOException If an error occurs
- */
- public synchronized void writeTo (OutputStream out) throws IOException
- {
- out.write(buf, 0, count);
- }
-
- /**
- * The internal buffer where the data written is stored
- */
- protected byte[] buf;
-
- /**
- * The number of bytes that have been written to the buffer
- */
- protected int count;
-
- /**
- * The default initial buffer size. Specified by the JCL.
- */
- private static final int DEFAULT_INITIAL_BUFFER_SIZE = 32;
-
- // The default buffer size which can be overridden by the user.
- private static final int initial_buffer_size;
-
- static
- {
- int r
- = Integer.getInteger ("gnu.java.io.ByteArrayOutputStream.initialBufferSize",
- DEFAULT_INITIAL_BUFFER_SIZE).intValue ();
- if (r <= 0)
- r = DEFAULT_INITIAL_BUFFER_SIZE;
- initial_buffer_size = r;
- }
-}
diff --git a/libjava/java/io/CharArrayReader.java b/libjava/java/io/CharArrayReader.java
deleted file mode 100644
index 195403684c2..00000000000
--- a/libjava/java/io/CharArrayReader.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 16, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public class CharArrayReader extends Reader
-{
- /* An array of chars provided by the creator of the stream. */
- protected char[] buf;
-
- /* Position of the next char in buf to be read. */
- protected int pos;
-
- /* The currently marked position in the stream. */
- protected int markedPos;
-
- /* The index in buf one greater than the last valid character. */
- protected int count;
-
- public CharArrayReader(char[] buffer)
- {
- this(buffer, 0, buffer.length);
- }
-
- public CharArrayReader(char[] buffer, int offset, int length)
- {
- super();
- buf = buffer;
-
- count = offset + length;
- if (count > buf.length)
- count = buf.length;
-
- pos = offset;
- // TBD: What should we do if pos is neg. or > count? E.g. throw exc. or:
- // if (pos < 0 || pos > count)
- // pos = 0;
-
- markedPos = pos;
- }
-
- public void close()
- {
- synchronized (lock)
- {
- buf = null;
- }
- }
-
- public void mark(int readAheadLimit)
- {
- synchronized (lock)
- {
- // readAheadLimit is ignored per Java Class Lib. book, p. 318.
- markedPos = pos;
- }
- }
-
- public boolean markSupported()
- {
- return true;
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- if (pos < 0)
- throw new ArrayIndexOutOfBoundsException(pos);
-
- if (pos < count)
- return ((int) buf[pos++]) & 0xFFFF;
- return -1;
- }
- }
-
- public int read(char[] b, int off, int len) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- /* Don't need to check pos value, arraycopy will check it. */
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- if (pos >= count)
- return -1;
-
- int numChars = Math.min(count - pos, len);
- System.arraycopy(buf, pos, b, off, numChars);
- pos += numChars;
- return numChars;
- }
- }
-
- public boolean ready() throws IOException
- {
- if (buf == null)
- throw new IOException();
-
- return true;
- }
-
- public void reset() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- pos = markedPos;
- }
- }
-
- public long skip(long n) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- // Even though the var numChars is a long, in reality it can never
- // be larger than an int since the result of subtracting 2 positive
- // ints will always fit in an int. Since we have to return a long
- // anyway, numChars might as well just be a long.
- long numChars = Math.min((long) (count - pos), n < 0 ? 0L : n);
- pos += numChars;
- return numChars;
- }
- }
-}
diff --git a/libjava/java/io/CharArrayWriter.java b/libjava/java/io/CharArrayWriter.java
deleted file mode 100644
index 5e04d6171b1..00000000000
--- a/libjava/java/io/CharArrayWriter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-// CharArrayWriter.java - Character array output stream.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class CharArrayWriter extends Writer
-{
- public CharArrayWriter ()
- {
- this (32);
- }
-
- public CharArrayWriter (int size)
- {
- super ();
- buf = new char[size];
- }
-
- public void close ()
- {
- // JCL says this does nothing. This seems to violate the Writer
- // contract, in that other methods should still throw and
- // IOException after a close. Still, we just follow JCL.
- }
-
- public void flush ()
- {
- }
-
- public synchronized void reset ()
- {
- count = 0;
- }
-
- public int size ()
- {
- return count;
- }
-
- public char[] toCharArray ()
- {
- char[] nc = new char[count];
- System.arraycopy(buf, 0, nc, 0, count);
- return nc;
- }
-
- public String toString ()
- {
- return new String (buf, 0, count);
- }
-
- public void write (int oneChar)
- {
- synchronized (lock)
- {
- resize (1);
- buf[count++] = (char) oneChar;
- }
- }
-
- public void write (char[] buffer, int offset, int len)
- {
- synchronized (lock)
- {
- if (len >= 0)
- resize (len);
- System.arraycopy(buffer, offset, buf, count, len);
- count += len;
- }
- }
-
- public void write (String str, int offset, int len)
- {
- synchronized (lock)
- {
- if (len >= 0)
- resize (len);
- str.getChars(offset, offset + len, buf, count);
- count += len;
- }
- }
-
- public void writeTo (Writer out) throws IOException
- {
- out.write(buf, 0, count);
- }
-
- private final void resize (int len)
- {
- if (count + len >= buf.length)
- {
- int newlen = buf.length * 2;
- if (count + len > newlen)
- newlen = count + len;
- char[] newbuf = new char[newlen];
- System.arraycopy(buf, 0, newbuf, 0, count);
- buf = newbuf;
- }
- }
-
- // The character buffer.
- protected char[] buf;
- // Number of valid characters in buffer.
- protected int count;
-}
diff --git a/libjava/java/io/CharConversionException.java b/libjava/java/io/CharConversionException.java
deleted file mode 100644
index 938d605d0f9..00000000000
--- a/libjava/java/io/CharConversionException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// CharConversionException.java - Problem converting char to byte encoding.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class CharConversionException extends IOException
-{
- public CharConversionException ()
- {
- super ();
- }
-
- public CharConversionException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/DataInput.java b/libjava/java/io/DataInput.java
deleted file mode 100644
index 5930e496979..00000000000
--- a/libjava/java/io/DataInput.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 2, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public interface DataInput
-{
- public boolean readBoolean() throws IOException;
- public byte readByte() throws IOException;
- public char readChar() throws IOException;
- public double readDouble() throws IOException;
- public float readFloat() throws IOException;
- public void readFully(byte[] b)
- throws IOException, NullPointerException;
- public void readFully(byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException;
- public int readInt() throws IOException;
- public String readLine() throws IOException;
- public long readLong() throws IOException;
- public short readShort() throws IOException;
- public int readUnsignedByte() throws IOException;
- public int readUnsignedShort() throws IOException;
- public String readUTF() throws IOException;
- public int skipBytes(int n) throws IOException;
-}
diff --git a/libjava/java/io/DataInputStream.java b/libjava/java/io/DataInputStream.java
deleted file mode 100644
index edfa1f5924b..00000000000
--- a/libjava/java/io/DataInputStream.java
+++ /dev/null
@@ -1,697 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-/**
- * This subclass of <code>FilteredInputStream</code> implements the
- * <code>DataInput</code> interface that provides method for reading primitive
- * Java data types from a stream.
- *
- * @see DataInput
- *
- * @version 0.0
- *
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Aaron M. Renn (arenn@urbanophile.com)
- * @date October 20, 1998.
- */
-
-public class DataInputStream extends FilterInputStream implements DataInput
-{
- // readLine() hack to ensure that an '\r' not followed by an '\n' is
- // handled correctly. If set, readLine() will ignore the first char it sees
- // if that char is a '\n'
- boolean ignoreInitialNewline = false;
-
- /**
- * This constructor initializes a new <code>DataInputStream</code>
- * to read from the specified subordinate stream.
- *
- * @param in The subordinate <code>InputStream</code> to read from
- */
- public DataInputStream(InputStream in)
- {
- super(in);
- }
-
- /**
- * This method reads bytes from the underlying stream into the specified
- * byte array buffer. It will attempt to fill the buffer completely, but
- * may return a short count if there is insufficient data remaining to be
- * read to fill the buffer.
- *
- * @param b The buffer into which bytes will be read.
- *
- * @return The actual number of bytes read, or -1 if end of stream reached
- * before reading any bytes.
- *
- * @exception IOException If an error occurs.
- */
- public final int read(byte[] b) throws IOException
- {
- return super.read(b, 0, b.length);
- }
-
- /**
- * This method reads bytes from the underlying stream into the specified
- * byte array buffer. It will attempt to read <code>len</code> bytes and
- * will start storing them at position <code>off</code> into the buffer.
- * This method can return a short count if there is insufficient data
- * remaining to be read to complete the desired read length.
- *
- * @param b The buffer into which bytes will be read.
- * @param off The offset into the buffer to start storing bytes.
- * @param len The requested number of bytes to read.
- *
- * @return The actual number of bytes read, or -1 if end of stream reached
- * before reading any bytes.
- *
- * @exception IOException If an error occurs.
- */
- public final int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- return super.read(b, off, len);
- }
-
- /**
- * This method reads a Java boolean value from an input stream. It does
- * so by reading a single byte of data. If that byte is zero, then the
- * value returned is <code>false</code>. If the byte is non-zero, then
- * the value returned is <code>true</code>.
- * <p>
- * This method can read a <code>boolean</code> written by an object
- * implementing the <code>writeBoolean()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>boolean</code> value read
- *
- * @exception EOFException If end of file is reached before reading
- * the boolean
- * @exception IOException If any other error occurs
- */
- public final boolean readBoolean() throws IOException
- {
- return (readByte() != 0);
- }
-
- /**
- * This method reads a Java byte value from an input stream. The value
- * is in the range of -128 to 127.
- * <p>
- * This method can read a <code>byte</code> written by an object
- * implementing the <code>writeByte()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>byte</code> value read
- *
- * @exception EOFException If end of file is reached before reading the byte
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final byte readByte() throws IOException
- {
- int i = read();
- if (i < 0)
- throw new EOFException();
-
- return (byte) i;
- }
-
- /**
- * This method reads a Java <code>char</code> value from an input stream.
- * It operates by reading two bytes from the stream and converting them to
- * a single 16-bit Java <code>char</code>. The two bytes are stored most
- * significant byte first (i.e., "big endian") regardless of the native
- * host byte ordering.
- * <p>
- * As an example, if <code>byte1</code> and <code>byte2</code>
- * represent the first and second byte read from the stream
- * respectively, they will be transformed to a <code>char</code> in
- * the following manner:
- * <p>
- * <code>(char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF)</code>
- * <p>
- * This method can read a <code>char</code> written by an object
- * implementing the <code>writeChar()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>char</code> value read
- *
- * @exception EOFException If end of file is reached before reading the char
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final char readChar() throws IOException
- {
- return (char) ((readByte() << 8) | readUnsignedByte());
- }
-
- /**
- * This method reads a Java double value from an input stream. It operates
- * by first reading a <code>long</code> value from the stream by calling the
- * <code>readLong()</code> method in this interface, then converts
- * that <code>long</code> to a <code>double</code> using the
- * <code>longBitsToDouble</code> method in the class
- * <code>java.lang.Double</code>
- * <p>
- * This method can read a <code>double</code> written by an object
- * implementing the <code>writeDouble()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>double</code> value read
- *
- * @exception EOFException If end of file is reached before reading
- * the double
- * @exception IOException If any other error occurs
- *
- * @see java.lang.Double
- * @see DataOutput
- */
- public final double readDouble() throws IOException
- {
- return Double.longBitsToDouble(readLong());
- }
-
- /**
- * This method reads a Java float value from an input stream. It
- * operates by first reading an <code>int</code> value from the
- * stream by calling the <code>readInt()</code> method in this
- * interface, then converts that <code>int</code> to a
- * <code>float</code> using the <code>intBitsToFloat</code> method
- * in the class <code>java.lang.Float</code>
- * <p>
- * This method can read a <code>float</code> written by an object
- * implementing the * <code>writeFloat()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>float</code> value read
- *
- * @exception EOFException If end of file is reached before reading the float
- * @exception IOException If any other error occurs
- *
- * @see java.lang.Float
- * @see DataOutput */
- public final float readFloat() throws IOException
- {
- return Float.intBitsToFloat(readInt());
- }
-
- /**
- * This method reads raw bytes into the passed array until the array is
- * full. Note that this method blocks until the data is available and
- * throws an exception if there is not enough data left in the stream to
- * fill the buffer
- *
- * @param b The buffer into which to read the data
- *
- * @exception EOFException If end of file is reached before filling
- * the buffer
- * @exception IOException If any other error occurs */
- public final void readFully(byte[] b) throws IOException
- {
- readFully(b, 0, b.length);
- }
-
- /**
- * This method reads raw bytes into the passed array
- * <code>buf</code> starting <code>offset</code> bytes into the
- * buffer. The number of bytes read will be exactly
- * <code>len</code> Note that this method blocks until the data is
- * available and * throws an exception if there is not enough data
- * left in the stream to read <code>len</code> bytes.
- *
- * @param buf The buffer into which to read the data
- * @param offset The offset into the buffer to start storing data
- * @param len The number of bytes to read into the buffer
- *
- * @exception EOFException If end of file is reached before filling
- * the buffer
- * @exception IOException If any other error occurs
- */
- public final void readFully(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- while (len > 0)
- {
- // super.read will block until some data is available.
- int numread = super.read(b, off, len);
- if (numread < 0)
- throw new EOFException();
- len -= numread;
- off += numread;
- }
- }
-
- /**
- * This method reads a Java <code>int</code> value from an input
- * stream It operates by reading four bytes from the stream and
- * converting them to a single Java <code>int</code> The bytes are
- * stored most significant byte first (i.e., "big endian")
- * regardless of the native host byte ordering.
- * <p>
- * As an example, if <code>byte1</code> through <code>byte4</code>
- * represent the first four bytes read from the stream, they will be
- * transformed to an <code>int</code> in the following manner:
- * <p>
- * <code>(int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) +
- * ((byte3 & 0xFF) << 8) + (byte4 & 0xFF)))</code>
- * <p>
- * The value returned is in the range of 0 to 65535.
- * <p>
- * This method can read an <code>int</code> written by an object
- * implementing the <code>writeInt()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>int</code> value read
- *
- * @exception EOFException If end of file is reached before reading the int
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final int readInt() throws IOException
- {
- int retval = 0;
- for (int i = 0; i < 4; i++)
- retval |= readUnsignedByte() << (24 - i * 8);
-
- return retval;
- }
-
- /**
- * This method reads the next line of text data from an input
- * stream. It operates by reading bytes and converting those bytes
- * to <code>char</code> values by treating the byte read as the low
- * eight bits of the <code>char</code> and using 0 as the high eight
- * bits. Because of this, it does not support the full 16-bit
- * Unicode character set.
- * <p>
- * The reading of bytes ends when either the end of file or a line
- * terminator is encountered. The bytes read are then returned as a
- * <code>String</code> A line terminator is a byte sequence
- * consisting of either <code>\r</code>, <code>\n</code> or
- * <code>\r\n</code>. These termination charaters are discarded and
- * are not returned as part of the string.
- * <p>
- * This method can read data that was written by an object implementing the
- * <code>writeLine()</code> method in <code>DataOutput</code>.
- *
- * @return The line read as a <code>String</code>
- *
- * @exception IOException If an error occurs
- *
- * @see DataOutput
- *
- * @deprecated
- */
- public final String readLine() throws IOException
- {
- StringBuffer strb = new StringBuffer();
-
- readloop: while (true)
- {
- int c = 0;
- char ch = ' ';
- boolean getnext = true;
- while (getnext)
- {
- getnext = false;
- c = read();
- if (c < 0) // got an EOF
- return strb.length() > 0 ? strb.toString() : null;
- ch = (char) c;
- if ((ch &= 0xFF) == '\n')
- // hack to correctly handle '\r\n' sequences
- if (ignoreInitialNewline)
- {
- ignoreInitialNewline = false;
- getnext = true;
- }
- else
- break readloop;
- }
-
- if (ch == '\r')
- {
- // FIXME: The following code tries to adjust the stream back one
- // character if the next char read is '\n'. As a last resort,
- // it tries to mark the position before reading but the bottom
- // line is that it is possible that this method will not properly
- // deal with a '\r' '\n' combination thus not fulfilling the
- // DataInput contract for readLine. It's not a particularly
- // safe approach threadwise since it is unsynchronized and
- // since it might mark an input stream behind the users back.
- // Along the same vein it could try the same thing for
- // ByteArrayInputStream and PushbackInputStream, but that is
- // probably overkill since this is deprecated & BufferedInputStream
- // is the most likely type of input stream.
- //
- // The alternative is to somehow push back the next byte if it
- // isn't a '\n' or to have the reading methods of this class
- // keep track of whether the last byte read was '\r' by readLine
- // and then skip the very next byte if it is '\n'. Either way,
- // this would increase the complexity of the non-deprecated methods
- // and since it is undesirable to make non-deprecated methods
- // less efficient, the following seems like the most reasonable
- // approach.
- int next_c = 0;
- char next_ch = ' ';
- if (in instanceof BufferedInputStream)
- {
- next_c = read();
- next_ch = (char) (next_c & 0xFF);
- if ((next_ch != '\n') && (next_c >= 0))
- {
- BufferedInputStream bin = (BufferedInputStream) in;
- if (bin.pos > 0)
- bin.pos--;
- }
- }
- else if (markSupported())
- {
- next_c = read();
- next_ch = (char) (next_c & 0xFF);
- if ((next_ch != '\n') && (next_c >= 0))
- {
- mark(1);
- if ((read() & 0xFF) != '\n')
- reset();
- }
- }
- // In order to catch cases where 'in' isn't a BufferedInputStream
- // and doesn't support mark() (such as reading from a Socket), set
- // a flag that instructs readLine() to ignore the first character
- // it sees _if_ that character is a '\n'.
- else ignoreInitialNewline = true;
- break;
- }
- strb.append(ch);
- }
-
- return strb.length() > 0 ? strb.toString() : "";
- }
-
- /**
- * This method reads a Java long value from an input stream
- * It operates by reading eight bytes from the stream and converting them to
- * a single Java <code>long</code> The bytes are stored most
- * significant byte first (i.e., "big endian") regardless of the native
- * host byte ordering.
- * <p>
- * As an example, if <code>byte1</code> through <code>byte8</code>
- * represent the first eight bytes read from the stream, they will
- * be transformed to an <code>long</code> in the following manner:
- * <p>
- * <code>(long)((((long)byte1 & 0xFF) << 56) + (((long)byte2 & 0xFF) << 48) +
- * (((long)byte3 & 0xFF) << 40) + (((long)byte4 & 0xFF) << 32) +
- * (((long)byte5 & 0xFF) << 24) + (((long)byte6 & 0xFF) << 16) +
- * (((long)byte7 & 0xFF) << 8) + ((long)byte9 & 0xFF)))</code>
- * <p>
- * The value returned is in the range of 0 to 65535.
- * <p>
- * This method can read an <code>long</code> written by an object
- * implementing the <code>writeLong()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>long</code> value read
- *
- * @exception EOFException If end of file is reached before reading the long
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final long readLong() throws IOException
- {
- long retval = 0L;
- for (int i = 0; i < 8; i++)
- retval |= (long) readUnsignedByte() << (56 - i * 8);
-
- return retval;
- }
-
- /**
- * This method reads a signed 16-bit value into a Java in from the
- * stream. It operates by reading two bytes from the stream and
- * converting them to a single 16-bit Java <code>short</code>. The
- * two bytes are stored most significant byte first (i.e., "big
- * endian") regardless of the native host byte ordering.
- * <p>
- * As an example, if <code>byte1</code> and <code>byte2</code>
- * represent the first and second byte read from the stream
- * respectively, they will be transformed to a <code>short</code>. in
- * the following manner:
- * <p>
- * <code>(short)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF)</code>
- * <p>
- * The value returned is in the range of -32768 to 32767.
- * <p>
- * This method can read a <code>short</code> written by an object
- * implementing the <code>writeShort()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The <code>short</code> value read
- *
- * @exception EOFException If end of file is reached before reading the value
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final short readShort() throws IOException
- {
- return (short) ((readByte() << 8) | readUnsignedByte());
- }
-
- /**
- * This method reads 8 unsigned bits into a Java <code>int</code>
- * value from the stream. The value returned is in the range of 0 to
- * 255.
- * <p>
- * This method can read an unsigned byte written by an object
- * implementing the <code>writeUnsignedByte()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The unsigned bytes value read as a Java <code>int</code>.
- *
- * @exception EOFException If end of file is reached before reading the value
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final int readUnsignedByte() throws IOException
- {
- int i = read();
- if (i < 0)
- throw new EOFException();
-
- return (i & 0xFF);
- }
-
- /**
- * This method reads 16 unsigned bits into a Java int value from the stream.
- * It operates by reading two bytes from the stream and converting them to
- * a single Java <code>int</code> The two bytes are stored most
- * significant byte first (i.e., "big endian") regardless of the native
- * host byte ordering.
- * <p>
- * As an example, if <code>byte1</code> and code{byte2</code>
- * represent the first and second byte read from the stream
- * respectively, they will be transformed to an <code>int</code> in
- * the following manner:
- * <p>
- * <code>(int)(((byte1 & 0xFF) << 8) + (byte2 & 0xFF))</code>
- * <p>
- * The value returned is in the range of 0 to 65535.
- * <p>
- * This method can read an unsigned short written by an object
- * implementing the <code>writeUnsignedShort()</code> method in the
- * <code>DataOutput</code> interface.
- *
- * @return The unsigned short value read as a Java <code>int</code>
- *
- * @exception EOFException If end of file is reached before reading the value
- * @exception IOException If any other error occurs
- */
- public final int readUnsignedShort() throws IOException
- {
- return (readUnsignedByte() << 8) | readUnsignedByte();
- }
-
- /**
- * This method reads a <code>String</code> from an input stream that
- * is encoded in a modified UTF-8 format. This format has a leading
- * two byte sequence that contains the remaining number of bytes to
- * read. This two byte sequence is read using the
- * <code>readUnsignedShort()</code> method of this interface.
- * <p>
- * After the number of remaining bytes have been determined, these
- * bytes are read an transformed into <code>char</code> values.
- * These <code>char</code> values are encoded in the stream using
- * either a one, two, or three byte format. The particular format
- * in use can be determined by examining the first byte read.
- * <p>
- * If the first byte has a high order bit of 0, then that character
- * consists on only one byte. This character value consists of
- * seven bits that are at positions 0 through 6 of the byte. As an
- * example, if <code>byte1</code> is the byte read from the stream,
- * it would be converted to a <code>char</code> like so:
- * <p>
- * <code>(char)byte1</code>
- * <p>
- * If the first byte has 110 as its high order bits, then the
- * character consists of two bytes. The bits that make up the character
- * value are in positions 0 through 4 of the first byte and bit positions
- * 0 through 5 of the second byte. (The second byte should have
- * 10 as its high order bits). These values are in most significant
- * byte first (i.e., "big endian") order.
- * <p>
- * As an example, if <code>byte1</code> and <code>byte2</code> are
- * the first two bytes read respectively, and the high order bits of
- * them match the patterns which indicate a two byte character
- * encoding, then they would be converted to a Java
- * <code>char</code> like so:
- * <p>
- * <code>(char)(((byte1 & 0x1F) << 6) | (byte2 & 0x3F))</code>
- * <p>
- * If the first byte has a 1110 as its high order bits, then the
- * character consists of three bytes. The bits that make up the character
- * value are in positions 0 through 3 of the first byte and bit positions
- * 0 through 5 of the other two bytes. (The second and third bytes should
- * have 10 as their high order bits). These values are in most
- * significant byte first (i.e., "big endian") order.
- * <p>
- * As an example, if <code>byte1</code> <code>byte2</code> and
- * <code>byte3</code> are the three bytes read, and the high order
- * bits of them match the patterns which indicate a three byte
- * character encoding, then they would be converted to a Java
- * <code>char</code> like so:
- * <p>
- * <code>(char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F))</code>
- * <p>
- * Note that all characters are encoded in the method that requires
- * the fewest number of bytes with the exception of the character
- * with the value of <code>&#92;u0000</code> which is encoded as two
- * bytes. This is a modification of the UTF standard used to
- * prevent C language style <code>NUL</code> values from appearing
- * in the byte stream.
- * <p>
- * This method can read data that was written by an object implementing the
- * <code>writeUTF()</code> method in <code>DataOutput</code>
- *
- * @returns The <code>String</code> read
- *
- * @exception EOFException If end of file is reached before reading
- * the String
- * @exception UTFDataFormatException If the data is not in UTF-8 format
- * @exception IOException If any other error occurs
- *
- * @see DataOutput
- */
- public final String readUTF() throws IOException
- {
- return readUTF(this);
- }
-
- /**
- * This method reads a String encoded in UTF-8 format from the
- * specified <code>DataInput</code> source.
- *
- * @param in The <code>DataInput</code> source to read from
- *
- * @return The String read from the source
- *
- * @exception IOException If an error occurs
- */
- public final static String readUTF(DataInput in) throws IOException
- {
- final int UTFlen = in.readUnsignedShort();
- byte[] buf = new byte[UTFlen];
- StringBuffer strbuf = new StringBuffer();
-
- // This blocks until the entire string is available rather than
- // doing partial processing on the bytes that are available and then
- // blocking. An advantage of the latter is that Exceptions
- // could be thrown earlier. The former is a bit cleaner.
- in.readFully(buf, 0, UTFlen);
- for (int i = 0; i < UTFlen; )
- {
- if ((buf[i] & 0x80) == 0) // bit pattern 0xxxxxxx
- strbuf.append((char) (buf[i++] & 0xFF));
- else if ((buf[i] & 0xE0) == 0xC0) // bit pattern 110xxxxx
- {
- if (i + 1 >= UTFlen || (buf[i+1] & 0xC0) != 0x80)
- throw new UTFDataFormatException();
-
- strbuf.append((char) (((buf[i++] & 0x1F) << 6) |
- (buf[i++] & 0x3F)));
- }
- else if ((buf[i] & 0xF0) == 0xE0) // bit pattern 1110xxxx
- {
- if (i + 2 >= UTFlen ||
- (buf[i+1] & 0xC0) != 0x80 || (buf[i+2] & 0xC0) != 0x80)
- throw new UTFDataFormatException();
-
- strbuf.append((char) (((buf[i++] & 0x0F) << 12) |
- ((buf[i++] & 0x3F) << 6) |
- (buf[i++] & 0x3F)));
- }
- else // must be ((buf[i] & 0xF0) == 0xF0 || (buf[i] & 0xC0) == 0x80)
- throw new UTFDataFormatException(); // bit patterns 1111xxxx or
- // 10xxxxxx
- }
-
- return strbuf.toString();
- }
-
- /**
- * This method attempts to skip and discard the specified number of bytes
- * in the input stream. It may actually skip fewer bytes than requested.
- * The actual number of bytes skipped is returned. This method will not
- * skip any bytes if passed a negative number of bytes to skip.
- *
- * @param n The requested number of bytes to skip.
- *
- * @return The number of bytes actually skipped.
- *
- * @exception IOException If an error occurs.
- */
- public final int skipBytes(int n) throws IOException
- {
- // The contract in the Java Lang. Spec. says that this never
- // throws an EOFException and infers that it doesn't block (since
- // it may skip less than the requested number of bytes).
- // BUT, the JCL book specifically says that this method blocks
- // and can throw an EOFException. Finally, the Java 1.2 online
- // doc simply refers to the general contract. As such, we will
- // stick to the contract and assume for now that the JCL book
- // is incorrect.
-
- // Since we're only skipping at most an int number of bytes, the cast
- // of return value to an int is fine.
- if (n > 0)
- {
- n = Math.min(n, available());
- return (int) super.skip((long) n);
- }
-
- return 0;
- }
-}
diff --git a/libjava/java/io/DataOutput.java b/libjava/java/io/DataOutput.java
deleted file mode 100644
index d0def85cdf9..00000000000
--- a/libjava/java/io/DataOutput.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// DataOutput.java - Interface for data output conversions.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public interface DataOutput
-{
- public abstract void write (int b) throws IOException;
- public abstract void write (byte[] b)
- throws IOException, NullPointerException;
- public abstract void write (byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException;
- public abstract void writeBoolean (boolean v) throws IOException;
- public abstract void writeByte (int v) throws IOException;
- public abstract void writeShort (int v) throws IOException;
- public abstract void writeChar (int v) throws IOException;
- public abstract void writeInt (int v) throws IOException;
- public abstract void writeLong (long v) throws IOException;
- public abstract void writeFloat (float v) throws IOException;
- public abstract void writeDouble (double v) throws IOException;
- public abstract void writeBytes (String s)
- throws IOException, NullPointerException;
- public abstract void writeChars (String s)
- throws IOException, NullPointerException;
- public abstract void writeUTF (String s)
- throws IOException, NullPointerException;
-}
diff --git a/libjava/java/io/DataOutputStream.java b/libjava/java/io/DataOutputStream.java
deleted file mode 100644
index 6830e1af09e..00000000000
--- a/libjava/java/io/DataOutputStream.java
+++ /dev/null
@@ -1,165 +0,0 @@
-// DataOutputStream.java - Output filter that implements DataOutput
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public class DataOutputStream extends FilterOutputStream implements DataOutput
-{
- public DataOutputStream (OutputStream out)
- {
- super (out);
- written = 0;
- }
-
- public void flush () throws IOException
- {
- out.flush();
- }
-
- public final int size ()
- {
- return written;
- }
-
- public synchronized void write (int b) throws IOException
- {
- out.write(b);
- ++written;
- }
-
- public synchronized void write (byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException
- {
- out.write(b, off, len);
- written += len - off;
- }
-
- public final void writeBoolean (boolean v) throws IOException
- {
- write (v ? 1 : 0);
- }
-
- public final void writeByte (int v) throws IOException
- {
- write (v & 0xff);
- }
-
- public final void writeShort (int v) throws IOException
- {
- write ((byte) (0xff & (v >> 8)));
- write ((byte) (0xff & v));
- }
-
- public final void writeChar (int v) throws IOException
- {
- write ((byte) (0xff & (v >> 8)));
- write ((byte) (0xff & v));
- }
-
- public final void writeInt (int v) throws IOException
- {
- write ((byte) (0xff & (v >> 24)));
- write ((byte) (0xff & (v >> 16)));
- write ((byte) (0xff & (v >> 8)));
- write ((byte) (0xff & v));
- }
-
- public final void writeLong (long v) throws IOException
- {
- write ((byte) (0xff & (v >> 56)));
- write ((byte) (0xff & (v >> 48)));
- write ((byte) (0xff & (v >> 40)));
- write ((byte) (0xff & (v >> 32)));
- write ((byte) (0xff & (v >> 24)));
- write ((byte) (0xff & (v >> 16)));
- write ((byte) (0xff & (v >> 8)));
- write ((byte) (0xff & v));
- }
-
- public final void writeFloat (float v) throws IOException
- {
- writeInt (Float.floatToIntBits(v));
- }
-
- public final void writeDouble (double v) throws IOException
- {
- writeLong (Double.doubleToLongBits(v));
- }
-
- public final void writeBytes (String s) throws IOException
- {
- int len = s.length();
- for (int i = 0; i < len; ++i)
- writeByte (s.charAt(i));
- }
-
- public final void writeChars (String s) throws IOException
- {
- int len = s.length();
- for (int i = 0; i < len; ++i)
- writeChar (s.charAt(i));
- }
-
- public final void writeUTF (String s) throws IOException
- {
- int len = s.length();
- int sum = 0;
-
- for (int i = 0; i < len && sum <= 65535; ++i)
- {
- char c = s.charAt(i);
- if (c >= '\u0001' && c <= '\u007f')
- sum += 1;
- else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff'))
- sum += 2;
- else
- sum += 3;
- }
-
- if (sum > 65535)
- throw new UTFDataFormatException ();
-
- writeShort (sum);
-
- for (int i = 0; i < len; ++i)
- {
- char c = s.charAt(i);
- if (c >= '\u0001' && c <= '\u007f')
- write (c);
- else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff'))
- {
- write (0xc0 | (0x1f & (c >> 6)));
- write (0x80 | (0x3f & c));
- }
- else
- {
- // JSL says the first byte should be or'd with 0xc0, but
- // that is a typo. Unicode says 0xe0, and that is what is
- // consistent with DataInputStream.
- write (0xe0 | (0x0f & (c >> 12)));
- write (0x80 | (0x3f & (c >> 6)));
- write (0x80 | (0x3f & c));
- }
- }
- }
-
- // Number of bytes written so far.
- protected int written;
-}
diff --git a/libjava/java/io/EOFException.java b/libjava/java/io/EOFException.java
deleted file mode 100644
index e5ae1f01034..00000000000
--- a/libjava/java/io/EOFException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// EOFException.java - End of file exception
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class EOFException extends IOException
-{
- public EOFException ()
- {
- super ();
- }
-
- public EOFException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/Externalizable.java b/libjava/java/io/Externalizable.java
deleted file mode 100644
index 045df8660e1..00000000000
--- a/libjava/java/io/Externalizable.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Externalizable.java -- Interface for saving and restoring object data
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This interface provides a way that classes can completely control how
- * the data of their object instances are written and read to and from
- * streams. It has two methods which are used to write the data to a stream
- * and to read the data from a stream. The read method must read the data
- * in exactly the way it was written by the write method.
- * <p>
- * Note that classes which implement this interface must take into account
- * that all superclass data must also be written to the stream as well.
- * The class implementing this interface must figure out how to make that
- * happen.
- * <p>
- * This interface can be used to provide object persistence. When an
- * object is to be stored externally, the <code>writeExternal</code> method is
- * called to save state. When the object is restored, an instance is
- * created using the default no-argument constructor and the
- * <code>readExternal</code> method is used to restore the state.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract interface Externalizable extends Serializable
-{
-
-/**
- * This method restores an object's state by reading in the instance data
- * for the object from the passed in stream. Note that this stream is not
- * a subclass of <code>InputStream</code>, but rather is a class that implements
- * the <code>ObjectInput</code> interface. That interface provides a mechanism for
- * reading in Java data types from a stream.
- * <p>
- * Note that this method must be compatible with <code>writeExternal</code>.
- * It must read back the exact same types that were written by that
- * method in the exact order they were written.
- * <p>
- * If this method needs to read back an object instance, then the class
- * for that object must be found and loaded. If that operation fails,
- * then this method throws a <code>ClassNotFoundException</code>
- *
- * @param in An <code>ObjectInput</code> instance for reading in the object state
- *
- * @exception ClassNotFoundException If the class of an object being restored cannot be found
- * @exception IOException If any other error occurs
- */
-public abstract void
-readExternal(ObjectInput in) throws ClassNotFoundException, IOException;
-
-/*************************************************************************/
-
-/**
- * This method is responsible for writing the instance data of an object
- * to the passed in stream. Note that this stream is not a subclass of
- * <code>OutputStream</code>, but rather is a class that implements the
- * <code>ObjectOutput</code> interface. That interface provides a number of methods
- * for writing Java data values to a stream.
- * <p>
- * Not that the implementation of this method must be coordinated with
- * the implementation of <code>readExternal</code>.
- *
- * @param out An <code>ObjectOutput</code> instance for writing the object state
- *
- * @exception IOException If an error occurs
- */
-public abstract void
-writeExternal(ObjectOutput out) throws IOException;
-
-} // interface Externalizable
-
diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java
deleted file mode 100644
index fc3477c040b..00000000000
--- a/libjava/java/io/File.java
+++ /dev/null
@@ -1,427 +0,0 @@
-// File.java - File name
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-import java.util.*;
-import gnu.gcj.runtime.FileDeleter;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1; 1.2 functionality missing.
- * A known bug: most calls to the security manager can generate
- * IOException since we use the canonical path.
- */
-
-public class File implements Serializable
-{
- public boolean canRead ()
- {
- return access (checkRead (), READ);
- }
-
- public boolean canWrite ()
- {
- SecurityManager s = System.getSecurityManager();
- String p = safeCanonicalPath ();
- // FIXME: it isn't entirely clear what to do if we can't find the
- // canonical path.
- if (p == null)
- return false;
- if (s != null)
- s.checkWrite(p);
- return access (p, WRITE);
- }
-
- private final native static boolean performDelete (String canon);
- public boolean delete ()
- {
- SecurityManager s = System.getSecurityManager();
- String p = safeCanonicalPath ();
- // FIXME: what is right?
- if (p == null)
- return false;
- if (s != null)
- s.checkDelete(p);
- return performDelete (p);
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof File))
- return false;
- File other = (File) obj;
- return path.compareTo(other.path) == 0;
- }
-
- public boolean exists ()
- {
- return access (checkRead (), EXISTS);
- }
-
- public File (String p)
- {
- if (p == null)
- throw new NullPointerException ();
- path = p;
- }
-
- public File (String dirPath, String name)
- {
- if (name == null)
- throw new NullPointerException ();
- if (dirPath != null && dirPath.length() > 0)
- {
- // Try to be smart about the number of separator characters.
- if (dirPath.charAt(dirPath.length() - 1) == separatorChar)
- path = dirPath + name;
- else
- path = dirPath + separatorChar + name;
- }
- else
- path = name;
- }
-
- public File (File dir, String name)
- {
- this (dir == null ? null : dir.path, name);
- }
-
- public String getAbsolutePath ()
- {
- if (isAbsolute ())
- return path;
- return System.getProperty("user.dir") + separatorChar + path;
- }
-
- public native String getCanonicalPath () throws IOException;
-
- public String getName ()
- {
- int last = path.lastIndexOf(separatorChar);
- return path.substring(last + 1);
- }
-
- public String getParent ()
- {
- int last = path.lastIndexOf(separatorChar);
- if (last == -1)
- return null;
- return path.substring(0, last);
- }
-
- public File getParentFile ()
- {
- String parent = getParent ();
- return (parent == null ? null : new File (parent));
- }
-
- public String getPath ()
- {
- return path;
- }
-
- public int hashCode ()
- {
- // FIXME: test.
- return path.hashCode();
- }
-
- public native boolean isAbsolute ();
-
- public boolean isDirectory ()
- {
- return stat (checkRead (), DIRECTORY);
- }
-
- public boolean isFile ()
- {
- return stat (checkRead (), ISFILE);
- }
-
- public long lastModified ()
- {
- return attr (checkRead (), MODIFIED);
- }
-
- public long length ()
- {
- return attr (checkRead (), LENGTH);
- }
-
- private final native String[] performList (String canon,
- FilenameFilter filter);
- public String[] list (FilenameFilter filter)
- {
- return performList (checkRead (), filter);
- }
-
- public String[] list ()
- {
- return performList (checkRead (), null);
- }
-
- public String toString ()
- {
- return path;
- }
-
- private final native boolean performMkdir ();
- public boolean mkdir ()
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- // NOTE: in theory we should use the canonical path. In
- // practice, we can't compute the canonical path until we've
- // made this completely. Lame.
- s.checkWrite(path);
- }
- return performMkdir ();
- }
-
- private static boolean mkdirs (File x)
- {
- if (x.isDirectory())
- return true;
- String p = x.getPath();
- String parent = x.getParent();
- if (parent != null)
- {
- x.setPath(parent);
- if (! mkdirs (x))
- return false;
- x.setPath(p);
- }
- return x.mkdir();
- }
-
- public boolean mkdirs ()
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- // NOTE: in theory we should use the canonical path. In
- // practice, we can't compute the canonical path until we've
- // made this completely. Lame.
- s.checkWrite(path);
- }
-
- if (isDirectory ())
- return false;
- return mkdirs (new File (path));
- }
-
- private static synchronized String nextValue ()
- {
- return Long.toString(counter++, Character.MAX_RADIX);
- }
-
- public static File createTempFile (String prefix, String suffix,
- File directory)
- throws IOException
- {
- // Grab the system temp directory if necessary
- if (directory == null)
- {
- String dirname = tmpdir;
- if (dirname == null)
- throw
- new IOException("Cannot determine system temporary directory");
-
- directory = new File(dirname);
- if (!directory.exists())
- throw new IOException("System temporary directory "
- + directory.getName() + " does not exist.");
- if (!directory.isDirectory())
- throw new IOException("System temporary directory "
- + directory.getName()
- + " is not really a directory.");
- }
-
- if (prefix.length () < 3)
- throw new IllegalArgumentException ("Prefix too short: " + prefix);
- if (suffix == null)
- suffix = ".tmp";
-
- // FIXME: filename length varies by architecture and filesystem.
- int max_length = 255;
-
- // Truncation rules.
- // `6' is the number of characters we generate.
- if (prefix.length () + 6 + suffix.length () > max_length)
- {
- int suf_len = 0;
- if (suffix.charAt(0) == '.')
- suf_len = 4;
- suffix = suffix.substring(0, suf_len);
- if (prefix.length () + 6 + suf_len > max_length)
- prefix = prefix.substring(0, max_length - 6 - suf_len);
- }
-
- File f;
-
- // How many times should we try? We choose 100.
- for (int i = 0; i < 100; ++i)
- {
- // This is ugly.
- String t = "ZZZZZZ" + nextValue ();
- String l = prefix + t.substring(t.length() - 6) + suffix;
- try
- {
- f = new File(directory, l);
- if (f.exists())
- continue;
- else
- {
- String af = f.getAbsolutePath ();
-
- // Check to see if we're allowed to write to it.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkWrite (af);
-
- // Now create the file.
- FileDescriptor fd =
- new FileDescriptor (af,
- FileDescriptor.WRITE
- | FileDescriptor.EXCL);
- fd.close ();
- return f;
- }
- }
- catch (IOException _)
- {
- }
- }
-
- throw new IOException ("cannot create temporary file");
- }
-
- public static File createTempFile (String prefix, String suffix)
- throws IOException
- {
- return createTempFile (prefix, suffix, null);
- }
-
- private final native boolean performRenameTo (File dest);
- public boolean renameTo (File dest)
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- // FIXME: JCL doesn't specify which path to check. We check the
- // source since we can canonicalize it.
- s.checkWrite(safeCanonicalPath());
- }
- return performRenameTo (dest);
- }
-
- public static final String pathSeparator
- = System.getProperty("path.separator");
- public static final char pathSeparatorChar = pathSeparator.charAt(0);
- public static final String separator = System.getProperty("file.separator");
- public static final char separatorChar = separator.charAt(0);
-
- private static final String tmpdir = System.getProperty("java.io.tmpdir");
-
- // The path.
- private String path;
-
- // We keep a counter for use by createTempFile. We choose the first
- // value randomly to try to avoid clashes with other VMs.
- private static long counter = Double.doubleToLongBits (Math.random ());
-
- // mkdirs() uses this to avoid repeated allocations.
- private final void setPath (String n)
- {
- path = n;
- }
-
-
- private final String checkRead ()
- {
- SecurityManager s = System.getSecurityManager();
- String p = safeCanonicalPath ();
- if (p == null)
- return null;
- if (s != null)
- s.checkRead(p);
- return p;
- }
-
- // Return canonical path, or null.
- private final String safeCanonicalPath ()
- {
- String p = null;
- try
- {
- p = getCanonicalPath ();
- }
- catch (IOException x)
- {
- // Nothing.
- }
- return p;
- }
-
- // Add this File to the set of files to be deleted upon normal
- // termination.
- public void deleteOnExit ()
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- sm.checkDelete (getName ());
-
- FileDeleter.add (this);
- }
-
- private void writeObject (ObjectOutputStream oos) throws IOException
- {
- oos.defaultWriteObject ();
- oos.writeChar (separatorChar);
- }
-
- private void readObject (ObjectInputStream ois)
- throws ClassNotFoundException, IOException
- {
- ois.defaultReadObject ();
-
- // If the file was from an OS with a different dir separator,
- // fixup the path to use the separator on this OS.
- char oldSeparatorChar = ois.readChar ();
- if (oldSeparatorChar != separatorChar)
- path = path.replace (oldSeparatorChar, separatorChar);
- }
-
- // QUERY arguments to access function.
- private final static int READ = 0;
- private final static int WRITE = 1;
- private final static int EXISTS = 2;
-
- // QUERY arguments to stat function.
- private final static int DIRECTORY = 0;
- private final static int ISFILE = 1;
-
- // QUERY arguments to attr function.
- private final static int MODIFIED = 0;
- private final static int LENGTH = 1;
-
- private final native long attr (String p, int query);
- private final native boolean access (String p, int query);
- private final native boolean stat (String p, int query);
-
- private static final long serialVersionUID = 301077366599181567L;
-}
diff --git a/libjava/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java
deleted file mode 100644
index 51c6fd6c5b1..00000000000
--- a/libjava/java/io/FileDescriptor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-// FileDescriptor.java - Open file or device
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1
- */
-
-// For now we assume a POSIXy file system. This can be changed later
-// if need be.
-public final class FileDescriptor
-{
- public static final FileDescriptor in = new FileDescriptor (0);
- public static final FileDescriptor out = new FileDescriptor (1);
- public static final FileDescriptor err = new FileDescriptor (2);
-
- public native void sync () throws SyncFailedException;
- public native boolean valid ();
-
-
- // These are mode values for open().
- static final int READ = 1;
- static final int WRITE = 2;
- static final int APPEND = 4;
- // EXCL is used only when making a temp file.
- static final int EXCL = 8;
-
- // These are WHENCE values for seek.
- static final int SET = 0;
- static final int CUR = 1;
-
- // Open a file. MODE is a combination of the above mode flags.
- FileDescriptor (String path, int mode) throws FileNotFoundException
- {
- fd = open (path, mode);
- }
-
- public FileDescriptor ()
- {
- fd = -1;
- }
-
- native int open (String path, int mode) throws FileNotFoundException;
- native void write (int b) throws IOException;
- native void write (byte[] b, int offset, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException;
- native void close () throws IOException;
- native int seek (long pos, int whence) throws IOException;
- native long length () throws IOException;
- native long getFilePointer () throws IOException;
- native int read () throws IOException;
- native int read (byte[] bytes, int offset, int len) throws IOException;
- native int available () throws IOException;
-
-
- // When collected, close.
- protected void finalize () throws IOException
- {
- if (valid ())
- close ();
- }
-
- // Attach to an already-opened file. This is not private because we
- // need access to it from other packages, for instance java.net.
- // Ordinarily that wouldn't work, either, but in our case we know
- // the access comes from C++, where "package private" is translated
- // into "public". Eww.
- FileDescriptor (int desc)
- {
- fd = desc;
- }
-
- // System's notion of file descriptor.
- private int fd;
-}
diff --git a/libjava/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java
deleted file mode 100644
index e5071e40e89..00000000000
--- a/libjava/java/io/FileInputStream.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 28, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class FileInputStream extends InputStream
-{
- /* Contains the file descriptor for referencing the actual file. */
- private FileDescriptor fd;
-
- public FileInputStream(String name) throws FileNotFoundException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkRead(name);
- fd = new FileDescriptor(name, FileDescriptor.READ);
- }
-
- public FileInputStream(File file) throws FileNotFoundException
- {
- this(file.getPath());
- }
-
- public FileInputStream(FileDescriptor fdObj)
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkRead(fdObj);
- fd = fdObj;
- }
-
- public int available() throws IOException
- {
- return fd.available();
- }
-
- public void close() throws IOException
- {
- if (fd == null)
- return;
-
- fd.close();
- fd = null;
- }
-
- protected void finalize() throws IOException
- {
- if (fd != null)
- fd.finalize();
- }
-
- public final FileDescriptor getFD() throws IOException
- {
- if (!fd.valid())
- throw new IOException();
- return fd;
- }
-
- public int read() throws IOException
- {
- return fd.read();
- }
-
- public int read(byte[] b) throws IOException
- {
- return fd.read(b, 0, b.length);
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- return fd.read(b, off, len);
- }
-
- public long skip(long n) throws IOException
- {
- return fd.seek(n, FileDescriptor.CUR);
- }
-}
diff --git a/libjava/java/io/FileNotFoundException.java b/libjava/java/io/FileNotFoundException.java
deleted file mode 100644
index 9482b2eefbf..00000000000
--- a/libjava/java/io/FileNotFoundException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// FileNotFoundException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class FileNotFoundException extends IOException
-{
- public FileNotFoundException ()
- {
- super ();
- }
-
- public FileNotFoundException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java
deleted file mode 100644
index 57af576f89c..00000000000
--- a/libjava/java/io/FileOutputStream.java
+++ /dev/null
@@ -1,93 +0,0 @@
-// FileOutputStream.java - Write bytes to a file.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public class FileOutputStream extends OutputStream
-{
- public FileOutputStream (String path, boolean append)
- throws SecurityException, IOException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkWrite(path);
- fd = new FileDescriptor (path, (append
- ? FileDescriptor.APPEND
- : FileDescriptor.WRITE));
- }
-
- public FileOutputStream (String path) throws SecurityException, IOException
- {
- this (path, false);
- }
-
- public FileOutputStream (File file) throws SecurityException, IOException
- {
- this (file.getPath(), false);
- }
-
- public FileOutputStream (FileDescriptor fdObj) throws SecurityException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkWrite(fdObj);
- fd = fdObj;
- }
-
- protected void finalize () throws IOException
- {
- // We don't actually need this, but we include it because it is
- // mentioned in the JCL.
- }
-
- public final FileDescriptor getFD () throws IOException
- {
- if (! fd.valid())
- throw new IOException ();
- return fd;
- }
-
- public void write (int b) throws IOException
- {
- fd.write (b);
- }
-
- public void write (byte[] b) throws IOException, NullPointerException
- {
- fd.write (b, 0, b.length);
- }
-
- public void write (byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException ();
- fd.write (b, off, len);
- }
-
- public void close () throws IOException
- {
- if (fd.valid())
- fd.close();
- }
-
- // Instance variables.
- private FileDescriptor fd;
-}
diff --git a/libjava/java/io/FileReader.java b/libjava/java/io/FileReader.java
deleted file mode 100644
index c82ce5b37e2..00000000000
--- a/libjava/java/io/FileReader.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 22, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition.
- * Status: Believed complete and correct.
- */
-
-public class FileReader extends InputStreamReader
-{
- public FileReader(String filename) throws IOException
- {
- super(new FileInputStream(filename));
- }
-
- public FileReader(File file) throws IOException
- {
- super(new FileInputStream(file));
- }
-
- public FileReader(FileDescriptor fd)
- {
- super(new FileInputStream(fd));
- }
-}
diff --git a/libjava/java/io/FileWriter.java b/libjava/java/io/FileWriter.java
deleted file mode 100644
index 5c49e5f853d..00000000000
--- a/libjava/java/io/FileWriter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// FileWriter.java - Character output to a file.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public class FileWriter extends OutputStreamWriter
-{
- public FileWriter (String fileName) throws IOException
- {
- super (new FileOutputStream (fileName));
- }
-
- public FileWriter (String fileName, boolean append) throws IOException
- {
- super (new FileOutputStream (fileName, append));
- }
-
- public FileWriter (File file) throws IOException
- {
- super (new FileOutputStream (file));
- }
-
- public FileWriter (FileDescriptor fd)
- {
- super (new FileOutputStream (fd));
- }
-}
diff --git a/libjava/java/io/FilenameFilter.java b/libjava/java/io/FilenameFilter.java
deleted file mode 100644
index 05e7fd0dd79..00000000000
--- a/libjava/java/io/FilenameFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// FilenameFilter.java - Compute subset of list of file names
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public interface FilenameFilter
-{
- public abstract boolean accept (File dir, String name);
-}
diff --git a/libjava/java/io/FilterInputStream.java b/libjava/java/io/FilterInputStream.java
deleted file mode 100644
index 712be929592..00000000000
--- a/libjava/java/io/FilterInputStream.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 8, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class FilterInputStream extends InputStream
-{
- /* The input stream to be filtered. */
- protected InputStream in;
-
- protected FilterInputStream(InputStream in)
- {
- this.in = in;
- }
-
- public int available() throws IOException
- {
- return in.available();
- }
-
- public void close() throws IOException
- {
- in.close();
- }
-
- public synchronized void mark(int readlimit)
- {
- in.mark(readlimit);
- }
-
- public boolean markSupported()
- {
- return in.markSupported();
- }
-
- public int read() throws IOException
- {
- return in.read();
- }
-
- public int read(byte[] b) throws IOException
- {
- return read(b, 0, b.length);
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- return in.read(b, off, len);
- }
-
- public synchronized void reset() throws IOException
- {
- in.reset();
- }
-
- public long skip(long n) throws IOException
- {
- return in.skip(n);
- }
-}
diff --git a/libjava/java/io/FilterOutputStream.java b/libjava/java/io/FilterOutputStream.java
deleted file mode 100644
index c17ea263052..00000000000
--- a/libjava/java/io/FilterOutputStream.java
+++ /dev/null
@@ -1,62 +0,0 @@
-// FilterOutputStream.java - A filtered stream
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public class FilterOutputStream extends OutputStream
-{
- public void close () throws IOException
- {
- flush ();
- out.close();
- }
-
- public FilterOutputStream (OutputStream ox)
- {
- out = ox;
- }
-
- public void flush () throws IOException
- {
- out.flush();
- }
-
- public void write (int b) throws IOException
- {
- out.write(b);
- }
-
- public void write (byte[] b) throws IOException, NullPointerException
- {
- // Don't do checking here, per Java Lang Spec.
- write (b, 0, b.length);
- }
-
- public void write (byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException
- {
- // Don't do checking here, per Java Lang Spec.
- for (int i=0; i < len; i++)
- write (b[off + i]);
- }
-
- // The output stream.
- protected OutputStream out;
-}
diff --git a/libjava/java/io/FilterReader.java b/libjava/java/io/FilterReader.java
deleted file mode 100644
index bce70cc6eda..00000000000
--- a/libjava/java/io/FilterReader.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 15, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class FilterReader extends Reader
-{
- /* The input stream to be filtered. */
- protected Reader in;
-
- protected FilterReader(Reader in)
- {
- super(in.lock);
- this.in = in;
- }
-
- public void close() throws IOException
- {
- in.close();
- in = null;
- }
-
- public synchronized void mark(int readlimit) throws IOException
- {
- in.mark(readlimit);
- }
-
- public boolean markSupported()
- {
- return in.markSupported();
- }
-
- public int read() throws IOException
- {
- return in.read();
- }
-
- public int read(char[] b, int off, int len) throws IOException
- {
- return in.read(b, off, len);
- }
-
- public boolean ready() throws IOException
- {
- return in.ready();
- }
-
- public synchronized void reset() throws IOException
- {
- in.reset();
- }
-
- public long skip(long n) throws IOException
- {
- return in.skip(n);
- }
-}
diff --git a/libjava/java/io/FilterWriter.java b/libjava/java/io/FilterWriter.java
deleted file mode 100644
index aa6600cab2d..00000000000
--- a/libjava/java/io/FilterWriter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// FilterWriter.java - Filtered character output stream.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public abstract class FilterWriter extends Writer
-{
- public void close () throws IOException
- {
- out.close();
- }
-
- protected FilterWriter (Writer ox)
- {
- super (ox);
- out = ox;
- }
-
- public void flush () throws IOException
- {
- out.flush();
- }
-
- public void write (int oneChar) throws IOException
- {
- out.write(oneChar);
- }
-
- public void write (char[] buffer, int offset, int count) throws IOException
- {
- out.write(buffer, offset, count);
- }
-
- public void write (String str, int offset, int count) throws IOException
- {
- out.write(str, offset, count);
- }
-
- // Where our writes should go.
- protected Writer out;
-}
diff --git a/libjava/java/io/IOException.java b/libjava/java/io/IOException.java
deleted file mode 100644
index e9b22768243..00000000000
--- a/libjava/java/io/IOException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// IOException.java - Base class for I/O Exceptions
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class IOException extends Exception
-{
- public IOException ()
- {
- super ();
- }
-
- public IOException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/InputStream.java b/libjava/java/io/InputStream.java
deleted file mode 100644
index 2da52b1afcd..00000000000
--- a/libjava/java/io/InputStream.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class InputStream
-{
- public InputStream()
- {
- }
-
- public int available() throws IOException
- {
- return 0;
- }
-
- public void close() throws IOException
- {
- // Do nothing
- }
-
- public void mark(int readlimit)
- {
- // Do nothing
- }
-
- public boolean markSupported()
- {
- return false;
- }
-
- public abstract int read() throws IOException;
-
- public int read(byte[] b) throws IOException
- {
- return read(b, 0, b.length);
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new IndexOutOfBoundsException();
- if (b.length == 0)
- return 0;
-
- int i, ch;
-
- for (i = 0; i < len; ++i)
- try
- {
- if ((ch = read()) < 0)
- return i == 0 ? -1 : i; // EOF
- b[off + i] = (byte) ch;
- }
- catch (IOException ex)
- {
- // Only reading the first byte should cause an IOException.
- if (i == 0)
- throw ex;
- return i;
- }
-
- return i;
- }
-
- public void reset() throws IOException
- {
- throw new IOException("mark/reset not supported");
- }
-
- public long skip(long n) throws IOException
- {
- // Throw away n bytes by reading them into a temp byte[].
- // Limit the temp array to 2Kb so we don't grab too much memory.
- final int buflen = n > 2048 ? 2048 : (int) n;
- byte[] tmpbuf = new byte[buflen];
- final long origN = n;
-
- while (n > 0L)
- {
- int numread = read(tmpbuf, 0, n > buflen ? buflen : (int) n);
- if (numread <= 0)
- break;
- n -= numread;
- }
-
- return origN - n;
- }
-}
diff --git a/libjava/java/io/InputStreamReader.java b/libjava/java/io/InputStreamReader.java
deleted file mode 100644
index 478d8ef5996..00000000000
--- a/libjava/java/io/InputStreamReader.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-import gnu.gcj.convert.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 22, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct, but only supports 8859_1.
- */
-
-public class InputStreamReader extends Reader
-{
- BufferedInputStream in;
-
- // Buffer of chars read from in and converted but not consumed.
- char[] work;
- // Next available character (in work buffer) to read.
- int wpos;
- // Last available character (in work buffer) to read.
- int wcount;
-
- BytesToUnicode converter;
-
- public InputStreamReader(InputStream in)
- {
- this(in, BytesToUnicode.getDefaultDecoder());
- }
-
- public InputStreamReader(InputStream in, String enc)
- throws UnsupportedEncodingException
- {
- this(in, BytesToUnicode.getDecoder(enc));
- }
-
- private InputStreamReader(InputStream in, BytesToUnicode decoder)
- {
- this.in = in instanceof BufferedInputStream
- ? (BufferedInputStream) in
- : new BufferedInputStream(in, 250);
- /* Don't need to call super(in) here as long as the lock gets set. */
- this.lock = in;
- converter = decoder;
- converter.setInput(this.in.buf, 0, 0);
- }
-
- public void close() throws IOException
- {
- synchronized (lock)
- {
- if (in != null)
- in.close();
- in = null;
- work = null;
- wpos = wcount = 0;
- }
- }
-
- public String getEncoding() { return converter.getName(); }
-
- public boolean ready() throws IOException
- {
- synchronized (lock)
- {
- if (wpos < wcount)
- return true;
- if (work == null)
- {
- work = new char[100];
- wpos = 0;
- wcount = 0;
- }
- for (;;)
- {
- if (in.available() <= 0)
- return false;
- in.mark(1);
- int b = in.read();
- if (b < 0)
- return true;
- in.reset();
- converter.setInput(in.buf, in.pos, in.count);
- wpos = 0;
- wcount = converter.read(work, 0, work.length);
- in.skip(converter.inpos - in.pos);
- if (wcount > 0)
- return true;
- }
- }
- }
-
- public int read(char buf[], int offset, int length) throws IOException
- {
- synchronized (lock)
- {
- int wavail = wcount - wpos;
- if (wavail > 0)
- {
- if (length > wavail)
- length = wavail;
- System.arraycopy(work, wpos, buf, offset, length);
- wpos += length;
- return length;
- }
- else
- {
- if (length == 0)
- return 0;
- for (;;)
- {
- in.mark(1);
- int b = in.read();
- if (b < 0)
- return -1;
- in.reset();
- converter.setInput(in.buf, in.pos, in.count);
- int count = converter.read (buf, offset, length);
- in.skip(converter.inpos - in.pos);
- if (count > 0)
- return count;
- }
- }
- }
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- int wavail = wcount - wpos;
- if (wavail > 0)
- return work[wpos++];
- if (work == null)
- {
- work = new char[100];
- wpos = 0;
- wcount = 0;
- }
- else if (wavail == 0)
- {
- wpos = 0;
- wcount = 0;
- }
- int count = read(work, wpos, work.length-wpos);
- if (count <= 0)
- return -1;
- wcount = wpos + count;
- return work[wpos++];
- }
- }
-}
diff --git a/libjava/java/io/InterruptedIOException.java b/libjava/java/io/InterruptedIOException.java
deleted file mode 100644
index 75623824392..00000000000
--- a/libjava/java/io/InterruptedIOException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// InterruptedIOException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class InterruptedIOException extends IOException
-{
- public InterruptedIOException ()
- {
- super ();
- }
-
- public InterruptedIOException (String s)
- {
- super (s);
- }
-
- public int bytesTransferred = 0;
-}
diff --git a/libjava/java/io/InvalidClassException.java b/libjava/java/io/InvalidClassException.java
deleted file mode 100644
index fd03154a1f6..00000000000
--- a/libjava/java/io/InvalidClassException.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* InvalidClassException.java -- An I/O operation was interrupted.
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This exception is thrown when there is some sort of problem with a
- * class during a serialization operation. This could be that the
- * versions don't match, that there are unknown datatypes in the class
- * or that the class doesn't have a default no-arg constructor.
- * <p>
- * The field <code>classname</code> will contain the name of the
- * class that caused the problem if known. The getMessage() method
- * for this exception will always include the name of that class
- * if known.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class InvalidClassException extends ObjectStreamException
-{
-
-/*
- * Instance Variables
- */
-
-/**
- * The name of the class which encountered the error.
- */
-public String classname;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * Create a new InvalidClassException with a descriptive error message String
- *
- * @param message The descriptive error message
- */
-public
-InvalidClassException(String message)
-{
- super(message);
-}
-
-/*************************************************************************/
-
-/**
- * Create a new InvalidClassException with a descriptive error message
- * String, and the name of the class that caused the problem.
- *
- * @param classname The number of bytes tranferred before the interruption
- * @param message The descriptive error message
- */
-public
-InvalidClassException(String classname, String message)
-{
- super(message);
- this.classname = classname;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * Returns the descriptive error message for this exception. It will
- * include the class name that caused the problem if known. This method
- * overrides Throwable.getMessage()
- *
- * @return A descriptive error message
- */
-public String
-getMessage()
-{
- return(super.getMessage() + ": " + classname);
-}
-
-} // class InvalidClassException
-
diff --git a/libjava/java/io/InvalidObjectException.java b/libjava/java/io/InvalidObjectException.java
deleted file mode 100644
index 705082a2516..00000000000
--- a/libjava/java/io/InvalidObjectException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* InvalidObjectException.java -- An I/O operation was interrupted.
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This exception is thrown when an object fails a validation test
- * during serialization.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class InvalidObjectException extends ObjectStreamException
-{
-
-/*
- * Constructors
- */
-
-/**
- * Create a new InvalidObjectException with a descriptive error message String
- *
- * @param message The descriptive error message
- */
-public
-InvalidObjectException(String message)
-{
- super(message);
-}
-
-} // class InvalidObjectException
-
diff --git a/libjava/java/io/LineNumberInputStream.java b/libjava/java/io/LineNumberInputStream.java
deleted file mode 100644
index cdaa51a00da..00000000000
--- a/libjava/java/io/LineNumberInputStream.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date November 11, 1998.
- * @deprecated
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct. Deprecated in JDK 1.1.
- */
-
-public class LineNumberInputStream extends FilterInputStream
-{
- /* The current line number. */
- private int lineNumber = 0;
-
- /* The line number when the stream was marked. */
- private int markLineNumber = 0;
-
- /* Flag to indicate a '\r' was just read so that an immediately subsequent
- * '\n' can be ignored. */
- private boolean justReadReturnChar = false;
-
- public LineNumberInputStream(InputStream in)
- {
- super(in);
- }
-
- public int available() throws IOException
- {
- // We can only guarantee half the characters that might be available
- // without blocking because "\r\n" is treated as a single character.
- return in.available() / 2;
- }
-
- public int getLineNumber()
- {
- return lineNumber;
- }
-
- public void mark(int readlimit)
- {
- in.mark(readlimit);
- markLineNumber = lineNumber;
- }
-
- public int read() throws IOException
- {
- // Treat "\r\n" as a single character. A '\r' may have been read by
- // a previous call to read so we keep an internal flag to avoid having
- // to read ahead.
-
- int ch = in.read();
-
- if (ch == '\n')
- if (justReadReturnChar)
- {
- ch = in.read();
- justReadReturnChar = false;
- }
- else
- lineNumber++;
- else if (ch == '\r')
- {
- ch = '\n';
- justReadReturnChar = true;
- lineNumber++;
- }
- else
- justReadReturnChar = false;
-
- return ch;
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- // This case always succeeds.
- if (len == 0)
- return 0;
-
- // The simplest, though not necessarily the most time efficient thing
- // to do is simply call read(void) len times. Since this is a deprecated
- // class, that should be ok.
- final int origOff = off;
- while (len-- > 0)
- {
- int ch = read();
- if (ch < 0)
- break;
-
- b[off++] = (byte) ch;
- }
-
- // This is safe since we already know that some bytes were
- // actually requested.
- return off == origOff ? -1 : off - origOff;
- }
-
- public void reset() throws IOException
- {
- in.reset();
- lineNumber = markLineNumber;
- justReadReturnChar = false;
- }
-
- public void setLineNumber(int lineNumber)
- {
- this.lineNumber = lineNumber;
- }
-
- public long skip(long n) throws IOException
- {
- if (n <= 0)
- return 0L;
-
- final long origN = n;
-
- do
- {
- int ch = read();
- if (ch < 0)
- break;
- if (ch == '\n' || ch == '\r')
- lineNumber++;
- }
- while (--n > 0);
-
- return origN - n;
- }
-}
diff --git a/libjava/java/io/LineNumberReader.java b/libjava/java/io/LineNumberReader.java
deleted file mode 100644
index ffdd2b68e2e..00000000000
--- a/libjava/java/io/LineNumberReader.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 22, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- *
- * This implementation has the feature that if '\r' is read, it
- * does not look for a '\n', but immediately returns '\n'.
- * On the next read(), if a '\n' is read, it is skipped.
- * This has the advantage that we do not read (and hang) unnecessarily.
- *
- * This implementation is also minimal in the number of fields it uses.
- */
-
-public class LineNumberReader extends BufferedReader
-{
- /** The current line number. */
- int lineNumber;
-
- public LineNumberReader(Reader in)
- {
- super(in, 8192);
- }
-
- public LineNumberReader(Reader in, int size)
- {
- super(in, size);
- }
-
- public int getLineNumber()
- {
- return lineNumber;
- }
-
- public void setLineNumber(int lineNumber)
- {
- this.lineNumber = lineNumber;
- }
-
- private static int countLines (char[] buffer, int off, int len)
- {
- int count = 0;
- char prev = '\0';
- for (int i = 0; i < len; i++)
- {
- char ch = buffer[i+off];
- if ((ch == '\n' && prev != '\r') || ch == '\r')
- count++;
- prev = ch;
- }
- return count;
- }
-
- public void mark(int readLimit) throws IOException
- {
- synchronized (lock)
- {
- // This is basically the same as BufferedReader.mark.
- // However, if the previous character was a '\r', we need to
- // save that 'r', in case the next character is a '\n'.
- if (pos + readLimit > limit)
- {
- int saveCR = (pos > 0 && buffer[pos-1] == '\r') ? 1 : 0;
- char[] old_buffer = buffer;
- if (readLimit > limit)
- buffer = new char[saveCR + readLimit];
- int copy_start = pos - saveCR;
- limit -= copy_start;
- System.arraycopy(old_buffer, copy_start, buffer, 0, limit);
- pos = saveCR;
- }
- markPos = pos;
- }
- }
-
- public void reset() throws IOException
- {
- synchronized (lock)
- {
- if (markPos < 0)
- throw new IOException("mark never set or invalidated");
- if (markPos > 0 && pos > markPos && buffer[markPos-1] == '\r'
- && buffer[markPos] == '\n')
- lineNumber--;
- lineNumber -= countLines(buffer, pos, markPos);
- pos = markPos;
- }
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- skipRedundantLF();
- if (pos >= limit)
- {
- if (markPos >= 0 && limit == buffer.length)
- markPos = -1;
- if (markPos <= 0)
- pos = limit = 0;
- int count = in.read(buffer, limit, buffer.length - limit);
- if (count <= 0)
- return -1;
- limit += count;
- }
- char ch = buffer[pos++];
- if (ch == '\r' || ch == '\n')
- {
- lineNumber++;
- return '\n';
- }
- return (int) ch;
- }
- }
-
- public int read(char[] buf, int offset, int count) throws IOException
- {
- if (count <= 0)
- {
- if (count < 0)
- throw new IndexOutOfBoundsException();
- return 0;
- }
- synchronized (lock)
- {
- int first = read();
- if (first < 0)
- return -1;
- int start_offset = offset;
- buf[offset++] = (char) first;
- if (buffer[pos-1] == '\r' && pos < limit && buffer[pos] == '\n')
- pos++;
- count--;
- while (count-- > 0 && pos < limit)
- {
- char ch = buffer[pos++];
- if (ch == '\r')
- {
- lineNumber++;
- ch = '\n';
- if (pos < limit && buffer[pos] == '\n')
- pos++;
- }
- else if (ch == '\n')
- lineNumber++;
- buf[offset++] = ch;
- }
- return offset - start_offset;
- }
- }
-
- private void skipRedundantLF() throws IOException
- {
- if (pos > 0 && buffer[pos-1] == '\r')
- {
- if (pos < limit)
- { // fast case
- if (buffer[pos] == '\n')
- pos++;
- }
- else
- { // use read() to deal with the general case.
- // Set pos and limit to zero to avoid infinite recursion in read.
- // May need to invalidate markPos if we've exceeded the buffer.
- if (pos >= buffer.length)
- markPos = -1;
- pos = limit = 0;
- int ch = read();
- if (ch >= 0 && ch != '\n')
- pos--;
- }
- }
- }
-
- public String readLine() throws IOException
- {
- // BufferedReader.readLine already does this. Shouldn't need to keep
- // track of newlines (since the read method deals with this for us).
- // But if the buffer is large, we may not call the read method at all
- // and super.readLine can't increment lineNumber itself.
- // Though it may seem kludgy, the safest thing to do is to save off
- // lineNumber and increment it explicitly when we're done (iff we
- // ended with a '\n' or '\r' as opposed to EOF).
- //
- // Also, we need to undo the special casing done by BufferedReader.readLine
- // when a '\r' is the last char in the buffer. That situation is marked
- // by 'pos > limit'.
- int tmpLineNumber = lineNumber;
- skipRedundantLF();
- String str = super.readLine();
- if (pos > limit)
- --pos;
-
- int ch;
- if (pos > 0 && ((ch = buffer[pos - 1]) == '\n' || ch == '\r'))
- lineNumber = tmpLineNumber + 1;
-
- return str;
- }
-
- public long skip(long count) throws IOException
- {
- if (count <= 0)
- return 0;
- long to_do = count;
- do
- {
- int ch = read();
- if (ch < 0)
- break;
- to_do--;
- if (ch == '\n' || ch == '\r')
- lineNumber++;
- else
- {
- long fence = pos + to_do;
- if (limit < fence)
- fence = limit;
- int end = pos;
- for (; end < fence; end++)
- {
- char endch = buffer[end];
- if (endch == '\n' || endch == '\r')
- break;
- }
- to_do -= end - pos;
- pos = end;
- }
- }
- while (to_do > 0);
- return count - to_do;
- }
-}
diff --git a/libjava/java/io/NotActiveException.java b/libjava/java/io/NotActiveException.java
deleted file mode 100644
index f628a3b82d5..00000000000
--- a/libjava/java/io/NotActiveException.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* NotActiveException.java -- Unexpected end of file exception
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This exception is thrown when a problem occurs due to the fact that
- * serialization is not active.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class NotActiveException extends ObjectStreamException
-{
-
-/*
- * Constructors
- */
-
-/**
- * Create a new NotActiveException without a descriptive error message
- */
-public
-NotActiveException()
-{
- super();
-}
-
-/*************************************************************************/
-
-/**
- * Create a new NotActiveException with a descriptive error message String
- *
- * @param message The descriptive error message
- */
-public
-NotActiveException(String message)
-{
- super(message);
-}
-
-} // class NotActiveException
-
diff --git a/libjava/java/io/NotSerializableException.java b/libjava/java/io/NotSerializableException.java
deleted file mode 100644
index d1e0bd2f4ad..00000000000
--- a/libjava/java/io/NotSerializableException.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/* NotSerializableException.java -- Unexpected end of file exception
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This exception is thrown when a class may not be serialized. The
- * descriptive message will consist of the name of the class in question.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class NotSerializableException extends ObjectStreamException
-{
-
-/*
- * Constructors
- */
-
-/**
- * Create a new NotSerializableException without a descriptive error message
- */
-public
-NotSerializableException()
-{
- super();
-}
-
-/*************************************************************************/
-
-/**
- * Create a new NotSerializableException with a descriptive error message String
- * This should be the name of the class that cannot be serialized.
- *
- * @param message The descriptive error message
- */
-public
-NotSerializableException(String message)
-{
- super(message);
-}
-
-} // class NotSerializableException
-
diff --git a/libjava/java/io/ObjectInput.java b/libjava/java/io/ObjectInput.java
deleted file mode 100644
index ef23fa9034f..00000000000
--- a/libjava/java/io/ObjectInput.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/* ObjectInput.java -- Read object data from a stream
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This interface extends the <code>DataInput</code> interface to provide a
- * facility to read objects as well as primitive types from a stream. It
- * also has methods that allow input to be done in a manner similar to
- * <code>InputStream</code>
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract interface ObjectInput extends DataInput
-{
-
-/**
- * This method returns the number of bytes that can be read without
- * blocking.
- *
- * @return The number of bytes available before blocking
- *
- * @exception IOException If an error occurs
- */
-public abstract int
-available() throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method reading a byte of data from a stream. It returns that byte
- * as an int. This method blocks if no data is available to be read.
- *
- * @return The byte of data read
- *
- * @exception IOException If an error occurs
- */
-public abstract int
-read() throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method reads raw bytes and stores them them a byte array buffer.
- * Note that this method will block if no data is available. However,
- * it will not necessarily block until it fills the entire buffer. That is,
- * a "short count" is possible.
- *
- * @param buf The byte array to receive the data read
- *
- * @return The actual number fo bytes read or -1 if end of stream
- *
- * @exception IOException If an error occurs
- */
-public abstract int
-read(byte[] buf) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method reads raw bytes and stores them in a byte array buffer
- * <code>buf</code> starting at position <code>offset</code> into the buffer. A
- * maximum of <code>len</code> bytes will be read. Note that this method
- * blocks if no data is available, but will not necessarily block until
- * it can read <code>len</code> bytes of data. That is, a "short count" is
- * possible.
- *
- * @param buf The byte array to receive the data read
- * @param offset The offset into @code{buf} to start storing data
- * @param len The maximum number of bytes to read
- *
- * @return The actual number fo bytes read or -1 if end of stream
- *
- * @exception IOException If an error occurs
- */
-public abstract int
-read(byte[] buf, int offset, int len) throws IOException;
-
-/*************************************************************************/
-
-/**
- * Reads an object instance and returns it. If the class for the object
- * being read cannot be found, then a ClassNotFoundException will
- * be thrown.
- *
- * @return The object instance that was read
- *
- * @exception ClassNotFoundException If a class for the object cannot be found
- * @exception IOException If an error occurs
- */
-public abstract Object
-readObject() throws ClassNotFoundException, IOException;
-
-/*************************************************************************/
-
-/**
- * This method causes the specified number of bytes to be read and
- * discarded. It is possible that fewer than the requested number of bytes
- * will actually be skipped.
- *
- * @param num_bytes The number of bytes to skip
- *
- * @return The actual number of bytes skipped
- *
- * @exception IOException If an error occurs
- */
-public abstract long
-skip(long num_bytes) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method closes the input source
- *
- * @exception IOException If an error occurs
- */
-public abstract void
-close() throws IOException;
-
-} // interface ObjectInput
-
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java
deleted file mode 100644
index 53353dcffe7..00000000000
--- a/libjava/java/io/ObjectInputStream.java
+++ /dev/null
@@ -1,1474 +0,0 @@
-/* ObjectInputStream.java -- Class used to read serialized objects
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import gnu.java.io.ObjectIdentityWrapper;
-import gnu.java.lang.reflect.TypeSignature;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-
-
-public class ObjectInputStream extends InputStream
- implements ObjectInput, ObjectStreamConstants
-{
- /**
- Creates a new <code>ObjectInputStream</code> that will do all of
- its reading from <code>in</code>. This method also checks
- the stream by reading the header information (stream magic number
- and stream version).
-
- @exception IOException Reading stream header from underlying
- stream cannot be completed.
-
- @exception StreamCorruptedException An invalid stream magic
- number or stream version was read from the stream.
-
- @see readStreamHeader ()
- */
- public ObjectInputStream (InputStream in)
- throws IOException, StreamCorruptedException
- {
- this.resolveEnabled = false;
- this.isDeserializing = false;
- this.blockDataPosition = 0;
- this.blockDataBytes = 0;
- this.blockData = new byte[BUFFER_SIZE];
- this.blockDataInput = new DataInputStream (this);
- this.realInputStream = new DataInputStream (in);
- this.nextOID = baseWireHandle;
- this.objectLookupTable = new Hashtable ();
- this.validators = new Vector ();
- setBlockDataMode (true);
- readStreamHeader ();
- }
-
-
- /**
- Returns the next deserialized object read from the underlying stream.
-
- This method can be overriden by a class by implementing
- <code>private void readObject (ObjectInputStream)</code>.
-
- If an exception is thrown from this method, the stream is left in
- an undefined state.
-
- @exception ClassNotFoundException The class that an object being
- read in belongs to cannot be found.
-
- @exception IOException Exception from underlying
- <code>InputStream</code>.
- */
- public final Object readObject () throws ClassNotFoundException, IOException
- {
- if (this.useSubclassMethod)
- return readObjectOverride ();
-
- boolean was_deserializing;
-
- Object ret_val;
- was_deserializing = this.isDeserializing;
-
- if (! was_deserializing)
- setBlockDataMode (false);
-
- this.isDeserializing = true;
-
-// DEBUG ("MARKER ");
- byte marker = this.realInputStream.readByte ();
-
- switch (marker)
- {
- case TC_BLOCKDATA:
- case TC_BLOCKDATALONG:
- readNextBlock (marker);
- throw new BlockDataException (this.blockDataBytes);
-
- case TC_NULL:
- ret_val = null;
- break;
-
- case TC_REFERENCE:
- {
-// DEBUG ("REFERENCE ");
- Integer oid = new Integer (this.realInputStream.readInt ());
- ret_val = ((ObjectIdentityWrapper)
- this.objectLookupTable.get (oid)).object;
- break;
- }
-
- case TC_CLASS:
- {
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class clazz = osc.forClass ();
- assignNewHandle (clazz);
- ret_val = clazz;
- break;
- }
-
- case TC_CLASSDESC:
- {
-// DEBUG ("CLASSDESC NAME ");
- String name = this.realInputStream.readUTF ();
-// DEBUG ("UID ");
- long uid = this.realInputStream.readLong ();
-// DEBUG ("FLAGS ");
- byte flags = this.realInputStream.readByte ();
-// DEBUG ("FIELD COUNT ");
- short field_count = this.realInputStream.readShort ();
- ObjectStreamField[] fields = new ObjectStreamField[field_count];
-
- ObjectStreamClass osc = new ObjectStreamClass (name, uid,
- flags, fields);
- assignNewHandle (osc);
-
- for (int i=0; i < field_count; i++)
- {
-// DEBUG ("TYPE CODE ");
- char type_code = (char)this.realInputStream.readByte ();
-// DEBUG ("FIELD NAME ");
- String field_name = this.realInputStream.readUTF ();
- String class_name;
-
- if (type_code == 'L' || type_code == '[')
- class_name = (String)readObject ();
- else
- class_name = String.valueOf (type_code);
-
- fields[i] =
- new ObjectStreamField (field_name,
- TypeSignature.getClassForEncoding
- (class_name));
- }
-
- setBlockDataMode (true);
- osc.setClass (resolveClass (osc));
- setBlockDataMode (false);
-
-// DEBUG ("ENDBLOCKDATA ");
- if (this.realInputStream.readByte () != TC_ENDBLOCKDATA)
- throw new IOException ("Data annotated to class was not consumed.");
-
- osc.setSuperclass ((ObjectStreamClass)readObject ());
- ret_val = osc;
- break;
- }
-
- case TC_STRING:
- {
-// DEBUG ("STRING ");
- String s = this.realInputStream.readUTF ();
- ret_val = processResoultion (s, assignNewHandle (s));
- break;
- }
-
- case TC_ARRAY:
- {
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class componenetType = osc.forClass ().getComponentType ();
-// DEBUG ("ARRAY LENGTH ");
- int length = this.realInputStream.readInt ();
- Object array = Array.newInstance (componenetType, length);
- int handle = assignNewHandle (array);
- readArrayElements (array, componenetType);
- ret_val = processResoultion (array, handle);
- break;
- }
-
- case TC_OBJECT:
- {
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class clazz = osc.forClass ();
-
- if (!Serializable.class.isAssignableFrom (clazz))
- throw new NotSerializableException (clazz + " is not Serializable, and thus cannot be deserialized.");
-
- if (Externalizable.class.isAssignableFrom (clazz))
- {
- Externalizable obj = null;
-
- try
- {
- obj = (Externalizable)clazz.newInstance ();
- }
- catch (InstantiationException e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created");
- }
- catch (IllegalAccessException e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created because class or zero-argument constructor is not accessible");
- }
- catch (NoSuchMethodError e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created because zero-argument constructor is not defined");
- }
-
- int handle = assignNewHandle (obj);
-
- boolean read_from_blocks = ((osc.getFlags () & SC_BLOCK_DATA) != 0);
-
- if (read_from_blocks)
- setBlockDataMode (true);
-
- obj.readExternal (this);
-
- if (read_from_blocks)
- setBlockDataMode (false);
-
- ret_val = processResoultion (obj, handle);
- break;
- } // end if (Externalizable.class.isAssignableFrom (clazz))
-
- // find the first non-serializable, non-abstract
- // class in clazz's inheritance hierarchy
- Class first_nonserial = clazz.getSuperclass ();
- while (Serializable.class.isAssignableFrom (first_nonserial)
- || Modifier.isAbstract (first_nonserial.getModifiers ()))
- first_nonserial = first_nonserial.getSuperclass ();
-
-// DEBUGln ("Using " + first_nonserial
-// + " as starting point for constructing " + clazz);
-
- Object obj = null;
- obj = newObject (clazz, first_nonserial);
-
- if (obj == null)
- throw new ClassNotFoundException ("Instance of " + clazz +
- " could not be created");
-
- int handle = assignNewHandle (obj);
- this.currentObject = obj;
- ObjectStreamClass[] hierarchy =
- ObjectStreamClass.getObjectStreamClasses (clazz);
-
-// DEBUGln ("Got class hierarchy of depth " + hierarchy.length);
-
- boolean has_read;
- for (int i=0; i < hierarchy.length; i++)
- {
- this.currentObjectStreamClass = hierarchy[i];
-
-// DEBUGln ("Reading fields of "
-// + this.currentObjectStreamClass.getName ());
-
- has_read = true;
-
- try
- {
- this.currentObjectStreamClass.forClass ().
- getDeclaredMethod ("readObject", readObjectParams);
- }
- catch (NoSuchMethodException e)
- {
- has_read = false;
- }
-
- // XXX: should initialize fields in classes in the hierarchy
- // that aren't in the stream
- // should skip over classes in the stream that aren't in the
- // real classes hierarchy
- readFields (obj, this.currentObjectStreamClass.fields,
- has_read, this.currentObjectStreamClass);
-
- if (has_read)
- {
-// DEBUG ("ENDBLOCKDATA? ");
- if (this.realInputStream.readByte () != TC_ENDBLOCKDATA)
- throw new IOException ("No end of block data seen for class with readObject (ObjectInputStream) method.");
- }
- }
-
- this.currentObject = null;
- this.currentObjectStreamClass = null;
- ret_val = processResoultion (obj, handle);
- break;
- }
-
- case TC_RESET:
- clearHandles ();
- ret_val = readObject ();
- break;
-
- case TC_EXCEPTION:
- {
- Exception e = (Exception)readObject ();
- clearHandles ();
- throw new WriteAbortedException ("Exception thrown during writing of stream", e);
- }
-
- default:
- throw new IOException ("Unknown marker on stream");
- }
-
- this.isDeserializing = was_deserializing;
-
- if (! was_deserializing)
- {
- setBlockDataMode (true);
-
- if (validators.size () > 0)
- invokeValidators ();
- }
-
- return ret_val;
- }
-
-
- /**
- Reads the current objects non-transient, non-static fields from
- the current class from the underlying output stream.
-
- This method is intended to be called from within a object's
- <code>private void readObject (ObjectInputStream)</code>
- method.
-
- @exception ClassNotFoundException The class that an object being
- read in belongs to cannot be found.
-
- @exception NotActiveException This method was called from a
- context other than from the current object's and current class's
- <code>private void readObject (ObjectInputStream)</code>
- method.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
- */
- public void defaultReadObject ()
- throws ClassNotFoundException, IOException, NotActiveException
- {
- if (this.currentObject == null || this.currentObjectStreamClass == null)
- throw new NotActiveException ("defaultReadObject called by non-active class and/or object");
-
- if (fieldsAlreadyRead)
- throw new NotActiveException ("defaultReadObject called but fields already read from stream (by defaultReadObject or readFields)");
-
- readFields (this.currentObject,
- this.currentObjectStreamClass.fields,
- false, this.currentObjectStreamClass);
-
- fieldsAlreadyRead = true;
- }
-
-
- /**
- Registers a <code>ObjectInputValidation</code> to be carried out
- on the object graph currently being deserialized before it is
- returned to the original caller of <code>readObject ()</code>.
- The order of validation for multiple
- <code>ObjectInputValidation</code>s can be controled using
- <code>priority</code>. Validators with higher priorities are
- called first.
-
- @see java.io.ObjectInputValidation
-
- @exception InvalidObjectException <code>validator</code> is
- <code>null</code>
-
- @exception NotActiveException an attempt was made to add a
- validator outside of the <code>readObject</code> method of the
- object currently being deserialized
- */
- public void registerValidation (ObjectInputValidation validator,
- int priority)
- throws InvalidObjectException, NotActiveException
- {
- if (this.currentObject == null || this.currentObjectStreamClass == null)
- throw new NotActiveException ("registerValidation called by non-active class and/or object");
-
- if (validator == null)
- throw new InvalidObjectException ("attempt to add a null ObjectInputValidation object");
-
- this.validators.addElement (new ValidatorAndPriority (validator,
- priority));
- }
-
-
- /**
- Called when a class is being deserialized. This is a hook to
- allow subclasses to read in information written by the
- <code>annotateClass (Class)</code> method of an
- <code>ObjectOutputStream</code>.
-
- This implementation looks up the active call stack for a
- <code>ClassLoader</code>; if a <code>ClassLoader</code> is found,
- it is used to load the class associated with <code>osc</code>,
- otherwise, the default system <code>ClassLoader</code> is used.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
-
- @see java.io.ObjectOutputStream#annotateClass (java.lang.Class)
- */
- protected Class resolveClass (ObjectStreamClass osc)
- throws ClassNotFoundException, IOException
- {
-// DEBUGln ("Resolving " + osc);
-
- SecurityManager sm = System.getSecurityManager ();
-
- if (sm == null)
- sm = new SecurityManager () {};
-
- ClassLoader cl = currentClassLoader (sm);
-
- if (cl == null)
- {
-// DEBUGln ("No class loader found");
- return Class.forName (osc.getName ());
- }
- else
- {
-// DEBUGln ("Using " + cl);
- return cl.loadClass (osc.getName ());
- }
- }
-
-
- /**
- Allows subclasses to resolve objects that are read from the
- stream with other objects to be returned in their place. This
- method is called the first time each object is encountered.
-
- This method must be enabled before it will be called in the
- serialization process.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
-
- @see enableResolveObject (boolean)
- */
- protected Object resolveObject (Object obj) throws IOException
- {
- return obj;
- }
-
-
- /**
- If <code>enable</code> is <code>true</code> and this object is
- trusted, then <code>resolveObject (Object)</code> will be called
- in subsequent calls to <code>readObject (Object)</code>.
- Otherwise, <code>resolveObject (Object)</code> will not be called.
-
- @exception SecurityException This class is not trusted.
- */
- protected boolean enableResolveObject (boolean enable)
- throws SecurityException
- {
- if (enable)
- if (getClass ().getClassLoader () != null)
- throw new SecurityException ("Untrusted ObjectInputStream subclass attempted to enable object resolution");
-
- boolean old_val = this.resolveEnabled;
- this.resolveEnabled = enable;
- return old_val;
- }
-
-
- /**
- Reads stream magic and stream version information from the
- underlying stream.
-
- @exception IOException Exception from underlying stream.
-
- @exception StreamCorruptedException An invalid stream magic
- number or stream version was read from the stream.
- */
- protected void readStreamHeader ()
- throws IOException, StreamCorruptedException
- {
-// DEBUG ("STREAM MAGIC ");
- if (this.realInputStream.readShort () != STREAM_MAGIC)
- throw new StreamCorruptedException ("Invalid stream magic number");
-
-// DEBUG ("STREAM VERSION ");
- if (this.realInputStream.readShort () != STREAM_VERSION)
- throw new StreamCorruptedException ("Invalid stream version number");
- }
-
-
- public int read () throws IOException
- {
- if (this.readDataFromBlock)
- {
- if (this.blockDataPosition >= this.blockDataBytes)
- readNextBlock ();
- return this.blockData[this.blockDataPosition++];
- }
- else
- return this.realInputStream.read ();
- }
-
- public int read (byte data[], int offset, int length) throws IOException
- {
- if (this.readDataFromBlock)
- {
- if (this.blockDataPosition + length >= this.blockDataBytes)
- readNextBlock ();
-
- System.arraycopy (this.blockData, this.blockDataPosition,
- data, offset, length);
- return length;
- }
- else
- return this.realInputStream.read (data, offset, length);
- }
-
- public int available () throws IOException
- {
- if (this.readDataFromBlock)
- {
- if (this.blockDataPosition >= this.blockDataBytes)
- readNextBlock ();
-
- return this.blockDataBytes - this.blockDataPosition;
- }
- else
- return this.realInputStream.available ();
- }
-
- public void close () throws IOException
- {
- this.realInputStream.close ();
- }
-
- public boolean readBoolean () throws IOException
- {
- return this.dataInputStream.readBoolean ();
- }
-
- public byte readByte () throws IOException
- {
- return this.dataInputStream.readByte ();
- }
-
- public int readUnsignedByte () throws IOException
- {
- return this.dataInputStream.readUnsignedByte ();
- }
-
- public short readShort () throws IOException
- {
- return this.dataInputStream.readShort ();
- }
-
- public int readUnsignedShort () throws IOException
- {
- return this.dataInputStream.readUnsignedShort ();
- }
-
- public char readChar () throws IOException
- {
- return this.dataInputStream.readChar ();
- }
-
- public int readInt () throws IOException
- {
- return this.dataInputStream.readInt ();
- }
-
- public long readLong () throws IOException
- {
- return this.dataInputStream.readLong ();
- }
-
- public float readFloat () throws IOException
- {
- return this.dataInputStream.readFloat ();
- }
-
- public double readDouble () throws IOException
- {
- return this.dataInputStream.readDouble ();
- }
-
- public void readFully (byte data[]) throws IOException
- {
- this.dataInputStream.readFully (data);
- }
-
- public void readFully (byte data[], int offset, int size)
- throws IOException
- {
- this.dataInputStream.readFully (data, offset, size);
- }
-
- public int skipBytes (int len) throws IOException
- {
- return this.dataInputStream.skipBytes (len);
- }
-
- /**
- @deprecated
- @see java.io.DataInputStream#readLine ()
- */
- public String readLine () throws IOException
- {
- return this.dataInputStream.readLine ();
- }
-
- public String readUTF () throws IOException
- {
- return this.dataInputStream.readUTF ();
- }
-
-
- /**
- This class allows a class to specify exactly which fields should
- be read, and what values should be read for these fields.
-
- XXX: finish up comments
- */
- public static abstract class GetField
- {
- public abstract ObjectStreamClass getObjectStreamClass ();
-
- public abstract boolean defaulted (String name)
- throws IOException, IllegalArgumentException;
-
- public abstract boolean get (String name, boolean defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract char get (String name, char defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract byte get (String name, byte defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract short get (String name, short defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract int get (String name, int defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract long get (String name, long defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract float get (String name, float defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract double get (String name, double defvalue)
- throws IOException, IllegalArgumentException;
-
- public abstract Object get (String name, Object defvalue)
- throws IOException, IllegalArgumentException;
- }
-
- public GetField readFields ()
- throws IOException, ClassNotFoundException, NotActiveException
- {
- if (this.currentObject == null || this.currentObjectStreamClass == null)
- throw new NotActiveException ("readFields called by non-active class and/or object");
-
- if (fieldsAlreadyRead)
- throw new NotActiveException ("readFields called but fields already read from stream (by defaultReadObject or readFields)");
-
- final ObjectStreamClass clazz = this.currentObjectStreamClass;
- final byte[] prim_field_data = new byte[clazz.primFieldSize];
- final Object[] objs = new Object[clazz.objectFieldCount];
-
- // Apparently Block data is not used with GetField as per
- // empirical evidence against JDK 1.2. Also see Mauve test
- // java.io.ObjectInputOutput.Test.GetPutField.
- setBlockDataMode (false);
- readFully (prim_field_data);
- for (int i = 0; i < objs.length; ++ i)
- objs[i] = readObject ();
- setBlockDataMode (true);
-
- return new GetField ()
- {
- public ObjectStreamClass getObjectStreamClass ()
- {
- return clazz;
- }
-
- public boolean defaulted (String name)
- throws IOException, IllegalArgumentException
- {
- return clazz.getField (name) == null;
- }
-
- public boolean get (String name, boolean defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Boolean.TYPE);
-
- if (field == null)
- return defvalue;
-
- return prim_field_data[field.getOffset ()] == 0 ? false : true;
- }
-
- public char get (String name, char defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Character.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return (char)(((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public byte get (String name, byte defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Byte.TYPE);
-
- if (field == null)
- return defvalue;
-
- return prim_field_data[field.getOffset ()];
- }
-
- public short get (String name, short defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Short.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return (short)(((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public int get (String name, int defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Integer.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return ((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF);
- }
-
- public long get (String name, long defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Long.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return (long)(((prim_field_data[off++] & 0xFF) << 56)
- | ((prim_field_data[off++] & 0xFF) << 48)
- | ((prim_field_data[off++] & 0xFF) << 40)
- | ((prim_field_data[off++] & 0xFF) << 32)
- | ((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public float get (String name, float defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Float.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return Float.intBitsToFloat (((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public double get (String name, double defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Double.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return Double.longBitsToDouble (
- (long)(((prim_field_data[off++] & 0xFF) << 56)
- | ((prim_field_data[off++] & 0xFF) << 48)
- | ((prim_field_data[off++] & 0xFF) << 40)
- | ((prim_field_data[off++] & 0xFF) << 32)
- | ((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF)));
- }
-
- public Object get (String name, Object defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field =
- getField (name, defvalue == null ? null : defvalue.getClass ());
-
- if (field == null)
- return defvalue;
-
- return objs[field.getOffset ()];
- }
-
- private ObjectStreamField getField (String name, Class type)
- throws IllegalArgumentException
- {
- ObjectStreamField field = clazz.getField (name);
-
- if (field == null)
- return null;
-
- Class field_type = field.getType ();
-
- if (type == field_type ||
- (type == null && ! field_type.isPrimitive ()))
- return field;
-
- throw new IllegalArgumentException ("Field requested is of type "
- + field_type.getName ()
- + ", but requested type was "
- + (type == null ?
- "Object" : type.getName ()));
- }
- };
-
- }
-
-
- /**
- Protected constructor that allows subclasses to override
- deserialization. This constructor should be called by subclasses
- that wish to override <code>readObject (Object)</code>. This
- method does a security check <i>NOTE: currently not
- implemented</i>, then sets a flag that informs
- <code>readObject (Object)</code> to call the subclasses
- <code>readObjectOverride (Object)</code> method.
-
- @see readObjectOverride (Object)
- */
- protected ObjectInputStream ()
- throws IOException, SecurityException
- {
- SecurityManager sec_man = System.getSecurityManager ();
- if (sec_man != null)
- sec_man.checkPermission (SUBCLASS_IMPLEMENTATION_PERMISSION);
- this.useSubclassMethod = true;
- }
-
-
- /**
- This method allows subclasses to override the default
- de serialization mechanism provided by
- <code>ObjectInputStream</code>. To make this method be used for
- writing objects, subclasses must invoke the 0-argument
- constructor on this class from there constructor.
-
- @see ObjectInputStream ()
- */
- protected Object readObjectOverride ()
- throws ClassNotFoundException, IOException, OptionalDataException
- {
- throw new IOException ("Subclass of ObjectInputStream must implement readObjectOverride");
- }
-
-
- // assigns the next availible handle to OBJ
- private int assignNewHandle (Object obj)
- {
- this.objectLookupTable.put (new Integer (this.nextOID),
- new ObjectIdentityWrapper (obj));
-
-// try
-// {
-// DEBUG ("Assigning handle " + this.nextOID);
-// DEBUGln (" to " + obj);
-// }
-// catch (Throwable t) {}
-
- return this.nextOID++;
- }
-
-
- private Object processResoultion (Object obj, int handle)
- throws IOException
- {
- if (obj instanceof Resolvable)
- obj = ((Resolvable)obj).readResolve ();
-
- if (this.resolveEnabled)
- obj = resolveObject (obj);
-
- this.objectLookupTable.put (new Integer (handle),
- new ObjectIdentityWrapper (obj));
-
- return obj;
- }
-
-
- private void clearHandles ()
- {
- this.objectLookupTable.clear ();
- this.nextOID = baseWireHandle;
- }
-
-
- private void readNextBlock () throws IOException
- {
-// DEBUG ("MARKER ");
- readNextBlock (this.realInputStream.readByte ());
- }
-
-
- private void readNextBlock (byte marker) throws IOException
- {
- if (marker == TC_BLOCKDATA)
- {
-// DEBUG ("BLOCK DATA SIZE ");
- this.blockDataBytes = this.realInputStream.readUnsignedByte ();
- }
- else if (marker == TC_BLOCKDATALONG)
- {
-// DEBUG ("BLOCK DATA LONG SIZE ");
- this.blockDataBytes = this.realInputStream.readInt ();
- }
- else
- {
- throw new EOFException ("Attempt to read primitive data, but no data block is active.");
- }
-
- if (this.blockData.length < this.blockDataBytes)
- this.blockData = new byte[this.blockDataBytes];
-
- this.realInputStream.readFully (this.blockData, 0, this.blockDataBytes);
- this.blockDataPosition = 0;
- }
-
-
- private void readArrayElements (Object array, Class clazz)
- throws ClassNotFoundException, IOException
- {
- if (clazz.isPrimitive ())
- {
- if (clazz == Boolean.TYPE)
- {
- boolean[] cast_array = (boolean[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readBoolean ();
- return;
- }
- if (clazz == Byte.TYPE)
- {
- byte[] cast_array = (byte[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readByte ();
- return;
- }
- if (clazz == Character.TYPE)
- {
- char[] cast_array = (char[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readChar ();
- return;
- }
- if (clazz == Double.TYPE)
- {
- double[] cast_array = (double[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readDouble ();
- return;
- }
- if (clazz == Float.TYPE)
- {
- float[] cast_array = (float[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readFloat ();
- return;
- }
- if (clazz == Integer.TYPE)
- {
- int[] cast_array = (int[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readInt ();
- return;
- }
- if (clazz == Long.TYPE)
- {
- long[] cast_array = (long[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readLong ();
- return;
- }
- if (clazz == Short.TYPE)
- {
- short[] cast_array = (short[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readShort ();
- return;
- }
- }
- else
- {
- Object[] cast_array = (Object[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = readObject ();
- }
- }
-
-
- private void readFields (Object obj, ObjectStreamField[] stream_fields,
- boolean call_read_method,
- ObjectStreamClass stream_osc)
- throws ClassNotFoundException, IOException
- {
- if (call_read_method)
- {
- fieldsAlreadyRead = false;
- setBlockDataMode (true);
- callReadMethod (obj, stream_osc.forClass ());
- setBlockDataMode (false);
- return;
- }
-
- ObjectStreamField[] real_fields =
- ObjectStreamClass.lookup (stream_osc.forClass ()).fields;
-
- boolean default_initialize, set_value;
- String field_name = null;
- Class type = null;
- ObjectStreamField stream_field = null;
- ObjectStreamField real_field = null;
- int stream_idx = 0;
- int real_idx = 0;
-
- while (stream_idx < stream_fields.length
- && real_idx < real_fields.length)
- {
- default_initialize = false;
- set_value = true;
-
- if (stream_idx == stream_fields.length)
- default_initialize = true;
- else
- {
- stream_field = stream_fields[stream_idx];
- type = stream_field.getType ();
- }
-
- if (real_idx == real_fields.length)
- set_value = false;
- else
- {
- real_field = real_fields[real_idx];
- type = real_field.getType ();
- field_name = real_field.getName ();
- }
-
- if (set_value && !default_initialize)
- {
- int comp_val =
- real_field.compareTo (stream_field);
-
- if (comp_val < 0)
- {
- default_initialize = true;
- real_idx++;
- }
- else if (comp_val > 0)
- {
- set_value = false;
- stream_idx++;
- }
- else
- {
- real_idx++;
- stream_idx++;
- }
- }
-
- if (type == Boolean.TYPE)
- {
- boolean value =
- default_initialize ? false : this.realInputStream.readBoolean ();
- if (set_value)
- setBooleanField (obj, field_name, value);
- }
- else if (type == Byte.TYPE)
- {
- byte value =
- default_initialize ? 0 : this.realInputStream.readByte ();
- if (set_value)
- setByteField (obj, field_name, value);
- }
- else if (type == Character.TYPE)
- {
- char value =
- default_initialize ? (char)0 : this.realInputStream.readChar ();
- if (set_value)
- setCharField (obj, field_name, value);
- }
- else if (type == Double.TYPE)
- {
- double value =
- default_initialize ? 0 : this.realInputStream.readDouble ();
- if (set_value)
- setDoubleField (obj, field_name, value);
- }
- else if (type == Float.TYPE)
- {
- float value =
- default_initialize ? 0 : this.realInputStream.readFloat ();
- if (set_value)
- setFloatField (obj, field_name, value);
- }
- else if (type == Integer.TYPE)
- {
- int value =
- default_initialize ? 0 : this.realInputStream.readInt ();
- if (set_value)
- setIntField (obj, field_name, value);
- }
- else if (type == Long.TYPE)
- {
- long value =
- default_initialize ? 0 : this.realInputStream.readLong ();
- if (set_value)
- setLongField (obj, field_name, value);
- }
- else if (type == Short.TYPE)
- {
- short value =
- default_initialize ? (short)0 : this.realInputStream.readShort ();
- if (set_value)
- setShortField (obj, field_name, value);
- }
- else
- {
- Object value =
- default_initialize ? null : readObject ();
- if (set_value)
- setObjectField (obj, field_name,
- real_field.getTypeString (), value);
- }
- }
- }
-
-
- // Toggles writing primitive data to block-data buffer.
- private void setBlockDataMode (boolean on)
- {
-// DEBUGln ("Setting block data mode to " + on);
-
- this.readDataFromBlock = on;
-
- if (on)
- this.dataInputStream = this.blockDataInput;
- else
- this.dataInputStream = this.realInputStream;
- }
-
-
- // returns a new instance of REAL_CLASS that has been constructed
- // only to th level of CONSTRUCTOR_CLASS (a super class of REAL_CLASS)
- private Object newObject (Class real_class, Class constructor_class)
- {
- try
- {
- Object obj = allocateObject (real_class);
- callConstructor (constructor_class, obj);
- return obj;
- }
- catch (InstantiationException e)
- {
- return null;
- }
- }
-
-
- // runs all registered ObjectInputValidations in prioritized order
- // on OBJ
- private void invokeValidators () throws InvalidObjectException
- {
- Object[] validators = new Object[this.validators.size ()];
- this.validators.copyInto (validators);
- Arrays.sort (validators);
-
- try
- {
- for (int i=0; i < validators.length; i++)
- ((ObjectInputValidation)validators[i]).validateObject ();
- }
- finally
- {
- this.validators.removeAllElements ();
- }
- }
-
-
- // this native method is used to get access to the protected method
- // of the same name in SecurityManger
- private static ClassLoader currentClassLoader (SecurityManager sm)
- {
- // FIXME: This is too simple.
- return ClassLoader.getSystemClassLoader ();
- }
-
- private static native Field getField (Class klass, String name)
- throws java.lang.NoSuchFieldException;
-
- private static native Method getMethod (Class klass, String name, Class args[])
- throws java.lang.NoSuchMethodException;
-
- private void callReadMethod (Object obj, Class klass) throws IOException
- {
- try
- {
- Class classArgs[] = {Class.forName ("java.io.ObjectInputStream")};
- Method m = getMethod (klass, "readObject", classArgs);
- if (m == null)
- return;
- Object args[] = {this};
- m.invoke (obj, args);
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private native Object allocateObject (Class clazz)
- throws InstantiationException;
-
- private native void callConstructor (Class clazz, Object obj);
-
- private void setBooleanField (Object obj, String field_name,
- boolean val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setBoolean (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private void setByteField (Object obj, String field_name,
- byte val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setByte (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private void setCharField (Object obj, String field_name,
- char val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setChar (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private void setDoubleField (Object obj, String field_name,
- double val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setDouble (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private void setFloatField (Object obj, String field_name,
- float val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setFloat (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private void setIntField (Object obj, String field_name,
- int val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setInt (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
-
- private void setLongField (Object obj, String field_name,
- long val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setLong (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
-
- private void setShortField (Object obj, String field_name,
- short val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- f.setShort (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
-
- private void setObjectField (Object obj, String field_name, String type_code,
- Object val)
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- // FIXME: We should check the type_code here
- f.set (obj, val);
- }
- catch (Exception _)
- {
- }
- }
-
- private static final int BUFFER_SIZE = 1024;
- private static final Class[] readObjectParams = { ObjectInputStream.class };
-
- private DataInputStream realInputStream;
- private DataInputStream dataInputStream;
- private DataInputStream blockDataInput;
- private int blockDataPosition;
- private int blockDataBytes;
- private byte[] blockData;
- private boolean useSubclassMethod;
- private int nextOID;
- private boolean resolveEnabled;
- private Hashtable objectLookupTable;
- private Object currentObject;
- private ObjectStreamClass currentObjectStreamClass;
- private boolean readDataFromBlock;
- private boolean isDeserializing;
- private boolean fieldsAlreadyRead;
- private Vector validators;
-
-
-/* FIXME: These 2 methods cause a build error on i686-pc-linux-gnu.
- private void DEBUG (String msg)
- {
- System.out.print (msg);
- }
-
-
- private void DEBUGln (String msg)
- {
- System.out.println (msg);
- }
-* end FIXME */
-}
-
-
-// used to keep a prioritized list of object validators
-class ValidatorAndPriority implements Comparable
-{
- int priority;
- ObjectInputValidation validator;
-
- ValidatorAndPriority (ObjectInputValidation validator, int priority)
- {
- this.priority = priority;
- this.validator = validator;
- }
-
- public int compareTo (Object o)
- {
- ValidatorAndPriority vap = (ValidatorAndPriority)o;
- return this.priority - vap.priority;
- }
-}
diff --git a/libjava/java/io/ObjectInputValidation.java b/libjava/java/io/ObjectInputValidation.java
deleted file mode 100644
index cf3508ec6b9..00000000000
--- a/libjava/java/io/ObjectInputValidation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ObjectInputValidation.java -- Validate an object
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * What does this interface really do?
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract interface ObjectInputValidation
-{
-
-/**
- * This method is called to validate an object. If the object is invalid
- * an exception is thrown.
- *
- * @exception InvalidObjectException If the object is invalid
- */
-public abstract void
-validateObject() throws InvalidObjectException;
-
-} // interface ObjectInputValidation
-
diff --git a/libjava/java/io/ObjectOutput.java b/libjava/java/io/ObjectOutput.java
deleted file mode 100644
index 56b33907109..00000000000
--- a/libjava/java/io/ObjectOutput.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ObjectOutput.java -- Interface for writing objects to a stream
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This interface extends <code>DataOutput</code> to provide the additional
- * facility of writing object instances to a stream. It also adds some
- * additional methods to make the interface more <code>OutputStream</code> like.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract interface ObjectOutput extends DataOutput
-{
-
-
-/**
- * This method writes the specified byte to the output stream.
- *
- * @param b The byte to write.
- *
- * @exception IOException If an error occurs.
- */
-public abstract void
-write(int b) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method writes all the bytes in the specified byte array to the
- * output stream.
- *
- * @param buf The array of bytes to write.
- *
- * @exception IOException If an error occurs.
- */
-public abstract void
-write(byte[] buf) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method writes <code>len</code> bytes from the specified array
- * starting at index <code>offset</code> into that array.
- *
- * @param buf The byte array to write from.
- * @param offset The index into the byte array to start writing from.
- * @param len The number of bytes to write.
- *
- * @exception IOException If an error occurs.
- */
-public abstract void
-write(byte[] buf, int offset, int len) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method writes a object instance to a stream. The format of the
- * data written is determined by the actual implementation of this method
- *
- * @param obj The object to write
- *
- * @exception IOException If an error occurs
- */
-public abstract void
-writeObject(Object obj) throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method causes any buffered data to be flushed out to the underlying
- * stream
- *
- * @exception IOException If an error occurs
- */
-public abstract void
-flush() throws IOException;
-
-/*************************************************************************/
-
-/**
- * This method closes the underlying stream.
- *
- * @exception IOException If an error occurs
- */
-public abstract void
-close() throws IOException;
-
-} // interface ObjectOutput
-
diff --git a/libjava/java/io/ObjectOutputStream.java b/libjava/java/io/ObjectOutputStream.java
deleted file mode 100644
index 664b882e229..00000000000
--- a/libjava/java/io/ObjectOutputStream.java
+++ /dev/null
@@ -1,1337 +0,0 @@
-/* ObjectOutputStream.java -- Class used to write serialized objects
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Hashtable;
-
-import gnu.java.io.ObjectIdentityWrapper;
-import gnu.java.lang.reflect.TypeSignature;
-
-/**
- An <code>ObjectOutputStream</code> can be used to write objects
- as well as primitive data in a platform-independent manner to an
- <code>OutputStream</code>.
-
- The data produced by an <code>ObjectOutputStream</code> can be read
- and reconstituted by an <code>ObjectInputStream</code>.
-
- <code>writeObject (Object)</code> is used to write Objects, the
- <code>write&lt;type&gt;</code> methods are used to write primitive
- data (as in <code>DataOutputStream</code>). Strings can be written
- as objects or as primitive data.
-
- Not all objects can be written out using an
- <code>ObjectOutputStream</code>. Only those objects that are an
- instance of <code>java.io.Serializable</code> can be written.
-
- Using default serialization, information about the class of an
- object is written, all of the non-transient, non-static fields of
- the object are written, if any of these fields are objects, they are
- written out in the same manner.
-
- An object is only written out the first time it is encountered. If
- the object is encountered later, a reference to it is written to
- the underlying stream. Thus writing circular object graphs
- does not present a problem, nor are relationships between objects
- in a graph lost.
-
- Example usage:
- <pre>
- Hashtable map = new Hashtable ();
- map.put ("one", new Integer (1));
- map.put ("two", new Integer (2));
-
- ObjectOutputStream oos =
- new ObjectOutputStream (new FileOutputStream ("numbers"));
- oos.writeObject (map);
- oos.close ();
-
- ObjectInputStream ois =
- new ObjectInputStream (new FileInputStream ("numbers"));
- Hashtable newmap = (Hashtable)ois.readObject ();
-
- System.out.println (newmap);
- </pre>
-
- The default serialization can be overriden in two ways.
-
- By defining a method <code>private void
- writeObject (ObjectOutputStream)</code>, a class can dictate exactly
- how information about itself is written.
- <code>defaultWriteObject ()</code> may be called from this method to
- carry out default serialization. This method is not
- responsible for dealing with fields of super-classes or subclasses.
-
- By implementing <code>java.io.Externalizable</code>. This gives
- the class complete control over the way it is written to the
- stream. If this approach is used the burden of writing superclass
- and subclass data is transfered to the class implementing
- <code>java.io.Externalizable</code>.
-
- @see java.io.DataOutputStream
- @see java.io.Externalizable
- @see java.io.ObjectInputStream
- @see java.io.Serializable
- @see XXX: java serialization spec
-*/
-public class ObjectOutputStream extends OutputStream
- implements ObjectOutput, ObjectStreamConstants
-{
- /**
- Creates a new <code>ObjectOutputStream</code> that will do all of
- its writing onto <code>out</code>. This method also initializes
- the stream by writing the header information (stream magic number
- and stream version).
-
- @exception IOException Writing stream header to underlying
- stream cannot be completed.
-
- @see writeStreamHeader ()
- */
- public ObjectOutputStream (OutputStream out) throws IOException
- {
- realOutput = new DataOutputStream (out);
- blockData = new byte[ BUFFER_SIZE ];
- blockDataCount = 0;
- blockDataOutput = new DataOutputStream (this);
- setBlockDataMode (true);
- replacementEnabled = false;
- isSerializing = false;
- nextOID = baseWireHandle;
- OIDLookupTable = new Hashtable ();
- protocolVersion = defaultProtocolVersion;
- useSubclassMethod = false;
- writeStreamHeader ();
- }
-
-
- /**
- Writes a representation of <code>obj</code> to the underlying
- output stream by writing out information about its class, then
- writing out each of the objects non-transient, non-static
- fields. If any of these fields are other objects,
- they are written out in the same manner.
-
- This method can be overriden by a class by implementing
- <code>private void writeObject (ObjectOutputStream)</code>.
-
- If an exception is thrown from this method, the stream is left in
- an undefined state.
-
- @exception NotSerializableException An attempt was made to
- serialize an <code>Object</code> that is not serializable.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
- */
- public final void writeObject (Object obj) throws IOException
- {
- if (useSubclassMethod)
- {
- writeObjectOverride (obj);
- return;
- }
-
- boolean was_serializing = isSerializing;
-
- if (! was_serializing)
- setBlockDataMode (false);
-
- try
- {
- isSerializing = true;
- boolean replaceDone = false;
-
- drain ();
-
- while (true)
- {
- if (obj == null)
- {
- realOutput.writeByte (TC_NULL);
- break;
- }
-
- Integer handle = findHandle (obj);
- if (handle != null)
- {
- realOutput.writeByte (TC_REFERENCE);
- realOutput.writeInt (handle.intValue ());
- break;
- }
-
- if (obj instanceof Class)
- {
- realOutput.writeByte (TC_CLASS);
- writeObject (ObjectStreamClass.lookup ((Class)obj));
- assignNewHandle (obj);
- break;
- }
-
- if (obj instanceof ObjectStreamClass)
- {
- ObjectStreamClass osc = (ObjectStreamClass)obj;
- realOutput.writeByte (TC_CLASSDESC);
- realOutput.writeUTF (osc.getName ());
- realOutput.writeLong (osc.getSerialVersionUID ());
- assignNewHandle (obj);
-
- int flags = osc.getFlags ();
-
- if (protocolVersion == PROTOCOL_VERSION_2
- && osc.isExternalizable ())
- flags |= SC_BLOCK_DATA;
-
- realOutput.writeByte (flags);
-
- ObjectStreamField[] fields = osc.fields;
- realOutput.writeShort (fields.length);
-
- ObjectStreamField field;
- for (int i=0; i < fields.length; i++)
- {
- field = fields[i];
- realOutput.writeByte (field.getTypeCode ());
- realOutput.writeUTF (field.getName ());
-
- if (! field.isPrimitive ())
- writeObject (field.getTypeString ());
- }
-
- setBlockDataMode (true);
- annotateClass (osc.forClass ());
- setBlockDataMode (false);
- realOutput.writeByte (TC_ENDBLOCKDATA);
-
- if (osc.isSerializable ())
- writeObject (osc.getSuper ());
- else
- writeObject (null);
- break;
- }
-
-
- Object replacedObject = null;
-
- if ((replacementEnabled || obj instanceof Replaceable)
- && ! replaceDone)
- {
- replacedObject = obj;
-
- if (obj instanceof Replaceable)
- obj = ((Replaceable)obj).writeReplace ();
-
- if (replacementEnabled)
- obj = replaceObject (obj);
-
- replaceDone = true;
- continue;
- }
-
- if (obj instanceof String)
- {
- realOutput.writeByte (TC_STRING);
- assignNewHandle (obj);
- realOutput.writeUTF ((String)obj);
- break;
- }
-
- Class clazz = obj.getClass ();
- ObjectStreamClass osc = ObjectStreamClass.lookup (clazz);
- if (osc == null)
- throw new NotSerializableException (clazz.getName ());
-
- if (clazz.isArray ())
- {
- realOutput.writeByte (TC_ARRAY);
- writeObject (osc);
- assignNewHandle (obj);
- writeArraySizeAndElements (obj, clazz.getComponentType ());
- break;
- }
-
- realOutput.writeByte (TC_OBJECT);
- writeObject (osc);
-
- if (replaceDone)
- assignNewHandle (replacedObject);
- else
- assignNewHandle (obj);
-
- if (obj instanceof Externalizable)
- {
- if (protocolVersion == PROTOCOL_VERSION_2)
- setBlockDataMode (true);
-
- ((Externalizable)obj).writeExternal (this);
-
- if (protocolVersion == PROTOCOL_VERSION_2)
- {
- setBlockDataMode (false);
- drain ();
- }
-
- break;
- }
-
- if (obj instanceof Serializable)
- {
- currentObject = obj;
- ObjectStreamClass[] hierarchy =
- ObjectStreamClass.getObjectStreamClasses (clazz);
-
- boolean has_write;
- for (int i=0; i < hierarchy.length; i++)
- {
- currentObjectStreamClass = hierarchy[i];
-
- fieldsAlreadyWritten = false;
- has_write = currentObjectStreamClass.hasWriteMethod ();
-
- writeFields (obj, currentObjectStreamClass.fields,
- has_write);
-
- if (has_write)
- {
- drain ();
- realOutput.writeByte (TC_ENDBLOCKDATA);
- }
- }
-
- currentObject = null;
- currentObjectStreamClass = null;
- currentPutField = null;
- break;
- }
-
- throw new NotSerializableException (clazz.getName ());
- } // end pseudo-loop
- }
- catch (IOException e)
- {
- realOutput.writeByte (TC_EXCEPTION);
- reset (true);
-
- try
- {
- writeObject (e);
- }
- catch (IOException ioe)
- {
- throw new StreamCorruptedException ("Exception " + ioe + " thrown while exception was being written to stream.");
- }
-
- reset (true);
- }
- finally
- {
- isSerializing = was_serializing;
-
- if (! was_serializing)
- setBlockDataMode (true);
- }
- }
-
-
- /**
- Writes the current objects non-transient, non-static fields from
- the current class to the underlying output stream.
-
- This method is intended to be called from within a object's
- <code>private void writeObject (ObjectOutputStream)</code>
- method.
-
- @exception NotActiveException This method was called from a
- context other than from the current object's and current class's
- <code>private void writeObject (ObjectOutputStream)</code>
- method.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
- */
- public void defaultWriteObject ()
- throws IOException, NotActiveException
- {
- markFieldsWritten ();
- writeFields (currentObject, currentObjectStreamClass.fields, false);
- }
-
-
- private void markFieldsWritten () throws IOException
- {
- if (currentObject == null || currentObjectStreamClass == null)
- throw new NotActiveException ("defaultWriteObject called by non-active class and/or object");
-
- if (fieldsAlreadyWritten)
- throw new IOException ("Only one of putFields and defaultWriteObject may be called, and it may only be called once");
-
- fieldsAlreadyWritten = true;
- }
-
-
- /**
- Resets stream to state equivalent to the state just after it was
- constructed.
-
- Causes all objects previously written to the stream to be
- forgotten. A notification of this reset is also written to the
- underlying stream.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code> or reset called while serialization is
- in progress.
- */
- public void reset () throws IOException
- {
- reset (false);
- }
-
-
- private void reset (boolean internal) throws IOException
- {
- if (!internal)
- {
- if (isSerializing)
- throw new IOException ("Reset called while serialization in progress");
-
- realOutput.writeByte (TC_RESET);
- }
-
- clearHandles ();
- }
-
-
- /**
- Informs this <code>ObjectOutputStream</code> to write data
- according to the specified protocol. There are currently two
- different protocols, specified by <code>PROTOCOL_VERSION_1</code>
- and <code>PROTOCOL_VERSION_2</code>. This implementation writes
- data using <code>PROTOCOL_VERSION_1</code> by default, as is done
- by the JDK 1.1.
-
- A non-portable method, <code>setDefaultProtocolVersion (int
- version)</code> is provided to change the default protocol
- version.
-
- For an explination of the differences beween the two protocols
- see XXX: the Java ObjectSerialization Specification.
-
- @exception IOException if <code>version</code> is not a valid
- protocol
-
- @see setDefaultProtocolVersion (int)
- */
- public void useProtocolVersion (int version) throws IOException
- {
- if (version != PROTOCOL_VERSION_1 && version != PROTOCOL_VERSION_2)
- throw new IOException ("Invalid protocol version requested.");
-
- protocolVersion = version;
- }
-
-
- /**
- <em>GNU $classpath specific</em>
-
- Changes the default stream protocol used by all
- <code>ObjectOutputStream</code>s. There are currently two
- different protocols, specified by <code>PROTOCOL_VERSION_1</code>
- and <code>PROTOCOL_VERSION_2</code>. The default default is
- <code>PROTOCOL_VERSION_1</code>.
-
- @exception IOException if <code>version</code> is not a valid
- protocol
-
- @see useProtocolVersion (int)
- */
- public static void setDefaultProtocolVersion (int version)
- throws IOException
- {
- if (version != PROTOCOL_VERSION_1 && version != PROTOCOL_VERSION_2)
- throw new IOException ("Invalid protocol version requested.");
-
- defaultProtocolVersion = version;
- }
-
-
- /**
- An empty hook that allows subclasses to write extra information
- about classes to the stream. This method is called the first
- time each class is seen, and after all of the standard
- information about the class has been written.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
-
- @see java.io.ObjectInputStream#resolveClass (java.io.ObjectStreamClass)
- */
- protected void annotateClass (Class cl) throws IOException
- {}
-
-
- /**
- Allows subclasses to replace objects that are written to the
- stream with other objects to be written in their place. This
- method is called the first time each object is encountered
- (modulo reseting of the stream).
-
- This method must be enabled before it will be called in the
- serialization process.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
-
- @see enableReplaceObject (boolean)
- */
- protected Object replaceObject (Object obj) throws IOException
- {
- return obj;
- }
-
-
- /**
- If <code>enable</code> is <code>true</code> and this object is
- trusted, then <code>replaceObject (Object)</code> will be called
- in subsequent calls to <code>writeObject (Object)</code>.
- Otherwise, <code>replaceObject (Object)</code> will not be called.
-
- @exception SecurityException This class is not trusted.
- */
- protected boolean enableReplaceObject (boolean enable)
- throws SecurityException
- {
- if (enable)
- if (getClass ().getClassLoader () != null)
- throw new SecurityException ("Untrusted ObjectOutputStream subclass attempted to enable object replacement");
-
- boolean old_val = replacementEnabled;
- replacementEnabled = enable;
- return old_val;
- }
-
-
- /**
- Writes stream magic and stream version information to the
- underlying stream.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
- */
- protected void writeStreamHeader () throws IOException
- {
- realOutput.writeShort (STREAM_MAGIC);
- realOutput.writeShort (STREAM_VERSION);
- }
-
-
-
- /**
- Protected constructor that allows subclasses to override
- serialization. This constructor should be called by subclasses
- that wish to override <code>writeObject (Object)</code>. This
- method does a security check <i>NOTE: currently not
- implemented</i>, then sets a flag that informs
- <code>writeObject (Object)</code> to call the subclasses
- <code>writeObjectOverride (Object)</code> method.
-
- @see writeObjectOverride (Object)
- */
- protected ObjectOutputStream () throws IOException, SecurityException
- {
- SecurityManager sec_man = System.getSecurityManager ();
- if (sec_man != null)
- sec_man.checkPermission (SUBCLASS_IMPLEMENTATION_PERMISSION);
- useSubclassMethod = true;
- }
-
-
- /**
- This method allows subclasses to override the default
- serialization mechanism provided by
- <code>ObjectOutputStream</code>. To make this method be used for
- writing objects, subclasses must invoke the 0-argument
- constructor on this class from there constructor.
-
- @see ObjectOutputStream ()
-
- @exception NotActiveException Subclass has arranged for this
- method to be called, but did not implement this method.
- */
- protected void writeObjectOverride (Object obj) throws NotActiveException,
- IOException
- {
- throw new NotActiveException ("Subclass of ObjectOutputStream must implement writeObjectOverride");
- }
-
-
- /**
- @see java.io.DataOutputStream#write (int)
- */
- public void write (int data) throws IOException
- {
- if (writeDataAsBlocks)
- {
- if (blockDataCount == BUFFER_SIZE)
- drain ();
-
- blockData[ blockDataCount++ ] = (byte)data;
- }
- else
- realOutput.write (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#write (byte[])
- */
- public void write (byte b[]) throws IOException
- {
- write (b, 0, b.length);
- }
-
-
- /**
- @see java.io.DataOutputStream#write (byte[],int,int)
- */
- public void write (byte b[], int off, int len) throws IOException
- {
- if (writeDataAsBlocks)
- {
- if (len < 0)
- throw new IndexOutOfBoundsException ();
-
- if (blockDataCount + len < BUFFER_SIZE)
- {
- System.arraycopy (b, off, blockData, blockDataCount, len);
- blockDataCount += len;
- }
- else
- {
- drain ();
- writeBlockDataHeader (len);
- realOutput.write (b, off, len);
- }
- }
- else
- realOutput.write (b, off, len);
- }
-
-
- /**
- @see java.io.DataOutputStream#flush ()
- */
- public void flush () throws IOException
- {
- drain ();
- realOutput.flush ();
- }
-
-
- /**
- Causes the block-data buffer to be written to the underlying
- stream, but does not flush underlying stream.
-
- @exception IOException Exception from underlying
- <code>OutputStream</code>.
- */
- protected void drain () throws IOException
- {
- if (blockDataCount == 0)
- return;
-
- writeBlockDataHeader (blockDataCount);
- realOutput.write (blockData, 0, blockDataCount);
- blockDataCount = 0;
- }
-
-
- /**
- @see java.io.DataOutputStream#close ()
- */
- public void close () throws IOException
- {
- drain ();
- realOutput.close ();
- }
-
-
- /**
- @see java.io.DataOutputStream#writeBoolean (boolean)
- */
- public void writeBoolean (boolean data) throws IOException
- {
- dataOutput.writeBoolean (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeByte (int)
- */
- public void writeByte (int data) throws IOException
- {
- dataOutput.writeByte (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeShort (int)
- */
- public void writeShort (int data) throws IOException
- {
- dataOutput.writeShort (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeChar (int)
- */
- public void writeChar (int data) throws IOException
- {
- dataOutput.writeChar (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeInt (int)
- */
- public void writeInt (int data) throws IOException
- {
- dataOutput.writeInt (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeLong (long)
- */
- public void writeLong (long data) throws IOException
- {
- dataOutput.writeLong (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeFloat (float)
- */
- public void writeFloat (float data) throws IOException
- {
- dataOutput.writeFloat (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeDouble (double)
- */
- public void writeDouble (double data) throws IOException
- {
- dataOutput.writeDouble (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeBytes (java.lang.String)
- */
- public void writeBytes (String data) throws IOException
- {
- dataOutput.writeBytes (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeChars (java.lang.String)
- */
- public void writeChars (String data) throws IOException
- {
- dataOutput.writeChars (data);
- }
-
-
- /**
- @see java.io.DataOutputStream#writeUTF (java.lang.String)
- */
- public void writeUTF (String data) throws IOException
- {
- dataOutput.writeUTF (data);
- }
-
-
- /**
- This class allows a class to specify exactly which fields should
- be written, and what values should be written for these fields.
-
- XXX: finish up comments
- */
- public static abstract class PutField
- {
- public abstract void put (String name, boolean value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, byte value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, char value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, double value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, float value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, int value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, long value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, short value)
- throws IOException, IllegalArgumentException;
- public abstract void put (String name, Object value)
- throws IOException, IllegalArgumentException;
- public abstract void write (ObjectOutput out) throws IOException;
- }
-
-
- public PutField putFields () throws IOException
- {
- markFieldsWritten ();
-
- currentPutField = new PutField ()
- {
- private byte[] prim_field_data
- = new byte[currentObjectStreamClass.primFieldSize];
- private Object[] objs
- = new Object[currentObjectStreamClass.objectFieldCount];
-
- public void put (String name, boolean value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'Z');
- prim_field_data[field.getOffset ()] = (byte)(value ? 1 : 0);
- }
-
- public void put (String name, byte value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'B');
- prim_field_data[field.getOffset ()] = value;
- }
-
- public void put (String name, char value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'C');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
-
- public void put (String name, double value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'D');
- int off = field.getOffset ();
- long l_value = Double.doubleToLongBits (value);
- prim_field_data[off++] = (byte)(l_value >>> 52);
- prim_field_data[off++] = (byte)(l_value >>> 48);
- prim_field_data[off++] = (byte)(l_value >>> 40);
- prim_field_data[off++] = (byte)(l_value >>> 32);
- prim_field_data[off++] = (byte)(l_value >>> 24);
- prim_field_data[off++] = (byte)(l_value >>> 16);
- prim_field_data[off++] = (byte)(l_value >>> 8);
- prim_field_data[off] = (byte)l_value;
- }
-
- public void put (String name, float value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'F');
- int off = field.getOffset ();
- int i_value = Float.floatToIntBits (value);
- prim_field_data[off++] = (byte)(i_value >>> 24);
- prim_field_data[off++] = (byte)(i_value >>> 16);
- prim_field_data[off++] = (byte)(i_value >>> 8);
- prim_field_data[off] = (byte)i_value;
- }
-
- public void put (String name, int value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'I');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 24);
- prim_field_data[off++] = (byte)(value >>> 16);
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
-
- public void put (String name, long value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'J');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 52);
- prim_field_data[off++] = (byte)(value >>> 48);
- prim_field_data[off++] = (byte)(value >>> 40);
- prim_field_data[off++] = (byte)(value >>> 32);
- prim_field_data[off++] = (byte)(value >>> 24);
- prim_field_data[off++] = (byte)(value >>> 16);
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
-
- public void put (String name, short value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'S');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
-
- public void put (String name, Object value)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- if (value != null &&
- ! field.getType ().isAssignableFrom (value.getClass ()))
- throw new IllegalArgumentException ();
- objs[field.getOffset ()] = value;
- }
-
- public void write (ObjectOutput out) throws IOException
- {
- // Apparently Block data is not used with PutField as per
- // empirical evidence against JDK 1.2. Also see Mauve test
- // java.io.ObjectInputOutput.Test.GetPutField.
- setBlockDataMode (false);
- out.write (prim_field_data);
- for (int i = 0; i < objs.length; ++ i)
- out.writeObject (objs[i]);
- setBlockDataMode (true);
- }
-
- private void checkType (ObjectStreamField field, char type)
- throws IllegalArgumentException
- {
- if (TypeSignature.getEncodingOfClass (field.getType ()).charAt (0) != type)
- throw new IllegalArgumentException ();
- }
- };
- // end PutFieldImpl
-
- return currentPutField;
- }
-
-
- public void writeFields () throws IOException
- {
- if (currentPutField == null)
- throw new NotActiveException ("writeFields can only be called after putFields has been called");
-
- currentPutField.write (this);
- }
-
-
- // write out the block-data buffer, picking the correct header
- // depending on the size of the buffer
- private void writeBlockDataHeader (int size) throws IOException
- {
- if (size < 256)
- {
- realOutput.writeByte (TC_BLOCKDATA);
- realOutput.write (size);
- }
- else
- {
- realOutput.writeByte (TC_BLOCKDATALONG);
- realOutput.writeInt (size);
- }
- }
-
-
- // lookup the handle for OBJ, return null if OBJ doesn't have a
- // handle yet
- private Integer findHandle (Object obj)
- {
- return (Integer)OIDLookupTable.get (new ObjectIdentityWrapper (obj));
- }
-
-
- // assigns the next availible handle to OBJ
- private int assignNewHandle (Object obj)
- {
- OIDLookupTable.put (new ObjectIdentityWrapper (obj),
- new Integer (nextOID));
- return nextOID++;
- }
-
-
- // resets mapping from objects to handles
- private void clearHandles ()
- {
- nextOID = baseWireHandle;
- OIDLookupTable.clear ();
- }
-
-
- // write out array size followed by each element of the array
- private void writeArraySizeAndElements (Object array, Class clazz)
- throws IOException
- {
- int length = Array.getLength (array);
-
- if (clazz.isPrimitive ())
- {
- if (clazz == Boolean.TYPE)
- {
- boolean[] cast_array = (boolean[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeBoolean (cast_array[i]);
- return;
- }
- if (clazz == Byte.TYPE)
- {
- byte[] cast_array = (byte[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeByte (cast_array[i]);
- return;
- }
- if (clazz == Character.TYPE)
- {
- char[] cast_array = (char[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeChar (cast_array[i]);
- return;
- }
- if (clazz == Double.TYPE)
- {
- double[] cast_array = (double[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeDouble (cast_array[i]);
- return;
- }
- if (clazz == Float.TYPE)
- {
- float[] cast_array = (float[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeFloat (cast_array[i]);
- return;
- }
- if (clazz == Integer.TYPE)
- {
- int[] cast_array = (int[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeInt (cast_array[i]);
- return;
- }
- if (clazz == Long.TYPE)
- {
- long[] cast_array = (long[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeLong (cast_array[i]);
- return;
- }
- if (clazz == Short.TYPE)
- {
- short[] cast_array = (short[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeShort (cast_array[i]);
- return;
- }
- }
- else
- {
- Object[] cast_array = (Object[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- writeObject (cast_array[i]);
- }
- }
-
-
- // writes out FIELDS of OBJECT. If CALL_WRITE_METHOD is true, use
- // object's writeObject (ObjectOutputStream), otherwise use default
- // serialization. FIELDS are already in canonical order.
- private void writeFields (Object obj,
- ObjectStreamField[] fields,
- boolean call_write_method) throws IOException
- {
- if (call_write_method)
- {
- setBlockDataMode (true);
- callWriteMethod (obj);
- setBlockDataMode (false);
- return;
- }
-
- String field_name;
- Class type;
- for (int i=0; i < fields.length; i++)
- {
- field_name = fields[i].getName ();
- type = fields[i].getType ();
-
- if (type == Boolean.TYPE)
- realOutput.writeBoolean (getBooleanField (obj, field_name));
- else if (type == Byte.TYPE)
- realOutput.writeByte (getByteField (obj, field_name));
- else if (type == Character.TYPE)
- realOutput.writeChar (getCharField (obj, field_name));
- else if (type == Double.TYPE)
- realOutput.writeDouble (getDoubleField (obj, field_name));
- else if (type == Float.TYPE)
- realOutput.writeFloat (getFloatField (obj, field_name));
- else if (type == Integer.TYPE)
- realOutput.writeInt (getIntField (obj, field_name));
- else if (type == Long.TYPE)
- realOutput.writeLong (getLongField (obj, field_name));
- else if (type == Short.TYPE)
- realOutput.writeShort (getShortField (obj, field_name));
- else
- writeObject (getObjectField (obj, field_name,
- TypeSignature.getEncodingOfClass (type)));
- }
- }
-
-
- // Toggles writing primitive data to block-data buffer.
- private void setBlockDataMode (boolean on)
- {
- writeDataAsBlocks = on;
-
- if (on)
- dataOutput = blockDataOutput;
- else
- dataOutput = realOutput;
- }
-
-
- private void callWriteMethod (Object obj) throws IOException
- {
- try
- {
- Class classArgs[] = {Class.forName ("java.io.ObjectOutputStream")};
- Class klass = obj.getClass ();
- Method m = getMethod (klass, "writeObject", classArgs);
- if (m == null)
- return;
- Object args[] = {this};
- m.invoke (obj, args);
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private boolean getBooleanField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- boolean b = f.getBoolean (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private byte getByteField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- byte b = f.getByte (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private char getCharField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- char b = f.getChar (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private double getDoubleField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- double b = f.getDouble (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private float getFloatField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- float b = f.getFloat (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private int getIntField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- int b = f.getInt (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private long getLongField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- long b = f.getLong (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private short getShortField (Object obj, String field_name) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- short b = f.getShort (obj);
- return b;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private Object getObjectField (Object obj, String field_name,
- String type_code) throws IOException
- {
- try
- {
- Class klass = obj.getClass ();
- Field f = getField (klass, field_name);
- Object o = f.get (obj);
- // FIXME: We should check the type_code here
- return o;
- }
- catch (Exception _)
- {
- throw new IOException ();
- }
- }
-
- private static native Field getField (Class klass, String name)
- throws java.lang.NoSuchFieldException;
-
- private static native Method getMethod (Class klass, String name, Class args[])
- throws java.lang.NoSuchMethodException;
-
- // this value comes from 1.2 spec, but is used in 1.1 as well
- private final static int BUFFER_SIZE = 1024;
-
- private static int defaultProtocolVersion = PROTOCOL_VERSION_1;
-
- private DataOutputStream dataOutput;
- private boolean writeDataAsBlocks;
- private DataOutputStream realOutput;
- private DataOutputStream blockDataOutput;
- private byte[] blockData;
- private int blockDataCount;
- private Object currentObject;
- private ObjectStreamClass currentObjectStreamClass;
- private PutField currentPutField;
- private boolean fieldsAlreadyWritten;
- private boolean replacementEnabled;
- private boolean isSerializing;
- private int nextOID;
- private Hashtable OIDLookupTable;
- private int protocolVersion;
- private boolean useSubclassMethod;
-}
diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java
deleted file mode 100644
index 085c72b2da3..00000000000
--- a/libjava/java/io/ObjectStreamClass.java
+++ /dev/null
@@ -1,672 +0,0 @@
-/* ObjectStreamClass.java -- Class used to write class information
- about serialized objects.
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.security.DigestOutputStream;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.Security;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Hashtable;
-import java.util.Vector;
-import gnu.java.io.NullOutputStream;
-import gnu.java.lang.reflect.TypeSignature;
-import gnu.java.security.provider.Gnu;
-
-
-public class ObjectStreamClass implements Serializable
-{
- /**
- Returns the <code>ObjectStreamClass</code> for <code>cl</code>.
- If <code>cl</code> is null, or is not <code>Serializable</code>,
- null is returned. <code>ObjectStreamClass</code>'s are memorized;
- later calls to this method with the same class will return the
- same <code>ObjectStreamClass</code> object and no recalculation
- will be done.
-
- @see java.io.Serializable
- */
- public static ObjectStreamClass lookup (Class cl)
- {
- if (cl == null)
- return null;
- if (! (Serializable.class).isAssignableFrom (cl))
- return null;
-
- ObjectStreamClass osc = (ObjectStreamClass)classLookupTable.get (cl);
-
- if (osc != null)
- return osc;
- else
- {
- osc = new ObjectStreamClass (cl);
- classLookupTable.put (cl, osc);
- return osc;
- }
- }
-
-
- /**
- Returns the name of the class that this
- <code>ObjectStreamClass</code> represents.
- */
- public String getName ()
- {
- return name;
- }
-
-
- /**
- Returns the class that this <code>ObjectStreamClass</code>
- represents. Null could be returned if this
- <code>ObjectStreamClass</code> was read from an
- <code>ObjectInputStream</code> and the class it represents cannot
- be found or loaded.
-
- @see java.io.ObjectInputStream
- */
- public Class forClass ()
- {
- return clazz;
- }
-
-
- /**
- Returns the serial version stream-unique identifier for the class
- represented by this <code>ObjectStreamClass</code>. This SUID is
- either defined by the class as <code>static final long
- serialVersionUID</code> or is calculated as specified in
- Javasoft's "Object Serialization Specification" XXX: add reference
- */
- public long getSerialVersionUID ()
- {
- return uid;
- }
-
-
- // Returns the serializable (non-static and non-transient) Fields
- // of the class represented by this ObjectStreamClass. The Fields
- // are sorted by name.
- // XXX doc
- public ObjectStreamField[] getFields ()
- {
- ObjectStreamField[] copy = new ObjectStreamField[ fields.length ];
- System.arraycopy (fields, 0, copy, 0, fields.length);
- return copy;
- }
-
-
- // XXX doc
- // Can't do binary search since fields is sorted by name and
- // primitiveness.
- public ObjectStreamField getField (String name)
- {
- for (int i=0; i < fields.length; i++)
- if (fields[i].getName ().equals (name))
- return fields[i];
- return null;
- }
-
-
- /**
- Returns a textual representation of this
- <code>ObjectStreamClass</code> object including the name of the
- class it represents as well as that class's serial version
- stream-unique identifier.
-
- @see getSerialVersionUID ()
- @see getName ()
- */
- public String toString ()
- {
- return "java.io.ObjectStreamClass< " + name + ", " + uid + " >";
- }
-
-
- // Returns true iff the class that this ObjectStreamClass represents
- // has the following method:
- //
- // private void writeObject (ObjectOutputStream)
- //
- // This method is used by the class to override default
- // serialization behavior.
- boolean hasWriteMethod ()
- {
- return (flags & ObjectStreamConstants.SC_WRITE_METHOD) != 0;
- }
-
-
- // Returns true iff the class that this ObjectStreamClass represents
- // implements Serializable but does *not* implement Externalizable.
- boolean isSerializable ()
- {
- return (flags & ObjectStreamConstants.SC_SERIALIZABLE) != 0;
- }
-
-
- // Returns true iff the class that this ObjectStreamClass represents
- // implements Externalizable.
- boolean isExternalizable ()
- {
- return (flags & ObjectStreamConstants.SC_EXTERNALIZABLE) != 0;
- }
-
-
- // Returns the <code>ObjectStreamClass</code> that represents the
- // class that is the superclass of the class this
- // <code>ObjectStreamClass</cdoe> represents. If the superclass is
- // not Serializable, null is returned.
- ObjectStreamClass getSuper ()
- {
- return superClass;
- }
-
-
- // returns an array of ObjectStreamClasses that represent the super
- // classes of CLAZZ and CLAZZ itself in order from most super to
- // CLAZZ. ObjectStreamClass[0] is the highest superclass of CLAZZ
- // that is serializable.
- static ObjectStreamClass[] getObjectStreamClasses (Class clazz)
- {
- ObjectStreamClass osc = ObjectStreamClass.lookup (clazz);
-
- ObjectStreamClass[] ret_val;
-
- if (osc == null)
- return new ObjectStreamClass[0];
- else
- {
- Vector oscs = new Vector ();
-
- while (osc != null)
- {
- oscs.addElement (osc);
- osc = osc.getSuper ();
- }
-
- int count = oscs.size ();
- ObjectStreamClass[] sorted_oscs = new ObjectStreamClass[ count ];
-
- for (int i = count - 1; i >= 0; i--)
- sorted_oscs[ count - i - 1 ] = (ObjectStreamClass)oscs.elementAt (i);
-
- return sorted_oscs;
- }
- }
-
-
- // Returns an integer that consists of bit-flags that indicate
- // properties of the class represented by this ObjectStreamClass.
- // The bit-flags that could be present are those defined in
- // ObjectStreamConstants that begin with `SC_'
- int getFlags ()
- {
- return flags;
- }
-
-
- ObjectStreamClass (String name, long uid, byte flags,
- ObjectStreamField[] fields)
- {
- this.name = name;
- this.uid = uid;
- this.flags = flags;
- this.fields = fields;
- }
-
-
- void setClass (Class clazz)
- {
- this.clazz = clazz;
- }
-
-
- void setSuperclass (ObjectStreamClass osc)
- {
- superClass = osc;
- }
-
-
- void calculateOffsets ()
- {
- int i;
- ObjectStreamField field;
- primFieldSize = 0;
- int fcount = fields.length;
- for (i = 0; i < fcount; ++ i)
- {
- field = fields[i];
-
- if (! field.isPrimitive ())
- break;
-
- field.setOffset (primFieldSize);
- switch (field.getTypeCode ())
- {
- case 'B':
- case 'Z':
- ++ primFieldSize;
- break;
- case 'C':
- case 'S':
- primFieldSize += 2;
- break;
- case 'I':
- case 'F':
- primFieldSize += 4;
- break;
- case 'D':
- case 'J':
- primFieldSize += 8;
- break;
- }
- }
-
- for (objectFieldCount = 0; i < fcount; ++ i)
- fields[i].setOffset (objectFieldCount++);
- }
-
-
- private ObjectStreamClass (Class cl)
- {
- uid = 0;
- flags = 0;
-
- clazz = cl;
- name = cl.getName ();
- setFlags (cl);
- setFields (cl);
- setUID (cl);
- superClass = lookup (cl.getSuperclass ());
- }
-
-
- // Sets bits in flags according to features of CL.
- private void setFlags (Class cl)
- {
- if ((java.io.Externalizable.class).isAssignableFrom (cl))
- flags |= ObjectStreamConstants.SC_EXTERNALIZABLE;
- else if ((java.io.Serializable.class).isAssignableFrom (cl))
- // only set this bit if CL is NOT Externalizable
- flags |= ObjectStreamConstants.SC_SERIALIZABLE;
-
- try
- {
- Method writeMethod = cl.getDeclaredMethod ("writeObject",
- writeMethodArgTypes);
- int modifiers = writeMethod.getModifiers ();
-
- if (writeMethod.getReturnType () == Void.TYPE
- && Modifier.isPrivate (modifiers)
- && !Modifier.isStatic (modifiers))
- flags |= ObjectStreamConstants.SC_WRITE_METHOD;
- }
- catch (NoSuchMethodException oh_well)
- {}
- }
-
-
- // Sets fields to be a sorted array of the serializable fields of
- // clazz.
- private void setFields (Class cl)
- {
- if (! isSerializable () || isExternalizable ())
- {
- fields = NO_FIELDS;
- return;
- }
-
- try
- {
- Field serialPersistentFields
- = cl.getDeclaredField ("serialPersistentFields");
- int modifiers = serialPersistentFields.getModifiers ();
-
- if (Modifier.isStatic (modifiers)
- && Modifier.isFinal (modifiers)
- && Modifier.isPrivate (modifiers))
- {
- fields = getSerialPersistentFields (cl);
- Arrays.sort (fields);
- calculateOffsets ();
- return;
- }
- }
- catch (NoSuchFieldException ignore)
- {}
-
- int num_good_fields = 0;
- Field[] all_fields = cl.getDeclaredFields ();
-
- int modifiers;
- // set non-serializable fields to null in all_fields
- for (int i=0; i < all_fields.length; i++)
- {
- modifiers = all_fields[i].getModifiers ();
- if (Modifier.isTransient (modifiers)
- || Modifier.isStatic (modifiers))
- all_fields[i] = null;
- else
- num_good_fields++;
- }
-
- // make a copy of serializable (non-null) fields
- fields = new ObjectStreamField[ num_good_fields ];
- for (int from=0, to=0; from < all_fields.length; from++)
- if (all_fields[from] != null)
- {
- Field f = all_fields[from];
- fields[to] = new ObjectStreamField (f.getName (), f.getType ());
- to++;
- }
-
- Arrays.sort (fields);
- calculateOffsets ();
- }
-
- // Sets uid to be serial version UID defined by class, or if that
- // isn't present, calculates value of serial version UID.
- private void setUID (Class cl)
- {
- try
- {
- Field suid = cl.getDeclaredField ("serialVersionUID");
- int modifiers = suid.getModifiers ();
-
- if (Modifier.isStatic (modifiers)
- && Modifier.isFinal (modifiers))
- {
- uid = getDefinedSUID (cl);
- return;
- }
- }
- catch (NoSuchFieldException ignore)
- {}
-
- // cl didn't define serialVersionUID, so we have to compute it
- try
- {
- MessageDigest md = null;
- DigestOutputStream digest_out = null;
- DataOutputStream data_out = null;
-
- try
- {
- md = MessageDigest.getInstance ("SHA");
- }
- catch (NoSuchAlgorithmException e)
- {
- // If a provider already provides SHA, use it; otherwise, use this.
- Gnu gnuProvider = new Gnu();
- Security.addProvider(gnuProvider);
- md = MessageDigest.getInstance ("SHA");
- }
-
- digest_out = new DigestOutputStream (nullOutputStream, md);
- data_out = new DataOutputStream (digest_out);
- data_out.writeUTF (cl.getName ());
-
- int modifiers = cl.getModifiers ();
- // just look at interesting bits
- modifiers = modifiers & (Modifier.ABSTRACT | Modifier.FINAL
- | Modifier.INTERFACE | Modifier.PUBLIC);
- data_out.writeInt (modifiers);
-
- Class[] interfaces = cl.getInterfaces ();
- Arrays.sort (interfaces, interfaceComparator);
- for (int i=0; i < interfaces.length; i++)
- data_out.writeUTF (interfaces[i].getName ());
-
-
- Field field;
- Field[] fields = cl.getDeclaredFields ();
- Arrays.sort (fields, memberComparator);
- for (int i=0; i < fields.length; i++)
- {
- field = fields[i];
- modifiers = field.getModifiers ();
- if (Modifier.isPrivate (modifiers)
- && (Modifier.isStatic (modifiers)
- || Modifier.isTransient (modifiers)))
- continue;
-
- data_out.writeUTF (field.getName ());
- data_out.writeInt (modifiers);
- data_out.writeUTF (TypeSignature.getEncodingOfClass (field.getType ()));
- }
-
- // write class initializer method if present
- boolean has_init;
- try
- {
- has_init = hasClassInitializer (cl);
- }
- catch (NoSuchMethodError e)
- {
- has_init = false;
- }
-
- if (has_init)
- {
- data_out.writeUTF ("<clinit>");
- data_out.writeInt (Modifier.STATIC);
- data_out.writeUTF ("()V");
- }
-
- Constructor constructor;
- Constructor[] constructors = cl.getDeclaredConstructors ();
- Arrays.sort (constructors, memberComparator);
- for (int i=0; i < constructors.length; i++)
- {
- constructor = constructors[i];
- modifiers = constructor.getModifiers ();
- if (Modifier.isPrivate (modifiers))
- continue;
-
- data_out.writeUTF ("<init>");
- data_out.writeInt (modifiers);
-
- // the replacement of '/' with '.' was needed to make computed
- // SUID's agree with those computed by JDK
- data_out.writeUTF (
- TypeSignature.getEncodingOfConstructor (constructor).replace ('/','.'));
- }
-
- Method method;
- Method[] methods = cl.getDeclaredMethods ();
- Arrays.sort (methods, memberComparator);
- for (int i=0; i < methods.length; i++)
- {
- method = methods[i];
- modifiers = method.getModifiers ();
- if (Modifier.isPrivate (modifiers))
- continue;
-
- data_out.writeUTF (method.getName ());
- data_out.writeInt (modifiers);
-
- // the replacement of '/' with '.' was needed to make computed
- // SUID's agree with those computed by JDK
- data_out.writeUTF (
- TypeSignature.getEncodingOfMethod (method).replace ('/', '.'));
- }
-
- data_out.close ();
- byte[] sha = md.digest ();
- long result = 0;
- int len = sha.length < 8 ? sha.length : 8;
- for (int i=0; i < len; i++)
- result += (long)(sha[i] & 0xFF) << (8 * i);
-
- uid = result;
- }
- catch (NoSuchAlgorithmException e)
- {
- throw new RuntimeException ("The SHA algorithm was not found to use in computing the Serial Version UID for class "
- + cl.getName ());
- }
- catch (IOException ioe)
- {
- throw new RuntimeException (ioe.getMessage ());
- }
- }
-
-
- // Returns the value of CLAZZ's final static long field named
- // `serialVersionUID'.
- private long getDefinedSUID (Class clazz)
- {
- long l = 0;
- try
- {
- // Use getDeclaredField rather than getField, since serialVersionUID
- // may not be public AND we only want the serialVersionUID of this
- // class, not a superclass or interface.
- Field f = clazz.getDeclaredField ("serialVersionUID");
- l = f.getLong (null);
- }
- catch (java.lang.NoSuchFieldException e)
- {
- }
-
- catch (java.lang.IllegalAccessException e)
- {
- }
-
- return l;
- }
-
- // Returns the value of CLAZZ's private static final field named
- // `serialPersistentFields'.
- private ObjectStreamField[] getSerialPersistentFields (Class clazz)
- {
- ObjectStreamField[] o = null;
- try
- {
- // Use getDeclaredField rather than getField for the same reason
- // as above in getDefinedSUID.
- Field f = clazz.getDeclaredField ("getSerialPersistentFields");
- o = (ObjectStreamField[])f.get (null);
- }
- catch (java.lang.NoSuchFieldException e)
- {
- }
- catch (java.lang.IllegalAccessException e)
- {
- }
-
- return o;
- }
-
-
- // Returns true if CLAZZ has a static class initializer
- // (a.k.a. <clinit>).
- //
- // A NoSuchMethodError is raised if CLAZZ has no such method.
- private static boolean hasClassInitializer (Class clazz)
- throws java.lang.NoSuchMethodError
- {
- Method m = null;
-
- try
- {
- Class classArgs[] = {};
- m = clazz.getDeclaredMethod ("<clinit>", classArgs);
- }
- catch (java.lang.NoSuchMethodException e)
- {
- throw new java.lang.NoSuchMethodError ();
- }
-
- return m != null;
- }
-
- public static final ObjectStreamField[] NO_FIELDS = {};
-
- private static Hashtable classLookupTable = new Hashtable ();
- private static final NullOutputStream nullOutputStream = new NullOutputStream ();
- private static final Comparator interfaceComparator = new InterfaceComparator ();
- private static final Comparator memberComparator = new MemberComparator ();
- private static final
- Class[] writeMethodArgTypes = { java.io.ObjectOutputStream.class };
-
- private ObjectStreamClass superClass;
- private Class clazz;
- private String name;
- private long uid;
- private byte flags;
-
- // this field is package protected so that ObjectInputStream and
- // ObjectOutputStream can access it directly
- ObjectStreamField[] fields;
-
- // these are accessed by ObjectIn/OutputStream
- int primFieldSize = -1; // -1 if not yet calculated
- int objectFieldCount;
-
- // This is probably not necessary because this class is special cased already
- // but it will avoid showing up as a discrepancy when comparing SUIDs.
- private static final long serialVersionUID = -6120832682080437368L;
-}
-
-
-// interfaces are compared only by name
-class InterfaceComparator implements Comparator
-{
- public int compare (Object o1, Object o2)
- {
- return ((Class)o1).getName ().compareTo (((Class)o2).getName ());
- }
-}
-
-
-// Members (Methods and Constructors) are compared first by name,
-// conflicts are resolved by comparing type signatures
-class MemberComparator implements Comparator
-{
- public int compare (Object o1, Object o2)
- {
- Member m1 = (Member)o1;
- Member m2 = (Member)o2;
-
- int comp = m1.getName ().compareTo (m2.getName ());
-
- if (comp == 0)
- return TypeSignature.getEncodingOfMember (m1).
- compareTo (TypeSignature.getEncodingOfMember (m2));
- else
- return comp;
- }
-}
diff --git a/libjava/java/io/ObjectStreamConstants.java b/libjava/java/io/ObjectStreamConstants.java
deleted file mode 100644
index c9a2aea4f2a..00000000000
--- a/libjava/java/io/ObjectStreamConstants.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ObjectStreamConstants.java -- Interface containing constant values
- used in reading and writing serialized objects
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- This interface contains constants that are used in object
- serialization. This interface is used by ObjectOutputStream,
- ObjectInputStream, ObjectStreamClass, and possibly other classes.
- The values for these constants are specified in Javasoft's "Object
- Serialization Specification" TODO: add reference
-*/
-public interface ObjectStreamConstants
-{
- public final static int PROTOCOL_VERSION_1 = 1;
- public final static int PROTOCOL_VERSION_2 = 2;
-
- final static short STREAM_MAGIC = (short)0xaced;
- final static short STREAM_VERSION = 5;
-
- final static byte TC_NULL = (byte)112;
- final static byte TC_REFERENCE = (byte)113;
- final static byte TC_CLASSDESC = (byte)114;
- final static byte TC_OBJECT = (byte)115;
- final static byte TC_STRING = (byte)116;
- final static byte TC_ARRAY = (byte)117;
- final static byte TC_CLASS = (byte)118;
- final static byte TC_BLOCKDATA = (byte)119;
- final static byte TC_ENDBLOCKDATA = (byte)120;
- final static byte TC_RESET = (byte)121;
- final static byte TC_BLOCKDATALONG = (byte)122;
- final static byte TC_EXCEPTION = (byte)123;
-
- final static byte TC_BASE = TC_NULL;
- final static byte TC_MAX = TC_EXCEPTION;
-
- final static int baseWireHandle = 0x7e0000;
-
- final static byte SC_WRITE_METHOD = 0x01;
- final static byte SC_SERIALIZABLE = 0x02;
- final static byte SC_EXTERNALIZABLE = 0x04;
- final static byte SC_BLOCK_DATA = 0x08;
-
- final static SerializablePermission SUBSTITUTION_PERMISSION
- = new SerializablePermission("enableSubstitution");
-
- final static SerializablePermission SUBCLASS_IMPLEMENTATION_PERMISSION
- = new SerializablePermission("enableSubclassImplementation");
-}
diff --git a/libjava/java/io/ObjectStreamException.java b/libjava/java/io/ObjectStreamException.java
deleted file mode 100644
index cb293e8ec8c..00000000000
--- a/libjava/java/io/ObjectStreamException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public abstract class ObjectStreamException extends IOException
-{
- protected ObjectStreamException()
- {
- super();
- }
-
- protected ObjectStreamException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/io/ObjectStreamField.java b/libjava/java/io/ObjectStreamField.java
deleted file mode 100644
index 55181cc7a38..00000000000
--- a/libjava/java/io/ObjectStreamField.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ObjectStreamField.java -- Class used to store name and class of fields
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-import gnu.java.lang.reflect.TypeSignature;
-
-// XXX doc
-public class ObjectStreamField implements java.lang.Comparable
-{
- public ObjectStreamField (String name, Class type)
- {
- this.name = name;
- this.type = type;
- }
-
- public String getName ()
- {
- return name;
- }
-
- public Class getType ()
- {
- return type;
- }
-
- public char getTypeCode ()
- {
- return TypeSignature.getEncodingOfClass (type).charAt (0);
- }
-
- public String getTypeString ()
- {
- return TypeSignature.getEncodingOfClass (type);
- }
-
- public int getOffset ()
- {
- return offset;
- }
-
- protected void setOffset (int off)
- {
- offset = off;
- }
-
- public boolean isPrimitive ()
- {
- return type.isPrimitive ();
- }
-
- public int compareTo (Object o)
- {
- ObjectStreamField f = (ObjectStreamField)o;
- boolean this_is_primitive = isPrimitive ();
- boolean f_is_primitive = f.isPrimitive ();
-
- if (this_is_primitive && !f_is_primitive)
- return -1;
-
- if (!this_is_primitive && f_is_primitive)
- return 1;
-
- return getName ().compareTo (f.getName ());
- }
-
- public String toString ()
- {
- return "ObjectStreamField< " + type + " " + name + " >";
- }
-
- private String name;
- private Class type;
- private int offset = -1; // XXX make sure this is correct
-}
diff --git a/libjava/java/io/OptionalDataException.java b/libjava/java/io/OptionalDataException.java
deleted file mode 100644
index ed4624b257c..00000000000
--- a/libjava/java/io/OptionalDataException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class OptionalDataException extends ObjectStreamException
-{
- // FIXME: Need to set these fields per the doc in a constructor.
- public boolean eof;
- public int length;
-
- // FIXME: This can probably go away once the right signatures of
- // these package private constructors is determined.
- private static final long serialVersionUID = -8011121865681257820L;
-
- OptionalDataException()
- {
- super();
- }
-
- OptionalDataException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/io/OutputStream.java b/libjava/java/io/OutputStream.java
deleted file mode 100644
index 46770394b22..00000000000
--- a/libjava/java/io/OutputStream.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// OutputStream.java - Send output bytes to output sink.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to version 1.1.
- */
-
-public abstract class OutputStream
-{
- public abstract void write (int b) throws IOException;
-
- public void write (byte[] b) throws IOException, NullPointerException
- {
- write (b, 0, b.length);
- }
-
- public void write (byte[] b, int off, int len)
- throws IOException, NullPointerException, IndexOutOfBoundsException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException ();
- for (int i = 0; i < len; ++i)
- write (b[off + i]);
- }
-
- public void flush () throws IOException
- {
- }
-
- public void close () throws IOException
- {
- }
-}
diff --git a/libjava/java/io/OutputStreamWriter.java b/libjava/java/io/OutputStreamWriter.java
deleted file mode 100644
index e888c66a52e..00000000000
--- a/libjava/java/io/OutputStreamWriter.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-import gnu.gcj.convert.UnicodeToBytes;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct, but only supports 8859_1.
- */
-
-public class OutputStreamWriter extends Writer
-{
- BufferedOutputStream out;
-
- UnicodeToBytes converter;
-
- /* Temporary buffer. */
- private char[] work;
- private int wcount;
-
- public String getEncoding() { return converter.getName(); }
-
- private OutputStreamWriter(OutputStream out, UnicodeToBytes encoder)
- {
- this.out = out instanceof BufferedOutputStream
- ? (BufferedOutputStream) out
- : new BufferedOutputStream(out, 250);
- /* Don't need to call super(out) here as long as the lock gets set. */
- this.lock = out;
- this.converter = encoder;
- }
-
- public OutputStreamWriter(OutputStream out, String enc)
- throws UnsupportedEncodingException
- {
- this(out, UnicodeToBytes.getEncoder(enc));
- }
-
- public OutputStreamWriter(OutputStream out)
- {
- this(out, UnicodeToBytes.getDefaultEncoder());
- }
-
- public void close() throws IOException
- {
- synchronized (lock)
- {
- if (out != null)
- {
- flush();
- out.close();
- out = null;
- }
- work = null;
- }
- }
-
- public void flush() throws IOException
- {
- synchronized (lock)
- {
- if (wcount > 0)
- {
- writeChars(work, 0, wcount);
- wcount = 0;
- }
- out.flush();
- }
- }
-
- public void write(char[] buf, int offset, int count)
- throws IOException
- {
- synchronized (lock)
- {
- if (wcount > 0)
- {
- writeChars(work, 0, wcount);
- wcount = 0;
- }
- writeChars(buf, offset, count);
- }
- }
-
- /** Writes characters through to the inferior BufferedOutputStream.
- * Ignores wcount and the work buffer. */
- private void writeChars(char[] buf, int offset, int count)
- throws IOException
- {
- while (count > 0)
- {
- // We must flush if out.count == out.buf.length.
- // It is probably a good idea to flush if out.buf is almost full.
- // This test is an approximation for "almost full".
- if (out.count + count >= out.buf.length)
- {
- out.flush();
- if (out.count != 0)
- throw new IOException("unable to flush output byte buffer");
- }
- converter.setOutput(out.buf, out.count);
- int converted = converter.write(buf, offset, count);
- offset += converted;
- count -= converted;
- out.count = converter.count;
- }
- }
-
- public void write(String str, int offset, int count)
- throws IOException
- {
- synchronized (lock)
- {
- if (work == null)
- work = new char[100];
- int wlength = work.length;
- while (count > 0)
- {
- int size = count;
- if (wcount + size > wlength)
- {
- if (2*wcount > wlength)
- {
- writeChars(work, 0, wcount);
- wcount = 0;
- }
- if (wcount + size > wlength)
- size = wlength - wcount;
- }
- str.getChars(offset, offset+size, work, wcount);
- offset += size;
- count -= size;
- wcount += size;
- }
- }
- }
-
- public void write(int ch) throws IOException
- {
- synchronized (lock)
- {
- if (work == null)
- work = new char[100];
- if (wcount >= work.length)
- {
- writeChars(work, 0, wcount);
- wcount = 0;
- }
- work[wcount++] = (char) ch;
- }
- }
-}
diff --git a/libjava/java/io/PipedInputStream.java b/libjava/java/io/PipedInputStream.java
deleted file mode 100644
index b5c7931de62..00000000000
--- a/libjava/java/io/PipedInputStream.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/* PipedInputStream.java -- Input stream that reads from an output stream
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This class is an input stream that reads its bytes from an output stream
- * to which it is connected.
- * <p>
- * Data is read and written to an internal buffer. It is highly recommended
- * that the <code>PipedInputStream</code> and connected <code>PipedOutputStream</code>
- * be part of different threads. If they are not, there is a possibility
- * that the read and write operations could deadlock their thread.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class PipedInputStream extends InputStream
-{
-
-/*************************************************************************/
-
-/*
- * Class Variables
- */
-
-/**
- * The size of the internal buffer used for input/output. Note that this
- * can be overriden by setting the system property
- * <code>gnu.java.io.PipedInputStream.pipe_size</code> to the desired size shown
- * in bytes. This is not a standard part of the class library. Note that
- * since this variable is <code>final</code>, it cannot be changed to refect
- * the size specified in the property.
- * <p>
- * The value for this variable is 2048.
- */
-protected static final int PIPE_SIZE = 2048;
-
-/**
- * This is the real pipe size. It defaults to PIPE_SIZE, unless overridden
- * by use of the system property <code>gnu.java.io.PipedInputStream.pipe_size</code>.
- */
-private static int pipe_size;
-
-static
-{
- pipe_size = Integer.getInteger("gnu.java.io.PipedInputStream.pipe_size",
- PIPE_SIZE).intValue();
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the internal circular buffer used for storing bytes written
- * to the pipe and from which bytes are read by this stream
- */
-protected byte[] buffer = new byte[pipe_size];
-
-/**
- * The index into buffer where the bytes written byte the connected
- * <code>PipedOutputStream</code> will be written. If this variables is less
- * than 0, then the buffer is empty. If this variable is equal to
- * <code>out</code>, then the buffer is full
- */
-protected int in = -1;
-
-/**
- * This index into the buffer where bytes will be read from.
- */
-protected int out = 0;
-
-/**
- * This variable is <code>true</code> if this object has ever been connected
- * to a <code>PipedOutputStream</code>, and <code>false</code> otherwise. It is used
- * to detect an attempt to connect an already connected stream or to
- * otherwise use the stream before it is connected.
- */
-private boolean ever_connected = false;
-
-/**
- * This variable is set to <code>true</code> if the <code>close()</code> method is
- * called. This value is checked prevents a caller from re-opening the
- * stream.
- */
-private boolean closed = false;
-
-/**
- * This variable is the PipedOutputStream to which this stream is connected.
- */
-PipedOutputStream src;
-
-/**
- * Used by <code>read()</code> to call an overloaded method
- */
-private byte[] read_buf = new byte[1];
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This constructor creates a new <code>PipedInputStream</code> that is not
- * connected to a <code>PipedOutputStream</code>. It must be connected before
- * bytes can be read from this stream.
- */
-public
-PipedInputStream()
-{
- return;
-}
-
-/*************************************************************************/
-
-/**
- * This constructor creates a new <code>PipedInputStream</code> and connects
- * it to the passed in <code>PipedOutputStream</code>. The stream is then read
- * for reading.
- *
- * @param src The <code>PipedOutputStream</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public
-PipedInputStream(PipedOutputStream src) throws IOException
-{
- connect(src);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This method connects this stream to the passed in <code>PipedOutputStream</code>.
- * This stream is then ready for reading. If this stream is already
- * connected or has been previously closed, then an exception is thrown
- *
- * @param src The <code>PipedOutputStream</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-connect(PipedOutputStream src) throws IOException
-{
- if (src == this.src)
- return;
-
- if (ever_connected)
- throw new IOException("Already connected");
-
- if (closed)
- throw new IOException("Stream is closed and cannot be reopened");
-
- src.connect(this);
-
- ever_connected = true;
-}
-
-/*************************************************************************/
-
-/**
- * This methods closes the stream so that no more data can be read
- * from it.
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-close() throws IOException
-{
- closed = true;
- notifyAll();
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the number of bytes that can be read from this stream
- * before blocking could occur. This is the number of bytes that are
- * currently unread in the internal circular buffer. Note that once this
- * many additional bytes are read, the stream may block on a subsequent
- * read, but it not guaranteed to block.
- *
- * @return The number of bytes that can be read before blocking might occur
- *
- * @exception IOException If an error occurs
- */
-public synchronized int
-available() throws IOException
-{
- if (in == -1)
- return(0);
- else if (in > out)
- return(in - out);
- else
- return(in + (pipe_size - out));
-}
-
-/*************************************************************************/
-
-/**
- * Reads the next byte from the stream. The byte read is returned as
- * and int in the range of 0-255. If a byte cannot be read because of an
- * end of stream condition, -1 is returned. If the stream is already
- * closed, an IOException will be thrown.
- * <code>
- * This method will block if no bytes are available to be read.
- *
- * @return The byte read or -1 if end of stream.
- *
- * @exception IOException If an error occurs
- */
-public synchronized int
-read() throws IOException
-{
- // Method operates by calling the multibyte overloaded read method
- // Note that read_buf is an internal instance variable. I allocate it
- // there to avoid constant reallocation overhead for applications that
- // call this method in a loop at the cost of some unneeded overhead
- // if this method is never called.
-
- int bytes_read = read(read_buf, 0, read_buf.length);
-
- if (bytes_read == -1)
- return(-1);
- else
- return((read_buf[0] & 0xFF));
-}
-
-/*************************************************************************/
-
-/**
- * This method reads bytes from the stream into a caller supplied buffer.
- * It starts storing bytes at position <code>offset</code> into the buffer and
- * reads a maximum of <cod>>len</code> bytes. Note that this method can actually
- * read fewer than <code>len</code> bytes. The actual number of bytes read is
- * returned. A -1 is returned to indicated that no bytes can be read
- * because the end of the stream was reached. If the stream is already
- * closed, a -1 will again be returned to indicate the end of the stream.
- * <p>
- * This method will block if no bytes are available to be read.
- *
- * @param buf The buffer into which bytes will be stored
- * @param offset The index into the buffer at which to start writing.
- * @param len The maximum number of bytes to read.
- */
-public synchronized int
-read(byte[] buf, int offset, int len) throws IOException
-{
- if (!ever_connected)
- throw new IOException("Not connected");
-
- int bytes_read = 0;
- for (;;)
- {
- // If there are bytes, take them.
- if (in != -1)
- {
- int desired_bytes = len - bytes_read;
-
- // We are in a "wrap" condition.
- if (out >= in)
- {
- desired_bytes = Math.min (desired_bytes, pipe_size - out);
-
- System.arraycopy (buffer, out, buf, offset + bytes_read,
- desired_bytes);
-
- bytes_read += desired_bytes;
- out += desired_bytes;
- desired_bytes = len - bytes_read;
-
- if (out == pipe_size)
- {
- out = 0;
- // OUT has wrapped. Make sure that we don't falsely
- // indicate that the buffer is full.
- if (in == 0)
- in = -1;
- }
-
- notifyAll();
- }
-
- // We are in a "no wrap". This can be triggered by
- // fall-through from the above.
- if (in > out)
- {
- desired_bytes = Math.min (desired_bytes, in - out);
-
- System.arraycopy(buffer, out, buf, offset + bytes_read,
- desired_bytes);
-
- bytes_read += desired_bytes;
- out += desired_bytes;
- desired_bytes = len - bytes_read;
-
- if (out == in)
- {
- // Don't falsely indicate that the buffer is full.
- out = 0;
- in = -1;
- }
- else if (out == pipe_size)
- out = 0;
-
- notifyAll();
- }
- }
-
- // Return when we've read something. A short return is ok.
- // Also return in the case where LEN==0.
- if (bytes_read > 0 || bytes_read == len)
- return(bytes_read);
-
- // Handle the case where the end of stream was encountered.
- if (closed)
- {
- if (in == -1)
- {
- // The stream is closed and empty. We've already
- // returned if bytes were read. So we know EOF is the
- // only answer.
- return -1;
- }
-
- // I think this shouldn't happen. I don't think there is a
- // way to get here when nothing has been read but there are
- // bytes in the buffer. Still...
- continue;
- }
-
- // Wait for a byte to be received.
- try
- {
- wait();
- }
- catch(InterruptedException e) { ; }
- }
-}
-
-/*************************************************************************/
-
-/**
- * This method receives a byte of input from the source PipedOutputStream.
- * If there is no data ready to be written, or if the internal circular
- * buffer is full, this method blocks.
- *
- * @param byte_received The byte to write to this stream
- *
- * @exception IOException if error occurs
- *
- */
-protected synchronized void
-receive(int byte_received) throws IOException
-{
- // This is really slow, but it has the benefit of not duplicating
- // the complicated machinery in receive(byte[],int,int).
- byte[] buf = new byte[1];
- buf[0] = (byte) (byte_received & 0xff);
- receive (buf, 0, 1);
-}
-
-/*************************************************************************/
-
-/**
- * This method is used by the connected <code>PipedOutputStream</code> to
- * write bytes into the buffer. It uses this method instead of directly
- * writing the bytes in order to obtain ownership of the object's monitor
- * for the purposes of calling <code>notify</code>.
- *
- * @param buf The array containing bytes to write to this stream
- * @param offset The offset into the array to start writing from
- * @param len The number of bytes to write.
- *
- * @exception IOException If an error occurs
- */
-synchronized void
-receive(byte[] buf, int offset, int len) throws IOException
-{
- if (len <= 0)
- return;
-
- int total_written = 0;
- outer:
- while (total_written < len)
- {
- // If the buffer is full, then wait.
- // Also, if we are at the end of the buffer and OUT is 0, wait.
- if (! (in == out
- || (in == pipe_size - 1 && out == 0)))
- {
- // This is the "no wrap" situation
- if (in > out)
- {
- int bytes_written = 0;
- if ((pipe_size - in) > (len - total_written))
- bytes_written = (len - total_written);
- else if (out == 0)
- bytes_written = (pipe_size - in) - 1;
- else
- bytes_written = (pipe_size - in);
-
- if (bytes_written > 0)
- {
- System.arraycopy(buf, offset + total_written, buffer, in,
- bytes_written);
- total_written += bytes_written;
- in += bytes_written;
-
- if (in == pipe_size)
- in = 0;
-
- notifyAll();
- }
- }
-
- // This is the "wrap" situtation
- if ((out > in) && (total_written != len))
- {
- int bytes_written = 0;
-
- // Do special processing if we are at the beginning
- if (in == -1)
- {
- in = 0;
- bytes_written = Math.min (len - total_written, pipe_size);
- }
- else
- {
- bytes_written = Math.min (len - total_written,
- out - in);
- }
-
- System.arraycopy(buf, offset + total_written, buffer, in,
- bytes_written);
- total_written += bytes_written;
- in += bytes_written;
-
- if (in == pipe_size)
- in = 0;
-
- notifyAll();
- }
- }
- // Wait for some reads to occur before we write anything.
- else
- {
- try
- {
- wait();
- }
- catch (InterruptedException e) { ; }
- }
- }
-}
-
-} // class PipedInputStream
diff --git a/libjava/java/io/PipedOutputStream.java b/libjava/java/io/PipedOutputStream.java
deleted file mode 100644
index b12d1e5f55e..00000000000
--- a/libjava/java/io/PipedOutputStream.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/* PipedOutputStream.java -- Write portion of piped streams.
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This class writes its bytes to a <code>PipedInputStream</code> to
- * which it is connected.
- * <p>
- * It is highly recommended that a <code>PipedOutputStream</code> and its
- * connected <code>PipedInputStream</code> be in different threads. If
- * they are in the same thread, read and write operations could deadlock
- * the thread.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class PipedOutputStream extends OutputStream
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the <code>PipedInputStream</code> to which this object
- * is connected.
- */
-private PipedInputStream snk;
-
-/**
- * This flag indicates whether or not this stream has ever been
- * connected to an input stream
- */
-private boolean ever_connected;
-
-/**
- * This flag indicates whether the <code>close</code> method has ever
- * been called for this stream.
- */
-private boolean closed;
-
-/*************************************************************************/
-
-/**
- * This method initializes a new <code>PipedOutputStream</code> instance.
- * This constructor creates an unconnected object. It must be connected
- * to a <code>PipedInputStream</code> object using the <code>connect</code>
- * method prior to writing any data or an exception will be thrown.
- */
-public
-PipedOutputStream()
-{
- ; // Do Nothing
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new <code>PipedOutputStream</code> instance
- * to write to the specified <code>PipedInputStream</code>. This stream
- * is then ready for writing.
- *
- * @param snk The <code>PipedInputStream</code> to connect this stream to.
- *
- * @exception IOException If an error occurs
- */
-public
-PipedOutputStream(PipedInputStream snk) throws IOException
-{
- connect(snk);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method connects this object to the specified
- * <code>PipedInputStream</code> object. This stream will then be ready
- * for writing. If this stream is already connected or has been
- * previously closed, then an exception is thrown.
- *
- * @param snk The <code>PipedInputStream</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-connect(PipedInputStream snk) throws IOException
-{
- if (snk == this.snk)
- return;
-
- if (ever_connected)
- throw new IOException("Already connected");
-
- if (closed)
- throw new IOException("Stream is closed and cannot be reopened");
-
- this.snk = snk;
- ever_connected = true;
- snk.src = this;
-
- snk.connect(this);
-}
-
-/*************************************************************************/
-
-/**
- * This method closes this stream so that no more data can be written
- * to it. Any further attempts to write to this stream may throw an
- * exception
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-close() throws IOException
-{
- closed = true;
- snk.close();
- notifyAll();
-}
-
-/*************************************************************************/
-
-/**
- * This method writes a single byte of date to the stream. Note that
- * this method will block if the <code>PipedInputStream</code> to which
- * this object is connected has a full buffer.
- *
- * @param b The byte of data to be written, passed as an <code>int</code>.
- *
- * @exception IOException If an error occurs
- */
-public synchronized void
-write(int b) throws IOException
-{
- snk.receive (b);
-}
-
-/*************************************************************************/
-
-/**
- * This method writes <code>len</code> bytes of data from the byte array
- * <code>buf</code> starting at index <code>offset</code> in the array
- * to the stream. Note that this method will block if the
- * <code>PipedInputStream</code> to which this object is connected has
- * a buffer that cannot hold all of the bytes to be written.
- *
- * @param buf The array containing bytes to write to thes stream.
- * @param offset The index into the array to start writing bytes from.
- * @param len The number of bytes to write.
- *
- * @exception IOException If an error occurs
- */
-public void
-write(byte[] buf, int offset, int len) throws IOException
-{
- snk.receive (buf, 0, len);
-}
-
-/*************************************************************************/
-
-/**
- * This method flushes any unwritten bytes to the output and notifies
- * any waiting readers that the pipe is ready to be read.
- *
- * @exception IOException If an error occurs.
- */
-public void
-flush() throws IOException
-{
- return;
-}
-
-} // class PipedOutputStream
-
diff --git a/libjava/java/io/PipedReader.java b/libjava/java/io/PipedReader.java
deleted file mode 100644
index f877a6a02ea..00000000000
--- a/libjava/java/io/PipedReader.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/* PipedReader.java -- Input stream that reads from an output stream
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This class is an input stream that reads its chars from an output stream
- * to which it is connected.
- * <p>
- * Data is read and written to an internal buffer. It is highly recommended
- * that the <code>PipedReader</code> and connected <code>PipedWriter</code>
- * be part of different threads. If they are not, there is a possibility
- * that the read and write operations could deadlock their thread.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class PipedReader extends Reader
-{
-
-/*************************************************************************/
-
-/*
- * Class Variables
- */
-
-/**
- * The size of the internal buffer used for input/output. Note that this
- * can be overriden by setting the system property
- * <code>gnu.java.io.PipedReader.pipe_size</code> to the desired size shown
- * in chars. This is not a standard part of the class library. Note that
- * since this variable is <code>final</code>, it cannot be changed to refect
- * the size specified in the property.
- * <p>
- * The value for this variable is 2048.
- */
-private static final int PIPE_SIZE = 2048;
-
-/**
- * This is the real pipe size. It defaults to PIPE_SIZE, unless overridden
- * by use of the system property <code>gnu.java.io.PipedReader.pipe_size</code>.
- */
-private static int pipe_size;
-
-static
-{
- pipe_size = Integer.getInteger("gnu.java.io.PipedReader.pipe_size",
- PIPE_SIZE).intValue();
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the internal circular buffer used for storing chars written
- * to the pipe and from which chars are read by this stream
- */
-private char[] buffer = new char[pipe_size];
-
-/**
- * The index into buffer where the chars written char the connected
- * <code>PipedWriter</code> will be written. If this variables is less
- * than 0, then the buffer is empty. If this variable is equal to
- * <code>out</code>, then the buffer is full
- */
-private int in = -1;
-
-/**
- * This index into the buffer where chars will be read from.
- */
-private int out = 0;
-
-/**
- * This variable is <code>true</code> if this object has ever been connected
- * to a <code>PipedWriter</code>, and <code>false</code> otherwise. It is used
- * to detect an attempt to connect an already connected stream or to
- * otherwise use the stream before it is connected.
- */
-private boolean ever_connected = false;
-
-/**
- * This variable is set to <code>true</code> if the <code>close()</code> method is
- * called. This value is checked prevents a caller from re-opening the
- * stream.
- */
-private boolean closed = false;
-
-/**
- * This variable is the PipedWriter to which this stream is connected.
- */
-PipedWriter src;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This constructor creates a new <code>PipedReader</code> that is not
- * connected to a <code>PipedWriter</code>. It must be connected before
- * chars can be read from this stream.
- */
-public
-PipedReader()
-{
- return;
-}
-
-/*************************************************************************/
-
-/**
- * This constructor creates a new <code>PipedReader</code> and connects
- * it to the passed in <code>PipedWriter</code>. The stream is then read
- * for reading.
- *
- * @param src The <code>PipedWriter</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public
-PipedReader(PipedWriter src) throws IOException
-{
- connect(src);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This method connects this stream to the passed in <code>PipedWriter</code>.
- * This stream is then ready for reading. If this stream is already
- * connected or has been previously closed, then an exception is thrown
- *
- * @param src The <code>PipedWriter</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public void
-connect(PipedWriter src) throws IOException
-{
- if (src == this.src)
- return;
-
- if (ever_connected)
- throw new IOException("Already connected");
-
- if (closed)
- throw new IOException("Stream is closed and cannot be reopened");
-
- synchronized (lock)
- {
- src.connect(this);
-
- ever_connected = true;
- } // synchronized
-}
-
-/*************************************************************************/
-
-/**
- * This methods closes the stream so that no more data can be read
- * from it.
- *
- * @exception IOException If an error occurs
- */
-public void
-close() throws IOException
-{
- synchronized (lock)
- {
- closed = true;
- notifyAll();
- } // synchronized
-}
-
-/*************************************************************************/
-
-/**
- * This method determines whether or not this stream is ready to be read.
- * If this metho returns <code>false</code> an attempt to read may (but is
- * not guaranteed to) block.
- *
- * @return <code>true</code> if this stream is ready to be read, <code>false</code> otherwise
- *
- * @exception IOException If an error occurs
- */
-public boolean
-ready() throws IOException
-{
- if (in == -1)
- return(false);
-
- if (out == (in - 1))
- return(false);
-
- if ((out == pipe_size) && (in == 0))
- return(false);
-
- return(true);
-}
-
-/*************************************************************************/
-
-/**
- * This method reads a single char from the pipe and returns it as an
- * <code>int</code>.
- * <p>
- * This method will block if no chars are available to be read.
- *
- * @return An char read from the pipe, or -1 if the end of stream is
- * reached.
- *
- * @exception IOException If an error occurs.
- */
-public int
-read() throws IOException
-{
- char[] buf = new char[1];
-
- return(read(buf, 0, buf.length));
-}
-
-/*************************************************************************/
-
-/**
- * This method reads chars from the stream into a caller supplied buffer.
- * It starts storing chars at position <code>offset</code> into the buffer and
- * reads a maximum of <cod>>len</code> chars. Note that this method can actually
- * read fewer than <code>len</code> chars. The actual number of chars read is
- * returned. A -1 is returned to indicated that no chars can be read
- * because the end of the stream was reached. If the stream is already
- * closed, a -1 will again be returned to indicate the end of the stream.
- * <p>
- * This method will block if no chars are available to be read.
- *
- * @param buf The buffer into which chars will be stored
- * @param offset The index into the buffer at which to start writing.
- * @param len The maximum number of chars to read.
- */
-public int
-read(char[] buf, int offset, int len) throws IOException
-{
- if (!ever_connected)
- throw new IOException("Not connected");
-
- synchronized (lock)
- {
- int chars_read = 0;
- for (;;)
- {
- // If there are chars, take them
- if (in != -1)
- {
- int desired_chars = len - chars_read;
-
- // We are in a "wrap" condition
- if (out > in)
- {
- if (desired_chars > (pipe_size - out))
- {
- if (in == 0)
- desired_chars = (pipe_size - out) - 1;
- else
- desired_chars = pipe_size - out;
-
- System.arraycopy(buffer, out, buf, offset + chars_read,
- desired_chars);
-
- chars_read += desired_chars;
- out += desired_chars;
- desired_chars = len - chars_read;
-
- if (out == pipe_size)
- out = 0;
-
- notifyAll();
- }
- else
- {
- if ((out + desired_chars) == in)
- --desired_chars;
-
- if (((out + desired_chars) == pipe_size) && (in == 0))
- desired_chars = (pipe_size - out) - 1;
-
- System.arraycopy(buffer, out, buf, offset + chars_read,
- desired_chars);
-
- chars_read += desired_chars;
- out += desired_chars;
- desired_chars = len - chars_read;
-
- if (out == pipe_size)
- out = 0;
-
- notifyAll();
- }
- }
-
- // We are in a "no wrap" or condition (can also be fall through
- // from above
- if (in > out)
- {
- if (desired_chars >= ((in - out) - 1))
- desired_chars = (in - out) - 1;
-
- System.arraycopy(buffer, out, buf, offset + chars_read,
- desired_chars);
-
- chars_read += desired_chars;
- out += desired_chars;
- desired_chars = len - chars_read;
-
- if (out == pipe_size)
- out = 0;
-
- notifyAll();
- }
- }
-
- // If we are done, return
- if (chars_read == len)
- return(chars_read);
-
- // Return a short count if necessary
- if (chars_read > 0 && chars_read < len)
- return(chars_read);
-
- // Handle the case where the end of stream was encountered.
- if (closed)
- {
- // We never let in == out so there might be one last char
- // available that we have not copied yet.
- if (in != -1)
- {
- buf[offset + chars_read] = buffer[out];
- in = -1;
- ++out;
- ++chars_read;
- }
-
- if (chars_read != 0)
- return(chars_read);
- else
- return(-1);
- }
-
- // Wait for a char to be read
- try
- {
- wait();
- }
- catch(InterruptedException e) { ; }
- }
- } // synchronized
-}
-
-/*************************************************************************/
-
-/**
- * This method is used by the connected <code>PipedWriter</code> to
- * write chars into the buffer. It uses this method instead of directly
- * writing the chars in order to obtain ownership of the object's monitor
- * for the purposes of calling <code>notify</code>.
- *
- * @param buf The array containing chars to write to this stream
- * @param offset The offset into the array to start writing from
- * @param len The number of chars to write.
- *
- * @exception IOException If an error occurs
- */
-void
-write(char[] buf, int offset, int len) throws IOException
-{
- if (len <= 0)
- return;
-
- synchronized (lock)
- {
- int total_written = 0;
- while (total_written < len)
- {
- // If we are not at the end of the buffer with out = 0
- if (!((in == (buffer.length - 1)) && (out == 0)))
- {
- // This is the "no wrap" situation
- if ((in - 1) >= out)
- {
- int chars_written = 0;
- if ((buffer.length - in) > (len - total_written))
- chars_written = (len - total_written);
- else if (out == 0)
- chars_written = (buffer.length - in) - 1;
- else
- chars_written = (buffer.length - in);
-
- if (chars_written > 0)
- System.arraycopy(buf, offset + total_written, buffer, in,
- chars_written);
- total_written += chars_written;
- in += chars_written;
-
- if (in == buffer.length)
- in = 0;
-
- notifyAll();
- }
- // This is the "wrap" situtation
- if ((out > in) && (total_written != len))
- {
- int chars_written = 0;
-
- // Do special processing if we are at the beginning
- if (in == -1)
- {
- in = 0;
-
- if (buffer.length > len)
- chars_written = len;
- else
- chars_written = buffer.length - 1;
- }
- else if (((out - in) - 1) < (len - total_written))
- {
- chars_written = (out - in) - 1;
- }
- else
- {
- chars_written = len - total_written;
- }
-
- // If the buffer is full, wait for it to empty out
- if ((out - 1) == in)
- {
- try
- {
- wait();
- }
- catch (InterruptedException e)
- {
- continue;
- }
- }
-
- System.arraycopy(buf, offset + total_written, buffer, in,
- chars_written);
- total_written += chars_written;
- in += chars_written;
-
- if (in == buffer.length)
- in = 0;
-
- notifyAll();
- }
- }
- // Wait for some reads to occur before we write anything.
- else
- {
- try
- {
- wait();
- }
- catch (InterruptedException e) { ; }
- }
- }
- } // synchronized
-}
-
-} // class PipedReader
-
diff --git a/libjava/java/io/PipedWriter.java b/libjava/java/io/PipedWriter.java
deleted file mode 100644
index cc36acdf0d5..00000000000
--- a/libjava/java/io/PipedWriter.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/* PipedWriter.java -- Write portion of piped streams.
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This class writes its chars to a <code>PipedReader</code> to
- * which it is connected.
- * <p>
- * It is highly recommended that a <code>PipedWriter</code> and its
- * connected <code>PipedReader</code> be in different threads. If
- * they are in the same thread, read and write operations could deadlock
- * the thread.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class PipedWriter extends Writer
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the <code>PipedReader</code> to which this object
- * is connected.
- */
-private PipedReader snk;
-
-/**
- * This flag indicates whether or not this stream has ever been
- * connected to an input stream
- */
-private boolean ever_connected;
-
-/**
- * This flag indicates whether the <code>close</code> method has ever
- * been called for this stream.
- */
-private boolean closed;
-
-/*************************************************************************/
-
-/**
- * This method initializes a new <code>PipedWriter</code> instance.
- * This constructor creates an unconnected object. It must be connected
- * to a <code>PipedReader</code> object using the <code>connect</code>
- * method prior to writing any data or an exception will be thrown.
- */
-public
-PipedWriter()
-{
- ; // Do Nothing
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new <code>PipedWriter</code> instance
- * to write to the specified <code>PipedReader</code>. This stream
- * is then ready for writing.
- *
- * @param snk The <code>PipedReader</code> to connect this stream to.
- *
- * @exception IOException If an error occurs
- */
-public
-PipedWriter(PipedReader snk) throws IOException
-{
- connect(snk);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method connects this object to the specified
- * <code>PipedReader</code> object. This stream will then be ready
- * for writing. If this stream is already connected or has been
- * previously closed, then an exception is thrown.
- *
- * @param snk The <code>PipedReader</code> to connect this stream to
- *
- * @exception IOException If an error occurs
- */
-public void
-connect(PipedReader snk) throws IOException
-{
- if (snk == this.snk)
- return;
-
- if (ever_connected)
- throw new IOException("Already connected");
-
- if (closed)
- throw new IOException("Stream is closed and cannot be reopened");
-
- synchronized (lock) {
-
- this.snk = snk;
- ever_connected = true;
- snk.src = this;
-
- snk.connect(this);
-
- } // synchronized
-}
-
-/*************************************************************************/
-
-/**
- * This method closes this stream so that no more data can be written
- * to it. Any further attempts to write to this stream may throw an
- * exception
- *
- * @exception IOException If an error occurs
- */
-public void
-close() throws IOException
-{
- synchronized (lock) {
-
- closed = true;
- snk.close();
- notifyAll();
-
- } // synchronized
-}
-
-/*************************************************************************/
-
-/**
- * This methods writes a single byte of data to the pipe. This call may
- * block if the pipe is full.
- *
- * @param c The <code>char</code> to write, passed as an <code>int</code>.
- *
- * @exception IOException If an error occurs.
- */
-public void
-write(int c) throws IOException
-{
- char[] buf = new char[1];
- buf[0] = (char)c;
-
- write(buf, 0, buf.length);
-}
-
-/*************************************************************************/
-
-/**
- * This method writes <code>len</code> chars of data from the char array
- * <code>buf</code> starting at index <code>offset</code> in the array
- * to the stream. Note that this method will block if the
- * <code>PipedReader</code> to which this object is connected has
- * a buffer that cannot hold all of the chars to be written.
- *
- * @param buf The array containing chars to write to thes stream.
- * @param offset The index into the array to start writing chars from.
- * @param len The number of chars to write.
- *
- * @exception IOException If an error occurs
- */
-public void
-write(char[] buf, int offset, int len) throws IOException
-{
- snk.write(buf, 0, len);
-}
-
-/*************************************************************************/
-
-/**
- * This method flushes any unwritten chars to the underlying output
- * sink. This method does nothing in this class because this class does
- * not buffer any chars.
- *
- * @exception IOException If an error occurs
- */
-public void
-flush() throws IOException
-{
- ; // Do Nothing
-}
-
-} // class PipedWriter
-
diff --git a/libjava/java/io/PrintStream.java b/libjava/java/io/PrintStream.java
deleted file mode 100644
index 4df8748e217..00000000000
--- a/libjava/java/io/PrintStream.java
+++ /dev/null
@@ -1,302 +0,0 @@
-// PrintStream.java - Print string representations
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-import gnu.gcj.convert.UnicodeToBytes;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Not finished.
- */
-
-public class PrintStream extends FilterOutputStream
-{
- /* Notice the implementation is quite similar to OutputStreamWriter.
- * This leads to some minor duplication, because neither inherits
- * from the other, and we want to maximize performance. */
-
- public boolean checkError ()
- {
- return error;
- }
-
- public void close ()
- {
- try
- {
- out.close();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- public void flush ()
- {
- try
- {
- out.flush();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- private synchronized void print (String str, boolean println)
- {
- try
- {
- writeChars(str, 0, str.length());
- if (println)
- writeChars(line_separator, 0, line_separator.length);
- if (auto_flush)
- flush();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- private synchronized void print (char[] chars, int pos, int len,
- boolean println)
- {
- try
- {
- writeChars(chars, pos, len);
- if (println)
- writeChars(line_separator, 0, line_separator.length);
- if (auto_flush)
- flush();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- /** Writes characters through to the inferior BufferedOutputStream. */
- private void writeChars(char[] buf, int offset, int count)
- throws IOException
- {
- while (count > 0)
- {
- // We must flush if out.count == out.buf.length.
- // It is probably a good idea to flush if out.buf is almost full.
- // This test is an approximation for "almost full".
- if (out.count + count >= out.buf.length)
- {
- out.flush();
- if (out.count != 0)
- throw new IOException("unable to flush output byte buffer");
- }
- converter.setOutput(out.buf, out.count);
- int converted = converter.write(buf, offset, count);
- offset += converted;
- count -= converted;
- out.count = converter.count;
- }
- }
-
- private void writeChars(String str, int offset, int count)
- throws IOException
- {
- while (count > 0)
- {
- // We must flush if out.count == out.buf.length.
- // It is probably a good idea to flush if out.buf is almost full.
- // This test is an approximation for "almost full".
- if (out.count + count >= out.buf.length)
- {
- out.flush();
- if (out.count != 0)
- throw new IOException("unable to flush output byte buffer");
- }
- converter.setOutput(out.buf, out.count);
- int converted = converter.write(str, offset, count, work);
- offset += converted;
- count -= converted;
- out.count = converter.count;
- }
- }
-
- public void print (boolean bool)
- {
- print(String.valueOf(bool), false);
- }
-
- public void print (int inum)
- {
- print(String.valueOf(inum), false);
- }
-
- public void print (long lnum)
- {
- print(String.valueOf(lnum), false);
- }
-
- public void print (float fnum)
- {
- print(String.valueOf(fnum), false);
- }
-
- public void print (double dnum)
- {
- print(String.valueOf(dnum), false);
- }
-
- public void print (Object obj)
- {
- print(obj == null ? "null" : obj.toString(), false);
- }
-
- public void print (String str)
- {
- print(str == null ? "null" : str, false);
- }
-
- public synchronized void print (char ch)
- {
- work[0] = ch;
- print(work, 0, 1, false);
- }
-
- public void print (char[] charArray)
- {
- print(charArray, 0, charArray.length, false);
- }
-
- public void println ()
- {
- print(line_separator, 0, line_separator.length, false);
- }
-
- public void println (boolean bool)
- {
- print(String.valueOf(bool), true);
- }
-
- public void println (int inum)
- {
- print(String.valueOf(inum), true);
- }
-
- public void println (long lnum)
- {
- print(String.valueOf(lnum), true);
- }
-
- public void println (float fnum)
- {
- print(String.valueOf(fnum), true);
- }
-
- public void println (double dnum)
- {
- print(String.valueOf(dnum), true);
- }
-
- public void println (Object obj)
- {
- print(obj == null ? "null" : obj.toString(), true);
- }
-
- public void println (String str)
- {
- print (str == null ? "null" : str, true);
- }
-
- public synchronized void println (char ch)
- {
- work[0] = ch;
- print(work, 0, 1, true);
- }
-
- public void println (char[] charArray)
- {
- print(charArray, 0, charArray.length, true);
- }
-
- public PrintStream (OutputStream out)
- {
- this(out, false);
- }
-
- public PrintStream (OutputStream out, boolean af)
- {
- super(out);
- if (out instanceof BufferedOutputStream)
- this.out = (BufferedOutputStream) out;
- else
- {
- this.out = new BufferedOutputStream(out, 250);
- /* PrintStream redefines "out". Explicitly reset FilterOutputStream's
- * "out" so that they're referring to the same thing. */
- super.out = this.out;
- }
- converter = UnicodeToBytes.getDefaultEncoder();
- error = false;
- auto_flush = af;
- }
-
- protected void setError ()
- {
- error = true;
- }
-
- public void write (int oneByte)
- {
- try
- {
- out.write(oneByte);
- if (auto_flush && oneByte == '\n')
- out.flush();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- public void write (byte[] buffer, int offset, int count)
- {
- try
- {
- out.write(buffer, offset, count);
- if (auto_flush)
- out.flush();
- }
- catch (IOException e)
- {
- setError ();
- }
- }
-
- BufferedOutputStream out;
- UnicodeToBytes converter;
-
- char[] work = new char[100];
-
- // True if error occurred.
- private boolean error;
- // True if auto-flush.
- private boolean auto_flush;
-
- // Line separator string.
- private static final char[] line_separator
- = System.getProperty("line.separator").toCharArray();
-}
diff --git a/libjava/java/io/PrintWriter.java b/libjava/java/io/PrintWriter.java
deleted file mode 100644
index 9a9d3f2d99e..00000000000
--- a/libjava/java/io/PrintWriter.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * This class prints Java primitive values and objects to a stream as
- * text. None of the methods in this class throw an exception. However,
- * errors can be detected by calling the <code>checkError()</code> method.
- * Additionally, this stream can be designated as "autoflush" when
- * created so that any writes are automatically flushed to the underlying
- * output sink whenever one of the <code>println</code> methods is
- * called. (Note that this differs from the <code>PrintStream</code>
- * class which also auto-flushes when it encounters a newline character
- * in the chars written).
- *
- * @version 0.0
- *
- * @author Per Bothner <bothner@cygnus.com>
- * @author Aaron M. Renn (arenn@urbanophile.com)
- * @date April 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * However, should use native methods for conversion.
- */
-
-public class PrintWriter extends Writer
-{
- /**
- * <code>true</code> if auto-flush is enabled, <code>false</code> otherwise
- */
- private boolean autoflush;
-
- /**
- * This boolean indicates whether or not an error has ever occured
- * on this stream.
- */
- private boolean error;
-
- /**
- * This is the underlying <code>Writer</code> we are sending output
- * to
- */
- protected Writer out;
-
- /**
- * This method intializes a new <code>PrintWriter</code> object to write
- * to the specified output sink. The form of the constructor does not
- * enable auto-flush functionality.
- *
- * @param wr The <code>Writer</code> to write to.
- */
- public PrintWriter(Writer wr)
- {
- super(wr);
- this.out = wr;
- }
-
- /**
- * This method intializes a new <code>PrintWriter</code> object to write
- * to the specified output sink. This constructor also allows "auto-flush"
- * functionality to be specified where the stream will be flushed after
- * every line is terminated or newline character is written.
- *
- * @param wr The <code>Writer</code> to write to.
- * @param autoflush <code>true</code> to flush the stream after every line, <code>false</code> otherwise
- */
- public PrintWriter(Writer wr, boolean autoflush)
- {
- super(wr);
- this.out = wr;
- this.autoflush = autoflush;
- }
-
- /**
- * This method initializes a new <code>PrintWriter</code> object to write
- * to the specified <code>OutputStream</code>. Characters will be converted
- * to chars using the system default encoding. Auto-flush functionality
- * will not be enabled.
- *
- * @param out The <code>OutputStream</code> to write to
- */
- public PrintWriter(OutputStream out)
- {
- super();
- this.out = new OutputStreamWriter(out);
- this.lock = this.out;
- }
-
- /**
- * This method initializes a new <code>PrintWriter</code> object to write
- * to the specified <code>OutputStream</code>. Characters will be converted
- * to chars using the system default encoding. This form of the
- * constructor allows auto-flush functionality to be enabled if desired
- *
- * @param out The <code>OutputStream</code> to write to
- * @param autoflush <code>true</code> to flush the stream after every <code>println</code> call, <code>false</code> otherwise.
- */
- public PrintWriter(OutputStream out, boolean autoflush)
- {
- this(out);
- this.autoflush = autoflush;
- }
-
- /**
- * This method can be called by subclasses to indicate that an error
- * has occurred and should be reported by <code>checkError</code>.
- */
- protected void setError()
- {
- error = true;
- }
-
- /**
- * This method checks to see if an error has occurred on this stream. Note
- * that once an error has occurred, this method will continue to report
- * <code>true</code> forever for this stream. Before checking for an
- * error condition, this method flushes the stream.
- *
- * @return <code>true</code> if an error has occurred, <code>false</code> otherwise
- */
- public boolean checkError()
- {
- flush();
- return error;
- }
-
- /**
- * This method flushes any buffered chars to the underlying stream and
- * then flushes that stream as well.
- */
- public void flush()
- {
- try
- {
- out.flush();
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
-
- /**
- * This method closes this stream and all underlying streams.
- */
- public void close()
- {
- try
- {
- out.close();
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
-
- /**
- * This method prints a <code>String</code> to the stream. The actual
- * value printed depends on the system default encoding.
- *
- * @param str The <code>String</code> to print.
- */
- public void print(String str)
- {
- write(str == null ? "null" : str);
- }
-
- /**
- * This method prints a char to the stream. The actual value printed is
- * determined by the character encoding in use.
- *
- * @param ch The <code>char</code> value to be printed
- */
- public void print(char ch)
- {
- write((int) ch);
- }
-
- /**
- * This method prints an array of characters to the stream. The actual
- * value printed depends on the system default encoding.
- *
- * @param charArray The array of characters to print.
- */
- public void print(char[] charArray)
- {
- write(charArray, 0, charArray.length);
- }
-
- /**
- * This methods prints a boolean value to the stream. <code>true</code>
- * values are printed as "true" and <code>false</code> values are printed
- * as "false".
- *
- * @param bool The <code>boolean</code> value to print
- */
- public void print(boolean bool)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write (bool ? "true" : "false");
- }
-
- /**
- * This method prints an integer to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * @param inum The <code>int</code> value to be printed
- */
- public void print(int inum)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write(Integer.toString(inum));
- }
-
- /**
- * This method prints a long to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * @param lnum The <code>long</code> value to be printed
- */
- public void print(long lnum)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write(Long.toString(lnum));
- }
-
- /**
- * This method prints a float to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * @param fnum The <code>float</code> value to be printed
- */
- public void print(float fnum)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write(Float.toString(fnum));
- }
-
- /**
- * This method prints a double to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * @param dnum The <code>double</code> value to be printed
- */
- public void print(double dnum)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write(Double.toString(dnum));
- }
-
- /**
- * This method prints an <code>Object</code> to the stream. The actual
- * value printed is determined by calling the <code>String.valueOf()</code>
- * method.
- *
- * @param obj The <code>Object</code> to print.
- */
- public void print(Object obj)
- {
- // We purposely call write() and not print() here. This preserves
- // compatibility with JDK 1.2.
- write(obj == null ? "null" : obj.toString());
- }
-
- /**
- * This is the system dependent line separator
- */
- private static final char[] line_separator
- = System.getProperty("line.separator").toCharArray();
-
- /**
- * This method prints a line separator sequence to the stream. The value
- * printed is determined by the system property <xmp>line.separator</xmp>
- * and is not necessarily the Unix '\n' newline character.
- */
- public void println()
- {
- synchronized (lock)
- {
- try
- {
- write(line_separator, 0, line_separator.length);
- if (autoflush)
- out.flush();
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
- }
-
- /**
- * This methods prints a boolean value to the stream. <code>true</code>
- * values are printed as "true" and <code>false</code> values are printed
- * as "false".
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param bool The <code>boolean</code> value to print
- */
- public void println(boolean bool)
- {
- synchronized (lock)
- {
- print(bool);
- println();
- }
- }
-
- /**
- * This method prints an integer to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param inum The <code>int</code> value to be printed
- */
- public void println(int inum)
- {
- synchronized (lock)
- {
- print(inum);
- println();
- }
- }
-
- /**
- * This method prints a long to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param lnum The <code>long</code> value to be printed
- */
- public void println(long lnum)
- {
- synchronized (lock)
- {
- print(lnum);
- println();
- }
- }
-
- /**
- * This method prints a float to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param fnum The <code>float</code> value to be printed
- */
- public void println(float fnum)
- {
- synchronized (lock)
- {
- print(fnum);
- println();
- }
- }
-
- /**
- * This method prints a double to the stream. The value printed is
- * determined using the <code>String.valueOf()</code> method.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param dnum The <code>double</code> value to be printed
- */
- public void println(double dnum)
- {
- synchronized (lock)
- {
- print(dnum);
- println();
- }
- }
-
- /**
- * This method prints an <code>Object</code> to the stream. The actual
- * value printed is determined by calling the <code>String.valueOf()</code>
- * method.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param obj The <code>Object</code> to print.
- */
- public void println(Object obj)
- {
- synchronized (lock)
- {
- print(obj);
- println();
- }
- }
-
- /**
- * This method prints a <code>String</code> to the stream. The actual
- * value printed depends on the system default encoding.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param str The <code>String</code> to print.
- */
- public void println(String str)
- {
- synchronized (lock)
- {
- print(str);
- println();
- }
- }
-
- /**
- * This method prints a char to the stream. The actual value printed is
- * determined by the character encoding in use.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param ch The <code>char</code> value to be printed
- */
- public void println(char ch)
- {
- synchronized (lock)
- {
- print(ch);
- println();
- }
- }
-
- /**
- * This method prints an array of characters to the stream. The actual
- * value printed depends on the system default encoding.
- *
- * This method prints a line termination sequence after printing the value.
- *
- * @param charArray The array of characters to print.
- */
- public void println(char[] charArray)
- {
- synchronized (lock)
- {
- print(charArray);
- println();
- }
- }
-
- /**
- * This method writes a single char to the stream.
- *
- * @param ch The char to be written, passed as a int
- */
- public void write(int ch)
- {
- try
- {
- out.write(ch);
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
-
- /**
- * This method writes <code>count</code> chars from the specified array
- * starting at index <code>offset</code> into the array.
- *
- * @param charArray The array of chars to write
- * @param offset The index into the array to start writing from
- * @param count The number of chars to write
- */
- public void write(char[] charArray, int offset, int count)
- {
- try
- {
- out.write(charArray, offset, count);
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
-
- /**
- * This method writes <code>count</code> chars from the specified
- * <code>String</code> to the output starting at character position
- * <code>offset</code> into the <code>String</code>
- *
- * @param str The <code>String</code> to write chars from
- * @param offset The offset into the <code>String</code> to start writing from
- * @param count The number of chars to write.
- */
- public void write(String str, int offset, int count)
- {
- try
- {
- out.write(str, offset, count);
- }
- catch (IOException ex)
- {
- error = true;
- }
- }
-
- /**
- * This method write all the chars in the specified array to the output.
- *
- * @param charArray The array of characters to write
- */
- public void write(char[] charArray)
- {
- write(charArray, 0, charArray.length);
- }
-
- /**
- * This method writes the contents of the specified <code>String</code>
- * to the underlying stream.
- *
- * @param str The <code>String</code> to write
- */
- public void write(String str)
- {
- write(str, 0, str.length());
- }
-}
diff --git a/libjava/java/io/PushbackInputStream.java b/libjava/java/io/PushbackInputStream.java
deleted file mode 100644
index 537e1dbec57..00000000000
--- a/libjava/java/io/PushbackInputStream.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 15, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class PushbackInputStream extends FilterInputStream
-{
- /* Internal buffer array for data. */
- protected byte[] buf;
-
- /* The current position in the buffer. */
- protected int pos;
-
- public PushbackInputStream(InputStream in)
- {
- this(in, 1);
- }
-
- public PushbackInputStream(InputStream in, int size)
- {
- super(in);
- if (size < 0)
- throw new IllegalArgumentException();
- buf = new byte[size];
- pos = buf.length;
- }
-
- public int available() throws IOException
- {
- return pos + super.available();
- }
-
- public void close() throws IOException
- {
- buf = null;
- super.close();
- }
-
- public boolean markSupported()
- {
- return false;
- }
-
- public int read() throws IOException
- {
- if (pos < buf.length)
- return ((int) buf[pos++]) & 0xFF;
-
- return super.read();
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- int numBytes = Math.min(buf.length - pos, len);
- if (numBytes > 0)
- {
- System.arraycopy (buf, pos, b, off, numBytes);
- pos += numBytes;
- return numBytes;
- }
-
- return super.read(b, off, len);
- }
-
- public void unread(int b) throws IOException
- {
- if (pos <= 0)
- throw new IOException();
-
- buf[--pos] = (byte) b;
- }
-
- public void unread(byte[] b) throws IOException
- {
- unread(b, 0, b.length);
- }
-
- public void unread(byte[] b, int off, int len) throws IOException
- {
- if (pos < len)
- throw new IOException();
-
- // Note the order that these bytes are being added is the opposite
- // of what would be done if they were added to the buffer one at a time.
- // See the Java Class Libraries book p. 1390.
- System.arraycopy(b, off, buf, pos - len, len);
-
- // Don't put this into the arraycopy above, an exception might be thrown
- // and in that case we don't want to modify pos.
- pos -= len;
- }
-
- // JDK1.2
- public long skip(long n) throws IOException
- {
- final long origN = n;
-
- if (n > 0L)
- {
- int numread = (int) Math.min((long) (buf.length - pos), n);
- pos += numread;
- n -= numread;
- n -= super.skip(n);
- }
-
- return origN - n;
- }
-}
diff --git a/libjava/java/io/PushbackReader.java b/libjava/java/io/PushbackReader.java
deleted file mode 100644
index 1a7523d0d15..00000000000
--- a/libjava/java/io/PushbackReader.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 16, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class PushbackReader extends FilterReader
-{
- /* Internal buffer array for data. */
- private char[] buf;
-
- /* The current position in the buffer. */
- private int pos;
-
- public PushbackReader(Reader in)
- {
- this(in, 1);
- }
-
- public PushbackReader(Reader in, int size)
- {
- super(in);
- if (size < 0)
- throw new IllegalArgumentException();
- buf = new char[size];
- pos = buf.length;
- }
-
- public void close() throws IOException
- {
- synchronized (lock)
- {
- buf = null;
- super.close();
- }
- }
-
- public boolean markSupported()
- {
- return false;
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- if (pos < buf.length)
- return ((int) buf[pos++]) & 0xFFFF;
-
- return super.read();
- }
- }
-
- public int read(char[] b, int off, int len) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- int numBytes = Math.min(buf.length - pos, len);
- if (numBytes > 0)
- {
- System.arraycopy (buf, pos, b, off, numBytes);
- pos += numBytes;
- return numBytes;
- }
-
- return super.read(b, off, len);
- }
- }
-
- public boolean ready() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- if (buf.length - pos > 0)
- return true;
-
- return super.ready();
- }
- }
-
- public void unread(int b) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null || pos <= 0)
- throw new IOException();
-
- buf[--pos] = (char) b;
- }
- }
-
- public void unread(char[] b) throws IOException
- {
- unread(b, 0, b.length);
- }
-
- public void unread(char[] b, int off, int len) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null || pos < len)
- throw new IOException();
-
- // Note the order that these chars are being added is the opposite
- // of what would be done if they were added to the buffer one at a time.
- // See the Java Class Libraries book p. 1397.
- System.arraycopy(b, off, buf, pos - len, len);
-
- // Don't put this into the arraycopy above, an exception might be thrown
- // and in that case we don't want to modify pos.
- pos -= len;
- }
- }
-}
diff --git a/libjava/java/io/RandomAccessFile.java b/libjava/java/io/RandomAccessFile.java
deleted file mode 100644
index d054afc2033..00000000000
--- a/libjava/java/io/RandomAccessFile.java
+++ /dev/null
@@ -1,247 +0,0 @@
-// RandomAccessFile.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Believe complete and correct to 1.1.
- */
-
-public class RandomAccessFile implements DataOutput, DataInput
-{
- public void close () throws IOException
- {
- fd.close();
- }
-
- public final FileDescriptor getFD () throws IOException
- {
- if (! fd.valid())
- throw new IOException ();
- return fd;
- }
-
- public long getFilePointer () throws IOException
- {
- return fd.getFilePointer();
- }
-
- public long length () throws IOException
- {
- return fd.length();
- }
-
- public RandomAccessFile (String fileName, String mode) throws IOException
- {
- int fdmode;
- if (mode.compareTo ("r") == 0)
- fdmode = FileDescriptor.READ;
- else if (mode.compareTo ("rw") == 0)
- fdmode = FileDescriptor.READ | FileDescriptor.WRITE;
- else
- throw new IllegalArgumentException ("invalid mode: " + mode);
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- s.checkRead(fileName);
- if ((fdmode & FileDescriptor.WRITE) != 0)
- s.checkWrite(fileName);
- }
-
- fd = new FileDescriptor (fileName, fdmode);
- out = new DataOutputStream (new FileOutputStream (fd));
- in = new DataInputStream (new FileInputStream (fd));
- }
-
- public RandomAccessFile (File file, String mode) throws IOException
- {
- this (file.getPath(), mode);
- }
-
- public int read () throws IOException
- {
- return in.read();
- }
-
- public int read (byte[] buffer) throws IOException
- {
- return in.read(buffer);
- }
-
- public int read (byte[] buffer, int offset, int count) throws IOException
- {
- return in.read(buffer, offset, count);
- }
-
- public final boolean readBoolean () throws IOException
- {
- return in.readBoolean();
- }
-
- public final byte readByte () throws IOException
- {
- return in.readByte();
- }
-
- public final char readChar () throws IOException
- {
- return in.readChar();
- }
-
- public final double readDouble () throws IOException
- {
- return in.readDouble();
- }
-
- public final float readFloat () throws IOException
- {
- return in.readFloat();
- }
-
- public final void readFully (byte[] buffer) throws IOException
- {
- in.readFully(buffer);
- }
-
- public final void readFully (byte[] buffer, int offset, int count)
- throws IOException
- {
- in.readFully(buffer, offset, count);
- }
-
- public final int readInt () throws IOException
- {
- return in.readInt();
- }
-
- public final String readLine () throws IOException
- {
- return in.readLine();
- }
-
- public final long readLong () throws IOException
- {
- return in.readLong();
- }
-
- public final short readShort () throws IOException
- {
- return in.readShort();
- }
-
- public final int readUnsignedByte () throws IOException
- {
- return in.readUnsignedByte();
- }
-
- public final int readUnsignedShort () throws IOException
- {
- return in.readUnsignedShort();
- }
-
- public final String readUTF () throws IOException
- {
- return in.readUTF();
- }
-
- public void seek (long pos) throws IOException
- {
- fd.seek(pos, FileDescriptor.SET);
- }
-
- public int skipBytes (int count) throws IOException
- {
- return fd.seek(count, FileDescriptor.CUR);
- }
-
- public void write (int oneByte) throws IOException
- {
- out.write(oneByte);
- }
-
- public void write (byte[] buffer) throws IOException
- {
- out.write(buffer);
- }
-
- public void write (byte[] buffer, int offset, int count) throws IOException
- {
- out.write(buffer, offset, count);
- }
-
- public final void writeBoolean (boolean val) throws IOException
- {
- out.writeBoolean(val);
- }
-
- public final void writeByte (int v) throws IOException
- {
- out.writeByte(v);
- }
-
- public final void writeShort (int v) throws IOException
- {
- out.writeShort(v);
- }
-
- public final void writeChar (int v) throws IOException
- {
- out.writeChar(v);
- }
-
- public final void writeInt (int v) throws IOException
- {
- out.writeInt(v);
- }
-
- public final void writeLong (long v) throws IOException
- {
- out.writeLong(v);
- }
-
- public final void writeFloat (float v) throws IOException
- {
- out.writeFloat(v);
- }
-
- public final void writeDouble (double v) throws IOException
- {
- out.writeDouble(v);
- }
-
- public final void writeBytes (String s) throws IOException
- {
- out.writeBytes(s);
- }
-
- public final void writeChars (String s) throws IOException
- {
- out.writeChars(s);
- }
-
- public final void writeUTF (String s) throws IOException
- {
- out.writeUTF(s);
- }
-
-
- // The underlying file.
- private FileDescriptor fd;
- // The corresponding input and output streams.
- private DataOutputStream out;
- private DataInputStream in;
-}
diff --git a/libjava/java/io/Reader.java b/libjava/java/io/Reader.java
deleted file mode 100644
index c8e8f29c6fa..00000000000
--- a/libjava/java/io/Reader.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 21, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class Reader
-{
- protected Object lock;
-
- protected Reader()
- {
- this.lock = this;
- }
-
- protected Reader(Object lock)
- {
- this.lock = lock;
- }
-
- abstract public int read(char buf[], int offset, int count)
- throws IOException;
-
- public int read(char buf[]) throws IOException
- {
- return read(buf, 0, buf.length);
- }
-
- public int read() throws IOException
- {
- char[] buf = new char[1];
- int count = read(buf, 0, 1);
- return count > 0 ? buf[0] : -1;
- }
-
- abstract public void close() throws IOException;
-
- public boolean markSupported()
- {
- return false;
- }
-
- public void mark(int readLimit) throws IOException
- {
- throw new IOException("mark not supported");
- }
-
- public void reset() throws IOException
- {
- throw new IOException("reset not supported");
- }
-
- public boolean ready() throws IOException
- {
- return false;
- }
-
- public long skip(long count) throws IOException
- {
- if (count <= 0)
- return 0;
- int bsize = count > 1024 ? 1024 : (int) count;
- char[] buffer = new char[bsize];
- long todo = count;
- while (todo > 0)
- {
- int skipped = read(buffer, 0, bsize > todo ? (int) todo : bsize);
- if (skipped <= 0)
- break;
- todo -= skipped;
- }
- return count - todo;
- }
-}
diff --git a/libjava/java/io/Replaceable.java b/libjava/java/io/Replaceable.java
deleted file mode 100644
index 1035ab51c0c..00000000000
--- a/libjava/java/io/Replaceable.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Replaceable.java -- Replace an object with another object
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This interface is used to indicate that an object may want to have
- * another object serialized instead of itself. It contains one method
- * that is to be called when an object is to be serialized. That method
- * is reponsible for returning the real object that should be serialized
- * instead of object being queried.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Replaceable extends Serializable
-{
-
-/**
- * This method returns the object that should be serialized instead of
- * this object
- *
- * @return The real object that should be serialized
- */
-public abstract Object
-writeReplace();
-
-} // interface Replaceable
-
diff --git a/libjava/java/io/Resolvable.java b/libjava/java/io/Resolvable.java
deleted file mode 100644
index b7250de60d1..00000000000
--- a/libjava/java/io/Resolvable.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Resolvable.java -- Returns an object to replace the one being de-serialized
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This interface is implemented when an object wishes to return another
- * object to replace it during de-serialization. It has one method that
- * returns the object that should be used to replace the original object.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Resolvable extends Serializable
-{
-
-/**
- * This method returns the object that should be used to replace the
- * original object during de-serialization.
- *
- * @return The replacement object
- */
-public abstract Object
-readResolve();
-
-} // interface Resolvable
-
diff --git a/libjava/java/io/SequenceInputStream.java b/libjava/java/io/SequenceInputStream.java
deleted file mode 100644
index 054527774ab..00000000000
--- a/libjava/java/io/SequenceInputStream.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-import java.util.Enumeration;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date November 3, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class SequenceInputStream extends InputStream
-{
- /* The handle for the current input stream. */
- private InputStream in;
-
- /* Secondary input stream; not used if constructed w/ enumeration. */
- private InputStream in2;
-
- /* The enum handle; not used if constructed w/ 2 explicit input streams. */
- private Enumeration enum;
-
- public SequenceInputStream(Enumeration e)
- {
- enum = e;
- in = (InputStream) enum.nextElement();
- in2 = null;
- }
-
- public SequenceInputStream(InputStream s1, InputStream s2)
- {
- in = s1;
- in2 = s2;
- }
-
- public int available() throws IOException
- {
- if (in == null)
- return 0;
-
- return in.available();
- }
-
- public void close() throws IOException
- {
- while (in != null)
- {
- in.close();
- in = getNextStream ();
- }
- }
-
- public int read() throws IOException
- {
- int ch = -1;
-
- while (in != null && (ch = in.read()) < 0)
- {
- in.close();
- in = getNextStream();
- }
-
- return ch;
- }
-
- public int read(byte[] b, int off, int len) throws IOException
- {
- int ch = -1;
-
- // The validity of the parameters will be checked by in.read so
- // don't bother doing it here.
- while (in != null && (ch = in.read(b, off, len)) < 0)
- {
- in.close();
- in = getNextStream();
- }
-
- return ch;
- }
-
- private InputStream getNextStream()
- {
- InputStream nextIn = null;
-
- if (enum != null)
- {
- if (enum.hasMoreElements())
- nextIn = (InputStream) enum.nextElement();
- }
- else
- if (in2 != null)
- {
- nextIn = in2;
- in2 = null;
- }
-
- return nextIn;
- }
-}
diff --git a/libjava/java/io/Serializable.java b/libjava/java/io/Serializable.java
deleted file mode 100644
index fab9188d101..00000000000
--- a/libjava/java/io/Serializable.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * Status: Believed complete
- */
-
-public interface Serializable
-{
-}
diff --git a/libjava/java/io/SerializablePermission.java b/libjava/java/io/SerializablePermission.java
deleted file mode 100644
index 78c7229098f..00000000000
--- a/libjava/java/io/SerializablePermission.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* SerializablePermission.java -- Basic permissions related to serialization.
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-import java.security.BasicPermission;
-
-/**
- * This class models permissions related to serialization. As a subclass
- * of <code>BasicPermission</code>, this class has permissions that have
- * a name only. There is no associated action list.
- * <p>
- * There are currently two allowable permission names for this class:
- * <ul>
- * <li><code>enableSubclassImplementation</code> - Allows a subclass to
- * override the default serialization behavior of objects.
- * <li><code>enableSubstitution</code> - Allows substitution of one object
- * for another during serialization or deserialization.
- * </ul>
- *
- * @see java.security.BasicPermission
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public final class SerializablePermission extends BasicPermission
-{
-
-/*
- * Class Variables
- */
-
-public static final String[] legal_names = { "enableSubclassImplementation",
- "enableSubstitution" };
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>SerializablePermission</code>
- * that has the specified name.
- *
- * @param name The name of the permission.
- *
- * @exception IllegalArgumentException If the name is not valid for this class.
- */
-public
-SerializablePermission(String name)
-{
- this(name, null);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>SerializablePermission</code>
- * that has the specified name and action list. Note that the action list
- * is unused in this class.
- *
- * @param name The name of the permission.
- * @param actions The action list (unused).
- *
- * @exception IllegalArgumentException If the name is not valid for this class.
- */
-public
-SerializablePermission(String name, String actions)
-{
- super(name, actions);
-
- for (int i = 0; i < legal_names.length; i++)
- if (legal_names[i].equals(name))
- return;
-
- throw new IllegalArgumentException("Bad permission name: " + name);
-}
-
-
-} // class SerializablePermission
-
diff --git a/libjava/java/io/StreamCorruptedException.java b/libjava/java/io/StreamCorruptedException.java
deleted file mode 100644
index 2741319daa4..00000000000
--- a/libjava/java/io/StreamCorruptedException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class StreamCorruptedException extends ObjectStreamException
-{
- public StreamCorruptedException()
- {
- super();
- }
-
- public StreamCorruptedException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/io/StreamTokenizer.java b/libjava/java/io/StreamTokenizer.java
deleted file mode 100644
index b3c80030216..00000000000
--- a/libjava/java/io/StreamTokenizer.java
+++ /dev/null
@@ -1,665 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * This class parses streams of characters into tokens. There are a
- * million-zillion flags that can be set to control the parsing, as
- * described under the various method headings.
- *
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class StreamTokenizer
-{
- /** A constant indicating that the end of the stream has been read. */
- public static final int TT_EOF = -1;
-
- /** A constant indicating that the end of the line has been read. */
- public static final int TT_EOL = '\n';
-
- /** A constant indicating that a number token has been read. */
- public static final int TT_NUMBER = -2;
-
- /** A constant indicating that a word token has been read. */
- public static final int TT_WORD = -3;
-
- /** A constant indicating that no tokens have been read yet. */
- private static final int TT_NONE = -4;
-
- /**
- * Contains the type of the token read resulting from a call to nextToken
- * The rules are as follows:
- * <ul>
- * <li>For a token consisting of a single ordinary character, this is the
- * value of that character.
- * <li>For a quoted string, this is the value of the quote character
- * <li>For a word, this is TT_WORD
- * <li>For a number, this is TT_NUMBER
- * <li>For the end of the line, this is TT_EOL
- * <li>For the end of the stream, this is TT_EOF
- * </ul>
- */
- public int ttype = TT_NONE;
-
- /** The String associated with word and string tokens. */
- public String sval;
-
- /** The numeric value associated with number tokens. */
- public double nval;
-
- /* Indicates whether end-of-line is recognized as a token. */
- private boolean eolSignificant = false;
-
- /* Indicates whether word tokens are automatically made lower case. */
- private boolean lowerCase = false;
-
- /* Indicates whether C++ style comments are recognized and skipped. */
- private boolean slashSlash = false;
-
- /* Indicates whether C style comments are recognized and skipped. */
- private boolean slashStar = false;
-
- /* Attribute tables of each byte from 0x00 to 0xFF. */
- private boolean[] whitespace = new boolean[256];
- private boolean[] alphabetic = new boolean[256];
- private boolean[] numeric = new boolean[256];
- private boolean[] quote = new boolean[256];
- private boolean[] comment = new boolean[256];
-
- /* The Reader associated with this class. */
- private PushbackReader in;
-
- /* Indicates if a token has been pushed back. */
- private boolean pushedBack = false;
-
- /* Contains the current line number of the reader. */
- private int lineNumber = 1;
-
- /**
- * This method reads bytes from an <code>InputStream</code> and tokenizes
- * them. For details on how this method operates by default, see
- * <code>StreamTokenizer(Reader)</code>.
- *
- * @param in The <code>InputStream</code> to read from
- *
- * @deprecated Since JDK 1.1.
- */
- public StreamTokenizer(InputStream is)
- {
- this(new InputStreamReader(is));
- }
-
- /**
- * This method initializes a new <code>StreamTokenizer</code> to read
- * characters from a <code>Reader</code> and parse them. The char values
- * have their hight bits masked so that the value is treated a character
- * in the range of 0x0000 to 0x00FF.
- * <p>
- * This constructor sets up the parsing table to parse the stream in the
- * following manner:
- * <ul>
- * <li>The values 'A' through 'Z', 'a' through 'z' and 0xA0 through 0xFF
- * are initialized as alphabetic
- * <li>The values 0x00 through 0x20 are initialized as whitespace
- * <li>The values '\'' and '"' are initialized as quote characters
- * <li>'/' is a comment character
- * <li>Numbers will be parsed
- * <li>EOL is not treated as significant
- * <li>C and C++ (//) comments are not recognized
- * </ul>
- *
- * @param in The <code>Reader</code> to read chars from
- */
- public StreamTokenizer(Reader r)
- {
- in = new PushbackReader(r);
-
- whitespaceChars(0x00, 0x20);
- wordChars('A', 'Z');
- wordChars('a', 'z');
- wordChars(0xA0, 0xFF);
- commentChar('/');
- quoteChar('\'');
- quoteChar('"');
- parseNumbers();
- }
-
- /**
- * This method sets the comment attribute on the specified character.
- *
- * @param c The character to set the comment attribute for, passed as an int
- */
- public void commentChar(int ch)
- {
- if (ch >= 0 && ch <= 255)
- comment[ch] = true;
- }
-
- /**
- * This method sets a flag that indicates whether or not the end of line
- * sequence terminates and is a token. The defaults to <code>false</code>
- *
- * @param flag <code>true</code> if EOF is significant, <code>false</code>
- * otherwise
- */
- public void eolIsSignificant(boolean flag)
- {
- eolSignificant = flag;
- }
-
- /**
- * This method returns the current line number. Note that if the
- * <code>pushBack()</code> method is called, it has no effect on the
- * line number returned by this method.
- *
- * @return The current line number
- */
- public int lineno()
- {
- return lineNumber;
- }
-
- /**
- * This method sets a flag that indicates whether or not alphabetic
- * tokens that are returned should be converted to lower case.
- *
- * @param flag <code>true</code> to convert to lower case,
- * <code>false</code> otherwise
- */
- public void lowerCaseMode(boolean flag)
- {
- lowerCase = flag;
- }
-
- private boolean isWhitespace(int ch)
- {
- return (ch >= 0 && ch <= 255 && whitespace[ch]);
- }
-
- private boolean isAlphabetic(int ch)
- {
- return ((ch > 255) || (ch >= 0 && alphabetic[ch]));
- }
-
- private boolean isNumeric(int ch)
- {
- return (ch >= 0 && ch <= 255 && numeric[ch]);
- }
-
- private boolean isQuote(int ch)
- {
- return (ch >= 0 && ch <= 255 && quote[ch]);
- }
-
- private boolean isComment(int ch)
- {
- return (ch >= 0 && ch <= 255 && comment[ch]);
- }
-
- /**
- * This method reads the next token from the stream. It sets the
- * <code>ttype</code> variable to the appropriate token type and
- * returns it. It also can set <code>sval</code> or <code>nval</code>
- * as described below. The parsing strategy is as follows:
- * <ul>
- * <li>Skip any whitespace characters.
- * <li>If a numeric character is encountered, attempt to parse a numeric
- * value. Leading '-' characters indicate a numeric only if followed by
- * another non-'-' numeric. The value of the numeric token is terminated
- * by either the first non-numeric encountered, or the second occurrence of
- * '-' or '.'. The token type returned is TT_NUMBER and <code>nval</code>
- * is set to the value parsed.
- * <li>If an alphabetic character is parsed, all subsequent characters
- * are read until the first non-alphabetic or non-numeric character is
- * encountered. The token type returned is TT_WORD and the value parsed
- * is stored in <code>sval</code>. If lower case mode is set, the token
- * stored in <code>sval</code> is converted to lower case. The end of line
- * sequence terminates a word only if EOL signficance has been turned on.
- * The start of a comment also terminates a word. Any character with a
- * non-alphabetic and non-numeric attribute (such as white space, a quote,
- * or a commet) are treated as non-alphabetic and terminate the word.
- * <li>If a comment charcters is parsed, then all remaining characters on
- * the current line are skipped and another token is parsed. Any EOL or
- * EOF's encountered are not discarded, but rather terminate the comment.
- * <li>If a quote character is parsed, then all characters up to the
- * second occurrence of the same quote character are parsed into a
- * <code>String</code>. This <code>String</code> is stored as
- * <code>sval</code>, but is not converted to lower case, even if lower case
- * mode is enabled. The token type returned is the value of the quote
- * character encountered. Any escape sequences
- * (\b (backspace), \t (HTAB), \n (linefeed), \f (form feed), \r
- * (carriage return), \" (double quote), \' (single quote), \\
- * (backslash), \XXX (octal esacpe)) are converted to the appropriate
- * char values. Invalid esacape sequences are left in untranslated.
- * Unicode characters like ('\ u0000') are not recognized.
- * <li>If the C++ comment sequence "//" is encountered, and the parser
- * is configured to handle that sequence, then the remainder of the line
- * is skipped and another token is read exactly as if a character with
- * the comment attribute was encountered.
- * <li>If the C comment sequence "/*" is encountered, and the parser
- * is configured to handle that sequence, then all characters up to and
- * including the comment terminator sequence are discarded and another
- * token is parsed.
- * <li>If all cases above are not met, then the character is an ordinary
- * character that is parsed as a token by itself. The char encountered
- * is returned as the token type.
- * </ul>
- *
- * @return The token type
- * @exception IOException If an I/O error occurs
- */
- public int nextToken() throws IOException
- {
- if (pushedBack)
- {
- pushedBack = false;
- if (ttype != TT_NONE)
- return ttype;
- }
-
- sval = null;
- int ch;
-
- // Skip whitespace. Deal with EOL along the way.
- while (isWhitespace(ch = in.read()))
- if (ch == '\n' || ch == '\r')
- {
- lineNumber++;
-
- // Throw away \n if in combination with \r.
- if (ch == '\r' && (ch = in.read()) != '\n')
- {
- if (ch != TT_EOF)
- in.unread(ch);
- }
- if (eolSignificant)
- return (ttype = TT_EOL);
- }
-
- if (ch == TT_EOF)
- ttype = TT_EOF;
- else if (isNumeric(ch))
- {
- boolean isNegative = false;
- if (ch == '-')
- {
- // Read ahead to see if this is an ordinary '-' rather than numeric.
- ch = in.read();
- if (isNumeric(ch) && ch != '-')
- {
- isNegative = true;
- }
- else
- {
- if (ch != TT_EOF)
- in.unread(ch);
- return (ttype = '-');
- }
- }
-
- StringBuffer tokbuf = new StringBuffer();
- tokbuf.append((char) ch);
-
- int decCount = 0;
- while (isNumeric(ch = in.read()) && ch != '-')
- if (ch == '.' && decCount++ > 0)
- break;
- else
- tokbuf.append((char) ch);
-
- if (ch != TT_EOF)
- in.unread(ch);
- ttype = TT_NUMBER;
- try
- {
- nval = Double.valueOf(tokbuf.toString()).doubleValue();
- }
- catch (NumberFormatException _)
- {
- nval = 0.0;
- }
- if (isNegative)
- nval = -nval;
- }
- else if (isAlphabetic(ch))
- {
- StringBuffer tokbuf = new StringBuffer();
- tokbuf.append((char) ch);
- while (isAlphabetic(ch = in.read()) || isNumeric(ch))
- tokbuf.append((char) ch);
- if (ch != TT_EOF)
- in.unread(ch);
- ttype = TT_WORD;
- sval = tokbuf.toString();
- if (lowerCase)
- sval.toLowerCase();
- }
- else if (isComment(ch))
- {
- while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF)
- ;
- if (ch != TT_EOF)
- in.unread(ch);
- return nextToken(); // Recursive, but not too deep in normal cases.
- }
- else if (isQuote(ch))
- {
- ttype = ch;
- StringBuffer tokbuf = new StringBuffer();
- while ((ch = in.read()) != ttype && ch != '\n' && ch != '\r' &&
- ch != TT_EOF)
- {
- if (ch == '\\')
- switch (ch = in.read())
- {
- case 'a': ch = 0x7;
- break;
- case 'b': ch = '\b';
- break;
- case 'f': ch = 0xC;
- break;
- case 'n': ch = '\n';
- break;
- case 'r': ch = '\r';
- break;
- case 't': ch = '\t';
- break;
- case 'v': ch = 0xB;
- break;
- case '\n': ch = '\n';
- break;
- case '\r': ch = '\r';
- break;
- case '\"':
- case '\'':
- case '\\':
- break;
- default:
- int ch1, nextch;
- if ((nextch = ch1 = ch) >= '0' && ch <= '7')
- {
- ch -= '0';
- if ((nextch = in.read()) >= '0' && nextch <= '7')
- {
- ch = ch * 8 + nextch - '0';
- if ((nextch = in.read()) >= '0' && nextch <= '7' &&
- ch1 >= '0' && ch1 <= '3')
- {
- ch = ch * 8 + nextch - '0';
- nextch = in.read();
- }
- }
- }
-
- if (nextch != TT_EOF)
- in.unread(nextch);
- }
-
- tokbuf.append((char) ch);
- }
-
- // Throw away matching quote char.
- if (ch != ttype && ch != TT_EOF)
- in.unread(ch);
-
- sval = tokbuf.toString();
- }
- else
- {
- if (ch == '/')
- if ((ch = in.read()) == '/' && slashSlash)
- {
- while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF)
- ;
- if (ch != TT_EOF)
- in.unread(ch);
- return nextToken(); // Recursive, but not too deep in normal cases
- }
- else if (ch == '*' && slashStar)
- {
- while (true)
- {
- ch = in.read();
- if (ch == '*')
- {
- if ((ch = in.read()) == '/')
- break;
- else if (ch != TT_EOF)
- in.unread(ch);
- }
- else if (ch == '\n' || ch == '\r')
- {
- lineNumber++;
- if (ch == '\r' && (ch = in.read()) != '\n')
- {
- if (ch != TT_EOF)
- in.unread(ch);
- }
- }
- else if (ch == TT_EOF)
- {
- break;
- }
- }
- return nextToken(); // Recursive, but not too deep in normal cases
- }
- else
- {
- if (ch != TT_EOF)
- in.unread(ch);
- ch = '/';
- }
-
- ttype = ch;
- }
-
- return ttype;
- }
-
- private void resetChar(int ch)
- {
- whitespace[ch] = alphabetic[ch] = numeric[ch] = quote[ch] = comment[ch] =
- false;
- }
-
- /**
- * This method makes the specified character an ordinary character. This
- * means that none of the attributes (whitespace, alphabetic, numeric,
- * quote, or comment) will be set on this character. This character will
- * parse as its own token.
- *
- * @param c The charcter to make ordinary, passed as an int
- */
- public void ordinaryChar(int ch)
- {
- if (ch >= 0 && ch <= 255)
- resetChar(ch);
- }
-
- /**
- * This method makes all the characters in the specified range, range
- * terminators included, ordinary. This means the none of the attributes
- * (whitespace, alphabetic, numeric, quote, or comment) will be set on
- * any of the characters in the range. This makes each character in this
- * range parse as its own token.
- *
- * @param low The low end of the range of values to set the whitespace
- * attribute for
- * @param high The high end of the range of values to set the whitespace
- * attribute for
- */
- public void ordinaryChars(int low, int hi)
- {
- if (low < 0)
- low = 0;
- if (hi > 255)
- hi = 255;
- for (int i = low; i <= hi; i++)
- resetChar(i);
- }
-
- /**
- * This method sets the numeric attribute on the characters '0' - '9' and
- * the characters '.' and '-'.
- */
- public void parseNumbers()
- {
- for (int i = 0; i <= 9; i++)
- numeric['0' + i] = true;
-
- numeric['.'] = true;
- numeric['-'] = true;
- }
-
- /**
- * This method returns the current line number. Note that if the
- * <code>pushBack()</code> method is called, it has no effect on the
- * line number returned by this method.
- *
- * @return The current line number
- */
- public void pushBack()
- {
- // pushBack may cause the lineno method to return an incorrect value
- // if lineno is called before the next call to nextToken.
- pushedBack = true;
- }
-
- /**
- * This method sets the quote attribute on the specified character.
- *
- * @param c The character to set the quote attribute for, passed as an int.
- */
- public void quoteChar(int ch)
- {
- if (ch >= 0 && ch <= 255)
- quote[ch] = true;
- }
-
- /**
- * This method removes all attributes (whitespace, alphabetic, numeric,
- * quote, and comment) from all characters. It is equivalent to calling
- * <code>ordinaryChars(0x00, 0xFF)</code>.
- *
- * @see ordinaryChars
- */
- public void resetSyntax()
- {
- ordinaryChars(0x00, 0xFF);
- }
-
- /**
- * This method sets a flag that indicates whether or not "C++" language style
- * comments ("//" comments through EOL ) are handled by the parser.
- * If this is <code>true</code> commented out sequences are skipped and
- * ignored by the parser. This defaults to <code>false</code>.
- *
- * @param flag <code>true</code> to recognized and handle "C++" style
- * comments, <code>false</code> otherwise
- */
- public void slashSlashComments(boolean flag)
- {
- slashSlash = flag;
- }
-
- /**
- * This method sets a flag that indicates whether or not "C" language style
- * comments (with nesting not allowed) are handled by the parser.
- * If this is <code>true</code> commented out sequences are skipped and
- * ignored by the parser. This defaults to <code>false</code>.
- *
- * @param flag <code>true</code> to recognized and handle "C" style comments,
- * <code>false</code> otherwise
- */
- public void slashStarComments(boolean flag)
- {
- slashStar = flag;
- }
-
- /**
- * This method returns the current token value as a <code>String</code> in
- * the form "Token[x], line n", where 'n' is the current line numbers and
- * 'x' is determined as follows.
- * <p>
- * <ul>
- * <li>If no token has been read, then 'x' is "NOTHING" and 'n' is 0
- * <li>If <code>ttype</code> is TT_EOF, then 'x' is "EOF"
- * <li>If <code>ttype</code> is TT_EOL, then 'x' is "EOL"
- * <li>If <code>ttype</code> is TT_WORD, then 'x' is <code>sval</code>
- * <li>If <code>ttype</code> is TT_NUMBER, then 'x' is "n=strnval" where
- * 'strnval' is <code>String.valueOf(nval)</code>.
- * <li>If <code>ttype</code> is a quote character, then 'x' is
- * <code>sval</code>
- * <li>For all other cases, 'x' is <code>ttype</code>
- * </ul>
- */
- public String toString()
- {
- String tempstr;
- if (ttype == TT_EOF)
- tempstr = "EOF";
- else if (ttype == TT_EOL)
- tempstr = "EOL";
- else if (ttype == TT_WORD)
- tempstr = sval;
- else if (ttype == TT_NUMBER)
- tempstr = "n=" + nval;
- else if (ttype == TT_NONE)
- tempstr = "NOTHING";
- else // must be an ordinary char.
- tempstr = "\'" + (char) ttype + "\'";
-
- return "Token[" + tempstr + "], line " + lineno();
- }
-
- /**
- * This method sets the whitespace attribute for all charcters in the
- * specified range, range terminators included.
- *
- * @param low The low end of the range of values to set the whitespace
- * attribute for
- * @param high The high end of the range of values to set the whitespace
- * attribute for
- */
- public void whitespaceChars(int low, int hi)
- {
- if (low < 0)
- low = 0;
- if (hi > 255)
- hi = 255;
- for (int i = low; i <= hi; i++)
- whitespace[i] = true;
- }
-
- /**
- * This method sets the alphabetic attribute for all charcters in the
- * specified range, range terminators included.
- *
- * @param low The low end of the range of values to set the alphabetic
- * attribute for
- * @param high The high end of the range of values to set the alphabetic
- * attribute for
- */
- public void wordChars(int low, int hi)
- {
- if (low < 0)
- low = 0;
- if (hi > 255)
- hi = 255;
- for (int i = low; i <= hi; i++)
- alphabetic[i] = true;
- }
-}
diff --git a/libjava/java/io/StringBufferInputStream.java b/libjava/java/io/StringBufferInputStream.java
deleted file mode 100644
index 063e19d3fc7..00000000000
--- a/libjava/java/io/StringBufferInputStream.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date November 11, 1998.
- * @deprecated
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct. Deprecated in JDK 1.1.
- */
-
-public class StringBufferInputStream extends InputStream
-{
- /* The String which is the input to this stream. */
- protected String buffer;
-
- /* Position of the next byte in buffer to be read. */
- protected int pos = 0;
-
- /* The length of the String buffer. */
- protected int count;
-
- public StringBufferInputStream(String s)
- {
- buffer = s;
- count = s.length();
- }
-
- public int available()
- {
- return count - pos;
- }
-
- public int read()
- {
- if (pos >= count)
- return -1; // EOF
-
- return ((int) buffer.charAt(pos++)) & 0xFF;
- }
-
- public int read(byte[] b, int off, int len)
- {
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- if (pos >= count)
- return -1; // EOF
-
- int numRead = Math.min(len, count - pos);
- if (numRead < 0)
- return 0;
-
- buffer.getBytes(pos, pos + numRead, b, off);
- pos += numRead;
- return numRead;
- }
-
- public void reset()
- {
- pos = 0;
- }
-
- public long skip(long n)
- {
- if (n < 0)
- return 0L;
-
- long actualSkip = Math.min(n, count - pos);
- pos += actualSkip;
- return actualSkip;
- }
-}
diff --git a/libjava/java/io/StringReader.java b/libjava/java/io/StringReader.java
deleted file mode 100644
index 60a912975af..00000000000
--- a/libjava/java/io/StringReader.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date October 19, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public class StringReader extends Reader
-{
- /* A String provided by the creator of the stream. */
- private String buf;
-
- /* Position of the next char in buf to be read. */
- private int pos;
-
- /* The currently marked position in the stream. */
- private int markedPos;
-
- /* The index in buf one greater than the last valid character. */
- private int count;
-
- public StringReader(String buffer)
- {
- super();
- buf = buffer;
-
- count = buffer.length();
- markedPos = pos = 0;
- }
-
- public void close()
- {
- synchronized (lock)
- {
- buf = null;
- }
- }
-
- public void mark(int readAheadLimit) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- // readAheadLimit is ignored per Java Class Lib. book, p. 1692.
- markedPos = pos;
- }
- }
-
- public boolean markSupported()
- {
- return true;
- }
-
- public int read() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- if (pos < count)
- return ((int) buf.charAt(pos++)) & 0xFFFF;
- return -1;
- }
- }
-
- public int read(char[] b, int off, int len) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- /* Don't need to check pos value, arraycopy will check it. */
- if (off < 0 || len < 0 || off + len > b.length)
- throw new ArrayIndexOutOfBoundsException();
-
- if (pos >= count)
- return -1;
-
- int lastChar = Math.min(count, pos + len);
- buf.getChars(pos, lastChar, b, off);
- int numChars = lastChar - pos;
- pos = lastChar;
- return numChars;
- }
- }
-
- public boolean ready() // TODO12: throws IOException
- {
- // TODO12: The JCL specifically says this returns true even if the
- // reader has been closed, whereas the online 1.2 doc specifically
- // says to throw an IOException if closed.
- return true;
- }
-
- public void reset() throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- pos = markedPos;
- }
- }
-
- public long skip(long n) throws IOException
- {
- synchronized (lock)
- {
- if (buf == null)
- throw new IOException();
-
- // Even though the var numChars is a long, in reality it can never
- // be larger than an int since the result of subtracting 2 positive
- // ints will always fit in an int. Since we have to return a long
- // anyway, numChars might as well just be a long.
- long numChars = Math.min((long) (count - pos), n < 0 ? 0L : n);
- pos += numChars;
- return numChars;
- }
- }
-}
diff --git a/libjava/java/io/StringWriter.java b/libjava/java/io/StringWriter.java
deleted file mode 100644
index 88b0a6ecd44..00000000000
--- a/libjava/java/io/StringWriter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-// StringWriter.java - StringBuffer output stream
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class StringWriter extends Writer
-{
- public void close ()
- {
- // JCL says this does nothing. This seems to violate the Writer
- // contract, in that other methods should still throw and
- // IOException after a close. Still, we just follow JCL.
- }
-
- public void flush ()
- {
- }
-
- public StringBuffer getBuffer ()
- {
- return buffer;
- }
-
- public StringWriter ()
- {
- this (16);
- }
-
- protected StringWriter (int size)
- {
- super ();
- buffer = new StringBuffer (size);
- lock = buffer;
- }
-
- public String toString ()
- {
- return buffer.toString();
- }
-
- public void write (int oneChar)
- {
- buffer.append((char) oneChar);
- }
-
- public void write (char[] chars, int offset, int len)
- {
- buffer.append(chars, offset, len);
- }
-
- public void write (String str)
- {
- buffer.append(str);
- }
-
- public void write (String str, int offset, int len)
- {
- buffer.append(str.substring(offset, offset + len));
- }
-
- // The string buffer.
- private StringBuffer buffer;
-}
diff --git a/libjava/java/io/SyncFailedException.java b/libjava/java/io/SyncFailedException.java
deleted file mode 100644
index 964d24a220b..00000000000
--- a/libjava/java/io/SyncFailedException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// SyncFailedException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class SyncFailedException extends IOException
-{
- public SyncFailedException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/UTFDataFormatException.java b/libjava/java/io/UTFDataFormatException.java
deleted file mode 100644
index 16445cdcfe5..00000000000
--- a/libjava/java/io/UTFDataFormatException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// UTFDataFormatException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Complete to 1.1.
- */
-
-public class UTFDataFormatException extends IOException
-{
- public UTFDataFormatException ()
- {
- super ();
- }
-
- public UTFDataFormatException (String s)
- {
- super (s);
- }
-}
diff --git a/libjava/java/io/UnsupportedEncodingException.java b/libjava/java/io/UnsupportedEncodingException.java
deleted file mode 100644
index 8ab868eb787..00000000000
--- a/libjava/java/io/UnsupportedEncodingException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 17, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class UnsupportedEncodingException extends IOException
-{
- public UnsupportedEncodingException ()
- {
- super();
- }
-
- public UnsupportedEncodingException (String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/io/WriteAbortedException.java b/libjava/java/io/WriteAbortedException.java
deleted file mode 100644
index 0645ff79713..00000000000
--- a/libjava/java/io/WriteAbortedException.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* WriteAbortedException.java -- An exception occured while writing a
- serialization stream
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.io;
-
-/**
- * This exception is thrown when one of the other ObjectStreamException
- * subclasses was thrown during a serialization write.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class WriteAbortedException extends ObjectStreamException
-{
-
-/*
- * Instance Variables
- */
-
-/**
- * The detailed exception that caused this exception to be thrown
- */
-public Exception detail;
-private transient String message;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * Create a new WriteAbortedException with an eof parameter indicating
- * the detailed Exception that caused this exception to be thrown.
- *
- * @param detail The exception that caused this exception to be thrown
- */
-public
-WriteAbortedException(String msg, Exception detail)
-{
- this.message = msg;
- this.detail = detail;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This method returns a message indicating what went wrong, including
- * the message text from the initial exception that caused this one to
- * be thrown
- */
-public String
-getMessage()
-{
- return(message + ": " + detail.getMessage());
-}
-
-} // class WriteAbortedException
-
diff --git a/libjava/java/io/Writer.java b/libjava/java/io/Writer.java
deleted file mode 100644
index 96fa0fb2d0d..00000000000
--- a/libjava/java/io/Writer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.io;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * However, write(String, int, int) should be made a native method.
- */
-
-public abstract class Writer
-{
- protected Object lock;
-
- protected Writer ()
- {
- lock = this;
- }
-
- protected Writer (Object lock)
- {
- this.lock = lock;
- }
-
- abstract public void close() throws IOException;
-
- abstract public void flush() throws IOException;
-
- abstract public void write(char[] buf, int offset, int count)
- throws IOException;
-
- public void write(char[] buf) throws IOException
- {
- write(buf, 0, buf.length);
- }
-
- public void write(int ch) throws IOException
- {
- char[] buf = new char[1];
- buf[0] = (char) ch;
- write(buf, 0, 1);
- }
-
- // FIXME - re-write using native code to not require copied buffer.
- public void write (String str, int offset, int count) throws IOException
- {
- char[] buf = new char[count];
- str.getChars(offset, offset + count, buf, 0);
- write(buf, 0, count);
- }
-
- public void write (String str) throws IOException
- {
- write(str, 0, str.length());
- }
-
-}
diff --git a/libjava/java/io/natFile.cc b/libjava/java/io/natFile.cc
deleted file mode 100644
index 2b0da1bebf4..00000000000
--- a/libjava/java/io/natFile.cc
+++ /dev/null
@@ -1,268 +0,0 @@
-// natFile.cc - Native part of File class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <errno.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-#include <string.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/File.h>
-#include <java/io/IOException.h>
-#include <java/util/Vector.h>
-#include <java/lang/String.h>
-#include <java/io/FilenameFilter.h>
-#include <java/lang/System.h>
-
-jboolean
-java::io::File::access (jstring canon, jint query)
-{
- if (! canon)
- return false;
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
- JvAssert (query == READ || query == WRITE || query == EXISTS);
-#ifdef HAVE_ACCESS
- int mode;
- if (query == READ)
- mode = R_OK;
- else if (query == WRITE)
- mode = W_OK;
- else
- mode = F_OK;
- return ::access (buf, mode) == 0;
-#else
- return false;
-#endif
-}
-
-jboolean
-java::io::File::stat (jstring canon, jint query)
-{
- if (! canon)
- return false;
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
-#ifdef HAVE_STAT
- struct stat sb;
- if (::stat (buf, &sb))
- return false;
-
- JvAssert (query == DIRECTORY || query == ISFILE);
- jboolean r = S_ISDIR (sb.st_mode);
- return query == DIRECTORY ? r : ! r;
-#else
- return false;
-#endif
-}
-
-jlong
-java::io::File::attr (jstring canon, jint query)
-{
- if (! canon)
- return false;
-
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
-#ifdef HAVE_STAT
- struct stat sb;
- // FIXME: not sure about return value here.
- if (::stat (buf, &sb))
- return 0;
-
- JvAssert (query == MODIFIED || query == LENGTH);
- // FIXME: time computation is very POSIX-specific -- POSIX and Java
- // have the same Epoch.
- return query == MODIFIED ? (jlong)sb.st_mtime * 1000 : sb.st_size;
-#else
- // There's no good choice here.
- return 23;
-#endif
-}
-
-jstring
-java::io::File::getCanonicalPath (void)
-{
- char buf[MAXPATHLEN], buf2[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
-#ifdef HAVE_REALPATH
- if (realpath (buf, buf2) == NULL)
- _Jv_Throw (new IOException (JvNewStringLatin1 (strerror (errno))));
-
- // FIXME: what encoding to assume for file names? This affects many
- // calls.
- return JvNewStringUTF (buf2);
-#else
- return JvNewStringUTF (buf);
-#endif
-}
-
-jboolean
-java::io::File::isAbsolute (void)
-{
- // FIXME: cpp define name.
- // FIXME: cygwin.
-#ifdef WIN32
- if (path->charAt(0) == '/' || path->charAt(0) == '\\')
- return true;
- if (path->length() < 3)
- return false;
- // Hard-code A-Za-z because Windows (I think) can't use non-ASCII
- // letters as drive names.
- if ((path->charAt(0) < 'a' || path->charAt(0) > 'z')
- && (path->charAt(0) < 'A' || path->charAt(0) > 'Z'))
- return false;
- return (path->charAt(1) == ':'
- && (path->charAt(2) == '/' || path->charAt(2) == '\\'));
-#else
- return path->charAt(0) == '/';
-#endif
-}
-
-#ifdef HAVE_DIRENT_H
-#if defined(__JV_POSIX_THREADS__) && defined(HAVE_READDIR_R)
-
-static struct dirent *
-get_entry (DIR *dir, struct dirent *e)
-{
- struct dirent *r;
- if (readdir_r (dir, e, &r) || r == NULL)
- return NULL;
- return e;
-}
-
-#else /* defined(__JV_POSIX_THREADS__) && defined(HAVE_READDIR_R) */
-
-static struct dirent *
-get_entry (DIR *dir, struct dirent *)
-{
- return readdir (dir);
-}
-
-#endif /* defined(__JV_POSIX_THREADS__) && defined(HAVE_READDIR_R) */
-#endif /* HAVE_DIRENT_H */
-
-jstringArray
-java::io::File::performList (jstring canon, FilenameFilter *filter)
-{
- if (! canon)
- return NULL;
-
-#ifdef HAVE_DIRENT_H
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- DIR *dir = opendir (buf);
- if (! dir)
- return NULL;
-
- java::util::Vector *vec = new java::util::Vector ();
- struct dirent *d, d2;
- while ((d = get_entry (dir, &d2)) != NULL)
- {
- if (! strcmp (d->d_name, ".") || ! strcmp (d->d_name, ".."))
- continue;
-
- jstring name = JvNewStringUTF (d->d_name);
- if (filter && ! filter->accept(this, name))
- continue;
-
- vec->addElement(name);
- }
-
- closedir (dir);
-
- jobjectArray ret = JvNewObjectArray (vec->size(), canon->getClass(),
- NULL);
- vec->copyInto(ret);
- return reinterpret_cast<jstringArray> (ret);
-#else /* HAVE_DIRENT_H */
- return NULL;
-#endif /* HAVE_DIRENT_H */
-}
-
-jboolean
-java::io::File::performMkdir (void)
-{
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
-#ifdef HAVE_MKDIR
- return ::mkdir (buf, 0755) == 0;
-#else
- return false;
-#endif
-}
-
-jboolean
-java::io::File::performRenameTo (File *dest)
-{
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
- char buf2[MAXPATHLEN];
- total = JvGetStringUTFRegion (dest->path, 0, dest->path->length(), buf2);
- // FIXME?
- buf2[total] = '\0';
-
-#ifdef HAVE_RENAME
- return ::rename (buf, buf2) == 0;
-#else
- return false;
-#endif
-}
-
-jboolean
-java::io::File::performDelete (jstring canon)
-{
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
-#ifdef HAVE_UNLINK
-#ifdef HAVE_RMDIR
- if (! ::rmdir (buf))
- return true;
-#endif // HAVE_RMDIR
- if (errno == ENOTDIR)
- return ::unlink (buf) == 0;
-#endif // HAVE_UNLINK
- return false;
-}
diff --git a/libjava/java/io/natFileDescriptorEcos.cc b/libjava/java/io/natFileDescriptorEcos.cc
deleted file mode 100644
index b8c1a8d368e..00000000000
--- a/libjava/java/io/natFileDescriptorEcos.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-// natFileDescriptor.cc - Native part of FileDescriptor class.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/SyncFailedException.h>
-#include <java/io/IOException.h>
-#include <java/io/EOFException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/String.h>
-#include <java/io/FileNotFoundException.h>
-
-extern "C" void diag_write_char (char c);
-
-static void
-diag_write (char *data, int len)
-{
- while (len > 0)
- {
- diag_write_char (*data++);
- len--;
- }
-}
-
-#define NO_FSYNC_MESSAGE "sync unsupported"
-
-jboolean
-java::io::FileDescriptor::valid (void)
-{
- return true;
-}
-
-void
-java::io::FileDescriptor::sync (void)
-{
- // Some files don't support fsync. We don't bother reporting these
- // as errors.
-#ifdef HAVE_FSYNC
-#else
- JvThrow (new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE)));
-#endif
-}
-
-jint
-java::io::FileDescriptor::open (jstring path, jint jflags)
-{
- return fd;
-}
-
-void
-java::io::FileDescriptor::write (jint b)
-{
- char d = (char) b;
- ::diag_write (&d, 1);
-}
-
-void
-java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
-{
- if (! b)
- JvThrow (new java::lang::NullPointerException);
- if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException);
- char *bytes = (char *)elements (b) + offset;
- ::diag_write (bytes, len);
-}
-
-void
-java::io::FileDescriptor::close (void)
-{
-}
-
-jint
-java::io::FileDescriptor::seek (jlong pos, jint whence)
-{
- JvAssert (whence == SET || whence == CUR);
-
- jlong len = length ();
- jlong here = getFilePointer ();
-
- if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
- JvThrow (new EOFException);
-
- return 0;
-}
-
-jlong
-java::io::FileDescriptor::length (void)
-{
- return 0;
-}
-
-jlong
-java::io::FileDescriptor::getFilePointer (void)
-{
- return 0;
-}
-
-jint
-java::io::FileDescriptor::read (void)
-{
- return 0;
-}
-
-jint
-java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
-{
- return 0;
-}
-
-jint
-java::io::FileDescriptor::available (void)
-{
- return 0;
-}
diff --git a/libjava/java/io/natFileDescriptorPosix.cc b/libjava/java/io/natFileDescriptorPosix.cc
deleted file mode 100644
index 059eeb96564..00000000000
--- a/libjava/java/io/natFileDescriptorPosix.cc
+++ /dev/null
@@ -1,318 +0,0 @@
-// natFileDescriptor.cc - Native part of FileDescriptor class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include "posix.h"
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <fcntl.h>
-
-#ifdef HAVE_SYS_IOCTL_H
-#define BSD_COMP /* Get FIONREAD on Solaris2. */
-#include <sys/ioctl.h>
-#endif
-
-// Pick up FIONREAD on Solaris 2.5.
-#ifdef HAVE_SYS_FILIO_H
-#include <sys/filio.h>
-#endif
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/SyncFailedException.h>
-#include <java/io/IOException.h>
-#include <java/io/InterruptedIOException.h>
-#include <java/io/EOFException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/System.h>
-#include <java/lang/String.h>
-#include <java/lang/Thread.h>
-#include <java/io/FileNotFoundException.h>
-
-#define NO_FSYNC_MESSAGE "sync unsupported"
-
-jboolean
-java::io::FileDescriptor::valid (void)
-{
- struct stat sb;
- return ::fstat (fd, &sb) == 0;
-}
-
-void
-java::io::FileDescriptor::sync (void)
-{
- // Some files don't support fsync. We don't bother reporting these
- // as errors.
-#ifdef HAVE_FSYNC
- if (::fsync (fd) && errno != EROFS && errno != EINVAL)
- JvThrow (new SyncFailedException (JvNewStringLatin1 (strerror (errno))));
-#else
- JvThrow (new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE)));
-#endif
-}
-
-jint
-java::io::FileDescriptor::open (jstring path, jint jflags)
-{
- // FIXME: eww.
- char buf[MAXPATHLEN];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
- int flags = 0;
-#ifdef O_BINARY
- flags |= O_BINARY;
-#endif
-
- JvAssert ((jflags & READ) || (jflags & WRITE));
- int mode = 0666;
- if ((jflags & READ) && (jflags & WRITE))
- flags |= O_RDWR;
- else if ((jflags & READ))
- flags |= O_RDONLY;
- else
- {
- flags |= O_WRONLY | O_CREAT;
- if ((jflags & APPEND))
- flags |= O_APPEND;
- else
- flags |= O_TRUNC;
-
- if ((jflags & EXCL))
- {
- flags |= O_EXCL;
- // In this case we are making a temp file.
- mode = 0600;
- }
- }
-
- int fd = ::open (buf, flags, mode);
- if (fd == -1 && errno == EMFILE)
- {
- // Because finalize () calls close () we might be able to continue.
- java::lang::System::gc ();
- java::lang::System::runFinalization ();
- fd = ::open (buf, flags, mode);
- }
- if (fd == -1)
- {
- char msg[MAXPATHLEN + 200];
- sprintf (msg, "%s: %s", buf, strerror (errno));
- JvThrow (new FileNotFoundException (JvNewStringLatin1 (msg)));
- }
- return fd;
-}
-
-void
-java::io::FileDescriptor::write (jint b)
-{
- jbyte d = (jbyte) b;
- int r = ::write (fd, &d, 1);
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe
- = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
- iioe->bytesTransferred = r == -1 ? 0 : r;
- JvThrow (iioe);
- }
- else if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- // FIXME: loop if r != 1.
-}
-
-void
-java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
-{
- if (! b)
- JvThrow (new java::lang::NullPointerException);
- if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException);
- jbyte *bytes = elements (b) + offset;
- int r = ::write (fd, bytes, len);
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe
- = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
- iioe->bytesTransferred = r == -1 ? 0 : r;
- JvThrow (iioe);
- }
- else if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- // FIXME: loop if r != len.
-}
-
-void
-java::io::FileDescriptor::close (void)
-{
- jint save = fd;
- fd = -1;
- if (::close (save))
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
-}
-
-jint
-java::io::FileDescriptor::seek (jlong pos, jint whence)
-{
- JvAssert (whence == SET || whence == CUR);
-
- jlong len = length ();
- jlong here = getFilePointer ();
-
- if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
- JvThrow (new EOFException);
-
- off_t r = ::lseek (fd, (off_t) pos, whence == SET ? SEEK_SET : SEEK_CUR);
- if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- return r;
-}
-
-jlong
-java::io::FileDescriptor::length (void)
-{
- struct stat sb;
- if (::fstat (fd, &sb))
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- return sb.st_size;
-}
-
-jlong
-java::io::FileDescriptor::getFilePointer (void)
-{
- off_t r = ::lseek (fd, 0, SEEK_CUR);
- if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- return r;
-}
-
-jint
-java::io::FileDescriptor::read (void)
-{
- jbyte b;
- int r = ::read (fd, &b, 1);
- if (r == 0)
- return -1;
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe
- = new InterruptedIOException (JvNewStringLatin1 ("read interrupted"));
- iioe->bytesTransferred = r == -1 ? 0 : r;
- JvThrow (iioe);
- }
- else if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- return b & 0xFF;
-}
-
-jint
-java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
-{
- if (! buffer)
- JvThrow (new java::lang::NullPointerException);
- jsize bsize = JvGetArrayLength (buffer);
- if (offset < 0 || count < 0 || offset + count > bsize)
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException);
- jbyte *bytes = elements (buffer) + offset;
- int r = ::read (fd, bytes, count);
- if (r == 0)
- return -1;
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe
- = new InterruptedIOException (JvNewStringLatin1 ("read interrupted"));
- iioe->bytesTransferred = r == -1 ? 0 : r;
- JvThrow (iioe);
- }
- else if (r == -1)
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- return r;
-}
-
-jint
-java::io::FileDescriptor::available (void)
-{
-#if defined (FIONREAD) || defined (HAVE_SELECT) || defined (HAVE_FSTAT)
- long num = 0;
- int r = 0;
- bool num_set = false;
-
-#if defined (FIONREAD)
- r = ::ioctl (fd, FIONREAD, &num);
- if (r == -1 && errno == ENOTTY)
- {
- // If the ioctl doesn't work, we don't care.
- r = 0;
- num = 0;
- }
- else
- num_set = true;
-#elif defined (HAVE_SELECT)
- if (fd < 0)
- {
- errno = EBADF;
- r = -1;
- }
-#endif
-
- if (r == -1)
- {
- posix_error:
- JvThrow (new IOException (JvNewStringLatin1 (strerror (errno))));
- }
-
- // If we didn't get anything, and we have fstat, then see if see if
- // we're reading a regular file. On many systems, FIONREAD does not
- // work on regular files; select() likewise returns a useless
- // result. This is run incorrectly when FIONREAD does work on
- // regular files and we are at the end of the file. However, this
- // case probably isn't very important.
-#if defined (HAVE_FSTAT)
- if (! num_set)
- {
- struct stat sb;
- off_t where = 0;
- if (fstat (fd, &sb) != -1
- && S_ISREG (sb.st_mode)
- && (where = lseek (fd, SEEK_CUR, 0)) != (off_t) -1)
- {
- num = (long) (sb.st_size - where);
- num_set = true;
- }
- }
-#endif /* HAVE_FSTAT */
-
-#if defined (HAVE_SELECT)
- if (! num_set)
- {
- fd_set rd;
- FD_ZERO (&rd);
- FD_SET (fd, &rd);
- struct timeval tv;
- tv.tv_sec = 0;
- tv.tv_usec = 0;
- r = _Jv_select (fd + 1, &rd, NULL, NULL, &tv);
- if (r == -1)
- goto posix_error;
- num = r == 0 ? 0 : 1;
- }
-#endif /* HAVE_SELECT */
-
- return (jint) num;
-#else
- JvThrow (new IOException (JvNewStringLatin1 ("unimplemented")));
-#endif
-}
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
deleted file mode 100644
index 0bfd924abf0..00000000000
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ /dev/null
@@ -1,250 +0,0 @@
-// natFileDescriptorWin32.cc - Native part of FileDescriptor class.
-
-/* Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// FIXME: In order to support interrupting of IO operations, we
-// need to change to use the windows asynchronous IO functions
-
-#include <config.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#include <windows.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/SyncFailedException.h>
-#include <java/io/IOException.h>
-#include <java/io/InterruptedIOException.h>
-#include <java/io/EOFException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/String.h>
-#include <java/lang/Thread.h>
-#include <java/io/FileNotFoundException.h>
-
-static char *
-winerr (void)
-{
- static LPVOID last = NULL;
- LPVOID old = NULL;
-
- if (last)
- old = last;
-
- FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &last,
- 0,
- NULL);
-
- if (old)
- LocalFree (old);
-
- return (char *)last;
-}
-
-jboolean
-java::io::FileDescriptor::valid (void) {
- BY_HANDLE_FILE_INFORMATION info;
- return GetFileInformationByHandle ((HANDLE)fd, &info) != 0;
-}
-
-void
-java::io::FileDescriptor::sync (void) {
- if (! FlushFileBuffers ((HANDLE)fd))
- JvThrow (new SyncFailedException (JvNewStringLatin1 (winerr ())));
-}
-
-jint
-java::io::FileDescriptor::open (jstring path, jint jflags) {
-
- HANDLE handle = NULL;
- DWORD access = 0;
- DWORD share = FILE_SHARE_READ;
- DWORD create = OPEN_EXISTING;
- char buf[MAX_PATH] = "";
-
- jsize total = JvGetStringUTFRegion(path, 0, path->length(), buf);
- buf[total] = '\0';
-
- JvAssert((jflags & READ) || (jflags & WRITE));
-
- if ((jflags & READ) && (jflags & WRITE))
- {
- access = GENERIC_READ | GENERIC_WRITE;
- share = 0;
- if (jflags & APPEND)
- create = OPEN_ALWAYS;
- else
- create = CREATE_ALWAYS;
- }
- else if(jflags & READ)
- access = GENERIC_READ;
- else
- {
- access = GENERIC_WRITE;
- share = 0;
- if (jflags & APPEND)
- create = OPEN_ALWAYS;
- else
- create = CREATE_ALWAYS;
- }
-
- handle = CreateFile(buf, access, share, NULL, create, 0, NULL);
-
- if (handle == INVALID_HANDLE_VALUE)
- {
- char msg[MAX_PATH + 1000];
- sprintf (msg, "%s: %s", buf, winerr ());
- JvThrow (new FileNotFoundException (JvNewStringLatin1 (msg)));
- }
-
- return (jint)handle;
-}
-
-void
-java::io::FileDescriptor::write (jint b)
-{
- DWORD bytesWritten;
- jbyte buf = (jbyte)b;
-
- if (WriteFile ((HANDLE)fd, &buf, 1, &bytesWritten, NULL))
- {
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
- iioe->bytesTransferred = bytesWritten;
- JvThrow (iioe);
- }
- if (bytesWritten != 1)
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
- }
- else
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
- // FIXME: loop until bytesWritten == 1
-}
-
-void
-java::io::FileDescriptor::write(jbyteArray b, jint offset, jint len)
-{
- if (! b)
- JvThrow (new java::lang::NullPointerException);
- if(offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException);
-
- jbyte *buf = elements (b) + offset;
- DWORD bytesWritten;
- if (WriteFile ((HANDLE)fd, buf, len, &bytesWritten, NULL))
- {
- if (java::lang::Thread::interrupted())
- {
- InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
- iioe->bytesTransferred = bytesWritten;
- JvThrow (iioe);
- }
- }
- else
- JvThrow(new IOException (JvNewStringLatin1 (winerr ())));
- // FIXME: loop until bytesWritten == len
-}
-
-void
-java::io::FileDescriptor::close (void)
-{
- HANDLE save = (HANDLE)fd;
- fd = (jint)INVALID_HANDLE_VALUE;
- if (! CloseHandle (save))
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
-}
-
-jint
-java::io::FileDescriptor::seek (jlong pos, jint whence)
-{
- JvAssert (whence == SET || whence == CUR);
-
- jlong len = length();
- jlong here = getFilePointer();
-
- if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
- JvThrow (new EOFException);
-
- LONG high = pos >> 32;
- DWORD low = SetFilePointer ((HANDLE)fd, (DWORD)(0xffffffff & pos), &high, whence == SET ? FILE_BEGIN : FILE_CURRENT);
- if ((low == 0xffffffff) && (GetLastError () != NO_ERROR))
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
- return low;
-}
-
-jlong
-java::io::FileDescriptor::getFilePointer(void)
-{
- LONG high = 0;
- DWORD low = SetFilePointer ((HANDLE)fd, 0, &high, FILE_CURRENT);
- if ((low == 0xffffffff) && (GetLastError() != NO_ERROR))
- JvThrow(new IOException (JvNewStringLatin1 (winerr ())));
- return (((jlong)high) << 32L) | (jlong)low;
-}
-
-jlong
-java::io::FileDescriptor::length(void)
-{
- DWORD high;
- DWORD low;
-
- low = GetFileSize ((HANDLE)fd, &high);
- // FIXME: Error checking
- return (((jlong)high) << 32L) | (jlong)low;
-}
-
-jint
-java::io::FileDescriptor::read(void)
-{
- CHAR buf;
- DWORD read;
-
- if (! ReadFile ((HANDLE)fd, &buf, 1, &read, NULL))
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
- if (! read)
- return -1;
- else
- return (jint)(buf & 0xff);
-}
-
-jint
-java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
-{
- if (! buffer)
- JvThrow(new java::lang::NullPointerException);
-
- jsize bsize = JvGetArrayLength (buffer);
- if (offset < 0 || count < 0 || offset + count > bsize)
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException);
-
- jbyte *bytes = elements (buffer) + offset;
-
- DWORD read;
- if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL))
- JvThrow (new IOException (JvNewStringLatin1 (winerr ())));
-
- return (jint)read;
-}
-
-jint
-java::io::FileDescriptor::available(void)
-{
- // FIXME:
- return length() - getFilePointer();
-}
diff --git a/libjava/java/io/natFileWin32.cc b/libjava/java/io/natFileWin32.cc
deleted file mode 100644
index a56845a7134..00000000000
--- a/libjava/java/io/natFileWin32.cc
+++ /dev/null
@@ -1,210 +0,0 @@
-// natFileWin32.cc - Native part of File class.
-
-/* Copyright (C) 1998, 1999 Red Hat, Inc.
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#include <windows.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/File.h>
-#include <java/io/IOException.h>
-#include <java/util/Vector.h>
-#include <java/lang/String.h>
-#include <java/io/FilenameFilter.h>
-#include <java/lang/System.h>
-
-jboolean
-java::io::File::access (jstring canon, jint query)
-{
- if (! canon)
- return false;
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- JvAssert (query == READ || query == WRITE || query == EXISTS);
-
- // FIXME: Is it possible to differentiate between existing and reading?
- // If the file exists but cannot be read because of the secuirty attributes
- // on an NTFS disk this wont work (it reports it can be read but cant)
- // Could we use something from the security API?
- DWORD attributes = GetFileAttributes (buf);
- if ((query == EXISTS) || (query == READ))
- return (attributes == 0xffffffff) ? false : true;
- else
- return ((attributes != 0xffffffff) && ((attributes & FILE_ATTRIBUTE_READONLY) == 0)) ? true : false;
-}
-
-jboolean
-java::io::File::stat (jstring canon, jint query)
-{
- if (! canon)
- return false;
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- JvAssert (query == DIRECTORY || query == ISFILE);
-
- DWORD attributes = GetFileAttributes (buf);
- if (attributes == 0xffffffff)
- return false;
-
- if (query == DIRECTORY)
- return attributes & FILE_ATTRIBUTE_DIRECTORY ? true : false;
- else
- return attributes & FILE_ATTRIBUTE_DIRECTORY ? false : true;
-}
-
-jlong
-java::io::File::attr (jstring canon, jint query)
-{
- if (! canon)
- return false;
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- JvAssert (query == MODIFIED || query == LENGTH);
-
- WIN32_FILE_ATTRIBUTE_DATA info;
- if (! GetFileAttributesEx(buf, GetFileExInfoStandard, &info))
- return 0;
-
- if (query == LENGTH)
- return ((long long)info.nFileSizeHigh) << 32 | (unsigned long long)info.nFileSizeLow;
- else {
- // FIXME? This is somewhat compiler dependant (the LL constant suffix)
- // The file time as return by windows is the number of 100-nanosecond intervals since January 1, 1601
- return (((((long long)info.ftLastWriteTime.dwHighDateTime) << 32) | ((unsigned long long)info.ftLastWriteTime.dwLowDateTime)) - 116444736000000000LL) / 10000LL;
- }
-}
-
-jstring
-java::io::File::getCanonicalPath (void)
-{
- char buf[MAX_PATH], buf2[MAX_PATH];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- LPTSTR unused;
- if(!GetFullPathName(buf, MAX_PATH, buf2, &unused))
- _Jv_Throw (new IOException (JvNewStringLatin1 ("GetFullPathName failed")));
-
- // FIXME: what encoding to assume for file names? This affects many
- // calls.
- return JvNewStringUTF(buf2);
-}
-
-jboolean
-java::io::File::isAbsolute (void)
-{
- if (path->charAt(0) == '/' || path->charAt(0) == '\\')
- return true;
- if (path->length() < 3)
- return false;
- // Hard-code A-Za-z because Windows (I think) can't use non-ASCII
- // letters as drive names.
- if ((path->charAt(0) < 'a' || path->charAt(0) > 'z')
- && (path->charAt(0) < 'A' || path->charAt(0) > 'Z'))
- return false;
- return (path->charAt(1) == ':'
- && (path->charAt(2) == '/' || path->charAt(2) == '\\'));
-}
-
-jstringArray
-java::io::File::performList (jstring canon, FilenameFilter *filter)
-{
- if (! canon)
- return NULL;
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- strcpy(&buf[total], "\\*.*");
-
- WIN32_FIND_DATA data;
- HANDLE handle = FindFirstFile (buf, &data);
- if (handle == INVALID_HANDLE_VALUE)
- return NULL;
-
- java::util::Vector *vec = new java::util::Vector ();
-
- do
- {
- if (strcmp (data.cFileName, ".") && strcmp (data.cFileName, ".."))
- {
- jstring name = JvNewStringUTF (data.cFileName);
- if (! filter || (filter && filter->accept(this, name)))
- vec->addElement (name);
- }
- }
- while (FindNextFile (handle, &data));
-
- if (GetLastError () != ERROR_NO_MORE_FILES)
- return NULL;
-
- FindClose (handle);
-
- jobjectArray ret = JvNewObjectArray (vec->size(), canon->getClass(), NULL);
- vec->copyInto (ret);
- return reinterpret_cast<jstringArray> (ret);
-}
-
-jboolean
-java::io::File::performMkdir (void)
-{
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion(path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- return (CreateDirectory(buf, NULL)) ? true : false;
-}
-
-jboolean
-java::io::File::performRenameTo (File *dest)
-{
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion(path, 0, path->length(), buf);
- // FIXME?
- buf[total] = '\0';
- char buf2[MAX_PATH];
- total = JvGetStringUTFRegion(dest->path, 0, dest->path->length(), buf2);
- // FIXME?
- buf2[total] = '\0';
-
- return (MoveFile(buf, buf2)) ? true : false;
-}
-
-jboolean
-java::io::File::performDelete (jstring canon)
-{
- char buf[MAX_PATH];
- jsize total = JvGetStringUTFRegion(canon, 0, canon->length(), buf);
- // FIXME?
- buf[total] = '\0';
-
- DWORD attributes = GetFileAttributes (buf);
- if (attributes == 0xffffffff)
- return false;
-
- if (attributes & FILE_ATTRIBUTE_DIRECTORY)
- return (RemoveDirectory (buf)) ? true : false;
- else
- return (DeleteFile (buf)) ? true : false;
-}
diff --git a/libjava/java/io/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc
deleted file mode 100644
index b7a8dcbc338..00000000000
--- a/libjava/java/io/natObjectInputStream.cc
+++ /dev/null
@@ -1,78 +0,0 @@
-// natObjectInputStream.cc - Native part of ObjectInputStream class.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This ObjectInputStream is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/io/ObjectInputStream$GetField.h>
-#include <java/io/ObjectInputStream.h>
-#include <java/io/IOException.h>
-#include <java/lang/Class.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/reflect/Method.h>
-
-jobject
-java::io::ObjectInputStream::allocateObject (jclass klass)
-{
- jobject obj = NULL;
- using namespace java::lang::reflect;
-
- try
- {
- JvAssert (klass && ! klass->isArray ());
- if (klass->isInterface() || Modifier::isAbstract(klass->getModifiers()))
- obj = NULL;
- else
- {
- // FIXME: will this work for String?
- obj = JvAllocObject (klass);
- }
- }
- catch (jthrowable t)
- {
- return NULL;
- }
-
- return obj;
-}
-
-
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-
-void
-java::io::ObjectInputStream::callConstructor (jclass klass, jobject obj)
-{
- jstring init_name = JvNewStringLatin1 ("<init>");
- JArray<jclass> *arg_types
- = (JArray<jclass> *) JvNewObjectArray (0, &ClassClass, NULL);
- JArray<jobject> *args
- = (JArray<jobject> *) JvNewObjectArray (0, &ObjectClass, NULL);
- java::lang::reflect::Method *m = klass->getPrivateMethod (init_name, arg_types);
- m->invoke (obj, args);
-}
-
-java::lang::reflect::Field *
-java::io::ObjectInputStream::getField (jclass klass, jstring name)
-{
- return klass->getPrivateField (name);
-}
-
-java::lang::reflect::Method *
-java::io::ObjectInputStream::getMethod (jclass klass, jstring name,
- JArray<jclass> *arg_types)
-{
- return klass->getPrivateMethod (name, arg_types);
-}
-
diff --git a/libjava/java/io/natObjectOutputStream.cc b/libjava/java/io/natObjectOutputStream.cc
deleted file mode 100644
index 45ab7537fc3..00000000000
--- a/libjava/java/io/natObjectOutputStream.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// natObjectOutputStream.cc - Native part of ObjectOutputStream class.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This ObjectOutputStream is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the ObjectOutputStream "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/ObjectOutputStream$PutField.h>
-#include <java/io/ObjectOutputStream.h>
-#include <java/io/IOException.h>
-#include <java/lang/Class.h>
-
-
-java::lang::reflect::Field *
-java::io::ObjectOutputStream::getField (jclass klass, jstring name)
-{
- return klass->getPrivateField (name);
-}
-
-java::lang::reflect::Method *
-java::io::ObjectOutputStream::getMethod (jclass klass, jstring name,
- JArray<jclass> *arg_types)
-{
- return klass->getPrivateMethod (name, arg_types);
-}
-
diff --git a/libjava/java/lang/AbstractMethodError.java b/libjava/java/lang/AbstractMethodError.java
deleted file mode 100644
index 782e595a9ba..00000000000
--- a/libjava/java/lang/AbstractMethodError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// AbstractMethodError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class AbstractMethodError extends IncompatibleClassChangeError
-{
- public AbstractMethodError ()
- {
- super ();
- }
-
- public AbstractMethodError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/ArithmeticException.java b/libjava/java/lang/ArithmeticException.java
deleted file mode 100644
index 15278e06a9f..00000000000
--- a/libjava/java/lang/ArithmeticException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ArithmeticException extends RuntimeException
-{
- public ArithmeticException()
- {
- super();
- }
-
- public ArithmeticException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/ArrayIndexOutOfBoundsException.java b/libjava/java/lang/ArrayIndexOutOfBoundsException.java
deleted file mode 100644
index 4b912c22007..00000000000
--- a/libjava/java/lang/ArrayIndexOutOfBoundsException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException
-{
- public ArrayIndexOutOfBoundsException()
- {
- super();
- }
-
- public ArrayIndexOutOfBoundsException(int index)
- {
- this("Array index out of range: " + index);
- }
-
- public ArrayIndexOutOfBoundsException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/ArrayStoreException.java b/libjava/java/lang/ArrayStoreException.java
deleted file mode 100644
index 720308e5acf..00000000000
--- a/libjava/java/lang/ArrayStoreException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ArrayStoreException extends RuntimeException
-{
- public ArrayStoreException()
- {
- super();
- }
-
- public ArrayStoreException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/Boolean.java b/libjava/java/lang/Boolean.java
deleted file mode 100644
index 027fd24da83..00000000000
--- a/libjava/java/lang/Boolean.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.Serializable;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 3, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class Boolean extends Object implements Serializable
-{
- public static final Boolean FALSE = new Boolean(false);
- public static final Boolean TRUE = new Boolean(true);
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = boolean.class;
-
- /* The boolean value of the instance. */
- private boolean value;
-
- private static final long serialVersionUID = -3665804199014368530L;
-
- public Boolean(boolean boolVal)
- {
- value = boolVal;
- }
-
- public Boolean(String strVal)
- {
- value = (strVal == null ? false : strVal.equalsIgnoreCase("true"));
- }
-
- public boolean booleanValue()
- {
- return value;
- }
-
- public boolean equals(Object obj)
- {
- /* Don't need to compare obj to null as instanceof will do this. */
- if (obj instanceof Boolean)
- return value == ((Boolean) obj).value;
- return false;
- }
-
- public static boolean getBoolean(String property)
- {
- /* TBD: If a security manager exists and it doesn't permit accessing
- * the property, it will throw an exception. Should we catch it?
- */
- try
- {
- String val = System.getProperty(property);
- return val == null ? false : val.equalsIgnoreCase("true");
- }
- catch (SecurityException e)
- {
- return false;
- }
- }
-
- public int hashCode()
- {
- /* These values are from the Java Lang. Spec. (Sec 20.4.7).
- * TBD: They could be made private static final fields but they're only
- * used here (and shouldn't be used anywhere else), though it might be
- * useful to grep on something like JAVA_HASH_* values for us as
- * developers.
- */
- return value ? 1231 : 1237;
- }
-
- public String toString()
- {
- return value ? "true" : "false";
- }
-
- public static Boolean valueOf(String str)
- {
- if (str == null)
- return FALSE;
- else
- /* This returns a Boolean (big B), not a boolean (little b). */
- return str.equalsIgnoreCase("true") ? TRUE : FALSE;
- }
-}
diff --git a/libjava/java/lang/Byte.java b/libjava/java/lang/Byte.java
deleted file mode 100644
index 78f34aa64a3..00000000000
--- a/libjava/java/lang/Byte.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * Includes JDK 1.2 methods.
- */
-
-public final class Byte extends Number implements Comparable
-{
- byte value;
-
- public final static byte MIN_VALUE = -128;
- public final static byte MAX_VALUE = 127;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = byte.class;
-
- private static final long serialVersionUID = -7183698231559129828L;
-
- public Byte(byte value)
- {
- this.value = value;
- }
-
- public Byte(String str)
- throws NumberFormatException
- {
- this.value = parseByte(str, 10);
- }
-
- public byte byteValue()
- {
- return value;
- }
-
- public short shortValue()
- {
- return value;
- }
-
- public int intValue()
- {
- return value;
- }
-
- public long longValue ()
- {
- return value;
- }
-
- public float floatValue ()
- {
- return (float) value;
- }
-
- public double doubleValue ()
- {
- return (double) value;
- }
-
- public static Byte decode(String str)
- throws NumberFormatException
- {
- int i = (Integer.decode(str)).intValue();
- if (i < MIN_VALUE || i > MAX_VALUE)
- throw new NumberFormatException();
- return new Byte((byte) i);
- }
-
- public static byte parseByte(String str, int radix)
- throws NumberFormatException
- {
- int i = Integer.parseInt(str, radix);
- if (i < MIN_VALUE || i > MAX_VALUE)
- throw new NumberFormatException();
- return (byte) i;
- }
-
- public static byte parseByte(String str)
- throws NumberFormatException
- {
- return parseByte(str, 10);
- }
-
- public static Byte valueOf(String str, int radix)
- throws NumberFormatException
- {
- return new Byte(parseByte(str, radix));
- }
-
- public static Byte valueOf(String str)
- throws NumberFormatException
- {
- return valueOf(str, 10);
- }
-
- // Added in JDK 1.2
- public int compareTo(Byte anotherByte)
- {
- return this.value - anotherByte.value;
- }
-
- // Added in JDK 1.2
- public int compareTo(Object o) throws ClassCastException
- {
- if (o instanceof Byte)
- return this.value - ((Byte) o).value;
- else
- throw new ClassCastException();
- }
-
- public boolean equals(Object obj)
- {
- return obj != null && (obj instanceof Byte) && ((Byte)obj).value == value;
- }
-
- // Verified that hashCode is returns plain value (see Boolean_1 test).
- public int hashCode()
- {
- return value;
- }
-
- public String toString()
- {
- return Integer.toString((int) value);
- }
-
- public static String toString(byte value)
- {
- return Integer.toString((int) value);
- }
-}
diff --git a/libjava/java/lang/Character.java b/libjava/java/lang/Character.java
deleted file mode 100644
index 2695b0409c0..00000000000
--- a/libjava/java/lang/Character.java
+++ /dev/null
@@ -1,287 +0,0 @@
-// Character.java - Character class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.Serializable;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 10, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1,
- * online API docs for JDK 1.2 beta from http://www.javasoft.com,
- * and The Unicode Standard Version 2.0.
- * Status: Believed complete and correct for JDK 1.1; 1.2 methods
- * unimplemented.
- */
-
-public final class Character implements Serializable, Comparable
-{
- public static final char MIN_VALUE = '\u0000';
- public static final char MAX_VALUE = '\uffff';
-
- public static final int MIN_RADIX = 2;
- public static final int MAX_RADIX = 36;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = char.class;
-
- // Space.
- public static final byte SPACE_SEPARATOR = 12;
- public static final byte LINE_SEPARATOR = 13;
- public static final byte PARAGRAPH_SEPARATOR = 14;
-
- // Letters.
- public static final byte UPPERCASE_LETTER = 1;
- public static final byte LOWERCASE_LETTER = 2;
- public static final byte TITLECASE_LETTER = 3;
- public static final byte MODIFIER_LETTER = 4;
- public static final byte OTHER_LETTER = 5;
-
- // Numbers.
- public static final byte DECIMAL_DIGIT_NUMBER = 9;
- public static final byte LETTER_NUMBER = 10;
- public static final byte OTHER_NUMBER = 11;
-
- // Marks.
- public static final byte NON_SPACING_MARK = 6;
- public static final byte ENCLOSING_MARK = 7;
- public static final byte COMBINING_SPACING_MARK = 8;
-
- // Punctuation.
- public static final byte DASH_PUNCTUATION = 20;
- public static final byte START_PUNCTUATION = 21;
- public static final byte END_PUNCTUATION = 22;
- public static final byte CONNECTOR_PUNCTUATION = 23;
- public static final byte OTHER_PUNCTUATION = 24;
-
- // Symbols.
- public static final byte MATH_SYMBOL = 25;
- public static final byte CURRENCY_SYMBOL = 26;
- public static final byte MODIFIER_SYMBOL = 27;
- public static final byte OTHER_SYMBOL = 28;
-
- // Format controls.
- public static final byte CONTROL = 15;
- // Note: The JCL book says that both FORMAT and PRIVATE_USE are 18.
- // However, FORMAT is actually 16.
- public static final byte FORMAT = 16;
-
- // Others.
- public static final byte UNASSIGNED = 0;
- public static final byte PRIVATE_USE = 18;
- public static final byte SURROGATE = 19;
-
- private static final long serialVersionUID = 3786198910865385080L;
-
- public Character (char ch)
- {
- value = ch;
- }
-
- public char charValue ()
- {
- return value;
- }
-
- // See if a character is a digit. If so, return the corresponding
- // value. Otherwise return -1.
- private static native int digit_value (char ch);
-
- public static int digit (char ch, int radix)
- {
- if (radix < MIN_RADIX || radix > MAX_RADIX)
- return -1;
-
- int d = digit_value (ch);
- if (d == -1)
- {
- if (ch >= 'A' && ch <= 'Z')
- d = ch - 'A' + 10;
- else if (ch >= 'a' && ch <= 'z')
- d = ch - 'a' + 10;
- else
- return -1;
- }
- return d >= radix ? -1 : d;
- }
-
- public boolean equals (Object obj)
- {
- // Don't need to compare OBJ to null as instanceof will do this.
- if (obj instanceof Character)
- return value == ((Character) obj).value;
- return false;
- }
-
- public static char forDigit (int d, int rdx)
- {
- if (d < 0 || d >= rdx || rdx < MIN_RADIX || rdx > MAX_RADIX)
- return '\u0000';
- if (d < 10)
- return (char) ('0' + d);
- // The Java Language Spec says to use lowercase, while the JCL
- // says to use uppercase. We go with the former.
- return (char) ('a' + d - 10);
- }
-
- public static native int getNumericValue (char ch);
- public static native int getType (char ch);
-
- public int hashCode ()
- {
- return value;
- }
-
- public static boolean isDefined (char ch)
- {
- return getType (ch) != UNASSIGNED;
- }
-
- public static boolean isDigit (char ch)
- {
- return digit_value (ch) != -1;
- }
-
- // The JCL book says that the argument here is a Character. That is
- // wrong.
- public static boolean isIdentifierIgnorable (char ch)
- {
- // This information comes from the Unicode Standard. It isn't
- // auto-generated as it doesn't appear in the unidata table.
- return ((ch >= '\u0000' && ch <= '\u0008')
- || (ch >= '\u000e' && ch <= '\u001b')
- // JDK 1.2 docs say that these are ignorable. The Unicode
- // Standard is somewhat ambiguous on this issue.
- || (ch >= '\u007f' && ch <= '\u009f')
- || (ch >= '\u200c' && ch <= '\u200f')
- // JCl says 200a through 200e, but that is a typo. The
- // Unicode standard says the bidi controls are 202a
- // through 202e.
- || (ch >= '\u202a' && ch <= '\u202e')
- || (ch >= '\u206a' && ch <= '\u206f')
- || ch == '\ufeff');
- }
-
- public static boolean isISOControl (char c)
- {
- return ((c >= '\u0000' && c <= '\u001f')
- || (c >= '\u007f' && c <= '\u009f'));
- }
-
- public static boolean isJavaIdentifierPart (char ch)
- {
- if (isIdentifierIgnorable (ch) || isDigit (ch))
- return true;
- int type = getType (ch);
- return (type == COMBINING_SPACING_MARK || type == NON_SPACING_MARK
- || type == CURRENCY_SYMBOL || type == CONNECTOR_PUNCTUATION
- || type == UPPERCASE_LETTER || type == LOWERCASE_LETTER
- || type == TITLECASE_LETTER || type == MODIFIER_LETTER
- || type == OTHER_LETTER || type == LETTER_NUMBER);
- }
-
- public static boolean isJavaIdentifierStart (char ch)
- {
- int type = getType (ch);
- return (type == CURRENCY_SYMBOL || type == CONNECTOR_PUNCTUATION
- || type == UPPERCASE_LETTER || type == LOWERCASE_LETTER
- || type == TITLECASE_LETTER || type == MODIFIER_LETTER
- || type == OTHER_LETTER);
- }
-
- // Deprecated in 1.2.
- public static boolean isJavaLetter (char ch)
- {
- return ch == '$' || ch == '_' || isLetter (ch);
- }
-
- // Deprecated in 1.2.
- public static boolean isJavaLetterOrDigit (char ch)
- {
- return ch == '$' || ch == '_' || isLetterOrDigit (ch);
- }
-
- public static boolean isLetter (char ch)
- {
- int type = getType (ch);
- return (type == UPPERCASE_LETTER || type == LOWERCASE_LETTER
- || type == TITLECASE_LETTER || type == MODIFIER_LETTER
- || type == OTHER_LETTER);
- }
-
- public static boolean isLetterOrDigit (char ch)
- {
- return isDigit (ch) || isLetter (ch);
- }
-
- public static native boolean isLowerCase (char ch);
-
- // Deprecated in JCL.
- public static boolean isSpace (char ch)
- {
- return ch == '\n' || ch == '\t' || ch == '\f' || ch == '\r' || ch == ' ';
- }
-
- public static native boolean isSpaceChar (char ch);
- public static native boolean isTitleCase (char ch);
-
- public static boolean isUnicodeIdentifierPart (char ch)
- {
- if (isIdentifierIgnorable (ch) || isDigit (ch))
- return true;
- int type = getType (ch);
- return (type == CONNECTOR_PUNCTUATION || type == LETTER_NUMBER
- || type == COMBINING_SPACING_MARK || type == NON_SPACING_MARK
- || type == UPPERCASE_LETTER || type == LOWERCASE_LETTER
- || type == TITLECASE_LETTER || type == MODIFIER_LETTER
- || type == OTHER_LETTER);
- }
-
- public static boolean isUnicodeIdentifierStart (char ch)
- {
- return isLetter (ch);
- }
-
- public static native boolean isUpperCase (char ch);
-
- public static boolean isWhitespace (char ch)
- {
- return ((ch >= '\u0009' && ch <= '\r')
- || (ch >= '\u001c' && ch <= '\u001f')
- || (ch != '\u00a0' && ch != '\ufeff' && isSpaceChar (ch)));
- }
-
- public static native char toLowerCase (char ch);
- public static native char toTitleCase (char ch);
- public static native char toUpperCase (char ch);
-
- public String toString ()
- {
- return String.valueOf(value);
- }
-
- public int compareTo (Character anotherCharacter)
- {
- return value - anotherCharacter.value;
- }
-
- public int compareTo (Object o)
- {
- return compareTo ((Character) o);
- }
-
- // Private data.
- private char value;
-}
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
deleted file mode 100644
index 0f602743c7c..00000000000
--- a/libjava/java/lang/Class.h
+++ /dev/null
@@ -1,339 +0,0 @@
-// Class.h - Header file for java.lang.Class. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Written primary using compiler source and Class.java as guides.
-#ifndef __JAVA_LANG_CLASS_H__
-#define __JAVA_LANG_CLASS_H__
-
-#pragma interface
-
-#include <java/lang/Object.h>
-#include <java/lang/String.h>
-#include <java/net/URL.h>
-
-// We declare these here to avoid including gcj/cni.h.
-extern "C" void _Jv_InitClass (jclass klass);
-extern "C" void _Jv_RegisterClasses (jclass *classes);
-
-// This must be predefined with "C" linkage.
-extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
- int meth_idx);
-
-// These are the possible values for the `state' field of the class
-// structure. Note that ordering is important here. Whenever the
-// state changes, one should notify all waiters of this class.
-enum
-{
- JV_STATE_NOTHING = 0, // Set by compiler.
-
- JV_STATE_PRELOADING = 1, // Can do _Jv_FindClass.
- JV_STATE_LOADING = 3, // Has super installed.
- JV_STATE_LOADED = 5, // Is complete.
-
- JV_STATE_COMPILED = 6, // This was a compiled class.
-
- JV_STATE_PREPARED = 7, // Layout & static init done.
- JV_STATE_LINKED = 9, // Strings interned.
-
- JV_STATE_IN_PROGRESS = 10, // <Clinit> running.
- JV_STATE_DONE = 12, //
-
- JV_STATE_ERROR = 14 // must be last.
-};
-
-struct _Jv_Field;
-struct _Jv_VTable;
-union _Jv_word;
-
-struct _Jv_Constants
-{
- jint size;
- jbyte *tags;
- _Jv_word *data;
-};
-
-struct _Jv_Method
-{
- _Jv_Utf8Const *name;
- _Jv_Utf8Const *signature;
- _Jv_ushort accflags;
- void *ncode;
- _Jv_Method *getNextMethod ()
- { return this + 1; }
-};
-
-// Interface Dispatch Tables
-union _Jv_IDispatchTable
-{
- struct
- {
- // Index into interface's ioffsets.
- jshort iindex;
- jshort itable_length;
- // Class Interface dispatch table.
- void **itable;
- } cls;
-
- struct
- {
- // Offsets into implementation class itables.
- jshort *ioffsets;
- } iface;
-};
-
-// Used by _Jv_GetInterfaces ()
-struct _Jv_ifaces
-{
- jclass *list;
- jshort len;
- jshort count;
-};
-
-#define JV_PRIMITIVE_VTABLE ((_Jv_VTable *) -1)
-
-#define JV_CLASS(Obj) ((jclass) (*(_Jv_VTable **) Obj)->clas)
-
-class java::lang::Class : public java::lang::Object
-{
-public:
- static jclass forName (jstring className);
- JArray<jclass> *getClasses (void);
-
- java::lang::ClassLoader *getClassLoader (void)
- {
- return loader;
- }
-
- java::lang::reflect::Constructor *getConstructor (JArray<jclass> *);
- JArray<java::lang::reflect::Constructor *> *getConstructors (void);
- java::lang::reflect::Constructor *getDeclaredConstructor (JArray<jclass> *);
- JArray<java::lang::reflect::Constructor *> *getDeclaredConstructors (void);
- java::lang::reflect::Field *getDeclaredField (jstring);
- JArray<java::lang::reflect::Field *> *getDeclaredFields (void);
- java::lang::reflect::Method *getDeclaredMethod (jstring, JArray<jclass> *);
- JArray<java::lang::reflect::Method *> *getDeclaredMethods (void);
-
- JArray<jclass> *getDeclaredClasses (void);
- jclass getDeclaringClass (void);
-
- java::lang::reflect::Field *getField (jstring);
-private:
- jint _getFields (JArray<java::lang::reflect::Field *> *result, jint offset);
- JArray<java::lang::reflect::Constructor *> *_getConstructors (jboolean);
- java::lang::reflect::Field *getField (jstring, jint);
- jint _getMethods (JArray<java::lang::reflect::Method *> *result,
- jint offset);
- java::lang::reflect::Field *getPrivateField (jstring);
- java::lang::reflect::Method *getPrivateMethod (jstring, JArray<jclass> *);
-
-public:
- JArray<java::lang::reflect::Field *> *getFields (void);
-
- JArray<jclass> *getInterfaces (void);
-
- void getSignature (java::lang::StringBuffer *buffer);
- static jstring getSignature (JArray<jclass> *, jboolean is_constructor);
- java::lang::reflect::Method *getMethod (jstring, JArray<jclass> *);
- JArray<java::lang::reflect::Method *> *getMethods (void);
-
- inline jint getModifiers (void)
- {
- return accflags;
- }
-
- jstring getName (void);
-
- java::net::URL *getResource (jstring resourceName);
- java::io::InputStream *getResourceAsStream (jstring resourceName);
- JArray<jobject> *getSigners (void);
-
- inline jclass getSuperclass (void)
- {
- return superclass;
- }
-
- inline jboolean isArray (void)
- {
- return name->data[0] == '[';
- }
-
- inline jclass getComponentType (void)
- {
- return isArray () ? (* (jclass *) &methods) : 0;
- }
-
- jboolean isAssignableFrom (jclass cls);
- jboolean isInstance (jobject obj);
- jboolean isInterface (void);
-
- inline jboolean isPrimitive (void)
- {
- return vtable == JV_PRIMITIVE_VTABLE;
- }
-
- jobject newInstance (void);
- jstring toString (void);
-
- // FIXME: this probably shouldn't be public.
- jint size (void)
- {
- return size_in_bytes;
- }
-
- // finalization
- void finalize ();
-
-private:
-
- void checkMemberAccess (jint flags);
-
- void initializeClass (void);
-
- // Friend functions implemented in natClass.cc.
- friend _Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature);
- friend jboolean _Jv_IsAssignableFrom(jclass, jclass);
- friend jboolean _Jv_InterfaceAssignableFrom (jclass, jclass);
- friend void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
- int method_idx);
-
- inline friend void
- _Jv_InitClass (jclass klass)
- {
- if (klass->state == JV_STATE_DONE)
- return;
- klass->initializeClass ();
- }
-
- friend _Jv_Method* _Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *,
- _Jv_Utf8Const*);
- friend jfieldID JvGetFirstInstanceField (jclass);
- friend jint JvNumInstanceFields (jclass);
- friend jfieldID JvGetFirstStaticField (jclass);
- friend jint JvNumStaticFields (jclass);
-
- friend jobject _Jv_AllocObject (jclass, jint);
- friend jobjectArray _Jv_NewObjectArray (jsize, jclass, jobject);
- friend jobject _Jv_NewPrimArray (jclass, jint);
-
- friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
- jboolean);
- friend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
- jboolean);
- friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
-
- friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
- friend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
- friend jint JvNumMethods (jclass);
- friend jmethodID JvGetFirstMethod (jclass);
-
- friend class _Jv_PrimClass;
-
- // Friends classes and functions to implement the ClassLoader
- friend class java::lang::ClassLoader;
-
- friend class java::io::ObjectOutputStream;
- friend class java::io::ObjectInputStream;
- friend class java::io::ObjectStreamClass;
-
- friend void _Jv_WaitForState (jclass, int);
- friend void _Jv_RegisterClasses (jclass *classes);
- friend void _Jv_RegisterInitiatingLoader (jclass,java::lang::ClassLoader*);
- friend void _Jv_UnregisterClass (jclass);
- friend jclass _Jv_FindClass (_Jv_Utf8Const *name,
- java::lang::ClassLoader *loader);
- friend jclass _Jv_FindClassInCache (_Jv_Utf8Const *name,
- java::lang::ClassLoader *loader);
- friend jclass _Jv_FindArrayClass (jclass element,
- java::lang::ClassLoader *loader,
- _Jv_VTable *array_vtable = 0);
- friend jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
- java::lang::ClassLoader *loader);
-
- friend void _Jv_PrepareCompiledClass (jclass);
- friend void _Jv_PrepareConstantTimeTables (jclass);
- friend jshort _Jv_GetInterfaces (jclass, _Jv_ifaces *);
- friend void _Jv_GenerateITable (jclass, _Jv_ifaces *, jshort *);
- friend jstring _Jv_GetMethodString(jclass, _Jv_Utf8Const *);
- friend jshort _Jv_AppendPartialITable (jclass, jclass, void **, jshort);
- friend jshort _Jv_FindIIndex (jclass *, jshort *, jshort);
-
-#ifdef INTERPRETER
- friend jboolean _Jv_IsInterpretedClass (jclass);
- friend void _Jv_InitField (jobject, jclass, _Jv_Field*);
- friend int _Jv_DetermineVTableIndex (jclass, _Jv_Utf8Const *,
- _Jv_Utf8Const*);
- friend void _Jv_InitField (jobject, jclass, int);
- friend _Jv_word _Jv_ResolvePoolEntry (jclass, int);
- friend _Jv_Method *_Jv_SearchMethodInClass (jclass cls, jclass klass,
- _Jv_Utf8Const *method_name,
- _Jv_Utf8Const *method_signature);
-
- friend void _Jv_PrepareClass (jclass);
-
- friend class _Jv_ClassReader;
- friend class _Jv_InterpClass;
- friend class _Jv_InterpMethod;
- friend class _Jv_InterpMethodInvocation;
-#endif
-
-#ifdef JV_MARKOBJ_DECL
- friend JV_MARKOBJ_DECL;
-#endif
-
- // Chain for class pool.
- jclass next;
- // Name of class.
- _Jv_Utf8Const *name;
- // Access flags for class.
- _Jv_ushort accflags;
- // The superclass, or null for Object.
- jclass superclass;
- // Class constants.
- _Jv_Constants constants;
- // Methods. If this is an array class, then this field holds a
- // pointer to the element type. If this is a primitive class, this
- // is used to cache a pointer to the appropriate array type.
- _Jv_Method *methods;
- // Number of methods. If this class is primitive, this holds the
- // character used to represent this type in a signature.
- jshort method_count;
- // Number of methods in the vtable.
- jshort vtable_method_count;
- // The fields.
- _Jv_Field *fields;
- // Size of instance fields, in bytes.
- jint size_in_bytes;
- // Total number of fields (instance and static).
- jshort field_count;
- // Number of static fields.
- jshort static_field_count;
- // The vtbl for all objects of this class.
- _Jv_VTable *vtable;
- // Interfaces implemented by this class.
- jclass *interfaces;
- // The class loader for this class.
- java::lang::ClassLoader *loader;
- // Number of interfaces.
- jshort interface_count;
- // State of this class.
- jbyte state;
- // The thread which has locked this class. Used during class
- // initialization.
- java::lang::Thread *thread;
- // How many levels of "extends" this class is removed from Object.
- jshort depth;
- // Vector of this class's superclasses, ordered by decreasing depth.
- jclass *ancestors;
- // Interface Dispatch Table.
- _Jv_IDispatchTable *idt;
-};
-
-#endif /* __JAVA_LANG_CLASS_H__ */
diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java
deleted file mode 100644
index 0125ab46f04..00000000000
--- a/libjava/java/lang/Class.java
+++ /dev/null
@@ -1,180 +0,0 @@
-// Class.java - Representation of a Java class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-import java.io.Serializable;
-import java.io.InputStream;
-import java.lang.reflect.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * plus gcj compiler sources (to determine object layout)
- * Status: Sufficient for our purposes, but some methods missing
- * and some not implemented.
- */
-
-public final class Class implements Serializable
-{
- public static native Class forName (String className)
- throws ClassNotFoundException;
- public native Class[] getClasses ();
- public native ClassLoader getClassLoader ();
- public native Class getComponentType ();
-
- public native Constructor getConstructor (Class[] parameterTypes)
- throws NoSuchMethodException, SecurityException;
-
- // This is used to implement getConstructors and
- // getDeclaredConstructors.
- private native Constructor[] _getConstructors (boolean declared)
- throws SecurityException;
-
- public Constructor[] getConstructors () throws SecurityException
- {
- return _getConstructors (false);
- }
-
- public native Constructor getDeclaredConstructor (Class[] parameterTypes)
- throws NoSuchMethodException, SecurityException;
-
- public native Class[] getDeclaredClasses () throws SecurityException;
-
- public Constructor[] getDeclaredConstructors () throws SecurityException
- {
- return _getConstructors (true);
- }
-
- public native Field getDeclaredField (String fieldName)
- throws NoSuchFieldException, SecurityException;
- public native Field[] getDeclaredFields () throws SecurityException;
- public native Method getDeclaredMethod (String methodName,
- Class[] parameterTypes)
- throws NoSuchMethodException, SecurityException;
- public native Method[] getDeclaredMethods () throws SecurityException;
-
- // This is marked as unimplemented in the JCL book.
- public native Class getDeclaringClass ();
-
- private native Field getField (String fieldName, int hash)
- throws NoSuchFieldException, SecurityException;
-
- public Field getField (String fieldName)
- throws NoSuchFieldException, SecurityException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkMemberAccess (this, java.lang.reflect.Member.DECLARED);
- Field fld = getField(fieldName, fieldName.hashCode());
- if (fld == null)
- throw new NoSuchFieldException(fieldName);
- return fld;
- }
-
- private native Field[] _getFields (Field[] result, int offset);
- public native Field[] getFields () throws SecurityException;
-
- public native Class[] getInterfaces ();
-
- private final native void getSignature (StringBuffer buffer);
- private static final native String getSignature (Class[] parameterTypes,
- boolean is_construtor);
-
- public native Method getMethod (String methodName, Class[] parameterTypes)
- throws NoSuchMethodException, SecurityException;
- private native int _getMethods (Method[] result, int offset);
- public native Method[] getMethods () throws SecurityException;
-
- public native int getModifiers ();
- public native String getName ();
-
- public java.net.URL getResource (String resourceName)
- {
- String name = resourcePath (resourceName);
- ClassLoader loader = getClassLoader ();
- if (loader == null)
- return ClassLoader.getSystemResource (name);
- else
- return loader.getResource (name);
- }
-
- public java.io.InputStream getResourceAsStream (String resourceName)
- {
- String name = resourcePath (resourceName);
- ClassLoader loader = getClassLoader ();
- if (loader == null)
- return ClassLoader.getSystemResourceAsStream (name);
- else
- return loader.getResourceAsStream (name);
- }
-
- private String resourcePath (String resourceName)
- {
- if (resourceName.startsWith ("/"))
- return resourceName.substring (1);
-
- Class c = this;
- while (c.isArray ())
- c = c.getComponentType ();
-
- String packageName = c.getName ().replace ('.', '/');
- int end = packageName.lastIndexOf ('/');
- if (end == -1)
- return resourceName;
- else
- return packageName.substring (0, end+1) + resourceName;
- }
-
- // FIXME: implement. Requires java.security.
- public Object[] getSigners ()
- {
- return null;
- }
-
- public native Class getSuperclass ();
- public native boolean isArray ();
- public native boolean isAssignableFrom (Class cls);
- public native boolean isInstance (Object obj);
- public native boolean isInterface ();
- public native boolean isPrimitive ();
- public native Object newInstance ()
- throws InstantiationException, IllegalAccessException;
-
- public String toString ()
- {
- if (isPrimitive ())
- return getName ();
- return (isInterface () ? "interface " : "class ") + getName ();
- }
-
- // Don't allow new classes to be made.
- private Class ()
- {
- }
-
- // Do a security check.
- private void checkMemberAccess (int flags)
- {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null)
- sm.checkMemberAccess(this, flags);
- }
-
- // Initialize the class.
- private native void initializeClass ();
-
- // finalization
- protected native void finalize ();
-}
diff --git a/libjava/java/lang/ClassCastException.java b/libjava/java/lang/ClassCastException.java
deleted file mode 100644
index 912e870a2c2..00000000000
--- a/libjava/java/lang/ClassCastException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ClassCastException extends RuntimeException
-{
- public ClassCastException()
- {
- super();
- }
-
- public ClassCastException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/ClassCircularityError.java b/libjava/java/lang/ClassCircularityError.java
deleted file mode 100644
index 21bda92c421..00000000000
--- a/libjava/java/lang/ClassCircularityError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// ClassCircularityError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ClassCircularityError extends LinkageError
-{
- public ClassCircularityError ()
- {
- super ();
- }
-
- public ClassCircularityError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/ClassFormatError.java b/libjava/java/lang/ClassFormatError.java
deleted file mode 100644
index 2af50083151..00000000000
--- a/libjava/java/lang/ClassFormatError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// ClassFormatError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ClassFormatError extends LinkageError
-{
- public ClassFormatError ()
- {
- super ();
- }
-
- public ClassFormatError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java
deleted file mode 100644
index 90f852ef6c9..00000000000
--- a/libjava/java/lang/ClassLoader.java
+++ /dev/null
@@ -1,377 +0,0 @@
-// ClassLoader.java - Define policies for loading Java classes.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Stack;
-
-/**
- * The class <code>ClassLoader</code> is intended to be subclassed by
- * applications in order to describe new ways of loading classes,
- * such as over the network.
- *
- * @author Kresten Krab Thorup
- */
-
-public abstract class ClassLoader {
-
- static private ClassLoader system;
- private ClassLoader parent;
-
- public ClassLoader getParent ()
- {
- /* FIXME: security */
- return parent;
- }
-
- public static native ClassLoader getSystemClassLoader ();
-
- /**
- * Creates a <code>ClassLoader</code> with no parent.
- * @exception java.lang.SecurityException if not allowed
- */
- protected ClassLoader()
- {
- this (null);
- }
-
- /**
- * Creates a <code>ClassLoader</code> with the given parent.
- * The parent may be <code>null</code>.
- * The only thing this
- * constructor does, is to call
- * <code>checkCreateClassLoader</code> on the current
- * security manager.
- * @exception java.lang.SecurityException if not allowed
- */
- protected ClassLoader(ClassLoader parent)
- {
- SecurityManager security = System.getSecurityManager ();
- if (security != null)
- security.checkCreateClassLoader ();
- this.parent = parent;
- }
-
- /**
- * Loads and link the class by the given name.
- * @param name the name of the class.
- * @return the class loaded.
- * @see ClassLoader#loadClass(String,boolean)
- * @exception java.lang.ClassNotFoundException
- */
- public Class loadClass(String name)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError
- {
- return loadClass (name, false);
- }
-
- /**
- * Loads the class by the given name. The default implementation
- * will search for the class in the following order (similar to jdk 1.2)
- * <ul>
- * <li> First <code>findLoadedClass</code>.
- * <li> If parent is non-null, <code>parent.loadClass</code>;
- * otherwise <code>findSystemClass</code>.
- * <li> <code>findClass</code>.
- * </ul>
- * If <code>link</code> is true, <code>resolveClass</code> is then
- * called. <p> Normally, this need not be overridden; override
- * <code>findClass</code> instead.
- * @param name the name of the class.
- * @param link if the class should be linked.
- * @return the class loaded.
- * @exception java.lang.ClassNotFoundException
- * @deprecated
- */
- protected Class loadClass(String name, boolean link)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError
- {
- Class c = findLoadedClass (name);
-
- if (c == null)
- {
- try {
- if (parent != null)
- return parent.loadClass (name, link);
- else
- c = findSystemClass (name);
- } catch (ClassNotFoundException ex) {
- /* ignore, we'll try findClass */;
- }
- }
-
- if (c == null)
- c = findClass (name);
-
- if (c == null)
- throw new ClassNotFoundException (name);
-
- if (link)
- resolveClass (c);
-
- return c;
- }
-
- /** Find a class. This should be overridden by subclasses; the
- * default implementation throws ClassNotFoundException.
- *
- * @param name Name of the class to find.
- * @return The class found.
- * @exception java.lang.ClassNotFoundException
- */
- protected Class findClass (String name)
- throws ClassNotFoundException
- {
- throw new ClassNotFoundException ();
- }
-
- /**
- * Defines a class, given the class-data. According to the JVM, this
- * method should not be used; instead use the variant of this method
- * in which the name of the class being defined is specified
- * explicitly.
- * <P>
- * If the name of the class, as specified (implicitly) in the class
- * data, denotes a class which has already been loaded by this class
- * loader, an instance of
- * <code>java.lang.ClassNotFoundException</code> will be thrown.
- *
- * @param data bytes in class file format.
- * @param off offset to start interpreting data.
- * @param len length of data in class file.
- * @return the class defined.
- * @exception java.lang.ClassNotFoundException
- * @exception java.lang.LinkageError
- * @see ClassLoader#defineClass(String,byte[],int,int) */
- protected final Class defineClass(byte[] data, int off, int len)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError
- {
- return defineClass (null, data, off, len);
- }
-
- /**
- * Defines a class, given the class-data. This is preferable
- * over <code>defineClass(byte[],off,len)</code> since it is more
- * secure. If the expected name does not match that of the class
- * file, <code>ClassNotFoundException</code> is thrown. If
- * <code>name</code> denotes the name of an already loaded class, a
- * <code>LinkageError</code> is thrown.
- * <p>
- *
- * FIXME: How do we assure that the class-file data is not being
- * modified, simultaneously with the class loader running!? If this
- * was done in some very clever way, it might break security.
- * Right now I am thinking that defineclass should make sure never to
- * read an element of this array more than once, and that that would
- * assure the ``immutable'' appearance. It is still to be determined
- * if this is in fact how defineClass operates.
- *
- * @param name the expected name.
- * @param data bytes in class file format.
- * @param off offset to start interpreting data.
- * @param len length of data in class file.
- * @return the class defined.
- * @exception java.lang.ClassNotFoundException
- * @exception java.lang.LinkageError
- */
- protected final synchronized Class defineClass(String name,
- byte[] data,
- int off,
- int len)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError
- {
- if (data==null || data.length < off+len || off<0 || len<0)
- throw new ClassFormatError ("arguments to defineClass "
- + "are meaningless");
-
- // as per 5.3.5.1
- if (name != null && findLoadedClass (name) != null)
- throw new java.lang.LinkageError ("class "
- + name
- + " already loaded");
-
- try {
- // Since we're calling into native code here,
- // we better make sure that any generated
- // exception is to spec!
-
- return defineClass0 (name, data, off, len);
-
- } catch (java.lang.LinkageError x) {
- throw x; // rethrow
-
- } catch (java.lang.ClassNotFoundException x) {
- throw x; // rethrow
-
- } catch (java.lang.VirtualMachineError x) {
- throw x; // rethrow
-
- } catch (java.lang.Throwable x) {
- // This should never happen, or we are beyond spec.
-
- throw new InternalError ("Unexpected exception "
- + "while defining class "
- + name + ": "
- + x.toString ());
- }
- }
-
- /** This is the entry point of defineClass into the native code */
- private native Class defineClass0 (String name,
- byte[] data,
- int off,
- int len)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError;
-
-
- /**
- * Link the given class. This will bring the class to a state where
- * the class initializer can be run. Linking involves the following
- * steps:
- * <UL>
- * <LI> Prepare (allocate and internalize) the constant strings that
- * are used in this class.
- * <LI> Allocate storage for static fields, and define the layout
- * of instance fields.
- * <LI> Perform static initialization of ``static final'' int,
- * long, float, double and String fields for which there is a
- * compile-time constant initializer.
- * <LI> Create the internal representation of the ``vtable''.
- * </UL>
- * For <code>gcj</code>-compiled classes, only the first step is
- * performed. The compiler will have done the rest already.
- * <P>
- * This is called by the system automatically,
- * as part of class initialization; there is no reason to ever call
- * this method directly.
- * <P>
- * For historical reasons, this method has a name which is easily
- * misunderstood. Java classes are never ``resolved''. Classes are
- * linked; whereas method and field references are resolved.
- *
- * @param clazz the class to link.
- * @exception java.lang.LinkageError
- */
- protected final void resolveClass(Class clazz)
- throws java.lang.LinkageError
- {
- resolveClass0(clazz);
- }
-
- static void resolveClass0(Class clazz)
- throws java.lang.LinkageError
- {
- synchronized (clazz)
- {
- try {
- linkClass0 (clazz);
- } catch (Throwable x) {
- markClassErrorState0 (clazz);
-
- if (x instanceof Error)
- throw (Error)x;
- else
- throw new java.lang.InternalError
- ("unexpected exception during linking: " + x);
- }
- }
- }
-
- /** Internal method. Calls _Jv_PrepareClass and
- * _Jv_PrepareCompiledClass. This is only called from resolveClass. */
- private static native void linkClass0(Class clazz)
- throws java.lang.LinkageError;
-
- /** Internal method. Marks the given clazz to be in an erroneous
- * state, and calls notifyAll() on the class object. This should only
- * be called when the caller has the lock on the class object. */
- private static native void markClassErrorState0(Class clazz);
-
-
- /**
- * Returns a class found in a system-specific way, typically
- * via the <code>java.class.path</code> system property. Loads the
- * class if necessary.
- *
- * @param name the class to resolve.
- * @return the class loaded.
- * @exception java.lang.LinkageError
- * @exception java.lang.ClassNotFoundException
- */
- protected Class findSystemClass(String name)
- throws java.lang.ClassNotFoundException, java.lang.LinkageError
- {
- return getSystemClassLoader ().loadClass (name);
- }
-
- /*
- * Does currently nothing.
- */
- protected final void setSigners(Class claz, Object[] signers) {
- /* claz.setSigners (signers); */
- }
-
- /**
- * If a class named <code>name</code> was previously loaded using
- * this <code>ClassLoader</code>, then it is returned. Otherwise
- * it returns <code>null</code>. (Unlike the JDK this is native,
- * since we implement the class table internally.)
- * @param name class to find.
- * @return the class loaded, or null.
- */
- protected native Class findLoadedClass(String name);
-
- public static final InputStream getSystemResourceAsStream(String name) {
- return getSystemClassLoader().getResourceAsStream (name);
- }
-
- public static final URL getSystemResource(String name) {
- return getSystemClassLoader().getResource (name);
- }
-
- /**
- * Return an InputStream representing the resource name.
- * This is essentially like
- * <code>getResource(name).openStream()</code>, except
- * it masks out any IOException and returns null on failure.
- * @param name resource to load
- * @return an InputStream, or null
- * @see java.lang.ClassLoader#getResource(String)
- * @see java.io.InputStream
- */
- public InputStream getResourceAsStream(String name)
- {
- try {
- URL res = getResource (name);
- if (res == null) return null;
- return res.openStream ();
- } catch (java.io.IOException x) {
- return null;
- }
- }
-
- /**
- * Return an java.io.URL representing the resouce <code>name</code>.
- * The default implementation just returns <code>null</code>.
- * @param name resource to load
- * @return a URL, or null if there is no such resource.
- * @see java.lang.ClassLoader#getResourceAsBytes(String)
- * @see java.lang.ClassLoader#getResourceAsStream(String)
- * @see java.io.URL
- */
- public URL getResource(String name) {
- return null;
- }
-
-}
-
diff --git a/libjava/java/lang/ClassNotFoundException.java b/libjava/java/lang/ClassNotFoundException.java
deleted file mode 100644
index 7a187e83b9f..00000000000
--- a/libjava/java/lang/ClassNotFoundException.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ClassNotFoundException extends Exception
-{
- // TODO12:
- // Throwable ex;
-
- public ClassNotFoundException()
- {
- super();
- }
-
- // TODO12:
- // public ClassNotFoundException(String msg, Throwable ex)
- // {
- // FIXME: Set 'ex' here.
- // }
-
- public ClassNotFoundException(String msg)
- {
- super(msg);
- }
-
- // TODO12:
- // public Throwable getException()
- // {
- // }
-
- // TBD: if this needs to be implemented
- // public void printStackTrace()
- // {
- // }
-
- // TBD: if this needs to be implemented
- // public void printStackTrace(PrintStream ps)
- // {
- // }
-
- // TBD: if this needs to be implemented
- // public void printStackTrace(PrintWriter pw)
- // {
- // }
-}
diff --git a/libjava/java/lang/CloneNotSupportedException.java b/libjava/java/lang/CloneNotSupportedException.java
deleted file mode 100644
index 62c0c04c997..00000000000
--- a/libjava/java/lang/CloneNotSupportedException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class CloneNotSupportedException extends Exception
-{
- public CloneNotSupportedException()
- {
- super();
- }
-
- public CloneNotSupportedException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/Cloneable.java b/libjava/java/lang/Cloneable.java
deleted file mode 100644
index 404bff914f9..00000000000
--- a/libjava/java/lang/Cloneable.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public interface Cloneable
-{
-}
diff --git a/libjava/java/lang/Comparable.java b/libjava/java/lang/Comparable.java
deleted file mode 100644
index d153d1050bd..00000000000
--- a/libjava/java/lang/Comparable.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 8, 1998.
- */
-/* Written using online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public interface Comparable
-{
- public int compareTo(Object o) throws ClassCastException;
-}
diff --git a/libjava/java/lang/Compiler.java b/libjava/java/lang/Compiler.java
deleted file mode 100644
index bb0f78495f2..00000000000
--- a/libjava/java/lang/Compiler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// Compiler.java - Control byte->machine code compiler.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 23, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- */
-
-public final class Compiler
-{
- public static Object command (Object arg)
- {
- // Our implementation defines this to a no-op.
- return null;
- }
-
- public static boolean compileClass (Class oneClass)
- {
- // Never succeed.
- return false;
- }
-
- public static boolean compileClasses (String classNames)
- {
- // Note the incredibly lame interface. Always fail.
- return false;
- }
-
- public static void disable ()
- {
- }
-
- public static void enable ()
- {
- }
-
- // Don't allow new `Compiler's to be made.
- private Compiler ()
- {
- }
-}
diff --git a/libjava/java/lang/Double.java b/libjava/java/lang/Double.java
deleted file mode 100644
index 10e9093cde5..00000000000
--- a/libjava/java/lang/Double.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date September 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class Double extends Number
-{
- public static final double MIN_VALUE = 5e-324;
- public static final double MAX_VALUE = 1.7976931348623157e+308;
- public static final double NEGATIVE_INFINITY = -1.0d/0.0d;
- public static final double POSITIVE_INFINITY = 1.0d/0.0d;
- public static final double NaN = 0.0d/0.0d;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = double.class;
-
- private double value;
-
- private static final long serialVersionUID = -9172774392245257468L;
-
- public native static double parseDouble (String s)
- throws NumberFormatException;
-
- public Double (double v)
- {
- value = v;
- }
-
- public Double (String s) throws NumberFormatException
- {
- value = valueOf (s).doubleValue ();
- }
-
- public String toString ()
- {
- return toString (value);
- }
-
- public boolean equals (Object obj)
- {
- if (obj == null)
- return false;
-
- if (!(obj instanceof Double))
- return false;
-
- Double d = (Double) obj;
-
- return doubleToLongBits (value) == doubleToLongBits (d.doubleValue ());
- }
-
- public int hashCode ()
- {
- long v = doubleToLongBits (value);
- return (int) (v ^ (v >>> 32));
- }
-
- public int intValue ()
- {
- return (int) value;
- }
-
- public long longValue ()
- {
- return (long) value;
- }
-
- public float floatValue ()
- {
- return (float) value;
- }
-
- public double doubleValue ()
- {
- return value;
- }
-
- public byte byteValue ()
- {
- return (byte) value;
- }
-
- public short shortValue ()
- {
- return (short) value;
- }
-
- native static String toString (double v, boolean isFloat);
-
- public static String toString (double v)
- {
- return toString (v, false);
- }
-
- public static Double valueOf (String s) throws NullPointerException,
- NumberFormatException
- {
- if (s == null)
- throw new NullPointerException ();
-
- return new Double (parseDouble (s));
- }
-
- public boolean isNaN ()
- {
- return isNaN (value);
- }
-
- public static boolean isNaN (double v)
- {
- long bits = doubleToLongBits (v);
- long e = bits & 0x7ff0000000000000L;
- long f = bits & 0x000fffffffffffffL;
-
- return e == 0x7ff0000000000000L && f != 0L;
- }
-
- public boolean isInfinite ()
- {
- return isInfinite (value);
- }
-
- public static boolean isInfinite (double v)
- {
- long bits = doubleToLongBits (v);
- long f = bits & 0x7fffffffffffffffL;
-
- return f == 0x7ff0000000000000L;
- }
-
- public static native long doubleToLongBits (double value);
-
- public static native double longBitsToDouble (long bits);
-}
-
diff --git a/libjava/java/lang/EcosProcess.java b/libjava/java/lang/EcosProcess.java
deleted file mode 100644
index 4c200a0de28..00000000000
--- a/libjava/java/lang/EcosProcess.java
+++ /dev/null
@@ -1,59 +0,0 @@
-// EcosProcess.java - Subclass of Process for eCos systems.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date May 11, 1999
- */
-
-// This is entirely internal to our implementation.
-
-// This file is copied to `ConcreteProcess.java' before compilation.
-// Hence the class name apparently does not match the file name.
-final class ConcreteProcess extends Process
-{
- // See natEcosProcess.cc to understand why this is native.
- public native void destroy ();
-
- public int exitValue ()
- {
- return 0;
- }
- public InputStream getErrorStream ()
- {
- return null;
- }
-
- public InputStream getInputStream ()
- {
- return null;
- }
-
- public OutputStream getOutputStream ()
- {
- return null;
- }
-
- public int waitFor () throws InterruptedException
- {
- return 0;
- }
-
- public ConcreteProcess (String[] progarray, String[] envp) throws IOException
- {
- throw new IOException ("eCos processes unimplemented");
- }
-}
diff --git a/libjava/java/lang/Error.java b/libjava/java/lang/Error.java
deleted file mode 100644
index a9f9d80215a..00000000000
--- a/libjava/java/lang/Error.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// Error.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class Error extends Throwable
-{
- public Error ()
- {
- super ();
- }
-
- public Error (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/Exception.java b/libjava/java/lang/Exception.java
deleted file mode 100644
index 71df1dd9d3c..00000000000
--- a/libjava/java/lang/Exception.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class Exception extends Throwable
-{
- public Exception()
- {
- super();
- }
-
- public Exception(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/ExceptionInInitializerError.java b/libjava/java/lang/ExceptionInInitializerError.java
deleted file mode 100644
index 5c0144bdfa5..00000000000
--- a/libjava/java/lang/ExceptionInInitializerError.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// ExceptionInInitializerError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ExceptionInInitializerError extends LinkageError
-{
- public ExceptionInInitializerError ()
- {
- super ();
- exception = null;
- }
-
- public ExceptionInInitializerError (String msg)
- {
- super (msg);
- exception = null;
- }
-
- public ExceptionInInitializerError (Throwable e)
- {
- super ();
- exception = e;
- }
-
- public Throwable getException ()
- {
- return exception;
- }
-
- // The exception that caused this error.
- private Throwable exception;
-}
diff --git a/libjava/java/lang/Float.java b/libjava/java/lang/Float.java
deleted file mode 100644
index b5939de4d0e..00000000000
--- a/libjava/java/lang/Float.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date September 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class Float extends Number
-{
- public static final float MAX_VALUE = 3.4028235e+38f;
- public static final float MIN_VALUE = 1.4e-45f;
- public static final float NEGATIVE_INFINITY = -1.0f/0.0f;
- public static final float POSITIVE_INFINITY = 1.0f/0.0f;
- public static final float NaN = 0.0f/0.0f;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = float.class;
-
- private float value;
-
- private static final long serialVersionUID = -2671257302660747028L;
-
- public Float (float value)
- {
- this.value = value;
- }
-
- public Float (double value)
- {
- this.value = (float)value;
- }
-
- public Float (String s) throws NumberFormatException
- {
- this.value = valueOf (s).floatValue ();
- }
-
- public String toString ()
- {
- return toString (value);
- }
-
- public boolean equals (Object obj)
- {
- if (obj == null)
- return false;
-
- if (!(obj instanceof Float))
- return false;
-
- Float f = (Float) obj;
-
- return floatToIntBits (value) == floatToIntBits (f.floatValue ());
- }
-
- public int hashCode ()
- {
- return floatToIntBits (value);
- }
-
- public int intValue ()
- {
- return (int) value;
- }
-
- public long longValue ()
- {
- return (long) value;
- }
-
- public float floatValue ()
- {
- return (float) value;
- }
-
- public double doubleValue ()
- {
- return (double) value;
- }
-
- public byte byteValue ()
- {
- return (byte) value;
- }
-
- public short shortValue ()
- {
- return (short) value;
- }
-
- public static String toString (float v)
- {
- return Double.toString ((double) v, true);
- }
-
- public static Float valueOf (String s) throws NullPointerException,
- NumberFormatException
- {
- if (s == null)
- throw new NullPointerException ();
-
- return new Float (Double.valueOf (s).floatValue ());
- }
-
- public boolean isNaN ()
- {
- return isNaN (value);
- }
-
- public static boolean isNaN (float v)
- {
- int bits = floatToIntBits (v);
- int e = bits & 0x7f800000;
- int f = bits & 0x007fffff;
-
- return e == 0x7f800000 && f != 0;
- }
-
- public boolean isInfinite ()
- {
- return isInfinite (value);
- }
-
- public static boolean isInfinite (float v)
- {
- int bits = floatToIntBits (v);
- int f = bits & 0x7fffffff;
-
- return f == 0x7f800000;
- }
-
- public static native int floatToIntBits (float value);
-
- public static native float intBitsToFloat (int bits);
-
-}
-
diff --git a/libjava/java/lang/IllegalAccessError.java b/libjava/java/lang/IllegalAccessError.java
deleted file mode 100644
index a2cf57dea15..00000000000
--- a/libjava/java/lang/IllegalAccessError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// IllegalAccessError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalAccessError extends IncompatibleClassChangeError
-{
- public IllegalAccessError ()
- {
- super ();
- }
-
- public IllegalAccessError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/IllegalAccessException.java b/libjava/java/lang/IllegalAccessException.java
deleted file mode 100644
index d3618113776..00000000000
--- a/libjava/java/lang/IllegalAccessException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalAccessException extends Exception
-{
- public IllegalAccessException()
- {
- super();
- }
-
- public IllegalAccessException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/IllegalArgumentException.java b/libjava/java/lang/IllegalArgumentException.java
deleted file mode 100644
index 935092bcf7d..00000000000
--- a/libjava/java/lang/IllegalArgumentException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalArgumentException extends RuntimeException
-{
- public IllegalArgumentException()
- {
- super();
- }
-
- public IllegalArgumentException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/IllegalMonitorStateException.java b/libjava/java/lang/IllegalMonitorStateException.java
deleted file mode 100644
index 32b50f468c9..00000000000
--- a/libjava/java/lang/IllegalMonitorStateException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalMonitorStateException extends RuntimeException
-{
- public IllegalMonitorStateException()
- {
- super();
- }
-
- public IllegalMonitorStateException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/IllegalStateException.java b/libjava/java/lang/IllegalStateException.java
deleted file mode 100644
index 90abb524505..00000000000
--- a/libjava/java/lang/IllegalStateException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalStateException extends RuntimeException
-{
- public IllegalStateException()
- {
- super();
- }
-
- public IllegalStateException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/IllegalThreadStateException.java b/libjava/java/lang/IllegalThreadStateException.java
deleted file mode 100644
index f6b63924180..00000000000
--- a/libjava/java/lang/IllegalThreadStateException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IllegalThreadStateException extends IllegalArgumentException
-{
- public IllegalThreadStateException()
- {
- super();
- }
-
- public IllegalThreadStateException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/IncompatibleClassChangeError.java b/libjava/java/lang/IncompatibleClassChangeError.java
deleted file mode 100644
index 1477732d22c..00000000000
--- a/libjava/java/lang/IncompatibleClassChangeError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// IncompatibleClassChangeError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IncompatibleClassChangeError extends LinkageError
-{
- public IncompatibleClassChangeError ()
- {
- super ();
- }
-
- public IncompatibleClassChangeError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/IndexOutOfBoundsException.java b/libjava/java/lang/IndexOutOfBoundsException.java
deleted file mode 100644
index f1175253aef..00000000000
--- a/libjava/java/lang/IndexOutOfBoundsException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class IndexOutOfBoundsException extends RuntimeException
-{
- public IndexOutOfBoundsException()
- {
- super();
- }
-
- public IndexOutOfBoundsException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/InstantiationError.java b/libjava/java/lang/InstantiationError.java
deleted file mode 100644
index 595abaf6fd1..00000000000
--- a/libjava/java/lang/InstantiationError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// InstantiationError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class InstantiationError extends IncompatibleClassChangeError
-{
- public InstantiationError ()
- {
- super ();
- }
-
- public InstantiationError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/InstantiationException.java b/libjava/java/lang/InstantiationException.java
deleted file mode 100644
index 1ea91ba9aee..00000000000
--- a/libjava/java/lang/InstantiationException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class InstantiationException extends Exception
-{
- public InstantiationException()
- {
- super();
- }
-
- public InstantiationException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/Integer.java b/libjava/java/lang/Integer.java
deleted file mode 100644
index 163c8501515..00000000000
--- a/libjava/java/lang/Integer.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 11, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class Integer extends Number implements Comparable
-{
- public static final int MAX_VALUE = 0x7FFFFFFF;
- public static final int MIN_VALUE = 0x80000000;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = int.class;
-
- /* The int value of the instance. */
- private int value;
-
- private static final long serialVersionUID = 1360826667806852920L;
-
- public Integer(int val)
- {
- value = val;
- }
-
- public Integer(String str) throws NumberFormatException
- {
- value = parseInt(str, 10);
- }
-
- public byte byteValue()
- {
- return (byte) value;
- }
-
- public double doubleValue()
- {
- return (double) value;
- }
-
- public float floatValue()
- {
- return (float) value;
- }
-
- public int intValue()
- {
- return value;
- }
-
- public long longValue()
- {
- return value;
- }
-
- public short shortValue()
- {
- return (short) value;
- }
-
- // Added in JDK 1.2
- public int compareTo(Integer anotherInteger)
- {
- if (this.value == anotherInteger.value)
- return 0;
-
- // Returns just -1 or 1 on inequality; doing math might overflow the int.
- if (this.value > anotherInteger.value)
- return 1;
-
- return -1;
- }
-
- // Added in JDK 1.2
- public int compareTo(Object o) throws ClassCastException
- {
- if (!(o instanceof Integer))
- throw new ClassCastException();
-
- return this.compareTo((Integer) o);
- }
-
- public static Integer decode(String str) throws NumberFormatException
- {
- boolean isNeg = false;
- int index = 0;
- int radix = 10;
- final int len;
-
- if (str == null || (len = str.length()) == 0)
- throw new NumberFormatException();
-
- // Negative numbers are always radix 10.
- if (str.charAt(0) == '-')
- {
- radix = 10;
- index++;
- isNeg = true;
- }
- else if (str.charAt(index) == '#')
- {
- radix = 16;
- index++;
- }
- else if (str.charAt(index) == '0')
- {
- // Check if str is just "0"
- if (len == 1)
- return new Integer(0);
-
- index++;
- if (str.charAt(index) == 'x')
- {
- radix = 16;
- index++;
- }
- else
- radix = 8;
- }
-
- if (index >= len)
- throw new NumberFormatException();
-
- return new Integer(parseInt(str, index, len, isNeg, radix));
- }
-
- public boolean equals(Object obj)
- {
- return (obj != null && (obj instanceof Integer)
- && ((Integer) obj).value == value);
- }
-
- public static Integer getInteger(String prop)
- {
- return getInteger(prop, null);
- }
-
- public static Integer getInteger(String prop, int defval)
- {
- Integer val = getInteger(prop, null);
- return val == null ? new Integer(defval) : val;
- }
-
- public static Integer getInteger(String prop, Integer defobj)
- {
- try
- {
- return decode(System.getProperty(prop));
- }
- catch (NumberFormatException ex)
- {
- return defobj;
- }
- }
-
- public int hashCode()
- {
- return value;
- }
-
- public static int parseInt(String str) throws NumberFormatException
- {
- return parseInt(str, 10);
- }
-
- public static int parseInt(String str, int radix) throws NumberFormatException
- {
- final int len;
-
- if (str == null || (len = str.length()) == 0 ||
- radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
- throw new NumberFormatException();
-
- boolean isNeg = false;
- int index = 0;
- if (str.charAt(index) == '-')
- if (len > 1)
- {
- isNeg = true;
- index++;
- }
- else
- throw new NumberFormatException();
-
- return parseInt(str, index, len, isNeg, radix);
- }
-
- private static int parseInt(String str, int index, int len, boolean isNeg,
- int radix) throws NumberFormatException
- {
- int val = 0;
- int digval;
-
- int max = MAX_VALUE / radix;
- // We can't directly write `max = (MAX_VALUE + 1) / radix'.
- // So instead we fake it.
- if (isNeg && MAX_VALUE % radix == radix - 1)
- ++max;
-
- for ( ; index < len; index++)
- {
- if (val < 0 || val > max)
- throw new NumberFormatException();
-
- if ((digval = Character.digit(str.charAt(index), radix)) < 0)
- throw new NumberFormatException();
-
- // Throw an exception for overflow if result is negative.
- // However, we special-case the most negative value.
- val = val * radix + digval;
- if (val < 0 && (! isNeg || val != MIN_VALUE))
- throw new NumberFormatException();
- }
-
- return isNeg ? -(val) : val;
- }
-
- public static String toBinaryString(int num)
- {
- return toUnsignedString(num, 1);
- }
-
- public static String toHexString(int num)
- {
- return toUnsignedString(num, 4);
- }
-
- public static String toOctalString(int num)
- {
- return toUnsignedString(num, 3);
- }
-
- private static String toUnsignedString(int num, int exp)
- {
- // Use an array large enough for a binary number.
- int radix = 1 << exp;
- int mask = radix - 1;
- char[] buffer = new char[32];
- int i = 32;
- do
- {
- buffer[--i] = Character.forDigit(num & mask, radix);
- num = num >>> exp;
- }
- while (num != 0);
-
- return String.valueOf(buffer, i, 32-i);
- }
-
- public String toString()
- {
- return toString(this.value);
- }
-
- public static String toString(int num)
- {
- // Use an arrary large enough for "-2147483648"; i.e. 11 chars.
- char[] buffer = new char[11];
- int i = 11;
- boolean isNeg;
- if (num < 0)
- {
- isNeg = true;
- num = -(num);
- if (num < 0)
- {
- // Must be MIN_VALUE, so handle this special case.
- buffer[--i] = '8';
- num = 214748364;
- }
- }
- else
- isNeg = false;
-
- do
- {
- buffer[--i] = (char) ((int) '0' + (num % 10));
- num /= 10;
- }
- while (num > 0);
-
- if (isNeg)
- buffer[--i] = '-';
-
- return String.valueOf(buffer, i, 11-i);
- }
-
- public static String toString(int num, int radix)
- {
- // Use optimized method for the typical case.
- if (radix == 10 ||
- radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
- return toString(num);
-
- // For negative numbers, print out the absolute value w/ a leading '-'.
- // Use an array large enough for a binary number.
- char[] buffer = new char[33];
- int i = 33;
- boolean isNeg;
- if (num < 0)
- {
- isNeg = true;
- num = -(num);
-
- // When the value is MIN_VALUE, it overflows when made positive
- if (num < 0)
- {
- buffer[--i] = Character.forDigit(-(num + radix) % radix, radix);
- num = -(num / radix);
- }
- }
- else
- isNeg = false;
-
- do
- {
- buffer[--i] = Character.forDigit(num % radix, radix);
- num /= radix;
- }
- while (num > 0);
-
- if (isNeg)
- buffer[--i] = '-';
-
- return String.valueOf(buffer, i, 33-i);
- }
-
- public static Integer valueOf(String str) throws NumberFormatException
- {
- return new Integer(parseInt(str, 10));
- }
-
- public static Integer valueOf(String str, int radix)
- throws NumberFormatException
- {
- return new Integer(parseInt(str, radix));
- }
-}
diff --git a/libjava/java/lang/InternalError.java b/libjava/java/lang/InternalError.java
deleted file mode 100644
index e8e9755a762..00000000000
--- a/libjava/java/lang/InternalError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// InternalError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class InternalError extends VirtualMachineError
-{
- public InternalError ()
- {
- super ();
- }
-
- public InternalError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/InterruptedException.java b/libjava/java/lang/InterruptedException.java
deleted file mode 100644
index adb73c2d79d..00000000000
--- a/libjava/java/lang/InterruptedException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class InterruptedException extends Exception
-{
- public InterruptedException()
- {
- super();
- }
-
- public InterruptedException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/LinkageError.java b/libjava/java/lang/LinkageError.java
deleted file mode 100644
index af380ca4708..00000000000
--- a/libjava/java/lang/LinkageError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// LinkageError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class LinkageError extends Error
-{
- public LinkageError ()
- {
- super ();
- }
-
- public LinkageError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/Long.java b/libjava/java/lang/Long.java
deleted file mode 100644
index e6872dbc49f..00000000000
--- a/libjava/java/lang/Long.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class Long extends Number implements Comparable
-{
- public static final long MAX_VALUE = 0x7FFFFFFFFFFFFFFFL;
- public static final long MIN_VALUE = 0x8000000000000000L;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = long.class;
-
- /* The long value of the instance. */
- private long value;
-
- private static final long serialVersionUID = 4290774380558885855L;
-
- public Long(long val)
- {
- value = val;
- }
-
- public Long(String str) throws NumberFormatException
- {
- value = parseLong(str, 10);
- }
-
- public byte byteValue()
- {
- return (byte) value;
- }
-
- public double doubleValue()
- {
- return (double) value;
- }
-
- public float floatValue()
- {
- return (float) value;
- }
-
- public int intValue()
- {
- return (int) value;
- }
-
- public long longValue()
- {
- return value;
- }
-
- public short shortValue()
- {
- return (short) value;
- }
-
- // Added in JDK 1.2
- public int compareTo(Long anotherLong)
- {
- if (this.value == anotherLong.value)
- return 0;
-
- // Returns just -1 or 1 on inequality; doing math might overflow the long.
- if (this.value > anotherLong.value)
- return 1;
-
- return -1;
- }
-
- // Added in JDK 1.2
- public int compareTo(Object o) throws ClassCastException
- {
- if (!(o instanceof Long))
- throw new ClassCastException();
-
- return this.compareTo((Long) o);
- }
-
- // Added in JDK 1.2
- public static Long decode(String str) throws NumberFormatException
- {
- boolean isNeg = false;
- int index = 0;
- int radix = 10;
- final int len;
-
- if (str == null || (len = str.length()) == 0)
- throw new NumberFormatException();
-
- // Negative numbers are always radix 10.
- if (str.charAt(0) == '-')
- {
- radix = 10;
- index++;
- isNeg = true;
- }
- else if (str.charAt(index) == '#')
- {
- radix = 16;
- index++;
- }
- else if (str.charAt(index) == '0')
- {
- // Check if str is just "0"
- if (len == 1)
- return new Long(0L);
-
- index++;
- if (str.charAt(index) == 'x')
- {
- radix = 16;
- index++;
- }
- else
- radix = 8;
- }
-
- if (index >= len)
- throw new NumberFormatException();
-
- return new Long(parseLong(str, index, len, isNeg, radix));
- }
-
- public boolean equals(Object obj)
- {
- return (obj != null && (obj instanceof Long)
- && ((Long) obj).value == value);
- }
-
- public static Long getLong(String prop)
- {
- return getLong(prop, null);
- }
-
- public static Long getLong(String prop, long defval)
- {
- Long val = getLong(prop, null);
- return val == null ? new Long(defval) : val;
- }
-
- public static Long getLong(String prop, Long defobj)
- {
- try
- {
- return decode(System.getProperty(prop));
- }
- catch (NumberFormatException ex)
- {
- return defobj;
- }
- }
-
- public int hashCode()
- {
- return (int)(this.longValue()^(this.longValue()>>>32));
- }
-
- public static long parseLong(String str) throws NumberFormatException
- {
- return parseLong(str, 10);
- }
-
- public static long parseLong(String str, int radix)
- throws NumberFormatException
- {
- final int len;
-
- if (str == null || (len = str.length()) == 0 ||
- radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
- throw new NumberFormatException();
-
- boolean isNeg = false;
- int index = 0;
- if (str.charAt(index) == '-')
- if (len > 1)
- {
- isNeg = true;
- index++;
- }
- else
- throw new NumberFormatException();
-
- return parseLong(str, index, len, isNeg, radix);
- }
-
- private static long parseLong(String str, int index, int len, boolean isNeg,
- int radix) throws NumberFormatException
- {
- long val = 0;
- int digval;
-
- long max = MAX_VALUE / radix;
- // We can't directly write `max = (MAX_VALUE + 1) / radix'.
- // So instead we fake it.
- if (isNeg && MAX_VALUE % radix == radix - 1)
- ++max;
-
- for ( ; index < len; index++)
- {
- if (val < 0 || val > max)
- throw new NumberFormatException();
-
- if ((digval = Character.digit(str.charAt(index), radix)) < 0)
- throw new NumberFormatException();
-
- // Throw an exception for overflow if result is negative.
- // However, we special-case the most negative value.
- val = val * radix + digval;
- if (val < 0 && (! isNeg || val != MIN_VALUE))
- throw new NumberFormatException();
- }
-
- return isNeg ? -(val) : val;
- }
-
- public static String toBinaryString(long num)
- {
- return toUnsignedString(num, 1);
- }
-
- public static String toHexString(long num)
- {
- return toUnsignedString(num, 4);
- }
-
- public static String toOctalString(long num)
- {
- return toUnsignedString(num, 3);
- }
-
- private static String toUnsignedString(long num, int exp)
- {
- // Use an array large enough for a binary number.
- int radix = 1 << exp;
- long mask = radix - 1;
- char[] buffer = new char[64];
- int i = 64;
- do
- {
- buffer[--i] = Character.forDigit((int) (num & mask), radix);
- num = num >>> exp;
- }
- while (num != 0);
-
- return String.valueOf(buffer, i, 64-i);
- }
-
- public String toString()
- {
- return toString(this.value);
- }
-
- public static String toString(long num)
- {
- // Use the Integer toString for efficiency if possible.
- if (num <= Integer.MAX_VALUE && num >= Integer.MIN_VALUE)
- return Integer.toString((int) num);
-
- // Use an arrary large enough for "-9223372036854775808"; i.e. 11 chars.
- char[] buffer = new char[20];
- int i = 20;
- boolean isNeg;
- if (num < 0)
- {
- isNeg = true;
- num = -(num);
- if (num < 0)
- {
- // Must be MIN_VALUE, so handle this special case.
- buffer[--i] = '8';
- num = 922337203685477580L;
- }
- }
- else
- isNeg = false;
-
- do
- {
- buffer[--i] = (char) ((int) '0' + (num % 10));
- num /= 10;
- }
- while (num > 0);
-
- if (isNeg)
- buffer[--i] = '-';
-
- return String.valueOf(buffer, i, 20-i);
- }
-
- public static String toString(long num, int radix)
- {
- // Use optimized method for the typical case.
- if (radix == 10 ||
- radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
- return toString(num);
-
- // Use the Integer toString for efficiency if possible.
- if (num <= Integer.MAX_VALUE && num >= Integer.MIN_VALUE)
- return Integer.toString((int) num, radix);
-
- // For negative numbers, print out the absolute value w/ a leading '-'.
- // Use an array large enough for a binary number.
- char[] buffer = new char[65];
- int i = 65;
- boolean isNeg;
- if (num < 0)
- {
- isNeg = true;
- num = -(num);
-
- // When the value is MIN_VALUE, it overflows when made positive
- if (num < 0)
- {
- buffer[--i] = Character.forDigit((int) (-(num + radix) % radix),
- radix);
- num = -(num / radix);
- }
- }
- else
- isNeg = false;
-
- do
- {
- buffer[--i] = Character.forDigit((int) (num % radix), radix);
- num /= radix;
- }
- while (num > 0);
-
- if (isNeg)
- buffer[--i] = '-';
-
- return String.valueOf(buffer, i, 65-i);
- }
-
- public static Long valueOf(String str) throws NumberFormatException
- {
- return new Long(parseLong(str, 10));
- }
-
- public static Long valueOf(String str, int radix)
- throws NumberFormatException
- {
- return new Long(parseLong(str, radix));
- }
-}
diff --git a/libjava/java/lang/Math.java b/libjava/java/lang/Math.java
deleted file mode 100644
index 0b9ae213c77..00000000000
--- a/libjava/java/lang/Math.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-package java.lang;
-
-import java.util.Random;
-
-public final class Math
-{
- private static Random random_;
-
- public static final double E = 2.7182818284590452354;
- public static final double PI = 3.14159265358979323846;
-
- public static native double sin (double x);
-
- public static native double cos (double x);
-
- public static native double tan (double x);
-
- public static native double asin (double x);
-
- public static native double acos (double x);
-
- public static native double atan (double x);
-
- public static native double atan2(double y, double x);
-
- public static native double exp (double x);
-
- public static native double log (double x);
-
- public static native double sqrt (double x);
-
- public static native double pow (double x, double y);
-
- public static native double IEEEremainder (double x, double y);
-
- public static native double ceil (double x);
-
- public static native double floor (double x);
-
- public static native double rint (double x);
-
- public static native int round (float x);
-
- public static native long round (double x);
-
- public static synchronized double random ()
- {
- if (random_ == null)
- random_ = new Random ();
- return random_.nextDouble ();
- }
-
- public static int abs (int n)
- {
- return (n < 0 ? -n : n);
- }
-
- public static long abs (long n)
- {
- return (n < 0 ? -n : n);
- }
-
- public static native float abs (float x);
-
- public static native double abs (double x);
-
- public static int min (int a, int b)
- {
- return (a < b ? a : b);
- }
-
- public static long min (long a, long b)
- {
- return (a < b ? a : b);
- }
-
- public static native float min (float a, float b);
-
- public static native double min (double a, double b);
-
- public static int max (int a, int b)
- {
- return (a < b ? b : a);
- }
-
- public static long max (long a, long b)
- {
- return (a < b ? b : a);
- }
-
- public static native float max (float a, float b);
-
- public static native double max (double a, double b);
-
- // Don't allow objects to be made.
- private Math ()
- {
- }
-}
-
diff --git a/libjava/java/lang/NegativeArraySizeException.java b/libjava/java/lang/NegativeArraySizeException.java
deleted file mode 100644
index 22f1423cbcd..00000000000
--- a/libjava/java/lang/NegativeArraySizeException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NegativeArraySizeException extends RuntimeException
-{
- public NegativeArraySizeException()
- {
- super();
- }
-
- public NegativeArraySizeException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/NoClassDefFoundError.java b/libjava/java/lang/NoClassDefFoundError.java
deleted file mode 100644
index afb3abb86ee..00000000000
--- a/libjava/java/lang/NoClassDefFoundError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// NoClassDefFoundError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoClassDefFoundError extends LinkageError
-{
- public NoClassDefFoundError ()
- {
- super ();
- }
-
- public NoClassDefFoundError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/NoSuchFieldError.java b/libjava/java/lang/NoSuchFieldError.java
deleted file mode 100644
index 7835ebd26a0..00000000000
--- a/libjava/java/lang/NoSuchFieldError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// NoSuchFieldError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchFieldError extends IncompatibleClassChangeError
-{
- public NoSuchFieldError ()
- {
- super ();
- }
-
- public NoSuchFieldError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/NoSuchFieldException.java b/libjava/java/lang/NoSuchFieldException.java
deleted file mode 100644
index 1c959fad255..00000000000
--- a/libjava/java/lang/NoSuchFieldException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchFieldException extends Exception
-{
- public NoSuchFieldException()
- {
- super();
- }
-
- public NoSuchFieldException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/NoSuchMethodError.java b/libjava/java/lang/NoSuchMethodError.java
deleted file mode 100644
index c266e2ee527..00000000000
--- a/libjava/java/lang/NoSuchMethodError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// NoSuchMethodError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchMethodError extends IncompatibleClassChangeError
-{
- public NoSuchMethodError ()
- {
- super ();
- }
-
- public NoSuchMethodError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/NoSuchMethodException.java b/libjava/java/lang/NoSuchMethodException.java
deleted file mode 100644
index 87e2132e790..00000000000
--- a/libjava/java/lang/NoSuchMethodException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchMethodException extends Exception
-{
- public NoSuchMethodException()
- {
- super();
- }
-
- public NoSuchMethodException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/NullPointerException.java b/libjava/java/lang/NullPointerException.java
deleted file mode 100644
index f4b2757892d..00000000000
--- a/libjava/java/lang/NullPointerException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NullPointerException extends RuntimeException
-{
- public NullPointerException()
- {
- super();
- }
-
- public NullPointerException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/Number.java b/libjava/java/lang/Number.java
deleted file mode 100644
index 92d98afbfb6..00000000000
--- a/libjava/java/lang/Number.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.Serializable;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class Number implements Serializable
-{
- public byte byteValue() // Became non-abstract in JDK 1.2
- {
- return (byte) intValue();
- }
-
- public abstract double doubleValue();
- public abstract float floatValue();
- public abstract int intValue();
- public abstract long longValue();
-
- public short shortValue() // Became non-abstract in JDK 1.2
- {
- return (short) intValue();
- }
-
- private static final long serialVersionUID = -8742448824652078965L;
-}
diff --git a/libjava/java/lang/NumberFormatException.java b/libjava/java/lang/NumberFormatException.java
deleted file mode 100644
index 1b97c758c4d..00000000000
--- a/libjava/java/lang/NumberFormatException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NumberFormatException extends IllegalArgumentException
-{
- public NumberFormatException()
- {
- super();
- }
-
- public NumberFormatException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/Object.h b/libjava/java/lang/Object.h
deleted file mode 100644
index 2ed6d155a2e..00000000000
--- a/libjava/java/lang/Object.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// Object.h - Header file for java.lang.Object. -*- c++ -*-
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_LANG_OBJECT_H__
-#define __JAVA_LANG_OBJECT_H__
-
-#pragma interface
-
-#include <gcj/javaprims.h>
-
-// This class is mainly here as a kludge to get G++ to allocate
-// vtable pointer as the *first* word of each Object, instead of
-// the second word (following sync_info). Note that various pieces of
-// code know that finalize() is the first method. For instance,
-// Object.java knows this, as does _Jv_AllocObject.
-
-struct _JvObjectPrefix
-{
-protected:
- // This is disguised as the C++ vtbl.
- // _Jv_VTable* vtable;
-
- virtual void finalize () = 0;
-};
-
-class java::lang::Object : public _JvObjectPrefix
-{
-public:
- // Order must match order in Object.java.
- jclass getClass (void);
- virtual jint hashCode (void);
- void notify (void);
- void notifyAll (void);
- void wait (jlong timeout, jint nanos);
- virtual jboolean equals (jobject obj);
- Object (void);
- virtual jstring toString (void);
- void wait (void);
- void wait (jlong timeout);
-
- friend jint _Jv_MonitorEnter (jobject obj);
- friend jint _Jv_MonitorExit (jobject obj);
- friend void _Jv_InitializeSyncMutex (void);
- friend void _Jv_FinalizeObject (jobject obj);
-
-#ifdef JV_MARKOBJ_DECL
- friend JV_MARKOBJ_DECL;
-#endif
-#ifdef JV_MARKARRAY_DECL
- friend JV_MARKARRAY_DECL;
-#endif
-
-protected:
- virtual jobject clone (void);
- virtual void finalize (void);
-
-private:
- // This does not actually refer to a Java object. Instead it is a
- // placeholder for a piece of internal data (the synchronization
- // information).
- jobject sync_info;
-
- // Initialize the sync_info field.
- void sync_init (void);
-};
-
-#endif /* __JAVA_LANG_OBJECT_H__ */
diff --git a/libjava/java/lang/Object.java b/libjava/java/lang/Object.java
deleted file mode 100644
index c644f7c3c87..00000000000
--- a/libjava/java/lang/Object.java
+++ /dev/null
@@ -1,71 +0,0 @@
-// Object.java - The root of all evil.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date September 30, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * plus gcj compiler sources (to determine object layout)
- * Status: Complete to version 1.1
- */
-
-public class Object
-{
- // This must come first. See _JvObjectPrefix in Object.h.
- protected void finalize () throws Throwable
- {
- }
-
- public final native Class getClass ();
- public native int hashCode ();
- public final native void notify ();
- public final native void notifyAll ();
- public final native void wait (long timeout, int nanos)
- throws InterruptedException;
-
- public boolean equals (Object obj)
- {
- return this == obj;
- }
-
- public Object ()
- {
- }
-
- public String toString ()
- {
- return getClass().getName() + '@' + Integer.toHexString(hashCode());
- }
-
- public final void wait () throws InterruptedException
- {
- wait (0, 0);
- }
-
- public final void wait (long timeout) throws InterruptedException
- {
- wait (timeout, 0);
- }
-
- protected native Object clone () throws CloneNotSupportedException;
-
- // This initializes the sync_info member. It is here for
- // completeness (some day we'll be able to auto-generate Object.h).
- private final native void sync_init ();
-
- // Note that we don't mention the sync_info field here. If we do,
- // jc1 will not work correctly.
-}
diff --git a/libjava/java/lang/OutOfMemoryError.java b/libjava/java/lang/OutOfMemoryError.java
deleted file mode 100644
index 81ab753872d..00000000000
--- a/libjava/java/lang/OutOfMemoryError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// OutOfMemoryError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class OutOfMemoryError extends VirtualMachineError
-{
- public OutOfMemoryError ()
- {
- super ();
- }
-
- public OutOfMemoryError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/PosixProcess.java b/libjava/java/lang/PosixProcess.java
deleted file mode 100644
index 36182598b3b..00000000000
--- a/libjava/java/lang/PosixProcess.java
+++ /dev/null
@@ -1,74 +0,0 @@
-// PosixProcess.java - Subclass of Process for POSIX systems.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date May 3, 1999
- */
-
-// This is entirely internal to our implementation.
-
-// This file is copied to `ConcreteProcess.java' before compilation.
-// Hence the class name apparently does not match the file name.
-final class ConcreteProcess extends Process
-{
- public native void destroy ();
- public native int exitValue ();
-
- public InputStream getErrorStream ()
- {
- return errorStream;
- }
-
- public InputStream getInputStream ()
- {
- return inputStream;
- }
-
- public OutputStream getOutputStream ()
- {
- return outputStream;
- }
-
- public native int waitFor () throws InterruptedException;
-
- // This is used for actual initialization, as we can't write a
- // native constructor.
- public native void startProcess (String[] progarray, String[] envp)
- throws IOException;
-
- // This file is copied to `ConcreteProcess.java' before
- // compilation. Hence the constructor name apparently does not
- // match the file name.
- public ConcreteProcess (String[] progarray, String[] envp) throws IOException
- {
- startProcess (progarray, envp);
- }
-
- // The process id. This is cast to a pid_t on the native side.
- private long pid;
-
- // True when child has exited.
- private boolean hasExited;
-
- // The exit status, if the child has exited.
- private int status;
-
- // The streams.
- private InputStream errorStream;
- private InputStream inputStream;
- private OutputStream outputStream;
-}
diff --git a/libjava/java/lang/Process.java b/libjava/java/lang/Process.java
deleted file mode 100644
index 077efe53771..00000000000
--- a/libjava/java/lang/Process.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Process.java - Represent spawned system process.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-import java.io.*;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 23, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- */
-
-public abstract class Process
-{
- abstract public void destroy ();
- abstract public int exitValue ();
- abstract public InputStream getErrorStream ();
- abstract public InputStream getInputStream ();
- abstract public OutputStream getOutputStream ();
- abstract public int waitFor () throws InterruptedException;
-}
diff --git a/libjava/java/lang/Runnable.java b/libjava/java/lang/Runnable.java
deleted file mode 100644
index a5eed31ebae..00000000000
--- a/libjava/java/lang/Runnable.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Runnable.java - Runnable interface.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 25, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete.
- */
-
-public interface Runnable
-{
- public abstract void run ();
-}
diff --git a/libjava/java/lang/Runtime.java b/libjava/java/lang/Runtime.java
deleted file mode 100644
index e746c60b384..00000000000
--- a/libjava/java/lang/Runtime.java
+++ /dev/null
@@ -1,143 +0,0 @@
-// Runtime.java - Runtime class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.StringTokenizer;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 27, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: All 1.1 methods exist. exec() is not fully implemented.
- */
-
-public class Runtime
-{
- public Process exec (String prog) throws IOException
- {
- return exec (prog, null);
- }
-
- public Process exec (String prog, String[] envp) throws IOException
- {
- StringTokenizer st = new StringTokenizer(prog);
- String[] a = new String[st.countTokens ()];
- for (int i = 0; i < a.length; i++)
- a[i] = st.nextToken ();
- return exec (a, envp);
- }
-
- public Process exec (String[] progarray) throws IOException
- {
- return exec (progarray, null);
- }
-
- public Process exec (String[] progarray, String[] envp) throws IOException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkExec(progarray[0]);
- return new ConcreteProcess (progarray, envp);
- }
-
- private final static void checkExit (int status)
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkExit(status);
- }
-
- public native void exit (int status);
-
- public native long freeMemory ();
- public native void gc ();
-
- // Deprecated in 1.1. We implement what the JCL book says.
- public InputStream getLocalizedInputStream (InputStream in)
- {
- return in;
- }
-
- // Deprecated in 1.1. We implement what the JCL book says.
- public OutputStream getLocalizedOutputStream (OutputStream out)
- {
- return out;
- }
-
- public static Runtime getRuntime ()
- {
- return self;
- }
-
- private final void checkLink (String lib)
- {
- if (lib == null)
- throw new NullPointerException ();
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkLink(lib);
- }
-
- private native void _load (String pathname, boolean do_search);
-
- public void load (String pathname)
- {
- _load (pathname, false);
- }
-
- public void loadLibrary (String libname)
- {
- _load (libname, true);
- }
-
- // This is a helper function for the ClassLoader which can load
- // compiled libraries. Returns true if library (which is just the
- // base name -- path searching is done by this function) was loaded,
- // false otherwise.
- native boolean loadLibraryInternal (String libname);
-
- public native void runFinalization ();
-
- // This method is static in JDK 1.1, but isn't listed as static in
- // the books. It is marked as static in the 1.2 docs.
- public static void runFinalizersOnExit (boolean run)
- {
- // The status we pass to the security check is unspecified.
- checkExit (0);
- self.finalize_on_exit = run;
- }
-
- public native long totalMemory ();
- public native void traceInstructions (boolean on);
- public native void traceMethodCalls (boolean on);
-
- // A helper for the constructor.
- private final native void init ();
-
- // The sole constructor.
- private Runtime ()
- {
- init ();
- }
-
- // Private data.
- private static Runtime self = new Runtime ();
- // FIXME: for now this can't be static. If it is, our compiler will
- // mark it as local, and it will be inaccessible to natRuntime.cc.
- private boolean finalize_on_exit;
-}
diff --git a/libjava/java/lang/RuntimeException.java b/libjava/java/lang/RuntimeException.java
deleted file mode 100644
index 2d71ae63e11..00000000000
--- a/libjava/java/lang/RuntimeException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class RuntimeException extends Exception
-{
- public RuntimeException()
- {
- super();
- }
-
- public RuntimeException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/SecurityException.java b/libjava/java/lang/SecurityException.java
deleted file mode 100644
index d481e2908c1..00000000000
--- a/libjava/java/lang/SecurityException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998. */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class SecurityException extends RuntimeException
-{
- public SecurityException()
- {
- super();
- }
-
- public SecurityException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/SecurityManager.java b/libjava/java/lang/SecurityManager.java
deleted file mode 100644
index 9c14552b9c9..00000000000
--- a/libjava/java/lang/SecurityManager.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// SecurityManager
-
-package java.lang;
-
-/**
- * @author Anthony Green <green@cygnus.com>
- * @date October 5, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- */
-
-import java.io.*;
-import java.net.*;
-
-public abstract class SecurityManager
-{
- protected boolean inCheck = false;
-
- public void checkAccept (String host, int port)
- {
- throw new SecurityException();
- }
-
- public void checkAccess (Thread thrd)
- {
- throw new SecurityException();
- }
-
- public void checkAccess (ThreadGroup thrdGroup)
- {
- throw new SecurityException();
- }
-
- public void checkAwtEventQueueAccess ()
- {
- throw new SecurityException();
- }
-
- public void checkConnect (String host, int prt)
- {
- throw new SecurityException();
- }
-
- public void checkConnect (String host, int prt, Object ctx)
- {
- throw new SecurityException();
- }
-
- public void checkCreateClassLoader ()
- {
- throw new SecurityException();
- }
-
- public void checkDelete (String fileName)
- {
- throw new SecurityException();
- }
-
- public void checkExec (String prog)
- {
- throw new SecurityException();
- }
-
- public void checkExit (int stat)
- {
- throw new SecurityException();
- }
-
- public void checkLink (String lib)
- {
- throw new SecurityException();
- }
-
- public void checkListen (int lport)
- {
- throw new SecurityException();
- }
-
- public void checkMemberAccess (Class cl, int mtype)
- {
- throw new SecurityException();
- }
-
- public void checkMulticast (InetAddress maddr)
- {
- throw new SecurityException();
- }
-
- public void checkMulticast (InetAddress maddr, byte ttl)
- {
- throw new SecurityException();
- }
-
- public void checkPackageAccess (String pkg)
- {
- throw new SecurityException();
- }
-
- public void checkPackageDefinition (String pkg)
- {
- throw new SecurityException();
- }
-
- public void checkPermission (java.security.Permission perm)
- {
- throw new SecurityException();
- }
-
- public void checkPrintJobAccess ()
- {
- throw new SecurityException();
- }
-
- public void checkPropertiesAccess ()
- {
- throw new SecurityException();
- }
-
- public void checkPropertyAccess (String prop)
- {
- throw new SecurityException();
- }
-
- public void checkPropertyAccess (String prop, String defval)
- {
- throw new SecurityException();
- }
-
- public void checkRead (FileDescriptor fd)
- {
- throw new SecurityException();
- }
-
- public void checkRead (String fileName)
- {
- throw new SecurityException();
- }
-
- public void checkRead (String fileName, Object ctx)
- {
- throw new SecurityException();
- }
-
- public void checkSecurityAccess (String action)
- {
- throw new SecurityException();
- }
-
- public void checkSetFactory ()
- {
- throw new SecurityException();
- }
-
- public void checkSystemClipboardAccess ()
- {
- throw new SecurityException();
- }
-
- public boolean checkTopLevelWindow (Object window)
- {
- throw new SecurityException();
- }
-
- public void checkWrite (FileDescriptor fd)
- {
- throw new SecurityException();
- }
-
- public void checkWrite (String fileName)
- {
- throw new SecurityException();
- }
-
- // Note: this method is deprecated in JDK 1.2
- protected /* native */ int classDepth (String className)
- {
- Class[] classStack = getClassContext ();
- for (int i = 0; i < classStack.length; i++)
- if (classStack[i].getName().compareTo(className) == 0)
- return i;
-
- return -1;
- }
-
- // Note: this method is deprecated in JDK 1.2
- protected /* native */ int classLoaderDepth ()
- {
- Class[] classStack = getClassContext ();
- for (int i = 0; i < classStack.length; i++)
- if (classStack[i].getClassLoader() != null)
- return i;
-
- return -1;
- }
-
- protected /* native */ ClassLoader currentClassLoader ()
- {
- Class[] classStack = getClassContext ();
- for (int i = 0; i < classStack.length; i++)
- {
- ClassLoader loader = classStack[i].getClassLoader();
- if (loader != null)
- return loader;
- }
-
- return null;
- }
-
- protected /* native */ Class currentLoadedClass ()
- {
- Class[] classStack = getClassContext ();
- for (int i = 0; i < classStack.length; i++)
- {
- ClassLoader loader = classStack[i].getClassLoader();
- if (loader != null)
- return classStack[i];
- }
-
- return null;
- }
-
- protected /* native */ Class[] getClassContext ()
- {
- return new Class[0];
- }
-
- // Note: this method is deprecated in JDK 1.2
- public boolean getInCheck ()
- {
- return inCheck;
- }
-
- public Object getSecurityContext ()
- {
- // FIXME: This has yet to be implemented.
- return new String("");
- }
-
- public ThreadGroup getThreadGroup ()
- {
- return Thread.currentThread().getThreadGroup();
- }
-
- protected boolean inClass (String className)
- {
- return (classDepth (className) != -1);
- }
-
- protected boolean inClassLoader ()
- {
- return (classLoaderDepth () != -1);
- }
-
- protected SecurityManager ()
- {
- if (System.getSecurityManager () != null)
- throw new SecurityException ();
- }
-}
diff --git a/libjava/java/lang/Short.java b/libjava/java/lang/Short.java
deleted file mode 100644
index 6733607da14..00000000000
--- a/libjava/java/lang/Short.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * Includes JDK 1.2 methods.
- */
-
-public final class Short extends Number implements Comparable
-{
- short value;
-
- public final static short MIN_VALUE = -32768;
- public final static short MAX_VALUE = 32767;
-
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public static final Class TYPE = short.class;
-
- private static final long serialVersionUID = 7515723908773894738L;
-
- public Short(short value)
- {
- this.value = value;
- }
-
- public Short(String str)
- throws NumberFormatException
- {
- this.value = parseShort(str, 10);
- }
-
- public byte byteValue()
- {
- return (byte) value;
- }
-
- public short shortValue()
- {
- return value;
- }
-
- public int intValue()
- {
- return value;
- }
-
- public long longValue ()
- {
- return value;
- }
-
- public float floatValue ()
- {
- return (float) value;
- }
-
- public double doubleValue ()
- {
- return (double) value;
- }
-
- public static Short decode(String str)
- throws NumberFormatException
- {
- int i = (Integer.decode(str)).intValue();
- if (i < MIN_VALUE || i > MAX_VALUE)
- throw new NumberFormatException();
- return new Short((short) i);
- }
-
- public static short parseShort(String str, int radix)
- throws NumberFormatException
- {
- int i = Integer.parseInt(str, radix);
- if (i < MIN_VALUE || i > MAX_VALUE)
- throw new NumberFormatException();
- return (short) i;
- }
-
- public static short parseShort(String str)
- throws NumberFormatException
- {
- return parseShort(str, 10);
- }
-
- public static Short valueOf(String str, int radix)
- throws NumberFormatException
- {
- return new Short(parseShort(str, radix));
- }
-
- public static Short valueOf(String str)
- throws NumberFormatException
- {
- return valueOf(str, 10);
- }
-
- // Added in JDK 1.2
- public int compareTo(Short anotherShort)
- {
- return this.value - anotherShort.value;
- }
-
- // Added in JDK 1.2
- public int compareTo(Object o) throws ClassCastException
- {
- if (o instanceof Short)
- return this.value - ((Short) o).value;
- else
- throw new ClassCastException();
- }
-
- public boolean equals(Object obj)
- {
- return (obj != null && (obj instanceof Short)
- && ((Short) obj).value == value);
- }
-
- // Verified that hashCode is returns plain value (see Short_1 test).
- public int hashCode()
- {
- return value;
- }
-
- public String toString()
- {
- return Integer.toString((int) value);
- }
-
- public static String toString(short value)
- {
- return Integer.toString((int) value);
- }
-}
diff --git a/libjava/java/lang/StackOverflowError.java b/libjava/java/lang/StackOverflowError.java
deleted file mode 100644
index f4987c18a20..00000000000
--- a/libjava/java/lang/StackOverflowError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// StackOverflowError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class StackOverflowError extends VirtualMachineError
-{
- public StackOverflowError ()
- {
- super ();
- }
-
- public StackOverflowError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java
deleted file mode 100644
index bc21afd0404..00000000000
--- a/libjava/java/lang/String.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-import java.io.UnsupportedEncodingException;
-import java.io.Serializable;
-import java.lang.Comparable;
-import java.util.Comparator;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date September 4, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete to 1.3.
- */
-
-public final class String implements Serializable, Comparable
-{
- private Object data;
- private int boffset; // Note this is a byte offset - don't use in Java code!
- private int count;
-
- // This is probably not necessary because this class is special cased already
- // but it will avoid showing up as a discrepancy when comparing SUIDs.
- private static final long serialVersionUID = -6849794470754667710L;
-
- static Comparator CASE_INSENSITIVE_ORDER = new Comparator()
- {
- public int compare (Object o1, Object o2)
- {
- return ((String) o1).compareToIgnoreCase ((String) o2);
- }
- };
-
- public String ()
- {
- init();
- }
-
- public String (String value)
- {
- data = value.data;
- boffset = value.boffset;
- count = value.count;
- }
-
- public String (StringBuffer buffer)
- {
- synchronized (buffer)
- {
- buffer.shared = true;
- init (buffer.value, 0, buffer.count, true);
- }
- }
-
- public String (char[] data)
- {
- init(data, 0, data.length, false);
- }
-
- public String (char[] data, int offset, int count)
- {
- init(data, offset, count, false);
- }
-
- public String (byte[] byteArray)
- {
- this (byteArray, 0, byteArray.length);
- }
-
- public String (byte[] byteArray, int offset, int count)
- {
- try
- {
- init (byteArray, offset, count,
- System.getProperty("file.encoding", "8859_1"));
- }
- catch (UnsupportedEncodingException x1)
- {
- // Maybe the default encoding is bad.
- try
- {
- init (byteArray, offset, count, "8859_1");
- }
- catch (UnsupportedEncodingException x2)
- {
- // We know this can't happen.
- }
- }
- }
-
- public String (byte[] byteArray, String enc)
- throws UnsupportedEncodingException
- {
- this (byteArray, 0, byteArray.length, enc);
- }
-
- public String (byte[] byteArray, int offset, int count, String enc)
- throws UnsupportedEncodingException
- {
- init (byteArray, offset, count, enc);
- }
-
- public static String copyValueOf(char[] data)
- {
- return copyValueOf (data, 0, data.length);
- }
-
- public static String copyValueOf(char[] data, int offset, int count)
- {
- String r = new String ();
- r.init(data, offset, count, false);
- return r;
- }
-
- /** @deprecated */
- public String (byte[] ascii, int hibyte)
- {
- init(ascii, hibyte, 0, ascii.length);
- }
-
- /** @deprecated */
- public String (byte[] ascii, int hibyte, int offset, int count)
- {
- init(ascii, hibyte, offset, count);
- }
-
- public String toString ()
- {
- return this;
- }
-
- public native boolean equals (Object anObject);
-
- public native int hashCode ();
-
- public int length ()
- {
- return count;
- }
-
- public native char charAt (int index);
-
- public native void getChars (int srcBegin, int srcEnd,
- char[] dst, int dstBegin);
-
- public byte[] getBytes ()
- {
- try
- {
- return getBytes (System.getProperty("file.encoding", "8859_1"));
- }
- catch (UnsupportedEncodingException x)
- {
- // This probably shouldn't happen, but could if file.encoding
- // is somehow changed to a value we don't understand.
- try
- {
- return getBytes ("8859_1");
- }
- catch (UnsupportedEncodingException x2)
- {
- // This really shouldn't happen, because the 8859_1
- // encoding should always be available.
- throw new InternalError ("couldn't find 8859_1 encoder");
- }
- }
- }
-
- public native byte[] getBytes (String enc)
- throws UnsupportedEncodingException;
-
- /** @deprecated */
- public native void getBytes (int srcBegin, int srcEnd,
- byte[] dst, int dstBegin);
-
- public native char[] toCharArray ();
-
- public native boolean equalsIgnoreCase (String anotherString);
-
- public native int compareTo (String anotherString);
-
- public int compareTo (Object obj)
- {
- return compareTo ((String)obj);
- }
-
- public int compareToIgnoreCase (String str)
- {
- return this.toUpperCase().toLowerCase().compareTo(
- str.toUpperCase().toLowerCase());
- }
-
- public native boolean regionMatches (int toffset,
- String other, int ooffset, int len);
-
- public native boolean regionMatches (boolean ignoreCase, int toffset,
- String other, int ooffset, int len);
-
- public boolean startsWith (String prefix)
- {
- return startsWith (prefix, 0);
- }
-
- public native boolean startsWith (String prefix, int toffset);
-
- public boolean endsWith (String suffix)
- {
- return regionMatches (this.count - suffix.count, suffix, 0, suffix.count);
- }
-
- // No such method specified in the doc, including JDK 1.2.
- // public boolean endsWith (String suffix, int toffset)
- // {
- // return regionMatches (toffset, suffix, 0, suffix.count);
- // }
-
- // The Language Specification, and the JDK 1.2 API docs say that
- // index and lastIndex take an int, while the Class Libraries
- // say they take a char. The former wins ...
-
- public int indexOf (int ch)
- {
- return indexOf (ch, 0);
- }
-
- public native int indexOf (int ch, int fromIndex);
-
- public int indexOf (String str)
- {
- return indexOf (str, 0);
- }
-
- public native int indexOf (String str, int fromIndex);
-
- public int lastIndexOf (int ch)
- {
- return lastIndexOf (ch, count - 1);
- }
-
- public native int lastIndexOf (int ch, int fromIndex);
-
- public int lastIndexOf (String str)
- {
- return lastIndexOf (str, count - str.count);
- }
-
- public int lastIndexOf (String str, int fromIndex)
- {
- if (fromIndex >= count)
- fromIndex = count - str.count;
- for (;; --fromIndex)
- {
- if (fromIndex < 0)
- return -1;
- if (startsWith(str, fromIndex))
- return fromIndex;
- }
- }
-
- public String substring (int beginIndex)
- {
- return substring (beginIndex, count);
- }
-
- public native String substring (int beginIndex, int endIndex);
-
- public native String concat (String str);
-
- public native String replace (char oldChar, char newChar);
-
- public native String toLowerCase ();
-
- public native String toUpperCase ();
-
- public native String trim ();
-
- public static String valueOf (Object obj)
- {
- return obj == null ? "null" : obj.toString();
- }
-
- public static String valueOf (char[] data)
- {
- return valueOf (data, 0, data.length);
- }
-
- public static native String valueOf (char[] data, int offset, int count);
-
- public static String valueOf (boolean b)
- {
- return b ? "true" : "false";
- }
-
- public static native String valueOf (char c);
-
- public static String valueOf (int i)
- {
- return Integer.toString(i);
- }
-
- public static String valueOf (long l)
- {
- return Long.toString(l);
- }
-
- public static String valueOf (float f)
- {
- return Float.toString(f);
- }
-
- public static String valueOf (double d)
- {
- return Double.toString(d);
- }
-
- public native String intern ();
-
- private native void init ();
- private native void init (char[] chars, int offset, int count,
- boolean dont_copy);
- private native void init (byte[] chars, int hibyte, int offset, int count);
- private native void init (byte[] chars, int offset, int count, String enc)
- throws UnsupportedEncodingException;
- private static native void unintern (Object obj);
- private static native void rehash ();
-}
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java
deleted file mode 100644
index 6e00fa7eba0..00000000000
--- a/libjava/java/lang/StringBuffer.java
+++ /dev/null
@@ -1,684 +0,0 @@
-// StringBuffer.java - Growable strings.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-import java.io.Serializable;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 23, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * Updated using online JDK 1.2 docs.
- * Believed complete and correct to JDK 1.2.
- * Merged with Classpath.
- */
-
-/**
- * <code>StringBuffer</code> represents a changeable <code>String</code>.
- * It provides the operations required to modify the
- * <code>StringBuffer</code> including insert, replace, delete, append,
- * and reverse.
- * <P>
- *
- * <code>StringBuffer</code>s are variable-length in nature, so even if
- * you initialize them to a certain size, they can still grow larger than
- * that. <EM>Capacity</EM> indicates the number of characters the
- * <code>StringBuffer</code> can have in it before it has to grow (growing
- * the char array is an expensive operation involving <code>new</code>).
- * <P>
- *
- * Incidentally, the String operator "+" actually is turned into a
- * <code>StringBuffer</code> operation:
- * <BR>
- * <code>a + b</code>
- * <BR>
- * is the same as
- * <BR>
- * <code>new StringBuffer(a).append(b).toString()</code>.
- *
- * @implnote Classpath's StringBuffer is capable of sharing memory with
- * Strings for efficiency. This will help in two instances:
- * first, when a StringBuffer is created from a String but is
- * never changed, and second, when a StringBuffer is converted
- * to a String and the StringBuffer is not changed after that.
- *
- * @since JDK1.0
- * @author Paul Fisher
- * @author John Keiser
- * @author Tom Tromey
- * @see java.lang.String
- */
-public final class StringBuffer implements Serializable
-{
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param bool the <code>boolean</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(boolean)
- */
- public StringBuffer append (boolean bool)
- {
- return append (String.valueOf(bool));
- }
-
- /** Append the <code>char</code> to this <code>StringBuffer</code>.
- * @param c the <code>char</code> to append.
- * @return this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer append (char ch)
- {
- ensureCapacity_unsynchronized (count + 1);
- value[count++] = ch;
- return this;
- }
-
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param inum the <code>int</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(int)
- */
- public StringBuffer append (int inum)
- {
- return append (String.valueOf(inum));
- }
-
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param lnum the <code>long</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(long)
- */
- public StringBuffer append (long lnum)
- {
- return append (String.valueOf(lnum));
- }
-
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param fnum the <code>float</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(float)
- */
- public StringBuffer append (float fnum)
- {
- return append (String.valueOf(fnum));
- }
-
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param dnum the <code>double</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(double)
- */
- public StringBuffer append (double dnum)
- {
- return append (String.valueOf(dnum));
- }
-
- /** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param obj the <code>Object</code> to convert and append.
- * @return this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(java.lang.Object)
- */
- public StringBuffer append (Object obj)
- {
- return append (String.valueOf(obj));
- }
-
- /** Append the <code>String</code> to this <code>StringBuffer</code>.
- * @param str the <code>String</code> to append.
- * @return this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer append (String str)
- {
- if (str == null)
- str = "null";
- int len = str.length();
- ensureCapacity_unsynchronized (count + len);
- str.getChars(0, len, value, count);
- count += len;
- return this;
- }
-
- /** Append the <code>char</code> array to this <code>StringBuffer</code>.
- * @param data the <code>char[]</code> to append.
- * @return this <code>StringBuffer</code>.
- * @exception NullPointerException if <code>str</code> is <code>null</code>.
- */
- public StringBuffer append (char[] data)
- {
- return append (data, 0, data.length);
- }
-
- /** Append the <code>char</code> array to this <code>StringBuffer</code>.
- * @param data the <code>char[]</code> to append.
- * @param offset the place to start grabbing characters from
- * <code>str</code>.
- * @param count the number of characters to get from <code>str</code>.
- * @return this <code>StringBuffer</code>.
- * @exception NullPointerException if <code>str</code> is <code>null</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> or
- * <code>offset+len</code> is out of range.
- */
- public synchronized StringBuffer append (char[] data, int offset, int count)
- {
- ensureCapacity_unsynchronized (this.count + count);
- System.arraycopy(data, offset, value, this.count, count);
- this.count += count;
- return this;
- }
-
- /** Get the total number of characters this <code>StringBuffer</code>
- * can support before it must be grown. Not to be confused with
- * <em>length</em>.
- * @return the capacity of this <code>StringBuffer</code>
- * @see #length()
- * @see #ensureCapacity(int)
- */
- public int capacity ()
- {
- return value.length;
- }
-
- /** Get the character at the specified index.
- * @param index the index of the character to get, starting at 0.
- * @return the character at the specified index.
- * @exception IndexOutOfBoundsException if the desired character index
- * is not between 0 and length() - 1 (inclusive).
- */
- public synchronized char charAt (int index)
- {
- if (index >= count)
- throw new StringIndexOutOfBoundsException (index);
- return value[index];
- }
-
- /** Delete characters from this <code>StringBuffer</code>.
- * <code>delete(10, 12)</code> will delete 10 and 11, but not 12.
- * @param start the first character to delete.
- * @param end the index after the last character to delete.
- * @return this <code>StringBuffer</code>.
- * @exception StringIndexOutOfBoundsException if <code>start</code>
- * or <code>end-1</code> are out of bounds, or if
- * <code>start > end</code>.
- */
- public synchronized StringBuffer delete (int start, int end)
- {
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException (start);
- if (end > count)
- end = count;
- // This will unshare if required.
- ensureCapacity_unsynchronized (count);
- if (count - end != 0)
- System.arraycopy (value, end, value, start, count - end);
- count -= (end - start);
- return this;
- }
-
- /** Delete a character from this <code>StringBuffer</code>.
- * @param index the index of the character to delete.
- * @return this <code>StringBuffer</code>.
- * @exception StringIndexOutOfBoundsException if <code>index</code>
- * is out of bounds.
- */
- public StringBuffer deleteCharAt(int index)
- {
- return delete (index, index + 1);
- }
-
- /** Increase the capacity of this <code>StringBuffer</code>.
- * This will ensure that an expensive growing operation will not occur
- * until <code>minimumCapacity</code> is reached.
- * If the capacity is actually already greater than <code>minimumCapacity</code>
- * @param minimumCapacity the new capacity.
- * @see #capacity()
- */
- public synchronized void ensureCapacity (int minimumCapacity)
- {
- if (shared || minimumCapacity > value.length)
- {
- // We don't want to make a larger vector when `shared' is
- // set. If we do, then setLength becomes very inefficient
- // when repeatedly reusing a StringBuffer in a loop.
- int max = (minimumCapacity > value.length
- ? value.length*2+2
- : value.length);
- minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
- char[] nb = new char[minimumCapacity];
- System.arraycopy(value, 0, nb, 0, count);
- value = nb;
- shared = false;
- }
- }
-
- // ensureCapacity is used by several synchronized methods in StringBuffer.
- // There's no need to synchronize again.
- private void ensureCapacity_unsynchronized (int minimumCapacity)
- {
- if (shared || minimumCapacity > value.length)
- {
- // We don't want to make a larger vector when `shared' is
- // set. If we do, then setLength becomes very inefficient
- // when repeatedly reusing a StringBuffer in a loop.
- int max = (minimumCapacity > value.length
- ? value.length*2+2
- : value.length);
- minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
- char[] nb = new char[minimumCapacity];
- System.arraycopy(value, 0, nb, 0, count);
- value = nb;
- shared = false;
- }
- }
-
- /** Get the specified array of characters.
- * The characters will be copied into the array you pass in.
- * @param srcOffset the index to start copying from in the
- * <code>StringBuffer</code>.
- * @param srcEnd the number of characters to copy.
- * @param dst the array to copy into.
- * @param dstOffset the index to start copying into <code>dst</code>.
- * @exception NullPointerException if dst is null.
- * @exception IndexOutOfBoundsException if any source or target
- * indices are out of range.
- * @see java.lang.System#arrayCopy(java.lang.Object,int,java.lang.Object,int,int)
- */
- public synchronized void getChars (int srcOffset, int srcEnd,
- char[] dst, int dstOffset)
- {
- if (srcOffset < 0 || srcOffset > srcEnd)
- throw new StringIndexOutOfBoundsException (srcOffset);
- int todo = srcEnd - srcOffset;
- if (srcEnd > count || dstOffset + todo > count)
- throw new StringIndexOutOfBoundsException (srcEnd);
- System.arraycopy(value, srcOffset, dst, dstOffset, todo);
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param bool the <code>boolean</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(boolean)
- */
- public StringBuffer insert (int offset, boolean bool)
- {
- return insert (offset, bool ? "true" : "false");
- }
-
- /** Insert the <code>char</code> argument into this <code>StringBuffer</code>.
- * @param offset the place to insert.
- * @param ch the <code>char</code> to insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer insert (int offset, char ch)
- {
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException (offset);
- ensureCapacity_unsynchronized (count+1);
- System.arraycopy(value, offset, value, offset+1, count-offset);
- value[offset] = ch;
- count++;
- return this;
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param inum the <code>int</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(int)
- */
- public StringBuffer insert (int offset, int inum)
- {
- return insert (offset, String.valueOf(inum));
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param lnum the <code>long</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(long)
- */
- public StringBuffer insert (int offset, long lnum)
- {
- return insert (offset, String.valueOf(lnum));
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param fnum the <code>float</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(float)
- */
- public StringBuffer insert (int offset, float fnum)
- {
- return insert (offset, String.valueOf(fnum));
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param dnum the <code>double</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(double)
- */
- public StringBuffer insert (int offset, double dnum)
- {
- return insert (offset, String.valueOf(dnum));
- }
-
- /** Insert the <code>String</code> value of the argument into this <code>StringBuffer</code>.
- * Uses <code>String.valueOf()</code> to convert to
- * <code>String</code>.
- * @param offset the place to insert.
- * @param obj the <code>Object</code> to convert and insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- * @see java.lang.String#valueOf(java.lang.Object)
- */
- public StringBuffer insert (int offset, Object obj)
- {
- return insert (offset, String.valueOf(obj));
- }
-
- /** Insert the <code>String</code> argument into this <code>StringBuffer</code>.
- * @param offset the place to insert.
- * @param str the <code>String</code> to insert.
- * @return this <code>StringBuffer</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer insert (int offset, String str)
- {
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException (offset);
- // Note that using `null' is from JDK 1.2.
- if (str == null)
- str = "null";
- int len = str.length();
- ensureCapacity_unsynchronized (count+len);
- System.arraycopy(value, offset, value, offset+len, count-offset);
- str.getChars(0, len, value, offset);
- count += len;
- return this;
- }
-
- /** Insert the <code>char[]</code> argument into this
- * <code>StringBuffer</code>.
- * @param offset the place to insert.
- * @param data the <code>char[]</code> to insert.
- * @return this <code>StringBuffer</code>.
- * @exception NullPointerException if <code>data</code> is
- * <code>null</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range for this <code>StringBuffer</code>.
- */
- public StringBuffer insert (int offset, char[] data)
- {
- return insert (offset, data, 0, data.length);
- }
-
- /** Insert the <code>char[]</code> argument into this
- * <code>StringBuffer</code>.
- * @param offset the place to insert.
- * @param str the <code>char[]</code> to insert.
- * @param str_offset the index in <code>str</code> to start inserting
- * from.
- * @param len the number of characters to insert.
- * @return this <code>StringBuffer</code>.
- * @exception NullPointerException if <code>str</code> is <code>null</code>.
- * @exception IndexOutOfBoundsException if <code>offset</code> is out
- * of range, for this <code>StringBuffer</code>, or if
- * <code>str_offset</code> or <code>str_offset+len</code>
- * are out of range for <code>str</code>.
- */
- public synchronized StringBuffer insert(int offset, char[] str,
- int str_offset, int len)
- {
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException (offset);
- if (len < 0)
- throw new StringIndexOutOfBoundsException (len);
- if (str_offset < 0 || str_offset + len > str.length)
- throw new StringIndexOutOfBoundsException (str_offset);
- ensureCapacity_unsynchronized (count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- System.arraycopy(str, str_offset, value, offset, len);
- count += len;
- return this;
- }
-
- /** Get the length of the <code>String</code> this
- * <code>StringBuffer</code> would create. Not to be confused with the
- * <em>capacity</em> of the <code>StringBuffer</code>.
- * @return the length of this <code>StringBuffer</code>.
- * @see #capacity()
- * @see #setLength()
- */
- public int length ()
- {
- return count;
- }
-
- /** Replace characters between index <code>start</code> (inclusive) and
- * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
- * is larger than the size of this StringBuffer, all characters after
- * <code>start</code> are replaced.
- * @param start the beginning index of characters to delete (inclusive).
- * @param end the ending index of characters to delete (exclusive).
- * @param str the new <code>String</code> to insert.
- * @return this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer replace (int start, int end, String str)
- {
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException (start);
-
- int len = str.length();
- // Calculate the difference in 'count' after the replace.
- int delta = len - ((end > count ? count : end) - start);
- ensureCapacity_unsynchronized (count + delta);
-
- if (delta != 0 && end < count)
- System.arraycopy(value, end, value, end + delta, count - end);
-
- str.getChars (0, len, value, start);
- count += delta;
- return this;
- }
-
- /** Reverse the characters in this StringBuffer.
- * @return this <code>StringBuffer</code>.
- */
- public synchronized StringBuffer reverse ()
- {
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized (count);
- for (int i = 0; i < count / 2; ++i)
- {
- char c = value[i];
- value[i] = value[count - i - 1];
- value[count - i - 1] = c;
- }
- return this;
- }
-
- /** Set the character at the specified index.
- * @param index the index of the character to set starting at 0.
- * @param ch the value to set that character to.
- * @exception IndexOutOfBoundsException if the specified character
- * index is not between 0 and length() - 1 (inclusive).
- */
- public synchronized void setCharAt (int index, char ch)
- {
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException (index);
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized (count);
- value[index] = ch;
- }
-
- /** Set the length of this StringBuffer.
- * <P>
- * If the new length is greater than the current length, all the new
- * characters are set to '\0'.
- * <P>
- * If the new length is less than the current length, the first
- * <code>newLength</code> characters of the old array will be
- * @param newLength the new length
- * @exception IndexOutOfBoundsException if the new length is
- * negative.
- * @see #length()
- */
- public synchronized void setLength (int newLength)
- {
- if (newLength < 0)
- throw new StringIndexOutOfBoundsException (newLength);
-
- ensureCapacity_unsynchronized (newLength);
- for (int i = count; i < newLength; ++i)
- value[i] = '\0';
- count = newLength;
- }
-
- /** Create a new StringBuffer with default capacity 16.
- * @see JLS 20.13.1
- */
- public StringBuffer ()
- {
- this (DEFAULT_CAPACITY);
- }
-
- /** Create an empty <code>StringBuffer</code> with the specified initial capacity.
- * @param capacity the initial capacity.
- */
- public StringBuffer (int capacity)
- {
- count = 0;
- value = new char[capacity];
- shared = false;
- }
-
- /** Create a new <code>StringBuffer</code> with the characters in the specified <code>String</code>.
- * Initial capacity will be the size of the String plus 16.
- * @param str the <code>String</code> to make a <code>StringBuffer</code> out of.
- * @XXX optimize for sharing.
- */
- public StringBuffer (String str)
- {
- // The documentation is not clear, but experimentation with
- // other implementations indicates that StringBuffer(null)
- // should throw a NullPointerException.
- count = str.length();
- // JLS: The initial capacity of the string buffer is 16 plus the
- // length of the argument string.
- value = new char[count + DEFAULT_CAPACITY];
- str.getChars(0, count, value, 0);
- shared = false;
- }
-
- /**
- * Creates a substring of this StringBuffer, starting at a specified index
- * and ending at the end of this StringBuffer.
- *
- * @param beginIndex index to start substring (base 0)
- *
- * @return new String which is a substring of this StringBuffer
- *
- * @exception StringIndexOutOfBoundsException
- * if (beginIndex < 0 || beginIndex > this.length())
- */
- public String substring (int beginIndex)
- {
- return substring (beginIndex, count);
- }
-
- /**
- * Creates a substring of this StringBuffer, starting at a specified index
- * and ending at one character before a specified index.
- *
- * @param beginIndex index to start substring (base 0)
- * @param endIndex index after the last character to be
- * copied into the substring
- *
- * @return new String which is a substring of this StringBuffer
- *
- * @exception StringIndexOutOfBoundsException
- * if (beginIndex < 0 || endIndex > this.length() || beginIndex > endIndex)
- */
- public synchronized String substring (int beginIndex, int endIndex)
- {
- if (beginIndex < 0 || endIndex > count || beginIndex > endIndex)
- throw new StringIndexOutOfBoundsException ();
- // FIXME: for libgcj it would be possible, and more efficient, to
- // enable sharing here.
- return new String (value, beginIndex, endIndex - beginIndex);
- }
-
- /** Convert this <code>StringBuffer</code> to a <code>String</code>.
- * @return the characters in this StringBuffer
- */
- public String toString ()
- {
- // Note: in libgcj this causes the StringBuffer to be shared. In
- // Classpath it does not.
- return new String (this);
- }
-
- // Index of next available character. Note that this has
- // permissions set this way so that String can get the value.
- int count;
-
- // The buffer. Note that this has permissions set this way so that
- // String can get the value.
- char[] value;
-
- // True if we need to copy the buffer before writing to it again.
- // FIXME: JDK 1.2 doesn't specify this. The new buffer-growing
- // semantics make this less useful in that case, too. Note that
- // this has permissions set this way so that String can get the
- // value.
- boolean shared;
-
- static final long serialVersionUID = 3388685877147921107L;
- private final static int DEFAULT_CAPACITY = 16; // JLS 20.13.1
-}
diff --git a/libjava/java/lang/StringIndexOutOfBoundsException.java b/libjava/java/lang/StringIndexOutOfBoundsException.java
deleted file mode 100644
index 9c0c60ff758..00000000000
--- a/libjava/java/lang/StringIndexOutOfBoundsException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class StringIndexOutOfBoundsException extends IndexOutOfBoundsException
-{
- public StringIndexOutOfBoundsException()
- {
- super();
- }
-
- public StringIndexOutOfBoundsException(int index)
- {
- this("String index out of range: " + index);
- }
-
- public StringIndexOutOfBoundsException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java
deleted file mode 100644
index 52dbe75988e..00000000000
--- a/libjava/java/lang/System.java
+++ /dev/null
@@ -1,171 +0,0 @@
-// System.java - System-specific info.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FilterInputStream;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.util.Properties;
-import java.util.PropertyPermission;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 27, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: 1.1. Some 1.2 methods missing. Properties code not fully
- * implemented.
- */
-
-public final class System
-{
- public static native void arraycopy (Object src, int srcOffset,
- Object dst, int dstOffset,
- int count);
-
- public static native long currentTimeMillis ();
-
- public static void exit (int status)
- {
- Runtime.getRuntime().exit(status);
- }
-
- public static void gc ()
- {
- Runtime.getRuntime().gc();
- }
-
- // Marked deprecated in 1.1. We implement what the JCL book says.
- public static String getenv (String name)
- {
- throw new Error ();
- }
-
- private static native void init_properties ();
-
- public static Properties getProperties ()
- {
- if (secman != null)
- secman.checkPropertiesAccess();
- init_properties ();
- return properties;
- }
-
- public static String getProperty (String property)
- {
- if (secman != null)
- secman.checkPropertyAccess(property);
- init_properties ();
- return properties.getProperty(property);
- }
-
- public static String getProperty (String property, String defval)
- {
- if (secman != null)
- secman.checkPropertyAccess(property, defval);
- init_properties ();
- return properties.getProperty(property, defval);
- }
-
- public static SecurityManager getSecurityManager ()
- {
- return secman;
- }
-
- public static native int identityHashCode (Object obj);
-
- public static void load (String pathname)
- {
- Runtime.getRuntime().load(pathname);
- }
-
- public static void loadLibrary (String libname)
- {
- Runtime.getRuntime().loadLibrary(libname);
- }
-
- public static void runFinalization ()
- {
- Runtime.getRuntime().runFinalization();
- }
-
- // Marked as deprecated in 1.2.
- public static void runFinalizersOnExit (boolean run)
- {
- Runtime.getRuntime().runFinalizersOnExit(run);
- }
-
- private static void checkSetIO ()
- {
- // In 1.1, we are supposed to call checkExec, but the argument is
- // not specified. In 1.2, we are supposed to use checkPermission,
- // which doesn't exist in 1.1.
- if (secman != null)
- secman.checkExec("");
- }
-
- public static native void setErr (PrintStream newErr);
- public static native void setIn (InputStream newIn);
- public static native void setOut (PrintStream newOut);
-
- public static void setProperties (Properties props)
- {
- if (secman != null)
- secman.checkPropertiesAccess();
- // We might not have initialized yet.
- prop_init = true;
- properties = props;
- }
-
- public static String setProperty (String key, String value)
- {
- if (secman != null)
- secman.checkPermission (new PropertyPermission (key, "write"));
- return (String) properties.setProperty (key, value);
- }
-
- // TODO 1.2.
- // public static String mapLibraryName (String libname);
-
- public static void setSecurityManager (SecurityManager s)
- {
- if (secman != null)
- throw new SecurityException ();
- secman = s;
- }
-
- // Public data.
- public static final InputStream in = new BufferedInputStream (new FileInputStream (FileDescriptor.in));
-
- public static final PrintStream out = new PrintStream (new BufferedOutputStream (new FileOutputStream (FileDescriptor.out)), true);
-
- public static final PrintStream err = new PrintStream (new BufferedOutputStream (new FileOutputStream (FileDescriptor.err)), true);
-
- // Don't allow System objects to be made.
- private System ()
- {
- }
-
- // Private data.
- private static SecurityManager secman = null;
- private static Properties properties = null;
- // This boolean is only required for 1.1 and earlier. After 1.1, a
- // null properties should always be re-initialized.
- private static boolean prop_init = false;
-}
diff --git a/libjava/java/lang/Thread.java b/libjava/java/lang/Thread.java
deleted file mode 100644
index 3ee03093ac5..00000000000
--- a/libjava/java/lang/Thread.java
+++ /dev/null
@@ -1,300 +0,0 @@
-// Thread.java - Thread class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 24, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete to version 1.1, with caveats
- * Known problems:
- * No attempt was made to implement suspend/resume
- * (this could be done in some cases)
- * Various methods which assume a VM are likewise unimplemented
- * We do implement stop() even though it is deprecated.
- */
-
-public class Thread implements Runnable
-{
- public final static int MAX_PRIORITY = 10;
- public final static int MIN_PRIORITY = 1;
- public final static int NORM_PRIORITY = 5;
-
- public static int activeCount ()
- {
- return currentThread().getThreadGroup().activeCount();
- }
-
- public void checkAccess ()
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkAccess(this);
- }
-
- public native int countStackFrames ();
- public static native Thread currentThread ();
- public native void destroy ();
-
- public static void dumpStack ()
- {
- (new Exception ("Stack trace")).printStackTrace ();
- }
-
- public static int enumerate (Thread[] threads)
- {
- return currentThread().group.enumerate(threads);
- }
-
- public final String getName ()
- {
- return name;
- }
-
- public final int getPriority ()
- {
- return priority;
- }
-
- public final ThreadGroup getThreadGroup ()
- {
- return group;
- }
-
- public native void interrupt ();
-
- public static boolean interrupted ()
- {
- return currentThread().isInterrupted (true);
- }
-
- // Check the threads interrupted status. Note that this does not clear the
- // thread's interrupted status (per JDK 1.2 online API documentation).
- public boolean isInterrupted ()
- {
- return interrupt_flag;
- }
-
- public final boolean isAlive ()
- {
- return alive_flag;
- }
-
- public final boolean isDaemon ()
- {
- return daemon_flag;
- }
-
- public final void join () throws InterruptedException
- {
- join (0, 0);
- }
-
- public final void join (long timeout) throws InterruptedException
- {
- join (timeout, 0);
- }
-
- public final native void join (long timeout, int nanos)
- throws InterruptedException;
-
- public final native void resume ();
-
- // This method exists only to avoid a warning from the C++ compiler.
- private static final native void run_ (Object obj);
- private final native void finish_ ();
-
- // Check the thread's interrupted status. If clear_flag is true, the
- // thread's interrupted status is also cleared.
- private boolean isInterrupted (boolean clear_flag)
- {
- boolean r = interrupt_flag;
- if (clear_flag && r)
- {
- // Only clear the flag if we saw it as set. Otherwise this could
- // potentially cause us to miss an interrupt in a race condition,
- // because this method is not synchronized.
- interrupt_flag = false;
- }
- return r;
- }
-
- public void run ()
- {
- if (runnable != null)
- runnable.run();
- }
-
- public final void setDaemon (boolean status)
- {
- checkAccess ();
- if (isAlive ())
- throw new IllegalThreadStateException ();
- daemon_flag = status;
- }
-
- // TODO12:
- // public ClassLoader getContextClassLoader()
- // {
- // }
-
- // TODO12:
- // public void setContextClassLoader(ClassLoader cl)
- // {
- // }
-
- public final void setName (String n)
- {
- checkAccess ();
- // The Class Libraries book says ``threadName cannot be null''. I
- // take this to mean NullPointerException.
- if (n == null)
- throw new NullPointerException ();
- name = n;
- }
-
- public final native void setPriority (int newPriority);
-
- public static void sleep (long timeout) throws InterruptedException
- {
- sleep (timeout, 0);
- }
-
- public static native void sleep (long timeout, int nanos)
- throws InterruptedException;
- public synchronized native void start ();
-
- public final void stop ()
- {
- // Argument doesn't matter, because this is no longer
- // supported.
- stop (null);
- }
-
- public final synchronized native void stop (Throwable e);
- public final native void suspend ();
-
- private final native void initialize_native ();
-
- private final synchronized static String gen_name ()
- {
- String n;
- n = "Thread-" + nextThreadNumber;
- ++nextThreadNumber;
- return n;
- }
-
- public Thread (ThreadGroup g, Runnable r, String n)
- {
- Thread current = currentThread ();
-
- if (g == null)
- {
- // If CURRENT is null, then we are bootstrapping the first thread.
- // Use ThreadGroup.root, the main threadgroup.
- if (current == null)
- group = ThreadGroup.root;
- else
- group = current.getThreadGroup();
- }
- else
- group = g;
-
- group.checkAccess();
-
- // The Class Libraries book says ``threadName cannot be null''. I
- // take this to mean NullPointerException.
- if (n == null)
- throw new NullPointerException ();
-
- name = n;
- group.addThread(this);
- runnable = r;
-
- data = null;
- interrupt_flag = false;
- alive_flag = false;
- startable_flag = true;
-
- if (current != null)
- {
- daemon_flag = current.isDaemon();
- int gmax = group.getMaxPriority();
- int pri = current.getPriority();
- priority = (gmax < pri ? gmax : pri);
- }
- else
- {
- daemon_flag = false;
- priority = NORM_PRIORITY;
- }
-
- initialize_native ();
- }
-
- public Thread ()
- {
- this (null, null, gen_name ());
- }
-
- public Thread (Runnable r)
- {
- this (null, r, gen_name ());
- }
-
- public Thread (String n)
- {
- this (null, null, n);
- }
-
- public Thread (ThreadGroup g, Runnable r)
- {
- this (g, r, gen_name ());
- }
-
- public Thread (ThreadGroup g, String n)
- {
- this (g, null, n);
- }
-
- public Thread (Runnable r, String n)
- {
- this (null, r, n);
- }
-
- public String toString ()
- {
- return "Thread[" + name + "," + priority + "," +
- (group == null ? "" : group.getName()) + "]";
- }
-
- public static native void yield ();
-
- // Private data.
- private ThreadGroup group;
- private String name;
- private Runnable runnable;
- private int priority;
- private boolean daemon_flag;
- boolean interrupt_flag;
- private boolean alive_flag;
- private boolean startable_flag;
-
- // Our native data.
- private Object data;
-
- // Next thread number to assign.
- private static int nextThreadNumber = 0;
-}
diff --git a/libjava/java/lang/ThreadDeath.java b/libjava/java/lang/ThreadDeath.java
deleted file mode 100644
index ae0e3fb40f6..00000000000
--- a/libjava/java/lang/ThreadDeath.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// ThreadDeath.java - Special exception registering Thread death.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date August 26, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete to version 1.1
- */
-
-public class ThreadDeath extends Error
-{
- public ThreadDeath ()
- {
- super ();
- }
-}
diff --git a/libjava/java/lang/ThreadGroup.java b/libjava/java/lang/ThreadGroup.java
deleted file mode 100644
index 52c69525098..00000000000
--- a/libjava/java/lang/ThreadGroup.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/* java.lang.ThreadGroup
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.lang;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Complete for 1.2. Some parts from the JDK 1.0 spec only are
- * not implemented.
- */
-
-/**
- * ThreadGroup allows you to group Threads together. There is a
- * hierarchy of ThreadGroups, and only the initial ThreadGroup has
- * no parent. A Thread may access information about its own
- * ThreadGroup, but not its parents or others outside the tree.
- *
- * @author John Keiser
- * @author Tom Tromey
- * @author Bryce McKinlay
- * @version 1.2.0
- * @since JDK1.0
- */
-
-public class ThreadGroup
-{
- /* The Initial, top-level ThreadGroup. */
- static ThreadGroup root = new ThreadGroup();
- /* This flag is set if an uncaught exception occurs. The runtime should
- check this and exit with an error status if it is set. */
- static boolean had_uncaught_exception = false;
-
- private ThreadGroup parent;
- private String name;
- private Vector threads = new Vector();
- private Vector groups = new Vector();
- private boolean daemon_flag = false;
- private int maxpri = Thread.MAX_PRIORITY;
-
- private ThreadGroup()
- {
- name = "main";
- }
-
- /** Create a new ThreadGroup using the given name and the
- * current thread's ThreadGroup as a parent.
- * @param name the name to use for the ThreadGroup.
- */
- public ThreadGroup(String name)
- {
- this (Thread.currentThread().getThreadGroup(), name);
- }
-
- /** Create a new ThreadGroup using the given name and
- * parent group.
- * @param name the name to use for the ThreadGroup.
- * @param parent the ThreadGroup to use as a parent.
- * @exception NullPointerException if parent is null.
- * @exception SecurityException if you cannot change
- * the intended parent group.
- */
- public ThreadGroup(ThreadGroup parent, String name)
- {
- parent.checkAccess();
- this.parent = parent;
- if (parent.isDestroyed())
- throw new IllegalArgumentException ();
- this.name = name;
- maxpri = parent.maxpri;
- daemon_flag = parent.daemon_flag;
- parent.addGroup(this);
- }
-
- /** Get the name of this ThreadGroup.
- * @return the name of this ThreadGroup.
- */
- public final String getName()
- {
- return name;
- }
-
- /** Get the parent of this ThreadGroup.
- * @return the parent of this ThreadGroup.
- */
- public final ThreadGroup getParent()
- {
- return parent;
- }
-
- /** Set the maximum priority for Threads in this ThreadGroup. setMaxPriority
- * can only be used to reduce the current maximum. If maxpri
- * is greater than the current Maximum, the current value is not changed.
- * Calling this does not effect threads already in this ThreadGroup.
- * @param maxpri the new maximum priority for this ThreadGroup.
- * @exception SecurityException if you cannoy modify this ThreadGroup.
- */
- public final synchronized void setMaxPriority(int maxpri)
- {
- checkAccess();
- if (maxpri < this.maxpri
- && maxpri >= Thread.MIN_PRIORITY
- && maxpri <= Thread.MAX_PRIORITY)
- {
- this.maxpri = maxpri;
- }
- }
-
- /** Get the maximum priority of Threads in this ThreadGroup.
- * @return the maximum priority of Threads in this ThreadGroup.
- */
- public final int getMaxPriority()
- {
- return maxpri;
- }
-
- /** Set whether this ThreadGroup is a daemon group. A daemon
- * group will be destroyed when its last thread is stopped and
- * its last thread group is destroyed.
- * @specnote The Java API docs indicate that the group is destroyed
- * when either of those happen, but that doesn't make
- * sense.
- * @param daemon whether this ThreadGroup should be a daemon group.
- * @exception SecurityException if you cannoy modify this ThreadGroup.
- */
- public final void setDaemon (boolean daemon)
- {
- checkAccess();
- daemon_flag = daemon;
- }
-
- /** Tell whether this ThreadGroup is a daemon group. A daemon
- * group will be destroyed when its last thread is stopped and
- * its last thread group is destroyed.
- * @specnote The Java API docs indicate that the group is destroyed
- * when either of those happen, but that doesn't make
- * sense.
- * @return whether this ThreadGroup is a daemon group.
- */
- public final boolean isDaemon()
- {
- return daemon_flag;
- }
-
- /** Tell whether this ThreadGroup has been destroyed or not.
- * @return whether this ThreadGroup has been destroyed or not.
- */
- public synchronized boolean isDestroyed()
- {
- return parent == null && this != root;
- }
-
- /** Check whether this ThreadGroup is an ancestor of the
- * specified ThreadGroup, or if they are the same.
- *
- * @param g the group to test on.
- * @return whether this ThreadGroup is a parent of the
- * specified group.
- */
- public final boolean parentOf(ThreadGroup tg)
- {
- while (tg != null)
- {
- if (tg == this)
- return true;
- tg = tg.parent;
- }
- return false;
- }
-
- /** Return the total number of active threads in this ThreadGroup
- * and all its descendants.<P>
- *
- * This cannot return an exact number, since the status of threads
- * may change after they were counted. But it should be pretty
- * close.<P>
- *
- * @return the number of active threads in this ThreadGroup and
- * its descendants.
- * @specnote it isn't clear what the definition of an "Active" thread is.
- * Current JDKs regard all threads as active until they are
- * finished, regardless of whether the thread has been started
- * or not. We implement this behaviour.
- * There is open JDC bug, <A HREF="http://developer.java.sun.com/developer/bugParade/bugs/4089701.html">
- * 4089701</A>, regarding this issue.
- *
- */
- public synchronized int activeCount()
- {
- int total = threads.size();
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup g = (ThreadGroup) groups.elementAt(i);
- total += g.activeCount();
- }
- return total;
- }
-
- /** Get the number of active groups in this ThreadGroup. This group
- * itself is not included in the count.
- * @specnote it is unclear what exactly constitutes an
- * active ThreadGroup. Currently we assume that
- * all sub-groups are active, per current JDKs.
- * @return the number of active groups in this ThreadGroup.
- */
- public synchronized int activeGroupCount()
- {
- int total = groups.size();
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup g = (ThreadGroup) groups.elementAt(i);
- total += g.activeGroupCount();
- }
- return total;
- }
-
- /** Copy all of the active Threads from this ThreadGroup and
- * its descendants into the specified array. If the array is
- * not big enough to hold all the Threads, extra Threads will
- * simply not be copied.
- *
- * @param threads the array to put the threads into.
- * @return the number of threads put into the array.
- */
- public int enumerate(Thread[] threads)
- {
- return enumerate(threads, 0, true);
- }
-
- /** Copy all of the active Threads from this ThreadGroup and,
- * if desired, from its descendants, into the specified array.
- * If the array is not big enough to hold all the Threads,
- * extra Threads will simply not be copied.
- *
- * @param threads the array to put the threads into.
- * @param useDescendants whether to count Threads in this
- * ThreadGroup's descendants or not.
- * @return the number of threads put into the array.
- */
- public int enumerate(Thread[] threads, boolean useDescendants)
- {
- return enumerate(threads, 0, useDescendants);
- }
-
- // This actually implements enumerate.
- private synchronized int enumerate(Thread[] list, int next_index,
- boolean recurse)
- {
- Enumeration e = threads.elements();
- while (e.hasMoreElements() && next_index < list.length)
- list[next_index++] = (Thread) e.nextElement();
- if (recurse && next_index != list.length)
- {
- e = groups.elements();
- while (e.hasMoreElements() && next_index < list.length)
- {
- ThreadGroup g = (ThreadGroup) e.nextElement();
- next_index = g.enumerate(list, next_index, true);
- }
- }
- return next_index;
- }
-
- /** Copy all active ThreadGroups that are descendants of this
- * ThreadGroup into the specified array. If the array is not
- * large enough to hold all active ThreadGroups, extra
- * ThreadGroups simply will not be copied.
- *
- * @param groups the array to put the ThreadGroups into.
- * @return the number of ThreadGroups copied into the array.
- */
- public int enumerate(ThreadGroup[] groups)
- {
- return enumerate(groups, 0, true);
- }
-
- /** Copy all active ThreadGroups that are children of this
- * ThreadGroup into the specified array, and if desired, also
- * copy all active descendants into the array. If the array
- * is not large enough to hold all active ThreadGroups, extra
- * ThreadGroups simply will not be copied.
- *
- * @param groups the array to put the ThreadGroups into.
- * @param recurse whether to include all descendants
- * of this ThreadGroup's children in determining
- * activeness.
- * @return the number of ThreadGroups copied into the array.
- */
- public int enumerate(ThreadGroup[] groups, boolean recurse)
- {
- return enumerate(groups, 0, recurse);
- }
-
- // This actually implements enumerate.
- private synchronized int enumerate (ThreadGroup[] list, int next_index,
- boolean recurse)
- {
- Enumeration e = groups.elements();
- while (e.hasMoreElements() && next_index < list.length)
- {
- ThreadGroup g = (ThreadGroup) e.nextElement();
- list[next_index++] = g;
- if (recurse && next_index != list.length)
- next_index = g.enumerate(list, next_index, true);
- }
- return next_index;
- }
-
- /** Interrupt all Threads in this ThreadGroup and its sub-groups.
- * @exception SecurityException if you cannot modify this
- * ThreadGroup or any of its Threads or children
- * ThreadGroups.
- * @since JDK1.2
- */
- public final synchronized void interrupt()
- {
- checkAccess();
- for (int i=0; i < threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- t.interrupt();
- }
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.interrupt();
- }
- }
-
- /** Stop all Threads in this ThreadGroup and its descendants.
- * @exception SecurityException if you cannot modify this
- * ThreadGroup or any of its Threads or children
- * ThreadGroups.
- * @deprecated This method calls Thread.stop(), which is dangerous.
- */
- public final synchronized void stop()
- {
- checkAccess();
- for (int i=0; i<threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- t.stop();
- }
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.stop();
- }
- }
-
- /** Suspend all Threads in this ThreadGroup and its descendants.
- * @exception SecurityException if you cannot modify this
- * ThreadGroup or any of its Threads or children
- * ThreadGroups.
- * @deprecated This method calls Thread.suspend(), which is dangerous.
- */
- public final synchronized void suspend()
- {
- checkAccess();
- for (int i=0; i<threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- t.suspend();
- }
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.suspend();
- }
- }
-
- /** Resume all Threads in this ThreadGroup and its descendants.
- * @exception SecurityException if you cannot modify this
- * ThreadGroup or any of its Threads or children
- * ThreadGroups.
- * @deprecated This method relies on Thread.suspend(), which is dangerous.
- */
- public final synchronized void resume()
- {
- checkAccess();
- for (int i=0; i < threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- t.resume();
- }
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.resume();
- }
- }
-
- // This is a helper that is used to implement the destroy method.
- private synchronized void checkDestroy ()
- {
- if (! threads.isEmpty())
- throw new IllegalThreadStateException ("ThreadGroup has threads");
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.checkDestroy();
- }
- }
-
- /** Destroy this ThreadGroup. There can be no Threads in it,
- * and none of its descendants (sub-groups) may have Threads in them.
- * All its descendants will be destroyed as well.
- * @exception IllegalThreadStateException if the ThreadGroup or
- * its descendants have Threads remaining in them, or
- * if the ThreadGroup in question is already destroyed.
- * @exception SecurityException if you cannot modify this
- * ThreadGroup or any of its descendants.
- */
- public final synchronized void destroy()
- {
- checkAccess();
- if (isDestroyed())
- throw new IllegalThreadStateException("Already destroyed.");
- checkDestroy ();
- if (parent != null)
- parent.removeGroup(this);
- parent = null;
-
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.destroy();
- }
- }
-
- /** Print out information about this ThreadGroup to System.out.
- */
- public void list()
- {
- list("");
- }
-
- private synchronized void list(String indentation)
- {
- System.out.print(indentation);
- System.out.println(toString ());
- String sub = indentation + " ";
- for (int i=0; i < threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- System.out.print(sub);
- System.out.println(t.toString());
- }
- for (int i=0; i < groups.size(); i++)
- {
- ThreadGroup tg = (ThreadGroup) groups.elementAt(i);
- tg.list(sub);
- }
- }
-
- /** When a Thread in this ThreadGroup does not catch an exception,
- * this method of the ThreadGroup is called.<P>
- *
- * ThreadGroup's implementation does the following:<BR>
- * <OL>
- * <LI>If there is a parent ThreadGroup, call uncaughtException()
- * in the parent.</LI>
- * <LI>If the Throwable passed is a ThreadDeath, don't do
- * anything.</LI>
- * <LI>Otherwise, call <CODE>exception.printStackTrace().</CODE></LI>
- * </OL>
- *
- * @param thread the thread that exited.
- * @param exception the uncaught exception.
- */
- public void uncaughtException(Thread thread, Throwable t)
- {
- if (parent != null)
- parent.uncaughtException (thread, t);
- else if (! (t instanceof ThreadDeath))
- {
- t.printStackTrace();
- had_uncaught_exception = true;
- }
- }
-
- /** Tell the VM whether it may suspend Threads in low memory
- * situations.
- * @deprecated This method is unimplemented, because it would rely on
- * suspend(), which is deprecated. There is no way for a Java
- * program to determine whether this has any effect whatsoever,
- * so we don't need it.
- * @return false
- */
- public boolean allowThreadSuspension(boolean allow)
- {
- return false;
- }
-
- /** Get a human-readable representation of this ThreadGroup.
- * @return a String representing this ThreadGroup.
- * @specnote Language Spec and Class Libraries book disagree a bit here.
- * We follow the Spec, but add "ThreadGroup" per the book. We
- * include "java.lang" based on the list() example in the Class
- * Libraries book.
- */
- public String toString ()
- {
- return "java.lang.ThreadGroup[name=" + name +
- ",maxpri=" + maxpri + "]";
- }
-
- /** Find out if the current Thread can modify this ThreadGroup.
- * Calls the current SecurityManager's checkAccess() method to
- * find out. If there is none, it assumes everything's OK.
- * @exception SecurityException if the current Thread cannot
- * modify this ThreadGroup.
- */
- public final void checkAccess()
- {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null)
- sm.checkAccess(this);
- }
-
- // This is called to add a Thread to our internal list.
- final synchronized void addThread(Thread t)
- {
- if (isDestroyed())
- throw new IllegalThreadStateException ("ThreadGroup is destroyed");
-
- threads.addElement(t);
- }
-
- // This is called to remove a Thread from our internal list.
- final synchronized void removeThread(Thread t)
- {
- if (isDestroyed())
- throw new IllegalThreadStateException ();
-
- threads.removeElement(t);
- // Daemon groups are automatically destroyed when all their threads die.
- if (daemon_flag && groups.size() == 0 && threads.size() == 0)
- {
- // We inline destroy to avoid the access check.
- if (parent != null)
- parent.removeGroup(this);
- parent = null;
- }
- }
-
- // This is called to add a ThreadGroup to our internal list.
- final synchronized void addGroup(ThreadGroup g)
- {
- groups.addElement(g);
- }
-
- // This is called to remove a ThreadGroup from our internal list.
- final synchronized void removeGroup(ThreadGroup g)
- {
- groups.removeElement(g);
- // Daemon groups are automatically destroyed when all their threads die.
- if (daemon_flag && groups.size() == 0 && threads.size() == 0)
- {
- // We inline destroy to avoid the access check.
- if (parent != null)
- parent.removeGroup(this);
- parent = null;
- }
- }
-}
diff --git a/libjava/java/lang/Throwable.java b/libjava/java/lang/Throwable.java
deleted file mode 100644
index 610a499a2cb..00000000000
--- a/libjava/java/lang/Throwable.java
+++ /dev/null
@@ -1,169 +0,0 @@
-// Throwable.java - Superclass for all exceptions.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.io.OutputStreamWriter;
-import java.io.OutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 30, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Sufficient for compiled code, but methods applicable to
- * bytecode not implemented. JDK 1.1.
- */
-
-/* A CPlusPlusDemangler sits on top of a PrintWriter. All input is
- * passed through the "c++filt" program (part of GNU binutils) which
- * demangles internal symbols to their C++ source form.
- *
- * Closing a CPlusPlusDemangler doesn't close the underlying
- * PrintWriter; it does, however close underlying process and flush
- * all its buffers, so it's possible to guarantee that after a
- * CPlusPlusDemangler has been closed no more will ever be written to
- * the underlying PrintWriter.
- *
- * FIXME: This implictly converts data from the input stream, which is
- * a stream of characters, to a stream of bytes. We need a way of
- * handling Unicode characters in demangled identifiers. */
-
-class CPlusPlusDemangler extends OutputStream
-{
- java.io.OutputStream procOut;
- java.io.InputStream procIn;
- java.lang.Process proc;
- PrintWriter p;
-
- /* The number of bytes written to the underlying PrintWriter. This
- provides a crude but fairly portable way to determine whether or
- not the attempt to exec c++filt worked. */
- public int written = 0;
-
- CPlusPlusDemangler (PrintWriter writer) throws IOException
- {
- p = writer;
- proc = Runtime.getRuntime ().exec ("c++filt");
- procOut = proc.getOutputStream ();
- procIn = proc.getInputStream ();
- }
-
- public void write (int b) throws IOException
- {
- procOut.write (b);
- while (procIn.available () != 0)
- {
- int c = procIn.read ();
- if (c == -1)
- break;
- else
- {
- p.write (c);
- written++;
- }
- }
- }
-
- public void close () throws IOException
- {
- procOut.close ();
- int c;
- while ((c = procIn.read ()) != -1)
- {
- p.write (c);
- written++;
- }
- p.flush ();
- try
- {
- proc.waitFor ();
- }
- catch (InterruptedException _)
- {
- }
- }
-}
-
-public class Throwable implements Serializable
-{
- public native Throwable fillInStackTrace ();
-
- public String getLocalizedMessage ()
- {
- return getMessage ();
- }
-
- public String getMessage ()
- {
- return detailMessage;
- }
-
- public void printStackTrace ()
- {
- printStackTrace (System.err);
- }
-
- public void printStackTrace (PrintStream ps)
- {
- PrintWriter writer = new PrintWriter (ps);
- printStackTrace (writer);
- }
-
- public void printStackTrace (PrintWriter wr)
- {
- try
- {
- CPlusPlusDemangler cPlusPlusFilter = new CPlusPlusDemangler (wr);
- PrintWriter writer = new PrintWriter (cPlusPlusFilter);
- printRawStackTrace (writer);
- writer.close ();
- if (cPlusPlusFilter.written == 0) // The demangler has failed...
- printRawStackTrace (wr);
- }
- catch (Exception e1)
- {
- printRawStackTrace (wr);
- }
- }
-
- public Throwable ()
- {
- detailMessage = null;
- fillInStackTrace ();
- }
-
- public Throwable (String message)
- {
- detailMessage = message;
- fillInStackTrace ();
- }
-
- public String toString ()
- {
- return ((detailMessage == null)
- ? getClass().getName()
- : getClass().getName() + ": " + getMessage ());
- }
-
- private native final void printRawStackTrace (PrintWriter wr);
-
- // Name of this field comes from serialization spec.
- private String detailMessage;
-
- private transient byte stackTrace[];
- private static final long serialVersionUID = -3042686055658047285L;
-}
diff --git a/libjava/java/lang/UnknownError.java b/libjava/java/lang/UnknownError.java
deleted file mode 100644
index a7d1e20881a..00000000000
--- a/libjava/java/lang/UnknownError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// UnknownError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class UnknownError extends VirtualMachineError
-{
- public UnknownError ()
- {
- super ();
- }
-
- public UnknownError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/UnsatisfiedLinkError.java b/libjava/java/lang/UnsatisfiedLinkError.java
deleted file mode 100644
index 07456422c3e..00000000000
--- a/libjava/java/lang/UnsatisfiedLinkError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// UnsatisfiedLinkError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class UnsatisfiedLinkError extends LinkageError
-{
- public UnsatisfiedLinkError ()
- {
- super ();
- }
-
- public UnsatisfiedLinkError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/UnsupportedOperationException.java b/libjava/java/lang/UnsupportedOperationException.java
deleted file mode 100644
index f321fd08ef9..00000000000
--- a/libjava/java/lang/UnsupportedOperationException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class UnsupportedOperationException extends RuntimeException
-{
- public UnsupportedOperationException()
- {
- super();
- }
-
- public UnsupportedOperationException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/lang/VerifyError.java b/libjava/java/lang/VerifyError.java
deleted file mode 100644
index 0e89e6028e5..00000000000
--- a/libjava/java/lang/VerifyError.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// VerifyError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class VerifyError extends LinkageError
-{
- public VerifyError ()
- {
- super ();
- }
-
- public VerifyError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/VirtualMachineError.java b/libjava/java/lang/VirtualMachineError.java
deleted file mode 100644
index 916842c8562..00000000000
--- a/libjava/java/lang/VirtualMachineError.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// VirtualMachineError.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-/* FIXME: We should consider adding some special error message when this
- * exception is thrown, or maybe if it being caught at top-level. Such
- * a message would direct the user to send a bug report to
- * gcj-bugs@cygnus.com, or something like that. --KKT */
-
-public abstract class VirtualMachineError extends Error
-{
- public VirtualMachineError ()
- {
- super ();
- }
-
- public VirtualMachineError (String msg)
- {
- super (msg);
- }
-}
diff --git a/libjava/java/lang/Void.java b/libjava/java/lang/Void.java
deleted file mode 100644
index 7d5bdfc6201..00000000000
--- a/libjava/java/lang/Void.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date April 18, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete.
- */
-
-public final class Void
-{
- // This initialization is seemingly circular, but it is accepted
- // by javac, and is handled specially by gcc.
- public final static Class TYPE = void.class;
-
- // Don't allow Void objects to be made.
- private Void ()
- {
- }
-}
diff --git a/libjava/java/lang/dtoa.c b/libjava/java/lang/dtoa.c
deleted file mode 100644
index e0d4aaaa8ee..00000000000
--- a/libjava/java/lang/dtoa.c
+++ /dev/null
@@ -1,904 +0,0 @@
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991 by AT&T.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-/* Please send bug reports to
- David M. Gay
- AT&T Bell Laboratories, Room 2C-463
- 600 Mountain Avenue
- Murray Hill, NJ 07974-2070
- U.S.A.
- dmg@research.att.com or research!dmg
- */
-
-#include "mprec.h"
-
-static int
-_DEFUN (quorem,
- (b, S),
- _Jv_Bigint * b _AND _Jv_Bigint * S)
-{
- int n;
- long borrow, y;
- unsigned long carry, q, ys;
- unsigned long *bx, *bxe, *sx, *sxe;
-#ifdef Pack_32
- long z;
- unsigned long si, zs;
-#endif
-
- n = S->_wds;
-#ifdef DEBUG
- /*debug*/ if (b->_wds > n)
- /*debug*/ Bug ("oversize b in quorem");
-#endif
- if (b->_wds < n)
- return 0;
- sx = S->_x;
- sxe = sx + --n;
- bx = b->_x;
- bxe = bx + n;
- q = *bxe / (*sxe + 1); /* ensure q <= true quotient */
-#ifdef DEBUG
- /*debug*/ if (q > 9)
- /*debug*/ Bug ("oversized quotient in quorem");
-#endif
- if (q)
- {
- borrow = 0;
- carry = 0;
- do
- {
-#ifdef Pack_32
- si = *sx++;
- ys = (si & 0xffff) * q + carry;
- zs = (si >> 16) * q + (ys >> 16);
- carry = zs >> 16;
- y = (*bx & 0xffff) - (ys & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- z = (*bx >> 16) - (zs & 0xffff) + borrow;
- borrow = z >> 16;
- Sign_Extend (borrow, z);
- Storeinc (bx, z, y);
-#else
- ys = *sx++ * q + carry;
- carry = ys >> 16;
- y = *bx - (ys & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- *bx++ = y & 0xffff;
-#endif
- }
- while (sx <= sxe);
- if (!*bxe)
- {
- bx = b->_x;
- while (--bxe > bx && !*bxe)
- --n;
- b->_wds = n;
- }
- }
- if (cmp (b, S) >= 0)
- {
- q++;
- borrow = 0;
- carry = 0;
- bx = b->_x;
- sx = S->_x;
- do
- {
-#ifdef Pack_32
- si = *sx++;
- ys = (si & 0xffff) + carry;
- zs = (si >> 16) + (ys >> 16);
- carry = zs >> 16;
- y = (*bx & 0xffff) - (ys & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- z = (*bx >> 16) - (zs & 0xffff) + borrow;
- borrow = z >> 16;
- Sign_Extend (borrow, z);
- Storeinc (bx, z, y);
-#else
- ys = *sx++ + carry;
- carry = ys >> 16;
- y = *bx - (ys & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- *bx++ = y & 0xffff;
-#endif
- }
- while (sx <= sxe);
- bx = b->_x;
- bxe = bx + n;
- if (!*bxe)
- {
- while (--bxe > bx && !*bxe)
- --n;
- b->_wds = n;
- }
- }
- return q;
-}
-
-#ifdef DEBUG
-#include <stdio.h>
-
-void
-print (_Jv_Bigint * b)
-{
- int i, wds;
- unsigned long *x, y;
- wds = b->_wds;
- x = b->_x+wds;
- i = 0;
- do
- {
- x--;
- fprintf (stderr, "%08x", *x);
- }
- while (++i < wds);
- fprintf (stderr, "\n");
-}
-#endif
-
-/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
- *
- * Inspired by "How to Print Floating-Point Numbers Accurately" by
- * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 92-101].
- *
- * Modifications:
- * 1. Rather than iterating, we use a simple numeric overestimate
- * to determine k = floor(log10(d)). We scale relevant
- * quantities using O(log2(k)) rather than O(k) multiplications.
- * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't
- * try to generate digits strictly left to right. Instead, we
- * compute with fewer bits and propagate the carry if necessary
- * when rounding the final digit up. This is often faster.
- * 3. Under the assumption that input will be rounded nearest,
- * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.
- * That is, we allow equality in stopping tests when the
- * round-nearest rule will give the same floating-point value
- * as would satisfaction of the stopping test with strict
- * inequality.
- * 4. We remove common factors of powers of 2 from relevant
- * quantities.
- * 5. When converting floating-point integers less than 1e16,
- * we use floating-point arithmetic rather than resorting
- * to multiple-precision integers.
- * 6. When asked to produce fewer than 15 digits, we first try
- * to get by with floating-point arithmetic; we resort to
- * multiple-precision integer arithmetic only if we cannot
- * guarantee that the floating-point calculation has given
- * the correctly rounded result. For k requested digits and
- * "uniformly" distributed input, the probability is
- * something like 10^(k-15) that we must resort to the long
- * calculation.
- */
-
-
-char *
-_DEFUN (_dtoa_r,
- (ptr, _d, mode, ndigits, decpt, sign, rve, float_type),
- struct _Jv_reent *ptr _AND
- double _d _AND
- int mode _AND
- int ndigits _AND
- int *decpt _AND
- int *sign _AND
- char **rve _AND
- int float_type)
-{
- /*
- float_type == 0 for double precision, 1 for float.
-
- Arguments ndigits, decpt, sign are similar to those
- of ecvt and fcvt; trailing zeros are suppressed from
- the returned string. If not null, *rve is set to point
- to the end of the return value. If d is +-Infinity or NaN,
- then *decpt is set to 9999.
-
- mode:
- 0 ==> shortest string that yields d when read in
- and rounded to nearest.
- 1 ==> like 0, but with Steele & White stopping rule;
- e.g. with IEEE P754 arithmetic , mode 0 gives
- 1e23 whereas mode 1 gives 9.999999999999999e22.
- 2 ==> max(1,ndigits) significant digits. This gives a
- return value similar to that of ecvt, except
- that trailing zeros are suppressed.
- 3 ==> through ndigits past the decimal point. This
- gives a return value similar to that from fcvt,
- except that trailing zeros are suppressed, and
- ndigits can be negative.
- 4-9 should give the same return values as 2-3, i.e.,
- 4 <= mode <= 9 ==> same return as mode
- 2 + (mode & 1). These modes are mainly for
- debugging; often they run slower but sometimes
- faster than modes 2-3.
- 4,5,8,9 ==> left-to-right digit generation.
- 6-9 ==> don't try fast floating-point estimate
- (if applicable).
-
- > 16 ==> Floating-point arg is treated as single precision.
-
- Values of mode other than 0-9 are treated as mode 0.
-
- Sufficient space is allocated to the return value
- to hold the suppressed trailing zeros.
- */
-
- int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1, j, j1, k, k0,
- k_check, leftright, m2, m5, s2, s5, spec_case, try_quick;
- union double_union d, d2, eps;
- long L;
-#ifndef Sudden_Underflow
- int denorm;
- unsigned long x;
-#endif
- _Jv_Bigint *b, *b1, *delta, *mlo, *mhi, *S;
- double ds;
- char *s, *s0;
-
- d.d = _d;
-
- if (ptr->_result)
- {
- ptr->_result->_k = ptr->_result_k;
- ptr->_result->_maxwds = 1 << ptr->_result_k;
- Bfree (ptr, ptr->_result);
- ptr->_result = 0;
- }
-
- if (word0 (d) & Sign_bit)
- {
- /* set sign for everything, including 0's and NaNs */
- *sign = 1;
- word0 (d) &= ~Sign_bit; /* clear sign bit */
- }
- else
- *sign = 0;
-
-#if defined(IEEE_Arith) + defined(VAX)
-#ifdef IEEE_Arith
- if ((word0 (d) & Exp_mask) == Exp_mask)
-#else
- if (word0 (d) == 0x8000)
-#endif
- {
- /* Infinity or NaN */
- *decpt = 9999;
- s =
-#ifdef IEEE_Arith
- !word1 (d) && !(word0 (d) & 0xfffff) ? "Infinity" :
-#endif
- "NaN";
- if (rve)
- *rve =
-#ifdef IEEE_Arith
- s[3] ? s + 8 :
-#endif
- s + 3;
- return s;
- }
-#endif
-#ifdef IBM
- d.d += 0; /* normalize */
-#endif
- if (!d.d)
- {
- *decpt = 1;
- s = "0";
- if (rve)
- *rve = s + 1;
- return s;
- }
-
- b = d2b (ptr, d.d, &be, &bbits);
-#ifdef Sudden_Underflow
- i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1));
-#else
- if ((i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1))))
- {
-#endif
- d2.d = d.d;
- word0 (d2) &= Frac_mask1;
- word0 (d2) |= Exp_11;
-#ifdef IBM
- if (j = 11 - hi0bits (word0 (d2) & Frac_mask))
- d2.d /= 1 << j;
-#endif
-
- /* log(x) ~=~ log(1.5) + (x-1.5)/1.5
- * log10(x) = log(x) / log(10)
- * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))
- * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)
- *
- * This suggests computing an approximation k to log10(d) by
- *
- * k = (i - Bias)*0.301029995663981
- * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );
- *
- * We want k to be too large rather than too small.
- * The error in the first-order Taylor series approximation
- * is in our favor, so we just round up the constant enough
- * to compensate for any error in the multiplication of
- * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077,
- * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,
- * adding 1e-13 to the constant term more than suffices.
- * Hence we adjust the constant term to 0.1760912590558.
- * (We could get a more accurate k by invoking log10,
- * but this is probably not worthwhile.)
- */
-
- i -= Bias;
-#ifdef IBM
- i <<= 2;
- i += j;
-#endif
-#ifndef Sudden_Underflow
- denorm = 0;
- }
- else
- {
- /* d is denormalized */
-
- i = bbits + be + (Bias + (P - 1) - 1);
- x = i > 32 ? word0 (d) << (64 - i) | word1 (d) >> (i - 32)
- : word1 (d) << (32 - i);
- d2.d = x;
- word0 (d2) -= 31 * Exp_msk1; /* adjust exponent */
- i -= (Bias + (P - 1) - 1) + 1;
- denorm = 1;
- }
-#endif
- ds = (d2.d - 1.5) * 0.289529654602168 + 0.1760912590558 + i * 0.301029995663981;
- k = (int) ds;
- if (ds < 0. && ds != k)
- k--; /* want k = floor(ds) */
- k_check = 1;
- if (k >= 0 && k <= Ten_pmax)
- {
- if (d.d < tens[k])
- k--;
- k_check = 0;
- }
- j = bbits - i - 1;
- if (j >= 0)
- {
- b2 = 0;
- s2 = j;
- }
- else
- {
- b2 = -j;
- s2 = 0;
- }
- if (k >= 0)
- {
- b5 = 0;
- s5 = k;
- s2 += k;
- }
- else
- {
- b2 -= k;
- b5 = -k;
- s5 = 0;
- }
- if (mode < 0 || mode > 9)
- mode = 0;
- try_quick = 1;
- if (mode > 5)
- {
- mode -= 4;
- try_quick = 0;
- }
- leftright = 1;
- switch (mode)
- {
- case 0:
- case 1:
- ilim = ilim1 = -1;
- i = 18;
- ndigits = 0;
- break;
- case 2:
- leftright = 0;
- /* no break */
- case 4:
- if (ndigits <= 0)
- ndigits = 1;
- ilim = ilim1 = i = ndigits;
- break;
- case 3:
- leftright = 0;
- /* no break */
- case 5:
- i = ndigits + k + 1;
- ilim = i;
- ilim1 = i - 1;
- if (i <= 0)
- i = 1;
- }
- j = sizeof (unsigned long);
- for (ptr->_result_k = 0; (int) (sizeof (_Jv_Bigint) - sizeof (unsigned long)) + j <= i;
- j <<= 1)
- ptr->_result_k++;
- ptr->_result = Balloc (ptr, ptr->_result_k);
- s = s0 = (char *) ptr->_result;
-
- if (ilim >= 0 && ilim <= Quick_max && try_quick)
- {
- /* Try to get by with floating-point arithmetic. */
-
- i = 0;
- d2.d = d.d;
- k0 = k;
- ilim0 = ilim;
- ieps = 2; /* conservative */
- if (k > 0)
- {
- ds = tens[k & 0xf];
- j = k >> 4;
- if (j & Bletch)
- {
- /* prevent overflows */
- j &= Bletch - 1;
- d.d /= bigtens[n_bigtens - 1];
- ieps++;
- }
- for (; j; j >>= 1, i++)
- if (j & 1)
- {
- ieps++;
- ds *= bigtens[i];
- }
- d.d /= ds;
- }
- else if ((j1 = -k))
- {
- d.d *= tens[j1 & 0xf];
- for (j = j1 >> 4; j; j >>= 1, i++)
- if (j & 1)
- {
- ieps++;
- d.d *= bigtens[i];
- }
- }
- if (k_check && d.d < 1. && ilim > 0)
- {
- if (ilim1 <= 0)
- goto fast_failed;
- ilim = ilim1;
- k--;
- d.d *= 10.;
- ieps++;
- }
- eps.d = ieps * d.d + 7.;
- word0 (eps) -= (P - 1) * Exp_msk1;
- if (ilim == 0)
- {
- S = mhi = 0;
- d.d -= 5.;
- if (d.d > eps.d)
- goto one_digit;
- if (d.d < -eps.d)
- goto no_digits;
- goto fast_failed;
- }
-#ifndef No_leftright
- if (leftright)
- {
- /* Use Steele & White method of only
- * generating digits needed.
- */
- eps.d = 0.5 / tens[ilim - 1] - eps.d;
- for (i = 0;;)
- {
- L = d.d;
- d.d -= L;
- *s++ = '0' + (int) L;
- if (d.d < eps.d)
- goto ret1;
- if (1. - d.d < eps.d)
- goto bump_up;
- if (++i >= ilim)
- break;
- eps.d *= 10.;
- d.d *= 10.;
- }
- }
- else
- {
-#endif
- /* Generate ilim digits, then fix them up. */
- eps.d *= tens[ilim - 1];
- for (i = 1;; i++, d.d *= 10.)
- {
- L = d.d;
- d.d -= L;
- *s++ = '0' + (int) L;
- if (i == ilim)
- {
- if (d.d > 0.5 + eps.d)
- goto bump_up;
- else if (d.d < 0.5 - eps.d)
- {
- while (*--s == '0');
- s++;
- goto ret1;
- }
- break;
- }
- }
-#ifndef No_leftright
- }
-#endif
- fast_failed:
- s = s0;
- d.d = d2.d;
- k = k0;
- ilim = ilim0;
- }
-
- /* Do we have a "small" integer? */
-
- if (be >= 0 && k <= Int_max)
- {
- /* Yes. */
- ds = tens[k];
- if (ndigits < 0 && ilim <= 0)
- {
- S = mhi = 0;
- if (ilim < 0 || d.d <= 5 * ds)
- goto no_digits;
- goto one_digit;
- }
- for (i = 1;; i++)
- {
- L = d.d / ds;
- d.d -= L * ds;
-#ifdef Check_FLT_ROUNDS
- /* If FLT_ROUNDS == 2, L will usually be high by 1 */
- if (d.d < 0)
- {
- L--;
- d.d += ds;
- }
-#endif
- *s++ = '0' + (int) L;
- if (i == ilim)
- {
- d.d += d.d;
- if (d.d > ds || (d.d == ds && L & 1))
- {
- bump_up:
- while (*--s == '9')
- if (s == s0)
- {
- k++;
- *s = '0';
- break;
- }
- ++*s++;
- }
- break;
- }
- if (!(d.d *= 10.))
- break;
- }
- goto ret1;
- }
-
- m2 = b2;
- m5 = b5;
- mhi = mlo = 0;
- if (leftright)
- {
- if (mode < 2)
- {
- i =
-#ifndef Sudden_Underflow
- denorm ? be + (Bias + (P - 1) - 1 + 1) :
-#endif
-#ifdef IBM
- 1 + 4 * P - 3 - bbits + ((bbits + be - 1) & 3);
-#else
- 1 + P - bbits;
-#endif
- }
- else
- {
- j = ilim - 1;
- if (m5 >= j)
- m5 -= j;
- else
- {
- s5 += j -= m5;
- b5 += j;
- m5 = 0;
- }
- if ((i = ilim) < 0)
- {
- m2 -= i;
- i = 0;
- }
- }
- b2 += i;
- s2 += i;
- mhi = i2b (ptr, 1);
- }
- if (m2 > 0 && s2 > 0)
- {
- i = m2 < s2 ? m2 : s2;
- b2 -= i;
- m2 -= i;
- s2 -= i;
- }
- if (b5 > 0)
- {
- if (leftright)
- {
- if (m5 > 0)
- {
- mhi = pow5mult (ptr, mhi, m5);
- b1 = mult (ptr, mhi, b);
- Bfree (ptr, b);
- b = b1;
- }
- if ((j = b5 - m5))
- b = pow5mult (ptr, b, j);
- }
- else
- b = pow5mult (ptr, b, b5);
- }
- S = i2b (ptr, 1);
- if (s5 > 0)
- S = pow5mult (ptr, S, s5);
-
- /* Check for special case that d is a normalized power of 2. */
-
- if (mode < 2)
- {
- if (!word1 (d) && !(word0 (d) & Bndry_mask)
-#ifndef Sudden_Underflow
- && word0(d) & Exp_mask
-#endif
- )
- {
- /* The special case */
- b2 += Log2P;
- s2 += Log2P;
- spec_case = 1;
- }
- else
- spec_case = 0;
- }
-
- /* Arrange for convenient computation of quotients:
- * shift left if necessary so divisor has 4 leading 0 bits.
- *
- * Perhaps we should just compute leading 28 bits of S once
- * and for all and pass them and a shift to quorem, so it
- * can do shifts and ors to compute the numerator for q.
- */
-
-#ifdef Pack_32
- if ((i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0x1f))
- i = 32 - i;
-#else
- if ((i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0xf))
- i = 16 - i;
-#endif
- if (i > 4)
- {
- i -= 4;
- b2 += i;
- m2 += i;
- s2 += i;
- }
- else if (i < 4)
- {
- i += 28;
- b2 += i;
- m2 += i;
- s2 += i;
- }
- if (b2 > 0)
- b = lshift (ptr, b, b2);
- if (s2 > 0)
- S = lshift (ptr, S, s2);
- if (k_check)
- {
- if (cmp (b, S) < 0)
- {
- k--;
- b = multadd (ptr, b, 10, 0); /* we botched the k estimate */
- if (leftright)
- mhi = multadd (ptr, mhi, 10, 0);
- ilim = ilim1;
- }
- }
- if (ilim <= 0 && mode > 2)
- {
- if (ilim < 0 || cmp (b, S = multadd (ptr, S, 5, 0)) <= 0)
- {
- /* no digits, fcvt style */
- no_digits:
- k = -1 - ndigits;
- goto ret;
- }
- one_digit:
- *s++ = '1';
- k++;
- goto ret;
- }
- if (leftright)
- {
- if (m2 > 0)
- mhi = lshift (ptr, mhi, m2);
-
- /* Single precision case, */
- if (float_type)
- mhi = lshift (ptr, mhi, 29);
-
- /* Compute mlo -- check for special case
- * that d is a normalized power of 2.
- */
-
- mlo = mhi;
- if (spec_case)
- {
- mhi = Balloc (ptr, mhi->_k);
- Bcopy (mhi, mlo);
- mhi = lshift (ptr, mhi, Log2P);
- }
-
- for (i = 1;; i++)
- {
- dig = quorem (b, S) + '0';
- /* Do we yet have the shortest decimal string
- * that will round to d?
- */
- j = cmp (b, mlo);
- delta = diff (ptr, S, mhi);
- j1 = delta->_sign ? 1 : cmp (b, delta);
- Bfree (ptr, delta);
-#ifndef ROUND_BIASED
- if (j1 == 0 && !mode && !(word1 (d) & 1))
- {
- if (dig == '9')
- goto round_9_up;
- if (j > 0)
- dig++;
- *s++ = dig;
- goto ret;
- }
-#endif
- if (j < 0 || (j == 0 && !mode
-#ifndef ROUND_BIASED
- && !(word1 (d) & 1)
-#endif
- ))
- {
- if (j1 > 0)
- {
- b = lshift (ptr, b, 1);
- j1 = cmp (b, S);
- if ((j1 > 0 || (j1 == 0 && dig & 1))
- && dig++ == '9')
- goto round_9_up;
- }
- *s++ = dig;
- goto ret;
- }
- if (j1 > 0)
- {
- if (dig == '9')
- { /* possible if i == 1 */
- round_9_up:
- *s++ = '9';
- goto roundoff;
- }
- *s++ = dig + 1;
- goto ret;
- }
- *s++ = dig;
- if (i == ilim)
- break;
- b = multadd (ptr, b, 10, 0);
- if (mlo == mhi)
- mlo = mhi = multadd (ptr, mhi, 10, 0);
- else
- {
- mlo = multadd (ptr, mlo, 10, 0);
- mhi = multadd (ptr, mhi, 10, 0);
- }
- }
- }
- else
- for (i = 1;; i++)
- {
- *s++ = dig = quorem (b, S) + '0';
- if (i >= ilim)
- break;
- b = multadd (ptr, b, 10, 0);
- }
-
- /* Round off last digit */
-
- b = lshift (ptr, b, 1);
- j = cmp (b, S);
- if (j > 0 || (j == 0 && dig & 1))
- {
- roundoff:
- while (*--s == '9')
- if (s == s0)
- {
- k++;
- *s++ = '1';
- goto ret;
- }
- ++*s++;
- }
- else
- {
- while (*--s == '0');
- s++;
- }
-ret:
- Bfree (ptr, S);
- if (mhi)
- {
- if (mlo && mlo != mhi)
- Bfree (ptr, mlo);
- Bfree (ptr, mhi);
- }
-ret1:
- Bfree (ptr, b);
- *s = 0;
- *decpt = k + 1;
- if (rve)
- *rve = s;
- return s0;
-}
-
-
-_VOID
-_DEFUN (_dtoa,
- (_d, mode, ndigits, decpt, sign, rve, buf, float_type),
- double _d _AND
- int mode _AND
- int ndigits _AND
- int *decpt _AND
- int *sign _AND
- char **rve _AND
- char *buf _AND
- int float_type)
-{
- struct _Jv_reent reent;
- char *p;
- memset (&reent, 0, sizeof reent);
-
- p = _dtoa_r (&reent, _d, mode, ndigits, decpt, sign, rve, float_type);
- strcpy (buf, p);
-
- return;
-}
diff --git a/libjava/java/lang/e_acos.c b/libjava/java/lang/e_acos.c
deleted file mode 100644
index ee6b168a1c5..00000000000
--- a/libjava/java/lang/e_acos.c
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/* @(#)e_acos.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_acos(x)
- * Method :
- * acos(x) = pi/2 - asin(x)
- * acos(-x) = pi/2 + asin(x)
- * For |x|<=0.5
- * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c)
- * For x>0.5
- * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2)))
- * = 2asin(sqrt((1-x)/2))
- * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z)
- * = 2f + (2c + 2s*z*R(z))
- * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term
- * for f so that f+c ~ sqrt(z).
- * For x<-0.5
- * acos(x) = pi - 2asin(sqrt((1-|x|)/2))
- * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z)
- *
- * Special cases:
- * if x is NaN, return x itself;
- * if |x|>1, return NaN with invalid signal.
- *
- * Function needed: sqrt
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
-pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
-pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */
-pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */
-pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */
-pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */
-pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */
-pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */
-pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */
-pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */
-qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */
-qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
-qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
-qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
-
-#ifdef __STDC__
- double __ieee754_acos(double x)
-#else
- double __ieee754_acos(x)
- double x;
-#endif
-{
- double z,p,q,r,w,s,c,df;
- int32_t hx,ix;
- GET_HIGH_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x3ff00000) { /* |x| >= 1 */
- uint32_t lx;
- GET_LOW_WORD(lx,x);
- if(((ix-0x3ff00000)|lx)==0) { /* |x|==1 */
- if(hx>0) return 0.0; /* acos(1) = 0 */
- else return pi+2.0*pio2_lo; /* acos(-1)= pi */
- }
- return (x-x)/(x-x); /* acos(|x|>1) is NaN */
- }
- if(ix<0x3fe00000) { /* |x| < 0.5 */
- if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/
- z = x*x;
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- r = p/q;
- return pio2_hi - (x - (pio2_lo-x*r));
- } else if (hx<0) { /* x < -0.5 */
- z = (one+x)*0.5;
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- s = __ieee754_sqrt(z);
- r = p/q;
- w = r*s-pio2_lo;
- return pi - 2.0*(s+w);
- } else { /* x > 0.5 */
- z = (one-x)*0.5;
- s = __ieee754_sqrt(z);
- df = s;
- SET_LOW_WORD(df,0);
- c = (z-df*df)/(s+df);
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- r = p/q;
- w = r*s+c;
- return 2.0*(df+w);
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_asin.c b/libjava/java/lang/e_asin.c
deleted file mode 100644
index 6b131e65a26..00000000000
--- a/libjava/java/lang/e_asin.c
+++ /dev/null
@@ -1,120 +0,0 @@
-
-/* @(#)e_asin.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_asin(x)
- * Method :
- * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
- * we approximate asin(x) on [0,0.5] by
- * asin(x) = x + x*x^2*R(x^2)
- * where
- * R(x^2) is a rational approximation of (asin(x)-x)/x^3
- * and its remez error is bounded by
- * |(asin(x)-x)/x^3 - R(x^2)| < 2^(-58.75)
- *
- * For x in [0.5,1]
- * asin(x) = pi/2-2*asin(sqrt((1-x)/2))
- * Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2;
- * then for x>0.98
- * asin(x) = pi/2 - 2*(s+s*z*R(z))
- * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo)
- * For x<=0.98, let pio4_hi = pio2_hi/2, then
- * f = hi part of s;
- * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z)
- * and
- * asin(x) = pi/2 - 2*(s+s*z*R(z))
- * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo)
- * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c))
- *
- * Special cases:
- * if x is NaN, return x itself;
- * if |x|>1, return NaN with invalid signal.
- *
- */
-
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
-huge = 1.000e+300,
-pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */
-pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */
-pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */
- /* coefficient for R(x^2) */
-pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */
-pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */
-pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */
-pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */
-pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */
-pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */
-qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */
-qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
-qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
-qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
-
-#ifdef __STDC__
- double __ieee754_asin(double x)
-#else
- double __ieee754_asin(x)
- double x;
-#endif
-{
- double t,w,p,q,c,r,s;
- int32_t hx,ix;
- GET_HIGH_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>= 0x3ff00000) { /* |x|>= 1 */
- uint32_t lx;
- GET_LOW_WORD(lx,x);
- if(((ix-0x3ff00000)|lx)==0)
- /* asin(1)=+-pi/2 with inexact */
- return x*pio2_hi+x*pio2_lo;
- return (x-x)/(x-x); /* asin(|x|>1) is NaN */
- } else if (ix<0x3fe00000) { /* |x|<0.5 */
- if(ix<0x3e400000) { /* if |x| < 2**-27 */
- if(huge+x>one) return x;/* return x with inexact if x!=0*/
- } else
- t = x*x;
- p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
- q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
- w = p/q;
- return x+x*w;
- }
- /* 1> |x|>= 0.5 */
- w = one-fabs(x);
- t = w*0.5;
- p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
- q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
- s = __ieee754_sqrt(t);
- if(ix>=0x3FEF3333) { /* if |x| > 0.975 */
- w = p/q;
- t = pio2_hi-(2.0*(s+s*w)-pio2_lo);
- } else {
- w = s;
- SET_LOW_WORD(w,0);
- c = (t-w*w)/(s+w);
- r = p/q;
- p = 2.0*s*r-(pio2_lo-2.0*c);
- q = pio4_hi-2.0*w;
- t = pio4_hi-(p-q);
- }
- if(hx>0) return t; else return -t;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_atan2.c b/libjava/java/lang/e_atan2.c
deleted file mode 100644
index c75448db26c..00000000000
--- a/libjava/java/lang/e_atan2.c
+++ /dev/null
@@ -1,131 +0,0 @@
-
-/* @(#)e_atan2.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- *
- */
-
-/* __ieee754_atan2(y,x)
- * Method :
- * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
- * 2. Reduce x to positive by (if x and y are unexceptional):
- * ARG (x+iy) = arctan(y/x) ... if x > 0,
- * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0,
- *
- * Special cases:
- *
- * ATAN2((anything), NaN ) is NaN;
- * ATAN2(NAN , (anything) ) is NaN;
- * ATAN2(+-0, +(anything but NaN)) is +-0 ;
- * ATAN2(+-0, -(anything but NaN)) is +-pi ;
- * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2;
- * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ;
- * ATAN2(+-(anything but INF and NaN), -INF) is +-pi;
- * ATAN2(+-INF,+INF ) is +-pi/4 ;
- * ATAN2(+-INF,-INF ) is +-3pi/4;
- * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2;
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-tiny = 1.0e-300,
-zero = 0.0,
-pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */
-pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */
-pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
-pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
-
-#ifdef __STDC__
- double __ieee754_atan2(double y, double x)
-#else
- double __ieee754_atan2(y,x)
- double y,x;
-#endif
-{
- double z;
- int32_t k,m,hx,hy,ix,iy;
- uint32_t lx,ly;
-
- EXTRACT_WORDS(hx,lx,x);
- ix = hx&0x7fffffff;
- EXTRACT_WORDS(hy,ly,y);
- iy = hy&0x7fffffff;
- if(((ix|((lx|-lx)>>31))>0x7ff00000)||
- ((iy|((ly|-ly)>>31))>0x7ff00000)) /* x or y is NaN */
- return x+y;
- if(((hx-0x3ff00000)|lx)==0) return atan(y); /* x=1.0 */
- m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
-
- /* when y = 0 */
- if((iy|ly)==0) {
- switch(m) {
- case 0:
- case 1: return y; /* atan(+-0,+anything)=+-0 */
- case 2: return pi+tiny;/* atan(+0,-anything) = pi */
- case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
- }
- }
- /* when x = 0 */
- if((ix|lx)==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
-
- /* when x is INF */
- if(ix==0x7ff00000) {
- if(iy==0x7ff00000) {
- switch(m) {
- case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */
- case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
- case 2: return 3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
- case 3: return -3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
- }
- } else {
- switch(m) {
- case 0: return zero ; /* atan(+...,+INF) */
- case 1: return -zero ; /* atan(-...,+INF) */
- case 2: return pi+tiny ; /* atan(+...,-INF) */
- case 3: return -pi-tiny ; /* atan(-...,-INF) */
- }
- }
- }
- /* when y is INF */
- if(iy==0x7ff00000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
-
- /* compute y/x */
- k = (iy-ix)>>20;
- if(k > 60) z=pi_o_2+0.5*pi_lo; /* |y/x| > 2**60 */
- else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */
- else z=atan(fabs(y/x)); /* safe to do y/x */
- switch (m) {
- case 0: return z ; /* atan(+,+) */
- case 1: {
- uint32_t zh;
- GET_HIGH_WORD(zh,z);
- SET_HIGH_WORD(z,zh ^ 0x80000000);
- }
- return z ; /* atan(-,+) */
- case 2: return pi-(z-pi_lo);/* atan(+,-) */
- default: /* case 3 */
- return (z-pi_lo)-pi;/* atan(-,-) */
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_exp.c b/libjava/java/lang/e_exp.c
deleted file mode 100644
index e11ca8b3856..00000000000
--- a/libjava/java/lang/e_exp.c
+++ /dev/null
@@ -1,167 +0,0 @@
-
-/* @(#)e_exp.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_exp(x)
- * Returns the exponential of x.
- *
- * Method
- * 1. Argument reduction:
- * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
- * Given x, find r and integer k such that
- *
- * x = k*ln2 + r, |r| <= 0.5*ln2.
- *
- * Here r will be represented as r = hi-lo for better
- * accuracy.
- *
- * 2. Approximation of exp(r) by a special rational function on
- * the interval [0,0.34658]:
- * Write
- * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
- * We use a special Reme algorithm on [0,0.34658] to generate
- * a polynomial of degree 5 to approximate R. The maximum error
- * of this polynomial approximation is bounded by 2**-59. In
- * other words,
- * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
- * (where z=r*r, and the values of P1 to P5 are listed below)
- * and
- * | 5 | -59
- * | 2.0+P1*z+...+P5*z - R(z) | <= 2
- * | |
- * The computation of exp(r) thus becomes
- * 2*r
- * exp(r) = 1 + -------
- * R - r
- * r*R1(r)
- * = 1 + r + ----------- (for better accuracy)
- * 2 - R1(r)
- * where
- * 2 4 10
- * R1(r) = r - (P1*r + P2*r + ... + P5*r ).
- *
- * 3. Scale back to obtain exp(x):
- * From step 1, we have
- * exp(x) = 2^k * exp(r)
- *
- * Special cases:
- * exp(INF) is INF, exp(NaN) is NaN;
- * exp(-INF) is 0, and
- * for finite argument, only exp(0)=1 is exact.
- *
- * Accuracy:
- * according to an error analysis, the error is always less than
- * 1 ulp (unit in the last place).
- *
- * Misc. info.
- * For IEEE double
- * if x > 7.09782712893383973096e+02 then exp(x) overflow
- * if x < -7.45133219101941108420e+02 then exp(x) underflow
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-one = 1.0,
-halF[2] = {0.5,-0.5,},
-huge = 1.0e+300,
-twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
-o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
-u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
-ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
- -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
-ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
- -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
-invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
-P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
-P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
-P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
-P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
-P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
-
-
-#ifdef __STDC__
- double __ieee754_exp(double x) /* default IEEE double exp */
-#else
- double __ieee754_exp(x) /* default IEEE double exp */
- double x;
-#endif
-{
- double y,hi,lo,c,t;
- int32_t k,xsb;
- uint32_t hx;
-
- GET_HIGH_WORD(hx,x);
- xsb = (hx>>31)&1; /* sign bit of x */
- hx &= 0x7fffffff; /* high word of |x| */
-
- /* filter out non-finite argument */
- if(hx >= 0x40862E42) { /* if |x|>=709.78... */
- if(hx>=0x7ff00000) {
- uint32_t lx;
- GET_LOW_WORD(lx,x);
- if(((hx&0xfffff)|lx)!=0)
- return x+x; /* NaN */
- else return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */
- }
- if(x > o_threshold) return huge*huge; /* overflow */
- if(x < u_threshold) return twom1000*twom1000; /* underflow */
- }
-
- /* argument reduction */
- if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
- if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
- hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
- } else {
- k = invln2*x+halF[xsb];
- t = k;
- hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
- lo = t*ln2LO[0];
- }
- x = hi - lo;
- }
- else if(hx < 0x3e300000) { /* when |x|<2**-28 */
- if(huge+x>one) return one+x;/* trigger inexact */
- }
- else k = 0;
-
- /* x is now in primary range */
- t = x*x;
- c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
- if(k==0) return one-((x*c)/(c-2.0)-x);
- else y = one-((lo-(x*c)/(2.0-c))-hi);
- if(k >= -1021) {
- uint32_t hy;
- GET_HIGH_WORD(hy,y);
- SET_HIGH_WORD(y,hy+(k<<20)); /* add k to y's exponent */
- return y;
- } else {
- uint32_t hy;
- GET_HIGH_WORD(hy,y);
- SET_HIGH_WORD(y,hy+((k+1000)<<20)); /* add k to y's exponent */
- return y*twom1000;
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_fmod.c b/libjava/java/lang/e_fmod.c
deleted file mode 100644
index 1cf09907666..00000000000
--- a/libjava/java/lang/e_fmod.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/* @(#)e_fmod.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * __ieee754_fmod(x,y)
- * Return x mod y in exact arithmetic
- * Method: shift and subtract
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double one = 1.0, Zero[] = {0.0, -0.0,};
-#else
-static double one = 1.0, Zero[] = {0.0, -0.0,};
-#endif
-
-#ifdef __STDC__
- double __ieee754_fmod(double x, double y)
-#else
- double __ieee754_fmod(x,y)
- double x,y ;
-#endif
-{
- int32_t n,hx,hy,hz,ix,iy,sx,i;
- uint32_t lx,ly,lz;
-
- EXTRACT_WORDS(hx,lx,x);
- EXTRACT_WORDS(hy,ly,y);
- sx = hx&0x80000000; /* sign of x */
- hx ^=sx; /* |x| */
- hy &= 0x7fffffff; /* |y| */
-
- /* purge off exception values */
- if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */
- ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */
- return (x*y)/(x*y);
- if(hx<=hy) {
- if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */
- if(lx==ly)
- return Zero[(uint32_t)sx>>31]; /* |x|=|y| return x*0*/
- }
-
- /* determine ix = ilogb(x) */
- if(hx<0x00100000) { /* subnormal x */
- if(hx==0) {
- for (ix = -1043, i=lx; i>0; i<<=1) ix -=1;
- } else {
- for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1;
- }
- } else ix = (hx>>20)-1023;
-
- /* determine iy = ilogb(y) */
- if(hy<0x00100000) { /* subnormal y */
- if(hy==0) {
- for (iy = -1043, i=ly; i>0; i<<=1) iy -=1;
- } else {
- for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1;
- }
- } else iy = (hy>>20)-1023;
-
- /* set up {hx,lx}, {hy,ly} and align y to x */
- if(ix >= -1022)
- hx = 0x00100000|(0x000fffff&hx);
- else { /* subnormal x, shift x to normal */
- n = -1022-ix;
- if(n<=31) {
- hx = (hx<<n)|(lx>>(32-n));
- lx <<= n;
- } else {
- hx = lx<<(n-32);
- lx = 0;
- }
- }
- if(iy >= -1022)
- hy = 0x00100000|(0x000fffff&hy);
- else { /* subnormal y, shift y to normal */
- n = -1022-iy;
- if(n<=31) {
- hy = (hy<<n)|(ly>>(32-n));
- ly <<= n;
- } else {
- hy = ly<<(n-32);
- ly = 0;
- }
- }
-
- /* fix point fmod */
- n = ix - iy;
- while(n--) {
- hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
- if(hz<0){hx = hx+hx+(lx>>31); lx = lx+lx;}
- else {
- if((hz|lz)==0) /* return sign(x)*0 */
- return Zero[(uint32_t)sx>>31];
- hx = hz+hz+(lz>>31); lx = lz+lz;
- }
- }
- hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
- if(hz>=0) {hx=hz;lx=lz;}
-
- /* convert back to floating value and restore the sign */
- if((hx|lx)==0) /* return sign(x)*0 */
- return Zero[(uint32_t)sx>>31];
- while(hx<0x00100000) { /* normalize x */
- hx = hx+hx+(lx>>31); lx = lx+lx;
- iy -= 1;
- }
- if(iy>= -1022) { /* normalize output */
- hx = ((hx-0x00100000)|((iy+1023)<<20));
- INSERT_WORDS(x,hx|sx,lx);
- } else { /* subnormal output */
- n = -1022 - iy;
- if(n<=20) {
- lx = (lx>>n)|((uint32_t)hx<<(32-n));
- hx >>= n;
- } else if (n<=31) {
- lx = (hx<<(32-n))|(lx>>n); hx = sx;
- } else {
- lx = hx>>(n-32); hx = sx;
- }
- INSERT_WORDS(x,hx|sx,lx);
- x *= one; /* create necessary signal */
- }
- return x; /* exact output */
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_log.c b/libjava/java/lang/e_log.c
deleted file mode 100644
index 093473e1048..00000000000
--- a/libjava/java/lang/e_log.c
+++ /dev/null
@@ -1,152 +0,0 @@
-
-/* @(#)e_log.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_log(x)
- * Return the logrithm of x
- *
- * Method :
- * 1. Argument Reduction: find k and f such that
- * x = 2^k * (1+f),
- * where sqrt(2)/2 < 1+f < sqrt(2) .
- *
- * 2. Approximation of log(1+f).
- * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
- * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
- * = 2s + s*R
- * We use a special Reme algorithm on [0,0.1716] to generate
- * a polynomial of degree 14 to approximate R The maximum error
- * of this polynomial approximation is bounded by 2**-58.45. In
- * other words,
- * 2 4 6 8 10 12 14
- * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s
- * (the values of Lg1 to Lg7 are listed in the program)
- * and
- * | 2 14 | -58.45
- * | Lg1*s +...+Lg7*s - R(z) | <= 2
- * | |
- * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
- * In order to guarantee error in log below 1ulp, we compute log
- * by
- * log(1+f) = f - s*(f - R) (if f is not too large)
- * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
- *
- * 3. Finally, log(x) = k*ln2 + log(1+f).
- * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
- * Here ln2 is split into two floating point number:
- * ln2_hi + ln2_lo,
- * where n*ln2_hi is always exact for |n| < 2000.
- *
- * Special cases:
- * log(x) is NaN with signal if x < 0 (including -INF) ;
- * log(+INF) is +INF; log(0) is -INF with signal;
- * log(NaN) is that NaN with no signal.
- *
- * Accuracy:
- * according to an error analysis, the error is always less than
- * 1 ulp (unit in the last place).
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
-ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
-two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */
-Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
-Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */
-Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */
-Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
-Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */
-Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */
-Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
-
-#ifdef __STDC__
-static const double zero = 0.0;
-#else
-static double zero = 0.0;
-#endif
-
-#ifdef __STDC__
- double __ieee754_log(double x)
-#else
- double __ieee754_log(x)
- double x;
-#endif
-{
- double hfsq,f,s,z,R,w,t1,t2,dk;
- int32_t k,hx,i,j;
- uint32_t lx;
-
- EXTRACT_WORDS(hx,lx,x);
-
- k=0;
- if (hx < 0x00100000) { /* x < 2**-1022 */
- if (((hx&0x7fffffff)|lx)==0)
- return -two54/zero; /* log(+-0)=-inf */
- if (hx<0) return (x-x)/zero; /* log(-#) = NaN */
- k -= 54; x *= two54; /* subnormal number, scale up x */
- GET_HIGH_WORD(hx,x);
- }
- if (hx >= 0x7ff00000) return x+x;
- k += (hx>>20)-1023;
- hx &= 0x000fffff;
- i = (hx+0x95f64)&0x100000;
- SET_HIGH_WORD(x,hx|(i^0x3ff00000)); /* normalize x or x/2 */
- k += (i>>20);
- f = x-1.0;
- if((0x000fffff&(2+hx))<3) { /* |f| < 2**-20 */
- if(f==zero) {
- if(k==0)
- return zero;
- else {
- dk=(double)k;
- return dk*ln2_hi+dk*ln2_lo;
- }
- }
- R = f*f*(0.5-0.33333333333333333*f);
- if(k==0) return f-R; else {dk=(double)k;
- return dk*ln2_hi-((R-dk*ln2_lo)-f);}
- }
- s = f/(2.0+f);
- dk = (double)k;
- z = s*s;
- i = hx-0x6147a;
- w = z*z;
- j = 0x6b851-hx;
- t1= w*(Lg2+w*(Lg4+w*Lg6));
- t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
- i |= j;
- R = t2+t1;
- if(i>0) {
- hfsq=0.5*f*f;
- if(k==0) return f-(hfsq-s*(hfsq+R)); else
- return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
- } else {
- if(k==0) return f-s*(f-R); else
- return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_pow.c b/libjava/java/lang/e_pow.c
deleted file mode 100644
index e53a8a287cc..00000000000
--- a/libjava/java/lang/e_pow.c
+++ /dev/null
@@ -1,312 +0,0 @@
-
-/* @(#)e_pow.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_pow(x,y) return x**y
- *
- * n
- * Method: Let x = 2 * (1+f)
- * 1. Compute and return log2(x) in two pieces:
- * log2(x) = w1 + w2,
- * where w1 has 53-24 = 29 bit trailing zeros.
- * 2. Perform y*log2(x) = n+y' by simulating muti-precision
- * arithmetic, where |y'|<=0.5.
- * 3. Return x**y = 2**n*exp(y'*log2)
- *
- * Special cases:
- * 1. (anything) ** 0 is 1
- * 2. (anything) ** 1 is itself
- * 3. (anything) ** NAN is NAN
- * 4. NAN ** (anything except 0) is NAN
- * 5. +-(|x| > 1) ** +INF is +INF
- * 6. +-(|x| > 1) ** -INF is +0
- * 7. +-(|x| < 1) ** +INF is +0
- * 8. +-(|x| < 1) ** -INF is +INF
- * 9. +-1 ** +-INF is NAN
- * 10. +0 ** (+anything except 0, NAN) is +0
- * 11. -0 ** (+anything except 0, NAN, odd integer) is +0
- * 12. +0 ** (-anything except 0, NAN) is +INF
- * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF
- * 14. -0 ** (odd integer) = -( +0 ** (odd integer) )
- * 15. +INF ** (+anything except 0,NAN) is +INF
- * 16. +INF ** (-anything except 0,NAN) is +0
- * 17. -INF ** (anything) = -0 ** (-anything)
- * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
- * 19. (-anything except 0 and inf) ** (non-integer) is NAN
- *
- * Accuracy:
- * pow(x,y) returns x**y nearly rounded. In particular
- * pow(integer,integer)
- * always returns the correct integer provided it is
- * representable.
- *
- * Constants :
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-bp[] = {1.0, 1.5,},
-dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */
-dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */
-zero = 0.0,
-one = 1.0,
-two = 2.0,
-two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */
-huge = 1.0e300,
-tiny = 1.0e-300,
- /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
-L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */
-L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */
-L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */
-L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */
-L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */
-L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */
-P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
-P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
-P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
-P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
-P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */
-lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
-lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */
-lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */
-ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */
-cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */
-cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */
-cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/
-ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */
-ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
-ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
-
-#ifdef __STDC__
- double __ieee754_pow(double x, double y)
-#else
- double __ieee754_pow(x,y)
- double x, y;
-#endif
-{
- double z,ax,z_h,z_l,p_h,p_l;
- double y1,t1,t2,r,s,t,u,v,w;
- int32_t i,j,k,yisint,n;
- int32_t hx,hy,ix,iy;
- uint32_t lx,ly;
-
- EXTRACT_WORDS(hx,lx,x);
- EXTRACT_WORDS(hy,ly,y);
- ix = hx&0x7fffffff; iy = hy&0x7fffffff;
-
- /* y==zero: x**0 = 1 */
- if((iy|ly)==0) return one;
-
- /* +-NaN return x+y */
- if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
- iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
- return x+y;
-
- /* determine if y is an odd int when x < 0
- * yisint = 0 ... y is not an integer
- * yisint = 1 ... y is an odd int
- * yisint = 2 ... y is an even int
- */
- yisint = 0;
- if(hx<0) {
- if(iy>=0x43400000) yisint = 2; /* even integer y */
- else if(iy>=0x3ff00000) {
- k = (iy>>20)-0x3ff; /* exponent */
- if(k>20) {
- j = ly>>(52-k);
- if((uint32_t)(j<<(52-k))==ly) yisint = 2-(j&1);
- } else if(ly==0) {
- j = iy>>(20-k);
- if((j<<(20-k))==iy) yisint = 2-(j&1);
- }
- }
- }
-
- /* special value of y */
- if(ly==0) {
- if (iy==0x7ff00000) { /* y is +-inf */
- if(((ix-0x3ff00000)|lx)==0)
- return y - y; /* inf**+-1 is NaN */
- else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */
- return (hy>=0)? y: zero;
- else /* (|x|<1)**-,+inf = inf,0 */
- return (hy<0)?-y: zero;
- }
- if(iy==0x3ff00000) { /* y is +-1 */
- if(hy<0) return one/x; else return x;
- }
- if(hy==0x40000000) return x*x; /* y is 2 */
- if(hy==0x3fe00000) { /* y is 0.5 */
- if(hx>=0) /* x >= +0 */
- return __ieee754_sqrt(x);
- }
- }
-
- ax = fabs(x);
- /* special value of x */
- if(lx==0) {
- if(ix==0x7ff00000||ix==0||ix==0x3ff00000){
- z = ax; /*x is +-0,+-inf,+-1*/
- if(hy<0) z = one/z; /* z = (1/|x|) */
- if(hx<0) {
- if(((ix-0x3ff00000)|yisint)==0) {
- z = (z-z)/(z-z); /* (-1)**non-int is NaN */
- } else if(yisint==1)
- z = -z; /* (x<0)**odd = -(|x|**odd) */
- }
- return z;
- }
- }
-
- /* (x<0)**(non-int) is NaN */
- /* CYGNUS LOCAL: This used to be
- if((((hx>>31)+1)|yisint)==0) return (x-x)/(x-x);
- but ANSI C says a right shift of a signed negative quantity is
- implementation defined. */
- if(((((uint32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x);
-
- /* |y| is huge */
- if(iy>0x41e00000) { /* if |y| > 2**31 */
- if(iy>0x43f00000){ /* if |y| > 2**64, must o/uflow */
- if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
- if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
- }
- /* over/underflow if x is not close to one */
- if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
- if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
- /* now |1-x| is tiny <= 2**-20, suffice to compute
- log(x) by x-x^2/2+x^3/3-x^4/4 */
- t = x-1; /* t has 20 trailing zeros */
- w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25));
- u = ivln2_h*t; /* ivln2_h has 21 sig. bits */
- v = t*ivln2_l-w*ivln2;
- t1 = u+v;
- SET_LOW_WORD(t1,0);
- t2 = v-(t1-u);
- } else {
- double s2,s_h,s_l,t_h,t_l;
- n = 0;
- /* take care subnormal number */
- if(ix<0x00100000)
- {ax *= two53; n -= 53; GET_HIGH_WORD(ix,ax); }
- n += ((ix)>>20)-0x3ff;
- j = ix&0x000fffff;
- /* determine interval */
- ix = j|0x3ff00000; /* normalize ix */
- if(j<=0x3988E) k=0; /* |x|<sqrt(3/2) */
- else if(j<0xBB67A) k=1; /* |x|<sqrt(3) */
- else {k=0;n+=1;ix -= 0x00100000;}
- SET_HIGH_WORD(ax,ix);
-
- /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
- u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */
- v = one/(ax+bp[k]);
- s = u*v;
- s_h = s;
- SET_LOW_WORD(s_h,0);
- /* t_h=ax+bp[k] High */
- t_h = zero;
- SET_HIGH_WORD(t_h,((ix>>1)|0x20000000)+0x00080000+(k<<18));
- t_l = ax - (t_h-bp[k]);
- s_l = v*((u-s_h*t_h)-s_h*t_l);
- /* compute log(ax) */
- s2 = s*s;
- r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
- r += s_l*(s_h+s);
- s2 = s_h*s_h;
- t_h = 3.0+s2+r;
- SET_LOW_WORD(t_h,0);
- t_l = r-((t_h-3.0)-s2);
- /* u+v = s*(1+...) */
- u = s_h*t_h;
- v = s_l*t_h+t_l*s;
- /* 2/(3log2)*(s+...) */
- p_h = u+v;
- SET_LOW_WORD(p_h,0);
- p_l = v-(p_h-u);
- z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */
- z_l = cp_l*p_h+p_l*cp+dp_l[k];
- /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
- t = (double)n;
- t1 = (((z_h+z_l)+dp_h[k])+t);
- SET_LOW_WORD(t1,0);
- t2 = z_l-(((t1-t)-dp_h[k])-z_h);
- }
-
- s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
- if(((((uint32_t)hx>>31)-1)|(yisint-1))==0)
- s = -one;/* (-ve)**(odd int) */
-
- /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
- y1 = y;
- SET_LOW_WORD(y1,0);
- p_l = (y-y1)*t1+y*t2;
- p_h = y1*t1;
- z = p_l+p_h;
- EXTRACT_WORDS(j,i,z);
- if (j>=0x40900000) { /* z >= 1024 */
- if(((j-0x40900000)|i)!=0) /* if z > 1024 */
- return s*huge*huge; /* overflow */
- else {
- if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */
- }
- } else if((j&0x7fffffff)>=0x4090cc00 ) { /* z <= -1075 */
- if(((j-0xc090cc00)|i)!=0) /* z < -1075 */
- return s*tiny*tiny; /* underflow */
- else {
- if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */
- }
- }
- /*
- * compute 2**(p_h+p_l)
- */
- i = j&0x7fffffff;
- k = (i>>20)-0x3ff;
- n = 0;
- if(i>0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */
- n = j+(0x00100000>>(k+1));
- k = ((n&0x7fffffff)>>20)-0x3ff; /* new k for n */
- t = zero;
- SET_HIGH_WORD(t,n&~(0x000fffff>>k));
- n = ((n&0x000fffff)|0x00100000)>>(20-k);
- if(j<0) n = -n;
- p_h -= t;
- }
- t = p_l+p_h;
- SET_LOW_WORD(t,0);
- u = t*lg2_h;
- v = (p_l-(t-p_h))*lg2+t*lg2_l;
- z = u+v;
- w = v-(z-u);
- t = z*z;
- t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
- r = (z*t1)/(t1-two)-(w+z*w);
- z = one-(r-z);
- GET_HIGH_WORD(j,z);
- j += (n<<20);
- if((j>>20)<=0) z = scalbn(z,(int)n); /* subnormal output */
- else SET_HIGH_WORD(z,j);
- return s*z;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_rem_pio2.c b/libjava/java/lang/e_rem_pio2.c
deleted file mode 100644
index 6d3fd19a48c..00000000000
--- a/libjava/java/lang/e_rem_pio2.c
+++ /dev/null
@@ -1,185 +0,0 @@
-
-/* @(#)e_rem_pio2.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- *
- */
-
-/* __ieee754_rem_pio2(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
- * use __kernel_rem_pio2()
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-/*
- * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
- */
-#ifdef __STDC__
-static const int32_t two_over_pi[] = {
-#else
-static int32_t two_over_pi[] = {
-#endif
-0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62,
-0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A,
-0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129,
-0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41,
-0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8,
-0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF,
-0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
-0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08,
-0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3,
-0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880,
-0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B,
-};
-
-#ifdef __STDC__
-static const int32_t npio2_hw[] = {
-#else
-static int32_t npio2_hw[] = {
-#endif
-0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C,
-0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C,
-0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A,
-0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C,
-0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB,
-0x404858EB, 0x404921FB,
-};
-
-/*
- * invpio2: 53 bits of 2/pi
- * pio2_1: first 33 bit of pi/2
- * pio2_1t: pi/2 - pio2_1
- * pio2_2: second 33 bit of pi/2
- * pio2_2t: pi/2 - (pio2_1+pio2_2)
- * pio2_3: third 33 bit of pi/2
- * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
- */
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
-half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
-two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
-invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
-pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
-pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
-pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
-pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
-pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
-pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
-
-#ifdef __STDC__
- int32_t __ieee754_rem_pio2(double x, double *y)
-#else
- int32_t __ieee754_rem_pio2(x,y)
- double x,y[];
-#endif
-{
- double z,w,t,r,fn;
- double tx[3];
- int32_t i,j,n,ix,hx;
- int e0,nx;
- uint32_t low;
-
- GET_HIGH_WORD(hx,x); /* high word of x */
- ix = hx&0x7fffffff;
- if(ix<=0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */
- {y[0] = x; y[1] = 0; return 0;}
- if(ix<0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */
- if(hx>0) {
- z = x - pio2_1;
- if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */
- y[0] = z - pio2_1t;
- y[1] = (z-y[0])-pio2_1t;
- } else { /* near pi/2, use 33+33+53 bit pi */
- z -= pio2_2;
- y[0] = z - pio2_2t;
- y[1] = (z-y[0])-pio2_2t;
- }
- return 1;
- } else { /* negative x */
- z = x + pio2_1;
- if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */
- y[0] = z + pio2_1t;
- y[1] = (z-y[0])+pio2_1t;
- } else { /* near pi/2, use 33+33+53 bit pi */
- z += pio2_2;
- y[0] = z + pio2_2t;
- y[1] = (z-y[0])+pio2_2t;
- }
- return -1;
- }
- }
- if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */
- t = fabs(x);
- n = (int32_t) (t*invpio2+half);
- fn = (double)n;
- r = t-fn*pio2_1;
- w = fn*pio2_1t; /* 1st round good to 85 bit */
- if(n<32&&ix!=npio2_hw[n-1]) {
- y[0] = r-w; /* quick check no cancellation */
- } else {
- uint32_t high;
- j = ix>>20;
- y[0] = r-w;
- GET_HIGH_WORD(high,y[0]);
- i = j-((high>>20)&0x7ff);
- if(i>16) { /* 2nd iteration needed, good to 118 */
- t = r;
- w = fn*pio2_2;
- r = t-w;
- w = fn*pio2_2t-((t-r)-w);
- y[0] = r-w;
- GET_HIGH_WORD(high,y[0]);
- i = j-((high>>20)&0x7ff);
- if(i>49) { /* 3rd iteration need, 151 bits acc */
- t = r; /* will cover all possible cases */
- w = fn*pio2_3;
- r = t-w;
- w = fn*pio2_3t-((t-r)-w);
- y[0] = r-w;
- }
- }
- }
- y[1] = (r-y[0])-w;
- if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
- else return n;
- }
- /*
- * all other (large) arguments
- */
- if(ix>=0x7ff00000) { /* x is inf or NaN */
- y[0]=y[1]=x-x; return 0;
- }
- /* set z = scalbn(|x|,ilogb(x)-23) */
- GET_LOW_WORD(low,x);
- SET_LOW_WORD(z,low);
- e0 = (int)((ix>>20)-1046); /* e0 = ilogb(z)-23; */
- SET_HIGH_WORD(z, ix - ((int32_t)e0<<20));
- for(i=0;i<2;i++) {
- tx[i] = (double)((int32_t)(z));
- z = (z-tx[i])*two24;
- }
- tx[2] = z;
- nx = 3;
- while(tx[nx-1]==zero) nx--; /* skip zero term */
- n = __kernel_rem_pio2(tx,y,e0,nx,2,two_over_pi);
- if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
- return n;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_remainder.c b/libjava/java/lang/e_remainder.c
deleted file mode 100644
index 4716d8d05fd..00000000000
--- a/libjava/java/lang/e_remainder.c
+++ /dev/null
@@ -1,80 +0,0 @@
-
-/* @(#)e_remainder.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_remainder(x,p)
- * Return :
- * returns x REM p = x - [x/p]*p as if in infinite
- * precise arithmetic, where [x/p] is the (infinite bit)
- * integer nearest x/p (in half way case choose the even one).
- * Method :
- * Based on fmod() return x-[x/p]chopped*p exactlp.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double zero = 0.0;
-#else
-static double zero = 0.0;
-#endif
-
-
-#ifdef __STDC__
- double __ieee754_remainder(double x, double p)
-#else
- double __ieee754_remainder(x,p)
- double x,p;
-#endif
-{
- int32_t hx,hp;
- uint32_t sx,lx,lp;
- double p_half;
-
- EXTRACT_WORDS(hx,lx,x);
- EXTRACT_WORDS(hp,lp,p);
- sx = hx&0x80000000;
- hp &= 0x7fffffff;
- hx &= 0x7fffffff;
-
- /* purge off exception values */
- if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */
- if((hx>=0x7ff00000)|| /* x not finite */
- ((hp>=0x7ff00000)&& /* p is NaN */
- (((hp-0x7ff00000)|lp)!=0)))
- return (x*p)/(x*p);
-
-
- if (hp<=0x7fdfffff) x = __ieee754_fmod(x,p+p); /* now x < 2p */
- if (((hx-hp)|(lx-lp))==0) return zero*x;
- x = fabs(x);
- p = fabs(p);
- if (hp<0x00200000) {
- if(x+x>p) {
- x-=p;
- if(x+x>=p) x -= p;
- }
- } else {
- p_half = 0.5*p;
- if(x>p_half) {
- x-=p;
- if(x>=p_half) x -= p;
- }
- }
- GET_HIGH_WORD(hx,x);
- SET_HIGH_WORD(x,hx^sx);
- return x;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_scalb.c b/libjava/java/lang/e_scalb.c
deleted file mode 100644
index 0bb924b43ee..00000000000
--- a/libjava/java/lang/e_scalb.c
+++ /dev/null
@@ -1,55 +0,0 @@
-
-/* @(#)e_scalb.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * __ieee754_scalb(x, fn) is provide for
- * passing various standard test suite. One
- * should use scalbn() instead.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef _SCALB_INT
-#ifdef __STDC__
- double __ieee754_scalb(double x, int fn)
-#else
- double __ieee754_scalb(x,fn)
- double x; int fn;
-#endif
-#else
-#ifdef __STDC__
- double __ieee754_scalb(double x, double fn)
-#else
- double __ieee754_scalb(x,fn)
- double x, fn;
-#endif
-#endif
-{
-#ifdef _SCALB_INT
- return scalbn(x,fn);
-#else
- if (isnan(x)||isnan(fn)) return x*fn;
- if (!finite(fn)) {
- if(fn>0.0) return x*fn;
- else return x/(-fn);
- }
- if (rint(fn)!=fn) return (fn-fn)/(fn-fn);
- if ( fn > 65000.0) return scalbn(x, 65000);
- if (-fn > 65000.0) return scalbn(x,-65000);
- return scalbn(x,(int)fn);
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/e_sqrt.c b/libjava/java/lang/e_sqrt.c
deleted file mode 100644
index 1d566a0847e..00000000000
--- a/libjava/java/lang/e_sqrt.c
+++ /dev/null
@@ -1,452 +0,0 @@
-
-/* @(#)e_sqrt.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_sqrt(x)
- * Return correctly rounded sqrt.
- * ------------------------------------------
- * | Use the hardware sqrt if you have one |
- * ------------------------------------------
- * Method:
- * Bit by bit method using integer arithmetic. (Slow, but portable)
- * 1. Normalization
- * Scale x to y in [1,4) with even powers of 2:
- * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then
- * sqrt(x) = 2^k * sqrt(y)
- * 2. Bit by bit computation
- * Let q = sqrt(y) truncated to i bit after binary point (q = 1),
- * i 0
- * i+1 2
- * s = 2*q , and y = 2 * ( y - q ). (1)
- * i i i i
- *
- * To compute q from q , one checks whether
- * i+1 i
- *
- * -(i+1) 2
- * (q + 2 ) <= y. (2)
- * i
- * -(i+1)
- * If (2) is false, then q = q ; otherwise q = q + 2 .
- * i+1 i i+1 i
- *
- * With some algebric manipulation, it is not difficult to see
- * that (2) is equivalent to
- * -(i+1)
- * s + 2 <= y (3)
- * i i
- *
- * The advantage of (3) is that s and y can be computed by
- * i i
- * the following recurrence formula:
- * if (3) is false
- *
- * s = s , y = y ; (4)
- * i+1 i i+1 i
- *
- * otherwise,
- * -i -(i+1)
- * s = s + 2 , y = y - s - 2 (5)
- * i+1 i i+1 i i
- *
- * One may easily use induction to prove (4) and (5).
- * Note. Since the left hand side of (3) contain only i+2 bits,
- * it does not necessary to do a full (53-bit) comparison
- * in (3).
- * 3. Final rounding
- * After generating the 53 bits result, we compute one more bit.
- * Together with the remainder, we can decide whether the
- * result is exact, bigger than 1/2ulp, or less than 1/2ulp
- * (it will never equal to 1/2ulp).
- * The rounding mode can be detected by checking whether
- * huge + tiny is equal to huge, and whether huge - tiny is
- * equal to huge for some floating point number "huge" and "tiny".
- *
- * Special cases:
- * sqrt(+-0) = +-0 ... exact
- * sqrt(inf) = inf
- * sqrt(-ve) = NaN ... with invalid signal
- * sqrt(NaN) = NaN ... with invalid signal for signaling NaN
- *
- * Other methods : see the appended file at the end of the program below.
- *---------------
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double one = 1.0, tiny=1.0e-300;
-#else
-static double one = 1.0, tiny=1.0e-300;
-#endif
-
-#ifdef __STDC__
- double __ieee754_sqrt(double x)
-#else
- double __ieee754_sqrt(x)
- double x;
-#endif
-{
- double z;
- int32_t sign = (int)0x80000000;
- uint32_t r,t1,s1,ix1,q1;
- int32_t ix0,s0,q,m,t,i;
-
- EXTRACT_WORDS(ix0,ix1,x);
-
- /* take care of Inf and NaN */
- if((ix0&0x7ff00000)==0x7ff00000) {
- return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
- sqrt(-inf)=sNaN */
- }
- /* take care of zero */
- if(ix0<=0) {
- if(((ix0&(~sign))|ix1)==0) return x;/* sqrt(+-0) = +-0 */
- else if(ix0<0)
- return (x-x)/(x-x); /* sqrt(-ve) = sNaN */
- }
- /* normalize x */
- m = (ix0>>20);
- if(m==0) { /* subnormal x */
- while(ix0==0) {
- m -= 21;
- ix0 |= (ix1>>11); ix1 <<= 21;
- }
- for(i=0;(ix0&0x00100000)==0;i++) ix0<<=1;
- m -= i-1;
- ix0 |= (ix1>>(32-i));
- ix1 <<= i;
- }
- m -= 1023; /* unbias exponent */
- ix0 = (ix0&0x000fffff)|0x00100000;
- if(m&1){ /* odd m, double x to make it even */
- ix0 += ix0 + ((ix1&sign)>>31);
- ix1 += ix1;
- }
- m >>= 1; /* m = [m/2] */
-
- /* generate sqrt(x) bit by bit */
- ix0 += ix0 + ((ix1&sign)>>31);
- ix1 += ix1;
- q = q1 = s0 = s1 = 0; /* [q,q1] = sqrt(x) */
- r = 0x00200000; /* r = moving bit from right to left */
-
- while(r!=0) {
- t = s0+r;
- if(t<=ix0) {
- s0 = t+r;
- ix0 -= t;
- q += r;
- }
- ix0 += ix0 + ((ix1&sign)>>31);
- ix1 += ix1;
- r>>=1;
- }
-
- r = sign;
- while(r!=0) {
- t1 = s1+r;
- t = s0;
- if((t<ix0)||((t==ix0)&&(t1<=ix1))) {
- s1 = t1+r;
- if(((t1&sign)==(uint32_t)sign)&&(s1&sign)==0) s0 += 1;
- ix0 -= t;
- if (ix1 < t1) ix0 -= 1;
- ix1 -= t1;
- q1 += r;
- }
- ix0 += ix0 + ((ix1&sign)>>31);
- ix1 += ix1;
- r>>=1;
- }
-
- /* use floating add to find out rounding direction */
- if((ix0|ix1)!=0) {
- z = one-tiny; /* trigger inexact flag */
- if (z>=one) {
- z = one+tiny;
- if (q1==(uint32_t)0xffffffff) { q1=0; q += 1;}
- else if (z>one) {
- if (q1==(uint32_t)0xfffffffe) q+=1;
- q1+=2;
- } else
- q1 += (q1&1);
- }
- }
- ix0 = (q>>1)+0x3fe00000;
- ix1 = q1>>1;
- if ((q&1)==1) ix1 |= sign;
- ix0 += (m <<20);
- INSERT_WORDS(z,ix0,ix1);
- return z;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
-
-/*
-Other methods (use floating-point arithmetic)
--------------
-(This is a copy of a drafted paper by Prof W. Kahan
-and K.C. Ng, written in May, 1986)
-
- Two algorithms are given here to implement sqrt(x)
- (IEEE double precision arithmetic) in software.
- Both supply sqrt(x) correctly rounded. The first algorithm (in
- Section A) uses newton iterations and involves four divisions.
- The second one uses reciproot iterations to avoid division, but
- requires more multiplications. Both algorithms need the ability
- to chop results of arithmetic operations instead of round them,
- and the INEXACT flag to indicate when an arithmetic operation
- is executed exactly with no roundoff error, all part of the
- standard (IEEE 754-1985). The ability to perform shift, add,
- subtract and logical AND operations upon 32-bit words is needed
- too, though not part of the standard.
-
-A. sqrt(x) by Newton Iteration
-
- (1) Initial approximation
-
- Let x0 and x1 be the leading and the trailing 32-bit words of
- a floating point number x (in IEEE double format) respectively
-
- 1 11 52 ...widths
- ------------------------------------------------------
- x: |s| e | f |
- ------------------------------------------------------
- msb lsb msb lsb ...order
-
-
- ------------------------ ------------------------
- x0: |s| e | f1 | x1: | f2 |
- ------------------------ ------------------------
-
- By performing shifts and subtracts on x0 and x1 (both regarded
- as integers), we obtain an 8-bit approximation of sqrt(x) as
- follows.
-
- k := (x0>>1) + 0x1ff80000;
- y0 := k - T1[31&(k>>15)]. ... y ~ sqrt(x) to 8 bits
- Here k is a 32-bit integer and T1[] is an integer array containing
- correction terms. Now magically the floating value of y (y's
- leading 32-bit word is y0, the value of its trailing word is 0)
- approximates sqrt(x) to almost 8-bit.
-
- Value of T1:
- static int T1[32]= {
- 0, 1024, 3062, 5746, 9193, 13348, 18162, 23592,
- 29598, 36145, 43202, 50740, 58733, 67158, 75992, 85215,
- 83599, 71378, 60428, 50647, 41945, 34246, 27478, 21581,
- 16499, 12183, 8588, 5674, 3403, 1742, 661, 130,};
-
- (2) Iterative refinement
-
- Apply Heron's rule three times to y, we have y approximates
- sqrt(x) to within 1 ulp (Unit in the Last Place):
-
- y := (y+x/y)/2 ... almost 17 sig. bits
- y := (y+x/y)/2 ... almost 35 sig. bits
- y := y-(y-x/y)/2 ... within 1 ulp
-
-
- Remark 1.
- Another way to improve y to within 1 ulp is:
-
- y := (y+x/y) ... almost 17 sig. bits to 2*sqrt(x)
- y := y - 0x00100006 ... almost 18 sig. bits to sqrt(x)
-
- 2
- (x-y )*y
- y := y + 2* ---------- ...within 1 ulp
- 2
- 3y + x
-
-
- This formula has one division fewer than the one above; however,
- it requires more multiplications and additions. Also x must be
- scaled in advance to avoid spurious overflow in evaluating the
- expression 3y*y+x. Hence it is not recommended uless division
- is slow. If division is very slow, then one should use the
- reciproot algorithm given in section B.
-
- (3) Final adjustment
-
- By twiddling y's last bit it is possible to force y to be
- correctly rounded according to the prevailing rounding mode
- as follows. Let r and i be copies of the rounding mode and
- inexact flag before entering the square root program. Also we
- use the expression y+-ulp for the next representable floating
- numbers (up and down) of y. Note that y+-ulp = either fixed
- point y+-1, or multiply y by nextafter(1,+-inf) in chopped
- mode.
-
- I := FALSE; ... reset INEXACT flag I
- R := RZ; ... set rounding mode to round-toward-zero
- z := x/y; ... chopped quotient, possibly inexact
- If(not I) then { ... if the quotient is exact
- if(z=y) {
- I := i; ... restore inexact flag
- R := r; ... restore rounded mode
- return sqrt(x):=y.
- } else {
- z := z - ulp; ... special rounding
- }
- }
- i := TRUE; ... sqrt(x) is inexact
- If (r=RN) then z=z+ulp ... rounded-to-nearest
- If (r=RP) then { ... round-toward-+inf
- y = y+ulp; z=z+ulp;
- }
- y := y+z; ... chopped sum
- y0:=y0-0x00100000; ... y := y/2 is correctly rounded.
- I := i; ... restore inexact flag
- R := r; ... restore rounded mode
- return sqrt(x):=y.
-
- (4) Special cases
-
- Square root of +inf, +-0, or NaN is itself;
- Square root of a negative number is NaN with invalid signal.
-
-
-B. sqrt(x) by Reciproot Iteration
-
- (1) Initial approximation
-
- Let x0 and x1 be the leading and the trailing 32-bit words of
- a floating point number x (in IEEE double format) respectively
- (see section A). By performing shifs and subtracts on x0 and y0,
- we obtain a 7.8-bit approximation of 1/sqrt(x) as follows.
-
- k := 0x5fe80000 - (x0>>1);
- y0:= k - T2[63&(k>>14)]. ... y ~ 1/sqrt(x) to 7.8 bits
-
- Here k is a 32-bit integer and T2[] is an integer array
- containing correction terms. Now magically the floating
- value of y (y's leading 32-bit word is y0, the value of
- its trailing word y1 is set to zero) approximates 1/sqrt(x)
- to almost 7.8-bit.
-
- Value of T2:
- static int T2[64]= {
- 0x1500, 0x2ef8, 0x4d67, 0x6b02, 0x87be, 0xa395, 0xbe7a, 0xd866,
- 0xf14a, 0x1091b,0x11fcd,0x13552,0x14999,0x15c98,0x16e34,0x17e5f,
- 0x18d03,0x19a01,0x1a545,0x1ae8a,0x1b5c4,0x1bb01,0x1bfde,0x1c28d,
- 0x1c2de,0x1c0db,0x1ba73,0x1b11c,0x1a4b5,0x1953d,0x18266,0x16be0,
- 0x1683e,0x179d8,0x18a4d,0x19992,0x1a789,0x1b445,0x1bf61,0x1c989,
- 0x1d16d,0x1d77b,0x1dddf,0x1e2ad,0x1e5bf,0x1e6e8,0x1e654,0x1e3cd,
- 0x1df2a,0x1d635,0x1cb16,0x1be2c,0x1ae4e,0x19bde,0x1868e,0x16e2e,
- 0x1527f,0x1334a,0x11051,0xe951, 0xbe01, 0x8e0d, 0x5924, 0x1edd,};
-
- (2) Iterative refinement
-
- Apply Reciproot iteration three times to y and multiply the
- result by x to get an approximation z that matches sqrt(x)
- to about 1 ulp. To be exact, we will have
- -1ulp < sqrt(x)-z<1.0625ulp.
-
- ... set rounding mode to Round-to-nearest
- y := y*(1.5-0.5*x*y*y) ... almost 15 sig. bits to 1/sqrt(x)
- y := y*((1.5-2^-30)+0.5*x*y*y)... about 29 sig. bits to 1/sqrt(x)
- ... special arrangement for better accuracy
- z := x*y ... 29 bits to sqrt(x), with z*y<1
- z := z + 0.5*z*(1-z*y) ... about 1 ulp to sqrt(x)
-
- Remark 2. The constant 1.5-2^-30 is chosen to bias the error so that
- (a) the term z*y in the final iteration is always less than 1;
- (b) the error in the final result is biased upward so that
- -1 ulp < sqrt(x) - z < 1.0625 ulp
- instead of |sqrt(x)-z|<1.03125ulp.
-
- (3) Final adjustment
-
- By twiddling y's last bit it is possible to force y to be
- correctly rounded according to the prevailing rounding mode
- as follows. Let r and i be copies of the rounding mode and
- inexact flag before entering the square root program. Also we
- use the expression y+-ulp for the next representable floating
- numbers (up and down) of y. Note that y+-ulp = either fixed
- point y+-1, or multiply y by nextafter(1,+-inf) in chopped
- mode.
-
- R := RZ; ... set rounding mode to round-toward-zero
- switch(r) {
- case RN: ... round-to-nearest
- if(x<= z*(z-ulp)...chopped) z = z - ulp; else
- if(x<= z*(z+ulp)...chopped) z = z; else z = z+ulp;
- break;
- case RZ:case RM: ... round-to-zero or round-to--inf
- R:=RP; ... reset rounding mod to round-to-+inf
- if(x<z*z ... rounded up) z = z - ulp; else
- if(x>=(z+ulp)*(z+ulp) ...rounded up) z = z+ulp;
- break;
- case RP: ... round-to-+inf
- if(x>(z+ulp)*(z+ulp)...chopped) z = z+2*ulp; else
- if(x>z*z ...chopped) z = z+ulp;
- break;
- }
-
- Remark 3. The above comparisons can be done in fixed point. For
- example, to compare x and w=z*z chopped, it suffices to compare
- x1 and w1 (the trailing parts of x and w), regarding them as
- two's complement integers.
-
- ...Is z an exact square root?
- To determine whether z is an exact square root of x, let z1 be the
- trailing part of z, and also let x0 and x1 be the leading and
- trailing parts of x.
-
- If ((z1&0x03ffffff)!=0) ... not exact if trailing 26 bits of z!=0
- I := 1; ... Raise Inexact flag: z is not exact
- else {
- j := 1 - [(x0>>20)&1] ... j = logb(x) mod 2
- k := z1 >> 26; ... get z's 25-th and 26-th
- fraction bits
- I := i or (k&j) or ((k&(j+j+1))!=(x1&3));
- }
- R:= r ... restore rounded mode
- return sqrt(x):=z.
-
- If multiplication is cheaper then the foregoing red tape, the
- Inexact flag can be evaluated by
-
- I := i;
- I := (z*z!=x) or I.
-
- Note that z*z can overwrite I; this value must be sensed if it is
- True.
-
- Remark 4. If z*z = x exactly, then bit 25 to bit 0 of z1 must be
- zero.
-
- --------------------
- z1: | f2 |
- --------------------
- bit 31 bit 0
-
- Further more, bit 27 and 26 of z1, bit 0 and 1 of x1, and the odd
- or even of logb(x) have the following relations:
-
- -------------------------------------------------
- bit 27,26 of z1 bit 1,0 of x1 logb(x)
- -------------------------------------------------
- 00 00 odd and even
- 01 01 even
- 10 10 odd
- 10 00 even
- 11 01 even
- -------------------------------------------------
-
- (4) Special cases (see (4) of Section A).
-
- */
diff --git a/libjava/java/lang/fdlibm.h b/libjava/java/lang/fdlibm.h
deleted file mode 100644
index 1544c0aad9e..00000000000
--- a/libjava/java/lang/fdlibm.h
+++ /dev/null
@@ -1,346 +0,0 @@
-
-/* @(#)fdlibm.h 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993, 2000 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-
-#include <config.h>
-#include <stdlib.h>
-
-/* CYGNUS LOCAL: Include files. */
-#include "ieeefp.h"
-
-#include "mprec.h"
-
-/* CYGNUS LOCAL: Default to XOPEN_MODE. */
-#define _XOPEN_MODE
-
-#ifdef __P
-#undef __P
-#endif
-
-#ifdef __STDC__
-#define __P(p) p
-#else
-#define __P(p) ()
-#endif
-
-#ifndef HUGE
-#define HUGE ((float)3.40282346638528860e+38)
-#endif
-
-/*
- * set X_TLOSS = pi*2**52, which is possibly defined in <values.h>
- * (one may replace the following line by "#include <values.h>")
- */
-
-#define X_TLOSS 1.41484755040568800000e+16
-
-/* These typedefs are true for the targets running Java. */
-
-#define _IEEE_LIBM
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * ANSI/POSIX
- */
-extern double acos __P((double));
-extern double asin __P((double));
-extern double atan __P((double));
-extern double atan2 __P((double, double));
-extern double cos __P((double));
-extern double sin __P((double));
-extern double tan __P((double));
-
-extern double cosh __P((double));
-extern double sinh __P((double));
-extern double tanh __P((double));
-
-extern double exp __P((double));
-extern double frexp __P((double, int *));
-extern double ldexp __P((double, int));
-extern double log __P((double));
-extern double log10 __P((double));
-extern double modf __P((double, double *));
-
-extern double pow __P((double, double));
-extern double sqrt __P((double));
-
-extern double ceil __P((double));
-extern double fabs __P((double));
-extern double floor __P((double));
-extern double fmod __P((double, double));
-
-extern double erf __P((double));
-extern double erfc __P((double));
-extern double gamma __P((double));
-extern double hypot __P((double, double));
-extern int isnan __P((double));
-extern int finite __P((double));
-extern double j0 __P((double));
-extern double j1 __P((double));
-extern double jn __P((int, double));
-extern double lgamma __P((double));
-extern double y0 __P((double));
-extern double y1 __P((double));
-extern double yn __P((int, double));
-
-extern double acosh __P((double));
-extern double asinh __P((double));
-extern double atanh __P((double));
-extern double cbrt __P((double));
-extern double logb __P((double));
-extern double nextafter __P((double, double));
-extern double remainder __P((double, double));
-
-/* Functions that are not documented, and are not in <math.h>. */
-
-extern double logb __P((double));
-#ifdef _SCALB_INT
-extern double scalb __P((double, int));
-#else
-extern double scalb __P((double, double));
-#endif
-extern double significand __P((double));
-
-/* ieee style elementary functions */
-extern double __ieee754_sqrt __P((double));
-extern double __ieee754_acos __P((double));
-extern double __ieee754_acosh __P((double));
-extern double __ieee754_log __P((double));
-extern double __ieee754_atanh __P((double));
-extern double __ieee754_asin __P((double));
-extern double __ieee754_atan2 __P((double,double));
-extern double __ieee754_exp __P((double));
-extern double __ieee754_cosh __P((double));
-extern double __ieee754_fmod __P((double,double));
-extern double __ieee754_pow __P((double,double));
-extern double __ieee754_lgamma_r __P((double,int *));
-extern double __ieee754_gamma_r __P((double,int *));
-extern double __ieee754_log10 __P((double));
-extern double __ieee754_sinh __P((double));
-extern double __ieee754_hypot __P((double,double));
-extern double __ieee754_j0 __P((double));
-extern double __ieee754_j1 __P((double));
-extern double __ieee754_y0 __P((double));
-extern double __ieee754_y1 __P((double));
-extern double __ieee754_jn __P((int,double));
-extern double __ieee754_yn __P((int,double));
-extern double __ieee754_remainder __P((double,double));
-extern int32_t __ieee754_rem_pio2 __P((double,double*));
-#ifdef _SCALB_INT
-extern double __ieee754_scalb __P((double,int));
-#else
-extern double __ieee754_scalb __P((double,double));
-#endif
-
-/* fdlibm kernel function */
-extern double __kernel_standard __P((double,double,int));
-extern double __kernel_sin __P((double,double,int));
-extern double __kernel_cos __P((double,double));
-extern double __kernel_tan __P((double,double,int));
-extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int32_t*));
-
-/* Undocumented float functions. */
-extern float logbf __P((float));
-#ifdef _SCALB_INT
-extern float scalbf __P((float, int));
-#else
-extern float scalbf __P((float, float));
-#endif
-extern float significandf __P((float));
-
-/*
- * Functions callable from C, intended to support IEEE arithmetic.
- */
-extern double copysign __P((double, double));
-extern int ilogb __P((double));
-extern double rint __P((double));
-extern float rintf __P((float));
-extern double scalbn __P((double, int));
-
-/* ieee style elementary float functions */
-extern float __ieee754_sqrtf __P((float));
-extern float __ieee754_acosf __P((float));
-extern float __ieee754_acoshf __P((float));
-extern float __ieee754_logf __P((float));
-extern float __ieee754_atanhf __P((float));
-extern float __ieee754_asinf __P((float));
-extern float __ieee754_atan2f __P((float,float));
-extern float __ieee754_expf __P((float));
-extern float __ieee754_coshf __P((float));
-extern float __ieee754_fmodf __P((float,float));
-extern float __ieee754_powf __P((float,float));
-extern float __ieee754_lgammaf_r __P((float,int *));
-extern float __ieee754_gammaf_r __P((float,int *));
-extern float __ieee754_log10f __P((float));
-extern float __ieee754_sinhf __P((float));
-extern float __ieee754_hypotf __P((float,float));
-extern float __ieee754_j0f __P((float));
-extern float __ieee754_j1f __P((float));
-extern float __ieee754_y0f __P((float));
-extern float __ieee754_y1f __P((float));
-extern float __ieee754_jnf __P((int,float));
-extern float __ieee754_ynf __P((int,float));
-extern float __ieee754_remainderf __P((float,float));
-extern int32_t __ieee754_rem_pio2f __P((float,float*));
-#ifdef _SCALB_INT
-extern float __ieee754_scalbf __P((float,int));
-#else
-extern float __ieee754_scalbf __P((float,float));
-#endif
-
-/* float versions of fdlibm kernel functions */
-extern float __kernel_sinf __P((float,float,int));
-extern float __kernel_cosf __P((float,float));
-extern float __kernel_tanf __P((float,float,int));
-extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int32_t*));
-
-/* The original code used statements like
- n0 = ((*(int*)&one)>>29)^1; * index of high word *
- ix0 = *(n0+(int*)&x); * high word of x *
- ix1 = *((1-n0)+(int*)&x); * low word of x *
- to dig two 32 bit words out of the 64 bit IEEE floating point
- value. That is non-ANSI, and, moreover, the gcc instruction
- scheduler gets it wrong. We instead use the following macros.
- Unlike the original code, we determine the endianness at compile
- time, not at run time; I don't see much benefit to selecting
- endianness at run time. */
-
-#ifndef __IEEE_BIG_ENDIAN
-#ifndef __IEEE_LITTLE_ENDIAN
- #error Must define endianness
-#endif
-#endif
-
-/* A union which permits us to convert between a double and two 32 bit
- ints. */
-
-#ifdef __IEEE_BIG_ENDIAN
-
-typedef union
-{
- double value;
- struct
- {
- uint32_t msw;
- uint32_t lsw;
- } parts;
-} ieee_double_shape_type;
-
-#endif
-
-#ifdef __IEEE_LITTLE_ENDIAN
-
-typedef union
-{
- double value;
- struct
- {
- uint32_t lsw;
- uint32_t msw;
- } parts;
-} ieee_double_shape_type;
-
-#endif
-
-/* Get two 32 bit ints from a double. */
-
-#define EXTRACT_WORDS(ix0,ix1,d) \
-do { \
- ieee_double_shape_type ew_u; \
- ew_u.value = (d); \
- (ix0) = ew_u.parts.msw; \
- (ix1) = ew_u.parts.lsw; \
-} while (0)
-
-/* Get the more significant 32 bit int from a double. */
-
-#define GET_HIGH_WORD(i,d) \
-do { \
- ieee_double_shape_type gh_u; \
- gh_u.value = (d); \
- (i) = gh_u.parts.msw; \
-} while (0)
-
-/* Get the less significant 32 bit int from a double. */
-
-#define GET_LOW_WORD(i,d) \
-do { \
- ieee_double_shape_type gl_u; \
- gl_u.value = (d); \
- (i) = gl_u.parts.lsw; \
-} while (0)
-
-/* Set a double from two 32 bit ints. */
-
-#define INSERT_WORDS(d,ix0,ix1) \
-do { \
- ieee_double_shape_type iw_u; \
- iw_u.parts.msw = (ix0); \
- iw_u.parts.lsw = (ix1); \
- (d) = iw_u.value; \
-} while (0)
-
-/* Set the more significant 32 bits of a double from an int. */
-
-#define SET_HIGH_WORD(d,v) \
-do { \
- ieee_double_shape_type sh_u; \
- sh_u.value = (d); \
- sh_u.parts.msw = (v); \
- (d) = sh_u.value; \
-} while (0)
-
-/* Set the less significant 32 bits of a double from an int. */
-
-#define SET_LOW_WORD(d,v) \
-do { \
- ieee_double_shape_type sl_u; \
- sl_u.value = (d); \
- sl_u.parts.lsw = (v); \
- (d) = sl_u.value; \
-} while (0)
-
-/* A union which permits us to convert between a float and a 32 bit
- int. */
-
-typedef union
-{
- float value;
- uint32_t word;
-} ieee_float_shape_type;
-
-/* Get a 32 bit int from a float. */
-
-#define GET_FLOAT_WORD(i,d) \
-do { \
- ieee_float_shape_type gf_u; \
- gf_u.value = (d); \
- (i) = gf_u.word; \
-} while (0)
-
-/* Set a float from a 32 bit int. */
-
-#define SET_FLOAT_WORD(d,i) \
-do { \
- ieee_float_shape_type sf_u; \
- sf_u.word = (i); \
- (d) = sf_u.value; \
-} while (0)
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libjava/java/lang/ieeefp.h b/libjava/java/lang/ieeefp.h
deleted file mode 100644
index de1f7c6b8f7..00000000000
--- a/libjava/java/lang/ieeefp.h
+++ /dev/null
@@ -1,134 +0,0 @@
-#ifndef __IEEE_BIG_ENDIAN
-#ifndef __IEEE_LITTLE_ENDIAN
-
-#ifdef __alpha__
-#define __IEEE_LITTLE_ENDIAN
-#endif
-
-#ifdef __arm__
-/* ARM always has big-endian words. Within those words the byte ordering
- appears to be big or little endian. Newlib doesn't seem to care about
- the byte ordering within words. */
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __hppa__
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#if defined (__sparc) || defined (__sparc__)
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#if defined(__m68k__) || defined(__mc68000__)
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#if defined (__H8300__) || defined (__H8300H__)
-#define __IEEE_BIG_ENDIAN
-#define __SMALL_BITFIELDS
-#define _DOUBLE_IS_32BITS
-#endif
-
-#ifdef __H8500__
-#define __IEEE_BIG_ENDIAN
-#define __SMALL_BITFIELDS
-#define _DOUBLE_IS_32BITS
-#endif
-
-#ifdef __sh__
-#ifdef __LITTLE_ENDIAN__
-#define __IEEE_LITTLE_ENDIAN
-#else
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __SH3E__
-#define _DOUBLE_IS_32BITS
-#endif
-#endif
-
-#ifdef _AM29K
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __i386__
-#define __IEEE_LITTLE_ENDIAN
-#endif
-
-#ifdef __i960__
-#define __IEEE_LITTLE_ENDIAN
-#endif
-
-#ifdef __MIPSEL__
-#define __IEEE_LITTLE_ENDIAN
-#endif
-
-#ifdef __MIPSEB__
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __pj__
-#ifdef __pjl__
-#define __IEEE_LITTLE_ENDIAN
-#else
-#define __IEEE_BIG_ENDIAN
-#endif
-#endif
-
-/* necv70 was __IEEE_LITTLE_ENDIAN. */
-
-#ifdef __W65__
-#define __IEEE_LITTLE_ENDIAN
-#define __SMALL_BITFIELDS
-#define _DOUBLE_IS_32BITS
-#endif
-
-#if defined(__Z8001__) || defined(__Z8002__)
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __m88k__
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __v800
-#define __IEEE_LITTLE_ENDIAN
-#endif
-
-#ifdef __PPC__
-#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX)
-#define __IEEE_BIG_ENDIAN
-#else
-#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(__WIN32__) && __WIN32__)
-#define __IEEE_LITTLE_ENDIAN
-#endif
-#endif
-#endif
-
-#ifdef __fr30__
-#define __IEEE_BIG_ENDIAN
-#endif
-
-#ifdef __mcore__
-#define __IEEE_BIG_ENDIAN
-#endif
-
-
-#ifdef __ia64__
-#ifdef __BIG_ENDIAN__
-#define __IEEE_BIG_ENDIAN
-#else
-#define __IEEE_LITTLE_ENDIAN
-#endif
-#endif
-
-#ifndef __IEEE_BIG_ENDIAN
-#ifndef __IEEE_LITTLE_ENDIAN
-#error Endianess not declared!!
-#endif /* not __IEEE_LITTLE_ENDIAN */
-#endif /* not __IEEE_BIG_ENDIAN */
-
-#endif /* not __IEEE_LITTLE_ENDIAN */
-#endif /* not __IEEE_BIG_ENDIAN */
-
diff --git a/libjava/java/lang/k_cos.c b/libjava/java/lang/k_cos.c
deleted file mode 100644
index acf50a82e83..00000000000
--- a/libjava/java/lang/k_cos.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/* @(#)k_cos.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * __kernel_cos( x, y )
- * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
- * Input x is assumed to be bounded by ~pi/4 in magnitude.
- * Input y is the tail of x.
- *
- * Algorithm
- * 1. Since cos(-x) = cos(x), we need only to consider positive x.
- * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0.
- * 3. cos(x) is approximated by a polynomial of degree 14 on
- * [0,pi/4]
- * 4 14
- * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
- * where the remez error is
- *
- * | 2 4 6 8 10 12 14 | -58
- * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2
- * | |
- *
- * 4 6 8 10 12 14
- * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then
- * cos(x) = 1 - x*x/2 + r
- * since cos(x+y) ~ cos(x) - sin(x)*y
- * ~ cos(x) - x*y,
- * a correction term is necessary in cos(x) and hence
- * cos(x+y) = 1 - (x*x/2 - (r - x*y))
- * For better accuracy when x > 0.3, let qx = |x|/4 with
- * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125.
- * Then
- * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)).
- * Note that 1-qx and (x*x/2-qx) is EXACT here, and the
- * magnitude of the latter is at least a quarter of x*x/2,
- * thus, reducing the rounding error in the subtraction.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
-C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */
-C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
-C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */
-C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
-C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
-C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
-
-#ifdef __STDC__
- double __kernel_cos(double x, double y)
-#else
- double __kernel_cos(x, y)
- double x,y;
-#endif
-{
- double a,hz,z,r,qx;
- int32_t ix;
- GET_HIGH_WORD(ix,x);
- ix &= 0x7fffffff; /* ix = |x|'s high word*/
- if(ix<0x3e400000) { /* if x < 2**27 */
- if(((int)x)==0) return one; /* generate inexact */
- }
- z = x*x;
- r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
- if(ix < 0x3FD33333) /* if |x| < 0.3 */
- return one - (0.5*z - (z*r - x*y));
- else {
- if(ix > 0x3fe90000) { /* x > 0.78125 */
- qx = 0.28125;
- } else {
- INSERT_WORDS(qx,ix-0x00200000,0); /* x/4 */
- }
- hz = 0.5*z-qx;
- a = one-qx;
- return a - (hz - (z*r-x*y));
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/k_rem_pio2.c b/libjava/java/lang/k_rem_pio2.c
deleted file mode 100644
index 2f4ca17256c..00000000000
--- a/libjava/java/lang/k_rem_pio2.c
+++ /dev/null
@@ -1,320 +0,0 @@
-
-/* @(#)k_rem_pio2.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2)
- * double x[],y[]; int e0,nx,prec; int ipio2[];
- *
- * __kernel_rem_pio2 return the last three digits of N with
- * y = x - N*pi/2
- * so that |y| < pi/2.
- *
- * The method is to compute the integer (mod 8) and fraction parts of
- * (2/pi)*x without doing the full multiplication. In general we
- * skip the part of the product that are known to be a huge integer (
- * more accurately, = 0 mod 8 ). Thus the number of operations are
- * independent of the exponent of the input.
- *
- * (2/pi) is represented by an array of 24-bit integers in ipio2[].
- *
- * Input parameters:
- * x[] The input value (must be positive) is broken into nx
- * pieces of 24-bit integers in double precision format.
- * x[i] will be the i-th 24 bit of x. The scaled exponent
- * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0
- * match x's up to 24 bits.
- *
- * Example of breaking a double positive z into x[0]+x[1]+x[2]:
- * e0 = ilogb(z)-23
- * z = scalbn(z,-e0)
- * for i = 0,1,2
- * x[i] = floor(z)
- * z = (z-x[i])*2**24
- *
- *
- * y[] ouput result in an array of double precision numbers.
- * The dimension of y[] is:
- * 24-bit precision 1
- * 53-bit precision 2
- * 64-bit precision 2
- * 113-bit precision 3
- * The actual value is the sum of them. Thus for 113-bit
- * precison, one may have to do something like:
- *
- * long double t,w,r_head, r_tail;
- * t = (long double)y[2] + (long double)y[1];
- * w = (long double)y[0];
- * r_head = t+w;
- * r_tail = w - (r_head - t);
- *
- * e0 The exponent of x[0]
- *
- * nx dimension of x[]
- *
- * prec an integer indicating the precision:
- * 0 24 bits (single)
- * 1 53 bits (double)
- * 2 64 bits (extended)
- * 3 113 bits (quad)
- *
- * ipio2[]
- * integer array, contains the (24*i)-th to (24*i+23)-th
- * bit of 2/pi after binary point. The corresponding
- * floating value is
- *
- * ipio2[i] * 2^(-24(i+1)).
- *
- * External function:
- * double scalbn(), floor();
- *
- *
- * Here is the description of some local variables:
- *
- * jk jk+1 is the initial number of terms of ipio2[] needed
- * in the computation. The recommended value is 2,3,4,
- * 6 for single, double, extended,and quad.
- *
- * jz local integer variable indicating the number of
- * terms of ipio2[] used.
- *
- * jx nx - 1
- *
- * jv index for pointing to the suitable ipio2[] for the
- * computation. In general, we want
- * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8
- * is an integer. Thus
- * e0-3-24*jv >= 0 or (e0-3)/24 >= jv
- * Hence jv = max(0,(e0-3)/24).
- *
- * jp jp+1 is the number of terms in PIo2[] needed, jp = jk.
- *
- * q[] double array with integral value, representing the
- * 24-bits chunk of the product of x and 2/pi.
- *
- * q0 the corresponding exponent of q[0]. Note that the
- * exponent for q[i] would be q0-24*i.
- *
- * PIo2[] double precision array, obtained by cutting pi/2
- * into 24 bits chunks.
- *
- * f[] ipio2[] in floating point
- *
- * iq[] integer array by breaking up q[] in 24-bits chunk.
- *
- * fq[] final product of x*(2/pi) in fq[0],..,fq[jk]
- *
- * ih integer. If >0 it indicates q[] is >= 0.5, hence
- * it also indicates the *sign* of the result.
- *
- */
-
-
-/*
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const int init_jk[] = {2,3,4,6}; /* initial value for jk */
-#else
-static int init_jk[] = {2,3,4,6};
-#endif
-
-#ifdef __STDC__
-static const double PIo2[] = {
-#else
-static double PIo2[] = {
-#endif
- 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */
- 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */
- 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */
- 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */
- 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */
- 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */
- 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */
- 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */
-};
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-zero = 0.0,
-one = 1.0,
-two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
-twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
-
-#ifdef __STDC__
- int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
-#else
- int __kernel_rem_pio2(x,y,e0,nx,prec,ipio2)
- double x[], y[]; int e0,nx,prec; int32_t ipio2[];
-#endif
-{
- int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
- double z,fw,f[20],fq[20],q[20];
-
- /* initialize jk*/
- jk = init_jk[prec];
- jp = jk;
-
- /* determine jx,jv,q0, note that 3>q0 */
- jx = nx-1;
- jv = (e0-3)/24; if(jv<0) jv=0;
- q0 = e0-24*(jv+1);
-
- /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
- j = jv-jx; m = jx+jk;
- for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j];
-
- /* compute q[0],q[1],...q[jk] */
- for (i=0;i<=jk;i++) {
- for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
- }
-
- jz = jk;
-recompute:
- /* distill q[] into iq[] reversingly */
- for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
- fw = (double)((int32_t)(twon24* z));
- iq[i] = (int32_t)(z-two24*fw);
- z = q[j-1]+fw;
- }
-
- /* compute n */
- z = scalbn(z,(int)q0); /* actual value of z */
- z -= 8.0*floor(z*0.125); /* trim off integer >= 8 */
- n = (int32_t) z;
- z -= (double)n;
- ih = 0;
- if(q0>0) { /* need iq[jz-1] to determine n */
- i = (iq[jz-1]>>(24-q0)); n += i;
- iq[jz-1] -= i<<(24-q0);
- ih = iq[jz-1]>>(23-q0);
- }
- else if(q0==0) ih = iq[jz-1]>>23;
- else if(z>=0.5) ih=2;
-
- if(ih>0) { /* q > 0.5 */
- n += 1; carry = 0;
- for(i=0;i<jz ;i++) { /* compute 1-q */
- j = iq[i];
- if(carry==0) {
- if(j!=0) {
- carry = 1; iq[i] = 0x1000000- j;
- }
- } else iq[i] = 0xffffff - j;
- }
- if(q0>0) { /* rare case: chance is 1 in 12 */
- switch(q0) {
- case 1:
- iq[jz-1] &= 0x7fffff; break;
- case 2:
- iq[jz-1] &= 0x3fffff; break;
- }
- }
- if(ih==2) {
- z = one - z;
- if(carry!=0) z -= scalbn(one,(int)q0);
- }
- }
-
- /* check if recomputation is needed */
- if(z==zero) {
- j = 0;
- for (i=jz-1;i>=jk;i--) j |= iq[i];
- if(j==0) { /* need recomputation */
- for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */
-
- for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */
- f[jx+i] = (double) ipio2[jv+i];
- for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
- q[i] = fw;
- }
- jz += k;
- goto recompute;
- }
- }
-
- /* chop off zero terms */
- if(z==0.0) {
- jz -= 1; q0 -= 24;
- while(iq[jz]==0) { jz--; q0-=24;}
- } else { /* break z into 24-bit if necessary */
- z = scalbn(z,-(int)q0);
- if(z>=two24) {
- fw = (double)((int32_t)(twon24*z));
- iq[jz] = (int32_t)(z-two24*fw);
- jz += 1; q0 += 24;
- iq[jz] = (int32_t) fw;
- } else iq[jz] = (int32_t) z ;
- }
-
- /* convert integer "bit" chunk to floating-point value */
- fw = scalbn(one,(int)q0);
- for(i=jz;i>=0;i--) {
- q[i] = fw*(double)iq[i]; fw*=twon24;
- }
-
- /* compute PIo2[0,...,jp]*q[jz,...,0] */
- for(i=jz;i>=0;i--) {
- for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
- fq[jz-i] = fw;
- }
-
- /* compress fq[] into y[] */
- switch(prec) {
- case 0:
- fw = 0.0;
- for (i=jz;i>=0;i--) fw += fq[i];
- y[0] = (ih==0)? fw: -fw;
- break;
- case 1:
- case 2:
- fw = 0.0;
- for (i=jz;i>=0;i--) fw += fq[i];
- y[0] = (ih==0)? fw: -fw;
- fw = fq[0]-fw;
- for (i=1;i<=jz;i++) fw += fq[i];
- y[1] = (ih==0)? fw: -fw;
- break;
- case 3: /* painful */
- for (i=jz;i>0;i--) {
- fw = fq[i-1]+fq[i];
- fq[i] += fq[i-1]-fw;
- fq[i-1] = fw;
- }
- for (i=jz;i>1;i--) {
- fw = fq[i-1]+fq[i];
- fq[i] += fq[i-1]-fw;
- fq[i-1] = fw;
- }
- for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
- if(ih==0) {
- y[0] = fq[0]; y[1] = fq[1]; y[2] = fw;
- } else {
- y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
- }
- }
- return n&7;
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/k_sin.c b/libjava/java/lang/k_sin.c
deleted file mode 100644
index b4ad387c589..00000000000
--- a/libjava/java/lang/k_sin.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-/* @(#)k_sin.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __kernel_sin( x, y, iy)
- * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
- * Input x is assumed to be bounded by ~pi/4 in magnitude.
- * Input y is the tail of x.
- * Input iy indicates whether y is 0. (if iy=0, y assume to be 0).
- *
- * Algorithm
- * 1. Since sin(-x) = -sin(x), we need only to consider positive x.
- * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0.
- * 3. sin(x) is approximated by a polynomial of degree 13 on
- * [0,pi/4]
- * 3 13
- * sin(x) ~ x + S1*x + ... + S6*x
- * where
- *
- * |sin(x) 2 4 6 8 10 12 | -58
- * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2
- * | x |
- *
- * 4. sin(x+y) = sin(x) + sin'(x')*y
- * ~ sin(x) + (1-x*x/2)*y
- * For better accuracy, let
- * 3 2 2 2 2
- * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))
- * then 3 2
- * sin(x) = x + (S1*x + (x *(r-y/2)+y))
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
-S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
-S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
-S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */
-S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
-S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
-S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
-
-#ifdef __STDC__
- double __kernel_sin(double x, double y, int iy)
-#else
- double __kernel_sin(x, y, iy)
- double x,y; int iy; /* iy=0 if y is zero */
-#endif
-{
- double z,r,v;
- int32_t ix;
- GET_HIGH_WORD(ix,x);
- ix &= 0x7fffffff; /* high word of x */
- if(ix<0x3e400000) /* |x| < 2**-27 */
- {if((int)x==0) return x;} /* generate inexact */
- z = x*x;
- v = z*x;
- r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
- if(iy==0) return x+v*(S1+z*r);
- else return x-((z*(half*y-v*r)-y)-v*S1);
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/k_tan.c b/libjava/java/lang/k_tan.c
deleted file mode 100644
index a1067a70a0d..00000000000
--- a/libjava/java/lang/k_tan.c
+++ /dev/null
@@ -1,132 +0,0 @@
-
-/* @(#)k_tan.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __kernel_tan( x, y, k )
- * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
- * Input x is assumed to be bounded by ~pi/4 in magnitude.
- * Input y is the tail of x.
- * Input k indicates whether tan (if k=1) or
- * -1/tan (if k= -1) is returned.
- *
- * Algorithm
- * 1. Since tan(-x) = -tan(x), we need only to consider positive x.
- * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0.
- * 3. tan(x) is approximated by a odd polynomial of degree 27 on
- * [0,0.67434]
- * 3 27
- * tan(x) ~ x + T1*x + ... + T13*x
- * where
- *
- * |tan(x) 2 4 26 | -59.2
- * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2
- * | x |
- *
- * Note: tan(x+y) = tan(x) + tan'(x)*y
- * ~ tan(x) + (1+x*x)*y
- * Therefore, for better accuracy in computing tan(x+y), let
- * 3 2 2 2 2
- * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13))))
- * then
- * 3 2
- * tan(x+y) = x + (T1*x + (x *(r+y)+y))
- *
- * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then
- * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
- * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
-pio4 = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */
-pio4lo= 3.06161699786838301793e-17, /* 0x3C81A626, 0x33145C07 */
-T[] = {
- 3.33333333333334091986e-01, /* 0x3FD55555, 0x55555563 */
- 1.33333333333201242699e-01, /* 0x3FC11111, 0x1110FE7A */
- 5.39682539762260521377e-02, /* 0x3FABA1BA, 0x1BB341FE */
- 2.18694882948595424599e-02, /* 0x3F9664F4, 0x8406D637 */
- 8.86323982359930005737e-03, /* 0x3F8226E3, 0xE96E8493 */
- 3.59207910759131235356e-03, /* 0x3F6D6D22, 0xC9560328 */
- 1.45620945432529025516e-03, /* 0x3F57DBC8, 0xFEE08315 */
- 5.88041240820264096874e-04, /* 0x3F4344D8, 0xF2F26501 */
- 2.46463134818469906812e-04, /* 0x3F3026F7, 0x1A8D1068 */
- 7.81794442939557092300e-05, /* 0x3F147E88, 0xA03792A6 */
- 7.14072491382608190305e-05, /* 0x3F12B80F, 0x32F0A7E9 */
- -1.85586374855275456654e-05, /* 0xBEF375CB, 0xDB605373 */
- 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */
-};
-
-#ifdef __STDC__
- double __kernel_tan(double x, double y, int iy)
-#else
- double __kernel_tan(x, y, iy)
- double x,y; int iy;
-#endif
-{
- double z,r,v,w,s;
- int32_t ix,hx;
- GET_HIGH_WORD(hx,x);
- ix = hx&0x7fffffff; /* high word of |x| */
- if(ix<0x3e300000) /* x < 2**-28 */
- {if((int)x==0) { /* generate inexact */
- uint32_t low;
- GET_LOW_WORD(low,x);
- if(((ix|low)|(iy+1))==0) return one/fabs(x);
- else return (iy==1)? x: -one/x;
- }
- }
- if(ix>=0x3FE59428) { /* |x|>=0.6744 */
- if(hx<0) {x = -x; y = -y;}
- z = pio4-x;
- w = pio4lo-y;
- x = z+w; y = 0.0;
- }
- z = x*x;
- w = z*z;
- /* Break x^5*(T[1]+x^2*T[2]+...) into
- * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
- * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
- */
- r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
- v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
- s = z*x;
- r = y + z*(s*(r+v)+y);
- r += T[0]*s;
- w = x+r;
- if(ix>=0x3FE59428) {
- v = (double)iy;
- return (double)(1-((hx>>30)&2))*(v-2.0*(x-(w*w/(w+v)-r)));
- }
- if(iy==1) return w;
- else { /* if allow error up to 2 ulp,
- simply return -1.0/(x+r) here */
- /* compute -1.0/(x+r) accurately */
- double a,t;
- z = w;
- SET_LOW_WORD(z,0);
- v = r-(z - x); /* z+v = r+x */
- t = a = -1.0/w; /* a = -1.0/w */
- SET_LOW_WORD(t,0);
- s = 1.0+t*z;
- return t+a*(s+t*v);
- }
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/mprec.c b/libjava/java/lang/mprec.c
deleted file mode 100644
index 12dd5d2617a..00000000000
--- a/libjava/java/lang/mprec.c
+++ /dev/null
@@ -1,958 +0,0 @@
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991 by AT&T.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-/* Please send bug reports to
- David M. Gay
- AT&T Bell Laboratories, Room 2C-463
- 600 Mountain Avenue
- Murray Hill, NJ 07974-2070
- U.S.A.
- dmg@research.att.com or research!dmg
- */
-
-/* strtod for IEEE-, VAX-, and IBM-arithmetic machines.
- *
- * This strtod returns a nearest machine number to the input decimal
- * string (or sets errno to ERANGE). With IEEE arithmetic, ties are
- * broken by the IEEE round-even rule. Otherwise ties are broken by
- * biased rounding (add half and chop).
- *
- * Inspired loosely by William D. Clinger's paper "How to Read Floating
- * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].
- *
- * Modifications:
- *
- * 1. We only require IEEE, IBM, or VAX double-precision
- * arithmetic (not IEEE double-extended).
- * 2. We get by with floating-point arithmetic in a case that
- * Clinger missed -- when we're computing d * 10^n
- * for a small integer d and the integer n is not too
- * much larger than 22 (the maximum integer k for which
- * we can represent 10^k exactly), we may be able to
- * compute (d*10^k) * 10^(e-k) with just one roundoff.
- * 3. Rather than a bit-at-a-time adjustment of the binary
- * result in the hard case, we use floating-point
- * arithmetic to determine the adjustment to within
- * one bit; only in really hard cases do we need to
- * compute a second residual.
- * 4. Because of 3., we don't need a large table of powers of 10
- * for ten-to-e (just some small tables, e.g. of 10^k
- * for 0 <= k <= 22).
- */
-
-/*
- * #define IEEE_8087 for IEEE-arithmetic machines where the least
- * significant byte has the lowest address.
- * #define IEEE_MC68k for IEEE-arithmetic machines where the most
- * significant byte has the lowest address.
- * #define Sudden_Underflow for IEEE-format machines without gradual
- * underflow (i.e., that flush to zero on underflow).
- * #define IBM for IBM mainframe-style floating-point arithmetic.
- * #define VAX for VAX-style floating-point arithmetic.
- * #define Unsigned_Shifts if >> does treats its left operand as unsigned.
- * #define No_leftright to omit left-right logic in fast floating-point
- * computation of dtoa.
- * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3.
- * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines
- * that use extended-precision instructions to compute rounded
- * products and quotients) with IBM.
- * #define ROUND_BIASED for IEEE-format with biased rounding.
- * #define Inaccurate_Divide for IEEE-format with correctly rounded
- * products but inaccurate quotients, e.g., for Intel i860.
- * #define Just_16 to store 16 bits per 32-bit long when doing high-precision
- * integer arithmetic. Whether this speeds things up or slows things
- * down depends on the machine and the number being converted.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <java-assert.h>
-#include "mprec.h"
-
-/* reent.c knows this value */
-#define _Kmax 15
-#include <stdio.h>
-
-_Jv_Bigint *
-_DEFUN (Balloc, (ptr, k), struct _Jv_reent *ptr _AND int k)
-{
- _Jv_Bigint *rv = NULL;
-
- int i = 0;
- int j = 1;
-
- JvAssert ((1 << k) < MAX_BIGNUM_WDS);
-
- while ((ptr->_allocation_map & j) && i < MAX_BIGNUMS)
- i++, j <<= 1;
-
- JvAssert (i < MAX_BIGNUMS);
-
- if (i >= MAX_BIGNUMS)
- return NULL;
-
- ptr->_allocation_map |= j;
- rv = &ptr->_freelist[i];
-
- rv->_k = k;
- rv->_maxwds = 32;
-
- return rv;
-}
-
-
-void
-_DEFUN (Bfree, (ptr, v), struct _Jv_reent *ptr _AND _Jv_Bigint * v)
-{
- long i;
-
- i = v - ptr->_freelist;
-
- JvAssert (i >= 0 && i < MAX_BIGNUMS);
-
- if (i >= 0 && i < MAX_BIGNUMS)
- ptr->_allocation_map &= ~ (1 << i);
-}
-
-
-_Jv_Bigint *
-_DEFUN (multadd, (ptr, b, m, a),
- struct _Jv_reent *ptr _AND
- _Jv_Bigint * b _AND
- int m _AND
- int a)
-{
- int i, wds;
- unsigned long *x, y;
-#ifdef Pack_32
- unsigned long xi, z;
-#endif
- _Jv_Bigint *b1;
-
- wds = b->_wds;
- x = b->_x;
- i = 0;
- do
- {
-#ifdef Pack_32
- xi = *x;
- y = (xi & 0xffff) * m + a;
- z = (xi >> 16) * m + (y >> 16);
- a = (int) (z >> 16);
- *x++ = (z << 16) + (y & 0xffff);
-#else
- y = *x * m + a;
- a = (int) (y >> 16);
- *x++ = y & 0xffff;
-#endif
- }
- while (++i < wds);
- if (a)
- {
- if (wds >= b->_maxwds)
- {
- b1 = Balloc (ptr, b->_k + 1);
- Bcopy (b1, b);
- Bfree (ptr, b);
- b = b1;
- }
- b->_x[wds++] = a;
- b->_wds = wds;
- }
- return b;
-}
-
-_Jv_Bigint *
-_DEFUN (s2b, (ptr, s, nd0, nd, y9),
- struct _Jv_reent * ptr _AND
- _CONST char *s _AND
- int nd0 _AND
- int nd _AND
- unsigned long y9)
-{
- _Jv_Bigint *b;
- int i, k;
- long x, y;
-
- x = (nd + 8) / 9;
- for (k = 0, y = 1; x > y; y <<= 1, k++);
-#ifdef Pack_32
- b = Balloc (ptr, k);
- b->_x[0] = y9;
- b->_wds = 1;
-#else
- b = Balloc (ptr, k + 1);
- b->_x[0] = y9 & 0xffff;
- b->_wds = (b->_x[1] = y9 >> 16) ? 2 : 1;
-#endif
-
- i = 9;
- if (9 < nd0)
- {
- s += 9;
- do
- b = multadd (ptr, b, 10, *s++ - '0');
- while (++i < nd0);
- s++;
- }
- else
- s += 10;
- for (; i < nd; i++)
- b = multadd (ptr, b, 10, *s++ - '0');
- return b;
-}
-
-int
-_DEFUN (hi0bits,
- (x), register unsigned long x)
-{
- register int k = 0;
-
- if (!(x & 0xffff0000))
- {
- k = 16;
- x <<= 16;
- }
- if (!(x & 0xff000000))
- {
- k += 8;
- x <<= 8;
- }
- if (!(x & 0xf0000000))
- {
- k += 4;
- x <<= 4;
- }
- if (!(x & 0xc0000000))
- {
- k += 2;
- x <<= 2;
- }
- if (!(x & 0x80000000))
- {
- k++;
- if (!(x & 0x40000000))
- return 32;
- }
- return k;
-}
-
-int
-_DEFUN (lo0bits, (y), unsigned long *y)
-{
- register int k;
- register unsigned long x = *y;
-
- if (x & 7)
- {
- if (x & 1)
- return 0;
- if (x & 2)
- {
- *y = x >> 1;
- return 1;
- }
- *y = x >> 2;
- return 2;
- }
- k = 0;
- if (!(x & 0xffff))
- {
- k = 16;
- x >>= 16;
- }
- if (!(x & 0xff))
- {
- k += 8;
- x >>= 8;
- }
- if (!(x & 0xf))
- {
- k += 4;
- x >>= 4;
- }
- if (!(x & 0x3))
- {
- k += 2;
- x >>= 2;
- }
- if (!(x & 1))
- {
- k++;
- x >>= 1;
- if (!x & 1)
- return 32;
- }
- *y = x;
- return k;
-}
-
-_Jv_Bigint *
-_DEFUN (i2b, (ptr, i), struct _Jv_reent * ptr _AND int i)
-{
- _Jv_Bigint *b;
-
- b = Balloc (ptr, 1);
- b->_x[0] = i;
- b->_wds = 1;
- return b;
-}
-
-_Jv_Bigint *
-_DEFUN (mult, (ptr, a, b), struct _Jv_reent * ptr _AND _Jv_Bigint * a _AND _Jv_Bigint * b)
-{
- _Jv_Bigint *c;
- int k, wa, wb, wc;
- unsigned long carry, y, z;
- unsigned long *x, *xa, *xae, *xb, *xbe, *xc, *xc0;
-#ifdef Pack_32
- unsigned long z2;
-#endif
-
- if (a->_wds < b->_wds)
- {
- c = a;
- a = b;
- b = c;
- }
- k = a->_k;
- wa = a->_wds;
- wb = b->_wds;
- wc = wa + wb;
- if (wc > a->_maxwds)
- k++;
- c = Balloc (ptr, k);
- for (x = c->_x, xa = x + wc; x < xa; x++)
- *x = 0;
- xa = a->_x;
- xae = xa + wa;
- xb = b->_x;
- xbe = xb + wb;
- xc0 = c->_x;
-#ifdef Pack_32
- for (; xb < xbe; xb++, xc0++)
- {
- if ((y = *xb & 0xffff))
- {
- x = xa;
- xc = xc0;
- carry = 0;
- do
- {
- z = (*x & 0xffff) * y + (*xc & 0xffff) + carry;
- carry = z >> 16;
- z2 = (*x++ >> 16) * y + (*xc >> 16) + carry;
- carry = z2 >> 16;
- Storeinc (xc, z2, z);
- }
- while (x < xae);
- *xc = carry;
- }
- if ((y = *xb >> 16))
- {
- x = xa;
- xc = xc0;
- carry = 0;
- z2 = *xc;
- do
- {
- z = (*x & 0xffff) * y + (*xc >> 16) + carry;
- carry = z >> 16;
- Storeinc (xc, z, z2);
- z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry;
- carry = z2 >> 16;
- }
- while (x < xae);
- *xc = z2;
- }
- }
-#else
- for (; xb < xbe; xc0++)
- {
- if (y = *xb++)
- {
- x = xa;
- xc = xc0;
- carry = 0;
- do
- {
- z = *x++ * y + *xc + carry;
- carry = z >> 16;
- *xc++ = z & 0xffff;
- }
- while (x < xae);
- *xc = carry;
- }
- }
-#endif
- for (xc0 = c->_x, xc = xc0 + wc; wc > 0 && !*--xc; --wc);
- c->_wds = wc;
- return c;
-}
-
-_Jv_Bigint *
-_DEFUN (pow5mult,
- (ptr, b, k), struct _Jv_reent * ptr _AND _Jv_Bigint * b _AND int k)
-{
- _Jv_Bigint *b1, *p5, *p51;
- int i;
- static _CONST int p05[3] = {5, 25, 125};
-
- if ((i = k & 3))
- b = multadd (ptr, b, p05[i - 1], 0);
-
- if (!(k >>= 2))
- return b;
- if (!(p5 = ptr->_p5s))
- {
- /* first time */
- p5 = ptr->_p5s = i2b (ptr, 625);
- p5->_next = 0;
- }
- for (;;)
- {
- if (k & 1)
- {
- b1 = mult (ptr, b, p5);
- Bfree (ptr, b);
- b = b1;
- }
- if (!(k >>= 1))
- break;
- if (!(p51 = p5->_next))
- {
- p51 = p5->_next = mult (ptr, p5, p5);
- p51->_next = 0;
- }
- p5 = p51;
- }
- return b;
-}
-
-_Jv_Bigint *
-_DEFUN (lshift, (ptr, b, k), struct _Jv_reent * ptr _AND _Jv_Bigint * b _AND int k)
-{
- int i, k1, n, n1;
- _Jv_Bigint *b1;
- unsigned long *x, *x1, *xe, z;
-
-#ifdef Pack_32
- n = k >> 5;
-#else
- n = k >> 4;
-#endif
- k1 = b->_k;
- n1 = n + b->_wds + 1;
- for (i = b->_maxwds; n1 > i; i <<= 1)
- k1++;
- b1 = Balloc (ptr, k1);
- x1 = b1->_x;
- for (i = 0; i < n; i++)
- *x1++ = 0;
- x = b->_x;
- xe = x + b->_wds;
-#ifdef Pack_32
- if (k &= 0x1f)
- {
- k1 = 32 - k;
- z = 0;
- do
- {
- *x1++ = *x << k | z;
- z = *x++ >> k1;
- }
- while (x < xe);
- if ((*x1 = z))
- ++n1;
- }
-#else
- if (k &= 0xf)
- {
- k1 = 16 - k;
- z = 0;
- do
- {
- *x1++ = *x << k & 0xffff | z;
- z = *x++ >> k1;
- }
- while (x < xe);
- if (*x1 = z)
- ++n1;
- }
-#endif
- else
- do
- *x1++ = *x++;
- while (x < xe);
- b1->_wds = n1 - 1;
- Bfree (ptr, b);
- return b1;
-}
-
-int
-_DEFUN (cmp, (a, b), _Jv_Bigint * a _AND _Jv_Bigint * b)
-{
- unsigned long *xa, *xa0, *xb, *xb0;
- int i, j;
-
- i = a->_wds;
- j = b->_wds;
-#ifdef DEBUG
- if (i > 1 && !a->_x[i - 1])
- Bug ("cmp called with a->_x[a->_wds-1] == 0");
- if (j > 1 && !b->_x[j - 1])
- Bug ("cmp called with b->_x[b->_wds-1] == 0");
-#endif
- if (i -= j)
- return i;
- xa0 = a->_x;
- xa = xa0 + j;
- xb0 = b->_x;
- xb = xb0 + j;
- for (;;)
- {
- if (*--xa != *--xb)
- return *xa < *xb ? -1 : 1;
- if (xa <= xa0)
- break;
- }
- return 0;
-}
-
-_Jv_Bigint *
-_DEFUN (diff, (ptr, a, b), struct _Jv_reent * ptr _AND
- _Jv_Bigint * a _AND _Jv_Bigint * b)
-{
- _Jv_Bigint *c;
- int i, wa, wb;
- long borrow, y; /* We need signed shifts here. */
- unsigned long *xa, *xae, *xb, *xbe, *xc;
-#ifdef Pack_32
- long z;
-#endif
-
- i = cmp (a, b);
- if (!i)
- {
- c = Balloc (ptr, 0);
- c->_wds = 1;
- c->_x[0] = 0;
- return c;
- }
- if (i < 0)
- {
- c = a;
- a = b;
- b = c;
- i = 1;
- }
- else
- i = 0;
- c = Balloc (ptr, a->_k);
- c->_sign = i;
- wa = a->_wds;
- xa = a->_x;
- xae = xa + wa;
- wb = b->_wds;
- xb = b->_x;
- xbe = xb + wb;
- xc = c->_x;
- borrow = 0;
-#ifdef Pack_32
- do
- {
- y = (*xa & 0xffff) - (*xb & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- z = (*xa++ >> 16) - (*xb++ >> 16) + borrow;
- borrow = z >> 16;
- Sign_Extend (borrow, z);
- Storeinc (xc, z, y);
- }
- while (xb < xbe);
- while (xa < xae)
- {
- y = (*xa & 0xffff) + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- z = (*xa++ >> 16) + borrow;
- borrow = z >> 16;
- Sign_Extend (borrow, z);
- Storeinc (xc, z, y);
- }
-#else
- do
- {
- y = *xa++ - *xb++ + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- *xc++ = y & 0xffff;
- }
- while (xb < xbe);
- while (xa < xae)
- {
- y = *xa++ + borrow;
- borrow = y >> 16;
- Sign_Extend (borrow, y);
- *xc++ = y & 0xffff;
- }
-#endif
- while (!*--xc)
- wa--;
- c->_wds = wa;
- return c;
-}
-
-double
-_DEFUN (ulp, (_x), double _x)
-{
- union double_union x, a;
- register long L;
-
- x.d = _x;
-
- L = (word0 (x) & Exp_mask) - (P - 1) * Exp_msk1;
-#ifndef Sudden_Underflow
- if (L > 0)
- {
-#endif
-#ifdef IBM
- L |= Exp_msk1 >> 4;
-#endif
- word0 (a) = L;
-#ifndef _DOUBLE_IS_32BITS
- word1 (a) = 0;
-#endif
-
-#ifndef Sudden_Underflow
- }
- else
- {
- L = -L >> Exp_shift;
- if (L < Exp_shift)
- {
- word0 (a) = 0x80000 >> L;
-#ifndef _DOUBLE_IS_32BITS
- word1 (a) = 0;
-#endif
- }
- else
- {
- word0 (a) = 0;
- L -= Exp_shift;
-#ifndef _DOUBLE_IS_32BITS
- word1 (a) = L >= 31 ? 1 : 1 << (31 - L);
-#endif
- }
- }
-#endif
- return a.d;
-}
-
-double
-_DEFUN (b2d, (a, e),
- _Jv_Bigint * a _AND int *e)
-{
- unsigned long *xa, *xa0, w, y, z;
- int k;
- union double_union d;
-#ifdef VAX
- unsigned long d0, d1;
-#else
-#define d0 word0(d)
-#define d1 word1(d)
-#endif
-
- xa0 = a->_x;
- xa = xa0 + a->_wds;
- y = *--xa;
-#ifdef DEBUG
- if (!y)
- Bug ("zero y in b2d");
-#endif
- k = hi0bits (y);
- *e = 32 - k;
-#ifdef Pack_32
- if (k < Ebits)
- {
- d0 = Exp_1 | y >> (Ebits - k);
- w = xa > xa0 ? *--xa : 0;
-#ifndef _DOUBLE_IS_32BITS
- d1 = y << (32 - Ebits + k) | w >> (Ebits - k);
-#endif
- goto ret_d;
- }
- z = xa > xa0 ? *--xa : 0;
- if (k -= Ebits)
- {
- d0 = Exp_1 | y << k | z >> (32 - k);
- y = xa > xa0 ? *--xa : 0;
-#ifndef _DOUBLE_IS_32BITS
- d1 = z << k | y >> (32 - k);
-#endif
- }
- else
- {
- d0 = Exp_1 | y;
-#ifndef _DOUBLE_IS_32BITS
- d1 = z;
-#endif
- }
-#else
- if (k < Ebits + 16)
- {
- z = xa > xa0 ? *--xa : 0;
- d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k;
- w = xa > xa0 ? *--xa : 0;
- y = xa > xa0 ? *--xa : 0;
- d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k;
- goto ret_d;
- }
- z = xa > xa0 ? *--xa : 0;
- w = xa > xa0 ? *--xa : 0;
- k -= Ebits + 16;
- d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k;
- y = xa > xa0 ? *--xa : 0;
- d1 = w << k + 16 | y << k;
-#endif
-ret_d:
-#ifdef VAX
- word0 (d) = d0 >> 16 | d0 << 16;
- word1 (d) = d1 >> 16 | d1 << 16;
-#else
-#undef d0
-#undef d1
-#endif
- return d.d;
-}
-
-_Jv_Bigint *
-_DEFUN (d2b,
- (ptr, _d, e, bits),
- struct _Jv_reent * ptr _AND
- double _d _AND
- int *e _AND
- int *bits)
-
-{
- union double_union d;
- _Jv_Bigint *b;
- int de, i, k;
- unsigned long *x, y, z;
-#ifdef VAX
- unsigned long d0, d1;
- d.d = _d;
- d0 = word0 (d) >> 16 | word0 (d) << 16;
- d1 = word1 (d) >> 16 | word1 (d) << 16;
-#else
-#define d0 word0(d)
-#define d1 word1(d)
- d.d = _d;
-#endif
-
-#ifdef Pack_32
- b = Balloc (ptr, 1);
-#else
- b = Balloc (ptr, 2);
-#endif
- x = b->_x;
-
- z = d0 & Frac_mask;
- d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
-#ifdef Sudden_Underflow
- de = (int) (d0 >> Exp_shift);
-#ifndef IBM
- z |= Exp_msk11;
-#endif
-#else
- if ((de = (int) (d0 >> Exp_shift)))
- z |= Exp_msk1;
-#endif
-#ifdef Pack_32
-#ifndef _DOUBLE_IS_32BITS
- if ((y = d1))
- {
- if ((k = lo0bits (&y)))
- {
- x[0] = y | z << (32 - k);
- z >>= k;
- }
- else
- x[0] = y;
- i = b->_wds = (x[1] = z) ? 2 : 1;
- }
- else
-#endif
- {
-#ifdef DEBUG
- if (!z)
- Bug ("Zero passed to d2b");
-#endif
- k = lo0bits (&z);
- x[0] = z;
- i = b->_wds = 1;
-#ifndef _DOUBLE_IS_32BITS
- k += 32;
-#endif
- }
-#else
- if (y = d1)
- {
- if (k = lo0bits (&y))
- if (k >= 16)
- {
- x[0] = y | z << 32 - k & 0xffff;
- x[1] = z >> k - 16 & 0xffff;
- x[2] = z >> k;
- i = 2;
- }
- else
- {
- x[0] = y & 0xffff;
- x[1] = y >> 16 | z << 16 - k & 0xffff;
- x[2] = z >> k & 0xffff;
- x[3] = z >> k + 16;
- i = 3;
- }
- else
- {
- x[0] = y & 0xffff;
- x[1] = y >> 16;
- x[2] = z & 0xffff;
- x[3] = z >> 16;
- i = 3;
- }
- }
- else
- {
-#ifdef DEBUG
- if (!z)
- Bug ("Zero passed to d2b");
-#endif
- k = lo0bits (&z);
- if (k >= 16)
- {
- x[0] = z;
- i = 0;
- }
- else
- {
- x[0] = z & 0xffff;
- x[1] = z >> 16;
- i = 1;
- }
- k += 32;
- }
- while (!x[i])
- --i;
- b->_wds = i + 1;
-#endif
-#ifndef Sudden_Underflow
- if (de)
- {
-#endif
-#ifdef IBM
- *e = (de - Bias - (P - 1) << 2) + k;
- *bits = 4 * P + 8 - k - hi0bits (word0 (d) & Frac_mask);
-#else
- *e = de - Bias - (P - 1) + k;
- *bits = P - k;
-#endif
-#ifndef Sudden_Underflow
- }
- else
- {
- *e = de - Bias - (P - 1) + 1 + k;
-#ifdef Pack_32
- *bits = 32 * i - hi0bits (x[i - 1]);
-#else
- *bits = (i + 2) * 16 - hi0bits (x[i]);
-#endif
- }
-#endif
- return b;
-}
-#undef d0
-#undef d1
-
-double
-_DEFUN (ratio, (a, b), _Jv_Bigint * a _AND _Jv_Bigint * b)
-
-{
- union double_union da, db;
- int k, ka, kb;
-
- da.d = b2d (a, &ka);
- db.d = b2d (b, &kb);
-#ifdef Pack_32
- k = ka - kb + 32 * (a->_wds - b->_wds);
-#else
- k = ka - kb + 16 * (a->_wds - b->_wds);
-#endif
-#ifdef IBM
- if (k > 0)
- {
- word0 (da) += (k >> 2) * Exp_msk1;
- if (k &= 3)
- da.d *= 1 << k;
- }
- else
- {
- k = -k;
- word0 (db) += (k >> 2) * Exp_msk1;
- if (k &= 3)
- db.d *= 1 << k;
- }
-#else
- if (k > 0)
- word0 (da) += k * Exp_msk1;
- else
- {
- k = -k;
- word0 (db) += k * Exp_msk1;
- }
-#endif
- return da.d / db.d;
-}
-
-
-_CONST double
- tens[] =
-{
- 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
- 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
- 1e20, 1e21, 1e22, 1e23, 1e24
-
-};
-
-#if !defined(_DOUBLE_IS_32BITS) && !defined(__v800)
-_CONST double bigtens[] =
-{1e16, 1e32, 1e64, 1e128, 1e256};
-
-_CONST double tinytens[] =
-{1e-16, 1e-32, 1e-64, 1e-128, 1e-256};
-#else
-_CONST double bigtens[] =
-{1e16, 1e32};
-
-_CONST double tinytens[] =
-{1e-16, 1e-32};
-#endif
-
-
diff --git a/libjava/java/lang/mprec.h b/libjava/java/lang/mprec.h
deleted file mode 100644
index 4baac323ad3..00000000000
--- a/libjava/java/lang/mprec.h
+++ /dev/null
@@ -1,401 +0,0 @@
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991, 2000 by AT&T.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-/* Please send bug reports to
- David M. Gay
- AT&T Bell Laboratories, Room 2C-463
- 600 Mountain Avenue
- Murray Hill, NJ 07974-2070
- U.S.A.
- dmg@research.att.com or research!dmg
- */
-
-#include <config.h>
-#include "ieeefp.h"
-
-#include <math.h>
-// #include <float.h>
-// #include <errno.h>
-
-#if defined HAVE_STDINT_H
-#include <stdint.h>
-#elif defined HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-#if defined HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#if defined HAVE_SYS_CONFIG_H
-#include <sys/config.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ISO C9X int type declarations */
-
-#if !defined HAVE_INT32_DEFINED && defined HAVE_BSD_INT32_DEFINED
-typedef u_int32_t uint32_t;
-#endif
-
-#if !defined HAVE_BSD_INT32_DEFINED && !defined HAVE_INT32_DEFINED
-// FIXME -- this could have problems with systems that don't define SI to be 4
-typedef int int32_t __attribute__((mode(SI)));
-
-/* This is a blatant hack: on Solaris 2.5, pthread.h defines uint32_t
- in pthread.h, which we sometimes include. We protect our
- definition the same way Solaris 2.5 does, to avoid redefining it. */
-# ifndef _UINT32_T
-typedef unsigned int uint32_t __attribute__((mode(SI)));
-# endif
-#endif
-
- /* These typedefs are true for the targets running Java. */
-
-#ifdef __IEEE_LITTLE_ENDIAN
-#define IEEE_8087
-#endif
-
-#ifdef __IEEE_BIG_ENDIAN
-#define IEEE_MC68k
-#endif
-
-#ifdef __Z8000__
-#define Just_16
-#endif
-
-#ifdef DEBUG
-#include "stdio.h"
-#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
-#endif
-
-
-#ifdef Unsigned_Shifts
-#define Sign_Extend(a,b) if (b < 0) a |= (uint32_t)0xffff0000;
-#else
-#define Sign_Extend(a,b) /*no-op*/
-#endif
-
-#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1
-Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
-#endif
-
-/* If we are going to examine or modify specific bits in a double using
- the word0 and/or word1 macros, then we must wrap the double inside
- a union. This is necessary to avoid undefined behavior according to
- the ANSI C spec. */
-union double_union
-{
- double d;
- uint32_t i[2];
-};
-
-#ifdef IEEE_8087
-#define word0(x) (x.i[1])
-#define word1(x) (x.i[0])
-#else
-#define word0(x) (x.i[0])
-#define word1(x) (x.i[1])
-#endif
-
-/* The following definition of Storeinc is appropriate for MIPS processors.
- * An alternative that might be better on some machines is
- * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
- */
-#if defined(IEEE_8087) + defined(VAX)
-#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
-((unsigned short *)a)[0] = (unsigned short)c, a++)
-#else
-#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
-((unsigned short *)a)[1] = (unsigned short)c, a++)
-#endif
-
-/* #define P DBL_MANT_DIG */
-/* Ten_pmax = floor(P*log(2)/log(5)) */
-/* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */
-/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */
-/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */
-
-#if defined(IEEE_8087) + defined(IEEE_MC68k)
-#if defined (_DOUBLE_IS_32BITS)
-#define Exp_shift 23
-#define Exp_shift1 23
-#define Exp_msk1 ((uint32_t)0x00800000L)
-#define Exp_msk11 ((uint32_t)0x00800000L)
-#define Exp_mask ((uint32_t)0x7f800000L)
-#define P 24
-#define Bias 127
-#if 0
-#define IEEE_Arith /* it is, but the code doesn't handle IEEE singles yet */
-#endif
-#define Emin (-126)
-#define Exp_1 ((uint32_t)0x3f800000L)
-#define Exp_11 ((uint32_t)0x3f800000L)
-#define Ebits 8
-#define Frac_mask ((uint32_t)0x007fffffL)
-#define Frac_mask1 ((uint32_t)0x007fffffL)
-#define Ten_pmax 10
-#define Sign_bit ((uint32_t)0x80000000L)
-#define Ten_pmax 10
-#define Bletch 2
-#define Bndry_mask ((uint32_t)0x007fffffL)
-#define Bndry_mask1 ((uint32_t)0x007fffffL)
-#define LSB 1
-#define Sign_bit ((uint32_t)0x80000000L)
-#define Log2P 1
-#define Tiny0 0
-#define Tiny1 1
-#define Quick_max 5
-#define Int_max 6
-#define Infinite(x) (word0(x) == ((uint32_t)0x7f800000L))
-#undef word0
-#undef word1
-
-#define word0(x) (x.i[0])
-#define word1(x) 0
-#else
-
-#define Exp_shift 20
-#define Exp_shift1 20
-#define Exp_msk1 ((uint32_t)0x100000L)
-#define Exp_msk11 ((uint32_t)0x100000L)
-#define Exp_mask ((uint32_t)0x7ff00000L)
-#define P 53
-#define Bias 1023
-#define IEEE_Arith
-#define Emin (-1022)
-#define Exp_1 ((uint32_t)0x3ff00000L)
-#define Exp_11 ((uint32_t)0x3ff00000L)
-#define Ebits 11
-#define Frac_mask ((uint32_t)0xfffffL)
-#define Frac_mask1 ((uint32_t)0xfffffL)
-#define Ten_pmax 22
-#define Bletch 0x10
-#define Bndry_mask ((uint32_t)0xfffffL)
-#define Bndry_mask1 ((uint32_t)0xfffffL)
-#define LSB 1
-#define Sign_bit ((uint32_t)0x80000000L)
-#define Log2P 1
-#define Tiny0 0
-#define Tiny1 1
-#define Quick_max 14
-#define Int_max 14
-#define Infinite(x) (word0(x) == ((uint32_t)0x7ff00000L)) /* sufficient test for here */
-#endif
-
-#else
-#undef Sudden_Underflow
-#define Sudden_Underflow
-#ifdef IBM
-#define Exp_shift 24
-#define Exp_shift1 24
-#define Exp_msk1 ((uint32_t)0x1000000L)
-#define Exp_msk11 ((uint32_t)0x1000000L)
-#define Exp_mask ((uint32_t)0x7f000000L)
-#define P 14
-#define Bias 65
-#define Exp_1 ((uint32_t)0x41000000L)
-#define Exp_11 ((uint32_t)0x41000000L)
-#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */
-#define Frac_mask ((uint32_t)0xffffffL)
-#define Frac_mask1 ((uint32_t)0xffffffL)
-#define Bletch 4
-#define Ten_pmax 22
-#define Bndry_mask ((uint32_t)0xefffffL)
-#define Bndry_mask1 ((uint32_t)0xffffffL)
-#define LSB 1
-#define Sign_bit ((uint32_t)0x80000000L)
-#define Log2P 4
-#define Tiny0 ((uint32_t)0x100000L)
-#define Tiny1 0
-#define Quick_max 14
-#define Int_max 15
-#else /* VAX */
-#define Exp_shift 23
-#define Exp_shift1 7
-#define Exp_msk1 0x80
-#define Exp_msk11 ((uint32_t)0x800000L)
-#define Exp_mask ((uint32_t)0x7f80L)
-#define P 56
-#define Bias 129
-#define Exp_1 ((uint32_t)0x40800000L)
-#define Exp_11 ((uint32_t)0x4080L)
-#define Ebits 8
-#define Frac_mask ((uint32_t)0x7fffffL)
-#define Frac_mask1 ((uint32_t)0xffff007fL)
-#define Ten_pmax 24
-#define Bletch 2
-#define Bndry_mask ((uint32_t)0xffff007fL)
-#define Bndry_mask1 ((uint32_t)0xffff007fL)
-#define LSB ((uint32_t)0x10000L)
-#define Sign_bit ((uint32_t)0x8000L)
-#define Log2P 1
-#define Tiny0 0x80
-#define Tiny1 0
-#define Quick_max 15
-#define Int_max 15
-#endif
-#endif
-
-#ifndef IEEE_Arith
-#define ROUND_BIASED
-#endif
-
-#ifdef RND_PRODQUOT
-#define rounded_product(a,b) a = rnd_prod(a, b)
-#define rounded_quotient(a,b) a = rnd_quot(a, b)
-#ifdef KR_headers
-extern double rnd_prod(), rnd_quot();
-#else
-extern double rnd_prod(double, double), rnd_quot(double, double);
-#endif
-#else
-#define rounded_product(a,b) a *= b
-#define rounded_quotient(a,b) a /= b
-#endif
-
-#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
-#define Big1 ((uint32_t)0xffffffffL)
-
-#ifndef Just_16
-/* When Pack_32 is not defined, we store 16 bits per 32-bit long.
- * This makes some inner loops simpler and sometimes saves work
- * during multiplications, but it often seems to make things slightly
- * slower. Hence the default is now to store 32 bits per long.
- */
-
-#ifndef Pack_32
-#if SIZEOF_VOID_P != 8
-#define Pack_32
-#endif
-#endif
-#endif
-
-
-#define MAX_BIGNUMS 16
-#define MAX_BIGNUM_WDS 32
-
-struct _Jv_Bigint
-{
- struct _Jv_Bigint *_next;
- int _k, _maxwds, _sign, _wds;
- unsigned long _x[MAX_BIGNUM_WDS];
-};
-
-
-#define _PTR void *
-#define _AND ,
-#define _NOARGS void
-#define _CONST const
-#define _VOLATILE volatile
-#define _SIGNED signed
-#define _DOTS , ...
-#define _VOID void
-#define _EXFUN(name, proto) name proto
-#define _DEFUN(name, arglist, args) name(args)
-#define _DEFUN_VOID(name) name(_NOARGS)
-#define _CAST_VOID (void)
-
-
-struct _Jv_reent
-{
- /* local copy of errno */
- int _errno;
-
- /* used by mprec routines */
- struct _Jv_Bigint *_result;
- int _result_k;
- struct _Jv_Bigint *_p5s;
-
- struct _Jv_Bigint _freelist[MAX_BIGNUMS];
- int _allocation_map;
-
- int num;
-};
-
-
-typedef struct _Jv_Bigint _Jv_Bigint;
-
-#define Balloc _Jv_Balloc
-#define Bfree _Jv_Bfree
-#define multadd _Jv_multadd
-#define s2b _Jv_s2b
-#define lo0bits _Jv_lo0bits
-#define hi0bits _Jv_hi0bits
-#define i2b _Jv_i2b
-#define mult _Jv_mult
-#define pow5mult _Jv_pow5mult
-#define lshift _Jv_lshift
-#define cmp _Jv__mcmp
-#define diff _Jv__mdiff
-#define ulp _Jv_ulp
-#define b2d _Jv_b2d
-#define d2b _Jv_d2b
-#define ratio _Jv_ratio
-
-#define tens _Jv__mprec_tens
-#define bigtens _Jv__mprec_bigtens
-#define tinytens _Jv__mprec_tinytens
-
-#define _dtoa _Jv_dtoa
-#define _dtoa_r _Jv_dtoa_r
-#define _strtod_r _Jv_strtod_r
-
-extern double _EXFUN(_strtod_r, (struct _Jv_reent *ptr, const char *s00, char **se));
-extern char* _EXFUN(_dtoa_r, (struct _Jv_reent *ptr, double d,
- int mode, int ndigits, int *decpt, int *sign,
- char **rve, int float_type));
-void _EXFUN(_dtoa, (double d, int mode, int ndigits, int *decpt, int *sign,
- char **rve, char *buf, int float_type));
-
-double _EXFUN(ulp,(double x));
-double _EXFUN(b2d,(_Jv_Bigint *a , int *e));
-_Jv_Bigint * _EXFUN(Balloc,(struct _Jv_reent *p, int k));
-void _EXFUN(Bfree,(struct _Jv_reent *p, _Jv_Bigint *v));
-_Jv_Bigint * _EXFUN(multadd,(struct _Jv_reent *p, _Jv_Bigint *, int, int));
-_Jv_Bigint * _EXFUN(s2b,(struct _Jv_reent *, const char*, int, int, unsigned long));
-_Jv_Bigint * _EXFUN(i2b,(struct _Jv_reent *,int));
-_Jv_Bigint * _EXFUN(mult, (struct _Jv_reent *, _Jv_Bigint *, _Jv_Bigint *));
-_Jv_Bigint * _EXFUN(pow5mult, (struct _Jv_reent *, _Jv_Bigint *, int k));
-int _EXFUN(hi0bits,(unsigned long));
-int _EXFUN(lo0bits,(unsigned long *));
-_Jv_Bigint * _EXFUN(d2b,(struct _Jv_reent *p, double d, int *e, int *bits));
-_Jv_Bigint * _EXFUN(lshift,(struct _Jv_reent *p, _Jv_Bigint *b, int k));
-_Jv_Bigint * _EXFUN(diff,(struct _Jv_reent *p, _Jv_Bigint *a, _Jv_Bigint *b));
-int _EXFUN(cmp,(_Jv_Bigint *a, _Jv_Bigint *b));
-
-double _EXFUN(ratio,(_Jv_Bigint *a, _Jv_Bigint *b));
-#define Bcopy(x,y) memcpy((char *)&x->_sign, (char *)&y->_sign, y->_wds*sizeof(long) + 2*sizeof(int))
-
-#if defined(_DOUBLE_IS_32BITS) && defined(__v800)
-#define n_bigtens 2
-#else
-#define n_bigtens 5
-#endif
-
-extern _CONST double tinytens[];
-extern _CONST double bigtens[];
-extern _CONST double tens[];
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/libjava/java/lang/natCharacter.cc b/libjava/java/lang/natCharacter.cc
deleted file mode 100644
index 14e0ebf2b7f..00000000000
--- a/libjava/java/lang/natCharacter.cc
+++ /dev/null
@@ -1,284 +0,0 @@
-// natCharacter.cc - Native part of Character class.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Character.h>
-
-#include <java-chartables.h>
-
-
-
-#define asize(x) ((sizeof (x)) / sizeof (x[0]))
-
-static jchar
-to_lower_title (jchar ch)
-{
- for (unsigned int i = 0; i < asize (title_to_upper_table); ++i)
- {
- // We can assume that the entries in the two tables are
- // parallel. This is checked in the script.
- if (title_to_upper_table[i][1] == ch
- || title_to_upper_table[i][0] == ch)
- return title_to_lower_table[i][1];
- }
- return ch;
-}
-
-static jchar
-to_upper_title (jchar ch)
-{
- for (unsigned int i = 0; i < asize (title_to_lower_table); ++i)
- {
- // We can assume that the entries in the two tables are
- // parallel. This is checked in the script.
- if (title_to_lower_table[i][1] == ch
- || title_to_lower_table[i][0] == ch)
- return title_to_upper_table[i][1];
- }
- return ch;
-}
-
-jboolean
-java::lang::Character::isTitleCase (jchar ch)
-{
- for (unsigned int i = 0; i < asize (title_to_lower_table); ++i)
- {
- if (title_to_lower_table[i][0] == ch)
- return true;
- }
- return false;
-}
-
-jchar
-java::lang::Character::toTitleCase (jchar ch)
-{
- // Both titlecase mapping tables have the same length. This is
- // checked in the chartables script.
- for (unsigned int i = 0; i < asize (title_to_lower_table); ++i)
- {
- if (title_to_lower_table[i][0] == ch)
- return ch;
- if (title_to_lower_table[i][1] == ch)
- return title_to_lower_table[i][0];
- if (title_to_upper_table[i][1] == ch)
- return title_to_upper_table[i][0];
- }
- return toUpperCase (ch);
-}
-
-#ifdef COMPACT_CHARACTER
-
-static int
-table_search (const jchar table[][2], int table_len, jchar ch)
-{
- int low, high, i, old;
-
- low = 0;
- high = table_len;
- i = high / 2;
-
- while (true)
- {
- if (ch < table[i][0])
- high = i;
- else if (ch > table[i][1])
- low = i;
- else
- return i;
-
- old = i;
- i = (high + low) / 2;
- if (i == old)
- break;
- }
-
- return -1;
-}
-
-jint
-java::lang::Character::digit_value (jchar ch)
-{
- int index = table_search (digit_table, asize (digit_table), ch);
- if (index == -1)
- return -1;
-
- jchar base = digit_table[index][0];
- // Tamil doesn't have a digit `0'. So we special-case it here.
- if (base == TAMIL_DIGIT_ONE)
- return ch - base + 1;
- return ch - base;
-}
-
-jint
-java::lang::Character::getNumericValue (jchar ch)
-{
- jint d = digit (ch, 36);
- if (d != -1)
- return d;
-
- for (unsigned int i = 0; i < asize (numeric_table); ++i)
- {
- if (numeric_table[i] == ch)
- return numeric_value[i];
- }
-
- return -1;
-}
-
-jint
-java::lang::Character::getType (jchar ch)
-{
- int index = table_search (all_table, asize (all_table), ch);
- if (index != -1)
- return category_table[index];
- return UNASSIGNED;
-}
-
-jboolean
-java::lang::Character::isLowerCase (jchar ch)
-{
- if (ch >= 0x2000 && ch <= 0x2fff)
- return false;
- if (table_search (lower_case_table, asize (lower_case_table), ch) != -1)
- return true;
-
- int low, high, i, old;
-
- low = 0;
- high = asize (lower_anomalous_table);
- i = high / 2;
-
- while (true)
- {
- if (ch < lower_anomalous_table[i])
- high = i;
- else if (ch > lower_anomalous_table[i])
- low = i;
- else
- return true;
-
- old = i;
- i = (high + low) / 2;
- if (i == old)
- break;
- }
-
- return false;
-}
-
-jboolean
-java::lang::Character::isSpaceChar (jchar ch)
-{
- return table_search (space_table, asize (space_table), ch) != -1;
-}
-
-jboolean
-java::lang::Character::isUpperCase (jchar ch)
-{
- if (ch >= 0x2000 && ch <= 0x2fff)
- return false;
- return table_search (upper_case_table, asize (upper_case_table), ch) != -1;
-}
-
-jchar
-java::lang::Character::toLowerCase (jchar ch)
-{
- int index = table_search (upper_case_table, asize (upper_case_table), ch);
- if (index == -1)
- return to_lower_title (ch);
- return (jchar) (ch - upper_case_table[index][0]
- + upper_case_map_table[index]);
-}
-
-jchar
-java::lang::Character::toUpperCase (jchar ch)
-{
- int index = table_search (lower_case_table, asize (lower_case_table), ch);
- if (index == -1)
- return to_upper_title (ch);
- return (jchar) (ch - lower_case_table[index][0]
- + lower_case_map_table[index]);
-}
-
-#else /* COMPACT_CHARACTER */
-
-jint
-java::lang::Character::digit_value (jchar ch)
-{
- if (type_table[ch] == DECIMAL_DIGIT_NUMBER)
- return attribute_table[ch];
- return -1;
-}
-
-jint
-java::lang::Character::getNumericValue (jchar ch)
-{
- jint d = digit (ch, 36);
- if (d != -1)
- return d;
-
- // Some characters require two attributes. We special-case them here.
- if (ch >= ROMAN_START && ch <= ROMAN_END)
- return secondary_attribute_table[ch - ROMAN_START];
- if (type_table[ch] == LETTER_NUMBER || type_table[ch] == OTHER_NUMBER)
- return attribute_table[ch];
- return -1;
-}
-
-jint
-java::lang::Character::getType (jchar ch)
-{
- return type_table[ch];
-}
-
-jboolean
-java::lang::Character::isLowerCase (jchar ch)
-{
- if (ch >= 0x2000 && ch <= 0x2fff)
- return false;
- return type_table[ch] == LOWERCASE_LETTER;
-}
-
-jboolean
-java::lang::Character::isSpaceChar (jchar ch)
-{
- return (type_table[ch] == SPACE_SEPARATOR
- || type_table[ch] == LINE_SEPARATOR
- || type_table[ch] == PARAGRAPH_SEPARATOR);
-}
-
-jboolean
-java::lang::Character::isUpperCase (jchar ch)
-{
- if (ch >= 0x2000 && ch <= 0x2fff)
- return false;
- return type_table[ch] == UPPERCASE_LETTER;
-}
-
-jchar
-java::lang::Character::toLowerCase (jchar ch)
-{
- if (type_table[ch] == UPPERCASE_LETTER)
- return attribute_table[ch];
- return to_lower_title (ch);
-}
-
-jchar
-java::lang::Character::toUpperCase (jchar ch)
-{
- if (type_table[ch] == LOWERCASE_LETTER)
- return attribute_table[ch];
- return to_upper_title (ch);
-}
-
-#endif /* COMPACT_CHARACTER */
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
deleted file mode 100644
index 1b403733821..00000000000
--- a/libjava/java/lang/natClass.cc
+++ /dev/null
@@ -1,1399 +0,0 @@
-// natClass.cc - Implementation of java.lang.Class native methods.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <limits.h>
-#include <string.h>
-
-#pragma implementation "Class.h"
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java-threads.h>
-
-#include <java/lang/Class.h>
-#include <java/lang/ClassLoader.h>
-#include <java/lang/String.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/reflect/Member.h>
-#include <java/lang/reflect/Method.h>
-#include <java/lang/reflect/Field.h>
-#include <java/lang/reflect/Constructor.h>
-#include <java/lang/AbstractMethodError.h>
-#include <java/lang/ArrayStoreException.h>
-#include <java/lang/ClassCastException.h>
-#include <java/lang/ClassNotFoundException.h>
-#include <java/lang/ExceptionInInitializerError.h>
-#include <java/lang/IllegalAccessException.h>
-#include <java/lang/IllegalAccessError.h>
-#include <java/lang/IncompatibleClassChangeError.h>
-#include <java/lang/InstantiationException.h>
-#include <java/lang/NoClassDefFoundError.h>
-#include <java/lang/NoSuchFieldException.h>
-#include <java/lang/NoSuchMethodError.h>
-#include <java/lang/NoSuchMethodException.h>
-#include <java/lang/Thread.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/System.h>
-#include <java/lang/SecurityManager.h>
-#include <java/lang/StringBuffer.h>
-#include <gcj/method.h>
-
-#include <java-cpool.h>
-
-
-
-#define CloneableClass _CL_Q34java4lang9Cloneable
-extern java::lang::Class CloneableClass;
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-#define ErrorClass _CL_Q34java4lang5Error
-extern java::lang::Class ErrorClass;
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-#define MethodClass _CL_Q44java4lang7reflect6Method
-extern java::lang::Class MethodClass;
-#define FieldClass _CL_Q44java4lang7reflect5Field
-extern java::lang::Class FieldClass;
-#define ConstructorClass _CL_Q44java4lang7reflect11Constructor
-extern java::lang::Class ConstructorClass;
-
-// Some constants we use to look up the class initializer.
-static _Jv_Utf8Const *void_signature = _Jv_makeUtf8Const ("()V", 3);
-static _Jv_Utf8Const *clinit_name = _Jv_makeUtf8Const ("<clinit>", 8);
-static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
-static _Jv_Utf8Const *finit_name = _Jv_makeUtf8Const ("finit$", 6);
-// The legacy `$finit$' method name, which still needs to be
-// recognized as equivalent to the now prefered `finit$' name.
-static _Jv_Utf8Const *finit_leg_name = _Jv_makeUtf8Const ("$finit$", 7);
-
-
-
-jclass
-java::lang::Class::forName (jstring className)
-{
- if (! className)
- JvThrow (new java::lang::NullPointerException);
-
- jsize length = _Jv_GetStringUTFLength (className);
- char buffer[length];
- _Jv_GetStringUTFRegion (className, 0, length, buffer);
-
- // FIXME: should check syntax of CLASSNAME and throw
- // IllegalArgumentException on failure.
- _Jv_Utf8Const *name = _Jv_makeUtf8Const (buffer, length);
-
- // FIXME: should use class loader from calling method.
- jclass klass = (buffer[0] == '['
- ? _Jv_FindClassFromSignature (name->data, NULL)
- : _Jv_FindClass (name, NULL));
-
- if (klass)
- _Jv_InitClass (klass);
- else
- JvThrow (new java::lang::ClassNotFoundException (className));
-
- return klass;
-}
-
-java::lang::reflect::Constructor *
-java::lang::Class::getConstructor (JArray<jclass> *param_types)
-{
- jstring partial_sig = getSignature (param_types, true);
- jint hash = partial_sig->hashCode ();
-
- int i = isPrimitive () ? 0 : method_count;
- while (--i >= 0)
- {
- // FIXME: access checks.
- if (_Jv_equalUtf8Consts (methods[i].name, init_name)
- && _Jv_equal (methods[i].signature, partial_sig, hash))
- {
- // Found it. For getConstructor, the constructor must be
- // public.
- using namespace java::lang::reflect;
- if (! Modifier::isPublic(methods[i].accflags))
- break;
- Constructor *cons = new Constructor ();
- cons->offset = (char *) (&methods[i]) - (char *) methods;
- cons->declaringClass = this;
- return cons;
- }
- }
- JvThrow (new java::lang::NoSuchMethodException);
-}
-
-JArray<java::lang::reflect::Constructor *> *
-java::lang::Class::_getConstructors (jboolean declared)
-{
- // FIXME: this method needs access checks.
-
- int numConstructors = 0;
- int max = isPrimitive () ? 0 : method_count;
- int i;
- for (i = max; --i >= 0; )
- {
- _Jv_Method *method = &methods[i];
- if (method->name == NULL
- || ! _Jv_equalUtf8Consts (method->name, init_name))
- continue;
- if (! declared
- && ! java::lang::reflect::Modifier::isPublic(method->accflags))
- continue;
- numConstructors++;
- }
- JArray<java::lang::reflect::Constructor *> *result
- = (JArray<java::lang::reflect::Constructor *> *)
- JvNewObjectArray (numConstructors, &ConstructorClass, NULL);
- java::lang::reflect::Constructor** cptr = elements (result);
- for (i = 0; i < max; i++)
- {
- _Jv_Method *method = &methods[i];
- if (method->name == NULL
- || ! _Jv_equalUtf8Consts (method->name, init_name))
- continue;
- if (! declared
- && ! java::lang::reflect::Modifier::isPublic(method->accflags))
- continue;
- java::lang::reflect::Constructor *cons
- = new java::lang::reflect::Constructor ();
- cons->offset = (char *) method - (char *) methods;
- cons->declaringClass = this;
- *cptr++ = cons;
- }
- return result;
-}
-
-java::lang::reflect::Constructor *
-java::lang::Class::getDeclaredConstructor (JArray<jclass> *param_types)
-{
- jstring partial_sig = getSignature (param_types, true);
- jint hash = partial_sig->hashCode ();
-
- int i = isPrimitive () ? 0 : method_count;
- while (--i >= 0)
- {
- // FIXME: access checks.
- if (_Jv_equalUtf8Consts (methods[i].name, init_name)
- && _Jv_equal (methods[i].signature, partial_sig, hash))
- {
- // Found it.
- using namespace java::lang::reflect;
- Constructor *cons = new Constructor ();
- cons->offset = (char *) (&methods[i]) - (char *) methods;
- cons->declaringClass = this;
- return cons;
- }
- }
- JvThrow (new java::lang::NoSuchMethodException);
-}
-
-java::lang::reflect::Field *
-java::lang::Class::getField (jstring name, jint hash)
-{
- java::lang::reflect::Field* rfield;
- for (int i = 0; i < field_count; i++)
- {
- _Jv_Field *field = &fields[i];
- if (! _Jv_equal (field->name, name, hash))
- continue;
- if (! (field->getModifiers() & java::lang::reflect::Modifier::PUBLIC))
- continue;
- rfield = new java::lang::reflect::Field ();
- rfield->offset = (char*) field - (char*) fields;
- rfield->declaringClass = this;
- rfield->name = name;
- return rfield;
- }
- jclass superclass = getSuperclass();
- if (superclass == NULL)
- return NULL;
- rfield = superclass->getField(name, hash);
- for (int i = 0; i < interface_count && rfield == NULL; ++i)
- rfield = interfaces[i]->getField (name, hash);
- return rfield;
-}
-
-java::lang::reflect::Field *
-java::lang::Class::getDeclaredField (jstring name)
-{
- java::lang::SecurityManager *s = java::lang::System::getSecurityManager();
- if (s != NULL)
- s->checkMemberAccess (this, java::lang::reflect::Member::DECLARED);
- int hash = name->hashCode();
- for (int i = 0; i < field_count; i++)
- {
- _Jv_Field *field = &fields[i];
- if (! _Jv_equal (field->name, name, hash))
- continue;
- java::lang::reflect::Field* rfield = new java::lang::reflect::Field ();
- rfield->offset = (char*) field - (char*) fields;
- rfield->declaringClass = this;
- rfield->name = name;
- return rfield;
- }
- JvThrow (new java::lang::NoSuchFieldException (name));
-}
-
-JArray<java::lang::reflect::Field *> *
-java::lang::Class::getDeclaredFields (void)
-{
- java::lang::SecurityManager *s = java::lang::System::getSecurityManager();
- if (s != NULL)
- s->checkMemberAccess (this, java::lang::reflect::Member::DECLARED);
- JArray<java::lang::reflect::Field *> *result
- = (JArray<java::lang::reflect::Field *> *)
- JvNewObjectArray (field_count, &FieldClass, NULL);
- java::lang::reflect::Field** fptr = elements (result);
- for (int i = 0; i < field_count; i++)
- {
- _Jv_Field *field = &fields[i];
- java::lang::reflect::Field* rfield = new java::lang::reflect::Field ();
- rfield->offset = (char*) field - (char*) fields;
- rfield->declaringClass = this;
- *fptr++ = rfield;
- }
- return result;
-}
-
-void
-java::lang::Class::getSignature (java::lang::StringBuffer *buffer)
-{
- if (isPrimitive())
- buffer->append((jchar) method_count);
- else
- {
- jstring name = getName();
- if (name->charAt(0) != '[')
- buffer->append((jchar) 'L');
- buffer->append(name);
- if (name->charAt(0) != '[')
- buffer->append((jchar) ';');
- }
-}
-
-// This doesn't have to be native. It is an implementation detail
-// only called from the C++ code, though, so maybe this is clearer.
-jstring
-java::lang::Class::getSignature (JArray<jclass> *param_types,
- jboolean is_constructor)
-{
- java::lang::StringBuffer *buf = new java::lang::StringBuffer ();
- buf->append((jchar) '(');
- jclass *v = elements (param_types);
- for (int i = 0; i < param_types->length; ++i)
- v[i]->getSignature(buf);
- buf->append((jchar) ')');
- if (is_constructor)
- buf->append((jchar) 'V');
- return buf->toString();
-}
-
-java::lang::reflect::Method *
-java::lang::Class::getDeclaredMethod (jstring name,
- JArray<jclass> *param_types)
-{
- jstring partial_sig = getSignature (param_types, false);
- jint p_len = partial_sig->length();
- _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
- int i = isPrimitive () ? 0 : method_count;
- while (--i >= 0)
- {
- // FIXME: access checks.
- if (_Jv_equalUtf8Consts (methods[i].name, utf_name)
- && _Jv_equaln (methods[i].signature, partial_sig, p_len))
- {
- // Found it.
- using namespace java::lang::reflect;
- Method *rmethod = new Method ();
- rmethod->offset = (char*) (&methods[i]) - (char*) methods;
- rmethod->declaringClass = this;
- return rmethod;
- }
- }
- JvThrow (new java::lang::NoSuchMethodException);
-}
-
-JArray<java::lang::reflect::Method *> *
-java::lang::Class::getDeclaredMethods (void)
-{
- int numMethods = 0;
- int max = isPrimitive () ? 0 : method_count;
- int i;
- for (i = max; --i >= 0; )
- {
- _Jv_Method *method = &methods[i];
- if (method->name == NULL
- || _Jv_equalUtf8Consts (method->name, clinit_name)
- || _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name)
- // Backward compatibility hack: match the legacy `$finit$' name
- || _Jv_equalUtf8Consts (method->name, finit_leg_name))
- continue;
- numMethods++;
- }
- JArray<java::lang::reflect::Method *> *result
- = (JArray<java::lang::reflect::Method *> *)
- JvNewObjectArray (numMethods, &MethodClass, NULL);
- java::lang::reflect::Method** mptr = elements (result);
- for (i = 0; i < max; i++)
- {
- _Jv_Method *method = &methods[i];
- if (method->name == NULL
- || _Jv_equalUtf8Consts (method->name, clinit_name)
- || _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name)
- // Backward compatibility hack: match the legacy `$finit$' name
- || _Jv_equalUtf8Consts (method->name, finit_leg_name))
- continue;
- java::lang::reflect::Method* rmethod
- = new java::lang::reflect::Method ();
- rmethod->offset = (char*) method - (char*) methods;
- rmethod->declaringClass = this;
- *mptr++ = rmethod;
- }
- return result;
-}
-
-jstring
-java::lang::Class::getName (void)
-{
- char buffer[name->length + 1];
- memcpy (buffer, name->data, name->length);
- buffer[name->length] = '\0';
- return _Jv_NewStringUTF (buffer);
-}
-
-JArray<jclass> *
-java::lang::Class::getClasses (void)
-{
- // Until we have inner classes, it always makes sense to return an
- // empty array.
- JArray<jclass> *result
- = (JArray<jclass> *) JvNewObjectArray (0, &ClassClass, NULL);
- return result;
-}
-
-JArray<jclass> *
-java::lang::Class::getDeclaredClasses (void)
-{
- checkMemberAccess (java::lang::reflect::Member::DECLARED);
- // Until we have inner classes, it always makes sense to return an
- // empty array.
- JArray<jclass> *result
- = (JArray<jclass> *) JvNewObjectArray (0, &ClassClass, NULL);
- return result;
-}
-
-jclass
-java::lang::Class::getDeclaringClass (void)
-{
- // Until we have inner classes, it makes sense to always return
- // NULL.
- return NULL;
-}
-
-jint
-java::lang::Class::_getFields (JArray<java::lang::reflect::Field *> *result,
- jint offset)
-{
- int count = 0;
- for (int i = 0; i < field_count; i++)
- {
- _Jv_Field *field = &fields[i];
- if (! (field->getModifiers() & java::lang::reflect::Modifier::PUBLIC))
- continue;
- ++count;
-
- if (result != NULL)
- {
- java::lang::reflect::Field *rfield
- = new java::lang::reflect::Field ();
- rfield->offset = (char *) field - (char *) fields;
- rfield->declaringClass = this;
- rfield->name = _Jv_NewStringUtf8Const (field->name);
- (elements (result))[offset + i] = rfield;
- }
- }
- jclass superclass = getSuperclass();
- if (superclass != NULL)
- {
- int s_count = superclass->_getFields (result, offset);
- count += s_count;
- offset += s_count;
- }
- for (int i = 0; i < interface_count; ++i)
- {
- int f_count = interfaces[i]->_getFields (result, offset);
- count += f_count;
- offset += f_count;
- }
- return count;
-}
-
-JArray<java::lang::reflect::Field *> *
-java::lang::Class::getFields (void)
-{
- using namespace java::lang::reflect;
-
- int count = _getFields (NULL, 0);
-
- JArray<java::lang::reflect::Field *> *result
- = ((JArray<java::lang::reflect::Field *> *)
- JvNewObjectArray (count, &FieldClass, NULL));
-
- _getFields (result, 0);
-
- return result;
-}
-
-JArray<jclass> *
-java::lang::Class::getInterfaces (void)
-{
- jobjectArray r = JvNewObjectArray (interface_count, getClass (), NULL);
- jobject *data = elements (r);
- for (int i = 0; i < interface_count; ++i)
- data[i] = interfaces[i];
- return reinterpret_cast<JArray<jclass> *> (r);
-}
-
-java::lang::reflect::Method *
-java::lang::Class::getMethod (jstring name, JArray<jclass> *param_types)
-{
- jstring partial_sig = getSignature (param_types, false);
- jint p_len = partial_sig->length();
- _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
- for (Class *klass = this; klass; klass = klass->getSuperclass())
- {
- int i = klass->isPrimitive () ? 0 : klass->method_count;
- while (--i >= 0)
- {
- // FIXME: access checks.
- if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
- && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len))
- {
- // Found it.
- using namespace java::lang::reflect;
-
- // Method must be public.
- if (! Modifier::isPublic (klass->methods[i].accflags))
- break;
-
- Method *rmethod = new Method ();
- rmethod->offset = ((char *) (&klass->methods[i])
- - (char *) klass->methods);
- rmethod->declaringClass = klass;
- return rmethod;
- }
- }
- }
- JvThrow (new java::lang::NoSuchMethodException);
-}
-
-// This is a very slow implementation, since it re-scans all the
-// methods we've already listed to make sure we haven't duplicated a
-// method. It also over-estimates the required size, so we have to
-// shrink the result array later.
-jint
-java::lang::Class::_getMethods (JArray<java::lang::reflect::Method *> *result,
- jint offset)
-{
- jint count = 0;
-
- // First examine all local methods
- for (int i = isPrimitive () ? 0 : method_count; --i >= 0; )
- {
- _Jv_Method *method = &methods[i];
- if (method->name == NULL
- || _Jv_equalUtf8Consts (method->name, clinit_name)
- || _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name)
- // Backward compatibility hack: match the legacy `$finit$' name
- || _Jv_equalUtf8Consts (method->name, finit_leg_name))
- continue;
- // Only want public methods.
- if (! java::lang::reflect::Modifier::isPublic (method->accflags))
- continue;
-
- // This is where we over-count the slots required if we aren't
- // filling the result for real.
- if (result != NULL)
- {
- jboolean add = true;
- java::lang::reflect::Method **mp = elements (result);
- // If we already have a method with this name and signature,
- // then ignore this one. This can happen with virtual
- // methods.
- for (int j = 0; j < offset; ++j)
- {
- _Jv_Method *meth_2 = _Jv_FromReflectedMethod (mp[j]);
- if (_Jv_equalUtf8Consts (method->name, meth_2->name)
- && _Jv_equalUtf8Consts (method->signature,
- meth_2->signature))
- {
- add = false;
- break;
- }
- }
- if (! add)
- continue;
- }
-
- if (result != NULL)
- {
- using namespace java::lang::reflect;
- Method *rmethod = new Method ();
- rmethod->offset = (char *) method - (char *) methods;
- rmethod->declaringClass = this;
- Method **mp = elements (result);
- mp[offset + count] = rmethod;
- }
- ++count;
- }
- offset += count;
-
- // Now examine superclasses.
- if (getSuperclass () != NULL)
- {
- jint s_count = getSuperclass()->_getMethods (result, offset);
- offset += s_count;
- count += s_count;
- }
-
- // Finally, examine interfaces.
- for (int i = 0; i < interface_count; ++i)
- {
- int f_count = interfaces[i]->_getMethods (result, offset);
- count += f_count;
- offset += f_count;
- }
-
- return count;
-}
-
-JArray<java::lang::reflect::Method *> *
-java::lang::Class::getMethods (void)
-{
- using namespace java::lang::reflect;
-
- // FIXME: security checks.
-
- // This will overestimate the size we need.
- jint count = _getMethods (NULL, 0);
-
- JArray<Method *> *result
- = ((JArray<Method *> *) JvNewObjectArray (count, &MethodClass, NULL));
-
- // When filling the array for real, we get the actual count. Then
- // we resize the array.
- jint real_count = _getMethods (result, 0);
-
- if (real_count != count)
- {
- JArray<Method *> *r2
- = ((JArray<Method *> *) JvNewObjectArray (real_count, &MethodClass,
- NULL));
-
- Method **destp = elements (r2);
- Method **srcp = elements (result);
-
- for (int i = 0; i < real_count; ++i)
- *destp++ = *srcp++;
-
- result = r2;
- }
-
- return result;
-}
-
-jboolean
-java::lang::Class::isAssignableFrom (jclass klass)
-{
- // Arguments may not have been initialized, given ".class" syntax.
- _Jv_InitClass (this);
- _Jv_InitClass (klass);
- return _Jv_IsAssignableFrom (this, klass);
-}
-
-inline jboolean
-java::lang::Class::isInstance (jobject obj)
-{
- if (__builtin_expect (! obj || isPrimitive (), false))
- return false;
- _Jv_InitClass (this);
- return _Jv_IsAssignableFrom (this, JV_CLASS (obj));
-}
-
-inline jboolean
-java::lang::Class::isInterface (void)
-{
- return (accflags & java::lang::reflect::Modifier::INTERFACE) != 0;
-}
-
-jobject
-java::lang::Class::newInstance (void)
-{
- // FIXME: do accessibility checks here. There currently doesn't
- // seem to be any way to do these.
- // FIXME: we special-case one check here just to pass a Plum Hall
- // test. Once access checking is implemented, remove this.
- if (this == &ClassClass)
- JvThrow (new java::lang::IllegalAccessException);
-
- if (isPrimitive ()
- || isInterface ()
- || isArray ()
- || java::lang::reflect::Modifier::isAbstract(accflags))
- JvThrow (new java::lang::InstantiationException);
-
- _Jv_InitClass (this);
-
- _Jv_Method *meth = _Jv_GetMethodLocal (this, init_name, void_signature);
- if (! meth)
- JvThrow (new java::lang::NoSuchMethodException);
-
- jobject r = JvAllocObject (this);
- ((void (*) (jobject)) meth->ncode) (r);
- return r;
-}
-
-void
-java::lang::Class::finalize (void)
-{
-#ifdef INTERPRETER
- JvAssert (_Jv_IsInterpretedClass (this));
- _Jv_UnregisterClass (this);
-#endif
-}
-
-// This implements the initialization process for a class. From Spec
-// section 12.4.2.
-void
-java::lang::Class::initializeClass (void)
-{
- // jshort-circuit to avoid needless locking.
- if (state == JV_STATE_DONE)
- return;
-
- // Step 1.
- _Jv_MonitorEnter (this);
-
- if (state < JV_STATE_LINKED)
- {
-#ifdef INTERPRETER
- if (_Jv_IsInterpretedClass (this))
- {
- // this can throw exceptions, so exit the monitor as a precaution.
- _Jv_MonitorExit (this);
- java::lang::ClassLoader::resolveClass0 (this);
- _Jv_MonitorEnter (this);
- }
- else
-#endif
- {
- _Jv_PrepareCompiledClass (this);
- }
- }
-
- if (state <= JV_STATE_LINKED)
- _Jv_PrepareConstantTimeTables (this);
-
- // Step 2.
- java::lang::Thread *self = java::lang::Thread::currentThread();
- // FIXME: `self' can be null at startup. Hence this nasty trick.
- self = (java::lang::Thread *) ((long) self | 1);
- while (state == JV_STATE_IN_PROGRESS && thread && thread != self)
- wait ();
-
- // Steps 3 & 4.
- if (state == JV_STATE_DONE || state == JV_STATE_IN_PROGRESS || thread == self)
- {
- _Jv_MonitorExit (this);
- return;
- }
-
- // Step 5.
- if (state == JV_STATE_ERROR)
- {
- _Jv_MonitorExit (this);
- JvThrow (new java::lang::NoClassDefFoundError);
- }
-
- // Step 6.
- thread = self;
- state = JV_STATE_IN_PROGRESS;
- _Jv_MonitorExit (this);
-
- // Step 7.
- if (! isInterface () && superclass)
- {
- try
- {
- superclass->initializeClass ();
- }
- catch (java::lang::Throwable *except)
- {
- // Caught an exception.
- _Jv_MonitorEnter (this);
- state = JV_STATE_ERROR;
- notifyAll ();
- _Jv_MonitorExit (this);
- throw except;
- }
- }
-
- // Steps 8, 9, 10, 11.
- try
- {
- _Jv_Method *meth = _Jv_GetMethodLocal (this, clinit_name,
- void_signature);
- if (meth)
- ((void (*) (void)) meth->ncode) ();
- }
- catch (java::lang::Throwable *except)
- {
- if (! ErrorClass.isInstance(except))
- {
- try
- {
- except = new ExceptionInInitializerError (except);
- }
- catch (java::lang::Throwable *t)
- {
- except = t;
- }
- }
- _Jv_MonitorEnter (this);
- state = JV_STATE_ERROR;
- notifyAll ();
- _Jv_MonitorExit (this);
- JvThrow (except);
- }
-
- _Jv_MonitorEnter (this);
- state = JV_STATE_DONE;
- notifyAll ();
- _Jv_MonitorExit (this);
-}
-
-
-
-//
-// Some class-related convenience functions.
-//
-
-// Find a method declared in the class. If it is not declared locally
-// (or if it is inherited), return NULL.
-_Jv_Method *
-_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- for (int i = 0; i < klass->method_count; ++i)
- {
- if (_Jv_equalUtf8Consts (name, klass->methods[i].name)
- && _Jv_equalUtf8Consts (signature, klass->methods[i].signature))
- return &klass->methods[i];
- }
- return NULL;
-}
-
-_Jv_Method *
-_Jv_LookupDeclaredMethod (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- for (; klass; klass = klass->getSuperclass())
- {
- _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
-
- if (meth)
- return meth;
- }
-
- return NULL;
-}
-
-// NOTE: MCACHE_SIZE should be a power of 2 minus one.
-#define MCACHE_SIZE 1023
-
-struct _Jv_mcache
-{
- jclass klass;
- _Jv_Method *method;
-};
-
-static _Jv_mcache method_cache[MCACHE_SIZE + 1];
-
-static void *
-_Jv_FindMethodInCache (jclass klass,
- _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- int index = name->hash & MCACHE_SIZE;
- _Jv_mcache *mc = method_cache + index;
- _Jv_Method *m = mc->method;
-
- if (mc->klass == klass
- && m != NULL // thread safe check
- && _Jv_equalUtf8Consts (m->name, name)
- && _Jv_equalUtf8Consts (m->signature, signature))
- return mc->method->ncode;
- return NULL;
-}
-
-static void
-_Jv_AddMethodToCache (jclass klass,
- _Jv_Method *method)
-{
- _Jv_MonitorEnter (&ClassClass);
-
- int index = method->name->hash & MCACHE_SIZE;
-
- method_cache[index].method = method;
- method_cache[index].klass = klass;
-
- _Jv_MonitorExit (&ClassClass);
-}
-
-void *
-_Jv_LookupInterfaceMethod (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- using namespace java::lang::reflect;
-
- void *ncode = _Jv_FindMethodInCache (klass, name, signature);
- if (ncode != 0)
- return ncode;
-
- for (; klass; klass = klass->getSuperclass())
- {
- _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
- if (! meth)
- continue;
-
- if (Modifier::isStatic(meth->accflags))
- JvThrow (new java::lang::IncompatibleClassChangeError
- (_Jv_GetMethodString (klass, meth->name)));
- if (Modifier::isAbstract(meth->accflags))
- JvThrow (new java::lang::AbstractMethodError
- (_Jv_GetMethodString (klass, meth->name)));
- if (! Modifier::isPublic(meth->accflags))
- JvThrow (new java::lang::IllegalAccessError
- (_Jv_GetMethodString (klass, meth->name)));
-
- _Jv_AddMethodToCache (klass, meth);
-
- return meth->ncode;
- }
- JvThrow (new java::lang::IncompatibleClassChangeError);
- return NULL; // Placate compiler.
-}
-
-// Fast interface method lookup by index.
-void *
-_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface, int method_idx)
-{
- _Jv_IDispatchTable *cldt = klass->idt;
- int idx = iface->idt->iface.ioffsets[cldt->cls.iindex] + method_idx;
- return cldt->cls.itable[idx];
-}
-
-inline jboolean
-_Jv_IsAssignableFrom (jclass target, jclass source)
-{
- if (target == &ObjectClass
- || source == target
- || (source->ancestors != NULL
- && source->ancestors[source->depth - target->depth] == target))
- return true;
-
- // If target is array, so must source be.
- if (target->isArray ())
- {
- if (! source->isArray())
- return false;
- return _Jv_IsAssignableFrom(target->getComponentType(),
- source->getComponentType());
- }
-
- if (target->isInterface())
- {
- // Abstract classes have no IDT, and IDTs provide no way to check
- // two interfaces for assignability.
- if (__builtin_expect
- (java::lang::reflect::Modifier::isAbstract (source->accflags)
- || source->isInterface(), false))
- return _Jv_InterfaceAssignableFrom (target, source);
-
- _Jv_IDispatchTable *cl_idt = source->idt;
- _Jv_IDispatchTable *if_idt = target->idt;
-
- if (__builtin_expect ((if_idt == NULL), false))
- return false; // No class implementing TARGET has been loaded.
- jshort cl_iindex = cl_idt->cls.iindex;
- if (cl_iindex <= if_idt->iface.ioffsets[0])
- {
- jshort offset = if_idt->iface.ioffsets[cl_iindex];
- if (offset < cl_idt->cls.itable_length
- && cl_idt->cls.itable[offset] == target)
- return true;
- }
- }
-
- return false;
-}
-
-// Interface type checking, the slow way. Returns TRUE if IFACE is a
-// superinterface of SOURCE. This is used when SOURCE is also an interface,
-// or a class with no interface dispatch table.
-jboolean
-_Jv_InterfaceAssignableFrom (jclass iface, jclass source)
-{
- for (int i = 0; i < source->interface_count; i++)
- {
- jclass interface = source->interfaces[i];
- if (iface == interface
- || _Jv_InterfaceAssignableFrom (iface, interface))
- return true;
- }
-
- if (!source->isInterface()
- && source->superclass
- && _Jv_InterfaceAssignableFrom (iface, source->superclass))
- return true;
-
- return false;
-}
-
-jboolean
-_Jv_IsInstanceOf(jobject obj, jclass cl)
-{
- if (__builtin_expect (!obj, false))
- return false;
- return (_Jv_IsAssignableFrom (cl, JV_CLASS (obj)));
-}
-
-void *
-_Jv_CheckCast (jclass c, jobject obj)
-{
- if (__builtin_expect
- (obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj)), false))
- JvThrow (new java::lang::ClassCastException);
- return obj;
-}
-
-void
-_Jv_CheckArrayStore (jobject arr, jobject obj)
-{
- if (obj)
- {
- JvAssert (arr != NULL);
- jclass elt_class = (JV_CLASS (arr))->getComponentType();
- jclass obj_class = JV_CLASS (obj);
- if (__builtin_expect
- (! _Jv_IsAssignableFrom (elt_class, obj_class), false))
- JvThrow (new java::lang::ArrayStoreException);
- }
-}
-
-#define INITIAL_IOFFSETS_LEN 4
-#define INITIAL_IFACES_LEN 4
-
-// Generate tables for constant-time assignment testing and interface
-// method lookup. This implements the technique described by Per Bothner
-// <per@bothner.com> on the java-discuss mailing list on 1999-09-02:
-// http://sourceware.cygnus.com/ml/java-discuss/1999-q3/msg00377.html
-void
-_Jv_PrepareConstantTimeTables (jclass klass)
-{
- if (klass->isPrimitive () || klass->isInterface ())
- return;
-
- // Short-circuit in case we've been called already.
- if ((klass->idt != NULL) || klass->depth != 0)
- return;
-
- // Calculate the class depth and ancestor table. The depth of a class
- // is how many "extends" it is removed from Object. Thus the depth of
- // java.lang.Object is 0, but the depth of java.io.FilterOutputStream
- // is 2. Depth is defined for all regular and array classes, but not
- // interfaces or primitive types.
-
- jclass klass0 = klass;
- while (klass0 != &ObjectClass)
- {
- klass0 = klass0->superclass;
- klass->depth++;
- }
-
- // We do class member testing in constant time by using a small table
- // of all the ancestor classes within each class. The first element is
- // a pointer to the current class, and the rest are pointers to the
- // classes ancestors, ordered from the current class down by decreasing
- // depth. We do not include java.lang.Object in the table of ancestors,
- // since it is redundant.
-
- klass->ancestors = (jclass *) _Jv_Malloc (klass->depth * sizeof (jclass));
- klass0 = klass;
- for (int index = 0; index < klass->depth; index++)
- {
- klass->ancestors[index] = klass0;
- klass0 = klass0->superclass;
- }
-
- if (java::lang::reflect::Modifier::isAbstract (klass->accflags))
- return;
-
- klass->idt =
- (_Jv_IDispatchTable *) _Jv_Malloc (sizeof (_Jv_IDispatchTable));
-
- _Jv_ifaces ifaces;
-
- ifaces.count = 0;
- ifaces.len = INITIAL_IFACES_LEN;
- ifaces.list = (jclass *) _Jv_Malloc (ifaces.len * sizeof (jclass *));
-
- int itable_size = _Jv_GetInterfaces (klass, &ifaces);
-
- if (ifaces.count > 0)
- {
- klass->idt->cls.itable =
- (void **) _Jv_Malloc (itable_size * sizeof (void *));
- klass->idt->cls.itable_length = itable_size;
-
- jshort *itable_offsets =
- (jshort *) _Jv_Malloc (ifaces.count * sizeof (jshort));
-
- _Jv_GenerateITable (klass, &ifaces, itable_offsets);
-
- jshort cls_iindex =
- _Jv_FindIIndex (ifaces.list, itable_offsets, ifaces.count);
-
- for (int i=0; i < ifaces.count; i++)
- {
- ifaces.list[i]->idt->iface.ioffsets[cls_iindex] =
- itable_offsets[i];
- }
-
- klass->idt->cls.iindex = cls_iindex;
-
- _Jv_Free (ifaces.list);
- _Jv_Free (itable_offsets);
- }
- else
- {
- klass->idt->cls.iindex = SHRT_MAX;
- }
-}
-
-// Return index of item in list, or -1 if item is not present.
-jshort
-_Jv_IndexOf (void *item, void **list, jshort list_len)
-{
- for (int i=0; i < list_len; i++)
- {
- if (list[i] == item)
- return i;
- }
- return -1;
-}
-
-// Find all unique interfaces directly or indirectly implemented by klass.
-// Returns the size of the interface dispatch table (itable) for klass, which
-// is the number of unique interfaces plus the total number of methods that
-// those interfaces declare. May extend ifaces if required.
-jshort
-_Jv_GetInterfaces (jclass klass, _Jv_ifaces *ifaces)
-{
- jshort result = 0;
-
- for (int i=0; i < klass->interface_count; i++)
- {
- jclass iface = klass->interfaces[i];
- if (_Jv_IndexOf (iface, (void **) ifaces->list, ifaces->count) == -1)
- {
- if (ifaces->count + 1 >= ifaces->len)
- {
- /* Resize ifaces list */
- ifaces->len = ifaces->len * 2;
- ifaces->list = (jclass *) _Jv_Realloc (ifaces->list,
- ifaces->len * sizeof(jclass));
- }
- ifaces->list[ifaces->count] = iface;
- ifaces->count++;
-
- result += _Jv_GetInterfaces (klass->interfaces[i], ifaces);
- }
- }
-
- if (klass->isInterface())
- {
- result += klass->method_count + 1;
- }
- else
- {
- if (klass->superclass)
- {
- result += _Jv_GetInterfaces (klass->superclass, ifaces);
- }
- }
- return result;
-}
-
-// Fill out itable in klass, resolving method declarations in each ifaces.
-// itable_offsets is filled out with the position of each iface in itable,
-// such that itable[itable_offsets[n]] == ifaces.list[n].
-void
-_Jv_GenerateITable (jclass klass, _Jv_ifaces *ifaces, jshort *itable_offsets)
-{
- void **itable = klass->idt->cls.itable;
- jshort itable_pos = 0;
-
- for (int i=0; i < ifaces->count; i++)
- {
- jclass iface = ifaces->list[i];
- itable_offsets[i] = itable_pos;
- itable_pos = _Jv_AppendPartialITable (klass, iface, itable,
- itable_pos);
-
- /* Create interface dispatch table for iface */
- if (iface->idt == NULL)
- {
- iface->idt =
- (_Jv_IDispatchTable *) _Jv_Malloc (sizeof (_Jv_IDispatchTable));
-
- // The first element of ioffsets is its length (itself included).
- jshort *ioffsets =
- (jshort *) _Jv_Malloc (INITIAL_IOFFSETS_LEN * sizeof (jshort));
- ioffsets[0] = INITIAL_IOFFSETS_LEN;
- for (int i=1; i < INITIAL_IOFFSETS_LEN; i++)
- ioffsets[i] = -1;
-
- iface->idt->iface.ioffsets = ioffsets;
- }
- }
-}
-
-// Format method name for use in error messages.
-jstring
-_Jv_GetMethodString (jclass klass, _Jv_Utf8Const *name)
-{
- jstring r = JvNewStringUTF (klass->name->data);
- r = r->concat (JvNewStringUTF ("."));
- r = r->concat (JvNewStringUTF (name->data));
- return r;
-}
-
-void
-_Jv_ThrowNoSuchMethodError ()
-{
- JvThrow (new java::lang::NoSuchMethodError ());
-}
-
-// Each superinterface of a class (i.e. each interface that the class
-// directly or indirectly implements) has a corresponding "Partial
-// Interface Dispatch Table" whose size is (number of methods + 1) words.
-// The first word is a pointer to the interface (i.e. the java.lang.Class
-// instance for that interface). The remaining words are pointers to the
-// actual methods that implement the methods declared in the interface,
-// in order of declaration.
-//
-// Append partial interface dispatch table for "iface" to "itable", at
-// position itable_pos.
-// Returns the offset at which the next partial ITable should be appended.
-jshort
-_Jv_AppendPartialITable (jclass klass, jclass iface, void **itable,
- jshort pos)
-{
- using namespace java::lang::reflect;
-
- itable[pos++] = (void *) iface;
- _Jv_Method *meth;
-
- for (int j=0; j < iface->method_count; j++)
- {
- meth = NULL;
- for (jclass cl = klass; cl; cl = cl->getSuperclass())
- {
- meth = _Jv_GetMethodLocal (cl, iface->methods[j].name,
- iface->methods[j].signature);
-
- if (meth)
- break;
- }
-
- if (meth && (meth->name->data[0] == '<'))
- {
- // leave a placeholder in the itable for hidden init methods.
- itable[pos] = NULL;
- }
- else if (meth)
- {
- if (Modifier::isStatic(meth->accflags))
- JvThrow (new java::lang::IncompatibleClassChangeError
- (_Jv_GetMethodString (klass, meth->name)));
- if (Modifier::isAbstract(meth->accflags))
- JvThrow (new java::lang::AbstractMethodError
- (_Jv_GetMethodString (klass, meth->name)));
- if (! Modifier::isPublic(meth->accflags))
- JvThrow (new java::lang::IllegalAccessError
- (_Jv_GetMethodString (klass, meth->name)));
-
- itable[pos] = meth->ncode;
- }
- else
- {
- // The method doesn't exist in klass. Binary compatibility rules
- // permit this, so we delay the error until runtime using a pointer
- // to a method which throws an exception.
- itable[pos] = (void *) _Jv_ThrowNoSuchMethodError;
- }
- pos++;
- }
-
- return pos;
-}
-
-static _Jv_Mutex_t iindex_mutex;
-bool iindex_mutex_initialized = false;
-
-// We need to find the correct offset in the Class Interface Dispatch
-// Table for a given interface. Once we have that, invoking an interface
-// method just requires combining the Method's index in the interface
-// (known at compile time) to get the correct method. Doing a type test
-// (cast or instanceof) is the same problem: Once we have a possible Partial
-// Interface Dispatch Table, we just compare the first element to see if it
-// matches the desired interface. So how can we find the correct offset?
-// Our solution is to keep a vector of candiate offsets in each interface
-// (idt->iface.ioffsets), and in each class we have an index
-// (idt->cls.iindex) used to select the correct offset from ioffsets.
-//
-// Calculate and return iindex for a new class.
-// ifaces is a vector of num interfaces that the class implements.
-// offsets[j] is the offset in the interface dispatch table for the
-// interface corresponding to ifaces[j].
-// May extend the interface ioffsets if required.
-jshort
-_Jv_FindIIndex (jclass *ifaces, jshort *offsets, jshort num)
-{
- int i;
- int j;
-
- // Acquire a global lock to prevent itable corruption in case of multiple
- // classes that implement an intersecting set of interfaces being linked
- // simultaneously. We can assume that the mutex will be initialized
- // single-threaded.
- if (! iindex_mutex_initialized)
- {
- _Jv_MutexInit (&iindex_mutex);
- iindex_mutex_initialized = true;
- }
-
- _Jv_MutexLock (&iindex_mutex);
-
- for (i=1;; i++) /* each potential position in ioffsets */
- {
- for (j=0;; j++) /* each iface */
- {
- if (j >= num)
- goto found;
- if (i > ifaces[j]->idt->iface.ioffsets[0])
- continue;
- int ioffset = ifaces[j]->idt->iface.ioffsets[i];
- /* We can potentially share this position with another class. */
- if (ioffset >= 0 && ioffset != offsets[j])
- break; /* Nope. Try next i. */
- }
- }
- found:
- for (j = 0; j < num; j++)
- {
- int len = ifaces[j]->idt->iface.ioffsets[0];
- if (i >= len)
- {
- /* Resize ioffsets. */
- int newlen = 2 * len;
- if (i >= newlen)
- newlen = i + 3;
- jshort *old_ioffsets = ifaces[j]->idt->iface.ioffsets;
- jshort *new_ioffsets = (jshort *) _Jv_Realloc (old_ioffsets,
- newlen * sizeof(jshort));
- new_ioffsets[0] = newlen;
-
- while (len < newlen)
- new_ioffsets[len++] = -1;
-
- ifaces[j]->idt->iface.ioffsets = new_ioffsets;
- }
- ifaces[j]->idt->iface.ioffsets[i] = offsets[j];
- }
-
- _Jv_MutexUnlock (&iindex_mutex);
-
- return i;
-}
-
-// Only used by serialization
-java::lang::reflect::Field *
-java::lang::Class::getPrivateField (jstring name)
-{
- int hash = name->hashCode ();
-
- java::lang::reflect::Field* rfield;
- for (int i = 0; i < field_count; i++)
- {
- _Jv_Field *field = &fields[i];
- if (! _Jv_equal (field->name, name, hash))
- continue;
- rfield = new java::lang::reflect::Field ();
- rfield->offset = (char*) field - (char*) fields;
- rfield->declaringClass = this;
- rfield->name = name;
- return rfield;
- }
- jclass superclass = getSuperclass();
- if (superclass == NULL)
- return NULL;
- rfield = superclass->getPrivateField(name);
- for (int i = 0; i < interface_count && rfield == NULL; ++i)
- rfield = interfaces[i]->getPrivateField (name);
- return rfield;
-}
-
-// Only used by serialization
-java::lang::reflect::Method *
-java::lang::Class::getPrivateMethod (jstring name, JArray<jclass> *param_types)
-{
- jstring partial_sig = getSignature (param_types, false);
- jint p_len = partial_sig->length();
- _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
- for (Class *klass = this; klass; klass = klass->getSuperclass())
- {
- int i = klass->isPrimitive () ? 0 : klass->method_count;
- while (--i >= 0)
- {
- // FIXME: access checks.
- if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
- && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len))
- {
- // Found it.
- using namespace java::lang::reflect;
-
- Method *rmethod = new Method ();
- rmethod->offset = ((char *) (&klass->methods[i])
- - (char *) klass->methods);
- rmethod->declaringClass = klass;
- return rmethod;
- }
- }
- }
- JvThrow (new java::lang::NoSuchMethodException);
-}
-
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
deleted file mode 100644
index 54ffc42dd55..00000000000
--- a/libjava/java/lang/natClassLoader.cc
+++ /dev/null
@@ -1,640 +0,0 @@
-// natClassLoader.cc - Implementation of java.lang.ClassLoader native methods.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-#include <config.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java-threads.h>
-#include <java-interp.h>
-
-#include <java/lang/Character.h>
-#include <java/lang/Thread.h>
-#include <java/lang/ClassLoader.h>
-#include <gnu/gcj/runtime/VMClassLoader.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/IllegalAccessError.h>
-#include <java/lang/LinkageError.h>
-#include <java/lang/ClassFormatError.h>
-#include <java/lang/NoClassDefFoundError.h>
-#include <java/lang/ClassNotFoundException.h>
-#include <java/lang/ClassCircularityError.h>
-#include <java/lang/IncompatibleClassChangeError.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/Runtime.h>
-
-#define CloneableClass _CL_Q34java4lang9Cloneable
-extern java::lang::Class CloneableClass;
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-#define VMClassLoaderClass _CL_Q34java4lang17VMClassLoader
-extern java::lang::Class VMClassLoader;
-#define ClassLoaderClass _CL_Q34java4lang11ClassLoader
-extern java::lang::Class ClassLoaderClass;
-#define SerializableClass _CL_Q34java2io12Serializable
-extern java::lang::Class SerializableClass;
-/////////// java.lang.ClassLoader native methods ////////////
-
-java::lang::ClassLoader *
-java::lang::ClassLoader::getSystemClassLoader (void)
-{
- JvSynchronize sync (&ClassLoaderClass);
- if (! system)
- system = gnu::gcj::runtime::VMClassLoader::getVMClassLoader ();
- return system;
-}
-
-java::lang::Class *
-java::lang::ClassLoader::defineClass0 (jstring name,
- jbyteArray data,
- jint offset,
- jint length)
-{
-#ifdef INTERPRETER
- jclass klass;
- klass = (jclass) JvAllocObject (&ClassClass, sizeof (_Jv_InterpClass));
-
- // synchronize on the class, so that it is not
- // attempted initialized until we're done loading.
- _Jv_MonitorEnter (klass);
-
- // record which is the defining loader
- klass->loader = this;
-
- // register that we are the initiating loader...
- if (name != 0)
- {
- _Jv_Utf8Const * name2 = _Jv_makeUtf8Const (name);
-
- _Jv_VerifyClassName (name2);
-
- klass->name = name2;
- }
-
- try
- {
- _Jv_DefineClass (klass, data, offset, length);
- }
- catch (java::lang::Throwable *ex)
- {
- klass->state = JV_STATE_ERROR;
- klass->notifyAll ();
-
- _Jv_UnregisterClass (klass);
-
- _Jv_MonitorExit (klass);
-
- // FIXME: Here we may want to test that EX does
- // indeed represent a valid exception. That is,
- // anything but ClassNotFoundException,
- // or some kind of Error.
-
- JvThrow (ex);
- }
-
- // if everything proceeded sucessfully, we're loaded.
- JvAssert (klass->state == JV_STATE_LOADED);
-
- // if an exception is generated, this is initially missed.
- // however, we come back here in handleException0 below...
- _Jv_MonitorExit (klass);
-
- return klass;
-
-#else // INTERPRETER
-
- return 0;
-#endif
-}
-
-void
-_Jv_WaitForState (jclass klass, int state)
-{
- if (klass->state >= state)
- return;
-
- _Jv_MonitorEnter (klass) ;
-
- if (state == JV_STATE_LINKED)
- {
- // Must call _Jv_PrepareCompiledClass while holding the class
- // mutex.
- _Jv_PrepareCompiledClass (klass);
- _Jv_MonitorExit (klass);
- return;
- }
-
- java::lang::Thread *self = java::lang::Thread::currentThread();
-
- // this is similar to the strategy for class initialization.
- // if we already hold the lock, just leave.
- while (klass->state <= state
- && klass->thread
- && klass->thread != self)
- klass->wait ();
-
- _Jv_MonitorExit (klass);
-
- if (klass->state == JV_STATE_ERROR)
- {
- _Jv_Throw (new java::lang::LinkageError ());
- }
-}
-
-// Finish linking a class. Only called from ClassLoader::resolveClass.
-void
-java::lang::ClassLoader::linkClass0 (java::lang::Class *klass)
-{
- if (klass->state >= JV_STATE_LINKED)
- return;
-
-#ifdef INTERPRETER
- if (_Jv_IsInterpretedClass (klass))
- _Jv_PrepareClass (klass);
-#endif
-
- _Jv_PrepareCompiledClass (klass);
-}
-
-void
-java::lang::ClassLoader::markClassErrorState0 (java::lang::Class *klass)
-{
- klass->state = JV_STATE_ERROR;
- klass->notifyAll ();
-}
-
-
-/** this is the only native method in VMClassLoader, so
- we define it here. */
-jclass
-gnu::gcj::runtime::VMClassLoader::findSystemClass (jstring name)
-{
- _Jv_Utf8Const *name_u = _Jv_makeUtf8Const (name);
- jclass klass = _Jv_FindClassInCache (name_u, 0);
-
- if (! klass)
- {
- // Turn `gnu.pkg.quux' into `gnu-pkg-quux'. Then search for a
- // module named (eg, on Linux) `gnu-pkg-quux.so', followed by
- // `gnu-pkg.so' and `gnu.so'. If loading one of these causes
- // the class to appear in the cache, then use it.
- jstring so_base_name = name->replace ('.', '-');
-
- while (! klass && so_base_name && so_base_name->length() > 0)
- {
- using namespace ::java::lang;
- Runtime *rt = Runtime::getRuntime();
- jboolean loaded = rt->loadLibraryInternal (so_base_name);
-
- jint nd = so_base_name->lastIndexOf ('-');
- if (nd == -1)
- so_base_name = NULL;
- else
- so_base_name = so_base_name->substring (0, nd);
-
- if (loaded)
- klass = _Jv_FindClassInCache (name_u, 0);
- }
- }
-
- return klass;
-}
-
-jclass
-java::lang::ClassLoader::findLoadedClass (jstring name)
-{
- return _Jv_FindClassInCache (_Jv_makeUtf8Const (name), this);
-}
-
-
-/** This function does class-preparation for compiled classes.
- NOTE: It contains replicated functionality from
- _Jv_ResolvePoolEntry, and this is intentional, since that function
- lives in resolve.cc which is entirely conditionally compiled.
- */
-void
-_Jv_PrepareCompiledClass (jclass klass)
-{
- if (klass->state >= JV_STATE_LINKED)
- return;
-
- // Short-circuit, so that mutually dependent classes are ok.
- klass->state = JV_STATE_LINKED;
-
- _Jv_Constants *pool = &klass->constants;
- for (int index = 1; index < pool->size; ++index)
- {
- if (pool->tags[index] == JV_CONSTANT_Class)
- {
- _Jv_Utf8Const *name = pool->data[index].utf8;
-
- jclass found;
- if (name->data[0] == '[')
- found = _Jv_FindClassFromSignature (&name->data[0],
- klass->loader);
- else
- found = _Jv_FindClass (name, klass->loader);
-
- if (! found)
- {
- jstring str = _Jv_NewStringUTF (name->data);
- JvThrow (new java::lang::ClassNotFoundException (str));
- }
-
- pool->data[index].clazz = found;
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- else if (pool->tags[index] == JV_CONSTANT_String)
- {
- jstring str;
- str = _Jv_NewStringUtf8Const (pool->data[index].utf8);
- pool->data[index].o = str;
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- }
-
-#ifdef INTERPRETER
- // FIXME: although the comment up top says that this function is
- // only called for compiled classes, it is actually called for every
- // class.
- if (! _Jv_IsInterpretedClass (klass))
- {
-#endif /* INTERPRETER */
- jfieldID f = JvGetFirstStaticField (klass);
- for (int n = JvNumStaticFields (klass); n > 0; --n)
- {
- int mod = f->getModifiers ();
- // Maybe the compiler should mark these with
- // _Jv_FIELD_CONSTANT_VALUE? For now we just know that this
- // only happens for constant strings.
- if (f->getClass () == &StringClass
- && java::lang::reflect::Modifier::isStatic (mod)
- && java::lang::reflect::Modifier::isFinal (mod))
- {
- jstring *strp = (jstring *) f->u.addr;
- if (*strp)
- *strp = _Jv_NewStringUtf8Const ((_Jv_Utf8Const *) *strp);
- }
- f = f->getNextField ();
- }
-#ifdef INTERPRETER
- }
-#endif /* INTERPRETER */
-
- klass->notifyAll ();
-}
-
-
-//
-// A single class can have many "initiating" class loaders,
-// and a single "defining" class loader. The Defining
-// class loader is what is returned from Class.getClassLoader()
-// and is used when loading dependent classes during resolution.
-// The set of initiating class loaders are used to ensure
-// safety of linking, and is maintained in the hash table
-// "initiated_classes". A defining classloader is by definition also
-// initiating, so we only store classes in this table, if they have more
-// than one class loader associated.
-//
-
-
-// Size of local hash table.
-#define HASH_LEN 1013
-
-// Hash function for Utf8Consts.
-#define HASH_UTF(Utf) (((Utf)->hash) % HASH_LEN)
-
-struct _Jv_LoaderInfo {
- _Jv_LoaderInfo *next;
- java::lang::Class *klass;
- java::lang::ClassLoader *loader;
-};
-
-static _Jv_LoaderInfo *initiated_classes[HASH_LEN];
-static jclass loaded_classes[HASH_LEN];
-
-// This is the root of a linked list of classes
-
-
-
-jclass
-_Jv_FindClassInCache (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
-{
- _Jv_MonitorEnter (&ClassClass);
- jint hash = HASH_UTF (name);
-
- // first, if LOADER is a defining loader, then it is also initiating
- jclass klass;
- for (klass = loaded_classes[hash]; klass; klass = klass->next)
- {
- if (loader == klass->loader && _Jv_equalUtf8Consts (name, klass->name))
- break;
- }
-
- // otherwise, it may be that the class in question was defined
- // by some other loader, but that the loading was initiated by
- // the loader in question.
- if (!klass)
- {
- _Jv_LoaderInfo *info;
- for (info = initiated_classes[hash]; info; info = info->next)
- {
- if (loader == info->loader
- && _Jv_equalUtf8Consts (name, info->klass->name))
- {
- klass = info->klass;
- break;
- }
- }
- }
-
- _Jv_MonitorExit (&ClassClass);
-
- return klass;
-}
-
-void
-_Jv_UnregisterClass (jclass the_class)
-{
- _Jv_MonitorEnter (&ClassClass);
- jint hash = HASH_UTF(the_class->name);
-
- jclass *klass = &(loaded_classes[hash]);
- for ( ; *klass; klass = &((*klass)->next))
- {
- if (*klass == the_class)
- {
- *klass = (*klass)->next;
- break;
- }
- }
-
- _Jv_LoaderInfo **info = &(initiated_classes[hash]);
- for ( ; ; info = &((*info)->next))
- {
- while (*info && (*info)->klass == the_class)
- {
- *info = (*info)->next;
- }
-
- if (*info == NULL)
- break;
- }
-
- _Jv_MonitorExit (&ClassClass);
-}
-
-void
-_Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
-{
- _Jv_LoaderInfo *info = new _Jv_LoaderInfo; // non-gc alloc!
- jint hash = HASH_UTF(klass->name);
-
- _Jv_MonitorEnter (&ClassClass);
- info->loader = loader;
- info->klass = klass;
- info->next = initiated_classes[hash];
- initiated_classes[hash] = info;
- _Jv_MonitorExit (&ClassClass);
-
-}
-
-// This function is called many times during startup, before main() is
-// run. We do our runtime initialization here the very first time we
-// are called. At that point in time we know for certain we are
-// running single-threaded, so we don't need to lock when modifying
-// `init'. CLASSES is NULL-terminated.
-void
-_Jv_RegisterClasses (jclass *classes)
-{
- static bool init = false;
-
- if (! init)
- {
- init = true;
- _Jv_InitThreads ();
- _Jv_InitGC ();
- _Jv_InitializeSyncMutex ();
- }
-
- JvSynchronize sync (&ClassClass);
- for (; *classes; ++classes)
- {
- jclass klass = *classes;
- jint hash = HASH_UTF (klass->name);
- klass->next = loaded_classes[hash];
- loaded_classes[hash] = klass;
-
- // registering a compiled class causes
- // it to be immediately "prepared".
- if (klass->state == JV_STATE_NOTHING)
- klass->state = JV_STATE_COMPILED;
- }
-}
-
-void
-_Jv_RegisterClass (jclass klass)
-{
- jclass classes[2];
- classes[0] = klass;
- classes[1] = NULL;
- _Jv_RegisterClasses (classes);
-}
-
-jclass
-_Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
-{
- jclass klass = _Jv_FindClassInCache (name, loader);
-
- if (! klass)
- {
- jstring sname = _Jv_NewStringUTF (name->data);
-
- if (loader)
- {
- // Load using a user-defined loader, jvmspec 5.3.2
- klass = loader->loadClass(sname, false);
-
- // If "loader" delegated the loadClass operation to another
- // loader, explicitly register that it is also an initiating
- // loader of the given class.
- if (klass && (klass->getClassLoader () != loader))
- _Jv_RegisterInitiatingLoader (klass, loader);
- }
- else
- {
- java::lang::ClassLoader *sys = java::lang::ClassLoader::system;
- if (sys == NULL)
- {
- _Jv_InitClass (&ClassLoaderClass);
- sys = java::lang::ClassLoader::getSystemClassLoader ();
- }
-
- // Load using the bootstrap loader jvmspec 5.3.1.
- klass = sys->loadClass (sname, false);
-
- // Register that we're an initiating loader.
- if (klass)
- _Jv_RegisterInitiatingLoader (klass, 0);
- }
- }
- else
- {
- // we need classes to be in the hash while
- // we're loading, so that they can refer to themselves.
- _Jv_WaitForState (klass, JV_STATE_LOADED);
- }
-
- return klass;
-}
-
-jclass
-_Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
- java::lang::ClassLoader *loader)
-{
- jclass ret = (jclass) JvAllocObject (&ClassClass);
-
- ret->next = NULL;
- ret->name = name;
- ret->accflags = 0;
- ret->superclass = superclass;
- ret->constants.size = 0;
- ret->constants.tags = NULL;
- ret->constants.data = NULL;
- ret->methods = NULL;
- ret->method_count = 0;
- ret->vtable_method_count = 0;
- ret->fields = NULL;
- ret->size_in_bytes = 0;
- ret->field_count = 0;
- ret->static_field_count = 0;
- ret->vtable = NULL;
- ret->interfaces = NULL;
- ret->loader = loader;
- ret->interface_count = 0;
- ret->state = JV_STATE_NOTHING;
- ret->thread = NULL;
- ret->depth = 0;
- ret->ancestors = NULL;
- ret->idt = NULL;
-
- _Jv_RegisterClass (ret);
-
- return ret;
-}
-
-jclass
-_Jv_FindArrayClass (jclass element, java::lang::ClassLoader *loader,
- _Jv_VTable *array_vtable)
-{
- _Jv_Utf8Const *array_name;
- int len;
- if (element->isPrimitive())
- {
- // For primitive types the array is cached in the class.
- jclass ret = (jclass) element->methods;
- if (ret)
- return ret;
- len = 3;
- }
- else
- len = element->name->length + 5;
-
- {
- char signature[len];
- int index = 0;
- signature[index++] = '[';
- // Compute name of array class to see if we've already cached it.
- if (element->isPrimitive())
- {
- signature[index++] = (char) element->method_count;
- }
- else
- {
- size_t length = element->name->length;
- const char *const name = element->name->data;
- if (name[0] != '[')
- signature[index++] = 'L';
- memcpy (&signature[index], name, length);
- index += length;
- if (name[0] != '[')
- signature[index++] = ';';
- }
- array_name = _Jv_makeUtf8Const (signature, index);
- }
-
- jclass array_class = _Jv_FindClassInCache (array_name, element->loader);
-
- if (! array_class)
- {
- // Create new array class.
- array_class = _Jv_NewClass (array_name, &ObjectClass, element->loader);
-
- // Note that `vtable_method_count' doesn't include the initial
- // NULL slot.
- JvAssert (ObjectClass.vtable_method_count == NUM_OBJECT_METHODS);
- int dm_count = ObjectClass.vtable_method_count + 1;
-
- // Create a new vtable by copying Object's vtable (except the
- // class pointer, of course). Note that we allocate this as
- // unscanned memory -- the vtables are handled specially by the
- // GC.
- int size = (sizeof (_Jv_VTable) +
- ((dm_count - 1) * sizeof (void *)));
- _Jv_VTable *vtable;
- if (array_vtable)
- vtable = array_vtable;
- else
- vtable = (_Jv_VTable *) _Jv_AllocBytes (size);
- vtable->clas = array_class;
- memcpy (vtable->method, ObjectClass.vtable->method,
- dm_count * sizeof (void *));
- array_class->vtable = vtable;
- array_class->vtable_method_count = ObjectClass.vtable_method_count;
-
- // Stash the pointer to the element type.
- array_class->methods = (_Jv_Method *) element;
-
- // Register our interfaces.
- static jclass interfaces[] = { &CloneableClass, &SerializableClass };
- array_class->interfaces = interfaces;
- array_class->interface_count = sizeof interfaces / sizeof interfaces[0];
-
- // Generate the interface dispatch table.
- _Jv_PrepareConstantTimeTables (array_class);
-
- // as per vmspec 5.3.3.2
- array_class->accflags = element->accflags;
-
- // FIXME: initialize other Class instance variables,
- // e.g. `fields'.
-
- // say this class is initialized and ready to go!
- array_class->state = JV_STATE_DONE;
-
- // vmspec, section 5.3.3 describes this
- if (element->loader != loader)
- _Jv_RegisterInitiatingLoader (array_class, loader);
- }
-
- // For primitive types, point back at this array.
- if (element->isPrimitive())
- element->methods = (_Jv_Method *) array_class;
-
- return array_class;
-}
diff --git a/libjava/java/lang/natDouble.cc b/libjava/java/lang/natDouble.cc
deleted file mode 100644
index dc799b2d4b5..00000000000
--- a/libjava/java/lang/natDouble.cc
+++ /dev/null
@@ -1,178 +0,0 @@
-// natDouble.cc - Implementation of java.lang.Double native methods.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <java/lang/String.h>
-#include <java/lang/Double.h>
-#include <java/lang/NumberFormatException.h>
-#include <jvm.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#include "mprec.h"
-
-union u
-{
- jlong l;
- jdouble d;
-};
-
-jlong
-java::lang::Double::doubleToLongBits(jdouble value)
-{
- union u u;
- u.d = value;
-
- jlong e = u.l & 0x7ff0000000000000LL;
- jlong f = u.l & 0x000fffffffffffffLL;
-
- if (e == 0x7ff0000000000000LL && f != 0L)
- u.l = 0x7ff8000000000000LL;
-
- return u.l;
-}
-
-jdouble
-java::lang::Double::longBitsToDouble(jlong bits)
-{
- union u u;
- u.l = bits;
- return u.d;
-}
-
-jstring
-java::lang::Double::toString(jdouble value, jboolean isFloat)
-{
- if (isNaN (value))
- return JvNewStringLatin1 ("NaN", sizeof ("NaN") - 1);
-
- if (value == POSITIVE_INFINITY)
- return JvNewStringLatin1 ("Infinity", sizeof ("Infinity") - 1);
-
- if (value == NEGATIVE_INFINITY)
- return JvNewStringLatin1 ("-Infinity", sizeof ("-Infinity") - 1);
-
- char buffer[50], result[50];
- int decpt, sign;
-
- _dtoa (value, 0, 20, &decpt, &sign, NULL, buffer, (int)isFloat);
-
- value = fabs (value);
-
- char *s = buffer;
- char *d = result;
-
- if (sign)
- *d++ = '-';
-
- if (value >= 1e-3 && value < 1e7 || value == 0)
- {
- if (decpt <= 0)
- *d++ = '0';
- else
- {
- for (int i = 0; i < decpt; i++)
- if (*s)
- *d++ = *s++;
- else
- *d++ = '0';
- }
-
- *d++ = '.';
-
- if (*s == 0)
- {
- *d++ = '0';
- decpt++;
- }
-
- while (decpt++ < 0)
- *d++ = '0';
-
- while (*s)
- *d++ = *s++;
-
- *d = 0;
-
- return JvNewStringLatin1 (result, strlen (result));
- }
-
- *d++ = *s++;
- decpt--;
- *d++ = '.';
-
- if (*s == 0)
- *d++ = '0';
-
- while (*s)
- *d++ = *s++;
-
- *d++ = 'E';
-
- if (decpt < 0)
- {
- *d++ = '-';
- decpt = -decpt;
- }
-
- {
- char exp[4];
- char *e = exp + sizeof exp;
-
- *--e = 0;
- do
- {
- *--e = '0' + decpt % 10;
- decpt /= 10;
- }
- while (decpt > 0);
-
- while (*e)
- *d++ = *e++;
- }
-
- *d = 0;
-
- return JvNewStringLatin1 (result, strlen (result));
-}
-
-jdouble
-java::lang::Double::parseDouble(jstring str)
-{
- int length = str->length();
- // Note that UTF can expand 3x.
-
-#ifdef HAVE_ALLOCA
- char *data = (char *) alloca (3 * length + 1);
-#else
-#error --- need an alternate implementation here ---
-#endif
-
- data[_Jv_GetStringUTFRegion (str, 0, length, data)] = 0;
-
- struct _Jv_reent reent;
- memset (&reent, 0, sizeof reent);
-
- double val = _strtod_r (&reent, data, NULL);
-
- if (reent._errno)
- _Jv_Throw (new NumberFormatException);
-
- return val;
-}
diff --git a/libjava/java/lang/natEcosProcess.cc b/libjava/java/lang/natEcosProcess.cc
deleted file mode 100644
index 9cfb19e702d..00000000000
--- a/libjava/java/lang/natEcosProcess.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// natEcosProcess.cc - Native side of eCos processes.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// The configury system needs this file to exist, since we can't
-// really conditionally link files (an autoconf bug). To avoid having
-// an empty translation unit, we make a single method native. FIXME.
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/lang/ConcreteProcess.h>
-
-void
-java::lang::ConcreteProcess::destroy (void)
-{
-}
diff --git a/libjava/java/lang/natFloat.cc b/libjava/java/lang/natFloat.cc
deleted file mode 100644
index f19a1d597d1..00000000000
--- a/libjava/java/lang/natFloat.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// natFloat.cc - Implementation of java.lang.Float native methods.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <java/lang/Float.h>
-#include <jvm.h>
-
-union u
-{
- jint l;
- jfloat d;
-};
-
-jint
-java::lang::Float::floatToIntBits(jfloat value)
-{
- union u u;
- u.d = value;
- jint e = u.l & 0x7f800000;
- jint f = u.l & 0x007fffff;
-
- if (e == 0x7f800000 && f != 0)
- u.l = 0x7fc00000;
-
- return u.l;
-}
-
-jfloat
-java::lang::Float::intBitsToFloat(jint bits)
-{
- union u u;
- u.l = bits;
- return u.d;
-}
-
diff --git a/libjava/java/lang/natMath.cc b/libjava/java/lang/natMath.cc
deleted file mode 100644
index 8e2f644e7c9..00000000000
--- a/libjava/java/lang/natMath.cc
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date Tue Sep 22 1998 */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-#include <config.h>
-
-#include <java/lang/String.h>
-#include <java/lang/Float.h>
-#include <java/lang/Double.h>
-#include <java/lang/Integer.h>
-#include <java/lang/Long.h>
-#include <java/lang/Math.h>
-#include <gcj/array.h>
-
-#include "fdlibm.h"
-
-jdouble java::lang::Math::cos(jdouble x)
-{
- return (jdouble)::cos((double)x);
-}
-
-jdouble java::lang::Math::sin(jdouble x)
-{
- return (jdouble)::sin((double)x);
-}
-
-jdouble java::lang::Math::tan(jdouble x)
-{
- return (jdouble)::tan((double)x);
-}
-
-jdouble java::lang::Math::asin(jdouble x)
-{
- return (jdouble)::asin((double)x);
-}
-
-jdouble java::lang::Math::acos(jdouble x)
-{
- return (jdouble)::acos((double)x);
-}
-
-jdouble java::lang::Math::atan(jdouble x)
-{
- return (jdouble)::atan((double)x);
-}
-
-jdouble java::lang::Math::atan2(jdouble y, jdouble x)
-{
- return (jdouble)::atan2((double)y, (double)x);
-}
-
-jdouble java::lang::Math::log(jdouble x)
-{
- return (jdouble)::log((double)x);
-}
-
-jdouble java::lang::Math::exp(jdouble x)
-{
- return (jdouble)::exp((double)x);
-}
-
-jdouble java::lang::Math::sqrt(jdouble x)
-{
- return (jdouble)::sqrt((double)x);
-}
-
-jdouble java::lang::Math::pow(jdouble y, jdouble x)
-{
- return (jdouble)::pow((double)y, (double)x);
-}
-
-jdouble java::lang::Math::IEEEremainder(jdouble y, jdouble x)
-{
- return (jdouble)::__ieee754_remainder((double)y, (double)x);
-}
-
-jdouble java::lang::Math::abs(jdouble x)
-{
- return (jdouble)::fabs((double)x);
-}
-
-jfloat java::lang::Math::abs(jfloat x)
-{
- return (jfloat)::fabsf((float)x);
-}
-
-jdouble java::lang::Math::rint(jdouble x)
-{
- return (jdouble)::rint((double)x);
-}
-
-jint java::lang::Math::round(jfloat x)
-{
- if (x != x)
- return 0;
- if (x <= (jfloat)java::lang::Integer::MIN_VALUE)
- return java::lang::Integer::MIN_VALUE;
- if (x >= (jfloat)java::lang::Integer::MAX_VALUE)
- return java::lang::Integer::MAX_VALUE;
-
- return (jint)::rintf((float)x);
-}
-
-jlong java::lang::Math::round(jdouble x)
-{
- if (x != x)
- return 0;
- if (x <= (jdouble)java::lang::Long::MIN_VALUE)
- return java::lang::Long::MIN_VALUE;
- if (x >= (jdouble)java::lang::Long::MAX_VALUE)
- return java::lang::Long::MAX_VALUE;
-
- return (jlong)::rint((double)x);
-}
-
-jdouble java::lang::Math::floor(jdouble x)
-{
- return (jdouble)::floor((double)x);
-}
-
-jdouble java::lang::Math::ceil(jdouble x)
-{
- return (jdouble)::ceil((double)x);
-}
-
-static inline int
-floatToIntBits (jfloat value)
-{
- union {
- jint l;
- jfloat d;
- } u;
- u.d = value;
- return u.l;
-}
-
-static inline bool
-isNaN (jint bits)
-{
- jint e = bits & 0x7f800000;
- jint f = bits & 0x007fffff;
-
- return e == 0x7f800000 && f != 0;
-}
-
-jfloat
-java::lang::Math::min(jfloat a, jfloat b)
-{
- jint abits = floatToIntBits (a);
- jint bbits = floatToIntBits (b);
-
- if (isNaN (abits) || isNaN (bbits))
- return java::lang::Float::NaN;
-
- if (abits >= 0) // a is +ve
- return bbits < 0 ? b // a is +ve, b is -ve.
- // a and b are both +ve, so compare magnitudes: the number with
- // the smallest magnitude is the smallest
- : (abits < bbits ? a : b);
- else // a is -ve
- return bbits >= 0 ? a // a is -ve, b is +ve.
- // a and b are both -ve, so compare magnitudes: the number with
- // the biggest magnitude is the smallest
- : (abits > bbits ? a : b);
-}
-
-jfloat
-java::lang::Math::max(jfloat a, jfloat b)
-{
- jint abits = floatToIntBits (a);
- jint bbits = floatToIntBits (b);
-
- if (isNaN (abits) || isNaN (bbits))
- return java::lang::Float::NaN;
-
- if (abits >= 0) // a is +ve
- return bbits < 0 ? a // a is +ve, b is -ve.
- // a and b are both +ve, so compare magnitudes: the number with
- // the smallest magnitude is the smallest
- : (abits > bbits ? a : b);
- else // a is -ve
- return bbits >= 0 ? b // a is -ve, b is +ve.
- // a and b are both -ve, so compare magnitudes: the number with
- // the biggest magnitude is the smallest
- : (abits < bbits ? a : b);
-}
-
-static inline jlong
-doubleToLongBits (jdouble value)
-{
- union {
- jlong l;
- jdouble d;
- } u;
- u.d = value;
- return u.l;
-}
-
-static inline bool
-isNaN (jlong bits)
-{
- jlong e = bits & 0x7ff0000000000000LL;
- jlong f = bits & 0x000fffffffffffffLL;
-
- return e == 0x7ff0000000000000LL && f != 0LL;
-}
-
-
-jdouble
-java::lang::Math::min(jdouble a, jdouble b)
-{
- jlong abits = doubleToLongBits (a);
- jlong bbits = doubleToLongBits (b);
-
- if (isNaN (abits) || isNaN (bbits))
- return java::lang::Double::NaN;
-
- if (abits >= 0LL) // a is +ve
- return bbits < 0LL ? b // a is +ve, b is -ve.
- // a and b are both +ve, so compare magnitudes: the number with
- // the smallest magnitude is the smallest
- : (abits < bbits ? a : b);
- else // a is -ve
- return bbits >= 0LL ? a // a is -ve, b is +ve.
- // a and b are both -ve, so compare magnitudes: the number with
- // the biggest magnitude is the smallest
- : (abits > bbits ? a : b);
-}
-
-jdouble
-java::lang::Math::max(jdouble a, jdouble b)
-{
- jlong abits = doubleToLongBits (a);
- jlong bbits = doubleToLongBits (b);
-
- if (isNaN (abits) || isNaN (bbits))
- return java::lang::Double::NaN;
-
- if (abits >= 0LL) // a is +ve
- return bbits < 0LL ? a // a is +ve, b is -ve.
- // a and b are both +ve, so compare magnitudes: the number with
- // the smallest magnitude is the smallest
- : (abits > bbits ? a : b);
- else // a is -ve
- return bbits >= 0LL ? b // a is -ve, b is +ve.
- // a and b are both -ve, so compare magnitudes: the number with
- // the biggest magnitude is the smallest
- : (abits < bbits ? a : b);
-}
-
diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc
deleted file mode 100644
index 26b3f96844d..00000000000
--- a/libjava/java/lang/natObject.cc
+++ /dev/null
@@ -1,261 +0,0 @@
-// natObject.cc - Implementation of the Object class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <string.h>
-
-#pragma implementation "Object.h"
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Object.h>
-#include <java-threads.h>
-#include <java-signal.h>
-#include <java/lang/CloneNotSupportedException.h>
-#include <java/lang/IllegalArgumentException.h>
-#include <java/lang/IllegalMonitorStateException.h>
-#include <java/lang/InterruptedException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/Class.h>
-#include <java/lang/Cloneable.h>
-#include <java/lang/Thread.h>
-
-#define CloneableClass _CL_Q34java4lang9Cloneable
-extern java::lang::Class CloneableClass;
-
-
-
-// This is used to represent synchronization information.
-struct _Jv_SyncInfo
-{
-#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
- // We only need to keep track of initialization state if we can
- // possibly finalize this object.
- bool init;
-#endif
- _Jv_ConditionVariable_t condition;
- _Jv_Mutex_t mutex;
-};
-
-
-
-jclass
-java::lang::Object::getClass (void)
-{
- _Jv_VTable **dt = (_Jv_VTable **) this;
- return (*dt)->clas;
-}
-
-jint
-java::lang::Object::hashCode (void)
-{
- return _Jv_HashCode (this);
-}
-
-jobject
-java::lang::Object::clone (void)
-{
- jclass klass = getClass ();
- jobject r;
- jint size;
-
- // We also clone arrays here. If we put the array code into
- // __JArray, then we'd have to figure out a way to find the array
- // vtbl when creating a new array class. This is easier, if uglier.
- if (klass->isArray())
- {
- __JArray *array = (__JArray *) this;
- jclass comp = getClass()->getComponentType();
- jint eltsize;
- if (comp->isPrimitive())
- {
- r = _Jv_NewPrimArray (comp, array->length);
- eltsize = comp->size();
- }
- else
- {
- r = _Jv_NewObjectArray (array->length, comp, NULL);
- eltsize = sizeof (jobject);
- }
- // We can't use sizeof on __JArray because we must account for
- // alignment of the element type.
- size = (_Jv_GetArrayElementFromElementType (array, comp) - (char *) array
- + array->length * eltsize);
- }
- else
- {
- if (! CloneableClass.isAssignableFrom(klass))
- JvThrow (new CloneNotSupportedException);
-
- size = klass->size();
- r = JvAllocObject (klass, size);
- }
-
- memcpy ((void *) r, (void *) this, size);
- return r;
-}
-
-
-//
-// Synchronization code.
-//
-
-// This global is used to make sure that only one thread sets an
-// object's `sync_info' field.
-static _Jv_Mutex_t sync_mutex;
-
-// This macro is used to see if synchronization initialization is
-// needed.
-#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
-# define INIT_NEEDED(Obj) (! (Obj)->sync_info \
- || ! ((_Jv_SyncInfo *) ((Obj)->sync_info))->init)
-#else
-# define INIT_NEEDED(Obj) (! (Obj)->sync_info)
-#endif
-
-#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
-// If we have to run a destructor for a sync_info member, then this
-// function is registered as a finalizer for the sync_info.
-static void
-finalize_sync_info (jobject obj)
-{
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj;
-#if defined (_Jv_HaveCondDestroy)
- _Jv_CondDestroy (&si->condition);
-#endif
-#if defined (_Jv_HaveMutexDestroy)
- _Jv_MutexDestroy (&si->mutex);
-#endif
- si->init = false;
-}
-#endif
-
-// This is called to initialize the sync_info element of an object.
-void
-java::lang::Object::sync_init (void)
-{
- _Jv_MutexLock (&sync_mutex);
- // Check again to see if initialization is needed now that we have
- // the lock.
- if (INIT_NEEDED (this))
- {
- // We assume there are no pointers in the sync_info
- // representation.
- _Jv_SyncInfo *si;
- // We always create a new sync_info, even if there is already
- // one available. Any given object can only be finalized once.
- // If we get here and sync_info is not null, then it has already
- // been finalized. So if we just reinitialize the old one,
- // we'll never be able to (re-)destroy the mutex and/or
- // condition variable.
- si = (_Jv_SyncInfo *) _Jv_AllocBytesChecked (sizeof (_Jv_SyncInfo));
- _Jv_MutexInit (&si->mutex);
- _Jv_CondInit (&si->condition);
-#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
- // Register a finalizer.
- si->init = true;
- _Jv_RegisterFinalizer (si, finalize_sync_info);
-#endif
- sync_info = (jobject) si;
- }
- _Jv_MutexUnlock (&sync_mutex);
-}
-
-void
-java::lang::Object::notify (void)
-{
- if (__builtin_expect (INIT_NEEDED (this), false))
- sync_init ();
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
- if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), false))
- JvThrow (new IllegalMonitorStateException(JvNewStringLatin1
- ("current thread not owner")));
-}
-
-void
-java::lang::Object::notifyAll (void)
-{
- if (__builtin_expect (INIT_NEEDED (this), false))
- sync_init ();
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
- if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), false))
- JvThrow (new IllegalMonitorStateException(JvNewStringLatin1
- ("current thread not owner")));
-}
-
-void
-java::lang::Object::wait (jlong timeout, jint nanos)
-{
- if (__builtin_expect (INIT_NEEDED (this), false))
- sync_init ();
- if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false))
- JvThrow (new IllegalArgumentException);
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
- switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos))
- {
- case _JV_NOT_OWNER:
- JvThrow (new IllegalMonitorStateException (JvNewStringLatin1
- ("current thread not owner")));
- case _JV_INTERRUPTED:
- if (Thread::interrupted ())
- JvThrow (new InterruptedException);
- }
-}
-
-//
-// Some runtime code.
-//
-
-// This function is called at system startup to initialize the
-// `sync_mutex'.
-void
-_Jv_InitializeSyncMutex (void)
-{
- _Jv_MutexInit (&sync_mutex);
-}
-
-jint
-_Jv_MonitorEnter (jobject obj)
-{
-#ifndef HANDLE_SEGV
- if (__builtin_expect (! obj, false))
- JvThrow (new java::lang::NullPointerException);
-#endif
- if (__builtin_expect (INIT_NEEDED (obj), false))
- obj->sync_init ();
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
- return _Jv_MutexLock (&si->mutex);
-}
-
-jint
-_Jv_MonitorExit (jobject obj)
-{
- JvAssert (obj);
- JvAssert (! INIT_NEEDED (obj));
- _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
- if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), false))
- JvThrow (new java::lang::IllegalMonitorStateException);
- return 0;
-}
-
-void
-_Jv_FinalizeObject (jobject obj)
-{
- // Ignore exceptions. From section 12.6 of the Java Language Spec.
- try
- {
- obj->finalize ();
- }
- catch (java::lang::Throwable *t)
- {
- // Ignore.
- }
-}
diff --git a/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc
deleted file mode 100644
index 0582bd1e82b..00000000000
--- a/libjava/java/lang/natPosixProcess.cc
+++ /dev/null
@@ -1,292 +0,0 @@
-// natPosixProcess.cc - Native side of POSIX process code.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/lang/ConcreteProcess.h>
-#include <java/lang/IllegalThreadStateException.h>
-#include <java/lang/InterruptedException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/Thread.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/FileInputStream.h>
-#include <java/io/FileOutputStream.h>
-#include <java/io/IOException.h>
-#include <java/lang/OutOfMemoryError.h>
-
-extern char **environ;
-
-void
-java::lang::ConcreteProcess::destroy (void)
-{
- if (! hasExited)
- {
- // Really kill it.
- kill ((pid_t) pid, SIGKILL);
- }
-}
-
-jint
-java::lang::ConcreteProcess::exitValue (void)
-{
- if (! hasExited)
- {
- int wstat;
- pid_t r = waitpid ((pid_t) pid, &wstat, WNOHANG);
- if (r == -1)
- {
- jstring x = JvNewStringLatin1 (strerror (errno));
- _Jv_Throw (new IllegalThreadStateException (x));
- }
-
- hasExited = true;
- // Just use the raw status. FIXME: what is right?
- status = wstat;
- }
-
- return status;
-}
-
-jint
-java::lang::ConcreteProcess::waitFor (void)
-{
- if (! hasExited)
- {
- int wstat;
- int r = waitpid ((pid_t) pid, &wstat, 0);
-
- if (r != -1)
- {
- hasExited = true;
- // Just use the raw status. FIXME: what is right?
- status = wstat;
- }
-
- if (java::lang::Thread::interrupted())
- _Jv_Throw (new InterruptedException (JvNewStringLatin1 ("wait interrupted")));
- }
-
- return status;
-}
-
-static char *
-new_string (jstring string)
-{
- jsize s = _Jv_GetStringUTFLength (string);
- char *buf = (char *) _Jv_Malloc (s + 1);
- _Jv_GetStringUTFRegion (string, 0, s, buf);
- buf[s] = '\0';
- return buf;
-}
-
-static void
-cleanup (char **args, char **env)
-{
- if (args != NULL)
- {
- for (int i = 0; args[i] != NULL; ++i)
- _Jv_Free (args[i]);
- _Jv_Free (args);
- }
- if (env != NULL)
- {
- for (int i = 0; env[i] != NULL; ++i)
- _Jv_Free (env[i]);
- _Jv_Free (env);
- }
-}
-
-static void
-fail (int error_value, char **args, char **env,
- int *one = NULL, int *two = NULL,
- int *three = NULL, int *four = NULL,
- java::lang::Throwable *t = NULL)
-{
- cleanup (args, env);
- if (one != NULL)
- {
- close (one[0]);
- close (one[1]);
- }
- if (two != NULL)
- {
- close (two[0]);
- close (two[1]);
- }
- if (three != NULL)
- {
- close (three[0]);
- close (three[1]);
- }
- if (four != NULL)
- {
- close (four[0]);
- close (four[1]);
- }
- if (t == NULL)
- t = new java::io::IOException (JvNewStringLatin1 (strerror (error_value)));
- throw t;
-}
-
-void
-java::lang::ConcreteProcess::startProcess (jstringArray progarray,
- jstringArray envp)
-{
- using namespace java::io;
-
- hasExited = false;
-
- if (! progarray)
- throw new NullPointerException;
-
- // Transform arrays to native form.
- char **args = (char **) _Jv_Malloc ((progarray->length + 1)
- * sizeof (char *));
- char **env = NULL;
-
- // Initialize so we can gracefully recover.
- jstring *elts = elements (progarray);
- for (int i = 0; i <= progarray->length; ++i)
- args[i] = NULL;
-
- try
- {
- for (int i = 0; i < progarray->length; ++i)
- args[i] = new_string (elts[i]);
- args[progarray->length] = NULL;
-
- if (envp)
- {
- env = (char **) _Jv_Malloc ((envp->length + 1) * sizeof (char *));
- elts = elements (envp);
-
- // Initialize so we can gracefully recover.
- for (int i = 0; i <= envp->length; ++i)
- env[i] = NULL;
-
- for (int i = 0; i < envp->length; ++i)
- env[i] = new_string (elts[i]);
- env[envp->length] = NULL;
- }
- }
- catch (java::lang::OutOfMemoryError *oome)
- {
- fail (0, args, env, NULL, NULL, NULL, NULL, oome);
- throw oome;
- }
-
- // Create pipes for I/O. MSGP is for communicating exec() status.
- int inp[2], outp[2], errp[2], msgp[2];
-
- if (pipe (inp))
- fail (errno, args, env);
- if (pipe (outp))
- fail (errno, args, env, inp);
- if (pipe (errp))
- fail (errno, args, env, inp, outp);
- if (pipe (msgp))
- fail (errno, args, env, inp, outp, errp);
- if (fcntl (msgp[1], F_SETFD, FD_CLOEXEC))
- fail (errno, args, env, inp, outp, errp, msgp);
-
- // We create the streams before forking. Otherwise if we had an
- // error while creating the streams we would have run the child with
- // no way to communicate with it.
- try
- {
- errorStream = new FileInputStream (new FileDescriptor (errp[0]));
- inputStream = new FileInputStream (new FileDescriptor (inp[0]));
- outputStream = new FileOutputStream (new FileDescriptor (outp[1]));
- }
- catch (java::lang::Throwable *t)
- {
- fail (0, args, env, inp, outp, errp, msgp, t);
- }
-
- // We don't use vfork() because that would cause the local
- // environment to be set by the child.
- if ((pid = (jlong) fork ()) == -1)
- fail (errno, args, env, inp, outp, errp, msgp);
-
- if (pid == 0)
- {
- // Child process, so remap descriptors and exec.
-
- if (envp)
- {
- // preserve PATH unless specified explicitly
- char *path_val = getenv ("PATH");
- environ = env;
- if (getenv ("PATH") == NULL)
- {
- char *path_env = (char *) _Jv_Malloc (strlen (path_val) + 5 + 1);
- strcpy (path_env, "PATH=");
- strcat (path_env, path_val);
- putenv (path_env);
- }
- }
-
- // We ignore errors from dup2 because they should never occur.
- dup2 (outp[0], 0);
- dup2 (inp[1], 1);
- dup2 (errp[1], 2);
-
- close (inp[0]);
- close (inp[1]);
- close (errp[0]);
- close (errp[1]);
- close (outp[0]);
- close (outp[1]);
- close (msgp[0]);
-
- execvp (args[0], args);
-
- // Send the parent notification that the exec failed.
- char c = errno;
- write (msgp[1], &c, 1);
- _exit (127);
- }
-
- // Parent. Close extra file descriptors and mark ours as
- // close-on-exec.
- close (outp[0]);
- close (inp[1]);
- close (errp[1]);
- close (msgp[1]);
-
- char c;
- int r = read (msgp[0], &c, 1);
- if (r == -1)
- fail (errno, args, env, inp, outp, errp, msgp);
- else if (r != 0)
- fail (c, args, env, inp, outp, errp, msgp);
-
- close (msgp[0]);
- cleanup (args, env);
-
- fcntl (outp[1], F_SETFD, 1);
- fcntl (inp[0], F_SETFD, 1);
- fcntl (errp[0], F_SETFD, 1);
-}
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
deleted file mode 100644
index 5ff7d2edacf..00000000000
--- a/libjava/java/lang/natRuntime.cc
+++ /dev/null
@@ -1,214 +0,0 @@
-// natRuntime.cc - Implementation of native side of Runtime class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Runtime.h>
-#include <java/lang/UnknownError.h>
-#include <java/lang/UnsatisfiedLinkError.h>
-#include <gnu/gcj/runtime/FileDeleter.h>
-
-#include <jni.h>
-
-#ifdef USE_LTDL
-#include <ltdl.h>
-
-/* FIXME: we don't always need this. The next libtool will let us use
- AC_LTDL_PREOPEN to see if we do. */
-extern const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } };
-
-// We keep track of all the libraries loaded by this application. For
-// now we use them to look up symbols for JNI. `libraries_size' holds
-// the total size of the buffer. `libraries_count' is the number of
-// items which are in use.
-static int libraries_size;
-static int libraries_count;
-static lt_dlhandle *libraries;
-
-static void
-add_library (lt_dlhandle lib)
-{
- if (libraries_count == libraries_size)
- {
- int ns = libraries_size * 2;
- if (ns == 0)
- ns = 10;
- lt_dlhandle *n = (lt_dlhandle *) _Jv_Malloc (ns * sizeof (lt_dlhandle));
- if (libraries)
- {
- memcpy (n, libraries, libraries_size * sizeof (lt_dlhandle));
- _Jv_Free (libraries);
- }
- libraries = n;
- libraries_size = ns;
- for (int i = libraries_count; i < libraries_size; ++i)
- libraries[i] = NULL;
- }
-
- libraries[libraries_count++] = lib;
-}
-
-void *
-_Jv_FindSymbolInExecutable (const char *symname)
-{
- for (int i = 0; i < libraries_count; ++i)
- {
- void *r = lt_dlsym (libraries[i], symname);
- if (r)
- return r;
- }
-
- return lt_dlsym (NULL, symname);
-}
-
-#endif /* USE_LTDL */
-
-void
-java::lang::Runtime::exit (jint status)
-{
- checkExit (status);
-
- // Make status right for Unix. This is perhaps strange.
- if (status < 0 || status > 255)
- status = 255;
-
- if (finalize_on_exit)
- _Jv_RunAllFinalizers ();
-
- // Delete all files registered with File.deleteOnExit()
- gnu::gcj::runtime::FileDeleter::deleteOnExitNow ();
-
- ::exit (status);
-}
-
-jlong
-java::lang::Runtime::freeMemory (void)
-{
- return _Jv_GCFreeMemory ();
-}
-
-void
-java::lang::Runtime::gc (void)
-{
- _Jv_RunGC ();
-}
-
-void
-java::lang::Runtime::_load (jstring path, jboolean do_search)
-{
- JvSynchronize sync (this);
- checkLink (path);
- using namespace java::lang;
-#ifdef USE_LTDL
- jint len = _Jv_GetStringUTFLength (path);
- char buf[len + 1 + 3];
- int offset = 0;
-#ifndef WIN32
- // On Unix boxes, prefix library name with `lib', for loadLibrary.
- if (do_search)
- {
- strcpy (buf, "lib");
- offset = 3;
- }
-#endif
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), &buf[offset]);
- buf[offset + total] = '\0';
- // FIXME: make sure path is absolute.
- lt_dlhandle h = do_search ? lt_dlopenext (buf) : lt_dlopen (buf);
- if (h == NULL)
- {
- const char *msg = lt_dlerror ();
- jstring str = path->concat (JvNewStringLatin1 (": "));
- str = str->concat (JvNewStringLatin1 (msg));
- _Jv_Throw (new UnsatisfiedLinkError (str));
- }
-
- add_library (h);
-
- void *onload = lt_dlsym (h, "JNI_OnLoad");
- if (onload != NULL)
- {
- JavaVM *vm = _Jv_GetJavaVM ();
- if (vm == NULL)
- {
- // FIXME: what?
- return;
- }
- jint vers = ((jint (*) (JavaVM *, void *)) onload) (vm, NULL);
- if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2)
- {
- // FIXME: unload the library.
- _Jv_Throw (new UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from JNI_OnLoad")));
- }
- }
-#else
- _Jv_Throw (new UnknownError
- (JvNewStringLatin1 (do_search
- ? "Runtime.loadLibrary not implemented"
- : "Runtime.load not implemented")));
-#endif /* USE_LTDL */
-}
-
-jboolean
-java::lang::Runtime::loadLibraryInternal (jstring lib)
-{
- JvSynchronize sync (this);
- using namespace java::lang;
-#ifdef USE_LTDL
- jint len = _Jv_GetStringUTFLength (lib);
- char buf[len + 1];
- jsize total = JvGetStringUTFRegion (lib, 0, lib->length(), buf);
- buf[total] = '\0';
- // FIXME: make sure path is absolute.
- lt_dlhandle h = lt_dlopenext (buf);
- if (h != NULL)
- add_library (h);
- return h != NULL;
-#else
- return false;
-#endif /* USE_LTDL */
-}
-
-void
-java::lang::Runtime::init (void)
-{
- finalize_on_exit = false;
-#ifdef USE_LTDL
- lt_dlinit ();
-#endif
-}
-
-void
-java::lang::Runtime::runFinalization (void)
-{
- _Jv_RunFinalizers ();
-}
-
-jlong
-java::lang::Runtime::totalMemory (void)
-{
- return _Jv_GCTotalMemory ();
-}
-
-void
-java::lang::Runtime::traceInstructions (jboolean)
-{
- // Do nothing.
-}
-
-void
-java::lang::Runtime::traceMethodCalls (jboolean)
-{
- // Do nothing.
-}
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
deleted file mode 100644
index 5a28c1eee64..00000000000
--- a/libjava/java/lang/natString.cc
+++ /dev/null
@@ -1,851 +0,0 @@
-// natString.cc - Implementation of java.lang.String native methods.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <java/lang/Character.h>
-#include <java/lang/String.h>
-#include <java/lang/IndexOutOfBoundsException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/StringIndexOutOfBoundsException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/io/ByteArrayOutputStream.h>
-#include <java/io/OutputStreamWriter.h>
-#include <java/io/ByteArrayInputStream.h>
-#include <java/io/InputStreamReader.h>
-#include <gnu/gcj/convert/UnicodeToBytes.h>
-#include <gnu/gcj/convert/BytesToUnicode.h>
-#include <jvm.h>
-
-static jstring* strhash = NULL;
-static int strhash_count = 0; /* Number of slots used in strhash. */
-static int strhash_size = 0; /* Number of slots available in strhash.
- * Assumed be power of 2! */
-
-#define DELETED_STRING ((jstring)(~0))
-#define SET_STRING_IS_INTERNED(STR) /* nothing */
-
-/* Find a slot where the string with elements DATA, length LEN,
- and hash HASH should go in the strhash table of interned strings. */
-jstring*
-_Jv_StringFindSlot (jchar* data, jint len, jint hash)
-{
- JvSynchronize sync (&StringClass);
-
- int start_index = hash & (strhash_size - 1);
- int deleted_index = -1;
-
- int index = start_index;
- /* step must be non-zero, and relatively prime with strhash_size. */
- int step = 8 * hash + 7;
- for (;;)
- {
- jstring* ptr = &strhash[index];
- if (*ptr == NULL)
- {
- if (deleted_index >= 0)
- return (&strhash[deleted_index]);
- else
- return ptr;
- }
- else if (*ptr == DELETED_STRING)
- deleted_index = index;
- else if ((*ptr)->length() == len
- && memcmp(JvGetStringChars(*ptr), data, 2*len) == 0)
- return (ptr);
- index = (index + step) & (strhash_size - 1);
- JvAssert (index != start_index);
- }
-}
-
-/* Calculate a hash code for the string starting at PTR at given LENGTH.
- This uses the same formula as specified for java.lang.String.hash. */
-
-static jint
-hashChars (jchar* ptr, jint length)
-{
- jchar* limit = ptr + length;
- jint hash = 0;
- // Updated specification from
- // http://www.javasoft.com/docs/books/jls/clarify.html.
- while (ptr < limit)
- hash = (31 * hash) + *ptr++;
- return hash;
-}
-
-jint
-java::lang::String::hashCode()
-{
- return hashChars(JvGetStringChars(this), length());
-}
-
-jstring*
-_Jv_StringGetSlot (jstring str)
-{
- jchar* data = JvGetStringChars(str);
- int length = str->length();
- return _Jv_StringFindSlot(data, length, hashChars (data, length));
-}
-
-void
-java::lang::String::rehash()
-{
- JvSynchronize sync (&StringClass);
-
- if (strhash == NULL)
- {
- strhash_size = 1024;
- strhash = (jstring *) _Jv_AllocBytes (strhash_size * sizeof (jstring));
- memset (strhash, 0, strhash_size * sizeof (jstring));
- }
- else
- {
- int i = strhash_size;
- jstring* ptr = strhash + i;
- strhash_size *= 2;
- strhash = (jstring *) _Jv_AllocBytes (strhash_size * sizeof (jstring));
- memset (strhash, 0, strhash_size * sizeof (jstring));
-
- while (--i >= 0)
- {
- --ptr;
- if (*ptr == NULL || *ptr == DELETED_STRING)
- continue;
-
- /* This is faster equivalent of
- * *__JvGetInternSlot(*ptr) = *ptr; */
- jint hash = (*ptr)->hashCode();
- jint index = hash & (strhash_size - 1);
- jint step = 8 * hash + 7;
- for (;;)
- {
- if (strhash[index] == NULL)
- {
- strhash[index] = *ptr;
- break;
- }
- index = (index + step) & (strhash_size - 1);
- }
- }
- }
-}
-
-jstring
-java::lang::String::intern()
-{
- JvSynchronize sync (&StringClass);
- if (4 * strhash_count >= 3 * strhash_size)
- rehash();
- jstring* ptr = _Jv_StringGetSlot(this);
- if (*ptr != NULL && *ptr != DELETED_STRING)
- return *ptr;
- SET_STRING_IS_INTERNED(this);
- strhash_count++;
- *ptr = this;
- // When string is GC'd, clear the slot in the hash table.
- // _Jv_RegisterFinalizer ((void *) this, unintern);
- return this;
-}
-
-/* Called by String fake finalizer. */
-void
-java::lang::String::unintern (jobject obj)
-{
- JvSynchronize sync (&StringClass);
- jstring str = reinterpret_cast<jstring> (obj);
- jstring* ptr = _Jv_StringGetSlot(str);
- if (*ptr == NULL || *ptr == DELETED_STRING)
- return;
- *ptr = DELETED_STRING;
- strhash_count--;
-}
-
-jstring
-_Jv_NewStringUTF (const char *bytes)
-{
- int size = strlen (bytes);
- unsigned char *p = (unsigned char *) bytes;
-
- int length = _Jv_strLengthUtf8 ((char *) p, size);
- if (length < 0)
- return NULL;
-
- jstring jstr = JvAllocString (length);
- jchar *chrs = JvGetStringChars (jstr);
-
- p = (unsigned char *) bytes;
- unsigned char *limit = p + size;
- while (p < limit)
- *chrs++ = UTF8_GET (p, limit);
-
- return jstr;
-}
-
-jstring
-_Jv_NewStringUtf8Const (Utf8Const* str)
-{
- jchar *chrs;
- jchar buffer[100];
- jstring jstr;
- unsigned char* data = (unsigned char*) str->data;
- unsigned char* limit = data + str->length;
- int length = _Jv_strLengthUtf8(str->data, str->length);
-
- if (length <= (int) (sizeof(buffer) / sizeof(jchar)))
- {
- jstr = NULL;
- chrs = buffer;
- }
- else
- {
- jstr = JvAllocString(length);
- chrs = JvGetStringChars(jstr);
- }
-
- while (data < limit)
- *chrs++ = UTF8_GET(data, limit);
- chrs -= length;
-
- JvSynchronize sync (&StringClass);
- if (4 * strhash_count >= 3 * strhash_size)
- java::lang::String::rehash();
- int hash = str->hash;
- jstring* ptr = _Jv_StringFindSlot (chrs, length, hash);
- if (*ptr != NULL && *ptr != DELETED_STRING)
- return *ptr;
- strhash_count++;
- if (jstr == NULL)
- {
- jstr = JvAllocString(length);
- chrs = JvGetStringChars(jstr);
- memcpy (chrs, buffer, sizeof(jchar)*length);
- }
- *ptr = jstr;
- SET_STRING_IS_INTERNED(jstr);
- return jstr;
-}
-
-jsize
-_Jv_GetStringUTFLength (jstring string)
-{
- jsize len = 0;
- jchar *ptr = JvGetStringChars (string);
- jsize i = string->length();
- while (--i >= 0)
- {
- jchar ch = *ptr++;
- if (ch > 0 && ch <= 0x7F)
- len += 1;
- else if (ch <= 0x7FF)
- len += 2;
- else
- len += 3;
- }
- return len;
-}
-
-// Not sure this quite matches GetStringUTFRegion.
-// null-termination of result? len? throw exception?
-jsize
-_Jv_GetStringUTFRegion (jstring str, jsize start, jsize len, char *buf)
-{
- jchar *sptr = JvGetStringChars (str) + start;
- jsize i = len;
- char *dptr = buf;
- while (--i >= 0)
- {
- jchar ch = *sptr++;
- if (ch > 0 && ch <= 0x7F)
- *dptr++ = (char) ch;
- else if (ch <= 0x7FF)
- {
- *dptr++ = (char) (0xC0 + ((ch >> 6) & 0x1F));
- *dptr++ = (char) (0x80 + (ch & 0x3F));
- }
- else
- {
- *dptr++ = (char) (0xE0 + ((ch >> 12) & 0xF));
- *dptr++ = (char) (0x80 + ((ch >> 6) & 0x3F));
- *dptr++ = (char) (0x80 + (ch & 0x3F));
- }
- }
- return dptr - buf;
-}
-
-jstring
-_Jv_AllocString(jsize len)
-{
- jsize sz = sizeof(java::lang::String) + len * sizeof(jchar);
-
- jstring obj = (jstring) JvAllocObject(&StringClass, sz);
-
- obj->data = obj;
- obj->boffset = sizeof(java::lang::String);
- obj->count = len;
- return obj;
-}
-
-jstring
-_Jv_NewString(const jchar *chars, jsize len)
-{
- jstring str = _Jv_AllocString(len);
- jchar* data = JvGetStringChars (str);
- while (--len >= 0)
- *data++ = *chars++;
- return str;
-}
-
-jstring
-_Jv_NewStringLatin1(const char *bytes, jsize len)
-{
- jstring str = JvAllocString(len);
- jchar* data = JvGetStringChars (str);
- while (--len >= 0)
- *data++ = *(unsigned char*)bytes++;
- return str;
-}
-
-void
-java::lang::String::init ()
-{
- count = 0;
- boffset = sizeof(java::lang::String);
- data = this;
-}
-
-void
-java::lang::String::init(jcharArray chars, jint offset, jint count,
- jboolean dont_copy)
-{
- if (! chars)
- JvThrow (new NullPointerException);
- jsize data_size = JvGetArrayLength (chars);
- if (offset < 0 || count < 0 || offset + count < 0
- || offset + count > data_size)
- JvThrow (new StringIndexOutOfBoundsException());
- jcharArray array;
- jchar *pdst;
- if (! dont_copy)
- {
- array = JvNewCharArray(count);
- pdst = elements (array);
- memcpy (pdst, elements (chars) + offset, count * sizeof (jchar));
- }
- else
- {
- JvAssert (offset == 0);
- array = chars;
- pdst = elements (array);
- }
-
- data = array;
- boffset = (char *) pdst - (char *) array;
- this->count = count;
-}
-
-void
-java::lang::String::init(jbyteArray ascii, jint hibyte, jint offset,
- jint count)
-{
- if (! ascii)
- JvThrow (new NullPointerException);
- jsize data_size = JvGetArrayLength (ascii);
- if (offset < 0 || count < 0 || offset + count < 0
- || offset + count > data_size)
- JvThrow (new java::lang::StringIndexOutOfBoundsException());
- jcharArray array = JvNewCharArray(count);
- jbyte *psrc = elements (ascii) + offset;
- jchar *pdst = elements (array);
- data = array;
- boffset = (char *) pdst - (char *) array;
- this->count = count;
- hibyte = (hibyte & 0xff) << 8;
- while (-- count >= 0)
- {
- *pdst++ = hibyte | (*psrc++ & 0xff);
- }
-}
-
-void
-java::lang::String::init (jbyteArray bytes, jint offset, jint count,
- jstring encoding)
-{
- if (! bytes)
- JvThrow (new NullPointerException);
- jsize data_size = JvGetArrayLength (bytes);
- if (offset < 0 || count < 0 || offset + count < 0
- || offset + count > data_size)
- JvThrow (new StringIndexOutOfBoundsException);
- jcharArray array = JvNewCharArray (count);
- gnu::gcj::convert::BytesToUnicode *converter
- = gnu::gcj::convert::BytesToUnicode::getDecoder(encoding);
- jint outpos = 0;
- int avail = count;
- converter->setInput(bytes, offset, offset+count);
- while (converter->inpos < converter->inlength)
- {
- int done = converter->read(array, outpos, avail);
- if (done == 0)
- {
- jint new_size = 2 * (outpos + avail);
- jcharArray new_array = JvNewCharArray (new_size);
- memcpy (elements (new_array), elements (array),
- outpos * sizeof(jchar));
- array = new_array;
- avail = new_size - outpos;
- }
- else
- {
- outpos += done;
- avail -= done;
- }
- }
- this->data = array;
- this->boffset = (char *) elements (array) - (char *) array;
- this->count = outpos;
-}
-
-jboolean
-java::lang::String::equals(jobject anObject)
-{
- if (anObject == NULL)
- return false;
- if (anObject == this)
- return true;
- if (anObject->getClass() != &StringClass)
- return false;
- jstring other = (jstring) anObject;
- if (count != other->count)
- return false;
- /* if both are interned, return false. */
- jint i = count;
- jchar *xptr = JvGetStringChars (this);
- jchar *yptr = JvGetStringChars (other);
- while (--i >= 0)
- {
- if (*xptr++ != *yptr++)
- return false;
- }
- return true;
-}
-
-jchar
-java::lang::String::charAt(jint i)
-{
- if (i < 0 || i >= count)
- JvThrow (new java::lang::StringIndexOutOfBoundsException());
- return JvGetStringChars(this)[i];
-}
-
-void
-java::lang::String::getChars(jint srcBegin, jint srcEnd,
- jcharArray dst, jint dstBegin)
-{
- jint dst_length = JvGetArrayLength (dst);
- if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count
- || dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length)
- JvThrow (new java::lang::StringIndexOutOfBoundsException());
- jchar *dPtr = elements (dst) + dstBegin;
- jchar *sPtr = JvGetStringChars (this) + srcBegin;
- jint i = srcEnd-srcBegin;
- while (--i >= 0)
- *dPtr++ = *sPtr++;
-}
-
-jbyteArray
-java::lang::String::getBytes (jstring enc)
-{
- jint todo = length();
- jint buflen = todo;
- jbyteArray buffer = JvNewByteArray(todo);
- jint bufpos = 0;
- jint offset = 0;
- gnu::gcj::convert::UnicodeToBytes *converter
- = gnu::gcj::convert::UnicodeToBytes::getEncoder(enc);
- while (todo > 0)
- {
- converter->setOutput(buffer, bufpos);
- int converted = converter->write(this, offset, todo, NULL);
- bufpos = converter->count;
- if (converted == 0)
- {
- buflen *= 2;
- jbyteArray newbuffer = JvNewByteArray(buflen);
- memcpy (elements (newbuffer), elements (buffer), bufpos);
- buffer = newbuffer;
- }
- else
- {
- offset += converted;
- todo -= converted;
- }
- }
- if (bufpos == buflen)
- return buffer;
- jbyteArray result = JvNewByteArray(bufpos);
- memcpy (elements (result), elements (buffer), bufpos);
- return result;
-}
-
-void
-java::lang::String::getBytes(jint srcBegin, jint srcEnd,
- jbyteArray dst, jint dstBegin)
-{
- jint dst_length = JvGetArrayLength (dst);
- if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count
- || dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length)
- JvThrow (new java::lang::StringIndexOutOfBoundsException());
- jbyte *dPtr = elements (dst) + dstBegin;
- jchar *sPtr = JvGetStringChars (this) + srcBegin;
- jint i = srcEnd-srcBegin;
- while (--i >= 0)
- *dPtr++ = (jbyte) *sPtr++;
-}
-
-jcharArray
-java::lang::String::toCharArray()
-{
- jcharArray array = JvNewCharArray(count);
- jchar *dPtr = elements (array);
- jchar *sPtr = JvGetStringChars (this);
- jint i = count;
- while (--i >= 0)
- *dPtr++ = *sPtr++;
- return array;
-}
-
-jboolean
-java::lang::String::equalsIgnoreCase (jstring anotherString)
-{
- if (anotherString == NULL || count != anotherString->count)
- return false;
- jchar *tptr = JvGetStringChars (this);
- jchar *optr = JvGetStringChars (anotherString);
- jint i = count;
- while (--i >= 0)
- {
- jchar tch = *tptr++;
- jchar och = *optr++;
- if (tch != och
- && (java::lang::Character::toLowerCase (tch)
- != java::lang::Character::toLowerCase (och))
- && (java::lang::Character::toUpperCase (tch)
- != java::lang::Character::toUpperCase (och)))
- return false;
- }
- return true;
-}
-
-jboolean
-java::lang::String::regionMatches (jint toffset,
- jstring other, jint ooffset, jint len)
-{
- if (toffset < 0 || ooffset < 0
- || toffset + len > count
- || ooffset + len > other->count)
- return false;
- jchar *tptr = JvGetStringChars (this) + toffset;
- jchar *optr = JvGetStringChars (other) + ooffset;
- jint i = len;
- while (--i >= 0)
- {
- if (*tptr++ != *optr++)
- return false;
- }
- return true;
-}
-
-jint
-java::lang::String::compareTo (jstring anotherString)
-{
- jchar *tptr = JvGetStringChars (this);
- jchar *optr = JvGetStringChars (anotherString);
- jint tlen = this->count;
- jint olen = anotherString->count;
- jint i = tlen > olen ? olen : tlen;
- while (--i >= 0)
- {
- jchar tch = *tptr++;
- jchar och = *optr++;
- if (tch != och)
- return (jint) tch - (jint) och;
- }
- return tlen - olen;
-}
-
-jboolean
-java::lang::String::regionMatches (jboolean ignoreCase, jint toffset,
- jstring other, jint ooffset, jint len)
-{
- if (toffset < 0 || ooffset < 0
- || toffset + len > count
- || ooffset + len > other->count)
- return false;
- jchar *tptr = JvGetStringChars (this) + toffset;
- jchar *optr = JvGetStringChars (other) + ooffset;
- jint i = len;
- if (ignoreCase)
- while (--i >= 0)
- {
- jchar tch = *tptr++;
- jchar och = *optr++;
- if ((java::lang::Character::toLowerCase (tch)
- != java::lang::Character::toLowerCase (och))
- && (java::lang::Character::toUpperCase (tch)
- != java::lang::Character::toUpperCase (och)))
- return false;
- }
- else
- while (--i >= 0)
- {
- jchar tch = *tptr++;
- jchar och = *optr++;
- if (tch != och)
- return false;
- }
- return true;
-}
-
-jboolean
-java::lang::String::startsWith (jstring prefix, jint toffset)
-{
- jint i = prefix->count;
- if (toffset < 0 || toffset + i > count)
- return false;
- jchar *xptr = JvGetStringChars (this) + toffset;
- jchar *yptr = JvGetStringChars (prefix);
- while (--i >= 0)
- {
- if (*xptr++ != *yptr++)
- return false;
- }
- return true;
-}
-
-jint
-java::lang::String::indexOf (jint ch, jint fromIndex)
-{
- if (fromIndex < 0)
- fromIndex = 0;
- jchar *ptr = JvGetStringChars(this);
- for (;; ++fromIndex)
- {
- if (fromIndex >= count)
- return -1;
- if (ptr[fromIndex] == ch)
- return fromIndex;
- }
-}
-
-jint
-java::lang::String::indexOf (jstring s, jint fromIndex)
-{
- const jchar *const xchars = JvGetStringChars(s);
- const jchar *const ychars = JvGetStringChars(this) + fromIndex;
-
- const int xlength = s->length ();
- const int ylength = length () - fromIndex;
-
- int i = 0;
- int j = 0;
-
- while (i < ylength && j < xlength)
- {
- if (xchars[j] != ychars[i])
- {
- i = i - j + 1;
- j = 0;
- }
- else
- i++, j++;
- }
-
- if (j >= xlength)
- return fromIndex + i - xlength;
- else
- return -1;
-}
-
-jint
-java::lang::String::lastIndexOf (jint ch, jint fromIndex)
-{
- if (fromIndex >= count)
- fromIndex = count - 1;
- jchar *ptr = JvGetStringChars(this);
- for (;; --fromIndex)
- {
- if (fromIndex < 0)
- return -1;
- if (ptr[fromIndex] == ch)
- return fromIndex;
- }
-}
-
-jstring
-java::lang::String::substring (jint beginIndex, jint endIndex)
-{
- if (beginIndex < 0 || endIndex > count || beginIndex > endIndex)
- JvThrow (new StringIndexOutOfBoundsException());
- if (beginIndex == 0 && endIndex == count)
- return this;
- jint newCount = endIndex - beginIndex;
- if (newCount <= 8) // Optimization, mainly for GC.
- return JvNewString(JvGetStringChars(this) + beginIndex, newCount);
- jstring s = new String();
- s->data = data;
- s->count = newCount;
- s->boffset = boffset + sizeof(jchar) * beginIndex;
- return s;
-}
-
-jstring
-java::lang::String::concat(jstring str)
-{
- jint str_count = str->count;
- if (str_count == 0)
- return this;
- jstring result = JvAllocString(count + str_count);
- jchar *dstPtr = JvGetStringChars(result);
- jchar *srcPtr = JvGetStringChars(this);
- jint i = count;
- while (--i >= 0)
- *dstPtr++ = *srcPtr++;
- srcPtr = JvGetStringChars(str);
- i = str->count;
- while (--i >= 0)
- *dstPtr++ = *srcPtr++;
- return result;
-}
-
-jstring
-java::lang::String::replace (jchar oldChar, jchar newChar)
-{
- jint i;
- jchar* chrs = JvGetStringChars (this);
- for (i = 0; ; i++)
- {
- if (i == count)
- return this;
- if (chrs[i] == oldChar)
- break;
- }
- jstring result = JvAllocString (count);
- jchar *dPtr = JvGetStringChars (result);
- for (int j = 0; j < i; j++)
- *dPtr++ = chrs[j];
- for (; i < count; i++)
- {
- jchar ch = chrs[i];
- if (ch == oldChar)
- ch = newChar;
- *dPtr++ = ch;
- }
- return result;
-}
-
-jstring
-java::lang::String::toLowerCase ()
-{
- jint i;
- jchar* chrs = JvGetStringChars(this);
- jchar ch;
- for (i = 0; ; i++)
- {
- if (i == count)
- return this;
- jchar origChar = chrs[i];
- ch = java::lang::Character::toLowerCase(origChar);
- if (ch != origChar)
- break;
- }
- jstring result = JvAllocString(count);
- jchar *dPtr = JvGetStringChars (result);
- for (int j = 0; j < i; j++)
- *dPtr++ = chrs[j];
- *dPtr++ = ch; i++;
- for (; i < count; i++)
- {
- *dPtr++ = java::lang::Character::toLowerCase(chrs[i]);
- }
- return result;
-}
-
-jstring
-java::lang::String::toUpperCase ()
-{
- jint i;
- jchar* chrs = JvGetStringChars(this);
- jchar ch;
- for (i = 0; ; i++)
- {
- if (i == count)
- return this;
- jchar origChar = chrs[i];
- ch = java::lang::Character::toUpperCase(origChar);
- if (ch != origChar)
- break;
- }
- jstring result = JvAllocString(count);
- jchar *dPtr = JvGetStringChars (result);
- for (int j = 0; j < i; j++)
- *dPtr++ = chrs[j];
- *dPtr++ = ch; i++;
- for (; i < count; i++)
- {
- *dPtr++ = java::lang::Character::toUpperCase(chrs[i]);
- }
- return result;
-}
-
-jstring
-java::lang::String::trim ()
-{
- jchar* chrs = JvGetStringChars(this);
- if (count == 0 || (chrs[0] > ' ' && chrs[count-1] > ' '))
- return this;
- jint preTrim = 0;
- for (;; preTrim++)
- {
- if (preTrim == count)
- return new String();
- if (chrs[preTrim] > ' ')
- break;
- }
- jint endTrim = count;
- while (chrs[endTrim-1] <= ' ')
- endTrim--;
- return substring(preTrim, endTrim);
-}
-
-jstring
-java::lang::String::valueOf(jcharArray data, jint offset, jint count)
-{
- jint data_length = JvGetArrayLength (data);
- if (offset < 0 || count < 0 || offset+count > data_length)
- JvThrow (new java::lang::IndexOutOfBoundsException());
- jstring result = JvAllocString(count);
- jchar *sPtr = elements (data) + offset;
- jchar *dPtr = JvGetStringChars(result);
- while (--count >= 0)
- *dPtr++ = *sPtr++;
- return result;
-}
-
-jstring
-java::lang::String::valueOf(jchar c)
-{
- jstring result = JvAllocString(1);
- JvGetStringChars (result)[0] = c;
- return result;
-}
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
deleted file mode 100644
index ca75430a8a4..00000000000
--- a/libjava/java/lang/natSystem.cc
+++ /dev/null
@@ -1,399 +0,0 @@
-// natSystem.cc - Native code implementing System class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-#include "posix.h"
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <errno.h>
-
-#ifdef HAVE_UNAME
-#include <sys/utsname.h>
-#endif
-
-#ifdef HAVE_LANGINFO_H
-#include <langinfo.h>
-#endif
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java-props.h>
-#include <java/lang/System.h>
-#include <java/lang/Class.h>
-#include <java/lang/ArrayStoreException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/StringBuffer.h>
-#include <java/util/Properties.h>
-#include <java/io/PrintStream.h>
-#include <java/io/InputStream.h>
-
-#define SystemClass _CL_Q34java4lang6System
-extern java::lang::Class SystemClass;
-
-
-
-void
-java::lang::System::setErr (java::io::PrintStream *newErr)
-{
- checkSetIO ();
- // This violates `final' semantics. Oh well.
- err = newErr;
-}
-
-void
-java::lang::System::setIn (java::io::InputStream *newIn)
-{
- checkSetIO ();
- // This violates `final' semantics. Oh well.
- in = newIn;
-}
-
-void
-java::lang::System::setOut (java::io::PrintStream *newOut)
-{
- checkSetIO ();
- // This violates `final' semantics. Oh well.
- out = newOut;
-}
-
-void
-java::lang::System::arraycopy (jobject src, jint src_offset,
- jobject dst, jint dst_offset,
- jint count)
-{
- if (! src || ! dst)
- _Jv_Throw (new NullPointerException);
-
- jclass src_c = src->getClass();
- jclass dst_c = dst->getClass();
- jclass src_comp = src_c->getComponentType();
- jclass dst_comp = dst_c->getComponentType();
-
- if (! src_c->isArray() || ! dst_c->isArray()
- || src_comp->isPrimitive() != dst_comp->isPrimitive()
- || (src_comp->isPrimitive() && src_comp != dst_comp))
- _Jv_Throw (new ArrayStoreException);
-
- __JArray *src_a = (__JArray *) src;
- __JArray *dst_a = (__JArray *) dst;
- if (src_offset < 0 || dst_offset < 0 || count < 0
- || src_offset + count > src_a->length
- || dst_offset + count > dst_a->length)
- _Jv_Throw (new ArrayIndexOutOfBoundsException);
-
- // Do-nothing cases.
- if ((src == dst && src_offset == dst_offset)
- || ! count)
- return;
-
- // If both are primitive, we can optimize trivially. If DST
- // components are always assignable from SRC components, then we
- // will never need to raise an error, and thus can do the
- // optimization. If source and destinations are the same, then we
- // know that the assignability premise always holds.
- const bool prim = src_comp->isPrimitive();
- if (prim || dst_comp->isAssignableFrom(src_comp) || src == dst)
- {
- const size_t size = (prim ? src_comp->size()
- : sizeof elements((jobjectArray)src)[0]);
-
- char *src_elts = _Jv_GetArrayElementFromElementType (src, src_comp);
- src_elts += size * src_offset;
-
- char *dst_elts = _Jv_GetArrayElementFromElementType (dst, dst_comp);
- dst_elts += size * dst_offset;
-
-#if HAVE_MEMMOVE
- // We don't bother trying memcpy. It can't be worth the cost of
- // the check.
- // Don't cast to (void*), as memmove may expect (char*)
- memmove (dst_elts, src_elts, count * size);
-#else
- bcopy (src_elts, dst_elts, count * size);
-#endif
- }
- else
- {
- jobject *src_elts = elements ((jobjectArray) src_a) + src_offset;
- jobject *dst_elts = elements ((jobjectArray) dst_a) + dst_offset;
-
- for (int i = 0; i < count; ++i)
- {
- if (*src_elts
- && ! dst_comp->isAssignableFrom((*src_elts)->getClass()))
- _Jv_Throw (new ArrayStoreException);
- *dst_elts++ = *src_elts++;
- }
- }
-}
-
-jlong
-java::lang::System::currentTimeMillis (void)
-{
- struct timeval tv;
- _Jv_gettimeofday (&tv);
- return (jlong) tv.tv_sec * 1000 + tv.tv_usec / 1000;
-}
-
-jint
-java::lang::System::identityHashCode (jobject obj)
-{
- return _Jv_HashCode (obj);
-}
-
-#if ! defined (DEFAULT_FILE_ENCODING) && defined (HAVE_ICONV) \
- && defined (HAVE_NL_LANGINFO)
-
-static char *
-file_encoding ()
-{
- setlocale (LC_CTYPE, "");
- char *e = nl_langinfo (CODESET);
- if (e == NULL || *e == '\0')
- e = "8859_1";
-}
-
-#define DEFAULT_FILE_ENCODING file_encoding ()
-
-#endif
-
-#ifndef DEFAULT_FILE_ENCODING
-#define DEFAULT_FILE_ENCODING "8859_1"
-#endif
-
-static char *default_file_encoding = DEFAULT_FILE_ENCODING;
-
-#if HAVE_GETPWUID_R
-/* Use overload resolution to find out the signature of getpwuid_r. */
-
- /* This is Posix getpwuid_r. */
-template <typename T_uid, typename T_passwd, typename T_buf, typename T_len>
-static inline int
-getpwuid_adaptor(int (*getpwuid_r)(T_uid user_id, T_passwd *pwd_r,
- T_buf *buf_r, T_len len_r,
- T_passwd **pwd_entry_ptr),
- uid_t user_id, struct passwd *pwd_r,
- char *buf_r, size_t len_r, struct passwd **pwd_entry)
-{
- return getpwuid_r (user_id, pwd_r, buf_r, len_r, pwd_entry);
-}
-
-/* This is used on HPUX 10.20 */
-template <typename T_uid, typename T_passwd, typename T_buf, typename T_len>
-static inline int
-getpwuid_adaptor(int (*getpwuid_r)(T_uid user_id, T_passwd *pwd_r,
- T_buf *buf_r, T_len len_r),
- uid_t user_id, struct passwd *pwd_r,
- char *buf_r, size_t len_r, struct passwd **pwd_entry)
-{
- return getpwuid_r (user_id, pwd_r, buf_r, len_r);
-}
-
-/* This is used on IRIX 5.2. */
-template <typename T_uid, typename T_passwd, typename T_buf, typename T_len>
-static inline int
-getpwuid_adaptor(T_passwd * (*getpwuid_r)(T_uid user_id, T_passwd *pwd_r,
- T_buf *buf_r, T_len len_r),
- uid_t user_id, struct passwd *pwd_r,
- char *buf_r, size_t len_r, struct passwd **pwd_entry)
-{
- *pwd_entry = getpwuid_r (user_id, pwd_r, buf_r, len_r);
- return (*pwd_entry == NULL) ? errno : 0;
-}
-#endif
-
-void
-java::lang::System::init_properties (void)
-{
- {
- // We only need to synchronize around this gatekeeper.
- JvSynchronize sync (&SystemClass);
- if (prop_init)
- return;
- prop_init = true;
- }
-
- properties = new java::util::Properties ();
- // A convenience define.
-#define SET(Prop,Val) \
- properties->put(JvNewStringLatin1 (Prop), JvNewStringLatin1 (Val))
-
- // A mixture of the Java Product Versioning Specification
- // (introduced in 1.2), and earlier versioning properties.
- SET ("java.version", VERSION);
- SET ("java.vendor", "Free Software Foundation");
- SET ("java.vendor.url", "http://sources.redhat.com/java/");
- SET ("java.class.version", GCJVERSION);
- SET ("java.vm.specification.version", "1.1");
- SET ("java.vm.specification.name", "Java(tm) Virtual Machine Specification");
- SET ("java.vm.specification.vendor", "Sun Microsystems Inc.");
- SET ("java.vm.version", GCJVERSION);
- SET ("java.vm.vendor", "Free Software Foundation");
- SET ("java.vm.name", "libgcj");
- SET ("java.specification.version", "1.1");
- SET ("java.specification.name", "Java(tm) Language Specification");
- SET ("java.specification.vendor", "Sun Microsystems Inc.");
-
- // FIXME: how to set this given location-independence?
- // SET ("java.home", "FIXME");
-
- SET ("file.encoding", default_file_encoding);
-
-#ifdef WIN32
- SET ("file.separator", "\\");
- SET ("path.separator", ";");
- SET ("line.separator", "\r\n");
- SET ("java.io.tmpdir", "C:\\temp");
-#else
- // Unix.
- SET ("file.separator", "/");
- SET ("path.separator", ":");
- SET ("line.separator", "\n");
- char *tmpdir = ::getenv("TMPDIR");
- if (! tmpdir)
- tmpdir = "/tmp";
- SET ("java.io.tmpdir", tmpdir);
-#endif
-
-#ifdef HAVE_UNAME
- struct utsname u;
- if (! uname (&u))
- {
- SET ("os.name", u.sysname);
- SET ("os.arch", u.machine);
- SET ("os.version", u.release);
- }
- else
- {
- SET ("os.name", "unknown");
- SET ("os.arch", "unknown");
- SET ("os.version", "unknown");
- }
-#endif /* HAVE_UNAME */
-
-#ifndef NO_GETUID
-#ifdef HAVE_PWD_H
- uid_t user_id = getuid ();
- struct passwd *pwd_entry;
-
-#ifdef HAVE_GETPWUID_R
- struct passwd pwd_r;
- size_t len_r = 200;
- char *buf_r = (char *) _Jv_AllocBytes (len_r);
-
- while (buf_r != NULL)
- {
- int r = getpwuid_adaptor (getpwuid_r, user_id, &pwd_r,
- buf_r, len_r, &pwd_entry);
- if (r == 0)
- break;
- else if (r != ERANGE)
- {
- pwd_entry = NULL;
- break;
- }
- len_r *= 2;
- buf_r = (char *) _Jv_AllocBytes (len_r);
- }
-#else
- pwd_entry = getpwuid (user_id);
-#endif /* HAVE_GETPWUID_R */
-
- if (pwd_entry != NULL)
- {
- SET ("user.name", pwd_entry->pw_name);
- SET ("user.home", pwd_entry->pw_dir);
- }
-#endif /* HAVE_PWD_H */
-#endif /* NO_GETUID */
-
-#ifdef HAVE_GETCWD
-#ifdef HAVE_UNISTD_H
- /* Use getcwd to set "user.dir". */
- int buflen = 250;
- char *buffer = (char *) malloc (buflen);
- while (buffer != NULL)
- {
- if (getcwd (buffer, buflen) != NULL)
- {
- SET ("user.dir", buffer);
- break;
- }
- if (errno != ERANGE)
- break;
- buflen = 2 * buflen;
- buffer = (char *) realloc (buffer, buflen);
- }
- if (buffer != NULL)
- free (buffer);
-#endif /* HAVE_UNISTD_H */
-#endif /* HAVE_GETCWD */
-
- // Set some properties according to whatever was compiled in with
- // `-D'.
- for (int i = 0; _Jv_Compiler_Properties[i]; ++i)
- {
- const char *s, *p;
- // Find the `='.
- for (s = p = _Jv_Compiler_Properties[i]; *s && *s != '='; ++s)
- ;
- jstring name = JvNewStringLatin1 (p, s - p);
- jstring val = JvNewStringLatin1 (*s == '=' ? s + 1 : s);
- properties->put (name, val);
- }
-
- // Set the system properties from the user's environment.
- if (_Jv_Environment_Properties)
- {
- size_t i = 0;
-
- while (_Jv_Environment_Properties[i].key)
- {
- SET (_Jv_Environment_Properties[i].key,
- _Jv_Environment_Properties[i].value);
- i++;
- }
- }
-
- if (_Jv_Jar_Class_Path)
- properties->put(JvNewStringLatin1 ("java.class.path"),
- JvNewStringLatin1 (_Jv_Jar_Class_Path));
- else
- {
- // FIXME: find libgcj.zip and append its path?
- char *classpath = ::getenv("CLASSPATH");
- jstring cp = properties->getProperty (JvNewStringLatin1("java.class.path"));
- java::lang::StringBuffer *sb = new java::lang::StringBuffer ();
-
- if (classpath)
- {
- sb->append (JvNewStringLatin1 (classpath));
-#ifdef WIN32
- sb->append ((jchar) ';');
-#else
- sb->append ((jchar) ':');
-#endif;
- }
- if (cp != NULL)
- sb->append (cp);
- else
- sb->append ((jchar) '.');
-
- properties->put(JvNewStringLatin1 ("java.class.path"),
- sb->toString ());
- }
-}
diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc
deleted file mode 100644
index 2b9afb53dec..00000000000
--- a/libjava/java/lang/natThread.cc
+++ /dev/null
@@ -1,333 +0,0 @@
-// natThread.cc - Native part of Thread class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java-threads.h>
-
-#include <java/lang/Thread.h>
-#include <java/lang/ThreadGroup.h>
-#include <java/lang/IllegalArgumentException.h>
-#include <java/lang/UnsupportedOperationException.h>
-#include <java/lang/IllegalThreadStateException.h>
-#include <java/lang/InterruptedException.h>
-#include <java/lang/NullPointerException.h>
-
-#include <jni.h>
-
-#ifdef ENABLE_JVMPI
-#include <jvmpi.h>
-#endif
-
-
-
-// This structure is used to represent all the data the native side
-// needs. An object of this type is assigned to the `data' member of
-// the Thread class.
-struct natThread
-{
- // These are used to interrupt sleep and join calls. We can share a
- // condition variable here since it only ever gets notified when the thread
- // exits.
- _Jv_Mutex_t join_mutex;
- _Jv_ConditionVariable_t join_cond;
-
- // This is private data for the thread system layer.
- _Jv_Thread_t *thread;
-
- // Each thread has its own JNI object.
- JNIEnv *jni_env;
-};
-
-// This is called from the constructor to initialize the native side
-// of the Thread.
-void
-java::lang::Thread::initialize_native (void)
-{
- // FIXME: this must interact with the GC in some logical way. At
- // the very least we must register a finalizer to clean up. This
- // isn't easy to do. If the Thread object resurrects itself in its
- // own finalizer then we will need to reinitialize this structure at
- // any "interesting" point.
- natThread *nt = (natThread *) _Jv_AllocBytes (sizeof (natThread));
- data = reinterpret_cast<jobject> (nt);
- _Jv_MutexInit (&nt->join_mutex);
- _Jv_CondInit (&nt->join_cond);
- _Jv_ThreadInitData (&nt->thread, this);
- // FIXME: if JNI_ENV is set we will want to free it. It is
- // malloc()d.
- nt->jni_env = NULL;
-}
-
-jint
-java::lang::Thread::countStackFrames (void)
-{
- // NOTE: This is deprecated in JDK 1.2.
- JvFail ("java::lang::Thread::countStackFrames unimplemented");
- return 0;
-}
-
-java::lang::Thread *
-java::lang::Thread::currentThread (void)
-{
- return _Jv_ThreadCurrent ();
-}
-
-void
-java::lang::Thread::destroy (void)
-{
- // NOTE: This is marked as unimplemented in the JDK 1.2
- // documentation.
- JvFail ("java::lang::Thread::destroy unimplemented");
-}
-
-void
-java::lang::Thread::interrupt (void)
-{
- natThread *nt = (natThread *) data;
- _Jv_ThreadInterrupt (nt->thread);
-}
-
-void
-java::lang::Thread::join (jlong millis, jint nanos)
-{
- if (millis < 0 || nanos < 0 || nanos > 999999)
- _Jv_Throw (new IllegalArgumentException);
-
- Thread *current = currentThread ();
-
- // Here `NT' is the native structure for the thread we are trying to join.
- natThread *nt = (natThread *) data;
-
- // Now wait for: (1) an interrupt, (2) the thread to exit, or (3)
- // the timeout to occur.
- _Jv_MutexLock (&nt->join_mutex);
- if (! isAlive ())
- {
- _Jv_MutexUnlock (&nt->join_mutex);
- return;
- }
- _Jv_CondWait (&nt->join_cond, &nt->join_mutex, millis, nanos);
- _Jv_MutexUnlock (&nt->join_mutex);
-
- if (current->isInterrupted (true))
- _Jv_Throw (new InterruptedException);
-}
-
-void
-java::lang::Thread::resume (void)
-{
- checkAccess ();
- JvFail ("java::lang::Thread::resume unimplemented");
-}
-
-void
-java::lang::Thread::setPriority (jint newPriority)
-{
- checkAccess ();
- if (newPriority < MIN_PRIORITY || newPriority > MAX_PRIORITY)
- _Jv_Throw (new IllegalArgumentException);
-
- jint gmax = group->getMaxPriority();
- if (newPriority > gmax)
- newPriority = gmax;
-
- priority = newPriority;
- natThread *nt = (natThread *) data;
- _Jv_ThreadSetPriority (nt->thread, priority);
-}
-
-void
-java::lang::Thread::sleep (jlong millis, jint nanos)
-{
- if (millis < 0 || nanos < 0 || nanos > 999999)
- _Jv_Throw (new IllegalArgumentException);
-
- if (millis == 0 && nanos == 0)
- ++nanos;
-
- Thread *current = currentThread ();
-
- // We use a condition variable to implement sleeping so that an
- // interrupt can wake us up.
- natThread *nt = (natThread *) current->data;
- _Jv_MutexLock (&nt->join_mutex);
- _Jv_CondWait (&nt->join_cond, &nt->join_mutex, millis, nanos);
- _Jv_MutexUnlock (&nt->join_mutex);
-
- if (current->isInterrupted (true))
- _Jv_Throw (new InterruptedException);
-}
-
-void
-java::lang::Thread::finish_ ()
-{
- natThread *nt = (natThread *) data;
-
- group->removeThread (this);
-
-#ifdef ENABLE_JVMPI
- if (_Jv_JVMPI_Notify_THREAD_END)
- {
- JVMPI_Event event;
-
- event.event_type = JVMPI_EVENT_THREAD_END;
- event.env_id = _Jv_GetCurrentJNIEnv ();
-
- _Jv_DisableGC ();
- (*_Jv_JVMPI_Notify_THREAD_END) (&event);
- _Jv_EnableGC ();
- }
-#endif
-
- group = NULL;
-
- // Signal any threads that are waiting to join() us.
- _Jv_MutexLock (&nt->join_mutex);
- alive_flag = false;
- _Jv_CondNotifyAll (&nt->join_cond, &nt->join_mutex);
- _Jv_MutexUnlock (&nt->join_mutex);
-}
-
-void
-java::lang::Thread::run_ (jobject obj)
-{
- java::lang::Thread *thread = (java::lang::Thread *) obj;
- try
- {
-#ifdef ENABLE_JVMPI
- if (_Jv_JVMPI_Notify_THREAD_START)
- {
- JVMPI_Event event;
-
- jstring thread_name = thread->getName ();
- jstring group_name = NULL, parent_name = NULL;
- java::lang::ThreadGroup *group = thread->getThreadGroup ();
-
- if (group)
- {
- group_name = group->getName ();
- group = group->getParent ();
-
- if (group)
- parent_name = group->getName ();
- }
-
- int thread_len = thread_name ? JvGetStringUTFLength (thread_name) : 0;
- int group_len = group_name ? JvGetStringUTFLength (group_name) : 0;
- int parent_len = parent_name ? JvGetStringUTFLength (parent_name) : 0;
-
- char thread_chars[thread_len + 1];
- char group_chars[group_len + 1];
- char parent_chars[parent_len + 1];
-
- if (thread_name)
- JvGetStringUTFRegion (thread_name, 0,
- thread_name->length(), thread_chars);
- if (group_name)
- JvGetStringUTFRegion (group_name, 0,
- group_name->length(), group_chars);
- if (parent_name)
- JvGetStringUTFRegion (parent_name, 0,
- parent_name->length(), parent_chars);
-
- thread_chars[thread_len] = '\0';
- group_chars[group_len] = '\0';
- parent_chars[parent_len] = '\0';
-
- event.event_type = JVMPI_EVENT_THREAD_START;
- event.env_id = NULL;
- event.u.thread_start.thread_name = thread_chars;
- event.u.thread_start.group_name = group_chars;
- event.u.thread_start.parent_name = parent_chars;
- event.u.thread_start.thread_id = (jobjectID) thread;
- event.u.thread_start.thread_env_id = _Jv_GetCurrentJNIEnv ();
-
- _Jv_DisableGC ();
- (*_Jv_JVMPI_Notify_THREAD_START) (&event);
- _Jv_EnableGC ();
- }
-#endif
-
- thread->run ();
- }
- catch (java::lang::Throwable *t)
- {
- // Uncaught exceptions are forwarded to the ThreadGroup. If
- // this results in an uncaught exception, that is ignored.
- try
- {
- thread->group->uncaughtException (thread, t);
- }
- catch (java::lang::Throwable *f)
- {
- // Nothing.
- }
- }
-
- thread->finish_ ();
-}
-
-void
-java::lang::Thread::start (void)
-{
- JvSynchronize sync (this);
-
- // Its illegal to re-start() a thread, even if its dead.
- if (!startable_flag)
- _Jv_Throw (new IllegalThreadStateException);
-
- alive_flag = true;
- startable_flag = false;
- natThread *nt = (natThread *) data;
- _Jv_ThreadStart (this, nt->thread, (_Jv_ThreadStartFunc *) &run_);
-}
-
-void
-java::lang::Thread::stop (java::lang::Throwable *)
-{
- _Jv_Throw (new UnsupportedOperationException
- (JvNewStringLatin1 ("java::lang::Thread::stop unimplemented")));
-}
-
-void
-java::lang::Thread::suspend (void)
-{
- checkAccess ();
- _Jv_Throw (new UnsupportedOperationException
- (JvNewStringLatin1 ("java::lang::Thread::suspend unimplemented")));
-}
-
-void
-java::lang::Thread::yield (void)
-{
- _Jv_ThreadYield ();
-}
-
-JNIEnv *
-_Jv_GetCurrentJNIEnv ()
-{
- java::lang::Thread *t = _Jv_ThreadCurrent ();
- if (t == NULL)
- return NULL;
- return ((natThread *) t->data)->jni_env;
-}
-
-void
-_Jv_SetCurrentJNIEnv (JNIEnv *env)
-{
- java::lang::Thread *t = _Jv_ThreadCurrent ();
- JvAssert (t != NULL);
- ((natThread *) t->data)->jni_env = env;
-}
diff --git a/libjava/java/lang/natThrowable.cc b/libjava/java/lang/natThrowable.cc
deleted file mode 100644
index c7f19bec09d..00000000000
--- a/libjava/java/lang/natThrowable.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-// natThrowable.cc - Superclass for all exceptions.
-
-/* Copyright (C) 2000 Red Hat Inc
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date Jan 6 2000
- */
-
-#include <config.h>
-
-#include <string.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Object.h>
-#include <java-threads.h>
-#include <java/lang/Throwable.h>
-#include <java/io/PrintStream.h>
-#include <java/io/PrintWriter.h>
-#include <java/io/IOException.h>
-
-#include <sys/types.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include <unistd.h>
-
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif
-
-#include <name-finder.h>
-
-#ifdef __ia64__
-extern "C" int __ia64_backtrace (void **array, int size);
-#endif
-
-/* FIXME: size of the stack trace is limited to 128 elements. It's
- undoubtedly sensible to limit the stack trace, but 128 is rather
- arbitrary. It may be better to configure this. */
-
-java::lang::Throwable *
-java::lang::Throwable::fillInStackTrace (void)
-{
-#if defined (HAVE_BACKTRACE) || defined (__ia64__)
- void *p[128];
-
- // We subtract 1 from the number of elements because we don't want
- // to include the call to fillInStackTrace in the trace.
-#if defined (__ia64__)
- int n = __ia64_backtrace (p, 128) - 1;
-#else
- int n = backtrace (p, 128) - 1;
-#endif
-
- if (n > 0)
- {
- // ??? Might this cause a problem if the byte array isn't aligned?
- stackTrace = JvNewByteArray (n * sizeof p[0]);
- memcpy (elements (stackTrace), p+1, (n * sizeof p[0]));
- }
-
-#endif
-
- return this;
-}
-
-void
-java::lang::Throwable::printRawStackTrace (java::io::PrintWriter *wr)
-{
- wr->println (toString ());
-#ifdef HAVE_BACKTRACE
- if (!stackTrace)
- return;
-
- void **p = (void **)elements (stackTrace);
- int depth = stackTrace->length / sizeof p[0];
-
- _Jv_name_finder finder (_Jv_ThisExecutable ());
-
- for (int i = 0; i < depth; i++)
- {
- bool found = finder.lookup (p[i]);
- wr->print (JvNewStringLatin1 (" at "));
- wr->print (JvNewStringLatin1 (finder.hex));
- if (found)
- {
- wr->print (JvNewStringLatin1 (": "));
- wr->print (JvNewStringLatin1 (finder.method_name));
- if (finder.file_name[0])
- {
- wr->print (JvNewStringLatin1 (" ("));
- wr->print (JvNewStringLatin1 (finder.file_name));
- wr->print (JvNewStringLatin1 (")"));
- }
- }
- wr->println ();
- }
-#endif /* HAVE_BACKTRACE */
- wr->flush ();
-}
diff --git a/libjava/java/lang/reflect/AccessibleObject.java b/libjava/java/lang/reflect/AccessibleObject.java
deleted file mode 100644
index 5ba5887e4e2..00000000000
--- a/libjava/java/lang/reflect/AccessibleObject.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// AccessibleObject.java - Base for reflection objects.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using JDK 1.2 beta docs.
- * Status: Believed complete and correct.
- */
-
-public class AccessibleObject
-{
- protected AccessibleObject ()
- {
- flag = false;
- }
-
- boolean isAccessible ()
- {
- return flag;
- }
-
- static void setAccessible (AccessibleObject[] array, boolean flag)
- {
- checkPermission ();
- for (int i = 0; i < array.length; ++i)
- array[i].flag = flag;
- }
-
- void setAccessible (boolean flag)
- {
- checkPermission ();
- this.flag = flag;
- }
-
- private static final void checkPermission ()
- {
- SecurityManager sm = System.getSecurityManager();
- // FIXME: sm.checkPermission(ReflectPermission ("suppressAccessChecks"))
- }
-
- private boolean flag;
-}
diff --git a/libjava/java/lang/reflect/Array.java b/libjava/java/lang/reflect/Array.java
deleted file mode 100644
index cd90db8f071..00000000000
--- a/libjava/java/lang/reflect/Array.java
+++ /dev/null
@@ -1,78 +0,0 @@
-// FileDescriptor.java - Open file or device
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date january 12, 1999
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3.
- * Status: Believe complete and correct.
- */
-
-public final class Array
-{
- Array () { }
-
- public static native Object newInstance(Class componentType, int length);
- public static native Object newInstance(Class elementType, int[] dimensions);
- public static native int getLength (Object array);
-
- public static native Object get (Object array, int index);
- public static native char getChar (Object array, int index);
- public static native byte getByte (Object array, int index);
- public static native short getShort (Object array, int index);
- public static native int getInt (Object array, int index);
- public static native long getLong (Object array, int index);
- public static native float getFloat (Object array, int index);
- public static native double getDouble (Object array, int index);
- public static native boolean getBoolean (Object array, int index);
-
- private static native Class getElementType (Object array, int index);
-
- private static native void set (Object array, int index,
- Object value, Class elType);
-
- public static void set (Object array, int index, Object value)
- {
- Class elType = getElementType(array, index);
- if (! elType.isPrimitive())
- set(array, index, value, elType);
- else if (value instanceof Byte)
- setByte(array, index, ((Byte) value).byteValue());
- else if (value instanceof Short)
- setShort (array, index, ((Short) value).shortValue());
- else if (value instanceof Integer)
- setInt(array, index, ((Integer) value).intValue());
- else if (value instanceof Long)
- setLong(array, index, ((Long) value).longValue());
- else if (value instanceof Float)
- setFloat(array, index, ((Float) value).floatValue());
- else if (value instanceof Double)
- setDouble(array, index, ((Double) value).doubleValue());
- else if (value instanceof Character)
- setChar(array, index, ((Character) value).charValue());
- else if (value instanceof Boolean)
- setBoolean(array, index, ((Boolean) value).booleanValue());
- else
- throw new IllegalArgumentException();
- }
-
- public static native void setByte (Object array, int index, byte value);
- public static native void setShort (Object array, int index, short value);
- public static native void setInt (Object array, int index, int value);
- public static native void setLong (Object array, int index, long value);
- public static native void setFloat (Object array, int index, float value);
- public static native void setDouble (Object array, int index, double value);
- public static native void setChar (Object array, int index, char value);
- public static native void setBoolean(Object array, int index, boolean value);
-}
diff --git a/libjava/java/lang/reflect/Constructor.java b/libjava/java/lang/reflect/Constructor.java
deleted file mode 100644
index 77c437e24fa..00000000000
--- a/libjava/java/lang/reflect/Constructor.java
+++ /dev/null
@@ -1,105 +0,0 @@
-// Constructor.java - Represents a constructor for a class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Incomplete: needs a private constructor, and
- * newInstance() needs to be written.
- */
-
-public final class Constructor extends AccessibleObject implements Member
-{
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Constructor))
- return false;
- Constructor c = (Constructor) obj;
- return declaringClass == c.declaringClass && offset == c.offset;
- }
-
- public Class getDeclaringClass ()
- {
- return declaringClass;
- }
-
- public Class[] getExceptionTypes ()
- {
- return (Class[]) exception_types.clone();
- }
-
- public native int getModifiers ();
-
- public String getName ()
- {
- return declaringClass.getName();
- }
-
- public Class[] getParameterTypes ()
- {
- if (parameter_types == null)
- getType ();
- return (Class[]) parameter_types.clone();
- }
-
- public int hashCode ()
- {
- // FIXME.
- return getName().hashCode() + declaringClass.getName().hashCode();
- }
-
- // Update cached values from method descriptor in class.
- private native void getType ();
-
- public native Object newInstance (Object[] args)
- throws InstantiationException, IllegalAccessException,
- IllegalArgumentException, InvocationTargetException;
-
- public String toString ()
- {
- if (parameter_types == null)
- getType ();
- StringBuffer b = new StringBuffer ();
- b.append(Modifier.toString(getModifiers()));
- b.append(" ");
- b.append(getName());
- b.append("(");
- for (int i = 0; i < parameter_types.length; ++i)
- {
- b.append(parameter_types[i].getName());
- if (i < parameter_types.length - 1)
- b.append(",");
- }
- b.append(")");
- return b.toString();
- }
-
- // Can't create these.
- private Constructor ()
- {
- }
-
- // Declaring class.
- private Class declaringClass;
-
- // Exception types.
- private Class[] exception_types;
- // Parameter types.
- private Class[] parameter_types;
-
- // Offset in bytes from the start of declaringClass's methods array.
- private int offset;
-}
diff --git a/libjava/java/lang/reflect/Field.java b/libjava/java/lang/reflect/Field.java
deleted file mode 100644
index 76243f30464..00000000000
--- a/libjava/java/lang/reflect/Field.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date September 1998; February 1999.
- */
-/* Status: Mostly implemented.
- * However, access checks are not implemented. See natField.cc for
- * _Jv_CheckFieldAccessibility as well as the missing getCaller.
- * Note that the idea is to have to compiler convert calls to
- * setXXX(...) and getXXX(...) to setXXX(CALLER, ...) and getXXX(CALLER, ...),
- * where CALLER is reference to the class that contains the calls to
- * setXXX or getXXX. This is easy for the compiler, and replaces
- * expensive stack and table searching with a constant.
- */
-
-public final class Field extends AccessibleObject implements Member
-{
- private Class declaringClass;
-
- // This is filled in by getName.
- private String name;
-
- // Offset in bytes from the start of declaringClass's fields array.
- private int offset;
-
- public boolean equals (Object fld)
- {
- if (! (fld instanceof Field))
- return false;
- Field f = (Field) fld;
- return declaringClass == f.declaringClass && offset == f.offset;
- }
-
- public Class getDeclaringClass ()
- {
- return declaringClass;
- }
-
- public native String getName ();
-
- public native Class getType ();
-
- public native int getModifiers ();
-
- public int hashCode()
- {
- return (declaringClass.hashCode() ^ offset);
- }
-
- // The idea is that the compiler will magically translate
- // fld.getShort(obj) to fld.getShort(THISCLASS, obj).
- // This makes checking assessiblity more efficient,
- // since we don't have to do any stack-walking.
-
- public boolean getBoolean (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getBoolean(null, obj);
- }
- public char getChar (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getChar(null, obj);
- }
-
- public byte getByte (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getByte(null, obj);
- }
-
- public short getShort (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getShort(null, obj);
- }
-
- public int getInt (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getInt(null, obj);
- }
-
- public long getLong (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getLong(null, obj);
- }
-
- public float getFloat (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getFloat(null, obj);
- }
-
- public double getDouble (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return getDouble(null, obj);
- }
-
- public Object get (Object obj)
- throws IllegalArgumentException, IllegalAccessException
- {
- return get(null, obj);
- }
-
- private native boolean getBoolean (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native char getChar (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native byte getByte (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native short getShort (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native int getInt (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native long getLong (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native float getFloat (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native double getDouble (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native Object get (Class caller, Object obj)
- throws IllegalArgumentException, IllegalAccessException;
-
- public void setByte (Object obj, byte b)
- throws IllegalArgumentException, IllegalAccessException
- {
- setByte(null, obj, b);
- }
-
- public void setShort (Object obj, short s)
- throws IllegalArgumentException, IllegalAccessException
- {
- setShort(null, obj, s);
- }
-
- public void setInt (Object obj, int i)
- throws IllegalArgumentException, IllegalAccessException
- {
- setInt(null, obj, i);
- }
-
- public void setLong (Object obj, long l)
- throws IllegalArgumentException, IllegalAccessException
- {
- setLong(null, obj, l);
- }
-
- public void setFloat (Object obj, float f)
- throws IllegalArgumentException, IllegalAccessException
- {
- setFloat(null, obj, f);
- }
-
- public void setDouble (Object obj, double d)
- throws IllegalArgumentException, IllegalAccessException
- {
- setDouble(null, obj, d);
- }
-
- public void setChar (Object obj, char c)
- throws IllegalArgumentException, IllegalAccessException
- {
- setChar(null, obj, c);
- }
-
- public void setBoolean (Object obj, boolean b)
- throws IllegalArgumentException, IllegalAccessException
- {
- setBoolean(null, obj, b);
- }
-
- public native void setByte (Class caller, Object obj, byte b)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setShort (Class caller, Object obj, short s)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setInt (Class caller, Object obj, int i)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setLong (Class caller, Object obj, long l)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setFloat (Class caller, Object obj, float f)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setDouble (Class caller, Object obj, double d)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setChar (Class caller, Object obj, char c)
- throws IllegalArgumentException, IllegalAccessException;
-
- public native void setBoolean (Class caller, Object obj, boolean b)
- throws IllegalArgumentException, IllegalAccessException;
-
- private native void set (Class caller, Object obj, Object val, Class type)
- throws IllegalArgumentException, IllegalAccessException;
-
- public void set (Object object, Object value)
- throws IllegalArgumentException, IllegalAccessException
- {
- set(null, object, value);
- }
-
- public void set (Class caller, Object object, Object value)
- throws IllegalArgumentException, IllegalAccessException
- {
- Class type = getType();
- if (! type.isPrimitive())
- set(caller, object, value, type);
- else if (value instanceof Byte)
- setByte(caller, object, ((Byte) value).byteValue());
- else if (value instanceof Short)
- setShort (caller, object, ((Short) value).shortValue());
- else if (value instanceof Integer)
- setInt(caller, object, ((Integer) value).intValue());
- else if (value instanceof Long)
- setLong(caller, object, ((Long) value).longValue());
- else if (value instanceof Float)
- setFloat(caller, object, ((Float) value).floatValue());
- else if (value instanceof Double)
- setDouble(caller, object, ((Double) value).doubleValue());
- else if (value instanceof Character)
- setChar(caller, object, ((Character) value).charValue());
- else if (value instanceof Boolean)
- setBoolean(caller, object, ((Boolean) value).booleanValue());
- else
- throw new IllegalArgumentException();
- }
-
- public String toString ()
- {
- StringBuffer sbuf = new StringBuffer ();
- int mods = getModifiers();
- if (mods != 0)
- {
- Modifier.toString(mods, sbuf);
- sbuf.append(' ');
- }
- sbuf.append(getType().getName());
- sbuf.append(' ');
- sbuf.append(getDeclaringClass().getName());
- sbuf.append('.');
- sbuf.append(getName());
- return sbuf.toString();
- }
-}
diff --git a/libjava/java/lang/reflect/InvocationTargetException.java b/libjava/java/lang/reflect/InvocationTargetException.java
deleted file mode 100644
index 0152a7bf2f5..00000000000
--- a/libjava/java/lang/reflect/InvocationTargetException.java
+++ /dev/null
@@ -1,75 +0,0 @@
-// InvocationTargetException.java - Wrapper exception for reflection.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Believed complete and correct.
- */
-
-public class InvocationTargetException extends Exception
-{
- public Throwable getTargetException ()
- {
- return target;
- }
-
- protected InvocationTargetException ()
- {
- super ();
- target = null;
- }
-
- public InvocationTargetException (Throwable exception)
- {
- super ();
- target = exception;
- }
-
- public InvocationTargetException (Throwable exception, String msg)
- {
- super (msg);
- target = exception;
- }
-
- // This is from JDK 1.2.
- public void printStackTrace ()
- {
- if (target != null)
- target.printStackTrace();
- }
-
- // This is from JDK 1.2.
- public void printStackTrace (PrintStream s)
- {
- if (target != null)
- target.printStackTrace(s);
- }
-
- // This is from JDK 1.2.
- public void printStackTrace (PrintWriter wr)
- {
- if (target != null)
- target.printStackTrace(wr);
- }
-
- // The wrapped exception. The name is specified by the
- // serialization spec.
- private Throwable target;
-
- private static final long serialVersionUID = 4085088731926701167L;
-}
diff --git a/libjava/java/lang/reflect/Member.java b/libjava/java/lang/reflect/Member.java
deleted file mode 100644
index 43b14acce19..00000000000
--- a/libjava/java/lang/reflect/Member.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date September 27, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition.
- * Status: Believed complete and correct.
- */
-
-public interface Member
-{
- public static final int PUBLIC = 0;
- public static final int DECLARED = 1;
- public Class getDeclaringClass ();
- public int getModifiers ();
- public String getName();
-}
diff --git a/libjava/java/lang/reflect/Method.java b/libjava/java/lang/reflect/Method.java
deleted file mode 100644
index 119a56f2141..00000000000
--- a/libjava/java/lang/reflect/Method.java
+++ /dev/null
@@ -1,127 +0,0 @@
-// Method.java - Represent method of class or interface.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.lang.reflect;
-
-import gnu.gcj.RawData;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Complete, but not correct: access checks aren't done.
- */
-
-public final class Method extends AccessibleObject implements Member
-{
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Method))
- return false;
- Method m = (Method) obj;
- return declaringClass == m.declaringClass && offset == m.offset;
- }
-
- public Class getDeclaringClass ()
- {
- return declaringClass;
- }
-
- public Class[] getExceptionTypes ()
- {
- return (Class[]) exception_types.clone();
- }
-
- public native int getModifiers ();
-
- public native String getName ();
-
- private native void getType ();
-
- public Class[] getParameterTypes ()
- {
- if (parameter_types == null)
- getType();
- return (Class[]) parameter_types.clone();
- }
-
- public Class getReturnType ()
- {
- if (return_type == null)
- getType();
- return return_type;
- }
-
- public int hashCode ()
- {
- // FIXME.
- return getName().hashCode() + declaringClass.getName().hashCode();
- }
-
- public native Object invoke (Object obj, Object[] args)
- throws IllegalAccessException, IllegalArgumentException,
- InvocationTargetException;
-
- public String toString ()
- {
- if (parameter_types == null)
- getType ();
-
- StringBuffer b = new StringBuffer ();
- Modifier.toString(getModifiers(), b);
- b.append(" ");
- b.append(return_type.getName());
- b.append(" ");
- b.append(declaringClass.getName());
- b.append(".");
- b.append(getName());
- b.append("(");
- for (int i = 0; i < parameter_types.length; ++i)
- {
- b.append(parameter_types[i].getName());
- if (i < parameter_types.length - 1)
- b.append(",");
- }
- b.append(")");
- if (exception_types.length > 0)
- {
- b.append(" throws ");
- for (int i = 0; i < exception_types.length; ++i)
- {
- b.append(exception_types[i].getName());
- if (i < exception_types.length - 1)
- b.append(",");
- }
- }
- return b.toString();
- }
-
- private Method ()
- {
- }
-
- // Declaring class.
- private Class declaringClass;
-
- // Exception types.
- private Class[] exception_types;
- // Name cache. (Initially null.)
- private String name;
- // Parameter types.
- private Class[] parameter_types;
- // Return type.
- private Class return_type;
-
- // Offset in bytes from the start of declaringClass's methods array.
- private int offset;
-}
diff --git a/libjava/java/lang/reflect/Modifier.java b/libjava/java/lang/reflect/Modifier.java
deleted file mode 100644
index 5fddbc695e4..00000000000
--- a/libjava/java/lang/reflect/Modifier.java
+++ /dev/null
@@ -1,141 +0,0 @@
-// Modifier.java - Process modifier values.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 1, 1998
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct to version 1.2.
- */
-
-package java.lang.reflect;
-
-public class Modifier
-{
- public static final int PUBLIC = 0x001;
- public static final int PRIVATE = 0x002;
- public static final int PROTECTED = 0x004;
- public static final int STATIC = 0x008;
- public static final int FINAL = 0x010;
- public static final int SYNCHRONIZED = 0x020;
- public static final int VOLATILE = 0x040;
- public static final int TRANSIENT = 0x080;
- public static final int NATIVE = 0x100;
- public static final int INTERFACE = 0x200;
- public static final int ABSTRACT = 0x400;
- public static final int STRICT = 0x800;
-
- // This is only used by the C++ code, so it is not public.
- static final int ALL_FLAGS = 0xfff;
-
- public static boolean isAbstract (int mod)
- {
- return (mod & ABSTRACT) != 0;
- }
-
- public static boolean isFinal (int mod)
- {
- return (mod & FINAL) != 0;
- }
-
- public static boolean isInterface (int mod)
- {
- return (mod & INTERFACE) != 0;
- }
-
- public static boolean isNative (int mod)
- {
- return (mod & NATIVE) != 0;
- }
-
- public static boolean isPrivate (int mod)
- {
- return (mod & PRIVATE) != 0;
- }
-
- public static boolean isProtected (int mod)
- {
- return (mod & PROTECTED) != 0;
- }
-
- public static boolean isPublic (int mod)
- {
- return (mod & PUBLIC) != 0;
- }
-
- public static boolean isStatic (int mod)
- {
- return (mod & STATIC) != 0;
- }
-
- public static boolean isStrict (int mod)
- {
- return (mod & STRICT) != 0;
- }
-
- public static boolean isSynchronized (int mod)
- {
- return (mod & SYNCHRONIZED) != 0;
- }
-
- public static boolean isTransient (int mod)
- {
- return (mod & TRANSIENT) != 0;
- }
-
- public static boolean isVolatile (int mod)
- {
- return (mod & VOLATILE) != 0;
- }
-
- public static String toString (int mod)
- {
- StringBuffer r = new StringBuffer ();
- toString(mod, r);
- return r.toString();
- }
-
- static void toString (int mod, StringBuffer r)
- {
- if (isPublic (mod))
- r.append("public ");
- if (isProtected (mod))
- r.append("protected ");
- if (isPrivate (mod))
- r.append("private ");
- if (isAbstract (mod))
- r.append("abstract ");
- if (isStatic (mod))
- r.append("static ");
- if (isFinal (mod))
- r.append("final ");
- if (isTransient (mod))
- r.append("transient ");
- if (isVolatile (mod))
- r.append("volatile ");
- if (isNative (mod))
- r.append("native ");
- if (isSynchronized (mod))
- r.append("synchronized ");
- if (isInterface (mod))
- r.append("interface ");
- if (isStrict (mod))
- r.append("strict ");
-
- // Trim trailing space.
- int l = r.length();
- if (l > 0)
- r.setLength(l - 1);
- }
-}
diff --git a/libjava/java/lang/reflect/natArray.cc b/libjava/java/lang/reflect/natArray.cc
deleted file mode 100644
index 4bce9ce8c0a..00000000000
--- a/libjava/java/lang/reflect/natArray.cc
+++ /dev/null
@@ -1,353 +0,0 @@
-// natField.cc - Implementation of java.lang.reflect.Field native methods.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <jvm.h>
-#include <gcj/cni.h>
-#include <java/lang/reflect/Array.h>
-#include <java/lang/IllegalArgumentException.h>
-#include <java/lang/Byte.h>
-#include <java/lang/Short.h>
-#include <java/lang/Integer.h>
-#include <java/lang/Long.h>
-#include <java/lang/Float.h>
-#include <java/lang/Double.h>
-#include <java/lang/Boolean.h>
-#include <java/lang/Character.h>
-
-#define BooleanClass _CL_Q34java4lang7Boolean
-extern java::lang::Class BooleanClass;
-
-jobject
-java::lang::reflect::Array::newInstance (jclass componentType, jint length)
-{
- if (componentType->isPrimitive())
- {
- // We could check for this in _Jv_NewPrimArray, but that seems
- // like needless overhead when the only real route to this
- // problem is here.
- if (componentType == JvPrimClass (void))
- throw new java::lang::IllegalArgumentException ();
- return _Jv_NewPrimArray (componentType, length);
- }
- else
- return JvNewObjectArray (length, componentType, NULL);
-
-}
-
-jobject
-java::lang::reflect::Array::newInstance (jclass componentType, jintArray dimensions)
-{
- jint ndims = dimensions->length;
- if (ndims == 0)
- return componentType->newInstance ();
- jint* dims = elements (dimensions);
- if (ndims == 1)
- return newInstance (componentType, dims[0]);
- jclass arrayType = componentType;
- for (int i = 0; i < ndims; i++) // FIXME 2nd arg should
- // be "current" loader
- arrayType = _Jv_FindArrayClass (arrayType, 0);
-
- return _Jv_NewMultiArray (arrayType, ndims, dims);
-}
-
-jint
-java::lang::reflect::Array::getLength (jobject array)
-{
- jclass arrayType = array->getClass();
- if (! arrayType->isArray ())
- JvThrow (new java::lang::IllegalArgumentException());
- return ((__JArray*) array)->length;
-}
-
-jclass
-java::lang::reflect::Array::getElementType (jobject array, jint index)
-{
- jclass arrayType = array->getClass();
- if (! arrayType->isArray ())
- JvThrow (new java::lang::IllegalArgumentException());
- jint length = ((__JArray*) array)->length;
- if ((_Jv_uint) index >= (_Jv_uint) length)
- _Jv_ThrowBadArrayIndex(index);
- return arrayType->getComponentType ();
-}
-
-jboolean
-java::lang::reflect::Array::getBoolean (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (boolean))
- return elements ((jbooleanArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jchar
-java::lang::reflect::Array::getChar (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (char))
- return elements ((jcharArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jbyte
-java::lang::reflect::Array::getByte (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jshort
-java::lang::reflect::Array::getShort (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (short))
- return elements ((jshortArray) array) [index];
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jint
-java::lang::reflect::Array::getInt (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (int))
- return elements ((jintArray) array) [index];
- if (elementType == JvPrimClass (short))
- return elements ((jshortArray) array) [index];
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- if (elementType == JvPrimClass (char))
- return elements ((jcharArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jlong
-java::lang::reflect::Array::getLong (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (long))
- return elements ((jlongArray) array) [index];
- if (elementType == JvPrimClass (int))
- return elements ((jintArray) array) [index];
- if (elementType == JvPrimClass (short))
- return elements ((jshortArray) array) [index];
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- if (elementType == JvPrimClass (char))
- return elements ((jcharArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jfloat
-java::lang::reflect::Array::getFloat (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (float))
- return elements ((jfloatArray) array) [index];
- if (elementType == JvPrimClass (long))
- return elements ((jlongArray) array) [index];
- if (elementType == JvPrimClass (int))
- return elements ((jintArray) array) [index];
- if (elementType == JvPrimClass (short))
- return elements ((jshortArray) array) [index];
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- if (elementType == JvPrimClass (char))
- return elements ((jcharArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jdouble
-java::lang::reflect::Array::getDouble (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (double))
- return elements ((jdoubleArray) array) [index];
- if (elementType == JvPrimClass (float))
- return elements ((jfloatArray) array) [index];
- if (elementType == JvPrimClass (long))
- return elements ((jlongArray) array) [index];
- if (elementType == JvPrimClass (int))
- return elements ((jintArray) array) [index];
- if (elementType == JvPrimClass (short))
- return elements ((jshortArray) array) [index];
- if (elementType == JvPrimClass (byte))
- return elements ((jbyteArray) array) [index];
- if (elementType == JvPrimClass (char))
- return elements ((jcharArray) array) [index];
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-jobject
-java::lang::reflect::Array::get (jobject array, jint index)
-{
- jclass elementType = getElementType (array, index);
- if (! elementType->isPrimitive ())
- return elements ((jobjectArray) array) [index];
- if (elementType == JvPrimClass (double))
- return new java::lang::Double (elements ((jdoubleArray) array) [index]);
- if (elementType == JvPrimClass (float))
- return new java::lang::Float (elements ((jfloatArray) array) [index]);
- if (elementType == JvPrimClass (long))
- return new java::lang::Long (elements ((jlongArray) array) [index]);
- if (elementType == JvPrimClass (int))
- return new java::lang::Integer (elements ((jintArray) array) [index]);
- if (elementType == JvPrimClass (short))
- return new java::lang::Short (elements ((jshortArray) array) [index]);
- if (elementType == JvPrimClass (byte))
- return new java::lang::Byte (elements ((jbyteArray) array) [index]);
- if (elementType == JvPrimClass (char))
- return new java::lang::Character (elements ((jcharArray) array) [index]);
- if (elementType == JvPrimClass (boolean))
- {
- _Jv_InitClass (&BooleanClass);
- if (elements ((jbooleanArray) array) [index])
- return java::lang::Boolean::TRUE;
- else
- return java::lang::Boolean::FALSE;
- }
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setChar (jobject array, jint index, jchar value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (char))
- elements ((jcharArray) array) [index] = value;
- else if (elementType == JvPrimClass (int))
- elements ((jintArray) array) [index] = value;
- else if (elementType == JvPrimClass (long))
- elements ((jlongArray) array) [index] = value;
- else if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setByte (jobject array, jint index, jbyte value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (byte))
- elements ((jbyteArray) array) [index] = value;
- else if (elementType == JvPrimClass (short))
- elements ((jshortArray) array) [index] = value;
- else if (elementType == JvPrimClass (int))
- elements ((jintArray) array) [index] = value;
- else if (elementType == JvPrimClass (long))
- elements ((jlongArray) array) [index] = value;
- else if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setShort (jobject array, jint index, jshort value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (short))
- elements ((jshortArray) array) [index] = value;
- else if (elementType == JvPrimClass (int))
- elements ((jintArray) array) [index] = value;
- else if (elementType == JvPrimClass (long))
- elements ((jlongArray) array) [index] = value;
- else if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setInt (jobject array, jint index, jint value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (int))
- elements ((jintArray) array) [index] = value;
- else if (elementType == JvPrimClass (long))
- elements ((jlongArray) array) [index] = value;
- else if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setLong (jobject array, jint index, jlong value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (long))
- elements ((jlongArray) array) [index] = value;
- else if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setFloat (jobject array, jint index, jfloat value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (float))
- elements ((jfloatArray) array) [index] = value;
- else if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setDouble (jobject array, jint index, jdouble value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (double))
- elements ((jdoubleArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::setBoolean (jobject array,
- jint index, jboolean value)
-{
- jclass elementType = getElementType (array, index);
- if (elementType == JvPrimClass (boolean))
- elements ((jbooleanArray) array) [index] = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Array::set (jobject array, jint index,
- jobject value, jclass elType)
-{
- if (! _Jv_IsInstanceOf (value, elType))
- JvThrow (new java::lang::IllegalArgumentException ());
- elements ((jobjectArray) array) [index] = value;
-}
diff --git a/libjava/java/lang/reflect/natConstructor.cc b/libjava/java/lang/reflect/natConstructor.cc
deleted file mode 100644
index a8da794bdb8..00000000000
--- a/libjava/java/lang/reflect/natConstructor.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// natConstructor.cc - Native code for Constructor class.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/lang/reflect/Constructor.h>
-#include <java/lang/reflect/Method.h>
-#include <java/lang/reflect/InvocationTargetException.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/InstantiationException.h>
-#include <gcj/method.h>
-
-jint
-java::lang::reflect::Constructor::getModifiers ()
-{
- // Ignore all unknown flags.
- return _Jv_FromReflectedConstructor (this)->accflags & Modifier::ALL_FLAGS;
-}
-
-void
-java::lang::reflect::Constructor::getType ()
-{
- _Jv_GetTypesFromSignature (_Jv_FromReflectedConstructor (this),
- declaringClass,
- &parameter_types,
- NULL);
-}
-
-jobject
-java::lang::reflect::Constructor::newInstance (jobjectArray args)
-{
- if (parameter_types == NULL)
- getType ();
-
- using namespace java::lang::reflect;
- if (Modifier::isAbstract (declaringClass->getModifiers()))
- JvThrow (new InstantiationException);
-
- jmethodID meth = _Jv_FromReflectedConstructor (this);
- // In the constructor case the return type is the type of the
- // constructor.
- return _Jv_CallAnyMethodA (NULL, declaringClass, meth, true,
- parameter_types, args);
-}
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc
deleted file mode 100644
index 3cd296c7021..00000000000
--- a/libjava/java/lang/reflect/natField.cc
+++ /dev/null
@@ -1,439 +0,0 @@
-// natField.cc - Implementation of java.lang.reflect.Field native methods.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <jvm.h>
-#include <java/lang/reflect/Field.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/IllegalArgumentException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/Byte.h>
-#include <java/lang/Short.h>
-#include <java/lang/Integer.h>
-#include <java/lang/Long.h>
-#include <java/lang/Float.h>
-#include <java/lang/Double.h>
-#include <java/lang/Boolean.h>
-#include <java/lang/Character.h>
-
-#define BooleanClass _CL_Q34java4lang7Boolean
-extern java::lang::Class BooleanClass;
-
-jint
-java::lang::reflect::Field::getModifiers ()
-{
- return _Jv_FromReflectedField (this)->getModifiers ();
-}
-
-jstring
-java::lang::reflect::Field::getName ()
-{
- if (name == NULL)
- name = _Jv_NewStringUtf8Const (_Jv_FromReflectedField (this)->name);
- return name;
-}
-
-jclass
-java::lang::reflect::Field::getType ()
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- if (! fld->isResolved())
- {
- JvSynchronize sync (declaringClass);
- if (! fld->isResolved())
- {
- fld->type
- = _Jv_FindClassFromSignature(((Utf8Const*) (fld->type))->data,
- declaringClass->getClassLoader());
- fld->flags &= ~_Jv_FIELD_UNRESOLVED_FLAG;
- }
- }
- return fld->type;
-}
-
-static void
-_Jv_CheckFieldAccessibility (jfieldID /*fld*/, jclass /*caller*/)
-{
-#if 0
- if (caller == NULL)
- caller = getCaller();
-#endif
-#if 0
- _Jv_ushort flags = fld->getModifiers();
- check accesss;
-#endif
-}
-
-static void*
-getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (field);
- _Jv_ushort flags = fld->getModifiers();
- if (! (flags & java::lang::reflect::Modifier::PUBLIC)
- && ! field->isAccessible ())
- _Jv_CheckFieldAccessibility (fld, caller);
- if (flags & java::lang::reflect::Modifier::STATIC)
- {
- jclass fldClass = field->getDeclaringClass ();
- JvInitClass(fldClass);
- return fld->u.addr;
- }
- else
- {
- if (obj == NULL)
- _Jv_Throw (new java::lang::NullPointerException ());
- if (! _Jv_IsInstanceOf (obj, field->getDeclaringClass()))
- JvThrow (new java::lang::IllegalArgumentException ());
- return (void*) ((char*) obj + fld->getOffset ());
- }
-}
-
-static jboolean
-getBoolean (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (boolean))
- return * (jboolean *) addr;
- _Jv_Throw (new java::lang::IllegalArgumentException());
-}
-
-static jchar
-getChar (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (char))
- return * (jchar *) addr;
- _Jv_Throw (new java::lang::IllegalArgumentException());
-}
-
-static jbyte
-getByte (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (byte))
- return * (jbyte *) addr;
- _Jv_Throw (new java::lang::IllegalArgumentException());
-}
-
-static jshort
-getShort (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (short))
- return * (jshort *) addr;
- if (cls == JvPrimClass (byte))
- return * (jbyte *) addr;
- _Jv_Throw (new java::lang::IllegalArgumentException());
-}
-
-static jint
-getInt (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (int))
- return * (jint *) addr;
- if (cls == JvPrimClass (short))
- return * (jshort *) addr;
- if (cls == JvPrimClass (char))
- return * (jchar *) addr;
- if (cls == JvPrimClass (byte))
- return * (jbyte *) addr;
- _Jv_Throw (new java::lang::IllegalArgumentException());
-}
-
-static jlong
-getLong (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (long))
- return * (jlong *) addr;
- return ::getInt(cls, addr);
-}
-
-static jfloat
-getFloat (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (float))
- return * (jfloat *) addr;
- if (cls == JvPrimClass (long))
- return * (jlong *) addr;
- return ::getInt(cls, addr);
-}
-
-static jdouble
-getDouble (jclass cls, void* addr)
-{
- if (cls == JvPrimClass (double))
- return * (jdouble *) addr;
- if (cls == JvPrimClass (float))
- return * (jfloat *) addr;
- if (cls == JvPrimClass (long))
- return * (jlong *) addr;
- return ::getInt(cls, addr);
-}
-
-jboolean
-java::lang::reflect::Field::getBoolean (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getBoolean (fld->type, getAddr (this, caller, obj));
-}
-
-jchar
-java::lang::reflect::Field::getChar (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getChar (fld->type, getAddr (this, caller, obj));
-}
-
-jbyte
-java::lang::reflect::Field::getByte (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getByte (fld->type, getAddr (this, caller, obj));
-}
-
-jshort
-java::lang::reflect::Field::getShort (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getShort (fld->type, getAddr (this, caller, obj));
-}
-
-jint
-java::lang::reflect::Field::getInt (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getInt (fld->type, getAddr (this, caller, obj));
-}
-
-jlong
-java::lang::reflect::Field::getLong (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getLong (fld->type, getAddr (this, caller, obj));
-}
-
-jfloat
-java::lang::reflect::Field::getFloat (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getFloat (fld->type, getAddr (this, caller, obj));
-}
-
-jdouble
-java::lang::reflect::Field::getDouble (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- return ::getDouble (fld->type, getAddr (this, caller, obj));
-}
-
-jobject
-java::lang::reflect::Field::get (jclass caller, jobject obj)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- void* addr = getAddr (this, caller, obj);
- if (! fld->type->isPrimitive ())
- return * (jobject*) addr;
- if (fld->type == JvPrimClass (double))
- return new java::lang::Double (* (jdouble*) addr);
- if (fld->type == JvPrimClass (float))
- return new java::lang::Float (* (jfloat*) addr);
- if (fld->type == JvPrimClass (long))
- return new java::lang::Long (* (jlong*) addr);
- if (fld->type == JvPrimClass (int))
- return new java::lang::Integer (* (jint*) addr);
- if (fld->type == JvPrimClass (short))
- return new java::lang::Short (* (jshort*) addr);
- if (fld->type == JvPrimClass (byte))
- return new java::lang::Byte (* (jbyte*) addr);
- if (fld->type == JvPrimClass (char))
- return new java::lang::Character (* (jchar*) addr);
- if (fld->type == JvPrimClass (boolean))
- {
- _Jv_InitClass (&BooleanClass);
- if (* (jboolean*) addr)
- return java::lang::Boolean::TRUE;
- else
- return java::lang::Boolean::FALSE;
- }
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setBoolean (jclass type, void *addr, jboolean value)
-{
- if (type == JvPrimClass (boolean))
- * (jboolean *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setChar (jclass type, void *addr, jchar value)
-{
- if (type == JvPrimClass (char))
- * (jchar *) addr = value;
- else if (type == JvPrimClass (int))
- * (jint *) addr = value;
- else if (type == JvPrimClass (long))
- * (jlong *) addr = value;
- else if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setByte (jclass type, void *addr, jbyte value)
-{
- if (type == JvPrimClass (byte))
- * (jbyte *) addr = value;
- else if (type == JvPrimClass (short))
- * (jshort *) addr = value;
- else if (type == JvPrimClass (int))
- * (jint *) addr = value;
- else if (type == JvPrimClass (long))
- * (jlong *) addr = value;
- else if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setShort (jclass type, void *addr, jshort value)
-{
- if (type == JvPrimClass (short))
- * (jshort *) addr = value;
- else if (type == JvPrimClass (int))
- * (jint *) addr = value;
- else if (type == JvPrimClass (long))
- * (jlong *) addr = value;
- else if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setInt (jclass type, void *addr, jint value)
-{
- if (type == JvPrimClass (int))
- * (jint *) addr = value;
- else if (type == JvPrimClass (long))
- * (jlong *) addr = value;
- else if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setLong (jclass type, void *addr, jlong value)
-{
- if (type == JvPrimClass (long))
- * (jlong *) addr = value;
- else if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setFloat (jclass type, void *addr, jfloat value)
-{
- if (type == JvPrimClass (float))
- * (jfloat *) addr = value;
- else if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-static void
-setDouble (jclass type, void *addr, jdouble value)
-{
- if (type == JvPrimClass (double))
- * (jdouble *) addr = value;
- else
- JvThrow (new java::lang::IllegalArgumentException());
-}
-
-void
-java::lang::reflect::Field::setBoolean (jclass caller, jobject obj, jboolean b)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setBoolean (fld->type, getAddr (this, caller, obj), b);
-}
-
-void
-java::lang::reflect::Field::setChar (jclass caller, jobject obj, jchar c)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setChar (fld->type, getAddr (this, caller, obj), c);
-}
-
-void
-java::lang::reflect::Field::setByte (jclass caller, jobject obj, jbyte b)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setByte (fld->type, getAddr (this, caller, obj), b);
-}
-
-void
-java::lang::reflect::Field::setShort (jclass caller, jobject obj, jshort s)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setShort (fld->type, getAddr (this, caller, obj), s);
-}
-
-void
-java::lang::reflect::Field::setInt (jclass caller, jobject obj, jint i)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setInt (fld->type, getAddr (this, caller, obj), i);
-}
-
-void
-java::lang::reflect::Field::setLong (jclass caller, jobject obj, jlong l)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setLong (fld->type, getAddr (this, caller, obj), l);
-}
-void
-java::lang::reflect::Field::setFloat (jclass caller, jobject obj, jfloat f)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setFloat (fld->type, getAddr (this, caller, obj), f);
-}
-
-void
-java::lang::reflect::Field::setDouble (jclass caller, jobject obj, jdouble d)
-{
- jfieldID fld = _Jv_FromReflectedField (this);
- ::setDouble (fld->type, getAddr (this, caller, obj), d);
-}
-
-void
-java::lang::reflect::Field::set (jclass caller, jobject object, jobject value, jclass type)
-{
- if (! _Jv_IsInstanceOf (value, type))
- JvThrow (new java::lang::IllegalArgumentException ());
- void* addr = getAddr (this, caller, object);
- * (jobject*) addr = value;
-}
diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc
deleted file mode 100644
index 0f829debd30..00000000000
--- a/libjava/java/lang/reflect/natMethod.cc
+++ /dev/null
@@ -1,556 +0,0 @@
-// natMethod.cc - Native code for Method class.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <jni.h>
-
-#include <java/lang/reflect/Method.h>
-#include <java/lang/reflect/Constructor.h>
-#include <java/lang/reflect/InvocationTargetException.h>
-#include <java/lang/reflect/Modifier.h>
-
-#include <java/lang/Void.h>
-#include <java/lang/Byte.h>
-#include <java/lang/Boolean.h>
-#include <java/lang/Character.h>
-#include <java/lang/Short.h>
-#include <java/lang/Integer.h>
-#include <java/lang/Long.h>
-#include <java/lang/Float.h>
-#include <java/lang/Double.h>
-#include <java/lang/IllegalArgumentException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/Class.h>
-#include <gcj/method.h>
-#include <gnu/gcj/RawData.h>
-
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-
-#include <stdlib.h>
-
-#include <ffi.h>
-
-#define VoidClass _CL_Q34java4lang4Void
-extern java::lang::Class VoidClass;
-#define ByteClass _CL_Q34java4lang4Byte
-extern java::lang::Class ByteClass;
-#define ShortClass _CL_Q34java4lang5Short
-extern java::lang::Class ShortClass;
-#define CharacterClass _CL_Q34java4lang9Character
-extern java::lang::Class CharacterClass;
-#define IntegerClass _CL_Q34java4lang7Integer
-extern java::lang::Class IntegerClass;
-#define LongClass _CL_Q34java4lang4Long
-extern java::lang::Class LongClass;
-#define FloatClass _CL_Q34java4lang5Float
-extern java::lang::Class FloatClass;
-#define DoubleClass _CL_Q34java4lang6Double
-extern java::lang::Class DoubleClass;
-
-struct cpair
-{
- jclass prim;
- jclass wrap;
-};
-
-// This is used to determine when a primitive widening conversion is
-// allowed.
-static cpair primitives[] =
-{
-#define VOID 0
- { JvPrimClass (void), &VoidClass },
- { JvPrimClass (byte), &ByteClass },
-#define SHORT 2
- { JvPrimClass (short), &ShortClass },
-#define CHAR 3
- { JvPrimClass (char), &CharacterClass },
- { JvPrimClass (int), &IntegerClass },
- { JvPrimClass (long), &LongClass },
- { JvPrimClass (float), &FloatClass },
- { JvPrimClass (double), &DoubleClass },
- { NULL, NULL }
-};
-
-static jboolean
-can_widen (jclass from, jclass to)
-{
- int fromx = -1, tox = -1;
-
- for (int i = 0; primitives[i].prim; ++i)
- {
- if (primitives[i].wrap == from)
- fromx = i;
- if (primitives[i].prim == to)
- tox = i;
- }
-
- // Can't handle a miss.
- if (fromx == -1 || tox == -1)
- return false;
- // Can't handle Void arguments.
- if (fromx == VOID || tox == VOID)
- return false;
- // Special-case short/char conversions.
- if ((fromx == SHORT && tox == CHAR) || (fromx == CHAR && tox == SHORT))
- return false;
-
- return fromx <= tox;
-}
-
-static ffi_type *
-get_ffi_type (jclass klass)
-{
- // A special case.
- if (klass == NULL)
- return &ffi_type_pointer;
-
- ffi_type *r;
- if (klass == JvPrimClass (byte))
- r = &ffi_type_sint8;
- else if (klass == JvPrimClass (short))
- r = &ffi_type_sint16;
- else if (klass == JvPrimClass (int))
- r = &ffi_type_sint32;
- else if (klass == JvPrimClass (long))
- r = &ffi_type_sint64;
- else if (klass == JvPrimClass (float))
- r = &ffi_type_float;
- else if (klass == JvPrimClass (double))
- r = &ffi_type_double;
- else if (klass == JvPrimClass (boolean))
- {
- // On some platforms a bool is a byte, on others an int.
- if (sizeof (jboolean) == sizeof (jbyte))
- r = &ffi_type_sint8;
- else
- {
- JvAssert (sizeof (jboolean) == sizeof (jint));
- r = &ffi_type_sint32;
- }
- }
- else if (klass == JvPrimClass (char))
- r = &ffi_type_uint16;
- else
- {
- JvAssert (! klass->isPrimitive());
- r = &ffi_type_pointer;
- }
-
- return r;
-}
-
-jobject
-java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)
-{
- if (parameter_types == NULL)
- getType ();
-
- jmethodID meth = _Jv_FromReflectedMethod (this);
- if (! java::lang::reflect::Modifier::isStatic(meth->accflags))
- {
- jclass k = obj ? obj->getClass() : NULL;
- if (! obj)
- JvThrow (new java::lang::NullPointerException);
- if (! declaringClass->isAssignableFrom(k))
- JvThrow (new java::lang::IllegalArgumentException);
- // FIXME: access checks.
-
- // Find the possibly overloaded method based on the runtime type
- // of the object.
- meth = _Jv_LookupDeclaredMethod (k, meth->name, meth->signature);
- }
-
- return _Jv_CallAnyMethodA (obj, return_type, meth, false,
- parameter_types, args);
-}
-
-jint
-java::lang::reflect::Method::getModifiers ()
-{
- // Ignore all unknown flags.
- return _Jv_FromReflectedMethod (this)->accflags & Modifier::ALL_FLAGS;
-}
-
-jstring
-java::lang::reflect::Method::getName ()
-{
- if (name == NULL)
- name = _Jv_NewStringUtf8Const (_Jv_FromReflectedMethod (this)->name);
- return name;
-}
-
-/* Internal method to set return_type and parameter_types fields. */
-
-void
-java::lang::reflect::Method::getType ()
-{
- _Jv_GetTypesFromSignature (_Jv_FromReflectedMethod (this),
- declaringClass,
- &parameter_types,
- &return_type);
-
- // FIXME: for now we have no way to get exception information.
- exception_types = (JArray<jclass> *) JvNewObjectArray (0, &ClassClass,
- NULL);
-}
-
-void
-_Jv_GetTypesFromSignature (jmethodID method,
- jclass declaringClass,
- JArray<jclass> **arg_types_out,
- jclass *return_type_out)
-{
-
- _Jv_Utf8Const* sig = method->signature;
- java::lang::ClassLoader *loader = declaringClass->getClassLoader();
- char *ptr = sig->data;
- int numArgs = 0;
- /* First just count the number of parameters. */
- for (; ; ptr++)
- {
- switch (*ptr)
- {
- case 0:
- case ')':
- case 'V':
- break;
- case '[':
- case '(':
- continue;
- case 'B':
- case 'C':
- case 'D':
- case 'F':
- case 'S':
- case 'I':
- case 'J':
- case 'Z':
- numArgs++;
- continue;
- case 'L':
- numArgs++;
- do
- ptr++;
- while (*ptr != ';' && ptr[1] != '\0');
- continue;
- }
- break;
- }
-
- JArray<jclass> *args = (JArray<jclass> *)
- JvNewObjectArray (numArgs, &ClassClass, NULL);
- jclass* argPtr = elements (args);
- for (ptr = sig->data; *ptr != '\0'; ptr++)
- {
- int num_arrays = 0;
- jclass type;
- for (; *ptr == '['; ptr++)
- num_arrays++;
- switch (*ptr)
- {
- default:
- return;
- case ')':
- argPtr = return_type_out;
- continue;
- case '(':
- continue;
- case 'V':
- case 'B':
- case 'C':
- case 'D':
- case 'F':
- case 'S':
- case 'I':
- case 'J':
- case 'Z':
- type = _Jv_FindClassFromSignature(ptr, loader);
- break;
- case 'L':
- type = _Jv_FindClassFromSignature(ptr, loader);
- do
- ptr++;
- while (*ptr != ';' && ptr[1] != '\0');
- break;
- }
-
- // FIXME: 2'nd argument should be "current loader"
- while (--num_arrays >= 0)
- type = _Jv_FindArrayClass (type, 0);
- // ARGPTR can be NULL if we are processing the return value of a
- // call from Constructor.
- if (argPtr)
- *argPtr++ = type;
- }
- *arg_types_out = args;
-}
-
-// This is a very rough analog of the JNI CallNonvirtual<type>MethodA
-// functions. It handles both Methods and Constructors, and it can
-// handle any return type. In the Constructor case, the `obj'
-// argument is unused and should be NULL; also, the `return_type' is
-// the class that the constructor will construct. RESULT is a pointer
-// to a `jvalue' (see jni.h); for a void method this should be NULL.
-// This function returns an exception (if one was thrown), or NULL if
-// the call went ok.
-jthrowable
-_Jv_CallAnyMethodA (jobject obj,
- jclass return_type,
- jmethodID meth,
- jboolean is_constructor,
- JArray<jclass> *parameter_types,
- jvalue *args,
- jvalue *result)
-{
- JvAssert (! is_constructor || ! obj);
- JvAssert (! is_constructor || ! return_type);
-
- // See whether call needs an object as the first argument. A
- // constructor does need a `this' argument, but it is one we create.
- jboolean needs_this = false;
- if (is_constructor
- || ! java::lang::reflect::Modifier::isStatic(meth->accflags))
- needs_this = true;
-
- int param_count = parameter_types->length;
- if (needs_this)
- ++param_count;
-
- ffi_type *rtype;
- // A constructor itself always returns void.
- if (is_constructor || return_type == JvPrimClass (void))
- rtype = &ffi_type_void;
- else
- rtype = get_ffi_type (return_type);
- ffi_type **argtypes = (ffi_type **) alloca (param_count
- * sizeof (ffi_type *));
-
- jclass *paramelts = elements (parameter_types);
-
- // FIXME: at some point the compiler is going to add extra arguments
- // to some functions. In particular we are going to do this for
- // handling access checks in reflection. We must add these hidden
- // arguments here.
-
- // Special case for the `this' argument of a constructor. Note that
- // the JDK 1.2 docs specify that the new object must be allocated
- // before argument conversions are done.
- if (is_constructor)
- {
- // FIXME: must special-case String, arrays, maybe others here.
- obj = JvAllocObject (return_type);
- }
-
- int i = 0;
- int size = 0;
- if (needs_this)
- {
- // The `NULL' type is `Object'.
- argtypes[i++] = get_ffi_type (NULL);
- size += sizeof (jobject);
- }
-
- for (int arg = 0; i < param_count; ++i, ++arg)
- {
- argtypes[i] = get_ffi_type (paramelts[arg]);
- if (paramelts[arg]->isPrimitive())
- size += paramelts[arg]->size();
- else
- size += sizeof (jobject);
- }
-
- ffi_cif cif;
- if (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, param_count,
- rtype, argtypes) != FFI_OK)
- {
- // FIXME: throw some kind of VirtualMachineError here.
- }
-
- char *p = (char *) alloca (size);
- void **values = (void **) alloca (param_count * sizeof (void *));
-
- i = 0;
- if (needs_this)
- {
- values[i] = p;
- memcpy (p, &obj, sizeof (jobject));
- p += sizeof (jobject);
- ++i;
- }
-
- for (int arg = 0; i < param_count; ++i, ++arg)
- {
- int tsize;
- if (paramelts[arg]->isPrimitive())
- tsize = paramelts[arg]->size();
- else
- tsize = sizeof (jobject);
-
- // Copy appropriate bits from the jvalue into the ffi array.
- // FIXME: we could do this copying all in one loop, above, by
- // over-allocating a bit.
- values[i] = p;
- memcpy (p, &args[arg], tsize);
- p += tsize;
- }
-
- // FIXME: initialize class here.
-
- using namespace java::lang;
- using namespace java::lang::reflect;
-
- Throwable *ex = NULL;
-
- try
- {
- ffi_call (&cif, (void (*)()) meth->ncode, result, values);
- }
- catch (Throwable *ex2)
- {
- // FIXME: this is wrong for JNI. But if we just return the
- // exception, then the non-JNI cases won't be able to
- // distinguish it from exceptions we might generate ourselves.
- // Sigh.
- ex = new InvocationTargetException (ex2);
- }
-
- if (is_constructor)
- result->l = obj;
-
- return ex;
-}
-
-// This is another version of _Jv_CallAnyMethodA, but this one does
-// more checking and is used by the reflection (and not JNI) code.
-jobject
-_Jv_CallAnyMethodA (jobject obj,
- jclass return_type,
- jmethodID meth,
- jboolean is_constructor,
- JArray<jclass> *parameter_types,
- jobjectArray args)
-{
- // FIXME: access checks.
-
- if (parameter_types->length == 0 && args == NULL)
- {
- // The JDK accepts this, so we do too.
- }
- else if (parameter_types->length != args->length)
- JvThrow (new java::lang::IllegalArgumentException);
-
- int param_count = parameter_types->length;
-
- jclass *paramelts = elements (parameter_types);
- jobject *argelts = args == NULL ? NULL : elements (args);
- jvalue argvals[param_count];
-
-#define COPY(Where, What, Type) \
- do { \
- Type val = (What); \
- memcpy ((Where), &val, sizeof (Type)); \
- } while (0)
-
- for (int i = 0; i < param_count; ++i)
- {
- jclass k = argelts[i] ? argelts[i]->getClass() : NULL;
- if (paramelts[i]->isPrimitive())
- {
- if (! argelts[i]
- || ! k
- || ! can_widen (k, paramelts[i]))
- JvThrow (new java::lang::IllegalArgumentException);
- }
- else
- {
- if (argelts[i] && ! paramelts[i]->isAssignableFrom (k))
- JvThrow (new java::lang::IllegalArgumentException);
- }
-
- java::lang::Number *num = (java::lang::Number *) argelts[i];
- if (paramelts[i] == JvPrimClass (byte))
- COPY (&argvals[i], num->byteValue(), jbyte);
- else if (paramelts[i] == JvPrimClass (short))
- COPY (&argvals[i], num->shortValue(), jshort);
- else if (paramelts[i] == JvPrimClass (int))
- COPY (&argvals[i], num->intValue(), jint);
- else if (paramelts[i] == JvPrimClass (long))
- COPY (&argvals[i], num->longValue(), jlong);
- else if (paramelts[i] == JvPrimClass (float))
- COPY (&argvals[i], num->floatValue(), jfloat);
- else if (paramelts[i] == JvPrimClass (double))
- COPY (&argvals[i], num->doubleValue(), jdouble);
- else if (paramelts[i] == JvPrimClass (boolean))
- COPY (&argvals[i],
- ((java::lang::Boolean *) argelts[i])->booleanValue(),
- jboolean);
- else if (paramelts[i] == JvPrimClass (char))
- COPY (&argvals[i],
- ((java::lang::Character *) argelts[i])->charValue(),
- jchar);
- else
- {
- JvAssert (! paramelts[i]->isPrimitive());
- COPY (&argvals[i], argelts[i], jobject);
- }
- }
-
- jvalue ret_value;
- java::lang::Throwable *ex = _Jv_CallAnyMethodA (obj,
- return_type,
- meth,
- is_constructor,
- parameter_types,
- argvals,
- &ret_value);
-
- if (ex)
- JvThrow (ex);
-
- jobject r;
-#define VAL(Wrapper, Field) (new Wrapper (ret_value.Field))
- if (is_constructor)
- r = ret_value.l;
- else if (return_type == JvPrimClass (byte))
- r = VAL (java::lang::Byte, b);
- else if (return_type == JvPrimClass (short))
- r = VAL (java::lang::Short, s);
- else if (return_type == JvPrimClass (int))
- r = VAL (java::lang::Integer, i);
- else if (return_type == JvPrimClass (long))
- r = VAL (java::lang::Long, j);
- else if (return_type == JvPrimClass (float))
- r = VAL (java::lang::Float, f);
- else if (return_type == JvPrimClass (double))
- r = VAL (java::lang::Double, d);
- else if (return_type == JvPrimClass (boolean))
- r = VAL (java::lang::Boolean, z);
- else if (return_type == JvPrimClass (char))
- r = VAL (java::lang::Character, c);
- else if (return_type == JvPrimClass (void))
- r = NULL;
- else
- {
- JvAssert (return_type == NULL || ! return_type->isPrimitive());
- r = ret_value.l;
- }
-
- return r;
-}
diff --git a/libjava/java/lang/s_atan.c b/libjava/java/lang/s_atan.c
deleted file mode 100644
index 2ee74585423..00000000000
--- a/libjava/java/lang/s_atan.c
+++ /dev/null
@@ -1,181 +0,0 @@
-
-/* @(#)s_atan.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- *
- */
-
-/*
-FUNCTION
- <<atan>>, <<atanf>>---arc tangent
-
-INDEX
- atan
-INDEX
- atanf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double atan(double <[x]>);
- float atanf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double atan(<[x]>);
- double <[x]>;
-
- float atanf(<[x]>);
- float <[x]>;
-
-DESCRIPTION
-
-<<atan>> computes the inverse tangent (arc tangent) of the input value.
-
-<<atanf>> is identical to <<atan>>, save that it operates on <<floats>>.
-
-RETURNS
-@ifinfo
-<<atan>> returns a value in radians, in the range of -pi/2 to pi/2.
-@end ifinfo
-@tex
-<<atan>> returns a value in radians, in the range of $-\pi/2$ to $\pi/2$.
-@end tex
-
-PORTABILITY
-<<atan>> is ANSI C. <<atanf>> is an extension.
-
-*/
-
-/* atan(x)
- * Method
- * 1. Reduce x to positive by atan(x) = -atan(-x).
- * 2. According to the integer k=4t+0.25 chopped, t=x, the argument
- * is further reduced to one of the following intervals and the
- * arctangent of t is evaluated by the corresponding formula:
- *
- * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...)
- * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) )
- * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) )
- * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) )
- * [39/16,INF] atan(x) = atan(INF) + atan( -1/t )
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double atanhi[] = {
-#else
-static double atanhi[] = {
-#endif
- 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */
- 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */
- 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */
- 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */
-};
-
-#ifdef __STDC__
-static const double atanlo[] = {
-#else
-static double atanlo[] = {
-#endif
- 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */
- 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */
- 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */
- 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */
-};
-
-#ifdef __STDC__
-static const double aT[] = {
-#else
-static double aT[] = {
-#endif
- 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */
- -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */
- 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */
- -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */
- 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */
- -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */
- 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */
- -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */
- 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */
- -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */
- 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */
-};
-
-#ifdef __STDC__
- static const double
-#else
- static double
-#endif
-one = 1.0,
-huge = 1.0e300;
-
-#ifdef __STDC__
- double atan(double x)
-#else
- double atan(x)
- double x;
-#endif
-{
- double w,s1,s2,z;
- int32_t ix,hx,id;
-
- GET_HIGH_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x44100000) { /* if |x| >= 2^66 */
- uint32_t low;
- GET_LOW_WORD(low,x);
- if(ix>0x7ff00000||
- (ix==0x7ff00000&&(low!=0)))
- return x+x; /* NaN */
- if(hx>0) return atanhi[3]+atanlo[3];
- else return -atanhi[3]-atanlo[3];
- } if (ix < 0x3fdc0000) { /* |x| < 0.4375 */
- if (ix < 0x3e200000) { /* |x| < 2^-29 */
- if(huge+x>one) return x; /* raise inexact */
- }
- id = -1;
- } else {
- x = fabs(x);
- if (ix < 0x3ff30000) { /* |x| < 1.1875 */
- if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */
- id = 0; x = (2.0*x-one)/(2.0+x);
- } else { /* 11/16<=|x|< 19/16 */
- id = 1; x = (x-one)/(x+one);
- }
- } else {
- if (ix < 0x40038000) { /* |x| < 2.4375 */
- id = 2; x = (x-1.5)/(one+1.5*x);
- } else { /* 2.4375 <= |x| < 2^66 */
- id = 3; x = -1.0/x;
- }
- }}
- /* end of argument reduction */
- z = x*x;
- w = z*z;
- /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
- s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
- s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
- if (id<0) return x - x*(s1+s2);
- else {
- z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
- return (hx<0)? -z:z;
- }
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_ceil.c b/libjava/java/lang/s_ceil.c
deleted file mode 100644
index 250373b40d1..00000000000
--- a/libjava/java/lang/s_ceil.c
+++ /dev/null
@@ -1,80 +0,0 @@
-
-/* @(#)s_ceil.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * ceil(x)
- * Return x rounded toward -inf to integral value
- * Method:
- * Bit twiddling.
- * Exception:
- * Inexact flag raised if x not equal to ceil(x).
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double huge = 1.0e300;
-#else
-static double huge = 1.0e300;
-#endif
-
-#ifdef __STDC__
- double ceil(double x)
-#else
- double ceil(x)
- double x;
-#endif
-{
- int32_t i0,i1,j0;
- uint32_t i,j;
- EXTRACT_WORDS(i0,i1,x);
- j0 = ((i0>>20)&0x7ff)-0x3ff;
- if(j0<20) {
- if(j0<0) { /* raise inexact if x != 0 */
- if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=0x80000000;i1=0;}
- else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
- }
- } else {
- i = (0x000fffff)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0>0) i0 += (0x00100000)>>j0;
- i0 &= (~i); i1=0;
- }
- }
- } else if (j0>51) {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
- i = ((uint32_t)(0xffffffff))>>(j0-20);
- if((i1&i)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0>0) {
- if(j0==20) i0+=1;
- else {
- j = i1 + (1<<(52-j0));
- if(j<(uint32_t)i1) i0+=1; /* got a carry */
- i1 = j;
- }
- }
- i1 &= (~i);
- }
- }
- INSERT_WORDS(x,i0,i1);
- return x;
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_copysign.c b/libjava/java/lang/s_copysign.c
deleted file mode 100644
index 4804df130dc..00000000000
--- a/libjava/java/lang/s_copysign.c
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/* @(#)s_copysign.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
-<<copysign>>, <<copysignf>>---sign of <[y]>, magnitude of <[x]>
-
-INDEX
- copysign
-INDEX
- copysignf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double copysign (double <[x]>, double <[y]>);
- float copysignf (float <[x]>, float <[y]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double copysign (<[x]>, <[y]>)
- double <[x]>;
- double <[y]>;
-
- float copysignf (<[x]>, <[y]>)
- float <[x]>;
- float <[y]>;
-
-DESCRIPTION
-<<copysign>> constructs a number with the magnitude (absolute value)
-of its first argument, <[x]>, and the sign of its second argument,
-<[y]>.
-
-<<copysignf>> does the same thing; the two functions differ only in
-the type of their arguments and result.
-
-RETURNS
-<<copysign>> returns a <<double>> with the magnitude of
-<[x]> and the sign of <[y]>.
-<<copysignf>> returns a <<float>> with the magnitude of
-<[x]> and the sign of <[y]>.
-
-PORTABILITY
-<<copysign>> is not required by either ANSI C or the System V Interface
-Definition (Issue 2).
-
-*/
-
-/*
- * copysign(double x, double y)
- * copysign(x,y) returns a value with the magnitude of x and
- * with the sign bit of y.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double copysign(double x, double y)
-#else
- double copysign(x,y)
- double x,y;
-#endif
-{
- uint32_t hx,hy;
- GET_HIGH_WORD(hx,x);
- GET_HIGH_WORD(hy,y);
- SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
- return x;
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_cos.c b/libjava/java/lang/s_cos.c
deleted file mode 100644
index be1538d4c0b..00000000000
--- a/libjava/java/lang/s_cos.c
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/* @(#)s_cos.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* cos(x)
- * Return cosine function of x.
- *
- * kernel function:
- * __kernel_sin ... sine function on [-pi/4,pi/4]
- * __kernel_cos ... cosine function on [-pi/4,pi/4]
- * __ieee754_rem_pio2 ... argument reduction routine
- *
- * Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- * in [-pi/4 , +pi/4], and let n = k mod 4.
- * We have
- *
- * n sin(x) cos(x) tan(x)
- * ----------------------------------------------------------
- * 0 S C T
- * 1 C -S -1/T
- * 2 -S -C T
- * 3 -C S -1/T
- * ----------------------------------------------------------
- *
- * Special cases:
- * Let trig be any of sin, cos, or tan.
- * trig(+-INF) is NaN, with signals;
- * trig(NaN) is that NaN;
- *
- * Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double cos(double x)
-#else
- double cos(x)
- double x;
-#endif
-{
- double y[2],z=0.0;
- int32_t n,ix;
-
- /* High word of x. */
- GET_HIGH_WORD(ix,x);
-
- /* |x| ~< pi/4 */
- ix &= 0x7fffffff;
- if(ix <= 0x3fe921fb) return __kernel_cos(x,z);
-
- /* cos(Inf or NaN) is NaN */
- else if (ix>=0x7ff00000) return x-x;
-
- /* argument reduction needed */
- else {
- n = __ieee754_rem_pio2(x,y);
- switch(n&3) {
- case 0: return __kernel_cos(y[0],y[1]);
- case 1: return -__kernel_sin(y[0],y[1],1);
- case 2: return -__kernel_cos(y[0],y[1]);
- default:
- return __kernel_sin(y[0],y[1],1);
- }
- }
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_fabs.c b/libjava/java/lang/s_fabs.c
deleted file mode 100644
index dfee33fecdb..00000000000
--- a/libjava/java/lang/s_fabs.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/* @(#)s_fabs.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<fabs>>, <<fabsf>>---absolute value (magnitude)
-INDEX
- fabs
-INDEX
- fabsf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double fabs(double <[x]>);
- float fabsf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double fabs(<[x]>)
- double <[x]>;
-
- float fabsf(<[x]>)
- float <[x]>;
-
-DESCRIPTION
-<<fabs>> and <<fabsf>> calculate
-@tex
-$|x|$,
-@end tex
-the absolute value (magnitude) of the argument <[x]>, by direct
-manipulation of the bit representation of <[x]>.
-
-RETURNS
-The calculated value is returned. No errors are detected.
-
-PORTABILITY
-<<fabs>> is ANSI.
-<<fabsf>> is an extension.
-
-*/
-
-/*
- * fabs(x) returns the absolute value of x.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double fabs(double x)
-#else
- double fabs(x)
- double x;
-#endif
-{
- uint32_t high;
- GET_HIGH_WORD(high,x);
- SET_HIGH_WORD(x,high&0x7fffffff);
- return x;
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_floor.c b/libjava/java/lang/s_floor.c
deleted file mode 100644
index 77e39cb7de0..00000000000
--- a/libjava/java/lang/s_floor.c
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/* @(#)s_floor.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
-<<floor>>, <<floorf>>, <<ceil>>, <<ceilf>>---floor and ceiling
-INDEX
- floor
-INDEX
- floorf
-INDEX
- ceil
-INDEX
- ceilf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double floor(double <[x]>);
- float floorf(float <[x]>);
- double ceil(double <[x]>);
- float ceilf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double floor(<[x]>)
- double <[x]>;
- float floorf(<[x]>)
- float <[x]>;
- double ceil(<[x]>)
- double <[x]>;
- float ceilf(<[x]>)
- float <[x]>;
-
-DESCRIPTION
-<<floor>> and <<floorf>> find
-@tex
-$\lfloor x \rfloor$,
-@end tex
-the nearest integer less than or equal to <[x]>.
-<<ceil>> and <<ceilf>> find
-@tex
-$\lceil x\rceil$,
-@end tex
-the nearest integer greater than or equal to <[x]>.
-
-RETURNS
-<<floor>> and <<ceil>> return the integer result as a double.
-<<floorf>> and <<ceilf>> return the integer result as a float.
-
-PORTABILITY
-<<floor>> and <<ceil>> are ANSI.
-<<floorf>> and <<ceilf>> are extensions.
-
-
-*/
-
-/*
- * floor(x)
- * Return x rounded toward -inf to integral value
- * Method:
- * Bit twiddling.
- * Exception:
- * Inexact flag raised if x not equal to floor(x).
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double huge = 1.0e300;
-#else
-static double huge = 1.0e300;
-#endif
-
-#ifdef __STDC__
- double floor(double x)
-#else
- double floor(x)
- double x;
-#endif
-{
- int32_t i0,i1,j0;
- uint32_t i,j;
- EXTRACT_WORDS(i0,i1,x);
- j0 = ((i0>>20)&0x7ff)-0x3ff;
- if(j0<20) {
- if(j0<0) { /* raise inexact if x != 0 */
- if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=i1=0;}
- else if(((i0&0x7fffffff)|i1)!=0)
- { i0=0xbff00000;i1=0;}
- }
- } else {
- i = (0x000fffff)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0<0) i0 += (0x00100000)>>j0;
- i0 &= (~i); i1=0;
- }
- }
- } else if (j0>51) {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
- i = ((uint32_t)(0xffffffff))>>(j0-20);
- if((i1&i)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0<0) {
- if(j0==20) i0+=1;
- else {
- j = i1+(1<<(52-j0));
- if(j<(uint32_t)i1) i0 +=1 ; /* got a carry */
- i1=j;
- }
- }
- i1 &= (~i);
- }
- }
- INSERT_WORDS(x,i0,i1);
- return x;
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_rint.c b/libjava/java/lang/s_rint.c
deleted file mode 100644
index 5d3f8114e2b..00000000000
--- a/libjava/java/lang/s_rint.c
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/* @(#)s_rint.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * rint(x)
- * Return x rounded to integral value according to the prevailing
- * rounding mode.
- * Method:
- * Using floating addition.
- * Exception:
- * Inexact flag raised if x not equal to rint(x).
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-TWO52[2]={
- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
-};
-
-#ifdef __STDC__
- double rint(double x)
-#else
- double rint(x)
- double x;
-#endif
-{
- int32_t i0,j0,sx;
- uint32_t i,i1;
- double t;
- volatile double w;
- EXTRACT_WORDS(i0,i1,x);
- sx = (i0>>31)&1;
- j0 = ((i0>>20)&0x7ff)-0x3ff;
- if(j0<20) {
- if(j0<0) {
- if(((i0&0x7fffffff)|i1)==0) return x;
- i1 |= (i0&0x0fffff);
- i0 &= 0xfffe0000;
- i0 |= ((i1|-i1)>>12)&0x80000;
- SET_HIGH_WORD(x,i0);
- w = TWO52[sx]+x;
- t = w-TWO52[sx];
- GET_HIGH_WORD(i0,t);
- SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
- } else {
- i = (0x000fffff)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- i>>=1;
- if(((i0&i)|i1)!=0) {
- if(j0==19) i1 = 0x40000000; else
- i0 = (i0&(~i))|((0x20000)>>j0);
- }
- }
- } else if (j0>51) {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
- i = ((uint32_t)(0xffffffff))>>(j0-20);
- if((i1&i)==0) return x; /* x is integral */
- i>>=1;
- if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
- }
- INSERT_WORDS(x,i0,i1);
- w = TWO52[sx]+x;
- return w-TWO52[sx];
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_scalbn.c b/libjava/java/lang/s_scalbn.c
deleted file mode 100644
index 36ee88981ba..00000000000
--- a/libjava/java/lang/s_scalbn.c
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/* @(#)s_scalbn.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
-<<scalbn>>, <<scalbnf>>---scale by integer
-INDEX
- scalbn
-INDEX
- scalbnf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double scalbn(double <[x]>, int <[y]>);
- float scalbnf(float <[x]>, int <[y]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double scalbn(<[x]>,<[y]>)
- double <[x]>;
- int <[y]>;
- float scalbnf(<[x]>,<[y]>)
- float <[x]>;
- int <[y]>;
-
-DESCRIPTION
-<<scalbn>> and <<scalbnf>> scale <[x]> by <[n]>, returning <[x]> times
-2 to the power <[n]>. The result is computed by manipulating the
-exponent, rather than by actually performing an exponentiation or
-multiplication.
-
-RETURNS
-<[x]> times 2 to the power <[n]>.
-
-PORTABILITY
-Neither <<scalbn>> nor <<scalbnf>> is required by ANSI C or by the System V
-Interface Definition (Issue 2).
-
-*/
-
-/*
- * scalbn (double x, int n)
- * scalbn(x,n) returns x* 2**n computed by exponent
- * manipulation rather than by actually performing an
- * exponentiation or a multiplication.
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
-twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
-huge = 1.0e+300,
-tiny = 1.0e-300;
-
-#ifdef __STDC__
- double scalbn (double x, int n)
-#else
- double scalbn (x,n)
- double x; int n;
-#endif
-{
- int32_t k,hx,lx;
- EXTRACT_WORDS(hx,lx,x);
- k = (hx&0x7ff00000)>>20; /* extract exponent */
- if (k==0) { /* 0 or subnormal x */
- if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
- x *= two54;
- GET_HIGH_WORD(hx,x);
- k = ((hx&0x7ff00000)>>20) - 54;
- if (n< -50000) return tiny*x; /*underflow*/
- }
- if (k==0x7ff) return x+x; /* NaN or Inf */
- k = k+n;
- if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */
- if (k > 0) /* normal result */
- {SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
- if (k <= -54) {
- if (n > 50000) /* in case integer overflow in n+k */
- return huge*copysign(huge,x); /*overflow*/
- else return tiny*copysign(tiny,x); /*underflow*/
- }
- k += 54; /* subnormal result */
- SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
- return x*twom54;
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_sin.c b/libjava/java/lang/s_sin.c
deleted file mode 100644
index d315455549c..00000000000
--- a/libjava/java/lang/s_sin.c
+++ /dev/null
@@ -1,132 +0,0 @@
-
-/* @(#)s_sin.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<sin>>, <<sinf>>, <<cos>>, <<cosf>>---sine or cosine
-INDEX
-sin
-INDEX
-sinf
-INDEX
-cos
-INDEX
-cosf
-ANSI_SYNOPSIS
- #include <math.h>
- double sin(double <[x]>);
- float sinf(float <[x]>);
- double cos(double <[x]>);
- float cosf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double sin(<[x]>)
- double <[x]>;
- float sinf(<[x]>)
- float <[x]>;
-
- double cos(<[x]>)
- double <[x]>;
- float cosf(<[x]>)
- float <[x]>;
-
-DESCRIPTION
- <<sin>> and <<cos>> compute (respectively) the sine and cosine
- of the argument <[x]>. Angles are specified in radians.
-
- <<sinf>> and <<cosf>> are identical, save that they take and
- return <<float>> values.
-
-
-RETURNS
- The sine or cosine of <[x]> is returned.
-
-PORTABILITY
- <<sin>> and <<cos>> are ANSI C.
- <<sinf>> and <<cosf>> are extensions.
-
-QUICKREF
- sin ansi pure
- sinf - pure
-*/
-
-/* sin(x)
- * Return sine function of x.
- *
- * kernel function:
- * __kernel_sin ... sine function on [-pi/4,pi/4]
- * __kernel_cos ... cose function on [-pi/4,pi/4]
- * __ieee754_rem_pio2 ... argument reduction routine
- *
- * Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- * in [-pi/4 , +pi/4], and let n = k mod 4.
- * We have
- *
- * n sin(x) cos(x) tan(x)
- * ----------------------------------------------------------
- * 0 S C T
- * 1 C -S -1/T
- * 2 -S -C T
- * 3 -C S -1/T
- * ----------------------------------------------------------
- *
- * Special cases:
- * Let trig be any of sin, cos, or tan.
- * trig(+-INF) is NaN, with signals;
- * trig(NaN) is that NaN;
- *
- * Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double sin(double x)
-#else
- double sin(x)
- double x;
-#endif
-{
- double y[2],z=0.0;
- int32_t n,ix;
-
- /* High word of x. */
- GET_HIGH_WORD(ix,x);
-
- /* |x| ~< pi/4 */
- ix &= 0x7fffffff;
- if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0);
-
- /* sin(Inf or NaN) is NaN */
- else if (ix>=0x7ff00000) return x-x;
-
- /* argument reduction needed */
- else {
- n = __ieee754_rem_pio2(x,y);
- switch(n&3) {
- case 0: return __kernel_sin(y[0],y[1],1);
- case 1: return __kernel_cos(y[0],y[1]);
- case 2: return -__kernel_sin(y[0],y[1],1);
- default:
- return -__kernel_cos(y[0],y[1]);
- }
- }
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/s_tan.c b/libjava/java/lang/s_tan.c
deleted file mode 100644
index 20995fcbdee..00000000000
--- a/libjava/java/lang/s_tan.c
+++ /dev/null
@@ -1,114 +0,0 @@
-
-/* @(#)s_tan.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-
-/*
-
-FUNCTION
- <<tan>>, <<tanf>>---tangent
-
-INDEX
-tan
-INDEX
-tanf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double tan(double <[x]>);
- float tanf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double tan(<[x]>)
- double <[x]>;
-
- float tanf(<[x]>)
- float <[x]>;
-
-
-DESCRIPTION
-<<tan>> computes the tangent of the argument <[x]>.
-Angles are specified in radians.
-
-<<tanf>> is identical, save that it takes and returns <<float>> values.
-
-RETURNS
-The tangent of <[x]> is returned.
-
-PORTABILITY
-<<tan>> is ANSI. <<tanf>> is an extension.
-*/
-
-/* tan(x)
- * Return tangent function of x.
- *
- * kernel function:
- * __kernel_tan ... tangent function on [-pi/4,pi/4]
- * __ieee754_rem_pio2 ... argument reduction routine
- *
- * Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- * in [-pi/4 , +pi/4], and let n = k mod 4.
- * We have
- *
- * n sin(x) cos(x) tan(x)
- * ----------------------------------------------------------
- * 0 S C T
- * 1 C -S -1/T
- * 2 -S -C T
- * 3 -C S -1/T
- * ----------------------------------------------------------
- *
- * Special cases:
- * Let trig be any of sin, cos, or tan.
- * trig(+-INF) is NaN, with signals;
- * trig(NaN) is that NaN;
- *
- * Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "fdlibm.h"
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double tan(double x)
-#else
- double tan(x)
- double x;
-#endif
-{
- double y[2],z=0.0;
- int32_t n,ix;
-
- /* High word of x. */
- GET_HIGH_WORD(ix,x);
-
- /* |x| ~< pi/4 */
- ix &= 0x7fffffff;
- if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1);
-
- /* tan(Inf or NaN) is NaN */
- else if (ix>=0x7ff00000) return x-x; /* NaN */
-
- /* argument reduction needed */
- else {
- n = __ieee754_rem_pio2(x,y);
- return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
- -1 -- n odd */
- }
-}
-
-#endif /* _DOUBLE_IS_32BITS */
diff --git a/libjava/java/lang/sf_rint.c b/libjava/java/lang/sf_rint.c
deleted file mode 100644
index f442072874e..00000000000
--- a/libjava/java/lang/sf_rint.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* sf_rint.c -- float version of s_rint.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include "fdlibm.h"
-
-#ifdef __STDC__
-static const float
-#else
-static float
-#endif
-TWO23[2]={
- 8.3886080000e+06, /* 0x4b000000 */
- -8.3886080000e+06, /* 0xcb000000 */
-};
-
-#ifdef __STDC__
- float rintf(float x)
-#else
- float rintf(x)
- float x;
-#endif
-{
- int32_t i0,j0,sx;
- uint32_t i,i1;
- float w,t;
- GET_FLOAT_WORD(i0,x);
- sx = (i0>>31)&1;
- j0 = ((i0>>23)&0xff)-0x7f;
- if(j0<23) {
- if(j0<0) {
- if((i0&0x7fffffff)==0) return x;
- i1 = (i0&0x07fffff);
- i0 &= 0xfff00000;
- i0 |= ((i1|-i1)>>9)&0x400000;
- SET_FLOAT_WORD(x,i0);
- w = TWO23[sx]+x;
- t = w-TWO23[sx];
- GET_FLOAT_WORD(i0,t);
- SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- i>>=1;
- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
- }
- } else {
- if(j0==0x80) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- }
- SET_FLOAT_WORD(x,i0);
- w = TWO23[sx]+x;
- return w-TWO23[sx];
-}
-
-#ifdef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double rint(double x)
-#else
- double rint(x)
- double x;
-#endif
-{
- return (double) rintf((float) x);
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/strtod.c b/libjava/java/lang/strtod.c
deleted file mode 100644
index e0e8e74828b..00000000000
--- a/libjava/java/lang/strtod.c
+++ /dev/null
@@ -1,720 +0,0 @@
-/*
-FUNCTION
- <<strtod>>, <<strtodf>>---string to double or float
-
-INDEX
- strtod
-INDEX
- _strtod_r
-INDEX
- strtodf
-
-ANSI_SYNOPSIS
- #include <stdlib.h>
- double strtod(const char *<[str]>, char **<[tail]>);
- float strtodf(const char *<[str]>, char **<[tail]>);
-
- double _strtod_r(void *<[reent]>,
- const char *<[str]>, char **<[tail]>);
-
-TRAD_SYNOPSIS
- #include <stdlib.h>
- double strtod(<[str]>,<[tail]>)
- char *<[str]>;
- char **<[tail]>;
-
- float strtodf(<[str]>,<[tail]>)
- char *<[str]>;
- char **<[tail]>;
-
- double _strtod_r(<[reent]>,<[str]>,<[tail]>)
- char *<[reent]>;
- char *<[str]>;
- char **<[tail]>;
-
-DESCRIPTION
- The function <<strtod>> parses the character string <[str]>,
- producing a substring which can be converted to a double
- value. The substring converted is the longest initial
- subsequence of <[str]>, beginning with the first
- non-whitespace character, that has the format:
- .[+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>]
- The substring contains no characters if <[str]> is empty, consists
- entirely of whitespace, or if the first non-whitespace
- character is something other than <<+>>, <<->>, <<.>>, or a
- digit. If the substring is empty, no conversion is done, and
- the value of <[str]> is stored in <<*<[tail]>>>. Otherwise,
- the substring is converted, and a pointer to the final string
- (which will contain at least the terminating null character of
- <[str]>) is stored in <<*<[tail]>>>. If you want no
- assignment to <<*<[tail]>>>, pass a null pointer as <[tail]>.
- <<strtodf>> is identical to <<strtod>> except for its return type.
-
- This implementation returns the nearest machine number to the
- input decimal string. Ties are broken by using the IEEE
- round-even rule.
-
- The alternate function <<_strtod_r>> is a reentrant version.
- The extra argument <[reent]> is a pointer to a reentrancy structure.
-
-RETURNS
- <<strtod>> returns the converted substring value, if any. If
- no conversion could be performed, 0 is returned. If the
- correct value is out of the range of representable values,
- plus or minus <<HUGE_VAL>> is returned, and <<ERANGE>> is
- stored in errno. If the correct value would cause underflow, 0
- is returned and <<ERANGE>> is stored in errno.
-
-Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
-<<lseek>>, <<read>>, <<sbrk>>, <<write>>.
-*/
-
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991 by AT&T.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-/* Please send bug reports to
- David M. Gay
- AT&T Bell Laboratories, Room 2C-463
- 600 Mountain Avenue
- Murray Hill, NJ 07974-2070
- U.S.A.
- dmg@research.att.com or research!dmg
- */
-
-#include <string.h>
-#include <float.h>
-#include <errno.h>
-#include "mprec.h"
-
-double
-_DEFUN (_strtod_r, (ptr, s00, se),
- struct _Jv_reent *ptr _AND
- _CONST char *s00 _AND
- char **se)
-{
- int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign, e1, esign, i, j,
- k, nd, nd0, nf, nz, nz0, sign;
- int digits = 0; /* Number of digits found in fraction part. */
- long e;
- _CONST char *s, *s0, *s1;
- double aadj, aadj1, adj;
- long L;
- unsigned long y, z;
- union double_union rv, rv0;
-
- _Jv_Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;
- sign = nz0 = nz = 0;
- rv.d = 0.;
- for (s = s00;; s++)
- switch (*s)
- {
- case '-':
- sign = 1;
- /* no break */
- case '+':
- if (*++s)
- goto break2;
- /* no break */
- case 0:
- s = s00;
- goto ret;
- case '\t':
- case '\n':
- case '\v':
- case '\f':
- case '\r':
- case ' ':
- continue;
- default:
- goto break2;
- }
-break2:
- if (*s == '0')
- {
- digits++;
- nz0 = 1;
- while (*++s == '0')
- digits++;
- if (!*s)
- goto ret;
- }
- s0 = s;
- y = z = 0;
- for (nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++)
- {
- digits++;
- if (nd < 9)
- y = 10 * y + c - '0';
- else if (nd < 16)
- z = 10 * z + c - '0';
- }
- nd0 = nd;
- if (c == '.')
- {
- c = *++s;
- if (!nd)
- {
- for (; c == '0'; c = *++s)
- {
- digits++;
- nz++;
- }
- if (c > '0' && c <= '9')
- {
- digits++;
- s0 = s;
- nf += nz;
- nz = 0;
- goto have_dig;
- }
- goto dig_done;
- }
- for (; c >= '0' && c <= '9'; c = *++s)
- {
- digits++;
- have_dig:
- nz++;
- if (c -= '0')
- {
- nf += nz;
- for (i = 1; i < nz; i++)
- if (nd++ < 9)
- y *= 10;
- else if (nd <= DBL_DIG + 1)
- z *= 10;
- if (nd++ < 9)
- y = 10 * y + c;
- else if (nd <= DBL_DIG + 1)
- z = 10 * z + c;
- nz = 0;
- }
- }
- }
-dig_done:
- e = 0;
- if (c == 'e' || c == 'E')
- {
- if (!nd && !nz && !nz0)
- {
- s = s00;
- goto ret;
- }
- s00 = s;
- esign = 0;
- switch (c = *++s)
- {
- case '-':
- esign = 1;
- case '+':
- c = *++s;
- }
- if (c >= '0' && c <= '9')
- {
- while (c == '0')
- c = *++s;
- if (c > '0' && c <= '9')
- {
- e = c - '0';
- s1 = s;
- while ((c = *++s) >= '0' && c <= '9')
- e = 10 * e + c - '0';
- if (s - s1 > 8)
- /* Avoid confusion from exponents
- * so large that e might overflow.
- */
- e = 9999999L;
- if (esign)
- e = -e;
- }
- else
- {
- /* No exponent after an 'E' : that's an error. */
- ptr->_errno = EINVAL;
- e = 0;
- goto ret;
- }
- }
- else
- s = s00;
- }
- if (!nd)
- {
- if (!nz && !nz0)
- s = s00;
- goto ret;
- }
- e1 = e -= nf;
-
- /* Now we have nd0 digits, starting at s0, followed by a
- * decimal point, followed by nd-nd0 digits. The number we're
- * after is the integer represented by those digits times
- * 10**e */
-
- if (!nd0)
- nd0 = nd;
- k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1;
- rv.d = y;
- if (k > 9)
- rv.d = tens[k - 9] * rv.d + z;
- bd0 = 0;
- if (nd <= DBL_DIG
-#ifndef RND_PRODQUOT
- && FLT_ROUNDS == 1
-#endif
- )
- {
- if (!e)
- goto ret;
- if (e > 0)
- {
- if (e <= Ten_pmax)
- {
-#ifdef VAX
- goto vax_ovfl_check;
-#else
- /* rv.d = */ rounded_product (rv.d, tens[e]);
- goto ret;
-#endif
- }
- i = DBL_DIG - nd;
- if (e <= Ten_pmax + i)
- {
- /* A fancier test would sometimes let us do
- * this for larger i values.
- */
- e -= i;
- rv.d *= tens[i];
-#ifdef VAX
- /* VAX exponent range is so narrow we must
- * worry about overflow here...
- */
- vax_ovfl_check:
- word0 (rv) -= P * Exp_msk1;
- /* rv.d = */ rounded_product (rv.d, tens[e]);
- if ((word0 (rv) & Exp_mask)
- > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P))
- goto ovfl;
- word0 (rv) += P * Exp_msk1;
-#else
- /* rv.d = */ rounded_product (rv.d, tens[e]);
-#endif
- goto ret;
- }
- }
-#ifndef Inaccurate_Divide
- else if (e >= -Ten_pmax)
- {
- /* rv.d = */ rounded_quotient (rv.d, tens[-e]);
- goto ret;
- }
-#endif
- }
- e1 += nd - k;
-
- /* Get starting approximation = rv.d * 10**e1 */
-
- if (e1 > 0)
- {
- if ((i = e1 & 15))
- rv.d *= tens[i];
-
- if (e1 &= ~15)
- {
- if (e1 > DBL_MAX_10_EXP)
- {
- ovfl:
- ptr->_errno = ERANGE;
-
- /* Force result to IEEE infinity. */
- word0 (rv) = Exp_mask;
- word1 (rv) = 0;
-
- if (bd0)
- goto retfree;
- goto ret;
- }
- if (e1 >>= 4)
- {
- for (j = 0; e1 > 1; j++, e1 >>= 1)
- if (e1 & 1)
- rv.d *= bigtens[j];
- /* The last multiplication could overflow. */
- word0 (rv) -= P * Exp_msk1;
- rv.d *= bigtens[j];
- if ((z = word0 (rv) & Exp_mask)
- > Exp_msk1 * (DBL_MAX_EXP + Bias - P))
- goto ovfl;
- if (z > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P))
- {
- /* set to largest number */
- /* (Can't trust DBL_MAX) */
- word0 (rv) = Big0;
-#ifndef _DOUBLE_IS_32BITS
- word1 (rv) = Big1;
-#endif
- }
- else
- word0 (rv) += P * Exp_msk1;
- }
-
- }
- }
- else if (e1 < 0)
- {
- e1 = -e1;
- if ((i = e1 & 15))
- rv.d /= tens[i];
- if (e1 &= ~15)
- {
- e1 >>= 4;
- if (e1 >= 1 << n_bigtens)
- goto undfl;
- for (j = 0; e1 > 1; j++, e1 >>= 1)
- if (e1 & 1)
- rv.d *= tinytens[j];
- /* The last multiplication could underflow. */
- rv0.d = rv.d;
- rv.d *= tinytens[j];
- if (!rv.d)
- {
- rv.d = 2. * rv0.d;
- rv.d *= tinytens[j];
- if (!rv.d)
- {
- undfl:
- rv.d = 0.;
- ptr->_errno = ERANGE;
- if (bd0)
- goto retfree;
- goto ret;
- }
-#ifndef _DOUBLE_IS_32BITS
- word0 (rv) = Tiny0;
- word1 (rv) = Tiny1;
-#else
- word0 (rv) = Tiny1;
-#endif
- /* The refinement below will clean
- * this approximation up.
- */
- }
- }
- }
-
- /* Now the hard part -- adjusting rv to the correct value.*/
-
- /* Put digits into bd: true value = bd * 10^e */
-
- bd0 = s2b (ptr, s0, nd0, nd, y);
-
- for (;;)
- {
- bd = Balloc (ptr, bd0->_k);
- Bcopy (bd, bd0);
- bb = d2b (ptr, rv.d, &bbe, &bbbits); /* rv.d = bb * 2^bbe */
- bs = i2b (ptr, 1);
-
- if (e >= 0)
- {
- bb2 = bb5 = 0;
- bd2 = bd5 = e;
- }
- else
- {
- bb2 = bb5 = -e;
- bd2 = bd5 = 0;
- }
- if (bbe >= 0)
- bb2 += bbe;
- else
- bd2 -= bbe;
- bs2 = bb2;
-#ifdef Sudden_Underflow
-#ifdef IBM
- j = 1 + 4 * P - 3 - bbbits + ((bbe + bbbits - 1) & 3);
-#else
- j = P + 1 - bbbits;
-#endif
-#else
- i = bbe + bbbits - 1; /* logb(rv.d) */
- if (i < Emin) /* denormal */
- j = bbe + (P - Emin);
- else
- j = P + 1 - bbbits;
-#endif
- bb2 += j;
- bd2 += j;
- i = bb2 < bd2 ? bb2 : bd2;
- if (i > bs2)
- i = bs2;
- if (i > 0)
- {
- bb2 -= i;
- bd2 -= i;
- bs2 -= i;
- }
- if (bb5 > 0)
- {
- bs = pow5mult (ptr, bs, bb5);
- bb1 = mult (ptr, bs, bb);
- Bfree (ptr, bb);
- bb = bb1;
- }
- if (bb2 > 0)
- bb = lshift (ptr, bb, bb2);
- if (bd5 > 0)
- bd = pow5mult (ptr, bd, bd5);
- if (bd2 > 0)
- bd = lshift (ptr, bd, bd2);
- if (bs2 > 0)
- bs = lshift (ptr, bs, bs2);
- delta = diff (ptr, bb, bd);
- dsign = delta->_sign;
- delta->_sign = 0;
- i = cmp (delta, bs);
- if (i < 0)
- {
- /* Error is less than half an ulp -- check for
- * special case of mantissa a power of two.
- */
- if (dsign || word1 (rv) || word0 (rv) & Bndry_mask)
- break;
- delta = lshift (ptr, delta, Log2P);
- if (cmp (delta, bs) > 0)
- goto drop_down;
- break;
- }
- if (i == 0)
- {
- /* exactly half-way between */
- if (dsign)
- {
- if ((word0 (rv) & Bndry_mask1) == Bndry_mask1
- && word1 (rv) == 0xffffffff)
- {
- /*boundary case -- increment exponent*/
- word0 (rv) = (word0 (rv) & Exp_mask)
- + Exp_msk1
-#ifdef IBM
- | Exp_msk1 >> 4
-#endif
- ;
-#ifndef _DOUBLE_IS_32BITS
- word1 (rv) = 0;
-#endif
- break;
- }
- }
- else if (!(word0 (rv) & Bndry_mask) && !word1 (rv))
- {
- drop_down:
- /* boundary case -- decrement exponent */
-#ifdef Sudden_Underflow
- L = word0 (rv) & Exp_mask;
-#ifdef IBM
- if (L < Exp_msk1)
-#else
- if (L <= Exp_msk1)
-#endif
- goto undfl;
- L -= Exp_msk1;
-#else
- L = (word0 (rv) & Exp_mask) - Exp_msk1;
-#endif
- word0 (rv) = L | Bndry_mask1;
-#ifndef _DOUBLE_IS_32BITS
- word1 (rv) = 0xffffffff;
-#endif
-#ifdef IBM
- goto cont;
-#else
- break;
-#endif
- }
-#ifndef ROUND_BIASED
- if (!(word1 (rv) & LSB))
- break;
-#endif
- if (dsign)
- rv.d += ulp (rv.d);
-#ifndef ROUND_BIASED
- else
- {
- rv.d -= ulp (rv.d);
-#ifndef Sudden_Underflow
- if (!rv.d)
- goto undfl;
-#endif
- }
-#endif
- break;
- }
- if ((aadj = ratio (delta, bs)) <= 2.)
- {
- if (dsign)
- aadj = aadj1 = 1.;
- else if (word1 (rv) || word0 (rv) & Bndry_mask)
- {
-#ifndef Sudden_Underflow
- if (word1 (rv) == Tiny1 && !word0 (rv))
- goto undfl;
-#endif
- aadj = 1.;
- aadj1 = -1.;
- }
- else
- {
- /* special case -- power of FLT_RADIX to be */
- /* rounded down... */
-
- if (aadj < 2. / FLT_RADIX)
- aadj = 1. / FLT_RADIX;
- else
- aadj *= 0.5;
- aadj1 = -aadj;
- }
- }
- else
- {
- aadj *= 0.5;
- aadj1 = dsign ? aadj : -aadj;
-#ifdef Check_FLT_ROUNDS
- switch (FLT_ROUNDS)
- {
- case 2: /* towards +infinity */
- aadj1 -= 0.5;
- break;
- case 0: /* towards 0 */
- case 3: /* towards -infinity */
- aadj1 += 0.5;
- }
-#else
- if (FLT_ROUNDS == 0)
- aadj1 += 0.5;
-#endif
- }
- y = word0 (rv) & Exp_mask;
-
- /* Check for overflow */
-
- if (y == Exp_msk1 * (DBL_MAX_EXP + Bias - 1))
- {
- rv0.d = rv.d;
- word0 (rv) -= P * Exp_msk1;
- adj = aadj1 * ulp (rv.d);
- rv.d += adj;
- if ((word0 (rv) & Exp_mask) >=
- Exp_msk1 * (DBL_MAX_EXP + Bias - P))
- {
- if (word0 (rv0) == Big0 && word1 (rv0) == Big1)
- goto ovfl;
-#ifdef _DOUBLE_IS_32BITS
- word0 (rv) = Big1;
-#else
- word0 (rv) = Big0;
- word1 (rv) = Big1;
-#endif
- goto cont;
- }
- else
- word0 (rv) += P * Exp_msk1;
- }
- else
- {
-#ifdef Sudden_Underflow
- if ((word0 (rv) & Exp_mask) <= P * Exp_msk1)
- {
- rv0.d = rv.d;
- word0 (rv) += P * Exp_msk1;
- adj = aadj1 * ulp (rv.d);
- rv.d += adj;
-#ifdef IBM
- if ((word0 (rv) & Exp_mask) < P * Exp_msk1)
-#else
- if ((word0 (rv) & Exp_mask) <= P * Exp_msk1)
-#endif
- {
- if (word0 (rv0) == Tiny0
- && word1 (rv0) == Tiny1)
- goto undfl;
- word0 (rv) = Tiny0;
- word1 (rv) = Tiny1;
- goto cont;
- }
- else
- word0 (rv) -= P * Exp_msk1;
- }
- else
- {
- adj = aadj1 * ulp (rv.d);
- rv.d += adj;
- }
-#else
- /* Compute adj so that the IEEE rounding rules will
- * correctly round rv.d + adj in some half-way cases.
- * If rv.d * ulp(rv.d) is denormalized (i.e.,
- * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid
- * trouble from bits lost to denormalization;
- * example: 1.2e-307 .
- */
- if (y <= (P - 1) * Exp_msk1 && aadj >= 1.)
- {
- aadj1 = (double) (int) (aadj + 0.5);
- if (!dsign)
- aadj1 = -aadj1;
- }
- adj = aadj1 * ulp (rv.d);
- rv.d += adj;
-#endif
- }
- z = word0 (rv) & Exp_mask;
- if (y == z)
- {
- /* Can we stop now? */
- L = aadj;
- aadj -= L;
- /* The tolerances below are conservative. */
- if (dsign || word1 (rv) || word0 (rv) & Bndry_mask)
- {
- if (aadj < .4999999 || aadj > .5000001)
- break;
- }
- else if (aadj < .4999999 / FLT_RADIX)
- break;
- }
- cont:
- Bfree (ptr, bb);
- Bfree (ptr, bd);
- Bfree (ptr, bs);
- Bfree (ptr, delta);
- }
-retfree:
- Bfree (ptr, bb);
- Bfree (ptr, bd);
- Bfree (ptr, bs);
- Bfree (ptr, bd0);
- Bfree (ptr, delta);
-ret:
- if (se)
- *se = (char *) s;
- if (digits == 0)
- ptr->_errno = EINVAL;
- return sign ? -rv.d : rv.d;
-}
-
diff --git a/libjava/java/lang/w_acos.c b/libjava/java/lang/w_acos.c
deleted file mode 100644
index c9ca99c4041..00000000000
--- a/libjava/java/lang/w_acos.c
+++ /dev/null
@@ -1,118 +0,0 @@
-
-/* @(#)w_acos.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<acos>>, <<acosf>>---arc cosine
-
-INDEX
- acos
-INDEX
- acosf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double acos(double <[x]>);
- float acosf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double acos(<[x]>)
- double <[x]>;
-
- float acosf(<[x]>)
- float <[x]>;
-
-
-
-DESCRIPTION
-
- <<acos>> computes the inverse cosine (arc cosine) of the input value.
- Arguments to <<acos>> must be in the range @minus{}1 to 1.
-
- <<acosf>> is identical to <<acos>>, except that it performs
- its calculations on <<floats>>.
-
-RETURNS
- @ifinfo
- <<acos>> and <<acosf>> return values in radians, in the range of 0 to pi.
- @end ifinfo
- @tex
- <<acos>> and <<acosf>> return values in radians, in the range of <<0>> to $\pi$.
- @end tex
-
- If <[x]> is not between @minus{}1 and 1, the returned value is NaN
- (not a number) the global variable <<errno>> is set to <<EDOM>>, and a
- <<DOMAIN error>> message is sent as standard error output.
-
- You can modify error handling for these functions using <<matherr>>.
-
-
-QUICKREF ANSI SVID POSIX RENTRANT
- acos y,y,y,m
- acosf n,n,n,m
-
-MATHREF
- acos, [-1,1], acos(arg),,,
- acos, NAN, arg,DOMAIN,EDOM
-
-MATHREF
- acosf, [-1,1], acosf(arg),,,
- acosf, NAN, argf,DOMAIN,EDOM
-
-*/
-
-/*
- * wrap_acos(x)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double acos(double x) /* wrapper acos */
-#else
- double acos(x) /* wrapper acos */
- double x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_acos(x);
-#else
- double z;
- struct exception exc;
- z = __ieee754_acos(x);
- if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
- if(fabs(x)>1.0) {
- /* acos(|x|>1) */
- exc.type = DOMAIN;
- exc.name = "acos";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- exc.retval = 0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_asin.c b/libjava/java/lang/w_asin.c
deleted file mode 100644
index f6cb271d392..00000000000
--- a/libjava/java/lang/w_asin.c
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/* @(#)w_asin.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- *
- */
-
-/*
-FUNCTION
- <<asin>>, <<asinf>>---arc sine
-
-INDEX
- asin
-INDEX
- asinf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double asin(double <[x]>);
- float asinf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double asin(<[x]>)
- double <[x]>;
-
- float asinf(<[x]>)
- float <[x]>;
-
-
-DESCRIPTION
-
-<<asin>> computes the inverse sine (arc sine) of the argument <[x]>.
-Arguments to <<asin>> must be in the range @minus{}1 to 1.
-
-<<asinf>> is identical to <<asin>>, other than taking and
-returning floats.
-
-You can modify error handling for these routines using <<matherr>>.
-
-RETURNS
-@ifinfo
-<<asin>> returns values in radians, in the range of -pi/2 to pi/2.
-@end ifinfo
-@tex
-<<asin>> returns values in radians, in the range of $-\pi/2$ to $\pi/2$.
-@end tex
-
-If <[x]> is not in the range @minus{}1 to 1, <<asin>> and <<asinf>>
-return NaN (not a number), set the global variable <<errno>> to
-<<EDOM>>, and issue a <<DOMAIN error>> message.
-
-You can change this error treatment using <<matherr>>.
-
-QUICKREF ANSI SVID POSIX RENTRANT
- asin y,y,y,m
- asinf n,n,n,m
-
-MATHREF
- asin, -1<=arg<=1, asin(arg),,,
- asin, NAN, arg,EDOM, DOMAIN
-
-MATHREF
- asinf, -1<=arg<=1, asin(arg),,,
- asinf, NAN, arg,EDOM, DOMAIN
-
-
-*/
-
-/*
- * wrapper asin(x)
- */
-
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double asin(double x) /* wrapper asin */
-#else
- double asin(x) /* wrapper asin */
- double x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_asin(x);
-#else
- double z;
- struct exception exc;
- z = __ieee754_asin(x);
- if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
- if(fabs(x)>1.0) {
- /* asin(|x|>1) */
- exc.type = DOMAIN;
- exc.name = "asin";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- exc.retval = 0.0;
- if(_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_atan2.c b/libjava/java/lang/w_atan2.c
deleted file mode 100644
index 91742c72b91..00000000000
--- a/libjava/java/lang/w_atan2.c
+++ /dev/null
@@ -1,117 +0,0 @@
-
-/* @(#)w_atan2.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- *
- */
-
-/*
-FUNCTION
- <<atan2>>, <<atan2f>>---arc tangent of y/x
-
-INDEX
- atan2
-INDEX
- atan2f
-
-ANSI_SYNOPSIS
- #include <math.h>
- double atan2(double <[y]>,double <[x]>);
- float atan2f(float <[y]>,float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double atan2(<[y]>,<[x]>);
- double <[y]>;
- double <[x]>;
-
- float atan2f(<[y]>,<[x]>);
- float <[y]>;
- float <[x]>;
-
-DESCRIPTION
-
-<<atan2>> computes the inverse tangent (arc tangent) of <[y]>/<[x]>.
-<<atan2>> produces the correct result even for angles near
-@ifinfo
-pi/2 or -pi/2
-@end ifinfo
-@tex
-$\pi/2$ or $-\pi/2$
-@end tex
-(that is, when <[x]> is near 0).
-
-<<atan2f>> is identical to <<atan2>>, save that it takes and returns
-<<float>>.
-
-RETURNS
-<<atan2>> and <<atan2f>> return a value in radians, in the range of
-@ifinfo
--pi to pi.
-@end ifinfo
-@tex
-$-\pi$ to $\pi$.
-@end tex
-
-If both <[x]> and <[y]> are 0.0, <<atan2>> causes a <<DOMAIN>> error.
-
-You can modify error handling for these functions using <<matherr>>.
-
-PORTABILITY
-<<atan2>> is ANSI C. <<atan2f>> is an extension.
-
-
-*/
-
-/*
- * wrapper atan2(y,x)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double atan2(double y, double x) /* wrapper atan2 */
-#else
- double atan2(y,x) /* wrapper atan2 */
- double y,x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_atan2(y,x);
-#else
- double z;
- struct exception exc;
- z = __ieee754_atan2(y,x);
- if(_LIB_VERSION == _IEEE_||isnan(x)||isnan(y)) return z;
- if(x==0.0&&y==0.0) {
- /* atan2(+-0,+-0) */
- exc.arg1 = y;
- exc.arg2 = x;
- exc.type = DOMAIN;
- exc.name = "atan2";
- exc.err = 0;
- exc.retval = 0.0;
- if(_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_exp.c b/libjava/java/lang/w_exp.c
deleted file mode 100644
index ae792a84642..00000000000
--- a/libjava/java/lang/w_exp.c
+++ /dev/null
@@ -1,136 +0,0 @@
-
-/* @(#)w_exp.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<exp>>, <<expf>>---exponential
-INDEX
- exp
-INDEX
- expf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double exp(double <[x]>);
- float expf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double exp(<[x]>);
- double <[x]>;
-
- float expf(<[x]>);
- float <[x]>;
-
-DESCRIPTION
- <<exp>> and <<expf>> calculate the exponential of <[x]>, that is,
- @ifinfo
- e raised to the power <[x]> (where e
- @end ifinfo
- @tex
- $e^x$ (where $e$
- @end tex
- is the base of the natural system of logarithms, approximately 2.71828).
-
- You can use the (non-ANSI) function <<matherr>> to specify
- error handling for these functions.
-
-RETURNS
- On success, <<exp>> and <<expf>> return the calculated value.
- If the result underflows, the returned value is <<0>>. If the
- result overflows, the returned value is <<HUGE_VAL>>. In
- either case, <<errno>> is set to <<ERANGE>>.
-
-PORTABILITY
- <<exp>> is ANSI C. <<expf>> is an extension.
-
-*/
-
-/*
- * wrapper exp(x)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
-static const double
-#else
-static double
-#endif
-o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
-u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */
-
-#ifdef __STDC__
- double exp(double x) /* wrapper exp */
-#else
- double exp(x) /* wrapper exp */
- double x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_exp(x);
-#else
- double z;
- struct exception exc;
- z = __ieee754_exp(x);
- if(_LIB_VERSION == _IEEE_) return z;
- if(finite(x)) {
- if(x>o_threshold) {
- /* exp(finite) overflow */
-#ifndef HUGE_VAL
-#define HUGE_VAL inf
- double inf = 0.0;
-
- SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */
-#endif
- exc.type = OVERFLOW;
- exc.name = "exp";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- if (_LIB_VERSION == _SVID_)
- exc.retval = HUGE;
- else
- exc.retval = HUGE_VAL;
- if (_LIB_VERSION == _POSIX_)
- errno = ERANGE;
- else if (!matherr(&exc)) {
- errno = ERANGE;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else if(x<u_threshold) {
- /* exp(finite) underflow */
- exc.type = UNDERFLOW;
- exc.name = "exp";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- exc.retval = 0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = ERANGE;
- else if (!matherr(&exc)) {
- errno = ERANGE;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- }
- }
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_fmod.c b/libjava/java/lang/w_fmod.c
deleted file mode 100644
index b6b36cb76ab..00000000000
--- a/libjava/java/lang/w_fmod.c
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/* @(#)w_fmod.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
-<<fmod>>, <<fmodf>>---floating-point remainder (modulo)
-
-INDEX
-fmod
-INDEX
-fmodf
-
-ANSI_SYNOPSIS
-#include <math.h>
-double fmod(double <[x]>, double <[y]>)
-float fmodf(float <[x]>, float <[y]>)
-
-TRAD_SYNOPSIS
-#include <math.h>
-double fmod(<[x]>, <[y]>)
-double (<[x]>, <[y]>);
-
-float fmodf(<[x]>, <[y]>)
-float (<[x]>, <[y]>);
-
-DESCRIPTION
-The <<fmod>> and <<fmodf>> functions compute the floating-point
-remainder of <[x]>/<[y]> (<[x]> modulo <[y]>).
-
-RETURNS
-The <<fmod>> function returns the value
-@ifinfo
-<[x]>-<[i]>*<[y]>,
-@end ifinfo
-@tex
-$x-i\times y$,
-@end tex
-for the largest integer <[i]> such that, if <[y]> is nonzero, the
-result has the same sign as <[x]> and magnitude less than the
-magnitude of <[y]>.
-
-<<fmod(<[x]>,0)>> returns NaN, and sets <<errno>> to <<EDOM>>.
-
-You can modify error treatment for these functions using <<matherr>>.
-
-PORTABILITY
-<<fmod>> is ANSI C. <<fmodf>> is an extension.
-*/
-
-/*
- * wrapper fmod(x,y)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double fmod(double x, double y) /* wrapper fmod */
-#else
- double fmod(x,y) /* wrapper fmod */
- double x,y;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_fmod(x,y);
-#else
- double z;
- struct exception exc;
- z = __ieee754_fmod(x,y);
- if(_LIB_VERSION == _IEEE_ ||isnan(y)||isnan(x)) return z;
- if(y==0.0) {
- /* fmod(x,0) */
- exc.type = DOMAIN;
- exc.name = "fmod";
- exc.arg1 = x;
- exc.arg2 = y;
- exc.err = 0;
- if (_LIB_VERSION == _SVID_)
- exc.retval = x;
- else
- exc.retval = 0.0/0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_log.c b/libjava/java/lang/w_log.c
deleted file mode 100644
index dcc8b9762ec..00000000000
--- a/libjava/java/lang/w_log.c
+++ /dev/null
@@ -1,115 +0,0 @@
-
-/* @(#)w_log.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<log>>, <<logf>>---natural logarithms
-
-INDEX
- log
-INDEX
- logf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double log(double <[x]>);
- float logf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double log(<[x]>);
- double <[x]>;
-
- float logf(<[x]>);
- float <[x]>;
-
-DESCRIPTION
-Return the natural logarithm of <[x]>, that is, its logarithm base e
-(where e is the base of the natural system of logarithms, 2.71828@dots{}).
-<<log>> and <<logf>> are identical save for the return and argument types.
-
-You can use the (non-ANSI) function <<matherr>> to specify error
-handling for these functions.
-
-RETURNS
-Normally, returns the calculated value. When <[x]> is zero, the
-returned value is <<-HUGE_VAL>> and <<errno>> is set to <<ERANGE>>.
-When <[x]> is negative, the returned value is <<-HUGE_VAL>> and
-<<errno>> is set to <<EDOM>>. You can control the error behavior via
-<<matherr>>.
-
-PORTABILITY
-<<log>> is ANSI, <<logf>> is an extension.
-*/
-
-/*
- * wrapper log(x)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double log(double x) /* wrapper log */
-#else
- double log(x) /* wrapper log */
- double x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_log(x);
-#else
- double z;
- struct exception exc;
- z = __ieee754_log(x);
- if(_LIB_VERSION == _IEEE_ || isnan(x) || x > 0.0) return z;
-#ifndef HUGE_VAL
-#define HUGE_VAL inf
- double inf = 0.0;
-
- SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */
-#endif
- exc.name = "log";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = x;
- if (_LIB_VERSION == _SVID_)
- exc.retval = -HUGE;
- else
- exc.retval = -HUGE_VAL;
- if(x==0.0) {
- /* log(0) */
- exc.type = SING;
- if (_LIB_VERSION == _POSIX_)
- errno = ERANGE;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- } else {
- /* log(x<0) */
- exc.type = DOMAIN;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/lang/w_pow.c b/libjava/java/lang/w_pow.c
deleted file mode 100644
index 3df099a1714..00000000000
--- a/libjava/java/lang/w_pow.c
+++ /dev/null
@@ -1,231 +0,0 @@
-
-
-/* @(#)w_pow.c 5.2 93/10/01 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<pow>>, <<powf>>---x to the power y
-INDEX
- pow
-INDEX
- powf
-
-
-ANSI_SYNOPSIS
- #include <math.h>
- double pow(double <[x]>, double <[y]>);
- float pow(float <[x]>, float <[y]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double pow(<[x]>, <[y]>);
- double <[x]>, <[y]>;
-
- float pow(<[x]>, <[y]>);
- float <[x]>, <[y]>;
-
-DESCRIPTION
- <<pow>> and <<powf>> calculate <[x]> raised to the exp1.0nt <[y]>.
- @tex
- (That is, $x^y$.)
- @end tex
-
-RETURNS
- On success, <<pow>> and <<powf>> return the value calculated.
-
- When the argument values would produce overflow, <<pow>>
- returns <<HUGE_VAL>> and set <<errno>> to <<ERANGE>>. If the
- argument <[x]> passed to <<pow>> or <<powf>> is a negative
- noninteger, and <[y]> is also not an integer, then <<errno>>
- is set to <<EDOM>>. If <[x]> and <[y]> are both 0, then
- <<pow>> and <<powf>> return <<1>>.
-
- You can modify error handling for these functions using <<matherr>>.
-
-PORTABILITY
- <<pow>> is ANSI C. <<powf>> is an extension. */
-
-/*
- * wrapper pow(x,y) return x**y
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double pow(double x, double y) /* wrapper pow */
-#else
- double pow(x,y) /* wrapper pow */
- double x,y;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_pow(x,y);
-#else
- double z;
-#ifndef HUGE_VAL
-#define HUGE_VAL inf
- double inf = 0.0;
-
- SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */
-#endif
- struct exception exc;
- z=__ieee754_pow(x,y);
- if(_LIB_VERSION == _IEEE_|| isnan(y)) return z;
- if(isnan(x)) {
- if(y==0.0) {
- /* pow(NaN,0.0) */
- /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */
- exc.type = DOMAIN;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- exc.retval = x;
- if (_LIB_VERSION == _IEEE_ ||
- _LIB_VERSION == _POSIX_) exc.retval = 1.0;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
- }
- if(x==0.0){
- if(y==0.0) {
- /* pow(0.0,0.0) */
- /* error only if _LIB_VERSION == _SVID_ */
- exc.type = DOMAIN;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- exc.retval = 0.0;
- if (_LIB_VERSION != _SVID_) exc.retval = 1.0;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- }
- if(finite(y)&&y<0.0) {
- /* 0**neg */
- exc.type = DOMAIN;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- if (_LIB_VERSION == _SVID_)
- exc.retval = 0.0;
- else
- exc.retval = -HUGE_VAL;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- }
- return z;
- }
- if(!finite(z)) {
- if(finite(x)&&finite(y)) {
- if(isnan(z)) {
- /* neg**non-integral */
- exc.type = DOMAIN;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- if (_LIB_VERSION == _SVID_)
- exc.retval = 0.0;
- else
- exc.retval = 0.0/0.0; /* X/Open allow NaN */
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else {
- /* pow(x,y) overflow */
- exc.type = OVERFLOW;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- if (_LIB_VERSION == _SVID_) {
- exc.retval = HUGE;
- y *= 0.5;
- if(x<0.0&&rint(y)!=y) exc.retval = -HUGE;
- } else {
- exc.retval = HUGE_VAL;
- y *= 0.5;
- if(x<0.0&&rint(y)!=y) exc.retval = -HUGE_VAL;
- }
- if (_LIB_VERSION == _POSIX_)
- errno = ERANGE;
- else if (!matherr(&exc)) {
- errno = ERANGE;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- }
- }
- }
- if(z==0.0&&finite(x)&&finite(y)) {
- /* pow(x,y) underflow */
- exc.type = UNDERFLOW;
- exc.name = "pow";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- exc.retval = 0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = ERANGE;
- else if (!matherr(&exc)) {
- errno = ERANGE;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- }
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libjava/java/lang/w_remainder.c b/libjava/java/lang/w_remainder.c
deleted file mode 100644
index a06be0e7b30..00000000000
--- a/libjava/java/lang/w_remainder.c
+++ /dev/null
@@ -1,119 +0,0 @@
-
-/* @(#)w_remainder.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
-<<rint>>, <<rintf>>, <<remainder>>, <<remainderf>>---round and remainder
-INDEX
- rint
-INDEX
- rintf
-INDEX
- remainder
-INDEX
- remainderf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double rint(double <[x]>);
- float rintf(float <[x]>);
- double remainder(double <[x]>, double <[y]>);
- float remainderf(float <[x]>, float <[y]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double rint(<[x]>)
- double <[x]>;
- float rintf(<[x]>)
- float <[x]>;
- double remainder(<[x]>,<[y]>)
- double <[x]>, <[y]>;
- float remainderf(<[x]>,<[y]>)
- float <[x]>, <[y]>;
-
-DESCRIPTION
-<<rint>> and <<rintf>> returns their argument rounded to the nearest
-integer. <<remainder>> and <<remainderf>> find the remainder of
-<[x]>/<[y]>; this value is in the range -<[y]>/2 .. +<[y]>/2.
-
-RETURNS
-<<rint>> and <<remainder>> return the integer result as a double.
-
-PORTABILITY
-<<rint>> and <<remainder>> are System V release 4. <<rintf>> and
-<<remainderf>> are extensions.
-
-*/
-
-/*
- * wrapper remainder(x,p)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double remainder(double x, double y) /* wrapper remainder */
-#else
- double remainder(x,y) /* wrapper remainder */
- double x,y;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_remainder(x,y);
-#else
- double z;
- struct exception exc;
- z = __ieee754_remainder(x,y);
- if(_LIB_VERSION == _IEEE_ || isnan(y)) return z;
- if(y==0.0) {
- /* remainder(x,0) */
- exc.type = DOMAIN;
- exc.name = "remainder";
- exc.err = 0;
- exc.arg1 = x;
- exc.arg2 = y;
- exc.retval = 0.0/0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libjava/java/lang/w_sqrt.c b/libjava/java/lang/w_sqrt.c
deleted file mode 100644
index 23a793ce74a..00000000000
--- a/libjava/java/lang/w_sqrt.c
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/* @(#)w_sqrt.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
-FUNCTION
- <<sqrt>>, <<sqrtf>>---positive square root
-
-INDEX
- sqrt
-INDEX
- sqrtf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double sqrt(double <[x]>);
- float sqrtf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double sqrt(<[x]>);
- float sqrtf(<[x]>);
-
-DESCRIPTION
- <<sqrt>> computes the positive square root of the argument.
- You can modify error handling for this function with
- <<matherr>>.
-
-RETURNS
- On success, the square root is returned. If <[x]> is real and
- positive, then the result is positive. If <[x]> is real and
- negative, the global value <<errno>> is set to <<EDOM>> (domain error).
-
-
-PORTABILITY
- <<sqrt>> is ANSI C. <<sqrtf>> is an extension.
-*/
-
-/*
- * wrapper sqrt(x)
- */
-
-#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
-
-#ifdef __STDC__
- double sqrt(double x) /* wrapper sqrt */
-#else
- double sqrt(x) /* wrapper sqrt */
- double x;
-#endif
-{
-#ifdef _IEEE_LIBM
- return __ieee754_sqrt(x);
-#else
- struct exception exc;
- double z;
- z = __ieee754_sqrt(x);
- if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
- if(x<0.0) {
- exc.type = DOMAIN;
- exc.name = "sqrt";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- if (_LIB_VERSION == _SVID_)
- exc.retval = 0.0;
- else
- exc.retval = 0.0/0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
- } else
- return z;
-#endif
-}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */
diff --git a/libjava/java/math/BigDecimal.java b/libjava/java/math/BigDecimal.java
deleted file mode 100644
index 30384ec1719..00000000000
--- a/libjava/java/math/BigDecimal.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/* java.math.BigDecimal -- Arbitrary precision decimals.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.math;
-
-import java.math.BigInteger;
-
-public class BigDecimal extends Number implements Comparable {
- BigInteger num;
- int scale;
-
- private final static BigDecimal ZERO =
- new BigDecimal (BigInteger.valueOf (0), 0);
-
- private final static BigDecimal ONE =
- new BigDecimal (BigInteger.valueOf (1), 0);
-
- public final static int ROUND_UP = 0;
- public final static int ROUND_DOWN = 1;
- public final static int ROUND_CEILING = 2;
- public final static int ROUND_FLOOR = 3;
- public final static int ROUND_HALF_UP = 4;
- public final static int ROUND_HALF_DOWN = 5;
- public final static int ROUND_HALF_EVEN = 6;
- public final static int ROUND_UNNECESSARY = 7;
-
- public BigDecimal (BigInteger num)
- {
- this (num, 0);
- }
-
- public BigDecimal (BigInteger num, int scale) throws NumberFormatException
- {
- if (scale < 0)
- throw new NumberFormatException ("scale of " + scale + " is < 0");
- this.num = num;
- this.scale = scale;
- }
-
- public BigDecimal (double num) throws NumberFormatException
- {
- this (Double.toString (num));
- }
-
- public BigDecimal (String num) throws NumberFormatException
- {
- int point = num.indexOf('.');
- this.num = new BigInteger (point == -1 ? num :
- num.substring (0, point) +
- num.substring (point + 1));
- scale = num.length() - (point == -1 ? num.length () : point + 1);
- }
-
- public static BigDecimal valueOf (long val)
- {
- return valueOf (val, 0);
- }
-
- public static BigDecimal valueOf (long val, int scale)
- throws NumberFormatException
- {
- if (scale == 0)
- switch ((int) val)
- {
- case 0:
- return ZERO;
- case 1:
- return ONE;
- }
-
- return new BigDecimal (BigInteger.valueOf (val), scale);
- }
-
- public BigDecimal add (BigDecimal val)
- {
- // For addition, need to line up decimals. Note that the movePointRight
- // method cannot be used for this as it might return a BigDecimal with
- // scale == 0 instead of the scale we need.
- BigInteger op1 = num;
- BigInteger op2 = val.num;
- if (scale < val.scale)
- op1 = op1.multiply (BigInteger.valueOf (10).pow (val.scale - scale));
- else if (scale > val.scale)
- op2 = op2.multiply (BigInteger.valueOf (10).pow (scale - val.scale));
-
- return new BigDecimal (op1.add (op2), Math.max (scale, val.scale));
- }
-
- public BigDecimal subtract (BigDecimal val)
- {
- return this.add(val.negate());
- }
-
- public BigDecimal multiply (BigDecimal val)
- {
- return new BigDecimal (num.multiply (val.num), scale + val.scale);
- }
-
- public BigDecimal divide (BigDecimal val, int roundingMode)
- throws ArithmeticException, IllegalArgumentException
- {
- return divide (val, scale, roundingMode);
- }
-
- public BigDecimal divide(BigDecimal val, int newScale, int roundingMode)
- throws ArithmeticException, IllegalArgumentException
- {
- if (roundingMode < 0 || roundingMode > 7)
- throw
- new IllegalArgumentException("illegal rounding mode: " + roundingMode);
-
- if (scale < 0)
- throw new ArithmeticException ("scale is negative: " + scale);
-
- if (num.signum () == 0) // handle special case of 0.0/0.0
- return ZERO;
-
- BigInteger dividend = num.multiply (BigInteger.valueOf (10).pow
- (newScale + 1 - (scale - val.scale)));
-
- BigInteger parts[] = dividend.divideAndRemainder (val.num);
-// System.out.println("int: " + parts[0]);
-// System.out.println("rem: " + parts[1]);
-
- int roundDigit = parts[0].mod (BigInteger.valueOf (10)).intValue ();
- BigInteger unrounded = parts[0].divide (BigInteger.valueOf (10));
-
- if (roundDigit == 0 && parts[1].signum () == 0) // no rounding necessary
- return new BigDecimal (unrounded, newScale);
-
- int sign = unrounded.signum ();
-
- switch (roundingMode)
- {
- case ROUND_UNNECESSARY:
- throw new ArithmeticException ("newScale is not large enough");
- case ROUND_CEILING:
- roundingMode = (sign == 1) ? ROUND_UP : ROUND_DOWN;
- break;
- case ROUND_FLOOR:
- roundingMode = (sign == 1) ? ROUND_DOWN : ROUND_UP;
- break;
- case ROUND_HALF_UP:
- roundingMode = (roundDigit >= 5) ? ROUND_UP : ROUND_DOWN;
- break;
- case ROUND_HALF_DOWN:
- roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;
- break;
- case ROUND_HALF_EVEN:
- if (roundDigit < 5)
- roundingMode = ROUND_DOWN;
- else
- {
- int rightmost =
- unrounded.mod (BigInteger.valueOf (10)).intValue ();
- if (rightmost % 2 == 1) // odd, then ROUND_HALF_UP
- roundingMode = ROUND_UP;
- else // even, then ROUND_HALF_DOWN
- roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;
- }
- break;
- }
-
- if (roundingMode == ROUND_UP)
- return new BigDecimal (unrounded.add (BigInteger.valueOf (1)), newScale);
-
- // roundingMode == ROUND_DOWN
- return new BigDecimal (unrounded, newScale);
- }
-
- public int compareTo (BigDecimal val)
- {
- if (scale == val.scale)
- return num.compareTo (val.num);
-
- BigInteger thisParts[] =
- num.divideAndRemainder (BigInteger.valueOf (10).pow (scale));
- BigInteger valParts[] =
- val.num.divideAndRemainder (BigInteger.valueOf (10).pow (val.scale));
-
- int compare;
- if ((compare = thisParts[0].compareTo (valParts[0])) != 0)
- return compare;
-
- // quotients are the same, so compare remainders
-
- // remove trailing zeros
- if (thisParts[1].equals (BigInteger.valueOf (0)) == false)
- while (thisParts[1].mod (BigInteger.valueOf (10)).equals
- (BigInteger.valueOf (0)))
- thisParts[1] = thisParts[1].divide (BigInteger.valueOf (10));
- // again...
- if (valParts[1].equals(BigInteger.valueOf (0)) == false)
- while (valParts[1].mod (BigInteger.valueOf (10)).equals
- (BigInteger.valueOf (0)))
- valParts[1] = valParts[1].divide (BigInteger.valueOf (10));
-
- // and compare them
- return thisParts[1].compareTo (valParts[1]);
- }
-
- public int compareTo (Object val)
- {
- return(compareTo((BigDecimal)val));
- }
-
- public boolean equals (Object o)
- {
- return (o instanceof BigDecimal
- && scale == ((BigDecimal) o).scale
- && compareTo ((BigDecimal) o) == 0);
- }
-
- public int hashCode()
- {
- return intValue() ^ scale;
- }
-
- public BigDecimal max (BigDecimal val)
- {
- switch (compareTo (val))
- {
- case 1:
- return this;
- default:
- return val;
- }
- }
-
- public BigDecimal min (BigDecimal val)
- {
- switch (compareTo (val))
- {
- case -1:
- return this;
- default:
- return val;
- }
- }
-
- public BigDecimal movePointLeft (int n)
- {
- return (n < 0) ? movePointRight (-n) : new BigDecimal (num, scale + n);
- }
-
- public BigDecimal movePointRight (int n)
- {
- if (n < 0)
- return movePointLeft (-n);
-
- if (scale >= n)
- return new BigDecimal (num, scale - n);
-
- return new BigDecimal (num.multiply
- (BigInteger.valueOf (10).pow (n - scale)), 0);
- }
-
- public int signum ()
- {
- return num.signum ();
- }
-
- public int scale ()
- {
- return scale;
- }
-
- public BigDecimal abs ()
- {
- return new BigDecimal (num.abs (), scale);
- }
-
- public BigDecimal negate ()
- {
- return new BigDecimal (num.negate (), scale);
- }
-
- public String toString ()
- {
- String bigStr = num.toString();
- if (scale == 0)
- return bigStr;
-
- int point = bigStr.length() - scale;
- boolean negative = (bigStr.charAt(0) == '-');
- StringBuffer sb = new StringBuffer(bigStr.length() + 1 +
- (point <= 0 ? -point+1 : 0));
- if (negative)
- sb.append('-');
- while (point <= 0)
- {
- sb.append('0');
- point++;
- }
- sb.append(bigStr.substring(negative ? 1 : 0));
- sb.insert(point, '.');
- return sb.toString();
- }
-
- public BigInteger toBigInteger ()
- {
- return scale == 0 ? num : num.divide (BigInteger.valueOf (10).pow (scale));
- }
-
-
- public int intValue ()
- {
- return toBigInteger ().intValue ();
- }
-
- public long longValue ()
- {
- return toBigInteger().longValue();
- }
-
- public float floatValue()
- {
- return Float.valueOf(toString()).floatValue();
- }
-
- public double doubleValue()
- {
- return Double.valueOf(toString()).doubleValue();
- }
-}
diff --git a/libjava/java/math/BigInteger.java b/libjava/java/math/BigInteger.java
deleted file mode 100644
index 738680a42c4..00000000000
--- a/libjava/java/math/BigInteger.java
+++ /dev/null
@@ -1,2204 +0,0 @@
-// BigInteger.java -- an arbitrary-precision integer
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.math;
-import gnu.gcj.math.*;
-import java.util.Random;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date December 20, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998) and
- * "Applied Cryptography, Second Edition" by Bruce Schneier (Wiley, 1996).
-
- *
- * Based primarily on IntNum.java BitOps.java by Per Bothner <per@bothner.com>
- * (found in Kawa 1.6.62).
- *
- * Status: Believed complete and correct.
- */
-
-public class BigInteger extends Number implements Comparable
-{
- /** All integers are stored in 2's-complement form.
- * If words == null, the ival is the value of this BigInteger.
- * Otherwise, the first ival elements of words make the value
- * of this BigInteger, stored in little-endian order, 2's-complement form. */
- private int ival;
- private int[] words;
-
-
- /** We pre-allocate integers in the range minFixNum..maxFixNum. */
- private static final int minFixNum = -100;
- private static final int maxFixNum = 1024;
- private static final int numFixNum = maxFixNum-minFixNum+1;
- private static final BigInteger[] smallFixNums = new BigInteger[numFixNum];
-
- static {
- for (int i = numFixNum; --i >= 0; )
- smallFixNums[i] = new BigInteger(i + minFixNum);
- }
-
- // JDK1.2
- public static final BigInteger ZERO = smallFixNums[-minFixNum];
-
- // JDK1.2
- public static final BigInteger ONE = smallFixNums[1 - minFixNum];
-
- /* Rounding modes: */
- private static final int FLOOR = 1;
- private static final int CEILING = 2;
- private static final int TRUNCATE = 3;
- private static final int ROUND = 4;
-
- /** When checking the probability of primes, it is most efficient to
- * first check the factoring of small primes, so we'll use this array.
- */
- private static final int[] primes =
- { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
- 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,
- 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
- 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251 };
-
- private BigInteger()
- {
- }
-
- /* Create a new (non-shared) BigInteger, and initialize to an int. */
- private BigInteger(int value)
- {
- ival = value;
- }
-
- public BigInteger(String val, int radix)
- {
- BigInteger result = valueOf(val, radix);
- this.ival = result.ival;
- this.words = result.words;
- }
-
- public BigInteger(String val)
- {
- this(val, 10);
- }
-
- /* Create a new (non-shared) BigInteger, and initialize from a byte array. */
- public BigInteger(byte[] val)
- {
- if (val == null || val.length < 1)
- throw new NumberFormatException();
-
- words = byteArrayToIntArray(val, val[0] < 0 ? -1 : 0);
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
- }
-
- public BigInteger(int signum, byte[] magnitude)
- {
- if (magnitude == null || signum > 1 || signum < -1)
- throw new NumberFormatException();
-
- if (signum == 0)
- {
- int i;
- for (i = magnitude.length - 1; i >= 0 && magnitude[i] == 0; --i)
- ;
- if (i >= 0)
- throw new NumberFormatException();
- return;
- }
-
- // Magnitude is always positive, so don't ever pass a sign of -1.
- words = byteArrayToIntArray(magnitude, 0);
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
-
- if (signum < 0)
- setNegative();
- }
-
- public BigInteger(int numBits, Random rnd)
- {
- if (numBits < 0)
- throw new IllegalArgumentException();
-
- // Result is always positive so tack on an extra zero word, it will be
- // canonicalized out later if necessary.
- int nwords = numBits / 32 + 2;
- words = new int[nwords];
- words[--nwords] = 0;
- words[--nwords] = rnd.nextInt() >>> (numBits % 32);
- while (--nwords >= 0)
- words[nwords] = rnd.nextInt();
-
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
- }
-
- public BigInteger(int bitLength, int certainty, Random rnd)
- {
- this(bitLength, rnd);
-
- // Keep going until we find a probable prime.
- while (true)
- {
- if (isProbablePrime(certainty))
- return;
-
- BigInteger next = new BigInteger(bitLength, rnd);
- this.ival = next.ival;
- this.words = next.words;
- }
- }
-
- /** Return a (possibly-shared) BigInteger with a given long value. */
- private static BigInteger make(long value)
- {
- if (value >= minFixNum && value <= maxFixNum)
- return smallFixNums[(int)value - minFixNum];
- int i = (int) value;
- if ((long)i == value)
- return new BigInteger(i);
- BigInteger result = alloc(2);
- result.ival = 2;
- result.words[0] = i;
- result.words[1] = (int) (value >> 32);
- return result;
- }
-
- // FIXME: Could simply rename 'make' method above as valueOf while
- // changing all instances of 'make'. Don't do this until this class
- // is done as the Kawa class this is based on has 'make' methods
- // with other parameters; wait to see if they are used in BigInteger.
- public static BigInteger valueOf(long val)
- {
- return make(val);
- }
-
- /** Make a canonicalized BigInteger from an array of words.
- * The array may be reused (without copying). */
- private static BigInteger make(int[] words, int len)
- {
- if (words == null)
- return make(len);
- len = BigInteger.wordsNeeded(words, len);
- if (len <= 1)
- return len == 0 ? ZERO : make(words[0]);
- BigInteger num = new BigInteger();
- num.words = words;
- num.ival = len;
- return num;
- }
-
- /** Convert a big-endian byte array to a little-endian array of words. */
- private static int[] byteArrayToIntArray(byte[] bytes, int sign)
- {
- // Determine number of words needed.
- int[] words = new int[(bytes.length + 3) / 4 + 1];
- int nwords = words.length;
-
- // For simplicity, tack on an extra word of sign at the front,
- // it will be canonicalized out later. */
- words[--nwords] = sign;
-
- // Create a int out of modulo 4 high order bytes.
- int bptr = 0;
- int word = sign;
- for (int i = bytes.length % 4; i > 0; --i, bptr++)
- word = (word << 8) | (((int) bytes[bptr]) & 0xff);
- words[--nwords] = word;
-
- // Elements remaining in byte[] are a multiple of 4.
- while (nwords > 0)
- words[--nwords] = bytes[bptr++] << 24 |
- (((int) bytes[bptr++]) & 0xff) << 16 |
- (((int) bytes[bptr++]) & 0xff) << 8 |
- (((int) bytes[bptr++]) & 0xff);
- return words;
- }
-
- /** Allocate a new non-shared BigInteger.
- * @param nwords number of words to allocate
- */
- private static BigInteger alloc(int nwords)
- {
- if (nwords <= 1)
- return new BigInteger();
- BigInteger result = new BigInteger();
- result.words = new int[nwords];
- return result;
- }
-
- /** Change words.length to nwords.
- * We allow words.length to be upto nwords+2 without reallocating.
- */
- private void realloc(int nwords)
- {
- if (nwords == 0)
- {
- if (words != null)
- {
- if (ival > 0)
- ival = words[0];
- words = null;
- }
- }
- else if (words == null
- || words.length < nwords
- || words.length > nwords + 2)
- {
- int[] new_words = new int [nwords];
- if (words == null)
- {
- new_words[0] = ival;
- ival = 1;
- }
- else
- {
- if (nwords < ival)
- ival = nwords;
- System.arraycopy(words, 0, new_words, 0, ival);
- }
- words = new_words;
- }
- }
-
- private final boolean isNegative()
- {
- return (words == null ? ival : words[ival - 1]) < 0;
- }
-
- public int signum()
- {
- int top = words == null ? ival : words[ival-1];
- if (top == 0 && words == null)
- return 0;
- return top < 0 ? -1 : 1;
- }
-
- private static int compareTo(BigInteger x, BigInteger y)
- {
- if (x.words == null && y.words == null)
- return x.ival < y.ival ? -1 : x.ival > y.ival ? 1 : 0;
- boolean x_negative = x.isNegative();
- boolean y_negative = y.isNegative();
- if (x_negative != y_negative)
- return x_negative ? -1 : 1;
- int x_len = x.words == null ? 1 : x.ival;
- int y_len = y.words == null ? 1 : y.ival;
- if (x_len != y_len)
- return (x_len > y_len) != x_negative ? 1 : -1;
- return MPN.cmp(x.words, y.words, x_len);
- }
-
- // JDK1.2
- public int compareTo(Object obj)
- {
- if (obj instanceof BigInteger)
- return compareTo(this, (BigInteger) obj);
- throw new ClassCastException();
- }
-
- public int compareTo(BigInteger val)
- {
- return compareTo(this, val);
- }
-
- public BigInteger min(BigInteger val)
- {
- return compareTo(this, val) < 0 ? this : val;
- }
-
- public BigInteger max(BigInteger val)
- {
- return compareTo(this, val) > 0 ? this : val;
- }
-
- private final boolean isOdd()
- {
- int low = words == null ? ival : words[0];
- return (low & 1) != 0;
- }
-
- private final boolean isZero()
- {
- return words == null && ival == 0;
- }
-
- private final boolean isOne()
- {
- return words == null && ival == 1;
- }
-
- private final boolean isMinusOne()
- {
- return words == null && ival == -1;
- }
-
- /** Calculate how many words are significant in words[0:len-1].
- * Returns the least value x such that x>0 && words[0:x-1]==words[0:len-1],
- * when words is viewed as a 2's complement integer.
- */
- private static int wordsNeeded(int[] words, int len)
- {
- int i = len;
- if (i > 0)
- {
- int word = words[--i];
- if (word == -1)
- {
- while (i > 0 && (word = words[i - 1]) < 0)
- {
- i--;
- if (word != -1) break;
- }
- }
- else
- {
- while (word == 0 && i > 0 && (word = words[i - 1]) >= 0) i--;
- }
- }
- return i + 1;
- }
-
- private BigInteger canonicalize()
- {
- if (words != null
- && (ival = BigInteger.wordsNeeded(words, ival)) <= 1)
- {
- if (ival == 1)
- ival = words[0];
- words = null;
- }
- if (words == null && ival >= minFixNum && ival <= maxFixNum)
- return smallFixNums[(int) ival - minFixNum];
- return this;
- }
-
- /** Add two ints, yielding a BigInteger. */
- private static final BigInteger add(int x, int y)
- {
- return BigInteger.make((long) x + (long) y);
- }
-
- /** Add a BigInteger and an int, yielding a new BigInteger. */
- private static BigInteger add(BigInteger x, int y)
- {
- if (x.words == null)
- return BigInteger.add(x.ival, y);
- BigInteger result = new BigInteger(0);
- result.setAdd(x, y);
- return result.canonicalize();
- }
-
- /** Set this to the sum of x and y.
- * OK if x==this. */
- private void setAdd(BigInteger x, int y)
- {
- if (x.words == null)
- {
- set((long) x.ival + (long) y);
- return;
- }
- int len = x.ival;
- realloc(len + 1);
- long carry = y;
- for (int i = 0; i < len; i++)
- {
- carry += ((long) x.words[i] & 0xffffffffL);
- words[i] = (int) carry;
- carry >>= 32;
- }
- if (x.words[len - 1] < 0)
- carry--;
- words[len] = (int) carry;
- ival = wordsNeeded(words, len + 1);
- }
-
- /** Destructively add an int to this. */
- private final void setAdd(int y)
- {
- setAdd(this, y);
- }
-
- /** Destructively set the value of this to a long. */
- private final void set(long y)
- {
- int i = (int) y;
- if ((long) i == y)
- {
- ival = i;
- words = null;
- }
- else
- {
- realloc(2);
- words[0] = i;
- words[1] = (int) (y >> 32);
- ival = 2;
- }
- }
-
- /** Destructively set the value of this to the given words.
- * The words array is reused, not copied. */
- private final void set(int[] words, int length)
- {
- this.ival = length;
- this.words = words;
- }
-
- /** Destructively set the value of this to that of y. */
- private final void set(BigInteger y)
- {
- if (y.words == null)
- set(y.ival);
- else if (this != y)
- {
- realloc(y.ival);
- System.arraycopy(y.words, 0, words, 0, y.ival);
- ival = y.ival;
- }
- }
-
- /** Add two BigIntegers, yielding their sum as another BigInteger. */
- private static BigInteger add(BigInteger x, BigInteger y, int k)
- {
- if (x.words == null && y.words == null)
- return BigInteger.make((long) k * (long) y.ival + (long) x.ival);
- if (k != 1)
- {
- if (k == -1)
- y = BigInteger.neg(y);
- else
- y = BigInteger.times(y, BigInteger.make(k));
- }
- if (x.words == null)
- return BigInteger.add(y, x.ival);
- if (y.words == null)
- return BigInteger.add(x, y.ival);
- // Both are big
- int len;
- if (y.ival > x.ival)
- { // Swap so x is longer then y.
- BigInteger tmp = x; x = y; y = tmp;
- }
- BigInteger result = alloc(x.ival + 1);
- int i = y.ival;
- long carry = MPN.add_n(result.words, x.words, y.words, i);
- long y_ext = y.words[i - 1] < 0 ? 0xffffffffL : 0;
- for (; i < x.ival; i++)
- {
- carry += ((long) x.words[i] & 0xffffffffL) + y_ext;;
- result.words[i] = (int) carry;
- carry >>>= 32;
- }
- if (x.words[i - 1] < 0)
- y_ext--;
- result.words[i] = (int) (carry + y_ext);
- result.ival = i+1;
- return result.canonicalize();
- }
-
- public BigInteger add(BigInteger val)
- {
- return add(this, val, 1);
- }
-
- public BigInteger subtract(BigInteger val)
- {
- return add(this, val, -1);
- }
-
- private static final BigInteger times(BigInteger x, int y)
- {
- if (y == 0)
- return ZERO;
- if (y == 1)
- return x;
- int[] xwords = x.words;
- int xlen = x.ival;
- if (xwords == null)
- return BigInteger.make((long) xlen * (long) y);
- boolean negative;
- BigInteger result = BigInteger.alloc(xlen + 1);
- if (xwords[xlen - 1] < 0)
- {
- negative = true;
- negate(result.words, xwords, xlen);
- xwords = result.words;
- }
- else
- negative = false;
- if (y < 0)
- {
- negative = !negative;
- y = -y;
- }
- result.words[xlen] = MPN.mul_1(result.words, xwords, xlen, y);
- result.ival = xlen + 1;
- if (negative)
- result.setNegative();
- return result.canonicalize();
- }
-
- private static final BigInteger times(BigInteger x, BigInteger y)
- {
- if (y.words == null)
- return times(x, y.ival);
- if (x.words == null)
- return times(y, x.ival);
- boolean negative = false;
- int[] xwords;
- int[] ywords;
- int xlen = x.ival;
- int ylen = y.ival;
- if (x.isNegative())
- {
- negative = true;
- xwords = new int[xlen];
- negate(xwords, x.words, xlen);
- }
- else
- {
- negative = false;
- xwords = x.words;
- }
- if (y.isNegative())
- {
- negative = !negative;
- ywords = new int[ylen];
- negate(ywords, y.words, ylen);
- }
- else
- ywords = y.words;
- // Swap if x is shorter then y.
- if (xlen < ylen)
- {
- int[] twords = xwords; xwords = ywords; ywords = twords;
- int tlen = xlen; xlen = ylen; ylen = tlen;
- }
- BigInteger result = BigInteger.alloc(xlen+ylen);
- MPN.mul(result.words, xwords, xlen, ywords, ylen);
- result.ival = xlen+ylen;
- if (negative)
- result.setNegative();
- return result.canonicalize();
- }
-
- public BigInteger multiply(BigInteger y)
- {
- return times(this, y);
- }
-
- private static void divide(long x, long y,
- BigInteger quotient, BigInteger remainder,
- int rounding_mode)
- {
- boolean xNegative, yNegative;
- if (x < 0)
- {
- xNegative = true;
- if (x == Long.MIN_VALUE)
- {
- divide(BigInteger.make(x), BigInteger.make(y),
- quotient, remainder, rounding_mode);
- return;
- }
- x = -x;
- }
- else
- xNegative = false;
-
- if (y < 0)
- {
- yNegative = true;
- if (y == Long.MIN_VALUE)
- {
- if (rounding_mode == TRUNCATE)
- { // x != Long.Min_VALUE implies abs(x) < abs(y)
- if (quotient != null)
- quotient.set(0);
- if (remainder != null)
- remainder.set(x);
- }
- else
- divide(BigInteger.make(x), BigInteger.make(y),
- quotient, remainder, rounding_mode);
- return;
- }
- y = -y;
- }
- else
- yNegative = false;
-
- long q = x / y;
- long r = x % y;
- boolean qNegative = xNegative ^ yNegative;
-
- boolean add_one = false;
- if (r != 0)
- {
- switch (rounding_mode)
- {
- case TRUNCATE:
- break;
- case CEILING:
- case FLOOR:
- if (qNegative == (rounding_mode == FLOOR))
- add_one = true;
- break;
- case ROUND:
- add_one = r > ((y - (q & 1)) >> 1);
- break;
- }
- }
- if (quotient != null)
- {
- if (add_one)
- q++;
- if (qNegative)
- q = -q;
- quotient.set(q);
- }
- if (remainder != null)
- {
- // The remainder is by definition: X-Q*Y
- if (add_one)
- {
- // Subtract the remainder from Y.
- r = y - r;
- // In this case, abs(Q*Y) > abs(X).
- // So sign(remainder) = -sign(X).
- xNegative = ! xNegative;
- }
- else
- {
- // If !add_one, then: abs(Q*Y) <= abs(X).
- // So sign(remainder) = sign(X).
- }
- if (xNegative)
- r = -r;
- remainder.set(r);
- }
- }
-
- /** Divide two integers, yielding quotient and remainder.
- * @param x the numerator in the division
- * @param y the denominator in the division
- * @param quotient is set to the quotient of the result (iff quotient!=null)
- * @param remainder is set to the remainder of the result
- * (iff remainder!=null)
- * @param rounding_mode one of FLOOR, CEILING, TRUNCATE, or ROUND.
- */
- private static void divide(BigInteger x, BigInteger y,
- BigInteger quotient, BigInteger remainder,
- int rounding_mode)
- {
- if ((x.words == null || x.ival <= 2)
- && (y.words == null || y.ival <= 2))
- {
- long x_l = x.longValue();
- long y_l = y.longValue();
- if (x_l != Long.MIN_VALUE && y_l != Long.MIN_VALUE)
- {
- divide(x_l, y_l, quotient, remainder, rounding_mode);
- return;
- }
- }
-
- boolean xNegative = x.isNegative();
- boolean yNegative = y.isNegative();
- boolean qNegative = xNegative ^ yNegative;
-
- int ylen = y.words == null ? 1 : y.ival;
- int[] ywords = new int[ylen];
- y.getAbsolute(ywords);
- while (ylen > 1 && ywords[ylen - 1] == 0) ylen--;
-
- int xlen = x.words == null ? 1 : x.ival;
- int[] xwords = new int[xlen+2];
- x.getAbsolute(xwords);
- while (xlen > 1 && xwords[xlen-1] == 0) xlen--;
-
- int qlen, rlen;
-
- int cmpval = MPN.cmp(xwords, xlen, ywords, ylen);
- if (cmpval < 0) // abs(x) < abs(y)
- { // quotient = 0; remainder = num.
- int[] rwords = xwords; xwords = ywords; ywords = rwords;
- rlen = xlen; qlen = 1; xwords[0] = 0;
- }
- else if (cmpval == 0) // abs(x) == abs(y)
- {
- xwords[0] = 1; qlen = 1; // quotient = 1
- ywords[0] = 0; rlen = 1; // remainder = 0;
- }
- else if (ylen == 1)
- {
- qlen = xlen;
- // Need to leave room for a word of leading zeros if dividing by 1
- // and the dividend has the high bit set. It might be safe to
- // increment qlen in all cases, but it certainly is only necessary
- // in the following case.
- if (ywords[0] == 1 && xwords[xlen-1] < 0)
- qlen++;
- rlen = 1;
- ywords[0] = MPN.divmod_1(xwords, xwords, xlen, ywords[0]);
- }
- else // abs(x) > abs(y)
- {
- // Normalize the denominator, i.e. make its most significant bit set by
- // shifting it normalization_steps bits to the left. Also shift the
- // numerator the same number of steps (to keep the quotient the same!).
-
- int nshift = MPN.count_leading_zeros(ywords[ylen - 1]);
- if (nshift != 0)
- {
- // Shift up the denominator setting the most significant bit of
- // the most significant word.
- MPN.lshift(ywords, 0, ywords, ylen, nshift);
-
- // Shift up the numerator, possibly introducing a new most
- // significant word.
- int x_high = MPN.lshift(xwords, 0, xwords, xlen, nshift);
- xwords[xlen++] = x_high;
- }
-
- if (xlen == ylen)
- xwords[xlen++] = 0;
- MPN.divide(xwords, xlen, ywords, ylen);
- rlen = ylen;
- if (remainder != null || rounding_mode != TRUNCATE)
- {
- if (nshift == 0)
- System.arraycopy(xwords, 0, ywords, 0, rlen);
- else
- MPN.rshift(ywords, xwords, 0, rlen, nshift);
- }
-
- qlen = xlen + 1 - ylen;
- if (quotient != null)
- {
- for (int i = 0; i < qlen; i++)
- xwords[i] = xwords[i+ylen];
- }
- }
-
- // Now the quotient is in xwords, and the remainder is in ywords.
-
- boolean add_one = false;
- if (rlen > 1 || ywords[0] != 0)
- { // Non-zero remainder i.e. in-exact quotient.
- switch (rounding_mode)
- {
- case TRUNCATE:
- break;
- case CEILING:
- case FLOOR:
- if (qNegative == (rounding_mode == FLOOR))
- add_one = true;
- break;
- case ROUND:
- // int cmp = compareTo(remainder<<1, abs(y));
- BigInteger tmp = remainder == null ? new BigInteger() : remainder;
- tmp.set(ywords, rlen);
- tmp = shift(tmp, 1);
- if (yNegative)
- tmp.setNegative();
- int cmp = compareTo(tmp, y);
- // Now cmp == compareTo(sign(y)*(remainder<<1), y)
- if (yNegative)
- cmp = -cmp;
- add_one = (cmp == 1) || (cmp == 0 && (xwords[0]&1) != 0);
- }
- }
- if (quotient != null)
- {
- quotient.set(xwords, qlen);
- if (qNegative)
- {
- if (add_one) // -(quotient + 1) == ~(quotient)
- quotient.setInvert();
- else
- quotient.setNegative();
- }
- else if (add_one)
- quotient.setAdd(1);
- }
- if (remainder != null)
- {
- // The remainder is by definition: X-Q*Y
- remainder.set(ywords, rlen);
- if (add_one)
- {
- // Subtract the remainder from Y:
- // abs(R) = abs(Y) - abs(orig_rem) = -(abs(orig_rem) - abs(Y)).
- BigInteger tmp;
- if (y.words == null)
- {
- tmp = remainder;
- tmp.set(yNegative ? ywords[0] + y.ival : ywords[0] - y.ival);
- }
- else
- tmp = BigInteger.add(remainder, y, yNegative ? 1 : -1);
- // Now tmp <= 0.
- // In this case, abs(Q) = 1 + floor(abs(X)/abs(Y)).
- // Hence, abs(Q*Y) > abs(X).
- // So sign(remainder) = -sign(X).
- if (xNegative)
- remainder.setNegative(tmp);
- else
- remainder.set(tmp);
- }
- else
- {
- // If !add_one, then: abs(Q*Y) <= abs(X).
- // So sign(remainder) = sign(X).
- if (xNegative)
- remainder.setNegative();
- }
- }
- }
-
- public BigInteger divide(BigInteger val)
- {
- if (val.isZero())
- throw new ArithmeticException("divisor is zero");
-
- BigInteger quot = new BigInteger();
- divide(this, val, quot, null, TRUNCATE);
- return quot.canonicalize();
- }
-
- public BigInteger remainder(BigInteger val)
- {
- if (val.isZero())
- throw new ArithmeticException("divisor is zero");
-
- BigInteger rem = new BigInteger();
- divide(this, val, null, rem, TRUNCATE);
- return rem.canonicalize();
- }
-
- public BigInteger[] divideAndRemainder(BigInteger val)
- {
- if (val.isZero())
- throw new ArithmeticException("divisor is zero");
-
- BigInteger[] result = new BigInteger[2];
- result[0] = new BigInteger();
- result[1] = new BigInteger();
- divide(this, val, result[0], result[1], TRUNCATE);
- result[0].canonicalize();
- result[1].canonicalize();
- return result;
- }
-
- public BigInteger mod(BigInteger m)
- {
- if (m.isNegative() || m.isZero())
- throw new ArithmeticException("non-positive modulus");
-
- BigInteger rem = new BigInteger();
- divide(this, m, null, rem, FLOOR);
- return rem.canonicalize();
- }
-
- /** Calculate power for BigInteger exponents.
- * @param y exponent assumed to be non-negative. */
- private BigInteger pow(BigInteger y)
- {
- if (isOne())
- return this;
- if (isMinusOne())
- return y.isOdd () ? this : ONE;
- if (y.words == null && y.ival >= 0)
- return pow(y.ival);
-
- // Assume exponent is non-negative.
- if (isZero())
- return this;
-
- // Implemented by repeated squaring and multiplication.
- BigInteger pow2 = this;
- BigInteger r = null;
- for (;;) // for (i = 0; ; i++)
- {
- // pow2 == x**(2**i)
- // prod = x**(sum(j=0..i-1, (y>>j)&1))
- if (y.isOdd())
- r = r == null ? pow2 : times(r, pow2); // r *= pow2
- y = BigInteger.shift(y, -1);
- if (y.isZero())
- break;
- // pow2 *= pow2;
- pow2 = times(pow2, pow2);
- }
- return r == null ? ONE : r;
- }
-
- /** Calculate the integral power of a BigInteger.
- * @param exponent the exponent (must be non-negative)
- */
- public BigInteger pow(int exponent)
- {
- if (exponent <= 0)
- {
- if (exponent == 0)
- return ONE;
- else
- throw new ArithmeticException("negative exponent");
- }
- if (isZero())
- return this;
- int plen = words == null ? 1 : ival; // Length of pow2.
- int blen = ((bitLength() * exponent) >> 5) + 2 * plen;
- boolean negative = isNegative() && (exponent & 1) != 0;
- int[] pow2 = new int [blen];
- int[] rwords = new int [blen];
- int[] work = new int [blen];
- getAbsolute(pow2); // pow2 = abs(this);
- int rlen = 1;
- rwords[0] = 1; // rwords = 1;
- for (;;) // for (i = 0; ; i++)
- {
- // pow2 == this**(2**i)
- // prod = this**(sum(j=0..i-1, (exponent>>j)&1))
- if ((exponent & 1) != 0)
- { // r *= pow2
- MPN.mul(work, pow2, plen, rwords, rlen);
- int[] temp = work; work = rwords; rwords = temp;
- rlen += plen;
- while (rwords[rlen - 1] == 0) rlen--;
- }
- exponent >>= 1;
- if (exponent == 0)
- break;
- // pow2 *= pow2;
- MPN.mul(work, pow2, plen, pow2, plen);
- int[] temp = work; work = pow2; pow2 = temp; // swap to avoid a copy
- plen *= 2;
- while (pow2[plen - 1] == 0) plen--;
- }
- if (rwords[rlen - 1] < 0)
- rlen++;
- if (negative)
- negate(rwords, rwords, rlen);
- return BigInteger.make(rwords, rlen);
- }
-
- private static final int[] euclidInv(int a, int b, int prevDiv)
- {
- // Storage for return values, plus one slot for a temp int (see below).
- int[] xy;
-
- if (b == 0)
- throw new ArithmeticException("not invertible");
- else if (b == 1)
- {
- // Success: values are indeed invertible!
- // Bottom of the recursion reached; start unwinding.
- xy = new int[3];
- xy[0] = -prevDiv;
- xy[1] = 1;
- return xy;
- }
-
- xy = euclidInv(b, a % b, a / b); // Recursion happens here.
-
- // xy[2] is just temp storage for intermediate results in the following
- // calculation. This saves us a bit of space over having an int
- // allocated at every level of this recursive method.
- xy[2] = xy[0];
- xy[0] = xy[2] * -prevDiv + xy[1];
- xy[1] = xy[2];
- return xy;
- }
-
- private static final BigInteger[]
- euclidInv(BigInteger a, BigInteger b, BigInteger prevDiv)
- {
- // FIXME: This method could be more efficient memory-wise and should be
- // modified as such since it is recursive.
-
- // Storage for return values, plus one slot for a temp int (see below).
- BigInteger[] xy;
-
- if (b.isZero())
- throw new ArithmeticException("not invertible");
- else if (b.isOne())
- {
- // Success: values are indeed invertible!
- // Bottom of the recursion reached; start unwinding.
- xy = new BigInteger[3];
- xy[0] = neg(prevDiv);
- xy[1] = ONE;
- return xy;
- }
-
- // Recursion happens in the following conditional!
-
- // If a just contains an int, then use integer math for the rest.
- if (a.words == null)
- {
- int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival);
- xy = new BigInteger[3];
- xy[0] = new BigInteger(xyInt[0]);
- xy[1] = new BigInteger(xyInt[1]);
- }
- else
- {
- BigInteger rem = new BigInteger();
- BigInteger quot = new BigInteger();
- divide(a, b, quot, rem, FLOOR);
- xy = euclidInv(b, rem, quot);
- }
-
- // xy[2] is just temp storage for intermediate results in the following
- // calculation. This saves us a bit of space over having a BigInteger
- // allocated at every level of this recursive method.
- xy[2] = xy[0];
- xy[0] = add(xy[1], times(xy[2], prevDiv), -1);
- xy[1] = xy[2];
- return xy;
- }
-
- public BigInteger modInverse(BigInteger y)
- {
- if (y.isNegative() || y.isZero())
- throw new ArithmeticException("non-positive modulo");
-
- // Degenerate cases.
- if (y.isOne())
- return ZERO;
- else if (isOne())
- return ONE;
-
- // Use Euclid's algorithm as in gcd() but do this recursively
- // rather than in a loop so we can use the intermediate results as we
- // unwind from the recursion.
- // Used http://www.math.nmsu.edu/~crypto/EuclideanAlgo.html as reference.
- BigInteger result = new BigInteger();
- int xval = ival;
- int yval = y.ival;
- boolean swapped = false;
-
- if (y.words == null)
- {
- // The result is guaranteed to be less than the modulus, y (which is
- // an int), so simplify this by working with the int result of this
- // modulo y. Also, if this is negative, make it positive via modulo
- // math. Note that BigInteger.mod() must be used even if this is
- // already an int as the % operator would provide a negative result if
- // this is negative, BigInteger.mod() never returns negative values.
- if (words != null || isNegative())
- xval = mod(y).ival;
-
- // Swap values so x > y.
- if (yval > xval)
- {
- int tmp = xval; xval = yval; yval = tmp;
- swapped = true;
- }
- // Normally, the result is in the 2nd element of the array, but
- // if originally x < y, then x and y were swapped and the result
- // is in the 1st element of the array.
- result.ival =
- euclidInv(yval, xval % yval, xval / yval)[swapped ? 0 : 1];
-
- // Result can't be negative, so make it positive by adding the
- // original modulus, y.ival (not the possibly "swapped" yval).
- if (result.ival < 0)
- result.ival += y.ival;
- }
- else
- {
- BigInteger x = this;
-
- // As above, force this to be a positive value via modulo math.
- if (isNegative())
- x = mod(y);
-
- // Swap values so x > y.
- if (x.compareTo(y) < 0)
- {
- BigInteger tmp = x; x = y; y = tmp;
- swapped = true;
- }
- // As above (for ints), result will be in the 2nd element unless
- // the original x and y were swapped.
- BigInteger rem = new BigInteger();
- BigInteger quot = new BigInteger();
- divide(x, y, quot, rem, FLOOR);
- result = euclidInv(y, rem, quot)[swapped ? 0 : 1];
-
- // Result can't be negative, so make it positive by adding the
- // original modulus, y (which is now x if they were swapped).
- if (result.isNegative())
- result = add(result, swapped ? x : y, 1);
- }
-
- return result;
- }
-
- public BigInteger modPow(BigInteger exponent, BigInteger m)
- {
- if (m.isNegative() || m.isZero())
- throw new ArithmeticException("non-positive modulo");
-
- if (exponent.isNegative())
- return modInverse(m);
- if (exponent.isOne())
- return mod(m);
-
- // To do this naively by first raising this to the power of exponent
- // and then performing modulo m would be extremely expensive, especially
- // for very large numbers. The solution is found in Number Theory
- // where a combination of partial powers and modulos can be done easily.
- //
- // We'll use the algorithm for Additive Chaining which can be found on
- // p. 244 of "Applied Cryptography, Second Edition" by Bruce Schneier.
- BigInteger s, t, u;
- int i;
-
- s = ONE;
- t = this;
- u = exponent;
-
- while (!u.isZero())
- {
- if (u.and(ONE).isOne())
- s = times(s, t).mod(m);
- u = u.shiftRight(1);
- t = times(t, t).mod(m);
- }
-
- return s;
- }
-
- /** Calculate Greatest Common Divisor for non-negative ints. */
- private static final int gcd(int a, int b)
- {
- // Euclid's algorithm, copied from libg++.
- if (b > a)
- {
- int tmp = a; a = b; b = tmp;
- }
- for(;;)
- {
- if (b == 0)
- return a;
- else if (b == 1)
- return b;
- else
- {
- int tmp = b;
- b = a % b;
- a = tmp;
- }
- }
- }
-
- public BigInteger gcd(BigInteger y)
- {
- int xval = ival;
- int yval = y.ival;
- if (words == null)
- {
- if (xval == 0)
- return BigInteger.abs(y);
- if (y.words == null
- && xval != Integer.MIN_VALUE && yval != Integer.MIN_VALUE)
- {
- if (xval < 0)
- xval = -xval;
- if (yval < 0)
- yval = -yval;
- return BigInteger.make(BigInteger.gcd(xval, yval));
- }
- xval = 1;
- }
- if (y.words == null)
- {
- if (yval == 0)
- return BigInteger.abs(this);
- yval = 1;
- }
- int len = (xval > yval ? xval : yval) + 1;
- int[] xwords = new int[len];
- int[] ywords = new int[len];
- getAbsolute(xwords);
- y.getAbsolute(ywords);
- len = MPN.gcd(xwords, ywords, len);
- BigInteger result = new BigInteger(0);
- result.ival = len;
- result.words = xwords;
- return result.canonicalize();
- }
-
- public boolean isProbablePrime(int certainty)
- {
- /** We'll use the Rabin-Miller algorithm for doing a probabilistic
- * primality test. It is fast, easy and has faster decreasing odds of a
- * composite passing than with other tests. This means that this
- * method will actually have a probability much greater than the
- * 1 - .5^certainty specified in the JCL (p. 117), but I don't think
- * anyone will complain about better performance with greater certainty.
- *
- * The Rabin-Miller algorithm can be found on pp. 259-261 of "Applied
- * Cryptography, Second Edition" by Bruce Schneier.
- */
-
- // First rule out small prime factors and assure the number is odd.
- for (int i = 0; i < primes.length; i++)
- {
- if (words == null && ival == primes[i])
- return true;
- if (remainder(make(primes[i])).isZero())
- return false;
- }
-
- // Now perform the Rabin-Miller test.
- // NB: I know that this can be simplified programatically, but
- // I have tried to keep it as close as possible to the algorithm
- // as written in the Schneier book for reference purposes.
-
- // Set b to the number of times 2 evenly divides (this - 1).
- // I.e. 2^b is the largest power of 2 that divides (this - 1).
- BigInteger pMinus1 = add(this, -1);
- int b = pMinus1.getLowestSetBit();
-
- // Set m such that this = 1 + 2^b * m.
- BigInteger m = pMinus1.divide(make(2L << b - 1));
-
- Random rand = new Random();
- while (certainty-- > 0)
- {
- // Pick a random number greater than 1 and less than this.
- // The algorithm says to pick a small number to make the calculations
- // go faster, but it doesn't say how small; we'll use 2 to 1024.
- int a = rand.nextInt();
- a = (a < 0 ? -a : a) % 1023 + 2;
-
- BigInteger z = make(a).modPow(m, this);
- if (z.isOne() || z.equals(pMinus1))
- continue; // Passes the test; may be prime.
-
- int i;
- for (i = 0; i < b; )
- {
- if (z.isOne())
- return false;
- i++;
- if (z.equals(pMinus1))
- break; // Passes the test; may be prime.
-
- z = z.modPow(make(2), this);
- }
-
- if (i == b && !z.equals(pMinus1))
- return false;
- }
- return true;
- }
-
- private void setInvert()
- {
- if (words == null)
- ival = ~ival;
- else
- {
- for (int i = ival; --i >= 0; )
- words[i] = ~words[i];
- }
- }
-
- private void setShiftLeft(BigInteger x, int count)
- {
- int[] xwords;
- int xlen;
- if (x.words == null)
- {
- if (count < 32)
- {
- set((long) x.ival << count);
- return;
- }
- xwords = new int[1];
- xwords[0] = x.ival;
- xlen = 1;
- }
- else
- {
- xwords = x.words;
- xlen = x.ival;
- }
- int word_count = count >> 5;
- count &= 31;
- int new_len = xlen + word_count;
- if (count == 0)
- {
- realloc(new_len);
- for (int i = xlen; --i >= 0; )
- words[i+word_count] = xwords[i];
- }
- else
- {
- new_len++;
- realloc(new_len);
- int shift_out = MPN.lshift(words, word_count, xwords, xlen, count);
- count = 32 - count;
- words[new_len-1] = (shift_out << count) >> count; // sign-extend.
- }
- ival = new_len;
- for (int i = word_count; --i >= 0; )
- words[i] = 0;
- }
-
- private void setShiftRight(BigInteger x, int count)
- {
- if (x.words == null)
- set(count < 32 ? x.ival >> count : x.ival < 0 ? -1 : 0);
- else if (count == 0)
- set(x);
- else
- {
- boolean neg = x.isNegative();
- int word_count = count >> 5;
- count &= 31;
- int d_len = x.ival - word_count;
- if (d_len <= 0)
- set(neg ? -1 : 0);
- else
- {
- if (words == null || words.length < d_len)
- realloc(d_len);
- if (count == 0)
- System.arraycopy(x.words, word_count, words, 0, d_len);
- else
- MPN.rshift(words, x.words, word_count, d_len, count);
- ival = d_len;
- if (neg)
- words[ival-1] |= -1 << (32 - count);
- }
- }
- }
-
- private void setShift(BigInteger x, int count)
- {
- if (count > 0)
- setShiftLeft(x, count);
- else
- setShiftRight(x, -count);
- }
-
- private static BigInteger shift(BigInteger x, int count)
- {
- if (x.words == null)
- {
- if (count <= 0)
- return make(count > -32 ? x.ival >> (-count) : x.ival < 0 ? -1 : 0);
- if (count < 32)
- return make((long) x.ival << count);
- }
- if (count == 0)
- return x;
- BigInteger result = new BigInteger(0);
- result.setShift(x, count);
- return result.canonicalize();
- }
-
- public BigInteger shiftLeft(int n)
- {
- return shift(this, n);
- }
-
- public BigInteger shiftRight(int n)
- {
- return shift(this, -n);
- }
-
- private void format(int radix, StringBuffer buffer)
- {
- if (words == null)
- buffer.append(Integer.toString(ival, radix));
- else if (ival <= 2)
- buffer.append(Long.toString(longValue(), radix));
- else
- {
- boolean neg = isNegative();
- int[] work;
- if (neg || radix != 16)
- {
- work = new int[ival];
- getAbsolute(work);
- }
- else
- work = words;
- int len = ival;
-
- int buf_size = len * (MPN.chars_per_word(radix) + 1);
- if (radix == 16)
- {
- if (neg)
- buffer.append('-');
- int buf_start = buffer.length();
- for (int i = len; --i >= 0; )
- {
- int word = work[i];
- for (int j = 8; --j >= 0; )
- {
- int hex_digit = (word >> (4 * j)) & 0xF;
- // Suppress leading zeros:
- if (hex_digit > 0 || buffer.length() > buf_start)
- buffer.append(Character.forDigit(hex_digit, 16));
- }
- }
- }
- else
- {
- int i = buffer.length();
- for (;;)
- {
- int digit = MPN.divmod_1(work, work, len, radix);
- buffer.append(Character.forDigit(digit, radix));
- while (len > 0 && work[len-1] == 0) len--;
- if (len == 0)
- break;
- }
- if (neg)
- buffer.append('-');
- /* Reverse buffer. */
- int j = buffer.length() - 1;
- while (i < j)
- {
- char tmp = buffer.charAt(i);
- buffer.setCharAt(i, buffer.charAt(j));
- buffer.setCharAt(j, tmp);
- i++; j--;
- }
- }
- }
- }
-
- public String toString()
- {
- return toString(10);
- }
-
- public String toString(int radix)
- {
- if (words == null)
- return Integer.toString(ival, radix);
- else if (ival <= 2)
- return Long.toString(longValue(), radix);
- int buf_size = ival * (MPN.chars_per_word(radix) + 1);
- StringBuffer buffer = new StringBuffer(buf_size);
- format(radix, buffer);
- return buffer.toString();
- }
-
- public int intValue()
- {
- if (words == null)
- return ival;
- return words[0];
- }
-
- public long longValue()
- {
- if (words == null)
- return ival;
- if (ival == 1)
- return words[0];
- return ((long)words[1] << 32) + ((long)words[0] & 0xffffffffL);
- }
-
- public int hashCode()
- {
- // FIXME: May not match hashcode of JDK.
- return words == null ? ival : (words[0] + words[ival - 1]);
- }
-
- /* Assumes x and y are both canonicalized. */
- private static boolean equals(BigInteger x, BigInteger y)
- {
- if (x.words == null && y.words == null)
- return x.ival == y.ival;
- if (x.words == null || y.words == null || x.ival != y.ival)
- return false;
- for (int i = x.ival; --i >= 0; )
- {
- if (x.words[i] != y.words[i])
- return false;
- }
- return true;
- }
-
- /* Assumes this and obj are both canonicalized. */
- public boolean equals(Object obj)
- {
- if (obj == null || ! (obj instanceof BigInteger))
- return false;
- return BigInteger.equals(this, (BigInteger) obj);
- }
-
- private static BigInteger valueOf(String s, int radix)
- throws NumberFormatException
- {
- int len = s.length();
- // Testing (len < MPN.chars_per_word(radix)) would be more accurate,
- // but slightly more expensive, for little practical gain.
- if (len <= 15 && radix <= 16)
- return BigInteger.make(Long.parseLong(s, radix));
-
- int byte_len = 0;
- byte[] bytes = new byte[len];
- boolean negative = false;
- for (int i = 0; i < len; i++)
- {
- char ch = s.charAt(i);
- if (ch == '-')
- negative = true;
- else if (ch == '_' || (byte_len == 0 && (ch == ' ' || ch == '\t')))
- continue;
- else
- {
- int digit = Character.digit(ch, radix);
- if (digit < 0)
- break;
- bytes[byte_len++] = (byte) digit;
- }
- }
- return valueOf(bytes, byte_len, negative, radix);
- }
-
- private static BigInteger valueOf(byte[] digits, int byte_len,
- boolean negative, int radix)
- {
- int chars_per_word = MPN.chars_per_word(radix);
- int[] words = new int[byte_len / chars_per_word + 1];
- int size = MPN.set_str(words, digits, byte_len, radix);
- if (size == 0)
- return ZERO;
- if (words[size-1] < 0)
- words[size++] = 0;
- if (negative)
- negate(words, words, size);
- return make(words, size);
- }
-
- public double doubleValue()
- {
- if (words == null)
- return (double) ival;
- if (ival <= 2)
- return (double) longValue();
- if (isNegative())
- return BigInteger.neg(this).roundToDouble(0, true, false);
- else
- return roundToDouble(0, false, false);
- }
-
- public float floatValue()
- {
- return (float) doubleValue();
- }
-
- /** Return true if any of the lowest n bits are one.
- * (false if n is negative). */
- private boolean checkBits(int n)
- {
- if (n <= 0)
- return false;
- if (words == null)
- return n > 31 || ((ival & ((1 << n) - 1)) != 0);
- int i;
- for (i = 0; i < (n >> 5) ; i++)
- if (words[i] != 0)
- return true;
- return (n & 31) != 0 && (words[i] & ((1 << (n & 31)) - 1)) != 0;
- }
-
- /** Convert a semi-processed BigInteger to double.
- * Number must be non-negative. Multiplies by a power of two, applies sign,
- * and converts to double, with the usual java rounding.
- * @param exp power of two, positive or negative, by which to multiply
- * @param neg true if negative
- * @param remainder true if the BigInteger is the result of a truncating
- * division that had non-zero remainder. To ensure proper rounding in
- * this case, the BigInteger must have at least 54 bits. */
- private double roundToDouble(int exp, boolean neg, boolean remainder)
- {
- // Compute length.
- int il = bitLength();
-
- // Exponent when normalized to have decimal point directly after
- // leading one. This is stored excess 1023 in the exponent bit field.
- exp += il - 1;
-
- // Gross underflow. If exp == -1075, we let the rounding
- // computation determine whether it is minval or 0 (which are just
- // 0x0000 0000 0000 0001 and 0x0000 0000 0000 0000 as bit
- // patterns).
- if (exp < -1075)
- return neg ? -0.0 : 0.0;
-
- // gross overflow
- if (exp > 1023)
- return neg ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
-
- // number of bits in mantissa, including the leading one.
- // 53 unless it's denormalized
- int ml = (exp >= -1022 ? 53 : 53 + exp + 1022);
-
- // Get top ml + 1 bits. The extra one is for rounding.
- long m;
- int excess_bits = il - (ml + 1);
- if (excess_bits > 0)
- m = ((words == null) ? ival >> excess_bits
- : MPN.rshift_long(words, ival, excess_bits));
- else
- m = longValue() << (- excess_bits);
-
- // Special rounding for maxval. If the number exceeds maxval by
- // any amount, even if it's less than half a step, it overflows.
- if (exp == 1023 && ((m >> 1) == (1L << 53) - 1))
- {
- if (remainder || checkBits(il - ml))
- return neg ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
- else
- return neg ? - Double.MAX_VALUE : Double.MAX_VALUE;
- }
-
- // Normal round-to-even rule: round up if the bit dropped is a one, and
- // the bit above it or any of the bits below it is a one.
- if ((m & 1) == 1
- && ((m & 2) == 2 || remainder || checkBits(excess_bits)))
- {
- m += 2;
- // Check if we overflowed the mantissa
- if ((m & (1L << 54)) != 0)
- {
- exp++;
- // renormalize
- m >>= 1;
- }
- // Check if a denormalized mantissa was just rounded up to a
- // normalized one.
- else if (ml == 52 && (m & (1L << 53)) != 0)
- exp++;
- }
-
- // Discard the rounding bit
- m >>= 1;
-
- long bits_sign = neg ? (1L << 63) : 0;
- exp += 1023;
- long bits_exp = (exp <= 0) ? 0 : ((long)exp) << 52;
- long bits_mant = m & ~(1L << 52);
- return Double.longBitsToDouble(bits_sign | bits_exp | bits_mant);
- }
-
- /** Copy the abolute value of this into an array of words.
- * Assumes words.length >= (this.words == null ? 1 : this.ival).
- * Result is zero-extended, but need not be a valid 2's complement number.
- */
-
- private void getAbsolute(int[] words)
- {
- int len;
- if (this.words == null)
- {
- len = 1;
- words[0] = this.ival;
- }
- else
- {
- len = this.ival;
- for (int i = len; --i >= 0; )
- words[i] = this.words[i];
- }
- if (words[len - 1] < 0)
- negate(words, words, len);
- for (int i = words.length; --i > len; )
- words[i] = 0;
- }
-
- /** Set dest[0:len-1] to the negation of src[0:len-1].
- * Return true if overflow (i.e. if src is -2**(32*len-1)).
- * Ok for src==dest. */
- private static boolean negate(int[] dest, int[] src, int len)
- {
- long carry = 1;
- boolean negative = src[len-1] < 0;
- for (int i = 0; i < len; i++)
- {
- carry += ((long) (~src[i]) & 0xffffffffL);
- dest[i] = (int) carry;
- carry >>= 32;
- }
- return (negative && dest[len-1] < 0);
- }
-
- /** Destructively set this to the negative of x.
- * It is OK if x==this.*/
- private void setNegative(BigInteger x)
- {
- int len = x.ival;
- if (x.words == null)
- {
- if (len == Integer.MIN_VALUE)
- set(- (long) len);
- else
- set(-len);
- return;
- }
- realloc(len + 1);
- if (BigInteger.negate(words, x.words, len))
- words[len++] = 0;
- ival = len;
- }
-
- /** Destructively negate this. */
- private final void setNegative()
- {
- setNegative(this);
- }
-
- private static BigInteger abs(BigInteger x)
- {
- return x.isNegative() ? neg(x) : x;
- }
-
- public BigInteger abs()
- {
- return abs(this);
- }
-
- private static BigInteger neg(BigInteger x)
- {
- if (x.words == null && x.ival != Integer.MIN_VALUE)
- return make(- x.ival);
- BigInteger result = new BigInteger(0);
- result.setNegative(x);
- return result.canonicalize();
- }
-
- public BigInteger negate()
- {
- return BigInteger.neg(this);
- }
-
- /** Calculates ceiling(log2(this < 0 ? -this : this+1))
- * See Common Lisp: the Language, 2nd ed, p. 361.
- */
- public int bitLength()
- {
- if (words == null)
- return MPN.intLength(ival);
- else
- return MPN.intLength(words, ival);
- }
-
- public byte[] toByteArray()
- {
- // Determine number of bytes needed. The method bitlength returns
- // the size without the sign bit, so add one bit for that and then
- // add 7 more to emulate the ceil function using integer math.
- byte[] bytes = new byte[(bitLength() + 1 + 7) / 8];
- int nbytes = bytes.length;
-
- int wptr = 0;
- int word;
-
- // Deal with words array until one word or less is left to process.
- // If BigInteger is an int, then it is in ival and nbytes will be <= 4.
- while (nbytes > 4)
- {
- word = words[wptr++];
- for (int i = 4; i > 0; --i, word >>= 8)
- bytes[--nbytes] = (byte) word;
- }
-
- // Deal with the last few bytes. If BigInteger is an int, use ival.
- word = (words == null) ? ival : words[wptr];
- for ( ; nbytes > 0; word >>= 8)
- bytes[--nbytes] = (byte) word;
-
- return bytes;
- }
-
- /** Return the boolean opcode (for bitOp) for swapped operands.
- * I.e. bitOp(swappedOp(op), x, y) == bitOp(op, y, x).
- */
- private static int swappedOp(int op)
- {
- return
- "\000\001\004\005\002\003\006\007\010\011\014\015\012\013\016\017"
- .charAt(op);
- }
-
- /** Do one the the 16 possible bit-wise operations of two BigIntegers. */
- private static BigInteger bitOp(int op, BigInteger x, BigInteger y)
- {
- switch (op)
- {
- case 0: return ZERO;
- case 1: return x.and(y);
- case 3: return x;
- case 5: return y;
- case 15: return make(-1);
- }
- BigInteger result = new BigInteger();
- setBitOp(result, op, x, y);
- return result.canonicalize();
- }
-
- /** Do one the the 16 possible bit-wise operations of two BigIntegers. */
- private static void setBitOp(BigInteger result, int op,
- BigInteger x, BigInteger y)
- {
- if (y.words == null) ;
- else if (x.words == null || x.ival < y.ival)
- {
- BigInteger temp = x; x = y; y = temp;
- op = swappedOp(op);
- }
- int xi;
- int yi;
- int xlen, ylen;
- if (y.words == null)
- {
- yi = y.ival;
- ylen = 1;
- }
- else
- {
- yi = y.words[0];
- ylen = y.ival;
- }
- if (x.words == null)
- {
- xi = x.ival;
- xlen = 1;
- }
- else
- {
- xi = x.words[0];
- xlen = x.ival;
- }
- if (xlen > 1)
- result.realloc(xlen);
- int[] w = result.words;
- int i = 0;
- // Code for how to handle the remainder of x.
- // 0: Truncate to length of y.
- // 1: Copy rest of x.
- // 2: Invert rest of x.
- int finish = 0;
- int ni;
- switch (op)
- {
- case 0: // clr
- ni = 0;
- break;
- case 1: // and
- for (;;)
- {
- ni = xi & yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi < 0) finish = 1;
- break;
- case 2: // andc2
- for (;;)
- {
- ni = xi & ~yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi >= 0) finish = 1;
- break;
- case 3: // copy x
- ni = xi;
- finish = 1; // Copy rest
- break;
- case 4: // andc1
- for (;;)
- {
- ni = ~xi & yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi < 0) finish = 2;
- break;
- case 5: // copy y
- for (;;)
- {
- ni = yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- break;
- case 6: // xor
- for (;;)
- {
- ni = xi ^ yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- finish = yi < 0 ? 2 : 1;
- break;
- case 7: // ior
- for (;;)
- {
- ni = xi | yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi >= 0) finish = 1;
- break;
- case 8: // nor
- for (;;)
- {
- ni = ~(xi | yi);
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi >= 0) finish = 2;
- break;
- case 9: // eqv [exclusive nor]
- for (;;)
- {
- ni = ~(xi ^ yi);
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- finish = yi >= 0 ? 2 : 1;
- break;
- case 10: // c2
- for (;;)
- {
- ni = ~yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- break;
- case 11: // orc2
- for (;;)
- {
- ni = xi | ~yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi < 0) finish = 1;
- break;
- case 12: // c1
- ni = ~xi;
- finish = 2;
- break;
- case 13: // orc1
- for (;;)
- {
- ni = ~xi | yi;
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi >= 0) finish = 2;
- break;
- case 14: // nand
- for (;;)
- {
- ni = ~(xi & yi);
- if (i+1 >= ylen) break;
- w[i++] = ni; xi = x.words[i]; yi = y.words[i];
- }
- if (yi < 0) finish = 2;
- break;
- default:
- case 15: // set
- ni = -1;
- break;
- }
- // Here i==ylen-1; w[0]..w[i-1] have the correct result;
- // and ni contains the correct result for w[i+1].
- if (i+1 == xlen)
- finish = 0;
- switch (finish)
- {
- case 0:
- if (i == 0 && w == null)
- {
- result.ival = ni;
- return;
- }
- w[i++] = ni;
- break;
- case 1: w[i] = ni; while (++i < xlen) w[i] = x.words[i]; break;
- case 2: w[i] = ni; while (++i < xlen) w[i] = ~x.words[i]; break;
- }
- result.ival = i;
- }
-
- /** Return the logical (bit-wise) "and" of a BigInteger and an int. */
- private static BigInteger and(BigInteger x, int y)
- {
- if (x.words == null)
- return BigInteger.make(x.ival & y);
- if (y >= 0)
- return BigInteger.make(x.words[0] & y);
- int len = x.ival;
- int[] words = new int[len];
- words[0] = x.words[0] & y;
- while (--len > 0)
- words[len] = x.words[len];
- return BigInteger.make(words, x.ival);
- }
-
- /** Return the logical (bit-wise) "and" of two BigIntegers. */
- public BigInteger and(BigInteger y)
- {
- if (y.words == null)
- return and(this, y.ival);
- else if (words == null)
- return and(y, ival);
-
- BigInteger x = this;
- if (ival < y.ival)
- {
- BigInteger temp = this; x = y; y = temp;
- }
- int i;
- int len = y.isNegative() ? x.ival : y.ival;
- int[] words = new int[len];
- for (i = 0; i < y.ival; i++)
- words[i] = x.words[i] & y.words[i];
- for ( ; i < len; i++)
- words[i] = x.words[i];
- return BigInteger.make(words, len);
- }
-
- /** Return the logical (bit-wise) "(inclusive) or" of two BigIntegers. */
- public BigInteger or(BigInteger y)
- {
- return bitOp(7, this, y);
- }
-
- /** Return the logical (bit-wise) "exclusive or" of two BigIntegers. */
- public BigInteger xor(BigInteger y)
- {
- return bitOp(6, this, y);
- }
-
- /** Return the logical (bit-wise) negation of a BigInteger. */
- public BigInteger not()
- {
- return bitOp(12, this, ZERO);
- }
-
- public BigInteger andNot(BigInteger val)
- {
- return and(val.not());
- }
-
- public BigInteger clearBit(int n)
- {
- if (n < 0)
- throw new ArithmeticException();
-
- return and(ONE.shiftLeft(n).not());
- }
-
- public BigInteger setBit(int n)
- {
- if (n < 0)
- throw new ArithmeticException();
-
- return or(ONE.shiftLeft(n));
- }
-
- public boolean testBit(int n)
- {
- if (n < 0)
- throw new ArithmeticException();
-
- return !and(ONE.shiftLeft(n)).isZero();
- }
-
- public BigInteger flipBit(int n)
- {
- if (n < 0)
- throw new ArithmeticException();
-
- return xor(ONE.shiftLeft(n));
- }
-
- public int getLowestSetBit()
- {
- if (isZero())
- return -1;
-
- if (words == null)
- return MPN.findLowestBit(ival);
- else
- return MPN.findLowestBit(words);
- }
-
- // bit4count[I] is number of '1' bits in I.
- private static final byte[] bit4_count = { 0, 1, 1, 2, 1, 2, 2, 3,
- 1, 2, 2, 3, 2, 3, 3, 4};
-
- private static int bitCount(int i)
- {
- int count = 0;
- while (i != 0)
- {
- count += bit4_count[i & 15];
- i >>>= 4;
- }
- return count;
- }
-
- private static int bitCount(int[] x, int len)
- {
- int count = 0;
- while (--len >= 0)
- count += bitCount(x[len]);
- return count;
- }
-
- /** Count one bits in a BigInteger.
- * If argument is negative, count zero bits instead. */
- public int bitCount()
- {
- int i, x_len;
- int[] x_words = words;
- if (x_words == null)
- {
- x_len = 1;
- i = bitCount(ival);
- }
- else
- {
- x_len = ival;
- i = bitCount(x_words, x_len);
- }
- return isNegative() ? x_len * 32 - i : i;
- }
-}
diff --git a/libjava/java/net/BindException.java b/libjava/java/net/BindException.java
deleted file mode 100644
index 3e3255c7e1f..00000000000
--- a/libjava/java/net/BindException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// BindException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class BindException extends SocketException
-{
- public BindException()
- {
- super();
- }
-
- public BindException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/ConnectException.java b/libjava/java/net/ConnectException.java
deleted file mode 100644
index 449056fc791..00000000000
--- a/libjava/java/net/ConnectException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// ConnectException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class ConnectException extends SocketException
-{
- public ConnectException()
- {
- super();
- }
-
- public ConnectException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/ContentHandler.java b/libjava/java/net/ContentHandler.java
deleted file mode 100644
index 59bdb1e6370..00000000000
--- a/libjava/java/net/ContentHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// ContentHandler.java - Superclass of classes that read from a URLConnection.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract class ContentHandler
-{
- public abstract Object getContent(URLConnection urlc) throws IOException;
-}
diff --git a/libjava/java/net/ContentHandlerFactory.java b/libjava/java/net/ContentHandlerFactory.java
deleted file mode 100644
index d2727611d9c..00000000000
--- a/libjava/java/net/ContentHandlerFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// ContentHandlerFactory.java - Abstract Content Handler factory.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract interface ContentHandlerFactory
-{
- public ContentHandler createContentHandler(String mimetype);
-}
diff --git a/libjava/java/net/DatagramPacket.java b/libjava/java/net/DatagramPacket.java
deleted file mode 100644
index b08f6736e4f..00000000000
--- a/libjava/java/net/DatagramPacket.java
+++ /dev/null
@@ -1,169 +0,0 @@
-// DatagramPacket.java - Represents packets in a connectionless protocol.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 28, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public final class DatagramPacket
-{
- private byte[] buffer;
- private int offset;
- private int length;
- private InetAddress address;
- private int port;
-
- // JDK1.2
- public DatagramPacket(byte[] buf, int offset, int length)
- {
- if (buf == null)
- throw new NullPointerException("Null buffer");
- if (offset < 0)
- throw new IllegalArgumentException("Invalid offset: " + offset);
- if (length < 0)
- throw new IllegalArgumentException("Invalid length: " + length);
- if (offset + length > buf.length)
- throw new IllegalArgumentException("Potential buffer overflow - offset: "
- + offset + " length: " + length);
-
- buffer = buf;
- this.offset = offset;
- this.length = length;
- this.address = null;
- this.port = -1;
- }
-
- public DatagramPacket(byte[] buf, int length)
- {
- this(buf, 0, length);
- }
-
- // JDK1.2
- public DatagramPacket(byte[] buf, int offset, int length,
- InetAddress address, int port)
- {
- if (buf == null)
- throw new NullPointerException("Null buffer");
- if (offset < 0)
- throw new IllegalArgumentException("Invalid offset: " + offset);
- if (length < 0)
- throw new IllegalArgumentException("Invalid length: " + length);
- if (offset + length > buf.length)
- throw new IllegalArgumentException("Potential buffer overflow - offset: "
- + offset + " length: " + length);
- if (port < 0 || port > 65535)
- throw new IllegalArgumentException("Invalid port: " + port);
- if (address == null)
- throw new NullPointerException("Null address");
-
- buffer = buf;
- this.offset = offset;
- this.length = length;
- this.address = address;
- this.port = port;
- }
-
- public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
- {
- this(buf, 0, length, address, port);
- }
-
- public synchronized InetAddress getAddress()
- {
- return address;
- }
-
- public synchronized int getPort()
- {
- return port;
- }
-
- public synchronized byte[] getData()
- {
- return buffer;
- }
-
- // JDK1.2
- public synchronized int getOffset()
- {
- return offset;
- }
-
- public synchronized int getLength()
- {
- return length;
- }
-
- public synchronized void setAddress(InetAddress iaddr)
- {
- if (iaddr == null)
- throw new NullPointerException("Null address");
-
- address = iaddr;
- }
-
- public synchronized void setPort(int iport)
- {
- if (iport < 0 || iport > 65535)
- throw new IllegalArgumentException("Invalid port: " + iport);
-
- port = iport;
- }
-
- public synchronized void setData(byte[] buf)
- {
- // This form of setData requires setLength to be called separately
- // and subsequently.
- if (buf == null)
- throw new NullPointerException("Null buffer");
-
- buffer = buf;
- }
-
- // JDK1.2
- public synchronized void setData(byte[] buf, int offset, int length)
- {
- // This form of setData must be used if offset is to be changed.
-
- if (buf == null)
- throw new NullPointerException("Null buffer");
- if (offset < 0)
- throw new IllegalArgumentException("Invalid offset: " + offset);
- if (length < 0)
- throw new IllegalArgumentException("Invalid length: " + length);
- if (offset + length > buf.length)
- throw new IllegalArgumentException("Potential buffer overflow - offset: "
- + offset + " length: " + length);
-
- buffer = buf;
- this.offset = offset;
- this.length = length;
- }
-
- public synchronized void setLength(int length)
- {
- if (length < 0)
- throw new IllegalArgumentException("Invalid length: " + length);
- if (offset + length > buffer.length)
- throw new IllegalArgumentException("Potential buffer overflow - offset: "
- + offset + " length: " + length);
-
- this.length = length;
- }
-}
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java
deleted file mode 100644
index 334e003f71f..00000000000
--- a/libjava/java/net/DatagramSocket.java
+++ /dev/null
@@ -1,202 +0,0 @@
-// DatagramSocket.java
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 3, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class DatagramSocket
-{
- DatagramSocketImpl impl;
-
- public DatagramSocket() throws SocketException
- {
- this(0, ServerSocket.ANY_IF);
- }
-
- public DatagramSocket(int port) throws SocketException
- {
- this(port, ServerSocket.ANY_IF);
- }
-
- public DatagramSocket(int port, InetAddress laddr) throws SocketException
- {
- if (port < 0 || port > 65535)
- throw new IllegalArgumentException("Invalid port: " + port);
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkListen(port);
-
- String propVal = System.getProperty("impl.prefix");
- if (propVal == null || propVal.equals(""))
- impl = new PlainDatagramSocketImpl();
- else
- try
- {
- impl = (DatagramSocketImpl) Class.forName("java.net." + propVal +
- "DatagramSocketImpl").newInstance();
- }
- catch (Exception e)
- {
- System.err.println("Could not instantiate class: java.net." +
- propVal + "DatagramSocketImpl");
- impl = new PlainDatagramSocketImpl();
- }
- impl.create();
-
- // For multicasting, set the socket to be reused (Stevens pp. 195-6).
- if (this instanceof MulticastSocket)
- impl.setOption(SocketOptions.SO_REUSEADDR, new Boolean(true));
-
- impl.bind(port, laddr == null ? ServerSocket.ANY_IF : laddr);
- }
-
- public void close()
- {
- impl.close();
- }
-
- public InetAddress getLocalAddress()
- {
- SecurityManager s = System.getSecurityManager();
- // FIXME: JCL p. 510 says this should call checkConnect. But what
- // string should be used as the hostname? Maybe this is just a side
- // effect of calling InetAddress.getLocalHost.
- //
- // And is getOption with SO_BINDADDR the right way to get the address?
- // Doesn't seem to be since this method doesn't throw a SocketException
- // and SO_BINADDR can throw one.
- //
- // Also see RETURNS section in JCL p. 510 about returning any local
- // addr "if the current execution context is not allowed to connect to
- // the network interface that is actually bound to this datagram socket."
- // How is that done? via InetAddress.getLocalHost? But that throws
- // an UnknownHostException and this method doesn't.
- //
- // if (s != null)
- // s.checkConnect("localhost", -1);
- try
- {
- return (InetAddress)impl.getOption(SocketOptions.SO_BINDADDR);
- }
- catch (SocketException ex)
- {
- }
-
- try
- {
- return InetAddress.getLocalHost();
- }
- catch (UnknownHostException ex)
- {
- // FIXME: This should never happen, so how can we avoid this construct?
- return null;
- }
- }
-
- public int getLocalPort()
- {
- return impl.getLocalPort();
- }
-
- public synchronized int getSoTimeout() throws SocketException
- {
- Object timeout = impl.getOption(SocketOptions.SO_TIMEOUT);
- if (timeout instanceof Integer)
- return ((Integer)timeout).intValue();
- else
- return 0;
- }
-
- public synchronized void receive(DatagramPacket p) throws IOException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkAccept(p.getAddress().getHostAddress(), p.getPort());
-
- impl.receive(p);
- }
-
- public void send(DatagramPacket p) throws IOException
- {
- // JDK1.2: Don't do security checks if socket is connected; see jdk1.2 api.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- InetAddress addr = p.getAddress();
- if (addr.isMulticastAddress())
- s.checkMulticast(addr);
- else
- s.checkConnect(addr.getHostAddress(), p.getPort());
- }
-
- // FIXME: if this is a subclass of MulticastSocket, use getTTL for TTL val.
- impl.send(p);
- }
-
- public synchronized void setSoTimeout(int timeout) throws SocketException
- {
- if (timeout < 0)
- throw new IllegalArgumentException("Invalid timeout: " + timeout);
-
- impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
- }
-
- // JDK1.2
- // public void connect(InetAddress address, int port)
- // {
- // }
-
- // JDK1.2
- // public void disconnect()
- // {
- // }
-
- // JDK1.2
- // public InetAddress getInetAddress()
- // {
- // }
-
- // JDK1.2
- // public int getPort()
- // {
- // }
-
- // JDK1.2
- // public int getReceiveBufferSize() throws SocketException
- // {
- // }
-
- // JDK1.2
- // public int getSendBufferSize() throws SocketException
- // {
- // }
-
- // JDK1.2
- // public void setReceiveBufferSize(int size) throws SocketException
- // {
- // }
-
- // JDK1.2
- // public void setSendBufferSize(int size) throws SocketException
- // {
- // }
-}
diff --git a/libjava/java/net/DatagramSocketImpl.java b/libjava/java/net/DatagramSocketImpl.java
deleted file mode 100644
index 0d1cab7904e..00000000000
--- a/libjava/java/net/DatagramSocketImpl.java
+++ /dev/null
@@ -1,62 +0,0 @@
-// DatagramSocketImpl.java - Abstract datagram socket implementation.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.IOException;
-import java.io.FileDescriptor;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 3, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract class DatagramSocketImpl implements SocketOptions
-{
- protected int localPort;
- protected FileDescriptor fd;
-
- public DatagramSocketImpl()
- {
- }
-
- protected abstract void bind(int lport, InetAddress laddr)
- throws SocketException;
- protected abstract void close();
- protected abstract void create() throws SocketException;
- protected abstract int peek(InetAddress i) throws IOException;
- protected abstract void send(DatagramPacket p) throws IOException;
- protected abstract void receive(DatagramPacket p) throws IOException;
- protected abstract void setTTL(byte ttl) throws IOException;
- protected abstract byte getTTL() throws IOException;
- protected abstract void setTimeToLive(int ttl) throws IOException;
- protected abstract int getTimeToLive() throws IOException;
- protected abstract void join(InetAddress inetaddr) throws IOException;
- protected abstract void leave(InetAddress inetaddr) throws IOException;
-
- public abstract Object getOption(int optID) throws SocketException;
- public abstract void setOption(int optID, Object value)
- throws SocketException;
-
- protected FileDescriptor getFileDescriptor()
- {
- return fd;
- }
-
- protected int getLocalPort()
- {
- return localPort;
- }
-}
diff --git a/libjava/java/net/FileNameMap.java b/libjava/java/net/FileNameMap.java
deleted file mode 100644
index cc70aa221da..00000000000
--- a/libjava/java/net/FileNameMap.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// FileNameMap.java - Abstract interface to map from a File Name to MIME type.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract interface FileNameMap
-{
- public String getContentTypeFor(String fileName);
-}
diff --git a/libjava/java/net/HttpURLConnection.java b/libjava/java/net/HttpURLConnection.java
deleted file mode 100644
index 84e9468dfc2..00000000000
--- a/libjava/java/net/HttpURLConnection.java
+++ /dev/null
@@ -1,182 +0,0 @@
-// HttpURLConnection.java - Subclass of communications links using
-// Hypertext Transfer Protocol.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.io.*;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 29, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract class HttpURLConnection extends URLConnection
-{
- /* HTTP Success Response Codes */
- public static final int HTTP_OK = 200;
- public static final int HTTP_CREATED = 201;
- public static final int HTTP_ACCEPTED = 202;
- public static final int HTTP_NOT_AUTHORITATIVE = 203;
- public static final int HTTP_NO_CONTENT = 204;
- public static final int HTTP_RESET = 205;
- public static final int HTTP_PARTIAL = 206;
-
- /* HTTP Redirection Response Codes */
- public static final int HTTP_MULT_CHOICE = 300;
- public static final int HTTP_MOVED_PERM = 301;
- public static final int HTTP_MOVED_TEMP = 302;
- public static final int HTTP_SEE_OTHER = 303;
- public static final int HTTP_NOT_MODIFIED = 304;
- public static final int HTTP_USE_PROXY = 305;
-
- /* HTTP Client Error Response Codes */
- public static final int HTTP_BAD_REQUEST = 400;
- public static final int HTTP_UNAUTHORIZED = 401;
- public static final int HTTP_PAYMENT_REQUIRED = 402;
- public static final int HTTP_FORBIDDEN = 403;
- public static final int HTTP_NOT_FOUND = 404;
- public static final int HTTP_BAD_METHOD = 405;
- public static final int HTTP_NOT_ACCEPTABLE = 406;
- public static final int HTTP_PROXY_AUTH = 407;
- public static final int HTTP_CLIENT_TIMEOUT = 408;
- public static final int HTTP_CONFLICT = 409;
- public static final int HTTP_GONE = 410;
- public static final int HTTP_LENGTH_REQUIRED = 411;
- public static final int HTTP_PRECON_FAILED = 412;
- public static final int HTTP_ENTITY_TOO_LARGE = 413;
- public static final int HTTP_REQ_TOO_LONG = 414;
- public static final int HTTP_UNSUPPORTED_TYPE = 415;
-
- /* HTTP Server Error Response Codes */
- public static final int HTTP_SERVER_ERROR = 500;
- public static final int HTTP_INTERNAL_ERROR = 501;
- public static final int HTTP_BAD_GATEWAY = 502;
- public static final int HTTP_UNAVAILABLE = 503;
- public static final int HTTP_GATEWAY_TIMEOUT = 504;
- public static final int HTTP_VERSION = 505;
-
- static boolean followRedirects = true;
-
- protected String method = "GET";
- protected int responseCode = -1;
- protected String responseMessage;
- protected boolean instanceFollowRedirects = followRedirects;
-
- private boolean gotResponseVals = false;
-
- protected HttpURLConnection(URL url)
- {
- super(url);
- }
-
- public abstract void disconnect();
-
- public abstract boolean usingProxy();
-
- public static void setFollowRedirects(boolean set)
- {
- // Throw an exception if an extant security mgr precludes
- // setting the factory.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkSetFactory();
-
- followRedirects = set;
- }
-
- public static boolean getFollowRedirects()
- {
- return followRedirects;
- }
-
- public void setRequestMethod(String method) throws ProtocolException
- {
- if (connected)
- throw new ProtocolException("Already connected");
-
- if (method.equals("GET") || method.equals("POST") ||
- method.equals("HEAD") || method.equals("OPTIONS") ||
- method.equals("PUT") || method.equals("DELETE") ||
- method.equals("TRACE"))
- this.method = method;
- else
- throw new ProtocolException("Invalid HTTP request method");
- }
-
- public String getRequestMethod()
- {
- return method;
- }
-
- public int getResponseCode() throws IOException
- {
- if (!gotResponseVals)
- getResponseVals();
- return responseCode;
- }
-
- public String getResponseMessage() throws IOException
- {
- if (!gotResponseVals)
- getResponseVals();
- return responseMessage;
- }
-
- private void getResponseVals() throws IOException
- {
- // getHeaderField() will connect for us, but do it here first in
- // order to pick up IOExceptions.
- if (!connected)
- connect();
-
- gotResponseVals = true;
- // Response is the first header received from the connection.
- String respField = getHeaderField(0);
-
- if (respField == null || ! respField.startsWith("HTTP/"))
- {
- // Set to default values on failure.
- responseCode = -1;
- responseMessage = null;
- return;
- }
-
- int firstSpc, nextSpc;
- firstSpc = respField.indexOf(' ');
- nextSpc = respField.indexOf(' ', firstSpc + 1);
- responseMessage = respField.substring(nextSpc + 1);
- String codeStr = respField.substring(firstSpc + 1, nextSpc);
- try
- {
- responseCode = Integer.parseInt(codeStr);
- }
- catch (NumberFormatException e)
- {
- // Set to default values on failure.
- responseCode = -1;
- responseMessage = null;
- }
- }
-
- // TODO12: public Permission getPermission() throws IOException
- // {
- // }
-
- // TODO12: public InputStream getErrorStream()
- // {
- // }
-}
diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java
deleted file mode 100644
index 303a45b3cf2..00000000000
--- a/libjava/java/net/InetAddress.java
+++ /dev/null
@@ -1,256 +0,0 @@
-// INetAddress.java -- An Internet Protocol (IP) address.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Per Bothner
- * @date January 6, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * (The latter turns out to have some errors ...)
- * Status: Believed complete and correct.
- */
-
-public final class InetAddress implements java.io.Serializable
-{
- byte[] address;
- String hostname;
-
- InetAddress (byte[] address, String hostname)
- {
- this.address = address;
- this.hostname = hostname;
- }
-
- public boolean isMulticastAddress ()
- {
- int len = address.length;
- if (len == 4)
- return (address[0] & 0xF0) == 0xE0;
- if (len == 16)
- return address[0] == (byte) 0xFF;
- return false;
- }
-
- public String getHostName ()
- {
- if (hostname == null)
- lookup (null, this, false);
- return hostname;
- }
-
- public byte[] getAddress ()
- {
- // An experiment shows that JDK1.2 returns a different byte array each
- // time. This makes sense, in terms of security.
- return (byte[]) address.clone();
- }
-
- /* Helper function due to a CNI limitation. */
- private static InetAddress[] allocArray (int count)
- {
- return new InetAddress[count];
- }
-
- /* Helper function due to a CNI limitation. */
- private static SecurityException checkConnect (String hostname)
- {
- SecurityManager s = System.getSecurityManager();
- if (s == null)
- return null;
- try
- {
- s.checkConnect(hostname, -1);
- return null;
- }
- catch (SecurityException ex)
- {
- return ex;
- }
- }
-
- public String getHostAddress ()
- {
- StringBuffer sbuf = new StringBuffer(40);
- int len = address.length;
- int i = 0;
- if (len == 16)
- { // An IPv6 address.
- for (; ; i += 2)
- {
- if (i >= 16)
- return sbuf.toString();
- int x = ((address[i] & 0xFF) << 8) | (address[i+1] & 0xFF);
- boolean empty = sbuf.length() == 0;
- if (empty)
- {
- if (i == 10 && x == 0xFFFF)
- { // IPv4-mapped IPv6 address.
- sbuf.append(":FFFF:");
- break; // Continue as IPv4 address;
- }
- else if (i == 12)
- { // IPv4-compatible IPv6 address.
- sbuf.append(':');
- break; // Continue as IPv4 address.
- }
- else if (i > 0)
- sbuf.append("::");
- }
- else
- sbuf.append(':');
- if (x != 0 || i >= 14)
- sbuf.append(Integer.toHexString(x).toUpperCase());
- }
- }
- for ( ; ; )
- {
- sbuf.append(address[i] & 0xFF);
- i++;
- if (i == len)
- break;
- sbuf.append('.');
- }
- return sbuf.toString();
- }
-
- public int hashCode()
- {
- // There hashing algorithm is not specified, but a simple experiment
- // shows that it is equal to the address, as a 32-bit big-endian integer.
- int hash = 0;
- int len = address.length;
- int i = len > 4 ? len - 4 : 0;
- for ( ; i < len; i++)
- hash = (hash << 8) | (address[i] & 0xFF);
- return hash;
- }
-
- public boolean equals (Object obj)
- {
- if (obj == null || ! (obj instanceof InetAddress))
- return false;
- // "The Java Class Libraries" 2nd edition says "If a machine has
- // multiple names instances of InetAddress for different name of
- // that same machine are not equal. This is because they have
- // different host names." This violates the description in the
- // JDK 1.2 API documentation. A little experiementation
- // shows that the latter is correct.
- byte[] addr1 = address;
- byte[] addr2 = ((InetAddress) obj).address;
- if (addr1.length != addr2.length)
- return false;
- for (int i = addr1.length; --i >= 0; )
- if (addr1[i] != addr2[i])
- return false;
- return true;
- }
-
- public String toString()
- {
- return getHostName()+'/'+getHostAddress();
- }
-
- /** If host is a valid numeric IP address, return the numeric address.
- * Otherwise, return null. */
- private static native byte[] aton (String host);
-
- private static native InetAddress[] lookup
- (String hostname, InetAddress addr, boolean all);
-
- public static InetAddress getByName (String host)
- throws UnknownHostException
- {
- if (host == null)
- return getLocalHost();
- byte[] address = aton(host);
- if (address != null)
- return new InetAddress(address, null);
- InetAddress iaddr = new InetAddress(null, host);
- lookup(host, iaddr, false);
- return iaddr;
- }
-
- public static InetAddress[] getAllByName (String host)
- throws UnknownHostException
- {
- byte[] address = aton(host);
- if (address != null)
- {
- InetAddress[] result = new InetAddress[1];
- result[0] = new InetAddress(address, null);
- return result;
- }
- return lookup(host, null, true);
- }
-
- private static final byte[] localhostAddress = { 127, 0, 0, 1 };
-
- private static native String getLocalHostname ();
-
- private static InetAddress localhost = null;
-
- public static InetAddress getLocalHost() throws UnknownHostException
- {
- SecurityManager s = System.getSecurityManager();
- // Experimentation shows that JDK1.2 does cache the result.
- // However, if there is a security manager, and the cached result
- // is other than "localhost", we need to check again.
- if (localhost == null
- || (s != null && localhost.address != localhostAddress))
- getLocalHost(s);
- return localhost;
- }
-
- private static synchronized void getLocalHost(SecurityManager s)
- throws UnknownHostException
- {
- // Check the localhost cache again, now that we've synchronized.
- if (s == null && localhost != null)
- return;
- String hostname = getLocalHostname();
- if (s != null)
- {
- // "The Java Class Libraries" suggests that if the security
- // manager disallows getting the local host name, then
- // we use the loopback host.
- // However, the JDK 1.2 API claims to throw SecurityException,
- // which seems to suggest SecurityException is *not* caught.
- // In this case, experimentation shows that former is correct.
- try
- {
- // This is wrong, if the name returned from getLocalHostname()
- // is not a fully qualified name. FIXME.
- s.checkConnect(hostname, -1);
- }
- catch (SecurityException ex)
- {
- hostname = null;
- }
- }
- if (hostname != null)
- {
- try
- {
- localhost = new InetAddress(null, null);
- lookup(hostname, localhost, false);
- }
- catch (Exception ex)
- {
- }
- }
- if (localhost == null)
- localhost = new InetAddress (localhostAddress, "localhost");
- }
-}
diff --git a/libjava/java/net/JarURLConnection.java b/libjava/java/net/JarURLConnection.java
deleted file mode 100644
index 60adfcd9c61..00000000000
--- a/libjava/java/net/JarURLConnection.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.net.*;
-import java.io.*;
-import java.util.jar.*;
-import java.util.zip.*;
-import java.util.Vector;
-import java.util.Hashtable;
-
-/**
- * @author Kresten Krab Thorup <krab@gnu.org>
- * @date Aug 10, 1999.
- */
-
-
-public abstract class JarURLConnection extends URLConnection
-{
- // three different ways to say the same thing
- private final URL jarFileURL;
-
- /** The connection to the jar file itself. A JarURLConnection
- * can represent an entry in a jar file or an entire jar file. In
- * either case this describes just the jar file itself. */
- protected URLConnection jarFileURLConnection;
-
- // If this is a connection to a jar file element this is set, otherwose null.
- private final String element;
-
- // Cached JarURLConnection's
- static Hashtable conn_cache = new Hashtable();
-
- public URL getJarFileURL ()
- {
- return jarFileURL;
- }
-
- public String getEntryName ()
- {
- return element;
- }
-
- public JarURLConnection(URL url)
- throws MalformedURLException
- {
- super(url);
-
- String spec = url.getFile();
- int bang = spec.indexOf ("!/", 0);
- if (bang == -1)
- throw new MalformedURLException (url + ": No `!/' in spec.");
-
- // Extact the url for the jar itself.
- jarFileURL = new URL(spec.substring (0, bang));
-
- // Get the name of the element, if any.
- element = (bang+2==spec.length() ? null : spec.substring (bang+2));
- }
-
- public synchronized void connect() throws IOException
- {
- // Call is ignored if already connected.
- if (connected)
- return;
-
- if (getUseCaches())
- {
- jarFileURLConnection = (URLConnection) conn_cache.get (jarFileURL);
-
- if (jarFileURLConnection == null)
- {
- jarFileURLConnection = jarFileURL.openConnection ();
- jarFileURLConnection.setUseCaches (true);
- jarFileURLConnection.connect ();
- conn_cache.put (jarFileURL, jarFileURLConnection);
- }
- }
- else
- {
- jarFileURLConnection = jarFileURL.openConnection ();
- jarFileURLConnection.connect ();
- }
-
- connected = true;
- }
-
- public InputStream getInputStream() throws IOException
- {
- if (!connected)
- connect();
-
- if (! doInput)
- throw new ProtocolException("Can't open InputStream if doInput is false");
-
- if (element == null)
- {
- // This is a JarURLConnection for the entire jar file.
-
- InputStream jar_is = new BufferedInputStream(jarFileURLConnection.getInputStream ());
- return new JarInputStream(jar_is);
- }
-
- // Reaching this point, we're looking for an element of a jar file.
-
- JarFile jarfile = null;
-
- try
- {
- jarfile = getJarFile ();
- }
- catch (java.io.IOException x)
- {
- /* ignore */
- }
-
- if (jarfile != null)
- {
- // this is the easy way...
- return jarfile.getInputStream (jarfile.getEntry (element));
- }
- else
- {
- // If the jar file is not local, ...
- JarInputStream zis = new JarInputStream(jarFileURLConnection.getInputStream ());
-
- // This is hideous, we're doing a linear search...
- for (ZipEntry ent = zis.getNextEntry ();
- ent != null;
- ent = zis.getNextEntry ())
- {
- if (element.equals (ent.getName ()))
- {
- int size = (int)ent.getSize();
- byte[] data = new byte[size];
- zis.read (data, 0, size);
- return new ByteArrayInputStream (data);
- }
- }
- }
-
- return null;
- }
-
- public JarEntry getJarEntry () throws java.io.IOException
- {
- JarFile jarfile = null;
-
- if (element == null)
- return null;
-
- if (! doInput)
- throw new ProtocolException("Can't open JarEntry if doInput is false");
-
- try
- {
- jarfile = getJarFile ();
- }
- catch (java.io.IOException x)
- {
- /* ignore */
- }
-
- if (jarfile == null)
- {
- JarInputStream zis = new JarInputStream(jarFileURLConnection.getInputStream ());
-
- // This is hideous, we're doing a linear search for the thing...
- for (ZipEntry ent = zis.getNextEntry ();
- ent != null;
- ent = zis.getNextEntry ())
- {
- if (element.equals (ent.getName ()))
- {
- return new JarEntry (ent);
- }
- }
- }
-
- else
- {
- return jarfile.getJarEntry (element);
- }
-
- return null;
- }
-
- public abstract JarFile getJarFile() throws java.io.IOException;
-
-
- // Steal and borrow from protocol/file/Connection.java
-
- private Hashtable hdrHash = new Hashtable();
- private Vector hdrVec = new Vector();
- private boolean gotHeaders = false;
-
- // Override default method in URLConnection.
- public String getHeaderField(String name)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- return (String) hdrHash.get(name.toLowerCase());
- }
-
- // Override default method in URLConnection.
- public String getHeaderField(int n)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- if (n < hdrVec.size())
- return getField((String) hdrVec.elementAt(n));
-
- return null;
- }
-
- // Override default method in URLConnection.
- public String getHeaderFieldKey(int n)
- {
- try
- {
- getHeaders();
- }
- catch (IOException x)
- {
- return null;
- }
- if (n < hdrVec.size())
- return getKey((String) hdrVec.elementAt(n));
-
- return null;
- }
-
- private String getKey(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(0, index);
- else
- return null;
- }
-
- private String getField(String str)
- {
- if (str == null)
- return null;
- int index = str.indexOf(':');
- if (index >= 0)
- return str.substring(index + 1).trim();
- else
- return str;
- }
-
- private void getHeaders() throws IOException
- {
- if (gotHeaders)
- return;
- gotHeaders = true;
-
- connect();
-
- // Yes, it is overkill to use the hash table and vector here since
- // we're only putting one header in the file, but in case we need
- // to add others later and for consistency, we'll implement it this way.
-
- // Add the only header we know about right now: Content-length.
- long len;
-
- if (element == null)
- len = jarFileURLConnection.getContentLength ();
- else
- len = getJarEntry ().getSize ();
-
- String line = "Content-length: " + len;
- hdrVec.addElement(line);
-
- // The key will never be null in this scenario since we build up the
- // headers ourselves. If we ever rely on getting a header from somewhere
- // else, then we may have to check if the result of getKey() is null.
- String key = getKey(line);
- hdrHash.put(key.toLowerCase(), Long.toString(len));
- }
-
-}
diff --git a/libjava/java/net/MalformedURLException.java b/libjava/java/net/MalformedURLException.java
deleted file mode 100644
index 5ea6480b780..00000000000
--- a/libjava/java/net/MalformedURLException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// MalformedURLException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class MalformedURLException extends java.io.IOException
-{
- public MalformedURLException()
- {
- super();
- }
-
- public MalformedURLException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/MulticastSocket.java b/libjava/java/net/MulticastSocket.java
deleted file mode 100644
index c5bee02b332..00000000000
--- a/libjava/java/net/MulticastSocket.java
+++ /dev/null
@@ -1,126 +0,0 @@
-// MulticastSocket.java
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 18, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class MulticastSocket extends DatagramSocket
-{
- // FIXME: the local addr bound to the multicast socket can be reused;
- // unlike unicast sockets. It binds to any available network interface.
- // See p.1159 JCL book.
-
- public MulticastSocket() throws IOException
- {
- super(0, ServerSocket.ANY_IF);
- }
-
- public MulticastSocket(int port) throws IOException
- {
- super(port, ServerSocket.ANY_IF);
- }
-
- public InetAddress getInterface() throws SocketException
- {
- // FIXME: Is it possible that an InetAddress wasn't returned from getOption?
- return (InetAddress) impl.getOption(SocketOptions.IP_MULTICAST_IF);
- }
-
- // Deprecated in JDK1.2
- public byte getTTL() throws IOException
- {
- // Use getTTL here rather than getTimeToLive in case we're using an impl
- // other than the default PlainDatagramSocketImpl and it doesn't have
- // getTimeToLive yet.
- return impl.getTTL();
- }
-
- // JDK1.2
- public int getTimeToLive() throws IOException
- {
- return impl.getTimeToLive();
- }
-
- public void setInterface(InetAddress inf) throws SocketException
- {
- impl.setOption(SocketOptions.IP_MULTICAST_IF, inf);
- }
-
- // Deprecated in JDK1.2
- public void setTTL(byte ttl) throws IOException
- {
- // Use setTTL here rather than setTimeToLive in case we're using an impl
- // other than the default PlainDatagramSocketImpl and it doesn't have
- // setTimeToLive yet.
- impl.setTTL(ttl);
- }
-
- // JDK1.2
- public void setTimeToLive(int ttl) throws IOException
- {
- if (ttl <= 0 || ttl > 255)
- throw new IllegalArgumentException("Invalid ttl: " + ttl);
-
- impl.setTimeToLive(ttl);
- }
-
- public void joinGroup(InetAddress mcastaddr) throws IOException
- {
- if (! mcastaddr.isMulticastAddress())
- throw new IOException("Not a Multicast address");
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkMulticast(mcastaddr);
-
- impl.join(mcastaddr);
- }
-
- public void leaveGroup(InetAddress mcastaddr) throws IOException
- {
- if (! mcastaddr.isMulticastAddress())
- throw new IOException("Not a Multicast address");
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkMulticast(mcastaddr);
-
- impl.leave(mcastaddr);
- }
-
- public synchronized void send(DatagramPacket p, byte ttl) throws IOException
- {
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- {
- InetAddress addr = p.getAddress();
- if (addr.isMulticastAddress())
- s.checkMulticast(addr, ttl);
- else
- s.checkConnect(addr.getHostAddress(), p.getPort());
- }
-
- int oldttl = impl.getTimeToLive();
- impl.setTimeToLive(((int) ttl) & 0xFF);
- impl.send(p);
- impl.setTimeToLive(oldttl);
- }
-}
diff --git a/libjava/java/net/NoRouteToHostException.java b/libjava/java/net/NoRouteToHostException.java
deleted file mode 100644
index cb1c5f8bad9..00000000000
--- a/libjava/java/net/NoRouteToHostException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// NoRouteToHostException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class NoRouteToHostException extends SocketException
-{
- public NoRouteToHostException()
- {
- super();
- }
-
- public NoRouteToHostException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/PlainDatagramSocketImpl.java b/libjava/java/net/PlainDatagramSocketImpl.java
deleted file mode 100644
index 9a290dcd0f8..00000000000
--- a/libjava/java/net/PlainDatagramSocketImpl.java
+++ /dev/null
@@ -1,112 +0,0 @@
-// PlainDatagramSocketImpl.java - Implementation of DatagramSocketImpl.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.IOException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 3, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-class PlainDatagramSocketImpl extends DatagramSocketImpl
-{
- // These fields are mirrored for use in native code to avoid cpp conflicts
- // when the #defines in system header files are the same as the public fields.
- static final int _Jv_TCP_NODELAY_ = SocketOptions.TCP_NODELAY,
- _Jv_SO_BINDADDR_ = SocketOptions.SO_BINDADDR,
- _Jv_SO_REUSEADDR_ = SocketOptions.SO_REUSEADDR,
- _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF,
- _Jv_SO_LINGER_ = SocketOptions.SO_LINGER,
- _Jv_SO_TIMEOUT_ = SocketOptions.SO_TIMEOUT,
- _Jv_SO_SNDBUF_ = SocketOptions.SO_SNDBUF,
- _Jv_SO_RCVBUF_ = SocketOptions.SO_RCVBUF;
-
- int fnum = -1;
-
- // FIXME: Is this necessary? Could it help w/ DatagramSocket.getLocalAddress?
- // InetAddress address;
-
- // localAddress cache
- InetAddress localAddress;
-
- // 'timeout' is set/read by setOption/getOption.
- int timeout = 0;
-
- // FIXME: Probably should have bind (and create?) calls from DatagramSocket
- // constuctor. If so, then same change should be made to the corresponding
- // Socket (non-datagram) classes. This allows the implementation more
- // complete control over how the socket is set up and used (e.g. connect,
- // setting options, etc.).
- public PlainDatagramSocketImpl()
- {
- }
-
- protected native void bind(int lport, InetAddress laddr)
- throws SocketException;
- protected native void create() throws SocketException;
- protected native int peek(InetAddress i) throws IOException;
- protected native void setTimeToLive(int ttl) throws IOException;
- protected native int getTimeToLive() throws IOException;
- protected native void send(DatagramPacket p) throws IOException;
- protected native void receive(DatagramPacket p) throws IOException;
- public native void setOption(int optID, Object value) throws SocketException;
- public native Object getOption(int optID) throws SocketException;
- private native void mcastGrp(InetAddress inetaddr, boolean join)
- throws IOException;
-
- protected void close()
- {
- // FIXME: The close method in each of the DatagramSocket* classes does
- // not throw an IOException. The issue is that FileDescriptor.close()
- // in natFileDescriptorPosix.cc can throw one, so we have to catch
- // it here. It seems that FileDescriptor.close is properly throwing
- // the IOException on errors since many of the java.io classes depend
- // on that. This probably requires a bit more research but for now,
- // we'll catch the IOException here.
- try
- {
- fd.close();
- }
- catch (IOException e)
- {
- System.err.println("PlainDatagramSocketImpl.close: Error closing - " +
- e.getMessage());
- }
- }
-
- // Deprecated in JDK 1.2.
- protected byte getTTL() throws IOException
- {
- return (byte) getTimeToLive();
- }
-
- // Deprecated in JDK 1.2.
- protected void setTTL(byte ttl) throws IOException
- {
- setTimeToLive(((int) ttl) & 0xFF);
- }
-
- protected void join(InetAddress inetaddr) throws IOException
- {
- mcastGrp(inetaddr, true);
- }
-
- protected void leave(InetAddress inetaddr) throws IOException
- {
- mcastGrp(inetaddr, false);
- }
-}
diff --git a/libjava/java/net/PlainSocketImpl.java b/libjava/java/net/PlainSocketImpl.java
deleted file mode 100644
index df9d4387d44..00000000000
--- a/libjava/java/net/PlainSocketImpl.java
+++ /dev/null
@@ -1,97 +0,0 @@
-// PlainSocketImpl.java - Implementation of SocketImpl.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date February 22, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-class PlainSocketImpl extends SocketImpl
-{
- // These fields are mirrored for use in native code to avoid cpp conflicts
- // when the #defines in system header files are the same as the public fields.
- static final int _Jv_TCP_NODELAY_ = SocketOptions.TCP_NODELAY,
- _Jv_SO_BINDADDR_ = SocketOptions.SO_BINDADDR,
- _Jv_SO_REUSEADDR_ = SocketOptions.SO_REUSEADDR,
- _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF,
- _Jv_SO_LINGER_ = SocketOptions.SO_LINGER,
- _Jv_SO_TIMEOUT_ = SocketOptions.SO_TIMEOUT,
- _Jv_SO_SNDBUF_ = SocketOptions.SO_SNDBUF,
- _Jv_SO_RCVBUF_ = SocketOptions.SO_RCVBUF;
-
- int fnum = -1;
-
- // This value is set/read by setOption/getOption.
- int timeout = 0;
-
- // localAddress cache
- InetAddress localAddress;
-
- public native void setOption(int optID, Object value) throws SocketException;
-
- public native Object getOption(int optID) throws SocketException;
-
- protected native void create (boolean stream) throws IOException;
-
- protected void connect (String host, int port) throws IOException
- {
- connect(InetAddress.getByName(host), port);
- }
-
- protected native void connect (InetAddress host, int port)
- throws IOException;
-
- protected native void bind (InetAddress host, int port) throws IOException;
-
- protected native void listen (int backlog) throws IOException;
-
- private native void accept (PlainSocketImpl s) throws IOException;
- protected void accept (SocketImpl s) throws IOException
- {
- accept((PlainSocketImpl) s);
- }
-
- private InputStream in;
- private OutputStream out;
-
- protected InputStream getInputStream() throws IOException
- {
- // FIXME: TODO - Implement class SocketInputStream timeouts in read();
- if (in == null)
- in = new FileInputStream (fd);
- return in;
- }
-
- protected OutputStream getOutputStream() throws IOException
- {
- if (out == null)
- out = new FileOutputStream (fd);
- return out;
- }
-
- protected int available () throws IOException
- {
- return in.available();
- }
-
- protected void close () throws IOException
- {
- fd.close();
- }
-}
diff --git a/libjava/java/net/ProtocolException.java b/libjava/java/net/ProtocolException.java
deleted file mode 100644
index 2263457d805..00000000000
--- a/libjava/java/net/ProtocolException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// ProtocolException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class ProtocolException extends java.io.IOException
-{
- public ProtocolException()
- {
- super();
- }
-
- public ProtocolException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java
deleted file mode 100644
index bc1b072fa2d..00000000000
--- a/libjava/java/net/ServerSocket.java
+++ /dev/null
@@ -1,114 +0,0 @@
-// ServerSocket.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date January 6, 1999.
- */
-
-/** Written using on-line Java Platform 1.2 API Specification.
- * Status: I believe all methods are implemented.
- */
-
-package java.net;
-import java.io.*;
-
-public class ServerSocket
-{
- static SocketImplFactory factory;
- SocketImpl impl;
-
- static final byte[] zeros = {0,0,0,0};
- /* dummy InetAddress, used to bind socket to any (all) network interfaces */
- static final InetAddress ANY_IF = new InetAddress(zeros, null);
-
- public ServerSocket (int port)
- throws java.io.IOException
- {
- this(port, 50);
- }
-
- public ServerSocket (int port, int backlog)
- throws java.io.IOException
- {
- this(port, backlog, ANY_IF);
- }
-
- public ServerSocket (int port, int backlog, InetAddress bindAddr)
- throws java.io.IOException
- {
- if (factory == null)
- this.impl = new PlainSocketImpl();
- else
- this.impl = factory.createSocketImpl();
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkListen(port);
- impl.create(true);
- impl.bind(bindAddr == null ? ANY_IF : bindAddr, port);
- impl.listen(backlog);
- }
-
- public InetAddress getInetAddress()
- {
- return impl.getInetAddress();
- }
-
- public int getLocalPort()
- {
- return impl.getLocalPort();
- }
-
- public Socket accept () throws IOException
- {
- Socket s = new Socket(Socket.factory == null ? new PlainSocketImpl()
- : Socket.factory.createSocketImpl());
- implAccept (s);
- return s;
- }
-
- protected final void implAccept (Socket s) throws IOException
- {
- impl.accept(s.impl);
- }
-
- public void close () throws IOException
- {
- impl.close();
- }
-
- public synchronized void setSoTimeout (int timeout) throws SocketException
- {
- if (timeout < 0)
- throw new IllegalArgumentException("Invalid timeout: " + timeout);
-
- impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
- }
-
- public synchronized int getSoTimeout () throws SocketException
- {
- Object timeout = impl.getOption(SocketOptions.SO_TIMEOUT);
- if (timeout instanceof Integer)
- return ((Integer)timeout).intValue();
- else
- return 0;
- }
-
- public String toString ()
- {
- return "ServerSocket" + impl.toString();
- }
-
- public static synchronized void setSocketFactory (SocketImplFactory fac)
- throws IOException
- {
- factory = fac;
- }
-}
diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java
deleted file mode 100644
index 34ea165e51a..00000000000
--- a/libjava/java/net/Socket.java
+++ /dev/null
@@ -1,263 +0,0 @@
-// Socket.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date January 6, 1999.
- */
-
-/** Written using on-line Java Platform 1.2 API Specification.
- * Status: I believe all methods are implemented.
- */
-
-package java.net;
-import java.io.*;
-
-public class Socket
-{
- static SocketImplFactory factory;
- SocketImpl impl;
-
- protected Socket ()
- {
- }
-
- protected Socket (SocketImpl impl) throws SocketException
- {
- this.impl = impl;
- }
-
- public Socket (String host, int port)
- throws UnknownHostException, IOException
- {
- this(factory == null ? new PlainSocketImpl() : factory.createSocketImpl());
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(host, port);
- impl.create(true);
- // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port,
- // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as
- // that default. JDK 1.2 doc infers not to do a bind.
- impl.connect(host, port);
- }
-
- public Socket (InetAddress address, int port)
- throws IOException
- {
- this(factory == null ? new PlainSocketImpl() : factory.createSocketImpl());
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(address.getHostName(), port);
- impl.create(true);
- // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port,
- // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as
- // that default. JDK 1.2 doc infers not to do a bind.
- impl.connect(address, port);
- }
-
- public Socket (String host, int port,
- InetAddress localAddr, int localPort) throws IOException
- {
- this(factory == null ? new PlainSocketImpl() : factory.createSocketImpl());
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(host, port);
- impl.create(true);
- // FIXME: JCL p. 1587 says if localAddr is null, use getLocalAddress().
- impl.bind(localAddr, localPort);
- impl.connect(host, port);
- }
-
- public Socket (InetAddress address, int port,
- InetAddress localAddr, int localPort) throws IOException
- {
- this(factory == null ? new PlainSocketImpl() : factory.createSocketImpl());
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(address.getHostName(), port);
- impl.create(true);
- // FIXME: JCL p. 1587 says if localAddr is null, use getLocalAddress().
- impl.bind(localAddr, localPort);
- impl.connect(address, port);
- }
-
- /**
- * @deprecated Use DatagramSocket instead for UDP transport.
- */
- public Socket (String host, int port, boolean stream) throws IOException
- {
- impl = factory == null ? new PlainSocketImpl()
- : factory.createSocketImpl();
- impl.create(stream);
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(host, port);
- // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port,
- // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as
- // that default. JDK 1.2 doc infers not to do a bind.
- impl.connect(host, port);
- }
-
- /**
- * @deprecated Use DatagramSocket instead for UDP transport.
- */
- public Socket (InetAddress host, int port, boolean stream) throws IOException
- {
- impl = factory == null ? new PlainSocketImpl()
- : factory.createSocketImpl();
- impl.create(stream);
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkConnect(host.getHostName(), port);
- // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port,
- // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as
- // that default. JDK 1.2 doc infers not to do a bind.
- impl.connect(host, port);
- }
-
- public InetAddress getInetAddress ()
- {
- return impl.getInetAddress();
- }
-
- public InetAddress getLocalAddress ()
- {
- // FIXME: see note in DatagramSocket.java about checkConnect() and security
- try
- {
- return (InetAddress)impl.getOption(SocketOptions.SO_BINDADDR);
- }
- catch (SocketException x)
- {
- // (hopefully) shouldn't happen
- System.err.println(x);
- throw new java.lang.InternalError("Error in PlainSocketImpl.getOption");
- }
- }
-
- public int getPort ()
- {
- return impl.getPort();
- }
-
- public int getLocalPort ()
- {
- return impl.getLocalPort();
- }
-
- public InputStream getInputStream () throws IOException
- {
- return impl.getInputStream();
- }
-
- public OutputStream getOutputStream () throws IOException
- {
- return impl.getOutputStream();
- }
-
- public void setTcpNoDelay (boolean on) throws SocketException
- {
- impl.setOption( SocketOptions.TCP_NODELAY, new Boolean(on) );
- }
-
- public boolean getTcpNoDelay() throws SocketException
- {
- Boolean bool = (Boolean)impl.getOption( SocketOptions.TCP_NODELAY );
- return bool.booleanValue();
- }
-
- public void setSoLinger(boolean on, int linger) throws SocketException
- {
- if ( on && (linger >= 0) )
- {
- if (linger > 65535)
- linger = 65535;
- impl.setOption( SocketOptions.SO_LINGER, new Integer(linger) );
- }
- else if ( on && (linger < 0) )
- throw new IllegalArgumentException("SO_LINGER must be >= 0");
- else
- impl.setOption( SocketOptions.SO_LINGER, new Boolean(false) );
- }
-
- public int getSoLinger() throws SocketException
- {
- Object linger = impl.getOption(SocketOptions.SO_LINGER);
- if (linger instanceof Integer)
- return ((Integer)linger).intValue();
- else
- return -1;
- }
-
- public synchronized void setSoTimeout (int timeout) throws SocketException
- {
- if (timeout < 0)
- throw new IllegalArgumentException("Invalid timeout: " + timeout);
-
- impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
- }
-
- public synchronized int getSoTimeout () throws SocketException
- {
- Object timeout = impl.getOption(SocketOptions.SO_TIMEOUT);
- if (timeout instanceof Integer)
- return ((Integer)timeout).intValue();
- else
- return 0;
- }
-
- // JDK1.2
- public void setSendBufferSize (int size) throws SocketException
- {
- if (size <= 0)
- throw new IllegalArgumentException("Invalid buffer size: " + size);
-
- impl.setOption(SocketOptions.SO_SNDBUF, new Integer(size));
- }
-
- // JDK1.2
- public int getSendBufferSize () throws SocketException
- {
- Integer buf = (Integer)impl.getOption(SocketOptions.SO_SNDBUF);
- return buf.intValue();
- }
-
- // JDK1.2
- public void setReceiveBufferSize (int size) throws SocketException
- {
- if (size <= 0)
- throw new IllegalArgumentException("Invalid buffer size: " + size);
-
- impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size));
- }
-
- // JDK1.2
- public int getReceiveBufferSize () throws SocketException
- {
- Integer buf = (Integer)impl.getOption(SocketOptions.SO_RCVBUF);
- return buf.intValue();
- }
-
- public synchronized void close () throws IOException
- {
- impl.close();
- }
-
- public String toString ()
- {
- return "Socket" + impl.toString();
- }
-
- public static synchronized void setSocketImplFactory (SocketImplFactory fac)
- throws IOException
- {
- factory = fac;
- }
-}
diff --git a/libjava/java/net/SocketException.java b/libjava/java/net/SocketException.java
deleted file mode 100644
index 847cdc9048d..00000000000
--- a/libjava/java/net/SocketException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// SocketException.java - Base class for networking exceptions
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Per Bothner
- * @date January 6, 1999.
- */
-
-/** Written using on-line Java Platform 1.2 API Specification.
- * Believed complete and correct.
- */
-
-public class SocketException extends java.io.IOException
-{
- public SocketException ()
- {
- super();
- }
-
- public SocketException (String s)
- {
- super(s);
- }
-}
diff --git a/libjava/java/net/SocketImpl.java b/libjava/java/net/SocketImpl.java
deleted file mode 100644
index d902a30e40a..00000000000
--- a/libjava/java/net/SocketImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// SocketImpl.java - Abstract socket implementation.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date January 6, 1999.
- */
-
-/** Written using on-line Java Platform 1.2 API Specification.
- * Believed complete and correct.
- */
-
-public abstract class SocketImpl implements SocketOptions
-{
- protected InetAddress address;
-
- protected FileDescriptor fd;
-
- protected int localport;
-
- protected int port;
-
- public SocketImpl ()
- {
- }
-
- protected abstract void create (boolean stream) throws IOException;
-
- protected abstract void connect (String host, int port) throws IOException;
-
- protected abstract void connect (InetAddress host, int port)
- throws IOException;
-
- protected abstract void bind (InetAddress host, int port) throws IOException;
-
- protected abstract void listen (int backlog) throws IOException;
-
- protected abstract void accept (SocketImpl s) throws IOException;
-
- protected abstract InputStream getInputStream() throws IOException;
-
- protected abstract OutputStream getOutputStream() throws IOException;
-
- protected abstract int available () throws IOException;
-
- protected abstract void close () throws IOException;
-
- protected FileDescriptor getFileDescriptor () { return fd; }
-
- protected InetAddress getInetAddress () { return address; }
-
- protected int getPort () { return port; }
-
- protected int getLocalPort () { return localport; }
-
- public abstract Object getOption(int optID) throws SocketException;
-
- public abstract void setOption(int optID, Object value)
- throws SocketException;
-
- public String toString ()
- {
- return "[addr=" + address.toString() + ",port=" + Integer.toString(port) +
- ",localport=" + Integer.toString(localport) + "]";
- }
-}
diff --git a/libjava/java/net/SocketImplFactory.java b/libjava/java/net/SocketImplFactory.java
deleted file mode 100644
index defce2e02cb..00000000000
--- a/libjava/java/net/SocketImplFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// SocketImplFactory.java - Abstract socket implementation factory.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date January 6, 1999.
- */
-
-/** Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public abstract interface SocketImplFactory
-{
- public SocketImpl createSocketImpl ();
-}
diff --git a/libjava/java/net/SocketOptions.java b/libjava/java/net/SocketOptions.java
deleted file mode 100644
index d0e00d9ec08..00000000000
--- a/libjava/java/net/SocketOptions.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// SocketOptions.java - Interface for get/set socket options.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 3, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public abstract interface SocketOptions
-{
- public static final int TCP_NODELAY = 0x1;
- public static final int SO_BINDADDR = 0xF;
- public static final int SO_REUSEADDR = 0x4;
- public static final int IP_MULTICAST_IF = 0x10;
- public static final int SO_LINGER = 0x80;
- public static final int SO_TIMEOUT = 0x1006;
-
- // JDK1.2
- public static final int SO_SNDBUF = 0x1001;
-
- // JDK1.2
- public static final int SO_RCVBUF = 0x1002;
-
- public void setOption(int optID, Object value) throws SocketException;
- public Object getOption(int optID) throws SocketException;
-}
diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java
deleted file mode 100644
index 25837325fc0..00000000000
--- a/libjava/java/net/URL.java
+++ /dev/null
@@ -1,411 +0,0 @@
-// URL.java - A Uniform Resource Locator.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.io.*;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 4, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public final class URL implements Serializable
-{
- private String protocol;
- private String host;
- private int port = -1; // Initialize for constructor using context.
- private String file;
- private String ref;
- private int hashCode = 0;
- transient private URLStreamHandler handler;
- private static Hashtable handlers = new Hashtable();
- private static URLStreamHandlerFactory factory;
-
- private static final long serialVersionUID = -7627629688361524110L;
-
- public URL(String protocol, String host, int port, String file)
- throws MalformedURLException
- {
- this(protocol, host, port, file, null);
- }
-
- public URL(String protocol, String host, String file)
- throws MalformedURLException
- {
- this(protocol, host, -1, file, null);
- }
-
- // JDK1.2
- public URL(String protocol, String host, int port, String file,
- URLStreamHandler handler) throws MalformedURLException
- {
- if (protocol == null)
- throw new MalformedURLException("null protocol");
- this.protocol = protocol;
-
- if (handler != null)
- {
- // TODO12: Need SecurityManager.checkPermission and
- // TODO12: java.net.NetPermission from JDK 1.2 to be implemented.
- // Throw an exception if an extant security mgr precludes
- // specifying a StreamHandler.
- //
- // SecurityManager s = System.getSecurityManager();
- // if (s != null)
- // s.checkPermission(NetPermission("specifyStreamHandler"));
-
- this.handler = handler;
- }
- else
- this.handler = setURLStreamHandler(protocol);
-
- if (this.handler == null)
- throw new MalformedURLException("Handler for protocol not found");
-
- this.host = host;
-
- this.port = port;
-
- int hashAt = file.indexOf('#');
- if (hashAt < 0)
- {
- this.file = file;
- this.ref = null;
- }
- else
- {
- this.file = file.substring(0, hashAt);
- this.ref = file.substring(hashAt + 1);
- }
- hashCode = hashCode(); // Used for serialization.
- }
-
- public URL(String spec) throws MalformedURLException
- {
- this((URL) null, spec, (URLStreamHandler) null);
- }
-
- public URL(URL context, String spec) throws MalformedURLException
- {
- this(context, spec, (URLStreamHandler) null);
- }
-
- // JDK1.2
- public URL(URL context, String spec, URLStreamHandler handler)
- throws MalformedURLException
- {
- /* A protocol is defined by the doc as the substring before a ':'
- * as long as the ':' occurs before any '/'.
- *
- * If context is null, then spec must be an absolute URL.
- *
- * The relative URL need not specify all the components of a URL.
- * If the protocol, host name, or port number is missing, the value
- * is inherited from the context. A bare file component is appended
- * to the context's file. The optional anchor is not inherited.
- */
-
- // If this is an absolute URL, then ignore context completely.
- // An absolute URL must have chars prior to "://" but cannot have a colon
- // right after the "://". The second colon is for an optional port value
- // and implies that the host from the context is used if available.
- int colon;
- if ((colon = spec.indexOf("://", 1)) > 0 &&
- ! spec.regionMatches(colon, "://:", 0, 4))
- context = null;
-
- int slash;
- if ((colon = spec.indexOf(':')) > 0 &&
- (colon < (slash = spec.indexOf('/')) || slash < 0))
- {
- // Protocol specified in spec string.
- protocol = spec.substring(0, colon);
- if (context != null && context.protocol.equals(protocol))
- {
- // The 1.2 doc specifically says these are copied to the new URL.
- host = context.host;
- port = context.port;
- file = context.file;
- }
- }
- else if (context != null)
- {
- // Protocol NOT specified in spec string.
- // Use context fields (except ref) as a foundation for relative URLs.
- colon = -1;
- protocol = context.protocol;
- host = context.host;
- port = context.port;
- file = context.file;
- }
- else // Protocol NOT specified in spec. and no context available.
- throw new
- MalformedURLException("Absolute URL required with null context");
-
- if (handler != null)
- {
- // TODO12: Need SecurityManager.checkPermission and
- // TODO12: java.net.NetPermission from JDK 1.2 to be implemented.
- // Throw an exception if an extant security mgr precludes
- // specifying a StreamHandler.
- //
- // SecurityManager s = System.getSecurityManager();
- // if (s != null)
- // s.checkPermission(NetPermission("specifyStreamHandler"));
-
- this.handler = handler;
- }
- else
- this.handler = setURLStreamHandler(protocol);
-
- if (this.handler == null)
- throw new MalformedURLException("Handler for protocol not found");
-
- // JDK 1.2 doc for parseURL specifically states that any '#' ref
- // is to be excluded by passing the 'limit' as the indexOf the '#'
- // if one exists, otherwise pass the end of the string.
- int hashAt = spec.indexOf('#', colon + 1);
- this.handler.parseURL(this, spec, colon + 1,
- hashAt < 0 ? spec.length() : hashAt);
- if (hashAt >= 0)
- ref = spec.substring(hashAt + 1);
-
- hashCode = hashCode(); // Used for serialization.
- }
-
- public boolean equals(Object obj)
- {
- if (obj == null || ! (obj instanceof URL))
- return false;
-
- URL uObj = (URL) obj;
-
- // This comparison is very conservative. It assumes that any
- // field can be null.
- return (port == uObj.port
- && ((protocol == null && uObj.protocol == null)
- || (protocol != null && protocol.equals(uObj.protocol)))
- && ((host == null && uObj.host == null)
- || (host != null && host.equals(uObj.host)))
- && ((file == null && uObj.file == null)
- || (file != null && file.equals(uObj.file)))
- && ((ref == null && uObj.ref == null)
- || (ref != null && ref.equals(uObj.ref))));
- }
-
- public final Object getContent() throws IOException
- {
- return openConnection().getContent();
- }
-
- public String getFile()
- {
- return file;
- }
-
- public String getHost()
- {
- return host;
- }
-
- public int getPort()
- {
- return port;
- }
-
- public String getProtocol()
- {
- return protocol;
- }
-
- public String getRef()
- {
- return ref;
- }
-
- public int hashCode()
- {
- // JCL book says this is computed using (only) the hashcodes of the
- // protocol, host and file fields. Empirical evidence indicates this
- // is probably XOR in JDK 1.1. In JDK 1.2 it seems to be a sum including
- // the port.
- //
- // JDK 1.2 online doc infers that host could be null because it
- // explicitly states that file cannot be null but is silent on host.
- // A simple example with protocol "http" (hashcode 3213448), host null,
- // file "/" (hashcode 47) produced a hashcode (3213494) which appeared
- // to be the sum of the two hashcodes plus the port. Another example
- // using "/index.html" for file bore this out; as well as "#" for file
- // (which was reduced to "" with a hashcode of zero). A "" host also
- // causes the port number and the two hashcodes to be summed.
-
- if (hashCode != 0)
- return hashCode; // Use cached value if available.
- else
- return (protocol.hashCode() + ((host == null) ? 0 : host.hashCode()) +
- port + file.hashCode());
- }
-
- public URLConnection openConnection() throws IOException
- {
- return handler.openConnection(this);
- }
-
- public final InputStream openStream() throws IOException
- {
- return openConnection().getInputStream();
- }
-
- public boolean sameFile(URL other)
- {
- // This comparison is very conservative. It assumes that any
- // field can be null.
- return (other != null
- && port == other.port
- && ((protocol == null && other.protocol == null)
- || (protocol != null && protocol.equals(other.protocol)))
- && ((host == null && other.host == null)
- || (host != null && host.equals(other.host)))
- && ((file == null && other.file == null)
- || (file != null && file.equals(other.file))));
- }
-
- protected void set(String protocol, String host, int port, String file,
- String ref)
- {
- // TBD: Theoretically, a poorly written StreamHandler could pass an
- // invalid protocol. It will cause the handler to be set to null
- // thus overriding a valid handler. Callers of this method should
- // be aware of this.
- this.handler = setURLStreamHandler(protocol);
- this.protocol = protocol;
- this.port = port;
- this.host = host;
- this.file = file;
- this.ref = ref;
- hashCode = hashCode(); // Used for serialization.
- }
-
- public static synchronized void
- setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
- {
- if (factory != null)
- throw new Error("URLStreamHandlerFactory already set");
-
- // Throw an exception if an extant security mgr precludes
- // setting the factory.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkSetFactory();
- factory = fac;
- }
-
- public String toExternalForm()
- {
- // Identical to toString().
- return handler.toExternalForm(this);
- }
-
- public String toString()
- {
- // Identical to toExternalForm().
- return handler.toExternalForm(this);
- }
-
- private URLStreamHandler setURLStreamHandler(String protocol)
- {
- URLStreamHandler handler;
-
- // See if a handler has been cached for this protocol.
- if ((handler = (URLStreamHandler) handlers.get(protocol)) != null)
- return handler;
-
- // If a non-default factory has been set, use it to find the protocol.
- if (factory != null)
- handler = factory.createURLStreamHandler(protocol);
- else if (protocol.equals ("file"))
- {
- // This is an interesting case. It's tempting to think that we
- // could call Class.forName ("gnu.gcj.protocol.file.Handler") to
- // get the appropriate class. Unfortunately, if we do that the
- // program will never terminate, because setURLStreamHandler is
- // eventually called by Class.forName.
- //
- // Treating "file" as a special case is the minimum that will
- // fix this problem. If other protocols are required in a
- // statically linked application they will need to be handled in
- // the same way as "file".
- handler = new gnu.gcj.protocol.file.Handler ();
- }
-
- // Non-default factory may have returned null or a factory wasn't set.
- // Use the default search algorithm to find a handler for this protocol.
- if (handler == null)
- {
- // Get the list of packages to check and append our default handler
- // to it, along with the JDK specified default as a last resort.
- // Except in very unusual environments the JDK specified one shouldn't
- // ever be needed (or available).
- String propVal = System.getProperty("java.protocol.handler.pkgs");
- propVal = (propVal == null) ? "" : (propVal + "|");
- propVal = propVal + "gnu.gcj.protocol|sun.net.www.protocol";
-
- StringTokenizer pkgPrefix = new StringTokenizer(propVal, "|");
- do
- {
- String facName = pkgPrefix.nextToken() + "." + protocol +
- ".Handler";
- try
- {
- handler =
- (URLStreamHandler) Class.forName(facName).newInstance();
- }
- catch (Exception e)
- {
- // Can't instantiate; handler still null, go on to next element.
- }
- } while ((handler == null ||
- ! (handler instanceof URLStreamHandler)) &&
- pkgPrefix.hasMoreTokens());
- }
-
- // Update the hashtable with the new protocol handler.
- if (handler != null)
- if (handler instanceof URLStreamHandler)
- handlers.put(protocol, handler);
- else
- handler = null;
-
- return handler;
- }
-
- private void readObject(ObjectInputStream ois)
- throws IOException, ClassNotFoundException
- {
- ois.defaultReadObject();
- this.handler = setURLStreamHandler(protocol);
- if (this.handler == null)
- throw new IOException("Handler for protocol " + protocol + " not found");
- }
-
- private void writeObject(ObjectOutputStream oos) throws IOException
- {
- oos.defaultWriteObject();
- }
-}
diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java
deleted file mode 100644
index 441b7cae420..00000000000
--- a/libjava/java/net/URLClassLoader.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.io.*;
-import java.util.jar.*;
-import java.util.Vector;
-
-public class URLClassLoader extends ClassLoader
-{
- // The URLStreamHandlerFactory
- URLStreamHandlerFactory factory = null;
-
- // `path' contains simply the URL's we're using for the searching.
- private Vector path;
-
- // If path[n] is a zip/jar, then this holds a JarURLConnection for
- // that thing, otherwise, path[n] is null.
- private Vector info;
-
- private URLStreamHandler getHandler0 (String protocol)
- {
- if (factory != null)
- return factory.createURLStreamHandler(protocol);
- else
- return null;
- }
-
- public URLClassLoader (URL[] urls)
- {
- this (urls, null, null);
- }
-
- public URLClassLoader (URL[] urls, ClassLoader parent)
- {
- this (urls, parent, null);
- }
-
- public URLClassLoader (URL[] urls, ClassLoader parent,
- URLStreamHandlerFactory fac)
- {
- super (parent);
-
- factory = fac;
-
- if (urls == null || urls.length == 0)
- {
- path = new Vector (1);
- info = new Vector (1);
- return;
- }
-
- path = new Vector (urls.length);
- info = new Vector (urls.length);
-
- for (int i = 0; i < urls.length; i++)
- {
- URL u = urls[i];
-
- // If it is a jar url, then we'll search it as is.
- if (! u.getProtocol ().equals ("jar"))
- {
- String f = u.getFile ();
-
- // If it ends with '/' we'll take it for a directory,
- // otherwise it's a jar file. This is how JDK 1.2 defines
- // it, so we will not try to be smart here.
- if (f.charAt (f.length ()-1) != '/')
- {
- try
- {
- u = new URL ("jar", "", -1, (u.toExternalForm ())+"!/",
- getHandler0 ("jar"));
- }
- catch (MalformedURLException x)
- {
- /* ignore */
- }
- }
- }
-
- path.insertElementAt (u, i);
-
- if (u.getProtocol ().equals ("jar"))
- {
- JarURLConnection conn = null;
- try
- {
- conn = (JarURLConnection) u.openConnection ();
- }
- catch (java.io.IOException x)
- {
- /* ignore */
- }
- info.insertElementAt (conn, i);
- }
- else
- {
- info.insertElementAt (null, i);
- }
- }
- }
-
- public URL getResource (String name)
- {
- for (int i = 0; i < path.size(); i++)
- {
- URL u = (URL)path.elementAt (i);
-
- try {
- JarURLConnection conn = (JarURLConnection) info.elementAt (i);
-
- if (conn != null)
- {
- if (conn.getJarFile().getJarEntry (name) != null)
- return new URL(u, name, getHandler0 (u.getProtocol()));
- }
- else
- {
- URL p = new URL (u, name, getHandler0 (u.getProtocol()));
-
- InputStream is = p.openStream();
- if (is != null)
- {
- is.close();
- return p;
- }
- }
-
- // if we get an exception ... try the next path element
- } catch (IOException x) {
- continue;
- }
- }
-
- return null;
- }
-
- /** IN jdk 1.2 this method is not overridden, but we gain performance
- by doing so.
- */
-
- public InputStream getResourceAsStream (String name)
- {
- for (int i = 0; i < path.size(); i++)
- {
- URL u = (URL)path.elementAt (i);
-
- try {
- JarURLConnection conn = (JarURLConnection) info.elementAt (i);
-
- if (conn != null)
- {
- JarFile file = conn.getJarFile ();
- JarEntry ent = file.getJarEntry (name);
- if (ent != null)
- return file.getInputStream(ent);
- }
- else
- {
- InputStream is = new URL(u, name, getHandler0 (u.getProtocol())).openStream();
- if (is != null)
- return is;
- }
-
- // if we get an exception ... try the next path element
- } catch (IOException x) {
- continue;
- }
- }
-
- return null;
- }
-
- // and finally, we can implement our class loader functionality.
- protected Class findClass (String name)
- throws ClassNotFoundException
- {
- if (name == null)
- throw new ClassNotFoundException ("null");
-
- try
- {
- URL u = getResource (name.replace ('.', '/') + ".class");
-
- if (u == null)
- throw new ClassNotFoundException (name);
-
- URLConnection connection = u.openConnection ();
- InputStream is = connection.getInputStream ();
-
- int len = connection.getContentLength ();
- byte[] data = new byte[len];
-
- int left = len;
- int off = 0;
- while (left > 0)
- {
- int c = is.read (data, off, len-off);
- if (c == -1 || c == 0)
- throw new InternalError ("premature end of file");
- left -= c;
- off += c;
- }
-
- return defineClass (name, data, 0, len);
- }
- catch (java.io.IOException x)
- {
- throw new ClassNotFoundException(name);
- }
- }
-}
-
diff --git a/libjava/java/net/URLConnection.java b/libjava/java/net/URLConnection.java
deleted file mode 100644
index 4ddc10c53d3..00000000000
--- a/libjava/java/net/URLConnection.java
+++ /dev/null
@@ -1,454 +0,0 @@
-// URLConnection.java - Superclass of all communications links between
-// an application and a URL.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-import java.io.*;
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-import gnu.gcj.io.MimeTypes;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: One guessContentTypeFrom... methods not implemented.
- * getContent method assumes content type from response; see comment there.
- */
-
-public abstract class URLConnection
-{
- protected URL url;
- protected boolean doInput = true;
- protected boolean doOutput = false;
- protected boolean allowUserInteraction;
- protected boolean useCaches;
- protected long ifModifiedSince = 0L;
- protected boolean connected = false;
- private static boolean defaultAllowUserInteraction = false;
- private static boolean defaultUseCaches = true;
- private static FileNameMap fileNameMap; // Set by the URLConnection subclass.
- private static ContentHandlerFactory factory;
- private static ContentHandler contentHandler;
- private static Hashtable handlers = new Hashtable();
- private static Locale locale;
- private static SimpleDateFormat dateFormat1, dateFormat2, dateFormat3;
- private static boolean dateformats_initialized = false;
-
- protected URLConnection(URL url)
- {
- this.url = url;
- allowUserInteraction = defaultAllowUserInteraction;
- useCaches = defaultUseCaches;
- }
-
- public abstract void connect() throws IOException;
-
- public URL getURL()
- {
- return url;
- }
-
- public int getContentLength()
- {
- return getHeaderFieldInt("content-length", -1);
- }
-
- public String getContentType()
- {
- return getHeaderField("content-type");
- }
-
- public String getContentEncoding()
- {
- return getHeaderField("content-encoding");
- }
-
- public long getExpiration()
- {
- return getHeaderFieldDate("expiration", 0L);
- }
-
- public long getDate()
- {
- return getHeaderFieldDate("date", 0L);
- }
-
- public long getLastModified()
- {
- return getHeaderFieldDate("last-modified", 0L);
- }
-
- public String getHeaderField(int n)
- {
- // Subclasses for specific protocols override this.
- return null;
- }
-
- public String getHeaderField(String name)
- {
- // Subclasses for specific protocols override this.
- return null;
- }
-
- public int getHeaderFieldInt(String name, int val)
- {
- String str = getHeaderField(name);
- try
- {
- if (str != null)
- val = Integer.parseInt(str);
- }
- catch (NumberFormatException e)
- {
- ; // Do nothing; val is the default.
- }
- return val;
- }
-
- public long getHeaderFieldDate(String name, long val)
- {
- if (! dateformats_initialized)
- initializeDateFormats();
- String str = getHeaderField(name);
- if (str != null)
- {
- Date date;
- if ((date = dateFormat1.parse(str, new ParsePosition(0))) != null)
- val = date.getTime();
- else if ((date = dateFormat2.parse(str, new ParsePosition(0))) != null)
- val = date.getTime();
- else if ((date = dateFormat3.parse(str, new ParsePosition(0))) != null)
- val = date.getTime();
- }
- return val;
- }
-
- public String getHeaderFieldKey(int n)
- {
- // Subclasses for specific protocols override this.
- return null;
- }
-
- public Object getContent() throws IOException
- {
- // FIXME: Doc indicates that other criteria should be applied as
- // heuristics to determine the true content type, e.g. see
- // guessContentTypeFromName() and guessContentTypeFromStream methods
- // as well as FileNameMap class & fileNameMap field & get/set methods.
- String cType = getContentType();
- contentHandler = setContentHandler(cType);
- if (contentHandler == null)
- return getInputStream();
-
- return contentHandler.getContent(this);
- }
-
-// TODO12: public Permission getPermission() throws IOException
-// {
-// // Subclasses may override this.
-// return java.security.AllPermission;
-// }
-
- public InputStream getInputStream() throws IOException
- {
- // Subclasses for specific protocols override this.
- throw new UnknownServiceException("Protocol " + url.getProtocol() +
- " does not support input.");
- }
-
- public OutputStream getOutputStream() throws IOException
- {
- // Subclasses for specific protocols override this.
- throw new UnknownServiceException("Protocol " + url.getProtocol() +
- " does not support output.");
- }
-
- public String toString()
- {
- return this.getClass().getName() + ":" + url.toString();
- }
-
- public void setDoInput(boolean doinput)
- {
- if (connected)
- throw new IllegalAccessError("Already connected");
-
- doInput = doinput;
- }
-
- public boolean getDoInput()
- {
- return doInput;
- }
-
- public void setDoOutput(boolean dooutput)
- {
- if (connected)
- throw new IllegalAccessError("Already connected");
-
- doOutput = dooutput;
- if (doOutput)
- doInput = false;
- }
-
- public boolean getDoOutput()
- {
- return doOutput;
- }
-
- public void setAllowUserInteraction(boolean allowuserinteraction)
- {
- if (connected)
- throw new IllegalAccessError("Already connected");
-
- allowUserInteraction = allowuserinteraction;
- }
-
- public boolean getAllowUserInteraction()
- {
- return allowUserInteraction;
- }
-
- public static void
- setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
- {
- defaultAllowUserInteraction = defaultallowuserinteraction;
- }
-
- public static boolean getDefaultAllowUserInteraction()
- {
- return defaultAllowUserInteraction;
- }
-
- public void setUseCaches(boolean usecaches)
- {
- if (connected)
- throw new IllegalAccessError("Already connected");
-
- useCaches = usecaches;
- }
-
- public boolean getUseCaches()
- {
- return useCaches;
- }
-
- public void setIfModifiedSince(long ifmodifiedsince)
- {
- if (connected)
- throw new IllegalAccessError("Already connected");
-
- ifModifiedSince = ifmodifiedsince;
- }
-
- public long getIfModifiedSince()
- {
- return ifModifiedSince;
- }
-
- public boolean getDefaultUseCaches()
- {
- return defaultUseCaches;
- }
-
- public void setDefaultUseCaches(boolean defaultusecaches)
- {
- defaultUseCaches = defaultusecaches;
- }
-
- public void setRequestProperty(String key, String value)
- {
- // Do nothing unless overridden by subclasses that support setting
- // header fields in the request.
- }
-
- public String getRequestProperty(String key)
- {
- // Overridden by subclasses that support reading header fields from the
- // request.
- return null;
- }
-
- public static void setDefaultRequestProperty(String key, String value)
- {
- // Do nothing unless overridden by subclasses that support setting
- // default request properties.
- }
-
- public static String getDefaultRequestProperty(String key)
- {
- // Overridden by subclasses that support default request properties.
- return null;
- }
-
- public static void setContentHandlerFactory(ContentHandlerFactory fac)
- {
- if (factory != null)
- throw new Error("ContentHandlerFactory already set");
-
- // Throw an exception if an extant security mgr precludes
- // setting the factory.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkSetFactory();
- factory = fac;
- }
-
- protected static String guessContentTypeFromName(String fname)
- {
- int dot = fname.lastIndexOf (".");
-
- if (dot != -1)
- {
- if (dot == fname.length())
- return ("application/octet-stream");
- else
- fname = fname.substring (dot + 1);
- }
-
- String type = MimeTypes.getMimeTypeFromExtension (fname);
-
- if (type == null)
- return("application/octet-stream");
-
- return(type);
- }
-
-// TODO: public static String guessContentTypeFromStream(InputStream is)
-// throws IOException
-// {
-// }
-
-// TODO12: protected void parseURL(URL u, String spec, int start, int limit)
-
- // JDK1.2
- public static FileNameMap getFileNameMap()
- {
- return fileNameMap;
- }
-
- // JDK1.2
- public static void setFileNameMap(FileNameMap map)
- {
- // Throw an exception if an extant security mgr precludes
- // setting the factory.
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkSetFactory();
-
- fileNameMap = map;
- }
-
- private ContentHandler setContentHandler(String contentType)
- {
- ContentHandler handler;
-
- // No content type so just handle it as the default.
- if (contentType == null || contentType == "")
- return null;
-
- // See if a handler has been cached for this content type.
- // For efficiency, if a content type has been searched for but not
- // found, it will be in the hash table but as the contentType String
- // instead of a ContentHandler.
- if ((handler = (ContentHandler) handlers.get(contentType)) != null)
- if (handler instanceof ContentHandler)
- return handler;
- else
- return null;
-
- // If a non-default factory has been set, use it to find the content type.
- if (factory != null)
- handler = factory.createContentHandler(contentType);
-
- // Non-default factory may have returned null or a factory wasn't set.
- // Use the default search algorithm to find a handler for this content type.
- if (handler == null)
- {
- // Get the list of packages to check and append our default handler
- // to it, along with the JDK specified default as a last resort.
- // Except in very unusual environments the JDK specified one shouldn't
- // ever be needed (or available).
- String propVal = System.getProperty("java.content.handler.pkgs");
- propVal = (propVal == null) ? "" : (propVal + "|");
- propVal = propVal + "gnu.gcj.content|sun.net.www.content";
-
- // Replace the '/' character in the content type with '.' and
- // all other non-alphabetic, non-numeric characters with '_'.
- StringTokenizer pkgPrefix = new StringTokenizer(propVal, "|");
- char[] cArray = contentType.toCharArray();
- for (int i = 0; i < cArray.length; i++)
- {
- if (cArray[i] == '/')
- cArray[i] = '.';
- else if (! ((cArray[i] >= 'A' && cArray[i] <= 'Z') ||
- (cArray[i] >= 'a' && cArray[i] <= 'z') ||
- (cArray[i] >= '0' && cArray[i] <= '9')))
- cArray[i] = '_';
- }
- String contentClass = new String(cArray);
-
- // See if a class of this content type exists in any of the packages.
- do
- {
- String facName = pkgPrefix.nextToken() + "." + contentClass;
- try
- {
- handler =
- (ContentHandler) Class.forName(facName).newInstance();
- }
- catch (Exception e)
- {
- // Can't instantiate; handler still null, go on to next element.
- }
- } while ((handler == null ||
- ! (handler instanceof ContentHandler)) &&
- pkgPrefix.hasMoreTokens());
- }
-
- // Update the hashtable with the new content handler.
- if (handler != null && handler instanceof ContentHandler)
- {
- handlers.put(contentType, handler);
- return handler;
- }
-
- // For efficiency on subsequent searches, put a dummy entry in the hash
- // table for content types that don't have a non-default ContentHandler.
- handlers.put(contentType, contentType);
- return null;
- }
-
- // We don't put these in a static initializer, because it creates problems
- // with initializer co-dependency: SimpleDateFormat's constructors eventually
- // depend on URLConnection (via the java.text.*Symbols classes).
- private synchronized void initializeDateFormats()
- {
- if (dateformats_initialized)
- return;
- locale = new Locale("En", "Us", "Unix");
- dateFormat1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss 'GMT'",
- locale);
- dateFormat2 = new SimpleDateFormat("EEEE, dd-MMM-yy hh:mm:ss 'GMT'",
- locale);
- dateFormat3 = new SimpleDateFormat("EEE MMM d hh:mm:ss yyyy", locale);
- dateformats_initialized = true;
- }
-}
diff --git a/libjava/java/net/URLDecoder.java b/libjava/java/net/URLDecoder.java
deleted file mode 100644
index 5059a962db7..00000000000
--- a/libjava/java/net/URLDecoder.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// URLDecoder.java - Provides a method for decoding strings according to
-// application/x-www-form-urlencoded MIME type.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.UnsupportedEncodingException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 22, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public class URLDecoder
-{
- // This method, per the JCL, is conservative in that it encodes
- // some "allowable" characters as % triplets.
- public static String decode(String s) throws Exception
- {
- String str = s.replace('+', ' ');
- String result = "";
- int i;
- int start = 0;
- while ((i = str.indexOf('%', start)) >= 0)
- {
- result = result + str.substring(start, i) +
- (char) Integer.parseInt(str.substring(i + 1, i + 3), 16);
- start = i + 3;
- }
-
- if (start < str.length())
- result = result + str.substring(start);
-
- return result;
- }
-}
diff --git a/libjava/java/net/URLEncoder.java b/libjava/java/net/URLEncoder.java
deleted file mode 100644
index 6590dcf8feb..00000000000
--- a/libjava/java/net/URLEncoder.java
+++ /dev/null
@@ -1,71 +0,0 @@
-// URLEncoder.java - Provides a method for encoding strings according to
-// application/x-www-form-urlencoded MIME type.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-import java.io.UnsupportedEncodingException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 22, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class URLEncoder
-{
- // This method, per the JCL, is conservative in that it encodes
- // some "allowable" characters as % triplets.
- public static String encode(String s)
- {
- // Get the bytes in ISO-Latin-1 (i.e. 8859_1) per the JCL.
- // Even though it is the default in most cases, it's specified here
- // just in case System.getProperty("file.encoding") is not "8859_1".
- String result = "";
- try
- {
- byte[] buf = s.getBytes("8859_1");
- int start = 0;
- for (int i = 0; i < buf.length; i++)
- // For efficiency, check the byte in order of most likely
- // possibility so as to minimize the number of comparisons.
- // Hence, exclude all the alphanumeric & allowed special chars first.
- if ((buf[i] >= 'a' && buf[i] <= 'z') ||
- (buf[i] >= 'A' && buf[i] <= 'Z') ||
- (buf[i] >= '0' && buf[i] <= '9') ||
- buf[i] == '-' || buf[i] == '_' || buf[i] == '.' || buf[i] == '*')
- ; // This is the most likely case so exclude first for efficiency.
- else if (buf[i] == ' ')
- buf[i] = (byte) '+'; // Replace space char with plus symbol.
- else
- {
- result = result + new String(buf, start, i - start, "8859_1") +
- "%" + Integer.toHexString(((int) buf[i]) & 0xFF);
- start = i + 1;
- }
-
- // Append remainder of allowable chars from the string, if any.
- if (start < buf.length)
- result = result +
- new String(buf, start, buf.length - start, "8859_1");
- }
- catch (UnsupportedEncodingException ex)
- {
- // This should never happen as "8859_1" is the default encoding.
- return s;
- }
-
- return result;
- }
-}
diff --git a/libjava/java/net/URLStreamHandler.java b/libjava/java/net/URLStreamHandler.java
deleted file mode 100644
index 0060b4ea688..00000000000
--- a/libjava/java/net/URLStreamHandler.java
+++ /dev/null
@@ -1,156 +0,0 @@
-// URLStreamHandler.java - Superclass of all stream protocol handlers.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 4, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract class URLStreamHandler
-{
- protected abstract URLConnection openConnection(URL u)
- throws java.io.IOException;
-
- protected void parseURL(URL u, String spec, int start, int limit)
- {
- String host = u.getHost();
- int port = u.getPort();
- String file = u.getFile();
-
- /* TBD: The JDK 1.2 doc specifically says that limit is the position
- * to stop parsing at and that it will be either the end of the string
- * or the position of '#'; thus the doc infers that this method does
- * not set the ref.
- */
- if (spec.regionMatches (start, "//", 0, 2))
- {
- int hostEnd;
- int colon;
-
- start += 2;
- int slash = spec.indexOf('/', start);
- if (slash >= 0)
- hostEnd = slash;
- else
- hostEnd = limit;
-
- host = spec.substring (start, hostEnd);
-
- // Look for optional port number. It is valid for the non-port
- // part of the host name to be null (e.g. a URL "http://:80").
- // TBD: JDK 1.2 in this case sets host to null rather than "";
- // this is undocumented and likely an unintended side effect in 1.2
- // so we'll be simple here and stick with "". Note that
- // "http://" or "http:///" produce a "" host in JDK 1.2.
- if ((colon = host.indexOf(':')) >= 0)
- {
- try
- {
- port = Integer.parseInt(host.substring(colon + 1));
- }
- catch (NumberFormatException e)
- {
- ; // Ignore invalid port values; port is already set to u's
- // port.
- }
- host = host.substring(0, colon);
- }
- file = null;
- start = hostEnd;
- }
- else if (host == null)
- host = "";
-
- if (start < limit && spec.charAt(start) == '/')
- {
- // This is an absolute path name; ignore any file context.
- file = spec.substring(start, limit);
- }
- else if (file == null || file.length() <= 0)
- {
- // No file context available; just spec for file.
- file = "/" + spec.substring(start, limit);
- }
- else if (start < limit)
- {
- // Context is available, but only override it if there is a new file.
- // FIXME: unsure to what extent `/` and File.separatorChar
- // can mix in URLs. Ignore File.separatorChar for now.
- file = file.substring(0, file.lastIndexOf('/'))
- + "/" + spec.substring(start, limit);
- }
-
- int index;
-
- // Replace "/./" with "/". This probably isn't very efficient in
- // the general case, but it's probably not bad most of the time.
- while ((index = file.indexOf("/./")) >= 0)
- file = file.substring(0, index) + file.substring(index + 2);
-
- // Process "/../" correctly. This probably isn't very efficient in
- // the general case, but it's probably not bad most of the time.
- while ((index = file.indexOf("/../")) >= 0)
- {
- // Strip of the previous directory - if it exists.
- int previous = file.lastIndexOf('/', index - 1);
- if (previous >= 0)
- file = file.substring(0, previous) + file.substring(index + 3);
- else
- file = file.substring(index + 3);
- }
-
- u.set(u.getProtocol(), host, port, file, u.getRef());
- }
-
- protected void setURL(URL u, String protocol, String host, int port,
- String file, String ref)
- {
- u.set(protocol, host, port, file, ref);
- }
-
- protected String toExternalForm(URL u)
- {
- String resStr, host, file, ref;
- int port;
-
- resStr = u.getProtocol() + ":";
- host = u.getHost();
- port = u.getPort();
- file = u.getFile();
- ref = u.getRef();
-
- // JDK 1.2 online doc infers that host could be null because it
- // explicitly states that file cannot be null, but is silent on host.
- //
- // Note that this produces different results from JDK 1.2 as JDK 1.2
- // ignores a non-default port if host is null or "". That is inconsistent
- // with the spec since the result of this method is spec'ed so it can be
- // used to construct a new URL that is equivalent to the original.
- if (host == null)
- host = "";
- if (port >= 0 || ! (host.length() == 0))
- resStr = resStr + "//" + host + (port < 0 ? "" : ":" + port);
-
- resStr = resStr + file;
-
- if (ref != null)
- resStr = resStr + "#" + ref;
-
- return resStr;
- }
-}
diff --git a/libjava/java/net/URLStreamHandlerFactory.java b/libjava/java/net/URLStreamHandlerFactory.java
deleted file mode 100644
index a1b85bbcd64..00000000000
--- a/libjava/java/net/URLStreamHandlerFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// URLStreamHandlerFactory.java - Abstract URL Stream Handler factory.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public abstract interface URLStreamHandlerFactory
-{
- public URLStreamHandler createURLStreamHandler(String protocol);
-}
diff --git a/libjava/java/net/UnknownHostException.java b/libjava/java/net/UnknownHostException.java
deleted file mode 100644
index 12936e06761..00000000000
--- a/libjava/java/net/UnknownHostException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// UnknownHostException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Per Bothner
- * @date January 6, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class UnknownHostException extends java.io.IOException
-{
- public UnknownHostException ()
- {
- super();
- }
-
- public UnknownHostException (String host)
- {
- super(host);
- }
-}
diff --git a/libjava/java/net/UnknownServiceException.java b/libjava/java/net/UnknownServiceException.java
deleted file mode 100644
index 20b00bd3676..00000000000
--- a/libjava/java/net/UnknownServiceException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// UnknownServiceException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.net;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 5, 1999.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class UnknownServiceException extends java.io.IOException
-{
- public UnknownServiceException()
- {
- super();
- }
-
- public UnknownServiceException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/net/natInetAddress.cc b/libjava/java/net/natInetAddress.cc
deleted file mode 100644
index d8db576f506..00000000000
--- a/libjava/java/net/natInetAddress.cc
+++ /dev/null
@@ -1,335 +0,0 @@
-// natInetAddress.cc
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#ifdef USE_WINSOCK
-
-#include <windows.h>
-#include <winsock.h>
-
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif /* MAXHOSTNAMELEN */
-
-#else
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <string.h>
-#include <errno.h>
-
-#include <sys/param.h>
-#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#endif /* USE_WINSOCK */
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/net/InetAddress.h>
-#include <java/net/UnknownHostException.h>
-#include <java/lang/SecurityException.h>
-
-#if defined(HAVE_UNAME) && ! defined(HAVE_GETHOSTNAME)
-#include <sys/utsname.h>
-#endif
-
-#ifndef HAVE_GETHOSTNAME_DECL
-extern "C" int gethostname (char *name, int namelen);
-#endif
-
-#ifdef DISABLE_JAVA_NET
-
-jbyteArray
-java::net::InetAddress::aton (jstring)
-{
- return NULL;
-}
-
-JArray<java::net::InetAddress*> *
-java::net::InetAddress::lookup (jstring, java::net::InetAddress *, jboolean)
-{
- return NULL;
-}
-
-jstring
-java::net::InetAddress::getLocalHostname ()
-{
- return NULL;
-}
-
-#else /* DISABLE_JAVA_NET */
-
-jbyteArray
-java::net::InetAddress::aton (jstring host)
-{
- char *hostname;
- char buf[100];
- int len = JvGetStringUTFLength(host);
- if (len < 100)
- hostname = buf;
- else
- hostname = (char*) _Jv_AllocBytesChecked (len+1);
- JvGetStringUTFRegion (host, 0, host->length(), hostname);
- buf[len] = '\0';
- char* bytes = NULL;
- int blen = 0;
-#ifdef HAVE_INET_ATON
- struct in_addr laddr;
- if (inet_aton (hostname, &laddr))
- {
- bytes = (char*) &laddr;
- blen = 4;
- }
-#elif defined(HAVE_INET_ADDR)
-#if ! HAVE_IN_ADDR_T
- typedef jint in_addr_t;
-#endif
- in_addr_t laddr = inet_addr (hostname);
- if (laddr != (in_addr_t)(-1))
- {
- bytes = (char*) &laddr;
- blen = 4;
- }
-#endif
-#ifdef HAVE_INET_PTON
- char inet6_addr[16];
- if (len == 0 && inet_pton (AF_INET6, hostname, inet6_addr) > 0)
- {
- bytes = inet6_addr;
- blen = 16;
- }
-#endif
- if (blen == 0)
- return NULL;
- jbyteArray result = JvNewByteArray (blen);
- memcpy (elements (result), bytes, blen);
- return result;
-}
-
-
-JArray<java::net::InetAddress*> *
-java::net::InetAddress::lookup (jstring host, java::net::InetAddress* iaddr,
- jboolean all)
-{
- struct hostent *hptr = NULL;
-#if defined (HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR_R)
- struct hostent hent_r;
-#if HAVE_STRUCT_HOSTENT_DATA
- struct hostent_data fixed_buffer, *buffer_r = &fixed_buffer;
-#else
-#if defined (__GLIBC__)
- // FIXME: in glibc, gethostbyname_r returns NETDB_INTERNAL to herr and
- // ERANGE to errno if the buffer size is too small, rather than what is
- // expected here. We work around this by setting a bigger buffer size and
- // hoping that it is big enough.
- char fixed_buffer[1024];
-#else
- char fixed_buffer[200];
-#endif
- char *buffer_r = fixed_buffer;
- int size_r = sizeof (fixed_buffer);
-#endif
-#endif
-
- if (host != NULL)
- {
- char *hostname;
- char buf[100];
- int len = JvGetStringUTFLength(host);
- if (len < 100)
- hostname = buf;
- else
- hostname = (char*) _Jv_AllocBytesChecked (len+1);
- JvGetStringUTFRegion (host, 0, host->length(), hostname);
- buf[len] = '\0';
-#ifdef HAVE_GETHOSTBYNAME_R
- while (true)
- {
- int ok;
-#if HAVE_STRUCT_HOSTENT_DATA
- ok = ! gethostbyname_r (hostname, &hent_r, buffer_r);
-#else
- int herr = 0;
-#ifdef GETHOSTBYNAME_R_RETURNS_INT
- ok = ! gethostbyname_r (hostname, &hent_r, buffer_r, size_r,
- &hptr, &herr);
-#else
- hptr = gethostbyname_r (hostname, &hent_r, buffer_r, size_r, &herr);
- ok = hptr != NULL;
-#endif /* GETHOSTNAME_R_RETURNS_INT */
- if (! ok && herr == ERANGE)
- {
- size_r *= 2;
- buffer_r = (char *) _Jv_AllocBytesChecked (size_r);
- }
- else
-#endif /* HAVE_STRUCT_HOSTENT_DATA */
- break;
- }
-#else
- // FIXME: this is insufficient if some other piece of code calls
- // this gethostbyname.
- JvSynchronize sync (java::net::InetAddress::localhostAddress);
- hptr = gethostbyname (hostname);
-#endif /* HAVE_GETHOSTBYNAME_R */
- }
- else
- {
- jbyteArray bytes = iaddr->address;
- char *chars = (char*) elements (bytes);
- int len = bytes->length;
- int type;
- char *val;
- if (len == 4)
- {
- val = chars;
- type = AF_INET;
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- val = (char *) &chars;
- type = AF_INET6;
- }
-#endif /* HAVE_INET6 */
- else
- JvFail ("unrecognized size");
-
-#ifdef HAVE_GETHOSTBYADDR_R
- while (true)
- {
- int ok;
-#if HAVE_STRUCT_HOSTENT_DATA
- ok = ! gethostbyaddr_r (val, len, type, &hent_r, buffer_r);
-#else
- int herr = 0;
-#ifdef GETHOSTBYADDR_R_RETURNS_INT
- ok = ! gethostbyaddr_r (val, len, type, &hent_r,
- buffer_r, size_r, &hptr, &herr);
-#else
- hptr = gethostbyaddr_r (val, len, type, &hent_r,
- buffer_r, size_r, &herr);
- ok = hptr != NULL;
-#endif /* GETHOSTBYADDR_R_RETURNS_INT */
- if (! ok && herr == ERANGE)
- {
- size_r *= 2;
- buffer_r = (char *) _Jv_AllocBytesChecked (size_r);
- }
- else
-#endif /* HAVE_STRUCT_HOSTENT_DATA */
- break;
- }
-#else /* HAVE_GETHOSTBYADDR_R */
- // FIXME: this is insufficient if some other piece of code calls
- // this gethostbyaddr.
- JvSynchronize sync (java::net::InetAddress::localhostAddress);
- hptr = gethostbyaddr (val, len, type);
-#endif /* HAVE_GETHOSTBYADDR_R */
- }
- if (hptr != NULL)
- {
- if (!all)
- host = JvNewStringUTF (hptr->h_name);
- java::lang::SecurityException *ex = checkConnect (host);
- if (ex != NULL)
- {
- if (iaddr == NULL || iaddr->address == NULL)
- throw ex;
- hptr = NULL;
- }
- }
- if (hptr == NULL)
- {
- if (iaddr != NULL && iaddr->address != NULL)
- {
- iaddr->hostname = iaddr->getHostAddress();
- return NULL;
- }
- else
- throw new java::net::UnknownHostException(host);
- }
- int count;
- if (all)
- {
- char** ptr = hptr->h_addr_list;
- count = 0;
- while (*ptr++) count++;
- }
- else
- count = 1;
- JArray<java::net::InetAddress*> *result;
- java::net::InetAddress** iaddrs;
- if (all)
- {
- result = java::net::InetAddress::allocArray (count);
- iaddrs = elements (result);
- }
- else
- {
- result = NULL;
- iaddrs = &iaddr;
- }
-
- for (int i = 0; i < count; i++)
- {
- if (iaddrs[i] == NULL)
- iaddrs[i] = new java::net::InetAddress (NULL, NULL);
- if (iaddrs[i]->hostname == NULL)
- iaddrs[i]->hostname = host;
- if (iaddrs[i]->address == NULL)
- {
- char *bytes = hptr->h_addr_list[i];
- iaddrs[i]->address = JvNewByteArray (hptr->h_length);
- memcpy (elements (iaddrs[i]->address), bytes, hptr->h_length);
- }
- }
- return result;
-}
-
-jstring
-java::net::InetAddress::getLocalHostname ()
-{
- char *chars;
-#ifdef HAVE_GETHOSTNAME
- char buffer[MAXHOSTNAMELEN];
- if (gethostname (buffer, MAXHOSTNAMELEN))
- return NULL;
- chars = buffer;
-#elif HAVE_UNAME
- struct utsname stuff;
- if (uname (&stuff) != 0)
- return NULL;
- chars = stuff.nodename;
-#else
- return NULL;
-#endif
- // It is admittedly non-optimal to convert the hostname to Unicode
- // only to convert it back in getByName, but simplicity wins. Note
- // that unless there is a SecurityManager, we only get called once
- // anyway, thanks to the InetAddress.localhost cache.
- return JvNewStringUTF (chars);
-}
-
-#endif /* DISABLE_JAVA_NET */
diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc
deleted file mode 100644
index 808fd011ca5..00000000000
--- a/libjava/java/net/natPlainDatagramSocketImpl.cc
+++ /dev/null
@@ -1,643 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#ifdef USE_WINSOCK
-#include <windows.h>
-#include <winsock.h>
-#include <errno.h>
-#include <string.h>
-#ifndef ENOPROTOOPT
-#define ENOPROTOOPT 109
-#endif
-#else /* USE_WINSOCK */
-#include "posix.h"
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#include <errno.h>
-#include <string.h>
-#endif /* USE_WINSOCK */
-
-#if HAVE_BSTRING_H
-// Needed for bzero, implicitly used by FD_ZERO on IRIX 5.2
-#include <bstring.h>
-#endif
-
-#include <gcj/cni.h>
-#include <java/io/IOException.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/InterruptedIOException.h>
-#include <java/net/BindException.h>
-#include <java/net/SocketException.h>
-#include <java/net/PlainDatagramSocketImpl.h>
-#include <java/net/InetAddress.h>
-#include <java/net/DatagramPacket.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/Object.h>
-#include <java/lang/Boolean.h>
-#include <java/lang/Integer.h>
-
-#define BooleanClass _CL_Q34java4lang7Boolean
-extern java::lang::Class BooleanClass;
-#define IntegerClass _CL_Q34java4lang7Integer
-extern java::lang::Class IntegerClass;
-
-#ifdef DISABLE_JAVA_NET
-
-void
-java::net::PlainDatagramSocketImpl::create ()
-{
- throw new SocketException (
- JvNewStringLatin1 ("DatagramSocketImpl.create: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::bind (jint, java::net::InetAddress *)
-{
- throw new BindException (
- JvNewStringLatin1 ("DatagramSocketImpl.bind: unimplemented"));
-}
-
-jint
-java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.peek: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.send: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.receive: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::setTimeToLive (jint)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.setTimeToLive: unimplemented"));
-}
-
-jint
-java::net::PlainDatagramSocketImpl::getTimeToLive ()
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.getTimeToLive: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *,
- jboolean)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("DatagramSocketImpl.mcastGrp: unimplemented"));
-}
-
-void
-java::net::PlainDatagramSocketImpl::setOption (jint, java::lang::Object *)
-{
- throw new SocketException (
- JvNewStringLatin1 ("DatagramSocketImpl.setOption: unimplemented"));
-}
-
-java::lang::Object *
-java::net::PlainDatagramSocketImpl::getOption (jint)
-{
- throw new SocketException (
- JvNewStringLatin1 ("DatagramSocketImpl.getOption: unimplemented"));
-}
-
-#else /* DISABLE_JAVA_NET */
-
-#ifndef HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif
-
-union SockAddr
-{
- struct sockaddr_in address;
-#ifdef HAVE_INET6
- struct sockaddr_in6 address6;
-#endif
-};
-
-union McastReq
-{
-#if HAVE_STRUCT_IP_MREQ
- struct ip_mreq mreq;
-#endif
-#ifdef HAVE_INET6
- struct ipv6_mreq mreq6;
-#endif
-};
-
-union InAddr
-{
- struct in_addr addr;
-#ifdef HAVE_INET6
- struct in6_addr addr6;
-#endif
-};
-
-
-// FIXME: routines here and/or in natPlainSocketImpl.cc could throw
-// NoRouteToHostException; also consider UnknownHostException, ConnectException.
-
-void
-java::net::PlainDatagramSocketImpl::create ()
-{
- int sock = ::socket (AF_INET, SOCK_DGRAM, 0);
- if (sock < 0)
- {
- char* strerr = strerror (errno);
- throw new java::net::SocketException (JvNewStringUTF (strerr));
- }
- fnum = sock;
- fd = new java::io::FileDescriptor (sock);
-}
-
-void
-java::net::PlainDatagramSocketImpl::bind (jint lport,
- java::net::InetAddress *host)
-{
- // FIXME: prob. need to do a setsockopt with SO_BROADCAST to allow multicast.
- union SockAddr u;
- struct sockaddr *ptr = (struct sockaddr *) &u.address;
- // FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4.
- jbyteArray haddress = host->address;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
-
- if (len == 4)
- {
- u.address.sin_family = AF_INET;
- if (host != NULL)
- memcpy (&u.address.sin_addr, bytes, len);
- else
- u.address.sin_addr.s_addr = htonl (INADDR_ANY);
- len = sizeof (struct sockaddr_in);
- u.address.sin_port = htons (lport);
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- u.address6.sin6_family = AF_INET6;
- memcpy (&u.address6.sin6_addr, bytes, len);
- len = sizeof (struct sockaddr_in6);
- u.address6.sin6_port = htons (lport);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- if (::bind (fnum, ptr, len) == 0)
- {
- socklen_t addrlen = sizeof(u);
- if (lport != 0)
- localPort = lport;
- else if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
- localPort = ntohs (u.address.sin_port);
- else
- goto error;
- return;
- }
- error:
- char* strerr = strerror (errno);
- throw new java::net::BindException (JvNewStringUTF (strerr));
-}
-
-jint
-java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
-{
- // FIXME: Deal with Multicast and if the socket is connected.
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
- ssize_t retlen =
- ::recvfrom (fnum, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
- &addrlen);
- if (retlen < 0)
- goto error;
- // FIXME: Deal with Multicast addressing and if the socket is connected.
- jbyteArray raddr;
- jint rport;
- if (u.address.sin_family == AF_INET)
- {
- raddr = JvNewByteArray (4);
- memcpy (elements (raddr), &u.address.sin_addr, 4);
- rport = ntohs (u.address.sin_port);
- }
-#ifdef HAVE_INET6
- else if (u.address.sin_family == AF_INET6)
- {
- raddr = JvNewByteArray (16);
- memcpy (elements (raddr), &u.address6.sin6_addr, 16);
- rport = ntohs (u.address6.sin6_port);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
-
- i->address = raddr;
- return rport;
- error:
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
-{
- // FIXME: Deal with Multicast and if the socket is connected.
- jint rport = p->getPort();
- union SockAddr u;
- jbyteArray haddress = p->getAddress()->address;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
- struct sockaddr *ptr = (struct sockaddr *) &u.address;
- jbyte *dbytes = elements (p->getData());
- if (len == 4)
- {
- u.address.sin_family = AF_INET;
- memcpy (&u.address.sin_addr, bytes, len);
- len = sizeof (struct sockaddr_in);
- u.address.sin_port = htons (rport);
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- u.address6.sin6_family = AF_INET6;
- memcpy (&u.address6.sin6_addr, bytes, len);
- len = sizeof (struct sockaddr_in6);
- u.address6.sin6_port = htons (rport);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
- return;
-
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
-{
- // FIXME: Deal with Multicast and if the socket is connected.
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
- jbyte *dbytes = elements (p->getData());
- ssize_t retlen = 0;
-
- // Do timeouts via select since SO_RCVTIMEO is not always available.
- if (timeout > 0)
- {
- fd_set rset;
- struct timeval tv;
- FD_ZERO(&rset);
- FD_SET(fnum, &rset);
- tv.tv_sec = timeout / 1000;
- tv.tv_usec = (timeout % 1000) * 1000;
- int retval;
- if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
- goto error;
- else if (retval == 0)
- throw new java::io::InterruptedIOException ();
- }
-
- retlen =
- ::recvfrom (fnum, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
- &addrlen);
- if (retlen < 0)
- goto error;
- // FIXME: Deal with Multicast addressing and if the socket is connected.
- jbyteArray raddr;
- jint rport;
- if (u.address.sin_family == AF_INET)
- {
- raddr = JvNewByteArray (4);
- memcpy (elements (raddr), &u.address.sin_addr, 4);
- rport = ntohs (u.address.sin_port);
- }
-#ifdef HAVE_INET6
- else if (u.address.sin_family == AF_INET6)
- {
- raddr = JvNewByteArray (16);
- memcpy (elements (raddr), &u.address6.sin6_addr, 16);
- rport = ntohs (u.address6.sin6_port);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
-
- p->setAddress (new InetAddress (raddr, NULL));
- p->setPort (rport);
- p->setLength ((jint) retlen);
- return;
- error:
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
-{
- // Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
- char val = (char) ttl;
- socklen_t val_len = sizeof(val);
- if (::setsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
- return;
-
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-jint
-java::net::PlainDatagramSocketImpl::getTimeToLive ()
-{
- // Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
- char val;
- socklen_t val_len = sizeof(val);
- if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
- return ((int) val) & 0xFF;
-
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
- jboolean join)
-{
- union McastReq u;
- jbyteArray haddress = inetaddr->address;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
- int level, opname;
- const char *ptr;
- if (0)
- ;
-#if HAVE_STRUCT_IP_MREQ
- else if (len == 4)
- {
- level = IPPROTO_IP;
- opname = join ? IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP;
- memcpy (&u.mreq.imr_multiaddr, bytes, len);
- // FIXME: If a non-default interface is set, use it; see Stevens p. 501.
- // Maybe not, see note in last paragraph at bottom of Stevens p. 497.
- u.mreq.imr_interface.s_addr = htonl (INADDR_ANY);
- len = sizeof (struct ip_mreq);
- ptr = (const char *) &u.mreq;
- }
-#endif
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- level = IPPROTO_IPV6;
- opname = join ? IPV6_ADD_MEMBERSHIP : IPV6_DROP_MEMBERSHIP;
- memcpy (&u.mreq6.ipv6mr_multiaddr, bytes, len);
- // FIXME: If a non-default interface is set, use it; see Stevens p. 501.
- // Maybe not, see note in last paragraph at bottom of Stevens p. 497.
- u.mreq6.ipv6mr_interface = 0;
- len = sizeof (struct ipv6_mreq);
- ptr = (const char *) &u.mreq6;
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- if (::setsockopt (fnum, level, opname, ptr, len) == 0)
- return;
-
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainDatagramSocketImpl::setOption (jint optID,
- java::lang::Object *value)
-{
- int val;
- socklen_t val_len = sizeof (val);
-
- if (_Jv_IsInstanceOf (value, &BooleanClass))
- {
- java::lang::Boolean *boolobj =
- static_cast<java::lang::Boolean *> (value);
- val = boolobj->booleanValue() ? 1 : 0;
- }
- else if (_Jv_IsInstanceOf (value, &IntegerClass))
- {
- java::lang::Integer *intobj =
- static_cast<java::lang::Integer *> (value);
- val = (int) intobj->intValue();
- }
- // Else assume value to be an InetAddress for use with IP_MULTICAST_IF.
-
- switch (optID)
- {
- case _Jv_TCP_NODELAY_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
- return;
- case _Jv_SO_LINGER_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_LINGER not valid for UDP"));
- return;
- case _Jv_SO_SNDBUF_ :
- case _Jv_SO_RCVBUF_ :
-#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
- int opt;
- optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
- if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
- goto error;
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
-#endif
- return;
- case _Jv_SO_REUSEADDR_ :
-#if defined(SO_REUSEADDR)
- if (::setsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
- val_len) != 0)
- goto error;
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_REUSEADDR not supported"));
-#endif
- return;
- case _Jv_SO_BINDADDR_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_BINDADDR: read only option"));
- return;
- case _Jv_IP_MULTICAST_IF_ :
- union InAddr u;
- jbyteArray haddress;
- jbyte *bytes;
- int len;
- int level, opname;
- const char *ptr;
-
- haddress = ((java::net::InetAddress *) value)->address;
- bytes = elements (haddress);
- len = haddress->length;
- if (len == 4)
- {
- level = IPPROTO_IP;
- opname = IP_MULTICAST_IF;
- memcpy (&u.addr, bytes, len);
- len = sizeof (struct in_addr);
- ptr = (const char *) &u.addr;
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- level = IPPROTO_IPV6;
- opname = IPV6_MULTICAST_IF;
- memcpy (&u.addr6, bytes, len);
- len = sizeof (struct in6_addr);
- ptr = (const char *) &u.addr6;
- }
-#endif
- else
- throw
- new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- if (::setsockopt (fnum, level, opname, ptr, len) != 0)
- goto error;
- return;
- case _Jv_SO_TIMEOUT_ :
- timeout = val;
- return;
- default :
- errno = ENOPROTOOPT;
- }
-
- error:
- char* strerr = strerror (errno);
- throw new java::net::SocketException (JvNewStringUTF (strerr));
-}
-
-java::lang::Object *
-java::net::PlainDatagramSocketImpl::getOption (jint optID)
-{
- int val;
- socklen_t val_len = sizeof(val);
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
-
- switch (optID)
- {
- case _Jv_TCP_NODELAY_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
- break;
-
- case _Jv_SO_LINGER_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_LINGER not valid for UDP"));
- break;
- case _Jv_SO_RCVBUF_ :
- case _Jv_SO_SNDBUF_ :
-#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
- int opt;
- optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
- if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
- goto error;
- else
- return new java::lang::Integer (val);
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
-#endif
- break;
- case _Jv_SO_BINDADDR_:
- // cache the local address
- if (localAddress == NULL)
- {
- jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0)
- goto error;
- if (u.address.sin_family == AF_INET)
- {
- laddr = JvNewByteArray (4);
- memcpy (elements (laddr), &u.address.sin_addr, 4);
- }
-#ifdef HAVE_INET6
- else if (u.address.sin_family == AF_INET6)
- {
- laddr = JvNewByteArray (16);
- memcpy (elements (laddr), &u.address6.sin6_addr, 16);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
- localAddress = new java::net::InetAddress (laddr, NULL);
- }
- return localAddress;
- break;
- case _Jv_SO_REUSEADDR_ :
-#if defined(SO_REUSEADDR)
- if (::getsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
- &val_len) != 0)
- goto error;
- return new java::lang::Boolean (val != 0);
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_REUSEADDR not supported"));
-#endif
- break;
- case _Jv_IP_MULTICAST_IF_ :
-#ifdef HAVE_INET_NTOA
- struct in_addr inaddr;
- socklen_t inaddr_len;
- char *bytes;
-
- inaddr_len = sizeof(inaddr);
- if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_IF, (char *) &inaddr,
- &inaddr_len) != 0)
- goto error;
-
- bytes = inet_ntoa (inaddr);
-
- return java::net::InetAddress::getByName (JvNewStringLatin1 (bytes));
-#else
- throw new java::net::SocketException (
- JvNewStringUTF ("IP_MULTICAST_IF: not available - no inet_ntoa()"));
-#endif
- break;
- case _Jv_SO_TIMEOUT_ :
- return new java::lang::Integer (timeout);
- break;
- default :
- errno = ENOPROTOOPT;
- }
-
- error:
- char* strerr = strerror (errno);
- throw new java::net::SocketException (JvNewStringUTF (strerr));
-}
-
-#endif /* DISABLE_JAVA_NET */
diff --git a/libjava/java/net/natPlainSocketImpl.cc b/libjava/java/net/natPlainSocketImpl.cc
deleted file mode 100644
index ff7d8a3452f..00000000000
--- a/libjava/java/net/natPlainSocketImpl.cc
+++ /dev/null
@@ -1,485 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-
-#ifndef DISABLE_JAVA_NET
-#ifdef USE_WINSOCK
-#include <windows.h>
-#include <winsock.h>
-#include <errno.h>
-#include <string.h>
-#ifndef ENOPROTOOPT
-#define ENOPROTOOPT 109
-#endif
-#else /* USE_WINSOCK */
-#include "posix.h"
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <errno.h>
-#include <string.h>
-#endif /* USE_WINSOCK */
-#endif /* DISABLE_JAVA_NET */
-
-#if HAVE_BSTRING_H
-// Needed for bzero, implicitly used by FD_ZERO on IRIX 5.2
-#include <bstring.h>
-#endif
-
-#include <gcj/cni.h>
-#include <gcj/javaprims.h>
-#include <java/io/IOException.h>
-#include <java/io/FileDescriptor.h>
-#include <java/io/InterruptedIOException.h>
-#include <java/net/BindException.h>
-#include <java/net/ConnectException.h>
-#include <java/net/PlainSocketImpl.h>
-#include <java/net/InetAddress.h>
-#include <java/net/SocketException.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/Object.h>
-#include <java/lang/Boolean.h>
-#include <java/lang/Class.h>
-#include <java/lang/Integer.h>
-
-#define BooleanClass _CL_Q34java4lang7Boolean
-extern java::lang::Class BooleanClass;
-
-#ifdef DISABLE_JAVA_NET
-
-void
-java::net::PlainSocketImpl::create (jboolean)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("SocketImpl.create: unimplemented"));
-}
-
-void
-java::net::PlainSocketImpl::bind (java::net::InetAddress *, jint)
-{
- throw new BindException (
- JvNewStringLatin1 ("SocketImpl.bind: unimplemented"));
-}
-
-void
-java::net::PlainSocketImpl::connect (java::net::InetAddress *, jint)
-{
- throw new ConnectException (
- JvNewStringLatin1 ("SocketImpl.connect: unimplemented"));
-}
-
-void
-java::net::PlainSocketImpl::listen (jint)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("SocketImpl.listen: unimplemented"));
-}
-
-void
-java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *)
-{
- throw new java::io::IOException (
- JvNewStringLatin1 ("SocketImpl.accept: unimplemented"));
-}
-
-void
-java::net::PlainSocketImpl::setOption (jint, java::lang::Object *)
-{
- throw new SocketException (
- JvNewStringLatin1 ("SocketImpl.setOption: unimplemented"));
-}
-
-java::lang::Object *
-java::net::PlainSocketImpl::getOption (jint)
-{
- throw new SocketException (
- JvNewStringLatin1 ("SocketImpl.getOption: unimplemented"));
-}
-
-#else /* DISABLE_JAVA_NET */
-
-#ifndef HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif
-
-union SockAddr
-{
- struct sockaddr_in address;
-#ifdef HAVE_INET6
- struct sockaddr_in6 address6;
-#endif
-};
-
-void
-java::net::PlainSocketImpl::create (jboolean stream)
-{
- int sock = ::socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
- if (sock < 0)
- {
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
- }
- fnum = sock;
- fd = new java::io::FileDescriptor (sock);
-}
-
-void
-java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
-{
- union SockAddr u;
- struct sockaddr *ptr = (struct sockaddr *) &u.address;
- jbyteArray haddress = host->address;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
- int i = 1;
-
- if (len == 4)
- {
- u.address.sin_family = AF_INET;
- if (host != NULL)
- memcpy (&u.address.sin_addr, bytes, len);
- else
- u.address.sin_addr.s_addr = htonl (INADDR_ANY);
- len = sizeof (struct sockaddr_in);
- u.address.sin_port = htons (lport);
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- u.address6.sin6_family = AF_INET6;
- memcpy (&u.address6.sin6_addr, bytes, len);
- len = sizeof (struct sockaddr_in6);
- u.address6.sin6_port = htons (lport);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- // Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
- ::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));
-
- if (::bind (fnum, ptr, len) == 0)
- {
- address = host;
- socklen_t addrlen = sizeof(u);
- if (lport != 0)
- localport = lport;
- else if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
- localport = ntohs (u.address.sin_port);
- else
- goto error;
- return;
- }
- error:
- char* strerr = strerror (errno);
- throw new java::net::BindException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainSocketImpl::connect (java::net::InetAddress *host, jint rport)
-{
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
- jbyteArray haddress = host->address;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
- struct sockaddr *ptr = (struct sockaddr *) &u.address;
- if (len == 4)
- {
- u.address.sin_family = AF_INET;
- memcpy (&u.address.sin_addr, bytes, len);
- len = sizeof (struct sockaddr_in);
- u.address.sin_port = htons (rport);
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- u.address6.sin6_family = AF_INET6;
- memcpy (&u.address6.sin6_addr, bytes, len);
- len = sizeof (struct sockaddr_in6);
- u.address6.sin6_port = htons (rport);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
-
- if (::connect (fnum, ptr, len) != 0)
- goto error;
- address = host;
- port = rport;
- // A bind may not have been done on this socket; if so, set localport now.
- if (localport == 0)
- {
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
- localport = ntohs (u.address.sin_port);
- else
- goto error;
- }
- return;
- error:
- char* strerr = strerror (errno);
- throw new java::net::ConnectException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainSocketImpl::listen (jint backlog)
-{
- if (::listen (fnum, backlog) != 0)
- {
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
- }
-}
-
-void
-java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
-{
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
- int new_socket = 0;
-
- // Do timeouts via select since SO_RCVTIMEO is not always available.
- if (timeout > 0)
- {
- fd_set rset;
- struct timeval tv;
- FD_ZERO(&rset);
- FD_SET(fnum, &rset);
- tv.tv_sec = timeout / 1000;
- tv.tv_usec = (timeout % 1000) * 1000;
- int retval;
- if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
- goto error;
- else if (retval == 0)
- throw new java::io::InterruptedIOException (
- JvNewStringUTF("Accept timed out"));
- }
-
- new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen);
- if (new_socket < 0)
- goto error;
- jbyteArray raddr;
- jint rport;
- if (u.address.sin_family == AF_INET)
- {
- raddr = JvNewByteArray (4);
- memcpy (elements (raddr), &u.address.sin_addr, 4);
- rport = ntohs (u.address.sin_port);
- }
-#ifdef HAVE_INET6
- else if (u.address.sin_family == AF_INET6)
- {
- raddr = JvNewByteArray (16);
- memcpy (elements (raddr), &u.address6.sin6_addr, 16);
- rport = ntohs (u.address6.sin6_port);
- }
-#endif
- else
- throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
-
- s->fnum = new_socket;
- s->localport = localport;
- s->address = new InetAddress (raddr, NULL);
- s->port = rport;
- s->fd = new java::io::FileDescriptor (new_socket);
- return;
- error:
- char* strerr = strerror (errno);
- throw new java::io::IOException (JvNewStringUTF (strerr));
-}
-
-void
-java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
-{
- int val;
- socklen_t val_len = sizeof (val);
-
- if (_Jv_IsInstanceOf (value, &BooleanClass))
- {
- java::lang::Boolean *boolobj =
- static_cast<java::lang::Boolean *> (value);
- if (boolobj->booleanValue())
- val = 1;
- else
- {
- if (optID == _Jv_SO_LINGER_)
- val = -1;
- else
- val = 0;
- }
- }
- else // assume value is an Integer
- {
- java::lang::Integer *intobj =
- static_cast<java::lang::Integer *> (value);
- val = (int) intobj->intValue();
- }
-
- switch (optID)
- {
- case _Jv_TCP_NODELAY_ :
-#ifdef TCP_NODELAY
- if (::setsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
- val_len) != 0)
- goto error;
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("TCP_NODELAY not supported"));
-#endif /* TCP_NODELAY */
- return;
- case _Jv_SO_LINGER_ :
-#ifdef SO_LINGER
- struct linger l_val;
- l_val.l_onoff = (val != -1);
- l_val.l_linger = val;
- if (::setsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val,
- sizeof(l_val)) != 0)
- goto error;
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_LINGER not supported"));
-#endif /* SO_LINGER */
- return;
- case _Jv_SO_SNDBUF_ :
- case _Jv_SO_RCVBUF_ :
-#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
- int opt;
- optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
- if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
- goto error;
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
-#endif
- return;
- case _Jv_SO_BINDADDR_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_BINDADDR: read only option"));
- return;
- case _Jv_IP_MULTICAST_IF_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
- return;
- case _Jv_SO_REUSEADDR_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
- return;
- case _Jv_SO_TIMEOUT_ :
- timeout = val;
- return;
- default :
- errno = ENOPROTOOPT;
- }
-
- error:
- char* strerr = strerror (errno);
- throw new java::net::SocketException (JvNewStringUTF (strerr));
-}
-
-java::lang::Object *
-java::net::PlainSocketImpl::getOption (jint optID)
-{
- int val;
- socklen_t val_len = sizeof(val);
- union SockAddr u;
- socklen_t addrlen = sizeof(u);
- struct linger l_val;
- socklen_t l_val_len = sizeof(l_val);
-
- switch (optID)
- {
-#ifdef TCP_NODELAY
- case _Jv_TCP_NODELAY_ :
- if (::getsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
- &val_len) != 0)
- goto error;
- else
- return new java::lang::Boolean (val != 0);
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("TCP_NODELAY not supported"));
-#endif
- break;
-
- case _Jv_SO_LINGER_ :
-#ifdef SO_LINGER
- if (::getsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val,
- &l_val_len) != 0)
- goto error;
- if (l_val.l_onoff)
- return new java::lang::Integer (l_val.l_linger);
- else
- return new java::lang::Boolean ((__java_boolean)false);
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_LINGER not supported"));
-#endif
- break;
- case _Jv_SO_RCVBUF_ :
- case _Jv_SO_SNDBUF_ :
-#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
- int opt;
- optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
- if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
- goto error;
- else
- return new java::lang::Integer (val);
-#else
- throw new java::lang::InternalError (
- JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
-#endif
- break;
- case _Jv_SO_BINDADDR_:
- // cache the local address
- if (localAddress == NULL)
- {
- jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0)
- goto error;
- if (u.address.sin_family == AF_INET)
- {
- laddr = JvNewByteArray (4);
- memcpy (elements (laddr), &u.address.sin_addr, 4);
- }
-#ifdef HAVE_INET6
- else if (u.address.sin_family == AF_INET6)
- {
- laddr = JvNewByteArray (16);
- memcpy (elements (laddr), &u.address6.sin6_addr, 16);
- }
-#endif
- else
- throw
- new java::net::SocketException (JvNewStringUTF ("invalid family"));
- localAddress = new java::net::InetAddress (laddr, NULL);
- }
- return localAddress;
- break;
- case _Jv_IP_MULTICAST_IF_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
- break;
- case _Jv_SO_REUSEADDR_ :
- throw new java::net::SocketException (
- JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
- break;
- case _Jv_SO_TIMEOUT_ :
- return new java::lang::Integer (timeout);
- break;
- default :
- errno = ENOPROTOOPT;
- }
-
- error:
- char* strerr = strerror (errno);
- throw new java::net::SocketException (JvNewStringUTF (strerr));
-}
-
-#endif /* DISABLE_JAVA_NET */
diff --git a/libjava/java/security/AlgorithmParameterGeneratorSpi.java b/libjava/java/security/AlgorithmParameterGeneratorSpi.java
deleted file mode 100644
index 476e1bb40f0..00000000000
--- a/libjava/java/security/AlgorithmParameterGeneratorSpi.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Stubbed.
- */
-
-// JDK1.2
-public abstract class AlgorithmParameterGeneratorSpi
-{
- // FIXME: Stubbed.
-}
diff --git a/libjava/java/security/BasicPermission.java b/libjava/java/security/BasicPermission.java
deleted file mode 100644
index f2e70ed3738..00000000000
--- a/libjava/java/security/BasicPermission.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/* BasicPermission.java -- Implements a simple named permission.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-import java.io.Serializable;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-/**
- * This class implements a simple model for named permissions without an
- * associated action list. That is, either the named permission is granted
- * or it is not.
- * <p>
- * It also supports trailing wildcards to allow the
- * easy granting of permissions in a hierarchical fashion. (For example,
- * the name "org.gnu.*" might grant all permissions under the "org.gnu"
- * permissions hierarchy). The only valid wildcard character is a '*'
- * which matches anything. It must be the rightmost element in the
- * permission name and must follow a '.' or else the Permission name must
- * consist of only a '*'. Any other occurrence of a '*' is not valid.
- * <p>
- * This class ignores the action list. Subclasses can choose to implement
- * actions on top of this class if desired.
- *
- * @version 0.1
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract class BasicPermission extends Permission implements Serializable
-{
-
- /*************************************************************************/
-
- /*
- * Constructors
- */
-
- /**
- * This method initializes a new instance of <code>BasicPermission</code>
- * with the specified name. If the name contains an illegal wildcard
- * character, an exception is thrown.
- *
- * @param name The name of this permission.
- *
- * @exception IllegalArgumentException If the name contains an invalid wildcard character
- * @exception NullPointerException If the name is null
- */
- public
- BasicPermission(String name) throws IllegalArgumentException, NullPointerException
- {
- super(name);
-
- if (name.indexOf("*") != -1)
- {
- if (!name.endsWith(".*") && !name.equals("*"))
- throw new IllegalArgumentException("Bad wildcard: " + name);
-
- if (name.indexOf("*") != name.lastIndexOf("*"))
- throw new IllegalArgumentException("Bad wildcard: " + name);
- }
- }
-
- /*************************************************************************/
-
- /**
- * This method initializes a new instance of <code>BasicPermission</code>
- * with the specified name. If the name contains an illegal wildcard
- * character, an exception is thrown. The action list passed to this
- * form of the constructor is ignored.
- *
- * @param name The name of this permission.
- * @param actions The list of actions for this permission - ignored in this class.
- *
- * @exception IllegalArgumentException If the name contains an invalid wildcard character
- * @exception NullPointerException If the name is null
- */
- public
- BasicPermission(String name, String actions) throws IllegalArgumentException, NullPointerException
- {
- // ignore actions
- this(name);
- }
-
- /*************************************************************************/
-
- /**
- * This method tests to see if the specified permission is implied by
- * this permission. This will be true if the following conditions are met:
- * <p>
- * <ul>
- * <li>The specified object is an instance of <code>BasicPermission</code>,
- * or a subclass.
- * <li>The name of the specified permission is identical to this permission's
- * name or the name of the specified permission satisfies a wildcard match
- * on this permission.
- * </ul>
- *
- * @param perm The <code>Permission</code> object to test against.
- *
- * @return <code>true</code> if the specified permission is implied by this one or <code>false</code> otherwise.
- */
- public boolean
- implies(Permission perm)
- {
- if (!(perm instanceof BasicPermission))
- return false;
-
- String otherName = perm.getName();
- String name = getName();
-
- if (name.equals(otherName))
- return true;
-
- int last = name.length() - 1;
- if (name.charAt(last) == '*'
- && otherName.startsWith(name.substring(0, last)))
- return true;
-
- return false;
- }
-
- /*************************************************************************/
-
- /**
- * This method tests to see if this object is equal to the specified
- * <code>Object</code>. This will be true if and only if the specified
- * object meets the following conditions:
- * <p>
- * <ul>
- * <li>It is an instance of <code>BasicPermission</code>, or a subclass.
- * <li>It has the same name as this permission.
- * </ul>
- *
- * @param obj The <code>Object</code> to test for equality against this object
- *
- * @return <code>true</code> if the specified <code>Object</code> is equal to this object or <code>false</code> otherwise.
- */
- public boolean
- equals(Object obj)
- {
- if (!(obj instanceof BasicPermission))
- return(false);
-
- if (!getName().equals(((BasicPermission)obj).getName()))
- return(false);
-
- return(true);
- }
-
- /*************************************************************************/
-
- /**
- * This method returns a hash code for this permission object. The hash
- * code returned is the value returned by calling the <code>hashCode</code>
- * method on the <code>String</code> that is the name of this permission.
- *
- * @return A hash value for this object
- */
- public int
- hashCode()
- {
- return(getName().hashCode());
- }
-
- /*************************************************************************/
-
- /**
- * This method returns a list of the actions associated with this
- * permission. This method always returns the empty string ("") since
- * this class ignores actions.
- *
- * @return The action list.
- */
- public String
- getActions()
- {
- return("");
- }
-
- /*************************************************************************/
-
- /**
- * This method returns an instance of <code>PermissionCollection</code>
- * suitable for storing <code>BasicPermission</code> objects. This returns
- * be a sub class of <code>PermissionCollection</code>
- * that allows for an efficient and consistent implementation of
- * the <code>implies</code> method. The collection doesn't handle subclasses
- * of BasicPermission correctly; they must override this method.
- *
- * @return A new empty <code>PermissionCollection</code> object.
- */
- public PermissionCollection
- newPermissionCollection()
- {
- return new PermissionCollection()
- {
- Hashtable permissions = new Hashtable();
- boolean allAllowed = false;
-
- public void add(Permission permission)
- {
- if (isReadOnly())
- throw new IllegalStateException("readonly");
-
- BasicPermission bp = (BasicPermission) permission;
- String name = bp.getName();
- if (name.equals("*"))
- allAllowed = true;
- permissions.put(name, bp);
- }
-
- public boolean implies(Permission permission)
- {
- if (!(permission instanceof BasicPermission))
- return false;
-
- if (allAllowed)
- return true;
-
- BasicPermission toImply = (BasicPermission) permission;
- String name = toImply.getName();
- if (name.equals("*"))
- return false;
-
- int prefixLength = name.length();
- if (name.endsWith("*"))
- prefixLength -= 2;
-
- while (true) {
- if (permissions.get(name) != null)
- return true;
-
- prefixLength = name.lastIndexOf('.', prefixLength);
- if (prefixLength < 0)
- return false;
- name = name.substring(0, prefixLength + 1) + '*';
- }
- }
-
- public Enumeration elements()
- {
- return permissions.elements();
- }
- };
- }
-} // class BasicPermission
diff --git a/libjava/java/security/DigestException.java b/libjava/java/security/DigestException.java
deleted file mode 100644
index 8c6b2db8af8..00000000000
--- a/libjava/java/security/DigestException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class DigestException extends GeneralSecurityException
-{
- public DigestException()
- {
- super();
- }
-
- public DigestException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/DigestOutputStream.java b/libjava/java/security/DigestOutputStream.java
deleted file mode 100644
index 8d51278b4d2..00000000000
--- a/libjava/java/security/DigestOutputStream.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/* DigestOutputStream.java --- An output stream tied to a message digest
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-import java.io.OutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-
-/**
- DigestOutputStream is a class that ties an OutputStream with a
- MessageDigest. The Message Digest is used by the class to update it
- self as bytes are written to the OutputStream.
-
- The updating to the digest depends on the on flag which is set to
- true by default that tells the class to update the data in the
- message digest.
-
- @version 0.0
- @author Mark Benvenuto <ivymccough@worldnet.att.net>
-*/
-public class DigestOutputStream extends FilterOutputStream
-{
- /**
- The message digest for the DigestOutputStream
- */
- protected MessageDigest digest;
-
- //Manages the on flag
- private boolean state = true;
-
- /**
- Constructs a new DigestOutputStream. It associates a
- MessageDigest with the stream to compute the stream as data is
- written.
-
- @param stream An OutputStream to associate this stream with
- @param digest A MessageDigest to hash the stream with
- */
- public DigestOutputStream (OutputStream stream, MessageDigest digest)
- {
- super (stream);
- this.digest = digest;
- }
-
- /**
- Returns the MessageDigest associated with this DigestOutputStream
-
- @return The MessageDigest used to hash this stream
- */
- public MessageDigest getMessageDigest ()
- {
- return digest;
- }
-
- /**
- Sets the current MessageDigest to current parameter
-
- @param digest A MessageDigest to associate with this stream
- */
- public void setMessageDigest (MessageDigest digest)
- {
- this.digest = digest;
- }
-
-
- /**
- Updates the hash if the on flag is true and then writes a byte to
- the underlying output stream.
-
- @param b A byte to write to the output stream
-
- @exception IOException if the underlying output stream
- cannot write the byte, this is thrown.
- */
- public void write (int b) throws IOException
- {
- if (state)
- digest.update ((byte)b);
-
- super.write (b);
- }
-
- /**
- Updates the hash if the on flag is true and then writes the bytes
- to the underlying output stream.
-
- @param b Bytes to write to the output stream
- @param off Offset to start to start at in array
- @param len Length of data to write
-
- @exception IOException if the underlying output stream
- cannot write the bytes, this is thrown.
- */
- public void write (byte[] b, int off, int len) throws IOException
- {
- if (state)
- digest.update (b, off, len);
-
- super.write (b, off, len);
- }
-
- /**
- Sets the flag specifying if this DigestOutputStream updates the
- digest in the write() methods. The default is on;
-
- @param on True means it digests stream, false means it does not
- */
- public void on (boolean on)
- {
- state = on;
- }
-
- /**
- Converts the output stream and underlying message digest to a string.
-
- @return A string representing the output stream and message digest.
- */
- public String toString()
- {
- return "[Digest Output Stream] " + digest.toString();
- }
-}
diff --git a/libjava/java/security/GeneralSecurityException.java b/libjava/java/security/GeneralSecurityException.java
deleted file mode 100644
index 9d30737285a..00000000000
--- a/libjava/java/security/GeneralSecurityException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public class GeneralSecurityException extends Exception
-{
- public GeneralSecurityException()
- {
- super();
- }
-
- public GeneralSecurityException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/Guard.java b/libjava/java/security/Guard.java
deleted file mode 100644
index b397dddf207..00000000000
--- a/libjava/java/security/Guard.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Guard.java -- Check access to a guarded object
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-/**
- * This interface specifies a mechanism for querying whether or not
- * access is allowed to a guarded object.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Guard
-{
-
-/**
- * This method tests whether or not access is allowed to the specified
- * guarded object. Access is allowed if this method returns silently. If
- * access is denied, an exception is generated.
- *
- * @param obj The <code>Object</code> to test
- *
- * @exception SecurityException If access to the object is denied.
- */
-public abstract void
-checkGuard(Object obj) throws SecurityException;
-
-} // interface Guard
-
diff --git a/libjava/java/security/InvalidAlgorithmParameterException.java b/libjava/java/security/InvalidAlgorithmParameterException.java
deleted file mode 100644
index 35063a961c2..00000000000
--- a/libjava/java/security/InvalidAlgorithmParameterException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 2, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public class InvalidAlgorithmParameterException extends GeneralSecurityException
-{
- public InvalidAlgorithmParameterException()
- {
- super();
- }
-
- public InvalidAlgorithmParameterException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/InvalidKeyException.java b/libjava/java/security/InvalidKeyException.java
deleted file mode 100644
index 3a9a69aade1..00000000000
--- a/libjava/java/security/InvalidKeyException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class InvalidKeyException extends KeyException
-{
- public InvalidKeyException()
- {
- super();
- }
-
- public InvalidKeyException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/InvalidParameterException.java b/libjava/java/security/InvalidParameterException.java
deleted file mode 100644
index 5ece0126b57..00000000000
--- a/libjava/java/security/InvalidParameterException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class InvalidParameterException extends IllegalArgumentException
-{
- public InvalidParameterException()
- {
- super();
- }
-
- public InvalidParameterException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/Key.java b/libjava/java/security/Key.java
deleted file mode 100644
index b3f2bef0432..00000000000
--- a/libjava/java/security/Key.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-import java.io.Serializable;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface Key extends Serializable
-{
- // FIXME: need to set this at some point when serialization is implemented.
- // public static final long serialVersionUID = 0L;
-
- public String getAlgorithm();
- public String getFormat();
- public byte[] getEncoded();
-}
diff --git a/libjava/java/security/KeyException.java b/libjava/java/security/KeyException.java
deleted file mode 100644
index 634d8ce772e..00000000000
--- a/libjava/java/security/KeyException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class KeyException extends GeneralSecurityException
-{
- public KeyException()
- {
- super();
- }
-
- public KeyException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/KeyPair.java b/libjava/java/security/KeyPair.java
deleted file mode 100644
index 0aeb7c35792..00000000000
--- a/libjava/java/security/KeyPair.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 9, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class KeyPair implements java.io.Serializable
-{
- public KeyPair (PublicKey publicKey, PrivateKey privateKey)
- {
- this.publicKey = publicKey;
- this.privateKey = privateKey;
- }
-
- public PublicKey getPublic ()
- {
- return publicKey;
- }
-
- public PrivateKey getPrivate ()
- {
- return privateKey;
- }
-
- // The keys.
- private PublicKey publicKey;
- private PrivateKey privateKey;
-}
diff --git a/libjava/java/security/KeyPairGenerator.java b/libjava/java/security/KeyPairGenerator.java
deleted file mode 100644
index 7954c3270ac..00000000000
--- a/libjava/java/security/KeyPairGenerator.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 10, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Partially implemented to the 1.1 spec.
- * It is known not to comply with the 1.2 spec.
- */
-
-public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
-{
- protected KeyPairGenerator(String algorithm)
- {
- name = algorithm;
- }
-
- public static KeyPairGenerator getInstance(String algorithm)
- throws NoSuchAlgorithmException
- {
- String name = "KeyPairGenerator." + algorithm;
- Provider[] provs = Security.getProviders();
- for (int i = 0; i < provs.length; ++i)
- {
- String val = provs[i].getProperty(name);
- if (val != null)
- {
- try
- {
- return (KeyPairGenerator) Class.forName(val).newInstance();
- }
- catch (Throwable _)
- {
- // We just ignore failures.
- }
- }
- }
-
- throw new NoSuchAlgorithmException(algorithm);
- }
-
- public static KeyPairGenerator getInstance(String algorithm, String provider)
- throws NoSuchAlgorithmException, NoSuchProviderException
- {
- String name = "KeyPairGenerator." + algorithm;
- Provider p = Security.getProvider(provider);
- if (p == null)
- throw new NoSuchProviderException(provider);
- String val = p.getProperty(name);
- if (val != null)
- {
- try
- {
- return (KeyPairGenerator) Class.forName(val).newInstance();
- }
- catch (Throwable _)
- {
- // Nothing.
- }
- }
-
- throw new NoSuchAlgorithmException(algorithm);
- }
-
- public String getAlgorithm()
- {
- return name;
- }
-
- public abstract void initialize(int strength, SecureRandom random);
- public abstract KeyPair generateKeyPair();
-
- // Algorithm name.
- private String name;
-}
diff --git a/libjava/java/security/KeyPairGeneratorSpi.java b/libjava/java/security/KeyPairGeneratorSpi.java
deleted file mode 100644
index 46520b4aea9..00000000000
--- a/libjava/java/security/KeyPairGeneratorSpi.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Partially implemented.
- */
-
-// JDK1.2
-public abstract class KeyPairGeneratorSpi
-{
- public abstract void initialize(int keysize, SecureRandom random);
- public abstract KeyPair generateKeyPair();
-}
diff --git a/libjava/java/security/MessageDigest.java b/libjava/java/security/MessageDigest.java
deleted file mode 100644
index 04546cdde19..00000000000
--- a/libjava/java/security/MessageDigest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-// MessageDigest.java
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 11, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.1 API Specification.
- * Status: Believed complete and correct to 1.1 spec.
- * It is known not to comply with the 1.2 spec.
- */
-
-public abstract class MessageDigest
-{
- protected MessageDigest (String algorithm)
- {
- name = algorithm;
- }
-
- public static MessageDigest getInstance (String algorithm)
- throws NoSuchAlgorithmException
- {
- String name = "MessageDigest." + algorithm;
- Provider[] provs = Security.getProviders ();
- for (int i = 0; i < provs.length; ++i)
- {
- String val = provs[i].getProperty (name);
- if (val != null)
- {
- try
- {
- return (MessageDigest) Class.forName(val).newInstance ();
- }
- catch (Throwable _)
- {
- // We just ignore failures.
- }
- }
- }
-
- throw new NoSuchAlgorithmException (algorithm);
- }
-
- public static MessageDigest getInstance (String algorithm, String provider)
- throws NoSuchAlgorithmException, NoSuchProviderException
- {
- String name = "MessageDigest." + algorithm;
- Provider p = Security.getProvider (provider);
- if (p == null)
- throw new NoSuchProviderException (provider);
- String val = p.getProperty (name);
- if (val != null)
- {
- try
- {
- return (MessageDigest) Class.forName(val).newInstance ();
- }
- catch (Throwable _)
- {
- // Nothing.
- }
- }
-
- throw new NoSuchAlgorithmException (algorithm);
- }
-
- public void update (byte input)
- {
- engineUpdate (input);
- }
-
- public void update (byte[] input, int offset, int len)
- {
- engineUpdate (input, offset, len);
- }
-
- public void update (byte[] input)
- {
- engineUpdate (input, 0, input.length);
- }
-
- public byte[] digest ()
- {
- return engineDigest ();
- }
-
- public byte[] digest (byte[] input)
- {
- update (input);
- return engineDigest ();
- }
-
- public String toString ()
- {
- // There is no spec for this.
- return "[MessageDigest: " + name + "]";
- }
-
- public static boolean isEqual (byte[] digesta, byte[] digestb)
- {
- if (digesta == digestb)
- return true;
- if (digesta.length != digestb.length)
- return false;
- for (int i = digesta.length - 1; i >= 0; --i)
- if (digesta[i] != digestb[i])
- return false;
- return true;
- }
-
- public void reset ()
- {
- engineReset ();
- }
-
- public final String getAlgorithm ()
- {
- return name;
- }
-
- protected abstract void engineUpdate (byte input);
- protected abstract void engineUpdate (byte input[], int offset, int len);
- protected abstract byte[] engineDigest ();
- protected abstract void engineReset ();
-
- public Object clone() throws CloneNotSupportedException
- {
- return super.clone ();
- }
-
- // Algorithm name.
- private String name;
-}
diff --git a/libjava/java/security/NoSuchAlgorithmException.java b/libjava/java/security/NoSuchAlgorithmException.java
deleted file mode 100644
index d51bf32d832..00000000000
--- a/libjava/java/security/NoSuchAlgorithmException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-public class NoSuchAlgorithmException extends Exception
-{
- public NoSuchAlgorithmException()
- {
- super();
- }
-
- public NoSuchAlgorithmException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/NoSuchProviderException.java b/libjava/java/security/NoSuchProviderException.java
deleted file mode 100644
index d7d0c853efa..00000000000
--- a/libjava/java/security/NoSuchProviderException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 4, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchProviderException extends GeneralSecurityException
-{
- public NoSuchProviderException()
- {
- super();
- }
-
- public NoSuchProviderException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/Permission.java b/libjava/java/security/Permission.java
deleted file mode 100644
index 620d5b42d2d..00000000000
--- a/libjava/java/security/Permission.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Permission.java -- The superclass for all permission objects
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-import java.io.Serializable;
-
-/**
- * This class is the abstract superclass of all classes that implement
- * the concept of a permission. A permission consists of a permission name
- * and optionally a list of actions that relate to the permission. The
- * actual meaning of the name of the permission is defined only in the
- * context of a subclass. It may name a resource to which access permissions
- * are granted (for example, the name of a file) or it might represent
- * something else entirely. Similarly, the action list only has meaning
- * within the context of a subclass. Some permission names may have no
- * actions associated with them. That is, you either have the permission
- * or you don't.
- *
- * The most important method in this class is <code>implies</code>. This
- * checks whether if one has this permission, then the specified
- * permission is also implied. As a conceptual example, consider the
- * permissions "Read All Files" and "Read File foo". The permission
- * "Read All Files" implies that the caller has permission to read the
- * file foo.
- *
- * <code>Permission</code>'s are not dynamic objects. Once created, a
- * <code>Permission</code>'s name and action list cannot be changed.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract class Permission implements Guard, Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the name assigned to this permission object.
- */
-protected String name; // Taken from the serializable form information
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>Permission</code> to
- * have the specified name.
- */
-public
-Permission(String name)
-{
- this.name = name;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns the name of this <code>Permission</code>
- *
- * @return The name of this <code>Permission</code>
- */
-public String
-getName()
-{
- return(name);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the list of actions for this <code>Permission</code>
- * as a <code>String</code>.
- *
- * @return The action list for this <code>Permission</code>.
- */
-public abstract String
-getActions();
-
-/*************************************************************************/
-
-/**
- * This method implements the <code>Guard</code> interface for this class.
- * It calls the <code>checkPermission</code> method in
- * <code>SecurityManager</code> with this <code>Permission</code> as its
- * argument. This method returns silently if the security check succeeds
- * or throws an exception if it fails.
- *
- * @param obj The <code>Object</code> being guarded - ignored by this class
- *
- * @exception SecurityException If the security check fails
- */
-public void
-checkGuard(Object obj) throws SecurityException
-{
- SecurityManager sm = System.getSecurityManager();
-// if (sm != null)
-// sm.checkPermission(this);
-}
-
-/*************************************************************************/
-
-/**
- * This method tests whether this <code>Permission</code> implies that the
- * specified <code>Permission</code> is also granted.
- *
- * @param perm The <code>Permission</code> to test against
- *
- * @return <code>true</code> if the specified <code>Permission</code> is implied by this one, <code>false</code> otherwise.
- */
-public abstract boolean
-implies(Permission perm);
-
-/*************************************************************************/
-
-/**
- * This method returns a hash code for this <code>Permission</code>.
- *
- * @return A hash value.
- */
-public abstract int
-hashCode();
-
-/*************************************************************************/
-
-/**
- * This method returns a <code>String</code> representation of this
- * <code>Permission</code> object.
- *
- * @return This object as a <code>String</code>.
- */
-public String
-toString()
-{
- return("'\"" + getClass().getName() + "\" \"" + getName() +
- "\"" + " \"" + getActions() + "\")'");
-}
-
-/*************************************************************************/
-
-/**
- * This method returns an empty <code>PermissionCollection</code> object
- * that can store permissions of this type, or <code>null</code> if no
- * such collection is defined.
- *
- * @return A new <code>PermissionCollection</code>
- */
-public PermissionCollection
-newPermissionCollection()
-{
- return(null);
-}
-
-} // class Permission
-
diff --git a/libjava/java/security/PermissionCollection.java b/libjava/java/security/PermissionCollection.java
deleted file mode 100644
index 08a9c4987b7..00000000000
--- a/libjava/java/security/PermissionCollection.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/* PermissionCollection.java -- A collection of permission objects
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-import java.io.Serializable;
-import java.util.Enumeration;
-
-/**
- * This class models a group of Java permissions. It has convenient
- * methods for determining whether or not a given permission is implied
- * by any of the permissions in this collection.
- * <p>
- * Some care must be taken in storing permissions. First, a collection of
- * the appropriate type must be created. This is done by calling the
- * <code>newPermissionCollection</code> method on an object of the
- * permission class you wish to add to the collection. If this method
- * returns <code>null</code>, any type of <code>PermissionCollection</code>
- * can be used to store permissions of that type. However, if a
- * <code>PermissionCollection</code> collection object is returned, that
- * type must be used.
- * <p>
- * The <code>PermissionCollection</code>'s returned
- * by the <code>newPermissionCollection</code> instance in a subclass of
- * <code>Permission</code> is a homogeneous collection. It only will
- * hold permissions of one specified type - instances of the class that
- * created it. Not all <code>PermissionCollection</code> subclasses
- * have to hold permissions of only one type however. For example,
- * the <code>Permissions</code> class holds permissions of many types.
- * <p>
- * Since the <code>newPermissionCollection</code> in <code>Permission</code>
- * itself returns <code>null</code>, by default a permission can be stored
- * in any type of collection unless it overrides that method to create its
- * own collection type.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract class PermissionCollection extends Object implements Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Class Variables
- */
-
-public static final String linesep = null;
-
-static
-{
- String linesep = System.getProperty("line.separator");
- if (linesep == null);
- linesep = "\n";
-}
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * Indicates whether or not this collection is read only.
- */
-private boolean readOnly;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>PermissionCollection</code>.
- * This is provided only as a default constructor and does nothing in this
- * class.
- */
-public
-PermissionCollection()
-{
- ;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method tests whether or not this <code>PermissionCollection</code>
- * object is read only.
- *
- * @return <code>true</code> if this collection is read only, <code>false</code> otherwise
- */
-public boolean
-isReadOnly()
-{
- return(readOnly);
-}
-
-/*************************************************************************/
-
-/**
- * This method sets this <code>PermissionCollection</code> object to be
- * read only. No further permissions can be added to it after calling this
- * method.
- */
-public void
-setReadOnly()
-{
- readOnly = true;
-}
-
-/*************************************************************************/
-
-/**
- * This method adds a new <code>Permission</code> object to the collection.
- *
- * @param perm The <code>Permission</code> to add.
- *
- * @exception SecurityException If the collection is marked read only.
- * @exception IllegalArgumentException If a permission of the specified type cannot be added
- */
-public abstract void
-add(Permission perm) throws SecurityException, IllegalArgumentException;
-
-/*************************************************************************/
-
-/**
- * This method returns an <code>Enumeration</code> of all the objects in
- * this collection.
- *
- * @return An <code>Enumeration</code> of this collection's objects.
- */
-public abstract Enumeration
-elements();
-
-/*************************************************************************/
-
-/**
- * This method tests whether the specified <code>Permission</code> object is
- * implied by this collection of <code>Permission</code> objects.
- *
- * @param perm The <code>Permission</code> object to test.
- *
- * @return <code>true</code> if the specified <code>Permission</code> is implied by this collection, <code>false</code> otherwise.
- */
-public abstract boolean
-implies(Permission perm);
-
-/*************************************************************************/
-
-/**
- * This method returns a <code>String</code> representation of this
- * collection. It will print the class name and has code in the same
- * manner as <code>Object.toString()</code> then print a listing of all
- * the <code>Permission</code> objects contained.
- *
- * @return A <code>String</code> representing this object.
- */
-public String
-toString()
-{
- StringBuffer sb = new StringBuffer("");
-
- sb.append(super.toString() + " (" + linesep);
- Enumeration e = elements();
- while (e.hasMoreElements())
- {
- Object obj = e.nextElement();
- if (obj instanceof Permission)
- sb.append(((Permission)obj).toString() + linesep);
- }
-
- sb.append(")" + linesep);
- return(sb.toString());
-}
-
-} // class PermissionCollection
-
diff --git a/libjava/java/security/Principal.java b/libjava/java/security/Principal.java
deleted file mode 100644
index 007ba1a68fd..00000000000
--- a/libjava/java/security/Principal.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Principal.java -- A security entity
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-/**
- * This interface models an entity (such as a user or a certificate authority)
- * for the purposes of applying the Java security model.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Principal
-{
-
-/**
- * This method returns a <code>String</code> that names this
- * <code>Principal</code>.
- *
- * @return The name of this <code>Principal</code>.
- */
-public abstract String
-getName();
-
-/*************************************************************************/
-
-/**
- * This method tests another <code>Principal</code> object for equality
- * with this one.
- *
- * @param obj The <code>Object</code> (which is a <code>Principal</code>) to test for equality against.
- *
- * @return <code>true</code> if the specified <code>Principal</code> is equal to this one, <code>false</code> otherwise.
- */
-public abstract boolean
-equals(Object obj);
-
-/*************************************************************************/
-
-/**
- * This method returns a hash code value for this <code>Principal</code>.
- *
- * @return A hash value
- */
-public abstract int
-hashCode();
-
-/*************************************************************************/
-
-/**
- * This method returns a <code>String</code> representation of this
- * <code>Principal</code>.
- *
- * @return This <code>Principal</code> represented as a <code>String</code>.
- */
-public abstract String
-toString();
-
-} // interface Principal
-
diff --git a/libjava/java/security/PrivateKey.java b/libjava/java/security/PrivateKey.java
deleted file mode 100644
index 13b9be34b4d..00000000000
--- a/libjava/java/security/PrivateKey.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface PrivateKey extends Key
-{
- // This interface contains no methods or constants. It merely serves
- // to group (and provide type safety for) all private key interfaces.
-}
diff --git a/libjava/java/security/Provider.java b/libjava/java/security/Provider.java
deleted file mode 100644
index d0a969f8c5e..00000000000
--- a/libjava/java/security/Provider.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Provider.java -- Security provider information
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security;
-
-import java.io.Serializable;
-import java.util.Properties;
-
-/**
- * This class represents a Java security architecture service provider.
- * The services provided by a such a provider can range from security
- * algorithms to key generation.
- * <p>
- * Providers are installed by name and verion number. There is one
- * standard provider supplied with the class library. This is the
- * "GNU" provider, which can also be accessed by the alias "SUN" for
- * compatibility with the JDK.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public abstract class Provider extends Properties implements Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is a textual description of the provider
- */
-private String info;
-
-/**
- * This is the name of the provider
- */
-private String name;
-
-/**
- * This is the version number of the provider
- */
-private double version;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>Provider</code> to have
- * the specified name, version, and description information.
- *
- * @param name The name to assign to this <code>Provider</code>.
- * @param version The version number for this <code>Provider</code>.
- * @param info A textual description of this provider.
- */
-protected
-Provider(String name, double version, String info)
-{
- this.name = name;
- this.version = version;
- this.info = info;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns the name assigned to this <code>Provider</code>.
- *
- * @return The <code>Provider</code>'s name.
- */
-public String
-getName()
-{
- return(name);
-}
-
-/*************************************************************************/
-
-/**
- * This method retunrs the version number of this <code>Provider</code>.
- *
- * @return The <code>Provider</code>'s version number.
- */
-public double
-getVersion()
-{
- return(version);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns a textual description of the <code>Provider</code>.
- *
- * @return A description of the <code>Provider</code>.
- */
-public String
-getInfo()
-{
- return(info);
-}
-
-/*************************************************************************/
-
-/**
- * This method sets the specified key to have the specified value.
- *
- * @param key The property key
- * @param value The property value
- *
- * @return The previous value for this key, or <code>null</code> if no previous value.
- */
-public Object
-put(Object key, Object value)
-{
- return(super.put(key, value));
-}
-
-/*************************************************************************/
-
-/**
- * This method removes the specified key entry (and its associated value)
- * from the property mapping list.
- *
- * @param key The key to remove
- *
- * @return The previous value for this key, or <code>null</code> if no previous value.
- */
-public Object
-remove(Object key)
-{
- return(super.remove(key));
-}
-
-/*************************************************************************/
-
-/**
- * This method clears the entire property list such that it no longer
- * contains the properties used to look up the services provided by
- * the <code>Provider</code>.
- */
-public void
-clear()
-{
- super.clear();
-}
-
-/*************************************************************************/
-
-/**
- * This method returns a <code>String</code> representation of this
- * object. This will include the <code>Provider</code> name and
- * version number.
- *
- * @return A <code>String</code> representation of this object.
- */
-public String
-toString()
-{
- return(getClass().getName() + ": name=" + getName() + " version=" + version);
-}
-
-} // class Provider
-
diff --git a/libjava/java/security/PublicKey.java b/libjava/java/security/PublicKey.java
deleted file mode 100644
index 5c30c627e31..00000000000
--- a/libjava/java/security/PublicKey.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface PublicKey extends Key
-{
- // This interface contains no methods or constants. It merely serves
- // to group (and provide type safety for) all private key interfaces.
-}
diff --git a/libjava/java/security/SecureClassLoader.java b/libjava/java/security/SecureClassLoader.java
deleted file mode 100644
index f49f8ac214c..00000000000
--- a/libjava/java/security/SecureClassLoader.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-// JDK1.2
-public class SecureClassLoader extends ClassLoader
-{
- public SecureClassLoader ()
- {
- this (null);
- }
-
- public SecureClassLoader (ClassLoader parent)
- {
- super (parent);
- }
-}
-
diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java
deleted file mode 100644
index 6f396dce1e3..00000000000
--- a/libjava/java/security/SecureRandom.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-import java.util.Random;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Stubbed.
- */
-
-public class SecureRandom extends Random
-{
- // FIXME: Stubbed.
-}
diff --git a/libjava/java/security/Security.java b/libjava/java/security/Security.java
deleted file mode 100644
index 87a0088281b..00000000000
--- a/libjava/java/security/Security.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-import java.util.Enumeration;
-import java.util.Properties;
-import java.util.Vector;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 8, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Still missing the deprecated getAlgorithmProperty method.
- */
-
-public final class Security
-{
- public static int insertProviderAt (Provider provider, int position)
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- {
- // FIXME: need SecurityPermission.
- // sm.checkSecurityAccess ("insertProvider." + provider.getName ());
- }
- if (providers.indexOf (provider) != -1)
- return -1;
- if (position > providers.size ())
- position = providers.size ();
- providers.insertElementAt (provider, position);
- return providers.indexOf (provider);
- }
-
- public static int addProvider (Provider provider)
- {
- return insertProviderAt (provider, providers.size ());
- }
-
- public static void removeProvider (String name)
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- {
- // FIXME: need SecurityPermission.
- // sm.checkSecurityAccess ("removeProvider." + name);
- }
- Provider p = getProvider (name);
- if (p != null)
- providers.removeElement (p);
- }
-
- public static Provider[] getProviders ()
- {
- Provider[] r = new Provider[providers.size ()];
- providers.copyInto (r);
- return r;
- }
-
- public static Provider getProvider (String name)
- {
- Enumeration e = providers.elements ();
- while (e.hasMoreElements ())
- {
- Provider p = (Provider) e.nextElement ();
- if (name.equals (p.getName ()))
- return p;
- }
- return null;
- }
-
- public static String getProperty (String key)
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- {
- // FIXME: need SecurityPermission.
- // sm.checkSecurityAccess ("getProperty." + key);
- }
- return props.getProperty (key);
- }
-
- public static void setProperty (String key, String value)
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- {
- // FIXME: need SecurityPermission.
- // sm.checkSecurityAccess ("setProperty." + key);
- }
- props.setProperty (key, value);
- }
-
- // The providers we list.
- private static Vector providers = new Vector ();
-
- // Security propertiesl
- private static Properties props = new Properties ();
-}
diff --git a/libjava/java/security/Signature.java b/libjava/java/security/Signature.java
deleted file mode 100644
index 760f62551d8..00000000000
--- a/libjava/java/security/Signature.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 11, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.1 API Specification.
- * Status: Believed complete and correct to 1.1 spec.
- * It is known not to comply with the 1.2 spec.
- */
-
-public abstract class Signature
-{
- protected Signature (String name)
- {
- state = UNINITIALIZED;
- this.name = name;
- }
-
- public static Signature getInstance (String algorithm)
- throws NoSuchAlgorithmException
- {
- String name = "Signature." + algorithm;
- Provider[] provs = Security.getProviders ();
- for (int i = 0; i < provs.length; ++i)
- {
- String val = provs[i].getProperty (name);
- if (val != null)
- {
- try
- {
- return (Signature) Class.forName(val).newInstance ();
- }
- catch (Throwable _)
- {
- // We just ignore failures.
- }
- }
- }
-
- throw new NoSuchAlgorithmException (algorithm);
- }
-
- public static Signature getInstance (String algorithm, String provider)
- throws NoSuchAlgorithmException, NoSuchProviderException
- {
- String name = "Signature." + algorithm;
- Provider p = Security.getProvider (provider);
- if (p == null)
- throw new NoSuchProviderException (provider);
- String val = p.getProperty (name);
- if (val != null)
- {
- try
- {
- return (Signature) Class.forName(val).newInstance ();
- }
- catch (Throwable _)
- {
- // Nothing.
- }
- }
-
- throw new NoSuchAlgorithmException (algorithm);
- }
-
- public final void initVerify (PublicKey publicKey)
- throws InvalidKeyException
- {
- engineInitVerify (publicKey);
- }
-
- public final void initSign (PrivateKey privateKey)
- throws InvalidKeyException
- {
- engineInitSign (privateKey);
- }
-
- public final byte[] sign ()
- throws SignatureException
- {
- return engineSign ();
- }
-
- public final boolean verify (byte[] signature)
- throws SignatureException
- {
- return engineVerify (signature);
- }
-
- public final void update (byte b)
- throws SignatureException
- {
- engineUpdate (b);
- }
-
- public final void update (byte[] data)
- throws SignatureException
- {
- engineUpdate (data, 0, data.length);
- }
-
- public final void update (byte[] data, int off, int len)
- throws SignatureException
- {
- engineUpdate (data, off, len);
- }
-
- public final String getAlgorithm ()
- {
- return name;
- }
-
- public String toString ()
- {
- // There is no spec for this. FIXME: this is a bad choice.
- return name + "; state = " + state;
- }
-
- public final void setParameter (String param, Object value)
- throws InvalidParameterException
- {
- engineSetParameter (param, value);
- }
-
- public final Object getParameter (String param)
- throws InvalidParameterException
- {
- return engineGetParameter (param);
- }
-
- protected abstract void engineInitVerify (PublicKey publicKey)
- throws InvalidKeyException;
- protected abstract void engineInitSign (PrivateKey privateKey)
- throws InvalidKeyException;
- protected abstract void engineUpdate (byte b)
- throws SignatureException;
- protected abstract void engineUpdate (byte[] b, int off, int len)
- throws SignatureException;
- protected abstract byte[] engineSign ()
- throws SignatureException;
- protected abstract boolean engineVerify (byte[] sigBytes)
- throws SignatureException;
- protected abstract void engineSetParameter (String param, Object value)
- throws InvalidParameterException;
- protected abstract Object engineGetParameter (String param)
- throws InvalidParameterException;
-
- public Object clone() throws CloneNotSupportedException
- {
- return super.clone ();
- }
-
- protected static final int UNINITIALIZED = 0;
- protected static final int SIGN = 2;
- protected static final int VERIFY = 3;
-
- // Current state.
- protected int state;
-
- // Name of this object.
- private String name;
-}
diff --git a/libjava/java/security/SignatureException.java b/libjava/java/security/SignatureException.java
deleted file mode 100644
index dc1c87a6317..00000000000
--- a/libjava/java/security/SignatureException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/**
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public class SignatureException extends GeneralSecurityException
-{
- public SignatureException()
- {
- super();
- }
-
- public SignatureException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/cert/CRL.java b/libjava/java/security/cert/CRL.java
deleted file mode 100644
index f5cde15a4b0..00000000000
--- a/libjava/java/security/cert/CRL.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* CRL.java --- Certificate Revocation List
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-
-/**
- Certificate Revocation List class for managing CRLs that
- have different formats but the same general use. They
- all serve as lists of revoked certificates and can
- be queried for a given certificate.
-
- Specialized CRLs extend this class.
-
- @author Mark Benvenuto
-
- @since JDK 1.2
-*/
-public abstract class CRL
-{
-
- private String type;
-
- /**
- Creates a new CRL for the specified type. An example
- is "X.509".
-
- @param type the standard name for the CRL type.
- */
- protected CRL(String type)
- {
- this.type = type;
- }
-
- /**
- Returns the CRL type.
-
- @return a string representing the CRL type
- */
- public final String getType()
- {
- return type;
- }
-
- /**
- Returns a string representing the CRL.
-
- @return a string representing the CRL.
- */
- public abstract String toString();
-
- /**
- Determines whether or not the specified Certificate
- is revoked.
-
- @param cert A certificate to check if it is revoked
-
- @return true if the certificate is revoked,
- false otherwise.
- */
- public abstract boolean isRevoked(Certificate cert);
-
-
-}
diff --git a/libjava/java/security/cert/CRLException.java b/libjava/java/security/cert/CRLException.java
deleted file mode 100644
index 376e25a6dfd..00000000000
--- a/libjava/java/security/cert/CRLException.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* CRLException.java --- Certificate Revocation List Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.security.GeneralSecurityException;
-
-/**
- Exception for a Certificate Revocation List.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CRLException extends GeneralSecurityException
-{
-
- /**
- Constructs an CRLExceptionwithout a message string.
- */
- public CRLException()
- {
- super();
- }
-
- /**
- Constructs an CRLException with a message string.
-
- @param msg A message to display with exception
- */
- public CRLException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/Certificate.java b/libjava/java/security/cert/Certificate.java
deleted file mode 100644
index 2fb2a201f21..00000000000
--- a/libjava/java/security/cert/Certificate.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Certificate.java --- Certificate class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.security.PublicKey;
-import java.security.NoSuchAlgorithmException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchProviderException;
-import java.security.SignatureException;
-import java.io.ObjectInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ObjectStreamException;
-
-/**
- The Certificate class is an abstract class used to manage
- identity certificates. An identity certificate is a
- combination of a principal and a public key which is
- certified by another principal. This is the puprose of
- Certificate Authorities (CA).
-
- This class is used to manage different types of certificates
- but have important common puposes. Different types of
- certificates like X.509 and OpenPGP share general certificate
- functions (like encoding and verifying) and information like
- public keys.
-
- X.509, OpenPGP, and SDSI can be implemented by subclassing this
- class even though they differ in storage methods and information
- stored.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public abstract class Certificate
-{
-
- private String type;
- /**
- Constructs a new certificate of the specified type. An example
- is "X.509".
-
- @param type a valid standard name for a certificate.
- */
- protected Certificate(String type)
- {
- this.type = type;
- }
-
- /**
- Returns the Certificate type.
-
- @return a string representing the Certificate type
- */
- public final String getType()
- {
- return type;
- }
-
- /**
- Compares this Certificate to other. It checks if the
- object if instanceOf Certificate and then checks if
- the encoded form matches.
-
- @param other An Object to test for equality
-
- @return true if equal, false otherwise
- */
- public boolean equals(Object other)
- {
- if( other instanceof Certificate ) {
- try {
- Certificate x = (Certificate) other;
- if( getEncoded().length != x.getEncoded().length )
- return false;
-
- byte b1[] = getEncoded();
- byte b2[] = x.getEncoded();
-
- for( int i = 0; i < b1.length; i++ )
- if( b1[i] != b2[i] )
- return false;
-
- } catch( CertificateEncodingException cee ) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- Returns a hash code for this Certificate in its encoded
- form.
-
- @return A hash code of this class
- */
- public int hashCode()
- {
- return super.hashCode();
- }
-
- /**
- Gets the DER ASN.1 encoded format for this Certificate.
- It assumes each certificate has only one encoding format.
- Ex: X.509 is encoded as ASN.1 DER
-
- @return byte array containg encoded form
-
- @throws CertificateEncodingException if an error occurs
- */
- public abstract byte[] getEncoded() throws CertificateEncodingException;
-
- /**
- Verifies that this Certificate was properly signed with the
- PublicKey that corresponds to its private key.
-
- @param key PublicKey to verify with
-
- @throws CertificateException encoding error
- @throws NoSuchAlgorithmException unsupported algorithm
- @throws InvalidKeyException incorrect key
- @throws NoSuchProviderException no provider
- @throws SignatureException signature error
- */
- public abstract void verify(PublicKey key)
- throws CertificateException,
- NoSuchAlgorithmException,
- InvalidKeyException,
- NoSuchProviderException,
- SignatureException;
-
- /**
- Verifies that this Certificate was properly signed with the
- PublicKey that corresponds to its private key and uses
- the signature engine provided by the provider.
-
- @param key PublicKey to verify with
- @param sigProvider Provider to use for signature algorithm
-
- @throws CertificateException encoding error
- @throws NoSuchAlgorithmException unsupported algorithm
- @throws InvalidKeyException incorrect key
- @throws NoSuchProviderException incorrect provider
- @throws SignatureException signature error
- */
- public abstract void verify(PublicKey key,
- String sigProvider)
- throws CertificateException,
- NoSuchAlgorithmException,
- InvalidKeyException,
- NoSuchProviderException,
- SignatureException;
-
- /**
- Returns a string representing the Certificate.
-
- @return a string representing the Certificate.
- */
- public abstract String toString();
-
-
- /**
- Returns the public key stored in the Certificate.
-
- @return The public key
- */
- public abstract PublicKey getPublicKey();
-
-
- /* INNER CLASS */
- /**
- Certificate.CertificateRep is an inner class used to provide an alternate
- storage mechanism for serialized Certificates.
- */
- protected static class CertificateRep implements java.io.Serializable
- {
- private String type;
- private byte[] data;
-
- /**
- Create an alternate Certificate class to store a serialized Certificate
-
- @param type the name of certificate type
- @param data the certificate data
- */
- protected CertificateRep(String type,
- byte[] data)
- {
- this.type = type;
- this.data = data;
- }
-
- /**
- Return the stored Certificate
-
- @return the stored certificate
-
- @throws ObjectStreamException if certificate cannot be resolved
- */
- protected Object readResolve()
- throws ObjectStreamException
- {
- try {
- return new ObjectInputStream( new ByteArrayInputStream( data ) ).readObject();
- } catch ( Exception e ) {
- e.printStackTrace();
- throw new RuntimeException ( e.toString() );
- }
- }
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateEncodingException.java b/libjava/java/security/cert/CertificateEncodingException.java
deleted file mode 100644
index ab8843fe38d..00000000000
--- a/libjava/java/security/cert/CertificateEncodingException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* CertificateEncodingException.java --- Certificate Encoding Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-
-/**
- Exception for a Certificate Encoding.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateEncodingException extends CertificateException
-{
-
- /**
- Constructs an CertificateEncodingException without a message string.
- */
- public CertificateEncodingException()
- {
- super();
- }
-
- /**
- Constructs an CertificateEncodingException with a message string.
-
- @param msg A message to display with exception
- */
- public CertificateEncodingException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateException.java b/libjava/java/security/cert/CertificateException.java
deleted file mode 100644
index ab584d2cbbf..00000000000
--- a/libjava/java/security/cert/CertificateException.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* CertificateException.java --- Certificate Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.security.GeneralSecurityException;
-
-/**
- Exception for a Certificate.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateException extends GeneralSecurityException
-{
-
- /**
- Constructs an CertificateException without a message string.
- */
- public CertificateException()
- {
- super();
- }
-
- /**
- Constructs an CertificateException with a message string.
-
- @param msg A message to display with exception
- */
- public CertificateException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateExpiredException.java b/libjava/java/security/cert/CertificateExpiredException.java
deleted file mode 100644
index c5b67f3573b..00000000000
--- a/libjava/java/security/cert/CertificateExpiredException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* CertificateExpiredException.java --- Certificate Expired Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-
-/**
- Exception for a Certificate Expiring.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateExpiredException extends CertificateException
-{
-
- /**
- Constructs an CertificateExpiredException without a message string.
- */
- public CertificateExpiredException()
- {
- super();
- }
-
- /**
- Constructs an CertificateExpiredException with a message string.
-
- @param msg A message to display with exception
- */
- public CertificateExpiredException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateFactory.java b/libjava/java/security/cert/CertificateFactory.java
deleted file mode 100644
index b5fe2e3518e..00000000000
--- a/libjava/java/security/cert/CertificateFactory.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/* CertificateFactory.java --- Certificate Factory Class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.security.NoSuchProviderException;
-import java.security.Provider;
-import java.security.Security;
-import java.io.InputStream;
-import java.util.Collection;
-
-/**
- This class implments the CertificateFactory class interface
- used to generate certificates and certificate revocation
- list (CRL) objects from their encodings.
-
- A certifcate factory for X.509 returns certificates of the
- java.security.cert.X509Certificate class, and CRLs of the
- java.security.cert.X509CRL class.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateFactory
-{
-
- private CertificateFactorySpi certFacSpi;
- private Provider provider;
- private String type;
-
- /**
- Creates an instance of CertificateFactory
-
- @param certFacSpi A CertificateFactory engine to use
- @param provider A provider to use
- @param type The type of Certificate
- */
- protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
- {
- this.certFacSpi = certFacSpi;
- this.provider = provider;
- this.type = type;
- }
-
-
- /**
- Gets an instance of the CertificateFactory class representing
- the specified certificate factory. If the type is not
- found then, it throws CertificateException.
-
- @param type the type of certificate to choose
-
- @return a CertificateFactory repesenting the desired type
-
- @throws CertificateException if the type of certificate is not implemented by providers
- */
- public static final CertificateFactory getInstance(String type) throws CertificateException
- {
- Provider[] p = Security.getProviders ();
-
- for (int i = 0; i < p.length; i++)
- {
- String classname = p[i].getProperty ("CertificateFactory." + type);
- if (classname != null)
- return getInstance (classname, type, p[i]);
- }
-
- throw new CertificateException(type);
- }
-
-
-
- /**
- Gets an instance of the CertificateFactory class representing
- the specified certificate factory from the specified provider.
- If the type is not found then, it throws CertificateException.
- If the provider is not found, then it throws
- NoSuchProviderException.
-
- @param type the type of certificate to choose
-
- @return a CertificateFactory repesenting the desired type
-
- @throws CertificateException if the type of certificate is not implemented by providers
- @throws NoSuchProviderException if the provider is not found
- */
- public static final CertificateFactory getInstance(String type, String provider)
- throws CertificateException, NoSuchProviderException
- {
- Provider p = Security.getProvider(provider);
- if( p == null)
- throw new NoSuchProviderException();
-
- return getInstance (p.getProperty ("CertificateFactory." + type),
- type, p);
- }
-
- private static CertificateFactory getInstance (String classname,
- String type,
- Provider provider)
- throws CertificateException
- {
- try {
- return new CertificateFactory( (CertificateFactorySpi)Class.forName( classname ).newInstance(), provider, type );
- } catch( ClassNotFoundException cnfe) {
- throw new CertificateException("Class not found");
- } catch( InstantiationException ie) {
- throw new CertificateException("Class instantiation failed");
- } catch( IllegalAccessException iae) {
- throw new CertificateException("Illegal Access");
- }
- }
-
-
- /**
- Gets the provider that the class is from.
-
- @return the provider of this class
- */
- public final Provider getProvider()
- {
- return provider;
- }
-
- /**
- Returns the type of the certificate supported
-
- @return A string with the type of certificate
- */
- public final String getType()
- {
- return type;
- }
-
- /**
- Generates a Certificate based on the encoded data read
- from the InputStream.
-
- The input stream must contain only one certificate.
-
- If there exists a specialized certificate class for the
- certificate format handled by the certificate factory
- then the return Ceritificate should be a typecast of it.
- Ex: A X.509 CertificateFactory should return X509Certificate.
-
- For X.509 certificates, the certificate in inStream must be
- DER encoded and supplied in binary or printable (Base64)
- encoding. If the certificate is in Base64 encoding, it must be
- bounded by -----BEGINCERTIFICATE-----, and
- -----END CERTIFICATE-----.
-
- @param inStream an input stream containing the certificate data
-
- @return a certificate initialized with InputStream data.
-
- @throws CertificateException Certificate parsing error
- */
- public final Certificate generateCertificate(InputStream inStream)
- throws CertificateException
- {
- return certFacSpi.engineGenerateCertificate( inStream );
- }
-
- /**
- Returns a collection of certificates that were read from the
- input stream. It may be empty, have only one, or have
- multiple certificates.
-
- For a X.509 certificate factory, the stream may contain a
- single DER encoded certificate or a PKCS#7 certificate
- chain. This is a PKCS#7 <I>SignedData</I> object with the
- most significant field being <I>certificates</I>. If no
- CRLs are present, then an empty collection is returned.
-
- @param inStream an input stream containing the certificates
-
- @return a collection of certificates initialized with
- the InputStream data.
-
- @throws CertificateException Certificate parsing error
- */
- public final Collection generateCertificates(InputStream inStream)
- throws CertificateException
- {
- return certFacSpi.engineGenerateCertificates( inStream );
- }
-
- /**
- Generates a CRL based on the encoded data read
- from the InputStream.
-
- The input stream must contain only one CRL.
-
- If there exists a specialized CRL class for the
- CRL format handled by the certificate factory
- then the return CRL should be a typecast of it.
- Ex: A X.509 CertificateFactory should return X509CRL.
-
- @param inStream an input stream containing the CRL data
-
- @return a CRL initialized with InputStream data.
-
- @throws CRLException CRL parsing error
- */
- public final CRL generateCRL(InputStream inStream)
- throws CRLException
- {
- return certFacSpi.engineGenerateCRL( inStream );
- }
-
-
- /**
- Generates CRLs based on the encoded data read
- from the InputStream.
-
- For a X.509 certificate factory, the stream may contain a
- single DER encoded CRL or a PKCS#7 CRL set. This is a
- PKCS#7 <I>SignedData</I> object with the most significant
- field being <I>crls</I>. If no CRLs are present, then an
- empty collection is returned.
-
- @param inStream an input stream containing the CRLs
-
- @return a collection of CRLs initialized with
- the InputStream data.
-
- @throws CRLException CRL parsing error
- */
- public final Collection generateCRLs(InputStream inStream)
- throws CRLException
- {
- return certFacSpi.engineGenerateCRLs( inStream );
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateFactorySpi.java b/libjava/java/security/cert/CertificateFactorySpi.java
deleted file mode 100644
index 5fb5b966ab6..00000000000
--- a/libjava/java/security/cert/CertificateFactorySpi.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/* CertificateFactorySpi.java --- Certificate Factory Class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.io.InputStream;
-import java.util.Collection;
-
-/**
- CertificateFactorySpi is the abstract class Service Provider
- Interface (SPI) for the CertificateFactory class. A provider
- must implment all the abstract methods if they wish to
- supply a certificate factory for a particular certificate
- type. Ex: X.509
-
- Certificate factories are used to generate certificates and
- certificate revocation lists (CRL) from their encoding.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public abstract class CertificateFactorySpi
-{
-
- /**
- Constructs a new CertificateFactorySpi
- */
- public CertificateFactorySpi()
- {}
-
- /**
- Generates a Certificate based on the encoded data read
- from the InputStream.
-
- The input stream must contain only one certificate.
-
- If there exists a specialized certificate class for the
- certificate format handled by the certificate factory
- then the return Ceritificate should be a typecast of it.
- Ex: A X.509 CertificateFactory should return X509Certificate.
-
- For X.509 certificates, the certificate in inStream must be
- DER encoded and supplied in binary or printable (Base64)
- encoding. If the certificate is in Base64 encoding, it must be
- bounded by -----BEGINCERTIFICATE-----, and
- -----END CERTIFICATE-----.
-
- @param inStream an input stream containing the certificate data
-
- @return a certificate initialized with InputStream data.
-
- @throws CertificateException Certificate parsing error
- */
- public abstract Certificate engineGenerateCertificate(InputStream inStream)
- throws CertificateException;
-
- /**
- Returns a collection of certificates that were read from the
- input stream. It may be empty, have only one, or have
- multiple certificates.
-
- For a X.509 certificate factory, the stream may contain a
- single DER encoded certificate or a PKCS#7 certificate
- chain. This is a PKCS#7 <I>SignedData</I> object with the
- most significant field being <I>certificates</I>. If no
- CRLs are present, then an empty collection is returned.
-
- @param inStream an input stream containing the certificates
-
- @return a collection of certificates initialized with
- the InputStream data.
-
- @throws CertificateException Certificate parsing error
- */
- public abstract Collection engineGenerateCertificates(InputStream inStream)
- throws CertificateException;
-
- /**
- Generates a CRL based on the encoded data read
- from the InputStream.
-
- The input stream must contain only one CRL.
-
- If there exists a specialized CRL class for the
- CRL format handled by the certificate factory
- then the return CRL should be a typecast of it.
- Ex: A X.509 CertificateFactory should return X509CRL.
-
- @param inStream an input stream containing the CRL data
-
- @return a CRL initialized with InputStream data.
-
- @throws CRLException CRL parsing error
- */
- public abstract CRL engineGenerateCRL(InputStream inStream)
- throws CRLException;
-
- /**
- Generates CRLs based on the encoded data read
- from the InputStream.
-
- For a X.509 certificate factory, the stream may contain a
- single DER encoded CRL or a PKCS#7 CRL set. This is a
- PKCS#7 <I>SignedData</I> object with the most significant
- field being <I>crls</I>. If no CRLs are present, then an
- empty collection is returned.
-
- @param inStream an input stream containing the CRLs
-
- @return a collection of CRLs initialized with
- the InputStream data.
-
- @throws CRLException CRL parsing error
- */
- public abstract Collection engineGenerateCRLs(InputStream inStream)
- throws CRLException;
-}
-
diff --git a/libjava/java/security/cert/CertificateNotYetValidException.java b/libjava/java/security/cert/CertificateNotYetValidException.java
deleted file mode 100644
index ec2cc212143..00000000000
--- a/libjava/java/security/cert/CertificateNotYetValidException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* CertificateNotYetValidException.java --- Certificate Not Yet Valid Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-
-/**
- Exception for a Certificate being not yet valid.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateNotYetValidException extends CertificateException
-{
-
- /**
- Constructs an CertificateNotYetValidException without a message string.
- */
- public CertificateNotYetValidException()
- {
- super();
- }
-
- /**
- Constructs an CertificateNotYetValidException with a message string.
-
- @param msg A message to display with exception
- */
- public CertificateNotYetValidException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/CertificateParsingException.java b/libjava/java/security/cert/CertificateParsingException.java
deleted file mode 100644
index 6184e01d2a4..00000000000
--- a/libjava/java/security/cert/CertificateParsingException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* CertificateParsingException.java --- Certificate Parsing Exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-
-/**
- Exception for a Certificate Parsing.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public class CertificateParsingException extends CertificateException
-{
-
- /**
- Constructs an CertificateParsingException without a message string.
- */
- public CertificateParsingException()
- {
- super();
- }
-
- /**
- Constructs an CertificateParsingException with a message string.
-
- @param msg A message to display with exception
- */
- public CertificateParsingException(String msg)
- {
- super( msg );
- }
-
-}
diff --git a/libjava/java/security/cert/X509CRL.java b/libjava/java/security/cert/X509CRL.java
deleted file mode 100644
index c3b715351aa..00000000000
--- a/libjava/java/security/cert/X509CRL.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/* X509CRL.java --- X.509 Certificate Revocation List
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.math.BigInteger;
-import java.security.Principal;
-import java.security.PublicKey;
-import java.security.NoSuchAlgorithmException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchProviderException;
-import java.security.SignatureException;
-import java.util.Date;
-import java.util.Set;
-
-/**
- The X509CRL class is the abstract class used to manage
- X.509 Certificate Revocation Lists. The CRL is a list of
- time stamped entries which indicate which lists have been
- revoked. The list is signed by a Certificate Authority (CA)
- and made publically available in a repository.
-
- Each revoked certificate in the CRL is identified by its
- certificate serial number. When a piece of code uses a
- certificate, the certificates validity is checked by
- validating its signature and determing that it is not
- only a recently acquired CRL. The recently aquired CRL
- is depends on the local policy in affect. The CA issues
- a new CRL periodically and entries are removed as the
- certificate expiration date is reached
-
-
- A description of the X.509 v2 CRL follows below from rfc2459.
-
- "The X.509 v2 CRL syntax is as follows. For signature calculation,
- the data that is to be signed is ASN.1 DER encoded. ASN.1 DER
- encoding is a tag, length, value encoding system for each element.
-
- CertificateList ::= SEQUENCE {
- tbsCertList TBSCertList,
- signatureAlgorithm AlgorithmIdentifier,
- signatureValue BIT STRING }
-
- TBSCertList ::= SEQUENCE {
- version Version OPTIONAL,
- -- if present, shall be v2
- signature AlgorithmIdentifier,
- issuer Name,
- thisUpdate Time,
- nextUpdate Time OPTIONAL,
- revokedCertificates SEQUENCE OF SEQUENCE {
- userCertificate CertificateSerialNumber,
- revocationDate Time,
- crlEntryExtensions Extensions OPTIONAL
- -- if present, shall be v2
- } OPTIONAL,
- crlExtensions [0] EXPLICIT Extensions OPTIONAL
- -- if present, shall be v2
- }"
-
- @author Mark Benvenuto
-
- @since JDK 1.2
-*/
-public abstract class X509CRL extends CRL implements X509Extension
-{
-
- /**
- Constructs a new X509CRL.
- */
- protected X509CRL()
- {
- super("X.509");
- }
-
- /**
- Compares this X509CRL to other. It checks if the
- object if instanceOf X509CRL and then checks if
- the encoded form matches.
-
- @param other An Object to test for equality
-
- @return true if equal, false otherwise
- */
- public boolean equals(Object other)
- {
- if( other instanceof X509CRL ) {
- try {
- X509CRL x = (X509CRL) other;
- if( getEncoded().length != x.getEncoded().length )
- return false;
-
- byte b1[] = getEncoded();
- byte b2[] = x.getEncoded();
-
- for( int i = 0; i < b1.length; i++ )
- if( b1[i] != b2[i] )
- return false;
-
- } catch( CRLException crle ) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- Returns a hash code for this X509CRL in its encoded
- form.
-
- @return A hash code of this class
- */
- public int hashCode()
- {
- return super.hashCode();
- }
-
- /**
- Gets the DER ASN.1 encoded format for this X.509 CRL.
-
- @return byte array containg encoded form
-
- @throws CRLException if an error occurs
- */
- public abstract byte[] getEncoded() throws CRLException;
-
- /**
- Verifies that this CRL was properly signed with the
- PublicKey that corresponds to its private key.
-
- @param key PublicKey to verify with
-
- @throws CRLException encoding error
- @throws NoSuchAlgorithmException unsupported algorithm
- @throws InvalidKeyException incorrect key
- @throws NoSuchProviderException no provider
- @throws SignatureException signature error
- */
- public abstract void verify(PublicKey key)
- throws CRLException,
- NoSuchAlgorithmException,
- InvalidKeyException,
- NoSuchProviderException,
- SignatureException;
-
- /**
- Verifies that this CRL was properly signed with the
- PublicKey that corresponds to its private key and uses
- the signature engine provided by the provider.
-
- @param key PublicKey to verify with
- @param sigProvider Provider to use for signature algorithm
-
- @throws CRLException encoding error
- @throws NoSuchAlgorithmException unsupported algorithm
- @throws InvalidKeyException incorrect key
- @throws NoSuchProviderException incorrect provider
- @throws SignatureException signature error
- */
- public abstract void verify(PublicKey key,
- String sigProvider)
- throws CRLException,
- NoSuchAlgorithmException,
- InvalidKeyException,
- NoSuchProviderException,
- SignatureException;
-
- /**
- Gets the version of this CRL.
-
- The ASN.1 encoding is:
-
- version Version OPTIONAL,
- -- if present, shall be v2
-
- Version ::= INTEGER { v1(0), v2(1), v3(2) }
-
- Consult rfc2459 for more information.
-
- @return the version number, Ex: 1 or 2
- */
- public abstract int getVersion();
-
- /**
- Returns the issuer (issuer distinguished name) of the CRL.
- The issuer is the entity who signed and issued the
- Certificate Revocation List.
-
- The ASN.1 DER encoding is:
-
- issuer Name,
-
- Name ::= CHOICE {
- RDNSequence }
-
- RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
-
- RelativeDistinguishedName ::=
- SET OF AttributeTypeAndValue
-
- AttributeTypeAndValue ::= SEQUENCE {
- type AttributeType,
- value AttributeValue }
-
- AttributeType ::= OBJECT IDENTIFIER
-
- AttributeValue ::= ANY DEFINED BY AttributeType
-
- DirectoryString ::= CHOICE {
- teletexString TeletexString (SIZE (1..MAX)),
- printableString PrintableString (SIZE (1..MAX)),
- universalString UniversalString (SIZE (1..MAX)),
- utf8String UTF8String (SIZE (1.. MAX)),
- bmpString BMPString (SIZE (1..MAX)) }
-
- Consult rfc2459 for more information.
-
- @return the issuer in the Principal class
- */
- public abstract Principal getIssuerDN();
-
- /**
- Returns the thisUpdate date of the CRL.
-
- The ASN.1 DER encoding is:
-
- thisUpdate Time,
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- Consult rfc2459 for more information.
-
- @return the thisUpdate date
- */
- public abstract Date getThisUpdate();
-
- /*
- Gets the nextUpdate field
-
- The ASN.1 DER encoding is:
-
- nextUpdate Time OPTIONAL,
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- Consult rfc2459 for more information.
-
- @return the nextUpdate date
- */
- public abstract Date getNextUpdate();
-
- /**
- Gets the requeste dX509Entry for the specified
- certificate serial number.
-
- @return a X509CRLEntry representing the X.509 CRL entry
- */
- public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber);
-
- /**
- Returns a Set of revoked certificates.
-
- @return a set of revoked certificates.
- */
- public abstract Set getRevokedCertificates();
-
- /**
- Returns the DER ASN.1 encoded tbsCertList which is
- the basic information of the list and associated certificates
- in the encoded state. See top for more information.
-
- The ASN.1 DER encoding is:
-
- tbsCertList TBSCertList,
-
- Consult rfc2459 for more information.
-
- @return byte array representing tbsCertList
- */
- public abstract byte[] getTBSCertList() throws CRLException;
-
-
- /**
- Returns the signature for the CRL.
-
- The ASN.1 DER encoding is:
-
- signatureValue BIT STRING
-
- Consult rfc2459 for more information.
- */
- public abstract byte[] getSignature();
-
- /**
- Returns the signature algorithm used to sign the CRL.
- An examples is "SHA-1/DSA".
-
- The ASN.1 DER encoding is:
-
- signatureAlgorithm AlgorithmIdentifier,
-
- AlgorithmIdentifier ::= SEQUENCE {
- algorithm OBJECT IDENTIFIER,
- parameters ANY DEFINED BY algorithm OPTIONAL }
-
- Consult rfc2459 for more information.
-
- The algorithm name is determined from the OID.
-
- @return a string with the signature algorithm name
- */
- public abstract String getSigAlgName();
-
- /**
- Returns the OID for the signature algorithm used.
- Example "1.2.840.10040.4.3" is return for SHA-1 with DSA.\
-
- The ASN.1 DER encoding for the example is:
-
- id-dsa-with-sha1 ID ::= {
- iso(1) member-body(2) us(840) x9-57 (10040)
- x9cm(4) 3 }
-
- Consult rfc2459 for more information.
-
- @return a string containing the OID.
- */
- public abstract String getSigAlgOID();
-
- /**
- Returns the AlgorithmParameters in the encoded form
- for the signature algorithm used.
-
- If access to the parameters is need, create an
- instance of AlgorithmParameters.
-
- @return byte array containing algorithm parameters, null
- if no parameters are present in CRL
- */
- public abstract byte[] getSigAlgParams();
-
-}
diff --git a/libjava/java/security/cert/X509CRLEntry.java b/libjava/java/security/cert/X509CRLEntry.java
deleted file mode 100644
index 2fbe64199fd..00000000000
--- a/libjava/java/security/cert/X509CRLEntry.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* X509CRLEntry.java --- X.509 Certificate Revocation List Entry
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.math.BigInteger;
-import java.util.Date;
-
-/**
- Abstract class for entries in the CRL (Certificate Revocation
- List). The ASN.1 definition for <I>revokedCertificates</I> is
-
- revokedCertificates SEQUENCE OF SEQUENCE {
- userCertificate CertificateSerialNumber,
- revocationDate Time,
- crlEntryExtensions Extensions OPTIONAL
- -- if present, shall be v2
- } OPTIONAL,
-
- CertificateSerialNumber ::= INTEGER
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
-
- Extension ::= SEQUENCE {
- extnID OBJECT IDENTIFIER,
- critical BOOLEAN DEFAULT FALSE,
- extnValue OCTET STRING }
-
- For more information consult rfc2459.
-
- @author Mark Benvenuto
-
- @since JDK 1.2
-*/
-public abstract class X509CRLEntry implements X509Extension
-{
-
- /**
- Creates a new X509CRLEntry
- */
- public X509CRLEntry()
- {}
-
- /**
- Compares this X509CRLEntry to other. It checks if the
- object if instanceOf X509CRLEntry and then checks if
- the encoded form( the inner SEQUENCE) matches.
-
- @param other An Object to test for equality
-
- @return true if equal, false otherwise
- */
- public boolean equals(Object other)
- {
- if( other instanceof X509CRLEntry ) {
- try {
- X509CRLEntry xe = (X509CRLEntry) other;
- if( getEncoded().length != xe.getEncoded().length )
- return false;
-
- byte b1[] = getEncoded();
- byte b2[] = xe.getEncoded();
-
- for( int i = 0; i < b1.length; i++ )
- if( b1[i] != b2[i] )
- return false;
-
- } catch( CRLException crle ) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- Returns a hash code for this X509CRLEntry in its encoded
- form.
-
- @return A hash code of this class
- */
- public int hashCode()
- {
- return super.hashCode();
- }
-
- /**
- Gets the DER ASN.1 encoded format for this CRL Entry,
- the inner SEQUENCE.
-
- @return byte array containg encoded form
-
- @throws CRLException if an error occurs
- */
- public abstract byte[] getEncoded() throws CRLException;
-
- /**
- Gets the serial number for <I>userCertificate</I> in
- this X509CRLEntry.
-
- @return the serial number for this X509CRLEntry.
- */
- public abstract BigInteger getSerialNumber();
-
-
- /**
- Gets the revocation date in <I>revocationDate</I> for
- this X509CRLEntry.
-
- @return the revocation date for this X509CRLEntry.
- */
- public abstract Date getRevocationDate();
-
-
- /**
- Checks if this X509CRLEntry has extensions.
-
- @return true if it has extensions, false otherwise
- */
- public abstract boolean hasExtensions();
-
-
- /**
- Returns a string that represents this X509CRLEntry.
-
- @return a string representing this X509CRLEntry.
- */
- public abstract String toString();
-
-}
diff --git a/libjava/java/security/cert/X509Certificate.java b/libjava/java/security/cert/X509Certificate.java
deleted file mode 100644
index 46f47f615d5..00000000000
--- a/libjava/java/security/cert/X509Certificate.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/* X509Certificate.java --- X.509 Certificate class
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.math.BigInteger;
-import java.security.Principal;
-import java.security.PublicKey;
-import java.security.NoSuchAlgorithmException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchProviderException;
-import java.security.SignatureException;
-import java.util.Date;
-
-/**
- X509Certificate is the abstract class for X.509 certificates.
- This provides a stanard class interface for accessing all
- the attributes of X.509 certificates.
-
- In June 1996, the basic X.509 v3 format was finished by
- ISO/IEC and ANSI X.9. The ASN.1 DER format is below:
-
- Certificate ::= SEQUENCE {
- tbsCertificate TBSCertificate,
- signatureAlgorithm AlgorithmIdentifier,
- signatureValue BIT STRING }
-
- These certificates are widely used in various Internet
- protocols to support authentication. It is used in
- Privacy Enhanced Mail (PEM), Transport Layer Security (TLS),
- Secure Sockets Layer (SSL), code signing for trusted software
- distribution, and Secure Electronic Transactions (SET).
-
- The certificates are managed and vouched for by
- <I>Certificate Authorities</I> (CAs). CAs are companies or
- groups that create certificates by placing the data in the
- X.509 certificate format and signing it with their private
- key. CAs serve as trusted third parties by certifying that
- the person or group specified in the certificate is who
- they say they are.
-
- The ASN.1 defintion for <I>tbsCertificate</I> is
-
- TBSCertificate ::= SEQUENCE {
- version [0] EXPLICIT Version DEFAULT v1,
- serialNumber CertificateSerialNumber,
- signature AlgorithmIdentifier,
- issuer Name,
- validity Validity,
- subject Name,
- subjectPublicKeyInfo SubjectPublicKeyInfo,
- issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
- -- If present, version shall be v2 or v3
- subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
- -- If present, version shall be v2 or v3
- extensions [3] EXPLICIT Extensions OPTIONAL
- -- If present, version shall be v3
- }
-
- Version ::= INTEGER { v1(0), v2(1), v3(2) }
-
- CertificateSerialNumber ::= INTEGER
-
- Validity ::= SEQUENCE {
- notBefore Time,
- notAfter Time }
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- UniqueIdentifier ::= BIT STRING
-
- SubjectPublicKeyInfo ::= SEQUENCE {
- algorithm AlgorithmIdentifier,
- subjectPublicKey BIT STRING }
-
- Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
-
- Extension ::= SEQUENCE {
- extnID OBJECT IDENTIFIER,
- critical BOOLEAN DEFAULT FALSE,
- extnValue OCTET STRING }
-
-
- Certificates are created with the CertificateFactory.
- For more information about X.509 certificates, consult
- rfc2459.
-
- @since JDK 1.2
-
- @author Mark Benvenuto
-*/
-public abstract class X509Certificate extends Certificate implements X509Extension
-{
-
- /**
- Constructs a new certificate of the specified type.
- */
- protected X509Certificate()
- {
- super( "X.509" );
- }
-
- /**
- Checks the validity of the X.509 certificate. It is valid
- if the current date and time are within the period specified
- by the certificate.
-
- The ASN.1 DER encoding is:
-
- validity Validity,
-
- Validity ::= SEQUENCE {
- notBefore Time,
- notAfter Time }
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- Consult rfc2459 for more information.
-
- @throws CertificateExpiredException if the certificate expired
- @throws CertificateNotYetValidException if the certificate is
- not yet valid
- */
- public abstract void checkValidity()
- throws CertificateExpiredException,
- CertificateNotYetValidException;
-
- /**
- Checks the validity of the X.509 certificate for the
- specified time and date. It is valid if the specified
- date and time are within the period specified by
- the certificate.
-
- @throws CertificateExpiredException if the certificate expired
- based on the date
- @throws CertificateNotYetValidException if the certificate is
- not yet valid based on the date
- */
- public abstract void checkValidity(Date date)
- throws CertificateExpiredException,
- CertificateNotYetValidException;
-
- /**
- Returns the version of this certificate.
-
- The ASN.1 DER encoding is:
-
- version [0] EXPLICIT Version DEFAULT v1,
-
- Version ::= INTEGER { v1(0), v2(1), v3(2) }
-
- Consult rfc2459 for more information.
-
- @return version number of certificate
- */
- public abstract int getVersion();
-
- /**
- Gets the serial number for serial Number in
- this Certifcate. It must be a unique number
- unique other serial numbers from the granting CA.
-
- The ASN.1 DER encoding is:
-
- serialNumber CertificateSerialNumber,
-
- CertificateSerialNumber ::= INTEGER
-
- Consult rfc2459 for more information.
-
- @return the serial number for this X509CRLEntry.
- */
- public abstract BigInteger getSerialNumber();
-
- /**
- Returns the issuer (issuer distinguished name) of the
- Certificate. The issuer is the entity who signed
- and issued the Certificate.
-
- The ASN.1 DER encoding is:
-
- issuer Name,
-
- Name ::= CHOICE {
- RDNSequence }
-
- RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
-
- RelativeDistinguishedName ::=
- SET OF AttributeTypeAndValue
-
- AttributeTypeAndValue ::= SEQUENCE {
- type AttributeType,
- value AttributeValue }
-
- AttributeType ::= OBJECT IDENTIFIER
-
- AttributeValue ::= ANY DEFINED BY AttributeType
-
- DirectoryString ::= CHOICE {
- teletexString TeletexString (SIZE (1..MAX)),
- printableString PrintableString (SIZE (1..MAX)),
- universalString UniversalString (SIZE (1..MAX)),
- utf8String UTF8String (SIZE (1.. MAX)),
- bmpString BMPString (SIZE (1..MAX)) }
-
- Consult rfc2459 for more information.
-
- @return the issuer in the Principal class
- */
- public abstract Principal getIssuerDN();
-
- /**
- Returns the subject (subject distinguished name) of the
- Certificate. The subject is the entity who the Certificate
- identifies.
-
- The ASN.1 DER encoding is:
-
- subject Name,
-
- Consult rfc2459 for more information.
-
- @return the issuer in the Principal class
- */
- public abstract Principal getSubjectDN();
-
- /**
- Returns the date that this certificate is not to be used
- before, <I>notBefore</I>.
-
- The ASN.1 DER encoding is:
-
- validity Validity,
-
- Validity ::= SEQUENCE {
- notBefore Time,
- notAfter Time }
-
- Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime }
-
- Consult rfc2459 for more information.
-
- @return the date <I>notBefore</I>
- */
- public abstract Date getNotBefore();
-
- /**
- Returns the date that this certificate is not to be used
- after, <I>notAfter</I>.
-
- @return the date <I>notAfter</I>
- */
- public abstract Date getNotAfter();
-
-
- /**
- Returns the <I>tbsCertificate</I> from the certificate.
-
- @return the DER encoded tbsCertificate
-
- @throws CertificateEncodingException if encoding error occured
- */
- public abstract byte[] getTBSCertificate() throws CertificateEncodingException;
-
- /**
- Returns the signature in its raw DER encoded format.
-
- The ASN.1 DER encoding is:
-
- signatureValue BIT STRING
-
- Consult rfc2459 for more information.
-
- @return byte array representing signature
- */
- public abstract byte[] getSignature();
-
- /**
- Returns the signature algorithm used to sign the CRL.
- An examples is "SHA-1/DSA".
-
- The ASN.1 DER encoding is:
-
- signatureAlgorithm AlgorithmIdentifier,
-
- AlgorithmIdentifier ::= SEQUENCE {
- algorithm OBJECT IDENTIFIER,
- parameters ANY DEFINED BY algorithm OPTIONAL }
-
- Consult rfc2459 for more information.
-
- The algorithm name is determined from the OID.
-
- @return a string with the signature algorithm name
- */
- public abstract String getSigAlgName();
-
-
- /**
- Returns the OID for the signature algorithm used.
- Example "1.2.840.10040.4.3" is return for SHA-1 with DSA.\
-
- The ASN.1 DER encoding for the example is:
-
- id-dsa-with-sha1 ID ::= {
- iso(1) member-body(2) us(840) x9-57 (10040)
- x9cm(4) 3 }
-
- Consult rfc2459 for more information.
-
- @return a string containing the OID.
- */
- public abstract String getSigAlgOID();
-
-
- /**
- Returns the AlgorithmParameters in the encoded form
- for the signature algorithm used.
-
- If access to the parameters is need, create an
- instance of AlgorithmParameters.
-
- @return byte array containing algorithm parameters, null
- if no parameters are present in certificate
- */
- public abstract byte[] getSigAlgParams();
-
-
- /**
- Returns the issuer unique ID for this certificate.
-
- The ASN.1 DER encoding is:
-
- issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
- -- If present, version shall be v2 or v3
-
- UniqueIdentifier ::= BIT STRING
-
- Consult rfc2459 for more information.
-
- @return bit representation of <I>issuerUniqueID</I>
- */
- public abstract boolean[] getIssuerUniqueID();
-
- /**
- Returns the subject unique ID for this certificate.
-
- The ASN.1 DER encoding is:
-
- subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
- -- If present, version shall be v2 or v3
-
- UniqueIdentifier ::= BIT STRING
-
- Consult rfc2459 for more information.
-
- @return bit representation of <I>subjectUniqueID</I>
- */
- public abstract boolean[] getSubjectUniqueID();
-
- /**
- Returns a boolean array representing the <I>KeyUsage</I>
- extension for the certificate. The KeyUsage (OID = 2.5.29.15)
- defines the purpose of the key in the certificate.
-
- The ASN.1 DER encoding is:
-
- id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
-
- KeyUsage ::= BIT STRING {
- digitalSignature (0),
- nonRepudiation (1),
- keyEncipherment (2),
- dataEncipherment (3),
- keyAgreement (4),
- keyCertSign (5),
- cRLSign (6),
- encipherOnly (7),
- decipherOnly (8) }
-
- Consult rfc2459 for more information.
-
- @return bit representation of <I>KeyUsage</I>
- */
- public abstract boolean[] getKeyUsage();
-
- /**
- Returns the certificate constraints path length from the
- critical BasicConstraints extension, (OID = 2.5.29.19).
-
- The basic constraints extensions is used to determine if
- the subject of the certificate is a Certificate Authority (CA)
- and how deep the certification path may exist. The
- <I>pathLenConstraint</I> only takes affect if <I>cA</I>
- is set to true. "A value of zero indicates that only an
- end-entity certificate may follow in the path." (rfc2459)
-
- The ASN.1 DER encoding is:
-
- id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
-
- BasicConstraints ::= SEQUENCE {
- cA BOOLEAN DEFAULT FALSE,
- pathLenConstraint INTEGER (0..MAX) OPTIONAL }
-
- Consult rfc2459 for more information.
-
- @return the length of the path constraint if BasicConstraints
- is present and cA is TRUE. Otherwise returns -1.
- */
- public abstract int getBasicConstraints();
-
-
-}
diff --git a/libjava/java/security/cert/X509Extension.java b/libjava/java/security/cert/X509Extension.java
deleted file mode 100644
index bba72c010aa..00000000000
--- a/libjava/java/security/cert/X509Extension.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* X509Extension.java --- X.509 Extension
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.security.cert;
-import java.util.Set;
-
-/**
- Public abstract interface for the X.509 Extension.
-
- This is used for X.509 v3 Certificates and CRL v2 (Certificate
- Revocation Lists) for managing attributes assoicated with
- Certificates, for managing the hierarchy of certificates,
- and for managing the distribution of CRL. This extension
- format is used to define private extensions.
-
- Each extensions for a certificate or CRL must be marked
- either critical or non-critical. If the certificate/CRL
- system encounters a critical extension not recognized then
- it must reject the certificate. A non-critical extension
- may be just ignored if not recognized.
-
-
- The ASN.1 definition for this class is:
-
- Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
-
- Extension ::= SEQUENCE {
- extnId OBJECT IDENTIFIER,
- critical BOOLEAN DEFAULT FALSE,
- extnValue OCTET STRING
- -- contains a DER encoding of a value
- -- of the type registered for use with
- -- the extnId object identifier value
- }
-
- @author Mark Benvenuto
-
- @since JDK 1.2
-*/
-public abstract interface X509Extension
-{
-
- /**
- Returns true if the certificate contains a critical extension
- that is not supported.
-
- @return true if has unsupported extension, false otherwise
- */
- public boolean hasUnsupportedCriticalExtension();
-
- /**
- Returns a set of the CRITICAL extension OIDs from the
- certificate/CRL that the object implementing this interface
- manages.
-
- @return A Set containing the OIDs. If there are no CRITICAL
- extensions or extensions at all this returns null.
- */
- public Set getCriticalExtensionOIDs();
-
- /**
- Returns a set of the NON-CRITICAL extension OIDs from the
- certificate/CRL that the object implementing this interface
- manages.
-
- @return A Set containing the OIDs. If there are no NON-CRITICAL
- extensions or extensions at all this returns null.
- */
- public Set getNonCriticalExtensionOIDs();
-
- /**
- Returns the DER encoded OCTET string for the specified
- extension value identified by a OID. The OID is a string
- of number seperated by periods. Ex: 12.23.45.67
- */
- public byte[] getExtensionValue(String oid);
-
-}
diff --git a/libjava/java/security/interfaces/DSAKey.java b/libjava/java/security/interfaces/DSAKey.java
deleted file mode 100644
index 3920d7b455a..00000000000
--- a/libjava/java/security/interfaces/DSAKey.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface DSAKey
-{
- public DSAParams getParams();
-}
diff --git a/libjava/java/security/interfaces/DSAParams.java b/libjava/java/security/interfaces/DSAParams.java
deleted file mode 100644
index 8483bd5cd2c..00000000000
--- a/libjava/java/security/interfaces/DSAParams.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface DSAParams
-{
- public BigInteger getP();
- public BigInteger getQ();
- public BigInteger getG();
-}
diff --git a/libjava/java/security/interfaces/DSAPrivateKey.java b/libjava/java/security/interfaces/DSAPrivateKey.java
deleted file mode 100644
index c0efe21b490..00000000000
--- a/libjava/java/security/interfaces/DSAPrivateKey.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.security.PrivateKey;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface DSAPrivateKey extends DSAKey, PrivateKey
-{
- // FIXME: need to set this at some point when serialization is implemented.
- // public static final long serialVersionUID = 0L;
-
- public BigInteger getX();
-}
diff --git a/libjava/java/security/interfaces/DSAPublicKey.java b/libjava/java/security/interfaces/DSAPublicKey.java
deleted file mode 100644
index 43eedaf1e84..00000000000
--- a/libjava/java/security/interfaces/DSAPublicKey.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.security.PublicKey;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-public interface DSAPublicKey extends DSAKey, PublicKey
-{
- // FIXME: need to set this at some point when serialization is implemented.
- // public static final long serialVersionUID = 0L;
-
- public BigInteger getY();
-}
diff --git a/libjava/java/security/interfaces/RSAPrivateCrtKey.java b/libjava/java/security/interfaces/RSAPrivateCrtKey.java
deleted file mode 100644
index cca294ab4a3..00000000000
--- a/libjava/java/security/interfaces/RSAPrivateCrtKey.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface RSAPrivateCrtKey extends RSAPrivateKey
-{
- public BigInteger getPublicExponent();
- public BigInteger getPrimeP();
- public BigInteger getPrimeQ();
- public BigInteger getPrimeExponentP();
- public BigInteger getPrimeExponentQ();
- public BigInteger getCrtCoefficient();
-}
diff --git a/libjava/java/security/interfaces/RSAPrivateKey.java b/libjava/java/security/interfaces/RSAPrivateKey.java
deleted file mode 100644
index 4c16b05e248..00000000000
--- a/libjava/java/security/interfaces/RSAPrivateKey.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.security.PrivateKey;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface RSAPrivateKey extends PrivateKey
-{
- public BigInteger getModulus();
- public BigInteger getPrivateExponent();
-}
diff --git a/libjava/java/security/interfaces/RSAPublicKey.java b/libjava/java/security/interfaces/RSAPublicKey.java
deleted file mode 100644
index 0bee88df91c..00000000000
--- a/libjava/java/security/interfaces/RSAPublicKey.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.interfaces;
-import java.security.PublicKey;
-import java.math.BigInteger;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface RSAPublicKey extends PublicKey
-{
- public BigInteger getModulus();
- public BigInteger getPublicExponent();
-}
diff --git a/libjava/java/security/spec/AlgorithmParameterSpec.java b/libjava/java/security/spec/AlgorithmParameterSpec.java
deleted file mode 100644
index 5781623b746..00000000000
--- a/libjava/java/security/spec/AlgorithmParameterSpec.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface AlgorithmParameterSpec
-{
- // This interface contains no methods or constants. Its only purpose is
- // to group (and provide type safety for) all key specifications.
-}
diff --git a/libjava/java/security/spec/InvalidKeySpecException.java b/libjava/java/security/spec/InvalidKeySpecException.java
deleted file mode 100644
index 632fd251e7a..00000000000
--- a/libjava/java/security/spec/InvalidKeySpecException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-import java.security.GeneralSecurityException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public class InvalidKeySpecException extends GeneralSecurityException
-{
- public InvalidKeySpecException()
- {
- super();
- }
-
- public InvalidKeySpecException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/spec/InvalidParameterSpecException.java b/libjava/java/security/spec/InvalidParameterSpecException.java
deleted file mode 100644
index 1e2aff5c3f6..00000000000
--- a/libjava/java/security/spec/InvalidParameterSpecException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-import java.security.GeneralSecurityException;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public class InvalidParameterSpecException extends GeneralSecurityException
-{
- public InvalidParameterSpecException()
- {
- super();
- }
-
- public InvalidParameterSpecException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/security/spec/KeySpec.java b/libjava/java/security/spec/KeySpec.java
deleted file mode 100644
index 75e50f9f656..00000000000
--- a/libjava/java/security/spec/KeySpec.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 1, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface KeySpec
-{
- // This interface contains no methods or constants. Its only purpose is
- // to group (and provide type safety for) all key specifications.
-}
diff --git a/libjava/java/security/spec/RSAPrivateCrtKeySpec.java b/libjava/java/security/spec/RSAPrivateCrtKeySpec.java
deleted file mode 100644
index 6a31163c09e..00000000000
--- a/libjava/java/security/spec/RSAPrivateCrtKeySpec.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Stubbed.
- */
-
-// JDK1.2
-public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec
-{
-}
diff --git a/libjava/java/security/spec/RSAPrivateKeySpec.java b/libjava/java/security/spec/RSAPrivateKeySpec.java
deleted file mode 100644
index 4f38a2d0ba5..00000000000
--- a/libjava/java/security/spec/RSAPrivateKeySpec.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 7, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Stubbed.
- */
-
-// JDK1.2
-public class RSAPrivateKeySpec implements KeySpec
-{
-}
diff --git a/libjava/java/security/spec/RSAPublicKeySpec.java b/libjava/java/security/spec/RSAPublicKeySpec.java
deleted file mode 100644
index 0bdcd22922e..00000000000
--- a/libjava/java/security/spec/RSAPublicKeySpec.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.security.spec;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date February 10, 2000.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Stubbed.
- */
-
-// JDK1.2
-public class RSAPublicKeySpec implements KeySpec
-{
-}
diff --git a/libjava/java/sql/CallableStatement.java b/libjava/java/sql/CallableStatement.java
deleted file mode 100644
index 75a6054ce7d..00000000000
--- a/libjava/java/sql/CallableStatement.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/* CallableStatement.java -- A statement for calling stored procedures.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.math.BigDecimal;
-import java.util.Calendar;
-
-/**
- * This interface provides a mechanism for calling stored procedures.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface CallableStatement extends PreparedStatement
-{
-
-/*************************************************************************/
-
-/**
- * This method tests whether the value of the last parameter that was fetched
- * was actually a SQL NULL value.
- *
- * @return <code>true</code> if the last parameter fetched was a NULL,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-wasNull() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>String</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>String</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getString(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>Object</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as an <code>Object</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract Object
-getObject(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>boolean</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>boolean</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-getBoolean(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>byte</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>byte</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte
-getByte(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>short</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>short</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract short
-getShort(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>int</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>int</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getInt(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>long</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>long</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract long
-getLong(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>float</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>float</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract float
-getFloat(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>double</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>double</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract double
-getDouble(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>BigDecimal</code>.
- *
- * @param index The index of the parameter to return.
- * @param scale The number of digits to the right of the decimal to return.
- *
- * @return The parameter value as a <code>BigDecimal</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract BigDecimal
-getBigDecimal(int index, int scale) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * byte array.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a byte array
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte[]
-getBytes(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>java.sql.Date</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>java.sql.Date</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Date
-getDate(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>java.sql.Time</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>java.sql.Time</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Time
-getTime(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified parameter as a Java
- * <code>java.sql.Timestamp</code>.
- *
- * @param index The index of the parameter to return.
- *
- * @return The parameter value as a <code>java.sql.Timestamp</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Timestamp
-getTimestamp(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method registers the specified parameter as an output parameter
- * of the specified SQL type.
- *
- * @param index The index of the parameter to register as output.
- * @param type The SQL type value from <code>Types</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-registerOutParameter(int index, int type) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method registers the specified parameter as an output parameter
- * of the specified SQL type and scale.
- *
- * @param index The index of the parameter to register as output.
- * @param type The SQL type value from <code>Types</code>.
- * @param scale The scale of the value that will be returned.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-registerOutParameter(int index, int type, int scale) throws SQLException;
-
-} // interface CallableStatement
-
-
diff --git a/libjava/java/sql/Connection.java b/libjava/java/sql/Connection.java
deleted file mode 100644
index bb826a67e66..00000000000
--- a/libjava/java/sql/Connection.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/* Connection.java -- Manage a database connection.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This interface provides methods for managing a connection to a database.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Connection
-{
-
-/**
- * This transaction isolation level indicates that transactions are not
- * supported.
- */
-public static final int TRANSACTION_NONE = 0;
-
-/**
- * This transaction isolation level indicates that one transaction can
- * read modifications by other transactions before the other transactions
- * have committed their changes. This could result in invalid reads.
- */
-public static final int TRANSACTION_READ_UNCOMMITTED = 1;
-
-/**
- * This transaction isolation leve indicates that only committed data from
- * other transactions will be read. If a transaction reads a row, then
- * another transaction commits a change to that row, the first transaction
- * would retrieve the changed row on subsequent reads of the same row.
- */
-public static final int TRANSACTION_READ_COMMITTED = 2;
-
-/**
- * This transaction isolation level indicates that only committed data from
- * other transactions will be read. It also ensures that data read from
- * a row will not be different on a subsequent read even if another
- * transaction commits a change.
- */
-public static final int TRANSACTION_REPEATABLE_READ = 4;
-
-/**
- * This transaction isolation level indicates that only committed data from
- * other transactions will be read. It also ensures that data read from
- * a row will not be different on a subsequent read even if another
- * transaction commits a change. Additionally, rows modified by other
- * transactions will not affect the result set returned during subsequent
- * executions of the same WHERE clause in this transaction.
- */
-public static final int TRANSACTION_SERIALIZABLE = 8;
-
-/*************************************************************************/
-
-/**
- * This method creates a new SQL statement. The default result set type
- * and concurrency will be used.
- *
- * @return A new <code>Statement</code> object.
- *
- * @exception SQLException If an error occurs.
- *
- * @see Statement
- */
-public abstract Statement
-createStatement() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method creates a new <code>PreparedStatement</code> for the specified
- * SQL string. This method is designed for use with parameterized
- * statements. The default result set type and concurrency will be used.
- *
- * @param The SQL statement to use in creating this
- * <code>PreparedStatement</code>.
- *
- * @return A new <code>PreparedStatement</code>.
- *
- * @exception SQLException If an error occurs.
- *
- * @see PreparedStatement
- */
-public abstract PreparedStatement
-prepareStatement(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method creates a new <code>CallableStatement</code> for the
- * specified SQL string. Thie method is designed to be used with
- * stored procedures. The default result set type and concurrency
- * will be used.
- *
- * @param The SQL statement to use in creating this
- * <code>CallableStatement</code>.
- *
- * @return A new <code>CallableStatement</code>.
- *
- * @exception SQLException If an error occurs.
- *
- * @see CallableStatement
- */
-public abstract CallableStatement
-prepareCall(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method converts the specified generic SQL statement into the
- * native grammer of the database this object is connected to.
- *
- * @param The JDBC generic SQL statement.
- *
- * @return The native SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-nativeSQL(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not auto commit mode is currently enabled.
- * In auto commit mode, every SQL statement is committed its own transaction.
- * Otherwise a transaction must be explicitly committed or rolled back.
- *
- * @return <code>true</code> if auto commit mode is enabled,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- *
- * @see commit
- * @see rollback
- */
-public abstract boolean
-getAutoCommit() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method turns auto commit mode on or off. In auto commit mode,
- * every SQL statement is committed its own transaction. Otherwise a
- * transaction must be explicitly committed or rolled back.
- *
- * @param autoCommit <code>true</code> to enable auto commit mode,
- * <code>false</code> to disable it.
- *
- * @exception SQLException If an error occurs.
- *
- * @see commit
- * @see rollback
- */
-public abstract void
-setAutoCommit(boolean autoCommit) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method commits any SQL statements executed on this connection since
- * the last commit or rollback.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-commit() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method rolls back any SQL statements executed on this connection
- * since the last commit or rollback.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-rollback() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method immediately closes this database connection.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-close() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this connection has been closed.
- *
- * @return <code>true</code> if the connection is closed, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isClosed() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the meta data for this database connection.
- *
- * @return The meta data for this database.
- *
- * @exception SQLException If an error occurs.
- *
- * @see DatabaseMetaData
- */
-public abstract DatabaseMetaData
-getMetaData() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this connection is in read only mode.
- *
- * @return <code>true</code> if the connection is read only <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isReadOnly() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method turns read only mode on or off. It may not be called while
- * a transaction is in progress.
- *
- * @param readOnly <code>true</code> if this connection is read only,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setReadOnly(boolean readOnly) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the catalog in use by this connection,
- * if any.
- *
- * @return The name of the catalog, or <code>null</code> if one does not
- * exist or catalogs are not supported by this database.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getCatalog() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the name of the catalog in use by this connection.
- * Note that this method does nothing if catalogs are not supported by
- * this database.
- *
- * @param catalog The name of the catalog to use for this connection.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setCatalog(String catalog) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the current transaction isolation mode. This will
- * be one of the constants defined in this interface.
- *
- * @return The transaction isolation level.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getTransactionIsolation() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the transaction isolation level using one of the
- * constants defined in this interface.
- *
- * @param level The transaction isolation level to change to; must be
- * one of the TRANSACTION_* isolation values with the exception of
- * TRANSACTION_NONE; some databases may not support other values.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setTransactionIsolation(int level) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the first warning that occurred on this connection,
- * if any. If there were any subsequence warnings, they will be chained
- * to the first one.
- *
- * @return The first <code>SQLWarning</code> that occurred, or
- * <code>null</code> if there have been no warnings.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract SQLWarning
-getWarnings() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method clears all warnings that have occurred on this connection.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-clearWarnings() throws SQLException;
-
-} // interface Connection
-
diff --git a/libjava/java/sql/DataTruncation.java b/libjava/java/sql/DataTruncation.java
deleted file mode 100644
index bb9ada602a4..00000000000
--- a/libjava/java/sql/DataTruncation.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* DataTruncation.java -- Warning when data has been truncated.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This exception is thrown when a piece of data is unexpectedly
- * truncated in JDBC.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class DataTruncation extends SQLWarning implements java.io.Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * The original size of the data.
- * @serialized
- */
-private int dataSize;
-
-/**
- * The index of the parameter or column whose value was truncated.
- * @serialized
- */
-private int index;
-
-/**
- * Indicates whether or not a parameter value was truncated.
- * @serialized
- */
-private boolean parameter;
-
-/**
- * Indicates whether or not a data column value was truncated.
- * @serialized
- */
-private boolean read;
-
-/**
- * This is the size of the data after truncation.
- * @serialized
- */
-private int transferSize;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>DataTruncation</code>
- * with the specified values. The descriptive error message for this
- * exception will be "Data truncation", the SQL state will be "01004"
- * and the vendor specific error code will be set to 0.
- *
- * @param index The index of the parameter or column that was truncated.
- * @param parameter <code>true</code> if a parameter was truncated,
- * <code>false</code> otherwise.
- * @param read <code>true</code> if a data column was truncated,
- * <code>false</code> otherwise.
- * @param dataSize The original size of the data.
- * @param transferSize The size of the data after truncation.
- */
-public
-DataTruncation(int index, boolean parameter, boolean read, int dataSize,
- int transferSize)
-{
- super("Data truncation", "01004");
-
- this.index = index;
- this.parameter = parameter;
- this.read = read;
- this.dataSize = dataSize;
- this.transferSize = transferSize;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns the index of the column or parameter that was
- * truncated.
- *
- * @return The index of the column or parameter that was truncated.
- */
-public int
-getIndex()
-{
- return(index);
-}
-
-/*************************************************************************/
-
-/**
- * This method determines whether or not it was a parameter that was
- * truncated.
- *
- * @return <code>true</code> if a parameter was truncated, <code>false</code>
- * otherwise.
- */
-public boolean
-getParameter()
-{
- return(parameter);
-}
-
-/*************************************************************************/
-
-/**
- * This method determines whether or not it was a column that was
- * truncated.
- *
- * @return <code>true</code> if a column was truncated, <code>false</code>
- * otherwise.
- */
-public boolean
-getRead()
-{
- return(read);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the original size of the parameter or column that
- * was truncated.
- *
- * @return The original size of the parameter or column that was truncated.
- */
-public int
-getDataSize()
-{
- return(dataSize);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the size of the parameter or column after it was
- * truncated.
- *
- * @return The size of the parameter or column after it was truncated.
- */
-public int
-getTransferSize()
-{
- return(transferSize);
-}
-
-} // class DataTruncation
-
diff --git a/libjava/java/sql/DatabaseMetaData.java b/libjava/java/sql/DatabaseMetaData.java
deleted file mode 100644
index d0f4e1a60c3..00000000000
--- a/libjava/java/sql/DatabaseMetaData.java
+++ /dev/null
@@ -1,2460 +0,0 @@
-/* DatabaseMetaData.java -- Information about the database itself.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This interface provides a mechanism for obtaining information about
- * the database itself, as opposed to data in it.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface DatabaseMetaData
-{
-
-/**
- * The best row may or may not be a pseudo-column.
- */
-public static final int bestRowUnknown = 0;
-
-/**
- * The best row identifier is not a pseudo-column.
- */
-public static final int bestRowNotPseudo = 1;
-
-/**
- * The best row identifer is a pseudo-column.
- */
-public static final int bestRowPseudo = 2;
-
-/**
- * The best row's scope is only guaranteed to be valid so long as the
- * row is actually being used.
- */
-public static final int bestRowTemporary = 0;
-
-/**
- * The best row identifer is valid to the end of the transaction.
- */
-public static final int bestRowTransaction = 1;
-
-/**
- * The best row identifer is valid to the end of the session.
- */
-public static final int bestRowSession = 2;
-
-/**
- * It is unknown whether or not the procedure returns a result.
- */
-public static final int procedureResultUnknown = 0;
-
-/**
- * The procedure does not return a result.
- */
-public static final int procedureNoResult = 1;
-
-/**
- * The procedure returns a result.
- */
-public static final int procedureReturnsResult = 2;
-
-/**
- * The column type is unknown.
- */
-public static final int procedureColumnUnknown = 0;
-
-/**
- * The column type is input.
- */
-public static final int procedureColumnIn = 1;
-
-/**
- * The column type is input/output.
- */
-public static final int procedureColumnInOut = 2;
-
-/**
- * The column type is output
- */
-public static final int procedureColumnOut = 4;
-
-/**
- * The column is used for return values.
- */
-public static final int procedureColumnReturn = 5;
-
-/**
- * The column is used for storing results
- */
-public static final int procedureColumnResult = 3;
-
-/**
- * NULL values are not allowed.
- */
-public static final int procedureNoNulls = 0;
-
-/**
- * NULL values are allowed.
- */
-public static final int procedureNullable = 1;
-
-/**
- * It is unknown whether or not NULL values are allowed.
- */
-public static final int procedureNullableUnknown = 2;
-
-/**
- * The column does not allow NULL
- */
-public static final int columnNoNulls = 0;
-
-/**
- * The column does allow NULL
- */
-public static final int columnNullable = 1;
-
-/**
- * It is unknown whether or not the column allows NULL
- */
-public static final int columnNullableUnknown = 2;
-
-/**
- * It is unknown whether or not the version column is a pseudo-column.
- */
-public static final int versionColumnUnknown = 0;
-
-/**
- * The version column is not a pseudo-column
- */
-public static final int versionColumnNotPseudo = 1;
-
-/**
- * The version column is a pseudo-column
- */
-public static final int versionColumnPseudo = 2;
-
-/**
- * Foreign key changes are cascaded in updates or deletes.
- */
-public static final int importedKeyCascade = 0;
-
-/**
- * Column may not be updated or deleted in use as a foreign key.
- */
-public static final int importedKeyRestrict = 1;
-
-/**
- * When primary key is updated or deleted, the foreign key is set to NULL.
- */
-public static final int importedKeySetNull = 2;
-
-/**
- * If the primary key is a foreign key, it cannot be udpated or deleted.
- */
-public static final int importedKeyNoAction = 3;
-
-/**
- * If the primary key is updated or deleted, the foreign key is set to
- * a default value.
- */
-public static final int importedKeySetDefault = 4;
-
-/**
- * Wish I knew what this meant.
- */
-public static final int importedKeyInitiallyDeferred = 5;
-
-/**
- * Wish I knew what this meant.
- */
-public static final int importedKeyInitiallyImmediate = 6;
-
-/**
- * Wish I knew what this meant.
- */
-public static final int importedKeyNotDeferrable = 7;
-
-/**
- * A NULL value is not allowed for this data type.
- */
-public static final int typeNoNulls = 0;
-
-/**
- * A NULL value is allowed for this data type.
- */
-public static final int typeNullable = 1;
-
-/**
- * It is unknown whether or not NULL values are allowed for this data type.
- */
-public static final int typeNullableUnknown = 2;
-
-/**
- * Where clauses are not supported for this type.
- */
-public static final int typePredNone = 0;
-
-/**
- * Only "WHERE..LIKE" style WHERE clauses are allowed on this data type.
- */
-public static final int typePredChar = 1;
-
-/**
- * All WHERE clauses except "WHERE..LIKE" style are allowed on this data type.
- */
-public static final int typePredBasic = 2;
-
-/**
- * Any type of WHERE clause is allowed for this data type.
- */
-public static final int typeSearchable = 3;
-
-/**
- * This column contains table statistics.
- */
-public static final short tableIndexStatistic = 0;
-
-/**
- * This table index is clustered.
- */
-public static final short tableIndexClustered = 1;
-
-/**
- * This table index is hashed.
- */
-public static final short tableIndexHashed = 2;
-
-/**
- * This table index is of another type.
- */
-public static final short tableIndexOther = 3;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not all the procedures returned by
- * the <code>getProcedures</code> method can be called by this user.
- *
- * @return <code>true</code> if all the procedures can be called,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-allProceduresAreCallable() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not all the table returned by the
- * <code>getTables</code> method can be selected by this user.
- *
- * @return <code>true</code> if all the procedures can be called,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-allTablesAreSelectable() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the URL for this database.
- *
- * @return The URL string for this database, or <code>null</code> if it
- * is not known.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getURL() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the database username for this connection.
- *
- * @return The database username.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getUserName() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database is in read only mode.
- *
- * @return <code>true</code> if the database is in read only mode,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isReadOnly() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not NULL's sort as high values.
- *
- * @return <code>true</code> if NULL's sort as high values, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-nullsAreSortedHigh() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not NULL's sort as low values.
- *
- * @return <code>true</code> if NULL's sort as low values, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-nullsAreSortedLow() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method test whether or not NULL's are sorted to the beginning
- * of the list regardless of ascending or descending sort order.
- *
- * @return <code>true</code> if NULL's always sort to the beginning,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-nullsAreSortedAtStart() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method test whether or not NULL's are sorted to the end
- * of the list regardless of ascending or descending sort order.
- *
- * @return <code>true</code> if NULL's always sort to the end,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-nullsAreSortedAtEnd() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the database product.
- *
- * @return The database product.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getDatabaseProductName() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the version of the database product.
- *
- * @return The version of the database product.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getDatabaseProductVersion() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the JDBC driver.
- *
- * @return The name of the JDBC driver.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getDriverName() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the version of the JDBC driver.
- *
- * @return The version of the JDBC driver.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getDriverVersion() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the major version number of the JDBC driver.
- *
- * @return The major version number of the JDBC driver.
- */
-public abstract int
-getDriverMajorVersion();
-
-/*************************************************************************/
-
-/**
- * This method returns the minor version number of the JDBC driver.
- *
- * @return The minor version number of the JDBC driver.
- */
-public abstract int
-getDriverMinorVersion();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database uses local files to
- * store tables.
- *
- * @return <code>true</code> if the database uses local files,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-usesLocalFiles() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database uses a separate file for
- * each table.
- *
- * @return <code>true</code> if the database uses a separate file for each
- * table </code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-usesLocalFilePerTable() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports identifiers
- * with mixed case.
- *
- * @return <code>true</code> if the database supports mixed case identifiers,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsMixedCaseIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database treats mixed case
- * identifiers as all upper case.
- *
- * @exception <code>true</code> if the database treats all identifiers as
- * upper case, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesUpperCaseIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database treats mixed case
- * identifiers as all lower case.
- *
- * @exception <code>true</code> if the database treats all identifiers as
- * lower case, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesLowerCaseIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database stores mixed case
- * identifers even if it treats them as case insensitive.
- *
- * @return <code>true</code> if the database stores mixed case identifiers,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesMixedCaseIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports quoted identifiers
- * with mixed case.
- *
- * @return <code>true</code> if the database supports mixed case quoted
- * identifiers, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsMixedCaseQuotedIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database treats mixed case
- * quoted identifiers as all upper case.
- *
- * @exception <code>true</code> if the database treats all quoted identifiers
- * as upper case, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesUpperCaseQuotedIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database treats mixed case
- * quoted identifiers as all lower case.
- *
- * @exception <code>true</code> if the database treats all quoted identifiers
- * as lower case, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesLowerCaseQuotedIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database stores mixed case
- * quoted identifers even if it treats them as case insensitive.
- *
- * @return <code>true</code> if the database stores mixed case quoted
- * identifiers, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-storesMixedCaseQuotedIdentifiers() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This metohd returns the quote string for SQL identifiers.
- *
- * @return The quote string for SQL identifers, or a space if quoting
- * is not supported.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getIdentifierQuoteString() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a comma separated list of all the SQL keywords in
- * the database that are not in SQL92.
- *
- * @return The list of SQL keywords not in SQL92.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getSQLKeywords() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a comma separated list of math functions.
- *
- * @return The list of math functions.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getNumericFunctions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a comma separated list of string functions.
- *
- * @return The list of string functions.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getStringFunctions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a comma separated list of of system functions.
- *
- * @return A comma separated list of system functions.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getSystemFunctions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns comma separated list of time/date functions.
- *
- * @return The list of time/date functions.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getTimeDateFunctions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the string used to escape wildcards in search strings.
- *
- * @return The string used to escape wildcards in search strings.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getSearchStringEscape() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This methods returns non-standard characters that can appear in
- * unquoted identifiers.
- *
- * @return Non-standard characters that can appear in unquoted identifiers.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getExtraNameCharacters() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports
- * "ALTER TABLE ADD COLUMN"
- *
- * @return <code>true</code> if column add supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsAlterTableWithAddColumn() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports
- * "ALTER TABLE DROP COLUMN"
- *
- * @return <code>true</code> if column drop supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsAlterTableWithDropColumn() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not column aliasing is supported.
- *
- * @return <code>true</code> if column aliasing is supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsColumnAliasing() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether the concatenation of a NULL and non-NULL
- * value results in a NULL. This will always be true in fully JDBC compliant
- * drivers.
- *
- * @return <code>true</code> if concatenating NULL and a non-NULL value
- * returns a NULL, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-nullPlusNonNullIsNull() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * Tests whether or not CONVERT is supported.
- *
- * @return <code>true</code> if CONVERT is supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsConvert() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not CONVERT can be performed between the
- * specified types. The types are contants from <code>Types</code>.
- *
- * @param fromType The SQL type to convert from.
- * @param toType The SQL type to convert to.
- *
- * @return <code>true</code> if the conversion can be performed,
- * <code>false</code> otherwise.
- *
- * @see Types
- */
-public abstract boolean
-supportsConvert(int fromType, int toType) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not table correlation names are
- * supported. This will be always be <code>true</code> in a fully JDBC
- * compliant driver.
- *
- * @return <code>true</code> if table correlation names are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsTableCorrelationNames() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether correlation names must be different from the
- * name of the table.
- *
- * @return <code>true</code> if the correlation name must be different from
- * the table name, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsDifferentTableCorrelationNames() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not expressions are allowed in an
- * ORDER BY lists.
- *
- * @return <code>true</code> if expressions are allowed in ORDER BY
- * lists, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsExpressionsInOrderBy() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or ORDER BY on a non-selected column is
- * allowed.
- *
- * @return <code>true</code> if a non-selected column can be used in an
- * ORDER BY, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOrderByUnrelated() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not GROUP BY is supported.
- *
- * @return <code>true</code> if GROUP BY is supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsGroupBy() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether GROUP BY on a non-selected column is
- * allowed.
- *
- * @return <code>true</code> if a non-selected column can be used in a
- * GROUP BY, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsGroupByUnrelated() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not a GROUP BY can add columns not in the
- * select if it includes all the columns in the select.
- *
- * @return <code>true</code> if GROUP BY an add columns provided it includes
- * all columns in the select, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsGroupByBeyondSelect() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the escape character is supported in
- * LIKE expressions. A fully JDBC compliant driver will always return
- * <code>true</code>.
- *
- * @return <code>true</code> if escapes are supported in LIKE expressions,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean supportsLikeEscapeClause() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether multiple result sets for a single statement are
- * supported.
- *
- * @return <code>true</code> if multiple result sets are supported for a
- * single statement, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsMultipleResultSets() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method test whether or not multiple transactions may be open
- * at once, as long as they are on different connections.
- *
- * @return <code>true</code> if multiple transactions on different
- * connections are supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsMultipleTransactions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not columns can be defined as NOT NULL. A
- * fully JDBC compliant driver always returns <code>true</code>.
- *
- * @return <code>true</code> if NOT NULL columns are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsNonNullableColumns() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the minimum grammer for ODBC is supported.
- * A fully JDBC compliant driver will always return <code>true</code>.
- *
- * @return <code>true</code> if the ODBC minimum grammar is supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsMinimumSQLGrammar() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the core grammer for ODBC is supported.
- *
- * @return <code>true</code> if the ODBC core grammar is supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCoreSQLGrammar() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the extended grammer for ODBC is supported.
- *
- * @return <code>true</code> if the ODBC extended grammar is supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsExtendedSQLGrammar() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the ANSI92 entry level SQL
- * grammar is supported. A fully JDBC compliant drivers must return
- * <code>true</code>.
- *
- * @return <code>true</code> if the ANSI92 entry level SQL grammar is
- * supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsANSI92EntryLevelSQL() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the ANSI92 intermediate SQL
- * grammar is supported.
- *
- * @return <code>true</code> if the ANSI92 intermediate SQL grammar is
- * supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsANSI92IntermediateSQL() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the ANSI92 full SQL
- * grammar is supported.
- *
- * @return <code>true</code> if the ANSI92 full SQL grammar is
- * supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsANSI92FullSQL() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the SQL integrity enhancement
- * facility is supported.
- *
- * @return <code>true</code> if the integrity enhancement facility is
- * supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsIntegrityEnhancementFacility() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports outer joins.
- *
- * @return <code>true</code> if outer joins are supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOuterJoins() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports full outer joins.
- *
- * @return <code>true</code> if full outer joins are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsFullOuterJoins() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports limited outer joins.
- *
- * @return <code>true</code> if limited outer joins are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsLimitedOuterJoins() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the vendor's term for "schema".
- *
- * @return The vendor's term for schema.
- *
- * @exception SQLException if an error occurs.
- */
-public abstract String
-getSchemaTerm() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the vendor's term for "procedure".
- *
- * @return The vendor's term for procedure.
- *
- * @exception SQLException if an error occurs.
- */
-public abstract String
-getProcedureTerm() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the vendor's term for "catalog".
- *
- * @return The vendor's term for catalog.
- *
- * @exception SQLException if an error occurs.
- */
-public abstract String
-getCatalogTerm() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name appears at the beginning of
- * a fully qualified table name.
- *
- * @return <code>true</code> if the catalog name appears at the beginning,
- * <code>false</code> if it appears at the end.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isCatalogAtStart() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the separator between the catalog name and the
- * table name.
- *
- * @return The separator between the catalog name and the table name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getCatalogSeparator() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a data
- * manipulation statement.
- *
- * @return <code>true</code> if a catalog name can appear in a data
- * manipulation statement, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSchemasInDataManipulation() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a procedure
- * call
- *
- * @return <code>true</code> if a catalog name can appear in a procedure
- * call, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSchemasInProcedureCalls() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a table definition.
- *
- * @return <code>true</code> if a catalog name can appear in a table
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSchemasInTableDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in an index definition.
- *
- * @return <code>true</code> if a catalog name can appear in an index
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSchemasInIndexDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in privilege definitions.
- *
- * @return <code>true</code> if a catalog name can appear in privilege
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSchemasInPrivilegeDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a data
- * manipulation statement.
- *
- * @return <code>true</code> if a catalog name can appear in a data
- * manipulation statement, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCatalogsInDataManipulation() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a procedure
- * call
- *
- * @return <code>true</code> if a catalog name can appear in a procedure
- * call, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCatalogsInProcedureCalls() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in a table definition.
- *
- * @return <code>true</code> if a catalog name can appear in a table
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCatalogsInTableDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in an index definition.
- *
- * @return <code>true</code> if a catalog name can appear in an index
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCatalogsInIndexDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether a catalog name can appear in privilege definitions.
- *
- * @return <code>true</code> if a catalog name can appear in privilege
- * definition, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCatalogsInPrivilegeDefinitions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not that database supports positioned
- * deletes.
- *
- * @return <code>true</code> if positioned deletes are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsPositionedDelete() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not that database supports positioned
- * updates.
- *
- * @return <code>true</code> if positioned updates are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsPositionedUpdate() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not SELECT FOR UPDATE is supported by the
- * database.
- *
- * @return <code>true</code> if SELECT FOR UPDATE is supported
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSelectForUpdate() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not stored procedures are supported on
- * this database.
- *
- * @return <code>true</code> if stored procedures are supported,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsStoredProcedures() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not subqueries are allowed in comparisons.
- * A fully JDBC compliant driver will always return <code>true</code>.
- *
- * @return <code>true</code> if subqueries are allowed in comparisons,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSubqueriesInComparisons() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not subqueries are allowed in exists
- * expressions. A fully JDBC compliant driver will always return
- * <code>true</code>.
- *
- * @return <code>true</code> if subqueries are allowed in exists
- * expressions, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSubqueriesInExists() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether subqueries are allowed in IN statements.
- * A fully JDBC compliant driver will always return <code>true</code>.
- *
- * @return <code>true</code> if the driver supports subqueries in IN
- * statements, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSubqueriesInIns() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not subqueries are allowed in quantified
- * expressions. A fully JDBC compliant driver will always return
- * <code>true</code>.
- *
- * @return <code>true</code> if subqueries are allowed in quantified
- * expressions, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsSubqueriesInQuantifieds() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method test whether or not correlated subqueries are allowed. A
- * fully JDBC compliant driver will always return <code>true</code>.
- *
- * @return <code>true</code> if correlated subqueries are allowed,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsCorrelatedSubqueries() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the UNION statement is supported.
- *
- * @return <code>true</code> if UNION is supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsUnion() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the UNION ALL statement is supported.
- *
- * @return <code>true</code> if UNION ALL is supported, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsUnionAll() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports cursors
- * remaining open across commits.
- *
- * @return <code>true</code> if cursors can remain open across commits,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOpenCursorsAcrossCommit() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports cursors
- * remaining open across rollbacks.
- *
- * @return <code>true</code> if cursors can remain open across rollbacks,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOpenCursorsAcrossRollback() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports statements
- * remaining open across commits.
- *
- * @return <code>true</code> if statements can remain open across commits,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOpenStatementsAcrossCommit() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports statements
- * remaining open across rollbacks.
- *
- * @return <code>true</code> if statements can remain open across rollbacks,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsOpenStatementsAcrossRollback() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the number of hex characters allowed in an inline
- * binary literal.
- *
- * @return The number of hex characters allowed in a binary literal, 0 meaning
- * either an unknown or unlimited number.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxBinaryLiteralLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a character literal.
- *
- * @return The maximum length of a character literal.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxCharLiteralLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a column name.
- *
- * @return The maximum length of a column name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of columns in a GROUP BY statement.
- *
- * @return The maximum number of columns in a GROUP BY statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnsInGroupBy() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of columns in an index.
- *
- * @return The maximum number of columns in an index.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnsInIndex() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of columns in an ORDER BY statement.
- *
- * @return The maximum number of columns in an ORDER BY statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnsInOrderBy() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of columns in a SELECT statement.
- *
- * @return The maximum number of columns in a SELECT statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnsInSelect() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of columns in a table.
- *
- * @return The maximum number of columns in a table.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxColumnsInTable() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of connections this client
- * can have to the database.
- *
- * @return The maximum number of database connections.
- *
- * @SQLException If an error occurs.
- */
-public abstract int
-getMaxConnections() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a cursor name.
- *
- * @return The maximum length of a cursor name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxCursorNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of an index.
- *
- * @return The maximum length of an index.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxIndexLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a schema name.
- *
- * @return The maximum length of a schema name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxSchemaNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a procedure name.
- *
- * @return The maximum length of a procedure name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxProcedureNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a catalog name.
- *
- * @return The maximum length of a catalog name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxCatalogNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum size of a row in bytes.
- *
- * @return The maximum size of a row.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxRowSize() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the maximum row size includes BLOB's
- *
- * @return <code>true</code> if the maximum row size includes BLOB's,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-doesMaxRowSizeIncludeBlobs() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method includes the maximum length of a SQL statement.
- *
- * @return The maximum length of a SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxStatementLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of statements that can be
- * active at any time.
- *
- * @return The maximum number of statements that can be active at any time.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxStatements() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a table name.
- *
- * @return The maximum length of a table name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxTableNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of tables that may be referenced
- * in a SELECT statement.
- *
- * @return The maximum number of tables allowed in a SELECT statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxTablesInSelect() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of a user name.
- *
- * @return The maximum length of a user name.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxUserNameLength() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the default transaction isolation level of the
- * database.
- *
- * @return The default transaction isolation level of the database.
- *
- * @exception SQLException If an error occurs.
- *
- * @see Connection
- */
-public abstract int
-getDefaultTransactionIsolation() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports transactions.
- *
- * @return <code>true</code> if the database supports transactions,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsTransactions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the database supports the specified
- * transaction isolation level.
- *
- * @param level The transaction isolation level.
- *
- * @return <code>true</code> if the specified transaction isolation level
- * is supported, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsTransactionIsolationLevel(int level) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not DDL and DML statements allowed within
- * the same transaction.
- *
- * @return <code>true</code> if DDL and DML statements are allowed in the
- * same transaction, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsDataDefinitionAndDataManipulationTransactions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not only DML statement are allowed
- * inside a transaction.
- *
- * @return <code>true</code> if only DML statements are allowed in
- * transactions, <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-supportsDataManipulationTransactionsOnly() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not a DDL statement will cause the
- * current transaction to be automatically committed.
- *
- * @return <code>true</code> if DDL causes an immediate transaction commit,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-dataDefinitionCausesTransactionCommit() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not DDL statements are ignored in
- * transactions.
- *
- * @return <code>true</code> if DDL statements are ignored in transactions,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-dataDefinitionIgnoredInTransactions() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of all the stored procedures matching the
- * specified pattern in the given schema and catalog. This is returned
- * a <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>PROCEDURE_CAT - The catalog the procedure is in, which may be
- * <code>null</code>.
- * <li>PROCEDURE_SCHEM - The schema the procedures is in, which may be
- * <code>null</code>.
- * <li>PROCEDURE_NAME - The name of the procedure.
- * <li>Unused
- * <li>Unused
- * <li>Unused
- * <li>REMARKS - A description of the procedure
- * <li>PROCEDURE_TYPE - Indicates the return type of the procedure, which
- * is one of the contstants defined in this class
- * (<code>procedureResultUnknown</code>, <code>procedureNoResult</code>, or
- * <code>procedureReturnsResult</code>).
- * </ol>
- *
- * @param catalog The name of the catalog to return stored procedured from,
- * or "" to return procedures from all catalogs.
- * @param schemaPattern A schema pattern for the schemas to return stored
- * procedures from, or "" to return procedures from all schemas.
- * @param namePattern The pattern of procedures names to return.
- *
- * @returns A <code>ResultSet</code> with all the requested procedures.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getProcedures(String catalog, String schemaPattern, String namePattern)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the parameter and result columns for
- * the requested stored procedures. This is returned in the form of a
- * <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>PROCEDURE_CAT - The catalog the procedure is in, which may be
- * <code>null</code>.
- * <li>PROCEDURE_SCHEM - The schema the procedures is in, which may be
- * <code>null</code>.
- * <li>PROCEDURE_NAME - The name of the procedure.
- * <li>COLUMN_NAME - The name of the column
- * <li>COLUMN_TYPE - The type of the column, which will be one of the
- * contants defined in this class (<code>procedureColumnUnknown</code>,
- * <code>procedureColumnIn</code>, <code>procedureColumnInOut</code>,
- * <code>procedureColumnOut</code>, <code>procedureColumnReturn</code>,
- * or <code>procedureColumnResult</code>).
- * <li>DATA_TYPE - The SQL type of the column. This is one of the constants
- * defined in <code>Types</code>.
- * <li>TYPE_NAME - The string name of the data type for this column.
- * <li>PRECISION - The precision of the column.
- * <li>LENGTH - The length of the column in bytes
- * <li>SCALE - The scale of the column.
- * <li>RADIX - The radix of the column.
- * <li>NULLABLE - Whether or not the column is NULLABLE. This is one of
- * the constants defined in this class (<code>procedureNoNulls</code>,
- * <code>procedureNullable</code>, or <code>procedureNullableUnknown</code>)
- * <li>REMARKS - A description of the column.
- * </ol>
- *
- * @param catalog The name of the catalog to return stored procedured from,
- * or "" to return procedures from all catalogs.
- * @param schemaPattern A schema pattern for the schemas to return stored
- * procedures from, or "" to return procedures from all schemas.
- * @param namePattern The pattern of procedures names to return.
- * @param columnPattern The pattern of column names to return.
- *
- * @returns A <code>ResultSet</code> with all the requested procedures.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getProcedureColumns(String catalog, String schemaPattern, String namePattern,
- String columnPattern) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the requested table as a
- * <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog the table is in, which may be <code>null</code>.
- * <li>TABLE_SCHEM - The schema the table is in, which may be <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>TABLE_TYPE - A string describing the table type. This will be one
- * of the values returned by the <code>getTableTypes()</code> method.
- * <li>REMARKS - Comments about the table.
- * </ol>
- *
- * @param catalog The name of the catalog to return tables from,
- * or "" to return tables from all catalogs.
- * @param schemaPattern A schema pattern for the schemas to return tables
- * from, or "" to return tables from all schemas.
- * @param namePattern The pattern of table names to return.
- * @param types The list of table types to include; null returns all types.
- *
- * @returns A <code>ResultSet</code> with all the requested tables.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getTables(String catalog, String schemaPattern, String namePattern,
- String types[]) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the list of database schemas as a
- * <code>ResultSet</code>, with one column - TABLE_SCHEM - that is the
- * name of the schema.
- *
- * @return A <code>ResultSet</code> with all the requested schemas.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getSchemas() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the list of database catalogs as a
- * <code>ResultSet</code> with one column - TABLE_CAT - that is the
- * name of the catalog.
- *
- * @return A <code>ResultSet</code> with all the requested catalogs.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getCatalogs() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the list of database table types as a
- * <code>ResultSet</code> with one column - TABLE_TYPE - that is the
- * name of the table type.
- *
- * @return A <code>ResultSet</code> with all the requested table types.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getTableTypes() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the tables columns for
- * the requested tables. This is returned in the form of a
- * <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog the table is in, which may be
- * <code>null</code>.
- * <li>TABLE_SCHEM - The schema the tables is in, which may be
- * <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>COLUMN_NAME - The name of the column
- * <li>DATA_TYPE - The SQL type of the column. This is one of the constants
- * defined in <code>Types</code>.
- * <li>TYPE_NAME - The string name of the data type for this column.
- * <li>COLUMN_SIZE - The size of the column.
- * <li>Unused
- * <li>NUM_PREC_RADIX - The radix of the column.
- * <li>NULLABLE - Whether or not the column is NULLABLE. This is one of
- * the constants defined in this class (<code>tableNoNulls</code>,
- * <code>tableNullable</code>, or <code>tableNullableUnknown</code>)
- * <li>REMARKS - A description of the column.
- * <li>COLUMN_DEF - The default value for the column, may be <code>null</code>.
- * <li>SQL_DATA_TYPE - Unused
- * <li>SQL_DATETIME_SUB - Unused
- * <li>CHAR_OCTET_LENGTH - For character columns, the maximum number of bytes
- * in the column.
- * <li>ORDINAL_POSITION - The index of the column in the table.
- * <li>IS_NULLABLE - "NO" means no, "YES" means maybe, and an empty string
- * means unknown.
- * </ol>
- *
- * @param catalog The name of the catalog to return table from,
- * or "" to return tables from all catalogs.
- * @param schemaPattern A schema pattern for the schemas to return
- * tables from, or "" to return tables from all schemas.
- * @param namePattern The pattern of tables names to return.
- * @param columnPattern The pattern of column names to return.
- *
- * @returns A <code>ResultSet</code> with all the requested tables.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getColumns(String catalog, String schemaPattern, String namePattern,
- String columnPattern) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the access rights that have been granted to the
- * requested columns. This information is returned as a <code>ResultSet</code>
- * with the following columns:
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog the table is in, which may be
- * <code>null</code>.
- * <li>TABLE_SCHEM - The schema the tables is in, which may be
- * <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>COLUMN_NAME - The name of the column.
- * <li>GRANTOR - The entity that granted the access.
- * <li>GRANTEE - The entity granted the access.
- * <li>PRIVILEGE - The name of the privilege granted.
- * <li>IS_GRANTABLE - "YES" if the grantee can grant the privilege to
- * others, "NO" if not, and <code>null</code> if unknown.
- * </ol>
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- * @param columnPattern A pattern of column names to return information for.
- *
- * @return A <code>ResultSet</code> with all the requested privileges.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getColumnPrivileges(String catalog, String schema, String table,
- String columnPattern) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the access rights that have been granted to the
- * requested tables. This information is returned as a <code>ResultSet</code>
- * with the following columns:
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog the table is in, which may be
- * <code>null</code>.
- * <li>TABLE_SCHEM - The schema the tables is in, which may be
- * <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>GRANTOR - The entity that granted the access.
- * <li>GRANTEE - The entity granted the access.
- * <li>PRIVILEGE - The name of the privilege granted.
- * <li>IS_GRANTABLE - "YES" if the grantee can grant the privilege to
- * others, "NO" if not, and <code>null</code> if unknown.
- * </ol>
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param tablePattern The table name pattern of tables to return
- * information for.
- *
- * @return A <code>ResultSet</code> with all the requested privileges.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getTablePrivileges(String catalog, String schema, String table)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the best set of columns for uniquely identifying
- * a row. It returns this information as a <code>ResultSet</code> with
- * the following columns:
- * <p>
- * <ol>
- * <li>SCOPE - The scope of the results returned. This is one of the
- * constants defined in this class (<code>bestRowTemporary</code>,
- * <code>bestRowTransaction</code>, or <code>bestRowSession</code).
- * <li>COLUMN_NAME - The name of the column.
- * <li>DATA_TYPE - The SQL type of the column. This is one of the constants
- * defined in <code>Types</code>.
- * <li>TYPE_NAME - The string name of the data type for this column.
- * <li>COLUMN_SIZE - The precision of the columns
- * <li>BUFFER_LENGTH - Unused
- * <li>DECIMAL_DIGITS - The scale of the column.
- * <li>PSEUDO_COLUMN - Whether or not the best row identifier is a
- * pseudo_column. This is one of the constants defined in this class
- * (<code>bestRowUnknown</code>, <code>bestRowNotPseudo</code>, or
- * <code>bestRowPseudo</code>).
- * </ol>
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- * @param columnPattern A pattern of column names to return information for.
- * @param scope One of the best row id scope constants from this class.
- * @param nullable <code>true</code> to include columns that are nullable,
- * <code>false</code> otherwise.
- *
- * @return A <code>ResultSet</code> with the best row identifier.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getBestRowIdentifier(String catalog, String schema, String table,
- int scope, boolean nullable) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the set of columns that are automatically updated
- * when the row is update. It returns this information as a
- * <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>SCOPE - Unused
- * <li>COLUMN_NAME - The name of the column.
- * <li>DATA_TYPE - The SQL type of the column. This is one of the constants
- * defined in <code>Types</code>.
- * <li>TYPE_NAME - The string name of the data type for this column.
- * <li>COLUMN_SIZE - The precision of the columns
- * <li>BUFFER_LENGTH - Unused
- * <li>DECIMAL_DIGITS - The scale of the column.
- * <li>PSEUDO_COLUMN - Whether or not the best row identifier is a
- * pseudo_column. This is one of the constants defined in this class
- * (<code>versionRowUnknown</code>, <code>versionRowNotPseudo</code>, or
- * <code>versionRowPseudo</code>).
- * </ol>
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- * @param columnPattern A pattern of column names to return information for.
- *
- * @return A <code>ResultSet</code> with the version columns.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getVersionColumns(String catalog, String schema, String table)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of a table's primary key columns. These
- * are returned as a <code>ResultSet</code> with the following columns.
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog of the table, which may be <code>null</code>.
- * <li>TABLE_SCHEM - The schema of the table, which may be <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>COLUMN_NAME - The name of the column.
- * <li>KEY_SEQ - The sequence number of the column within the primary key.
- * <li>PK_NAME - The name of the primary key, which may be <code>null</code>.
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- * @param columnPattern A pattern of column names to return information for.
- *
- * @return A <code>ResultSet</code> with the primary key columns.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getPrimaryKeys(String catalog, String schema, String table)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the table's foreign keys. These are
- * returned as a <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>PKTABLE_CAT - The catalog of the table the key was imported from.
- * <li>PKTABLE_SCHEM - The schema of the table the key was imported from.
- * <li>PKTABLE_NAME - The name of the table the key was imported from.
- * <li>PKCOLUMN_NAME - The name of the column that was imported.
- * <li>FKTABLE_CAT - The foreign key catalog name.
- * <li>FKTABLE_SCHEM - The foreign key schema name.
- * <li>FKTABLE_NAME - The foreign key table name.
- * <li>FKCOLUMN_NAME - The foreign key column name.
- * <li>KEY_SEQ - The sequence number of the column within the foreign key.
- * <li>UPDATE_RULE - How the foreign key behaves when the primary key is
- * updated. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, <code>importedKeySetDefault</code>, or
- * <code>importedKeyRestrict</code>).
- * <li>DELETE_RULE - How the foreign key behaves when the primary key is
- * deleted. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, or <code>importedKeySetDefault</code>)
- * <li>FK_NAME - The name of the foreign key.
- * <li>PK_NAME - The name of the primary key.
- * <li>DEFERRABILITY - The deferrability value. This is one of the
- * constants defined in this table (<code>importedKeyInitiallyDeferred</code>,
- * <code>importedKeyInitiallyImmediate</code>, or
- * <code>importedKeyNotDeferrable</code>).
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- *
- * @return A <code>ResultSet</code> with the foreign key columns.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getImportedKeys(String catalog, String schema, String table)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the table's which use this table's
- * primary key as a foreign key. The information is
- * returned as a <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>PKTABLE_CAT - The catalog of the table the key was imported from.
- * <li>PKTABLE_SCHEM - The schema of the table the key was imported from.
- * <li>PKTABLE_NAME - The name of the table the key was imported from.
- * <li>PKCOLUMN_NAME - The name of the column that was imported.
- * <li>FKTABLE_CAT - The foreign key catalog name.
- * <li>FKTABLE_SCHEM - The foreign key schema name.
- * <li>FKTABLE_NAME - The foreign key table name.
- * <li>FKCOLUMN_NAME - The foreign key column name.
- * <li>KEY_SEQ - The sequence number of the column within the foreign key.
- * <li>UPDATE_RULE - How the foreign key behaves when the primary key is
- * updated. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, <code>importedKeySetDefault</code>, or
- * <code>importedKeyRestrict</code>).
- * <li>DELETE_RULE - How the foreign key behaves when the primary key is
- * deleted. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, or <code>importedKeySetDefault</code>)
- * <li>FK_NAME - The name of the foreign key.
- * <li>PK_NAME - The name of the primary key.
- * <li>DEFERRABILITY - The deferrability value. This is one of the
- * constants defined in this table (<code>importedKeyInitiallyDeferred</code>,
- * <code>importedKeyInitiallyImmediate</code>, or
- * <code>importedKeyNotDeferrable</code>).
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- *
- * @return A <code>ResultSet</code> with the requested information
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getExportedKeys(String catalog, String schema, String table)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a description of how one table imports another
- * table's primary key as a foreign key. The information is
- * returned as a <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>PKTABLE_CAT - The catalog of the table the key was imported from.
- * <li>PKTABLE_SCHEM - The schema of the table the key was imported from.
- * <li>PKTABLE_NAME - The name of the table the key was imported from.
- * <li>PKCOLUMN_NAME - The name of the column that was imported.
- * <li>FKTABLE_CAT - The foreign key catalog name.
- * <li>FKTABLE_SCHEM - The foreign key schema name.
- * <li>FKTABLE_NAME - The foreign key table name.
- * <li>FKCOLUMN_NAME - The foreign key column name.
- * <li>KEY_SEQ - The sequence number of the column within the foreign key.
- * <li>UPDATE_RULE - How the foreign key behaves when the primary key is
- * updated. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, <code>importedKeySetDefault</code>, or
- * <code>importedKeyRestrict</code>).
- * <li>DELETE_RULE - How the foreign key behaves when the primary key is
- * deleted. This is one of the constants defined in this class
- * (<code>importedNoAction</code>, <code>importedKeyCascade</code>,
- * <code>importedKeySetNull</code>, or <code>importedKeySetDefault</code>)
- * <li>FK_NAME - The name of the foreign key.
- * <li>PK_NAME - The name of the primary key.
- * <li>DEFERRABILITY - The deferrability value. This is one of the
- * constants defined in this table (<code>importedKeyInitiallyDeferred</code>,
- * <code>importedKeyInitiallyImmediate</code>, or
- * <code>importedKeyNotDeferrable</code>).
- *
- * @param primCatalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs, on the exporting side.
- * @param primSchema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema, on the exporting side.
- * @param primTable The table name to return information for, on the exporting
- * side.
- * @param forCatalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs, on the importing side.
- * @param forSchema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema on the importing side.
- * @param forTable The table name to return information for on the importing
- * side.
- *
- * @return A <code>ResultSet</code> with the requested information
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getCrossReference(String primCatalog, String primSchema, String primTable,
- String forCatalog, String forSchema, String forTable)
- throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a list of the SQL types supported by this
- * database. The information is returned as a <code>ResultSet</code>
- * with the following columns:
- * <p>
- * <ol>
- * <li>TYPE_NAME - The name of the data type.
- * <li>DATA_TYPE - A data type constant from <code>Types</code> for this
- * type.
- * <li>PRECISION - The maximum precision of this type.
- * <li>LITERAL_PREFIX - Prefix value used to quote a literal, which may be
- * <code>null</code>.
- * <li>LITERAL_SUFFIX - Suffix value used to quote a literal, which may be
- * <code>null</code>.
- * <li>CREATE_PARAMS - The parameters used to create the type, which may be
- * <code>null</code>.
- * <li>NULLABLE - Whether or not this type supports NULL values. This will
- * be one of the constants defined in this interface
- * (<code>typeNoNulls</code>, <code>typeNullable</code>, or
- * <code>typeNullableUnknown</code>).
- * <li>CASE_SENSITIVE - Whether or not the value is case sensitive.
- * <li>SEARCHABLE - Whether or not "LIKE" expressions are supported in
- * WHERE clauses for this type. This will be one of the constants defined
- * in this interface (<code>typePredNone</code>, <code>typePredChar</code>,
- * <code>typePredBasic</code>, or <code>typeSearchable</code>).
- * <li>UNSIGNED_ATTRIBUTE - Is the value of this type unsigned.
- * <li>FIXED_PREC_SCALE - Whether or not this type can be used for money.
- * <li>AUTO_INCREMENT - Whether or not this type supports auto-incrementing.
- * <li>LOCAL_TYPE_NAME - A localized name for this data type.
- * <li>MINIMUM_SCALE - The minimum scale supported by this type.
- * <li>MAXIMUM_SCALE - The maximum scale supported by this type.
- * <li>SQL_DATA_TYPE - Unused.
- * <li>SQL_DATETIME_SUB - Unused.
- * <li>NUM_PREC_RADIX - The radix of this data type.
- * </ol>
- *
- * @return A <code>ResultSet</code> with the list of available data types.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getTypeInfo() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns information about a tables indices and statistics.
- * It is returned as a <code>ResultSet</code> with the following columns:
- * <p>
- * <ol>
- * <li>TABLE_CAT - The catalog of the table, which may be <code>null</code>.
- * <li>TABLE_SCHEM - The schema of the table, which may be <code>null</code>.
- * <li>TABLE_NAME - The name of the table.
- * <li>NON_UNIQUE - Are index values non-unique?
- * <li>INDEX_QUALIFIER The index catalog, which may be <code>null</code>
- * <li>INDEX_NAME - The name of the index.
- * <li>TYPE - The type of index, which will be one of the constants defined
- * in this interface (<code>tableIndexStatistic</code>,
- * <code>tableIndexClustered</code>, <code>tableIndexHashed</code>, or
- * <code>tableIndexOther</code>).
- * <li>ORDINAL_POSITION - The sequence number of this column in the index.
- * This will be 0 when the index type is <code>tableIndexStatistic</code>.
- * <li>COLUMN_NAME - The name of this column in the index.
- * <li>ASC_OR_DESC - "A" for an ascending sort sequence, "D" for a
- * descending sort sequence or <code>null</code> if a sort sequence is not
- * supported.
- * <li>CARDINALITY - The number of unique rows in the index, or the number
- * of rows in the table if the index type is <code>tableIndexStatistic</code>.
- * <li>PAGES - The number of pages used for the index, or the number of pages
- * in the table if the index type is <code>tableIndexStatistic</code>.
- * <li>FILTER_CONDITION - The filter condition for this index, which may be
- * <code>null</code>.
- *
- * @param catalog The catalog to retrieve information from, or the empty string
- * to return entities not associated with a catalog, or <code>null</code>
- * to return information from all catalogs.
- * @param schema The schema to retrieve information from, or the empty string
- * to return entities not associated with a schema.
- * @param table The table name to return information for.
- * @param unique <code>true</code> to return only unique indexes,
- * <code>false</code> otherwise.
- * @param approx <code>true</code> if data values can be approximations,
- * <code>false</code> otherwise.
- *
- * @return A <code>ResultSet</code> with the requested index information
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-getIndexInfo(String catalog, String schema, String table, boolean unique,
- boolean approx) throws SQLException;
-
-} // interface DatabaseMetaData
-
diff --git a/libjava/java/sql/Date.java b/libjava/java/sql/Date.java
deleted file mode 100644
index 65472e180d1..00000000000
--- a/libjava/java/sql/Date.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Date.java -- Wrapper around java.util.Date
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.text.SimpleDateFormat;
-
-/**
- * This class is a wrapper around java.util.Date to allow the JDBC
- * driver to identify the value as a SQL Date.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Date extends java.util.Date implements java.io.Serializable
-{
-
-/*
- * Class Variables
- */
-
-/**
- * Used for parsing and formatting this date.
- */
-private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-
-/*************************************************************************/
-
-/*
- * Class Methods
- */
-
-/**
- * This method returns a new instance of this class by parsing a
- * date in JDBC format into a Java date.
- *
- * @param str The string to parse.
- *
- * @return The resulting <code>java.sql.Date</code> value.
- */
-public static Date
-valueOf(String str)
-{
- try
- {
- java.util.Date d = (java.util.Date)sdf.parseObject(str);
- return(new Date(d.getTime()));
- }
- catch(Exception e)
- {
- return(null);
- }
-}
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of this class with the
- * specified year, month, and day.
- *
- * @param year The year of this date minue 1900.
- * @param month The month of this date (0-11).
- * @param day The day of this date (1-31).
- *
- * @deprecated
- */
-public
-Date(int year, int month, int day)
-{
- super(year, month, day);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of this class with the
- * specified time value representing the number of seconds since
- * Jan 1, 1970 at 12:00 midnight GMT.
- *
- * @param time The time value to intialize this date to.
- */
-public
-Date(long date)
-{
- super(date);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns this date in JDBC format.
- *
- * @return This date as a string.
- */
-public String
-toString()
-{
- return(sdf.format(this));
-}
-
-} // class Date
-
diff --git a/libjava/java/sql/Driver.java b/libjava/java/sql/Driver.java
deleted file mode 100644
index 61e03e1a1d4..00000000000
--- a/libjava/java/sql/Driver.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Driver.java -- A JDBC driver
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.util.Properties;
-
-/**
- * This interface specifies a mechanism for accessing a JDBC database
- * driver. When the class implementing this method is loaded, it should
- * register an instance of itself with the <code>DriverManager</code> in
- * a static initializer.
- * <p>
- * Because the <code>DriverManager</code> might attempt to use several
- * drivers to find one that can connect to the requested database,
- * this driver should not cause large numbers of classes and code to
- * be loaded. If another driver is the one that ends up performing the
- * request, any loading done by this driver would be wasted.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Driver
-{
-
-/**
- * This method returns the major version number of the driver.
- *
- * @return The major version number of the driver.
- */
-public abstract int
-getMajorVersion();
-
-/*************************************************************************/
-
-/**
- * This method returns the minor version number of the driver.
- *
- * @return The minor version number of the driver.
- */
-public abstract int
-getMinorVersion();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the driver is JDBC compliant. This
- * method should only return <code>true</code> if the driver has been
- * certified as JDBC compliant.
- *
- * @return <code>true</code> if the driver has been certified JDBC compliant,
- * <code>false</code> otherwise.
- */
-public abstract boolean
-jdbcCompliant();
-
-/*************************************************************************/
-
-/**
- * This method returns an array of possible properties that could be
- * used to connect to the specified database.
- *
- * @param url The URL string of the database to connect to.
- * @param properties The list of properties the caller is planning to use
- * to connect to the database.
- *
- * @return A list of possible additional properties for a connection to this
- * database. This list may be empty.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract DriverPropertyInfo[]
-getPropertyInfo(String url, Properties properties) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the driver believes it can connect to
- * the specified database. The driver should only test whether it
- * understands and accepts the URL. It should not necessarily attempt to
- * probe the database for a connection.
- *
- * @param The database URL string.
- *
- * @return <code>true</code> if the drivers can connect to the database,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-acceptsURL(String url) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method connects to the specified database using the connection
- * properties supplied. If the driver does not understand the database
- * URL, it should return <code>null</code> instead of throwing an
- * exception since the <code>DriverManager</code> will probe a driver
- * in this manner.
- *
- * @param url The URL string for this connection.
- * @param properties The list of database connection properties.
- *
- * @return A <code>Connection</code> object for the newly established
- * connection, or <code>null</code> if the URL is not understood.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract Connection
-connect(String url, Properties properties) throws SQLException;
-
-} // interface Driver
-
diff --git a/libjava/java/sql/DriverManager.java b/libjava/java/sql/DriverManager.java
deleted file mode 100644
index 361278391b8..00000000000
--- a/libjava/java/sql/DriverManager.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/* DriverManager.java -- Manage JDBC drivers
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.Enumeration;
-import java.util.Properties;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-/**
- * This class manages the JDBC drivers in the system. It maintains a
- * registry of drivers and locates the appropriate driver to handle a
- * JDBC database URL.
- * <p>
- * On startup, <code>DriverManager</code> loads all the managers specified
- * by the system property <code>jdbc.drivers</code>. The value of this
- * property should be a colon separated list of fully qualified driver
- * class names. Additional drivers can be loaded at any time by
- * simply loading the driver class with <code>class.forName(String)</code>.
- * The driver should automatically register itself in a static
- * initializer.
- * <p>
- * The methods in this class are all <code>static</code>. This class
- * cannot be instantiated.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class DriverManager
-{
-
-/*
- * Class Variables
- */
-
-/**
- * This is the log stream for JDBC drivers.
- */
-private static PrintStream log_stream;
-
-/**
- * This is the log writer for JDBC drivers.
- */
-private static PrintWriter log_writer;
-
-/**
- * This is the login timeout used by JDBC drivers.
- */
-private static int login_timeout;
-
-/**
- * This is the list of JDBC drivers that are loaded.
- */
-private static Vector drivers;
- // Hmm, seems like we might want to do a Hashtable and lookup by something,
- // but what would it be?
-
-// Load all drivers on startup
-static
-{
- drivers = new Vector();
-
- String driver_string = System.getProperty("jdbc.drivers");
- if (driver_string != null)
- {
- StringTokenizer st = new StringTokenizer(driver_string);
- while (st.hasMoreTokens())
- {
- String driver_classname = st.nextToken();
-
- try
- {
- Class.forName(driver_classname); // The driver registers itself
- }
- catch (Exception e) { ; } // Ignore not founds
- }
- }
-
-}
-
-/*************************************************************************/
-
-/*
- * Class Methods
- */
-
-/**
- * This method returns the login timeout in use by JDBC drivers systemwide.
- *
- * @return The login timeout.
- */
-public static int
-getLoginTimeout()
-{
- return(login_timeout);
-}
-
-/*************************************************************************/
-
-/**
- * This method set the login timeout used by JDBC drivers. This is a
- * system-wide parameter that applies to all drivers.
- *
- * @param login_timeout The new login timeout value.
- */
-public static void
-setLoginTimeout(int login_timeout)
-{
- DriverManager.login_timeout = login_timeout;
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the log stream in use by JDBC.
- *
- * @return The log stream in use by JDBC.
- *
- * @deprecated Use <code>getLogWriter()</code> instead.
- */
-public static PrintStream
-getLogStream()
-{
- return(log_stream);
-}
-
-/*************************************************************************/
-
-/**
- * This method sets the log stream in use by JDBC.
- *
- * @param log_stream The log stream in use by JDBC.
- *
- * @deprecated Use <code>setLogWriter</code> instead.
- */
-public static void
-setLogStream(PrintStream log_stream)
-{
- DriverManager.log_stream = log_stream;
-}
-
-/*************************************************************************/
-
-/**
- * This method prints the specified line to the log stream.
- *
- * @param str The string to write to the log stream.
- */
-public static void
-println(String str)
-{
- if (log_stream != null) // Watch for user not using logging
- log_stream.println(str);
-}
-
-/*************************************************************************/
-
-/**
- * This method registers a new driver with the manager. This is normally
- * called by the driver itself in a static initializer.
- *
- * @param driver The new <code>Driver</code> to add.
- */
-public static void
-registerDriver(Driver driver)
-{
- if (!drivers.contains(driver))
- drivers.addElement(driver);
-}
-
-/*************************************************************************/
-
-/**
- * This method de-registers a driver from the manager.
- *
- * @param driver The <code>Driver</code> to unregister.
- */
-public static void
-deregisterDriver(Driver driver)
-{
- if (drivers.contains(driver))
- drivers.removeElement(driver);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns a list of all the currently loaded JDBC drivers which
- * the current caller has access to.
- *
- * @return An <code>Enumeration</code> of all currently loaded JDBC drivers.
- */
-public static Enumeration
-getDrivers()
-{
- return(drivers.elements());
-}
-
-/*************************************************************************/
-
-/**
- * This method returns a driver that can connect to the specified
- * JDBC URL string. This will be selected from among drivers loaded
- * at initialization time and those drivers manually loaded by the
- * same class loader as the caller.
- *
- * @param url The JDBC URL string to find a driver for.
- *
- * @return A <code>Driver</code> that can connect to the specified
- * URL, or <code>null</code> if a suitable driver cannot be found.
- *
- * @exception SQLException If an error occurs.
- */
-public static Driver
-getDriver(String url) throws SQLException
-{
- // FIXME: Limit driver search to the appropriate subset of loaded drivers.
-
- Enumeration e = drivers.elements();
- while(e.hasMoreElements())
- {
- Driver d = (Driver)e.nextElement();
- if (d.acceptsURL(url))
- return(d);
- }
-
- return(null);
-}
-
-/*************************************************************************/
-
-/**
- * This method attempts to return a connection to the specified
- * JDBC URL string.
- *
- * @param url The JDBC URL string to connect to.
- *
- * @return A <code>Connection</code> to that URL.
- *
- * @exception SQLException If an error occurs.
- */
-public static Connection
-getConnection(String url) throws SQLException
-{
- return(getConnection(url, new Properties()));
-}
-
-/*************************************************************************/
-
-/**
- * This method attempts to return a connection to the specified
- * JDBC URL string using the specified username and password.
- *
- * @param url The JDBC URL string to connect to.
- * @param user The username to connect with.
- * @param password The password to connect with.
- *
- * @return A <code>Connection</code> to that URL.
- *
- * @exception SQLException If an error occurs.
- */
-public static Connection
-getConnection(String url, String user, String password) throws SQLException
-{
- Properties p = new Properties();
-
- p.setProperty("user", user);
- p.setProperty("password", password);
-
- return(getConnection(url, p));
-}
-
-/*************************************************************************/
-
-/**
- * This method attempts to return a connection to the specified
- * JDBC URL string using the specified connection properties.
- *
- * @param url The JDBC URL string to connect to.
- * @param properties The connection properties.
- *
- * @return A <code>Connection</code> to that URL.
- *
- * @exception SQLException If an error occurs.
- */
-public static Connection
-getConnection(String url, Properties properties) throws SQLException
-{
- Driver d = getDriver(url);
- if (d == null)
- throw new SQLException("Driver not found for URL: " + url);
-
- return(d.connect(url, properties));
-}
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-// Keep bozos from trying to instantiate us.
-private
-DriverManager()
-{
- ;
-}
-
-} // class DriverManager
-
diff --git a/libjava/java/sql/DriverPropertyInfo.java b/libjava/java/sql/DriverPropertyInfo.java
deleted file mode 100644
index 83e4c4b5fd2..00000000000
--- a/libjava/java/sql/DriverPropertyInfo.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* DriverPropertyInfo.java -- Property information about drivers.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This class holds a driver property that can be used for querying or
- * setting driver configuration parameters.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class DriverPropertyInfo
-{
-
-/*
- * Instance Variables
- */
-
-/**
- * The name of the property.
- */
-public String name;
-
-/**
- * This is the value of the property.
- */
-public String value;
-
-/**
- * A description of the property, possibly <code>null</code>.
- */
-public String description;
-
-/**
- * A flag indicating whether or not a value for this property is required
- * in order to connect to the database.
- */
-public boolean required;
-
-/**
- * If values are restricted to certain choices, this is the list of valid
- * ones. Otherwise it is <code>null</code>.
- */
-public String[] choices;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>DriverPropertyInfo</code>
- * with the specified name and value. All other fields are defaulted.
- *
- * @param name The name of the property.
- * @param value The value to assign to the property.
- */
-public
-DriverPropertyInfo(String name, String value)
-{
- this.name = name;
- this.value = value;
-}
-
-} // DriverPropertyInfo
-
diff --git a/libjava/java/sql/PreparedStatement.java b/libjava/java/sql/PreparedStatement.java
deleted file mode 100644
index 870f5fc46a5..00000000000
--- a/libjava/java/sql/PreparedStatement.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/* PreparedStatement.java -- Interface for pre-compiled statements.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.math.BigDecimal;
-
-/**
- * This interface provides a mechanism for executing pre-compiled
- * statements. This provides greater efficiency when calling the same
- * statement multiple times. Parameters are allowed in a statement,
- * providings for maximum reusability.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface PreparedStatement extends Statement
-{
-
-/**
- * This method populates the specified parameter with a SQL NULL value
- * for the specified type.
- *
- * @param index The index of the parameter to set.
- * @param type The SQL type identifier of the parameter from <code>Types</code>
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setNull(int index, int type) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>boolean</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setBoolean(int index, boolean value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>byte</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setByte(int index, byte value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>short</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setShort(int index, short value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>int</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setInt(int index, int value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>long</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setLong(int index, long value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>float</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setFloat(int index, float value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>double</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setDouble(int index, double value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>String</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setString(int index, String value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>byte</code> array value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setBytes(int index, byte[] value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>java.math.BigDecimal</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setBigDecimal(int index, java.math.BigDecimal value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>java.sql.Date</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setDate(int index, java.sql.Date value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>java.sql.Time</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setTime(int index, java.sql.Time value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>java.sql.Timestamp</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setTimestamp(int index, java.sql.Timestamp value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * ASCII <code>InputStream</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- * @param length The number of bytes in the stream.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setAsciiStream(int index, InputStream value, int length) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * Unicode UTF-8 <code>InputStream</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- * @param length The number of bytes in the stream.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setUnicodeStream(int index, InputStream value, int length) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * binary <code>InputStream</code> value.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- * @param length The number of bytes in the stream.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setBinaryStream(int index, InputStream value, int length) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>Object</code> value. The default object type to SQL type mapping
- * will be used.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setObject(int index, Object value) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>Object</code> value. The specified SQL object type will be used.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- * @param type The SQL type to use for the parameter, from <code>Types</code>
- *
- * @exception SQLException If an error occurs.
- *
- * @see Types
- */
-public abstract void
-setObject(int index, Object value, int type) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the specified parameter from the given Java
- * <code>Object</code> value. The specified SQL object type will be used.
- *
- * @param index The index of the parameter value to set.
- * @param value The value of the parameter.
- * @param type The SQL type to use for the parameter, from <code>Types</code>
- * @param scale The scale of the value, for numeric values only.
- *
- * @exception SQLException If an error occurs.
- *
- * @see Types
- */
-public abstract void
-setObject(int index, Object value, int type, int scale) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method clears all of the input parameter that have been
- * set on this statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-clearParameters() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method executes a prepared SQL query.
- * Some prepared statements return multiple results; the execute method
- * handles these complex statements as well as the simpler form of
- * statements handled by executeQuery and executeUpdate.
- *
- * @return The result of the SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-execute() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method executes a prepared SQL query and returns its ResultSet.
- *
- * @return The ResultSet of the SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-executeQuery() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method executes an SQL INSERT, UPDATE or DELETE statement. SQL
- * statements that return nothing such as SQL DDL statements can be executed.
- *
- * @return The result is either the row count for INSERT, UPDATE or DELETE
- * statements; or 0 for SQL statements that return nothing.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-executeUpdate() throws SQLException;
-
-} // interface PreparedStatement
-
diff --git a/libjava/java/sql/ResultSet.java b/libjava/java/sql/ResultSet.java
deleted file mode 100644
index d9215ad551b..00000000000
--- a/libjava/java/sql/ResultSet.java
+++ /dev/null
@@ -1,682 +0,0 @@
-/* ResultSet.java -- A SQL statement result set.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.math.BigDecimal;
-
-/**
- * This interface provides access to the data set returned by a SQL
- * statement. An instance of this interface is returned by the various
- * execution methods in the <code>Statement</code.
- * <p>
- * This class models a cursor, which can be stepped through one row at a
- * time. Methods are provided for accessing columns by column name or by
- * index.
- * <p>
- * Note that a result set is invalidated if the statement that returned
- * it is closed.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface ResultSet
-{
-
-/**
- * This method advances to the next row in the result set. Any streams
- * open on the current row are closed automatically.
- *
- * @return <code>true</code> if the next row exists, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-next() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method closes the result set and frees any associated resources.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-close() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether the value of the last column that was fetched
- * was actually a SQL NULL value.
- *
- * @return <code>true</code> if the last column fetched was a NULL,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-wasNull() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>String</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>String</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getString(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>Object</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as an <code>Object</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract Object
-getObject(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>boolean</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>boolean</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-getBoolean(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>byte</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>byte</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte
-getByte(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>short</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>short</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract short
-getShort(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>int</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>int</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getInt(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>long</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>long</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract long
-getLong(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>float</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>float</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract float
-getFloat(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>double</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>double</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract double
-getDouble(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>BigDecimal</code>.
- *
- * @param index The index of the column to return.
- * @param scale The number of digits to the right of the decimal to return.
- *
- * @return The column value as a <code>BigDecimal</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract BigDecimal
-getBigDecimal(int index, int scale) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * byte array.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a byte array
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte[]
-getBytes(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Date</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>java.sql.Date</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Date
-getDate(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Time</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>java.sql.Time</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Time
-getTime(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Timestamp</code>.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a <code>java.sql.Timestamp</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Timestamp
-getTimestamp(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as an ASCII
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as an ASCII <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getAsciiStream(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Unicode UTF-8
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a Unicode UTF-8 <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getUnicodeStream(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a raw byte
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param index The index of the column to return.
- *
- * @return The column value as a raw byte <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getBinaryStream(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>String</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>String</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getString(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>Object</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as an <code>Object</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract Object
-getObject(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>boolean</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>boolean</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-getBoolean(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>byte</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>byte</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte
-getByte(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>short</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>short</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract short
-getShort(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>int</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>int</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getInt(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>long</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>long</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract long
-getLong(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>float</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>float</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract float
-getFloat(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>double</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>double</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract double
-getDouble(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>BigDecimal</code>.
- *
- * @param column The name of the column to return.
- * @param scale The number of digits to the right of the decimal to return.
- *
- * @return The column value as a <code>BigDecimal</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract BigDecimal
-getBigDecimal(String column, int scale) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * byte array.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a byte array
- *
- * @exception SQLException If an error occurs.
- */
-public abstract byte[]
-getBytes(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Date</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>java.sql.Date</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Date
-getDate(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Time</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>java.sql.Time</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Time
-getTime(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Java
- * <code>java.sql.Timestamp</code>.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a <code>java.sql.Timestamp</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract java.sql.Timestamp
-getTimestamp(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as an ASCII
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as an ASCII <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getAsciiStream(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a Unicode UTF-8
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a Unicode UTF-8 <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getUnicodeStream(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the value of the specified column as a raw byte
- * stream. Note that all the data from this stream must be read before
- * fetching the value of any other column. Please also be aware that
- * calling <code>next()</code> or <code>close()</code> on this result set
- * will close this stream as well.
- *
- * @param column The name of the column to return.
- *
- * @return The column value as a raw byte <code>InputStream</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract InputStream
-getBinaryStream(String column) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the first SQL warning associated with this result
- * set. Any additional warnings will be chained to this one.
- *
- * @return The first SQLWarning for this result set, or <code>null</code> if
- * there are no warnings.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract SQLWarning
-getWarnings() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method clears all warnings associated with this result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-clearWarnings() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the database cursor used by this
- * result set.
- *
- * @return The name of the database cursor used by this result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getCursorName() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns data about the columns returned as part of the
- * result set as a <code>ResultSetMetaData</code> instance.
- *
- * @return The <code>ResultSetMetaData</code> instance for this result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSetMetaData
-getMetaData() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the column index of the specified named column.
- *
- * @param column The name of the column.
- *
- * @return The index of the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-findColumn(String column) throws SQLException;
-
-} // interface ResultSet
-
diff --git a/libjava/java/sql/ResultSetMetaData.java b/libjava/java/sql/ResultSetMetaData.java
deleted file mode 100644
index ca6a69b78b4..00000000000
--- a/libjava/java/sql/ResultSetMetaData.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/* ResultSetMetaData.java -- Returns information about the ResultSet
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This interface provides a mechanism for obtaining information about
- * the columns that are present in a <code>ResultSet</code>.
- * <p>
- * Note that in this class column indexes start at 1, not 0.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface ResultSetMetaData
-{
-
-/**
- * The column does not allow NULL's.
- */
-public static final int columnNoNulls = 0;
-
-/**
- * The column allows NULL's.
- */
-public static final int columnNullable = 1;
-
-/**
- * It is unknown whether or not the column allows NULL's.
- */
-public static final int columnNullableUnknown = 2;
-
-/*************************************************************************/
-
-/**
- * This method returns the number of columns in the result set.
- *
- * @return The number of columns in the result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getColumnCount() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method test whether or not the column is an auto-increment column.
- * Auto-increment columns are read-only.
- *
- * @param index The index of the column to test.
- *
- * @return <code>true</code> if the column is auto-increment, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isAutoIncrement(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not a column is case sensitive in its values.
- *
- * @param index The index of the column to test.
- *
- * @return <code>true</code> if the column value is case sensitive,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isCaseSensitive(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether not the specified column can be used in
- * a WHERE clause.
- *
- * @param index The index of the column to test.
- *
- * @return <code>true</code> if the column may be used in a WHERE clause,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isSearchable(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the column stores a monetary value.
- *
- * @param index The index of the column to test.
- *
- * @return <code>true</code> if the column contains a monetary value,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isCurrency(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a value indicating whether or not the specified
- * column may contain a NULL value.
- *
- * @param index The index of the column to test.
- *
- * @return A constant indicating whether or not the column can contain NULL,
- * which will be one of <code>columnNoNulls</code>,
- * <code>columnNullable</code>, or <code>columnNullableUnknown</code>.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-isNullable(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the value of the specified column
- * is signed or unsigned.
- *
- * @param index The index of the column to test.
- *
- * @return <code>true</code> if the column value is signed, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isSigned(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum number of characters that can be used
- * to display a value in this column.
- *
- * @param index The index of the column to check.
- *
- * @return The maximum number of characters that can be used to display a
- * value for this column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getColumnDisplaySize(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns a string that should be used as a caption for this
- * column for user display purposes.
- *
- * @param index The index of the column to check.
- *
- * @return A display string for the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getColumnLabel(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the specified column.
- *
- * @param index The index of the column to return the name of.
- *
- * @return The name of the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getColumnName(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the schema that contains the specified
- * column.
- *
- * @param index The index of the column to check the schema name for.
- *
- * @return The name of the schema that contains the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getSchemaName(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the precision of the specified column, which is the
- * number of decimal digits it contains.
- *
- * @param index The index of the column to check the precision on.
- *
- * @return The precision of the specified column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getPrecision(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the scale of the specified column, which is the
- * number of digits to the right of the decimal point.
- *
- * @param index The index column to check the scale of.
- *
- * @return The scale of the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getScale(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the table containing the specified
- * column.
- *
- * @param index The index of the column to check the table name for.
- *
- * @return The name of the table containing the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getTableName(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the catalog containing the specified
- * column.
- *
- * @param index The index of the column to check the catalog name for.
- *
- * @return The name of the catalog containing the column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getCatalogName(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the SQL type of the specified column. This will
- * be one of the constants from <code>Types</code>.
- *
- * @param index The index of the column to check the SQL type of.
- *
- * @return The SQL type for this column.
- *
- * @exception SQLException If an error occurs.
- *
- * @see Types
- */
-public abstract int
-getColumnType(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the SQL type for this column.
- *
- * @param index The index of the column to check the SQL type name for.
- *
- * @return The name of the SQL type for this column.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract String
-getColumnTypeName(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the specified column is read only.
- *
- * @param index The index of the column to check.
- *
- * @return <code>true</code> if the column is read only, <code>false</code>
- * otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isReadOnly(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the column may be writable. This
- * does not guarantee that a write will be successful.
- *
- * @param index The index of the column to check for writability.
- *
- * @return <code>true</code> if the column may be writable,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isWritable(int index) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the column is writable. This
- * does guarantee that a write will be successful.
- *
- * @param index The index of the column to check for writability.
- *
- * @return <code>true</code> if the column is writable,
- * <code>false</code> otherwise.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-isDefinitelyWritable(int index) throws SQLException;
-
-} // interface ResultSetMetaData
-
diff --git a/libjava/java/sql/SQLException.java b/libjava/java/sql/SQLException.java
deleted file mode 100644
index 0fa64830f28..00000000000
--- a/libjava/java/sql/SQLException.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/* SQLException.java -- General SQL exception
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This exception is thrown when a database error occurs.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class SQLException extends Exception implements java.io.Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This is the next exception in the chain
- * @serialized
- */
-private SQLException next;
-
-/**
- * This is the state of the SQL statement at the time of the error.
- * @serialized
- */
-private String SQLState;
-
-/**
- * The vendor error code for this error
- * @serialized
- */
-private int vendorCode;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>SQLException</code>
- * that does not have a descriptive messages and SQL state, and which
- * has a vendor error code of 0.
- */
-public
-SQLException()
-{
- this(null, null, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>SQLException</code>
- * with the specified descriptive error message. The SQL state of this
- * instance will be <code>null</code> and the vendor error code will be 0.
- *
- * @param message A string describing the nature of the error.
- */
-public
-SQLException(String message)
-{
- this(message, null, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>SQLException</code>
- * with the specified descriptive error message and SQL state string.
- * The vendor error code of this instance will be 0.
- *
- * @param message A string describing the nature of the error.
- * @param SQLState A string containing the SQL state of the error.
- */
-public
-SQLException(String message, String SQLState)
-{
- this(message, SQLState, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a nwe instance of <code>SQLException</code>
- * with the specified descriptive error message, SQL state string, and
- * vendor code.
- *
- * @param message A string describing the nature of the error.
- * @param SQLState A string containing the SQL state of the error.
- * @param vendorCode The vendor error code associated with this error.
- */
-public
-SQLException(String message, String SQLState, int vendorCode)
-{
- super(message);
-
- this.SQLState = SQLState;
- this.vendorCode = vendorCode;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns the SQLState information associated with this
- * error. The value returned is a <code>String</code> which is formatted
- * using the XOPEN SQL state conventions.
- *
- * @return The SQL state, which may be <code>null</code>.
- */
-public String
-getSQLState()
-{
- return(SQLState);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the vendor specific error code associated with
- * this error.
- *
- * @return The vendor specific error code associated with this error.
- */
-public int
-getErrorCode()
-{
- return(vendorCode);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the exception that is chained to this object.
- *
- * @return The exception chained to this object, which may be
- * <code>null</code>.
- */
-public SQLException
-getNextException()
-{
- return(next);
-}
-
-/*************************************************************************/
-
-/**
- * This method adds a new exception to the end of the chain of exceptions
- * that are chained to this object.
- *
- * @param e The exception to add to the end of the chain.
- */
-public void
-setNextException(SQLException e)
-{
- if (e == null)
- return;
-
- SQLException list_entry = this;
- while (list_entry.getNextException() != null)
- list_entry = list_entry.getNextException();
-
- list_entry.next = e;
-}
-
-} // class SQLException
-
diff --git a/libjava/java/sql/SQLWarning.java b/libjava/java/sql/SQLWarning.java
deleted file mode 100644
index d13bad127ee..00000000000
--- a/libjava/java/sql/SQLWarning.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/* SQLWarning.java -- Database access warnings.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This exception is thrown when a database warning occurs.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class SQLWarning extends SQLException implements java.io.Serializable
-{
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of <code>SQLWxception</code>
- * that does not have a descriptive messages and SQL state, and which
- * has a vendor error code of 0.
- */
-public
-SQLWarning()
-{
- this(null, null, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>SQLWarning</code>
- * with the specified descriptive error message. The SQL state of this
- * instance will be <code>null</code> and the vendor error code will be 0.
- *
- * @param message A string describing the nature of the error.
- */
-public
-SQLWarning(String message)
-{
- this(message, null, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>SQLWarning</code>
- * with the specified descriptive error message and SQL state string.
- * The vendor error code of this instance will be 0.
- *
- * @param message A string describing the nature of the error.
- * @param SQLState A string containing the SQL state of the error.
- */
-public
-SQLWarning(String message, String SQLState)
-{
- this(message, SQLState, 0);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a nwe instance of <code>SQLWarning</code>
- * with the specified descriptive error message, SQL state string, and
- * vendor code.
- *
- * @param message A string describing the nature of the error.
- * @param SQLState A string containing the SQL state of the error.
- * @param vendorCode The vendor error code associated with this error.
- */
-public
-SQLWarning(String message, String SQLState, int vendorCode)
-{
- super(message, SQLState, vendorCode);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns the exception that is chained to this object.
- *
- * @return The exception chained to this object, which may be
- * <code>null</code>.
- */
-public SQLWarning
-getNextWarning()
-{
- return((SQLWarning)super.getNextException());
-}
-
-/*************************************************************************/
-
-/**
- * This method adds a new exception to the end of the chain of exceptions
- * that are chained to this object.
- *
- * @param e The exception to add to the end of the chain.
- */
-public void
-setNextWarning(SQLWarning e)
-{
- super.setNextException(e);
-}
-
-} // class SQLWarning
-
diff --git a/libjava/java/sql/Statement.java b/libjava/java/sql/Statement.java
deleted file mode 100644
index 1ceeb0f6837..00000000000
--- a/libjava/java/sql/Statement.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Statement.java -- Interface for executing SQL statements.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This interface provides a mechanism for executing SQL statements.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public interface Statement
-{
-
-/**
- * This method executes the specified SQL SELECT statement and returns a
- * (possibly empty) <code>ResultSet</code> with the results of the query.
- *
- * @param sql The SQL statement to execute.
- *
- * @return The result set of the SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract ResultSet
-executeQuery(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method executes the specified SQL INSERT, UPDATE, or DELETE statement
- * and returns the number of rows affected, which may be 0.
- *
- * @param sql The SQL statement to execute.
- *
- * @return The number of rows affected by the SQL statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-executeUpdate(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method closes the statement and frees any associated resources.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-close() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum length of any column value in bytes.
- *
- * @return The maximum length of any column value in bytes.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxFieldSize() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the limit for the maximum length of any column in bytes.
- *
- * @param maxsize The new maximum length of any column in bytes.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setMaxFieldSize(int maxsize) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the maximum possible number of rows in a result set.
- *
- * @return The maximum possible number of rows in a result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getMaxRows() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the maximum number of rows that can be present in a
- * result set.
- *
- * @param maxrows The maximum possible number of rows in a result set.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setMaxRows(int maxrows) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the local escape processing mode on or off. The
- * default value is on.
- *
- * @param escape <code>true</code> to enable local escape processing,
- * <code>false</code> to disable it.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setEscapeProcessing(boolean esacpe) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * The method returns the number of seconds a statement may be in process
- * before timing out. A value of 0 means there is no timeout.
- *
- * @return The SQL statement timeout in seconds.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract int
-getQueryTimeout() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the number of seconds a statement may be in process
- * before timing out. A value of 0 means there is no timeout.
- *
- * @param timeout The new SQL statement timeout value.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setQueryTimeout(int timeout) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method cancels an outstanding statement, if the database supports
- * that operation.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-cancel() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the first SQL warning attached to this statement.
- * Subsequent warnings will be chained to this one.
- *
- * @return The first SQL warning for this statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract SQLWarning
-getWarnings() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method clears any SQL warnings that have been attached to this
- * statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-clearWarnings() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method sets the cursor name that will be used by the result set.
- *
- * @param name The cursor name to use for this statement.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract void
-setCursorName(String name) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method executes an arbitrary SQL statement of any time. The
- * methods <code>getResultSet</code>, <code>getMoreResults</code> and
- * <code>getUpdateCount</code> retrieve the results.
- *
- * @return <code>true</code> if a result set was returned, <code>false</code>
- * if an update count was returned.
- *
- * @exception SQLException If an error occurs.
- */
-public abstract boolean
-execute(String sql) throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the result set of the SQL statement that was
- * executed. This should be called only once per result set returned.
- *
- * @return The result set of the query, or <code>null</code> if there was
- * no result set (for example, if the statement was an UPDATE).
- *
- * @exception SQLException If an error occurs.
- *
- * @see execute
- */
-public abstract ResultSet
-getResultSet() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method returns the update count of the SQL statement that was
- * executed. This should be called only once per executed SQL statement.
- *
- * @return The update count of the query, or -1 if there was no update
- * count (for example, if the statement was a SELECT).
- *
- * @exception SQLException If an error occurs.
- *
- * @see execute
- */
-public abstract int
-getUpdateCount() throws SQLException;
-
-/*************************************************************************/
-
-/**
- * This method advances the result set pointer to the next result set,
- * which can then be retrieved using <code>getResultSet</code>
- *
- * @return <code>true</code> if there is another result set,
- * <code>false</code> otherwise (for example, the next result is an
- * update count).
- *
- * @exception SQLException If an error occurs.
- *
- * @see execute
- */
-public abstract boolean
-getMoreResults() throws SQLException;
-
-} // interface Statement
-
diff --git a/libjava/java/sql/Time.java b/libjava/java/sql/Time.java
deleted file mode 100644
index e8086589832..00000000000
--- a/libjava/java/sql/Time.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Time.java -- Wrapper around java.util.Date
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.text.SimpleDateFormat;
-
-/**
- * This class is a wrapper around java.util.Date to allow the JDBC
- * driver to identify the value as a SQL Time.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Time extends java.util.Date implements java.io.Serializable
-{
-
-/*
- * Class Variables
- */
-
-/**
- * Used for parsing and formatting this date.
- */
-private static SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
-
-/*************************************************************************/
-
-/*
- * Class Methods
- */
-
-/**
- * This method returns a new instance of this class by parsing a
- * date in JDBC format into a Java date.
- *
- * @param str The string to parse.
- *
- * @return The resulting <code>java.sql.Time</code> value.
- */
-public static Time
-valueOf(String str)
-{
- try
- {
- java.util.Date d = (java.util.Date)sdf.parseObject(str);
- return(new Time(d.getTime()));
- }
- catch(Exception e)
- {
- return(null);
- }
-}
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of this class with the
- * specified year, month, and day.
- *
- * @param hour The hour for this Time (0-23)
- * @param minute The minute for this time (0-59)
- * @param second The second for this time (0-59)
- *
- * @deprecated
- */
-public
-Time(int hour, int minute, int second)
-{
- super(System.currentTimeMillis());
-
- setHours(hour);
- setMinutes(minute);
- setSeconds(second);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of this class with the
- * specified time value representing the number of seconds since
- * Jan 1, 1970 at 12:00 midnight GMT.
- *
- * @param time The time value to intialize this <code>Time</code> to.
- */
-public
-Time(long date)
-{
- super(date);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns this date in JDBC format.
- *
- * @return This date as a string.
- */
-public String
-toString()
-{
- return(sdf.format(this));
-}
-
-} // class Time
-
diff --git a/libjava/java/sql/Timestamp.java b/libjava/java/sql/Timestamp.java
deleted file mode 100644
index c12267ec9dc..00000000000
--- a/libjava/java/sql/Timestamp.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Time.java -- Wrapper around java.util.Date
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-import java.text.SimpleDateFormat;
-
-/**
- * This class is a wrapper around java.util.Date to allow the JDBC
- * driver to identify the value as a SQL Timestamp. Note that this
- * class also adds an additional field for nano-seconds, and so
- * is not completely identical to <code>java.util.Date</code> as
- * the <code>java.sql.Date</code> and <code>java.sql.Time</code>
- * classes are.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Timestamp extends java.util.Date implements java.io.Serializable
-{
-
-/*
- * Class Variables
- */
-
-/**
- * Used for parsing and formatting this date.
- */
- // Millisecond will have to be close enough for now.
-private static SimpleDateFormat parse_sdf =
- new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSS");
-
-private static SimpleDateFormat format_sdf =
- new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * @serial The nanosecond value for this object
- */
-private int nanos;
-
-/*************************************************************************/
-
-/*
- * Class Methods
- */
-
-/**
- * This method returns a new instance of this class by parsing a
- * date in JDBC format into a Java date.
- *
- * @param str The string to parse.
- *
- * @return The resulting <code>java.sql.Timestamp</code> value.
- */
-public static Timestamp
-valueOf(String str)
-{
- try
- {
- Date d = (Date)parse_sdf.parseObject(str);
- return(new Timestamp(d.getTime()));
- }
- catch(Exception e)
- {
- return(null);
- }
-}
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * This method initializes a new instance of this class with the
- * specified year, month, and day.
- *
- * @param year The year for this Timestamp (year - 1900)
- * @param month The month for this Timestamp (0-11)
- * @param day The day for this Timestamp (1-31)
- * @param hour The hour for this Timestamp (0-23)
- * @param minute The minute for this Timestamp (0-59)
- * @param second The second for this Timestamp (0-59)
- * @param nanos The nanosecond value for this Timestamp (0 to 999,999,9999)
- *
- * @deprecated
- */
-public
-Timestamp(int year, int month, int day, int hour, int minute, int second,
- int nanos)
-{
- super(year, month, day, hour, minute, second);
-
- this.nanos = nanos;
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of this class with the
- * specified time value representing the number of seconds since
- * Jan 1, 1970 at 12:00 midnight GMT.
- *
- * @param time The time value to intialize this <code>Time</code> to.
- */
-public
-Timestamp(long date)
-{
- super(date);
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * This method returns this date in JDBC format.
- *
- * @return This date as a string.
- */
-public String
-toString()
-{
- return(format_sdf.format(this) + "." + getNanos());
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the nanosecond value for this object.
- *
- * @return The nanosecond value for this object.
- */
-public int
-getNanos()
-{
- return(nanos);
-}
-
-/*************************************************************************/
-
-/**
- * This method sets the nanosecond value for this object.
- *
- * @param nanos The nanosecond value for this object.
- */
-public void
-setNanos(int nanos)
-{
- this.nanos = nanos;
-}
-
-/*************************************************************************/
-
-/**
- * This methods tests whether this object is earlier than the specified
- * object.
- *
- * @param ts The other <code>Timestamp</code> to test against.
- *
- * @return <code>true</code> if this object is earlier than the other object,
- * <code>false</code> otherwise.
- */
-public boolean
-before(Timestamp ts)
-{
- if (ts.getTime() > getTime())
- return(true);
-
- if (ts.getNanos() > getNanos())
- return(true);
-
- return(false);
-}
-
-/*************************************************************************/
-
-/**
- * This methods tests whether this object is later than the specified
- * object.
- *
- * @param ts The other <code>Timestamp</code> to test against.
- *
- * @return <code>true</code> if this object is later than the other object,
- * <code>false</code> otherwise.
- */
-public boolean
-after(Timestamp ts)
-{
- if (ts.getTime() < getTime())
- return(true);
-
- if (ts.getNanos() < getNanos())
- return(true);
-
- return(false);
-}
-
-/*************************************************************************/
-
-/**
- * This method these the specified <code>Object</code> for equality
- * against this object. This will be true if an only if the specified
- * object is an instance of <code>Timestamp</code> and has the same
- * time value fields.
- *
- * @param obj The object to test against for equality.
- *
- * @return <code>true</code> if the specified object is equal to this
- * object, <code>false</code> otherwise.
- */
-public boolean
-equals(Object obj)
-{
- if (obj == null)
- return(false);
-
- if (!(obj instanceof Timestamp))
- return(false);
-
- return(equals((Timestamp)obj));
-}
-
-/*************************************************************************/
-
-/**
- * This method tests the specified timestamp for equality against this
- * object. This will be true if and only if the specified object is
- * not <code>null</code> and contains all the same time value fields
- * as this object.
- *
- * @param ts The <code>Timestamp</code> to test against for equality.
- *
- * @return <code>true</code> if the specified object is equal to this
- * object, <code>false</code> otherwise.
- */
-public boolean
-equals(Timestamp ts)
-{
- if (ts == null)
- return(false);
-
- if (ts.getTime() != getTime())
- return(false);
-
- if (ts.getNanos() != getNanos())
- return(false);
-
- return(true);
-}
-
-} // class Timestamp
-
diff --git a/libjava/java/sql/Types.java b/libjava/java/sql/Types.java
deleted file mode 100644
index 3cbbba929f6..00000000000
--- a/libjava/java/sql/Types.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Types.java -- SQL type constants
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.sql;
-
-/**
- * This class contains constants that are used to identify SQL data types.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Types
-{
-
-// These should be self explanatory. People need a SQL book, not
-// Javadoc comments for these.
-
-public static final int BIT = -7;
-public static final int TINYINT = -6;
-public static final int SMALLINT = 5;
-public static final int INTEGER = 4;
-public static final int BIGINT = -5;
-public static final int FLOAT = 6;
-public static final int REAL = 7;
-public static final int DOUBLE = 8;
-public static final int NUMERIC = 2;
-public static final int DECIMAL = 3;
-public static final int CHAR = 1;
-public static final int VARCHAR = 12;
-public static final int LONGVARCHAR = -1;
-public static final int DATE = 91;
-public static final int TIME = 92;
-public static final int TIMESTAMP = 93;
-public static final int BINARY = -2;
-public static final int VARBINARY = -3;
-public static final int LONGVARBINARY = -4;
-public static final int NULL = 0;
-public static final int OTHER = 1111;
-
-} // class Types
-
diff --git a/libjava/java/text/BreakIterator.java b/libjava/java/text/BreakIterator.java
deleted file mode 100644
index ef971bf4f75..00000000000
--- a/libjava/java/text/BreakIterator.java
+++ /dev/null
@@ -1,159 +0,0 @@
-// BreakIterator.java - Iterate over logical breaks in text.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 19, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.1.
- */
-
-public abstract class BreakIterator implements Cloneable
-{
- // The value was discovered by writing a test program.
- public static final int DONE = -1;
-
- protected BreakIterator ()
- {
- }
-
- public abstract int current ();
- public abstract int first ();
- public abstract int following (int pos);
-
- public static synchronized Locale[] getAvailableLocales ()
- {
- // FIXME.
- return null;
- }
-
- private static BreakIterator getInstance (String type, Locale loc)
- {
- String className;
- try
- {
- ResourceBundle res
- = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", loc);
- className = res.getString(type);
- }
- catch (MissingResourceException x)
- {
- return null;
- }
- try
- {
- Class k = Class.forName(className);
- return (BreakIterator) k.newInstance();
- }
- catch (ClassNotFoundException x1)
- {
- return null;
- }
- catch (InstantiationException x2)
- {
- return null;
- }
- catch (IllegalAccessException x3)
- {
- return null;
- }
- }
-
- public static BreakIterator getCharacterInstance ()
- {
- return getCharacterInstance (Locale.getDefault());
- }
-
- public static BreakIterator getCharacterInstance (Locale loc)
- {
- BreakIterator r = getInstance ("CharacterIterator", loc);
- if (r == null)
- r = new gnu.gcj.text.CharacterBreakIterator ();
- return r;
- }
-
- public static BreakIterator getLineInstance ()
- {
- return getLineInstance (Locale.getDefault());
- }
-
- public static BreakIterator getLineInstance (Locale loc)
- {
- BreakIterator r = getInstance ("LineIterator", loc);
- if (r == null)
- r = new gnu.gcj.text.LineBreakIterator ();
- return r;
- }
-
- public static BreakIterator getSentenceInstance ()
- {
- return getSentenceInstance (Locale.getDefault());
- }
-
- public static BreakIterator getSentenceInstance (Locale loc)
- {
- BreakIterator r = getInstance ("SentenceIterator", loc);
- if (r == null)
- r = new gnu.gcj.text.SentenceBreakIterator ();
- return r;
- }
-
- public abstract CharacterIterator getText ();
-
- public static BreakIterator getWordInstance ()
- {
- return getWordInstance (Locale.getDefault());
- }
-
- public static BreakIterator getWordInstance (Locale loc)
- {
- BreakIterator r = getInstance ("WordIterator", loc);
- if (r == null)
- r = new gnu.gcj.text.WordBreakIterator ();
- return r;
- }
-
- public boolean isBoundary (int pos)
- {
- if (pos == 0)
- return true;
- return following (pos - 1) == pos;
- }
-
- public abstract int last ();
- public abstract int next ();
- public abstract int next (int n);
-
- public int preceding (int pos)
- {
- if (following (pos) == DONE)
- last ();
- while (previous () >= pos)
- ;
- return current ();
- }
-
- public abstract int previous ();
-
- public void setText (String newText)
- {
- setText (new StringCharacterIterator (newText));
- }
-
- public abstract void setText (CharacterIterator newText);
-}
diff --git a/libjava/java/text/CharacterIterator.java b/libjava/java/text/CharacterIterator.java
deleted file mode 100644
index a10ee4ad332..00000000000
--- a/libjava/java/text/CharacterIterator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// CharacterIterator.java - Protocol for iterating over Unicode characters.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 22, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.1.
- */
-
-public interface CharacterIterator extends Cloneable
-{
- public abstract Object clone ();
- public abstract char current ();
- public abstract char first ();
- public abstract int getBeginIndex ();
- public abstract int getEndIndex ();
- public abstract int getIndex ();
- public abstract char last ();
- public abstract char next ();
- public abstract char previous ();
- public abstract char setIndex (int idx);
-
- public static final char DONE = '\uffff';
-}
diff --git a/libjava/java/text/ChoiceFormat.java b/libjava/java/text/ChoiceFormat.java
deleted file mode 100644
index da70114ac33..00000000000
--- a/libjava/java/text/ChoiceFormat.java
+++ /dev/null
@@ -1,310 +0,0 @@
-// ChoiceFormat.java - Formatter for `switch'-like string substitution.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Vector;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 9, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.1.
- */
-
-public class ChoiceFormat extends NumberFormat
-{
- // Note: we assume the same kind of quoting rules apply here.
- // This isn't explicitly documented. But for instance we accept
- // '#' as a literal hash in a format string.
- public void applyPattern (String newPattern)
- {
- int index = 0, max = newPattern.length();
- Vector stringVec = new Vector ();
- Vector limitVec = new Vector ();
- StringBuffer buf = new StringBuffer ();
-
- while (true)
- {
- // Find end of double.
- int dstart = index;
- while (index < max)
- {
- char c = newPattern.charAt(index);
- if (c == '#' || c == '\u2064' || c == '<')
- break;
- ++index;
- }
-
- if (index == max)
- throw new IllegalArgumentException ("unexpected end of text");
- Double d = new Double (newPattern.substring(dstart, index));
-
- if (newPattern.charAt(index) == '<')
- d = new Double (nextDouble (d.doubleValue()));
-
- limitVec.addElement(d);
-
- // Scan text.
- ++index;
- buf.setLength(0);
- while (index < max)
- {
- char c = newPattern.charAt(index);
- if (c == '\'' && index < max + 1
- && newPattern.charAt(index + 1) == '\'')
- {
- buf.append(c);
- ++index;
- }
- else if (c == '\'' && index < max + 2)
- {
- buf.append(newPattern.charAt(index + 1));
- index += 2;
- }
- else if (c == '|')
- break;
- else
- buf.append(c);
- ++index;
- }
-
- stringVec.addElement(buf.toString());
- if (index == max)
- break;
- ++index;
- }
-
- choiceFormats = new String[stringVec.size()];
- stringVec.copyInto(choiceFormats);
-
- choiceLimits = new double[limitVec.size()];
- for (int i = 0; i < choiceLimits.length; ++i)
- {
- Double d = (Double) limitVec.elementAt(i);
- choiceLimits[i] = d.doubleValue();
- }
- }
-
- public ChoiceFormat (String newPattern)
- {
- super ();
- applyPattern (newPattern);
- }
-
- public ChoiceFormat (double[] choiceLimits, String[] choiceFormats)
- {
- super ();
- setChoices (choiceLimits, choiceFormats);
- }
-
- public Object clone ()
- {
- return new ChoiceFormat (choiceLimits, choiceFormats);
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof ChoiceFormat))
- return false;
- ChoiceFormat cf = (ChoiceFormat) obj;
- if (choiceLimits.length != cf.choiceLimits.length)
- return false;
- for (int i = choiceLimits.length - 1; i >= 0; --i)
- {
- if (choiceLimits[i] != cf.choiceLimits[i]
- || !choiceFormats[i].equals(cf.choiceFormats[i]))
- return false;
- }
- return true;
- }
-
- public StringBuffer format (long num, StringBuffer appendBuf,
- FieldPosition pos)
- {
- return format ((double) num, appendBuf, pos);
- }
-
- public StringBuffer format (double num, StringBuffer appendBuf,
- FieldPosition pos)
- {
- if (choiceLimits.length == 0)
- return appendBuf;
-
- int index = 0;
- if (! Double.isNaN(num) && num >= choiceLimits[0])
- {
- for (; index < choiceLimits.length - 1; ++index)
- {
- if (choiceLimits[index] <= num
- && index != choiceLimits.length - 2
- && num < choiceLimits[index + 1])
- break;
- }
- }
-
- return appendBuf.append(choiceFormats[index]);
- }
-
- public Object[] getFormats ()
- {
- return (Object[]) choiceFormats.clone();
- }
-
- public double[] getLimits ()
- {
- return (double[]) choiceLimits.clone();
- }
-
- public int hashCode ()
- {
- int hash = 0;
- for (int i = 0; i < choiceLimits.length; ++i)
- {
- long v = Double.doubleToLongBits(choiceLimits[i]);
- hash ^= (v ^ (v >>> 32));
- hash ^= choiceFormats[i].hashCode();
- }
- return hash;
- }
-
- public static final double nextDouble (double d)
- {
- return nextDouble (d, true);
- }
-
- public static double nextDouble (double d, boolean next)
- {
- if (Double.isInfinite(d) || Double.isNaN(d))
- return d;
-
- long bits = Double.doubleToLongBits(d);
-
- long mantMask = (1L << mantissaBits) - 1;
- long mantissa = bits & mantMask;
-
- long expMask = (1L << exponentBits) - 1;
- long exponent = (bits >>> mantissaBits) & expMask;
-
- if (next ^ (bits < 0)) // Increment magnitude
- {
- if (mantissa == (1L << mantissaBits) - 1)
- {
- mantissa = 0L;
- exponent++;
-
- // Check for absolute overflow.
- if (exponent >= (1L << mantissaBits))
- return (bits > 0) ? Double.POSITIVE_INFINITY
- : Double.NEGATIVE_INFINITY;
- }
- else
- mantissa++;
- }
- else // Decrement magnitude
- {
- if (exponent == 0L && mantissa == 0L)
- {
- // The only case where there is a change of sign
- return next ? Double.MIN_VALUE : -Double.MIN_VALUE;
- }
- else
- {
- if (mantissa == 0L)
- {
- mantissa = (1L << mantissaBits) - 1;
- exponent--;
- }
- else
- mantissa--;
- }
- }
-
- long result = bits < 0 ? 1 : 0;
- result = (result << exponentBits) | exponent;
- result = (result << mantissaBits) | mantissa;
- return Double.longBitsToDouble(result);
- }
-
- public Number parse (String sourceStr, ParsePosition pos)
- {
- int index = pos.getIndex();
- for (int i = 0; i < choiceLimits.length; ++i)
- {
- if (sourceStr.startsWith(choiceFormats[i], index))
- {
- pos.setIndex(index + choiceFormats[i].length());
- return new Double (choiceLimits[i]);
- }
- }
- pos.setErrorIndex(index);
- return new Double (Double.NaN);
- }
-
- public static final double previousDouble (double d)
- {
- return nextDouble (d, false);
- }
-
- public void setChoices (double[] choiceLimits, String[] choiceFormats)
- {
- if (choiceLimits == null || choiceFormats == null)
- throw new NullPointerException ();
- if (choiceLimits.length != choiceFormats.length)
- throw new IllegalArgumentException ();
- this.choiceFormats = (String[]) choiceFormats.clone();
- this.choiceLimits = (double[]) choiceLimits.clone();
- }
-
- private final void quoteString (StringBuffer dest, String text)
- {
- int max = text.length();
- for (int i = 0; i < max; ++i)
- {
- char c = text.charAt(i);
- if (c == '\'')
- {
- dest.append(c);
- dest.append(c);
- }
- else if (c == '#' || c == '|' || c == '\u2064' || c == '<')
- {
- dest.append('\'');
- dest.append(c);
- dest.append('\'');
- }
- else
- dest.append(c);
- }
- }
-
- public String toPattern ()
- {
- StringBuffer result = new StringBuffer ();
- for (int i = 0; i < choiceLimits.length; ++i)
- {
- result.append(choiceLimits[i]);
- result.append('#');
- quoteString (result, choiceFormats[i]);
- }
- return result.toString();
- }
-
- // Formats and limits.
- private String[] choiceFormats;
- private double[] choiceLimits;
-
- // Number of mantissa bits in double.
- private static final int mantissaBits = 52;
- // Number of exponent bits in a double.
- private static final int exponentBits = 11;
-}
diff --git a/libjava/java/text/CollationElementIterator.java b/libjava/java/text/CollationElementIterator.java
deleted file mode 100644
index 96732f7b2e3..00000000000
--- a/libjava/java/text/CollationElementIterator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-// CollationElementIterator.java - Iterate over decomposed characters.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 25, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to JDK 1.1.
- */
-
-public final class CollationElementIterator
-{
- public static final int NULLORDER = 0xffffffff;
-
- public int next ()
- {
- if (index == text.length())
- return NULLORDER;
- return collator.ceiNext(this);
- }
-
- // This one returns int while the others return short.
- public static final int primaryOrder (int order)
- {
- // From the JDK 1.2 spec.
- return order >>> 16;
- }
-
- public void reset ()
- {
- index = 0;
- }
-
- public static final short secondaryOrder (int order)
- {
- // From the JDK 1.2 spec.
- return (order >>> 8) & 255;
- }
-
- public static final short tertiaryOrder (int order)
- {
- // From the JDK 1.2 spec.
- return order & 255;
- }
-
- // Non-public constructor.
- CollationElementIterator (String text, RuleBasedCollator collator)
- {
- this.text = text;
- this.index = 0;
- this.lookahead_set = false;
- this.lookahead = 0;
- this.collator = collator;
- }
-
- // Text over which we iterate.
- String text;
-
- // Index of next character to examine in TEXT.
- int index;
-
- // A piece of lookahead.
- boolean lookahead_set;
- int lookahead;
-
- // The RuleBasedCollator which created this object.
- RuleBasedCollator collator;
-}
diff --git a/libjava/java/text/CollationKey.java b/libjava/java/text/CollationKey.java
deleted file mode 100644
index 725b66a8138..00000000000
--- a/libjava/java/text/CollationKey.java
+++ /dev/null
@@ -1,104 +0,0 @@
-// CollationKey.java - Sort key for locale-sensitive String.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 25, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public final class CollationKey
-{
- public int compareTo (CollationKey target)
- {
- int max = Math.min(key.length, target.key.length);
-
- for (int i = 0; i < max; ++i)
- {
- if (key[i] != target.key[i])
- return key[i] - target.key[i];
- }
-
- return key.length - target.key.length;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof CollationKey))
- return false;
-
- CollationKey ck = (CollationKey) obj;
-
- if (key.length != ck.key.length)
- return false;
-
- for (int i = 0; i < key.length; ++i)
- if (key[i] != ck.key[i])
- return false;
-
- return true;
- }
-
- public String getSourceString ()
- {
- return originalText;
- }
-
- public int hashCode ()
- {
- // We just follow BitSet instead of thinking up something new.
- long h = originalText.hashCode();
- for (int i = key.length - 1; i >= 0; --i)
- h ^= key[i] * (i + 1);
- return (int) ((h >> 32) ^ h);
- }
-
- public byte[] toByteArray ()
- {
- byte[] r = new byte[4 * key.length];
- int off = 0;
- for (int i = 0; i < key.length; ++i)
- {
- r[off++] = (byte) ((key[i] >>> 24) & 255);
- r[off++] = (byte) ((key[i] >>> 16) & 255);
- r[off++] = (byte) ((key[i] >>> 8) & 255);
- r[off++] = (byte) ((key[i] ) & 255);
- }
- return r;
- }
-
- CollationKey (CollationElementIterator iter, String originalText,
- int strength)
- {
- this.originalText = originalText;
-
- // Compute size of required array.
- int size = 0;
- while (RuleBasedCollator.next(iter, strength)
- != CollationElementIterator.NULLORDER)
- ++size;
-
- iter.reset();
- key = new int[size];
- for (int i = 0; i < size; i++)
- key[i] = RuleBasedCollator.next(iter, strength);
- }
-
- // Original string.
- private String originalText;
-
- // Collation key.
- private int[] key;
-}
diff --git a/libjava/java/text/Collator.java b/libjava/java/text/Collator.java
deleted file mode 100644
index 4280ea235c3..00000000000
--- a/libjava/java/text/Collator.java
+++ /dev/null
@@ -1,134 +0,0 @@
-// Collator.java - Locale-sensitive string comparison.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 18, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Mostly complete, but parts stubbed out. Look for FIXME.
- */
-
-public abstract class Collator implements Cloneable
-{
- public static final int NO_DECOMPOSITION = 0;
- public static final int CANONICAL_DECOMPOSITION = 1;
- public static final int FULL_DECOMPOSITION = 2;
-
- public static final int PRIMARY = 0;
- public static final int SECONDARY = 1;
- public static final int TERTIARY = 2;
- public static final int IDENTICAL = 3;
-
- protected Collator ()
- {
- strength = TERTIARY;
- decmp = CANONICAL_DECOMPOSITION;
- }
-
- public abstract int compare (String source, String target);
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Collator))
- return false;
- Collator c = (Collator) obj;
- return decmp == c.decmp && strength == c.strength;
- }
-
- public boolean equals (String source, String target)
- {
- return compare (source, target) == 0;
- }
-
- public Object clone ()
- {
- return super.clone ();
- }
-
- public static synchronized Locale[] getAvailableLocales ()
- {
- // FIXME.
- return null;
- }
-
- public abstract CollationKey getCollationKey (String source);
-
- public synchronized int getDecomposition ()
- {
- return decmp;
- }
-
- public static Collator getInstance ()
- {
- return getInstance (Locale.getDefault());
- }
-
- public static Collator getInstance (Locale loc)
- {
- ResourceBundle res;
- String pattern;
- try
- {
- res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", loc);
- pattern = res.getString("collatorRule");
- }
- catch (MissingResourceException x)
- {
- return null;
- }
- try
- {
- return new RuleBasedCollator (pattern);
- }
- catch (ParseException x)
- {
- return null;
- }
- }
-
- public synchronized int getStrength ()
- {
- return strength;
- }
-
- public abstract int hashCode ();
-
- public synchronized void setDecomposition (int mode)
- {
- if (mode != NO_DECOMPOSITION
- && mode != CANONICAL_DECOMPOSITION
- && mode != FULL_DECOMPOSITION)
- throw new IllegalArgumentException ();
- decmp = mode;
- }
-
- public synchronized void setStrength (int strength)
- {
- if (strength != PRIMARY && strength != SECONDARY
- && strength != TERTIARY && strength != IDENTICAL)
- throw new IllegalArgumentException ();
- this.strength = strength;
- }
-
- // Decompose a single character and append results to the buffer.
- protected native final void decomposeCharacter (char c, StringBuffer buf);
-
- // These names are fixed by the serialization spec.
- protected int decmp;
- protected int strength;
-}
diff --git a/libjava/java/text/DateFormat.java b/libjava/java/text/DateFormat.java
deleted file mode 100644
index ee2178cd68f..00000000000
--- a/libjava/java/text/DateFormat.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Mostly complete; search for FIXME to see omissions.
- */
-
-public abstract class DateFormat extends Format implements Cloneable
-{
- protected Calendar calendar;
- protected NumberFormat numberFormat;
-
- // (Values determined using a test program.)
- public final static int FULL = 0;
- public final static int LONG = 1;
- public final static int MEDIUM = 2;
- public final static int SHORT = 3;
- public final static int DEFAULT = MEDIUM;
-
- public final static int ERA_FIELD = 0;
- public final static int YEAR_FIELD = 1;
- public final static int MONTH_FIELD = 2;
- public final static int DATE_FIELD = 3;
- public final static int HOUR_OF_DAY1_FIELD = 4;
- public final static int HOUR_OF_DAY0_FIELD = 5;
- public final static int MINUTE_FIELD = 6;
- public final static int SECOND_FIELD = 7;
- public final static int MILLISECOND_FIELD = 8;
- public final static int DAY_OF_WEEK_FIELD = 9;
- public final static int DAY_OF_YEAR_FIELD = 10;
- public final static int DAY_OF_WEEK_IN_MONTH_FIELD = 11;
- public final static int WEEK_OF_YEAR_FIELD = 12;
- public final static int WEEK_OF_MONTH_FIELD = 13;
- public final static int AM_PM_FIELD = 14;
- public final static int HOUR1_FIELD = 15;
- public final static int HOUR0_FIELD = 16;
- public final static int TIMEZONE_FIELD = 17;
-
- protected DateFormat ()
- {
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof DateFormat))
- return false;
- DateFormat d = (DateFormat) obj;
- return calendar.equals(d.calendar) && numberFormat.equals(d.numberFormat);
- }
-
- public Object clone ()
- {
- // We know the superclass just call's Object's generic cloner.
- return super.clone ();
- }
-
- public final StringBuffer format (Object obj,
- StringBuffer buf, FieldPosition pos)
- {
- if (obj instanceof Number)
- return format (new Date(((Number) obj).longValue()), buf, pos);
- return format ((Date) obj, buf, pos);
- }
-
- public final String format (Date date)
- {
- StringBuffer sb = new StringBuffer ();
- format (date, sb, new FieldPosition (MONTH_FIELD));
- return sb.toString();
- }
-
- public abstract StringBuffer format (Date date,
- StringBuffer buf, FieldPosition pos);
-
- public static Locale[] getAvailableLocales ()
- {
- return null; // FIXME
- }
-
- public Calendar getCalendar ()
- {
- return calendar;
- }
-
- private static final DateFormat computeInstance (int style, Locale loc,
- boolean use_date,
- boolean use_time)
- {
- return computeInstance (style, style, loc, use_date, use_time);
- }
-
- private static final DateFormat computeInstance (int dateStyle,
- int timeStyle,
- Locale loc,
- boolean use_date,
- boolean use_time)
- {
- ResourceBundle res;
- try
- {
- res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", loc);
- }
- catch (MissingResourceException x)
- {
- res = null;
- }
-
- String pattern = null;
- if (use_date)
- {
- String name, def;
- switch (dateStyle)
- {
- case FULL:
- name = "fullDateFormat";
- def = "EEEE MMMM d, yyyy G";
- break;
- case LONG:
- name = "longDateFormat";
- def = "MMMM d, yyyy";
- break;
- case MEDIUM:
- name = "mediumDateFormat";
- def = "d-MMM-yy";
- break;
- case SHORT:
- name = "shortDateFormat";
- def = "M/d/yy";
- break;
- default:
- throw new IllegalArgumentException ();
- }
- try
- {
- pattern = res == null ? def : res.getString(name);
- }
- catch (MissingResourceException x)
- {
- pattern = def;
- }
- }
-
- if (use_time)
- {
- if (pattern == null)
- pattern = "";
- else
- pattern += " ";
-
- String name, def;
- switch (timeStyle)
- {
- case FULL:
- name = "fullTimeFormat";
- def = "h:mm:ss;S 'o''clock' a z";
- break;
- case LONG:
- name = "longTimeFormat";
- def = "h:mm:ss a z";
- break;
- case MEDIUM:
- name = "mediumTimeFormat";
- def = "h:mm:ss a";
- break;
- case SHORT:
- name = "shortTimeFormat";
- def = "h:mm a";
- break;
- default:
- throw new IllegalArgumentException ();
- }
-
- String s;
- try
- {
- s = res == null ? def : res.getString(name);
- }
- catch (MissingResourceException x)
- {
- s = def;
- }
- pattern += s;
- }
-
- return new SimpleDateFormat (pattern, loc);
- }
-
- public static final DateFormat getDateInstance ()
- {
- return getDateInstance (DEFAULT, Locale.getDefault());
- }
-
- public static final DateFormat getDateInstance (int style)
- {
- return getDateInstance (style, Locale.getDefault());
- }
-
- public static final DateFormat getDateInstance (int style, Locale loc)
- {
- return computeInstance (style, loc, true, false);
- }
-
- public static final DateFormat getDateTimeInstance ()
- {
- return getDateTimeInstance (DEFAULT, DEFAULT, Locale.getDefault());
- }
-
- public static final DateFormat getDateTimeInstance (int style)
- {
- return getDateTimeInstance (style, style, Locale.getDefault());
- }
-
- public static final DateFormat getDateTimeInstance (int dateStyle,
- int timeStyle)
- {
- return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault());
- }
-
- public static final DateFormat getDateTimeInstance (int dateStyle,
- int timeStyle,
- Locale loc)
- {
- return computeInstance (dateStyle, timeStyle, loc, true, true);
- }
-
- public static final DateFormat getInstance ()
- {
- // JCL book says SHORT.
- return getDateTimeInstance (SHORT, SHORT, Locale.getDefault());
- }
-
- public NumberFormat getNumberFormat ()
- {
- return numberFormat;
- }
-
- public static final DateFormat getTimeInstance ()
- {
- return getTimeInstance (DEFAULT, Locale.getDefault());
- }
-
- public static final DateFormat getTimeInstance (int style)
- {
- return getTimeInstance (style, Locale.getDefault());
- }
-
- public static final DateFormat getTimeInstance (int style, Locale loc)
- {
- return computeInstance (style, loc, false, true);
- }
-
- public TimeZone getTimeZone ()
- {
- return calendar.getTimeZone();
- }
-
- public int hashCode ()
- {
- int hash = calendar.hashCode();
- if (numberFormat != null)
- hash ^= numberFormat.hashCode();
- return hash;
- }
-
- public boolean isLenient ()
- {
- return calendar.isLenient();
- }
-
- public Date parse (String source) throws ParseException
- {
- ParsePosition pos = new ParsePosition(0);
- Date result = parse (source, pos);
- if (result == null)
- {
- int index = pos.getErrorIndex();
- if (index < 0)
- index = pos.getIndex();
- throw new ParseException("invalid Date syntax", index);
- }
- return result;
- }
-
- public abstract Date parse (String source, ParsePosition pos);
-
- public Object parseObject (String source, ParsePosition pos)
- {
- return parse(source, pos);
- }
-
- public void setCalendar (Calendar calendar)
- {
- this.calendar = calendar;
- }
-
- public void setLenient (boolean lenient)
- {
- calendar.setLenient(lenient);
- }
-
- public void setNumberFormat (NumberFormat numberFormat)
- {
- this.numberFormat = numberFormat;
- }
-
- public void setTimeZone (TimeZone timeZone)
- {
- calendar.setTimeZone(timeZone);
- }
-}
diff --git a/libjava/java/text/DateFormatSymbols.java b/libjava/java/text/DateFormatSymbols.java
deleted file mode 100644
index 91b1292ef27..00000000000
--- a/libjava/java/text/DateFormatSymbols.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3.
- * Status: Believed complete and correct.
- */
-
-public class DateFormatSymbols extends Object
- implements java.io.Serializable, Cloneable
-{
- private String[] ampms;
- private String[] eras;
- private String localPatternChars;
- private String[] months;
- private String[] shortMonths;
- private String[] shortWeekdays;
- private String[] weekdays;
- private String[][] zoneStrings;
-
- private static final String[] ampmsDefault = {"AM", "PM" };
- private static final String[] erasDefault = {"BC", "AD" };
- // localPatternCharsDefault is used by SimpleDateFormat.
- protected static final String localPatternCharsDefault
- = "GyMdkHmsSEDFwWahKz";
- private static final String[] monthsDefault = {
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December", ""
- };
- private static final String[] shortMonthsDefault = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""
- };
- private static final String[] shortWeekdaysDefault = {
- "", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
- };
- private static final String[] weekdaysDefault = {
- "", "Sunday", "Monday", "Tuesday",
- "Wednesday", "Thursday", "Friday", "Saturday"
- };
-
- private static String[][] zoneStringsDefault = {
- { "PST", "Pacific Standard Time", "PST",
- /**/ "Pacific Daylight Time", "PDT", "San Francisco" },
- { "MST", "Mountain Standard Time", "MST",
- /**/ "Mountain Daylight Time", "MDT", "Denver" },
- { "PNT", "Mountain Standard Time", "MST",
- /**/ "Mountain Standard Time", "MST", "Phoenix" },
- { "CST", "Central Standard Time", "CST",
- /**/ "Central Daylight Time", "CDT", "Chicago" },
- { "EST", "Eastern Standard Time", "EST",
- /**/ "Eastern Daylight Time", "EDT", "Boston" },
- { "IET", "Eastern Standard Time", "EST",
- /**/ "Eastern Standard Time", "EST", "Indianapolis" },
- { "PRT", "Atlantic Standard Time", "AST",
- /**/ "Atlantic Daylight Time", "ADT", "Halifax" },
- { "HST", "Hawaii Standard Time", "HST",
- /**/ "Hawaii Daylight Time", "HDT", "Honolulu" },
- { "AST", "Alaska Standard Time", "AST",
- /**/ "Alaska Daylight Time", "ADT", "Anchorage" }
- };
-
- private final Object safeGetResource (ResourceBundle res,
- String key, Object def)
- {
- if (res != null)
- {
- try
- {
- return res.getObject(key);
- }
- catch (MissingResourceException x)
- {
- }
- }
- return def;
- }
-
- public DateFormatSymbols (Locale locale)
- {
- ResourceBundle res;
- try
- {
- res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", locale);
- }
- catch (MissingResourceException x)
- {
- res = null;
- }
- ampms = (String[]) safeGetResource (res, "ampm", ampmsDefault);
- eras = (String[]) safeGetResource (res, "eras", erasDefault);
- localPatternChars = (String) safeGetResource (res, "datePatternChars",
- localPatternCharsDefault);
- months = (String[]) safeGetResource (res, "months", monthsDefault);
- shortMonths = (String[]) safeGetResource (res, "shortMonths",
- shortMonthsDefault);
- shortWeekdays = (String[]) safeGetResource (res, "shortWeekdays",
- shortWeekdaysDefault);
- weekdays = (String[]) safeGetResource (res, "weekdays", weekdaysDefault);
- zoneStrings = (String[][]) safeGetResource (res, "zoneStrings",
- zoneStringsDefault);
- }
-
- public DateFormatSymbols ()
- {
- this (Locale.getDefault());
- }
-
- // Copy constructor.
- private DateFormatSymbols (DateFormatSymbols old)
- {
- ampms = old.ampms;
- eras = old.eras;
- localPatternChars = old.localPatternChars;
- months = old.months;
- shortMonths = old.shortMonths;
- shortWeekdays = old.shortWeekdays;
- weekdays = old.weekdays;
- zoneStrings = old.zoneStrings;
- }
-
- public String[] getAmPmStrings()
- {
- return ampms;
- }
-
- public String[] getEras()
- {
- return eras;
- }
-
-
- public String getLocalPatternChars()
- {
- return localPatternChars;
- }
-
- public String[] getMonths ()
- {
- return months;
- }
-
- public String[] getShortMonths ()
- {
- return shortMonths;
- }
-
- public String[] getShortWeekdays ()
- {
- return shortWeekdays;
- }
-
- public String[] getWeekdays ()
- {
- return weekdays;
- }
-
- public String[] [] getZoneStrings ()
- {
- return zoneStrings;
- }
-
- public void setAmPmStrings (String[] value)
- {
- ampms = value;
- }
-
- public void setEras (String[] value)
- {
- eras = value;
- }
-
- public void setLocalPatternChars (String value)
- {
- localPatternChars = value;
- }
-
- public void setMonths (String[] value)
- {
- months = value;
- }
-
- public void setShortMonths (String[] value)
- {
- shortMonths = value;
- }
-
- public void setShortWeekdays (String[] value)
- {
- shortWeekdays = value;
- }
-
- public void setWeekdays (String[] value)
- {
- weekdays = value;
- }
-
- public void setZoneStrings (String[][] value)
- {
- zoneStrings = value;
- }
-
- /* Does a "deep" equality test - recurses into arrays. */
- protected static boolean equals (Object x, Object y)
- {
- if (x == y)
- return true;
- if (x == null || y == null)
- return false;
- if (! (x instanceof Object[]) || ! (y instanceof Object[]))
- return x.equals(y);
- Object[] xa = (Object[]) x;
- Object[] ya = (Object[]) y;
- if (xa.length != ya.length)
- return false;
- for (int i = xa.length; --i >= 0; )
- {
- if (! equals(xa[i], ya[i]))
- return false;
- }
- return true;
- }
-
- private static int hashCode (Object x)
- {
- if (x == null)
- return 0;
- if (! (x instanceof Object[]))
- return x.hashCode();
- Object[] xa = (Object[]) x;
- int hash = 0;
- for (int i = 0; i < xa.length; i++)
- hash = 37 * hashCode(xa[i]);
- return hash;
- }
-
- public boolean equals (Object obj)
- {
- if (obj == null || ! (obj instanceof DateFormatSymbols))
- return false;
- DateFormatSymbols other = (DateFormatSymbols) obj;
- return (equals(ampms, other.ampms)
- && equals(eras, other.eras)
- && equals(localPatternChars, other.localPatternChars)
- && equals(months, other.months)
- && equals(shortMonths, other.shortMonths)
- && equals(shortWeekdays, other.shortWeekdays)
- && equals(weekdays, other.weekdays)
- && equals(zoneStrings, other.zoneStrings));
- }
-
- public Object clone ()
- {
- return new DateFormatSymbols (this);
- }
-
- public int hashCode ()
- {
- return (hashCode(ampms)
- ^ hashCode(eras)
- ^ hashCode(localPatternChars)
- ^ hashCode(months)
- ^ hashCode(shortMonths)
- ^ hashCode(shortWeekdays)
- ^ hashCode(weekdays)
- ^ hashCode(zoneStrings));
- }
-}
diff --git a/libjava/java/text/DecimalFormat.java b/libjava/java/text/DecimalFormat.java
deleted file mode 100644
index 9e7513eebaa..00000000000
--- a/libjava/java/text/DecimalFormat.java
+++ /dev/null
@@ -1,986 +0,0 @@
-// DecimalFormat.java - Localized number formatting.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 4, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.2, except serialization.
- * Note however that the docs are very unclear about how format parsing
- * should work. No doubt there are problems here.
- */
-
-public class DecimalFormat extends NumberFormat
-{
- // This is a helper for applyPatternWithSymbols. It reads a prefix
- // or a suffix. It can cause some side-effects.
- private final int scanFix (String pattern, int index, StringBuffer buf,
- String patChars, DecimalFormatSymbols syms,
- boolean is_suffix)
- {
- int len = pattern.length();
- buf.setLength(0);
- boolean multiplierSet = false;
- while (index < len)
- {
- char c = pattern.charAt(index);
- if (c == '\'' && index + 1 < len
- && pattern.charAt(index + 1) == '\'')
- {
- buf.append(c);
- ++index;
- }
- else if (c == '\'' && index + 2 < len
- && pattern.charAt(index + 2) == '\'')
- {
- buf.append(pattern.charAt(index + 1));
- index += 2;
- }
- else if (c == '\u00a4')
- {
- if (index + 1 < len && pattern.charAt(index + 1) == '\u00a4')
- {
- buf.append(syms.getInternationalCurrencySymbol());
- ++index;
- }
- else
- buf.append(syms.getCurrencySymbol());
- }
- else if (is_suffix && c == syms.getPercent())
- {
- if (multiplierSet)
- throw new IllegalArgumentException ("multiplier already set " +
- "- index: " + index);
- multiplierSet = true;
- multiplier = 100;
- buf.append(c);
- }
- else if (is_suffix && c == syms.getPerMill())
- {
- if (multiplierSet)
- throw new IllegalArgumentException ("multiplier already set " +
- "- index: " + index);
- multiplierSet = true;
- multiplier = 1000;
- buf.append(c);
- }
- else if (patChars.indexOf(c) != -1)
- {
- // This is a pattern character.
- break;
- }
- else
- buf.append(c);
- ++index;
- }
-
- return index;
- }
-
- // A helper which reads a number format.
- private final int scanFormat (String pattern, int index,
- String patChars, DecimalFormatSymbols syms,
- boolean is_positive)
- {
- int max = pattern.length();
-
- int countSinceGroup = 0;
- int zeroCount = 0;
- boolean saw_group = false;
-
- //
- // Scan integer part.
- //
- while (index < max)
- {
- char c = pattern.charAt(index);
-
- if (c == syms.getDigit())
- {
- if (zeroCount > 0)
- throw new IllegalArgumentException ("digit mark following " +
- "zero - index: " + index);
- ++countSinceGroup;
- }
- else if (c == syms.getZeroDigit())
- {
- ++zeroCount;
- ++countSinceGroup;
- }
- else if (c == syms.getGroupingSeparator())
- {
- countSinceGroup = 0;
- saw_group = true;
- }
- else
- break;
-
- ++index;
- }
-
- // We can only side-effect when parsing the positive format.
- if (is_positive)
- {
- groupingUsed = saw_group;
- groupingSize = (byte) countSinceGroup;
- minimumIntegerDigits = zeroCount;
- }
-
- // Early termination.
- if (index == max || pattern.charAt(index) == syms.getGroupingSeparator())
- {
- if (is_positive)
- decimalSeparatorAlwaysShown = false;
- return index;
- }
-
- if (pattern.charAt(index) == syms.getDecimalSeparator())
- {
- ++index;
-
- //
- // Scan fractional part.
- //
- int hashCount = 0;
- zeroCount = 0;
- while (index < max)
- {
- char c = pattern.charAt(index);
- if (c == syms.getZeroDigit())
- {
- if (hashCount > 0)
- throw new IllegalArgumentException ("zero mark " +
- "following digit - index: " + index);
- ++zeroCount;
- }
- else if (c == syms.getDigit())
- {
- ++hashCount;
- }
- else if (c != syms.getExponential()
- && c != syms.getPatternSeparator()
- && patChars.indexOf(c) != -1)
- throw new IllegalArgumentException ("unexpected special " +
- "character - index: " + index);
- else
- break;
-
- ++index;
- }
-
- if (is_positive)
- {
- maximumFractionDigits = hashCount + zeroCount;
- minimumFractionDigits = zeroCount;
- }
-
- if (index == max)
- return index;
- }
-
- if (pattern.charAt(index) == syms.getExponential())
- {
- //
- // Scan exponential format.
- //
- zeroCount = 0;
- ++index;
- while (index < max)
- {
- char c = pattern.charAt(index);
- if (c == syms.getZeroDigit())
- ++zeroCount;
- else if (c == syms.getDigit())
- {
- if (zeroCount > 0)
- throw new
- IllegalArgumentException ("digit mark following zero " +
- "in exponent - index: " +
- index);
- }
- else if (patChars.indexOf(c) != -1)
- throw new IllegalArgumentException ("unexpected special " +
- "character - index: " +
- index);
- else
- break;
-
- ++index;
- }
-
- if (is_positive)
- {
- useExponentialNotation = true;
- minExponentDigits = (byte) zeroCount;
- }
- }
-
- return index;
- }
-
- // This helper function creates a string consisting of all the
- // characters which can appear in a pattern and must be quoted.
- private final String patternChars (DecimalFormatSymbols syms)
- {
- StringBuffer buf = new StringBuffer ();
- buf.append(syms.getDecimalSeparator());
- buf.append(syms.getDigit());
- buf.append(syms.getExponential());
- buf.append(syms.getGroupingSeparator());
- // Adding this one causes pattern application to fail.
- // Of course, omitting is causes toPattern to fail.
- // ... but we already have bugs there. FIXME.
- // buf.append(syms.getMinusSign());
- buf.append(syms.getPatternSeparator());
- buf.append(syms.getPercent());
- buf.append(syms.getPerMill());
- buf.append(syms.getZeroDigit());
- buf.append('\u00a4');
- return buf.toString();
- }
-
- private final void applyPatternWithSymbols (String pattern,
- DecimalFormatSymbols syms)
- {
- // Initialize to the state the parser expects.
- negativePrefix = "";
- negativeSuffix = "";
- positivePrefix = "";
- positiveSuffix = "";
- decimalSeparatorAlwaysShown = false;
- groupingSize = 0;
- minExponentDigits = 0;
- multiplier = 1;
- useExponentialNotation = false;
- groupingUsed = false;
- maximumFractionDigits = 0;
- maximumIntegerDigits = 309;
- minimumFractionDigits = 0;
- minimumIntegerDigits = 1;
-
- StringBuffer buf = new StringBuffer ();
- String patChars = patternChars (syms);
-
- int max = pattern.length();
- int index = scanFix (pattern, 0, buf, patChars, syms, false);
- positivePrefix = buf.toString();
-
- index = scanFormat (pattern, index, patChars, syms, true);
-
- index = scanFix (pattern, index, buf, patChars, syms, true);
- positiveSuffix = buf.toString();
-
- if (index == pattern.length())
- {
- // No negative info.
- negativePrefix = null;
- negativeSuffix = null;
- }
- else
- {
- if (pattern.charAt(index) != syms.getPatternSeparator())
- throw new IllegalArgumentException ("separator character " +
- "expected - index: " + index);
-
- index = scanFix (pattern, index + 1, buf, patChars, syms, false);
- negativePrefix = buf.toString();
-
- // We parse the negative format for errors but we don't let
- // it side-effect this object.
- index = scanFormat (pattern, index, patChars, syms, false);
-
- index = scanFix (pattern, index, buf, patChars, syms, true);
- negativeSuffix = buf.toString();
-
- if (index != pattern.length())
- throw new IllegalArgumentException ("end of pattern expected " +
- "- index: " + index);
- }
- }
-
- public void applyLocalizedPattern (String pattern)
- {
- // JCL p. 638 claims this throws a ParseException but p. 629
- // contradicts this. Empirical tests with patterns of "0,###.0"
- // and "#.#.#" corroborate the p. 629 statement that an
- // IllegalArgumentException is thrown.
- applyPatternWithSymbols (pattern, symbols);
- }
-
- public void applyPattern (String pattern)
- {
- // JCL p. 638 claims this throws a ParseException but p. 629
- // contradicts this. Empirical tests with patterns of "0,###.0"
- // and "#.#.#" corroborate the p. 629 statement that an
- // IllegalArgumentException is thrown.
- applyPatternWithSymbols (pattern, nonLocalizedSymbols);
- }
-
- public Object clone ()
- {
- return new DecimalFormat (this);
- }
-
- private DecimalFormat (DecimalFormat dup)
- {
- decimalSeparatorAlwaysShown = dup.decimalSeparatorAlwaysShown;
- groupingSize = dup.groupingSize;
- minExponentDigits = dup.minExponentDigits;
- multiplier = dup.multiplier;
- negativePrefix = dup.negativePrefix;
- negativeSuffix = dup.negativeSuffix;
- positivePrefix = dup.positivePrefix;
- positiveSuffix = dup.positiveSuffix;
- symbols = (DecimalFormatSymbols) dup.symbols.clone();
- useExponentialNotation = dup.useExponentialNotation;
- }
-
- public DecimalFormat ()
- {
- this ("#,##0.###");
- }
-
- public DecimalFormat (String pattern)
- {
- this (pattern, new DecimalFormatSymbols ());
- }
-
- public DecimalFormat (String pattern, DecimalFormatSymbols symbols)
- {
- this.symbols = symbols;
- applyPattern (pattern);
- }
-
- private final boolean equals (String s1, String s2)
- {
- if (s1 == null || s2 == null)
- return s1 == s2;
- return s1.equals(s2);
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof DecimalFormat))
- return false;
- DecimalFormat dup = (DecimalFormat) obj;
- return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown
- && groupingSize == dup.groupingSize
- && minExponentDigits == dup.minExponentDigits
- && multiplier == dup.multiplier
- && equals(negativePrefix, dup.negativePrefix)
- && equals(negativeSuffix, dup.negativeSuffix)
- && equals(positivePrefix, dup.positivePrefix)
- && equals(positiveSuffix, dup.positiveSuffix)
- && symbols.equals(dup.symbols)
- && useExponentialNotation == dup.useExponentialNotation);
- }
-
- public StringBuffer format (double number, StringBuffer dest,
- FieldPosition fieldPos)
- {
- // A very special case.
- if (Double.isNaN(number))
- {
- dest.append(symbols.getNaN());
- if (fieldPos != null && fieldPos.getField() == INTEGER_FIELD)
- {
- int index = dest.length();
- fieldPos.setBeginIndex(index - symbols.getNaN().length());
- fieldPos.setEndIndex(index);
- }
- return dest;
- }
-
- boolean is_neg = number < 0;
- if (is_neg)
- {
- if (negativePrefix != null)
- dest.append(negativePrefix);
- else
- {
- dest.append(symbols.getMinusSign());
- dest.append(positivePrefix);
- }
- number = - number;
- }
- else
- dest.append(positivePrefix);
-
- int integerBeginIndex = dest.length();
- int integerEndIndex = 0;
- if (Double.isInfinite (number))
- {
- dest.append(symbols.getInfinity());
- integerEndIndex = dest.length();
- }
- else
- {
- number *= multiplier;
-
- // Compute exponent.
- long exponent = 0;
- double baseNumber;
- if (useExponentialNotation)
- {
- exponent = (long) (Math.log(number) / Math.log(10));
- if (minimumIntegerDigits > 0)
- exponent -= minimumIntegerDigits - 1;
- baseNumber = (long) (number / Math.pow(10.0, exponent));
- }
- else
- baseNumber = number;
-
- // Round to the correct number of digits.
- baseNumber += 5 * Math.pow(10.0, - maximumFractionDigits - 1);
-
- int index = dest.length();
- double intPart = Math.floor(baseNumber);
- int count = 0;
- while (count < maximumIntegerDigits
- && (intPart > 0 || count < minimumIntegerDigits))
- {
- long dig = (long) (intPart % 10);
- intPart = Math.floor(intPart / 10);
-
- // Append group separator if required.
- if (groupingUsed && count > 0 && count % groupingSize == 0)
- dest.insert(index, symbols.getGroupingSeparator());
-
- dest.insert(index, (char) (symbols.getZeroDigit() + dig));
-
- ++count;
- }
-
- integerEndIndex = dest.length();
-
- int decimal_index = integerEndIndex;
- int consecutive_zeros = 0;
- int total_digits = 0;
-
- // Strip integer part from NUMBER.
- double fracPart = baseNumber - Math.floor(baseNumber);
- for (count = 0;
- count < maximumFractionDigits
- && (fracPart != 0 || count < minimumFractionDigits);
- ++count)
- {
- ++total_digits;
- fracPart *= 10;
- long dig = (long) fracPart;
- if (dig == 0)
- ++consecutive_zeros;
- else
- consecutive_zeros = 0;
- dest.append((char) (symbols.getZeroDigit() + dig));
-
- // Strip integer part from FRACPART.
- fracPart = fracPart - Math.floor (fracPart);
- }
-
- // Strip extraneous trailing `0's. We can't always detect
- // these in the loop.
- int extra_zeros = Math.min (consecutive_zeros,
- total_digits - minimumFractionDigits);
- if (extra_zeros > 0)
- {
- dest.setLength(dest.length() - extra_zeros);
- total_digits -= extra_zeros;
- }
-
- // If required, add the decimal symbol.
- if (decimalSeparatorAlwaysShown
- || total_digits > 0)
- {
- dest.insert(decimal_index, symbols.getDecimalSeparator());
- if (fieldPos != null && fieldPos.getField() == FRACTION_FIELD)
- {
- fieldPos.setBeginIndex(decimal_index + 1);
- fieldPos.setEndIndex(dest.length());
- }
- }
-
- // Finally, print the exponent.
- if (useExponentialNotation)
- {
- dest.append(symbols.getExponential());
- dest.append(exponent < 0 ? '-' : '+');
- index = dest.length();
- for (count = 0;
- exponent > 0 || count < minExponentDigits;
- ++count)
- {
- long dig = exponent % 10;
- exponent /= 10;
- dest.insert(index, (char) (symbols.getZeroDigit() + dig));
- }
- }
- }
-
- if (fieldPos != null && fieldPos.getField() == INTEGER_FIELD)
- {
- fieldPos.setBeginIndex(integerBeginIndex);
- fieldPos.setEndIndex(integerEndIndex);
- }
-
- dest.append((is_neg && negativeSuffix != null)
- ? negativeSuffix
- : positiveSuffix);
- return dest;
- }
-
- public StringBuffer format (long number, StringBuffer dest,
- FieldPosition fieldPos)
- {
- // If using exponential notation, we just format as a double.
- if (useExponentialNotation)
- return format ((double) number, dest, fieldPos);
-
- boolean is_neg = number < 0;
- if (is_neg)
- {
- if (negativePrefix != null)
- dest.append(negativePrefix);
- else
- {
- dest.append(symbols.getMinusSign());
- dest.append(positivePrefix);
- }
- number = - number;
- }
- else
- dest.append(positivePrefix);
-
- int integerBeginIndex = dest.length();
- int index = dest.length();
- int count = 0;
- while (count < maximumIntegerDigits
- && (number > 0 || count < minimumIntegerDigits))
- {
- long dig = number % 10;
- number /= 10;
- // NUMBER and DIG will be less than 0 if the original number
- // was the most negative long.
- if (dig < 0)
- {
- dig = - dig;
- number = - number;
- }
-
- // Append group separator if required.
- if (groupingUsed && count > 0 && count % groupingSize == 0)
- dest.insert(index, symbols.getGroupingSeparator());
-
- dest.insert(index, (char) (symbols.getZeroDigit() + dig));
-
- ++count;
- }
-
- if (fieldPos != null && fieldPos.getField() == INTEGER_FIELD)
- {
- fieldPos.setBeginIndex(integerBeginIndex);
- fieldPos.setEndIndex(dest.length());
- }
-
- if (decimalSeparatorAlwaysShown || minimumFractionDigits > 0)
- {
- dest.append(symbols.getDecimalSeparator());
- if (fieldPos != null && fieldPos.getField() == FRACTION_FIELD)
- {
- fieldPos.setBeginIndex(dest.length());
- fieldPos.setEndIndex(dest.length() + minimumFractionDigits);
- }
- }
-
- for (count = 0; count < minimumFractionDigits; ++count)
- dest.append(symbols.getZeroDigit());
-
- dest.append((is_neg && negativeSuffix != null)
- ? negativeSuffix
- : positiveSuffix);
- return dest;
- }
-
- public DecimalFormatSymbols getDecimalFormatSymbols ()
- {
- return symbols;
- }
-
- public int getGroupingSize ()
- {
- return groupingSize;
- }
-
- public int getMultiplier ()
- {
- return multiplier;
- }
-
- public String getNegativePrefix ()
- {
- return negativePrefix;
- }
-
- public String getNegativeSuffix ()
- {
- return negativeSuffix;
- }
-
- public String getPositivePrefix ()
- {
- return positivePrefix;
- }
-
- public String getPositiveSuffix ()
- {
- return positiveSuffix;
- }
-
- public int hashCode ()
- {
- int hash = (negativeSuffix.hashCode() ^ negativePrefix.hashCode()
- ^positivePrefix.hashCode() ^ positiveSuffix.hashCode());
- // FIXME.
- return hash;
- }
-
- public boolean isDecimalSeparatorAlwaysShown ()
- {
- return decimalSeparatorAlwaysShown;
- }
-
- public Number parse (String str, ParsePosition pos)
- {
- // Our strategy is simple: copy the text into a buffer,
- // translating or omitting locale-specific information. Then
- // let Double or Long convert the number for us.
-
- boolean is_neg = false;
- int index = pos.getIndex();
- StringBuffer buf = new StringBuffer ();
-
- // We have to check both prefixes, because one might be empty.
- // We want to pick the longest prefix that matches.
- boolean got_pos = str.startsWith(positivePrefix, index);
- String np = (negativePrefix != null
- ? negativePrefix
- : positivePrefix + symbols.getMinusSign());
- boolean got_neg = str.startsWith(np, index);
-
- if (got_pos && got_neg)
- {
- // By checking this way, we preserve ambiguity in the case
- // where the negative format differs only in suffix. We
- // check this again later.
- if (np.length() > positivePrefix.length())
- {
- is_neg = true;
- index += np.length();
- }
- else
- index += positivePrefix.length();
- }
- else if (got_neg)
- {
- is_neg = true;
- index += np.length();
- }
- else if (got_pos)
- index += positivePrefix.length();
- else
- {
- pos.setErrorIndex (index);
- return null;
- }
-
- // FIXME: handle Inf and NaN.
-
- // FIXME: do we have to respect minimum/maxmimum digit stuff?
- // What about leading zeros? What about multiplier?
-
- int start_index = index;
- int max = str.length();
- char zero = symbols.getZeroDigit();
- int last_group = -1;
- boolean int_part = true;
- boolean exp_part = false;
- for (; index < max; ++index)
- {
- char c = str.charAt(index);
-
- // FIXME: what about grouping size?
- if (groupingUsed && c == symbols.getGroupingSeparator())
- {
- if (last_group != -1
- && (index - last_group) % groupingSize != 0)
- {
- pos.setErrorIndex(index);
- return null;
- }
- last_group = index;
- }
- else if (c >= zero && c <= zero + 9)
- {
- buf.append((char) (c - zero + '0'));
- exp_part = false;
- }
- else if (parseIntegerOnly)
- break;
- else if (c == symbols.getDecimalSeparator())
- {
- if (last_group != -1
- && (index - last_group) % groupingSize != 0)
- {
- pos.setErrorIndex(index);
- return null;
- }
- buf.append('.');
- int_part = false;
- }
- else if (c == symbols.getExponential())
- {
- buf.append('E');
- int_part = false;
- exp_part = true;
- }
- else if (exp_part
- && (c == '+' || c == '-' || c == symbols.getMinusSign()))
- {
- // For exponential notation.
- buf.append(c);
- }
- else
- break;
- }
-
- if (index == start_index)
- {
- // Didn't see any digits.
- pos.setErrorIndex(index);
- return null;
- }
-
- // Check the suffix. We must do this before converting the
- // buffer to a number to handle the case of a number which is
- // the most negative Long.
- boolean got_pos_suf = str.startsWith(positiveSuffix, index);
- String ns = (negativePrefix == null ? positiveSuffix : negativeSuffix);
- boolean got_neg_suf = str.startsWith(ns, index);
- if (is_neg)
- {
- if (! got_neg_suf)
- {
- pos.setErrorIndex(index);
- return null;
- }
- }
- else if (got_pos && got_neg && got_neg_suf)
- {
- is_neg = true;
- }
- else if (got_pos != got_pos_suf && got_neg != got_neg_suf)
- {
- pos.setErrorIndex(index);
- return null;
- }
-
- String suffix = is_neg ? ns : positiveSuffix;
- if (is_neg)
- buf.insert(0, '-');
-
- String t = buf.toString();
- Number result = null;
- try
- {
- result = new Long (t);
- }
- catch (NumberFormatException x1)
- {
- try
- {
- result = new Double (t);
- }
- catch (NumberFormatException x2)
- {
- }
- }
- if (result == null)
- {
- pos.setErrorIndex(index);
- return null;
- }
-
- pos.setIndex(index + suffix.length());
-
- return result;
- }
-
- public void setDecimalFormatSymbols (DecimalFormatSymbols newSymbols)
- {
- symbols = newSymbols;
- }
-
- public void setDecimalSeparatorAlwaysShown (boolean newValue)
- {
- decimalSeparatorAlwaysShown = newValue;
- }
-
- public void setGroupingSize (int groupSize)
- {
- groupingSize = (byte) groupSize;
- }
-
- public void setMaximumFractionDigits (int newValue)
- {
- maximumFractionDigits = Math.min(newValue, 340);
- }
-
- public void setMaximumIntegerDigits (int newValue)
- {
- maximumIntegerDigits = Math.min(newValue, 309);
- }
-
- public void setMinimumFractionDigits (int newValue)
- {
- minimumFractionDigits = Math.min(newValue, 340);
- }
-
- public void setMinimumIntegerDigits (int newValue)
- {
- minimumIntegerDigits = Math.min(newValue, 309);
- }
-
- public void setMultiplier (int newValue)
- {
- multiplier = newValue;
- }
-
- public void setNegativePrefix (String newValue)
- {
- negativePrefix = newValue;
- }
-
- public void setNegativeSuffix (String newValue)
- {
- negativeSuffix = newValue;
- }
-
- public void setPositivePrefix (String newValue)
- {
- positivePrefix = newValue;
- }
-
- public void setPositiveSuffix (String newValue)
- {
- positiveSuffix = newValue;
- }
-
- private final void quoteFix (StringBuffer buf, String text, String patChars)
- {
- int len = text.length();
- for (int index = 0; index < len; ++index)
- {
- char c = text.charAt(index);
- if (patChars.indexOf(c) != -1)
- {
- buf.append('\'');
- buf.append(c);
- buf.append('\'');
- }
- else
- buf.append(c);
- }
- }
-
- private final String computePattern (DecimalFormatSymbols syms)
- {
- StringBuffer mainPattern = new StringBuffer ();
- // We have to at least emit a zero for the minimum number of
- // digits. Past that we need hash marks up to the grouping
- // separator (and one beyond).
- int total_digits = Math.max(minimumIntegerDigits,
- groupingUsed ? groupingSize + 1: 0);
- for (int i = 0; i < total_digits - minimumIntegerDigits; ++i)
- mainPattern.append(syms.getDigit());
- for (int i = total_digits - minimumIntegerDigits; i < total_digits; ++i)
- mainPattern.append(syms.getZeroDigit());
- // Inserting the gropuing operator afterwards is easier.
- if (groupingUsed)
- mainPattern.insert(mainPattern.length() - groupingSize,
- syms.getGroupingSeparator());
- // See if we need decimal info.
- if (minimumFractionDigits > 0 || maximumFractionDigits > 0
- || decimalSeparatorAlwaysShown)
- mainPattern.append(syms.getDecimalSeparator());
- for (int i = 0; i < minimumFractionDigits; ++i)
- mainPattern.append(syms.getZeroDigit());
- for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i)
- mainPattern.append(syms.getDigit());
- if (useExponentialNotation)
- {
- mainPattern.append(syms.getExponential());
- for (int i = 0; i < minExponentDigits; ++i)
- mainPattern.append(syms.getZeroDigit());
- if (minExponentDigits == 0)
- mainPattern.append(syms.getDigit());
- }
-
- String main = mainPattern.toString();
- String patChars = patternChars (syms);
- mainPattern.setLength(0);
-
- quoteFix (mainPattern, positivePrefix, patChars);
- mainPattern.append(main);
- quoteFix (mainPattern, positiveSuffix, patChars);
-
- if (negativePrefix != null)
- {
- quoteFix (mainPattern, negativePrefix, patChars);
- mainPattern.append(main);
- quoteFix (mainPattern, negativeSuffix, patChars);
- }
-
- return mainPattern.toString();
- }
-
- public String toLocalizedPattern ()
- {
- return computePattern (symbols);
- }
-
- public String toPattern ()
- {
- return computePattern (nonLocalizedSymbols);
- }
-
- // These names are fixed by the serialization spec.
- private boolean decimalSeparatorAlwaysShown;
- private byte groupingSize;
- private byte minExponentDigits;
- private int multiplier;
- private String negativePrefix;
- private String negativeSuffix;
- private String positivePrefix;
- private String positiveSuffix;
- private DecimalFormatSymbols symbols;
- private boolean useExponentialNotation;
-
- // The locale-independent pattern symbols happen to be the same as
- // the US symbols.
- private static final DecimalFormatSymbols nonLocalizedSymbols
- = new DecimalFormatSymbols (Locale.US);
-}
diff --git a/libjava/java/text/DecimalFormatSymbols.java b/libjava/java/text/DecimalFormatSymbols.java
deleted file mode 100644
index 1d51fbdb42f..00000000000
--- a/libjava/java/text/DecimalFormatSymbols.java
+++ /dev/null
@@ -1,293 +0,0 @@
-// DecimalFormatSymbols.java - Symbols used to format numbers.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.io.Serializable;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 24, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.2, except serialization.
- */
-
-public final class DecimalFormatSymbols implements Cloneable, Serializable
-{
- public Object clone ()
- {
- return new DecimalFormatSymbols (this);
- }
-
- private DecimalFormatSymbols (DecimalFormatSymbols orig)
- {
- this.currencySymbol = orig.currencySymbol;
- this.decimalSeparator = orig.decimalSeparator;
- this.digit = orig.digit;
- this.exponential = orig.exponential;
- this.groupingSeparator = orig.groupingSeparator;
- this.infinity = orig.infinity;
- this.intlCurrencySymbol = orig.intlCurrencySymbol;
- this.minusSign = orig.minusSign;
- this.NaN = orig.NaN;
- this.patternSeparator = orig.patternSeparator;
- this.percent = orig.percent;
- this.perMill = orig.perMill;
- this.zeroDigit = orig.zeroDigit;
- }
-
- public DecimalFormatSymbols ()
- {
- this (Locale.getDefault());
- }
-
- private final String safeGetString (ResourceBundle bundle,
- String name, String def)
- {
- if (bundle != null)
- {
- try
- {
- return bundle.getString(name);
- }
- catch (MissingResourceException x)
- {
- }
- }
- return def;
- }
-
- public final char safeGetChar (ResourceBundle bundle,
- String name, char def)
- {
- String r = null;
- if (bundle != null)
- {
- try
- {
- r = bundle.getString(name);
- }
- catch (MissingResourceException x)
- {
- }
- }
- if (r == null || r.length() < 1)
- return def;
- return r.charAt(0);
- }
-
- public DecimalFormatSymbols (Locale loc)
- {
- ResourceBundle res;
- try
- {
- res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", loc);
- }
- catch (MissingResourceException x)
- {
- res = null;
- }
- currencySymbol = safeGetString (res, "currencySymbol", "$");
- decimalSeparator = safeGetChar (res, "decimalSeparator", '.');
- digit = safeGetChar (res, "digit", '#');
- exponential = safeGetChar (res, "exponential", 'E');
- groupingSeparator = safeGetChar (res, "groupingSeparator", ',');
- infinity = safeGetString (res, "infinity", "\u221e");
- // FIXME: default?
- intlCurrencySymbol = safeGetString (res, "intlCurrencySymbol", "$");
- minusSign = safeGetChar (res, "minusSign", '-');
- NaN = safeGetString (res, "NaN", "\ufffd");
- patternSeparator = safeGetChar (res, "patternSeparator", ';');
- percent = safeGetChar (res, "percent", '%');
- perMill = safeGetChar (res, "perMill", '\u2030');
- zeroDigit = safeGetChar (res, "zeroDigit", '0');
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof DecimalFormatSymbols))
- return false;
- DecimalFormatSymbols dfs = (DecimalFormatSymbols) obj;
- return (currencySymbol.equals(dfs.currencySymbol)
- && decimalSeparator == dfs.decimalSeparator
- && digit == dfs.digit
- && exponential == dfs.exponential
- && groupingSeparator == dfs.groupingSeparator
- && infinity.equals(dfs.infinity)
- && intlCurrencySymbol.equals(dfs.intlCurrencySymbol)
- && minusSign == dfs.minusSign
- && NaN.equals(dfs.NaN)
- && patternSeparator == dfs.patternSeparator
- && percent == dfs.percent
- && perMill == dfs.perMill
- && zeroDigit == dfs.zeroDigit);
- }
-
- public String getCurrencySymbol ()
- {
- return currencySymbol;
- }
-
- public char getDecimalSeparator ()
- {
- return decimalSeparator;
- }
-
- public char getDigit ()
- {
- return digit;
- }
-
- // This is our own extension.
- char getExponential ()
- {
- return exponential;
- }
-
- public char getGroupingSeparator ()
- {
- return groupingSeparator;
- }
-
- public String getInfinity ()
- {
- return infinity;
- }
-
- public String getInternationalCurrencySymbol ()
- {
- return intlCurrencySymbol;
- }
-
- public char getMinusSign ()
- {
- return minusSign;
- }
-
- public String getNaN ()
- {
- return NaN;
- }
-
- public char getPatternSeparator ()
- {
- return patternSeparator;
- }
-
- public char getPercent ()
- {
- return percent;
- }
-
- public char getPerMill ()
- {
- return perMill;
- }
-
- public char getZeroDigit ()
- {
- return zeroDigit;
- }
-
- public int hashCode ()
- {
- // Compute based on zero digit, grouping separator, and decimal
- // separator -- JCL book. This probably isn't a very good hash
- // code.
- return zeroDigit << 16 + groupingSeparator << 8 + decimalSeparator;
- }
-
- public void setCurrenySymbol (String currency)
- {
- currencySymbol = currency;
- }
-
- public void setDecimalSeparator (char decimalSep)
- {
- decimalSeparator = decimalSep;
- }
-
- public void setDigit (char digit)
- {
- this.digit = digit;
- }
-
- // This is our own extension.
- void setExponential (char exp)
- {
- exponential = exp;
- }
-
- public void setGroupingSeparator (char groupSep)
- {
- groupingSeparator = groupSep;
- }
-
- public void setInfinity (String infinity)
- {
- this.infinity = infinity;
- }
-
- public void setInternationalCurrencySymbol (String currency)
- {
- intlCurrencySymbol = currency;
- }
-
- public void setMinusSign (char minusSign)
- {
- this.minusSign = minusSign;
- }
-
- public void setNaN (String nan)
- {
- NaN = nan;
- }
-
- public void setPatternSeparator (char patternSep)
- {
- patternSeparator = patternSep;
- }
-
- public void setPercent (char percent)
- {
- this.percent = percent;
- }
-
- public void setPerMill (char perMill)
- {
- this.perMill = perMill;
- }
-
- public void setZeroDigit (char zeroDigit)
- {
- this.zeroDigit = zeroDigit;
- }
-
- // The names of the instance variables are fixed by the
- // serialization spec.
- private String currencySymbol;
- private char decimalSeparator;
- private char digit;
- private char exponential;
- private char groupingSeparator;
- private String infinity;
- private String intlCurrencySymbol;
- private char minusSign;
- private String NaN;
- private char patternSeparator;
- private char percent;
- private char perMill;
- private char zeroDigit;
-}
diff --git a/libjava/java/text/FieldPosition.java b/libjava/java/text/FieldPosition.java
deleted file mode 100644
index c149e0eabb6..00000000000
--- a/libjava/java/text/FieldPosition.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * Includes JDK 1.2 methods.
- */
-
-public class FieldPosition
-{
- int field;
- int beginIndex;
- int endIndex;
-
- public FieldPosition (int field)
- {
- this.field = field;
- }
-
- public int getField ()
- {
- return field;
- }
-
- public int getBeginIndex ()
- {
- return beginIndex;
- }
-
- public int getEndIndex ()
- {
- return endIndex;
- }
-
- public void setBeginIndex (int index)
- {
- beginIndex = index;
- }
-
- public void setEndIndex (int index)
- {
- endIndex = index;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof FieldPosition))
- return false;
- FieldPosition other = (FieldPosition) obj;
- return (field == other.field
- && beginIndex == other.beginIndex && endIndex == other.endIndex);
- }
-}
diff --git a/libjava/java/text/Format.java b/libjava/java/text/Format.java
deleted file mode 100644
index 8360415729b..00000000000
--- a/libjava/java/text/Format.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public abstract class Format implements java.io.Serializable, Cloneable
-{
- public Format ()
- {
- }
-
- public abstract StringBuffer format (Object obj,
- StringBuffer sbuf, FieldPosition pos);
-
- public final String format (Object obj)
- {
- StringBuffer sbuf = new StringBuffer();
- format(obj, sbuf, new FieldPosition(0));
- return sbuf.toString();
- }
-
- public abstract Object parseObject (String source, ParsePosition pos);
-
- public Object parseObject (String source) throws ParseException
- {
- ParsePosition pos = new ParsePosition(0);
- Object result = parseObject (source, pos);
- if (result == null)
- {
- int index = pos.getErrorIndex();
- if (index < 0)
- index = pos.getIndex();
- throw new ParseException("parseObject failed", index);
- }
- return result;
- }
-
- public Object clone ()
- {
- return super.clone ();
- }
-}
diff --git a/libjava/java/text/MessageFormat.java b/libjava/java/text/MessageFormat.java
deleted file mode 100644
index 7109fcf7d04..00000000000
--- a/libjava/java/text/MessageFormat.java
+++ /dev/null
@@ -1,544 +0,0 @@
-// MessageFormat.java - Localized message formatting.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Date;
-import java.util.Locale;
-import java.util.Vector;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 3, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.2, except serialization.
- * and parsing.
- */
-
-final class MessageFormatElement
-{
- // Argument number.
- int argNumber;
- // Formatter to be used. This is the format set by setFormat.
- Format setFormat;
- // Formatter to be used based on the type.
- Format format;
-
- // Argument will be checked to make sure it is an instance of this
- // class.
- Class formatClass;
-
- // Formatter type.
- String type;
- // Formatter style.
- String style;
-
- // Text to follow this element.
- String trailer;
-
- // FIXME: shouldn't need this.
- Class forName (String name)
- {
- try
- {
- return Class.forName (name);
- }
- catch (ClassNotFoundException x)
- {
- }
- return null;
- }
-
- // Recompute the locale-based formatter.
- void setLocale (Locale loc)
- {
- if (type == null)
- ;
- else if (type.equals("number"))
- {
- // FIXME: named class literal.
- // formatClass = Number.class;
- formatClass = forName ("java.lang.Number");
-
- if (style == null)
- format = NumberFormat.getInstance(loc);
- else if (style.equals("currency"))
- format = NumberFormat.getCurrencyInstance(loc);
- else if (style.equals("percent"))
- format = NumberFormat.getPercentInstance(loc);
- else if (style.equals("integer"))
- {
- NumberFormat nf = NumberFormat.getNumberInstance(loc);
- nf.setMaximumFractionDigits(0);
- nf.setGroupingUsed(false);
- format = nf;
- }
- else
- {
- format = NumberFormat.getNumberInstance(loc);
- DecimalFormat df = (DecimalFormat) format;
- try
- {
- df.applyPattern(style);
- }
- catch (ParseException x)
- {
- throw new IllegalArgumentException (x.getMessage());
- }
- }
- }
- else if (type.equals("time") || type.equals("date"))
- {
- // FIXME: named class literal.
- // formatClass = Date.class;
- formatClass = forName ("java.util.Date");
-
- int val = DateFormat.DEFAULT;
- if (style == null)
- ;
- if (style.equals("short"))
- val = DateFormat.SHORT;
- else if (style.equals("medium"))
- val = DateFormat.MEDIUM;
- else if (style.equals("long"))
- val = DateFormat.LONG;
- else if (style.equals("full"))
- val = DateFormat.FULL;
-
- if (type.equals("time"))
- format = DateFormat.getTimeInstance(val, loc);
- else
- format = DateFormat.getDateInstance(val, loc);
-
- if (style != null && val == DateFormat.DEFAULT)
- {
- SimpleDateFormat sdf = (SimpleDateFormat) format;
- sdf.applyPattern(style);
- }
- }
- else if (type.equals("choice"))
- {
- // FIXME: named class literal.
- // formatClass = Number.class;
- formatClass = forName ("java.lang.Number");
-
- if (style == null)
- throw new
- IllegalArgumentException ("style required for choice format");
- format = new ChoiceFormat (style);
- }
- }
-}
-
-public class MessageFormat extends Format
-{
- // Helper that returns the text up to the next format opener. The
- // text is put into BUFFER. Returns index of character after end of
- // string. Throws IllegalArgumentException on error.
- private static final int scanString (String pat, int index,
- StringBuffer buffer)
- {
- int max = pat.length();
- buffer.setLength(0);
- for (; index < max; ++index)
- {
- char c = pat.charAt(index);
- if (c == '\'' && index + 2 < max && pat.charAt(index + 2) == '\'')
- {
- buffer.append(pat.charAt(index + 1));
- index += 2;
- }
- else if (c == '\'' && index + 1 < max
- && pat.charAt(index + 1) == '\'')
- {
- buffer.append(c);
- ++index;
- }
- else if (c == '{')
- break;
- else if (c == '}')
- throw new IllegalArgumentException ();
- else
- buffer.append(c);
- }
- return index;
- }
-
- // This helper retrieves a single part of a format element. Returns
- // the index of the terminating character.
- private static final int scanFormatElement (String pat, int index,
- StringBuffer buffer,
- char term)
- {
- int max = pat.length();
- buffer.setLength(0);
- int brace_depth = 1;
-
- for (; index < max; ++index)
- {
- char c = pat.charAt(index);
- if (c == '\'' && index + 2 < max && pat.charAt(index + 2) == '\'')
- {
- buffer.append(c);
- buffer.append(pat.charAt(index + 1));
- buffer.append(c);
- index += 2;
- }
- else if (c == '\'' && index + 1 < max
- && pat.charAt(index + 1) == '\'')
- {
- buffer.append(c);
- ++index;
- }
- else if (c == '{')
- {
- buffer.append(c);
- ++brace_depth;
- }
- else if (c == '}')
- {
- if (--brace_depth == 0)
- break;
- buffer.append(c);
- }
- // Check for TERM after braces, because TERM might be `}'.
- else if (c == term)
- break;
- else
- buffer.append(c);
- }
- return index;
- }
-
- // This is used to parse a format element and whatever non-format
- // text might trail it.
- private static final int scanFormat (String pat, int index,
- StringBuffer buffer, Vector elts,
- Locale locale)
- {
- MessageFormatElement mfe = new MessageFormatElement ();
- elts.addElement(mfe);
-
- int max = pat.length();
-
- // Skip the opening `{'.
- ++index;
-
- // Fetch the argument number.
- index = scanFormatElement (pat, index, buffer, ',');
- try
- {
- mfe.argNumber = Integer.parseInt(buffer.toString());
- }
- catch (NumberFormatException nfx)
- {
- throw new IllegalArgumentException ();
- }
-
- // Extract the element format.
- if (index < max && pat.charAt(index) == ',')
- {
- index = scanFormatElement (pat, index + 1, buffer, ',');
- mfe.type = buffer.toString();
-
- // Extract the style.
- if (index < max && pat.charAt(index) == ',')
- {
- index = scanFormatElement (pat, index + 1, buffer, '}');
- mfe.style = buffer.toString ();
- }
- }
-
- // Advance past the last terminator.
- if (index >= max || pat.charAt(index) != '}')
- throw new IllegalArgumentException ();
- ++index;
-
- // Now fetch trailing string.
- index = scanString (pat, index, buffer);
- mfe.trailer = buffer.toString ();
-
- mfe.setLocale(locale);
-
- return index;
- }
-
- public void applyPattern (String newPattern)
- {
- pattern = newPattern;
-
- StringBuffer tempBuffer = new StringBuffer ();
-
- int index = scanString (newPattern, 0, tempBuffer);
- leader = tempBuffer.toString();
-
- Vector elts = new Vector ();
- while (index < newPattern.length())
- index = scanFormat (newPattern, index, tempBuffer, elts, locale);
-
- elements = new MessageFormatElement[elts.size()];
- elts.copyInto(elements);
- }
-
- public Object clone ()
- {
- MessageFormat c = new MessageFormat ();
- c.setLocale(locale);
- c.applyPattern(pattern);
- return (Object) c;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof MessageFormat))
- return false;
- MessageFormat mf = (MessageFormat) obj;
- return (pattern.equals(mf.pattern)
- && locale.equals(mf.locale));
- }
-
- public static String format (String pattern, Object arguments[])
- {
- MessageFormat mf = new MessageFormat (pattern);
- StringBuffer sb = new StringBuffer ();
- FieldPosition fp = new FieldPosition (NumberFormat.INTEGER_FIELD);
- return mf.format(arguments, sb, fp).toString();
- }
-
- public final StringBuffer format (Object arguments[], StringBuffer appendBuf,
- FieldPosition ignore)
- {
- appendBuf.append(leader);
-
- for (int i = 0; i < elements.length; ++i)
- {
- if (elements[i].argNumber >= arguments.length)
- throw new IllegalArgumentException ();
- Object thisArg = arguments[elements[i].argNumber];
-
- Format formatter = null;
- if (elements[i].setFormat != null)
- formatter = elements[i].setFormat;
- else if (elements[i].format != null)
- {
- if (elements[i].formatClass != null
- && ! elements[i].formatClass.isInstance(thisArg))
- throw new IllegalArgumentException ();
- formatter = elements[i].format;
- }
- else if (thisArg instanceof Number)
- formatter = NumberFormat.getInstance(locale);
- else if (thisArg instanceof Date)
- formatter = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale);
- else
- appendBuf.append(thisArg);
-
- if (formatter != null)
- {
- // Special-case ChoiceFormat.
- if (formatter instanceof ChoiceFormat)
- {
- StringBuffer buf = new StringBuffer ();
- // FIXME: don't actually know what is correct here.
- // Can a sub-format refer to any argument, or just
- // the single argument passed to it? Must test
- // against JDK.
- formatter.format(thisArg, buf, ignore);
- MessageFormat mf = new MessageFormat ();
- mf.setLocale(locale);
- mf.applyPattern(buf.toString());
- formatter = mf;
- }
- formatter.format(thisArg, appendBuf, ignore);
- }
-
- appendBuf.append(elements[i].trailer);
- }
-
- return appendBuf;
- }
-
- public final StringBuffer format (Object singleArg, StringBuffer appendBuf,
- FieldPosition ignore)
- {
- Object[] args = new Object[1];
- args[0] = singleArg;
- return format (args, appendBuf, ignore);
- }
-
- public Format[] getFormats ()
- {
- Format[] f = new Format[elements.length];
- for (int i = elements.length - 1; i >= 0; --i)
- f[i] = elements[i].setFormat;
- return f;
- }
-
- public Locale getLocale ()
- {
- return locale;
- }
-
- public int hashCode ()
- {
- // FIXME: not a very good hash.
- return pattern.hashCode() + locale.hashCode();
- }
-
- private MessageFormat ()
- {
- }
-
- public MessageFormat (String pattern)
- {
- locale = Locale.getDefault();
- applyPattern (pattern);
- }
-
- public Object[] parse (String sourceStr, ParsePosition pos)
- {
- // Check initial text.
- int index = pos.getIndex();
- if (! sourceStr.startsWith(leader, index))
- {
- pos.setErrorIndex(index);
- return null;
- }
- index += leader.length();
-
- Vector results = new Vector (elements.length, 1);
- // Now check each format.
- for (int i = 0; i < elements.length; ++i)
- {
- Format formatter = null;
- if (elements[i].setFormat != null)
- formatter = elements[i].setFormat;
- else if (elements[i].format != null)
- formatter = elements[i].format;
-
- Object value = null;
- if (formatter instanceof ChoiceFormat)
- {
- // We must special-case a ChoiceFormat because it might
- // have recursive formatting.
- ChoiceFormat cf = (ChoiceFormat) formatter;
- String[] formats = (String[]) cf.getFormats();
- double[] limits = (double[]) cf.getLimits();
- MessageFormat subfmt = new MessageFormat ();
- subfmt.setLocale(locale);
- ParsePosition subpos = new ParsePosition (index);
-
- int j;
- for (j = 0; value == null && j < limits.length; ++j)
- {
- subfmt.applyPattern(formats[j]);
- subpos.setIndex(index);
- value = subfmt.parse(sourceStr, subpos);
- }
- if (value != null)
- {
- index = subpos.getIndex();
- value = new Double (limits[j]);
- }
- }
- else if (formatter != null)
- {
- pos.setIndex(index);
- value = formatter.parseObject(sourceStr, pos);
- if (value != null)
- index = pos.getIndex();
- }
- else
- {
- // We have a String format. This can lose in a number
- // of ways, but we give it a shot.
- int next_index = sourceStr.indexOf(elements[i].trailer, index);
- if (next_index == -1)
- {
- pos.setErrorIndex(index);
- return null;
- }
- value = sourceStr.substring(index, next_index);
- index = next_index;
- }
-
- if (value == null
- || ! sourceStr.startsWith(elements[i].trailer, index))
- {
- pos.setErrorIndex(index);
- return null;
- }
-
- if (elements[i].argNumber >= results.size())
- results.setSize(elements[i].argNumber + 1);
- results.setElementAt(value, elements[i].argNumber);
-
- index += elements[i].trailer.length();
- }
-
- Object[] r = new Object[results.size()];
- results.copyInto(r);
- return r;
- }
-
- public Object[] parse (String sourceStr) throws ParseException
- {
- ParsePosition pp = new ParsePosition (0);
- Object[] r = parse (sourceStr, pp);
- if (r == null)
- throw new ParseException ("couldn't parse string", pp.getErrorIndex());
- return r;
- }
-
- public Object parseObject (String sourceStr, ParsePosition pos)
- {
- return parse (sourceStr, pos);
- }
-
- public void setFormat (int variableNum, Format newFormat)
- {
- elements[variableNum].setFormat = newFormat;
- }
-
- public void setFormats (Format[] newFormats)
- {
- if (newFormats.length < elements.length)
- throw new IllegalArgumentException ();
- int len = Math.min(newFormats.length, elements.length);
- for (int i = 0; i < len; ++i)
- elements[i].setFormat = newFormats[i];
- }
-
- public void setLocale (Locale loc)
- {
- locale = loc;
- if (elements != null)
- {
- for (int i = 0; i < elements.length; ++i)
- elements[i].setLocale(loc);
- }
- }
-
- public String toPattern ()
- {
- return pattern;
- }
-
- // The pattern string.
- private String pattern;
- // The locale.
- private Locale locale;
- // Variables.
- private MessageFormatElement[] elements;
- // Leader text.
- private String leader;
-}
diff --git a/libjava/java/text/NumberFormat.java b/libjava/java/text/NumberFormat.java
deleted file mode 100644
index 3a30010b073..00000000000
--- a/libjava/java/text/NumberFormat.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 4, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.2, except serialization
- * and getAvailableLocales.
- */
-
-public abstract class NumberFormat extends Format implements Cloneable
-{
- public static final int INTEGER_FIELD = 0;
- public static final int FRACTION_FIELD = 1;
-
- public final String format (long number)
- {
- StringBuffer sbuf = new StringBuffer(50);
- format (number, sbuf, null);
- return sbuf.toString();
- }
-
- public final StringBuffer format (Object obj, StringBuffer sbuf,
- FieldPosition pos)
- {
- if (obj instanceof Number)
- return format(((Number) obj).doubleValue(), sbuf, pos);
- else
- throw new IllegalArgumentException
- ("Cannot format given Object as a Number");
- }
-
- public abstract StringBuffer format (double number,
- StringBuffer sbuf, FieldPosition pos);
-
- public abstract StringBuffer format (long number,
- StringBuffer sbuf, FieldPosition pos);
-
- public Object clone ()
- {
- // We know the superclass just uses Object's generic cloner.
- // Why not just inherit? Because the online docs specify that
- // this method exists for this class.
- return super.clone ();
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof NumberFormat))
- return false;
- NumberFormat nf = (NumberFormat) obj;
- return (groupingUsed == nf.groupingUsed
- && maximumFractionDigits == nf.maximumFractionDigits
- && maximumIntegerDigits == nf.maximumIntegerDigits
- && minimumFractionDigits == nf.minimumFractionDigits
- && minimumIntegerDigits == nf.minimumIntegerDigits
- && parseIntegerOnly == nf.parseIntegerOnly);
- }
-
- public static Locale[] getAvailableLocales ()
- {
- // FIXME.
- return null;
- }
-
- private static final NumberFormat computeInstance (Locale loc,
- String resource,
- String def)
- {
- ResourceBundle res;
- try
- {
- res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", loc);
- }
- catch (MissingResourceException x)
- {
- res = null;
- }
- String fmt;
- try
- {
- fmt = res == null ? def : res.getString(resource);
- }
- catch (MissingResourceException x)
- {
- fmt = def;
- }
- DecimalFormatSymbols dfs = new DecimalFormatSymbols (loc);
- return new DecimalFormat (fmt, dfs);
- }
-
- public static final NumberFormat getCurrencyInstance ()
- {
- return getCurrencyInstance (Locale.getDefault());
- }
-
- public static NumberFormat getCurrencyInstance (Locale loc)
- {
- return computeInstance (loc, "currencyFormat", "$#,##0.00;($#,##0.00)");
- }
-
- public static final NumberFormat getInstance ()
- {
- return getInstance (Locale.getDefault());
- }
-
- public static NumberFormat getInstance (Locale loc)
- {
- // For now always return a number instance.
- return getNumberInstance (loc);
- }
-
- public int getMaximumFractionDigits ()
- {
- return maximumFractionDigits;
- }
-
- public int getMaximumIntegerDigits ()
- {
- return maximumIntegerDigits;
- }
-
- public int getMinimumFractionDigits ()
- {
- return minimumFractionDigits;
- }
-
- public int getMinimumIntegerDigits ()
- {
- return minimumIntegerDigits;
- }
-
- public static final NumberFormat getNumberInstance ()
- {
- return getNumberInstance (Locale.getDefault());
- }
-
- public static NumberFormat getNumberInstance (Locale loc)
- {
- return computeInstance (loc, "numberFormat", "#,##0.###");
- }
-
- public static final NumberFormat getPercentInstance ()
- {
- return getPercentInstance (Locale.getDefault());
- }
-
- public static NumberFormat getPercentInstance (Locale loc)
- {
- return computeInstance (loc, "percentFormat", "#,##0%");
- }
-
- public int hashCode ()
- {
- int hash = super.hashCode();
- hash ^= (maximumFractionDigits + maximumIntegerDigits
- + minimumFractionDigits + minimumIntegerDigits);
- if (groupingUsed)
- hash ^= 0xf0f0;
- if (parseIntegerOnly)
- hash ^= 0x0f0f;
- return hash;
- }
-
- public boolean isGroupingUsed ()
- {
- return groupingUsed;
- }
-
- public boolean isParseIntegerOnly ()
- {
- return parseIntegerOnly;
- }
-
- public NumberFormat ()
- {
- }
-
- public abstract Number parse (String sourceStr, ParsePosition pos);
-
- public Number parse (String sourceStr) throws ParseException
- {
- ParsePosition pp = new ParsePosition (0);
- Number r = parse (sourceStr, pp);
- if (r == null)
- {
- int index = pp.getErrorIndex();
- if (index < 0)
- index = pp.getIndex();
- throw new ParseException ("couldn't parse number", index);
- }
- return r;
- }
-
- public final Object parseObject (String sourceStr, ParsePosition pos)
- {
- return parse (sourceStr, pos);
- }
-
- public void setGroupingUsed (boolean newValue)
- {
- groupingUsed = newValue;
- }
-
- public void setMaximumFractionDigits (int newValue)
- {
- maximumFractionDigits = newValue;
- }
-
- public void setMaximumIntegerDigits (int newValue)
- {
- maximumIntegerDigits = newValue;
- }
-
- public void setMinimumFractionDigits (int newValue)
- {
- minimumFractionDigits = newValue;
- }
-
- public void setMinimumIntegerDigits (int newValue)
- {
- minimumIntegerDigits = newValue;
- }
-
- public void setParseIntegerOnly (boolean value)
- {
- parseIntegerOnly = value;
- }
-
- public final String format (double number)
- {
- StringBuffer sbuf = new StringBuffer(50);
- format (number, sbuf, null);
- return sbuf.toString();
- }
-
- // These field names are fixed by the serialization spec.
- // FIXME: serialization spec also mentions `byte' versions of the
- // min/max fields. We have no use for those, so for now they are
- // omitted.
- protected boolean groupingUsed;
- protected int maximumFractionDigits;
- protected int maximumIntegerDigits;
- protected int minimumFractionDigits;
- protected int minimumIntegerDigits;
- protected boolean parseIntegerOnly;
-}
diff --git a/libjava/java/text/ParseException.java b/libjava/java/text/ParseException.java
deleted file mode 100644
index 7a654393aec..00000000000
--- a/libjava/java/text/ParseException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class ParseException extends Exception
-{
- private int errorOffset;
-
- public ParseException (String msg, int errorOffset)
- {
- super(msg);
- this.errorOffset = errorOffset;
- }
-
- public int getErrorOffset ()
- {
- return errorOffset;
- }
-}
diff --git a/libjava/java/text/ParsePosition.java b/libjava/java/text/ParsePosition.java
deleted file mode 100644
index 55f7f8bb123..00000000000
--- a/libjava/java/text/ParsePosition.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- * Includes JDK 1.2 methods.
- */
-
-public class ParsePosition
-{
- int index;
- int errorIndex;
-
- public ParsePosition (int index)
- {
- this.index = index;
- errorIndex = -1;
- }
-
- public int getIndex ()
- {
- return index;
- }
-
- public void setIndex (int index)
- {
- this.index = index;
- }
-
- public int getErrorIndex ()
- {
- return errorIndex;
- }
-
- public void setErrorIndex (int ei)
- {
- errorIndex = ei;
- }
-
- public boolean equals (Object obj)
- {
- if (obj != null || ! (obj instanceof ParsePosition))
- return false;
- ParsePosition other = (ParsePosition) obj;
- return index == other.index && errorIndex == other.errorIndex;
- }
-}
diff --git a/libjava/java/text/RuleBasedCollator.java b/libjava/java/text/RuleBasedCollator.java
deleted file mode 100644
index 2fb667ef838..00000000000
--- a/libjava/java/text/RuleBasedCollator.java
+++ /dev/null
@@ -1,366 +0,0 @@
-// RuleBasedCollator.java - Concrete class for locale-based string compare.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date March 25, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-final class RBCElement
-{
- String key;
- char relation;
-
- RBCElement (String key, char relation)
- {
- this.key = key;
- this.relation = relation;
- }
-}
-
-public class RuleBasedCollator extends Collator
-{
- public Object clone ()
- {
- return new RuleBasedCollator (this);
- }
-
- // A helper for CollationElementIterator.next().
- int ceiNext (CollationElementIterator cei)
- {
- if (cei.lookahead_set)
- {
- cei.lookahead_set = false;
- return cei.lookahead;
- }
-
- int save = cei.index;
- int max = cei.text.length();
- String s = null;
-
- // It is possible to have a case where `abc' has a mapping, but
- // neither `ab' nor `abd' do. In this case we must treat `abd' as
- // nothing special.
- boolean found = false;
-
- int i;
- for (i = save + 1; i <= max; ++i)
- {
- s = cei.text.substring(save, i);
- if (prefixes.get(s) == null)
- break;
- found = true;
- }
- // Assume s != null.
-
- Object obj = map.get(s);
- // The special case.
- while (found && obj == null && s.length() > 1)
- {
- --i;
- s = cei.text.substring(save, i);
- obj = map.get(s);
- }
-
- // Update state.
- cei.index = i;
-
- if (obj == null)
- {
- // This idea, and the values, come from JDK.
- // assert (s.length() == 1)
- cei.lookahead_set = true;
- cei.lookahead = s.charAt(0) << 8;
- return 0x7fff << 16;
- }
-
- return ((Integer) obj).intValue();
- }
-
- // A helper for compareTo() that returns the next character that has
- // a nonzero ordering at the indicated strength. This is also used
- // in CollationKey.
- static final int next (CollationElementIterator iter, int strength)
- {
- while (true)
- {
- int os = iter.next();
- if (os == CollationElementIterator.NULLORDER)
- return os;
- int c = 0;
- switch (strength)
- {
- case PRIMARY:
- c = os & ~0xffff;
- break;
- case SECONDARY:
- c = os & ~0x00ff;
- break;
- case TERTIARY:
- case IDENTICAL:
- c = os;
- break;
- }
- if (c != 0)
- return c;
- }
- }
-
- public int compare (String source, String target)
- {
- CollationElementIterator cs, ct;
-
- cs = new CollationElementIterator (source, this);
- ct = new CollationElementIterator (target, this);
-
- while (true)
- {
- int os = next (cs, strength);
- int ot = next (ct, strength);
-
- if (os == CollationElementIterator.NULLORDER
- && ot == CollationElementIterator.NULLORDER)
- break;
- else if (os == CollationElementIterator.NULLORDER)
- {
- // Source string is shorter, so return "less than".
- return -1;
- }
- else if (ot == CollationElementIterator.NULLORDER)
- {
- // Target string is shorter, so return "greater than".
- return 1;
- }
-
- if (os != ot)
- return os - ot;
- }
-
- return 0;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof RuleBasedCollator) || ! super.equals(obj))
- return false;
- RuleBasedCollator rbc = (RuleBasedCollator) obj;
- // FIXME: this is probably wrong. Instead we should compare maps
- // directly.
- return (frenchAccents == rbc.frenchAccents
- && rules.equals(rbc.rules));
- }
-
- public CollationElementIterator getCollationElementIterator (String source)
- {
- StringBuffer expand = new StringBuffer (source.length());
- int max = source.length();
- for (int i = 0; i < max; ++i)
- decomposeCharacter (source.charAt(i), expand);
- return new CollationElementIterator (expand.toString(), this);
- }
-
- public CollationKey getCollationKey (String source)
- {
- return new CollationKey (getCollationElementIterator (source), source,
- strength);
- }
-
- public String getRules ()
- {
- return rules;
- }
-
- public int hashCode ()
- {
- return (frenchAccents ? 1231 : 1237
- ^ rules.hashCode()
- ^ map.hashCode()
- ^ prefixes.hashCode());
- }
-
- private final boolean is_special (char c)
- {
- // Rules from JCL book.
- return ((c >= 0x0009 && c <= 0x000d)
- || (c >= 0x0020 && c <= 0x002f)
- || (c >= 0x003a && c <= 0x0040)
- || (c >= 0x005b && c <= 0x0060)
- || (c >= 0x007b && c <= 0x007e));
- }
-
- private final int text_argument (String rules, int index,
- StringBuffer result)
- {
- result.setLength(0);
- int len = rules.length();
- while (index < len)
- {
- char c = rules.charAt(index);
- if (c == '\'' && index + 2 < len
- && rules.charAt(index + 2) == '\''
- && is_special (rules.charAt(index + 1)))
- index += 2;
- else if (is_special (c) || Character.isWhitespace(c))
- return index;
- result.append(c);
- ++index;
- }
- return index;
- }
-
- public RuleBasedCollator (String rules) throws ParseException
- {
- this.rules = rules;
- this.frenchAccents = false;
-
- // We keep each rule in order in a vector. At the end we traverse
- // the vector and compute collation values from it.
- int insertion_index = 0;
- Vector vec = new Vector ();
-
- StringBuffer argument = new StringBuffer ();
-
- int len = rules.length();
- for (int index = 0; index < len; ++index)
- {
- char c = rules.charAt(index);
-
- // Just skip whitespace.
- if (Character.isWhitespace(c))
- continue;
-
- // Modifier.
- if (c == '@')
- {
- frenchAccents = true;
- continue;
- }
-
- // Check for relation or reset operator.
- if (! (c == '<' || c == ';' || c == ',' || c == '=' || c == '&'))
- throw new ParseException ("invalid character", index);
-
- ++index;
- while (index < len)
- {
- if (! Character.isWhitespace(rules.charAt(index)))
- break;
- ++index;
- }
- if (index == len)
- throw new ParseException ("missing argument", index);
-
- int save = index;
- index = text_argument (rules, index, argument);
- if (argument.length() == 0)
- throw new ParseException ("invalid character", save);
- String arg = argument.toString();
- int item_index = vec.indexOf(arg);
- if (c != '&')
- {
- // If the argument already appears in the vector, then we
- // must remove it in order to re-order.
- if (item_index != -1)
- {
- vec.removeElementAt(item_index);
- if (insertion_index >= item_index)
- --insertion_index;
- }
- RBCElement r = new RBCElement (arg, c);
- vec.insertElementAt(r, insertion_index);
- ++insertion_index;
- }
- else
- {
- // Reset.
- if (item_index == -1)
- throw
- new ParseException ("argument to reset not previously seen",
- save);
- insertion_index = item_index + 1;
- }
-
- // Ugly: in this case the resulting INDEX comes from
- // text_argument, which returns the index of the next
- // character we should examine.
- --index;
- }
-
- // Now construct a hash table that maps strings onto their
- // collation values.
- int primary = 0;
- int secondary = 0;
- int tertiary = 0;
- this.map = new Hashtable ();
- this.prefixes = new Hashtable ();
- Enumeration e = vec.elements();
- while (e.hasMoreElements())
- {
- RBCElement r = (RBCElement) e.nextElement();
- switch (r.relation)
- {
- case '<':
- ++primary;
- secondary = 0;
- tertiary = 0;
- break;
- case ';':
- ++secondary;
- tertiary = 0;
- break;
- case ',':
- ++tertiary;
- break;
- case '=':
- break;
- }
- // This must match CollationElementIterator.
- map.put(r.key, new Integer (primary << 16
- | secondary << 8 | tertiary));
-
- // Make a map of all lookaheads we might need.
- for (int i = r.key.length() - 1; i >= 1; --i)
- prefixes.put(r.key.substring(0, i), Boolean.TRUE);
- }
- }
-
- // This is a helper for clone.
- private RuleBasedCollator (RuleBasedCollator other)
- {
- frenchAccents = other.frenchAccents;
- rules = other.rules;
- decmp = other.decmp;
- strength = other.strength;
- map = other.map;
- prefixes = other.prefixes;
- }
-
- // True if we are using French-style accent ordering.
- private boolean frenchAccents;
-
- // It's easier to just save the rules than to try to recreate them.
- private String rules;
-
- // This maps strings onto collation values.
- private Hashtable map;
- // An entry in this hash means that more lookahead is required for
- // the prefix string.
- private Hashtable prefixes;
-}
diff --git a/libjava/java/text/SimpleDateFormat.java b/libjava/java/text/SimpleDateFormat.java
deleted file mode 100644
index 08ed3175c56..00000000000
--- a/libjava/java/text/SimpleDateFormat.java
+++ /dev/null
@@ -1,528 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-import java.util.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: parse is not implemented.
- */
-
-public class SimpleDateFormat extends DateFormat
-{
- private Date defaultCenturyStart;
- private DateFormatSymbols formatData;
- private String pattern;
-
- public SimpleDateFormat ()
- {
- this("dd/MM/yy HH:mm", Locale.getDefault());
- }
-
- public SimpleDateFormat (String pattern)
- {
- this(pattern, Locale.getDefault());
- }
-
- public SimpleDateFormat (String pattern, Locale locale)
- {
- this.pattern = pattern;
- this.calendar = Calendar.getInstance(locale);
- this.numberFormat = NumberFormat.getInstance(locale);
- numberFormat.setGroupingUsed(false);
- this.formatData = new DateFormatSymbols (locale);
- }
-
- public SimpleDateFormat (String pattern, DateFormatSymbols formatData)
- {
- this.pattern = pattern;
- this.formatData = formatData;
- this.calendar = Calendar.getInstance();
- this.numberFormat = NumberFormat.getInstance();
- numberFormat.setGroupingUsed(false);
- }
-
- public Date get2DigitYearStart()
- {
- return defaultCenturyStart;
- }
-
- public void set2DigitYearStart(Date startDate)
- {
- defaultCenturyStart = startDate;
- }
-
- public DateFormatSymbols getDateFormatSymbols ()
- {
- return formatData;
- }
-
- public void setDateFormatSymbols (DateFormatSymbols value)
- {
- formatData = value;
- }
-
- public String toPattern ()
- {
- return pattern;
- }
-
- public void applyPattern (String pattern)
- {
- this.pattern = pattern;
- }
-
- private String applyLocalizedPattern (String pattern,
- String oldChars, String newChars)
- {
- int len = pattern.length();
- StringBuffer buf = new StringBuffer(len);
- boolean quoted = false;
- for (int i = 0; i < len; i++)
- {
- char ch = pattern.charAt(i);
- if (ch == '\'')
- quoted = ! quoted;
- if (! quoted)
- {
- int j = oldChars.indexOf(ch);
- if (j >= 0)
- ch = newChars.charAt(j);
- }
- buf.append(ch);
- }
- return buf.toString();
- }
-
- public void applyLocalizedPattern (String pattern)
- {
- String localChars = formatData.getLocalPatternChars();
- String standardChars = DateFormatSymbols.localPatternCharsDefault;
- pattern = applyLocalizedPattern (pattern, localChars, standardChars);
- applyPattern(pattern);
- }
-
- public String toLocalizedPattern ()
- {
- String localChars = formatData.getLocalPatternChars();
- String standardChars = DateFormatSymbols.localPatternCharsDefault;
- return applyLocalizedPattern (pattern, standardChars, localChars);
- }
-
- private final void append (StringBuffer buf, int value, int numDigits)
- {
- numberFormat.setMinimumIntegerDigits(numDigits);
- numberFormat.format(value, buf, null);
- }
-
- public StringBuffer format (Date date, StringBuffer buf, FieldPosition pos)
- {
- Calendar calendar = (Calendar) this.calendar.clone();
- calendar.setTime(date);
- int len = pattern.length();
- int quoteStart = -1;
- for (int i = 0; i < len; i++)
- {
- char ch = pattern.charAt(i);
- if (ch == '\'')
- {
- // We must do a little lookahead to see if we have two
- // single quotes embedded in quoted text.
- if (i < len - 1 && pattern.charAt(i + 1) == '\'')
- {
- ++i;
- buf.append(ch);
- }
- else
- quoteStart = quoteStart < 0 ? i : -1;
- }
- // From JCL: any characters in the pattern that are not in
- // the ranges of [a..z] and [A..Z] are treated as quoted
- // text.
- else if (quoteStart != -1
- || ((ch < 'a' || ch > 'z')
- && (ch < 'A' || ch > 'Z')))
- buf.append(ch);
- else
- {
- int first = i;
- int value;
- while (++i < len && pattern.charAt(i) == ch) ;
- int count = i - first; // Number of repetions of ch in pattern.
- int beginIndex = buf.length();
- int field;
- i--; // Skip all but last instance of ch in pattern.
- switch (ch)
- {
- case 'd':
- append(buf, calendar.get(Calendar.DATE), count);
- field = DateFormat.DATE_FIELD;
- break;
- case 'D':
- append(buf, calendar.get(Calendar.DAY_OF_YEAR), count);
- field = DateFormat.DAY_OF_YEAR_FIELD;
- break;
- case 'F':
- append(buf, calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH),count);
- field = DateFormat.DAY_OF_WEEK_IN_MONTH_FIELD;
- break;
- case 'E':
- value = calendar.get(calendar.DAY_OF_WEEK);
- buf.append(count <= 3 ? formatData.getShortWeekdays()[value]
- : formatData.getWeekdays()[value]);
- field = DateFormat.DAY_OF_WEEK_FIELD;
- break;
- case 'w':
- append(buf, calendar.get(Calendar.WEEK_OF_YEAR), count);
- field = DateFormat.WEEK_OF_YEAR_FIELD;
- break;
- case 'W':
- append(buf, calendar.get(Calendar.WEEK_OF_MONTH), count);
- field = DateFormat.WEEK_OF_MONTH_FIELD;
- break;
- case 'M':
- value = calendar.get(Calendar.MONTH);
- if (count <= 2)
- append(buf, value + 1, count);
- else
- buf.append(count <= 3 ? formatData.getShortMonths()[value]
- : formatData.getMonths()[value]);
- field = DateFormat.MONTH_FIELD;
- break;
- case 'y':
- value = calendar.get(Calendar.YEAR);
- append(buf, count <= 2 ? value % 100 : value, count);
- field = DateFormat.YEAR_FIELD;
- break;
- case 'K':
- append(buf, calendar.get(Calendar.HOUR), count);
- field = DateFormat.HOUR0_FIELD;
- break;
- case 'h':
- value = ((calendar.get(Calendar.HOUR) + 11) % 12) + 1;
- append(buf, value, count);
- field = DateFormat.HOUR1_FIELD;
- break;
- case 'H':
- append(buf, calendar.get(Calendar.HOUR_OF_DAY), count);
- field = DateFormat.HOUR_OF_DAY0_FIELD;
- break;
- case 'k':
- value = ((calendar.get(Calendar.HOUR_OF_DAY) + 23) % 24) + 1;
- append(buf, value, count);
- field = DateFormat.HOUR_OF_DAY1_FIELD;
- break;
- case 'm':
- append(buf, calendar.get(Calendar.MINUTE), count);
- field = DateFormat.MINUTE_FIELD;
- break;
- case 's':
- append(buf, calendar.get(Calendar.SECOND), count);
- field = DateFormat.SECOND_FIELD;
- break;
- case 'S':
- append(buf, calendar.get(Calendar.MILLISECOND), count);
- field = DateFormat.MILLISECOND_FIELD;
- break;
- case 'a':
- value = calendar.get(calendar.AM_PM);
- buf.append(formatData.getAmPmStrings()[value]);
- field = DateFormat.AM_PM_FIELD;
- break;
- case 'z':
- String zoneID = calendar.getTimeZone().getID();
- String[][] zoneStrings = formatData.getZoneStrings();
- int zoneCount = zoneStrings.length;
- for (int j = 0; j < zoneCount; j++)
- {
- String[] strings = zoneStrings[j];
- if (zoneID.equals(strings[0]))
- {
- j = count > 3 ? 2 : 1;
- if (calendar.get(Calendar.DST_OFFSET) != 0)
- j+=2;
- zoneID = strings[j];
- break;
- }
- }
- buf.append(zoneID);
- field = DateFormat.TIMEZONE_FIELD;
- break;
- default:
- // Note that the JCL is actually somewhat
- // contradictory here. It defines the pattern letters
- // to be a particular list, but also says that a
- // pattern containing an invalid pattern letter must
- // throw an exception. It doesn't describe what an
- // invalid pattern letter might be, so we just assume
- // it is any letter in [a-zA-Z] not explicitly covered
- // above.
- throw new RuntimeException("bad format string");
- }
- if (pos != null && field == pos.getField())
- {
- pos.setBeginIndex(beginIndex);
- pos.setEndIndex(buf.length());
- }
- }
- }
- return buf;
- }
-
- private final boolean expect (String source, ParsePosition pos,
- char ch)
- {
- int x = pos.getIndex();
- boolean r = x < source.length() && source.charAt(x) == ch;
- if (r)
- pos.setIndex(x + 1);
- else
- pos.setErrorIndex(x);
- return r;
- }
-
- public Date parse (String source, ParsePosition pos)
- {
- int fmt_index = 0;
- int fmt_max = pattern.length();
-
- calendar.clear();
- int quote_start = -1;
- for (; fmt_index < fmt_max; ++fmt_index)
- {
- char ch = pattern.charAt(fmt_index);
- if (ch == '\'')
- {
- int index = pos.getIndex();
- if (fmt_index < fmt_max - 1
- && pattern.charAt(fmt_index + 1) == '\'')
- {
- if (! expect (source, pos, ch))
- return null;
- ++fmt_index;
- }
- else
- quote_start = quote_start < 0 ? fmt_index : -1;
- continue;
- }
-
- if (quote_start != -1
- || ((ch < 'a' || ch > 'z')
- && (ch < 'A' || ch > 'Z')))
- {
- if (! expect (source, pos, ch))
- return null;
- continue;
- }
-
- // We've arrived at a potential pattern character in the
- // pattern.
- int first = fmt_index;
- while (++fmt_index < fmt_max && pattern.charAt(fmt_index) == ch)
- ;
- int count = fmt_index - first;
- --fmt_index;
-
- // We can handle most fields automatically: most either are
- // numeric or are looked up in a string vector. In some cases
- // we need an offset. When numeric, `offset' is added to the
- // resulting value. When doing a string lookup, offset is the
- // initial index into the string array.
- int calendar_field;
- boolean is_numeric = true;
- String[] match = null;
- int offset = 0;
- int zone_number = 0;
- switch (ch)
- {
- case 'd':
- calendar_field = Calendar.DATE;
- break;
- case 'D':
- calendar_field = Calendar.DAY_OF_YEAR;
- break;
- case 'F':
- calendar_field = Calendar.DAY_OF_WEEK_IN_MONTH;
- break;
- case 'E':
- is_numeric = false;
- offset = 1;
- calendar_field = Calendar.DAY_OF_WEEK;
- match = (count <= 3
- ? formatData.getShortWeekdays()
- : formatData.getWeekdays());
- break;
- case 'w':
- calendar_field = Calendar.WEEK_OF_YEAR;
- break;
- case 'W':
- calendar_field = Calendar.WEEK_OF_MONTH;
- break;
- case 'M':
- calendar_field = Calendar.MONTH;
- if (count <= 2)
- ;
- else
- {
- is_numeric = false;
- match = (count <= 3
- ? formatData.getShortMonths()
- : formatData.getMonths());
- }
- break;
- case 'y':
- calendar_field = Calendar.YEAR;
- if (count <= 2)
- offset = 1900;
- break;
- case 'K':
- calendar_field = Calendar.HOUR;
- break;
- case 'h':
- calendar_field = Calendar.HOUR;
- offset = -1;
- break;
- case 'H':
- calendar_field = Calendar.HOUR_OF_DAY;
- break;
- case 'k':
- calendar_field = Calendar.HOUR_OF_DAY;
- offset = -1;
- break;
- case 'm':
- calendar_field = Calendar.MINUTE;
- break;
- case 's':
- calendar_field = Calendar.SECOND;
- break;
- case 'S':
- calendar_field = Calendar.MILLISECOND;
- break;
- case 'a':
- is_numeric = false;
- calendar_field = Calendar.AM_PM;
- match = formatData.getAmPmStrings();
- break;
- case 'z':
- // We need a special case for the timezone, because it
- // uses a different data structure than the other cases.
- is_numeric = false;
- calendar_field = Calendar.DST_OFFSET;
- String[][] zoneStrings = formatData.getZoneStrings();
- int zoneCount = zoneStrings.length;
- int index = pos.getIndex();
- boolean found_zone = false;
- for (int j = 0; j < zoneCount; j++)
- {
- String[] strings = zoneStrings[j];
- int k;
- for (k = 1; k < strings.length; ++k)
- {
- if (source.startsWith(strings[k], index))
- break;
- }
- if (k != strings.length)
- {
- if (k > 2)
- ; // FIXME: dst.
- zone_number = 0; // FIXME: dst.
- // FIXME: raw offset to SimpleTimeZone const.
- calendar.setTimeZone(new SimpleTimeZone (1, strings[0]));
- pos.setIndex(index + strings[k].length());
- break;
- }
- }
- if (! found_zone)
- {
- pos.setErrorIndex(pos.getIndex());
- return null;
- }
- break;
- default:
- pos.setErrorIndex(pos.getIndex());
- return null;
- }
-
- // Compute the value we should assign to the field.
- int value;
- if (is_numeric)
- {
- numberFormat.setMinimumIntegerDigits(count);
- Number n = numberFormat.parse(source, pos);
- if (pos == null || ! (n instanceof Long))
- return null;
- value = n.intValue() + offset;
- }
- else if (match != null)
- {
- int index = pos.getIndex();
- int i;
- for (i = offset; i < match.length; ++i)
- {
- if (source.startsWith(match[i], index))
- break;
- }
- if (i == match.length)
- {
- pos.setErrorIndex(index);
- return null;
- }
- pos.setIndex(index + match[i].length());
- value = i;
- }
- else
- value = zone_number;
-
- // Assign the value and move on.
- try
- {
- calendar.set(calendar_field, value);
- }
- // FIXME: what exception is thrown on an invalid
- // non-lenient set?
- catch (IllegalArgumentException x)
- {
- pos.setErrorIndex(pos.getIndex());
- return null;
- }
- }
-
- return calendar.getTime();
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof SimpleDateFormat) || ! super.equals(obj) )
- return false;
- SimpleDateFormat other = (SimpleDateFormat) obj;
- return (DateFormatSymbols.equals(pattern, other.pattern)
- && DateFormatSymbols.equals(formatData, other.formatData)
- && DateFormatSymbols.equals(defaultCenturyStart,
- other.defaultCenturyStart));
- }
-
- public Object clone ()
- {
- // We know the superclass just call's Object's generic cloner.
- return super.clone ();
- }
-
- public int hashCode ()
- {
- int hash = super.hashCode();
- if (pattern != null)
- hash ^= pattern.hashCode();
- return hash;
- }
-}
diff --git a/libjava/java/text/StringCharacterIterator.java b/libjava/java/text/StringCharacterIterator.java
deleted file mode 100644
index dc02ce86282..00000000000
--- a/libjava/java/text/StringCharacterIterator.java
+++ /dev/null
@@ -1,136 +0,0 @@
-// StringCharacterIterator.java - Iterate over string of Unicode characters.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.text;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date February 22, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.1.
- */
-
-public final class StringCharacterIterator implements CharacterIterator
-{
- public Object clone ()
- {
- return (Object) new StringCharacterIterator (text, begin, end, pos);
- }
-
- public char current ()
- {
- // This follows JDK 1.2 semantics and not 1.1 semantics.
- // In 1.1 we would throw an exception if begin==end.
- return (pos < end) ? text.charAt(pos) : CharacterIterator.DONE;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof StringCharacterIterator))
- return false;
- StringCharacterIterator sci = (StringCharacterIterator) obj;
- // The spec says "the same text". We take this to mean equals,
- // not ==.
- return (pos == sci.pos
- && begin == sci.begin
- && end == sci.end
- && text.equals(sci.text));
- }
-
- public char first ()
- {
- pos = begin;
- return current ();
- }
-
- public int getBeginIndex ()
- {
- return begin;
- }
-
- public int getEndIndex ()
- {
- return end;
- }
-
- public int getIndex ()
- {
- return pos;
- }
-
- public int hashCode ()
- {
- // FIXME: this is a terrible hash code. Find a better one.
- return text.hashCode() + pos + begin + end;
- }
-
- public char last ()
- {
- pos = end;
- return current ();
- }
-
- public char next ()
- {
- if (pos == end)
- return CharacterIterator.DONE;
- ++pos;
- return current ();
- }
-
- public char previous ()
- {
- if (pos == begin)
- return CharacterIterator.DONE;
- --pos;
- return current ();
- }
-
- public char setIndex (int idx)
- {
- // In 1.1 we would throw an error if `idx == end'.
- if (idx < begin || idx > end)
- throw new IllegalArgumentException ();
- pos = idx;
- return current ();
- }
-
- public StringCharacterIterator (String text)
- {
- this (text, 0, text.length(), 0);
- }
- public StringCharacterIterator (String text, int pos)
- {
- this (text, 0, text.length(), pos);
- }
- public StringCharacterIterator (String text, int begin, int end, int pos)
- {
- if (begin < 0 || begin > end || end > text.length()
- // In 1.1 we would also throw if `pos == end'.
- || pos < begin || pos > end)
- throw new IllegalArgumentException ();
-
- this.text = text;
- this.begin = begin;
- this.end = end;
- this.pos = pos;
- }
-
- // String to iterate over.
- private String text;
- // Current position.
- private int pos;
- // Start position in string.
- private int begin;
- // End position in string.
- private int end;
-}
diff --git a/libjava/java/text/natCollator.cc b/libjava/java/text/natCollator.cc
deleted file mode 100644
index 676a4a41a23..00000000000
--- a/libjava/java/text/natCollator.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-// natCollator.cc - Native code for collation.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Written by Tom Tromey <tromey@cygnus.com>.
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/text/Collator.h>
-#include <java/lang/StringBuffer.h>
-
-#include <java-chardecomp.h>
-
-void
-java::text::Collator::decomposeCharacter (jchar c,
- java::lang::StringBuffer *buf)
-{
- if (decmp == NO_DECOMPOSITION)
- {
- buf->append(c);
- return;
- }
-
- const struct decomp_entry *base;
- int high;
-
- if (decmp == FULL_DECOMPOSITION)
- {
- base = full_decomposition;
- high = sizeof (full_decomposition) / sizeof (struct decomp_entry);
- }
- else
- {
- base = canonical_decomposition;
- high = sizeof (canonical_decomposition) / sizeof (struct decomp_entry);
- }
-
- // FIXME: this is probably a bit slow for the task at hand.
- int i = high / 2;
- int low = 0;
- while (true)
- {
- if (c < base[i].key)
- high = i;
- else if (c > base[i].key)
- low = i;
- else
- break;
-
- int old = i;
- i = (high + low) / 2;
- if (i == old)
- {
- // Not in table, so it expands to itself.
- buf->append(c);
- return;
- }
- }
-
- for (int j = 0; base[i].value[j] != '\0'; j += 2)
- {
- jchar x = (base[i].value[j] << 8) | (base[i].value[j + 1]);
- buf->append (x);
- }
-}
diff --git a/libjava/java/util/AbstractCollection.java b/libjava/java/util/AbstractCollection.java
deleted file mode 100644
index 800204441de..00000000000
--- a/libjava/java/util/AbstractCollection.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/* AbstractCollection.java -- Abstract implementation of most of Collection
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-import java.lang.reflect.Array;
-
-/**
- * A basic implementation of most of the methods in the Collection interface to
- * make it easier to create a collection. To create an unmodifiable Collection,
- * just subclass AbstractCollection and provide implementations of the
- * iterator() and size() methods. The Iterator returned by iterator() need only
- * provide implementations of hasNext() and next() (that is, it may throw an
- * UnsupportedOperationException if remove() is called). To create a modifiable
- * Collection, you must in addition provide an implementation of the
- * add(Object) method and the Iterator returned by iterator() must provide an
- * implementation of remove(). Other methods should be overridden if the
- * backing data structure allows for a more efficient implementation. The
- * precise implementation used by AbstractCollection is documented, so that
- * subclasses can tell which methods could be implemented more efficiently.
- */
-public abstract class AbstractCollection implements Collection {
-
- /**
- * Return an Iterator over this collection. The iterator must provide the
- * hasNext and next methods and should in addition provide remove if the
- * collection is modifiable.
- */
- public abstract Iterator iterator();
-
- /**
- * Return the number of elements in this collection.
- */
- public abstract int size();
-
- /**
- * Add an object to the collection. This implementation always throws an
- * UnsupportedOperationException - it should be overridden if the collection
- * is to be modifiable.
- *
- * @param o the object to add
- * @return true if the add operation caused the Collection to change
- * @exception UnsupportedOperationException if the add operation is not
- * supported on this collection
- */
- public boolean add(Object o) {
- throw new java.lang.UnsupportedOperationException();
- }
-
- /**
- * Add all the elements of a given collection to this collection. This
- * implementation obtains an Iterator over the given collection and iterates
- * over it, adding each element with the add(Object) method (thus this method
- * will fail with an UnsupportedOperationException if the add method does).
- *
- * @param c the collection to add the elements of to this collection
- * @return true if the add operation caused the Collection to change
- * @exception UnsupportedOperationException if the add operation is not
- * supported on this collection
- */
- public boolean addAll(Collection c) {
- Iterator i = c.iterator();
- boolean modified = false;
- while (i.hasNext()) {
- modified |= add(i.next());
- }
- return modified;
- }
-
- /**
- * Remove all elements from the collection. This implementation obtains an
- * iterator over the collection and calls next and remove on it repeatedly
- * (thus this method will fail with an UnsupportedOperationException if the
- * Iterator's remove method does) until there are no more elements to remove.
- * Many implementations will have a faster way of doing this.
- *
- * @exception UnsupportedOperationException if the Iterator returned by
- * iterator does not provide an implementation of remove
- */
- public void clear() {
- Iterator i = iterator();
- while (i.hasNext()) {
- i.next();
- i.remove();
- }
- }
-
- /**
- * Test whether this collection contains a given object. That is, if the
- * collection has an element e such that (o == null ? e == null :
- * o.equals(e)). This implementation obtains an iterator over the collection
- * and iterates over it, testing each element for equality with the given
- * object. If it is equal, true is returned. Otherwise false is returned when
- * the end of the collection is reached.
- *
- * @param o the object to remove from this collection
- * @return true if this collection contains an object equal to o
- */
- public boolean contains(Object o) {
- Iterator i = iterator();
-
- // This looks crazily inefficient, but it takes the test o==null outside
- // the loop, saving time, and also saves needing to store the result of
- // i.next() each time.
- if (o == null) {
- while (i.hasNext()) {
- if (i.next() == null) {
- return true;
- }
- }
- } else {
- while (i.hasNext()) {
- if (o.equals(i.next())) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Tests whether this collection contains all the elements in a given
- * collection. This implementation iterates over the given collection,
- * testing whether each element is contained in this collection. If any one
- * is not, false is returned. Otherwise true is returned.
- *
- * @param c the collection to test against
- * @return true if this collection contains all the elements in the given
- * collection
- */
- public boolean containsAll(Collection c) {
- Iterator i = c.iterator();
- while (i.hasNext()) {
- if (!contains(i.next())) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Test whether this collection is empty. This implementation returns
- * size() == 0.
- *
- * @return true if this collection is empty.
- */
- public boolean isEmpty() {
- return size() == 0;
- }
-
- /**
- * Remove a single instance of an object from this collection. That is,
- * remove one element e such that (o == null ? e == null : o.equals(e)), if
- * such an element exists. This implementation obtains an iterator over the
- * collection and iterates over it, testing each element for equality with
- * the given object. If it is equal, it is removed by the iterator's remove
- * method (thus this method will fail with an UnsupportedOperationException
- * if the Iterator's remove method does). After the first element has been
- * removed, true is returned; if the end of the collection is reached, false
- * is returned.
- *
- * @param o the object to remove from this collection
- * @return true if the remove operation caused the Collection to change, or
- * equivalently if the collection did contain o.
- * @exception UnsupportedOperationException if this collection's Iterator
- * does not support the remove method
- */
- public boolean remove(Object o) {
- Iterator i = iterator();
-
- // This looks crazily inefficient, but it takes the test o==null outside
- // the loop, saving time, and also saves needing to store the result of
- // i.next() each time.
- if (o == null) {
- while (i.hasNext()) {
- if (i.next() == null) {
- i.remove();
- return true;
- }
- }
- } else {
- while (i.hasNext()) {
- if (o.equals(i.next())) {
- i.remove();
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Remove from this collection all its elements that are contained in a given
- * collection. This implementation iterates over this collection, and for
- * each element tests if it is contained in the given collection. If so, it
- * is removed by the Iterator's remove method (thus this method will fail
- * with an UnsupportedOperationException if the Iterator's remove method
- * does).
- *
- * @param c the collection to remove the elements of
- * @return true if the remove operation caused the Collection to change
- * @exception UnsupportedOperationException if this collection's Iterator
- * does not support the remove method
- */
- public boolean removeAll(Collection c) {
- Iterator i = iterator();
- boolean changed = false;
- while (i.hasNext()) {
- if (c.contains(i.next())) {
- i.remove();
- changed = true;
- }
- }
- return changed;
- }
-
- /**
- * Remove from this collection all its elements that are not contained in a
- * given collection. This implementation iterates over this collection, and
- * for each element tests if it is contained in the given collection. If not,
- * it is removed by the Iterator's remove method (thus this method will fail
- * with an UnsupportedOperationException if the Iterator's remove method
- * does).
- *
- * @param c the collection to retain the elements of
- * @return true if the remove operation caused the Collection to change
- * @exception UnsupportedOperationException if this collection's Iterator
- * does not support the remove method
- */
- public boolean retainAll(Collection c) {
- Iterator i = iterator();
- boolean changed = false;
- while (i.hasNext()) {
- if (!c.contains(i.next())) {
- i.remove();
- changed = true;
- }
- }
- return changed;
- }
-
- /**
- * Return an array containing the elements of this collection. This
- * implementation creates an Object array of size size() and then iterates
- * over the collection, setting each element of the array from the value
- * returned by the iterator.
- *
- * @return an array containing the elements of this collection
- */
- public Object[] toArray() {
- Object[] a = new Object[size()];
- Iterator i = iterator();
- for (int pos = 0; pos < a.length; pos++) {
- a[pos] = i.next();
- }
- return a;
- }
-
- /**
- * Copy the collection into a given array if it will fit, or into a
- * dynamically created array of the same run-time type as the given array if
- * not. If there is space remaining in the array, the first element after the
- * end of the collection is set to null (this is only useful if the
- * collection is known to contain no null elements, however). This
- * implementation first tests whether the given array is large enough to hold
- * all the elements of the collection. If not, the reflection API is used to
- * allocate a new array of the same run-time type. Next an iterator is
- * obtained over the collection and the elements are placed in the array as
- * they are returned by the iterator. Finally the first spare element, if
- * any, of the array is set to null, and the created array is returned.
- *
- * @param a the array to copy into, or of the correct run-time type
- * @return the array that was produced
- * @exception ClassCastException if the type of the array precludes holding
- * one of the elements of the Collection
- */
- public Object[] toArray(Object[] a) {
- final int n = size();
- if (a.length < n) {
- a = (Object[])Array.newInstance(a.getClass().getComponentType(), n);
- }
- Iterator i = iterator();
- for (int pos = 0; pos < n; pos++) {
- a[pos] = i.next();
- }
- if (a.length > n) {
- a[n] = null;
- }
- return a;
- }
-
- /**
- * Creates a String representation of the Collection. The string returned is
- * of the form "[a, b, ...]" where a and b etc are the results of calling
- * toString on the elements of the collection. This implementation obtains an
- * Iterator over the Collection and adds each element to a StringBuffer as it
- * is returned by the iterator.
- *
- * @return a String representation of the Collection
- */
- public String toString() {
- StringBuffer s = new StringBuffer();
- s.append('[');
- Iterator i = iterator();
- boolean more = i.hasNext();
- while(more) {
- s.append(i.next());
- if (more = i.hasNext()) {
- s.append(", ");
- }
- }
- s.append(']');
- return s.toString();
- }
-}
diff --git a/libjava/java/util/AbstractList.java b/libjava/java/util/AbstractList.java
deleted file mode 100644
index da76a8b3104..00000000000
--- a/libjava/java/util/AbstractList.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/* AbstractList.java -- Abstract implementation of most of List
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Doc comments for almost everything.
-// ~ Better general commenting
-
-package java.util;
-
-/**
- * A basic implementation of most of the methods in the List interface to make
- * it easier to create a List based on a random-access data structure. To
- * create an unmodifiable list, it is only necessary to override the size() and
- * get(int) methods (this contrasts with all other abstract collection classes
- * which require an iterator to be provided). To make the list modifiable, the
- * set(int, Object) method should also be overridden, and to make the list
- * resizable, the add(int, Object) and remove(int) methods should be overridden
- * too. Other methods should be overridden if the backing data structure allows
- * for a more efficient implementation. The precise implementation used by
- * AbstractList is documented, so that subclasses can tell which methods could
- * be implemented more efficiently.
- */
-public abstract class AbstractList extends AbstractCollection implements List {
-
- /**
- * A count of the number of structural modifications that have been made to
- * the list (that is, insertions and removals).
- */
- protected transient int modCount = 0;
-
- public abstract Object get(int index);
-
- public void add(int index, Object o) {
- throw new UnsupportedOperationException();
- }
-
- public boolean add(Object o) {
- add(size(), o);
- return true;
- }
-
- public boolean addAll(int index, Collection c) {
- Iterator i = c.iterator();
- if (i.hasNext()) {
- do {
- add(index++, i.next());
- } while (i.hasNext());
- return true;
- } else {
- return false;
- }
- }
-
- public void clear() {
- removeRange(0, size());
- }
-
- public boolean equals(Object o) {
- if (o == this) {
- return true;
- } else if (!(o instanceof List)) {
- return false;
- } else {
- Iterator i1 = iterator();
- Iterator i2 = ((List)o).iterator();
- while (i1.hasNext()) {
- if (!i2.hasNext()) {
- return false;
- } else {
- Object e = i1.next();
- if (e == null ? i2.next() != null : !e.equals(i2.next())) {
- return false;
- }
- }
- }
- if (i2.hasNext()) {
- return false;
- } else {
- return true;
- }
- }
- }
-
- public int hashCode() {
- int hashCode = 1;
- Iterator i = iterator();
- while (i.hasNext()) {
- Object obj = i.next();
- hashCode = 31 * hashCode + (obj == null ? 0 : obj.hashCode());
- }
- return hashCode;
- }
-
- public int indexOf(Object o) {
- int index = 0;
- ListIterator i = listIterator();
- if (o == null) {
- while (i.hasNext()) {
- if (i.next() == null) {
- return index;
- }
- index++;
- }
- } else {
- while (i.hasNext()) {
- if (o.equals(i.next())) {
- return index;
- }
- index++;
- }
- }
- return -1;
- }
-
- public Iterator iterator() {
- return new Iterator() {
- private int knownMod = modCount;
- private int position = 0;
- boolean removed = true;
-
- private void checkMod() {
- if (knownMod != modCount) {
- throw new ConcurrentModificationException();
- }
- }
-
- public boolean hasNext() {
- checkMod();
- return position < size();
- }
-
- public Object next() {
- checkMod();
- removed = false;
- try {
- return get(position++);
- } catch (IndexOutOfBoundsException e) {
- throw new NoSuchElementException();
- }
- }
-
- public void remove() {
- checkMod();
- if (removed) {
- throw new IllegalStateException();
- }
- AbstractList.this.remove(--position);
- knownMod = modCount;
- removed = true;
- }
- };
- }
-
- public int lastIndexOf(Object o) {
- int index = size();
- ListIterator i = listIterator(index);
- if (o == null) {
- while (i.hasPrevious()) {
- index--;
- if (i.previous() == null) {
- return index;
- }
- }
- } else {
- while (i.hasPrevious()) {
- index--;
- if (o.equals(i.previous())) {
- return index;
- }
- }
- }
- return -1;
- }
-
- public ListIterator listIterator() {
- return listIterator(0);
- }
-
- public ListIterator listIterator(final int index) {
-
- if (index < 0 || index > size()) {
- throw new IndexOutOfBoundsException();
- }
-
- return new ListIterator() {
- private int knownMod = modCount;
- private int position = index;
- private int lastReturned = -1;
-
- private void checkMod() {
- if (knownMod != modCount) {
- throw new ConcurrentModificationException();
- }
- }
-
- public boolean hasNext() {
- checkMod();
- return position < size();
- }
-
- public boolean hasPrevious() {
- checkMod();
- return position > 0;
- }
-
- public Object next() {
- checkMod();
- if (hasNext()) {
- lastReturned = position++;
- return get(lastReturned);
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public Object previous() {
- checkMod();
- if (hasPrevious()) {
- lastReturned = --position;
- return get(lastReturned);
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public int nextIndex() {
- checkMod();
- return position;
- }
-
- public int previousIndex() {
- checkMod();
- return position - 1;
- }
-
- public void remove() {
- checkMod();
- if (lastReturned < 0) {
- throw new IllegalStateException();
- }
- AbstractList.this.remove(lastReturned);
- knownMod = modCount;
- position = lastReturned;
- lastReturned = -1;
- }
-
- public void set(Object o) {
- checkMod();
- if (lastReturned < 0) {
- throw new IllegalStateException();
- }
- AbstractList.this.set(lastReturned, o);
- }
-
- public void add(Object o) {
- checkMod();
- AbstractList.this.add(position++, o);
- lastReturned = -1;
- knownMod = modCount;
- }
- };
- }
-
- public Object remove(int index) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Remove a subsection of the list. This is called by the clear and
- * removeRange methods of the class which implements subList, which are
- * difficult for subclasses to override directly. Therefore, this method
- * should be overridden instead by the more efficient implementation, if one
- * exists.
- * <p>
- * This implementation first checks for illegal or out of range arguments. It
- * then obtains a ListIterator over the list using listIterator(fromIndex).
- * It then calls next() and remove() on this iterator repeatedly, toIndex -
- * fromIndex times.
- *
- * @param fromIndex the index, inclusive, to remove from.
- * @param toIndex the index, exclusive, to remove to.
- * @exception UnsupportedOperationException if this list does not support
- * the removeRange operation.
- * @exception IndexOutOfBoundsException if fromIndex > toIndex || fromIndex <
- * 0 || toIndex > size().
- */
- protected void removeRange(int fromIndex, int toIndex) {
- if (fromIndex > toIndex) {
- throw new IllegalArgumentException();
- } else if (fromIndex < 0 || toIndex > size()) {
- throw new IndexOutOfBoundsException();
- } else {
- ListIterator i = listIterator(fromIndex);
- for (int index = fromIndex; index < toIndex; index++) {
- i.next();
- i.remove();
- }
- }
- }
-
- public Object set(int index, Object o) {
- throw new UnsupportedOperationException();
- }
-
- public List subList(final int fromIndex, final int toIndex) {
- if (fromIndex > toIndex)
- throw new IllegalArgumentException();
- if (fromIndex < 0 || toIndex > size())
- throw new IndexOutOfBoundsException();
- return new SubList(this, fromIndex, toIndex);
- }
-
- static class SubList extends AbstractList {
-
- private AbstractList backingList;
- private int offset;
- private int size;
-
- public SubList(AbstractList backing, int fromIndex, int toIndex) {
- backingList = backing;
- upMod();
- offset = fromIndex;
- size = toIndex - fromIndex;
- }
-
- // Note that within this class two fields called modCount are inherited -
- // one from the superclass, and one from the outer class.
- // The code uses both these two fields and *no other* to provide fail-fast
- // behaviour. For correct operation, the two fields should contain equal
- // values. Therefore, if this.modCount != backingList.modCount, there
- // has been a concurrent modification. This is all achieved purely by using
- // the modCount field, precisely according to the docs of AbstractList.
- // See the methods upMod and checkMod.
-
- /**
- * This method checks the two modCount fields to ensure that there has
- * not been a concurrent modification. It throws an exception if there
- * has been, and otherwise returns normally.
- * Note that since this method is private, it will be inlined.
- *
- * @exception ConcurrentModificationException if there has been a
- * concurrent modification.
- */
- private void checkMod() {
- if (this.modCount != backingList.modCount) {
- throw new ConcurrentModificationException();
- }
- }
-
- /**
- * This method is called after every method that causes a structural
- * modification to the backing list. It updates the local modCount field
- * to match that of the backing list.
- * Note that since this method is private, it will be inlined.
- */
- private void upMod() {
- this.modCount = backingList.modCount;
- }
-
- /**
- * This method checks that a value is between 0 and size (inclusive). If
- * it is not, an exception is thrown.
- * Note that since this method is private, it will be inlined.
- *
- * @exception IndexOutOfBoundsException if the value is out of range.
- */
- private void checkBoundsInclusive(int index) {
- if (index < 0 || index > size) {
- throw new IndexOutOfBoundsException();
- }
- }
-
- /**
- * This method checks that a value is between 0 (inclusive) and size
- * (exclusive). If it is not, an exception is thrown.
- * Note that since this method is private, it will be inlined.
- *
- * @exception IndexOutOfBoundsException if the value is out of range.
- */
- private void checkBoundsExclusive(int index) {
- if (index < 0 || index >= size) {
- throw new IndexOutOfBoundsException();
- }
- }
-
- public int size() {
- checkMod();
- return size;
- }
-
- public Iterator iterator() {
- return listIterator();
- }
-
- public ListIterator listIterator(final int index) {
-
- checkMod();
- checkBoundsInclusive(index);
-
- return new ListIterator() {
- ListIterator i = backingList.listIterator(index + offset);
- int position = index;
-
- public boolean hasNext() {
- checkMod();
- return position < size;
- }
-
- public boolean hasPrevious() {
- checkMod();
- return position > 0;
- }
-
- public Object next() {
- if (position < size) {
- Object o = i.next();
- position++;
- return o;
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public Object previous() {
- if (position > 0) {
- Object o = i.previous();
- position--;
- return o;
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public int nextIndex() {
- return offset + i.nextIndex();
- }
-
- public int previousIndex() {
- return offset + i.previousIndex();
- }
-
- public void remove() {
- i.remove();
- upMod();
- size--;
- position = nextIndex();
- }
-
- public void set(Object o) {
- i.set(o);
- }
-
- public void add(Object o) {
- i.add(o);
- upMod();
- size++;
- position++;
- }
-
- // Here is the reason why the various modCount fields are mostly
- // ignored in this wrapper listIterator.
- // IF the backing listIterator is failfast, then the following holds:
- // Using any other method on this list will call a corresponding
- // method on the backing list *after* the backing listIterator
- // is created, which will in turn cause a ConcurrentModException
- // when this listIterator comes to use the backing one. So it is
- // implicitly failfast.
- // If the backing listIterator is NOT failfast, then the whole of
- // this list isn't failfast, because the modCount field of the
- // backing list is not valid. It would still be *possible* to
- // make the iterator failfast wrt modifications of the sublist
- // only, but somewhat pointless when the list can be changed under
- // us.
- // Either way, no explicit handling of modCount is needed.
- // However upMod() must be called in add and remove, and size
- // must also be updated in these two methods, since they do not go
- // through the corresponding methods of the subList.
-
- };
- }
-
- public Object set(int index, Object o) {
- checkMod();
- checkBoundsExclusive(index);
- o = backingList.set(index + offset, o);
- upMod();
- return o;
- }
-
- public Object get(int index) {
- checkMod();
- checkBoundsExclusive(index);
- return backingList.get(index + offset);
- }
-
- public void add(int index, Object o) {
- checkMod();
- checkBoundsInclusive(index);
- backingList.add(index + offset, o);
- upMod();
- size++;
- }
-
- public Object remove(int index) {
- checkMod();
- checkBoundsExclusive(index);
- Object o = backingList.remove(index + offset);
- upMod();
- size--;
- return o;
- }
-
- public void removeRange(int fromIndex, int toIndex) {
- checkMod();
- checkBoundsExclusive(fromIndex);
- checkBoundsInclusive(toIndex);
-
- // this call will catch the toIndex < fromIndex condition
- backingList.removeRange(offset + fromIndex, offset + toIndex);
- upMod();
- size -= toIndex - fromIndex;
- }
-
- public boolean addAll(int index, Collection c) {
- checkMod();
- checkBoundsInclusive(index);
- int s = backingList.size();
- boolean result = backingList.addAll(offset + index, c);
- upMod();
- size += backingList.size() - s;
- return result;
- }
- }
-}
diff --git a/libjava/java/util/AbstractMap.java b/libjava/java/util/AbstractMap.java
deleted file mode 100644
index 4935afe5fb3..00000000000
--- a/libjava/java/util/AbstractMap.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/* AbstractMap.java -- Abstract implementation of most of Map
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// comments
-// test suite
-
-package java.util;
-
-public abstract class AbstractMap implements Map {
-
- public void clear()
- {
- entrySet().clear();
- }
-
- public boolean containsKey( Object key )
- {
- Object k;
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- {
- k = ((Map.Entry)entries.next()).getKey();
- if( key == null ? k == null : key.equals( k ) )
- return true;
- }
-
- return false;
- }
-
- public boolean containsValue( Object value )
- {
- Object v;
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- {
- v = ((Map.Entry)entries.next()).getValue();
- if( value == null ? v == null : value.equals( v ) )
- return true;
- }
-
- return false;
- }
-
- public abstract Set entrySet();
-
- public boolean equals( Object o )
- {
- if( this == o )
- return true;
-
- if( o == null || !( o instanceof Map ) )
- return false;
-
- Map m = (Map)o;
- if( m.size() != size() )
- return false;
-
- Object key, value1, value2;
- Map.Entry entry;
- Iterator entries = entrySet().iterator();
- while( entries.hasNext() )
- {
- entry = (Map.Entry)entries.next();
- key = entry.getKey();
- value1 = entry.getValue();
- value2 = m.get( key );
-
- if( !( ( value1 == null && value2 == null )
- || value1.equals( value2 ) ) )
- return false;
- }
-
- return true;
- }
-
- public Object get( Object key )
- {
- Object k;
- Map.Entry entry;
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- {
- entry = (Map.Entry)entries.next();
- k = entry.getKey();
- if( key == null ? k == null : key.equals( k ) )
- return entry.getValue();
- }
-
- return null;
- }
-
- public int hashCode()
- {
- int hashcode = 0;
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- hashcode += entries.next().hashCode();
-
- return hashcode;
- }
-
- public boolean isEmpty()
- {
- return size() == 0;
- }
-
- public Set keySet()
- {
- if( this.keySet == null )
- {
- this.keySet =
- new AbstractSet()
- {
- public int size()
- {
- return AbstractMap.this.size();
- }
-
- public boolean contains(Object key)
- {
- return AbstractMap.this.containsKey(key);
- }
-
- public Iterator iterator()
- {
- return new Iterator()
- {
- Iterator map_iterator = AbstractMap.this.entrySet().iterator();
-
- public boolean hasNext()
- {
- return map_iterator.hasNext();
- }
-
- public Object next()
- {
- return ((Map.Entry)map_iterator.next()).getKey();
- }
-
- public void remove()
- {
- map_iterator.remove();
- }
- };
- }
- };
- }
-
- return this.keySet;
- }
-
- public Object put( Object key, Object value )
- {
- throw new UnsupportedOperationException();
- }
-
- public void putAll( Map m )
- {
- Map.Entry entry;
- Iterator entries = m.entrySet().iterator();
- while( entries.hasNext() )
- {
- entry = (Map.Entry)entries.next();
- put( entry.getKey(), entry.getValue() );
- }
- }
-
- public Object remove( Object key )
- {
- Object k, value;
- Map.Entry entry;
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- {
- entry = (Map.Entry)entries.next();
- k = entry.getKey();
- if( key == null ? k == null : key.equals( k ) )
- {
- value = entry.getValue();
- entries.remove();
- return value;
- }
- }
-
- return null;
- }
-
- public int size()
- {
- return entrySet().size();
- }
-
- public String toString()
- {
- StringBuffer sb = new StringBuffer("{");
- String comma = "";
- Iterator entries = entrySet().iterator();
-
- while( entries.hasNext() )
- {
- Map.Entry entry = (Map.Entry)entries.next();
- sb.append(comma).append(entry.getKey())
- .append('=').append(entry.getValue());
- comma = ", ";
- }
-
- return sb.append('}').toString();
- }
-
- public Collection values()
- {
- if( this.valueCollection == null )
- {
- this.valueCollection =
- new AbstractCollection()
- {
- public int size()
- {
- return AbstractMap.this.size();
- }
-
- public Iterator iterator()
- {
- return new Iterator()
- {
- Iterator map_iterator = AbstractMap.this.entrySet().iterator();
-
- public boolean hasNext()
- {
- return map_iterator.hasNext();
- }
-
- public Object next()
- {
- return ((Map.Entry)map_iterator.next()).getValue();
- }
-
- public void remove()
- {
- map_iterator.remove();
- }
- };
- }
- };
- }
-
- return this.valueCollection;
- }
-
-
- private Collection valueCollection = null;
- private Set keySet = null;
-}
diff --git a/libjava/java/util/AbstractSequentialList.java b/libjava/java/util/AbstractSequentialList.java
deleted file mode 100644
index 69bdc4ae220..00000000000
--- a/libjava/java/util/AbstractSequentialList.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/* AbstractSequentialList.java -- List implementation for sequential access
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Lots of doc comments still missing.
-// ~ The class comment should include a description of what should be overridden
-// to provide what features, as should the listIterator comment.
-
-package java.util;
-
-/**
- * Abstract superclass to make it easier to implement the List interface when
- * backed by a sequential-access store, such as a linked list.
- */
-public abstract class AbstractSequentialList extends AbstractList {
-
- /**
- * Returns a ListIterator over the list, starting from position index.
- * Subclasses must provide an implementation of this method.
- *
- * @exception IndexOutOfBoundsException if index < 0 || index > size()
- */
- public abstract ListIterator listIterator(int index);
-
- /**
- * Add an element to the list at a given index. This implementation obtains a
- * ListIterator positioned at the specified index, and then adds the element
- * using the ListIterator's add method.
- *
- * @param index the position to add the element
- * @param o the element to insert
- * @exception IndexOutOfBoundsException if index < 0 || index > size()
- * @exception UnsupportedOperationException if the iterator returned by
- * listIterator(index) does not support the add method.
- */
- public void add(int index, Object o) {
- ListIterator i = listIterator(index);
- i.add(o);
- }
-
- public boolean addAll(int index, Collection c) {
- boolean changed = false;
- Iterator ci = c.iterator();
- ListIterator i = listIterator(index);
- while (ci.hasNext()) {
- i.add(ci.next());
- changed = true;
- }
- return changed;
- }
-
- public Object get(int index) {
- ListIterator i = listIterator(index);
- if (!i.hasNext()) {
- throw new IndexOutOfBoundsException();
- }
- return i.next();
- }
-
- /**
- * Return an Iterator over this List. This implementation returns
- * listIterator().
- *
- * @return an Iterator over this List
- */
- public Iterator iterator() {
- return listIterator();
- }
-
- public Object remove(int index) {
- ListIterator i = listIterator(index);
- if (!i.hasNext()) {
- throw new IndexOutOfBoundsException();
- }
- Object removed = i.next();
- i.remove();
- return removed;
- }
-
- public Object set(int index, Object o) {
- ListIterator i = listIterator(index);
- if (!i.hasNext()) {
- throw new IndexOutOfBoundsException();
- }
- Object old = i.next();
- i.set(o);
- return old;
- }
-}
diff --git a/libjava/java/util/AbstractSet.java b/libjava/java/util/AbstractSet.java
deleted file mode 100644
index b2dd30b7ffa..00000000000
--- a/libjava/java/util/AbstractSet.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/* AbstractSet.java -- Abstract implementation of most of Set
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-/**
- * An abstract implementation of Set to make it easier to create your own
- * implementations. In order to create a Set, subclass AbstractSet and
- * implement the same methods that are required for AbstractCollection
- * (although these methods must of course meet the requirements that Set puts
- * on them - specifically, no element may be in the set more than once). This
- * class simply provides implementations of equals() and hashCode() to fulfil
- * the requirements placed on them by the Set interface.
- */
-public abstract class AbstractSet extends AbstractCollection implements Set {
-
- /**
- * Tests whether the given object is equal to this Set. This implementation
- * first checks whether this set <em>is</em> the given object, and returns
- * true if so. Otherwise, if o is a Set and is the same size as this one, it
- * returns the result of calling containsAll on the given Set. Otherwise, it
- * returns false.
- *
- * @param o the Object to be tested for equality with this Set
- * @return true if the given object is equal to this Set
- */
- public boolean equals(Object o) {
- if (o == this) {
- return true;
- } else if (o instanceof Set && ((Set)o).size() == size()) {
- throw new Error ("FIXME: compiler error - AbstractSet.equals");
- /* FIXME: this is the correct implementation, but a compiler
- error prevents us from building it.
- return containsAll((Collection)o); */
- } else {
- return false;
- }
- }
-
- /**
- * Returns a hash code for this Set. The hash code of a Set is the sum of the
- * hash codes of all its elements, except that the hash code of null is
- * defined to be zero. This implementation obtains an Iterator over the Set,
- * and sums the results.
- *
- * @return a hash code for this Set
- */
- public int hashCode() {
- int hash = 0;
- Iterator i = iterator();
- while (i.hasNext()) {
- try {
- hash += i.next().hashCode();
- } catch (NullPointerException e) {
- }
- }
- return hash;
- }
-}
diff --git a/libjava/java/util/ArrayList.java b/libjava/java/util/ArrayList.java
deleted file mode 100644
index 7e6562cc22e..00000000000
--- a/libjava/java/util/ArrayList.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/* ArrayList.java -- JDK1.2's answer to Vector; this is an array-backed
- implementation of the List interface
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-import java.lang.reflect.Array;
-import java.io.Serializable;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamField;
-
-/**
- * An array-backed implementation of the List interface. ArrayList
- * performs well on simple tasks: random access into a list, appending
- * to or removing from the end of a list, checking the size, &c.
- *
- * @author Jon A. Zeppieri
- * @version $Id: ArrayList.java,v 1.4 2000/03/15 21:59:06 rao Exp $
- * @see java.util.AbstractList
- * @see java.util.List
- */
-public class ArrayList extends AbstractList
- implements List, Cloneable, Serializable
-{
- /** the default capacity for new ArrayLists */
- private static final int DEFAULT_CAPACITY = 16;
-
- /** the number of elements in this list */
- int _iSize;
-
- /** where the data is stored */
- Object[] _arData;
-
- /** used for serialization -- denotes which fields are serialized */
- private static final ObjectStreamField[] serialPersistentFields =
- {new ObjectStreamField("size", int.class)};
-
- /**
- * Construct a new ArrayList with the supplied initial capacity.
- *
- * @param iCapacity
- */
- public ArrayList(int iCapacity)
- {
- _arData = new Object[iCapacity];
- }
-
-
- /**
- * Construct a new ArrayList with the default capcity
- */
- public ArrayList()
- {
- this(DEFAULT_CAPACITY);
- }
-
- /**
- * Construct a new ArrayList, and initialize it with the elements
- * in the supplied Collection; Sun specs say that the initial
- * capacity is 110% of the Collection's size.
- *
- * @param oCollection the collection whose elements will
- * initialize this list
- */
- public ArrayList(Collection oCollection)
- {
- this((int) (oCollection.size() * 1.1));
- addAll(oCollection);
- }
-
- /**
- * Guarantees that this list will have at least enough capacity to
- * hold iMinCapacity elements.
- *
- * @param iMinCapacity the minimum guaranteed capacity
- */
- public void ensureCapacity(int iMinCapacity)
- {
- Object[] arNewData;
- int iCapacity = _arData.length;
-
- if (iMinCapacity > iCapacity)
- {
- arNewData = new Object[Math.max((iCapacity * 2), iMinCapacity)];
- System.arraycopy(_arData, 0, arNewData, 0, iCapacity);
- _arData = arNewData;
- }
- }
-
- /**
- * Appends the supplied element to the end of this list.
- *
- * @param oElement the element to be appended to this list
- */
- public boolean add(Object oElement)
- {
- ensureCapacity(_iSize + 1);
- _arData[_iSize++] = oElement;
- modCount++;
- return true;
- }
-
- /**
- * Retrieves the element at the user-supplied index.
- *
- * @param iIndex the index of the element we are fetching
- * @throws IndexOutOfBoundsException (iIndex < 0) || (iIndex >= size())
- */
- public Object get(int iIndex)
- {
- if (iIndex >= _iSize)
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "index=" + String.valueOf(iIndex));
- return _arData[iIndex];
- }
-
- /**
- * Returns the number of elements in this list
- */
- public int size()
- {
- return _iSize;
- }
-
- /**
- * Removes the element at the user-supplied index
- *
- * @param iIndex the index of the element to be removed
- * @return the removed Object
- * @throws IndexOutOfBoundsException (iIndex < 0) || (iIndex >= size())
- */
- public Object remove(int iIndex)
- {
- Object oResult;
-
- if (iIndex >= _iSize)
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "index=" + String.valueOf(iIndex));
-
- oResult = _arData[iIndex];
-
- if (iIndex != --_iSize)
- System.arraycopy(_arData, (iIndex + 1), _arData, iIndex,
- (_iSize - iIndex));
-
- modCount++;
- _arData[_iSize] = null;
-
- return oResult;
- }
-
- /**
- * Removes all elements in the half-open interval [iFromIndex, iToIndex).
- *
- * @param iFromIndex the first index which will be removed
- * @param iToIndex one greater than the last index which will be
- * removed
- */
- public void removeRange(int iFromIndex, int iToIndex)
- {
- int iReduction;
- int i;
-
- if ((iFromIndex >= _iSize) || (iToIndex >= _iSize))
- {
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "indices=" +
- String.valueOf(iFromIndex) + "," +
- String.valueOf(iToIndex));
- }
- else if (iFromIndex > iToIndex)
- {
- throw new IllegalArgumentException("fromIndex(" +
- String.valueOf(iFromIndex) +
- ") > toIndex(" +
- String.valueOf(iToIndex) + ")");
- }
- else if (iFromIndex != iToIndex)
- {
- iReduction = iToIndex - iFromIndex;
- System.arraycopy(_arData, (iFromIndex + iReduction), _arData,
- iFromIndex, (_iSize - iFromIndex - iReduction));
- modCount++;
-
- for (i = (iFromIndex + iReduction); i < _iSize; i++)
- _arData[i] = null;
-
- _iSize -= iReduction;
- }
- }
-
- /**
- * Adds the supplied element at the specified index, shifting all
- * elements currently at that index or higher one to the right.
- *
- * @param iIndex the index at which the element is being added
- * @param oElement the element being added
- */
- public void add(int iIndex, Object oElement)
- {
- if (iIndex > _iSize)
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "index=" + String.valueOf(iIndex));
-
- ensureCapacity(_iSize + 1);
- System.arraycopy(_arData, iIndex, _arData,
- (iIndex + 1), (_iSize - iIndex));
- _arData[iIndex] = oElement;
- _iSize++;
- modCount++;
- }
-
- /**
- * Add each element in the supplied Collection to this List.
- *
- * @param oCollection a Collection containing elements to be
- * added to this List
- */
- public boolean addAll(Collection oCollection)
- {
- Iterator itElements;
- int iLen = oCollection.size();
-
- if (iLen > 0)
- {
- ensureCapacity(_iSize + iLen);
- modCount++;
-
- itElements = oCollection.iterator();
-
- while (itElements.hasNext())
- _arData[_iSize++] = itElements.next();
-
- return true;
- }
- return false;
- }
-
- /**
- * Add all elements in the supplied collection, inserting them beginning
- * at the specified index.
- *
- * @param iIndex the index at which the elements will be inserted
- * @param oCollection the Collection containing the elements to be
- * inserted
- */
- public boolean addAll(int iIndex, Collection oCollection)
- {
- Iterator itElements;
- int iLen;
-
- if (iIndex > _iSize)
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "index=" + String.valueOf(iIndex));
-
- iLen = oCollection.size();
-
- if (iLen > 0)
- {
- ensureCapacity(_iSize + iLen);
-
- System.arraycopy(_arData, iIndex, _arData,
- (iIndex + iLen), (_iSize - iIndex));
- modCount++;
- _iSize += iLen;
-
- itElements = oCollection.iterator();
- while (itElements.hasNext())
- _arData[iIndex++] = itElements.next();
-
- return true;
- }
- return false;
- }
-
- /**
- * Creates a shallow copy of this ArrayList
- */
- public Object clone()
- {
- ArrayList oClone;
-
- try
- {
- oClone = (ArrayList) super.clone();
- oClone._arData = _arData;
- oClone._iSize = _iSize;
- }
- catch(CloneNotSupportedException e)
- {
- oClone = null;
- }
- return oClone;
- }
-
- /**
- * Returns true iff oElement is in this ArrayList.
- *
- * @param oElement the element whose inclusion in the List is being
- * tested
- */
- public boolean contains(Object oElement)
- {
- return (indexOf(oElement) != -1);
- }
-
- /**
- * Returns the lowest index at which oElement appears in this List, or
- * -1 if it does not appear.
- *
- * @param oElement the element whose inclusion in the List is being
- * tested
- */
- public int indexOf(Object oElement)
- {
- int i;
-
- for (i = 0; i < _iSize; i++)
- {
- if (doesEqual(oElement, _arData[i]))
- return i;
- }
- return -1;
- }
-
- /**
- * Returns the highest index at which oElement appears in this List, or
- * -1 if it does not appear.
- *
- * @param oElement the element whose inclusion in the List is being
- * tested
- */
- public int lastIndexOf(Object oElement)
- {
- int i;
-
- for (i = _iSize - 1; i >= 0; i--)
- {
- if (doesEqual(oElement, _arData[i]))
- return i;
- }
- return -1;
- }
-
- /**
- * Removes all elements from this List
- */
- public void clear()
- {
- int i;
-
- if (_iSize > 0)
- {
- modCount++;
- _iSize = 0;
-
- for (i = 0; i < _iSize; i++)
- _arData[i] = null;
- }
- }
-
- /**
- * Sets the element at the specified index.
- *
- * @param iIndex the index at which the element is being set
- * @param oElement the element to be set
- * @return the element previously at the specified index, or null if
- * none was there
- */
- public Object set(int iIndex, Object oElement)
- {
- Object oResult;
-
- if (iIndex >= _iSize)
- throw new IndexOutOfBoundsException("ArrayList size=" +
- String.valueOf(_iSize) + "; " +
- "index=" + String.valueOf(iIndex));
- oResult = _arData[iIndex];
- // SEH: no structural change, so don't update modCount
- _arData[iIndex] = oElement;
-
- return oResult;
- }
-
- /**
- * Returns an Object Array containing all of the elements in this ArrayList
- */
- public Object[] toArray()
- {
- Object[] arObjects = new Object[_iSize];
- System.arraycopy(_arData, 0, arObjects, 0, _iSize);
- return arObjects;
- }
-
- /**
- * Returns an Array whse component type is the runtime component type of
- * the passes-in Array. The returned Array is populated with all of the
- * elements in this ArrayList. If the passed-in Array is not large enough
- * to store all of the elements in this List, a new Array will be created
- * and returned; if the passed-in Array is <i>larger</i> than the size
- * of this List, then size() + 1 index will be set to null.
- *
- * @param arObjects the passed-in Array
- */
- public Object[] toArray(Object[] arObjects)
- {
- Object[] arReturn = (arObjects.length >= _iSize)
- ? arObjects
- : (Object[])
- Array.newInstance(arObjects.getClass().getComponentType(), _iSize);
-
- System.arraycopy(_arData, 0, arReturn, 0, _iSize);
-
- if (arReturn.length > _iSize)
- arReturn[_iSize] = null;
-
- return arReturn;
- }
-
- /**
- * Trims the capacity of tjis List to be equal to its size;
- * a memory saver.
- */
- public void trimToSize()
- {
- Object[] arNewData = new Object[_iSize];
- System.arraycopy(_arData, 0, arNewData, 0, _iSize);
- modCount++;
- _arData = arNewData;
- }
-
- private void writeObject(ObjectOutputStream oOut)
- throws IOException
- {
- int i;
-
- ObjectOutputStream.PutField oFields = oOut.putFields();
- oFields.put("size", _iSize);
- oOut.writeFields();
-
- oOut.writeInt(_arData.length);
- for (i = 0; i < _arData.length; i++)
- oOut.writeObject(_arData[i]);
- }
-
- private void readObject(ObjectInputStream oIn)
- throws IOException, ClassNotFoundException
- {
- int i;
- int iCapacity;
-
- ObjectInputStream.GetField oFields = oIn.readFields();
- _iSize = oFields.get("size", 0);
-
- iCapacity = oIn.readInt();
- _arData = new Object[iCapacity];
-
- for (i = 0; i < iCapacity; i++)
- _arData[i] = oIn.readObject();
- }
-
- private static final boolean doesEqual(Object oOne, Object oTwo)
- {
- return ((oOne == null) ? (oTwo == null) : oOne.equals(oTwo));
- }
-}
diff --git a/libjava/java/util/Arrays.java b/libjava/java/util/Arrays.java
deleted file mode 100644
index fc51d3886ea..00000000000
--- a/libjava/java/util/Arrays.java
+++ /dev/null
@@ -1,1757 +0,0 @@
-/* Arrays.java -- Utility class with methods to operate on arrays
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Fix the behaviour of sort and binarySearch as applied to float and double
-// arrays containing NaN values. See the JDC, bug ID 4143272.
-
-package java.util;
-
-/**
- * This class contains various static utility methods performing operations on
- * arrays, and a method to provide a List "view" of an array to facilitate
- * using arrays with Collection-based APIs.
- */
-public class Arrays {
-
- /**
- * This class is non-instantiable.
- */
- private Arrays() {
- }
-
- private static Comparator defaultComparator = new Comparator() {
- public int compare(Object o1, Object o2) {
- return ((Comparable)o1).compareTo(o2);
- }
- };
-
- /**
- * Perform a binary search of a byte array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(byte[] a, byte key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final byte d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of a char array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(char[] a, char key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final char d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of a double array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(double[] a, double key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final double d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of a float array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(float[] a, float key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final float d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of an int array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(int[] a, int key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final int d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of a long array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(long[] a, long key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final long d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of a short array for a key. The array must be
- * sorted (as by the sort() method) - if it is not, the behaviour of this
- * method is undefined, and may be an infinite loop. If the array contains
- * the key more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- */
- public static int binarySearch(short[] a, short key) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final short d = a[mid];
- if (d == key) {
- return mid;
- } else if (d > key) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * This method does the work for the Object binary search methods.
- * @exception NullPointerException if the specified comparator is null.
- * @exception ClassCastException if the objects are not comparable by c.
- */
- private static int objectSearch(Object[] a, Object key, final Comparator c) {
- int low = 0;
- int hi = a.length - 1;
- int mid = 0;
- while (low <= hi) {
- mid = (low + hi) >> 1;
- final int d = c.compare(key, a[mid]);
- if (d == 0) {
- return mid;
- } else if (d < 0) {
- hi = mid - 1;
- } else {
- low = ++mid; // This gets the insertion point right on the last loop
- }
- }
- return -mid - 1;
- }
-
- /**
- * Perform a binary search of an Object array for a key, using the natural
- * ordering of the elements. The array must be sorted (as by the sort()
- * method) - if it is not, the behaviour of this method is undefined, and may
- * be an infinite loop. Further, the key must be comparable with every item
- * in the array. If the array contains the key more than once, any one of
- * them may be found. Note: although the specification allows for an infinite
- * loop if the array is unsorted, it will not happen in this (JCL)
- * implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- * @exception ClassCastException if key could not be compared with one of the
- * elements of a
- * @exception NullPointerException if a null element has compareTo called
- */
- public static int binarySearch(Object[] a, Object key) {
- return objectSearch(a, key, defaultComparator);
- }
-
- /**
- * Perform a binary search of an Object array for a key, using a supplied
- * Comparator. The array must be sorted (as by the sort() method with the
- * same Comparator) - if it is not, the behaviour of this method is
- * undefined, and may be an infinite loop. Further, the key must be
- * comparable with every item in the array. If the array contains the key
- * more than once, any one of them may be found. Note: although the
- * specification allows for an infinite loop if the array is unsorted, it
- * will not happen in this (JCL) implementation.
- *
- * @param a the array to search (must be sorted)
- * @param key the value to search for
- * @param c the comparator by which the array is sorted
- * @returns the index at which the key was found, or -n-1 if it was not
- * found, where n is the index of the first value higher than key or
- * a.length if there is no such value.
- * @exception ClassCastException if key could not be compared with one of the
- * elements of a
- */
- public static int binarySearch(Object[] a, Object key, Comparator c) {
- return objectSearch(a, key, c);
- }
-
- /**
- * Compare two byte arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(byte[] a1, byte[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two char arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(char[] a1, char[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two double arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(double[] a1, double[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two float arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(float[] a1, float[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two long arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(long[] a1, long[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two short arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(short[] a1, short[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two boolean arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(boolean[] a1, boolean[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two int arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a2 is of the same length
- * as a1, and for each 0 <= i < a1.length, a1[i] == a2[i]
- */
- public static boolean equals(int[] a1, int[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (a1[i] != a2[i]) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Compare two Object arrays for equality.
- *
- * @param a1 the first array to compare
- * @param a2 the second array to compare
- * @returns true if a1 and a2 are both null, or if a1 is of the same length
- * as a2, and for each 0 <= i < a.length, a1[i] == null ? a2[i] == null :
- * a1[i].equals(a2[i]).
- */
- public static boolean equals(Object[] a1, Object[] a2) {
-
- // Quick test which saves comparing elements of the same array, and also
- // catches the case that both are null.
- if (a1 == a2) {
- return true;
- }
- try {
-
- // If they're the same length, test each element
- if (a1.length == a2.length) {
- for (int i = 0; i < a1.length; i++) {
- if (!(a1[i] == null ? a2[i] == null : a1[i].equals(a2[i]))) {
- return false;
- }
- }
- return true;
- }
-
- // If a1 == null or a2 == null but not both then we will get a NullPointer
- } catch (NullPointerException e) {
- }
-
- return false;
- }
-
- /**
- * Fill an array with a boolean value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(boolean[] a, boolean val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a boolean value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(boolean[] a, int fromIndex, int toIndex,
- boolean val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a byte value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(byte[] a, byte val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a byte value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(byte[] a, int fromIndex, int toIndex, byte val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a char value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(char[] a, char val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a char value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(char[] a, int fromIndex, int toIndex, char val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a double value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(double[] a, double val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a double value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(double[] a, int fromIndex, int toIndex, double val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a float value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(float[] a, float val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a float value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(float[] a, int fromIndex, int toIndex, float val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with an int value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(int[] a, int val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with an int value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(int[] a, int fromIndex, int toIndex, int val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a long value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(long[] a, long val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a long value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(long[] a, int fromIndex, int toIndex, long val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with a short value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- */
- public static void fill(short[] a, short val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with a short value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- */
- public static void fill(short[] a, int fromIndex, int toIndex, short val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- /**
- * Fill an array with an Object value.
- *
- * @param a the array to fill
- * @param val the value to fill it with
- * @exception ClassCastException if val is not an instance of the element
- * type of a.
- */
- public static void fill(Object[] a, Object val) {
- // This implementation is slightly inefficient timewise, but the extra
- // effort over inlining it is O(1) and small, and I refuse to repeat code
- // if it can be helped.
- fill(a, 0, a.length, val);
- }
-
- /**
- * Fill a range of an array with an Object value.
- *
- * @param a the array to fill
- * @param fromIndex the index to fill from, inclusive
- * @param toIndex the index to fill to, exclusive
- * @param val the value to fill with
- * @exception ClassCastException if val is not an instance of the element
- * type of a.
- */
- public static void fill(Object[] a, int fromIndex, int toIndex, Object val) {
- for (int i = fromIndex; i < toIndex; i++) {
- a[i] = val;
- }
- }
-
- // Thanks to Paul Fisher <rao@gnu.org> for finding this quicksort algorithm
- // as specified by Sun and porting it to Java.
-
- /**
- * Sort a byte array into ascending order. The sort algorithm is an optimised
- * quicksort, as described in Jon L. Bentley and M. Douglas McIlroy's
- * "Engineering a Sort Function", Software-Practice and Experience, Vol.
- * 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort.
- *
- * @param a the array to sort
- */
- public static void sort(byte[] a) {
- qsort(a, 0, a.length);
- }
-
- private static short cmp(byte i, byte j) {
- return (short)(i-j);
- }
-
- private static int med3(int a, int b, int c, byte[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, byte[] a) {
- byte c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(byte[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- short r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, byte[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort a char array into ascending order. The sort algorithm is an optimised
- * quicksort, as described in Jon L. Bentley and M. Douglas McIlroy's
- * "Engineering a Sort Function", Software-Practice and Experience, Vol.
- * 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort.
- *
- * @param a the array to sort
- */
- public static void sort(char[] a) {
- qsort(a, 0, a.length);
- }
-
- private static int cmp(char i, char j) {
- return i-j;
- }
-
- private static int med3(int a, int b, int c, char[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, char[] a) {
- char c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(char[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- int r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, char[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort a double array into ascending order. The sort algorithm is an
- * optimised quicksort, as described in Jon L. Bentley and M. Douglas
- * McIlroy's "Engineering a Sort Function", Software-Practice and Experience,
- * Vol. 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort. Note that this implementation, like Sun's, has undefined
- * behaviour if the array contains any NaN values.
- *
- * @param a the array to sort
- */
- public static void sort(double[] a) {
- qsort(a, 0, a.length);
- }
-
- private static double cmp(double i, double j) {
- return i-j;
- }
-
- private static int med3(int a, int b, int c, double[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, double[] a) {
- double c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(double[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- double r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, double[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort a float array into ascending order. The sort algorithm is an
- * optimised quicksort, as described in Jon L. Bentley and M. Douglas
- * McIlroy's "Engineering a Sort Function", Software-Practice and Experience,
- * Vol. 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort. Note that this implementation, like Sun's, has undefined
- * behaviour if the array contains any NaN values.
- *
- * @param a the array to sort
- */
- public static void sort(float[] a) {
- qsort(a, 0, a.length);
- }
-
- private static float cmp(float i, float j) {
- return i-j;
- }
-
- private static int med3(int a, int b, int c, float[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, float[] a) {
- float c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(float[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- float r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, float[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort an int array into ascending order. The sort algorithm is an optimised
- * quicksort, as described in Jon L. Bentley and M. Douglas McIlroy's
- * "Engineering a Sort Function", Software-Practice and Experience, Vol.
- * 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort.
- *
- * @param a the array to sort
- */
- public static void sort(int[] a) {
- qsort(a, 0, a.length);
- }
-
- private static long cmp(int i, int j) {
- return (long)i-(long)j;
- }
-
- private static int med3(int a, int b, int c, int[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, int[] a) {
- int c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(int[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- long r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, int[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort a long array into ascending order. The sort algorithm is an optimised
- * quicksort, as described in Jon L. Bentley and M. Douglas McIlroy's
- * "Engineering a Sort Function", Software-Practice and Experience, Vol.
- * 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort.
- *
- * @param a the array to sort
- */
- public static void sort(long[] a) {
- qsort(a, 0, a.length);
- }
-
- // The "cmp" method has been removed from here and replaced with direct
- // compares in situ, to avoid problems with overflow if the difference
- // between two numbers is bigger than a long will hold.
- // One particular change as a result is the use of r1 and r2 in qsort
-
- private static int med3(int a, int b, int c, long[] d) {
- return d[a] < d[b] ?
- (d[b] < d[c] ? b : d[a] < d[c] ? c : a)
- : (d[b] > d[c] ? b : d[a] > d[c] ? c : a);
- }
-
- private static void swap(int i, int j, long[] a) {
- long c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(long[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && a[j-1] > a[j]; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- long r1, r2;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r1 = a[pb]) <= (r2 = a[pv])) {
- if (r1 == r2) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r1 = a[pc]) >= (r2 = a[pv])) {
- if (r1 == r2) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, long[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * Sort a short array into ascending order. The sort algorithm is an
- * optimised quicksort, as described in Jon L. Bentley and M. Douglas
- * McIlroy's "Engineering a Sort Function", Software-Practice and Experience,
- * Vol. 23(11) P. 1249-1265 (November 1993). This algorithm gives nlog(n)
- * performance on many arrays that would take quadratic time with a standard
- * quicksort.
- *
- * @param a the array to sort
- */
- public static void sort(short[] a) {
- qsort(a, 0, a.length);
- }
-
- private static int cmp(short i, short j) {
- return i-j;
- }
-
- private static int med3(int a, int b, int c, short[] d) {
- return cmp(d[a], d[b]) < 0 ?
- (cmp(d[b], d[c]) < 0 ? b : cmp(d[a], d[c]) < 0 ? c : a)
- : (cmp(d[b], d[c]) > 0 ? b : cmp(d[a], d[c]) > 0 ? c : a);
- }
-
- private static void swap(int i, int j, short[] a) {
- short c = a[i];
- a[i] = a[j];
- a[j] = c;
- }
-
- private static void qsort(short[] a, int start, int n) {
- // use an insertion sort on small arrays
- if (n < 7) {
- for (int i = start + 1; i < start + n; i++)
- for (int j = i; j > 0 && cmp(a[j-1], a[j]) > 0; j--)
- swap(j, j-1, a);
- return;
- }
-
- int pm = n/2; // small arrays, middle element
- if (n > 7) {
- int pl = start;
- int pn = start + n-1;
-
- if (n > 40) { // big arrays, pseudomedian of 9
- int s = n/8;
- pl = med3(pl, pl+s, pl+2*s, a);
- pm = med3(pm-s, pm, pm+s, a);
- pn = med3(pn-2*s, pn-s, pn, a);
- }
- pm = med3(pl, pm, pn, a); // mid-size, med of 3
- }
-
- int pa, pb, pc, pd, pv;
- int r;
-
- pv = start; swap(pv, pm, a);
- pa = pb = start;
- pc = pd = start + n-1;
-
- for (;;) {
- while (pb <= pc && (r = cmp(a[pb], a[pv])) <= 0) {
- if (r == 0) { swap(pa, pb, a); pa++; }
- pb++;
- }
- while (pc >= pb && (r = cmp(a[pc], a[pv])) >= 0) {
- if (r == 0) { swap(pc, pd, a); pd--; }
- pc--;
- }
- if (pb > pc) break;
- swap(pb, pc, a);
- pb++;
- pc--;
- }
- int pn = start + n;
- int s;
- s = Math.min(pa-start, pb-pa); vecswap(start, pb-s, s, a);
- s = Math.min(pd-pc, pn-pd-1); vecswap(pb, pn-s, s, a);
- if ((s = pb-pa) > 1) qsort(a, start, s);
- if ((s = pd-pc) > 1) qsort(a, pn-s, s);
- }
-
- private static void vecswap(int i, int j, int n, short[] a) {
- for (; n > 0; i++, j++, n--)
- swap(i, j, a);
- }
-
- /**
- * The bulk of the work for the object sort routines. In general,
- * the code attempts to be simple rather than fast, the idea being
- * that a good optimising JIT will be able to optimise it better
- * than I can, and if I try it will make it more confusing for the
- * JIT.
- */
- private static void mergeSort(Object[] a, int from, int to, Comparator c)
- {
- // First presort the array in chunks of length 6 with insertion sort.
- // mergesort would give too much overhead for this length.
- for (int chunk = from; chunk < to; chunk += 6)
- {
- int end = Math.min(chunk+6, to);
- for (int i = chunk + 1; i < end; i++)
- {
- if (c.compare(a[i-1], a[i]) > 0)
- {
- // not already sorted
- int j=i;
- Object elem = a[j];
- do
- {
- a[j] = a[j-1];
- j--;
- }
- while (j>chunk && c.compare(a[j-1], elem) > 0);
- a[j] = elem;
- }
- }
- }
-
- int len = to - from;
- // If length is smaller or equal 6 we are done.
- if (len <= 6)
- return;
-
- Object[] src = a;
- Object[] dest = new Object[len];
- Object[] t = null; // t is used for swapping src and dest
-
- // The difference of the fromIndex of the src and dest array.
- int srcDestDiff = -from;
-
- // The merges are done in this loop
- for (int size = 6; size < len; size <<= 1)
- {
- for (int start = from; start < to; start += size << 1)
- {
- // mid ist the start of the second sublist;
- // end the start of the next sublist (or end of array).
- int mid = start + size;
- int end = Math.min(to, mid + size);
-
- // The second list is empty or the elements are already in
- // order - no need to merge
- if (mid >= end || c.compare(src[mid - 1], src[mid]) <= 0) {
- System.arraycopy(src, start,
- dest, start + srcDestDiff, end - start);
-
- // The two halves just need swapping - no need to merge
- } else if (c.compare(src[start], src[end - 1]) > 0) {
- System.arraycopy(src, start,
- dest, end - size + srcDestDiff, size);
- System.arraycopy(src, mid,
- dest, start + srcDestDiff, end - mid);
-
- } else {
- // Declare a lot of variables to save repeating
- // calculations. Hopefully a decent JIT will put these
- // in registers and make this fast
- int p1 = start;
- int p2 = mid;
- int i = start + srcDestDiff;
-
- // The main merge loop; terminates as soon as either
- // half is ended
- while (p1 < mid && p2 < end)
- {
- dest[i++] =
- src[c.compare(src[p1], src[p2]) <= 0 ? p1++ : p2++];
- }
-
- // Finish up by copying the remainder of whichever half
- // wasn't finished.
- if (p1 < mid)
- System.arraycopy(src, p1, dest, i, mid - p1);
- else
- System.arraycopy(src, p2, dest, i, end - p2);
- }
- }
- // swap src and dest ready for the next merge
- t = src; src = dest; dest = t;
- from += srcDestDiff;
- to += srcDestDiff;
- srcDestDiff = -srcDestDiff;
- }
-
- // make sure the result ends up back in the right place. Note
- // that src and dest may have been swapped above, so src
- // contains the sorted array.
- if (src != a)
- {
- // Note that from == 0.
- System.arraycopy(src, 0, a, srcDestDiff, to);
- }
- }
-
- /**
- * Sort an array of Objects according to their natural ordering. The sort is
- * guaranteed to be stable, that is, equal elements will not be reordered.
- * The sort algorithm is a mergesort with the merge omitted if the last
- * element of one half comes before the first element of the other half. This
- * algorithm gives guaranteed O(nlog(n)) time, at the expense of making a
- * copy of the array.
- *
- * @param a the array to be sorted
- * @exception ClassCastException if any two elements are not mutually
- * comparable
- * @exception NullPointerException if an element is null (since
- * null.compareTo cannot work)
- */
- public static void sort(Object[] a) {
- mergeSort(a, 0, a.length, defaultComparator);
- }
-
- /**
- * Sort an array of Objects according to a Comparator. The sort is
- * guaranteed to be stable, that is, equal elements will not be reordered.
- * The sort algorithm is a mergesort with the merge omitted if the last
- * element of one half comes before the first element of the other half. This
- * algorithm gives guaranteed O(nlog(n)) time, at the expense of making a
- * copy of the array.
- *
- * @param a the array to be sorted
- * @param c a Comparator to use in sorting the array
- * @exception ClassCastException if any two elements are not mutually
- * comparable by the Comparator provided
- */
- public static void sort(Object[] a, Comparator c) {
- mergeSort(a, 0, a.length, c);
- }
-
- /**
- * Sort an array of Objects according to their natural ordering. The sort is
- * guaranteed to be stable, that is, equal elements will not be reordered.
- * The sort algorithm is a mergesort with the merge omitted if the last
- * element of one half comes before the first element of the other half. This
- * algorithm gives guaranteed O(nlog(n)) time, at the expense of making a
- * copy of the array.
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element to be sorted.
- * @param toIndex the index of the last element to be sorted plus one.
- * @exception ClassCastException if any two elements are not mutually
- * comparable by the Comparator provided
- * @exception ArrayIndexOutOfBoundsException, if fromIndex and toIndex
- * are not in range.
- * @exception IllegalArgumentException if fromIndex > toIndex
- */
- public static void sort(Object[] a, int fromIndex,
- int toIndex) {
- if (fromIndex > toIndex)
- throw new IllegalArgumentException("fromIndex "+fromIndex
- +" > toIndex "+toIndex);
- mergeSort(a, fromIndex, toIndex, defaultComparator);
- }
-
- /**
- * Sort an array of Objects according to a Comparator. The sort is
- * guaranteed to be stable, that is, equal elements will not be reordered.
- * The sort algorithm is a mergesort with the merge omitted if the last
- * element of one half comes before the first element of the other half. This
- * algorithm gives guaranteed O(nlog(n)) time, at the expense of making a
- * copy of the array.
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element to be sorted.
- * @param toIndex the index of the last element to be sorted plus one.
- * @param c a Comparator to use in sorting the array
- * @exception ClassCastException if any two elements are not mutually
- * comparable by the Comparator provided
- * @exception ArrayIndexOutOfBoundsException, if fromIndex and toIndex
- * are not in range.
- * @exception IllegalArgumentException if fromIndex > toIndex
- */
- public static void sort(Object[] a, int fromIndex,
- int toIndex, Comparator c) {
- if (fromIndex > toIndex)
- throw new IllegalArgumentException("fromIndex "+fromIndex
- +" > toIndex "+toIndex);
- mergeSort(a, fromIndex, toIndex, c);
- }
-
- /**
- * Returns a list "view" of the specified array. This method is intended to
- * make it easy to use the Collections API with existing array-based APIs and
- * programs.
- *
- * @param a the array to return a view of
- * @returns a fixed-size list, changes to which "write through" to the array
- */
- public static List asList(final Object[] a) {
-
- if (a == null) {
- throw new NullPointerException();
- }
-
- return new ListImpl( a );
- }
-
-
- /**
- * Inner class used by asList(Object[]) to provide a list interface
- * to an array. The methods are all simple enough to be self documenting.
- * Note: When Sun fully specify serialized forms, this class will have to
- * be renamed.
- */
- private static class ListImpl extends AbstractList {
-
- ListImpl(Object[] a) {
- this.a = a;
- }
-
- public Object get(int index) {
- return a[index];
- }
-
- public int size() {
- return a.length;
- }
-
- public Object set(int index, Object element) {
- Object old = a[index];
- a[index] = element;
- return old;
- }
-
- private Object[] a;
- }
-
-}
diff --git a/libjava/java/util/BasicMapEntry.java b/libjava/java/util/BasicMapEntry.java
deleted file mode 100644
index 2d6d0e51904..00000000000
--- a/libjava/java/util/BasicMapEntry.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/* BasicMapEntry.java -- a class providing a plain-vanilla implementation of
- the Map.Entry interface; could be used anywhere in java.util
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-/**
- * a class which implements Map.Entry
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.3 $
- * @modified $Id: BasicMapEntry.java,v 1.3 2000/03/15 21:59:07 rao Exp $
- */
-class BasicMapEntry implements Map.Entry
-{
- /** the key */
- Object key;
- /** the value */
- Object value;
-
- /**
- * construct a new BasicMapEntry with the given key and value
- *
- * @param newKey the key of this Entry
- * @param newValue the value of this Entry
- */
- BasicMapEntry(Object newKey, Object newValue)
- {
- key = newKey;
- value = newValue;
- }
-
- /**
- * returns true if <pre>o</pre> is a Map.Entry and
- * <pre>
- * (((o.getKey == null) ? (key == null) :
- * o.getKey().equals(key)) &&
- * ((o.getValue() == null) ? (value == null) :
- * o.getValue().equals(value)))
- * </pre>
- *
- * NOTE: the calls to getKey() and getValue() in this implementation
- * are <i>NOT</i> superfluous and should not be removed. They insure
- * that subclasses such as HashMapEntry work correctly
- *
- * @param o the Object being tested for equality
- */
- public boolean equals(Object o)
- {
- Map.Entry tester;
- Object oTestingKey, oTestingValue;
- Object oKey, oValue;
- if (o instanceof Map.Entry)
- {
- tester = (Map.Entry) o;
- oKey = getKey();
- oValue = getValue();
- oTestingKey = tester.getKey();
- oTestingValue = tester.getValue();
- return (((oTestingKey == null) ? (oKey == null) :
- oTestingKey.equals(oKey)) &&
- ((oTestingValue == null) ? (oValue == null) :
- oTestingValue.equals(oValue)));
- }
- return false;
- }
-
- /** returns the key */
- public Object getKey()
- {
- return key;
- }
-
- /** returns the value */
- public Object getValue()
- {
- return value;
- }
-
- /** the hashCode() for a Map.Entry is
- * <pre>
- * ((getKey() == null) ? 0 : getKey().hashCode()) ^
- * ((getValue() == null) ? 0 : getValue().hashCode());
- * </pre>
- *
- * NOTE: the calls to getKey() and getValue() in this implementation
- * are <i>NOT</i> superfluous and should not be removed. They insure
- * that subclasses such as HashMapEntry work correctly
- */
- public int hashCode()
- {
- Object oKey = getKey();
- Object oValue = getValue();
- return ((oKey == null) ? 0 : oKey.hashCode()) ^
- ((oValue == null) ? 0 : oValue.hashCode());
- }
-
- /**
- * sets the value of this Map.Entry
- *
- * @param newValue the new value of this Map.Entry
- */
- public Object setValue(Object newValue)
- throws java.lang.UnsupportedOperationException, ClassCastException,
- IllegalArgumentException, NullPointerException
- {
- Object oVal = value;
- value = newValue;
- return oVal;
- }
-}
diff --git a/libjava/java/util/BitSet.java b/libjava/java/util/BitSet.java
deleted file mode 100644
index 56d89b116b6..00000000000
--- a/libjava/java/util/BitSet.java
+++ /dev/null
@@ -1,177 +0,0 @@
-// BitSet - A vector of bits.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-import java.io.Serializable;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 23, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * hashCode algorithm taken from JDK 1.2 docs.
- */
-
-public final class BitSet implements Cloneable, Serializable
-{
- public void and (BitSet bs)
- {
- int max = Math.min(bits.length, bs.bits.length);
- int i;
- for (i = 0; i < max; ++i)
- bits[i] &= bs.bits[i];
- for ( ; i < bits.length; ++i)
- bits[i] = 0;
- }
-
- public BitSet ()
- {
- this (64);
- }
-
- public BitSet (int nbits)
- {
- if (nbits < 0)
- throw new NegativeArraySizeException ();
- int length = nbits / 64;
- if (nbits % 64 != 0)
- ++length;
- bits = new long[length];
- }
-
- public void clear (int pos)
- {
- if (pos < 0)
- throw new IndexOutOfBoundsException ();
- int bit = pos % 64;
- int offset = pos / 64;
- ensure (offset);
- bits[offset] &= ~ (1L << bit);
- }
-
- public Object clone ()
- {
- BitSet bs = new BitSet (bits.length * 64);
- System.arraycopy(bits, 0, bs.bits, 0, bits.length);
- return bs;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof BitSet))
- return false;
- BitSet bs = (BitSet) obj;
- int max = Math.min(bits.length, bs.bits.length);
- int i;
- for (i = 0; i < max; ++i)
- if (bits[i] != bs.bits[i])
- return false;
- // If one is larger, check to make sure all extra bits are 0.
- for (int j = i; j < bits.length; ++j)
- if (bits[j] != 0)
- return false;
- for (int j = i; j < bs.bits.length; ++j)
- if (bs.bits[j] != 0)
- return false;
- return true;
- }
-
- public boolean get (int pos)
- {
- if (pos < 0)
- throw new IndexOutOfBoundsException ();
-
- int bit = pos % 64;
- int offset = pos / 64;
-
- if (offset >= bits.length)
- return false;
-
- return (bits[offset] & (1L << bit)) == 0 ? false : true;
- }
-
- public int hashCode ()
- {
- long h = 1234;
- for (int i = bits.length - 1; i >= 0; --i)
- h ^= bits[i] * (i + 1);
- return (int) ((h >> 32) ^ h);
- }
-
- public void or (BitSet bs)
- {
- ensure (bs.bits.length - 1);
- int i;
- for (i = 0; i < bs.bits.length; ++i)
- bits[i] |= bs.bits[i];
- }
-
- public void set (int pos)
- {
- if (pos < 0)
- throw new IndexOutOfBoundsException ();
- int bit = pos % 64;
- int offset = pos / 64;
- ensure (offset);
- bits[offset] |= 1L << bit;
- }
-
- public int size ()
- {
- return bits.length * 64;
- }
-
- public String toString ()
- {
- StringBuffer result = new StringBuffer ("{");
- boolean first = true;
- for (int i = 0; i < bits.length; ++i)
- {
- int bit = 1;
- long word = bits[i];
- for (int j = 0; j < 64; ++j)
- {
- if ((word & bit) != 0)
- {
- if (! first)
- result.append(", ");
- result.append(64 * i + j);
- first = false;
- }
- bit <<= 1;
- }
- }
-
- return result.append("}").toString();
- }
-
- public void xor (BitSet bs)
- {
- ensure (bs.bits.length - 1);
- int i;
- for (i = 0; i < bs.bits.length; ++i)
- bits[i] ^= bs.bits[i];
- }
-
- // Make sure the vector is big enough.
- private final void ensure (int lastElt)
- {
- if (lastElt + 1 > bits.length)
- {
- long[] nd = new long[lastElt + 1];
- System.arraycopy(bits, 0, nd, 0, bits.length);
- bits = nd;
- }
- }
-
- // The actual bits.
- private long[] bits;
-}
diff --git a/libjava/java/util/Bucket.java b/libjava/java/util/Bucket.java
deleted file mode 100644
index 8c0edf4a676..00000000000
--- a/libjava/java/util/Bucket.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Bucket.java -- a class providing a hash-bucket data structure
- (a lightweight linked list)
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-/**
- * a class representing a simple, lightweight linked-list, using Node
- * objects as its linked nodes; this is used by Hashtable and HashMap
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.3 $
- * @modified $Id: Bucket.java,v 1.3 2000/03/15 21:59:08 rao Exp $
- */
-class Bucket
-{
- /** the first node of the lined list, originally null */
- Node first;
-
- /** trivial constructor for a Bucket */
- Bucket()
- {
- }
-
- /** add this key / value pair to the list
- *
- * @param newNode a Node object to be added to this list
- * @return the old value mapped to the key if there was one,
- * otherwise null.
- */
- Object add(Node newNode)
- {
- Object oKey;
- Object oTestKey = newNode.getKey();
- Node it = first;
- Node prev = null;
- if (it == null) // if the list is empty (the ideal case), we make a new single-node list
- {
- first = newNode;
- return null;
- }
- else // otherwise try to find where this key already exists in the list,
- {// and if it does, replace the value with the new one (and return the old one)
- while (it != null)
- {
- oKey = it.getKey();
- if ((oKey == null) ? (oTestKey == null) :
- oKey.equals(oTestKey))
- {
- Object oldValue = it.value;
- it.value = newNode.getValue();
- return oldValue;
- }
- prev = it;
- it = it.next;
- }
- prev.next = newNode; // otherwise, just stick this at the
- return null; // end of the list
- }
- }
-
- /**
- * remove a Map.Entry in this list with the supplied key and return its value,
- * if it exists, else return null
- *
- * @param key the key we are looking for in this list
- */
- Object removeByKey(Object key)
- {
- Object oEntryKey;
- Node prev = null;
- Node it = first;
- while (it != null)
- {
- oEntryKey = it.getKey();
- if ((oEntryKey == null) ? (key == null) : oEntryKey.equals(key))
- {
- if (prev == null) // we are removing the first element
- first = it.next;
- else
- prev.next = it.next;
- return it.getValue();
- }
- else
- {
- prev = it;
- it = it.next;
- }
- }
- return null;
- }
-
- /**
- * return the value which the supplied key maps to, if it maps to anything in this list,
- * otherwise, return null
- *
- * @param key the key mapping to a value that we are looking for
- */
- Object getValueByKey(Object key)
- {
- Node entry = getEntryByKey(key);
- return (entry == null) ? null : entry.getValue();
- }
-
- /**
- * return the Map.Entry which the supplied key is a part of, if such a Map.Entry exists,
- * null otherwise
- *
- * this method is important for HashMap, which can hold null values and the null key
- *
- * @param key the key for which we are finding the corresponding Map.Entry
- */
- Node getEntryByKey(Object key)
- {
- Object oEntryKey;
- Node it = first;
- while (it != null)
- {
- oEntryKey = it.getKey();
- if ((oEntryKey == null) ? (key == null) : oEntryKey.equals(key))
- return it;
- it = it.next;
- }
- return null;
- }
-
- /**
- * return true if this list has a Map.Entry whose value equals() the supplied value
- *
- * @param value the value we are looking to match in this list
- */
- boolean containsValue(Object value)
- {
- Object oEntryValue;
- Node it = first;
- while (it != null)
- {
- oEntryValue = it.getValue();
- if ((oEntryValue == null) ? (value == null) : oEntryValue.equals(value))
- return true;
- it = it.next;
- }
- return false;
- }
-
- // INNSER CLASSES ----------------------------------------------------------
-
- /**
- * a class represnting a node in our lightweight linked-list
- * that we use for hash buckets; a Node object contains a Map.Entry as its
- * <pre>value</pre> property and a reference (possibly, even hopefully, null)
- * to another Node as its <pre>next</pre> property.
- *
- * There <i>is</i> a reason for not using a highly generic "LinkedNode" type
- * class: we want to eliminate runtime typechecks.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.3 $
- * @modified $Id: Bucket.java,v 1.3 2000/03/15 21:59:08 rao Exp $
- */
- static class Node extends BasicMapEntry implements Map.Entry
- {
- /** a reference to the next node in the linked list */
- Node next;
-
- /** non-trivial contructor -- sets the <pre>value</pre> of the Bucket upon instantiation */
- Node(Object key, Object value)
- {
- super(key, value);
- }
-
-
- }
- // EOF ------------------------------------------------------------------------
-}
diff --git a/libjava/java/util/Calendar.java b/libjava/java/util/Calendar.java
deleted file mode 100644
index b5eaa4d39d6..00000000000
--- a/libjava/java/util/Calendar.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1.
- * Status: Unimplemented: getAvailableLocales.
- * No Locale knowledge.
- */
-
-public abstract class Calendar implements java.io.Serializable, Cloneable
-{
- public final static int JANUARY = 0;
- public final static int FEBRUARY = 1;
- public final static int MARCH = 2;
- public final static int APRIL = 3;
- public final static int MAY = 4;
- public final static int JUNE = 5;
- public final static int JULY = 6;
- public final static int AUGUST = 7;
- public final static int SEPTEMBER = 8;
- public final static int OCTOBER = 9;
- public final static int NOVEMBER = 10;
- public final static int DECEMBER = 11;
- public final static int UNDECIMBER = 12;
-
- public final static int SUNDAY = 1;
- public final static int MONDAY = 2;
- public final static int TUESDAY = 3;
- public final static int WEDNESDAY = 4;
- public final static int THURSDAY = 5;
- public final static int FRIDAY = 6;
- public final static int SATURDAY = 7;
-
- public final static int AM = 0;
- public final static int PM = 1;
-
- public final static int FIELD_COUNT = 17;
-
- // These constants are not docuemnted, but were determined using
- // a simple test program.
- public final static int ERA = 0;
- public final static int YEAR = 1;
- public final static int MONTH = 2;
- public final static int WEEK_OF_YEAR = 3;
- public final static int WEEK_OF_MONTH = 4;
- public final static int DATE = 5;
- public final static int DAY_OF_MONTH = 5;
- public final static int DAY_OF_YEAR = 6;
- public final static int DAY_OF_WEEK = 7;
- public final static int DAY_OF_WEEK_IN_MONTH = 8;
- public final static int AM_PM = 9;
- public final static int HOUR = 10;
- public final static int HOUR_OF_DAY = 11;
- public final static int MINUTE = 12;
- public final static int SECOND = 13;
- public final static int MILLISECOND = 14;
- public final static int ZONE_OFFSET = 15;
- public final static int DST_OFFSET = 16;
-
- // The fields are as specified in Sun's "Serialized Form"
- // in the JDK 1.2 beta 4 API specification.
- protected boolean areFieldsSet;
- protected int[] fields;
- private int firstDayOfWeek;
- protected boolean[] isSet;
- protected boolean isTimeSet;
- private boolean lenient;
- private int minimalDaysInFirstWeek;
- private int nextStamp;
- //private int serialVersionOnStream;
- protected long time;
- private TimeZone zone;
-
- protected Calendar ()
- {
- this (null, null);
- }
-
- protected Calendar (TimeZone zone, Locale loc)
- {
- fields = new int[FIELD_COUNT];
- isSet = new boolean[FIELD_COUNT];
- firstDayOfWeek = SUNDAY; // Locale-dependent. FIXME.
- this.zone = zone != null ? zone : TimeZone.getDefault();
- }
-
- public Object clone ()
- {
- try
- {
- return super.clone();
- }
- catch (CloneNotSupportedException ex)
- {
- throw new RuntimeException("internal error - "+ex);
- }
- }
-
- public String toString ()
- {
- // We have much latitude in how we implement this.
- return ("areFieldsSet " + areFieldsSet
- + "; fields " + fields
- + "; firstDayOfWeek " + firstDayOfWeek
- + "; isSet " + isSet
- + "; isTimeSet " + isTimeSet
- + "; lenient " + lenient
- + "; minimalDaysInFirstWeek " + minimalDaysInFirstWeek
- + "; nextStamp " + nextStamp
- + "; time " + time
- + "; zone " + zone);
- }
-
- public static Calendar getInstance ()
- {
- return new GregorianCalendar ();
- }
-
- public static Calendar getInstance (TimeZone zone)
- {
- return new GregorianCalendar (zone);
- }
-
- public static Calendar getInstance (Locale locale)
- {
- return new GregorianCalendar (locale);
- }
-
- public static Calendar getInstance (TimeZone zone, Locale locale)
- {
- return new GregorianCalendar (zone, locale);
- }
-
- public boolean isLenient() { return lenient; }
- public void setLenient (boolean lenient) { this.lenient = lenient; }
-
- public int getFirstDayOfWeek ()
- {
- return firstDayOfWeek;
- }
-
- public void setFirstDayOfWeek (int value)
- {
- firstDayOfWeek = value;
- }
-
- public int getMinimalDaysInFirstWeek ()
- {
- return minimalDaysInFirstWeek;
- }
-
- public void setMinimalDaysInFirstWeek (int value)
- {
- minimalDaysInFirstWeek = value;
- }
-
- public TimeZone getTimeZone ()
- {
- return zone;
- }
-
- public void setTimeZone (TimeZone tz)
- {
- zone = tz;
- }
-
- abstract public void add(int fld, int amount);
- abstract public void roll (int fld, boolean up);
-
- public final void set (int year, int month, int date)
- {
- set(YEAR, year);
- set(MONTH, month);
- set(DATE, date);
- }
-
- public final void set (int year, int month, int date, int hour, int minute)
- {
- set(year, month, date);
- set(HOUR_OF_DAY, hour);
- set(MINUTE, minute);
- }
-
- public final void set (int year, int month, int date,
- int hour, int minute, int second)
- {
- set(year, month, date, hour, minute);
- set(SECOND, second);
- }
-
- public final void set (int fld, int value)
- {
- if (! areFieldsSet) computeFields();
- fields[fld] = value;
- isTimeSet = false;
- }
-
- public final void clear (int fld)
- {
- fields[fld] = 0;
- isSet[fld] = false;
- areFieldsSet = false;
- }
-
- public final void clear ()
- {
- for (int fld = FIELD_COUNT; --fld >= 0; )
- {
- fields[fld] = 0;
- isSet[fld] = false;
- }
- areFieldsSet = false;
- }
-
- protected void complete()
- {
- if (!isTimeSet) computeTime();
- if (!areFieldsSet) computeFields();
- }
-
- protected abstract void computeFields();
- protected abstract void computeTime();
-
- protected final int internalGet (int fld) { return fields[fld]; }
-
- public final int get(int fld)
- {
- complete();
- return fields[fld];
- }
-
- public abstract boolean after (Object cal);
- public abstract boolean before (Object cal);
- public abstract boolean equals (Object obj);
-
- protected long getTimeInMillis()
- {
- if (!isTimeSet) computeTime();
- return time;
- }
-
- public final Date getTime() { return new Date(getTimeInMillis()); }
-
- public final void setTime (Date date)
- {
- setTimeInMillis(date.getTime());
- }
-
- protected void setTimeInMillis (long millis)
- {
- time = millis;
- isTimeSet = true;
- clear();
- }
-
- abstract public int getMaximum(int fld);
- abstract public int getMinimum(int fld);
- abstract public int getGreatestMinimum(int fld);
- abstract public int getLeastMaximum(int fld);
-
- public final boolean isSet(int fld) { return isSet[fld]; }
-}
diff --git a/libjava/java/util/Collection.java b/libjava/java/util/Collection.java
deleted file mode 100644
index 46da71b1dc7..00000000000
--- a/libjava/java/util/Collection.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface Collection
-{
- public int size();
- public boolean isEmpty();
- public boolean contains(Object o);
- public Iterator iterator();
- public Object[] toArray();
- public Object[] toArray(Object[] a);
- public boolean add(Object o);
- public boolean remove(Object o);
- public boolean containsAll(Collection c);
- public boolean addAll(Collection c);
- public boolean removeAll(Collection c);
- public boolean retainAll(Collection c);
- public void clear();
- public boolean equals(Object o);
- public int hashCode();
-}
diff --git a/libjava/java/util/Comparator.java b/libjava/java/util/Comparator.java
deleted file mode 100644
index 8f114ee79b0..00000000000
--- a/libjava/java/util/Comparator.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface Comparator
-{
- public int compare(Object o1, Object o2);
- public boolean equals(Object obj);
-}
diff --git a/libjava/java/util/ConcurrentModificationException.java b/libjava/java/util/ConcurrentModificationException.java
deleted file mode 100644
index 6849fcc87bc..00000000000
--- a/libjava/java/util/ConcurrentModificationException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-/* Added in JDK 1.2 */
-public class ConcurrentModificationException extends RuntimeException
-{
- public ConcurrentModificationException()
- {
- super();
- }
-
- public ConcurrentModificationException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/util/Date.java b/libjava/java/util/Date.java
deleted file mode 100644
index 6a8a7654938..00000000000
--- a/libjava/java/util/Date.java
+++ /dev/null
@@ -1,483 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-import java.text.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * "The Java Language Specification", ISBN 0-201-63451-1,
- * and O'Reilly's "Java in a Nutshell".
- * Status: Need to re-write toString().
- * Missing: ToGMTString and toLocaleString.
- * Serialization spec: Specifies readObject/writeObject.
- */
-
-public class Date implements java.io.Serializable, Cloneable
-{
- private long millis;
-
- public Date() { millis = System.currentTimeMillis(); }
-
- public Date(long millis) { this.millis = millis; }
-
- public Date(int year, int month, int date, int hours,
- int minutes, int seconds)
- {
- setTime(year, month, date, hours, minutes, seconds);
- }
-
- public Date(int year, int month, int date, int hours, int minutes)
- {
- setTime(year, month, date, hours, minutes, 0);
- }
-
- public Date(int year, int month, int date)
- {
- setTime(year, month, date, 0, 0, 0);
- }
-
- public Date (String s) { this(parse(s)); }
-
- private static int skipParens(String string, int offset)
- {
- int len = string.length();
- int p = 0;
- int i;
-
- for (i = offset; i < len; ++i)
- {
- if (string.charAt(i) == '(')
- ++p;
- else if (string.charAt(i) == ')')
- {
- --p;
- if (p == 0)
- return i + 1;
- // If we've encounted unbalanced parens, just return the
- // leftover one as an ordinary character. It will be
- // caught later in parsing and cause an
- // IllegalArgumentException.
- if (p < 0)
- return i;
- }
- }
-
- // Not sure what to do if `p != 0' here.
- return i;
- }
-
- private static int parseTz(String tok, char sign)
- throws IllegalArgumentException
- {
- int num;
-
- try
- {
- // parseInt doesn't handle '+' so strip off sign.
- num = Integer.parseInt(tok.substring(1));
- }
- catch (NumberFormatException ex)
- {
- throw new IllegalArgumentException(tok);
- }
-
- // Convert hours to minutes.
- if (num < 24)
- num *= 60;
- else
- num = (num / 100) * 60 + num % 100;
-
- return sign == '-' ? -num : num;
- }
-
- private static int parseMonth(String tok)
- {
- // Initialize strings for month names.
- // We could possibly use the fields of DateFormatSymbols but that is
- // localized and thus might not match the English words specified.
- String months[] = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY",
- "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER",
- "NOVEMBER", "DECEMBER" };
-
- int i;
- for (i = 0; i < 12; i++)
- if (months[i].startsWith(tok))
- return i;
-
- // Return -1 if not found.
- return -1;
- }
-
- private static boolean parseDayOfWeek(String tok)
- {
- // Initialize strings for days of the week names.
- // We could possibly use the fields of DateFormatSymbols but that is
- // localized and thus might not match the English words specified.
- String daysOfWeek[] = { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY",
- "THURSDAY", "FRIDAY", "SATURDAY" };
-
- int i;
- for (i = 0; i < 7; i++)
- if (daysOfWeek[i].startsWith(tok))
- return true;
-
- return false;
- }
-
- public static long parse(String string)
- {
- // Initialize date/time fields before parsing begins.
- int year = -1;
- int month = -1;
- int day = -1;
- int hour = -1;
- int minute = -1;
- int second = -1;
- int timezone = 0;
- boolean localTimezone = true;
-
- // Trim out any nested stuff in parentheses now to make parsing easier.
- StringBuffer buf = new StringBuffer();
- int off = 0;
- int openParenOffset, tmpMonth;
- while ((openParenOffset = string.indexOf('(', off)) >= 0)
- {
- // Copy part of string leading up to open paren.
- buf.append(string.substring(off, openParenOffset));
- off = skipParens(string, openParenOffset);
- }
- buf.append(string.substring(off));
-
- // Make all chars upper case to simplify comparisons later.
- // Also ignore commas; treat them as delimiters.
- StringTokenizer strtok =
- new StringTokenizer(buf.toString().toUpperCase(), " \t\n\r,");
-
- while (strtok.hasMoreTokens())
- {
- String tok = strtok.nextToken();
- char firstch = tok.charAt(0);
- if ((firstch == '+' || firstch == '-') && year >= 0)
- {
- timezone = parseTz(tok, firstch);
- localTimezone = false;
- }
- else if (firstch >= '0' && firstch <= '9')
- {
- while (tok != null && tok.length() > 0)
- {
- // A colon or slash may be valid in the number.
- // Find the first of these before calling parseInt.
- int colon = tok.indexOf(':');
- int slash = tok.indexOf('/');
- int hyphen = tok.indexOf('-');
- // We choose tok.length initially because it makes
- // processing simpler.
- int punctOffset = tok.length();
- if (colon >= 0)
- punctOffset = Math.min(punctOffset, colon);
- if (slash >= 0)
- punctOffset = Math.min(punctOffset, slash);
- if (hyphen >= 0)
- punctOffset = Math.min(punctOffset, hyphen);
- // Following code relies on -1 being the exceptional
- // case.
- if (punctOffset == tok.length())
- punctOffset = -1;
-
- int num;
- try
- {
- num = Integer.parseInt(punctOffset < 0 ? tok :
- tok.substring(0, punctOffset));
- }
- catch (NumberFormatException ex)
- {
- throw new IllegalArgumentException(tok);
- }
-
- // TBD: Spec says year can be followed by a slash. That might
- // make sense if using YY/MM/DD formats, but it would fail in
- // that format for years <= 70. Also, what about 1900? That
- // is interpreted as the year 3800; seems that the comparison
- // should be num >= 1900 rather than just > 1900.
- // What about a year of 62 - 70? (61 or less could be a (leap)
- // second). 70/MM/DD cause an exception but 71/MM/DD is ok
- // even though there's no ambiguity in either case.
- // For the parse method, the spec as written seems too loose.
- // Until shown otherwise, we'll follow the spec as written.
- if (num > 70 && (punctOffset < 0 || punctOffset == slash))
- year = num > 1900 ? num - 1900 : num;
- else if (punctOffset > 0 && punctOffset == colon)
- {
- if (hour < 0)
- hour = num;
- else
- minute = num;
- }
- else if (punctOffset > 0 && punctOffset == slash)
- {
- if (month < 0)
- month = num - 1;
- else
- day = num;
- }
- else if (hour >= 0 && minute < 0)
- minute = num;
- else if (minute >= 0 && second < 0)
- second = num;
- else if (day < 0)
- day = num;
- else
- throw new IllegalArgumentException(tok);
-
- // Advance string if there's more to process in this token.
- if (punctOffset < 0 || punctOffset + 1 >= tok.length())
- tok = null;
- else
- tok = tok.substring(punctOffset + 1);
- }
- }
- else if (firstch >= 'A' && firstch <= 'Z')
- {
- if (tok.equals("AM"))
- {
- if (hour < 1 || hour > 12)
- throw new IllegalArgumentException(tok);
- if (hour == 12)
- hour = 0;
- }
- else if (tok.equals("PM"))
- {
- if (hour < 1 || hour > 12)
- throw new IllegalArgumentException(tok);
- if (hour < 12)
- hour += 12;
- }
- else if (parseDayOfWeek(tok))
- ; // Ignore it; throw the token away.
- else if (tok.equals("UT") || tok.equals("UTC") || tok.equals("GMT"))
- localTimezone = false;
- else if (tok.startsWith("UT") || tok.startsWith("GMT"))
- {
- int signOffset = 3;
- if (tok.charAt(1) == 'T' && tok.charAt(2) != 'C')
- signOffset = 2;
-
- char sign = tok.charAt(signOffset);
- if (sign != '+' && sign != '-')
- throw new IllegalArgumentException(tok);
-
- timezone = parseTz(tok.substring(signOffset), sign);
- localTimezone = false;
- }
- else if ((tmpMonth = parseMonth(tok)) >= 0)
- month = tmpMonth;
- else if (tok.length() == 3 && tok.charAt(2) == 'T')
- {
- // Convert timezone offset from hours to minutes.
- char ch = tok.charAt(0);
- if (ch == 'E')
- timezone = -5 * 60;
- else if (ch == 'C')
- timezone = -6 * 60;
- else if (ch == 'M')
- timezone = -7 * 60;
- else if (ch == 'P')
- timezone = -8 * 60;
- else
- throw new IllegalArgumentException(tok);
-
- // Shift 60 minutes for Daylight Savings Time.
- if (tok.charAt(1) == 'D')
- timezone += 60;
- else if (tok.charAt(1) != 'S')
- throw new IllegalArgumentException(tok);
-
- localTimezone = false;
- }
- else
- throw new IllegalArgumentException(tok);
- }
- else
- throw new IllegalArgumentException(tok);
- }
-
- // Unspecified minutes and seconds should default to 0.
- if (minute < 0)
- minute = 0;
- if (second < 0)
- second = 0;
-
- // Throw exception if any other fields have not been recognized and set.
- if (year < 0 || month < 0 || day < 0 || hour < 0)
- throw new IllegalArgumentException("Missing field");
-
- // Return the time in either local time or relative to GMT as parsed.
- // If no time-zone was specified, get the local one (in minutes) and
- // convert to milliseconds before adding to the UTC.
- return UTC(year, month, day, hour, minute, second) + (localTimezone ?
- new Date(year, month, day).getTimezoneOffset() * 60 * 1000:
- -timezone * 60 * 1000);
- }
-
- public boolean after (Date when) { return this.millis > when.millis; }
- public boolean before (Date when) { return this.millis < when.millis; }
-
- public boolean equals(Object obj)
- {
- return (obj != null && obj instanceof Date
- && ((Date)obj).millis == this.millis);
- }
-
- public long getTime() { return millis; }
-
- public int hashCode()
- {
- return (int)(millis^(millis>>>32));
- }
-
- private void setTime(int year, int month, int date,
- int hours, int minutes, int seconds)
- {
- Calendar cal = new GregorianCalendar(year+1900, month, date,
- hours, minutes, seconds);
- millis = cal.getTimeInMillis();
- }
-
- public void setTime(long millis) { this.millis = millis; }
-
- private int getField (int fld)
- {
- Calendar cal = new GregorianCalendar();
- cal.setTime(this);
- return cal.get(fld);
- }
-
- public int getYear ()
- {
- return getField(Calendar.YEAR) - 1900;
- }
-
- public int getMonth ()
- {
- return getField(Calendar.MONTH);
- }
-
- public int getDate ()
- {
- return getField(Calendar.DATE);
- }
-
- public int getDay ()
- {
- return getField(Calendar.DAY_OF_WEEK) - 1;
- }
-
- public int getHours ()
- {
- return getField(Calendar.HOUR_OF_DAY);
- }
-
- public int getMinutes ()
- {
- return getField(Calendar.MINUTE);
- }
-
- public int getSeconds ()
- {
- return getField(Calendar.SECOND);
- }
-
- private void setField (int fld, int value)
- {
- Calendar cal = new GregorianCalendar();
- cal.setTime(this);
- cal.set(fld, value);
- millis = cal.getTimeInMillis();
- }
-
- public void setYear (int year)
- {
- setField(Calendar.YEAR, 1900 + year);
- }
-
- public void setMonth (int month)
- {
- setField(Calendar.MONTH, month);
- }
-
- public void setDate (int date)
- {
- setField(Calendar.DATE, date);
- }
-
- public void setHours (int hours)
- {
- setField(Calendar.HOUR_OF_DAY, hours);
- }
-
- public void setMinutes (int minutes)
- {
- setField(Calendar.MINUTE, minutes);
- }
-
- public void setSeconds (int seconds)
- {
- setField(Calendar.SECOND, seconds);
- }
-
- public int getTimezoneOffset ()
- {
- Calendar cal = new GregorianCalendar();
- cal.setTime(this);
- return - (cal.get(Calendar.ZONE_OFFSET)
- + cal.get(Calendar.DST_OFFSET)/(60*1000));
- }
-
- public String toString ()
- {
- // This is slow, but does it matter? There is no particularly
- // fast way to do it, because we need the timezone offset, which
- // we don't store. Unix ctime() doesn't provide this information.
- SimpleDateFormat fmt = new SimpleDateFormat ("E MMM dd HH:mm:ss z yyyy",
- Locale.US);
- fmt.setTimeZone(TimeZone.getDefault());
- return fmt.format(this);
- }
-
- public String toGMTString ()
- {
- // This method is deprecated. We don't care if it is very slow.
- SimpleDateFormat fmt = new SimpleDateFormat ("d MMM yyyy HH:mm:ss 'GMT'",
- Locale.US);
- fmt.setTimeZone(TimeZone.zoneGMT);
- return fmt.format(this);
- }
-
- public String toLocaleString ()
- {
- // This method is deprecated. We don't care if it is very slow.
- DateFormat fmt = DateFormat.getDateTimeInstance();
- fmt.setTimeZone(TimeZone.getDefault());
- return fmt.format(this);
- }
-
- public static long UTC (int year, int month, int date,
- int hours, int minutes, int seconds)
- {
- GregorianCalendar cal = new GregorianCalendar (TimeZone.zoneGMT);
- cal.set(year+1900, month, date, hours, minutes, seconds);
- return cal.getTimeInMillis();
- }
-}
diff --git a/libjava/java/util/Dictionary.java b/libjava/java/util/Dictionary.java
deleted file mode 100644
index f127cc050fd..00000000000
--- a/libjava/java/util/Dictionary.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 31, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-/* The JDK 1.2 beta doc indicates that Dictionary is obsolete and that the
- * new java.util.Map interface should be used instead.
- */
-public abstract class Dictionary
-{
- public abstract Enumeration elements();
- public abstract Object get(Object key) throws NullPointerException;
- public abstract boolean isEmpty();
- public abstract Enumeration keys();
- public abstract Object put(Object key, Object elem)
- throws NullPointerException;
- public abstract Object remove(Object key) throws NullPointerException;
- public abstract int size();
-}
diff --git a/libjava/java/util/EmptyStackException.java b/libjava/java/util/EmptyStackException.java
deleted file mode 100644
index 234f3ff7c76..00000000000
--- a/libjava/java/util/EmptyStackException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class EmptyStackException extends RuntimeException
-{
- public EmptyStackException()
- {
- super();
- }
-}
diff --git a/libjava/java/util/Enumeration.java b/libjava/java/util/Enumeration.java
deleted file mode 100644
index 6f7299bc072..00000000000
--- a/libjava/java/util/Enumeration.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1.
- * Status: Believed complete and correct
- */
-
-public interface Enumeration
-{
- public boolean hasMoreElements();
- public Object nextElement() throws NoSuchElementException;
-}
diff --git a/libjava/java/util/EventListener.java b/libjava/java/util/EventListener.java
deleted file mode 100644
index 969f324238b..00000000000
--- a/libjava/java/util/EventListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// EventListener.java - Listen for events from event source.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Believed complete and correct.
- */
-
-public interface EventListener
-{
-}
diff --git a/libjava/java/util/EventObject.java b/libjava/java/util/EventObject.java
deleted file mode 100644
index ee6a7f64657..00000000000
--- a/libjava/java/util/EventObject.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// EventObject.java - Represent events fired by objects.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date December 12, 1998
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * Status: Believed complete, but not fully correct.
- */
-
-public class EventObject implements java.io.Serializable
-{
- public EventObject (Object source)
- {
- this.source = source;
- }
-
- public Object getSource ()
- {
- return source;
- }
-
- public String toString ()
- {
- // FIXME.
- return getSource().toString();
- }
-
- // Source of the event.
- protected transient Object source;
-}
diff --git a/libjava/java/util/GregorianCalendar.java b/libjava/java/util/GregorianCalendar.java
deleted file mode 100644
index 9e73131c768..00000000000
--- a/libjava/java/util/GregorianCalendar.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1.
- * Status: "leniency" is not handled, and neither is roll-over in
- * add and roll. This is partly because of unclear specification.
- * hashCode has no spec.
- */
-
-public class GregorianCalendar extends Calendar {
- public static final int BC = 0;
- public static final int AD = 1;
-
- // The fields are as specified in Sun's "Serialized Form"
- // in the JDK 1.2 beta 4 API specification.
- // Value from a simple test program (getGregorianChange.getTime()).
- long gregorianCutover = -12219292800000L;
-
- private final static int[] mins = {
- 0 /* ERA */,
- 1 /* YEAR */,
- 0 /* MONTH */,
- 0 /* WEEK_OF_YEAR */,
- 0 /* WEEK_OF_MONTH */,
- 1 /* DATE */,
- 1 /* DAY_OF_YEAR */,
- 1 /* DAY_OF_WEEK */,
- -1 /* DAY_OF_WEEK_IN_MONTH */,
- 0 /* AM_PM */,
- 0 /* HOUR */,
- 0 /* HOUR_OF_DAY */,
- 0 /* MINUTE */,
- 0 /* SECOND */,
- 0 /* MILLISECOND */,
- -43200000 /* ZONE_OFFSET */,
- 0 /* DST_OFFSET */
- };
-
- private final static int[] maxs = {
- 1 /* ERA */,
- 5000000 /* YEAR */,
- 11 /* MONTH */,
- 54 /* WEEK_OF_YEAR */,
- 6 /* WEEK_OF_MONTH */,
- 31 /* DATE */,
- 366 /* DAY_OF_YEAR */,
- 7 /* DAY_OF_WEEK */,
- 6 /* DAY_OF_WEEK_IN_MONTH */,
- 1 /* AM_PM */,
- 12 /* HOUR */,
- 23 /* HOUR_OF_DAY */,
- 59 /* MINUTE */,
- 59 /* SECOND */,
- 999 /* MILLISECOND */,
- 43200000 /* ZONE_OFFSET */,
- 3600000 /* DST_OFFSET */
- };
-
- private final static int[] leastMaximums = {
- 1 /* ERA */,
- 5000000 /* YEAR */,
- 11 /* MONTH */,
- 53 /* WEEK_OF_YEAR */,
- 6 /* WEEK_OF_MONTH */,
- 28 /* DATE */,
- 365 /* DAY_OF_YEAR */,
- 7 /* DAY_OF_WEEK */,
- 4 /* DAY_OF_WEEK_IN_MONTH */,
- 1 /* AM_PM */,
- 11 /* HOUR */,
- 23 /* HOUR_OF_DAY */,
- 59 /* MINUTE */,
- 59 /* SECOND */,
- 999 /* MILLISECOND */,
- 43200000 /* ZONE_OFFSET */,
- 3600000 /* DST_OFFSET */
- };
-
- private static final long serialVersionUID = -8125100834729963327L;
-
- public GregorianCalendar ()
- {
- this(null, null);
- }
-
- public GregorianCalendar (TimeZone zone)
- {
- this (zone, null);
- }
-
- public GregorianCalendar (Locale locale)
- {
- this (null, locale);
- }
-
- public GregorianCalendar (TimeZone zone, Locale locale)
- {
- super (zone, locale);
- setDefaultTime ();
- }
-
- public GregorianCalendar (int year, int month, int date)
- {
- this((TimeZone) null);
- setDefaultTime ();
- set (year, month, date);
- }
-
- public GregorianCalendar (int year, int month, int date,
- int hour, int minute)
- {
- this((TimeZone) null);
- setDefaultTime ();
- set (year, month, date, hour, minute);
- }
-
- public GregorianCalendar (int year, int month, int date,
- int hour, int minute, int second)
- {
- this((TimeZone) null);
- setDefaultTime ();
- set (year, month, date, hour, minute, second);
- }
-
- private final void setDefaultTime ()
- {
- setTimeInMillis (System.currentTimeMillis());
- }
-
- public int getMinimum(int calfield) { return mins[calfield]; }
- public int getGreatestMinimum(int calfield) { return mins[calfield]; }
- public int getMaximum(int calfield) { return maxs[calfield]; }
- public int getLeastMaximum(int calfield) { return leastMaximums[calfield]; }
-
- protected native void computeFields();
-
- protected native void computeTime();
-
- public void add (int fld, int amount)
- {
- if (fld >= ZONE_OFFSET)
- throw new IllegalArgumentException("bad field to add");
- fields[fld] += amount;
- adjust(fld);
- }
-
- public void roll (int fld, boolean up)
- {
- if (fld >= ZONE_OFFSET)
- throw new IllegalArgumentException("bad field to roll");
-
- int old = fields[fld];
- if (up)
- {
- fields[fld] = old == getMaximum(fld) ? getMinimum(fld)
- : old + 1;
- }
- else
- {
- fields[fld] = old == getMinimum(fld) ? getMaximum(fld)
- : old - 1;
- }
- }
-
- private void adjust (int fld)
- {
- int value = fields[fld];
- int radix = maxs[fld] + 1;
- switch (fld)
- {
- case MONTH:
- case SECOND:
- case MILLISECOND:
- if (value >= radix)
- {
- int next = value / radix;
- fields[fld] = value - radix * next;
- fields[fld - 1] += next;
- adjust(fld - 1);
- }
- else if (value < 0) // min[fld]
- {
- int next = (value - radix - 1) / radix;
- fields[fld] = value - radix * next;
- fields[fld - 1] += next;
- adjust(fld - 1);
- }
- break;
- }
- }
-
- public final Date getGregorianChange() { return new Date(gregorianCutover); }
- public void setGregorianChange (Date date)
- { gregorianCutover = date.getTime(); }
-
- public boolean isLeapYear(int year)
- {
- if ((year % 4) != 0)
- return false;
- if ((year % 100) != 0 || (year % 400) == 0)
- return true;
- // year divisible by 100 but not 400.
- GregorianCalendar date = new GregorianCalendar(year, FEBRUARY, 28);
- return gregorianCutover < date.getTimeInMillis();
- }
-
- public boolean after (Object cal)
- {
- return cal instanceof Calendar
- && getTimeInMillis() > ((Calendar) cal).getTimeInMillis();
- }
-
- public boolean before (Object cal)
- {
- return cal instanceof Calendar
- && getTimeInMillis() < ((Calendar) cal).getTimeInMillis();
- }
-
- public boolean equals (Object obj)
- {
- if (obj == null || ! (obj instanceof GregorianCalendar))
- return false;
- GregorianCalendar other = (GregorianCalendar) obj;
-
- for (int i = FIELD_COUNT; --i >= 0; )
- {
- boolean set = isSet[i];
- if (set != other.isSet[i]
- || (set && fields[i] != other.fields[i]))
- return false;
- }
- if (areFieldsSet != other.areFieldsSet
- || isTimeSet != other.isTimeSet
- || (isTimeSet && time != other.time)
- || getFirstDayOfWeek() != other.getFirstDayOfWeek()
- || getMinimalDaysInFirstWeek() != other.getMinimalDaysInFirstWeek()
- || isLenient() != other.isLenient()
- || ! getTimeZone().equals(other.getTimeZone()))
- return false;
- return true;
- }
-
- public int hashCode ()
- {
- int hashcode = 0;
- for (int i = FIELD_COUNT; --i >= 0; )
- {
- if (isSet[i])
- hashcode += 37 * fields[i];
- }
- if (isTimeSet)
- hashcode += 89 * time;
- return hashcode;
- }
-}
diff --git a/libjava/java/util/HashMap.java b/libjava/java/util/HashMap.java
deleted file mode 100644
index 5d506602aa7..00000000000
--- a/libjava/java/util/HashMap.java
+++ /dev/null
@@ -1,858 +0,0 @@
-/* HashMap.java -- a class providing a basic hashtable data structure,
- mapping Object --> Object
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamField;
-
-/**
- * This class provides a hashtable-backed implementation of the
- * Map interface.
- *
- * It uses a hash-bucket approach; that is, hash
- * collisions are handled by linking the new node off of the
- * pre-existing node (or list of nodes). In this manner, techniques
- * such as linear probing (which can casue primary clustering) and
- * rehashing (which does not fit very well with Java's method of
- * precomputing hash codes) are avoided.
- *
- * Under ideal circumstances (no collisions, HashMap offers O(1)
- * performance on most operations (<pre>containsValue()</pre> is,
- * of course, O(n)). In the worst case (all keys map to the same
- * hash code -- very unlikely), most operations are O(n).
- *
- * HashMap is part of the JDK1.2 Collections API. It differs from
- * Hashtable in that it accepts the null key and null values, and it
- * does not support "Enumeration views."
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
-public class HashMap extends AbstractMap
- implements Map, Cloneable, Serializable
-{
- // STATIC (CLASS) VARIABLES ------------------------------------------
-
- /**
- * the default capacity for an instance of HashMap -- I think this
- * is low, and perhaps it shoudl be raised; Sun's documentation mildly
- * suggests that this (11) is the correct value, though
- */
- private static final int DEFAULT_CAPACITY = 11;
-
- /** the default load factor of a HashMap */
- private static final float DEFAULT_LOAD_FACTOR = 0.75F;
-
- /** used internally to represent the null key */
- private static final HashMap.Null NULL_KEY = new HashMap.Null();
-
- /** used internally to parameterize the creation of set/collection views */
- private static final int KEYS = 0;
-
- /** used internally to parameterize the creation of set/collection views */
- private static final int VALUES = 1;
-
- /** used internally to parameterize the creation of set/collection views */
- private static final int ENTRIES = 2;
-
- private static final long serialVersionUID = 362498820763181265L;
-
- // INSTANCE VARIABLES -------------------------------------------------
-
- /** the capacity of this HashMap: denotes the size of the bucket array */
- transient int capacity;
-
- /** the size of this HashMap: denotes the number of key-value pairs */
- private transient int size;
-
- /** the load factor of this HashMap: used in computing the threshold
- * @serial
- */
- float loadFactor;
-
- /* the rounded product of the capacity and the load factor; when the number of
- * elements exceeds the threshold, the HashMap calls <pre>rehash()</pre>
- * @serial
- */
- private int threshold;
-
- /**
- * this data structure contains the actual key-value mappings; a
- * <pre>BucketList</pre> is a lightweight linked list of "Buckets",
- * which, in turn, are linked nodes containing a key-value mapping
- * and a reference to the "next" Bucket in the list
- */
- private transient Bucket[] buckets;
-
- /**
- * counts the number of modifications this HashMap has undergone; used by Iterators
- * to know when to throw ConcurrentModificationExceptions (idea ripped-off from
- * Stuart Ballard's AbstractList implementation)
- */
- private transient int modCount;
-
-
- // CONSTRUCTORS ---------------------------------------------------------
-
- /**
- * construct a new HashMap with the default capacity and the default
- * load factor
- */
- public HashMap()
- {
- init(DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR);
- }
-
- /**
- * construct a new HashMap with a specific inital capacity and load factor
- *
- * @param initialCapacity the initial capacity of this HashMap (>=0)
- * @param initialLoadFactor the load factor of this HashMap
- * (a misnomer, really, since the load factor of
- * a HashMap does not change)
- *
- * @throws IllegalArgumentException if (initialCapacity < 0) ||
- * (initialLoadFactor > 1.0) ||
- * (initialLoadFactor <= 0.0)
- */
- public HashMap(int initialCapacity, float initialLoadFactor)
- throws IllegalArgumentException
- {
- if (initialCapacity < 0 || initialLoadFactor <= 0 || initialLoadFactor > 1)
- throw new IllegalArgumentException();
- else
- init(initialCapacity, initialLoadFactor);
- }
-
- /**
- * construct a new HashMap with a specific inital capacity
- *
- * @param initialCapacity the initial capacity of this HashMap (>=0)
- *
- * @throws IllegalArgumentException if (initialCapacity < 0)
- */
- public HashMap(int initialCapacity)
- throws IllegalArgumentException
- {
- if (initialCapacity < 0)
- throw new IllegalArgumentException();
- else
- init(initialCapacity, DEFAULT_LOAD_FACTOR);
- }
-
- /**
- * construct a new HashMap from the given Map
- *
- * every element in Map t will be put into this new HashMap
- *
- * @param t a Map whose key / value pairs will be put into
- * the new HashMap. <b>NOTE: key / value pairs
- * are not cloned in this constructor</b>
- */
- public HashMap(Map t)
- {
- int mapSize = t.size() * 2;
- init(((mapSize > DEFAULT_CAPACITY) ? mapSize : DEFAULT_CAPACITY), DEFAULT_LOAD_FACTOR);
- putAll(t);
- }
-
-
- // PUBLIC METHODS ---------------------------------------------------------
-
- /** returns the number of kay-value mappings currently in this Map */
- public int size()
- {
- return size;
- }
-
- /** returns true if there are no key-value mappings currently in this Map */
- public boolean isEmpty()
- {
- return size == 0;
- }
-
- /** empties this HashMap of all elements */
- public void clear()
- {
- size = 0;
- modCount++;
- buckets = new Bucket[capacity];
- }
-
- /**
- * returns a shallow clone of this HashMap (i.e. the Map itself is cloned, but
- * its contents are not)
- */
- public Object clone()
- {
- Map.Entry entry;
- Iterator it = entrySet().iterator();
- HashMap clone = new HashMap(capacity, loadFactor);
- while (it.hasNext())
- {
- entry = (Map.Entry) it.next();
- clone.internalPut(entry.getKey(), entry.getValue());
- }
- return clone;
- }
-
- /** returns a "set view" of this HashMap's keys */
- public Set keySet()
- {
- return new HashMapSet(KEYS);
- }
-
- /** returns a "set view" of this HashMap's entries */
- public Set entrySet()
- {
- return new HashMapSet(ENTRIES);
- }
-
- /** returns a "collection view" (or "bag view") of this HashMap's values */
- public Collection values()
- {
- return new HashMapCollection();
- }
-
- /**
- * returns true if the supplied object equals (<pre>equals()</pre>) a key
- * in this HashMap
- *
- * @param key the key to search for in this HashMap
- */
- public boolean containsKey(Object key)
- {
- return (internalGet(key) != null);
- }
-
- /**
- * returns true if this HashMap contains a value <pre>o</pre>, such that
- * <pre>o.equals(value)</pre>.
- *
- * @param value the value to search for in this Hashtable
- */
- public boolean containsValue(Object value)
- {
- int i;
- Bucket list;
-
- for (i = 0; i < capacity; i++)
- {
- list = buckets[i];
- if (list != null && list.containsValue(value))
- return true;
- }
- return false;
- }
-
- /*
- * return the value in this Hashtable associated with the supplied key, or <pre>null</pre>
- * if the key maps to nothing
- *
- * @param key the key for which to fetch an associated value
- */
- public Object get(Object key)
- {
- Map.Entry oResult = internalGet(key);
- return (oResult == null) ? null : oResult.getValue();
- }
-
- /**
- * puts the supplied value into the Map, mapped by the supplied key
- *
- * @param key the HashMap key used to locate the value
- * @param value the value to be stored in the HashMap
- */
- public Object put(Object key, Object value)
- {
- return internalPut(key, value);
- }
-
- /**
- * removes from the HashMap and returns the value which is mapped by the
- * supplied key; if the key maps to nothing, then the HashMap remains unchanged,
- * and <pre>null</pre> is returned
- *
- * @param key the key used to locate the value to remove from the HashMap
- */
- public Object remove(Object key)
- {
- Bucket list;
- int index;
- Object result = null;
- if (size > 0)
- {
- index = hash(((key == null) ? NULL_KEY : key));
- list = buckets[index];
- if (list != null)
- {
- result = list.removeByKey(key);
- if (result != null)
- {
- size--;
- modCount++;
- if (list.first == null)
- buckets[index] = null;
- }
- }
- }
- return result;
- }
-
-
- // PRIVATE METHODS -----------------------------------------------------------
-
- /**
- * puts the given key-value pair into this HashMap; a private method is used
- * because it is called by the rehash() method as well as the put() method,
- * and if a subclass overrides put(), then rehash would do funky things
- * if it called put()
- *
- * @param key the HashMap key used to locate the value
- * @param value the value to be stored in the HashMap
- */
- private Object internalPut(Object key, Object value)
- {
- HashMapEntry entry;
- Bucket list;
- int hashIndex;
- Object oResult;
- Object oRealKey = ((key == null) ? NULL_KEY : key);
-
- entry = new HashMapEntry(oRealKey, value);
- hashIndex = hash(oRealKey);
- list = buckets[hashIndex];
- if (list == null)
- {
- list = new Bucket();
- buckets[hashIndex] = list;
- }
- oResult = list.add(entry);
- if (oResult == null)
- {
- modCount++;
- if (size++ == threshold)
- rehash();
- return null;
- }
- else
- {
- // SEH: if key already exists, we don't rehash & we don't update the modCount
- // because it is not a "structural" modification
- return oResult;
- }
- }
-
- /**
- * a private method, called by all of the constructors to initialize a new HashMap
- *
- * @param initialCapacity the initial capacity of this HashMap (>=0)
- * @param initialLoadFactor the load factor of this HashMap
- * (a misnomer, really, since the load factor of
- * a HashMap does not change)
- */
- private void init(int initialCapacity, float initialLoadFactor)
- {
- size = 0;
- modCount = 0;
- capacity = initialCapacity;
- loadFactor = initialLoadFactor;
- threshold = (int) ((float) capacity * loadFactor);
- buckets = new Bucket[capacity];
- }
-
- /** private -- simply hashes a non-null Object to its array index */
- private int hash(Object key)
- {
- return Math.abs(key.hashCode() % capacity);
- }
-
- /**
- * increases the size of the HashMap and rehashes all keys to new array indices;
- * this is called when the addition of a new value would cause size() > threshold
- */
- private void rehash()
- {
- int i;
- Bucket[] data = buckets;
- Bucket.Node node;
-
- modCount++;
- capacity = (capacity * 2) + 1;
- size = 0;
- threshold = (int) ((float) capacity * loadFactor);
- buckets = new Bucket[capacity];
- for (i = 0; i < data.length; i++)
- {
- if (data[i] != null)
- {
- node = data[i].first;
- while (node != null)
- {
- internalPut(node.getKey(), node.getValue());
- node = node.next;
- }
- }
- }
- }
-
- /**
- * a private method which does the "dirty work" (or some of it anyway) of fetching a value
- * with a key
- *
- * @param key the key for which to fetch an associated value
- */
- private Map.Entry internalGet(Object key)
- {
- Bucket list;
- if (size == 0)
- {
- return null;
- }
- else
- {
- list = buckets[hash(((key == null) ? NULL_KEY : key))];
- return (list == null) ? null : list.getEntryByKey(key);
- }
- }
-
- /**
- * a private method used by inner class HashMapSet to implement its own
- * <pre>contains(Map.Entry)</pre> method; returns true if the supplied
- * key / value pair is found in this HashMap (again, using <pre>equals()</pre>,
- * rather than <pre>==</pre>)
- *
- * @param entry a Map.Entry to match against key / value pairs in
- * this HashMap
- */
- private boolean containsEntry(Map.Entry entry)
- {
- Map.Entry oInternalEntry;
- if (entry == null)
- {
- return false;
- }
- else
- {
- oInternalEntry = internalGet(entry.getKey());
- return (oInternalEntry != null && oInternalEntry.equals(entry));
- }
- }
-
- /**
- * Serializes this object to the given stream.
- * @serialdata the <i>capacity</i>(int) that is the length of the
- * bucket array, the <i>size</i>(int) of the hash map are emitted
- * first. They are followed by size entries, each consisting of
- * a key (Object) and a value (Object).
- */
- private void writeObject(ObjectOutputStream s)
- throws IOException
- {
- // the fields
- s.defaultWriteObject();
-
- s.writeInt(capacity);
- s.writeInt(size);
- Iterator it = entrySet().iterator();
- while (it.hasNext())
- {
- Map.Entry oEntry = (Map.Entry) it.next();
- s.writeObject(oEntry.getKey());
- s.writeObject(oEntry.getValue());
- }
- }
-
- /**
- * Deserializes this object from the given stream.
- * @serialdata the <i>capacity</i>(int) that is the length of the
- * bucket array, the <i>size</i>(int) of the hash map are emitted
- * first. They are followed by size entries, each consisting of
- * a key (Object) and a value (Object).
- */
- private void readObject(ObjectInputStream s)
- throws IOException, ClassNotFoundException
- {
- // the fields
- s.defaultReadObject();
-
- capacity = s.readInt();
- int iLen = s.readInt();
- size = 0;
- modCount = 0;
- buckets = new Bucket[capacity];
-
- for (int i = 0; i < iLen; i++)
- {
- Object oKey = s.readObject();
- Object oValue = s.readObject();
- internalPut(oKey, oValue);
- }
- }
-
- // INNER CLASSES -------------------------------------------------------------
- // ---------------------------------------------------------------------------
-
- /**
- * an inner class providing a Set view of a HashMap; this implementation is
- * parameterized to view either a Set of keys or a Set of Map.Entry objects
- *
- * Note: a lot of these methods are implemented by AbstractSet, and would work
- * just fine without any meddling, but far greater efficiency can be gained by
- * overriding a number of them. And so I did.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
- private class HashMapSet extends AbstractSet
- implements Set
- {
- /** the type of this Set view: KEYS or ENTRIES */
- private int setType;
-
- /** construct a new HashtableSet with the supplied view type */
- HashMapSet(int type)
- {
- setType = type;
- }
-
- /**
- * adding an element is unsupported; this method simply throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean add(Object o) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * adding an element is unsupported; this method simply throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean addAll(Collection c) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * clears the backing HashMap; this is a prime example of an overridden implementation
- * which is far more efficient than its superclass implementation (which uses an iterator
- * and is O(n) -- this is an O(1) call)
- */
- public void clear()
- {
- HashMap.this.clear();
- }
-
- /**
- * returns true if the supplied object is contained by this Set
- *
- * @param o an Object being testing to see if it is in this Set
- */
- public boolean contains(Object o)
- {
- if (setType == KEYS)
- return HashMap.this.containsKey(o);
- else
- return (o instanceof Map.Entry) ? HashMap.this.containsEntry((Map.Entry) o) : false;
- }
-
- /**
- * returns true if the backing HashMap is empty (which is the only case either a KEYS
- * Set or an ENTRIES Set would be empty)
- */
- public boolean isEmpty()
- {
- return HashMap.this.isEmpty();
- }
-
- /**
- * removes the supplied Object from the Set
- *
- * @param o the Object to be removed
- */
- public boolean remove(Object o)
- {
- if (setType == KEYS)
- return (HashMap.this.remove(o) != null);
- else
- return (o instanceof Map.Entry) ?
- (HashMap.this.remove(((Map.Entry) o).getKey()) != null) : false;
- }
-
- /** returns the size of this Set (always equal to the size of the backing Hashtable) */
- public int size()
- {
- return HashMap.this.size();
- }
-
- /** returns an Iterator over the elements of this Set */
- public Iterator iterator()
- {
- return new HashMapIterator(setType);
- }
- }
-
- /**
- * Like the above Set view, except this one if for values, which are not
- * guaranteed to be unique in a Map; this prvides a Bag of values
- * in the HashMap
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
- private class HashMapCollection extends AbstractCollection
- implements Collection
- {
- /** a trivial contructor for HashMapCollection */
- HashMapCollection()
- {
- }
-
- /**
- * adding elements is not supported by this Collection;
- * this method merely throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean add(Object o) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * adding elements is not supported by this Collection;
- * this method merely throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean addAll(Collection c) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /** removes all elements from this Collection (and from the backing HashMap) */
- public void clear()
- {
- HashMap.this.clear();
- }
-
- /**
- * returns true if this Collection contains at least one Object which equals() the
- * supplied Object
- *
- * @param o the Object to compare against those in the Set
- */
- public boolean contains(Object o)
- {
- return HashMap.this.containsValue(o);
- }
-
- /** returns true IFF the Collection has no elements */
- public boolean isEmpty()
- {
- return HashMap.this.isEmpty();
- }
-
- /** returns the size of this Collection */
- public int size()
- {
- return HashMap.this.size();
- }
-
- /** returns an Iterator over the elements in this Collection */
- public Iterator iterator()
- {
- return new HashMapIterator(VALUES);
- }
- }
-
- /**
- * a class which implements the Iterator interface and is used for
- * iterating over HashMaps;
- * this implementation is parameterized to give a sequential view of
- * keys, values, or entries; it also allows the removal of elements,
- * as per the Javasoft spec.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
- class HashMapIterator implements Iterator
- {
- /** the type of this Iterator: KEYS, VALUES, or ENTRIES */
- private int myType;
- /**
- * the number of modifications to the backing Hashtable for which
- * this Iterator can account (idea ripped off from Stuart Ballard)
- */
- private int knownMods;
- /** the location of our sequential "cursor" */
- private int position;
- /** the current index of the BucketList array */
- private int bucketIndex;
- /** a reference, originally null, to the specific Bucket our "cursor" is pointing to */
- private Bucket.Node currentNode;
- /** a reference to the current key -- used fro removing elements via the Iterator */
- private Object currentKey;
-
- /** construct a new HashtableIterator with the supllied type: KEYS, VALUES, or ENTRIES */
- HashMapIterator(int type)
- {
- myType = type;
- knownMods = HashMap.this.modCount;
- position = 0;
- bucketIndex = -1;
- currentNode = null;
- currentKey = null;
- }
-
- /**
- * Stuart Ballard's code: if the backing HashMap has been altered through anything
- * but <i>this</i> Iterator's <pre>remove()</pre> method, we will give up right here,
- * rather than risking undefined behavior
- *
- * @throws ConcurrentModificationException
- */
- private void checkMod()
- {
- if (knownMods != HashMap.this.modCount)
- throw new ConcurrentModificationException();
- }
-
- /** returns true if the Iterator has more elements */
- public boolean hasNext()
- {
- checkMod();
- return position < HashMap.this.size();
- }
-
- /** returns the next element in the Iterator's sequential view */
- public Object next()
- {
- Bucket list = null;
- Object result;
- checkMod();
- try
- {
- while (currentNode == null)
- {
- while (list == null)
- list = HashMap.this.buckets[++bucketIndex];
- currentNode = list.first;
- }
- currentKey = currentNode.getKey();
- result = (myType == KEYS) ? currentKey :
- ((myType == VALUES) ? currentNode.getValue() : currentNode);
- currentNode = currentNode.next;
- }
- catch(Exception e)
- {
- throw new NoSuchElementException();
- }
- position++;
- return result;
- }
-
- /**
- * removes from the backing HashMap the last element which was fetched with the
- * <pre>next()</pre> method
- */
- public void remove()
- {
- checkMod();
- if (currentKey == null)
- {
- throw new IllegalStateException();
- }
- else
- {
- HashMap.this.remove(currentKey);
- knownMods++;
- position--;
- currentKey = null;
- }
- }
- }
-
- /**
- * a singleton instance of this class (HashMap.NULL_KEY)
- * is used to represent the null key in HashMap objects
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
- private static class Null
- {
- /** trivial constructor */
- Null()
- {
- }
- }
-
- /**
- * a HashMap version of Map.Entry -- one thing in this implementation is
- * HashMap-specific: if the key is HashMap.NULL_KEY, getKey() will return
- * null
- *
- * Simply, a key / value pair
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.6 $
- * @modified $Id: HashMap.java,v 1.6 2000/03/15 21:59:13 rao Exp $
- */
- private static class HashMapEntry extends Bucket.Node implements Map.Entry
- {
- /** construct a new HashMapEntry with the given key and value */
- public HashMapEntry(Object key, Object value)
- {
- super(key, value);
- }
-
- /**
- * if the key == HashMap.NULL_KEY, null is returned, otherwise the actual
- * key is returned
- */
- public Object getKey()
- {
- Object oResult = super.getKey();
- return (oResult == HashMap.NULL_KEY) ? null : oResult;
- }
- }
- // EOF -----------------------------------------------------------------------
-}
diff --git a/libjava/java/util/Hashtable.java b/libjava/java/util/Hashtable.java
deleted file mode 100644
index 2767b5b821b..00000000000
--- a/libjava/java/util/Hashtable.java
+++ /dev/null
@@ -1,1076 +0,0 @@
-/* Hashtable.java -- a class providing a basic hashtable data structure,
- mapping Object --> Object
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamField;
-
-/**
- * a class which implements a Hashtable data structure
- *
- * This implementation of Hashtable uses a hash-bucket approach. That is:
- * linear probing and rehashing is avoided; instead, each hashed value maps
- * to a simple linked-list which, in the best case, only has one node.
- * Assuming a large enough table, low enough load factor, and / or well
- * implemented hashCode() methods, Hashtable should provide O(1)
- * insertion, deletion, and searching of keys. Hashtable is O(n) in
- * the worst case for all of these (if all keys has to the same bucket).
- *
- * This is a JDK-1.2 compliant implementation of Hashtable. As such, it
- * belongs, partially, to the Collections framework (in that it implements
- * Map). For backwards compatibility, it inherits from the obsolete and
- * utterly useless Dictionary class.
- *
- * Being a hybrid of old and new, Hashtable has methods which provide redundant
- * capability, but with subtle and even crucial differences.
- * For example, one can iterate over various aspects of a Hashtable with
- * either an Iterator (which is the JDK-1.2 way of doing things) or with an
- * Enumeration. The latter can end up in an undefined state if the Hashtable
- * changes while the Enumeration is open.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $
- */
-public class Hashtable extends Dictionary
- implements Map, Cloneable, Serializable
-{
- // STATIC VARIABLES
- // ----------------
-
- /**
- * the default capacity of a Hashtable
- *
- * This value strikes me as absurdly low, an invitation to all manner of
- * hash collisions. Perhaps it should be raised. I set it to 11 since the
- * JDK-1.2b4 specification uses that value in the third constructor
- * Hashtable(Map t) if the given Map is small. */
- private static final int DEFAULT_CAPACITY = 11;
-
- /** the defaulty load factor; this is explicitly specified by Sun */
- private static final float DEFAULT_LOAD_FACTOR = 0.75F;
-
- // used internally for parameterizing inner classes
- private static final int KEYS = 0;
- private static final int VALUES = 1;
- private static final int ENTRIES = 2;
-
- // used for serializing instances of this class
- private static final ObjectStreamField[] serialPersistentFields =
- { new ObjectStreamField("loadFactor", float.class),
- new ObjectStreamField("threshold", int.class) };
- private static final long serialVersionUID = 1421746759512286392L;
-
- // INSTANCE VARIABLES
- // ------------------
-
- /** the capacity of this Hashtable: denotes the size of the bucket array */
- private int capacity;
-
- /** the size of this Hashtable: denotes the number of elements currently in
- * <pre>this</pre> */
- private int size;
-
- /** the load factor of this Hashtable: used in computing the threshold */
- private float loadFactor;
-
- /* the rounded product of the capacity and the load factor; when the
- * number of elements exceeds the threshold, the Hashtable calls
- * <pre>rehash()</pre> */
- private int threshold;
-
- /** where the data is actually stored; Bucket implements
- * a very simple, lightweight (and hopefully fast) linked-list */
- Bucket[] buckets;
-
- /** counts the number of modifications this Hashtable has undergone;
- * used by Iterators to know when to throw
- * ConcurrentModificationExceptions (idea ripped-off from Stuart
- * Ballard's AbstractList implementation) */
- int modCount;
-
- /**
- * construct a new Hashtable with the default capacity and the
- * default load factor */
- public Hashtable()
- {
- init (DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR);
- }
-
- /**
- * construct a new Hashtable with a specific inital capacity and load factor
- *
- * @param initialCapacity the initial capacity of this Hashtable (>=0)
- * @param initialLoadFactor the load factor of this Hashtable
- * (a misnomer, really, since the load factor of
- * a Hashtable does not change)
- *
- * @throws IllegalArgumentException if (initialCapacity < 0) ||
- * (initialLoadFactor > 1.0) ||
- * (initialLoadFactor <= 0.0)
- */
- public Hashtable(int initialCapacity, float initialLoadFactor)
- throws IllegalArgumentException
- {
- if (initialCapacity < 0 || initialLoadFactor <= 0 || initialLoadFactor > 1)
- throw new IllegalArgumentException();
- else
- init(initialCapacity, initialLoadFactor);
- }
-
- /**
- * construct a new Hashtable with a specific inital capacity
- *
- * @param initialCapacity the initial capacity of this Hashtable (>=0)
- *
- * @throws IllegalArgumentException if (initialCapacity < 0)
- */
- public Hashtable(int initialCapacity)
- throws IllegalArgumentException
- {
- if (initialCapacity < 0)
- throw new IllegalArgumentException();
- else
- init(initialCapacity, DEFAULT_LOAD_FACTOR);
- }
-
- /**
- * construct a new Hashtable from the given Map
- *
- * every element in Map t will be put into this new Hashtable
- *
- * @param t a Map whose key / value pairs will be put into
- * the new Hashtable. <b>NOTE: key / value pairs
- * are not cloned in this constructor</b>
- */
- public Hashtable(Map t)
- {
- int mapSize = t.size() * 2;
- init (((mapSize > DEFAULT_CAPACITY) ? mapSize : DEFAULT_CAPACITY),
- DEFAULT_LOAD_FACTOR);
- putAll (t);
- }
-
-
- /** returns the number of key / value pairs stored in this Hashtable */
- public synchronized int size()
- {
- return size;
- }
-
- /** returns true if this Hashtable is empty (size() == 0), false otherwise */
- public synchronized boolean isEmpty()
- {
- return size == 0;
- }
-
- /** returns an Enumeration of the keys in this Hashtable
- *
- * <b>WARNING: if a Hashtable is changed while an Enumeration is
- * iterating over it, the behavior of the Enumeration is undefined.
- * Use keySet().iterator() if you want to be safe.</b> */
- public synchronized Enumeration keys()
- {
- return new HashtableEnumeration(KEYS);
- }
-
- /**
- * returns an Enumeration of the values in this Hashtable
- *
- * <b>WARNING: if a Hashtable is changed while an Enumeration is
- * iterating over it, the behavior of the Enumeration is undefined.
- * Use values().ieterator() if you want to be safe.</b> */
- public synchronized Enumeration elements()
- {
- return new HashtableEnumeration(VALUES);
- }
-
- /**
- * returns true if this Hashtable contains a value <pre>o</pre>,
- * such that <pre>o.equals(value)</pre>.
- *
- * Note: this is one of the <i>old</i> Hashtable methods which does
- * not like null values; it throws NullPointerException if the
- * supplied parameter is null.
- *
- * @param value the value to search for in this Hashtable
- *
- * @throws NullPointerException if <pre>value</pre> is null */
- public boolean contains(Object value) throws NullPointerException
- {
- if (value == null)
- throw new NullPointerException();
- else
- return containsValue(value);
- }
-
- /**
- * behaves identically to <pre>contains()</pre>, except it does not
- * throw a NullPointerException when given a null argument (Note:
- * Sun's implementation (JDK1.2beta4) <i>does</i> throw a
- * NullPointerException when given a null argument, but this seems
- * to go against the Collections Framework specifications, so I have
- * not reproduced this behavior. I have submitted a bug report to
- * Sun on the mater, but have not received any response yet (26
- * September 1998)
- *
- * @param value the value to search for in this Hashtable */
- public synchronized boolean containsValue(Object value)
- {
- int i;
- Bucket list;
-
- for (i = 0; i < capacity; i++)
- {
- list = buckets[i];
- if (list != null && list.containsValue(value))
- return true;
- }
- return false;
- }
-
- /**
- * returns true if the supplied key is found in this Hashtable
- * (strictly, if there exists a key <pre>k</pre> in the Hashtable,
- * such that <pre>k.equals(key)</pre>)
- *
- * @param key the key to search for in this Hashtable */
- public synchronized boolean containsKey(Object key)
- {
- return (internalGet(key) != null);
- }
-
- /**
- * a private method used by inner class HashtableSet to implement
- * its own <pre>contains(Map.Entry)</pre> method; returns true if
- * the supplied key / value pair is found in this Hashtable (again,
- * using <pre>equals()</pre>, rather than <pre>==</pre>)
- *
- * @param entry a Map.Entry to match against key / value pairs in
- * this Hashtable */
- private synchronized boolean containsEntry(Map.Entry entry)
- {
- Object o;
- if (entry == null)
- {
- return false;
- }
- else
- {
- o = internalGet(entry.getKey());
- return (o != null && o.equals(entry.getValue()));
- }
- }
-
- /*
- * return the value in this Hashtable associated with the supplied
- * key, or <pre>null</pre> if the key maps to nothing
- *
- * @param key the key for which to fetch an associated value */
- public synchronized Object get(Object key)
- {
- return internalGet(key);
- }
-
- /**
- * a private method which does the "dirty work" (or some of it
- * anyway) of fetching a value with a key
- *
- * @param key the key for which to fetch an associated value */
- private Object internalGet(Object key)
- {
- Bucket list;
- if (key == null || size == 0)
- {
- return null;
- }
- else
- {
- list = buckets[hash(key)];
- return (list == null) ? null : list.getValueByKey(key);
- }
- }
-
- /**
- * increases the size of the Hashtable and rehashes all keys to new
- * array indices; this is called when the addition of a new value
- * would cause size() > threshold */
- protected void rehash()
- {
- int i;
- Bucket[] data = buckets;
- Bucket.Node node;
-
- modCount++;
- capacity = (capacity * 2) + 1;
- size = 0;
- threshold = (int) ((float) capacity * loadFactor);
- buckets = new Bucket[capacity];
- for (i = 0; i < data.length; i++)
- {
- if (data[i] != null)
- {
- node = data[i].first;
- while (node != null)
- {
- internalPut(node.getKey(), node.getValue());
- node = node.next;
- }
- }
- }
- }
-
- /**
- * puts the supplied value into the Hashtable, mapped by the
- * supplied key; neither the key nore the value is allowed to be
- * <pre>null</pre>, otherwise a <pre>NullPointerException</pre> will
- * be thrown
- *
- * @param key the Hashtable key used to locate the value
- * @param value the value to be stored in the Hashtable */
- public synchronized Object put(Object key, Object value)
- throws NullPointerException
- {
- if (key == null || value == null)
- throw new NullPointerException();
- else
- return internalPut(key, value);
- }
-
- /**
- * A private method with a semi-interesting history (it's at least
- * two hours old now); orginally, this functionality was in the
- * public <pre>put()</pre> method, but while searching (fruitlessly)
- * on the JDC for some clarification of Javasoft's bizarre
- * Serialization documentation, I instead came across a JDK bug
- * which had been fixed in JDK-1.2b3. Extending Hashtable was a
- * pain, because <pre>put()</pre> was apparently being used
- * internally by the class when the Hashtable was rehashed, and this
- * was causing odd behavior for people who had overridden
- * <pre>put()</pre> in a Hashtable subclass. Well, I was also
- * calling <pre>put()</pre> internally, and realized that my code
- * would have the same problem. [No, I have never looked at the
- * Javasoft code; it was just the easiest thing to do]. So I put
- * the real work in a private method, and I call <i>this</i> for
- * internal use. Except...not all the time. What about
- * <pre>putAll()</pre>? Well, it seems reasonably clear from the
- * Collections spec that <pre>putAll()</pre> is <i>supposed</i> to
- * call <pre>put()</pre>. So, it still does. Confused yet?
- *
- * @param key the Hashtable key used to locate the value
- * @param value the value to be stored in the Hashtable */
- private Object internalPut(Object key, Object value)
- {
- HashtableEntry entry;
- Bucket list;
- int hashIndex;
- Object oResult;
-
- modCount++;
- if (size == threshold)
- rehash();
- entry = new HashtableEntry(key, value);
- hashIndex = hash(key);
- list = buckets[hashIndex];
- if (list == null)
- {
- list = new Bucket();
- buckets[hashIndex] = list;
- }
- oResult = list.add(entry);
- if (oResult == null)
- {
- size++;
- return null;
- }
- else
- {
- return oResult;
- }
- }
-
- /**
- * removes from the Hashtable and returns the value which is mapped
- * by the supplied key; if the key maps to nothing, then the
- * Hashtable remains unchanged, and <pre>null</pre> is returned
- *
- * @param key the key used to locate the value to remove from the Hashtable */
- public synchronized Object remove(Object key)
- {
- Bucket list;
- int index;
- Object result = null;
- if (key != null && size > 0)
- {
- index = hash(key);
- list = buckets[index];
- if (list != null)
- {
- result = list.removeByKey(key);
- if (result != null)
- {
- size--;
- modCount++;
- if (list.first == null)
- buckets[index] = null;
- }
- }
- }
- return result;
- }
-
- /**
- * part of the Map interface; for each Map.Entry in t, the key/value
- * pair is added to this Hashtable, <b>using the <pre>put()</pre>
- * method -- this may not be you want, so be warned (see notes to
- * <pre>internalPut()</pre>, above</b>
- *
- * @param t a Map whose key/value pairs will be added to this Hashtable */
- public synchronized void putAll(Map t) throws NullPointerException
- {
- Map.Entry entry;
- Iterator it = t.entrySet().iterator();
- while (it.hasNext())
- {
- entry = (Map.Entry) it.next();
- put(entry.getKey(), entry.getValue());
- }
- }
-
-
- /** empties this Hashtable of all elements */
- public synchronized void clear()
- {
- size = 0;
- modCount++;
- buckets = new Bucket[capacity];
- }
-
- /**
- * returns a shallow clone of this Hashtable (i.e. the Hashtable
- * itself is cloned, but its contents are not) */
- public synchronized Object clone()
- {
- Map.Entry entry;
- Iterator it = entrySet().iterator();
- Hashtable clone = new Hashtable(capacity, loadFactor);
- while (it.hasNext())
- {
- entry = (Map.Entry) it.next();
- clone.internalPut(entry.getKey(), entry.getValue());
- }
- return clone;
- }
-
- /**
- * returns a String representation of this Hashtable
- *
- * the String representation of a Hashtable is defined by Sun and
- * looks like this:
- * <pre>
- * {name_1=value_1, name_2=value_2, name_3=value_3, ..., name_N=value_N}
- * </pre>
- * for N elements in this Hashtable */
- public synchronized String toString()
- {
- Map.Entry entry;
- Iterator it = entrySet().iterator();
- StringBuffer sb = new StringBuffer("{");
- boolean isFirst = true;
- while (it.hasNext())
- {
- entry = (Map.Entry) it.next();
- if (isFirst)
- isFirst = false;
- else
- sb.append(", ");
- sb.append(entry.getKey().toString()).append("=").append(entry.getValue().toString());
- }
- sb.append("}");
- return sb.toString();
- }
-
- /** returns a Set of Keys in this Hashtable */
- public synchronized Set keySet()
- {
- return new HashtableSet(KEYS);
- }
-
- /**
- * returns a Set of Map.Entry objects in this Hashtable;
- * note, this was called <pre>entries()</pre> prior to JDK-1.2b4 */
- public synchronized Set entrySet()
- {
- return new HashtableSet(ENTRIES);
- }
-
- // This is the pre JDK1.2b4 named method for the above
- // public Set entries()
- // {
- // return entrySet();
- // }
-
- /** returns a Collection of values in this Hashtable */
- public synchronized Collection values()
- {
- return new HashtableCollection();
- }
-
- /** returns true if this Hashtable equals the supplied Object <pre>o</pre>;
- * that is:
- * <pre>
- * if (o instanceof Map)
- * and
- * o.keySet().equals(keySet())
- * and
- * for each key in o.keySet(), o.get(key).equals(get(key))
- *</pre>
- */
- public synchronized boolean equals(Object o)
- {
- Map other;
- Set keys = keySet();
- Object currentKey;
- Iterator it;
- if (o instanceof Map)
- {
- other = (Map) o;
- if (other.keySet().equals(keys))
- {
- it = keys.iterator();
- while (it.hasNext())
- {
- currentKey = it.next();
- if (!get(currentKey).equals(other.get(currentKey)))
- return false;
- }
- return true;
- }
- }
- return false;
- }
-
- /** a Map's hashCode is the sum of the hashCodes of all of its
- Map.Entry objects */
- public synchronized int hashCode()
- {
- Iterator it = entrySet().iterator();
- int result = 0;
- while (it.hasNext())
- result += it.next().hashCode();
- return result;
- }
-
- /**
- * a private method, called by all of the constructors to initialize a new Hashtable
- *
- * @param initialCapacity the initial capacity of this Hashtable (>=0)
- * @param initialLoadFactor the load factor of this Hashtable
- * (a misnomer, really, since the load factor of
- * a Hashtable does not change)
- */
- private void init(int initialCapacity, float initialLoadFactor)
- {
- size = 0;
- modCount = 0;
- capacity = initialCapacity;
- loadFactor = initialLoadFactor;
- threshold = (int) ((float) capacity * loadFactor);
- buckets = new Bucket[capacity];
- }
-
- /** private -- simply hashes a non-null Object to its array index */
- private int hash(Object key)
- {
- return Math.abs(key.hashCode() % capacity);
- }
-
- /** Serialize this Object in a manner which is binary-compatible
- with the JDK */
- private void writeObject(ObjectOutputStream s) throws IOException
- {
- ObjectOutputStream.PutField oFields;
- Iterator it = entrySet().iterator();
- Map.Entry oEntry;
- oFields = s.putFields();
- oFields.put("loadFactor", loadFactor);
- oFields.put("threshold", threshold);
- s.writeFields();
-
- s.writeInt(capacity);
- s.writeInt(size);
- while (it.hasNext())
- {
- oEntry = (Map.Entry) it.next();
- s.writeObject(oEntry.getKey());
- s.writeObject(oEntry.getValue());
- }
- }
-
- /** Deserialize this Object in a manner which is binary-compatible
- with the JDK */
- private void readObject(ObjectInputStream s)
- throws IOException, ClassNotFoundException
- {
- int i;
- int iLen;
- Object oKey, oValue;
- ObjectInputStream.GetField oFields;
- oFields = s.readFields();
- loadFactor = oFields.get("loadFactor", DEFAULT_LOAD_FACTOR);
- threshold = oFields.get("threshold",
- (int) (DEFAULT_LOAD_FACTOR
- * (float) DEFAULT_CAPACITY));
-
- capacity = s.readInt();
- iLen = s.readInt();
- size = 0;
- modCount = 0;
- buckets = new Bucket[capacity];
-
- for (i = 0; i < iLen; i++)
- {
- oKey = s.readObject();
- oValue = s.readObject();
- internalPut(oKey, oValue);
- }
- }
-
- /**
- * a Hashtable version of Map.Entry -- one thing in this implementation is
- * Hashtable-specific: a NullPointerException is thrown if someone calls
- * <pre>setValue(null)</pre>
- *
- * Simply, a key / value pair
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $
- */
- private static class HashtableEntry extends Bucket.Node implements Map.Entry
- {
- /** construct a new HastableEntry with the given key and value */
- public HashtableEntry(Object key, Object value)
- {
- super(key, value);
- }
-
- /** sets the value of this Map.Entry; throws NullPointerException if
- * <pre>newValue</pre> is null
- *
- * @throws NullPointerException if <pre>newValue</pre> is null
- */
- public Object setValue(Object newValue)
- throws UnsupportedOperationException, ClassCastException,
- IllegalArgumentException, NullPointerException
- {
- if (newValue == null)
- throw new NullPointerException();
- else
- return super.setValue(newValue);
- }
- }
-
-
- /**
- * an inner class representing an Enumeration view of this
- * Hashtable, providing sequential access to its elements; this
- * implementation is parameterized to provide access either to the
- * keys or to the values in the Hashtable
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $ */
- private class HashtableEnumeration implements Enumeration
- {
- /** the type of Enumeration: KEYS or VALUES */
- private int myType;
- /** where are we in our iteration over the elements of this Hashtable */
- private int position;
- /** our current index into the BucketList array */
- private int bucketIndex;
- /** a reference to the specific Bucket at which our "cursor" is positioned */
- private Bucket.Node currentNode;
-
- /**
- * construct a new HashtableEnumeration with the given type of view
- *
- * @param type KEYS or VALUES: the type of view this Enumeration is
- * providing
- */
- HashtableEnumeration(int type)
- {
- myType = type;
- position = 0;
- bucketIndex = -1;
- currentNode = null;
- }
-
- /**
- * returns true if not all elements have been retrived from the Enuemration
- *
- * <b>NOTE: modifications to the backing Hashtable while iterating
- * through an Enumeration can result in undefined behavior, as the
- * cursor may no longer be appropriately positioned</b> */
- public boolean hasMoreElements()
- {
- return position < Hashtable.this.size();
- }
-
- /**
- * returns the next element from the Enuemration
- *
- * <b>NOTE: modifications to the backing Hashtable while iterating
- * through an Enumeration can result in undefined behavior, as the
- * cursor may no longer be appropriately positioned</b>
- *
- * @throws NoSuchElementException if there are no more elements left in
- * the sequential view */
- public Object nextElement()
- {
- Bucket list = null;
- Object result;
- try
- {
- while (currentNode == null)
- {
- while (list == null)
- list = Hashtable.this.buckets[++bucketIndex];
- currentNode = list.first;
- }
- result = (myType == KEYS) ? currentNode.getKey() :
- currentNode.getValue();
- currentNode = currentNode.next;
- }
- catch(Exception e)
- {
- throw new NoSuchElementException();
- }
- position++;
- return result;
- }
- }
-
- /**
- * an inner class providing a Set view of a Hashtable; this
- * implementation is parameterized to view either a Set of keys or a
- * Set of Map.Entry objects
- *
- * Note: a lot of these methods are implemented by AbstractSet, and
- * would work just fine without any meddling, but far greater
- * efficiency can be gained by overriding a number of them. And so
- * I did.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $ */
- private class HashtableSet extends AbstractSet
- {
- /** the type of this Set view: KEYS or ENTRIES */
- private int setType;
-
- /** construct a new HashtableSet with the supplied view type */
- HashtableSet(int type)
- {
- setType = type;
- }
-
- /**
- * adding an element is unsupported; this method simply throws an
- * exception
- *
- * @throws UnsupportedOperationException */
- public boolean add(Object o) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * adding an element is unsupported; this method simply throws an
- * exception
- *
- * @throws UnsupportedOperationException */
- public boolean addAll(Collection c) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * clears the backing Hashtable; this is a prime example of an
- * overridden implementation which is far more efficient than its
- * superclass implementation (which uses an iterator and is O(n)
- * -- this is an O(1) call) */
- public void clear()
- {
- Hashtable.this.clear();
- }
-
- /**
- * returns true if the supplied object is contained by this Set
- *
- * @param o an Object being testing to see if it is in this Set
- */
- public boolean contains(Object o)
- {
- if (setType == KEYS)
- return Hashtable.this.containsKey(o);
- else
- return (o instanceof Map.Entry) ? Hashtable.this.containsEntry((Map.Entry) o) : false;
- }
-
- /**
- * returns true if the backing Hashtable is empty (which is the
- * only case either a KEYS Set or an ENTRIES Set would be empty) */
- public boolean isEmpty()
- {
- return Hashtable.this.isEmpty();
- }
-
- /**
- * removes the supplied Object from the Set
- *
- * @param o the Object to be removed
- */
- public boolean remove(Object o)
- {
- if (setType == KEYS)
- return (Hashtable.this.remove(o) != null);
- else
- return (o instanceof Map.Entry) ?
- (Hashtable.this.remove(((Map.Entry) o).getKey()) != null) : false;
- }
-
- /** returns the size of this Set (always equal to the size of the
- backing Hashtable) */
- public int size()
- {
- return Hashtable.this.size();
- }
-
- /** returns an Iterator over the elements of this Set */
- public Iterator iterator()
- {
- return new HashtableIterator(setType);
- }
- }
-
- /**
- * Like the above Set view, except this one if for values, which are not
- * guaranteed to be unique in a Hashtable; this prvides a Bag of values
- * in the Hashtable
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $
- */
- private class HashtableCollection extends AbstractCollection
- {
- /** a trivial contructor for HashtableCollection */
- HashtableCollection()
- {
- }
-
- /**
- * adding elements is not supported by this Collection;
- * this method merely throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean add(Object o) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * adding elements is not supported by this Collection;
- * this method merely throws an exception
- *
- * @throws UnsupportedOperationException
- */
- public boolean addAll(Collection c) throws UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
- /** removes all elements from this Set (and from the backing Hashtable) */
- public void clear()
- {
- Hashtable.this.clear();
- }
-
- /**
- * returns true if this Collection contains at least one Object which equals() the
- * supplied Object
- *
- * @param o the Object to compare against those in the Set
- */
- public boolean contains(Object o)
- {
- return Hashtable.this.containsValue(o);
- }
-
- /** returns true IFF the Collection has no elements */
- public boolean isEmpty()
- {
- return Hashtable.this.isEmpty();
- }
-
- /** returns the size of this Collection */
- public int size()
- {
- return Hashtable.this.size();
- }
-
- /** returns an Iterator over the elements in this Collection */
- public Iterator iterator()
- {
- return new HashtableIterator(VALUES);
- }
- }
-
- /**
- * Hashtable's version of the JDK-1.2 counterpart to the Enumeration;
- * this implementation is parameterized to give a sequential view of
- * keys, values, or entries; it also allows the removal of elements,
- * as per the Javasoft spec.
- *
- * @author Jon Zeppieri
- * @version $Revision: 1.7 $
- * @modified $Id: Hashtable.java,v 1.7 2000/03/15 21:59:13 rao Exp $
- */
- class HashtableIterator implements Iterator
- {
- /** the type of this Iterator: KEYS, VALUES, or ENTRIES */
- private int myType;
- /**
- * the number of modifications to the backing Hashtable for which
- * this Iterator can account (idea ripped off from Stuart Ballard)
- */
- private int knownMods;
- /** the location of our sequential "cursor" */
- private int position;
- /** the current index of the BucketList array */
- private int bucketIndex;
- /** a reference, originally null, to the specific Bucket our
- "cursor" is pointing to */
- private Bucket.Node currentNode;
- /** a reference to the current key -- used fro removing elements
- via the Iterator */
- private Object currentKey;
-
- /** construct a new HashtableIterator with the supllied type:
- KEYS, VALUES, or ENTRIES */
- HashtableIterator(int type)
- {
- myType = type;
- knownMods = Hashtable.this.modCount;
- position = 0;
- bucketIndex = -1;
- currentNode = null;
- currentKey = null;
- }
-
- /**
- * Stuart Ballard's code: if the backing Hashtable has been
- * altered through anything but <i>this</i> Iterator's
- * <pre>remove()</pre> method, we will give up right here, rather
- * than risking undefined behavior
- *
- * @throws ConcurrentModificationException */
- private void checkMod()
- {
- if (knownMods != Hashtable.this.modCount)
- throw new ConcurrentModificationException();
- }
-
- /** returns true if the Iterator has more elements */
- public boolean hasNext()
- {
- checkMod();
- return position < Hashtable.this.size();
- }
-
- /** returns the next element in the Iterator's sequential view */
- public Object next()
- {
- Bucket list = null;
- Object result;
- checkMod();
- try
- {
- while (currentNode == null)
- {
- while (list == null)
- list = Hashtable.this.buckets[++bucketIndex];
- currentNode = list.first;
- }
- currentKey = currentNode.getKey();
- result = (myType == KEYS) ? currentKey :
- ((myType == VALUES) ? currentNode.getValue() : currentNode);
- currentNode = currentNode.next;
- }
- catch(Exception e)
- {
- throw new NoSuchElementException();
- }
- position++;
- return result;
- }
-
- /**
- * removes from the backing Hashtable the last element which was
- * fetched with the <pre>next()</pre> method */
- public void remove()
- {
- checkMod();
- if (currentKey == null)
- {
- throw new IllegalStateException();
- }
- else
- {
- Hashtable.this.remove(currentKey);
- knownMods++;
- position--;
- currentKey = null;
- }
- }
- }
-}
-
-
-
-
-
-
-
-
diff --git a/libjava/java/util/Iterator.java b/libjava/java/util/Iterator.java
deleted file mode 100644
index f6942fefa19..00000000000
--- a/libjava/java/util/Iterator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface Iterator
-{
- public boolean hasNext();
- public Object next();
- public void remove();
-}
diff --git a/libjava/java/util/LinkedList.java b/libjava/java/util/LinkedList.java
deleted file mode 100644
index 41f1ab4e4f7..00000000000
--- a/libjava/java/util/LinkedList.java
+++ /dev/null
@@ -1,584 +0,0 @@
-/* LinkedList.java -- Linked list implementation of the List interface
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-import java.io.Serializable;
-import java.io.ObjectOutputStream;
-import java.io.ObjectInputStream;
-import java.io.IOException;
-
-// TO DO:
-// ~ Doc comment for the class.
-// ~ Doc comments for the non-list methods.
-// ~ Some commenting on the Backing API and other general implementation notes.
-
-/**
- * Linked list implementation of the List interface.
- */
-public class LinkedList extends AbstractSequentialList
- implements Serializable, Cloneable
-{
- static final long serialVersionUID = 876323262645176354L;
-
- /**
- * An Entry containing the head (in the next field) and the tail (in the
- * previous field) of the list. The data field is null. If the list is empty,
- * both the head and the tail point to ends itself.
- */
- transient Entry ends = new Entry();
-
- /**
- * The current length of the list.
- */
- transient int size = 0;
-
- /**
- * Class to represent an entry in the list. Holds a single element.
- */
- private static class Entry {
-
- /**
- * The list element.
- */
- Object data = null;
-
- /**
- * The next entry in the list. If this is the last entry in the list, the
- * ends field of the list is held here.
- */
- Entry next;
-
- /**
- * The previous entry in the list. If this is the first entry in the list,
- * the ends field of the list is held here.
- */
- Entry previous;
-
- /**
- * Create an entry with given data and linkage.
- */
- Entry(Object d, Entry n, Entry p) {
- data = d;
- next = n;
- previous = p;
- }
-
- /**
- * Create an entry with no data and linking to itself, for use as the ends
- * field of the list.
- */
- Entry() {
- next = previous = this;
- }
-
- /**
- * Remove this entry.
- */
- Object remove() {
- previous.next = next;
- next.previous = previous;
- return data;
- }
- }
-
- private static interface Backing {
- void checkMod(int known);
- void upMod();
- void incSize(int by);
- void decSize(int by);
- }
-
- private final Backing back = new Backing() {
- public void checkMod(int known) {
- if (known != modCount) {
- throw new ConcurrentModificationException();
- }
- }
- public void upMod() {
- modCount++;
- }
- public void incSize(int by) {
- size += by;
- }
- public void decSize(int by) {
- size -= by;
- }
- };
-
- /** A ListIterator over the list. This class keeps track of its
- * position in the list, the size of the list, and the two list
- * entries it is between. This enables it to be used identically
- * for both the list itself and a sublist of the list.
- */
- private static class Iter implements ListIterator {
-
- /**
- * The index of the element that will be returned by next().
- */
- int pos;
-
- /**
- * The size of the backing list.
- */
- int size;
-
- /**
- * The entry containing the element that will be returned by next().
- */
- Entry next;
-
- /**
- * The entry containing the element that will be returned by previous().
- */
- Entry previous;
-
- /**
- * The entry that will be affected by remove() or set().
- */
- Entry recent;
-
- /**
- * The known value of the modCount of the backing list.
- */
- int knownMod;
-
- private final Backing b;
-
- /**
- * Create a new Iter starting at a given Entry within the list, at a given
- * position, in a list of given size.
- *
- * @param index the index to begin iteration.
- * @exception IndexOutOfBoundsException if index < 0 || index > size.
- */
- Iter(Backing backing, Entry n, int index, int s, int modCount) {
- b = backing;
- pos = index;
- size = s;
- next = n;
- previous = n.previous;
- knownMod = modCount;
- }
-
- public int nextIndex() {
- b.checkMod(knownMod);
- return pos;
- }
-
- public int previousIndex() {
- b.checkMod(knownMod);
- return pos - 1;
- }
-
- public boolean hasNext() {
- b.checkMod(knownMod);
- return pos < size;
- }
-
- public boolean hasPrevious() {
- b.checkMod(knownMod);
- return pos > 0;
- }
-
- public Object next() {
- b.checkMod(knownMod);
- if (pos >= size) {
- throw new NoSuchElementException();
- } else {
- pos++;
- recent = previous = next;
- next = recent.next;
- return recent.data;
- }
- }
-
- public Object previous() {
- b.checkMod(knownMod);
- if (pos <= 0) {
- throw new NoSuchElementException();
- } else {
- pos--;
- recent = next = previous;
- previous = recent.previous;
- return recent.data;
- }
- }
-
- public void remove() {
- b.checkMod(knownMod);
- if (recent == null) {
- throw new IllegalStateException();
- }
-
- // Adjust the position to before the removed element
- if (recent == previous) pos--;
-
- // Could use recent.remove() but this way is quicker, and also correctly
- // fixes next and previous.
- next = recent.previous.next = recent.next;
- previous = recent.next.previous = recent.previous;
- size--;
- b.decSize(1);
- knownMod++;
- b.upMod();
- recent = null;
- }
-
- public void add(Object o) {
- b.checkMod(knownMod);
- previous.next = next.previous = new Entry(o, next, previous);
-
- // New for 1.2RC1 - the semantics changed so that the iterator is
- // positioned *after* the new element.
- previous = previous.next;
- pos++;
-
- size++;
- b.incSize(1);
- knownMod++;
- b.upMod();
- recent = null;
- }
-
- public void set(Object o) {
- b.checkMod(knownMod);
- if (recent == null) {
- throw new IllegalStateException();
- }
- recent.data = o;
- }
- }
-
- /**
- * Obtain the Entry at a given position in a list. This method of course
- * takes linear time, but it is intelligent enough to take the shorter of the
- * paths to get to the Entry required. This implies that the first or last
- * entry in the list is obtained in constant time, which is a very desirable
- * property.
- * For speed and flexibility in which ranges are valid, range checking is not
- * done in this method, and if n is outside the range -1 <= n <= size, the
- * result will be wrong (but no exception will be thrown).
- * Note that you *can* obtain entries at position -1 and size, which are
- * equal to prehead and posttail respectively.
- * This method is static so that it can also be used in subList.
- *
- * @param n the number of the entry to get.
- * @param size the size of the list to get the entry in.
- * @param head the entry before the first element of the list (usually ends).
- * @param tail the entry after the last element of the list (usually ends).
- */
- static Entry getEntry(int n, int size, Entry head, Entry tail) {
-
- // n less than size/2, iterate from start
- if (n < size >> 1) {
- while (n-- >= 0) {
- head = head.next;
- }
- return head;
-
- // n greater than size/2, iterate from end
- } else {
- while (++n <= size) {
- tail = tail.previous;
- }
- return tail;
- }
- }
-
- /**
- * Create an empty linked list.
- */
- public LinkedList() {
- super();
- }
-
- /**
- * Create a linked list containing the elements, in order, of a given
- * collection.
- *
- * @param c the collection to populate this list from.
- */
- public LinkedList(Collection c) {
- super();
- // Note: addAll could be made slightly faster, but not enough so to justify
- // re-implementing it from scratch. It is just a matter of a relatively
- // small constant factor.
- addAll(c);
- }
-
- public Object getFirst() {
- if (size == 0) {
- throw new NoSuchElementException();
- }
- return ends.next.data;
- }
-
- public Object getLast() {
- if (size == 0) {
- throw new NoSuchElementException();
- }
- return ends.previous.data;
- }
-
- public Object removeFirst() {
- if (size == 0) {
- throw new NoSuchElementException();
- }
- size--;
- modCount++;
- return ends.next.remove();
- }
-
- public Object removeLast() {
- if (size == 0) {
- throw new NoSuchElementException();
- }
- size--;
- modCount++;
- return ends.previous.remove();
- }
-
- public void addFirst(Object o) {
- ends.next.previous = ends.next = new Entry(o, ends.next, ends);
- size++;
- modCount++;
- }
-
- public void addLast(Object o) {
- ends.previous.next = ends.previous = new Entry(o, ends, ends.previous);
- size++;
- modCount++;
- }
-
- /**
- * Obtain the number of elements currently in this list.
- *
- * @returns the number of elements currently in this list.
- */
- public int size() {
- return size;
- }
-
- /**
- * Remove a range of elements from this list.
- *
- * @param fromIndex the index, inclusive, to remove from.
- * @param toIndex the index, exclusive, to remove to.
- * @exception IndexOutOfBoundsException if fromIndex > toIndex || fromIndex <
- * 0 || toIndex > size().
- */
- // Note: normally removeRange is provided to allow efficient ways to
- // implement clear() on subLists. However, in this case clear on subLists
- // works anyway, so this implementation is included just for completeness
- // and because subclasses might try to use it.
- protected void removeRange(int fromIndex, int toIndex) {
- subList(fromIndex, toIndex).clear();
- }
-
- /**
- * Clear the list.
- */
- public void clear() {
- ends.next = ends.previous = ends;
- modCount++;
- size = 0;
- }
-
- /**
- * Obtain a ListIterator over this list, starting at a given index. The
- * ListIterator returned by this method supports the add, remove and set
- * methods.
- *
- * @param index the index of the element to be returned by the first call to
- * next(), or size() to be initially positioned at the end of the list.
- * @exception IndexOutOfBoundsException if index < 0 || index > size().
- */
- public ListIterator listIterator(int index) {
-
- // Check bounds
- if (index < 0 || index > size) {
- throw new IndexOutOfBoundsException();
- }
-
- return new Iter(back, getEntry(index, size, ends, ends),
- index, size, modCount);
- }
-
- /**
- * Obtain a List view of a subsection of this list, from fromIndex
- * (inclusive) to toIndex (exclusive). The returned list is modifiable in
- * every respect. Changes to the returned list are reflected in this list. If
- * this list is structurally modified is any way other than through the
- * returned list, any subsequent operations on the returned list will result
- * in a ConcurrentModificationException (that is, the returned list is
- * fail-fast).
- *
- * @param fromIndex the index that the returned list should start from
- * (inclusive).
- * @param toIndex the index that the returned list should go to (exclusive).
- * @returns a List backed by a subsection of this list.
- * @exception IndexOutOfBoundsException if fromIndex < 0 || toIndex > size()
- * || fromIndex > toIndex.
- */
- public List subList(int fromIndex, int toIndex) {
-
- // Check bounds
- if (fromIndex > toIndex || fromIndex < 0 || toIndex > size) {
- throw new IndexOutOfBoundsException();
- }
-
- return new SubLinkedList(back, modCount,
- getEntry(fromIndex - 1, size, ends, ends),
- getEntry(toIndex, size, ends, ends),
- toIndex - fromIndex);
- }
-
- private static class SubLinkedList extends AbstractSequentialList {
-
- Entry head; // entry before the beginning
- Entry tail; // entry after the end
- int size;
- private final Backing b;
-
- private final Backing back = new Backing() {
- public void checkMod(int known) {
- if (known != modCount) {
- throw new ConcurrentModificationException();
- }
- }
- public void upMod() {
- modCount++;
- }
- public void incSize(int by) {
- size += by;
- }
- public void decSize(int by) {
- size -= by;
- }
- };
-
- SubLinkedList(Backing backing, int knownMod, Entry h, Entry t, int s) {
- this.modCount = knownMod;
- b = backing;
- head = h;
- tail = t;
- size = s;
- }
-
- public int size() {
- b.checkMod(this.modCount);
- return size;
- }
-
- public ListIterator listIterator(int index) {
- b.checkMod(this.modCount);
-
- // Check bounds
- if (index < 0 || index > size) {
- throw new IndexOutOfBoundsException();
- }
-
- return new Iter(back, getEntry(index, size, head, tail),
- index, size, modCount);
- }
-
- public void clear() {
- b.checkMod(this.modCount);
- head.next = tail;
- tail.previous = head;
- size = 0;
- b.decSize(size);
- modCount++;
- b.upMod();
- }
-
- // No removeRange because this class cannot be publically subclassed.
-
- public List subList(int fromIndex, int toIndex) {
- b.checkMod(this.modCount);
-
- // Check bounds
- if (fromIndex > toIndex || fromIndex < 0 || toIndex > size) {
- throw new IndexOutOfBoundsException();
- }
-
- return new SubLinkedList(back, this.modCount,
- getEntry(fromIndex - 1, size, head, tail),
- getEntry(toIndex, size, head, tail),
- toIndex - fromIndex);
- }
- }
-
- /**
- * Create a shallow copy of this LinkedList.
- * @return an object of the same class as this object, containing the
- * same elements in the same order.
- */
- public Object clone()
- {
- LinkedList copy;
- try
- {
- copy = (LinkedList) super.clone();
- }
- catch (CloneNotSupportedException ex)
- {
- throw new InternalError(ex.getMessage());
- }
- copy.size = 0;
- copy.ends = new Entry();
- copy.addAll(this);
- return copy;
- }
-
- /**
- * Serialize an object to a stream.
- * @serialdata the size of the list (int), followed by all the elements
- * (Object) in proper order.
- */
- private void writeObject(ObjectOutputStream s)
- throws IOException
- {
- s.writeInt(size);
- for (Iterator i = iterator(); i.hasNext(); )
- s.writeObject(i.next());
- }
-
- /**
- * Deserialize an object from a stream.
- * @serialdata the size of the list (int), followed by all the elements
- * (Object) in proper order.
- */
- private void readObject(ObjectInputStream s)
- throws IOException, ClassNotFoundException
- {
- int serialSize = s.readInt();
- ends = new Entry();
- for (int i=0; i< serialSize; i++)
- addLast(s.readObject());
- }
-}
diff --git a/libjava/java/util/List.java b/libjava/java/util/List.java
deleted file mode 100644
index ea69217553e..00000000000
--- a/libjava/java/util/List.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface List extends Collection
-{
- public int size();
- public boolean isEmpty();
- public boolean contains(Object o);
- public Iterator iterator();
- public Object[] toArray();
- public Object[] toArray(Object[] a);
- public boolean add(Object o);
- public boolean remove(Object o);
- public boolean containsAll(Collection c);
- public boolean addAll(Collection c);
- public boolean addAll(int index, Collection c);
- public boolean removeAll(Collection c);
- public boolean retainAll(Collection c);
- public void clear();
- public boolean equals(Object o);
- public int hashCode();
- public Object get(int index);
- public Object set(int index, Object element);
- public void add(int index, Object element);
- public Object remove(int index);
- public int indexOf(Object o);
- public int lastIndexOf(Object o);
- public ListIterator listIterator();
- public ListIterator listIterator(int index);
- public List subList(int fromIndex, int toIndex);
-}
diff --git a/libjava/java/util/ListIterator.java b/libjava/java/util/ListIterator.java
deleted file mode 100644
index 8250e2ab01a..00000000000
--- a/libjava/java/util/ListIterator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date March 16, 2000.
- */
-/* Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
- */
-
-// JDK1.2
-public interface ListIterator extends Iterator
-{
- public boolean hasNext();
- public Object next();
- public boolean hasPrevious();
- public Object previous();
- public int nextIndex();
- public int previousIndex();
- public void remove();
- public void set(Object o);
- public void add(Object o);
-}
diff --git a/libjava/java/util/ListResourceBundle.java b/libjava/java/util/ListResourceBundle.java
deleted file mode 100644
index c6d6e78f4e2..00000000000
--- a/libjava/java/util/ListResourceBundle.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Anthony Green <green@cygnus.com>
- * @date November 26, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1. */
-
-public abstract class ListResourceBundle extends ResourceBundle
-{
- public final Object handleGetObject(String key)
- {
- Object a[][] = getContents();
-
- for (int i = 0; i < a.length; i++)
- {
- if (key.compareTo((String) a[i][0]) == 0)
- return a[i][1];
- }
- throw new MissingResourceException("can't find handle",
- getClass().getName(),
- key);
- }
-
- public Enumeration getKeys()
- {
- Object a[][] = getContents();
-
- Vector keys = new Vector(a.length);
-
- for (int i = 0; i < a.length; i++)
- keys.addElement(a[i][0]);
-
- return keys.elements();
- }
-
- protected abstract Object[][] getContents();
-
- public ListResourceBundle()
- {
- }
-}
diff --git a/libjava/java/util/Locale.java b/libjava/java/util/Locale.java
deleted file mode 100644
index d2dc2f75917..00000000000
--- a/libjava/java/util/Locale.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1.
- * Status: None of the getDisplayXXX or getISO3XXX methods are implemented.
- */
-public final class Locale implements java.io.Serializable, Cloneable
-{
- // The fields are as specified in Sun's "Serialized Form"
- // in the JDK 1.2 beta 4 API specification.
- private String country;
- private int hashcode;
- private String language;
- private String variant;
- private static Locale defaultLocale;
-
- // These are as specified in the JDK 1.2 AP documentation
-
-
- // LANGUAGE constants ... country-neutral
- public static final Locale CHINESE = new Locale ("zh", "");
- public static final Locale ENGLISH = new Locale ("en", "");
- public static final Locale FRENCH = new Locale ("fr", "");
- public static final Locale GERMAN = new Locale ("de", "");
- public static final Locale ITALIAN = new Locale ("it", "");
- public static final Locale JAPANESE = new Locale ("ja", "");
- public static final Locale KOREAN = new Locale ("ko", "");
-
- // COUNTRY constants ... countries can be multi-lingual
- public static final Locale CANADA = new Locale ("en", "CA");
- public static final Locale CANADA_FRENCH = new Locale ("fr", "CA");
- public static final Locale FRANCE = new Locale ("fr", "FR");
- public static final Locale GERMANY = new Locale ("de", "DE");
- public static final Locale ITALY = new Locale ("it", "IT");
- public static final Locale JAPAN = new Locale ("ja", "JP");
- public static final Locale KOREA = new Locale ("ko", "KR");
- public static final Locale UK = new Locale ("en", "GB");
- public static final Locale US = new Locale ("en", "US");
-
- // Chinese has multiple scripts and political bodies
- public static final Locale SIMPLIFIED_CHINESE = new Locale ("zh", "CN");
- public static final Locale TRADITIONAL_CHINESE = new Locale ("zh", "TW");
- public static final Locale PRC = SIMPLIFIED_CHINESE;
- public static final Locale TAIWAN = TRADITIONAL_CHINESE;
- public static final Locale CHINA = PRC;
-
- public Locale (String languageCode, String countryCode)
- {
- this (languageCode, countryCode, "");
- }
-
- public Locale (String languageCode, String countryCode,
- String variantCode)
- {
- language = languageCode.toLowerCase();
- country = countryCode.toUpperCase();
- variant = variantCode.toUpperCase();
- hashcode = (languageCode.hashCode()
- ^ countryCode.hashCode()
- ^ variantCode.hashCode());
- }
-
- public Object clone ()
- {
- return (Object) new Locale (language, country, variant);
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof Locale))
- return false;
- Locale loc = (Locale) obj;
- return (language.equals(loc.language)
- && country.equals(loc.country)
- && variant.equals(loc.variant));
- }
-
- public String getCountry ()
- {
- return country;
- }
-
- public String getLanguage ()
- {
- return language;
- }
-
- public String getVariant ()
- {
- return variant;
- }
-
- public int hashCode ()
- {
- return hashcode;
- }
-
- private static synchronized Locale setDefault()
- {
- if (defaultLocale != null)
- return defaultLocale;
- String language = System.getProperty("user.language");
- String country = System.getProperty("user.region");
- defaultLocale = new Locale (language == null ? "en" : language,
- country == null ? "" : country);
- return defaultLocale;
- }
-
- public static Locale getDefault ()
- {
- return defaultLocale == null ? setDefault() : defaultLocale;
- }
-
- public static void setDefault (Locale newLocale)
- {
- defaultLocale = newLocale;
- }
-
- public String toString ()
- {
- StringBuffer result = new StringBuffer(20);
- result.append(language);
- if (country.length() > 0)
- {
- result.append('_');
- result.append(country);
- if (variant.length() > 0)
- {
- result.append('_');
- result.append(variant);
- }
- }
- return result.toString();
- }
-}
diff --git a/libjava/java/util/Map.java b/libjava/java/util/Map.java
deleted file mode 100644
index c9d46dffb3e..00000000000
--- a/libjava/java/util/Map.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Map.java -- An object that maps keys to values
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Doc comments for everything.
-
-package java.util;
-
-public interface Map
-{
- public void clear();
- public boolean containsKey(Object key);
- public boolean containsValue(Object value);
- public Set entrySet();
- public boolean equals(Object o);
- public Object get(Object key);
- public Object put(Object key, Object value);
- public int hashCode();
- public boolean isEmpty();
- public Set keySet();
- public void putAll(Map m);
- public Object remove(Object o);
- public int size();
- public Collection values();
-
- public static interface Entry {
- public Object getKey();
- public Object getValue();
- public Object setValue(Object value);
- public int hashCode();
- public boolean equals(Object o);
- }
-}
diff --git a/libjava/java/util/MissingResourceException.java b/libjava/java/util/MissingResourceException.java
deleted file mode 100644
index 5fe24a024b3..00000000000
--- a/libjava/java/util/MissingResourceException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class MissingResourceException extends RuntimeException
-{
- private String className;
- private String key;
-
- public MissingResourceException(String msg, String cName, String k)
- {
- super(msg);
- className = cName;
- key = k;
- }
-
- public String getClassName()
- {
- return className;
- }
-
- public String getKey()
- {
- return key;
- }
-}
-
diff --git a/libjava/java/util/NoSuchElementException.java b/libjava/java/util/NoSuchElementException.java
deleted file mode 100644
index eb8f27d8efb..00000000000
--- a/libjava/java/util/NoSuchElementException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class NoSuchElementException extends RuntimeException
-{
- public NoSuchElementException()
- {
- super();
- }
-
- public NoSuchElementException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/util/Observable.java b/libjava/java/util/Observable.java
deleted file mode 100644
index 1a205c15363..00000000000
--- a/libjava/java/util/Observable.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class Observable
-{
- /* tracks whether this object has changed */
- private boolean changed;
-
- /* list of the Observers registered as interested in this Observable */
- private Vector observerVec;
-
- /* TBD: This might be better implemented as an Observer[]
- * but that would mean writing more code rather than making use of
- * the existing Vector class (this also implies a larger text code
- * space in resulting executables). The tradeoff is one of speed
- * (manipulating the Observer[] directly) vs. size/reuse. In the future,
- * we may decide to make the tradeoff and reimplement with an Observer[].
- */
-
- public Observable()
- {
- changed = false;
- observerVec = new Vector();
- }
-
- public synchronized void addObserver(Observer obs)
- {
- // JDK 1.2 spec says not to add this if it is already there
- if (!observerVec.contains(obs))
- observerVec.addElement(obs);
- }
-
- protected synchronized void clearChanged()
- {
- changed = false;
- }
-
- public synchronized int countObservers()
- {
- return observerVec.size();
- }
-
- public synchronized void deleteObserver(Observer obs)
- {
- observerVec.removeElement(obs);
- }
-
- public synchronized void deleteObservers()
- {
- observerVec.removeAllElements();
- }
-
- public synchronized boolean hasChanged()
- {
- return changed;
- }
-
- public void notifyObservers()
- {
- notifyObservers(null);
- }
-
- public void notifyObservers(Object arg)
- {
- if (changed)
- {
- /* The JDK 1.2 spec states that though the order of notification
- * is unspecified in subclasses, in Observable it is in the order
- * of registration.
- */
- for (int i = 0, numObs = observerVec.size(); i < numObs; i++)
- ((Observer) (observerVec.elementAt(i))).update(this, arg);
- changed = false;
- }
- }
-
- protected synchronized void setChanged()
- {
- changed = true;
- }
-}
diff --git a/libjava/java/util/Observer.java b/libjava/java/util/Observer.java
deleted file mode 100644
index 3dc86ae7512..00000000000
--- a/libjava/java/util/Observer.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public interface Observer
-{
- public void update(Observable observed, Object arg);
-}
diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java
deleted file mode 100644
index 6360b9932d9..00000000000
--- a/libjava/java/util/Properties.java
+++ /dev/null
@@ -1,393 +0,0 @@
-// Properties - Property list representation.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.PushbackReader;
-
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @date October 26, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * Status: Complete to JDK 1.2.
- */
-
-public class Properties extends Hashtable
-{
- protected Properties defaults;
-
- private static final long serialVersionUID = 4112578634029874840L;
-
- public String getProperty (String propName)
- {
- return getProperty (propName, null);
- }
-
- public String getProperty (String propName, String defVal)
- {
- String r = (String) get (propName);
- if (r == null)
- {
- if (defaults != null)
- r = defaults.getProperty(propName, defVal);
- else
- r = defVal;
- }
- return r;
- }
-
- public Object setProperty (String key, String value)
- {
- return put (key, value);
- }
-
- public void list (PrintStream out)
- {
- Enumeration e = propertyNames ();
- while (e.hasMoreElements())
- {
- String key = (String) e.nextElement();
- String value = getProperty(key);
- if (value != null)
- {
- if (value.length() > 40)
- {
- // JDK compatibility.
- value = value.substring(0, 37) + "...";
- }
- out.print(key);
- out.print("=");
- out.println(value);
- }
- }
- }
-
- public void list (PrintWriter writer)
- {
- Enumeration e = propertyNames ();
- while (e.hasMoreElements())
- {
- String key = (String) e.nextElement();
- String value = getProperty(key);
- if (value != null)
- {
- if (value.length() > 40)
- {
- // JDK compatibility.
- value = value.substring(0, 37) + "...";
- }
- writer.print(key);
- writer.print("=");
- writer.println(value);
- }
- }
- }
-
- private final boolean skip_ws (PushbackReader reader) throws IOException
- {
- while (true)
- {
- int c = reader.read();
- if (c == -1)
- return false;
- // FIXME: we use our own definition of whitespace.
- // Character.isWhitespace includes newlines, which we don't
- // want. Character.isSpaceChar doesn't include \t.
- if (c != ' ' && c != '\t')
- {
- reader.unread(c);
- return true;
- }
- }
- }
-
- // Note: this method needs to be rewritten for JDK 1.2.
- // We rather arbitrarily decide that an EOF in the middle of a line
- // means that the whole line should be ignored. The spec doesn't
- // specifically address this, but this interpretation seems valid.
- public synchronized void load (InputStream in) throws IOException
- {
- PushbackReader reader = new PushbackReader (new InputStreamReader (in));
-
- StringBuffer key = new StringBuffer ();
- StringBuffer value = new StringBuffer ();
-
- nextLine:
- while (true)
- {
- key.setLength(0);
- value.setLength(0);
-
- // Skip leading whitespace.
- if (! skip_ws (reader))
- return;
-
- // Read key until key terminator.
- boolean first_char = true;
- int c;
- while (true)
- {
- c = reader.read();
- if (c == -1)
- return;
- if (c == '\\')
- {
- first_char = false;
- c = reader.read();
- if (c == -1)
- return;
- }
-
- // If we found a comment, just read to end of line and
- // then keep going.
- if (first_char == true && (c == '#' || c == '!'))
- {
- while (c != -1 && c != '\r' && c != '\n')
- c = reader.read();
- if (c == -1)
- return;
- continue nextLine;
- }
-
- if (c == '\r' || c == '\n')
- {
- if (first_char)
- continue nextLine;
- reader.unread(c);
- break;
- }
- // FIXME: again, our own definition of whitespace.
- if (c == ' ' || c == '\t' || c == ':' || c == '=')
- break;
-
- first_char = false;
- key.append((char) c);
- }
-
- // Found end of key. Skip whitespace. If the terminator
- // was whitespace, also skip a single instance of a "real"
- // terminator, and then more whitespace.
- if (! skip_ws (reader))
- return;
- if (c != ':' && c != '=')
- {
- c = reader.read();
- if (c == -1)
- return;
- if (c == ':' || c == '=')
- {
- // Skip more whitespace.
- if (! skip_ws (reader))
- return;
- }
- else
- reader.unread(c);
- }
-
- // Now read the value.
- while (true)
- {
- c = reader.read();
- if (c == -1)
- return;
- if (c == '\r' || c == '\n')
- break;
- if (c == '\\')
- {
- c = reader.read();
- switch (c)
- {
- case -1:
- return;
- case 't':
- c = '\t';
- break;
- case 'r':
- c = '\r';
- break;
- case 'n':
- c = '\n';
- break;
- case 'u':
- c = 0;
- for (int i = 0; i < 4; ++i)
- {
- int x = reader.read();
- if (x == -1)
- return;
- int d = Character.digit((char) x, 16);
- // We follow JDK here: invalid characters
- // are treated as terminators.
- if (d == -1)
- {
- value.append((char) c);
- c = x;
- break;
- }
- c <<= 4;
- c |= d;
- }
- break;
- default:
- // Nothing.
- }
- }
- value.append((char) c);
- }
-
- put (key.toString(), value.toString());
- }
- }
-
- public Properties ()
- {
- defaults = null;
- }
-
- public Properties (Properties defs)
- {
- defaults = defs;
- }
-
- private final void addHashEntries (Hashtable base)
- {
- if (defaults != null)
- defaults.addHashEntries(base);
- Enumeration keys = keys ();
- while (keys.hasMoreElements())
- base.put(keys.nextElement(), base);
- }
-
- public Enumeration propertyNames ()
- {
- // We make a new Hashtable that holds all the keys. Then we
- // return an enumeration for this hash. We do this because we
- // don't want modifications to be reflected in the enumeration
- // (per JCL), and because there doesn't seem to be a
- // particularly better way to ensure that duplicates are
- // ignored.
- Hashtable t = new Hashtable ();
- addHashEntries (t);
- return t.keys();
- }
-
- public synchronized void save (OutputStream out, String comment)
- {
- try
- {
- store (out, comment);
- }
- catch (IOException _)
- {
- }
- }
-
- public synchronized void store (OutputStream out, String comment)
- throws IOException
- {
- // Use a buffer because writing a single string through
- // OutputStreamWriter is fairly expensive.
- BufferedWriter output
- = new BufferedWriter (new OutputStreamWriter (out));
- String newline = System.getProperty("line.separator");
-
- if (comment != null)
- {
- // We just lose if COMMENT contains a newline. This is
- // what JDK 1.1 does.
- output.write("#");
- output.write(comment);
- output.write(newline);
- }
- output.write("# ");
- output.write(new Date().toString());
- output.write(newline);
-
- Enumeration keys = keys ();
- while (keys.hasMoreElements())
- {
- String key = (String) keys.nextElement();
- String value = (String) get (key);
-
- // FIXME: JCL says that the key can contain many Unicode
- // characters. But it also doesn't say we should encode
- // it in any way.
- // FIXME: if key contains ':', '=', or whitespace, must
- // quote it here. Note that JDK 1.1 does not do this.
- output.write(key);
- output.write("=");
-
- boolean leading = true;
- for (int i = 0; i < value.length(); ++i)
- {
- boolean new_lead = false;
- char c = value.charAt(i);
- switch (c)
- {
- case '\n':
- output.write("\\n");
- break;
- case '\r':
- output.write("\\r");
- break;
- case '\t':
- output.write("\\t");
- break;
- case '\\':
- output.write("\\\\");
- break;
-
- case '#':
- case '!':
- case '=':
- case ':':
- output.write("\\");
- output.write(c);
- break;
-
- case ' ':
- new_lead = leading;
- if (leading)
- output.write("\\");
- output.write(c);
- break;
-
- default:
- if (c < '\u0020' || c > '\u007e')
- {
- output.write("\\u");
- output.write(Character.forDigit(c >>> 12, 16));
- output.write(Character.forDigit((c >>> 8) & 0xff,
- 16));
- output.write(Character.forDigit((c >>> 4) & 0xff,
- 16));
- output.write(Character.forDigit(c & 0xff, 16));
- }
- else
- output.write(c);
- }
- leading = new_lead;
- }
- output.write(newline);
- }
-
- output.flush();
- }
-}
diff --git a/libjava/java/util/PropertyPermission.java b/libjava/java/util/PropertyPermission.java
deleted file mode 100644
index 8d004c0b352..00000000000
--- a/libjava/java/util/PropertyPermission.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/* java.util.PropertyPermission
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-package java.util;
-import java.security.Permission;
-import java.security.BasicPermission;
-import java.security.PermissionCollection;
-import java.io.ObjectStreamField;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.IOException;
-
-/**
- * This class represents the permission to access and modify a property.<br>
- *
- * The name is the name of the property, e.g. xxx. You can also
- * use an asterisk "*" as described in BasicPermission <br>
- *
- * The action string is a comma-separated list if keywords. There are
- * two possible actions:
- * <dl>
- * <dt>read</dt>
- * <dd>Allows to read the property via <code>System.getProperty</code>.</dd>
- * <dt>write</dt>
- * <dd>Allows to write the property via <code>System.setProperty</code>.</dd>
- * </dl>
- *
- * The action string is case insensitive (it is converted to lower case).
- *
- * @see Permission
- * @see BasicPermission
- * @author Jochen Hoenicke
- */
-public final class PropertyPermission extends BasicPermission
-{
- /**
- * @serialField action String
- * The action string.
- */
- private static final ObjectStreamField[] serialPersistentFields =
- {
- new ObjectStreamField("action", String.class)
- };
-
- private static final long serialVersionUID = 885438825399942851L;
-
- private static final int READ = 1;
- private static final int WRITE = 2;
- private transient int actions;
-
- private static String actionStrings[] =
- {
- "", "read", "write", "read,write"
- };
-
- /**
- * Constructs a PropertyPermission witha he specified property. Possible
- * actions are read and write.
- * @param name the name of the property.
- * @param actions the action string.
- * @exception IllegalArgumentException if name string contains an
- * illegal wildcard or actions string contains an illegal action
- */
- public PropertyPermission(String name, String actions)
- {
- super(name);
- setActions(actions.toLowerCase());
- }
-
- /**
- * Parse the action string and convert actions from external to internal
- * form. This will set the internal actions field.
- * @param actions the action string.
- * @exception IllegalArgumentException if actions string contains an
- * illegal action */
- private void setActions(String actions)
- {
- this.actions = 0;
- StringTokenizer actionTokenizer = new StringTokenizer(actions, ",");
- while (actionTokenizer.hasMoreElements())
- {
- String anAction = actionTokenizer.nextToken();
- if ("read".equals(anAction))
- this.actions |= READ;
- else if ("write".equals(anAction))
- this.actions |= WRITE;
- else
- throw new IllegalArgumentException("illegal action "+anAction);
- }
- }
-
- /**
- * Check if this permission implies p. This returns true iff all of
- * the following conditions are true:
- * <ul>
- * <li> p is a PropertyPermission </li>
- * <li> this.getName() implies p.getName(),
- * e.g. <code>java.*</code> implies <code>java.home</code> </li>
- * <li> this.getActions is a subset of p.getActions </li>
- * </ul>
- */
- public boolean implies(Permission p)
- {
- if (!(p instanceof PropertyPermission))
- return false;
-
- // We have to check the actions.
- PropertyPermission pp = (PropertyPermission) p;
- if ((pp.actions & ~actions) != 0)
- return false;
-
- // BasicPermission checks for name.
- if (!super.implies(p))
- return false;
-
- return true;
- }
-
- /**
- * Returns the action string. Note that this may differ from the string
- * given at the constructor: The actions are converted to lowercase and
- * may be reordered.
- */
- public String getActions()
- {
- return actionStrings[actions];
- }
-
- /**
- * Reads an object from the stream. This converts the external to the
- * internal representation.
- */
- private void readObject(ObjectInputStream s)
- throws IOException, ClassNotFoundException
- {
- ObjectInputStream.GetField fields = s.readFields();
- setActions((String) fields.get("actions", null));
- }
-
- /**
- * Writes an object to the stream. This converts the internal to the
- * external representation.
- */
- private void writeObject(ObjectOutputStream s)
- throws IOException
- {
- ObjectOutputStream.PutField fields = s.putFields();
- fields.put("actions", getActions());
- s.writeFields();
- }
-
- /**
- * Returns a permission collection suitable to take
- * PropertyPermission objects.
- * @return a new empty PermissionCollection.
- */
- public PermissionCollection newPermissionCollection()
- {
- return new PermissionCollection()
- {
- Hashtable permissions = new Hashtable();
- int allActions = 0;
-
- public void add(Permission permission)
- {
- if (isReadOnly())
- throw new IllegalStateException("readonly");
-
- // also check that permission is of correct type.
- PropertyPermission pp = (PropertyPermission) permission;
- String name = pp.getName();
- if (name.equals("*"))
- allActions |= pp.actions;
- permissions.put(name, pp);
- }
-
- public boolean implies(Permission permission)
- {
- if (!(permission instanceof PropertyPermission))
- return false;
-
- PropertyPermission toImply = (PropertyPermission) permission;
- if ((toImply.actions & ~allActions) == 0)
- return true;
-
- String name = toImply.getName();
- if (name.equals("*"))
- return false;
-
- int prefixLength = name.length();
- if (name.endsWith("*"))
- prefixLength -= 2;
-
- while (true) {
- PropertyPermission forName =
- (PropertyPermission) permissions.get(name);
- if (forName != null
- && (toImply.actions & ~forName.actions) == 0)
- return true;
-
- prefixLength = name.lastIndexOf('.', prefixLength);
- if (prefixLength < 0)
- return false;
- name = name.substring(0, prefixLength + 1) + '*';
- }
- }
-
- public Enumeration elements()
- {
- return permissions.elements();
- }
- };
- }
-}
diff --git a/libjava/java/util/PropertyResourceBundle.java b/libjava/java/util/PropertyResourceBundle.java
deleted file mode 100644
index 4171ddd29d2..00000000000
--- a/libjava/java/util/PropertyResourceBundle.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-import java.io.InputStream;
-import java.io.IOException;
-import gnu.gcj.util.EnumerationChain;
-
-/**
- * @author Anthony Green <green@cygnus.com>
- * @date April 29, 1999.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1. */
-
-public class PropertyResourceBundle extends ResourceBundle
-{
- private Properties properties;
-
- public PropertyResourceBundle (InputStream pstream) throws IOException
- {
- // Initialize and load our Properties.
- properties = new Properties();
- properties.load(pstream);
- }
-
- public Enumeration getKeys()
- {
- if (parent == null)
- return properties.propertyNames();
- else
- return new EnumerationChain (properties.propertyNames(),
- parent.getKeys ());
- }
-
- public Object handleGetObject (String key)
- {
- return properties.getProperty(key);
- }
-}
diff --git a/libjava/java/util/Random.java b/libjava/java/util/Random.java
deleted file mode 100644
index 5ed4532050a..00000000000
--- a/libjava/java/util/Random.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-import java.io.Serializable;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-/* This class is completely specified by the spec to ensure absolute
- * portability between all implementations of Java
- */
-public class Random implements Serializable
-{
- /* Used by next() to hold the state of the pseudorandom number generator */
- private long seed;
-
- /* Used by nextGaussian() to hold a precomputed value */
- /* to be delivered by that method the next time it is called */
- private double nextNextGaussian;
-
- /* Used by nextGaussian() to keep track of whether it is has precomputed */
- /* and stashed away the next value to be delivered by that method */
- private boolean haveNextNextGaussian = false;
-
- private static final long serialVersionUID = 3905348978240129619L;
-
- public Random()
- {
- this(System.currentTimeMillis());
- }
-
- public Random(long seed)
- {
- setSeed(seed);
- }
-
- protected synchronized int next(int bits)
- {
- seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1);
- return (int)(seed >>> (48 - bits));
- }
-
- // JDK1.2
- public boolean nextBoolean()
- {
- return next(1) != 0;
- }
-
- /* The method nextBytes() is not fully specified in the published specs.
- * At first I implemented it simply via:
- * for (int i = 0; i < buf.length; i++)
- * buf[i] = (byte)next(8);
- * but a simple test did not yield the same results as the std implementation.
- * There seemed to be a relationship where each i byte above was at pos 4*i+3
- * in the std. For efficiency, by reducing calls to the expensive math
- * routines, the std probably was calling next(32) once rather than next(8)
- * 4 times. Changing the algorithm to the one below based on that assumption
- * then yielded identical results to the std.
- */
- public void nextBytes(byte[] buf)
- {
- int randInt = 0;
-
- for (int i = 0; i < buf.length; i++)
- {
- int shift = (i % 4) * 8;
- if (shift == 0)
- randInt = next(32);
- buf[i] = (byte) (randInt >> shift);
- }
- }
-
- public double nextDouble()
- {
- return (((long)next(26) << 27) + next(27)) / (double)(1L << 53);
- }
-
- public float nextFloat()
- {
- return next(24) / ((float)(1 << 24));
- }
-
- public synchronized double nextGaussian()
- {
- if (haveNextNextGaussian)
- {
- haveNextNextGaussian = false;
- return nextNextGaussian;
- }
- else
- {
- double v1, v2, s;
- do
- {
- v1 = 2 * nextDouble() - 1; // between -1.0 and 1.0
- v2 = 2 * nextDouble() - 1; // between -1.0 and 1.0
- s = v1 * v1 + v2 * v2;
- } while (s >= 1);
- double norm = Math.sqrt(-2 * Math.log(s)/s);
- nextNextGaussian = v2 * norm;
- haveNextNextGaussian = true;
- return v1 * norm;
- }
- }
-
- public int nextInt()
- {
- return next(32);
- }
-
- // JDK1.2
- public int nextInt(int n)
- {
- if (n <= 0)
- throw new IllegalArgumentException("n must be positive");
-
- int bits, val;
- do
- {
- bits = next(31);
- val = bits % n;
- } while (bits - val + (n-1) < 0);
- return val;
- }
-
- public long nextLong()
- {
- return ((long)next(32) << 32) + next(32);
- }
-
- public synchronized void setSeed(long seed)
- {
- this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1);
- haveNextNextGaussian = false;
- }
-}
diff --git a/libjava/java/util/ResourceBundle.java b/libjava/java/util/ResourceBundle.java
deleted file mode 100644
index 639872bb838..00000000000
--- a/libjava/java/util/ResourceBundle.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-import java.io.InputStream;
-
-/**
- * @author Anthony Green <green@cygnus.com>
- * @date November 26, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
- * and "The Java Language Specification", ISBN 0-201-63451-1. */
-
-public abstract class ResourceBundle
-{
- protected ResourceBundle parent;
-
- // This is used to cache resource bundles.
- private static Hashtable resource_cache = new Hashtable ();
-
- public ResourceBundle ()
- {
- }
-
- public Locale getLocale()
- {
- // FIXME: Stub added for this missing method because it is needed for AWT.
- return null;
- }
-
- public final String getString (String key) throws MissingResourceException
- {
- return (String) getObject(key);
- }
-
- public final String[] getStringArray (String key)
- throws MissingResourceException
- {
- return (String[]) getObject(key);
- }
-
- public final Object getObject(String key) throws MissingResourceException
- {
- Object result;
-
- try
- {
- return handleGetObject (key);
- }
- catch (MissingResourceException ex)
- {
- if (parent != null)
- return parent.getObject(key);
- else
- throw ex;
- }
- }
-
- public static final ResourceBundle getBundle(String baseName)
- throws MissingResourceException
- {
- return getBundle(baseName, Locale.getDefault());
- }
-
- // Start searching with the name bundleName. Continue searching by
- // stripping off the '_' delimited tails until the search name is
- // the same as stopHere.
- private static final ResourceBundle trySomeGetBundle (String bundleName,
- String stopHere)
- {
- Class rbc;
- ResourceBundle needs_parent = null, r, result = null;
-
- while (true)
- {
- try
- {
- rbc = Class.forName(bundleName);
- r = null;
- try
- {
- r = (ResourceBundle) rbc.newInstance();
- }
- catch (IllegalAccessException ex)
- {
- // Fall through
- }
- catch (InstantiationException ex)
- {
- // Fall through
- }
- if (r != null)
- {
- if (result == null)
- result = r;
- if (needs_parent != null)
- {
- // We've been through the loop one or more times
- // already. Set the parent and keep going.
- needs_parent.setParent(r);
- }
- needs_parent = r;
- }
- }
- catch (ClassNotFoundException ex)
- {
- // Fall through.
- }
-
- // Look for a properties file.
- InputStream i =
- ClassLoader.getSystemResourceAsStream (bundleName.replace ('.', '/')
- + ".properties");
- if (i != null)
- {
- try
- {
- return new PropertyResourceBundle (i);
- }
- catch (java.io.IOException e)
- {
- // The docs don't appear to define what happens in
- // this case, but it seems like continuing the
- // search is a reasonable thing to do.
- }
- }
-
- if (bundleName.equals(stopHere))
- return result;
- else
- {
- int last = bundleName.lastIndexOf('_');
-
- // No more underscores?
- if (last == -1)
- return result;
-
- // Loop around, testing this new shorter name.
- bundleName = bundleName.substring(0, last);
- }
- }
- }
-
- // Search for bundles, but stop at baseName_language (if required).
- // This is synchronized so that the cache works correctly.
- private static final synchronized ResourceBundle
- partialGetBundle (String baseName, Locale locale, boolean langStop)
- {
- ResourceBundle rb;
-
- // Explicitly invoke locale.toString() to force a
- // NullPointerException when required.
- String bundleName = baseName + "_" + locale.toString();
-
- // Check the cache.
- Object obj = resource_cache.get(bundleName);
- if (obj != null)
- return (ResourceBundle) obj;
-
- String stopHere = (baseName
- + (langStop ? ("_" + locale.getLanguage()) : ""));
-
-
- rb = trySomeGetBundle(bundleName, stopHere);
- if (rb != null)
- resource_cache.put(bundleName, rb);
-
- return rb;
- }
-
- public static final ResourceBundle getBundle (String baseName,
- Locale locale)
- throws MissingResourceException
- {
- ResourceBundle rb;
- Class rbc;
-
- if (baseName == null)
- throw new NullPointerException ();
-
- rb = partialGetBundle(baseName, locale, false);
- if (rb != null)
- return rb;
-
- // Finally, try the default locale.
- if (! locale.equals(Locale.getDefault()))
- {
- rb = partialGetBundle(baseName, Locale.getDefault(), true);
- if (rb != null)
- return rb;
- }
-
- throw new MissingResourceException("can't load bundle",
- baseName,
- "bundle");
- }
-
- protected void setParent(ResourceBundle parent)
- {
- this.parent = parent;
- }
-
- protected abstract Object handleGetObject(String key)
- throws MissingResourceException;
-
- public abstract Enumeration getKeys();
-}
diff --git a/libjava/java/util/Set.java b/libjava/java/util/Set.java
deleted file mode 100644
index f1f836a0e8a..00000000000
--- a/libjava/java/util/Set.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Set.java -- A collection that prohibits duplicates
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Doc comments for everything.
-
-package java.util;
-
-public interface Set extends Collection {
- boolean add(Object o);
- boolean addAll(Collection c);
- void clear();
- boolean contains(Object o);
- boolean containsAll(Collection c);
- boolean equals(Object o);
- int hashCode();
- boolean isEmpty();
- Iterator iterator();
- boolean remove(Object o);
- boolean removeAll(Collection c);
- boolean retainAll(Collection c);
- int size();
- Object[] toArray();
-}
diff --git a/libjava/java/util/SimpleTimeZone.java b/libjava/java/util/SimpleTimeZone.java
deleted file mode 100644
index 64f9c505a50..00000000000
--- a/libjava/java/util/SimpleTimeZone.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3.
- * Status: Does not know how to figure out if daylight savings time
- * is in effect; hence only correct for zones without DST.
- * No known spec for hashCode.
- */
-
-public class SimpleTimeZone extends TimeZone
-{
- // The fields are as specified in Sun's "Serialized Form"
- // in the JDK 1.2 beta 4 API specification.
-
- int dstSavings = 60 * 60 * 1000;
-
- int rawOffset;
-
- // int serialVersionOnStream;
-
- int startDay;
- int startDayOfWeek;
- int startMode; /// Seems to be JDK 1.2 only.
-
- int startMonth;
-
- int startTime;
-
- int startYear;
-
- int endDay;
-
- int endDayOfWeek;
-
- int endMode; // Seems to be JDK 1.2 only.
-
- int endMonth;
-
- int endTime;
-
- // byte[] monthLength;
-
- boolean useDaylight;
-
- public SimpleTimeZone (int rawOffset, String ID)
- {
- setID(ID);
- this.rawOffset = rawOffset;
- }
-
- public SimpleTimeZone (int rawOffset, String ID,
- int startMonth, int startDay,
- int startDayOfWeek, int startTime,
- int endMonth, int endDay,
- int endDayOfWeek, int endTime)
- {
- this(rawOffset, ID);
- setStartRule (startMonth, startDay, startDayOfWeek, startTime);
- setEndRule (endMonth, endDay, endDayOfWeek, endTime);
- }
-
- public int getRawOffset() { return rawOffset; }
- public void setRawOffset (int offsetMillis) { rawOffset = offsetMillis; }
-
- public int getOffset (int era, int year, int month, int day,
- int dayOfWeek, int millis)
- {
- int offset = getRawOffset();
- if (useDaylight)
- {
- if (startYear != 0
- && (year < startYear || era == GregorianCalendar.BC))
- return offset;
- boolean midYearSummer = startMonth < endMonth;
- if (midYearSummer ? (month < startMonth || month > endMonth)
- : (month < startMonth && month > endMonth))
- return offset; // Definitely not DST.
- if (midYearSummer ? (month > startMonth && month < endMonth)
- : (month > startMonth || month < endMonth))
- return offset + dstSavings; // Definitely DST.
- // Now it gets more complicated. Bail for now.
- throw new Error("not implemented - SimpleTimeZone.getOffset");
- }
- return offset;
- }
-
- public boolean useDaylightTime() { return useDaylight; }
-
- public boolean inDaylightTime(Date date)
- {
- if (! useDaylight)
- return false;
- throw new Error("not implemented - SimpleTimeZone.inDaylightTime");
- }
-
- public int getDSTSavings () { return dstSavings; }
-
- public void setDSTSavings (int millisSavedDuringDST)
- { dstSavings = millisSavedDuringDST; }
-
- public void setStartRule (int month, int dayOfWeekInMonth,
- int dayOfWeek, int time)
- {
- this.startMonth = month;
- this.startDay = dayOfWeekInMonth;
- this.startDayOfWeek = dayOfWeek;
- this.startTime = time;
- this.useDaylight = true;
- }
-
- public void setEndRule (int month, int dayOfWeekInMonth,
- int dayOfWeek, int time)
- {
- this.endMonth = month;
- this.endDay = dayOfWeekInMonth;
- this.endDayOfWeek = dayOfWeek;
- this.endTime = time;
- this.useDaylight = true;
- }
-
- public void setStartYear (int year)
- {
- this.startYear = startYear;
- }
-
- public boolean hasSameRules (TimeZone other)
- {
- if (this == other)
- return true;
- if (! (other instanceof SimpleTimeZone))
- return false;
- SimpleTimeZone o = (SimpleTimeZone) other;
- if (rawOffset != o.rawOffset)
- return false;
- if (useDaylight != o.useDaylight)
- return false;
- if (! useDaylight)
- return true;
- return startDay == o.startDay
- && startDayOfWeek == o.startDayOfWeek
- && startMonth == o.startMonth
- && startTime == o.startTime
- && endDay == o.endDay
- && endDayOfWeek == o.endDayOfWeek
- && endMonth == o.endMonth
- && endTime == o.endTime
- && startYear == o.startYear
- && startMode == o.startMode
- && endMode == o.endMode;
- }
-
- public boolean equals (Object obj)
- {
- if (! (obj instanceof SimpleTimeZone))
- return false;
- SimpleTimeZone other = (SimpleTimeZone) obj;
- return getID() == other.getID() && hasSameRules(other);
- }
-
- public Object clone ()
- {
- // We know the superclass just call's Object's generic cloner.
- return super.clone ();
- }
-
- public String toString ()
- {
- // The docs don't say much about how we might implement this.
- // We choose a debugging implementation.
- return ("dstSavings " + dstSavings
- + "; rawOffset " + rawOffset
- + "; startDay " + startDay
- + "; startDayOfWeek " + startDayOfWeek
- + "; startMode " + startMode
- + "; startMonth " + startMonth
- + "; startTime " + startTime
- + "; startYear " + startYear
- + "; endDay " + endDay
- + "; endDayOfWeek " + endDayOfWeek
- + "; endMode " + endMode
- + "; endMonth " + endMonth
- + "; endTime " + endTime
- + "; useDaylight " + useDaylight);
- }
-
- public int hashCode ()
- {
- // FIXME - this does not folow any spec (since none is public)!
- int hash = rawOffset;
- if (useDaylight)
- hash += dstSavings + startYear + startMode + endMode
- + startDay + startDayOfWeek + startMonth + startTime
- + endDay + endDayOfWeek + endMonth + endTime;
- return hash;
- }
-}
diff --git a/libjava/java/util/SortedMap.java b/libjava/java/util/SortedMap.java
deleted file mode 100644
index 594f188ae56..00000000000
--- a/libjava/java/util/SortedMap.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* SortedMap.java -- A map that makes guarantees about the order of its keys
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Doc comments for everything.
-
-package java.util;
-
-public interface SortedMap extends Map {
- Comparator comparator();
- Object firstKey();
- SortedMap headMap(Object toKey);
- Object lastKey();
- SortedMap subMap(Object fromKey, Object toKey);
- SortedMap tailMap(Object fromKey);
-}
diff --git a/libjava/java/util/SortedSet.java b/libjava/java/util/SortedSet.java
deleted file mode 100644
index ede65032b52..00000000000
--- a/libjava/java/util/SortedSet.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SortedSet.java -- A set that makes guarantees about the order of its
- elements
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-
-// TO DO:
-// ~ Doc comments for everything.
-
-package java.util;
-
-public interface SortedSet extends Set {
- Comparator comparator();
- Object first();
- SortedSet headSet(Object toElement);
- Object last();
- SortedSet subSet(Object fromElement, Object toElement);
- SortedSet tailSet(Object fromElement);
-}
diff --git a/libjava/java/util/Stack.java b/libjava/java/util/Stack.java
deleted file mode 100644
index 963513ea4e0..00000000000
--- a/libjava/java/util/Stack.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 20, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public class Stack extends Vector
-{
- // Could use Vector methods internally for the following methods
- // but have used Vector fields directly for efficiency (i.e. this
- // often reduces out duplicate bounds checking).
-
- public boolean empty()
- {
- return elementCount == 0;
- }
-
- public synchronized Object peek()
- {
- if (elementCount == 0)
- throw new EmptyStackException();
-
- return elementData[elementCount - 1];
- }
-
- public synchronized Object pop()
- {
- if (elementCount == 0)
- throw new EmptyStackException();
-
- Object obj = elementData[--elementCount];
-
- // Set topmost element to null to assist the gc in cleanup
- elementData[elementCount] = null;
- return obj;
- }
-
- public Object push(Object obj)
- {
- // When growing the Stack, use the Vector routines in case more
- // memory is needed.
- // Note: spec indicates that this method *always* returns obj passed in!
-
- addElement(obj);
- return obj;
- }
-
- public synchronized int search(Object obj)
- {
- // Return the position of obj on the stack as measured from the top;
- // i.e. the top element is 1, the next element down is 2, etc.
- // If obj is not on the stack, return -1
-
- for (int i = elementCount-1; i >=0; --i)
- if (elementData[i].equals(obj))
- return elementCount - i;
-
- return -1;
- }
-
- private static final long serialVersionUID = 1224463164541339165L;
-}
diff --git a/libjava/java/util/StringTokenizer.java b/libjava/java/util/StringTokenizer.java
deleted file mode 100644
index 1686a0399e8..00000000000
--- a/libjava/java/util/StringTokenizer.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 24, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-public class StringTokenizer implements Enumeration
-{
- /* String to be parsed */
- private String inputString;
-
- /* String to be parsed put into a char array for efficient access */
- private char[] chArray;
-
- /* Set of delimiter characters for separating tokens */
- private String delimiters;
-
- /* Whether delimiters in this instance are treated as tokens themselves */
- private boolean returnDelimiters;
-
- /* Index into the input string to start parsing for the next token */
- private int inputStringIndex;
-
- public StringTokenizer(String str)
- {
- this(str, " \t\n\r", false);
- }
-
- public StringTokenizer(String str, String delims)
- {
- this(str, delims, false);
- }
-
- public StringTokenizer(String str, String delims, boolean retDelim)
- {
- inputString = str;
- delimiters = delims;
- returnDelimiters = retDelim;
- inputStringIndex = 0;
-
- // Work on a copy of the remaining string in a char array
- // to gain efficiency of using primitives
- chArray = new char[inputString.length()];
- inputString.getChars(0, inputString.length(), chArray, 0);
- }
-
- public int countTokens()
- {
- int count = 0;
- int delimiterCount = 0;
- boolean tokenFound = false; // Set when a non-delimiter is found
- int offset = inputStringIndex;
-
- // Note for efficiency, we count up the delimiters rather than check
- // returnDelimiters every time we encounter one. That way, we can
- // just do the conditional once at the end of the method
- while (offset < chArray.length)
- {
- if (isDelimiter(chArray[offset++]))
- {
- if (tokenFound)
- {
- // Got to the end of a token
- count++;
- tokenFound = false;
- }
-
- delimiterCount++; // Increment for this delimiter
- }
- else
- {
- tokenFound = true;
-
- // Get to the end of the token
- while (offset < chArray.length && !isDelimiter(chArray[offset]))
- offset++;
- }
- }
-
- // Make sure to count the last token
- if (tokenFound)
- count++;
-
- // if counting delmiters add them into the token count
- return returnDelimiters ? count + delimiterCount : count;
- }
-
- public boolean hasMoreElements()
- {
- return hasMoreTokens();
- }
-
- public boolean hasMoreTokens()
- {
- int offset = inputStringIndex;
-
- while (offset < chArray.length)
- if (!isDelimiter(chArray[offset++]) || returnDelimiters)
- {
- // update the current position with the start of the next token
- inputStringIndex = --offset;
-
- return true;
- }
-
- return false;
- }
-
- public Object nextElement()
- {
- return nextToken();
- }
-
- public String nextToken()
- {
- int offset = inputStringIndex;
- int startSubstr = -1;
-
- // Make sure we have more chars left to parse
- // and then find the start of the next token
- while (offset < chArray.length && startSubstr < 0)
- {
- // Find the start of the token; skipping initial delimiters
- if (!isDelimiter(chArray[offset++]))
- startSubstr = offset - 1;
- else if (returnDelimiters)
- {
- // The single char delimiter is treated as a token
- inputStringIndex = offset; // update the current position
-
- return inputString.substring(offset - 1, inputStringIndex);
- }
- }
-
- // Now look for the end of the token
- while (offset < chArray.length)
- {
- if (isDelimiter(chArray[offset++]))
- {
- // Found the end of token
- inputStringIndex = offset - 1; // update the current position
-
- return inputString.substring(startSubstr, inputStringIndex);
- }
- }
-
- // Got to the end of the string without finding the start of a token
- if (startSubstr < 0)
- throw new NoSuchElementException();
-
- // Got to the end of the string before a delimiter
- inputStringIndex = offset; // update the current position
-
- return inputString.substring(startSubstr, inputStringIndex);
- }
-
- public String nextToken(String delims)
- {
- // First replace with new set of delimiters
- delimiters = delims;
-
- return nextToken();
- }
-
- // This private method could be inlined but the other methods are
- // more readable this way, so we'll take the hit on efficiency.
- private boolean isDelimiter(char ch)
- {
- return delimiters.indexOf(ch, 0) >= 0;
- }
-}
diff --git a/libjava/java/util/TimeZone.java b/libjava/java/util/TimeZone.java
deleted file mode 100644
index 0145d72d11f..00000000000
--- a/libjava/java/util/TimeZone.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 24, 1998.
- */
-
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3.
- * Status: getAvailableIDs, getDefault, getTimeZone only know about GMT.
- */
-
-public abstract class TimeZone implements java.io.Serializable, Cloneable
-{
- public static final int SHORT = 0;
- public static final int LONG = 1;
-
- // The fields are as specified in Sun's "Serialized Form"
- // in the JDK 1.2 beta 4 API specification.
- String ID;
-
- static final TimeZone zoneGMT = new SimpleTimeZone(0, "GMT");
-
- private static TimeZone zoneDefault;
-
- private static final long serialVersionUID = 3581463369166924961L;
-
- public TimeZone ()
- {
- }
-
- public abstract int getOffset (int era, int year, int month,
- int day, int dayOfWeek, int milliseconds);
-
- public abstract void setRawOffset (int offsetMillis);
-
- public abstract int getRawOffset ();
-
- public String getID () { return ID; }
-
- public void setID (String ID) { this.ID = ID; }
-
- public final String getDisplayName()
- {
- return ID; // FIXME
- }
-
- // public final String getDisplayName (Local locale) { ... } FIXME
-
- public final String getDisplayName (boolean daylight, int style)
- {
- return ID; // FIXME
- }
-
- /*
- public final String getDisplayName (boolean daylight, int style, Locale locale)
- {
- return ID; // FIXME
- }
- */
-
- public abstract boolean useDaylightTime();
-
- public abstract boolean inDaylightTime (Date date);
-
- public static synchronized TimeZone getTimeZone (String ID)
- {
- int i;
- for (i = 0; i < tzIDs.length; ++i)
- {
- if (ID.equals(tzIDs[i]))
- break;
- }
- if (i == tzIDs.length)
- return null;
-
- if (timeZones[i] == null)
- {
- if (ID.equals("GMT"))
- timeZones[i] = zoneGMT;
- else
- timeZones[i] = new SimpleTimeZone (rawOffsets[i], tzIDs[i]);
- }
-
- return timeZones[i];
- }
-
- public static String[] getAvailableIDs()
- {
- return (String[]) tzIDs.clone();
- }
-
- public static String[] getAvailableIDs(int rawOffset)
- {
- int first, last;
-
- for (first = 0; first < rawOffsets.length; ++first)
- {
- if (rawOffset == rawOffsets[first])
- break;
- }
- if (first == rawOffsets.length)
- return new String[0];
- for (last = first + 1; last < rawOffsets.length; ++last)
- {
- if (rawOffset != rawOffsets[last])
- break;
- }
-
- String[] r = new String[last - first];
- for (int i = first; i < last; ++i)
- {
- r[i - first] = tzIDs[i];
- }
-
- return r;
- }
-
- private static synchronized TimeZone setDefault()
- {
- if (zoneDefault == null)
- {
- try
- {
- String id = System.getProperty("user.timezone");
- if (id != null && ! id.equals("GMT"))
- zoneDefault = getTimeZone(id);
- }
- catch (Exception ex)
- {
- }
- if (zoneDefault == null)
- zoneDefault = zoneGMT;
- }
- return zoneDefault;
- }
-
- public static TimeZone getDefault()
- {
- return zoneDefault == null ? setDefault() : zoneDefault;
- }
-
- public static void setDefault (TimeZone zone) { zoneDefault = zone; }
-
- public boolean hasSameRules (TimeZone other)
- {
- return this == other;
- }
-
- public Object clone ()
- {
- // Just use Object's generic cloner.
- return super.clone ();
- }
-
- // Names of timezones. This array is kept in parallel with
- // rawOffsets. This list comes from the JCL 1.1 book.
- private static final String[] tzIDs =
- {
- "MIT", "HST", "AST", "PST", "PNT",
- "MST", "CST", "EST", "IET", "PRT",
- "CNT", "AGT", "BET", "CAT", "GMT",
- "ECT", "EET", "ART", "EAT", "MET",
- "NET", "PLT", "IST", "BST", "VST",
- "CTT", "JST", "ACT", "AET", "SST",
- "NST"
- };
- // This holds raw offsets in milliseconds.
- // 3600000 == 60 * 60 * 1000
- private static final int[] rawOffsets =
- {
- -11 * 3600000, -10 * 3600000, -9 * 3600000, -8 * 3600000, -7 * 3600000,
- -7 * 3600000, -6 * 3600000, -5 * 3600000, -5 * 3600000, -4 * 3600000,
- -35 * 360000, -3 * 3600000, -3 * 3600000, -1 * 3600000, 0,
- 1 * 3600000, 1 * 3600000, 2 * 3600000, 3 * 3600000, 35 * 360000,
- 4 * 3600000, 5 * 3600000, 55 * 360000, 6 * 3600000, 7 * 3600000,
- 8 * 3600000, 9 * 3600000, 95 * 360000, 10 * 3600000, 11 * 3600000,
- 12 * 3600000
- };
- // This caches all the corresponding zone objects.
- private static TimeZone[] timeZones = new TimeZone[tzIDs.length];
-}
diff --git a/libjava/java/util/Timer.java b/libjava/java/util/Timer.java
deleted file mode 100644
index 8c3e993833a..00000000000
--- a/libjava/java/util/Timer.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/* Timer.java -- Timer that runs TimerTasks at a later time.
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util;
-
-/**
- * Timer that can run TimerTasks at a later time.
- * TimerTasks can be scheduled for one time execution at some time in the
- * future. They can be scheduled to be rescheduled at a time period after the
- * task was last executed. Or they can be scheduled to be executed repeatedly
- * at a fixed rate.
- * <p>
- * The normal scheduling will result in a more or less even delay in time
- * between successive executions, but the executions could drift in time if
- * the task (or other tasks) takes a long time to execute. Fixed delay
- * scheduling guarantees more or less that the task will be executed at a
- * specific time, but if there is ever a delay in execution then the period
- * between successive executions will be shorter. The first method of
- * repeated scheduling is prefered for repeated tasks in response to user
- * interaction, the second method of repeated scheduling is prefered for tasks
- * that act like alarms.
- * <p>
- * The Timer keeps a binary heap as a task priority queue which means that
- * scheduling and serving of a task in a queue of n tasks costs O(log n).
- *
- * @see TimerTask
- * @since 1.3
- * @author Mark Wielaard (mark@klomp.org)
- */
-public class Timer {
-
- /**
- * Priority Task Queue.
- * TimerTasks are kept in a binary heap.
- * The scheduler calls sleep() on the queue when it has nothing to do or
- * has to wait. A sleeping scheduler can be notified by calling interrupt()
- * which is automatically called by the enqueue(), cancel() and
- * timerFinalized() methods.
- */
- private static final class TaskQueue {
-
- /** Default size of this queue */
- private final int DEFAULT_SIZE = 32;
-
- /** Wheter to return null when there is nothing in the queue */
- private boolean nullOnEmpty;
-
- /**
- * The heap containing all the scheduled TimerTasks
- * sorted by the TimerTask.scheduled field.
- * Null when the stop() method has been called.
- */
- private TimerTask heap[];
-
- /**
- * The actual number of elements in the heap
- * Can be less then heap.length.
- * Note that heap[0] is used as a sentinel.
- */
- private int elements;
-
- /**
- * Creates a TaskQueue of default size without any elements in it.
- */
- public TaskQueue() {
- heap = new TimerTask[DEFAULT_SIZE];
- elements = 0;
- nullOnEmpty = false;
- }
-
- /**
- * Adds a TimerTask at the end of the heap.
- * Grows the heap if necessary by doubling the heap in size.
- */
- private void add(TimerTask task) {
- elements++;
- if (elements == heap.length) {
- TimerTask new_heap[] = new TimerTask[heap.length*2];
- System.arraycopy(heap, 0, new_heap, 0, heap.length);
- heap = new_heap;
- }
- heap[elements] = task;
- }
-
- /**
- * Removes the last element from the heap.
- * Shrinks the heap in half if
- * elements+DEFAULT_SIZE/2 <= heap.length/4.
- */
- private void remove() {
- // clear the entry first
- heap[elements] = null;
- elements--;
- if (elements+DEFAULT_SIZE/2 <= (heap.length/4)) {
- TimerTask new_heap[] = new TimerTask[heap.length/2];
- System.arraycopy(heap, 0, new_heap, 0, elements+1);
- }
- }
-
- /**
- * Adds a task to the queue and puts it at the correct place
- * in the heap.
- */
- public synchronized void enqueue(TimerTask task) {
-
- // Check if it is legal to add another element
- if (heap == null) {
- throw new IllegalStateException
- ("cannot enqueue when stop() has been called on queue");
- }
-
- heap[0] = task; // sentinel
- add(task); // put the new task at the end
- // Now push the task up in the heap until it has reached its place
- int child = elements;
- int parent = child / 2;
- while (heap[parent].scheduled > task.scheduled) {
- heap[child] = heap[parent];
- child = parent;
- parent = child / 2;
- }
- // This is the correct place for the new task
- heap[child] = task;
- heap[0] = null; // clear sentinel
- // Maybe sched() is waiting for a new element
- this.notify();
- }
-
- /**
- * Returns the top element of the queue.
- * Can return null when no task is in the queue.
- */
- private TimerTask top() {
- if (elements == 0) {
- return null;
- } else {
- return heap[1];
- }
- }
-
- /**
- * Returns the top task in the Queue.
- * Removes the element from the heap and reorders the heap first.
- * Can return null when there is nothing in the queue.
- */
- public synchronized TimerTask serve() {
- // The task to return
- TimerTask task = null;
-
- while (task == null) {
- // Get the next task
- task = top();
-
- // return null when asked to stop
- // or if asked to return null when the queue is empty
- if ((heap == null) || (task == null && nullOnEmpty)) {
- return null;
- }
-
- // Do we have a task?
- if (task != null) {
- // The time to wait until the task should be served
- long time = task.scheduled-System.currentTimeMillis();
- if (time > 0) {
- // This task should not yet be served
- // So wait until this task is ready
- // or something else happens to the queue
- task = null; // set to null to make sure we call top()
- try {
- this.wait(time);
- } catch (InterruptedException _) {}
- }
- } else {
- // wait until a task is added
- // or something else happens to the queue
- try {
- this.wait();
- } catch (InterruptedException _) {}
- }
- }
-
- // reconstruct the heap
- TimerTask lastTask = heap[elements];
- remove();
-
- // drop lastTask at the beginning and move it down the heap
- int parent = 1;
- int child = 2;
- heap[1] = lastTask;
- while(child <= elements) {
- if (child < elements) {
- if (heap[child].scheduled > heap[child+1].scheduled) {
- child++;
- }
- }
-
- if (lastTask.scheduled <= heap[child].scheduled)
- break; // found the correct place (the parent) - done
-
- heap[parent] = heap[child];
- parent = child;
- child = parent*2;
- }
-
- // this is the correct new place for the lastTask
- heap[parent] = lastTask;
-
- // return the task
- return task;
- }
-
-
- /**
- * When nullOnEmpty is true the serve() method will return null when
- * there are no tasks in the queue, otherwise it will wait until
- * a new element is added to the queue. It is used to indicate to
- * the scheduler that no new tasks will ever be added to the queue.
- */
- public synchronized void setNullOnEmpty(boolean nullOnEmpty) {
- this.nullOnEmpty = nullOnEmpty;
- this.notify();
- }
-
- /**
- * When this method is called the current and all future calls to
- * serve() will return null. It is used to indicate to the Scheduler
- * that it should stop executing since no more tasks will come.
- */
- public synchronized void stop() {
- this.heap = null;
- this.notify();
- }
-
- } // TaskQueue
-
- /**
- * The scheduler that executes all the tasks on a particular TaskQueue,
- * reschedules any repeating tasks and that waits when no task has to be
- * executed immediatly. Stops running when canceled or when the parent
- * Timer has been finalized and no more tasks have to be executed.
- */
- private static final class Scheduler implements Runnable {
-
- // The priority queue containing all the TimerTasks.
- private TaskQueue queue;
-
- /**
- * Creates a new Scheduler that will schedule the tasks on the
- * given TaskQueue.
- */
- public Scheduler(TaskQueue queue) {
- this.queue = queue;
- }
-
- public void run() {
- TimerTask task;
- while((task = queue.serve()) != null) {
- // If this task has not been canceled
- if (task.scheduled >= 0) {
-
- // Mark execution time
- task.lastExecutionTime = task.scheduled;
-
- // Repeatable task?
- if (task.period < 0) {
- // Last time this task is executed
- task.scheduled = -1;
- }
-
- // Run the task
- try {
- task.run();
- } catch (Throwable t) {/* ignore all errors */}
- }
-
- // Calculate next time and possibly re-enqueue
- if (task.scheduled >= 0) {
- if (task.fixed) {
- task.scheduled += task.period;
- } else {
- task.scheduled = task.period +
- System.currentTimeMillis();
- }
- queue.enqueue(task);
- }
- }
- }
- } // Scheduler
-
- // Number of Timers created.
- // Used for creating nice Thread names.
- private static int nr = 0;
-
- // The queue that all the tasks are put in.
- // Given to the scheduler
- private TaskQueue queue;
-
- // The Scheduler that does all the real work
- private Scheduler scheduler;
-
- // Used to run the scheduler.
- // Also used to checked if the Thread is still running by calling
- // thread.isAlive(). Sometimes a Thread is suddenly killed by the system
- // (if it belonged to an Applet).
- private Thread thread;
-
- // When cancelled we don't accept any more TimerTasks.
- private boolean canceled;
-
- /**
- * Creates a new Timer with a non deamon Thread as Scheduler, with normal
- * priority and a default name.
- */
- public Timer() {
- this(false);
- }
-
- /**
- * Creates a new Timer with a deamon Thread as scheduler if deamon is true,
- * with normal priority and a default name.
- */
- public Timer(boolean daemon) {
- this(daemon, Thread.NORM_PRIORITY);
- }
-
- /**
- * Creates a new Timer with a deamon Thread as scheduler if deamon is true,
- * with the priority given and a default name.
- */
- private Timer(boolean daemon, int priority) {
- this(daemon, priority, "Timer-" + (++nr));
- }
-
- /**
- * Creates a new Timer with a deamon Thread as scheduler if deamon is true,
- * with the priority and name given.E
- */
- private Timer(boolean daemon, int priority, String name) {
- canceled = false;
- queue = new TaskQueue();
- scheduler = new Scheduler(queue);
- thread = new Thread(scheduler, name);
- thread.setDaemon(daemon);
- thread.setPriority(priority);
- thread.start();
- }
-
- /**
- * Cancels the execution of the scheduler. If a task is executing it will
- * normally finish execution, but no other tasks will be executed and no
- * more tasks can be scheduled.
- */
- public void cancel() {
- canceled = true;
- queue.stop();
- }
-
- /**
- * Schedules the task at Time time, repeating every period
- * milliseconds if period is positive and at a fixed rate if fixed is true.
- *
- * @exception IllegalArgumentException if time is negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- private void schedule(TimerTask task,
- long time,
- long period,
- boolean fixed) {
-
- if (time < 0)
- throw new IllegalArgumentException("negative time");
-
- if (task.scheduled == 0 && task.lastExecutionTime == -1) {
- task.scheduled = time;
- task.period = period;
- task.fixed = fixed;
- } else {
- throw new IllegalStateException
- ("task was already scheduled or canceled");
- }
-
- if (!this.canceled && this.thread != null) {
- queue.enqueue(task);
- } else {
- throw new IllegalStateException
- ("timer was canceled or scheduler thread has died");
- }
- }
-
- private static void positiveDelay(long delay) {
- if (delay < 0) {
- throw new IllegalArgumentException("delay is negative");
- }
- }
-
- private static void positivePeriod(long period) {
- if (period < 0) {
- throw new IllegalArgumentException("period is negative");
- }
- }
-
- /**
- * Schedules the task at the specified data for one time execution.
- *
- * @exception IllegalArgumentException if date.getTime() is negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void schedule(TimerTask task, Date date) {
- long time = date.getTime();
- schedule(task, time, -1, false);
- }
-
- /**
- * Schedules the task at the specified date and reschedules the task every
- * period milliseconds after the last execution of the task finishes until
- * this timer or the task is canceled.
- *
- * @exception IllegalArgumentException if period or date.getTime() is
- * negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void schedule(TimerTask task, Date date, long period) {
- positivePeriod(period);
- long time = date.getTime();
- schedule(task, time, period, false);
- }
-
- /**
- * Schedules the task after the specified delay milliseconds for one time
- * execution.
- *
- * @exception IllegalArgumentException if delay or
- * System.currentTimeMillis + delay is negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void schedule(TimerTask task, long delay) {
- positiveDelay(delay);
- long time = System.currentTimeMillis() + delay;
- schedule(task, time, -1, false);
- }
-
- /**
- * Schedules the task after the delay milliseconds and reschedules the
- * task every period milliseconds after the last execution of the task
- * finishes until this timer or the task is canceled.
- *
- * @exception IllegalArgumentException if delay or period is negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void schedule(TimerTask task, long delay, long period) {
- positiveDelay(delay);
- positivePeriod(period);
- long time = System.currentTimeMillis() + delay;
- schedule(task, time, period, false);
- }
-
- /**
- * Schedules the task at the specified date and reschedules the task at a
- * fixed rate every period milliseconds until this timer or the task is
- * canceled.
- *
- * @exception IllegalArgumentException if period or date.getTime() is
- * negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void scheduleAtFixedRate(TimerTask task, Date date, long period) {
- positivePeriod(period);
- long time = date.getTime();
- schedule(task, time, period, true);
- }
-
- /**
- * Schedules the task after the delay milliseconds and reschedules the task
- * at a fixed rate every period milliseconds until this timer or the task
- * is canceled.
- *
- * @exception IllegalArgumentException if delay or
- * System.currentTimeMillis + delay is negative
- * @exception IllegalStateException if the task was already scheduled or
- * canceled or this Timer is canceled or the scheduler thread has died
- */
- public void scheduleAtFixedRate(TimerTask task, long delay, long period) {
- positiveDelay(delay);
- positivePeriod(period);
- long time = System.currentTimeMillis() + delay;
- schedule(task, time, period, true);
- }
-
- /**
- * Tells the scheduler that the Timer task died
- * so there will be no more new tasks scheduled.
- */
- protected void finalize() {
- queue.setNullOnEmpty(true);
- }
-}
diff --git a/libjava/java/util/TimerTask.java b/libjava/java/util/TimerTask.java
deleted file mode 100644
index 29ffe342fc3..00000000000
--- a/libjava/java/util/TimerTask.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/* TimerTask.java -- Task that can be run at a later time if given to a Timer.
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util;
-
-/**
- * Task that can be run at a later time if given to a Timer.
- * The TimerTask must implement a run method that will be called by the
- * Timer when the task is scheduled for execution. The task can check when
- * it should have been scheduled and cancel itself when no longer needed.
- * <p>
- * Example:
- * <code>
- * Timer timer = new Timer();
- * TimerTask task = new TimerTask() {
- * public void run() {
- * if (this.scheduledExecutionTime() < System.currentTimeMillis() + 500)
- * // Do something
- * else
- * // Complain: We are more then half a second late!
- * if (someStopCondition)
- * this.cancel(); // This was our last execution
- * };
- * timer.scheduleAtFixedRate(task, 1000, 1000); // schedule every second
- * </code>
- * <p>
- * Note that a TimerTask object is a one shot object and can only given once
- * to a Timer. (The Timer will use the TimerTask object for bookkeeping,
- * in this implementation).
- * <p>
- * This class also implements <code>Runnable</code> to make it possible to
- * give a TimerTask directly as a target to a <code>Thread</code>.
- *
- * @see Timer
- * @since 1.3
- * @author Mark Wielaard (mark@klomp.org)
- */
-public abstract class TimerTask implements Runnable {
-
- /**
- * If positive the next time this task should be run.
- * If negative this TimerTask is canceled or executed for the last time.
- */
- long scheduled;
-
- /**
- * If positive the last time this task was run.
- * If negative this TimerTask has not yet been scheduled.
- */
- long lastExecutionTime;
-
- /**
- * If positive the number of milliseconds between runs of this task.
- * If -1 this task doesn't have to be run more then once.
- */
- long period;
-
- /**
- * If true the next time this task should be run is relative to
- * the last scheduled time, otherwise it can drift in time.
- */
- boolean fixed;
-
- /**
- * Creates a TimerTask and marks it as not yet scheduled.
- */
- protected TimerTask() {
- this.scheduled = 0;
- this.lastExecutionTime = -1;
- }
-
- /**
- * Marks the task as canceled and prevents any further execution.
- * Returns true if the task was scheduled for any execution in the future
- * and this cancel operation prevents that execution from happening.
- * <p>
- * A task that has been canceled can never be scheduled again.
- * <p>
- * In this implementation the TimerTask it is possible that the Timer does
- * keep a reference to the TimerTask until the first time the TimerTask
- * is actually scheduled. But the reference will disappear immediatly when
- * cancel is called from within the TimerTask run method.
- */
- public boolean cancel() {
- boolean prevented_execution = (this.scheduled >= 0);
- this.scheduled = -1;
- return prevented_execution;
- }
-
- /**
- * Method that is called when this task is scheduled for execution.
- */
- public abstract void run();
-
- /**
- * Returns the last time this task was scheduled or (when called by the
- * task from the run method) the time the current execution of the task
- * was scheduled. When the task has not yet run the return value is
- * undefined.
- * <p>
- * Can be used (when the task is scheduled at fixed rate) to see the
- * difference between the requested schedule time and the actual time
- * that can be found with <code>System.currentTimeMillis()</code>.
- */
- public long scheduledExecutionTime() {
- return lastExecutionTime;
- }
-}
diff --git a/libjava/java/util/TooManyListenersException.java b/libjava/java/util/TooManyListenersException.java
deleted file mode 100644
index c171aa5fd44..00000000000
--- a/libjava/java/util/TooManyListenersException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date September 2, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct.
- */
-
-public class TooManyListenersException extends Exception
-{
- public TooManyListenersException()
- {
- super();
- }
-
- public TooManyListenersException(String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/util/Vector.java b/libjava/java/util/Vector.java
deleted file mode 100644
index 81178bf6255..00000000000
--- a/libjava/java/util/Vector.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util;
-
-import java.io.Serializable;
-
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date August 17, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * "The Java Language Specification", ISBN 0-201-63451-1
- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status: Believed complete and correct
- */
-
-final class VectorEnumeration implements Enumeration
-{
- private int enumIndex;
- private Vector enumVec;
-
- public VectorEnumeration(Vector vec)
- {
- enumVec = vec;
- enumIndex = 0;
- }
-
- public boolean hasMoreElements()
- {
- return enumIndex < enumVec.size();
- }
-
- public Object nextElement()
- {
- if (! (enumIndex < enumVec.size()))
- throw new NoSuchElementException();
-
- return enumVec.elementData[enumIndex++];
- }
-}
-
-// TODO12:
-// public class Vector extends AbstractList
-// implements List, Cloneable, Serializable
-
-public class Vector implements Cloneable, Serializable
-{
- /* The size of the increment to use when growing this vector.
- The default of 0 means to double the capacity when growing. */
- protected int capacityIncrement;
-
- /* The number of elements currently in elementData */
- protected int elementCount;
-
- /* The buffer in which elements of this vector are stored */
- protected Object[] elementData;
-
- private static final long serialVersionUID = -2767605614048989439L;
-
- public Vector()
- {
- this(10, 0);
- }
-
- public Vector(int initCap)
- {
- this(initCap, 0);
- }
-
- public Vector(int initCap, int capIncrement)
- {
- if (initCap < 0)
- throw new IllegalArgumentException ();
- elementData = new Object[initCap];
- capacityIncrement = capIncrement;
- elementCount = 0;
- }
-
- public final synchronized void addElement(Object obj)
- {
- // Make sure there's room for a new element
- if (elementCount == elementData.length)
- ensureCapacity(elementCount+1);
-
- elementData[elementCount++] = obj;
- }
-
- public final int capacity()
- {
- return elementData.length;
- }
-
- public synchronized Object clone()
- {
- // New vector needs to have same size, capacity and capacityIncrement
- Vector newVec = new Vector(elementData.length, capacityIncrement);
-
- System.arraycopy(elementData, 0, newVec.elementData, 0, elementCount);
- newVec.elementCount = elementCount;
- return newVec;
- }
-
- public final boolean contains(Object obj)
- {
- for (int i = 0; i < elementCount; i++)
- {
- if (obj == null
- ? elementData[i] == null
- : obj.equals(elementData[i]))
- return true;
- }
-
- return false;
- }
-
- public final synchronized void copyInto(Object[] objArray)
- {
- System.arraycopy(elementData, 0, objArray, 0, elementCount);
- }
-
- public final synchronized Object elementAt(int idx)
- {
- if (idx < 0 || idx >= size())
- throw new ArrayIndexOutOfBoundsException();
-
- return elementData[idx];
- }
-
- public final synchronized Enumeration elements()
- {
- return new VectorEnumeration(this);
- }
-
- public final synchronized void ensureCapacity(int minCap)
- {
- // Increasing the vector could make it much larger than minCap;
- // e.g. if minCap is just larger than the vector, size may double.
- // If someone cares about this possibility they should set capacityIncrement
- if (minCap > elementData.length)
- {
- // Increase the vector; double it if capacityIncrement is zero
- int newSize = elementData.length;
- newSize +=
- (capacityIncrement > 0) ? capacityIncrement : elementData.length;
-
- // Make sure newSize is at least minCap
- if (newSize < minCap)
- newSize = minCap;
-
- Object[] newArray = new Object[newSize];
- System.arraycopy(elementData, 0, newArray, 0, elementCount);
- elementData = newArray;
- }
- }
-
- public final synchronized Object firstElement()
- {
- if (elementCount == 0)
- throw new NoSuchElementException();
-
- return elementData[0];
- }
-
- public final int indexOf(Object obj)
- {
- return indexOf(obj, 0);
- }
-
- public final synchronized int indexOf(Object obj, int idx)
- {
- if (idx < 0)
- throw new IllegalArgumentException ();
- for (int i = idx; i < elementCount; i++)
- {
- if (obj == null
- ? elementData[i] == null
- : obj.equals(elementData[i]))
- return i;
- }
-
- return -1;
- }
-
- public final synchronized void insertElementAt(Object obj, int idx)
- {
- if (idx < 0 || idx > size())
- throw new ArrayIndexOutOfBoundsException();
- else if (idx == size()) // Spec says just use addElement()
- addElement(obj);
- else
- {
- // Make sure there's room for a new element
- if (elementCount == elementData.length)
- ensureCapacity(elementCount+1);
-
- // Shift the existing elements up and increment elementCount
- for (int i = elementCount++; i > idx; --i)
- elementData[i] = elementData[i-1];
-
- elementData[idx] = obj;
- }
- }
-
- public final boolean isEmpty()
- {
- return elementCount == 0;
- }
-
- public final synchronized Object lastElement()
- {
- if (elementCount == 0)
- throw new NoSuchElementException();
-
- return elementData[elementCount - 1];
- }
-
- public final int lastIndexOf(Object obj)
- {
- return lastIndexOf(obj, size()-1);
- }
-
- public final synchronized int lastIndexOf(Object obj, int idx)
- {
- if (idx < 0)
- throw new IllegalArgumentException ();
- for (int i = idx; i >= 0; --i)
- {
- if (obj == null
- ? elementData[i] == null
- : obj.equals(elementData[i]))
- return i;
- }
-
- return -1;
- }
-
- public final synchronized void removeAllElements()
- {
- // Remove elements now to assist the gc in early cleanup
- for (int i = elementCount-1; i >= 0; --i)
- elementData[i] = null;
- elementCount = 0;
- }
-
- public final synchronized boolean removeElement(Object obj)
- {
- for (int i = 0; i < elementCount; i++)
- {
- if (obj == null
- ? elementData[i] == null
- : obj.equals(elementData[i]))
- {
- int j;
-
- // Decrement count first to ensure we don't walk off end of array
- --elementCount;
-
- for (j = i; j < elementCount; j++)
- elementData[j] = elementData[j+1];
-
- // At this point, j was incrememented and points to old last element
- // Remove element now to assist the gc in early cleanup
- elementData[j] = null;
- return true;
- }
- }
-
- return false;
- }
-
- public final synchronized void removeElementAt(int idx)
- {
- int i;
-
- if (idx < 0 || idx >= size())
- throw new ArrayIndexOutOfBoundsException();
-
- // Decrement count first to ensure we don't walk off the end of the array
- --elementCount;
-
- for (i = idx; i < elementCount; i++)
- elementData[i] = elementData[i+1];
-
- // At this point, i was incrememented and now points to the old last element
- // Remove element now to assist the gc in early cleanup
- elementData[i] = null;
- }
-
- public final synchronized void setElementAt(Object obj, int idx)
- {
- if (idx < 0 || idx >= size())
- throw new ArrayIndexOutOfBoundsException();
-
- elementData[idx] = obj;
- }
-
- public final synchronized void setSize(int newSize)
- {
- if (newSize < 0)
- throw new ArrayIndexOutOfBoundsException();
-
- // Java Lang Spec p. 658 says to remove the excess elements and discard
- // when new size is smaller than old size.
- // When truncating, we could alternatively just reset elementCount instead
- // of freeing up the memory if the spec hadn't specified. The spec makes
- // sense though; if someone cares enough to call a setSize() function
- // they probably are doing so to free memory.
- if (newSize < elementCount)
- {
- elementCount = newSize;
- trimToSize();
- }
- else if (newSize > elementCount) // Skip == case
- {
- // TBD: ensureCapacity() may create a vector much larger than newSize;
- // do we want to make the vector exactly newSize? Spec is unclear.
- ensureCapacity(newSize);
-
- // Make sure to null out new elements of grown vector
- for (int i = elementCount; i < newSize; i++)
- elementData[i] = null;
- elementCount = newSize;
- }
- }
-
- public final int size()
- {
- return elementCount;
- }
-
- public final synchronized String toString()
- {
- // Following the Java Lang Spec p. 656
-
- // Prepend first element with open bracket
- StringBuffer result = new StringBuffer("[");
-
- if (elementCount > 0) // add first element if one exists
- result.append(elementData[0].toString());
-
- // Prepend subsequent elements with ", "
- for (int i = 1; i < elementCount; i++)
- result.append(", ").append(elementData[i].toString());
-
- // Append last element with closing bracket
- result.append("]");
- return result.toString();
- }
-
- public final synchronized void trimToSize()
- {
- // Give up excess storage capacity to save memory
- //
- // Don't bother checking for the case where size() == the capacity of the
- // vector since that is a much less likely case; it's more efficient to
- // not do the check and lose a bit of performance in that infrequent case
- Object[] newArray = new Object[elementCount];
- System.arraycopy(elementData, 0, newArray, 0, elementCount);
- elementData = newArray;
- }
-
- // TODO12:
- // public Vector(Collection c)
- // {
- // }
-
- // TODO12:
- // public public boolean add(Object o)
- // {
- // }
-
- // TODO12:
- // public void add(int index, Object element)
- // {
- // }
-
- // TODO12:
- // public boolean addAll(Collection c)
- // {
- // }
-
- // TODO12:
- // public boolean addAll(int index, Collection c)
- // {
- // }
-
- // TODO12:
- // public void clear()
- // {
- // }
-
- // TODO12:
- // public boolean containsAll(Collection c)
- // {
- // }
-
- // TODO12:
- // public boolean equals(Object o)
- // {
- // }
-
- // TODO12:
- // public int hashCode()
- // {
- // }
-
- // TODO12:
- // public Object get(int index)
- // {
- // }
-
- public synchronized boolean remove(Object o)
- {
- for (int i = 0; i < elementCount; ++i)
- {
- if (o == null
- ? elementData[i] == null
- : o.equals (elementData[i]))
- {
- System.arraycopy (elementData, i, elementData, i + 1,
- elementCount - i - 1);
- return true;
- }
- }
- return false;
- }
-
- // TODO12:
- // public Object remove(int index)
- // {
- // }
-
- // TODO12:
- // public boolean removeAll(Collection c)
- // {
- // }
-
- // TODO12:
- // public boolean retainAll(Collection c)
- // {
- // }
-
- // TODO12:
- // public Object set(int index, Object element)
- // {
- // }
-
- // TODO12:
- // public Object[] toArray()
- // {
- // }
-
- // TODO12:
- // public Object[] toArray(Object[] a)
- // {
- // }
-}
diff --git a/libjava/java/util/jar/Attributes.java b/libjava/java/util/jar/Attributes.java
deleted file mode 100644
index 6a01be57a19..00000000000
--- a/libjava/java/util/jar/Attributes.java
+++ /dev/null
@@ -1,586 +0,0 @@
-/* Attributes.java -- Represents attribute name/value pairs from a Manifest
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Represents attribute name/value pairs from a Manifest as a Map.
- * The names of an attribute are represented by the
- * <code>Attributes.Name</code> class and should confirm to the restrictions
- * described in that class. Note that the Map interface that Attributes
- * implements allows you to put names and values into the attribute that don't
- * follow these restriction (and are not really Atrribute.Names, but if you do
- * that it might cause undefined behaviour later).
- * <p>
- * If you use the constants defined in the inner class Name then you can be
- * sure that you always access the right attribute names. This makes
- * manipulating the Attributes more or less type safe.
- * <p>
- * Most of the methods are wrappers to implement the Map interface. The really
- * usefull and often used methods are <code>getValue(Name)</code> and
- * <code>getValue(String)</code>. If you actually want to set attributes you
- * may want to use the <code>putValue(String, String)</code> method
- * (sorry there is no public type safe <code>putValue(Name, String)</code>
- * method).
- *
- * @see java.util.jar.Attributes.Name
- * @author Mark Wielaard (mark@klomp.org)
- */
-public class Attributes implements Cloneable, Map {
-
- // Fields
-
- /**
- * The map that holds all the attribute name/value pairs. In this
- * implementation it is actually a Hashtable, but that can be different in
- * other implementations.
- */
- protected Map map;
-
- // Inner class
-
- /**
- * Represents a name of a Manifest Attribute. Defines a couple of well
- * know names for the general main attributes, stand alone application
- * attributes, applet attributes, extension identification attributes,
- * package versioning and sealing attributes, file contents attributes,
- * bean objects attribute and signing attributes. See the
- * <p>
- * The characters of a Name must obey the following restrictions:
- * <ul>
- * <li> Must contain at least one character
- * <li> The first character must be alphanumeric (a-z, A-Z, 0-9)
- * <li> All other characters must be alphanumeric, a '-' or a '_'
- * </ul>
- * <p>
- * When comparing Names (with <code>equals</code>) all characters are
- * converted to lowercase. But you can get the original case sensitive
- * string with the <code>toString()</code> method.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
- public static class Name {
-
- // Fields
-
- // General Main Attributes
-
- /**
- * General main attribute -
- * the version of this Manifest file.
- */
- public static final Name MANIFEST_VERSION
- = new Name("Manifest-Version");
- /**
- * General main attribute -
- * tool and version that created this Manifest file.
- */
- public static final Name CREATED_BY
- = new Name("Created-By");
- /**
- * General main attribute -
- * the version of the jar file signature.
- */
- public static final Name SIGNATURE_VERSION
- = new Name("Signature-Version");
- /**
- * General main attribute -
- * (relative) URLs of the libraries/classpaths that the Classes in
- * this jar file depend on.
- */
- public static final Name CLASS_PATH
- = new Name("Class-Path");
-
- /**
- * Stand alone application attribute -
- * the entry (without the .class ending) that is the main
- * class of this jar file.
- */
- public static final Name MAIN_CLASS
- = new Name("Main-Class");
-
- /**
- * Applet attribute -
- * a list of extension libraries that the applet in this
- * jar file depends on.
- * For every named extension there should be some Attributes in the
- * Manifest manifest file with the following Names:
- * <ul>
- * <li> &lt;extension&gt;-Extension-Name:
- * unique name of the extension
- * <li> &lt;extension&gt;-Specification-Version:
- * minimum specification version
- * <li> &lt;extension&gt;-Implementation-Version:
- * minimum implementation version
- * <li> &lt;extension&gt;-Implementation-Vendor-Id:
- * unique id of implementation vendor
- * <li> &lt;extension&gt;-Implementation-URL:
- * where the latest version of the extension library can be found
- * </ul>
- */
- public static final Name EXTENSION_LIST
- = new Name("Extension-List");
-
- /**
- * Extension identification attribute -
- * the name if the extension library contained in the jar.
- */
- public static final Name EXTENSION_NAME
- = new Name("Extension-Name");
- /**
- * Extension identification attribute -
- * synonym for <code>EXTENSTION_NAME</code>.
- */
- public static final Name EXTENSION_INSTALLATION
- = EXTENSION_NAME;
-
- // Package versioning and sealing attributes
- /**
- * Package versioning -
- * name of extension library contained in this jar.
- */
- public static final Name IMPLEMENTATION_TITLE
- = new Name("Implementation-Title");
- /**
- * Package versioning -
- * version of the extension library contained in this jar.
- */
- public static final Name IMPLEMENTATION_VERSION
- = new Name("Implementation-Version");
- /**
- * Package versioning -
- * name of extension library creator contained in this jar.
- */
- public static final Name IMPLEMENTATION_VENDOR
- = new Name("Implementation-Vendor");
- /**
- * Package versioning -
- * unique id of extension library creator.
- */
- public static final Name IMPLEMENTATION_VENDOR_ID
- = new Name("Implementation-Vendor-Id");
- /**
- * Package versioning -
- * location where this implementation can be downloaded.
- */
- public static final Name IMPLEMENTATION_URL
- = new Name("Implementation-URL");
- /**
- * Package versioning -
- * title of the specification contained in this jar.
- */
- public static final Name SPECIFICATION_TITLE
- = new Name("Specification-Title");
- /**
- * Package versioning -
- * version of the specification contained in this jar.
- */
- public static final Name SPECIFICATION_VERSION
- = new Name("Specification-Version");
- /**
- * Package versioning -
- * organisation that maintains the specification contains in this
- * jar.
- */
- public static final Name SPECIFICATION_VENDOR
- = new Name("Specification-Vendor");
- /**
- * Package sealing -
- * whether (all) package(s) is(/are) sealed. Value is either "true"
- * or "false".
- */
- public static final Name SEALED
- = new Name("Sealed");
-
- /**
- * File contents attribute -
- * Mime type and subtype for the jar entry.
- */
- public static final Name CONTENT_TYPE
- = new Name("Content-Type");
-
- /**
- * Bean objects attribute -
- * whether the entry is a Java Bean. Value is either "true" or "false".
- */
- public static final Name JAVA_BEAN
- = new Name("Java-Bean");
-
- /**
- * Signing attribute -
- * application specific signing attribute. Must be understood by
- * the manifest parser when present to validate the jar (entry).
- */
- public static final Name MAGIC
- = new Name("Magic");
-
- /** The (lowercase) String representation of this Name */
- private final String name;
- /** The original String given to the constructor */
- private final String origName;
-
- // Constructor
-
- /**
- * Creates a new Name from the given String.
- * Throws an IllegalArgumentException if the given String is empty or
- * contains any illegal Name characters.
- *
- * @param name the name of the new Name
- * @exception IllegalArgumentException if name isn't a valid String
- * representation of a Name
- * @exception NullPointerException if name is null
- */
- public Name(String name) throws IllegalArgumentException,
- NullPointerException {
- // name must not be null
- // this will throw a NullPointerException if it is
- char chars[] = name.toCharArray();
-
- // there must be at least one character
- if (chars.length == 0)
- throw new IllegalArgumentException(
- "There must be at least one character in a name");
-
- // first character must be alphanum
- char c = chars[0];
- if (!((c >= 'a' && c <= 'z') ||
- (c >= 'A' && c <= 'Z') ||
- (c >= '0' && c <= '9')))
- throw new IllegalArgumentException(
- "First character must be alphanum");
-
- // all other characters must be alphanums, '-' or '_'
- for (int i = 1; i < chars.length; i++) {
- if (!((c >= 'a' && c <= 'z') ||
- (c >= 'A' && c <= 'Z') ||
- (c >= '0' && c <= '9') ||
- (c == '-') || (c == '_')))
- throw new IllegalArgumentException(
- "Characters must be alphanums, '-' or '_'");
- }
-
- // Still here? Then convert to lower case and be done.
- // Store the original name for toString();
- this.origName = name;
- this.name = name.toLowerCase();
- }
-
- /**
- * Returns the hash code of the (lowercase) String representation of
- * this Name.
- */
- public int hashCode() {
- return name.hashCode();
- }
-
- /**
- * Checks if another object is equal to this Name object.
- * Another object is equal to this Name object if it is an instance of
- * Name and the (lowercase) string representation of the name is equal.
- */
- public boolean equals(Object o) {
- // Quick and dirty check
- if (name == o)
- return true;
-
- try {
- // Note that the constructor already converts the strings to
- // lowercase.
- String otherName = ((Name)o).name;
- return name.equals(otherName);
- } catch (ClassCastException cce) {
- return false;
- } catch (NullPointerException npe) {
- return false;
- }
- }
-
- /**
- * Returns the string representation of this Name as given to the
- * constructor (not neccesarily the lower case representation).
- */
- public String toString() {
- return origName;
- }
- }
-
- // Constructors
-
- /**
- * Creates an empty Attributes map.
- */
- public Attributes() {
- map = new Hashtable();
- }
-
- /**
- * Creates an empty Attributes map with the given initial size.
- * @param size the initial size of the underlying map
- */
- public Attributes(int size) {
- map = new Hashtable(size);
- }
-
- /**
- * Creates an Attributes map with the initial values taken from another
- * Attributes map.
- * @param attr Attributes map to take the initial values from
- */
- public Attributes(Attributes attr) {
- map = new Hashtable(attr.map);
- }
-
- // Methods
-
- /**
- * Gets the value of an attribute name given as a String.
- *
- * @param name a String describing the Name to look for
- * @return the value gotten from the map of null when not found
- */
- public String getValue(String name) {
- return (String)get(new Name(name));
- }
-
- /**
- * Gets the value of the given attribute name.
- *
- * @param name the Name to look for
- * @return the value gotten from the map of null when not found
- */
- public String getValue(Name name) {
- return (String)get(name);
- }
-
- /**
- * Stores an attribute name (represented by a String) and value in this
- * Attributes map.
- * When the (case insensitive string) name already exists the value is
- * replaced and the old value is returned.
- *
- * @param name a (case insensitive) String representation of the attribite
- * name to add/replace
- * @param value the (new) value of the attribute name
- * @returns the old value of the attribute name or null if it didn't exist
- * yet
- */
- public String putValue(String name, String value)
- {
- return putValue(new Name(name), value);
- }
-
- /**
- * Stores an attribute name (represented by a String) and value in this
- * Attributes map.
- * When the name already exists the value is replaced and the old value
- * is returned.
- * <p>
- * I don't know why there is no public method with this signature. I think
- * there should be one.
- *
- * @param name the attribite name to add/replace
- * @param value the (new) value of the attribute name
- * @returns the old value of the attribute name or null if it didn't exist
- * yet
- */
- private String putValue(Name name, String value)
- {
- return (String)put(name, value);
- }
-
- // Methods from Cloneable interface
-
- /**
- * Return a clone of this attribute map.
- */
- public Object clone() {
- return new Attributes(this);
- }
-
- // Methods from Map interface
-
- /**
- * Removes all attributes.
- */
- public void clear() {
- map.clear();
- }
-
- /**
- * Checks to see if there is an attribute with the specified name.
- * XXX - what if the object is a String?
- *
- * @param attrName the name of the attribute to check
- * @return true if there is an attribute with the specified name, false
- * otherwise
- */
- public boolean containsKey(Object attrName) {
- return map.containsKey(attrName);
- }
-
- /**
- * Checks to see if there is an attribute name with the specified value.
- *
- * @param attrValue the value of a attribute to check
- * @return true if there is an attribute name with the specified value,
- * false otherwise
- */
- public boolean containsValue(Object attrValue) {
- return map.containsValue(attrValue);
- }
-
- /**
- * Gives a Set of attribute name and values pairs as MapEntries.
- * @see java.util.Map.Entry
- * @see java.util.Map#entrySet()
- *
- * @return a set of attribute name value pairs
- */
- public Set entrySet() {
- return map.entrySet();
- }
-
- /**
- * Checks to see if two Attributes are equal. The supplied object must be
- * a real instance of Attributes and contain the same attribute name/value
- * pairs.
- *
- * @param o another Attribute object which should be checked for equality
- * @return true if the object is an instance of Attributes and contains the
- * same name/value pairs, false otherwise
- */
- public boolean equals(Object o) {
- // quick and dirty check
- if (this == o)
- return true;
-
- try {
- return map.equals(((Attributes)o).map);
- } catch (ClassCastException cce) {
- return false;
- } catch (NullPointerException npe) {
- return false;
- }
- }
-
- /**
- * Gets the value of a specified attribute name.
- * XXX - what if the object is a String?
- *
- * @param attrName the name of the attribute we want the value of
- * @return the value of the specified attribute name or null when there is
- * no such attribute name
- */
- public Object get(Object attrName) {
- return map.get(attrName);
- }
-
- /**
- * Returns the hashcode of the attribute name/value map.
- */
- public int hashCode() {
- return map.hashCode();
- }
-
- /**
- * Returns true if there are no attributes set, false otherwise.
- */
- public boolean isEmpty() {
- return map.isEmpty();
- }
-
- /**
- * Gives a Set of all the values of defined attribute names.
- */
- public Set keySet() {
- return map.keySet();
- }
-
- /**
- * Adds or replaces a attribute name/value pair.
- * XXX - What if the name is a string? What if the name is neither a Name
- * nor a String? What if the value is not a string?
- *
- * @param name the name of the attribute
- * @param value the (new) value of the attribute
- * @return the old value of the attribute or null when there was no old
- * attribute with this name
- */
- public Object put(Object name, Object value) {
- return map.put(name, value);
- }
-
- /**
- * Adds or replaces all attribute name/value pairs from another
- * Attributes object to this one. The supplied Map must be an instance of
- * Attributes.
- *
- * @param attr the Attributes object to merge with this one
- * @exception ClassCastException if the supplied map is not an instance of
- * Attributes
- */
- public void putAll(Map attr) {
- if (!(attr instanceof Attributes)) {
- throw new ClassCastException(
- "Supplied Map is not an instance of Attributes");
- }
- map.putAll(attr);
- }
-
- /**
- * Remove a attribute name/value pair.
- * XXX - What if the name is a String?
- *
- * @param name the name of the attribute name/value pair to remove
- * @return the old value of the attribute or null if the attribute didn't
- * exist
- */
- public Object remove(Object name) {
- return map.remove(name);
- }
-
- /**
- * Returns the number of defined attribute name/value pairs.
- */
- public int size() {
- return map.size();
- }
-
- /**
- * Returns all the values of the defined attribute name/value pairs as a
- * Collection.
- */
- public Collection values() {
- return map.values();
- }
-}
diff --git a/libjava/java/util/jar/JarEntry.java b/libjava/java/util/jar/JarEntry.java
deleted file mode 100644
index e15f1a4f336..00000000000
--- a/libjava/java/util/jar/JarEntry.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/* JarEntry.java - Represents an entry in a jar file
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.io.IOException;
-import java.security.cert.Certificate;
-import java.util.zip.ZipEntry;
-
-/**
- * Extension to a ZipEntry that contains manifest attributes and certificates.
- * Both the Atrributes and the Certificates can be null when not set.
- * Note that the <code>getCertificates()</code> method only returns a
- * valid value after all of the data of the entry has been read.
- * <p>
- * There are no public methods to set the attributes or certificate of an
- * Entru. Only JarEntries created by the classes in <code>java.util.jar</code>
- * will have these properties set.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-
-public class JarEntry extends ZipEntry {
-
- // (Packge local) fields
-
- Attributes attr;
- Certificate certs[];
-
- // Constructors
-
- /**
- * Creates a new JarEntry with the specified name and no attributes or
- * or certificates. Calls <code>super(name)</code> so all other (zip)entry
- * fields are null or -1.
- *
- * @param name the name of the new jar entry
- * @exception NullPointerException when the supplied name is null
- * @exception IllegalArgumentException when the supplied name is longer
- * than 65535 bytes
- */
- public JarEntry(String name) throws NullPointerException,
- IllegalArgumentException {
- super(name);
- attr = null;
- certs = null;
- }
-
- /**
- * Creates a new JarEntry with the specified ZipEntry as template for
- * all properties of the entry. Both attributes and certificates will be
- * null.
- *
- * @param entry the ZipEntry whose fields should be copied
- */
- public JarEntry(ZipEntry entry) {
- super(entry);
- attr = null;
- certs = null;
- }
-
- /**
- * Creates a new JarEntry with the specified JarEntry as template for
- * all properties of the entry.
- *
- * @param entry the jarEntry whose fields should be copied
- */
- public JarEntry(JarEntry entry) {
- super(entry);
- try {
- attr = entry.getAttributes();
- } catch(IOException _) {}
- certs = entry.getCertificates();
- }
-
- // Methods
-
- /**
- * Returns a copy of the Attributes set for this entry.
- * When no Attributes are set in the manifest null is returned.
- *
- * @return a copy of the Attributes set for this entry
- * @exception IOException This will never be thrown. It is here for
- * binary compatibility.
- */
- public Attributes getAttributes() throws IOException {
- if (attr != null) {
- return (Attributes) attr.clone();
- } else {
- return null;
- }
- }
-
- /**
- * Returns a copy of the certificates set for this entry.
- * When no certificates are set or when not all data of this entry has
- * been read null is returned.
- * <p>
- * To make sure that this call returns a valid value you must read all
- * data from the JarInputStream for this entry.
- * When you don't need the data for an entry but want to know the
- * certificates that are set for the entry then you can skip all data by
- * calling <code>skip(entry.getSize())</code> on the JarInputStream for
- * the entry.
- *
- * @return a copy of the certificates set for this entry
- */
- public Certificate[] getCertificates() {
- if (certs != null) {
- return (Certificate []) certs.clone();
- } else {
- return null;
- }
- }
-}
diff --git a/libjava/java/util/jar/JarException.java b/libjava/java/util/jar/JarException.java
deleted file mode 100644
index 827f9e2a904..00000000000
--- a/libjava/java/util/jar/JarException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Attributes.java -- exception thrown to indicate an problem with a jar file
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.util.zip.ZipException;
-
-/**
- * This exception is thrown to indicate an problem with a jar file.
- * It can be constructed with or without a descriptive message of the problem.
- * <p>
- * Note that none of the methods in the java.util.jar package actually declare
- * to throw this exception, most just declare that they throw an IOException
- * which is super class of JarException.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-
-public class JarException extends ZipException {
-
- // Constructors
-
- /**
- * Create a new JarException without a descriptive error message.
- */
- public JarException() {
- super();
- }
-
- /**
- * Create a new JarException with a descriptive error message indicating
- * what went wrong. This message can later be retrieved by calling the
- * <code>getMessage()</code> method.
- * @see java.lang.Throwable@getMessage()
- *
- * @param message The descriptive error message
- */
- public JarException(String message) {
- super(message);
- }
-}
diff --git a/libjava/java/util/jar/JarFile.java b/libjava/java/util/jar/JarFile.java
deleted file mode 100644
index 5e0f73b6c3b..00000000000
--- a/libjava/java/util/jar/JarFile.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/* JarFile.java - Representation of a jar file
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-
-/**
- * Representation of a jar file.
- * <p>
- * Note that this class is not a subclass of java.io.File but a subclass of
- * java.util.zip.ZipFile and you can only read JarFiles with it (although
- * there are constructors that take a File object).
- * <p>
- * XXX - verification of Manifest signatures is not yet implemented.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-public class JarFile extends ZipFile {
-
- // Fields
-
- /** The name of the manifest entry: META-INF/MANIFEST.MF */
- public static final String MANIFEST_NAME = "META-INF/MANIFEST.MF";
-
- /**
- * The manifest of this file, if any, otherwise null.
- * Read by the constructor.
- */
- private final Manifest manifest;
-
- /** Wether to verify the manifest and all entries */
- private boolean verify;
-
- // Constructors
-
- /**
- * Creates a new JarFile, tries to read the manifest and if the manifest
- * exists verifies it.
- *
- * @param fileName the name of the file to open
- * @exception FileNotFoundException if the fileName cannot be found
- * @exception IOException if another IO exception occurs while reading
- */
- public JarFile(String fileName) throws FileNotFoundException,
- IOException {
- this (fileName, true);
- }
-
- /**
- * Creates a new JarFile, tries to read the manifest and if the manifest
- * exists and verify is true verfies it.
- *
- * @param fileName the name of the file to open
- * @param verify checks manifest and entries when true and a manifest
- * exists, when false no checks are made
- * @exception FileNotFoundException if the fileName cannot be found
- * @exception IOException if another IO exception occurs while reading
- */
- public JarFile(String fileName, boolean verify) throws
- FileNotFoundException,
- IOException {
- super(fileName);
- manifest = readManifest();
- if (verify)
- verify();
- }
-
- /**
- * Creates a new JarFile, tries to read the manifest and if the manifest
- * exists verifies it.
- *
- * @param file the file to open as a jar file
- * @exception FileNotFoundException if the file does not exits
- * @exception IOException if another IO exception occurs while reading
- */
- public JarFile(File file) throws FileNotFoundException,
- IOException {
- this (file, true);
- }
-
- /**
- * Creates a new JarFile, tries to read the manifest and if the manifest
- * exists and verify is true verfies it.
- *
- * @param file the file to open to open as a jar file
- * @param verify checks manifest and entries when true and a manifest
- * exists, when false no checks are made
- * @exception FileNotFoundException if file does not exist
- * @exception IOException if another IO exception occurs while reading
- */
- public JarFile(File file, boolean verify) throws FileNotFoundException,
- IOException {
- super(file);
- manifest = readManifest();
- if (verify)
- verify();
- }
-
- /**
- * Creates a new JarFile with the indicated mode, tries to read the
- * manifest and if the manifest exists and verify is true verfies it.
- *
- * @param file the file to open to open as a jar file
- * @param verify checks manifest and entries when true and a manifest
- * exists, when false no checks are made
- * @param mode either ZipFile.OPEN_READ or
- * (ZipFile.OPEN_READ | ZipFile.OPEN_DELETE)
- * @exception FileNotFoundException if the file does not exist
- * @exception IOException if another IO exception occurs while reading
- * @exception IllegalArgumentException when given an illegal mode
- *
- * @since 1.3
- */
- public JarFile(File file, boolean verify, int mode) throws
- FileNotFoundException,
- IOException,
- IllegalArgumentException {
- super(file, mode);
- manifest = readManifest();
- if (verify)
- verify();
- }
-
- // Methods
-
- /**
- * XXX - should verify the manifest file
- */
- private void verify() {
- // only check if manifest is not null
- if (manifest == null) {
- verify = false;
- return;
- }
-
- verify = true;
- // XXX - verify manifest
- }
-
- /**
- * Parses and returns the manifest if it exists, otherwise returns null.
- */
- private Manifest readManifest() {
- try {
- ZipEntry manEntry = super.getEntry(MANIFEST_NAME);
- if (manEntry != null) {
- InputStream in = super.getInputStream(manEntry);
- return new Manifest(in);
- } else {
- return null;
- }
- } catch (IOException ioe) {
- return null;
- }
- }
-
- /**
- * Returns a enumeration of all the entries in the JarFile.
- * Note that also the Jar META-INF entries are returned.
- *
- * @exception IllegalStateException when the JarFile is already closed
- */
- public Enumeration entries() throws IllegalStateException {
- return new JarEnumeration(super.entries());
- }
-
- /**
- * Wraps a given Zip Entries Enumeration. For every zip entry a
- * JarEntry is created and the corresponding Attributes are looked up.
- * XXX - Should also look up the certificates.
- */
- private class JarEnumeration implements Enumeration {
-
- private final Enumeration entries;
-
- JarEnumeration(Enumeration e) {
- entries = e;
- }
-
- public boolean hasMoreElements() {
- return entries.hasMoreElements();
- }
-
- public Object nextElement() {
- ZipEntry zip = (ZipEntry) entries.nextElement();
- JarEntry jar = new JarEntry(zip);
- if (manifest != null) {
- jar.attr = manifest.getAttributes(jar.getName());
- }
- // XXX jar.certs
- return jar;
- }
- }
-
- /**
- * XXX
- * It actually returns a JarEntry not a zipEntry
- * @param name XXX
- */
- public ZipEntry getEntry(String name) {
- ZipEntry entry = super.getEntry(name);
- if (entry != null) {
- JarEntry jarEntry = new JarEntry(entry);
- if (manifest != null) {
- jarEntry.attr = manifest.getAttributes(name);
- // XXX jarEntry.certs
- }
- return jarEntry;
- }
- return null;
- }
-
- /**
- * XXX should verify the inputstream
- * @param entry XXX
- * @exception ZipException XXX
- * @exception IOException XXX
- */
- public synchronized InputStream getInputStream(ZipEntry entry) throws
- ZipException,
- IOException {
- return super.getInputStream(entry); // XXX verify
- }
-
- /**
- * Returns the JarEntry that belongs to the name if such an entry
- * exists in the JarFile. Returns null otherwise
- * Convenience method that just casts the result from <code>getEntry</code>
- * to a JarEntry.
- *
- * @param name the jar entry name to look up
- * @return the JarEntry if it exists, null otherwise
- */
- public JarEntry getJarEntry(String name) {
- return (JarEntry)getEntry(name);
- }
-
- /**
- * Returns the manifest for this JarFile or null when the JarFile does not
- * contain a manifest file.
- */
- public Manifest getManifest() {
- return manifest;
- }
-}
diff --git a/libjava/java/util/jar/JarInputStream.java b/libjava/java/util/jar/JarInputStream.java
deleted file mode 100644
index c8f5340637b..00000000000
--- a/libjava/java/util/jar/JarInputStream.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* JarInputStream.java - InputStream for reading jar files
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-/**
- * InputStream for reading jar files.
- * XXX - verification of the signatures in the Manifest file is not yet
- * implemented.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-
-public class JarInputStream extends ZipInputStream {
-
- // Fields
-
- /** The manifest for this file or null when there was no manifest. */
- private Manifest manifest;
-
- /** The first real JarEntry for this file. Used by readManifest() to store
- an entry that isn't the manifest but that should be returned by
- getNextEntry next time it is called. Null when no firstEntry was read
- while searching for the manifest entry, or when it has already been
- returned by getNextEntry(). */
- private JarEntry firstEntry;
-
- // Constructors
-
- /**
- * Creates a new JarInputStream and tries to read the manifest.
- * If such a manifest is present the JarInputStream tries to verify all
- * the entry signatures while reading.
- *
- * @param in InputStream to read the jar from
- * @exception IOException when an error occurs when opening or reading
- */
- public JarInputStream(InputStream in) throws IOException {
- this(in, true);
- }
-
- /**
- * Creates a new JarInputStream and tries to read the manifest.
- * If such a manifest is present and verify is true, the JarInputStream
- * tries to verify all the entry signatures while reading.
- *
- * @param in InputStream to read the jar from
- * @param verify wheter or not to verify the manifest entries
- * @exception IOException when an error occurs when opening or reading
- */
- public JarInputStream(InputStream in, boolean verify) throws IOException {
- super(in);
- readManifest(verify);
- }
-
- // Methods
-
- /**
- * Set the manifest if found. Skips all entries that start with "META-INF/"
- *
- * @param verify when true (and a Manifest is found) checks the Manifest,
- * when false no check is performed
- * @exception IOException if an error occurs while reading
- */
- private void readManifest(boolean verify) throws IOException {
- firstEntry = (JarEntry) super.getNextEntry();
- while ((firstEntry != null) &&
- firstEntry.getName().startsWith("META-INF/")) {
- if(firstEntry.getName().equals(JarFile.MANIFEST_NAME)) {
- manifest = new Manifest(this);
- }
- firstEntry = (JarEntry) super.getNextEntry();
- }
- closeEntry();
-
- if (verify) {
- // XXX
- }
- }
-
- /**
- * Creates a JarEntry for a particular name and consults the manifest
- * for the Attributes of the entry.
- * Used by <code>ZipEntry.getNextEntry()</code>
- *
- * @param name the name of the new entry
- */
- protected ZipEntry createZipEntry(String name) {
- ZipEntry zipEntry = super.createZipEntry(name);
- JarEntry jarEntry = new JarEntry(zipEntry);
- if (manifest != null) {
- jarEntry.attr = manifest.getAttributes(name);
- }
- return jarEntry;
- }
-
- /**
- * Returns the Manifest for the jar file or null if there was no Manifest.
- */
- public Manifest getManifest() {
- return manifest;
- }
-
- /**
- * Returns the next entry or null when there are no more entries.
- * Does actually return a JarEntry, if you don't want to cast it yourself
- * use <code>getNextJarEntry()</code>. Does not return any entries found
- * at the beginning of the ZipFile that are special
- * (those that start with "META-INF/").
- *
- * @exception IOException if an IO error occurs when reading the entry
- */
- public ZipEntry getNextEntry() throws IOException {
- ZipEntry entry;
- if (firstEntry != null) {
- entry = firstEntry;
- firstEntry = null;
- } else {
- entry = super.getNextEntry();
- }
- return entry;
- }
-
- /**
- * Returns the next jar entry or null when there are no more entries.
- *
- * @exception IOException if an IO error occurs when reading the entry
- */
- public JarEntry getNextJarEntry() throws IOException {
- return (JarEntry)getNextEntry();
- }
-
- /**
- * XXX
- *
- * @param buf XXX
- * @param off XXX
- * @param len XXX
- * @return XXX
- * @exception IOException XXX
- */
- public int read(byte[] buf, int off, int len) throws IOException {
- // XXX if (verify) {}
- return super.read(buf, off, len);
- }
-}
diff --git a/libjava/java/util/jar/JarOutputStream.java b/libjava/java/util/jar/JarOutputStream.java
deleted file mode 100644
index 78bb35979ea..00000000000
--- a/libjava/java/util/jar/JarOutputStream.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* JarOutputStream.java - OutputStream for writing jar files
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.io.OutputStream;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-/**
- * OutputStream for writing jar files.
- * A special ZipOutputStream that can take JarEntries and can have a optional
- * Manifest as first entry.
- *
- * @author Mark Wielaard (mark@klomp.org)
- */
-
-public class JarOutputStream extends ZipOutputStream {
-
- // Constructors
-
- /**
- * Creates a new JarOutputStream without a manifest entry.
- *
- * @param out the stream to create the new jar on
- * @exception IOException if something unexpected happend
- */
- public JarOutputStream(OutputStream out) throws IOException {
- this(out, null);
- }
-
- /**
- * Creates a new JarOutputStream with a manifest entry.
- * The manifest will be the first entry in the jar.
- *
- * @param out the stream to create the new jar on
- * @param man the manifest that should be put in the jar file or null
- * for no manifest entry
- * @exception IOException if something unexpected happend
- */
- public JarOutputStream(OutputStream out, Manifest man) throws IOException {
- super(out);
- if (man != null)
- writeManifest(man);
- }
-
- // Methods
-
- /**
- * Writes the manifest to a new JarEntry in this JarOutputStream with as
- * name JarFile.MANIFEST_NAME.
- *
- * @param manifest the non null manifest to be written
- * @exception IOException if something unexpected happend
- */
- private void writeManifest(Manifest manifest) throws IOException {
- // Create a new Jar Entry for the Manifest
- JarEntry entry = new JarEntry(JarFile.MANIFEST_NAME);
- putNextEntry(entry);
- manifest.write(this);
- closeEntry();
- }
-
- /**
- * Prepares the JarOutputStream for writing the next entry.
- * This implementation just calls <code>super.putNextEntre()</code>.
- *
- * @param entry The information for the next entry
- * @exception IOException when some unexpected I/O exception occured
- */
- public void putNextEntry(ZipEntry entry) throws IOException {
- super.putNextEntry(entry); // XXX
- }
-}
diff --git a/libjava/java/util/jar/Manifest.java b/libjava/java/util/jar/Manifest.java
deleted file mode 100644
index a4034e2c65c..00000000000
--- a/libjava/java/util/jar/Manifest.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/* Attributes.java -- Reads, writes and manipulaties jar manifest files
- Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-As a special exception, if you link this library with other files to
-produce an executable, this library does not by itself cause the
-resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why the
-executable file might be covered by the GNU General Public License. */
-
-package java.util.jar;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Reads, writes and manipulaties jar manifest files.
- * XXX
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-public class Manifest implements Cloneable {
-
- // Fields
-
- /** The main attributes of the manifest (jar file). */
- private final Attributes mainAttr;
-
- /** A map of atrributes for all entries described in this Manifest. */
- private final Map entries;
-
- // Constructors
-
- /**
- * Creates a new empty Manifest.
- */
- public Manifest() {
- mainAttr = new Attributes();
- entries = new Hashtable();
- }
-
- /**
- * Creates a Manifest from the supplied input stream.
- *
- * @see read(Inputstream)
- * @see write(OutputStream)
- *
- * @param InputStream the input stream to read the manifest from
- * @exception IOException when an i/o exception occurs or the input stream
- * does not describe a valid manifest
- */
- public Manifest(InputStream in) throws IOException {
- this();
- read(in);
- }
-
- /**
- * Creates a Manifest from another Manifest.
- * Makes a deep copy of the main attributes, but a shallow copy of
- * the other entries. This means that you can freely add, change or remove
- * the main attributes or the entries of the new manifest without effecting
- * the original manifest, but adding, changing or removing attributes from
- * a particular entry also changes the attributes of that entry in the
- * original manifest.
- *
- * @see clone()
- * @param man the Manifest to copy from
- */
- public Manifest (Manifest man) {
- mainAttr = new Attributes(man.getMainAttributes());
- entries = new Hashtable(man.getEntries());
- }
-
- // Methods
-
- /**
- * Gets the main attributes of this Manifest.
- */
- public Attributes getMainAttributes() {
- return mainAttr;
- }
-
- /**
- * Gets a map of entry Strings to Attributes for all the entries described
- * in this manifest. Adding, changing or removing from this entries map
- * changes the entries of this manifest.
- */
- public Map getEntries() {
- return entries;
- }
-
- /**
- * Returns the Attributes associated with the Entry.
- * <p>
- * Implemented as:
- * <code>return (Attributes)getEntries().get(entryName)</code>
- *
- * @param entryName the name of the entry to look up
- * @return the attributes associated with the entry or null when none
- */
- public Attributes getAttributes(String entryName) {
- return (Attributes)getEntries().get(entryName);
- }
-
- /**
- * Clears the main attributes and removes all the entries from the
- * manifest.
- */
- public void clear() {
- mainAttr.clear();
- entries.clear();
- }
-
- /**
- * XXX
- */
- public void read(InputStream in) throws IOException {
- BufferedReader br = new BufferedReader(
- new InputStreamReader(in, "8859_1"));
- read_main_section(getMainAttributes(), br);
- read_individual_sections(getEntries(), br);
- }
-
- // Private Static methods for reading the Manifest file from BufferedReader
-
- private static void read_main_section(Attributes attr,
- BufferedReader br) throws
- IOException {
- read_version_info(attr, br);
- read_attributes(attr, br);
- }
-
- private static void read_version_info(Attributes attr,
- BufferedReader br) throws
- IOException {
- String version_header = Attributes.Name.MANIFEST_VERSION.toString();
- try {
- String value = expect_header(version_header, br);
- attr.putValue(version_header, value);
- } catch (IOException ioe) {
- throw new JarException(
- "Manifest should start with a " + version_header
- + ": " + ioe.getMessage());
- }
- }
-
- private static String expect_header(String header, BufferedReader br)
- throws IOException {
-
- String s = br.readLine();
- if (s == null) {
- throw new JarException("unexpected end of file");
- }
- return expect_header(header, br, s);
- }
-
- private static String expect_header(String header, BufferedReader br,
- String s) throws IOException {
- try {
- String name = s.substring(0, header.length() + 1);
- if (name.equalsIgnoreCase(header + ":")) {
- String value_start = s.substring(header.length() + 2);
- return read_header_value(value_start, br);
- }
- } catch (IndexOutOfBoundsException iobe) {}
- // If we arrive here, something went wrong
- throw new JarException("unexpected '" + s + "'");
- }
-
- private static String read_header_value(String s, BufferedReader br)
- throws IOException {
- boolean try_next = true;
- while (try_next) {
- // Lets see if there is something on the next line
- br.mark(1);
- if (br.read() == ' ') {
- s += br.readLine();
- } else {
- br.reset();
- try_next = false;
- }
- }
- return s;
- }
-
- private static void read_attributes(Attributes attr,
- BufferedReader br) throws
- IOException {
- String s = br.readLine();
- while (s != null && (!s.equals(""))) {
- read_attribute(attr, s, br);
- s = br.readLine();
- }
- }
-
- private static void read_attribute(Attributes attr, String s,
- BufferedReader br) throws IOException {
- try {
- int colon = s.indexOf(": ");
- String name = s.substring(0, colon);
- String value_start = s.substring(colon+2);
- String value = read_header_value(value_start, br);
- attr.putValue(name, value);
- } catch (IndexOutOfBoundsException iobe) {
- throw new JarException(
- "Manifest contains a bad header: " + s);
- }
- }
-
- private static void read_individual_sections(Map entries,
- BufferedReader br) throws
- IOException {
- String s = br.readLine();
- while (s != null && (!s.equals(""))) {
- Attributes attr = read_section_name(s, br, entries);
- read_attributes(attr, br);
- s = br.readLine();
- }
- }
-
- private static Attributes read_section_name(String s, BufferedReader br,
- Map entries) throws
- JarException {
- try {
- String name = expect_header("Name", br, s);
- Attributes attr = new Attributes();
- entries.put(name, attr);
- return attr;
- } catch(IOException ioe) {
- throw new JarException
- ("Section should start with a Name header: "
- + ioe.getMessage());
- }
- }
-
- /**
- * XXX
- */
- public void write(OutputStream out) throws IOException {
- PrintWriter pw = new PrintWriter(
- new BufferedWriter(
- new OutputStreamWriter(out, "8859_1")));
- write_main_section(getMainAttributes(), pw);
- pw.println();
- write_individual_sections(getEntries(), pw);
- if (pw.checkError()) {
- throw new JarException("Error while writing manifest");
- }
- }
-
- // Private Static functions for writing the Manifest file to a PrintWriter
-
- private static void write_main_section(Attributes attr,
- PrintWriter pw)
- throws JarException {
-
- write_version_info(attr, pw);
- write_main_attributes(attr, pw);
- }
-
- private static void write_version_info(Attributes attr, PrintWriter pw) {
- // First check if there is already a version attribute set
- String version = attr.getValue(Attributes.Name.MANIFEST_VERSION);
- if (version == null) {
- version = "1.0";
- }
- write_header(Attributes.Name.MANIFEST_VERSION.toString(), version, pw);
- }
-
- private static void write_header(String name, String value,
- PrintWriter pw) {
- pw.print(name + ": ");
-
- int last = 68 - name.length();
- if (last > value.length()) {
- pw.println(value);
- } else {
- pw.println(value.substring(0, last));
- }
- while (last < value.length()) {
- pw.print(" ");
- int end = (last + 69);
- if (end > value.length()) {
- pw.println(value.substring(last));
- } else {
- pw.println(value.substring(last, end));
- }
- last = end;
- }
- }
-
- private static void write_main_attributes(Attributes attr,
- PrintWriter pw) throws
- JarException {
- Iterator it = attr.entrySet().iterator();
- while(it.hasNext()) {
- Map.Entry entry = (Map.Entry)it.next();
- // Don't print the manifest version again
- if (!Attributes.Name.MANIFEST_VERSION.equals(entry.getKey())) {
- write_attribute_entry(entry, pw);
- }
- }
- }
-
- private static void write_attribute_entry(Map.Entry entry,
- PrintWriter pw) throws
- JarException {
- String name = entry.getKey().toString();
- String value = entry.getValue().toString();
-
- if (name.equalsIgnoreCase("Name")) {
- throw new JarException("Attributes cannot be called 'Name'");
- }
- if (name.startsWith("From")) {
- throw new JarException(
- "Header cannot start with the four letters 'From'"
- + name);
- }
- write_header(name, value, pw);
- }
-
- private static void write_individual_sections(Map entries,
- PrintWriter pw)
- throws JarException {
-
- Iterator it = entries.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry)it.next();
- write_header("Name", entry.getKey().toString(), pw);
- write_entry_attributes((Attributes)entry.getValue(), pw);
- pw.println();
- }
- }
-
- private static void write_entry_attributes(Attributes attr,
- PrintWriter pw) throws
- JarException {
- Iterator it = attr.entrySet().iterator();
- while(it.hasNext()) {
- Map.Entry entry = (Map.Entry)it.next();
- write_attribute_entry(entry, pw);
- }
- }
-
- /**
- * Makes a deep copy of the main attributes, but a shallow copy of
- * the other entries. This means that you can freely add, change or remove
- * the main attributes or the entries of the new manifest without effecting
- * the original manifest, but adding, changing or removing attributes from
- * a particular entry also changes the attributes of that entry in the
- * original manifest. Calls <CODE>new Manifest(this)</CODE>.
- */
- public Object clone() {
- return new Manifest(this);
- }
-
- /**
- * Checks if another object is equal to this Manifest object.
- * Another Object is equal to this Manifest object if it is an instance of
- * Manifest and the main attributes and the entries of the other manifest
- * are equal to this one.
- */
- public boolean equals(Object o) {
- return (o instanceof Manifest) &&
- (mainAttr.equals(((Manifest)o).mainAttr)) &&
- (entries.equals(((Manifest)o).entries));
- }
-
- /**
- * Calculates the hash code of the manifest. Implemented by a xor of the
- * hash code of the main attributes with the hash code of the entries map.
- */
- public int hashCode() {
- return mainAttr.hashCode() ^ entries.hashCode();
- }
-
-}
diff --git a/libjava/java/util/natGregorianCalendar.cc b/libjava/java/util/natGregorianCalendar.cc
deleted file mode 100644
index f412410518c..00000000000
--- a/libjava/java/util/natGregorianCalendar.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#ifdef ECOS
-#include <string.h>
-#endif
-
-#include <gcj/cni.h>
-#include <java/util/TimeZone.h>
-#include <java/util/GregorianCalendar.h>
-#include <time.h>
-
-void
-java::util::GregorianCalendar::computeTime ()
-{
- struct tm tim;
- tim.tm_sec = elements(fields)[SECOND];
- tim.tm_min = elements(fields)[MINUTE];
- tim.tm_hour = elements(fields)[HOUR_OF_DAY];
- tim.tm_mday = elements(fields)[DATE];
- tim.tm_mon = elements(fields)[MONTH];
- tim.tm_year = elements(fields)[YEAR] - 1900;
- tim.tm_isdst = 0; // FIXME
-#ifndef ECOS
- // FIXME: None of the standard C library access to the ECOS calendar
- // is yet available.
- time_t t = mktime (&tim);
-#else
- time_t t = 0;
-#endif
-
- // Adjust for local timezone (introduced by mktime) and our
- // timezone.
-#if defined (STRUCT_TM_HAS_GMTOFF)
- t += tim.tm_gmtoff;
-#elif defined (HAVE_TIMEZONE)
- t -= timezone;
-#endif
- java::util::TimeZone *zone = getTimeZone ();
- t += zone->getRawOffset();
-
- // Adjust for milliseconds.
- time = t * (jlong) 1000 + elements(fields)[MILLISECOND];
-
- isTimeSet = true;
-}
-
-void
-java::util::GregorianCalendar::computeFields ()
-{
- time_t t = time / 1000;
- int millis = time % 1000;
- if (t < 0 && millis != 0)
- {
- t--;
- millis = t - 1000 * t;
- }
- elements(fields)[MILLISECOND] = millis;
- struct tm tim;
- java::util::TimeZone *zone = getTimeZone ();
-
- // FIXME: None of the standard C library access to the ECOS calendar
- // is yet available.
-#ifdef ECOS
- memset (&tim, 0, sizeof tim);
-#else
- if (zone->getRawOffset() == 0 || ! zone->useDaylightTime())
- {
-#if defined(__JV_POSIX_THREADS__) && defined(HAVE_GMTIME_R)
- gmtime_r (&t, &tim);
-#else
- // Get global lock (because gmtime uses a global buffer). FIXME
- tim = *(struct tm*) gmtime (&t);
- // Release global lock. FIXME
-#endif
- }
- else
- {
-#if defined(__JV_POSIX_THREADS__) && defined(HAVE_LOCALTIME_R)
- localtime_r (&t, &tim);
-#else
- // Get global lock (because localtime uses a global buffer). FIXME
- tim = *(struct tm*) localtime (&t);
- // Release global lock. FIXME
-#endif
- }
-#endif /* ECOS */
- elements(fields)[SECOND] = tim.tm_sec;
- elements(fields)[MINUTE] = tim.tm_min;
- elements(fields)[HOUR_OF_DAY] = tim.tm_hour;
- elements(fields)[AM_PM] = tim.tm_hour < 12 ? AM : PM;
- elements(fields)[HOUR] = tim.tm_hour % 12;
- elements(fields)[DATE] = tim.tm_mday;
- elements(fields)[MONTH] = tim.tm_mon;
- elements(fields)[YEAR] = 1900 + tim.tm_year;
- elements(fields)[DAY_OF_WEEK] = tim.tm_wday + 1;
- elements(fields)[DAY_OF_WEEK_IN_MONTH] = ((tim.tm_mday - 1) / 7) + 1;
- elements(fields)[DAY_OF_YEAR] = tim.tm_yday + 1;
- elements(fields)[WEEK_OF_MONTH]
- = (tim.tm_mday + 6 + (5 - tim.tm_wday + getFirstDayOfWeek()) % 7) / 7;
- elements(fields)[WEEK_OF_YEAR]
- = (tim.tm_yday + 7 + (5 - tim.tm_wday + getFirstDayOfWeek()) % 7) / 7;
- elements(fields)[ERA] = AD;
- elements(fields)[DST_OFFSET] = tim.tm_isdst <= 0 ? 0 : 60*60*1000;
- elements(fields)[ZONE_OFFSET] = getTimeZone()->getRawOffset();
- areFieldsSet = true;
-}
diff --git a/libjava/java/util/zip/Adler32.java b/libjava/java/util/zip/Adler32.java
deleted file mode 100644
index e7afeabde16..00000000000
--- a/libjava/java/util/zip/Adler32.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Per Bothner
- * @date April 6, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * The actual Adler32 algorithm is taken from RFC 1950.
- * Status: Believed complete and correct.
- */
-
-public class Adler32 implements Checksum
-{
- private static int BASE = 65521; /* largest prime smaller than 65536 */
-
- private int s1;
- private int s2;
-
- public Adler32 ()
- {
- reset();
- }
-
- public void reset () { s1 = 1; s2 = 0; }
-
- public void update (int bval)
- {
- s1 = (s1 + (bval & 0xFF)) % BASE;
- s2 = (s1 + s2) % BASE;
- }
-
- public void update (byte[] buffer)
- {
- update(buffer, 0, buffer.length);
- }
-
- public void update (byte[] buf, int off, int len)
- {
- int s1 = this.s1;
- int s2 = this.s2;
- while (len > 0)
- {
- // We can defer the modulo operation.
- int n = 4000;
- if (n > len)
- n = len;
- len -= n;
- while (--n >= 0)
- {
- s1 = s1 + (buf[off++] & 0xFF);
- s2 = s2 + s1;
- }
- s1 %= BASE;
- s2 %= BASE;
- }
- this.s1 = s1;
- this.s2 = s2;
- }
-
- public long getValue()
- {
- return ((long) s2 << 16) + s1;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libjava/java/util/zip/CRC32.java b/libjava/java/util/zip/CRC32.java
deleted file mode 100644
index 1abbcad1d97..00000000000
--- a/libjava/java/util/zip/CRC32.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Per Bothner
- * @date April 1, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * The actual CRC32 algorithm is taken from RFC 1952.
- * Status: Believed complete and correct.
- */
-
-public class CRC32 implements Checksum
-{
- private int crc = 0;
-
- private static int[] crc_table = make_crc_table();
-
- /* Make the table for a fast CRC. */
- static int[] make_crc_table ()
- {
- int[] crc_table = new int[256];
- for (int n = 0; n < 256; n++)
- {
- int c = n;
- for (int k = 8; --k >= 0; )
- {
- if ((c & 1) != 0)
- c = 0xedb88320 ^ (c >>> 1);
- else
- c = c >>> 1;
- }
- crc_table[n] = c;
- }
- return crc_table;
- }
-
- public long getValue ()
- {
- return (long) crc & 0xffffffffL;
- }
-
- public void reset () { crc = 0; }
-
- public void update (int bval)
- {
- int c = ~crc;
- c = crc_table[(c ^ bval) & 0xff] ^ (c >>> 8);
- crc = ~c;
- }
-
- public void update (byte[] buf, int off, int len)
- {
- int c = ~crc;
- while (--len >= 0)
- c = crc_table[(c ^ buf[off++]) & 0xff] ^ (c >>> 8);
- crc = ~c;
- }
- public void update (byte[] buf) { update(buf, 0, buf.length); }
-}
diff --git a/libjava/java/util/zip/CheckedInputStream.java b/libjava/java/util/zip/CheckedInputStream.java
deleted file mode 100644
index 0901743e6a7..00000000000
--- a/libjava/java/util/zip/CheckedInputStream.java
+++ /dev/null
@@ -1,81 +0,0 @@
-// CheckedInputStream.java - Compute checksum of data being read.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.FilterInputStream;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class CheckedInputStream extends FilterInputStream
-{
- public CheckedInputStream (InputStream in, Checksum sum)
- {
- super (in);
- this.sum = sum;
- }
-
- public Checksum getChecksum ()
- {
- return sum;
- }
-
- public int read () throws IOException
- {
- int x = in.read();
- if (x != -1)
- sum.update(x);
- return x;
- }
-
- public int read (byte[] buf, int off, int len) throws IOException
- {
- int r = in.read(buf, off, len);
- if (r != -1)
- sum.update(buf, off, r);
- return r;
- }
-
- public long skip (long n) throws IOException
- {
- if (n == 0)
- return 0;
-
- int min = (int) Math.min(n, 1024);
- byte[] buf = new byte[min];
-
- long s = 0;
- while (n > 0)
- {
- int r = in.read(buf, 0, min);
- if (r == -1)
- break;
- n -= r;
- s += r;
- min = (int) Math.min(n, 1024);
- sum.update(buf, 0, r);
- }
-
- return s;
- }
-
- // The checksum object.
- private Checksum sum;
-}
diff --git a/libjava/java/util/zip/CheckedOutputStream.java b/libjava/java/util/zip/CheckedOutputStream.java
deleted file mode 100644
index a6323037cd7..00000000000
--- a/libjava/java/util/zip/CheckedOutputStream.java
+++ /dev/null
@@ -1,54 +0,0 @@
-// CheckedOutputStream.java - Compute checksum of data being written.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.FilterOutputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class CheckedOutputStream extends FilterOutputStream
-{
- public CheckedOutputStream (OutputStream out, Checksum cksum)
- {
- super (out);
- this.sum = cksum;
- }
-
- public Checksum getChecksum ()
- {
- return sum;
- }
-
- public void write (int bval) throws IOException
- {
- out.write(bval);
- sum.update(bval);
- }
-
- public void write (byte[] buf, int off, int len) throws IOException
- {
- out.write(buf, off, len);
- sum.update(buf, off, len);
- }
-
- // The checksum object.
- private Checksum sum;
-}
diff --git a/libjava/java/util/zip/Checksum.java b/libjava/java/util/zip/Checksum.java
deleted file mode 100644
index e37d1834e04..00000000000
--- a/libjava/java/util/zip/Checksum.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Per Bothner
- * @date January 9, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public interface Checksum
-{
- public long getValue ();
-
- public void reset ();
-
- public void update (int bval);
-
- public void update (byte[] buf, int off, int len);
-}
diff --git a/libjava/java/util/zip/DataFormatException.java b/libjava/java/util/zip/DataFormatException.java
deleted file mode 100644
index 10d1616cdd6..00000000000
--- a/libjava/java/util/zip/DataFormatException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// DataFormatException.java
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Believed complete and correct.
- */
-
-public class DataFormatException extends Exception
-{
- public DataFormatException ()
- {
- super();
- }
-
- public DataFormatException (String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/util/zip/Deflater.java b/libjava/java/util/zip/Deflater.java
deleted file mode 100644
index 6cf82a79550..00000000000
--- a/libjava/java/util/zip/Deflater.java
+++ /dev/null
@@ -1,129 +0,0 @@
-// Deflater.java - Compress a data stream.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import gnu.gcj.RawData;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class Deflater
-{
- public static final int BEST_COMPRESSION = 9;
- public static final int BEST_SPEED = 1;
- public static final int DEFAULT_COMPRESSION = -1;
- public static final int NO_COMPRESSION = 0;
-
- public static final int DEFAULT_STRATEGY = 0;
- public static final int FILTERED = 1;
- public static final int HUFFMAN_ONLY = 2;
-
- public static final int DEFLATED = 8;
-
- public int deflate (byte[] buf)
- {
- return deflate (buf, 0, buf.length);
- }
-
- public native int deflate (byte[] buf, int off, int len);
- public native void init (int level, boolean noHeader);
- public native void update ();
-
- public Deflater ()
- {
- this (DEFAULT_COMPRESSION, false);
- }
-
- public Deflater (int lvl)
- {
- this (lvl, false);
- }
-
- public Deflater (int lvl, boolean noHeader)
- {
- this.strategy = DEFAULT_STRATEGY;
- init (lvl, noHeader);
- setLevel (lvl);
- }
-
- public native void end ();
-
- protected void finalize ()
- {
- end ();
- }
-
- public native void finish ();
-
- public synchronized boolean finished ()
- {
- return is_finished;
- }
-
- public native int getAdler ();
- public native int getTotalIn ();
- public native int getTotalOut ();
- public native boolean needsInput ();
- public native void reset ();
-
- public void setDictionary (byte[] buf)
- {
- setDictionary (buf, 0, buf.length);
- }
-
- public native void setDictionary (byte[] buf, int off, int len);
-
- public void setInput (byte[] buf)
- {
- setInput (buf, 0, buf.length);
- }
-
- public native void setInput (byte[] buf, int off, int len);
-
- public synchronized void setLevel (int lvl)
- {
- if (lvl != -1 && (lvl < 0 || lvl > 9))
- throw new IllegalArgumentException ();
- level = (lvl == -1) ? 6 : lvl;
- update ();
- }
-
- public synchronized void setStrategy (int stgy)
- {
- if (stgy != DEFAULT_STRATEGY && stgy != FILTERED
- && stgy != HUFFMAN_ONLY)
- throw new IllegalArgumentException ();
- strategy = stgy;
- update ();
- }
-
- // Compression level.
- private int level;
-
- // Compression strategy.
- private int strategy;
-
- // The zlib stream.
- private RawData zstream;
-
- // True if finished.
- private boolean is_finished;
-
- // `Flush' flag to pass to next call to deflate.
- private int flush_flag;
-}
diff --git a/libjava/java/util/zip/DeflaterOutputStream.java b/libjava/java/util/zip/DeflaterOutputStream.java
deleted file mode 100644
index 410d8868106..00000000000
--- a/libjava/java/util/zip/DeflaterOutputStream.java
+++ /dev/null
@@ -1,87 +0,0 @@
-// DeflaterOutputStream.java - Output filter for compressing.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.FilterOutputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class DeflaterOutputStream extends FilterOutputStream
-{
- public void close () throws IOException
- {
- finish ();
- out.close();
- }
-
- protected void deflate () throws IOException
- {
- while (true)
- {
- int len = def.deflate(buf, 0, buf.length);
- if (len == 0 || len == -1)
- break;
- out.write(buf, 0, len);
- }
- }
-
- public DeflaterOutputStream (OutputStream out)
- {
- this (out, new Deflater (), 512);
- }
-
- public DeflaterOutputStream (OutputStream out, Deflater defl)
- {
- this (out, defl, 512);
- }
-
- public DeflaterOutputStream(OutputStream out, Deflater defl, int bufsize)
- {
- super (out);
- buf = new byte[bufsize];
- def = defl;
- }
-
- public void finish () throws IOException
- {
- def.finish();
- deflate ();
- }
-
- public void write (int bval) throws IOException
- {
- byte[] b = new byte[1];
- b[0] = (byte) bval;
- write (b, 0, 1);
- }
-
- public void write (byte[] buf, int off, int len) throws IOException
- {
- def.setInput (buf, off, len);
- deflate ();
- }
-
- // The retrieval buffer.
- protected byte[] buf;
-
- // Deflater used to compress data.
- protected Deflater def;
-}
diff --git a/libjava/java/util/zip/GZIPInputStream.java b/libjava/java/util/zip/GZIPInputStream.java
deleted file mode 100644
index bea5eb38b1d..00000000000
--- a/libjava/java/util/zip/GZIPInputStream.java
+++ /dev/null
@@ -1,154 +0,0 @@
-// GZIPInputStream.java - Input tiler for reading gzip file.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class GZIPInputStream extends InflaterInputStream
-{
- public static final int GZIP_MAGIC = 0x8b1f;
-
- public void close () throws IOException
- {
- // Nothing to do here.
- super.close();
- }
-
- public GZIPInputStream (InputStream istream) throws IOException
- {
- this (istream, 512);
- }
-
- private final int eof_read () throws IOException
- {
- int r = in.read();
- if (r == -1)
- throw new ZipException ("gzip header corrupted");
- return r & 0xff;
- }
-
- public GZIPInputStream (InputStream istream, int readsize)
- throws IOException
- {
- super (istream, new Inflater (true), readsize);
-
- // NOTE: header reading code taken from zlib's gzio.c.
-
- // Read the magic number.
- int magic = eof_read () | (eof_read () << 8);
- if (magic != GZIP_MAGIC)
- throw new ZipException ("gzip header corrupted");
-
- int method = eof_read ();
- int flags = eof_read ();
- // Test from zlib.
- if (method != Z_DEFLATED || (flags & RESERVED) != 0)
- throw new ZipException ("gzip header corrupted");
-
- // Discard time, xflags, OS code.
- for (int i = 0; i < 6; ++i)
- eof_read ();
-
- // Skip the extra field.
- if ((flags & EXTRA_FIELD) != 0)
- {
- int len = eof_read () | (eof_read () << 8);
- while (len-- != 0)
- eof_read ();
- }
-
- if ((flags & ORIG_NAME) != 0)
- {
- while (true)
- {
- int c = eof_read ();
- if (c == 0)
- break;
- }
- }
-
- if ((flags & COMMENT) != 0)
- {
- while (true)
- {
- int c = eof_read ();
- if (c == 0)
- break;
- }
- }
-
- if ((flags & HEAD_CRC) != 0)
- {
- // FIXME: consider checking CRC of the header.
- eof_read ();
- eof_read ();
- }
-
- crc = new CRC32 ();
- }
-
- public int read (byte[] buf, int off, int len) throws IOException
- {
- if (eos)
- return -1;
- int r = super.read(buf, off, len);
- if (r == -1)
- {
- eos = true;
- int header_crc = read4 ();
- if (crc.getValue() != header_crc)
- throw new ZipException ("corrupted gzip file");
- // Read final `ISIZE' field.
- // FIXME: should we check this length?
- read4 ();
- return -1;
- }
- crc.update(buf, off, r);
- return r;
- }
-
- private final int read4 () throws IOException
- {
- int byte0 = in.read();
- int byte1 = in.read();
- int byte2 = in.read();
- int byte3 = in.read();
- if (byte3 < 0)
- throw new ZipException (".zip archive ended prematurely");
- return ((byte3 & 0xFF) << 24) + ((byte2 & 0xFF) << 16)
- + ((byte1 & 0xFF) << 8) + (byte0 & 0xFF);
- }
-
- // Checksum used by this input stream.
- protected CRC32 crc;
-
- // Indicates whether end-of-stream has been reached.
- protected boolean eos;
-
- // Some constants from zlib.
- static final int Z_DEFLATED = 8;
- static final int HEAD_CRC = 0x02;
- static final int EXTRA_FIELD = 0x04;
- static final int ORIG_NAME = 0x08;
- static final int COMMENT = 0x10;
- static final int RESERVED = 0xe0;
-}
diff --git a/libjava/java/util/zip/GZIPOutputStream.java b/libjava/java/util/zip/GZIPOutputStream.java
deleted file mode 100644
index be117273cde..00000000000
--- a/libjava/java/util/zip/GZIPOutputStream.java
+++ /dev/null
@@ -1,93 +0,0 @@
-// GZIPOutputStream.java - Create a file in gzip format.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class GZIPOutputStream extends DeflaterOutputStream
-{
- public void close () throws IOException
- {
- finish ();
- out.close ();
- }
-
- public void finish () throws IOException
- {
- super.finish();
- put4 ((int) crc.getValue());
- put4 (def.getTotalIn());
- }
-
- public GZIPOutputStream (OutputStream out) throws IOException
- {
- this (out, 512);
- }
-
- public GZIPOutputStream (OutputStream out, int readsize) throws IOException
- {
- super (out, new Deflater (Deflater.DEFAULT_COMPRESSION, true), readsize);
-
- put2 (GZIPInputStream.GZIP_MAGIC);
- out.write (GZIPInputStream.Z_DEFLATED);
- // No flags for now.
- out.write (0);
- // No time either.
- put2 (0);
- put2 (0);
- // No xflags either.
- out.write (0);
- // FIXME: unknown OS.
- out.write (255);
-
- crc = new CRC32 ();
- }
-
- public synchronized void write (byte[] buf) throws IOException
- {
- write (buf, 0, buf.length);
- }
-
- public synchronized void write (byte[] buf, int off, int len)
- throws IOException
- {
- super.write(buf, off, len);
- crc.update(buf, off, len);
- }
-
- private final void put2 (int i) throws IOException
- {
- out.write (i);
- out.write (i >> 8);
- }
-
- private final void put4 (int i) throws IOException
- {
- out.write (i);
- out.write (i >> 8);
- out.write (i >> 16);
- out.write (i >> 24);
- }
-
- // Checksum used by this stream.
- protected CRC32 crc;
-}
diff --git a/libjava/java/util/zip/Inflater.java b/libjava/java/util/zip/Inflater.java
deleted file mode 100644
index dc2e24dec1e..00000000000
--- a/libjava/java/util/zip/Inflater.java
+++ /dev/null
@@ -1,98 +0,0 @@
-// Inflater.java - Decompress a data stream.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import gnu.gcj.RawData;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class Inflater
-{
- public native void end ();
-
- protected void finalize ()
- {
- end ();
- }
-
- public synchronized boolean finished ()
- {
- return is_finished;
- }
-
- public native int getAdler ();
- public native int getRemaining ();
- public native int getTotalIn ();
- public native int getTotalOut ();
-
- public int inflate (byte[] buf) throws DataFormatException
- {
- return inflate (buf, 0, buf.length);
- }
-
- public native int inflate (byte[] buf, int off, int len)
- throws DataFormatException;
-
- private native void init (boolean noHeader);
-
- public Inflater ()
- {
- this (false);
- }
-
- public Inflater (boolean noHeader)
- {
- init (noHeader);
- }
-
- public synchronized boolean needsDictionary ()
- {
- return dict_needed;
- }
-
- public synchronized boolean needsInput ()
- {
- return getRemaining () == 0;
- }
-
- public native void reset ();
-
- public void setDictionary (byte[] buf)
- {
- setDictionary (buf, 0, buf.length);
- }
-
- public native void setDictionary (byte[] buf, int off, int len);
-
- public void setInput (byte[] buf)
- {
- setInput (buf, 0, buf.length);
- }
-
- public native void setInput (byte[] buf, int off, int len);
-
- // The zlib stream.
- private RawData zstream;
-
- // True if finished.
- private boolean is_finished;
-
- // True if dictionary needed.
- private boolean dict_needed;
-}
diff --git a/libjava/java/util/zip/InflaterInputStream.java b/libjava/java/util/zip/InflaterInputStream.java
deleted file mode 100644
index e09f208349a..00000000000
--- a/libjava/java/util/zip/InflaterInputStream.java
+++ /dev/null
@@ -1,112 +0,0 @@
-// InflaterInputStream.java - Input stream filter for decompressing.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-import java.io.FilterInputStream;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * @author Tom Tromey
- * @date May 17, 1999
- */
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class InflaterInputStream extends FilterInputStream
-{
- protected void fill () throws IOException
- {
- len = in.read(buf, 0, buf.length);
- if (len != -1)
- inf.setInput(buf, 0, len);
- }
-
- public InflaterInputStream (InputStream in)
- {
- this (in, new Inflater (), 512);
- }
-
- public InflaterInputStream (InputStream in, Inflater infl)
- {
- this (in, infl, 512);
- }
-
- public InflaterInputStream (InputStream in, Inflater infl, int bufsize)
- {
- super (in);
- this.inf = infl;
- this.buf = new byte[bufsize];
- }
-
- public int read () throws IOException
- {
- byte[] buf = new byte[1];
- int r = read (buf, 0, 1);
- if (r != -1)
- r = buf[0] & 0xff;
- return r;
- }
-
- public int read (byte[] buf, int off, int len) throws IOException
- {
- if (inf.finished())
- return -1;
- if (inf.needsInput())
- fill ();
- if (this.len == -1)
- return -1; // Couldn't get any more data to feed to the Inflater
- if (inf.needsDictionary())
- return -1;
- try
- {
- return inf.inflate(buf, off, len);
- }
- catch (DataFormatException dfe)
- {
- throw new ZipException (dfe.getMessage());
- }
- }
-
- public long skip (long n) throws IOException
- {
- if (n == 0)
- return 0;
-
- int min = (int) Math.min(n, 1024);
- byte[] buf = new byte[min];
-
- long s = 0;
- while (n > 0)
- {
- int r = read (buf, 0, min);
- if (r == -1)
- break;
- n -= r;
- s += r;
- min = (int) Math.min(n, 1024);
- }
-
- return s;
- }
-
- // Buffer for delivering uncompressed data to inflater.
- protected byte[] buf;
-
- // Inflater used to decompress data.
- protected Inflater inf;
-
- // Number of read bytes in buf.
- protected int len;
-}
diff --git a/libjava/java/util/zip/ZipConstants.java b/libjava/java/util/zip/ZipConstants.java
deleted file mode 100644
index 3e3cd8a1c37..00000000000
--- a/libjava/java/util/zip/ZipConstants.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-interface ZipConstants
-{
- // Size in bytes of local file header, including signature.
- public static final int LOCAL_FILE_HEADER_SIZE = 30;
-
- // Size in bytes of the "end of central directory" record, with signature.
- public static final int END_CENTRAL_DIR_SIZE = 22;
-}
diff --git a/libjava/java/util/zip/ZipEntry.java b/libjava/java/util/zip/ZipEntry.java
deleted file mode 100644
index 99cb3aacb22..00000000000
--- a/libjava/java/util/zip/ZipEntry.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Per Bothner
- * @date January 6, 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Believed complete and correct.
- */
-
-public class ZipEntry implements ZipConstants, Cloneable
-{
- // These values were determined using a simple test program.
- public static final int STORED = 0;
- public static final int DEFLATED = 8;
-
- String comment;
- long compressedSize = -1;
- long crc = -1;
- byte[] extra;
- int method = -1;
- String name;
- long size = -1;
- long time = -1;
- long relativeOffset = -1;
-
- ZipEntry next;
-
- public ZipEntry (String name)
- {
- if (name.length() > 65535)
- throw new IllegalArgumentException ();
- this.name = name;
- }
-
- public ZipEntry (ZipEntry ent)
- {
- comment = ent.comment;
- compressedSize = ent.compressedSize;
- crc = ent.crc;
- extra = ent.extra;
- method = ent.method;
- name = ent.name;
- size = ent.size;
- time = ent.time;
- relativeOffset = ent.relativeOffset;
- }
-
- public Object clone ()
- {
- // JCL defines this as being the same as the copy constructor above,
- // except that value of the "extra" field is also copied.
- ZipEntry clone = new ZipEntry (this);
- clone.extra = (byte[]) extra.clone ();
- return clone;
- }
-
- public String getComment () { return comment; }
-
- public long getCompressedSize () { return compressedSize; }
-
- public long getCrc () { return crc; }
-
- public byte[] getExtra() { return extra; }
-
- public int getMethod () { return method; }
-
- public String getName () { return name; }
-
- public long getSize () { return size; }
-
- public long getTime () { return time; }
-
- public boolean isDirectory ()
- {
- if (name != null)
- {
- int nlen = name.length();
- if (nlen > 0 && name.charAt(nlen-1) == '/')
- return true;
- }
- return false;
- }
-
- public void setComment (String comment)
- {
- if (comment != null && comment.length() > 65535)
- throw new IllegalArgumentException ();
- this.comment = comment;
- }
-
- public void setCompressedSize (long compressedSize)
- {
- if (compressedSize < 0 || compressedSize > 0xffffffffL)
- throw new IllegalArgumentException ();
- this.compressedSize = compressedSize;
- }
-
- public void setCrc (long crc)
- {
- if (crc < 0 || crc > 0xffffffffL)
- throw new IllegalArgumentException ();
- this.crc = crc;
- }
-
- public void setExtra (byte[] extra)
- {
- if (extra != null && extra.length > 65535)
- throw new IllegalArgumentException ();
- this.extra = extra;
- }
-
- public void setMethod (int method)
- {
- if (method != DEFLATED && method != STORED)
- throw new IllegalArgumentException ();
- this.method = method;
- }
-
- public void setSize (long size)
- {
- if (size < 0 || size > 0xffffffffL)
- throw new IllegalArgumentException ();
- this.size = size;
- }
-
- public void setTime (long time)
- {
- this.time = time;
- }
-
- private final static short[] daysToMonthStart = {
- //Jan Feb Mar Apr May Jun Jul
- 0, 31, 31+28, 2*31+28, 2*31+28+30, 3*31+28+30, 3*31+28+2*30,
- // Aug Sep Oct Nov Dec
- 4*31+28+2*30, 5*31+28+2*30, 5*31+28+3*30, 6*31+28+3*30, 6*31+28+4*30};
-
- /** Convert a DOS-style type value to milliseconds since 1970. */
- static long timeFromDOS (int date, int time)
- {
- int sec = 2 * (time & 0x1f);
- int min = (time >> 5) & 0x3f;
- int hrs = (time >> 11) & 0x1f;
- int day = date & 0x1f;
- int mon = ((date >> 5) & 0xf) - 1;
- int year = ((date >> 9) & 0x7f) + 10; /* Since 1970. */
-
- // Guard against invalid or missing date causing IndexOutOfBoundsException.
- if (mon < 0 || mon > 11)
- return -1;
-
- long mtime = (((hrs * 60) + min) * 60 + sec) * 1000;
-
- // Leap year calculations are rather trivial in this case ...
- int days = 365 * year + ((year+1)>>2);
- days += daysToMonthStart[mon];
- if ((year & 3) == 0 && mon > 1)
- days++;
- days += day;
- return (days * 24*60*60L + ((hrs * 60) + min) * 60 + sec) * 1000L;
- }
-
- public String toString () { return name; }
-
- public int hashCode () { return name.hashCode (); }
-}
diff --git a/libjava/java/util/zip/ZipException.java b/libjava/java/util/zip/ZipException.java
deleted file mode 100644
index a4a119c7480..00000000000
--- a/libjava/java/util/zip/ZipException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// ZipException.java
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libjava.
-
-This software is copyrighted work licensed under the terms of the
-Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-details. */
-
-package java.util.zip;
-
-/**
- * @author Per Bothner
- * @date January 9, 1999.
- */
-
-/* Written using on-line Java Platform 1.2 API Specification.
- * Believed complete and correct.
- */
-
-public class ZipException extends java.io.IOException
-{
- public ZipException ()
- {
- super();
- }
-
- public ZipException (String msg)
- {
- super(msg);
- }
-}
diff --git a/libjava/java/util/zip/ZipFile.java b/libjava/java/util/zip/ZipFile.java
deleted file mode 100644
index 58e2748fd12..00000000000
--- a/libjava/java/util/zip/ZipFile.java
+++ /dev/null
@@ -1,234 +0,0 @@
-// ZipFile.java - Read contents of a ZIP file.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-import java.io.*;
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class ZipFile implements ZipConstants
-{
- public static final int OPEN_READ = 1;
- public static final int OPEN_DELETE = 4;
-
- public ZipFile (String fname) throws IOException
- {
- this(new File(fname));
- }
-
- public ZipFile (File f) throws IOException
- {
- this(f, OPEN_READ);
- }
-
- public ZipFile (File f, int mode) throws IOException
- {
- if (mode != OPEN_READ && mode != (OPEN_READ | OPEN_DELETE))
- throw new IllegalArgumentException
- ("mode can only be OPEN_READ or OPEN_READ | OPEN_DELETE");
-
- if ((mode & OPEN_DELETE) != 0)
- {
- delete_on_close = f;
- f.deleteOnExit();
- }
- else
- {
- delete_on_close = null;
- }
-
- file = new RandomAccessFile(f, "r");
- name = f.getName();
- readDirectory ();
- }
-
- void readDirectory () throws IOException
- {
- long size = file.length ();
- if (size < ZipConstants.END_CENTRAL_DIR_SIZE)
- throw new ZipException ("zipfile too short");
- // We do not handle a "zipfile comment", which the appnote says can
- // be at the end of a .zip file. We could handle this by seeking
- // to the beginning and reading forwards.
- file.seek(size - ZipConstants.END_CENTRAL_DIR_SIZE);
- if (file.read() != 'P'
- || file.read() != 'K'
- || file.read() != '\005'
- || file.read() != '\006')
- throw new ZipException("not a valid zipfile");
- file.skipBytes(6);
- numEntries = readu2();
- int dir_size = read4 (); // Read "size of the central directory".
- file.seek(size - (dir_size + ZipConstants.END_CENTRAL_DIR_SIZE));
-
- ZipEntry last = null;
- for (int i = 0; i < numEntries; i++)
- {
- file.skipBytes(10);
- int method = readu2();
- int modtime = readu2();
- int moddate = readu2();
- int crc = read4();
- int compressedSize = read4();
- int uncompressedSize = read4();
- int filenameLength = readu2();
- int extraLength = readu2();
- int commentLength = readu2();
- int diskNumberStart = readu2();
- int intAttributes = readu2();
- int extAttributes = read4();
- int relativeOffset = read4();
- byte[] bname = new byte[filenameLength];
- file.readFully(bname);
- ZipEntry entry = new ZipEntry(new String(bname, "8859_1"));
- if (extraLength > 0)
- {
- byte[] bextra = new byte[extraLength];
- file.readFully(bextra);
- entry.extra = bextra;
- }
- if (commentLength > 0)
- {
- byte[] bcomment = new byte[commentLength];
- file.readFully(bcomment);
- entry.comment = new String(bcomment, "8859_1");
- }
- entry.compressedSize = compressedSize;
- entry.size = uncompressedSize;
- entry.crc = (long) crc & 0xffffffffL;
- entry.method = method;
- entry.relativeOffset = relativeOffset;
- entry.time = ZipEntry.timeFromDOS(moddate, modtime);
- if (last == null)
- entries = entry;
- else
- last.next = entry;
- last = entry;
- }
- }
-
- public java.util.Enumeration entries()
- {
- return new ZipEnumeration(this);
- }
-
- public void close() throws IOException
- {
- file.close();
- entries = null;
- numEntries = 0;
- if (delete_on_close != null)
- delete_on_close.delete();
- }
-
- public ZipEntry getEntry(String name)
- {
- for (ZipEntry entry = entries; entry != null; entry = entry.next)
- {
- if (name.equals(entry.getName()))
- return entry;
- }
- return null;
- }
-
- public InputStream getInputStream(ZipEntry ze) throws IOException
- {
- byte[] buffer = new byte[(int) ze.getCompressedSize()];
-
- /* Read the size of the extra field, and skip to the start of the
- data. */
- file.seek (ze.relativeOffset + ZipConstants.LOCAL_FILE_HEADER_SIZE - 2);
- int extraFieldLength = readu2();
- file.skipBytes (ze.getName().length() + extraFieldLength);
-
- file.readFully(buffer);
-
- InputStream is = new ByteArrayInputStream (buffer);
- if (ze.getMethod() == ZipEntry.DEFLATED)
- // Data in zipfile entries does not have a zlib header, so construct
- // an Inflater with the `nowrapper' option.
- is = new InflaterInputStream (is, new Inflater (true), 512);
- return is;
- }
-
- public String getName ()
- {
- return name;
- }
-
- public int size ()
- {
- if (entries == null)
- throw new IllegalStateException("ZipFile already closed");
- else
- return numEntries;
- }
-
- protected void finalize () throws IOException
- {
- close();
- }
-
- private int readu2 () throws IOException
- {
- int byte0 = file.read();
- int byte1 = file.read();
- if (byte0 < 0 || byte1 < 0)
- throw new ZipException (".zip archive ended prematurely");
- return ((byte1 & 0xFF) << 8) | (byte0 & 0xFF);
- }
-
- private int read4 () throws IOException
- {
- int byte0 = file.read();
- int byte1 = file.read();
- int byte2 = file.read();
- int byte3 = file.read();
- if (byte3 < 0)
- throw new ZipException (".zip archive ended prematurely");
- return ((byte3 & 0xFF) << 24) + ((byte2 & 0xFF) << 16)
- + ((byte1 & 0xFF) << 8) + (byte0 & 0xFF);
- }
-
- ZipEntry entries;
- int numEntries;
- RandomAccessFile file;
- String name;
- /** File to delete on close or null. */
- File delete_on_close;
-
-}
-
-final class ZipEnumeration implements java.util.Enumeration
-{
- ZipEntry entry;
-
- ZipEnumeration (ZipFile zfile)
- {
- entry = zfile.entries;
- }
-
- public boolean hasMoreElements ()
- {
- return entry != null;
- }
-
- public Object nextElement ()
- {
- ZipEntry cur = entry;
- if (cur == null)
- throw new java.util.NoSuchElementException();
- entry = cur.next;
- return cur;
- }
-}
diff --git a/libjava/java/util/zip/ZipInputStream.java b/libjava/java/util/zip/ZipInputStream.java
deleted file mode 100644
index 79efb59f06c..00000000000
--- a/libjava/java/util/zip/ZipInputStream.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-import java.io.*;
-
-/**
- * @author Per Bothner
- * @date May 1999.
- */
-
-/*
- * Written using on-line Java Platform 1.2 API Specification, as well
- * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Quite incomplete, but can read uncompressed .zip archives.
- */
-
-// JDK1.2 has "protected ZipEntry createZipEntry(String)" but is very
-// vague about what the method does. FIXME.
-// We do not calculate the CRC and compare it with the specified value;
-// we probably should. FIXME.
-
-
-public class ZipInputStream extends InflaterInputStream implements ZipConstants
-{
- public ZipInputStream (InputStream in)
- {
- super (in, new Inflater (true));
- }
-
- public ZipEntry getNextEntry () throws IOException
- {
- if (current != null)
- closeEntry();
- if (in.read() != 'P'
- || in.read() != 'K')
- return null;
- int code = in.read();
- while (code == '\001')
- {
- code = in.read();
- if (code != '\002')
- return null;
- in.skip(16);
- int size = read4();
- in.skip(4);
- int fname_length = readu2();
- int extra_length = readu2();
- int fcomment_length = readu2();
- // `12' is the number of bytes between the comment length
- // field and the end of the fixed part of the header:
- // 2 bytes for `disk number start'
- // 2 bytes for `internal file attributes'
- // 4 bytes for `external file attributes'
- // 4 bytes for `relative offset of local header'
- in.skip(12 + fname_length + extra_length + fcomment_length);
- if (in.read() != 'P' || in.read() != 'K')
- return null;
- code = in.read();
- }
- if (code == '\005')
- {
- if (in.read() != '\006')
- return null;
- in.skip(16);
- int comment_size = readu2();
- in.skip(comment_size);
- if (in.read() != 'P' || in.read() != 'K')
- return null;
- code = in.read();
- }
- if (code != '\003'
- || in.read() != '\004')
- return null;
- int ex_version = readu2();
- current_flags = readu2();
- int method = readu2();
- int modtime = readu2();
- int moddate = readu2();
- int crc = read4();
- int compressedSize = read4();
- int uncompressedSize = read4();
- int filenameLength = readu2();
- int extraLength = readu2();
- byte[] bname = new byte[filenameLength];
- readFully(bname);
- ZipEntry entry = createZipEntry(new String(bname, "8859_1"));
- if (extraLength > 0)
- {
- byte[] bextra = new byte[extraLength];
- readFully(bextra);
- entry.extra = bextra;
- }
- entry.compressedSize = compressedSize;
- entry.size = uncompressedSize;
- entry.crc = (long) crc & 0xffffffffL;
- entry.method = method;
- entry.time = ZipEntry.timeFromDOS(moddate, modtime);
- current = entry;
- avail = uncompressedSize;
- compressed_bytes = compressedSize;
- return entry;
- }
-
- // We override fill to let us control how much data gets read from
- // the underlying input stream. This lets us avoid having to push
- // back data.
- protected void fill () throws IOException
- {
- int count = buf.length;
- if (count > compressed_bytes)
- count = compressed_bytes;
- len = in.read(buf, 0, count);
- if (len != -1)
- {
- compressed_bytes -= len;
- inf.setInput(buf, 0, len);
- }
- }
-
- protected ZipEntry createZipEntry (String name)
- {
- return new ZipEntry (name);
- }
-
- public int read (byte[] b, int off, int len) throws IOException
- {
- if (len > avail)
- len = avail;
- int count;
- if (current.method == Deflater.DEFLATED)
- count = super.read(b, off, len);
- else
- count = in.read(b, off, len);
- if (count == -1 || avail == 0)
- {
- inf.reset();
- count = -1;
- }
- else
- avail -= count;
- return count;
- }
-
- public long skip (long n) throws IOException
- {
- if (n > avail)
- n = avail;
- long count;
- if (current.method == Deflater.DEFLATED)
- count = super.skip(n);
- else
- count = in.skip(n);
- avail = avail - (int) count;
- return count;
- }
-
- public int available() {
- if (closed)
- return 0;
- else
- return 1;
- }
-
- private void readFully (byte[] b) throws IOException
- {
- int off = 0;
- int len = b.length;
- while (len > 0)
- {
- int count = in.read(b, off, len);
- if (count <= 0)
- throw new EOFException(".zip archive ended prematurely");
- off += count;
- len -= count;
- }
- }
-
- private int readu2 () throws IOException
- {
- int byte0 = in.read();
- int byte1 = in.read();
- if (byte0 < 0 || byte1 < 0)
- throw new EOFException(".zip archive ended prematurely");
- return ((byte1 & 0xFF) << 8) | (byte0 & 0xFF);
- }
-
- private int read4 () throws IOException
- {
- int byte0 = in.read();
- int byte1 = in.read();
- int byte2 = in.read();
- int byte3 = in.read();
- if (byte3 < 0)
- throw new EOFException(".zip archive ended prematurely");
- return ((byte3 & 0xFF) << 24) + ((byte2 & 0xFF) << 16)
- + ((byte1 & 0xFF) << 8) + (byte0 & 0xFF);
- }
-
- public void closeEntry () throws IOException
- {
- if (current != null)
- {
- if (avail > 0)
- skip (avail);
- if ((current_flags & 8) != 0)
- {
- int sig = read4();
- if (sig != 0x04034b50)
- throw new ZipException("bad/missing magic number at end of .zip entry");
- int crc = read4();
- int compressedSize = read4();
- int uncompressedSize = read4();
- if (current.compressedSize != compressedSize
- || current.size != uncompressedSize
- || current.crc != crc)
- throw new ZipException("bad data descriptor at end of .zip entry");
- }
- current = null;
- avail = 0;
- }
- }
-
- public void close () throws IOException
- {
- current = null;
- closed = true;
- super.close();
- }
-
- private ZipEntry current;
- private int current_flags;
- // Number of uncompressed bytes to be read.
- private int avail;
- // Number of bytes we can read from underlying stream.
- private int compressed_bytes;
- // Is this ZipInputStream closed? Set by the close() method.
- private boolean closed = false;
-}
diff --git a/libjava/java/util/zip/ZipOutputStream.java b/libjava/java/util/zip/ZipOutputStream.java
deleted file mode 100644
index afd5664ca28..00000000000
--- a/libjava/java/util/zip/ZipOutputStream.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package java.util.zip;
-import java.io.*;
-
-/* Written using on-line Java Platform 1.2 API Specification
- * and JCL book.
- * Believed complete and correct.
- */
-
-public class ZipOutputStream extends DeflaterOutputStream
- implements ZipConstants
-{
- public static final int STORED = 0;
- public static final int DEFLATED = 8;
-
- public void close () throws IOException
- {
- finish ();
- out.close();
- }
-
- public void closeEntry () throws IOException
- {
- int uncompressed_size = def.getTotalIn();
- int compressed_size = def.getTotalOut();
- long crc = filter.getChecksum().getValue();
-
- bytes_written += compressed_size;
-
- bytes_written += put4 (0x08074b50);
- if (current.getCrc() == -1 || current.getCompressedSize() == -1
- || current.getSize() == -1)
- {
- current.setCrc(crc);
- current.compressedSize = compressed_size;
- current.setSize(uncompressed_size);
- }
- else
- {
- if (current.getCrc() != crc
- || current.getCompressedSize() != compressed_size
- || current.getSize() != uncompressed_size)
- throw new ZipException ("zip entry field incorrect");
- }
- bytes_written += put4 ((int) (current.getCrc()));
- bytes_written += put4 ((int) (current.getCompressedSize()));
- bytes_written += put4 ((int) (current.getSize()));
-
- current.next = chain;
- chain = current;
- current = null;
- filter = null;
- }
-
- public void finish () throws IOException
- {
- if (current != null)
- closeEntry ();
-
- // Write the central directory.
- long offset = bytes_written;
- int count = 0;
- int bytes = 0;
- while (chain != null)
- {
- bytes += write_entry (chain, false);
- ++count;
- chain = chain.next;
- }
-
- // Write the end of the central directory record.
- put4 (0x06054b50);
- // Disk number.
- put2 (0);
- // Another disk number.
- put2 (0);
- put2 (count);
- put4 (bytes);
- put4 ((int) offset);
-
- byte[] c = comment.getBytes("8859_1");
- put2 (c.length);
- out.write(c);
- out.write((byte) 0);
- }
-
- // Helper for finish and putNextEntry.
- private int write_entry (ZipEntry entry, boolean is_local)
- throws IOException
- {
- long offset = bytes_written;
-
- int bytes = put4 (is_local ? 0x04034b50 : 0x02014b50);
- if (! is_local)
- bytes += put_version ();
- bytes += put_version ();
-
- boolean crc_after = false;
- if (is_local
- && (entry.getCrc() == -1 || entry.getCompressedSize() == -1
- || entry.getSize() == -1))
- crc_after = true;
- // For the bits field we always indicate `normal' compression,
- // even if that isn't true.
- bytes += put2 (crc_after ? (1 << 3) : 0);
- bytes += put2 (entry.method);
-
- bytes += put2(0); // time - FIXME
- bytes += put2(0); // date - FIXME
-
- if (crc_after)
- {
- // CRC, compressedSize, and Size are always 0 in this header.
- // The actual values are given after the entry.
- bytes += put4 (0);
- bytes += put4 (0);
- bytes += put4 (0);
- }
- else
- {
- bytes += put4 ((int) (entry.getCrc()));
- bytes += put4 ((int) (entry.getCompressedSize()));
- bytes += put4 ((int) (entry.getSize()));
- }
-
- byte[] name = entry.name.getBytes("8859_1");
- bytes += put2 (name.length);
- bytes += put2 (entry.extra == null ? 0 : entry.extra.length);
-
- byte[] comment = null;
- if (! is_local)
- {
- if (entry.getComment() == null)
- bytes += put2 (0);
- else
- {
- comment = entry.getComment().getBytes("8859_1");
- bytes += put2 (comment.length);
- }
-
- // Disk number start.
- bytes += put2 (0);
- // Internal file attributes.
- bytes += put2 (0);
- // External file attributes.
- bytes += put2 (0);
- // Relative offset of local header.
- bytes += put2 ((int) offset);
- }
-
- out.write (name);
- out.write ((byte) 0);
- bytes += name.length + 1;
- if (entry.extra != null)
- {
- out.write(entry.extra);
- out.write((byte) 0);
- bytes += entry.extra.length + 1;
- }
- if (comment != null)
- {
- out.write(comment);
- out.write((byte) 0);
- bytes += comment.length + 1;
- }
-
- bytes_written += bytes;
- return bytes;
- }
-
- public void putNextEntry (ZipEntry entry) throws IOException
- {
- if (current != null)
- closeEntry ();
-
- if (entry.method < 0 )
- entry.method = method;
- if (entry.method == STORED)
- {
- if (entry.getSize() == -1 || entry.getCrc() == -1)
- throw new ZipException ("required entry not set");
- // Just in case.
- entry.compressedSize = entry.getSize();
- }
- write_entry (entry, true);
- current = entry;
- int compr = (method == STORED) ? Deflater.NO_COMPRESSION : level;
- def.reset();
- def.setLevel(compr);
- filter = new CheckedOutputStream (new DeflaterOutputStream (out, def),
- new CRC32 ());
- }
-
- public void setLevel (int level)
- {
- if (level != Deflater.DEFAULT_COMPRESSION
- && (level < Deflater.NO_COMPRESSION
- || level > Deflater.BEST_COMPRESSION))
- throw new IllegalArgumentException ();
- this.level = level;
- }
-
- public void setMethod (int method)
- {
- if (method != DEFLATED && method != STORED)
- throw new IllegalArgumentException ();
- this.method = method;
- }
-
- public void setComment (String comment)
- {
- if (comment.length() > 65535)
- throw new IllegalArgumentException ();
- this.comment = comment;
- }
-
- public synchronized void write (byte[] buf, int off, int len)
- throws IOException
- {
- if (filter == null)
- throw new ZipException ("no open zip entry");
- filter.write(buf, off, len);
- }
-
- public ZipOutputStream (OutputStream out)
- {
- super (out);
- def = new Deflater (level, true);
- }
-
- private int put2 (int i) throws IOException
- {
- out.write (i);
- out.write (i >> 8);
- return 2;
- }
-
- private int put4 (int i) throws IOException
- {
- out.write (i);
- out.write (i >> 8);
- out.write (i >> 16);
- out.write (i >> 24);
- return 4;
- }
-
- private int put_version () throws IOException
- {
- // FIXME: for now we assume Unix, and we ignore the version
- // number.
- return put2 (3 << 8);
- }
-
- // The entry we are currently writing, or null if we've called
- // closeEntry.
- private ZipEntry current;
- // The chain of entries which have been written to this file.
- private ZipEntry chain;
- // The output stream to which data should be sent.
- private CheckedOutputStream filter;
-
- private int method = DEFLATED;
- private int level = Deflater.DEFAULT_COMPRESSION;
- private String comment = "";
- private long bytes_written;
-
- // The Deflater we use.
- private Deflater def;
-}
diff --git a/libjava/java/util/zip/natDeflater.cc b/libjava/java/util/zip/natDeflater.cc
deleted file mode 100644
index 8ef6cf66d6e..00000000000
--- a/libjava/java/util/zip/natDeflater.cc
+++ /dev/null
@@ -1,214 +0,0 @@
-// natDeflater.cc - Implementation of Deflater native methods.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Written by Tom Tromey <tromey@cygnus.com>
-
-#include <config.h>
-
-#include <zlib.h>
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/util/zip/Deflater.h>
-#include <java/util/zip/DataFormatException.h>
-
-#include <java/lang/InternalError.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-
-extern void *_Jv_ZMalloc (void *, uInt nitems, uInt size);
-extern void _Jv_ZFree (void *, void *addr);
-
-
-
-jint
-java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- if (len == 0)
- return 0;
-
- s->next_out = (Bytef *) (elements (buf) + off);
- s->avail_out = len;
-
- switch (::deflate (s, flush_flag))
- {
- case Z_STREAM_END:
- is_finished = true;
- if (s->avail_out == (unsigned int) len)
- return -1;
- break;
-
- case Z_STREAM_ERROR:
- case Z_BUF_ERROR:
- // FIXME?
- _Jv_Throw (new java::lang::InternalError);
- break;
-
- case Z_OK:
- break;
- }
-
- return len - s->avail_out;
-}
-
-void
-java::util::zip::Deflater::end ()
-{
- JvSynchronize sync (this);
- // Just ignore errors.
- deflateEnd ((z_streamp) zstream);
- _Jv_Free (zstream);
- zstream = NULL;
-}
-
-void
-java::util::zip::Deflater::finish ()
-{
- JvSynchronize sync (this);
- flush_flag = Z_FINISH;
-}
-
-jint
-java::util::zip::Deflater::getAdler ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->adler;
-}
-
-jint
-java::util::zip::Deflater::getTotalIn ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->total_in;
-}
-
-jint
-java::util::zip::Deflater::getTotalOut ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->total_out;
-}
-
-jboolean
-java::util::zip::Deflater::needsInput ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->avail_in == 0;
-}
-
-void
-java::util::zip::Deflater::reset ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- // Just ignore errors.
- deflateReset (s);
- flush_flag = 0;
-}
-
-void
-java::util::zip::Deflater::setDictionary (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- // Ignore errors.
- deflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
-}
-
-void
-java::util::zip::Deflater::setInput (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- s->next_in = (Bytef *) (elements (buf) + off);
- s->avail_in = len;
-}
-
-void
-java::util::zip::Deflater::update ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- int strat = Z_DEFAULT_STRATEGY;
- switch (strategy)
- {
- case DEFAULT_STRATEGY:
- strat = Z_DEFAULT_STRATEGY;
- break;
- case FILTERED:
- strat = Z_FILTERED;
- break;
- case HUFFMAN_ONLY:
- strat = Z_HUFFMAN_ONLY;
- break;
- default:
- JvFail ("unexpected strategy");
- }
-
- // Ignore errors.
- deflateParams (s, level, strat);
-}
-
-void
-java::util::zip::Deflater::init (jint level, jboolean no_header)
-{
- z_stream_s *stream = (z_stream_s *) _Jv_Malloc (sizeof (z_stream_s));
- stream->next_in = Z_NULL;
- stream->avail_in = 0;
- stream->zalloc = _Jv_ZMalloc;
- stream->zfree = _Jv_ZFree;
- stream->opaque = NULL;
-
- // Handle NO_HEADER using undocumented zlib feature.
- int wbits = MAX_WBITS;
- if (no_header)
- wbits = - wbits;
-
-#define DEFAULT_MEM_LEVEL 8
- if (deflateInit2 (stream, level, Z_DEFLATED, wbits,
- DEFAULT_MEM_LEVEL, Z_DEFAULT_STRATEGY) != Z_OK)
- {
- jstring msg = NULL;
- if (stream->msg != NULL)
- msg = JvNewStringLatin1 (stream->msg);
- _Jv_Throw (new java::lang::InternalError (msg));
- }
-
- zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
- is_finished = false;
- flush_flag = 0;
-}
diff --git a/libjava/java/util/zip/natInflater.cc b/libjava/java/util/zip/natInflater.cc
deleted file mode 100644
index f3d258cdd59..00000000000
--- a/libjava/java/util/zip/natInflater.cc
+++ /dev/null
@@ -1,206 +0,0 @@
-// natInflater.cc - Implementation of Inflater native methods.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// Written by Tom Tromey <tromey@cygnus.com>
-
-#include <config.h>
-
-#include <zlib.h>
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/util/zip/Inflater.h>
-#include <java/util/zip/DataFormatException.h>
-
-#include <java/lang/InternalError.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/OutOfMemoryError.h>
-
-
-
-// A couple of helper functions used to interface with zlib's
-// allocation.
-
-void *
-_Jv_ZMalloc (void *, uInt nitems, uInt size)
-{
- return _Jv_Malloc (nitems * size);
-}
-
-void
-_Jv_ZFree (void *, void *addr)
-{
- _Jv_Free (addr);
-}
-
-
-
-void
-java::util::zip::Inflater::end ()
-{
- JvSynchronize sync (this);
- // Just ignore errors.
- inflateEnd ((z_streamp) zstream);
- _Jv_Free (zstream);
- zstream = NULL;
-}
-
-jint
-java::util::zip::Inflater::getAdler ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->adler;
-}
-
-jint
-java::util::zip::Inflater::getRemaining ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->avail_in;
-}
-
-jint
-java::util::zip::Inflater::getTotalIn ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->total_in;
-}
-
-jint
-java::util::zip::Inflater::getTotalOut ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- return s->total_out;
-}
-
-jint
-java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- if (len == 0)
- return 0;
-
- s->next_out = (Bytef *) (elements (buf) + off);
- s->avail_out = len;
-
- switch (::inflate (s, Z_SYNC_FLUSH))
- {
- case Z_STREAM_END:
- is_finished = true;
- if (s->avail_out == (unsigned int) len)
- return -1;
- break;
-
- case Z_NEED_DICT:
- dict_needed = true;
- break;
-
- case Z_DATA_ERROR:
- _Jv_Throw (new java::util::zip::DataFormatException
- (s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg)));
- break;
-
- case Z_MEM_ERROR:
- _Jv_Throw (new java::lang::OutOfMemoryError);
- break;
-
- case Z_BUF_ERROR:
- // FIXME?
- _Jv_Throw (new java::lang::InternalError);
- break;
-
- case Z_OK:
- break;
- }
-
- return len - s->avail_out;
-}
-
-void
-java::util::zip::Inflater::reset ()
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
- // Just ignore errors.
- inflateReset (s);
-}
-
-void
-java::util::zip::Inflater::setDictionary (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- // Ignore errors.
- inflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
- dict_needed = false;
-}
-
-void
-java::util::zip::Inflater::setInput (jbyteArray buf, jint off, jint len)
-{
- JvSynchronize sync (this);
- z_streamp s = (z_streamp) zstream;
-
- if (! buf)
- _Jv_Throw (new java::lang::NullPointerException);
- if (off < 0 || len < 0 || off + len > buf->length)
- _Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException);
-
- s->next_in = (Bytef *) (elements (buf) + off);
- s->avail_in = len;
-}
-
-void
-java::util::zip::Inflater::init (jboolean no_header)
-{
- z_stream_s *stream = (z_stream_s *) _Jv_Malloc (sizeof (z_stream_s));
- stream->next_in = Z_NULL;
- stream->avail_in = 0;
- stream->zalloc = _Jv_ZMalloc;
- stream->zfree = _Jv_ZFree;
- stream->opaque = NULL;
-
- // Handle NO_HEADER using undocumented zlib feature.
- int wbits = MAX_WBITS;
- if (no_header)
- wbits = - wbits;
-
- if (inflateInit2 (stream, wbits) != Z_OK)
- {
- jstring msg = NULL;
- if (stream->msg != NULL)
- msg = JvNewStringLatin1 (stream->msg);
- _Jv_Throw (new java::lang::InternalError (msg));
- }
-
- zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
- is_finished = false;
- dict_needed = false;
-}
diff --git a/libjava/jni.cc b/libjava/jni.cc
deleted file mode 100644
index db13cdfb1a3..00000000000
--- a/libjava/jni.cc
+++ /dev/null
@@ -1,2339 +0,0 @@
-// jni.cc - JNI implementation, including the jump table.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stddef.h>
-#include <string.h>
-
-// Define this before including jni.h.
-#define __GCJ_JNI_IMPL__
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java-assert.h>
-#include <jni.h>
-#ifdef ENABLE_JVMPI
-#include <jvmpi.h>
-#endif
-
-#include <java/lang/Class.h>
-#include <java/lang/ClassLoader.h>
-#include <java/lang/Throwable.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/StringIndexOutOfBoundsException.h>
-#include <java/lang/AbstractMethodError.h>
-#include <java/lang/InstantiationException.h>
-#include <java/lang/NoSuchFieldError.h>
-#include <java/lang/NoSuchMethodError.h>
-#include <java/lang/reflect/Constructor.h>
-#include <java/lang/reflect/Method.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/lang/OutOfMemoryError.h>
-#include <java/util/Hashtable.h>
-#include <java/lang/Integer.h>
-#include <gnu/gcj/jni/NativeThread.h>
-
-#include <gcj/method.h>
-#include <gcj/field.h>
-
-#include <java-interp.h>
-
-#define ClassClass _CL_Q34java4lang5Class
-extern java::lang::Class ClassClass;
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-
-#define ThrowableClass _CL_Q34java4lang9Throwable
-extern java::lang::Class ThrowableClass;
-#define MethodClass _CL_Q44java4lang7reflect6Method
-extern java::lang::Class MethodClass;
-#define ThreadGroupClass _CL_Q34java4lang11ThreadGroup
-extern java::lang::Class ThreadGroupClass;
-#define NativeThreadClass _CL_Q43gnu3gcj3jni12NativeThread
-extern java::lang::Class ThreadGroupClass;
-
-// This enum is used to select different template instantiations in
-// the invocation code.
-enum invocation_type
-{
- normal,
- nonvirtual,
- static_type,
- constructor
-};
-
-// Forward declarations.
-extern struct JNINativeInterface _Jv_JNIFunctions;
-extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
-
-// Number of slots in the default frame. The VM must allow at least
-// 16.
-#define FRAME_SIZE 32
-
-// Mark value indicating this is an overflow frame.
-#define MARK_NONE 0
-// Mark value indicating this is a user frame.
-#define MARK_USER 1
-// Mark value indicating this is a system frame.
-#define MARK_SYSTEM 2
-
-// This structure is used to keep track of local references.
-struct _Jv_JNI_LocalFrame
-{
- // This is true if this frame object represents a pushed frame (eg
- // from PushLocalFrame).
- int marker : 2;
-
- // Number of elements in frame.
- int size : 30;
-
- // Next frame in chain.
- _Jv_JNI_LocalFrame *next;
-
- // The elements. These are allocated using the C "struct hack".
- jobject vec[0];
-};
-
-// This holds a reference count for all local and global references.
-static java::util::Hashtable *ref_table;
-
-// The only VM.
-static JavaVM *the_vm;
-
-#ifdef ENABLE_JVMPI
-// The only JVMPI interface description.
-static JVMPI_Interface _Jv_JVMPI_Interface;
-
-static jint
-jvmpiEnableEvent (jint event_type, void *)
-{
- switch (event_type)
- {
- case JVMPI_EVENT_OBJECT_ALLOC:
- _Jv_JVMPI_Notify_OBJECT_ALLOC = _Jv_JVMPI_Interface.NotifyEvent;
- break;
-
- case JVMPI_EVENT_THREAD_START:
- _Jv_JVMPI_Notify_THREAD_START = _Jv_JVMPI_Interface.NotifyEvent;
- break;
-
- case JVMPI_EVENT_THREAD_END:
- _Jv_JVMPI_Notify_THREAD_END = _Jv_JVMPI_Interface.NotifyEvent;
- break;
-
- default:
- return JVMPI_NOT_AVAILABLE;
- }
-
- return JVMPI_SUCCESS;
-}
-
-static jint
-jvmpiDisableEvent (jint event_type, void *)
-{
- switch (event_type)
- {
- case JVMPI_EVENT_OBJECT_ALLOC:
- _Jv_JVMPI_Notify_OBJECT_ALLOC = NULL;
- break;
-
- default:
- return JVMPI_NOT_AVAILABLE;
- }
-
- return JVMPI_SUCCESS;
-}
-#endif
-
-
-
-void
-_Jv_JNI_Init (void)
-{
- ref_table = new java::util::Hashtable;
-
-#ifdef ENABLE_JVMPI
- _Jv_JVMPI_Interface.version = 1;
- _Jv_JVMPI_Interface.EnableEvent = &jvmpiEnableEvent;
- _Jv_JVMPI_Interface.DisableEvent = &jvmpiDisableEvent;
- _Jv_JVMPI_Interface.EnableGC = &_Jv_EnableGC;
- _Jv_JVMPI_Interface.DisableGC = &_Jv_DisableGC;
- _Jv_JVMPI_Interface.RunGC = &_Jv_RunGC;
-#endif
-}
-
-// Tell the GC that a certain pointer is live.
-static void
-mark_for_gc (jobject obj)
-{
- JvSynchronize sync (ref_table);
-
- using namespace java::lang;
- Integer *refcount = (Integer *) ref_table->get (obj);
- jint val = (refcount == NULL) ? 0 : refcount->intValue ();
- // FIXME: what about out of memory error?
- ref_table->put (obj, new Integer (val + 1));
-}
-
-// Unmark a pointer.
-static void
-unmark_for_gc (jobject obj)
-{
- JvSynchronize sync (ref_table);
-
- using namespace java::lang;
- Integer *refcount = (Integer *) ref_table->get (obj);
- JvAssert (refcount);
- jint val = refcount->intValue () - 1;
- if (val == 0)
- ref_table->remove (obj);
- else
- // FIXME: what about out of memory error?
- ref_table->put (obj, new Integer (val));
-}
-
-
-
-static jobject
-_Jv_JNI_NewGlobalRef (JNIEnv *, jobject obj)
-{
- mark_for_gc (obj);
- return obj;
-}
-
-static void
-_Jv_JNI_DeleteGlobalRef (JNIEnv *, jobject obj)
-{
- unmark_for_gc (obj);
-}
-
-static void
-_Jv_JNI_DeleteLocalRef (JNIEnv *env, jobject obj)
-{
- _Jv_JNI_LocalFrame *frame;
-
- for (frame = env->locals; frame != NULL; frame = frame->next)
- {
- for (int i = 0; i < FRAME_SIZE; ++i)
- {
- if (frame->vec[i] == obj)
- {
- frame->vec[i] = NULL;
- unmark_for_gc (obj);
- return;
- }
- }
-
- // Don't go past a marked frame.
- JvAssert (frame->marker == MARK_NONE);
- }
-
- JvAssert (0);
-}
-
-static jint
-_Jv_JNI_EnsureLocalCapacity (JNIEnv *env, jint size)
-{
- // It is easier to just always allocate a new frame of the requested
- // size. This isn't the most efficient thing, but for now we don't
- // care. Note that _Jv_JNI_PushLocalFrame relies on this right now.
-
- _Jv_JNI_LocalFrame *frame;
- try
- {
- frame = (_Jv_JNI_LocalFrame *) _Jv_Malloc (sizeof (_Jv_JNI_LocalFrame)
- + size * sizeof (jobject));
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return JNI_ERR;
- }
-
- frame->marker = MARK_NONE;
- frame->size = size;
- memset (&frame->vec[0], 0, size * sizeof (jobject));
- frame->next = env->locals;
- env->locals = frame;
-
- return 0;
-}
-
-static jint
-_Jv_JNI_PushLocalFrame (JNIEnv *env, jint size)
-{
- jint r = _Jv_JNI_EnsureLocalCapacity (env, size);
- if (r < 0)
- return r;
-
- // The new frame is on top.
- env->locals->marker = MARK_USER;
-
- return 0;
-}
-
-static jobject
-_Jv_JNI_NewLocalRef (JNIEnv *env, jobject obj)
-{
- // Try to find an open slot somewhere in the topmost frame.
- _Jv_JNI_LocalFrame *frame = env->locals;
- bool done = false, set = false;
- while (frame != NULL && ! done)
- {
- for (int i = 0; i < frame->size; ++i)
- if (frame->vec[i] == NULL)
- {
- set = true;
- done = true;
- frame->vec[i] = obj;
- break;
- }
- }
-
- if (! set)
- {
- // No slots, so we allocate a new frame. According to the spec
- // we could just die here. FIXME: return value.
- _Jv_JNI_EnsureLocalCapacity (env, 16);
- // We know the first element of the new frame will be ok.
- env->locals->vec[0] = obj;
- }
-
- mark_for_gc (obj);
- return obj;
-}
-
-static jobject
-_Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result, int stop)
-{
- _Jv_JNI_LocalFrame *rf = env->locals;
-
- bool done = false;
- while (rf != NULL && ! done)
- {
- for (int i = 0; i < rf->size; ++i)
- if (rf->vec[i] != NULL)
- unmark_for_gc (rf->vec[i]);
-
- // If the frame we just freed is the marker frame, we are done.
- done = (rf->marker == stop);
-
- _Jv_JNI_LocalFrame *n = rf->next;
- // When N==NULL, we've reached the stack-allocated frame, and we
- // must not free it. However, we must be sure to clear all its
- // elements, since we might conceivably reuse it.
- if (n == NULL)
- {
- memset (&rf->vec[0], 0, rf->size * sizeof (jobject));
- break;
- }
-
- _Jv_Free (rf);
- rf = n;
- }
-
- return result == NULL ? NULL : _Jv_JNI_NewLocalRef (env, result);
-}
-
-static jobject
-_Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result)
-{
- return _Jv_JNI_PopLocalFrame (env, result, MARK_USER);
-}
-
-// Pop a `system' frame from the stack. This is `extern "C"' as it is
-// used by the compiler.
-extern "C" void
-_Jv_JNI_PopSystemFrame (JNIEnv *env)
-{
- _Jv_JNI_PopLocalFrame (env, NULL, MARK_SYSTEM);
-
- if (env->ex)
- {
- jthrowable t = env->ex;
- env->ex = NULL;
- throw t;
- }
-}
-
-// This function is used from other template functions. It wraps the
-// return value appropriately; we specialize it so that object returns
-// are turned into local references.
-template<typename T>
-static T
-wrap_value (JNIEnv *, T value)
-{
- return value;
-}
-
-template<>
-static jobject
-wrap_value (JNIEnv *env, jobject value)
-{
- return value == NULL ? value : _Jv_JNI_NewLocalRef (env, value);
-}
-
-
-
-static jint
-_Jv_JNI_GetVersion (JNIEnv *)
-{
- return JNI_VERSION_1_2;
-}
-
-static jclass
-_Jv_JNI_DefineClass (JNIEnv *env, jobject loader,
- const jbyte *buf, jsize bufLen)
-{
- try
- {
- jbyteArray bytes = JvNewByteArray (bufLen);
-
- jbyte *elts = elements (bytes);
- memcpy (elts, buf, bufLen * sizeof (jbyte));
-
- java::lang::ClassLoader *l
- = reinterpret_cast<java::lang::ClassLoader *> (loader);
-
- jclass result = l->defineClass (bytes, 0, bufLen);
- return (jclass) wrap_value (env, result);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-static jclass
-_Jv_JNI_FindClass (JNIEnv *env, const char *name)
-{
- // FIXME: assume that NAME isn't too long.
- int len = strlen (name);
- char s[len + 1];
- for (int i = 0; i <= len; ++i)
- s[i] = (name[i] == '/') ? '.' : name[i];
-
- jclass r = NULL;
- try
- {
- // This might throw an out of memory exception.
- jstring n = JvNewStringUTF (s);
-
- java::lang::ClassLoader *loader = NULL;
- if (env->klass != NULL)
- loader = env->klass->getClassLoader ();
-
- if (loader == NULL)
- {
- // FIXME: should use getBaseClassLoader, but we don't have that
- // yet.
- loader = java::lang::ClassLoader::getSystemClassLoader ();
- }
-
- r = loader->loadClass (n);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return (jclass) wrap_value (env, r);
-}
-
-static jclass
-_Jv_JNI_GetSuperclass (JNIEnv *env, jclass clazz)
-{
- return (jclass) wrap_value (env, clazz->getSuperclass ());
-}
-
-static jboolean
-_Jv_JNI_IsAssignableFrom(JNIEnv *, jclass clazz1, jclass clazz2)
-{
- return clazz1->isAssignableFrom (clazz2);
-}
-
-static jint
-_Jv_JNI_Throw (JNIEnv *env, jthrowable obj)
-{
- // We check in case the user did some funky cast.
- JvAssert (obj != NULL && (&ThrowableClass)->isInstance (obj));
- env->ex = obj;
- return 0;
-}
-
-static jint
-_Jv_JNI_ThrowNew (JNIEnv *env, jclass clazz, const char *message)
-{
- using namespace java::lang::reflect;
-
- JvAssert ((&ThrowableClass)->isAssignableFrom (clazz));
-
- int r = JNI_OK;
- try
- {
- JArray<jclass> *argtypes
- = (JArray<jclass> *) JvNewObjectArray (1, &ClassClass, NULL);
-
- jclass *elts = elements (argtypes);
- elts[0] = &StringClass;
-
- Constructor *cons = clazz->getConstructor (argtypes);
-
- jobjectArray values = JvNewObjectArray (1, &StringClass, NULL);
- jobject *velts = elements (values);
- velts[0] = JvNewStringUTF (message);
-
- jobject obj = cons->newInstance (values);
-
- env->ex = reinterpret_cast<jthrowable> (obj);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- r = JNI_ERR;
- }
-
- return r;
-}
-
-static jthrowable
-_Jv_JNI_ExceptionOccurred (JNIEnv *env)
-{
- return (jthrowable) wrap_value (env, env->ex);
-}
-
-static void
-_Jv_JNI_ExceptionDescribe (JNIEnv *env)
-{
- if (env->ex != NULL)
- env->ex->printStackTrace();
-}
-
-static void
-_Jv_JNI_ExceptionClear (JNIEnv *env)
-{
- env->ex = NULL;
-}
-
-static jboolean
-_Jv_JNI_ExceptionCheck (JNIEnv *env)
-{
- return env->ex != NULL;
-}
-
-static void
-_Jv_JNI_FatalError (JNIEnv *, const char *message)
-{
- JvFail (message);
-}
-
-
-
-static jboolean
-_Jv_JNI_IsSameObject (JNIEnv *, jobject obj1, jobject obj2)
-{
- return obj1 == obj2;
-}
-
-static jobject
-_Jv_JNI_AllocObject (JNIEnv *env, jclass clazz)
-{
- jobject obj = NULL;
- using namespace java::lang::reflect;
-
- try
- {
- JvAssert (clazz && ! clazz->isArray ());
- if (clazz->isInterface() || Modifier::isAbstract(clazz->getModifiers()))
- env->ex = new java::lang::InstantiationException ();
- else
- {
- // FIXME: will this work for String?
- obj = JvAllocObject (clazz);
- }
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return wrap_value (env, obj);
-}
-
-static jclass
-_Jv_JNI_GetObjectClass (JNIEnv *env, jobject obj)
-{
- JvAssert (obj);
- return (jclass) wrap_value (env, obj->getClass());
-}
-
-static jboolean
-_Jv_JNI_IsInstanceOf (JNIEnv *, jobject obj, jclass clazz)
-{
- return clazz->isInstance(obj);
-}
-
-
-
-//
-// This section concerns method invocation.
-//
-
-template<jboolean is_static>
-static jmethodID
-_Jv_JNI_GetAnyMethodID (JNIEnv *env, jclass clazz,
- const char *name, const char *sig)
-{
- try
- {
- _Jv_InitClass (clazz);
-
- _Jv_Utf8Const *name_u = _Jv_makeUtf8Const ((char *) name, -1);
- _Jv_Utf8Const *sig_u = _Jv_makeUtf8Const ((char *) sig, -1);
-
- JvAssert (! clazz->isPrimitive());
-
- using namespace java::lang::reflect;
-
- while (clazz != NULL)
- {
- jint count = JvNumMethods (clazz);
- jmethodID meth = JvGetFirstMethod (clazz);
-
- for (jint i = 0; i < count; ++i)
- {
- if (((is_static && Modifier::isStatic (meth->accflags))
- || (! is_static && ! Modifier::isStatic (meth->accflags)))
- && _Jv_equalUtf8Consts (meth->name, name_u)
- && _Jv_equalUtf8Consts (meth->signature, sig_u))
- return meth;
-
- meth = meth->getNextMethod();
- }
-
- clazz = clazz->getSuperclass ();
- }
-
- env->ex = new java::lang::NoSuchMethodError ();
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return NULL;
-}
-
-// This is a helper function which turns a va_list into an array of
-// `jvalue's. It needs signature information in order to do its work.
-// The array of values must already be allocated.
-static void
-array_from_valist (jvalue *values, JArray<jclass> *arg_types, va_list vargs)
-{
- jclass *arg_elts = elements (arg_types);
- for (int i = 0; i < arg_types->length; ++i)
- {
- if (arg_elts[i] == JvPrimClass (byte))
- values[i].b = va_arg (vargs, jbyte);
- else if (arg_elts[i] == JvPrimClass (short))
- values[i].s = va_arg (vargs, jshort);
- else if (arg_elts[i] == JvPrimClass (int))
- values[i].i = va_arg (vargs, jint);
- else if (arg_elts[i] == JvPrimClass (long))
- values[i].j = va_arg (vargs, jlong);
- else if (arg_elts[i] == JvPrimClass (float))
- values[i].f = va_arg (vargs, jfloat);
- else if (arg_elts[i] == JvPrimClass (double))
- values[i].d = va_arg (vargs, jdouble);
- else if (arg_elts[i] == JvPrimClass (boolean))
- values[i].z = va_arg (vargs, jboolean);
- else if (arg_elts[i] == JvPrimClass (char))
- values[i].c = va_arg (vargs, jchar);
- else
- {
- // An object.
- values[i].l = va_arg (vargs, jobject);
- }
- }
-}
-
-// This can call any sort of method: virtual, "nonvirtual", static, or
-// constructor.
-template<typename T, invocation_type style>
-static T
-_Jv_JNI_CallAnyMethodV (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, va_list vargs)
-{
- if (style == normal)
- id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
-
- jclass decl_class = klass ? klass : obj->getClass ();
- JvAssert (decl_class != NULL);
-
- jclass return_type;
- JArray<jclass> *arg_types;
-
- try
- {
- _Jv_GetTypesFromSignature (id, decl_class,
- &arg_types, &return_type);
-
- jvalue args[arg_types->length];
- array_from_valist (args, arg_types, vargs);
-
- // For constructors we need to pass the Class we are instantiating.
- if (style == constructor)
- return_type = klass;
-
- jvalue result;
- jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
- style == constructor,
- arg_types, args, &result);
-
- if (ex != NULL)
- env->ex = ex;
-
- // We cheat a little here. FIXME.
- return wrap_value (env, * (T *) &result);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return wrap_value (env, (T) 0);
-}
-
-template<typename T, invocation_type style>
-static T
-_Jv_JNI_CallAnyMethod (JNIEnv *env, jobject obj, jclass klass,
- jmethodID method, ...)
-{
- va_list args;
- T result;
-
- va_start (args, method);
- result = _Jv_JNI_CallAnyMethodV<T, style> (env, obj, klass, method, args);
- va_end (args);
-
- return result;
-}
-
-template<typename T, invocation_type style>
-static T
-_Jv_JNI_CallAnyMethodA (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, jvalue *args)
-{
- if (style == normal)
- id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
-
- jclass decl_class = klass ? klass : obj->getClass ();
- JvAssert (decl_class != NULL);
-
- jclass return_type;
- JArray<jclass> *arg_types;
- try
- {
- _Jv_GetTypesFromSignature (id, decl_class,
- &arg_types, &return_type);
-
- // For constructors we need to pass the Class we are instantiating.
- if (style == constructor)
- return_type = klass;
-
- jvalue result;
- jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
- style == constructor,
- arg_types, args, &result);
-
- if (ex != NULL)
- env->ex = ex;
-
- // We cheat a little here. FIXME.
- return wrap_value (env, * (T *) &result);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return wrap_value (env, (T) 0);
-}
-
-template<invocation_type style>
-static void
-_Jv_JNI_CallAnyVoidMethodV (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, va_list vargs)
-{
- if (style == normal)
- id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
-
- jclass decl_class = klass ? klass : obj->getClass ();
- JvAssert (decl_class != NULL);
-
- jclass return_type;
- JArray<jclass> *arg_types;
- try
- {
- _Jv_GetTypesFromSignature (id, decl_class,
- &arg_types, &return_type);
-
- jvalue args[arg_types->length];
- array_from_valist (args, arg_types, vargs);
-
- // For constructors we need to pass the Class we are instantiating.
- if (style == constructor)
- return_type = klass;
-
- jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
- style == constructor,
- arg_types, args, NULL);
-
- if (ex != NULL)
- env->ex = ex;
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-}
-
-template<invocation_type style>
-static void
-_Jv_JNI_CallAnyVoidMethod (JNIEnv *env, jobject obj, jclass klass,
- jmethodID method, ...)
-{
- va_list args;
-
- va_start (args, method);
- _Jv_JNI_CallAnyVoidMethodV<style> (env, obj, klass, method, args);
- va_end (args);
-}
-
-template<invocation_type style>
-static void
-_Jv_JNI_CallAnyVoidMethodA (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, jvalue *args)
-{
- if (style == normal)
- id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
-
- jclass decl_class = klass ? klass : obj->getClass ();
- JvAssert (decl_class != NULL);
-
- jclass return_type;
- JArray<jclass> *arg_types;
- try
- {
- _Jv_GetTypesFromSignature (id, decl_class,
- &arg_types, &return_type);
-
- jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
- style == constructor,
- arg_types, args, NULL);
-
- if (ex != NULL)
- env->ex = ex;
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-}
-
-// Functions with this signature are used to implement functions in
-// the CallMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallMethodV (JNIEnv *env, jobject obj, jmethodID id, va_list args)
-{
- return _Jv_JNI_CallAnyMethodV<T, normal> (env, obj, NULL, id, args);
-}
-
-// Functions with this signature are used to implement functions in
-// the CallMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
-{
- va_list args;
- T result;
-
- va_start (args, id);
- result = _Jv_JNI_CallAnyMethodV<T, normal> (env, obj, NULL, id, args);
- va_end (args);
-
- return result;
-}
-
-// Functions with this signature are used to implement functions in
-// the CallMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallMethodA (JNIEnv *env, jobject obj, jmethodID id, jvalue *args)
-{
- return _Jv_JNI_CallAnyMethodA<T, normal> (env, obj, NULL, id, args);
-}
-
-static void
-_Jv_JNI_CallVoidMethodV (JNIEnv *env, jobject obj, jmethodID id, va_list args)
-{
- _Jv_JNI_CallAnyVoidMethodV<normal> (env, obj, NULL, id, args);
-}
-
-static void
-_Jv_JNI_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
-{
- va_list args;
-
- va_start (args, id);
- _Jv_JNI_CallAnyVoidMethodV<normal> (env, obj, NULL, id, args);
- va_end (args);
-}
-
-static void
-_Jv_JNI_CallVoidMethodA (JNIEnv *env, jobject obj, jmethodID id, jvalue *args)
-{
- _Jv_JNI_CallAnyVoidMethodA<normal> (env, obj, NULL, id, args);
-}
-
-// Functions with this signature are used to implement functions in
-// the CallStaticMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallStaticMethodV (JNIEnv *env, jclass klass,
- jmethodID id, va_list args)
-{
- JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
- JvAssert ((&ClassClass)->isInstance (klass));
-
- return _Jv_JNI_CallAnyMethodV<T, static_type> (env, NULL, klass, id, args);
-}
-
-// Functions with this signature are used to implement functions in
-// the CallStaticMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallStaticMethod (JNIEnv *env, jclass klass, jmethodID id, ...)
-{
- va_list args;
- T result;
-
- JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
- JvAssert ((&ClassClass)->isInstance (klass));
-
- va_start (args, id);
- result = _Jv_JNI_CallAnyMethodV<T, static_type> (env, NULL, klass,
- id, args);
- va_end (args);
-
- return result;
-}
-
-// Functions with this signature are used to implement functions in
-// the CallStaticMethod family.
-template<typename T>
-static T
-_Jv_JNI_CallStaticMethodA (JNIEnv *env, jclass klass, jmethodID id,
- jvalue *args)
-{
- JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
- JvAssert ((&ClassClass)->isInstance (klass));
-
- return _Jv_JNI_CallAnyMethodA<T, static_type> (env, NULL, klass, id, args);
-}
-
-static void
-_Jv_JNI_CallStaticVoidMethodV (JNIEnv *env, jclass klass, jmethodID id,
- va_list args)
-{
- _Jv_JNI_CallAnyVoidMethodV<static_type> (env, NULL, klass, id, args);
-}
-
-static void
-_Jv_JNI_CallStaticVoidMethod (JNIEnv *env, jclass klass, jmethodID id, ...)
-{
- va_list args;
-
- va_start (args, id);
- _Jv_JNI_CallAnyVoidMethodV<static_type> (env, NULL, klass, id, args);
- va_end (args);
-}
-
-static void
-_Jv_JNI_CallStaticVoidMethodA (JNIEnv *env, jclass klass, jmethodID id,
- jvalue *args)
-{
- _Jv_JNI_CallAnyVoidMethodA<static_type> (env, NULL, klass, id, args);
-}
-
-static jobject
-_Jv_JNI_NewObjectV (JNIEnv *env, jclass klass,
- jmethodID id, va_list args)
-{
- JvAssert (klass && ! klass->isArray ());
- JvAssert (! strcmp (id->name->data, "<init>")
- && id->signature->length > 2
- && id->signature->data[0] == '('
- && ! strcmp (&id->signature->data[id->signature->length - 2],
- ")V"));
-
- return _Jv_JNI_CallAnyMethodV<jobject, constructor> (env, NULL, klass,
- id, args);
-}
-
-static jobject
-_Jv_JNI_NewObject (JNIEnv *env, jclass klass, jmethodID id, ...)
-{
- JvAssert (klass && ! klass->isArray ());
- JvAssert (! strcmp (id->name->data, "<init>")
- && id->signature->length > 2
- && id->signature->data[0] == '('
- && ! strcmp (&id->signature->data[id->signature->length - 2],
- ")V"));
-
- va_list args;
- jobject result;
-
- va_start (args, id);
- result = _Jv_JNI_CallAnyMethodV<jobject, constructor> (env, NULL, klass,
- id, args);
- va_end (args);
-
- return result;
-}
-
-static jobject
-_Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
- jvalue *args)
-{
- JvAssert (klass && ! klass->isArray ());
- JvAssert (! strcmp (id->name->data, "<init>")
- && id->signature->length > 2
- && id->signature->data[0] == '('
- && ! strcmp (&id->signature->data[id->signature->length - 2],
- ")V"));
-
- return _Jv_JNI_CallAnyMethodA<jobject, constructor> (env, NULL, klass,
- id, args);
-}
-
-
-
-template<typename T>
-static T
-_Jv_JNI_GetField (JNIEnv *env, jobject obj, jfieldID field)
-{
- JvAssert (obj);
- T *ptr = (T *) ((char *) obj + field->getOffset ());
- return wrap_value (env, *ptr);
-}
-
-template<typename T>
-static void
-_Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value)
-{
- JvAssert (obj);
- T *ptr = (T *) ((char *) obj + field->getOffset ());
- *ptr = value;
-}
-
-template<jboolean is_static>
-static jfieldID
-_Jv_JNI_GetAnyFieldID (JNIEnv *env, jclass clazz,
- const char *name, const char *sig)
-{
- try
- {
- _Jv_InitClass (clazz);
-
- _Jv_Utf8Const *a_name = _Jv_makeUtf8Const ((char *) name, -1);
-
- jclass field_class = NULL;
- if (sig[0] == '[')
- field_class = _Jv_FindClassFromSignature ((char *) sig, NULL);
- else
- {
- _Jv_Utf8Const *sig_u = _Jv_makeUtf8Const ((char *) sig, -1);
- field_class = _Jv_FindClass (sig_u, NULL);
- }
-
- // FIXME: what if field_class == NULL?
-
- while (clazz != NULL)
- {
- jint count = (is_static
- ? JvNumStaticFields (clazz)
- : JvNumInstanceFields (clazz));
- jfieldID field = (is_static
- ? JvGetFirstStaticField (clazz)
- : JvGetFirstInstanceField (clazz));
- for (jint i = 0; i < count; ++i)
- {
- // The field is resolved as a side effect of class
- // initialization.
- JvAssert (field->isResolved ());
-
- _Jv_Utf8Const *f_name = field->getNameUtf8Const(clazz);
-
- if (_Jv_equalUtf8Consts (f_name, a_name)
- && field->getClass() == field_class)
- return field;
-
- field = field->getNextField ();
- }
-
- clazz = clazz->getSuperclass ();
- }
-
- env->ex = new java::lang::NoSuchFieldError ();
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- return NULL;
-}
-
-template<typename T>
-static T
-_Jv_JNI_GetStaticField (JNIEnv *env, jclass, jfieldID field)
-{
- T *ptr = (T *) field->u.addr;
- return wrap_value (env, *ptr);
-}
-
-template<typename T>
-static void
-_Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value)
-{
- T *ptr = (T *) field->u.addr;
- *ptr = value;
-}
-
-static jstring
-_Jv_JNI_NewString (JNIEnv *env, const jchar *unichars, jsize len)
-{
- try
- {
- jstring r = _Jv_NewString (unichars, len);
- return (jstring) wrap_value (env, r);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-static jsize
-_Jv_JNI_GetStringLength (JNIEnv *, jstring string)
-{
- return string->length();
-}
-
-static const jchar *
-_Jv_JNI_GetStringChars (JNIEnv *, jstring string, jboolean *isCopy)
-{
- jchar *result = _Jv_GetStringChars (string);
- mark_for_gc (string);
- if (isCopy)
- *isCopy = false;
- return (const jchar *) result;
-}
-
-static void
-_Jv_JNI_ReleaseStringChars (JNIEnv *, jstring string, const jchar *)
-{
- unmark_for_gc (string);
-}
-
-static jstring
-_Jv_JNI_NewStringUTF (JNIEnv *env, const char *bytes)
-{
- try
- {
- jstring result = JvNewStringUTF (bytes);
- return (jstring) wrap_value (env, result);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-static jsize
-_Jv_JNI_GetStringUTFLength (JNIEnv *, jstring string)
-{
- return JvGetStringUTFLength (string);
-}
-
-static const char *
-_Jv_JNI_GetStringUTFChars (JNIEnv *env, jstring string, jboolean *isCopy)
-{
- jsize len = JvGetStringUTFLength (string);
- try
- {
- char *r = (char *) _Jv_Malloc (len + 1);
- JvGetStringUTFRegion (string, 0, len, r);
- r[len] = '\0';
-
- if (isCopy)
- *isCopy = true;
-
- return (const char *) r;
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-static void
-_Jv_JNI_ReleaseStringUTFChars (JNIEnv *, jstring, const char *utf)
-{
- _Jv_Free ((void *) utf);
-}
-
-static void
-_Jv_JNI_GetStringRegion (JNIEnv *env, jstring string, jsize start, jsize len,
- jchar *buf)
-{
- jchar *result = _Jv_GetStringChars (string);
- if (start < 0 || start > string->length ()
- || len < 0 || start + len > string->length ())
- {
- try
- {
- env->ex = new java::lang::StringIndexOutOfBoundsException ();
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- }
- else
- memcpy (buf, &result[start], len * sizeof (jchar));
-}
-
-static void
-_Jv_JNI_GetStringUTFRegion (JNIEnv *env, jstring str, jsize start,
- jsize len, char *buf)
-{
- if (start < 0 || start > str->length ()
- || len < 0 || start + len > str->length ())
- {
- try
- {
- env->ex = new java::lang::StringIndexOutOfBoundsException ();
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- }
- else
- _Jv_GetStringUTFRegion (str, start, len, buf);
-}
-
-static const jchar *
-_Jv_JNI_GetStringCritical (JNIEnv *, jstring str, jboolean *isCopy)
-{
- jchar *result = _Jv_GetStringChars (str);
- if (isCopy)
- *isCopy = false;
- return result;
-}
-
-static void
-_Jv_JNI_ReleaseStringCritical (JNIEnv *, jstring, const jchar *)
-{
- // Nothing.
-}
-
-static jsize
-_Jv_JNI_GetArrayLength (JNIEnv *, jarray array)
-{
- return array->length;
-}
-
-static jarray
-_Jv_JNI_NewObjectArray (JNIEnv *env, jsize length, jclass elementClass,
- jobject init)
-{
- try
- {
- jarray result = JvNewObjectArray (length, elementClass, init);
- return (jarray) wrap_value (env, result);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-static jobject
-_Jv_JNI_GetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index)
-{
- jobject *elts = elements (array);
- return wrap_value (env, elts[index]);
-}
-
-static void
-_Jv_JNI_SetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index,
- jobject value)
-{
- try
- {
- _Jv_CheckArrayStore (array, value);
- jobject *elts = elements (array);
- elts[index] = value;
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-}
-
-template<typename T, jclass K>
-static JArray<T> *
-_Jv_JNI_NewPrimitiveArray (JNIEnv *env, jsize length)
-{
- try
- {
- return (JArray<T> *) wrap_value (env, _Jv_NewPrimArray (K, length));
- }
- catch (jthrowable t)
- {
- env->ex = t;
- return NULL;
- }
-}
-
-template<typename T>
-static T *
-_Jv_JNI_GetPrimitiveArrayElements (JNIEnv *, JArray<T> *array,
- jboolean *isCopy)
-{
- T *elts = elements (array);
- if (isCopy)
- {
- // We elect never to copy.
- *isCopy = false;
- }
- mark_for_gc (array);
- return elts;
-}
-
-template<typename T>
-static void
-_Jv_JNI_ReleasePrimitiveArrayElements (JNIEnv *, JArray<T> *array,
- T *, jint /* mode */)
-{
- // Note that we ignore MODE. We can do this because we never copy
- // the array elements. My reading of the JNI documentation is that
- // this is an option for the implementor.
- unmark_for_gc (array);
-}
-
-template<typename T>
-static void
-_Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
- jsize start, jsize len,
- T *buf)
-{
- if (start < 0 || len >= array->length || start + len >= array->length)
- {
- try
- {
- // FIXME: index.
- env->ex = new java::lang::ArrayIndexOutOfBoundsException ();
- }
- catch (jthrowable t)
- {
- // Could have thown out of memory error.
- env->ex = t;
- }
- }
- else
- {
- T *elts = elements (array) + start;
- memcpy (buf, elts, len * sizeof (T));
- }
-}
-
-template<typename T>
-static void
-_Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
- jsize start, jsize len, T *buf)
-{
- if (start < 0 || len >= array->length || start + len >= array->length)
- {
- try
- {
- // FIXME: index.
- env->ex = new java::lang::ArrayIndexOutOfBoundsException ();
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- }
- else
- {
- T *elts = elements (array) + start;
- memcpy (elts, buf, len * sizeof (T));
- }
-}
-
-static void *
-_Jv_JNI_GetPrimitiveArrayCritical (JNIEnv *, jarray array,
- jboolean *isCopy)
-{
- // FIXME: does this work?
- jclass klass = array->getClass()->getComponentType();
- JvAssert (klass->isPrimitive ());
- char *r = _Jv_GetArrayElementFromElementType (array, klass);
- if (isCopy)
- *isCopy = false;
- return r;
-}
-
-static void
-_Jv_JNI_ReleasePrimitiveArrayCritical (JNIEnv *, jarray, void *, jint)
-{
- // Nothing.
-}
-
-static jint
-_Jv_JNI_MonitorEnter (JNIEnv *env, jobject obj)
-{
- try
- {
- return _Jv_MonitorEnter (obj);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- return JNI_ERR;
-}
-
-static jint
-_Jv_JNI_MonitorExit (JNIEnv *env, jobject obj)
-{
- try
- {
- return _Jv_MonitorExit (obj);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- return JNI_ERR;
-}
-
-// JDK 1.2
-jobject
-_Jv_JNI_ToReflectedField (JNIEnv *env, jclass cls, jfieldID fieldID,
- jboolean)
-{
- try
- {
- java::lang::reflect::Field *field = new java::lang::reflect::Field();
- field->declaringClass = cls;
- field->offset = (char*) fieldID - (char *) cls->fields;
- field->name = _Jv_NewStringUtf8Const (fieldID->getNameUtf8Const (cls));
- return wrap_value (env, field);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- return NULL;
-}
-
-// JDK 1.2
-static jfieldID
-_Jv_JNI_FromReflectedField (JNIEnv *, jobject f)
-{
- using namespace java::lang::reflect;
-
- Field *field = reinterpret_cast<Field *> (f);
- return _Jv_FromReflectedField (field);
-}
-
-jobject
-_Jv_JNI_ToReflectedMethod (JNIEnv *env, jclass klass, jmethodID id,
- jboolean)
-{
- using namespace java::lang::reflect;
-
- // FIXME.
- static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
-
- jobject result = NULL;
-
- try
- {
- if (_Jv_equalUtf8Consts (id->name, init_name))
- {
- // A constructor.
- Constructor *cons = new Constructor ();
- cons->offset = (char *) id - (char *) &klass->methods;
- cons->declaringClass = klass;
- result = cons;
- }
- else
- {
- Method *meth = new Method ();
- meth->offset = (char *) id - (char *) &klass->methods;
- meth->declaringClass = klass;
- result = meth;
- }
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
-
- return wrap_value (env, result);
-}
-
-static jmethodID
-_Jv_JNI_FromReflectedMethod (JNIEnv *, jobject method)
-{
- using namespace java::lang::reflect;
- if ((&MethodClass)->isInstance (method))
- return _Jv_FromReflectedMethod (reinterpret_cast<Method *> (method));
- return
- _Jv_FromReflectedConstructor (reinterpret_cast<Constructor *> (method));
-}
-
-static jint
-_Jv_JNI_RegisterNatives (JNIEnv *env, jclass k,
- const JNINativeMethod *methods,
- jint nMethods)
-{
-#ifdef INTERPRETER
- // For now, this only matters for interpreted methods. FIXME.
- if (! _Jv_IsInterpretedClass (k))
- {
- // FIXME: throw exception.
- return JNI_ERR;
- }
- _Jv_InterpClass *klass = reinterpret_cast<_Jv_InterpClass *> (k);
-
- // Look at each descriptor given us, and find the corresponding
- // method in the class.
- for (int j = 0; j < nMethods; ++j)
- {
- bool found = false;
-
- _Jv_MethodBase **imeths = _Jv_GetFirstMethod (klass);
- for (int i = 0; i < JvNumMethods (klass); ++i)
- {
- _Jv_MethodBase *meth = imeths[i];
- _Jv_Method *self = meth->get_method ();
-
- if (! strcmp (self->name->data, methods[j].name)
- && ! strcmp (self->signature->data, methods[j].signature))
- {
- if (! (self->accflags
- & java::lang::reflect::Modifier::NATIVE))
- break;
-
- // Found a match that is native.
- _Jv_JNIMethod *jmeth = reinterpret_cast<_Jv_JNIMethod *> (meth);
- jmeth->set_function (methods[i].fnPtr);
- found = true;
- break;
- }
- }
-
- if (! found)
- {
- jstring m = JvNewStringUTF (methods[j].name);
- try
- {
- env->ex =new java::lang::NoSuchMethodError (m);
- }
- catch (jthrowable t)
- {
- env->ex = t;
- }
- return JNI_ERR;
- }
- }
-
- return JNI_OK;
-#else /* INTERPRETER */
- return JNI_ERR;
-#endif /* INTERPRETER */
-}
-
-static jint
-_Jv_JNI_UnregisterNatives (JNIEnv *, jclass)
-{
- return JNI_ERR;
-}
-
-
-
-#ifdef INTERPRETER
-
-// Add a character to the buffer, encoding properly.
-static void
-add_char (char *buf, jchar c, int *here)
-{
- if (c == '_')
- {
- buf[(*here)++] = '_';
- buf[(*here)++] = '1';
- }
- else if (c == ';')
- {
- buf[(*here)++] = '_';
- buf[(*here)++] = '2';
- }
- else if (c == '[')
- {
- buf[(*here)++] = '_';
- buf[(*here)++] = '3';
- }
- else if (c == '/')
- buf[(*here)++] = '_';
- else if ((c >= '0' && c <= '9')
- || (c >= 'a' && c <= 'z')
- || (c >= 'A' && c <= 'Z'))
- buf[(*here)++] = (char) c;
- else
- {
- // "Unicode" character.
- buf[(*here)++] = '_';
- buf[(*here)++] = '0';
- for (int i = 0; i < 4; ++i)
- {
- int val = c & 0x0f;
- buf[(*here) + 4 - i] = (val > 10) ? ('a' + val - 10) : ('0' + val);
- c >>= 4;
- }
- *here += 4;
- }
-}
-
-// Compute a mangled name for a native function. This computes the
-// long name, and also returns an index which indicates where a NUL
-// can be placed to create the short name. This function assumes that
-// the buffer is large enough for its results.
-static void
-mangled_name (jclass klass, _Jv_Utf8Const *func_name,
- _Jv_Utf8Const *signature, char *buf, int *long_start)
-{
- strcpy (buf, "Java_");
- int here = 5;
-
- // Add fully qualified class name.
- jchar *chars = _Jv_GetStringChars (klass->getName ());
- jint len = klass->getName ()->length ();
- for (int i = 0; i < len; ++i)
- add_char (buf, chars[i], &here);
-
- // Don't use add_char because we need a literal `_'.
- buf[here++] = '_';
-
- const unsigned char *fn = (const unsigned char *) func_name->data;
- const unsigned char *limit = fn + func_name->length;
- for (int i = 0; ; ++i)
- {
- int ch = UTF8_GET (fn, limit);
- if (ch < 0)
- break;
- add_char (buf, ch, &here);
- }
-
- // This is where the long signature begins.
- *long_start = here;
- buf[here++] = '_';
- buf[here++] = '_';
-
- const unsigned char *sig = (const unsigned char *) signature->data;
- limit = sig + signature->length;
- JvAssert (sig[0] == '(');
- ++sig;
- while (1)
- {
- int ch = UTF8_GET (sig, limit);
- if (ch == ')' || ch < 0)
- break;
- add_char (buf, ch, &here);
- }
-
- buf[here] = '\0';
-}
-
-// Return the current thread's JNIEnv; if one does not exist, create
-// it. Also create a new system frame for use. This is `extern "C"'
-// because the compiler calls it.
-extern "C" JNIEnv *
-_Jv_GetJNIEnvNewFrame (jclass klass)
-{
- JNIEnv *env = _Jv_GetCurrentJNIEnv ();
- if (env == NULL)
- {
- env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
- env->p = &_Jv_JNIFunctions;
- env->ex = NULL;
- env->klass = klass;
- env->locals = NULL;
-
- _Jv_SetCurrentJNIEnv (env);
- }
-
- _Jv_JNI_LocalFrame *frame
- = (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
- + (FRAME_SIZE
- * sizeof (jobject)));
-
- frame->marker = MARK_SYSTEM;
- frame->size = FRAME_SIZE;
- frame->next = env->locals;
- env->locals = frame;
-
- for (int i = 0; i < frame->size; ++i)
- frame->vec[i] = NULL;
-
- return env;
-}
-
-// Return the function which implements a particular JNI method. If
-// we can't find the function, we throw the appropriate exception.
-// This is `extern "C"' because the compiler uses it.
-extern "C" void *
-_Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- char buf[10 + 6 * (name->length + signature->length)];
- int long_start;
- void *function;
-
- mangled_name (klass, name, signature, buf, &long_start);
- char c = buf[long_start];
- buf[long_start] = '\0';
- function = _Jv_FindSymbolInExecutable (buf);
- if (function == NULL)
- {
- buf[long_start] = c;
- function = _Jv_FindSymbolInExecutable (buf);
- if (function == NULL)
- {
- jstring str = JvNewStringUTF (name->data);
- JvThrow (new java::lang::AbstractMethodError (str));
- }
- }
-
- return function;
-}
-
-// This function is the stub which is used to turn an ordinary (CNI)
-// method call into a JNI call.
-void
-_Jv_JNIMethod::call (ffi_cif *, void *ret, ffi_raw *args, void *__this)
-{
- _Jv_JNIMethod* _this = (_Jv_JNIMethod *) __this;
-
- JNIEnv *env = _Jv_GetJNIEnvNewFrame (_this->defining_class);
-
- // FIXME: we should mark every reference parameter as a local. For
- // now we assume a conservative GC, and we assume that the
- // references are on the stack somewhere.
-
- // We cache the value that we find, of course, but if we don't find
- // a value we don't cache that fact -- we might subsequently load a
- // library which finds the function in question.
- if (_this->function == NULL)
- _this->function = _Jv_LookupJNIMethod (_this->defining_class,
- _this->self->name,
- _this->self->signature);
-
- JvAssert (_this->args_raw_size % sizeof (ffi_raw) == 0);
- ffi_raw real_args[2 + _this->args_raw_size / sizeof (ffi_raw)];
- int offset = 0;
-
- // First argument is always the environment pointer.
- real_args[offset++].ptr = env;
-
- // For a static method, we pass in the Class. For non-static
- // methods, the `this' argument is already handled.
- if ((_this->self->accflags & java::lang::reflect::Modifier::STATIC))
- real_args[offset++].ptr = _this->defining_class;
-
- // Copy over passed-in arguments.
- memcpy (&real_args[offset], args, _this->args_raw_size);
-
- // The actual call to the JNI function.
- ffi_raw_call (&_this->jni_cif, (void (*)()) _this->function,
- ret, real_args);
-
- _Jv_JNI_PopSystemFrame (env);
-}
-
-#endif /* INTERPRETER */
-
-
-
-//
-// Invocation API.
-//
-
-// An internal helper function.
-static jint
-_Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv, void *args)
-{
- JavaVMAttachArgs *attach = reinterpret_cast<JavaVMAttachArgs *> (args);
- java::lang::ThreadGroup *group = NULL;
-
- if (attach)
- {
- // FIXME: do we really want to support 1.1?
- if (attach->version != JNI_VERSION_1_2
- && attach->version != JNI_VERSION_1_1)
- return JNI_EVERSION;
-
- JvAssert ((&ThreadGroupClass)->isInstance (attach->group));
- group = reinterpret_cast<java::lang::ThreadGroup *> (attach->group);
- }
-
- // Attaching an already-attached thread is a no-op.
- if (_Jv_GetCurrentJNIEnv () != NULL)
- return 0;
-
- JNIEnv *env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
- if (env == NULL)
- return JNI_ERR;
- env->p = &_Jv_JNIFunctions;
- env->ex = NULL;
- env->klass = NULL;
- env->locals
- = (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
- + (FRAME_SIZE
- * sizeof (jobject)));
- if (env->locals == NULL)
- {
- _Jv_Free (env);
- return JNI_ERR;
- }
- *penv = reinterpret_cast<void *> (env);
-
- // This thread might already be a Java thread -- this function might
- // have been called simply to set the new JNIEnv.
- if (_Jv_ThreadCurrent () == NULL)
- {
- try
- {
- (void) new gnu::gcj::jni::NativeThread (group, name);
- }
- catch (jthrowable t)
- {
- return JNI_ERR;
- }
- }
- _Jv_SetCurrentJNIEnv (env);
-
- return 0;
-}
-
-// This is the one actually used by JNI.
-static jint
-_Jv_JNI_AttachCurrentThread (JavaVM *vm, void **penv, void *args)
-{
- return _Jv_JNI_AttachCurrentThread (vm, NULL, penv, args);
-}
-
-static jint
-_Jv_JNI_DestroyJavaVM (JavaVM *vm)
-{
- JvAssert (the_vm && vm == the_vm);
-
- JNIEnv *env;
- if (_Jv_ThreadCurrent () != NULL)
- {
- jstring main_name;
- // This sucks.
- try
- {
- main_name = JvNewStringLatin1 ("main");
- }
- catch (jthrowable t)
- {
- return JNI_ERR;
- }
-
- jint r = _Jv_JNI_AttachCurrentThread (vm,
- main_name,
- reinterpret_cast<void **> (&env),
- NULL);
- if (r < 0)
- return r;
- }
- else
- env = _Jv_GetCurrentJNIEnv ();
-
- _Jv_ThreadWait ();
-
- // Docs say that this always returns an error code.
- return JNI_ERR;
-}
-
-static jint
-_Jv_JNI_DetachCurrentThread (JavaVM *)
-{
- java::lang::Thread *t = _Jv_ThreadCurrent ();
- if (t == NULL)
- return JNI_EDETACHED;
-
- // FIXME: we only allow threads attached via AttachCurrentThread to
- // be detached. I have no idea how we could implement detaching
- // other threads, given the requirement that we must release all the
- // monitors. That just seems evil.
- JvAssert ((&NativeThreadClass)->isInstance (t));
-
- // FIXME: release the monitors. We'll take this to mean all
- // monitors acquired via the JNI interface. This means we have to
- // keep track of them.
-
- gnu::gcj::jni::NativeThread *nt
- = reinterpret_cast<gnu::gcj::jni::NativeThread *> (t);
- nt->finish ();
-
- return 0;
-}
-
-static jint
-_Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
-{
- if (_Jv_ThreadCurrent () == NULL)
- {
- *penv = NULL;
- return JNI_EDETACHED;
- }
-
-#ifdef ENABLE_JVMPI
- // Handle JVMPI requests.
- if (version == JVMPI_VERSION_1)
- {
- *penv = (void *) &_Jv_JVMPI_Interface;
- return 0;
- }
-#endif
-
- // FIXME: do we really want to support 1.1?
- if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_1)
- {
- *penv = NULL;
- return JNI_EVERSION;
- }
-
- *penv = (void *) _Jv_GetCurrentJNIEnv ();
- return 0;
-}
-
-jint
-JNI_GetDefaultJavaVMInitArgs (void *args)
-{
- jint version = * (jint *) args;
- // Here we only support 1.2.
- if (version != JNI_VERSION_1_2)
- return JNI_EVERSION;
-
- JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
- ia->version = JNI_VERSION_1_2;
- ia->nOptions = 0;
- ia->options = NULL;
- ia->ignoreUnrecognized = true;
-
- return 0;
-}
-
-jint
-JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
-{
- JvAssert (! the_vm);
- // FIXME: synchronize
- JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
- if (nvm == NULL)
- return JNI_ERR;
- nvm->functions = &_Jv_JNI_InvokeFunctions;
-
- // Parse the arguments.
- if (args != NULL)
- {
- jint version = * (jint *) args;
- // We only support 1.2.
- if (version != JNI_VERSION_1_2)
- return JNI_EVERSION;
- JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
- for (int i = 0; i < ia->nOptions; ++i)
- {
- if (! strcmp (ia->options[i].optionString, "vfprintf")
- || ! strcmp (ia->options[i].optionString, "exit")
- || ! strcmp (ia->options[i].optionString, "abort"))
- {
- // We are required to recognize these, but for now we
- // don't handle them in any way. FIXME.
- continue;
- }
- else if (! strncmp (ia->options[i].optionString,
- "-verbose", sizeof ("-verbose") - 1))
- {
- // We don't do anything with this option either. We
- // might want to make sure the argument is valid, but we
- // don't really care all that much for now.
- continue;
- }
- else if (! strncmp (ia->options[i].optionString, "-D", 2))
- {
- // FIXME.
- continue;
- }
- else if (ia->ignoreUnrecognized)
- {
- if (ia->options[i].optionString[0] == '_'
- || ! strncmp (ia->options[i].optionString, "-X", 2))
- continue;
- }
-
- return JNI_ERR;
- }
- }
-
- jint r =_Jv_JNI_AttachCurrentThread (nvm, penv, NULL);
- if (r < 0)
- return r;
-
- the_vm = nvm;
- *vm = the_vm;
- return 0;
-}
-
-jint
-JNI_GetCreatedJavaVMs (JavaVM **vm_buffer, jsize buf_len, jsize *n_vms)
-{
- if (buf_len <= 0)
- return JNI_ERR;
-
- // We only support a single VM.
- if (the_vm != NULL)
- {
- vm_buffer[0] = the_vm;
- *n_vms = 1;
- }
- else
- *n_vms = 0;
- return 0;
-}
-
-JavaVM *
-_Jv_GetJavaVM ()
-{
- // FIXME: synchronize
- if (! the_vm)
- {
- JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
- if (nvm != NULL)
- nvm->functions = &_Jv_JNI_InvokeFunctions;
- the_vm = nvm;
- }
-
- // If this is a Java thread, we want to make sure it has an
- // associated JNIEnv.
- if (_Jv_ThreadCurrent () != NULL)
- {
- void *ignore;
- _Jv_JNI_AttachCurrentThread (the_vm, &ignore, NULL);
- }
-
- return the_vm;
-}
-
-static jint
-_Jv_JNI_GetJavaVM (JNIEnv *, JavaVM **vm)
-{
- *vm = _Jv_GetJavaVM ();
- return *vm == NULL ? JNI_ERR : JNI_OK;
-}
-
-
-
-#define NOT_IMPL NULL
-#define RESERVED NULL
-
-struct JNINativeInterface _Jv_JNIFunctions =
-{
- RESERVED,
- RESERVED,
- RESERVED,
- RESERVED,
- _Jv_JNI_GetVersion,
- _Jv_JNI_DefineClass,
- _Jv_JNI_FindClass,
- _Jv_JNI_FromReflectedMethod,
- _Jv_JNI_FromReflectedField,
- _Jv_JNI_ToReflectedMethod,
- _Jv_JNI_GetSuperclass,
- _Jv_JNI_IsAssignableFrom,
- _Jv_JNI_ToReflectedField,
- _Jv_JNI_Throw,
- _Jv_JNI_ThrowNew,
- _Jv_JNI_ExceptionOccurred,
- _Jv_JNI_ExceptionDescribe,
- _Jv_JNI_ExceptionClear,
- _Jv_JNI_FatalError,
-
- _Jv_JNI_PushLocalFrame,
- _Jv_JNI_PopLocalFrame,
- _Jv_JNI_NewGlobalRef,
- _Jv_JNI_DeleteGlobalRef,
- _Jv_JNI_DeleteLocalRef,
-
- _Jv_JNI_IsSameObject,
-
- _Jv_JNI_NewLocalRef,
- _Jv_JNI_EnsureLocalCapacity,
-
- _Jv_JNI_AllocObject,
- _Jv_JNI_NewObject,
- _Jv_JNI_NewObjectV,
- _Jv_JNI_NewObjectA,
- _Jv_JNI_GetObjectClass,
- _Jv_JNI_IsInstanceOf,
- _Jv_JNI_GetAnyMethodID<false>,
-
- _Jv_JNI_CallMethod<jobject>,
- _Jv_JNI_CallMethodV<jobject>,
- _Jv_JNI_CallMethodA<jobject>,
- _Jv_JNI_CallMethod<jboolean>,
- _Jv_JNI_CallMethodV<jboolean>,
- _Jv_JNI_CallMethodA<jboolean>,
- _Jv_JNI_CallMethod<jbyte>,
- _Jv_JNI_CallMethodV<jbyte>,
- _Jv_JNI_CallMethodA<jbyte>,
- _Jv_JNI_CallMethod<jchar>,
- _Jv_JNI_CallMethodV<jchar>,
- _Jv_JNI_CallMethodA<jchar>,
- _Jv_JNI_CallMethod<jshort>,
- _Jv_JNI_CallMethodV<jshort>,
- _Jv_JNI_CallMethodA<jshort>,
- _Jv_JNI_CallMethod<jint>,
- _Jv_JNI_CallMethodV<jint>,
- _Jv_JNI_CallMethodA<jint>,
- _Jv_JNI_CallMethod<jlong>,
- _Jv_JNI_CallMethodV<jlong>,
- _Jv_JNI_CallMethodA<jlong>,
- _Jv_JNI_CallMethod<jfloat>,
- _Jv_JNI_CallMethodV<jfloat>,
- _Jv_JNI_CallMethodA<jfloat>,
- _Jv_JNI_CallMethod<jdouble>,
- _Jv_JNI_CallMethodV<jdouble>,
- _Jv_JNI_CallMethodA<jdouble>,
- _Jv_JNI_CallVoidMethod,
- _Jv_JNI_CallVoidMethodV,
- _Jv_JNI_CallVoidMethodA,
-
- // Nonvirtual method invocation functions follow.
- _Jv_JNI_CallAnyMethod<jobject, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jobject, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jobject, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jboolean, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jboolean, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jboolean, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jbyte, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jbyte, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jbyte, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jchar, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jchar, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jchar, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jshort, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jshort, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jshort, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jint, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jint, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jint, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jlong, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jlong, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jlong, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jfloat, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jfloat, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jfloat, nonvirtual>,
- _Jv_JNI_CallAnyMethod<jdouble, nonvirtual>,
- _Jv_JNI_CallAnyMethodV<jdouble, nonvirtual>,
- _Jv_JNI_CallAnyMethodA<jdouble, nonvirtual>,
- _Jv_JNI_CallAnyVoidMethod<nonvirtual>,
- _Jv_JNI_CallAnyVoidMethodV<nonvirtual>,
- _Jv_JNI_CallAnyVoidMethodA<nonvirtual>,
-
- _Jv_JNI_GetAnyFieldID<false>,
- _Jv_JNI_GetField<jobject>,
- _Jv_JNI_GetField<jboolean>,
- _Jv_JNI_GetField<jbyte>,
- _Jv_JNI_GetField<jchar>,
- _Jv_JNI_GetField<jshort>,
- _Jv_JNI_GetField<jint>,
- _Jv_JNI_GetField<jlong>,
- _Jv_JNI_GetField<jfloat>,
- _Jv_JNI_GetField<jdouble>,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_SetField,
- _Jv_JNI_GetAnyMethodID<true>,
-
- _Jv_JNI_CallStaticMethod<jobject>,
- _Jv_JNI_CallStaticMethodV<jobject>,
- _Jv_JNI_CallStaticMethodA<jobject>,
- _Jv_JNI_CallStaticMethod<jboolean>,
- _Jv_JNI_CallStaticMethodV<jboolean>,
- _Jv_JNI_CallStaticMethodA<jboolean>,
- _Jv_JNI_CallStaticMethod<jbyte>,
- _Jv_JNI_CallStaticMethodV<jbyte>,
- _Jv_JNI_CallStaticMethodA<jbyte>,
- _Jv_JNI_CallStaticMethod<jchar>,
- _Jv_JNI_CallStaticMethodV<jchar>,
- _Jv_JNI_CallStaticMethodA<jchar>,
- _Jv_JNI_CallStaticMethod<jshort>,
- _Jv_JNI_CallStaticMethodV<jshort>,
- _Jv_JNI_CallStaticMethodA<jshort>,
- _Jv_JNI_CallStaticMethod<jint>,
- _Jv_JNI_CallStaticMethodV<jint>,
- _Jv_JNI_CallStaticMethodA<jint>,
- _Jv_JNI_CallStaticMethod<jlong>,
- _Jv_JNI_CallStaticMethodV<jlong>,
- _Jv_JNI_CallStaticMethodA<jlong>,
- _Jv_JNI_CallStaticMethod<jfloat>,
- _Jv_JNI_CallStaticMethodV<jfloat>,
- _Jv_JNI_CallStaticMethodA<jfloat>,
- _Jv_JNI_CallStaticMethod<jdouble>,
- _Jv_JNI_CallStaticMethodV<jdouble>,
- _Jv_JNI_CallStaticMethodA<jdouble>,
- _Jv_JNI_CallStaticVoidMethod,
- _Jv_JNI_CallStaticVoidMethodV,
- _Jv_JNI_CallStaticVoidMethodA,
-
- _Jv_JNI_GetAnyFieldID<true>,
- _Jv_JNI_GetStaticField<jobject>,
- _Jv_JNI_GetStaticField<jboolean>,
- _Jv_JNI_GetStaticField<jbyte>,
- _Jv_JNI_GetStaticField<jchar>,
- _Jv_JNI_GetStaticField<jshort>,
- _Jv_JNI_GetStaticField<jint>,
- _Jv_JNI_GetStaticField<jlong>,
- _Jv_JNI_GetStaticField<jfloat>,
- _Jv_JNI_GetStaticField<jdouble>,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_SetStaticField,
- _Jv_JNI_NewString,
- _Jv_JNI_GetStringLength,
- _Jv_JNI_GetStringChars,
- _Jv_JNI_ReleaseStringChars,
- _Jv_JNI_NewStringUTF,
- _Jv_JNI_GetStringUTFLength,
- _Jv_JNI_GetStringUTFChars,
- _Jv_JNI_ReleaseStringUTFChars,
- _Jv_JNI_GetArrayLength,
- _Jv_JNI_NewObjectArray,
- _Jv_JNI_GetObjectArrayElement,
- _Jv_JNI_SetObjectArrayElement,
- _Jv_JNI_NewPrimitiveArray<jboolean, JvPrimClass (boolean)>,
- _Jv_JNI_NewPrimitiveArray<jbyte, JvPrimClass (byte)>,
- _Jv_JNI_NewPrimitiveArray<jchar, JvPrimClass (char)>,
- _Jv_JNI_NewPrimitiveArray<jshort, JvPrimClass (short)>,
- _Jv_JNI_NewPrimitiveArray<jint, JvPrimClass (int)>,
- _Jv_JNI_NewPrimitiveArray<jlong, JvPrimClass (long)>,
- _Jv_JNI_NewPrimitiveArray<jfloat, JvPrimClass (float)>,
- _Jv_JNI_NewPrimitiveArray<jdouble, JvPrimClass (double)>,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_ReleasePrimitiveArrayElements,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_GetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_SetPrimitiveArrayRegion,
- _Jv_JNI_RegisterNatives,
- _Jv_JNI_UnregisterNatives,
- _Jv_JNI_MonitorEnter,
- _Jv_JNI_MonitorExit,
- _Jv_JNI_GetJavaVM,
-
- _Jv_JNI_GetStringRegion,
- _Jv_JNI_GetStringUTFRegion,
- _Jv_JNI_GetPrimitiveArrayCritical,
- _Jv_JNI_ReleasePrimitiveArrayCritical,
- _Jv_JNI_GetStringCritical,
- _Jv_JNI_ReleaseStringCritical,
-
- NOT_IMPL /* newweakglobalref */,
- NOT_IMPL /* deleteweakglobalref */,
-
- _Jv_JNI_ExceptionCheck
-};
-
-struct JNIInvokeInterface _Jv_JNI_InvokeFunctions =
-{
- RESERVED,
- RESERVED,
- RESERVED,
-
- _Jv_JNI_DestroyJavaVM,
- _Jv_JNI_AttachCurrentThread,
- _Jv_JNI_DetachCurrentThread,
- _Jv_JNI_GetEnv
-};
diff --git a/libjava/libgcj-test.spec.in b/libjava/libgcj-test.spec.in
deleted file mode 100644
index 17816e26442..00000000000
--- a/libjava/libgcj-test.spec.in
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# This spec file is read by gcj when linking.
-# It is only used by the testing harnesses (in libjava and gdb).
-#
-%rename lib liborig2
-*lib: @LIBGCJTESTSPEC@ @GCTESTSPEC@ @ZLIBTESTSPEC@ %(liborig2)
-
diff --git a/libjava/libgcj.spec.in b/libjava/libgcj.spec.in
deleted file mode 100644
index e9c25481bfd..00000000000
--- a/libjava/libgcj.spec.in
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# This spec file is read by gcj when linking.
-# It is used to specify the standard libraries we need in order
-# to link with libgcj.
-#
-%rename lib liborig
-*lib: -lgcj -lm @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(liborig)
-
-*jc1: @DIVIDESPEC@ @EXCEPTIONSPEC@ -fasynchronous-exceptions
-
-#
-# libgcc should really be a shared library. This is a design flaw
-# that causes no end of mysterious problems. If we are using the
-# GNU linker, force parts of libgcc into the program file rather
-# than picking bits up from various shared libraries.
-#
-%rename startfile startfileorig
-*startfile: %(startfileorig) @LIBDATASTARTSPEC@ @FORCELIBGCCSPEC@
diff --git a/libjava/libgcjdata.c b/libjava/libgcjdata.c
deleted file mode 100644
index 94d79942241..00000000000
--- a/libjava/libgcjdata.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Some systems need data_start defined so the GC be built as a shared
- library. */
-
-int data_start = 0;
diff --git a/libjava/libltdl/.cvsignore b/libjava/libltdl/.cvsignore
deleted file mode 100644
index faf2876a55e..00000000000
--- a/libjava/libltdl/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-acinclude.m4
-aclocal.m4
-configure
-config.*
-conftest*
-libtool
-*.lo
-*.la
-stamp-h*
diff --git a/libjava/libltdl/COPYING.LIB b/libjava/libltdl/COPYING.LIB
deleted file mode 100644
index c4792dd27a3..00000000000
--- a/libjava/libltdl/COPYING.LIB
+++ /dev/null
@@ -1,515 +0,0 @@
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-^L
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-^L
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-^L
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-^L
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-^L
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-^L
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-^L
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-^L
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
- To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
- <one line to give the library's name and a brief idea of what it
-does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper
-mail.
-
-You should also get your employer (if you work as a programmer) or
-your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James
-Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/libjava/libltdl/ChangeLog b/libjava/libltdl/ChangeLog
deleted file mode 100644
index a013585e5d5..00000000000
--- a/libjava/libltdl/ChangeLog
+++ /dev/null
@@ -1,13 +0,0 @@
-2000-09-10 Alexandre Oliva <aoliva@redhat.com>
-
- * Updated from libtool multi-language branch.
-
-2000-02-14 Tom Tromey <tromey@cygnus.com>
-
- * ltdl.c: If HAVE_BOEHM_GC defined, includ gc.h.
- * Makefile.in: Rebuilt.
- * Makefile.am (INCLUDES): New macro.
- * config.h.in, configure: Rebuilt.
- * acconfig.h (HAVE_BOEHM_GC): Define.
- * configure.in: Handle --enable-java-gc.
-
diff --git a/libjava/libltdl/Makefile.am b/libjava/libltdl/Makefile.am
deleted file mode 100644
index 78500297830..00000000000
--- a/libjava/libltdl/Makefile.am
+++ /dev/null
@@ -1,46 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = no-dependencies foreign
-
-INCLUDES = $(GCINCS)
-
-if INSTALL_LTDL
-include_HEADERS = ltdl.h
-lib_LTLIBRARIES = libltdl.la
-else
-noinst_HEADERS = ltdl.h
-endif
-
-if CONVENIENCE_LTDL
-noinst_LTLIBRARIES = libltdlc.la
-endif
-
-libltdl_la_SOURCES = ltdl.c
-libltdl_la_LDFLAGS = -no-undefined -version-info 2:0:2
-libltdl_la_LIBADD = $(LIBADD_DL)
-
-libltdlc_la_SOURCES = ltdl.c
-libltdlc_la_LIBADD = $(LIBADD_DL)
-
-## Because we do not have automatic dependency tracking:
-ltdl.lo: ltdl.h config.h
-
-$(OBJECTS): libtool
-libtool: $(LIBTOOL_DEPS)
- $(SHELL) ./config.status --recheck
-
-## This allows us to install libltdl without using ln and without creating
-## a world writeable directory.
-## FIXME: Remove this rule once automake can do this properly by itself.
-local-install-files: $(DISTFILES)
- -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
- $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -r $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
- else \
- test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
- || cp $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
- fi; \
- done
diff --git a/libjava/libltdl/Makefile.in b/libjava/libltdl/Makefile.in
deleted file mode 100644
index bfea1574b6b..00000000000
--- a/libjava/libltdl/Makefile.in
+++ /dev/null
@@ -1,469 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-CC = @CC@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-GCINCS = @GCINCS@
-GCJ = @GCJ@
-GCJFLAGS = @GCJFLAGS@
-LIBADD_DL = @LIBADD_DL@
-LIBTOOL = @LIBTOOL@
-LIBTOOL_DEPS = @LIBTOOL_DEPS@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = no-dependencies foreign
-
-INCLUDES = $(GCINCS)
-
-@INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h
-@INSTALL_LTDL_TRUE@lib_LTLIBRARIES = libltdl.la
-@INSTALL_LTDL_FALSE@noinst_HEADERS = ltdl.h
-
-@CONVENIENCE_LTDL_TRUE@noinst_LTLIBRARIES = libltdlc.la
-
-libltdl_la_SOURCES = ltdl.c
-libltdl_la_LDFLAGS = -no-undefined -version-info 2:0:2
-libltdl_la_LIBADD = $(LIBADD_DL)
-
-libltdlc_la_SOURCES = ltdl.c
-libltdlc_la_LIBADD = $(LIBADD_DL)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I.
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libltdl_la_DEPENDENCIES =
-libltdl_la_OBJECTS = ltdl.lo
-libltdlc_la_LDFLAGS =
-libltdlc_la_DEPENDENCIES =
-libltdlc_la_OBJECTS = ltdl.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS = $(include_HEADERS) $(noinst_HEADERS)
-
-DIST_COMMON = README ./stamp-h.in COPYING.LIB ChangeLog Makefile.am \
-Makefile.in acconfig.h acinclude.m4 aclocal.m4 config.h.in configure \
-configure.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
-OBJECTS = $(libltdl_la_OBJECTS) $(libltdlc_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .obj .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-config.h: stamp-h
- @if test ! -f $@; then \
- rm -f stamp-h; \
- $(MAKE) stamp-h; \
- else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=config.h \
- $(SHELL) ./config.status
- @echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/stamp-h.in; \
- $(MAKE) $(srcdir)/stamp-h.in; \
- else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f config.h
-
-maintainer-clean-hdr:
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
- done
-
-mostlyclean-noinstLTLIBRARIES:
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-
-distclean-noinstLTLIBRARIES:
-
-maintainer-clean-noinstLTLIBRARIES:
-
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libltdl_la_LDFLAGS) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS)
-
-libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES)
- $(LINK) $(libltdlc_la_LDFLAGS) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS)
-
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-all-recursive-am: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am: install-libLTLIBRARIES
-install-exec: install-exec-am
-
-install-data-am: install-includeHEADERS
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \
- mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
- mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-hdr clean-libLTLIBRARIES clean-noinstLTLIBRARIES \
- clean-compile clean-libtool clean-tags clean-generic \
- mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-hdr distclean-libLTLIBRARIES \
- distclean-noinstLTLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-am
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-hdr \
- maintainer-clean-libLTLIBRARIES \
- maintainer-clean-noinstLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
- -rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES \
-mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
-clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool uninstall-includeHEADERS \
-install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck all-recursive-am install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-ltdl.lo: ltdl.h config.h
-
-$(OBJECTS): libtool
-libtool: $(LIBTOOL_DEPS)
- $(SHELL) ./config.status --recheck
-
-local-install-files: $(DISTFILES)
- -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
- $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -r $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
- else \
- test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
- || cp $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
- fi; \
- done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libjava/libltdl/README b/libjava/libltdl/README
deleted file mode 100644
index e57b99f21a5..00000000000
--- a/libjava/libltdl/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This is GNU libltdl, a system independent dlopen wrapper for GNU libtool.
-
-It supports the following dlopen interfaces:
-* dlopen (Solaris, Linux and various BSD flavors)
-* shl_load (HP-UX)
-* LoadLibrary (Win16 and Win32)
-* load_add_on (BeOS)
-* GNU DLD (emulates dynamic linking for static libraries)
-* libtool's dlpreopen
diff --git a/libjava/libltdl/acconfig.h b/libjava/libltdl/acconfig.h
deleted file mode 100644
index efa668c4dc7..00000000000
--- a/libjava/libltdl/acconfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Some of these are defined here, not in configure.in, because
- they're AC_DEFINEd in two different places, which causes two
- defines to appear. Some C compilers might now appreciate it... */
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define if you have the GNU dld library. */
-#undef HAVE_DLD
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
-/* Define if you are using the Boehm GC. */
-#undef HAVE_BOEHM_GC
diff --git a/libjava/libltdl/acinclude.m4 b/libjava/libltdl/acinclude.m4
deleted file mode 100644
index b838418322e..00000000000
--- a/libjava/libltdl/acinclude.m4
+++ /dev/null
@@ -1,1289 +0,0 @@
-## libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
-## Copyright (C) 1996-1999,2000 Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 45 AC_PROG_LIBTOOL
-AC_DEFUN(AC_PROG_LIBTOOL,[AC_REQUIRE([_AC_PROG_LIBTOOL])
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
- AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [AC_LIBTOOL_CXX],
- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
- AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [ifdef([AC_PROG_GCJ],
- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ
-])])
- ifdef([A][M_PROG_GCJ],
- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ
-])])])])])
-
-AC_DEFUN(_AC_PROG_LIBTOOL,
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# Save cache, so that ltconfig can load it
-AC_CACHE_SAVE
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| AC_MSG_ERROR([libtool configure failed])
-
-# Reload cache, that may have been modified by ltconfig
-AC_CACHE_LOAD
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-AC_DEFUN(AC_LIBTOOL_SETUP,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- AC_PATH_MAGIC
- fi
- ;;
-esac
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
-[libtool_flags="$libtool_flags --enable-dlopen"])
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[libtool_flags="$libtool_flags --enable-win32-dll"])
-AC_ARG_ENABLE(libtool-lock,
- [ --disable-libtool-lock avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-AC_ARG_WITH(pic,
- [ --with-pic try to use only PIC/non-PIC objects [default=use both]],
- pic_mode="$withval", pic_mode=default)
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_SAVE
- AC_LANG_C
- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_RESTORE])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw*)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
-
- # recent cygwin and mingw systems supply a stub DllMain which the user
- # can override, but on older systems we have to supply one
- AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
- [AC_TRY_LINK([],
- [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
- DllMain (0, 0, 0);],
- [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
-
- case "$host/$CC" in
- *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
- # old mingw systems require "-dll" to link a DLL, while more recent ones
- # require "-mdll"
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mdll"
- AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
- [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
- CFLAGS="$SAVE_CFLAGS" ;;
- *-*-cygwin*)
- # cygwin systems need to pass --dll to the linker, and not link
- # crt.o which will require a WinMain@16 definition.
- lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
- esac
- ;;
- ])
-esac
-])
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_SHARED, [dnl
-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_STATIC, [dnl
-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_LIBTOOL_PICMODE - implement the --with-pic flag
-# Usage: AC_LIBTOOL_PICMODE[(MODE)]
-# Where MODE is either `yes' or `no'. If omitted, it defaults to
-# `both'.
-AC_DEFUN(AC_LIBTOOL_PICMODE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)])
-
-
-# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
-AC_DEFUN(AC_PATH_TOOL_PREFIX,
-[AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC,
-[case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="ifelse([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac])
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- AC_MSG_RESULT($MAGIC)
-else
- AC_MSG_RESULT(no)
-fi
-])
-
-
-# AC_PATH_MAGIC - find a file program which can recognise a shared library
-AC_DEFUN(AC_PATH_MAGIC,
-[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
-AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
- else
- MAGIC=:
- fi
-fi
-])
-
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AC_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
-changequote(,)dnl
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
-changequote([,])dnl
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$ac_cv_prog_gnu_ld
-])
-
-# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN(AC_PROG_LD_RELOAD_FLAG,
-[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
-[lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-])
-
-# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN(AC_DEPLIBS_CHECK_METHOD,
-[AC_CACHE_CHECK([how to recognise dependant libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- changequote([, ])dnl
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- changequote([, ])dnl
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- changequote(,)dnl
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- changequote([, ])dnl
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- changequote([, ])dnl
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- changequote([, ])dnl
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- changequote([, ])dnl
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-])
-
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AC_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN(AC_CHECK_LIBM,
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case "$host" in
-*-*-beos* | *-*-cygwin*)
- # These system don't have libm
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, main, LIBM="-lm")
- ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-convenience to the
-# configure arguments. Note that LIBLTDL and INCLTDL are not
-# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
-# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
-# with '${top_builddir}/' and INCLTDL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!). If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- case "$enable_ltdl_convenience" in
- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
- "") enable_ltdl_convenience=yes
- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
- esac
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-install to the configure
-# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
-# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
-# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
-# with '${top_srcdir}/' (note the single quotes!). If your package is
-# not flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- AC_CHECK_LIB(ltdl, main,
- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
- [if test x"$enable_ltdl_install" = xno; then
- AC_MSG_WARN([libltdl not installed, but installation disabled])
- else
- enable_ltdl_install=yes
- fi
- ])
- if test x"$enable_ltdl_install" = x"yes"; then
- ac_configure_args="$ac_configure_args --enable-ltdl-install"
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
- else
- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
- LIBLTDL="-lltdl"
- INCLTDL=
- fi
-])
-
-# If this macro is not defined by Autoconf, define it here.
-ifdef([AC_PROVIDE_IFELSE],
- [],
- [define([AC_PROVIDE_IFELSE],
- [ifdef([AC_PROVIDE_$1],
- [$2], [$3])])])
-
-# AC_LIBTOOL_CXX - enable support for C++ libraries
-AC_DEFUN(AC_LIBTOOL_CXX,[AC_REQUIRE([_AC_LIBTOOL_CXX])])
-AC_DEFUN(_AC_LIBTOOL_CXX,
-[AC_REQUIRE([AC_PROG_LIBTOOL])
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
-dnl is set to the C++ compiler.
-AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
-|| AC_MSG_ERROR([libtool tag configuration failed])
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-# AC_LIBTOOL_GCJ - enable support for GCJ libraries
-AC_DEFUN(AC_LIBTOOL_GCJ,[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
-AC_DEFUN(_AC_LIBTOOL_GCJ,
-[AC_REQUIRE([AC_PROG_LIBTOOL])
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
-dnl is set to the C++ compiler.
-AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=GCJ $ac_aux_dir/ltcf-gcj.sh $host \
-|| AC_MSG_ERROR([libtool tag configuration failed])
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-dnl old names
-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
-
-dnl This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])dnl
-
-AC_DEFUN([LT_AC_PROG_GCJ],[
- AC_CHECK_TOOL(GCJ, gcj, no)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)
-])
-## ltdl.m4 - Configure ltdl for the target system. -*-Shell-script-*-
-## Copyright (C) 1999-2000 Free Software Foundation, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 1 AC_LIB_LTDL
-
-AC_DEFUN(AC_LIB_LTDL,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_C_CONST])dnl
-AC_REQUIRE([AC_C_INLINE])dnl
-
-dnl AC_LIB_LTDL must perform all the checks necessary for compilation
-dnl of the ltdl objects -- including compiler checks (above) and header
-dnl checks (below).
-AC_REQUIRE([AC_HEADER_STDC])dnl
-
-AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h)
-AC_CHECK_HEADERS(string.h strings.h, break)
-AC_CHECK_FUNCS(strchr index, break)
-AC_CHECK_FUNCS(strrchr rindex, break)
-AC_CHECK_FUNCS(strcmp)
-
-AC_REQUIRE([AC_LTDL_ENABLE_INSTALL])dnl
-AC_REQUIRE([AC_LTDL_SHLIBEXT])dnl
-AC_REQUIRE([AC_LTDL_SHLIBPATH])dnl
-AC_REQUIRE([AC_LTDL_SYSSEARCHPATH])dnl
-AC_REQUIRE([AC_LTDL_OBJDIR])dnl
-AC_REQUIRE([AC_LTDL_DLPREOPEN])dnl
-AC_REQUIRE([AC_LTDL_DLLIB])dnl
-AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl
-])
-
-AC_DEFUN(AC_LTDL_ENABLE_INSTALL,
-[AC_ARG_ENABLE(ltdl-install,
-[ --enable-ltdl-install install libltdl])
-
-AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
-AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
-])])
-
-
-AC_DEFUN(AC_LTDL_SNARF_CONFIG,
-[# Read the libtool configuration
-rm -f conftest
-./libtool --config > conftest
-. ./conftest
-rm -f conftest
-])
-
-AC_DEFUN(AC_LTDL_SHLIBEXT,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([which extension is used for shared libraries],
- libltdl_cv_shlibext, [dnl
-(
- last=
- for spec in $library_names_spec; do
- last="$spec"
- done
-changequote(, )
- echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
-changequote([, ])
-)
-libltdl_cv_shlibext=`cat conftest`
-rm -f conftest
-])
-if test -n "$libltdl_cv_shlibext"; then
- AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",
- [Define to the extension used for shared libraries, say, ".so". ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_SHLIBPATH,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([which variable specifies run-time library path],
- libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"])
-if test -n "$libltdl_cv_shlibpath_var"; then
- AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var",
- [Define to the name of the environment variable that determines the dynamic library search path. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_SYSSEARCHPATH,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([for the default library search path],
- libltdl_cv_sys_search_path, [libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"])
-if test -n "$libltdl_cv_sys_search_path"; then
- case "$host" in
- *-*-mingw*) pathsep=";" ;;
- *) pathsep=":" ;;
- esac
- sys_search_path=
- for dir in $libltdl_cv_sys_search_path; do
- if test -z "$sys_search_path"; then
- sys_search_path="$dir"
- else
- sys_search_path="$sys_search_path$pathsep$dir"
- fi
- done
- AC_DEFINE_UNQUOTED(LTDL_SYSSEARCHPATH, "$sys_search_path",
- [Define to the system default library search path. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_OBJDIR,
-[AC_CACHE_CHECK([for objdir],
- libltdl_cv_objdir, [libltdl_cv_objdir="$objdir"
-if test -n "$objdir"; then
- :
-else
- rm -f .libs 2>/dev/null
- mkdir .libs 2>/dev/null
- if test -d .libs; then
- libltdl_cv_objdir=.libs
- else
- # MS-DOS does not allow filenames that begin with a dot.
- libltdl_cv_objdir=_libs
- fi
-rmdir .libs 2>/dev/null
-fi])
-AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries. ])
-])
-
-AC_DEFUN(AC_LTDL_DLPREOPEN,
-[AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl
-AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
- libltdl_cv_preloaded_symbols, [dnl
- if test -n "$global_symbol_pipe"; then
- libltdl_cv_preloaded_symbols=yes
- else
- libltdl_cv_preloaded_symbols=no
- fi
-])
-if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
- AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1,
- [Define if libtool can extract symbol lists from object files. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_DLLIB,
-[LIBADD_DL=
-AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent. ]) LIBADD_DL="-ldl"],
-[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent.])],
-[AC_CHECK_LIB(svld, dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent.]) LIBADD_DL="-lsvld"]
-)])])
-AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1,
- [Define if you have the shl_load function.])],
-[AC_CHECK_LIB(dld, shl_load,
- [AC_DEFINE(HAVE_SHL_LOAD, 1,
- [Define if you have the shl_load function.])
- LIBADD_DL="$LIBADD_DL -ldld"])
-])
-AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1,
- [Define if you have the GNU dld library.])dnl
-test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
-AC_SUBST(LIBADD_DL)
-
-if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
- LIBS_SAVE="$LIBS"
- LIBS="$LIBS $LIBADD_DL"
- AC_CHECK_FUNCS(dlerror)
- LIBS="$LIBS_SAVE"
-fi
-])
-
-AC_DEFUN(AC_LTDL_GLOBAL_SYMBOL_PIPE,
-[dnl Check for command to grab the raw symbol name followed
-dnl by C symbol name from nm.
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output])
-AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
-[# These are sane defaults that work on at least a few old systems.
-# {They come from Ultrix. What could be older than Ultrix?!! ;)}
-
-changequote(,)dnl
-# Character class describing NM global symbol codes.
-ac_symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-ac_symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
- ac_symcode='[BCDT]'
- ;;
-cygwin* | mingw*)
- ac_symcode='[ABCDGISTW]'
- ;;
-hpux*)
- ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
- ;;
-irix*)
- ac_symcode='[BCDEGRST]'
- ;;
-solaris*)
- ac_symcode='[BDT]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- ac_symcode='[ABCDGISTW]'
-fi
-changequote([,])dnl
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- ac_pipe_works=no
- rm -f conftest.$ac_ext
- cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func;return 0;}
-EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
-
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
-
- # Try sorting and uniquifying the output.
- if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
- mv -f "$ac_nlist"T "$ac_nlist"
- else
- rm -f "$ac_nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
- cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
-
- cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-changequote(,)dnl
-lt_preloaded_symbols[] =
-changequote([,])dnl
-{
-EOF
- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- ac_save_LIBS="$LIBS"
- ac_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$no_builtin_flag"
- if AC_TRY_EVAL(ac_link) && test -s conftest; then
- ac_pipe_works=yes
- else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- LIBS="$ac_save_LIBS"
- CFLAGS="$ac_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- else
- echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
- fi
- else
- echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
- fi
- else
- echo "$progname: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$ac_pipe_works" = yes; then
- if test x"$ac_symprfx" = x"_"; then
- ac_cv_sys_symbol_underscore=yes
- else
- ac_cv_sys_symbol_underscore=no
- fi
- break
- else
- ac_cv_sys_global_symbol_pipe=
- fi
-done
-])
-
-ac_result=yes
-if test -z "$ac_cv_sys_global_symbol_pipe"; then
- ac_result=no
-fi
-AC_MSG_RESULT($ac_result)
-])
-
-AC_DEFUN(AC_LTDL_SYMBOL_USCORE,
-[dnl does the compiler prefix global symbols with an underscore?
-AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl
-AC_MSG_CHECKING([for _ prefix in compiled symbols])
-AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
-[ac_cv_sys_symbol_underscore=no
-cat > conftest.$ac_ext <<EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-EOF
-if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
- # See whether the symbols have a leading underscore.
- if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
- ac_cv_sys_symbol_underscore=yes
- else
- if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
- :
- else
- echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- fi
- else
- echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
- fi
-else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
-fi
-rm -rf conftest*
-])
-AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
-AC_LTDL_DLSYM_USCORE
-])
-
-AC_DEFUN(AC_LTDL_DLSYM_USCORE,
-[AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl
-if test x"$ac_cv_sys_symbol_underscore" = xyes; then
- if test x"$ac_cv_func_dlopen" = xyes ||
- test x"$ac_cv_lib_dl_dlopen" = xyes ; then
- AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
- libltdl_cv_need_uscore, [dnl
- AC_TRY_RUN([
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); }
-], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
- libltdl_cv_need_uscore=cross
-)])
- fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
- AC_DEFINE(NEED_USCORE, 1,
- [Define if dlsym() requires a leading underscode in symbol names. ])
-fi
-])
diff --git a/libjava/libltdl/aclocal.m4 b/libjava/libltdl/aclocal.m4
deleted file mode 100644
index 43a94dbcc16..00000000000
--- a/libjava/libltdl/aclocal.m4
+++ /dev/null
@@ -1,1407 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-
-# serial 45 AC_PROG_LIBTOOL
-AC_DEFUN(AC_PROG_LIBTOOL,[AC_REQUIRE([_AC_PROG_LIBTOOL])
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
- AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [AC_LIBTOOL_CXX],
- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
- AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [ifdef([AC_PROG_GCJ],
- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ
-])])
- ifdef([A][M_PROG_GCJ],
- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ
-])])])])])
-
-AC_DEFUN(_AC_PROG_LIBTOOL,
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# Save cache, so that ltconfig can load it
-AC_CACHE_SAVE
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| AC_MSG_ERROR([libtool configure failed])
-
-# Reload cache, that may have been modified by ltconfig
-AC_CACHE_LOAD
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-AC_DEFUN(AC_LIBTOOL_SETUP,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- AC_PATH_MAGIC
- fi
- ;;
-esac
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
-[libtool_flags="$libtool_flags --enable-dlopen"])
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[libtool_flags="$libtool_flags --enable-win32-dll"])
-AC_ARG_ENABLE(libtool-lock,
- [ --disable-libtool-lock avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-AC_ARG_WITH(pic,
- [ --with-pic try to use only PIC/non-PIC objects [default=use both]],
- pic_mode="$withval", pic_mode=default)
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_SAVE
- AC_LANG_C
- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_RESTORE])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw*)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
-
- # recent cygwin and mingw systems supply a stub DllMain which the user
- # can override, but on older systems we have to supply one
- AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
- [AC_TRY_LINK([],
- [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
- DllMain (0, 0, 0);],
- [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
-
- case "$host/$CC" in
- *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
- # old mingw systems require "-dll" to link a DLL, while more recent ones
- # require "-mdll"
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mdll"
- AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
- [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
- CFLAGS="$SAVE_CFLAGS" ;;
- *-*-cygwin*)
- # cygwin systems need to pass --dll to the linker, and not link
- # crt.o which will require a WinMain@16 definition.
- lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
- esac
- ;;
- ])
-esac
-])
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_SHARED, [dnl
-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_STATIC, [dnl
-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_LIBTOOL_PICMODE - implement the --with-pic flag
-# Usage: AC_LIBTOOL_PICMODE[(MODE)]
-# Where MODE is either `yes' or `no'. If omitted, it defaults to
-# `both'.
-AC_DEFUN(AC_LIBTOOL_PICMODE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)])
-
-
-# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
-AC_DEFUN(AC_PATH_TOOL_PREFIX,
-[AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC,
-[case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="ifelse([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac])
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- AC_MSG_RESULT($MAGIC)
-else
- AC_MSG_RESULT(no)
-fi
-])
-
-
-# AC_PATH_MAGIC - find a file program which can recognise a shared library
-AC_DEFUN(AC_PATH_MAGIC,
-[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
-AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
- else
- MAGIC=:
- fi
-fi
-])
-
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AC_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
-changequote(,)dnl
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
-changequote([,])dnl
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$ac_cv_prog_gnu_ld
-])
-
-# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN(AC_PROG_LD_RELOAD_FLAG,
-[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
-[lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-])
-
-# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN(AC_DEPLIBS_CHECK_METHOD,
-[AC_CACHE_CHECK([how to recognise dependant libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- changequote([, ])dnl
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- changequote([, ])dnl
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- changequote(,)dnl
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- changequote([, ])dnl
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- changequote([, ])dnl
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- changequote([, ])dnl
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- changequote(,)dnl
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- changequote([, ])dnl
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-])
-
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AC_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN(AC_CHECK_LIBM,
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case "$host" in
-*-*-beos* | *-*-cygwin*)
- # These system don't have libm
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, main, LIBM="-lm")
- ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-convenience to the
-# configure arguments. Note that LIBLTDL and INCLTDL are not
-# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
-# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
-# with '${top_builddir}/' and INCLTDL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!). If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- case "$enable_ltdl_convenience" in
- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
- "") enable_ltdl_convenience=yes
- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
- esac
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-install to the configure
-# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
-# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
-# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
-# with '${top_srcdir}/' (note the single quotes!). If your package is
-# not flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- AC_CHECK_LIB(ltdl, main,
- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
- [if test x"$enable_ltdl_install" = xno; then
- AC_MSG_WARN([libltdl not installed, but installation disabled])
- else
- enable_ltdl_install=yes
- fi
- ])
- if test x"$enable_ltdl_install" = x"yes"; then
- ac_configure_args="$ac_configure_args --enable-ltdl-install"
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
- else
- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
- LIBLTDL="-lltdl"
- INCLTDL=
- fi
-])
-
-# If this macro is not defined by Autoconf, define it here.
-ifdef([AC_PROVIDE_IFELSE],
- [],
- [define([AC_PROVIDE_IFELSE],
- [ifdef([AC_PROVIDE_$1],
- [$2], [$3])])])
-
-# AC_LIBTOOL_CXX - enable support for C++ libraries
-AC_DEFUN(AC_LIBTOOL_CXX,[AC_REQUIRE([_AC_LIBTOOL_CXX])])
-AC_DEFUN(_AC_LIBTOOL_CXX,
-[AC_REQUIRE([AC_PROG_LIBTOOL])
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
-dnl is set to the C++ compiler.
-AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
-|| AC_MSG_ERROR([libtool tag configuration failed])
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-# AC_LIBTOOL_GCJ - enable support for GCJ libraries
-AC_DEFUN(AC_LIBTOOL_GCJ,[AC_REQUIRE([_AC_LIBTOOL_GCJ])])
-AC_DEFUN(_AC_LIBTOOL_GCJ,
-[AC_REQUIRE([AC_PROG_LIBTOOL])
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])
-LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-gcj.sh"
-lt_save_CC="$CC"
-lt_save_CFLAGS="$CFLAGS"
-dnl Make sure LTCC is set to the C compiler, i.e. set LTCC before CC
-dnl is set to the C++ compiler.
-AR="$AR" LTCC="$CC" CC="$GCJ" CFLAGS="$GCJFLAGS" CPPFLAGS="" \
-MAGIC="$MAGIC" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" \
-file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
---build="$build" --add-tag=GCJ $ac_aux_dir/ltcf-gcj.sh $host \
-|| AC_MSG_ERROR([libtool tag configuration failed])
-CC="$lt_save_CC"
-CFLAGS="$lt_save_CFLAGS"
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-dnl old names
-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
-
-dnl This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])dnl
-
-AC_DEFUN([LT_AC_PROG_GCJ],[
- AC_CHECK_TOOL(GCJ, gcj, no)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)
-])
-
-# serial 1 AC_LIB_LTDL
-
-AC_DEFUN(AC_LIB_LTDL,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_C_CONST])dnl
-AC_REQUIRE([AC_C_INLINE])dnl
-
-dnl AC_LIB_LTDL must perform all the checks necessary for compilation
-dnl of the ltdl objects -- including compiler checks (above) and header
-dnl checks (below).
-AC_REQUIRE([AC_HEADER_STDC])dnl
-
-AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h)
-AC_CHECK_HEADERS(string.h strings.h, break)
-AC_CHECK_FUNCS(strchr index, break)
-AC_CHECK_FUNCS(strrchr rindex, break)
-AC_CHECK_FUNCS(strcmp)
-
-AC_REQUIRE([AC_LTDL_ENABLE_INSTALL])dnl
-AC_REQUIRE([AC_LTDL_SHLIBEXT])dnl
-AC_REQUIRE([AC_LTDL_SHLIBPATH])dnl
-AC_REQUIRE([AC_LTDL_SYSSEARCHPATH])dnl
-AC_REQUIRE([AC_LTDL_OBJDIR])dnl
-AC_REQUIRE([AC_LTDL_DLPREOPEN])dnl
-AC_REQUIRE([AC_LTDL_DLLIB])dnl
-AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl
-])
-
-AC_DEFUN(AC_LTDL_ENABLE_INSTALL,
-[AC_ARG_ENABLE(ltdl-install,
-[ --enable-ltdl-install install libltdl])
-
-AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
-AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
-])])
-
-
-AC_DEFUN(AC_LTDL_SNARF_CONFIG,
-[# Read the libtool configuration
-rm -f conftest
-./libtool --config > conftest
-. ./conftest
-rm -f conftest
-])
-
-AC_DEFUN(AC_LTDL_SHLIBEXT,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([which extension is used for shared libraries],
- libltdl_cv_shlibext, [dnl
-(
- last=
- for spec in $library_names_spec; do
- last="$spec"
- done
-changequote(, )
- echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
-changequote([, ])
-)
-libltdl_cv_shlibext=`cat conftest`
-rm -f conftest
-])
-if test -n "$libltdl_cv_shlibext"; then
- AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",
- [Define to the extension used for shared libraries, say, ".so". ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_SHLIBPATH,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([which variable specifies run-time library path],
- libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"])
-if test -n "$libltdl_cv_shlibpath_var"; then
- AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var",
- [Define to the name of the environment variable that determines the dynamic library search path. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_SYSSEARCHPATH,
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
-AC_CACHE_CHECK([for the default library search path],
- libltdl_cv_sys_search_path, [libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"])
-if test -n "$libltdl_cv_sys_search_path"; then
- case "$host" in
- *-*-mingw*) pathsep=";" ;;
- *) pathsep=":" ;;
- esac
- sys_search_path=
- for dir in $libltdl_cv_sys_search_path; do
- if test -z "$sys_search_path"; then
- sys_search_path="$dir"
- else
- sys_search_path="$sys_search_path$pathsep$dir"
- fi
- done
- AC_DEFINE_UNQUOTED(LTDL_SYSSEARCHPATH, "$sys_search_path",
- [Define to the system default library search path. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_OBJDIR,
-[AC_CACHE_CHECK([for objdir],
- libltdl_cv_objdir, [libltdl_cv_objdir="$objdir"
-if test -n "$objdir"; then
- :
-else
- rm -f .libs 2>/dev/null
- mkdir .libs 2>/dev/null
- if test -d .libs; then
- libltdl_cv_objdir=.libs
- else
- # MS-DOS does not allow filenames that begin with a dot.
- libltdl_cv_objdir=_libs
- fi
-rmdir .libs 2>/dev/null
-fi])
-AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries. ])
-])
-
-AC_DEFUN(AC_LTDL_DLPREOPEN,
-[AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl
-AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
- libltdl_cv_preloaded_symbols, [dnl
- if test -n "$global_symbol_pipe"; then
- libltdl_cv_preloaded_symbols=yes
- else
- libltdl_cv_preloaded_symbols=no
- fi
-])
-if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
- AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1,
- [Define if libtool can extract symbol lists from object files. ])
-fi
-])
-
-AC_DEFUN(AC_LTDL_DLLIB,
-[LIBADD_DL=
-AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent. ]) LIBADD_DL="-ldl"],
-[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent.])],
-[AC_CHECK_LIB(svld, dlopen, [AC_DEFINE(HAVE_LIBDL, 1,
- [Define if you have the libdl library or equivalent.]) LIBADD_DL="-lsvld"]
-)])])
-AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1,
- [Define if you have the shl_load function.])],
-[AC_CHECK_LIB(dld, shl_load,
- [AC_DEFINE(HAVE_SHL_LOAD, 1,
- [Define if you have the shl_load function.])
- LIBADD_DL="$LIBADD_DL -ldld"])
-])
-AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1,
- [Define if you have the GNU dld library.])dnl
-test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
-AC_SUBST(LIBADD_DL)
-
-if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
- LIBS_SAVE="$LIBS"
- LIBS="$LIBS $LIBADD_DL"
- AC_CHECK_FUNCS(dlerror)
- LIBS="$LIBS_SAVE"
-fi
-])
-
-AC_DEFUN(AC_LTDL_GLOBAL_SYMBOL_PIPE,
-[dnl Check for command to grab the raw symbol name followed
-dnl by C symbol name from nm.
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output])
-AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
-[# These are sane defaults that work on at least a few old systems.
-# {They come from Ultrix. What could be older than Ultrix?!! ;)}
-
-changequote(,)dnl
-# Character class describing NM global symbol codes.
-ac_symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-ac_symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
- ac_symcode='[BCDT]'
- ;;
-cygwin* | mingw*)
- ac_symcode='[ABCDGISTW]'
- ;;
-hpux*)
- ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
- ;;
-irix*)
- ac_symcode='[BCDEGRST]'
- ;;
-solaris*)
- ac_symcode='[BDT]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- ac_symcode='[ABCDGISTW]'
-fi
-changequote([,])dnl
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- ac_pipe_works=no
- rm -f conftest.$ac_ext
- cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func;return 0;}
-EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
-
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
-
- # Try sorting and uniquifying the output.
- if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
- mv -f "$ac_nlist"T "$ac_nlist"
- else
- rm -f "$ac_nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
- cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
-
- cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-changequote(,)dnl
-lt_preloaded_symbols[] =
-changequote([,])dnl
-{
-EOF
- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- ac_save_LIBS="$LIBS"
- ac_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$no_builtin_flag"
- if AC_TRY_EVAL(ac_link) && test -s conftest; then
- ac_pipe_works=yes
- else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- LIBS="$ac_save_LIBS"
- CFLAGS="$ac_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- else
- echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
- fi
- else
- echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
- fi
- else
- echo "$progname: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$ac_pipe_works" = yes; then
- if test x"$ac_symprfx" = x"_"; then
- ac_cv_sys_symbol_underscore=yes
- else
- ac_cv_sys_symbol_underscore=no
- fi
- break
- else
- ac_cv_sys_global_symbol_pipe=
- fi
-done
-])
-
-ac_result=yes
-if test -z "$ac_cv_sys_global_symbol_pipe"; then
- ac_result=no
-fi
-AC_MSG_RESULT($ac_result)
-])
-
-AC_DEFUN(AC_LTDL_SYMBOL_USCORE,
-[dnl does the compiler prefix global symbols with an underscore?
-AC_REQUIRE([AC_LTDL_GLOBAL_SYMBOL_PIPE])dnl
-AC_MSG_CHECKING([for _ prefix in compiled symbols])
-AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
-[ac_cv_sys_symbol_underscore=no
-cat > conftest.$ac_ext <<EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-EOF
-if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
- # See whether the symbols have a leading underscore.
- if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
- ac_cv_sys_symbol_underscore=yes
- else
- if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
- :
- else
- echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- fi
- else
- echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
- fi
-else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
-fi
-rm -rf conftest*
-])
-AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
-AC_LTDL_DLSYM_USCORE
-])
-
-AC_DEFUN(AC_LTDL_DLSYM_USCORE,
-[AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])dnl
-if test x"$ac_cv_sys_symbol_underscore" = xyes; then
- if test x"$ac_cv_func_dlopen" = xyes ||
- test x"$ac_cv_lib_dl_dlopen" = xyes ; then
- AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
- libltdl_cv_need_uscore, [dnl
- AC_TRY_RUN([
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); }
-], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
- libltdl_cv_need_uscore=cross
-)])
- fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
- AC_DEFINE(NEED_USCORE, 1,
- [Define if dlsym() requires a leading underscode in symbol names. ])
-fi
-])
-
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi])
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
- ;;
- esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
-
-# serial 1
-
-AC_DEFUN(AM_MAINTAINER_MODE,
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
diff --git a/libjava/libltdl/config.h.in b/libjava/libltdl/config.h.in
deleted file mode 100644
index 95e384928b3..00000000000
--- a/libjava/libltdl/config.h.in
+++ /dev/null
@@ -1,98 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define as __inline if that's what the C compiler calls it. */
-#undef inline
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if you are using the Boehm GC. */
-#undef HAVE_BOEHM_GC
-
-/* Define if you have the dlerror function. */
-#undef HAVE_DLERROR
-
-/* Define if you have the index function. */
-#undef HAVE_INDEX
-
-/* Define if you have the rindex function. */
-#undef HAVE_RINDEX
-
-/* Define if you have the strchr function. */
-#undef HAVE_STRCHR
-
-/* Define if you have the strcmp function. */
-#undef HAVE_STRCMP
-
-/* Define if you have the strrchr function. */
-#undef HAVE_STRRCHR
-
-/* Define if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Define if you have the <dl.h> header file. */
-#undef HAVE_DL_H
-
-/* Define if you have the <dld.h> header file. */
-#undef HAVE_DLD_H
-
-/* Define if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to the extension used for shared libraries, say, .so. */
-#undef LTDL_SHLIB_EXT
-
-/* Define to the name of the environment variable that determines the dynamic library search path. */
-#undef LTDL_SHLIBPATH_VAR
-
-/* Define to the system default library search path. */
-#undef LTDL_SYSSEARCHPATH
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries. */
-#undef LTDL_OBJDIR
-
-/* Define if libtool can extract symbol lists from object files. */
-#undef HAVE_PRELOADED_SYMBOLS
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
-/* Define if you have the GNU dld library. */
-#undef HAVE_DLD
-
-/* Define if dlsym() requires a leading underscode in symbol names. */
-#undef NEED_USCORE
-
diff --git a/libjava/libltdl/configure b/libjava/libltdl/configure
deleted file mode 100755
index f0e6f22323d..00000000000
--- a/libjava/libltdl/configure
+++ /dev/null
@@ -1,4118 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- --with-auxdir=DIR path to autoconf auxiliary files"
-ac_help="$ac_help
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer"
-ac_help="$ac_help
- --enable-shared[=PKGS] build shared libraries [default=yes]"
-ac_help="$ac_help
- --enable-static[=PKGS] build static libraries [default=yes]"
-ac_help="$ac_help
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
-ac_help="$ac_help
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
- --disable-libtool-lock avoid locking (might break parallel builds)"
-ac_help="$ac_help
- --with-pic try to use only PIC/non-PIC objects [default=use both]"
-ac_help="$ac_help
- --enable-java-gc=TYPE choose garbage collector [boehm]"
-ac_help="$ac_help
- --enable-ltdl-install install libltdl"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=ltdl.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:546: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 551 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cygwin=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:579: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 584 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_mingw32=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-
-# Check whether --with-auxdir or --without-auxdir was given.
-if test "${with_auxdir+set}" = set; then
- withval="$with_auxdir"
- ac_aux_dir=
-for ac_dir in $with_auxdir; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $with_auxdir" 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-else
- ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-fi
-
-
-if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then
- if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then
- # if libltdl is libtoolized, it is assumed to be stand-alone and
- # installed unless the command line overrides it (tested above)
- enable_ltdl_install=yes
- else
- echo "configure: warning: *** The top-level configure must select either" 1>&2
- echo "configure: warning: *** A""C_LIBLTDL_INSTALLABLE or A""C_LIBLTDL_CONVENIENCE." 1>&2
- { echo "configure: error: *** Maybe you want to --enable-ltdl-install?" 1>&2; exit 1; }
- fi
-fi
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:678: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:731: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:788: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-PACKAGE=libltdl
-
-VERSION=1.1
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:827: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:840: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:853: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:866: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:879: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-
-
-
-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:896: checking whether to enable maintainer-specific portions of Makefiles" >&5
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:922: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:952: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1003: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1035: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1046 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1077: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1082: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1110: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1142: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1147 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:1196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1217: checking for inline" >&5
-if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat > conftest.$ac_ext <<EOF
-#line 1224 "configure"
-#include "confdefs.h"
-
-int main() {
-} $ac_kw foo() {
-; return 0; }
-EOF
-if { (eval echo configure:1231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_inline=$ac_kw; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$ac_cv_c_inline" 1>&6
-case "$ac_cv_c_inline" in
- inline | yes) ;;
- no) cat >> confdefs.h <<\EOF
-#define inline
-EOF
- ;;
- *) cat >> confdefs.h <<EOF
-#define inline $ac_cv_c_inline
-EOF
- ;;
-esac
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1334: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1355: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1384: checking for ld used by GCC" >&5
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1414: checking for GNU ld" >&5
-else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1417: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1452: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-with_gnu_ld=$ac_cv_prog_gnu_ld
-
-
-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1469: checking for $LD option to reload object files" >&5
-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-
-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1481: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- ac_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$tmp_nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1519: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1540: checking how to recognise dependant libraries" >&5
-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- lt_cv_file_magic_cmd='${MAGIC}'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case "$host_os" in
-aix4*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='${OBJDUMP} -f'
- ;;
-
-freebsd* )
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case "$host_cpu" in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- lt_cv_deplibs_check_method='file_magic (s0-90-90-9|PA-RISC0-9.0-9) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
-
-irix5* | irix6*)
- case "$host_os" in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- case "$host_cpu" in
- alpha* | i*86 | powerpc* | sparc* | ia64* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then :
- else
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case "$host_vendor" in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-
-fi
-
-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1683: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1709: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:1719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-if test $host != $build; then
- ac_tool_prefix=${host_alias}-
-else
- ac_tool_prefix=
-fi
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# Only perform the check for file, if the check method requires it
-case "$deplibs_check_method" in
-file_magic*)
- if test "$file_magic_cmd" = '${MAGIC}'; then
- echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:1752: checking for ${ac_tool_prefix}file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$lt_cv_path_MAGIC"; then
- if test -n "$ac_tool_prefix"; then
- echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:1814: checking for file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$MAGIC" in
- /*)
- lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC="$MAGIC"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC="$lt_cv_path_MAGIC"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC="$ac_save_MAGIC"
- ;;
-esac
-fi
-
-MAGIC="$lt_cv_path_MAGIC"
-if test -n "$MAGIC"; then
- echo "$ac_t""$MAGIC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- else
- MAGIC=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1885: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1917: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- RANLIB=":"
-fi
-fi
-
-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1952: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_STRIP"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1984: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIP="strip"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
- echo "$ac_t""$STRIP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- STRIP=":"
-fi
-fi
-
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-libtool_flags="$libtool_flags --enable-win32-dll"
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
- :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 2051 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2073: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
- cat > conftest.$ac_ext <<EOF
-#line 2086 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_needs_belf=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
- ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-*-*-cygwin* | *-*-mingw*)
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2123: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-DLLTOOL="$ac_cv_prog_DLLTOOL"
-if test -n "$DLLTOOL"; then
- echo "$ac_t""$DLLTOOL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_DLLTOOL"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2155: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_DLLTOOL="dlltool"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_DLLTOOL" && ac_cv_prog_DLLTOOL="false"
-fi
-fi
-DLLTOOL="$ac_cv_prog_DLLTOOL"
-if test -n "$DLLTOOL"; then
- echo "$ac_t""$DLLTOOL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- DLLTOOL="false"
-fi
-fi
-
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2190: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AS="$ac_cv_prog_AS"
-if test -n "$AS"; then
- echo "$ac_t""$AS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_AS"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2222: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AS="as"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="false"
-fi
-fi
-AS="$ac_cv_prog_AS"
-if test -n "$AS"; then
- echo "$ac_t""$AS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- AS="false"
-fi
-fi
-
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2257: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-OBJDUMP="$ac_cv_prog_OBJDUMP"
-if test -n "$OBJDUMP"; then
- echo "$ac_t""$OBJDUMP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_OBJDUMP"; then
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2289: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_OBJDUMP="objdump"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_OBJDUMP" && ac_cv_prog_OBJDUMP="false"
-fi
-fi
-OBJDUMP="$ac_cv_prog_OBJDUMP"
-if test -n "$OBJDUMP"; then
- echo "$ac_t""$OBJDUMP" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- OBJDUMP="false"
-fi
-fi
-
-
- # recent cygwin and mingw systems supply a stub DllMain which the user
- # can override, but on older systems we have to supply one
- echo $ac_n "checking if libtool should supply DllMain function""... $ac_c" 1>&6
-echo "configure:2325: checking if libtool should supply DllMain function" >&5
-if eval "test \"`echo '$''{'lt_cv_need_dllmain'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2330 "configure"
-#include "confdefs.h"
-
-int main() {
-extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
- DllMain (0, 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:2338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_need_dllmain=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_need_dllmain=yes
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$lt_cv_need_dllmain" 1>&6
-
- case "$host/$CC" in
- *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
- # old mingw systems require "-dll" to link a DLL, while more recent ones
- # require "-mdll"
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mdll"
- echo $ac_n "checking how to link DLLs""... $ac_c" 1>&6
-echo "configure:2359: checking how to link DLLs" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_dll_switch'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2364 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_dll_switch=-mdll
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_dll_switch=-dll
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$lt_cv_cc_dll_switch" 1>&6
- CFLAGS="$SAVE_CFLAGS" ;;
- *-*-cygwin*)
- # cygwin systems need to pass --dll to the linker, and not link
- # crt.o which will require a WinMain@16 definition.
- lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
- esac
- ;;
-
-esac
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-
-
-
-
-echo $ac_n "checking for garbage collector to use""... $ac_c" 1>&6
-echo "configure:2483: checking for garbage collector to use" >&5
-# Check whether --enable-java-gc or --disable-java-gc was given.
-if test "${enable_java_gc+set}" = set; then
- enableval="$enable_java_gc"
-
- GC=$enableval
-else
- GC=boehm
-fi
-
-
-GCINCS=
-if test "$GC" = "boehm"; then
- GCINCS='-I$(top_srcdir)/../../boehm-gc -I$(top_builddir)/../../boehm-gc'
- GCINCS="$GCINCS `cat ../../boehm-gc/boehm-cflags`"
- cat >> confdefs.h <<\EOF
-#define HAVE_BOEHM_GC 1
-EOF
-
-fi
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2506: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 2521 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 2538 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 2555 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-# Read the libtool configuration
-rm -f conftest
-./libtool --config > conftest
-. ./conftest
-rm -f conftest
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
-echo "configure:2593: checking command to parse $NM output" >&5
-if eval "test \"`echo '$''{'ac_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # These are sane defaults that work on at least a few old systems.
-# {They come from Ultrix. What could be older than Ultrix?!! ;)}
-
-# Character class describing NM global symbol codes.
-ac_symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-ac_symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
- ac_symcode='[BCDT]'
- ;;
-cygwin* | mingw*)
- ac_symcode='[ABCDGISTW]'
- ;;
-hpux*)
- ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
- ;;
-irix*)
- ac_symcode='[BCDEGRST]'
- ;;
-solaris*)
- ac_symcode='[BDT]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- ac_symcode='[ABCDGISTW]'
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* \($ac_symcode\) *\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- ac_pipe_works=no
- rm -f conftest.$ac_ext
- cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func;return 0;}
-EOF
-
- if { (eval echo configure:2656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
-
- if { (eval echo configure:2660: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then
-
- # Try sorting and uniquifying the output.
- if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
- mv -f "$ac_nlist"T "$ac_nlist"
- else
- rm -f "$ac_nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
- cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
-
- cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- ac_save_LIBS="$LIBS"
- ac_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$no_builtin_flag"
- if { (eval echo configure:2712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- ac_pipe_works=yes
- else
- echo "configure: failed program was:" >&5
- cat conftest.c >&5
- fi
- LIBS="$ac_save_LIBS"
- CFLAGS="$ac_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $ac_nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $ac_nlist" >&5
- fi
- else
- echo "cannot run $ac_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$ac_pipe_works" = yes; then
- if test x"$ac_symprfx" = x"_"; then
- ac_cv_sys_symbol_underscore=yes
- else
- ac_cv_sys_symbol_underscore=no
- fi
- break
- else
- ac_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-
-ac_result=yes
-if test -z "$ac_cv_sys_global_symbol_pipe"; then
- ac_result=no
-fi
-echo "$ac_t""$ac_result" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2758: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2763 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2771: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2788 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 2806 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 2827 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:2838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-# Check whether --enable-ltdl-install or --disable-ltdl-install was given.
-if test "${enable_ltdl_install+set}" = set; then
- enableval="$enable_ltdl_install"
- :
-fi
-
-
-
-
-if test x"${enable_ltdl_install-no}" != xno; then
- INSTALL_LTDL_TRUE=
- INSTALL_LTDL_FALSE='#'
-else
- INSTALL_LTDL_TRUE='#'
- INSTALL_LTDL_FALSE=
-fi
-
-
-if test x"${enable_ltdl_convenience-no}" != xno; then
- CONVENIENCE_LTDL_TRUE=
- CONVENIENCE_LTDL_FALSE='#'
-else
- CONVENIENCE_LTDL_TRUE='#'
- CONVENIENCE_LTDL_FALSE=
-fi
-
-echo $ac_n "checking which extension is used for shared libraries""... $ac_c" 1>&6
-echo "configure:2888: checking which extension is used for shared libraries" >&5
-if eval "test \"`echo '$''{'libltdl_cv_shlibext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- (
- last=
- for spec in $library_names_spec; do
- last="$spec"
- done
-
- echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
-
-)
-libltdl_cv_shlibext=`cat conftest`
-rm -f conftest
-
-fi
-
-echo "$ac_t""$libltdl_cv_shlibext" 1>&6
-if test -n "$libltdl_cv_shlibext"; then
- cat >> confdefs.h <<EOF
-#define LTDL_SHLIB_EXT "$libltdl_cv_shlibext"
-EOF
-
-fi
-
-echo $ac_n "checking which variable specifies run-time library path""... $ac_c" 1>&6
-echo "configure:2915: checking which variable specifies run-time library path" >&5
-if eval "test \"`echo '$''{'libltdl_cv_shlibpath_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- libltdl_cv_shlibpath_var="$shlibpath_var"
-fi
-
-echo "$ac_t""$libltdl_cv_shlibpath_var" 1>&6
-if test -n "$libltdl_cv_shlibpath_var"; then
- cat >> confdefs.h <<EOF
-#define LTDL_SHLIBPATH_VAR "$libltdl_cv_shlibpath_var"
-EOF
-
-fi
-
-echo $ac_n "checking for the default library search path""... $ac_c" 1>&6
-echo "configure:2931: checking for the default library search path" >&5
-if eval "test \"`echo '$''{'libltdl_cv_sys_search_path'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"
-fi
-
-echo "$ac_t""$libltdl_cv_sys_search_path" 1>&6
-if test -n "$libltdl_cv_sys_search_path"; then
- case "$host" in
- *-*-mingw*) pathsep=";" ;;
- *) pathsep=":" ;;
- esac
- sys_search_path=
- for dir in $libltdl_cv_sys_search_path; do
- if test -z "$sys_search_path"; then
- sys_search_path="$dir"
- else
- sys_search_path="$sys_search_path$pathsep$dir"
- fi
- done
- cat >> confdefs.h <<EOF
-#define LTDL_SYSSEARCHPATH "$sys_search_path"
-EOF
-
-fi
-
-echo $ac_n "checking for objdir""... $ac_c" 1>&6
-echo "configure:2959: checking for objdir" >&5
-if eval "test \"`echo '$''{'libltdl_cv_objdir'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- libltdl_cv_objdir="$objdir"
-if test -n "$objdir"; then
- :
-else
- rm -f .libs 2>/dev/null
- mkdir .libs 2>/dev/null
- if test -d .libs; then
- libltdl_cv_objdir=.libs
- else
- # MS-DOS does not allow filenames that begin with a dot.
- libltdl_cv_objdir=_libs
- fi
-rmdir .libs 2>/dev/null
-fi
-fi
-
-echo "$ac_t""$libltdl_cv_objdir" 1>&6
-cat >> confdefs.h <<EOF
-#define LTDL_OBJDIR "$libltdl_cv_objdir/"
-EOF
-
-
-echo $ac_n "checking whether libtool supports -dlopen/-dlpreopen""... $ac_c" 1>&6
-echo "configure:2986: checking whether libtool supports -dlopen/-dlpreopen" >&5
-if eval "test \"`echo '$''{'libltdl_cv_preloaded_symbols'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$global_symbol_pipe"; then
- libltdl_cv_preloaded_symbols=yes
- else
- libltdl_cv_preloaded_symbols=no
- fi
-
-fi
-
-echo "$ac_t""$libltdl_cv_preloaded_symbols" 1>&6
-if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_PRELOADED_SYMBOLS 1
-EOF
-
-fi
-
-LIBADD_DL=
-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:3008: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBDL 1
-EOF
- LIBADD_DL="-ldl"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:3049: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3054 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_dlopen=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBDL 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
-echo "configure:3098: checking for dlopen in -lsvld" >&5
-ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsvld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3106 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:3117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBDL 1
-EOF
- LIBADD_DL="-lsvld"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-fi
-
-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "configure:3146: checking for shl_load" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3151 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shl_load(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shl_load();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-shl_load();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_shl_load=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_shl_load=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SHL_LOAD 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:3195: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3203 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo configure:3214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SHL_LOAD 1
-EOF
-
- LIBADD_DL="$LIBADD_DL -ldld"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "configure:3242: checking for dld_link in -ldld" >&5
-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3250 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dld_link();
-
-int main() {
-dld_link()
-; return 0; }
-EOF
-if { (eval echo configure:3261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_DLD 1
-EOF
-test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
- LIBS_SAVE="$LIBS"
- LIBS="$LIBS $LIBADD_DL"
- for ac_func in dlerror
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3292: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3297 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- LIBS="$LIBS_SAVE"
-fi
-
-echo $ac_n "checking for _ prefix in compiled symbols""... $ac_c" 1>&6
-echo "configure:3348: checking for _ prefix in compiled symbols" >&5
-if eval "test \"`echo '$''{'ac_cv_sys_symbol_underscore'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_cv_sys_symbol_underscore=no
-cat > conftest.$ac_ext <<EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-EOF
-if { (eval echo configure:3357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
- if { (eval echo configure:3360: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then
- # See whether the symbols have a leading underscore.
- if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
- ac_cv_sys_symbol_underscore=yes
- else
- if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
- :
- else
- echo "configure: cannot find nm_test_func in $ac_nlist" >&5
- fi
- fi
- else
- echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&5
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.c >&5
-fi
-rm -rf conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_sys_symbol_underscore" 1>&6
-if test x"$ac_cv_sys_symbol_underscore" = xyes; then
- if test x"$ac_cv_func_dlopen" = xyes ||
- test x"$ac_cv_lib_dl_dlopen" = xyes ; then
- echo $ac_n "checking whether we have to add an underscore for dlsym""... $ac_c" 1>&6
-echo "configure:3387: checking whether we have to add an underscore for dlsym" >&5
-if eval "test \"`echo '$''{'libltdl_cv_need_uscore'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- libltdl_cv_need_uscore=cross
-
-else
- cat > conftest.$ac_ext <<EOF
-#line 3396 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); }
-
-EOF
-if { (eval echo configure:3443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- libltdl_cv_need_uscore=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- libltdl_cv_need_uscore=yes
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$libltdl_cv_need_uscore" 1>&6
- fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
- cat >> confdefs.h <<\EOF
-#define NEED_USCORE 1
-EOF
-
-fi
-
-
-
-
-for ac_hdr in malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3475: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3480 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3485: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in string.h strings.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3515: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3520 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in strchr index
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3554: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3559 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in strrchr rindex
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3609: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3614 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in strcmp
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3664: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3669 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-s%@MAINT@%$MAINT%g
-s%@CC@%$CC%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@LN_S@%$LN_S%g
-s%@OBJEXT@%$OBJEXT%g
-s%@EXEEXT@%$EXEEXT%g
-s%@RANLIB@%$RANLIB%g
-s%@STRIP@%$STRIP%g
-s%@DLLTOOL@%$DLLTOOL%g
-s%@AS@%$AS%g
-s%@OBJDUMP@%$OBJDUMP%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g
-s%@GCINCS@%$GCINCS%g
-s%@CPP@%$CPP%g
-s%@INSTALL_LTDL_TRUE@%$INSTALL_LTDL_TRUE%g
-s%@INSTALL_LTDL_FALSE@%$INSTALL_LTDL_FALSE%g
-s%@CONVENIENCE_LTDL_TRUE@%$CONVENIENCE_LTDL_TRUE%g
-s%@CONVENIENCE_LTDL_FALSE@%$CONVENIENCE_LTDL_FALSE%g
-s%@LIBADD_DL@%$LIBADD_DL%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/libjava/libltdl/configure.in b/libjava/libltdl/configure.in
deleted file mode 100644
index 188fc101da4..00000000000
--- a/libjava/libltdl/configure.in
+++ /dev/null
@@ -1,60 +0,0 @@
-dnl Process this file with autoconf to create configure.
-
-AC_INIT(ltdl.c)
-
-dnl We shouldn't be using these internal macros of autoconf,
-dnl but CONFIG_AUX_DIR($with_auxdir) breaks automake.
-AC_ARG_WITH(auxdir,
-[ --with-auxdir=DIR path to autoconf auxiliary files],
-[AC_CONFIG_AUX_DIRS($with_auxdir)],
-[AC_CONFIG_AUX_DIR_DEFAULT])
-
-if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then
- if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then
- # if libltdl is libtoolized, it is assumed to be stand-alone and
- # installed unless the command line overrides it (tested above)
- enable_ltdl_install=yes
- else
- AC_MSG_WARN([*** The top-level configure must select either])
- AC_MSG_WARN([*** [A""C_LIBLTDL_INSTALLABLE] or [A""C_LIBLTDL_CONVENIENCE].])
- AC_MSG_ERROR([*** Maybe you want to --enable-ltdl-install?])
- fi
-fi
-
-AM_INIT_AUTOMAKE(libltdl,1.1,-)
-AM_CONFIG_HEADER(config.h)
-AM_MAINTAINER_MODE
-
-AC_PROG_CC
-AC_C_CONST
-AC_C_INLINE
-
-AC_LIBTOOL_WIN32_DLL
-AM_PROG_LIBTOOL
-AC_SUBST(LIBTOOL_DEPS)
-
-AC_MSG_CHECKING([for garbage collector to use])
-AC_ARG_ENABLE(java-gc,
-changequote(<<,>>)dnl
-<< --enable-java-gc=TYPE choose garbage collector [boehm]>>,
-changequote([,])
- GC=$enableval,
- GC=boehm)
-
-GCINCS=
-if test "$GC" = "boehm"; then
- GCINCS='-I$(top_srcdir)/../../boehm-gc -I$(top_builddir)/../../boehm-gc'
- GCINCS="$GCINCS `cat ../../boehm-gc/boehm-cflags`"
- AC_DEFINE(HAVE_BOEHM_GC)
-fi
-AC_SUBST(GCINCS)
-
-AC_LIB_LTDL
-
-dnl Output the makefile
-AC_OUTPUT(Makefile)
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/libjava/libltdl/ltdl.c b/libjava/libltdl/ltdl.c
deleted file mode 100644
index 5ecbee5d2cb..00000000000
--- a/libjava/libltdl/ltdl.c
+++ /dev/null
@@ -1,1984 +0,0 @@
-/* ltdl.c -- system independent dlopen wrapper
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
- Originally by Thomas Tanner <tanner@ffii.org>
- This file is part of GNU Libtool.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#define _LTDL_COMPILE_
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-
-#if HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#if HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-
-#if HAVE_MALLOC_H
-#include <malloc.h>
-#endif
-
-#if HAVE_MEMORY_H
-#include <memory.h>
-#endif
-
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#if HAVE_STDIO_H
-#include <stdio.h>
-#endif
-
-#if HAVE_BOEHM_GC
-#include <gc.h>
-#endif
-
-#include "ltdl.h"
-
-#ifdef DLL_EXPORT
-# define LTDL_GLOBAL_DATA __declspec(dllexport)
-#else
-# define LTDL_GLOBAL_DATA
-#endif
-
-/* max. filename length */
-#ifndef LTDL_FILENAME_MAX
-#define LTDL_FILENAME_MAX 1024
-#endif
-
-#undef LTDL_READTEXT_MODE
-/* fopen() mode flags for reading a text file */
-#ifdef _WIN32
-#define LTDL_READTEXT_MODE "rt"
-#else
-#define LTDL_READTEXT_MODE "r"
-#endif
-
-#undef LTDL_SYMBOL_LENGTH
-/* This is the maximum symbol size that won't require malloc/free */
-#define LTDL_SYMBOL_LENGTH 128
-
-#undef LTDL_SYMBOL_OVERHEAD
-/* This accounts for the _LTX_ separator */
-#define LTDL_SYMBOL_OVERHEAD 5
-
-/* NOTE: typedefed in ltdl.h
- This structure is used for the list of registered loaders. */
-struct lt_dlloader_t {
- struct lt_dlloader_t *next;
- const char *loader_name; /* identifying name for each loader */
- const char *sym_prefix; /* prefix for symbols */
- lt_module_open_t *module_open;
- lt_module_close_t *module_close;
- lt_find_sym_t *find_sym;
- lt_dlloader_exit_t *dlloader_exit;
- lt_dlloader_data_t dlloader_data;
-};
-
-typedef struct lt_dlhandle_t {
- struct lt_dlhandle_t *next;
- lt_dlloader_t *loader; /* dlopening interface */
- lt_dlinfo info;
- int depcount; /* number of dependencies */
- lt_dlhandle *deplibs; /* dependencies */
- lt_module_t module; /* system module handle */
- lt_ptr_t system; /* system specific data */
- lt_ptr_t app_private; /* application private data */
-} lt_dlhandle_t;
-
-static const char objdir[] = LTDL_OBJDIR;
-#ifdef LTDL_SHLIB_EXT
-static const char shlib_ext[] = LTDL_SHLIB_EXT;
-#endif
-#ifdef LTDL_SYSSEARCHPATH
-static const char sys_search_path[] = LTDL_SYSSEARCHPATH;
-#endif
-
-/* Extract the diagnostic strings from the error table macro in the same
- order as the enumberated indices in ltdl.h. */
-#define LTDL_ERROR(name, diagnostic) (diagnostic),
-static const char *ltdl_error_strings[] = {
- ltdl_error_table
- 0
-};
-#undef LTDL_ERROR
-
-#ifdef __STDC__
-# define LT_DLSTRERROR(name) ltdl_error_strings[LTDL_ERROR_##name]
-#else
-# define LT_DLSTRERROR(name) ltdl_error_strings[LTDL_ERROR_/**/name]
-#endif
-
-static const char *last_error = 0;
-
-LTDL_GLOBAL_DATA lt_ptr_t (*lt_dlmalloc) LTDL_PARAMS((size_t size)) = (lt_ptr_t(*)LTDL_PARAMS((size_t)))malloc;
-LTDL_GLOBAL_DATA void (*lt_dlfree) LTDL_PARAMS((lt_ptr_t ptr)) = (void(*)LTDL_PARAMS((lt_ptr_t)))free;
-
-#undef strdup
-#define strdup xstrdup
-
-static inline char *
-strdup(str)
- const char *str;
-{
- char *tmp;
-
- if (!str)
- return 0;
- tmp = (char*) lt_dlmalloc(strlen(str)+1);
- if (tmp)
- strcpy(tmp, str);
- return tmp;
-}
-
-#if ! HAVE_STRCMP
-
-#undef strcmp
-#define strcmp xstrcmp
-
-static inline int
-strcmp (str1, str2)
- const char *str1;
- const char *str2;
-{
- if (str1 == str2)
- return 0;
- if (str1 == 0)
- return -1;
- if (str2 == 0)
- return 1;
-
- for (;*str1 && *str2; str1++, str2++)
- if (*str1 != *str2)
- break;
-
- return (int)(*str1 - *str2);
-}
-#endif
-
-
-#if ! HAVE_STRCHR
-
-# if HAVE_INDEX
-
-# define strchr index
-
-# else
-
-# define strchr xstrchr
-
-static inline const char*
-strchr(str, ch)
- const char *str;
- int ch;
-{
- const char *p;
-
- for (p = str; *p != (char)ch && *p != '\0'; p++)
- /*NOWORK*/;
-
- return (*p == (char)ch) ? p : 0;
-}
-
-# endif
-
-#endif
-
-#if ! HAVE_STRRCHR
-
-# if HAVE_RINDEX
-
-# define strrchr rindex
-
-# else
-
-# define strrchr xstrrchr
-
-static inline const char*
-strrchr(str, ch)
- const char *str;
- int ch;
-{
- const char *p;
-
- for (p = str; *p != '\0'; p++)
- /*NOWORK*/;
-
- while (*p != (char)ch && p >= str)
- p--;
-
- return (*p == (char)ch) ? p : 0;
-}
-
-# endif
-
-#endif
-
-/* The Cygwin dlopen implementation prints a spurious error message to
- stderr if its call to LoadLibrary() fails for any reason. We can
- mitigate this by not using the Cygwin implementation, and falling
- back to our own LoadLibrary() wrapper. */
-#if HAVE_LIBDL && !defined(__CYGWIN__)
-
-/* dynamic linking with dlopen/dlsym */
-
-#if HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-static lt_module_t
-sys_dl_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- lt_module_t module = dlopen(filename, LTDL_GLOBAL | LTDL_LAZY_OR_NOW);
- if (!module) {
-#if HAVE_DLERROR
- last_error = dlerror();
-#else
- last_error = LT_DLSTRERROR(CANNOT_OPEN);
-#endif
- }
- return module;
-}
-
-static int
-sys_dl_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- if (dlclose(module) != 0) {
-#if HAVE_DLERROR
- last_error = dlerror();
-#else
- last_error = LT_DLSTRERROR(CANNOT_CLOSE);
-#endif
- return 1;
- }
- return 0;
-}
-
-static lt_ptr_t
-sys_dl_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_ptr_t address = dlsym(module, symbol);
-
- if (!address)
-#if HAVE_DLERROR
- last_error = dlerror();
-#else
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
-#endif
- return address;
-}
-
-static struct lt_user_dlloader sys_dl = {
-# ifdef NEED_USCORE
- "_",
-# else
- 0,
-# endif
- sys_dl_open, sys_dl_close, sys_dl_sym, 0, 0 };
-#endif
-
-#if HAVE_SHL_LOAD
-
-/* dynamic linking with shl_load (HP-UX) (comments from gmodule) */
-
-#ifdef HAVE_DL_H
-#include <dl.h>
-#endif
-
-/* some flags are missing on some systems, so we provide
- * harmless defaults.
- *
- * Mandatory:
- * BIND_IMMEDIATE - Resolve symbol references when the library is loaded.
- * BIND_DEFERRED - Delay code symbol resolution until actual reference.
- *
- * Optionally:
- * BIND_FIRST - Place the library at the head of the symbol search order.
- * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all unsatisfied
- * symbols as fatal. This flag allows binding of unsatisfied code
- * symbols to be deferred until use.
- * [Perl: For certain libraries, like DCE, deferred binding often
- * causes run time problems. Adding BIND_NONFATAL to BIND_IMMEDIATE
- * still allows unresolved references in situations like this.]
- * BIND_NOSTART - Do not call the initializer for the shared library when the
- * library is loaded, nor on a future call to shl_unload().
- * BIND_VERBOSE - Print verbose messages concerning possible unsatisfied symbols.
- *
- * hp9000s700/hp9000s800:
- * BIND_RESTRICTED - Restrict symbols visible by the library to those present at
- * library load time.
- * DYNAMIC_PATH - Allow the loader to dynamically search for the library specified
- * by the path argument.
- */
-
-#ifndef DYNAMIC_PATH
-#define DYNAMIC_PATH 0
-#endif /* DYNAMIC_PATH */
-#ifndef BIND_RESTRICTED
-#define BIND_RESTRICTED 0
-#endif /* BIND_RESTRICTED */
-
-#define LTDL_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH)
-
-static lt_module_t
-sys_shl_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- lt_module_t module = shl_load(filename, LTDL_BIND_FLAGS, 0L);
- if (!module) {
- last_error = LT_DLSTRERROR(CANNOT_OPEN);
- }
- return module;
-}
-
-static int
-sys_shl_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- if (shl_unload((shl_t) (module)) != 0) {
- last_error = LT_DLSTRERROR(CANNOT_CLOSE);
- return 1;
- }
- return 0;
-}
-
-static lt_ptr_t
-sys_shl_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_ptr_t address;
-
- if (module && shl_findsym((shl_t*) &module,
- symbol, TYPE_UNDEFINED, &address) == 0)
- if (address)
- return address;
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return 0;
-}
-
-static struct lt_user_dlloader
-sys_shl = { 0, sys_shl_open, sys_shl_close, sys_shl_sym, 0, 0 };
-
-#undef LTDL_TYPE_TOP
-#define LTDL_TYPE_TOP &sys_shl
-
-#endif
-
-#ifdef _WIN32
-
-/* dynamic linking for Win32 */
-
-#include <windows.h>
-
-/* Forward declaration; required to implement handle search below. */
-static lt_dlhandle handles;
-
-static lt_module_t
-sys_wll_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- lt_dlhandle cur;
- lt_module_t module;
- char *searchname = 0;
- char *ext;
- char self_name_buf[MAX_PATH];
-
- if (!filename) {
- /* Get the name of main module */
- *self_name_buf = 0;
- GetModuleFileName(NULL, self_name_buf, sizeof(self_name_buf));
- filename = ext = self_name_buf;
- }
- else ext = strrchr(filename, '.');
-
- if (ext) {
- /* FILENAME already has an extension. */
- searchname = strdup(filename);
- } else {
- /* Append a `.' to stop Windows from adding an
- implicit `.dll' extension. */
- searchname = (char*)lt_dlmalloc(2+ strlen(filename));
- if (!searchname) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 0;
- }
- strcpy(searchname, filename);
- strcat(searchname, ".");
- }
-
- module = LoadLibrary(searchname);
- lt_dlfree(searchname);
-
- /* libltdl expects this function to fail if it is unable
- to physically load the library. Sadly, LoadLibrary
- will search the loaded libraries for a match and return
- one of them if the path search load fails.
-
- We check whether LoadLibrary is returning a handle to
- an already loaded module, and simulate failure if we
- find one. */
- cur = handles;
- while (cur) {
- if (!cur->module) {
- cur = 0;
- break;
- }
- if (cur->module == module)
- break;
- cur = cur->next;
- }
-
- if (cur || !module) {
- last_error = LT_DLSTRERROR(CANNOT_OPEN);
- return 0;
- }
-
- return module;
-}
-
-static int
-sys_wll_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- if (FreeLibrary(module) == 0) {
- last_error = LT_DLSTRERROR(CANNOT_CLOSE);
- return 1;
- }
- return 0;
-}
-
-static lt_ptr_t
-sys_wll_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_ptr_t address = GetProcAddress(module, symbol);
-
- if (!address)
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return address;
-}
-
-static struct lt_user_dlloader
-sys_wll = { 0, sys_wll_open, sys_wll_close, sys_wll_sym, 0, 0 };
-
-#endif
-
-#ifdef __BEOS__
-
-/* dynamic linking for BeOS */
-
-#include <kernel/image.h>
-
-static lt_module_t
-sys_bedl_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- image_id image = 0;
-
- if (filename) {
- image = load_add_on(filename);
- } else {
- image_info info;
- int32 cookie = 0;
- if (get_next_image_info(0, &cookie, &info) == B_OK)
- image = load_add_on(info.name);
- }
- if (image <= 0) {
- last_error = LT_DLSTRERROR(CANNOT_OPEN);
- return 0;
- }
-
- return (lt_module_t) image;
-}
-
-static int
-sys_bedl_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- if (unload_add_on((image_id)module) != B_OK) {
- last_error = LT_DLSTRERROR(CANNOT_CLOSE);
- return 1;
- }
- return 0;
-}
-
-static lt_ptr_t
-sys_bedl_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_ptr_t address = 0;
- image_id image = (image_id)module;
-
- if (get_image_symbol(image, symbol, B_SYMBOL_TYPE_ANY,
- &address) != B_OK) {
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return 0;
- }
- return address;
-}
-
-static struct lt_user_dlloader
-sys_bedl = { 0, sys_bedl_open, sys_bedl_close, sys_bedl_sym, 0, 0 };
-
-#endif
-
-#if HAVE_DLD
-
-/* dynamic linking with dld */
-
-#if HAVE_DLD_H
-#include <dld.h>
-#endif
-
-static lt_module_t
-sys_dld_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- lt_module_t module = strdup(filename);
- if (!module) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 0;
- }
- if (dld_link(filename) != 0) {
- last_error = LT_DLSTRERROR(CANNOT_OPEN);
- lt_dlfree(module);
- return 0;
- }
- return module;
-}
-
-static int
-sys_dld_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- if (dld_unlink_by_file((char*)(module), 1) != 0) {
- last_error = LT_DLSTRERROR(CANNOT_CLOSE);
- return 1;
- }
- lt_dlfree(module);
- return 0;
-}
-
-static lt_ptr_t
-sys_dld_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_ptr_t address = dld_get_func(symbol);
-
- if (!address)
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return address;
-}
-
-static struct lt_user_dlloader
-sys_dld = { 0, sys_dld_open, sys_dld_close, sys_dld_sym, 0, 0 };
-
-#endif
-
-/* emulate dynamic linking using preloaded_symbols */
-
-typedef struct lt_dlsymlists_t {
- struct lt_dlsymlists_t *next;
- const lt_dlsymlist *syms;
-} lt_dlsymlists_t;
-
-static const lt_dlsymlist *default_preloaded_symbols = 0;
-static lt_dlsymlists_t *preloaded_symbols = 0;
-
-static int
-presym_init (loader_data)
- lt_dlloader_data_t loader_data;
-{
- preloaded_symbols = 0;
- if (default_preloaded_symbols)
- return lt_dlpreload(default_preloaded_symbols);
- return 0;
-}
-
-static int
-presym_free_symlists LTDL_PARAMS((void))
-{
- lt_dlsymlists_t *lists = preloaded_symbols;
-
- while (lists) {
- lt_dlsymlists_t *tmp = lists;
-
- lists = lists->next;
- lt_dlfree(tmp);
- }
- preloaded_symbols = 0;
- return 0;
-}
-
-static int
-presym_exit (loader_data)
- lt_dlloader_data_t loader_data;
-{
- presym_free_symlists();
- return 0;
-}
-
-static int
-presym_add_symlist (preloaded)
- const lt_dlsymlist *preloaded;
-{
- lt_dlsymlists_t *tmp;
- lt_dlsymlists_t *lists = preloaded_symbols;
-
- while (lists) {
- if (lists->syms == preloaded)
- return 0;
- lists = lists->next;
- }
-
- tmp = (lt_dlsymlists_t*) lt_dlmalloc(sizeof(lt_dlsymlists_t));
- if (!tmp) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- tmp->syms = preloaded;
- tmp->next = preloaded_symbols;
- preloaded_symbols = tmp;
- return 0;
-}
-
-static lt_module_t
-presym_open (loader_data, filename)
- lt_dlloader_data_t loader_data;
- const char *filename;
-{
- lt_dlsymlists_t *lists = preloaded_symbols;
-
- if (!lists) {
- last_error = LT_DLSTRERROR(NO_SYMBOLS);
- return 0;
- }
- if (!filename)
- filename = "@PROGRAM@";
- while (lists) {
- const lt_dlsymlist *syms = lists->syms;
-
- while (syms->name) {
- if (!syms->address &&
- strcmp(syms->name, filename) == 0) {
- return (lt_module_t) syms;
- }
- syms++;
- }
- lists = lists->next;
- }
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
- return 0;
-}
-
-static int
-presym_close (loader_data, module)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
-{
- /* Just to silence gcc -Wall */
- module = 0;
- return 0;
-}
-
-static lt_ptr_t
-presym_sym (loader_data, module, symbol)
- lt_dlloader_data_t loader_data;
- lt_module_t module;
- const char *symbol;
-{
- lt_dlsymlist *syms = (lt_dlsymlist*)(module);
-
- syms++;
- while (syms->address) {
- if (strcmp(syms->name, symbol) == 0)
- return syms->address;
- syms++;
- }
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return 0;
-}
-
-static struct lt_user_dlloader
-presym = { 0, presym_open, presym_close, presym_sym, presym_exit, 0 };
-
-
-static char *user_search_path = 0;
-static lt_dlloader_t *loaders = 0;
-static lt_dlhandle handles = 0;
-static int initialized = 0;
-
-int
-lt_dlinit LTDL_PARAMS((void))
-{
- /* initialize libltdl */
- int errors = 0;
-
- if (initialized) { /* Initialize only at first call. */
- initialized++;
- return 0;
- }
- handles = 0;
- user_search_path = 0; /* empty search path */
-
-#if HAVE_LIBDL && !defined(__CYGWIN__)
- errors += lt_dlloader_add (lt_dlloader_next(0), &sys_dl, "dlopen");
-#endif
-#if HAVE_SHL_LOAD
- errors += lt_dlloader_add (lt_dlloader_next(0), &sys_shl, "dlopen");
-#endif
-#ifdef _WIN32
- errors += lt_dlloader_add (lt_dlloader_next(0), &sys_wll, "dlopen");
-#endif
-#ifdef __BEOS__
- errors += lt_dlloader_add (lt_dlloader_next(0), &sys_bedl, "dlopen");
-#endif
-#if HAVE_DLD
- errors += lt_dlloader_add (lt_dlloader_next(0), &sys_dld, "dld");
-#endif
- errors += lt_dlloader_add (lt_dlloader_next(0), &presym, "dlpreload");
- if (presym_init(presym.dlloader_data)) {
- last_error = LT_DLSTRERROR(INIT_LOADER);
- return 1;
- }
-
- if (errors != 0) {
- last_error = LT_DLSTRERROR(DLOPEN_NOT_SUPPORTED);
- return 1;
- }
- last_error = 0;
- initialized = 1;
- return 0;
-}
-
-int
-lt_dlpreload (preloaded)
- const lt_dlsymlist *preloaded;
-{
- if (preloaded)
- return presym_add_symlist(preloaded);
- presym_free_symlists();
- if (default_preloaded_symbols)
- return lt_dlpreload(default_preloaded_symbols);
- return 0;
-}
-
-int
-lt_dlpreload_default (preloaded)
- const lt_dlsymlist *preloaded;
-{
- default_preloaded_symbols = preloaded;
- return 0;
-}
-
-int
-lt_dlexit LTDL_PARAMS((void))
-{
- /* shut down libltdl */
- lt_dlloader_t *loader = loaders;
- int errors, level;
-
- if (!initialized) {
- last_error = LT_DLSTRERROR(SHUTDOWN);
- return 1;
- }
- if (initialized != 1) { /* shut down only at last call. */
- initialized--;
- return 0;
- }
- /* close all modules */
- errors = 0;
- for (level = 1; handles; level++) {
- lt_dlhandle cur = handles;
- while (cur) {
- lt_dlhandle tmp = cur;
- cur = cur->next;
- if (tmp->info.ref_count <= level)
- if (lt_dlclose(tmp))
- errors++;
- }
- }
- /* close all loaders */
- while (loader) {
- lt_dlloader_t *next = loader->next;
- lt_dlloader_data_t data = loader->dlloader_data;
- if (loader->dlloader_exit && loader->dlloader_exit(data))
- errors++;
- lt_dlfree (loader);
- loader = next;
- }
-
- initialized = 0;
- return errors;
-}
-
-static int
-tryall_dlopen (handle, filename)
- lt_dlhandle *handle;
- const char *filename;
-{
- lt_dlhandle cur = handles;
- lt_dlloader_t *loader = loaders;
- const char *saved_error = last_error;
-
- /* check whether the module was already opened */
- while (cur) {
- /* try to dlopen the program itself? */
- if (!cur->info.filename && !filename)
- break;
- if (cur->info.filename && filename &&
- strcmp(cur->info.filename, filename) == 0)
- break;
- cur = cur->next;
- }
-
- if (cur) {
- cur->info.ref_count++;
- *handle = cur;
- return 0;
- }
-
- cur = *handle;
- if (filename) {
- cur->info.filename = strdup(filename);
- if (!cur->info.filename) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- } else
- cur->info.filename = 0;
- while (loader) {
- lt_dlloader_data_t data = loader->dlloader_data;
- cur->module = loader->module_open(data, filename);
- if (cur->module != 0)
- break;
- loader = loader->next;
- }
- if (!loader) {
- if (cur->info.filename)
- lt_dlfree(cur->info.filename);
- return 1;
- }
- cur->loader = loader;
- last_error = saved_error;
- return 0;
-}
-
-static int
-find_module (handle, dir, libdir, dlname, old_name, installed)
- lt_dlhandle *handle;
- const char *dir;
- const char *libdir;
- const char *dlname;
- const char *old_name;
- int installed;
-{
- int error;
- char *filename;
- /* try to open the old library first; if it was dlpreopened,
- we want the preopened version of it, even if a dlopenable
- module is available */
- if (old_name && tryall_dlopen(handle, old_name) == 0)
- return 0;
- /* try to open the dynamic library */
- if (dlname) {
- /* try to open the installed module */
- if (installed && libdir) {
- filename = (char*)
- lt_dlmalloc(strlen(libdir)+1+strlen(dlname)+1);
- if (!filename) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- sprintf (filename, "%s/%s", libdir, dlname);
- error = tryall_dlopen(handle, filename) != 0;
- lt_dlfree(filename);
- if (!error)
- return 0;
- }
- /* try to open the not-installed module */
- if (!installed) {
- filename = (char*)
- lt_dlmalloc((dir ? strlen(dir) : 0)
- + strlen(objdir) + strlen(dlname) + 1);
- if (!filename) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- if (dir)
- strcpy(filename, dir);
- else
- *filename = 0;
- strcat(filename, objdir);
- strcat(filename, dlname);
-
- error = tryall_dlopen(handle, filename) != 0;
- lt_dlfree(filename);
- if (!error)
- return 0;
- }
- /* maybe it was moved to another directory */
- {
- filename = (char*)
- lt_dlmalloc((dir ? strlen(dir) : 0)
- + strlen(dlname) + 1);
- if (dir)
- strcpy(filename, dir);
- else
- *filename = 0;
- strcat(filename, dlname);
- error = tryall_dlopen(handle, filename) != 0;
- lt_dlfree(filename);
- if (!error)
- return 0;
- }
- }
- return 1;
-}
-
-static char*
-canonicalize_path (path)
- const char *path;
-{
- char *canonical = 0;
-
- if (path && *path) {
- char *ptr = strdup (path);
- canonical = ptr;
-#ifdef LTDL_DIRSEP_CHAR
- /* Avoid this overhead where '/' is the only separator. */
- while (ptr = strchr (ptr, LTDL_DIRSEP_CHAR))
- *ptr++ = '/';
-#endif
- }
-
- return canonical;
-}
-
-static lt_ptr_t
-find_file (basename, search_path, pdir, handle)
- const char *basename;
- const char *search_path;
- char **pdir;
- lt_dlhandle *handle;
-{
- /* when handle != NULL search a library, otherwise a file */
- /* return NULL on failure, otherwise the file/handle */
-
- lt_ptr_t result = 0;
- char *filename = 0;
- int filenamesize = 0;
- int lenbase = strlen(basename);
- char *canonical = 0, *next = 0;
-
- if (!search_path || !*search_path) {
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
- return 0;
- }
- canonical = canonicalize_path (search_path);
- if (!canonical) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- goto cleanup;
- }
- next = canonical;
- while (next) {
- int lendir;
- char *cur = next;
-
- next = strchr(cur, LTDL_PATHSEP_CHAR);
- if (!next)
- next = cur + strlen(cur);
- lendir = next - cur;
- if (*next == LTDL_PATHSEP_CHAR)
- ++next;
- else
- next = 0;
- if (lendir == 0)
- continue;
- if (lendir + 1 + lenbase >= filenamesize) {
- if (filename)
- lt_dlfree(filename);
- filenamesize = lendir + 1 + lenbase + 1;
- filename = (char*) lt_dlmalloc(filenamesize);
- if (!filename) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- goto cleanup;
- }
- }
- strncpy(filename, cur, lendir);
- if (filename[lendir-1] != '/')
- filename[lendir++] = '/';
- strcpy(filename+lendir, basename);
- if (handle) {
- if (tryall_dlopen(handle, filename) == 0) {
- result = (lt_ptr_t) handle;
- goto cleanup;
- }
- } else {
- FILE *file = fopen(filename, LTDL_READTEXT_MODE);
- if (file) {
- if (*pdir)
- lt_dlfree(*pdir);
- filename[lendir] = '\0';
- *pdir = strdup(filename);
- if (!*pdir) {
- /* We could have even avoided the
- strdup, but there would be some
- memory overhead. */
- *pdir = filename;
- filename = 0;
- }
- result = (lt_ptr_t) file;
- goto cleanup;
- }
- }
- }
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
-cleanup:
- if (filename)
- lt_dlfree(filename);
- if (canonical)
- lt_dlfree(canonical);
- return result;
-}
-
-static int
-load_deplibs(handle, deplibs)
- lt_dlhandle handle;
- char *deplibs;
-{
- char *p, *save_search_path;
- int i;
- int ret = 1, depcount = 0;
- char **names = 0;
- lt_dlhandle *handles = 0;
-
- handle->depcount = 0;
- if (!deplibs)
- return 0;
- save_search_path = strdup(user_search_path);
- if (user_search_path && !save_search_path) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- p = deplibs;
- /* extract search paths and count deplibs */
- while (*p) {
- if (!isspace(*p)) {
- char *end = p+1;
- while (*end && !isspace(*end)) end++;
- if (strncmp(p, "-L", 2) == 0 ||
- strncmp(p, "-R", 2) == 0) {
- char save = *end;
- *end = 0; /* set a temporary string terminator */
- if (lt_dladdsearchdir(p+2))
- goto cleanup;
- *end = save;
- } else
- depcount++;
- p = end;
- } else
- p++;
- }
- if (!depcount) {
- ret = 0;
- goto cleanup;
- }
- names = (char**)lt_dlmalloc(depcount * sizeof(char*));
- if (!names)
- goto cleanup;
- handles = (lt_dlhandle*)lt_dlmalloc(depcount * sizeof(lt_dlhandle*));
- if (!handles)
- goto cleanup;
- depcount = 0;
- /* now only extract the actual deplibs */
- p = deplibs;
- while (*p) {
- if (!isspace(*p)) {
- char *end = p+1;
- while (*end && !isspace(*end)) end++;
- if (strncmp(p, "-L", 2) != 0 &&
- strncmp(p, "-R", 2) != 0) {
- char *name;
- char save = *end;
- *end = 0; /* set a temporary string terminator */
- if (strncmp(p, "-l", 2) == 0) {
- name = lt_dlmalloc(3+ /* "lib" */
- strlen(p+2)+1);
- if (name)
- sprintf (name, "lib%s", p+2);
- } else
- name = strdup(p);
- if (name)
- names[depcount++] = name;
- else
- goto cleanup_names;
- *end = save;
- }
- p = end;
- } else
- p++;
- }
- /* load the deplibs (in reverse order) */
- for (i = 0; i < depcount; i++) {
- lt_dlhandle handle = lt_dlopenext(names[depcount-1-i]);
- if (!handle) {
- int j;
- for (j = 0; j < i; j++)
- lt_dlclose(handles[j]);
- last_error = LT_DLSTRERROR(DEPLIB_NOT_FOUND);
- goto cleanup_names;
- }
- handles[i] = handle;
- }
- handle->depcount = depcount;
- handle->deplibs = handles;
- handles = 0;
- ret = 0;
-cleanup_names:
- for (i = 0; i < depcount; i++)
- lt_dlfree(names[i]);
-cleanup:
- if (names)
- lt_dlfree(names);
- if (handles)
- lt_dlfree(handles);
- /* restore the old search path */
- if (user_search_path)
- lt_dlfree(user_search_path);
- user_search_path = save_search_path;
- return ret;
-}
-
-static int
-unload_deplibs(handle)
- lt_dlhandle handle;
-{
- int i;
- int errors = 0;
-
- if (!handle->depcount)
- return 0;
- for (i = 0; i < handle->depcount; i++)
- errors += lt_dlclose(handle->deplibs[i]);
- return errors;
-}
-
-static inline int
-trim (dest, str)
- char **dest;
- const char *str;
-{
- /* remove the leading and trailing "'" from str
- and store the result in dest */
- char *tmp;
- const char *end = strrchr(str, '\'');
- int len = strlen(str);
-
- if (*dest)
- lt_dlfree(*dest);
- if (len > 3 && str[0] == '\'') {
- tmp = (char*) lt_dlmalloc(end - str);
- if (!tmp) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- strncpy(tmp, &str[1], (end - str) - 1);
- tmp[len-3] = '\0';
- *dest = tmp;
- } else
- *dest = 0;
- return 0;
-}
-
-static inline int
-free_vars( dlname, oldname, libdir, deplibs)
- char *dlname;
- char *oldname;
- char *libdir;
- char *deplibs;
-{
- if (dlname)
- lt_dlfree(dlname);
- if (oldname)
- lt_dlfree(oldname);
- if (libdir)
- lt_dlfree(libdir);
- if (deplibs)
- lt_dlfree(deplibs);
- return 0;
-}
-
-lt_dlhandle
-lt_dlopen (filename)
- const char *filename;
-{
- lt_dlhandle handle = 0, newhandle;
- const char *ext;
- const char *saved_error = last_error;
- char *canonical = 0, *basename = 0, *dir = 0, *name = 0;
-
- if (!filename) {
- handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
- if (!handle) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 0;
- }
- handle->info.ref_count = 0;
- handle->depcount = 0;
- handle->deplibs = 0;
- newhandle = handle;
- if (tryall_dlopen(&newhandle, 0) != 0) {
- lt_dlfree(handle);
- return 0;
- }
- goto register_handle;
- }
- canonical = canonicalize_path (filename);
- if (!canonical) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- if (handle)
- lt_dlfree(handle);
- return 0;
- }
- basename = strrchr(canonical, '/');
- if (basename) {
- basename++;
- dir = (char*) lt_dlmalloc(basename - canonical + 1);
- if (!dir) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- handle = 0;
- goto cleanup;
- }
- strncpy(dir, canonical, basename - canonical);
- dir[basename - canonical] = '\0';
- } else
- basename = canonical;
- /* check whether we open a libtool module (.la extension) */
- ext = strrchr(basename, '.');
- if (ext && strcmp(ext, ".la") == 0) {
- /* this seems to be a libtool module */
- FILE *file;
- int i;
- char *dlname = 0, *old_name = 0;
- char *libdir = 0, *deplibs = 0;
- char *line;
- int error = 0;
- /* if we can't find the installed flag, it is probably an
- installed libtool archive, produced with an old version
- of libtool */
- int installed = 1;
-
- /* extract the module name from the file name */
- name = (char*) lt_dlmalloc(ext - basename + 1);
- if (!name) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- handle = 0;
- goto cleanup;
- }
- /* canonicalize the module name */
- for (i = 0; i < ext - basename; i++)
- if (isalnum((int)(basename[i])))
- name[i] = basename[i];
- else
- name[i] = '_';
- name[ext - basename] = '\0';
- /* now try to open the .la file */
- file = fopen(filename, LTDL_READTEXT_MODE);
- if (!file)
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
- if (!file && !dir) {
- /* try other directories */
- file = (FILE*) find_file(basename,
- user_search_path,
- &dir, 0);
- if (!file)
- file = (FILE*) find_file(basename,
- getenv("LTDL_LIBRARY_PATH"),
- &dir, 0);
-#ifdef LTDL_SHLIBPATH_VAR
- if (!file)
- file = (FILE*) find_file(basename,
- getenv(LTDL_SHLIBPATH_VAR),
- &dir, 0);
-#endif
-#ifdef LTDL_SYSSEARCHPATH
- if (!file)
- file = (FILE*) find_file(basename,
- sys_search_path,
- &dir, 0);
-#endif
- }
- if (!file) {
- handle = 0;
- goto cleanup;
- }
- line = (char*) lt_dlmalloc(LTDL_FILENAME_MAX);
- if (!line) {
- fclose(file);
- last_error = LT_DLSTRERROR(NO_MEMORY);
- handle = 0;
- goto cleanup;
- }
- /* read the .la file */
- while (!feof(file)) {
- if (!fgets(line, LTDL_FILENAME_MAX, file))
- break;
- if (line[0] == '\n' || line[0] == '#')
- continue;
-# undef STR_DLNAME
-# define STR_DLNAME "dlname="
- if (strncmp(line, STR_DLNAME,
- sizeof(STR_DLNAME) - 1) == 0)
- error = trim(&dlname,
- &line[sizeof(STR_DLNAME) - 1]);
- else
-# undef STR_OLD_LIBRARY
-# define STR_OLD_LIBRARY "old_library="
- if (strncmp(line, STR_OLD_LIBRARY,
- sizeof(STR_OLD_LIBRARY) - 1) == 0)
- error = trim(&old_name,
- &line[sizeof(STR_OLD_LIBRARY) - 1]);
- else
-# undef STR_LIBDIR
-# define STR_LIBDIR "libdir="
- if (strncmp(line, STR_LIBDIR,
- sizeof(STR_LIBDIR) - 1) == 0)
- error = trim(&libdir,
- &line[sizeof(STR_LIBDIR) - 1]);
- else
-# undef STR_DL_DEPLIBS
-# define STR_DL_DEPLIBS "dl_dependency_libs="
- if (strncmp(line, STR_DL_DEPLIBS,
- sizeof(STR_DL_DEPLIBS) - 1) == 0)
- error = trim(&deplibs,
- &line[sizeof(STR_DL_DEPLIBS) - 1]);
- else
- if (strcmp(line, "installed=yes\n") == 0)
- installed = 1;
- else
- if (strcmp(line, "installed=no\n") == 0)
- installed = 0;
- else
-# undef STR_LIBRARY_NAMES
-# define STR_LIBRARY_NAMES "library_names="
- if (! dlname &&
- strncmp(line, STR_LIBRARY_NAMES,
- sizeof(STR_LIBRARY_NAMES) - 1) == 0) {
- char *last_libname;
- error = trim(&dlname,
- &line[sizeof(STR_LIBRARY_NAMES) - 1]);
- if (! error && dlname &&
- (last_libname = strrchr(dlname, ' ')) != NULL) {
- last_libname = strdup(last_libname + 1);
- free(dlname);
- dlname = last_libname;
- }
- }
- if (error)
- break;
- }
- fclose(file);
- lt_dlfree(line);
- /* allocate the handle */
- handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
- if (!handle || error) {
- if (handle)
- lt_dlfree(handle);
- if (!error)
- last_error = LT_DLSTRERROR(NO_MEMORY);
- free_vars(dlname, old_name, libdir, deplibs);
- /* handle is already set to 0 */
- goto cleanup;
- }
- handle->info.ref_count = 0;
- if (load_deplibs(handle, deplibs) == 0) {
- newhandle = handle;
- /* find_module may replace newhandle */
- if (find_module(&newhandle, dir, libdir,
- dlname, old_name, installed)) {
- unload_deplibs(handle);
- error = 1;
- }
- } else
- error = 1;
- free_vars(dlname, old_name, libdir, deplibs);
- if (error) {
- lt_dlfree(handle);
- handle = 0;
- goto cleanup;
- }
- if (handle != newhandle)
- unload_deplibs(handle);
- } else {
- /* not a libtool module */
- handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
- if (!handle) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- /* handle is already set to 0 */
- goto cleanup;
- }
- handle->info.ref_count = 0;
- /* non-libtool modules don't have dependencies */
- handle->depcount = 0;
- handle->deplibs = 0;
- newhandle = handle;
- if (tryall_dlopen(&newhandle, filename)
- && (dir
- || (!find_file(basename, user_search_path,
- 0, &newhandle)
- && !find_file(basename,
- getenv("LTDL_LIBRARY_PATH"),
- 0, &newhandle)
-#ifdef LTDL_SHLIBPATH_VAR
- && !find_file(basename,
- getenv(LTDL_SHLIBPATH_VAR),
- 0, &newhandle)
-#endif
-#ifdef LTDL_SYSSEARCHPATH
- && !find_file(basename, sys_search_path,
- 0, &newhandle)
-#endif
- ))) {
- lt_dlfree(handle);
- handle = 0;
- goto cleanup;
- }
- }
-register_handle:
- if (newhandle != handle) {
- lt_dlfree(handle);
- handle = newhandle;
- }
- if (!handle->info.ref_count) {
- handle->info.ref_count = 1;
- handle->info.name = name;
- handle->next = handles;
- handles = handle;
- name = 0; /* don't free this during `cleanup' */
- }
- last_error = saved_error;
-cleanup:
- if (dir)
- lt_dlfree(dir);
- if (name)
- lt_dlfree(name);
- if (canonical)
- lt_dlfree(canonical);
- return handle;
-}
-
-lt_dlhandle
-lt_dlopenext (filename)
- const char *filename;
-{
- lt_dlhandle handle;
- char *tmp;
- int len;
- const char *saved_error = last_error;
-
- if (!filename)
- return lt_dlopen(filename);
- len = strlen(filename);
- if (!len) {
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
- return 0;
- }
- /* try the normal file name */
- handle = lt_dlopen(filename);
- if (handle)
- return handle;
- /* try "filename.la" */
- tmp = (char*) lt_dlmalloc(len+4);
- if (!tmp) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 0;
- }
- strcpy(tmp, filename);
- strcat(tmp, ".la");
- handle = lt_dlopen(tmp);
- if (handle) {
- last_error = saved_error;
- lt_dlfree(tmp);
- return handle;
- }
-#ifdef LTDL_SHLIB_EXT
- /* try "filename.EXT" */
- if (strlen(shlib_ext) > 3) {
- lt_dlfree(tmp);
- tmp = (char*) lt_dlmalloc(len + strlen(shlib_ext) + 1);
- if (!tmp) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 0;
- }
- strcpy(tmp, filename);
- } else
- tmp[len] = '\0';
- strcat(tmp, shlib_ext);
- handle = lt_dlopen(tmp);
- if (handle) {
- last_error = saved_error;
- lt_dlfree(tmp);
- return handle;
- }
-#endif
- last_error = LT_DLSTRERROR(FILE_NOT_FOUND);
- lt_dlfree(tmp);
- return 0;
-}
-
-int
-lt_dlclose (handle)
- lt_dlhandle handle;
-{
- lt_dlhandle cur, last;
-
- /* check whether the handle is valid */
- last = cur = handles;
- while (cur && handle != cur) {
- last = cur;
- cur = cur->next;
- }
- if (!cur) {
- last_error = LT_DLSTRERROR(INVALID_HANDLE);
- return 1;
- }
- handle->info.ref_count--;
- if (!handle->info.ref_count) {
- int error;
- lt_dlloader_data_t data = handle->loader->dlloader_data;
-
- if (handle != handles)
- last->next = handle->next;
- else
- handles = handle->next;
- error = handle->loader->module_close(data, handle->module);
- error += unload_deplibs(handle);
- if (handle->info.filename)
- lt_dlfree(handle->info.filename);
- if (handle->info.name)
- lt_dlfree(handle->info.name);
- lt_dlfree(handle);
- return error;
- }
- return 0;
-}
-
-lt_ptr_t
-lt_dlsym (handle, symbol)
- lt_dlhandle handle;
- const char *symbol;
-{
- int lensym;
- char lsym[LTDL_SYMBOL_LENGTH];
- char *sym;
- lt_ptr_t address;
- lt_dlloader_data_t data;
-
- if (!handle) {
- last_error = LT_DLSTRERROR(INVALID_HANDLE);
- return 0;
- }
- if (!symbol) {
- last_error = LT_DLSTRERROR(SYMBOL_NOT_FOUND);
- return 0;
- }
- lensym = strlen(symbol);
- if (handle->loader->sym_prefix)
- lensym += strlen(handle->loader->sym_prefix);
- if (handle->info.name)
- lensym += strlen(handle->info.name);
- if (lensym + LTDL_SYMBOL_OVERHEAD < LTDL_SYMBOL_LENGTH)
- sym = lsym;
- else
- sym = (char*) lt_dlmalloc(lensym + LTDL_SYMBOL_OVERHEAD + 1);
- if (!sym) {
- last_error = LT_DLSTRERROR(BUFFER_OVERFLOW);
- return 0;
- }
- data = handle->loader->dlloader_data;
- if (handle->info.name) {
- const char *saved_error = last_error;
-
- /* this is a libtool module */
- if (handle->loader->sym_prefix) {
- strcpy(sym, handle->loader->sym_prefix);
- strcat(sym, handle->info.name);
- } else
- strcpy(sym, handle->info.name);
- strcat(sym, "_LTX_");
- strcat(sym, symbol);
- /* try "modulename_LTX_symbol" */
- address = handle->loader->find_sym(data, handle->module, sym);
- if (address) {
- if (sym != lsym)
- lt_dlfree(sym);
- return address;
- }
- last_error = saved_error;
- }
- /* otherwise try "symbol" */
- if (handle->loader->sym_prefix) {
- strcpy(sym, handle->loader->sym_prefix);
- strcat(sym, symbol);
- } else
- strcpy(sym, symbol);
- address = handle->loader->find_sym(data, handle->module, sym);
- if (sym != lsym)
- lt_dlfree(sym);
- return address;
-}
-
-const char *
-lt_dlerror LTDL_PARAMS((void))
-{
- const char *error = last_error;
-
- last_error = 0;
- return error;
-}
-
-int
-lt_dladdsearchdir (search_dir)
- const char *search_dir;
-{
- if (!search_dir || !strlen(search_dir))
- return 0;
- if (!user_search_path) {
- user_search_path = strdup(search_dir);
- if (!user_search_path) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- } else {
- char *new_search_path = (char*)
- lt_dlmalloc(strlen(user_search_path) +
- strlen(search_dir) + 2); /* ':' + '\0' == 2 */
- if (!new_search_path) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- sprintf (new_search_path, "%s%c%s", user_search_path,
- LTDL_PATHSEP_CHAR, search_dir);
- lt_dlfree(user_search_path);
- user_search_path = new_search_path;
- }
- return 0;
-}
-
-int
-lt_dlsetsearchpath (search_path)
- const char *search_path;
-{
- if (user_search_path)
- lt_dlfree(user_search_path);
- user_search_path = 0; /* reset the search path */
- if (!search_path || !strlen(search_path))
- return 0;
- user_search_path = strdup(search_path);
- if (!user_search_path)
- return 1;
- return 0;
-}
-
-const char *
-lt_dlgetsearchpath LTDL_PARAMS((void))
-{
- return user_search_path;
-}
-
-const lt_dlinfo *
-lt_dlgetinfo (handle)
- lt_dlhandle handle;
-{
- if (!handle) {
- last_error = LT_DLSTRERROR(INVALID_HANDLE);
- return 0;
- }
- return &(handle->info);
-}
-
-int
-lt_dlforeach (func, data)
- int (*func) LTDL_PARAMS((lt_dlhandle handle, lt_ptr_t data));
- lt_ptr_t data;
-{
- lt_dlhandle cur = handles;
- while (cur) {
- lt_dlhandle tmp = cur;
- cur = cur->next;
- if (func(tmp, data))
- return 1;
- }
- return 0;
-}
-
-int
-lt_dlloader_add (place, dlloader, loader_name)
- lt_dlloader_t *place;
- const struct lt_user_dlloader *dlloader;
- const char *loader_name;
-{
- lt_dlloader_t *node = 0, *ptr = 0;
-
- if ((dlloader == 0) /* diagnose null parameters */
- || (dlloader->module_open == 0)
- || (dlloader->module_close == 0)
- || (dlloader->find_sym == 0)) {
- last_error = LT_DLSTRERROR(INVALID_LOADER);
- return 1;
- }
-
- /* Create a new dlloader node with copies of the user callbacks. */
- node = (lt_dlloader_t *) lt_dlmalloc (sizeof (lt_dlloader_t));
- if (node == 0) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return 1;
- }
- node->next = 0;
- node->loader_name = loader_name;
- node->sym_prefix = dlloader->sym_prefix;
- node->dlloader_exit = dlloader->dlloader_exit;
- node->module_open = dlloader->module_open;
- node->module_close = dlloader->module_close;
- node->find_sym = dlloader->find_sym;
- node->dlloader_data = dlloader->dlloader_data;
-
- if (!loaders)
- /* If there are no loaders, NODE becomes the list! */
- loaders = node;
- else if (!place) {
- /* If PLACE is not set, add NODE to the end of the
- LOADERS list. */
- for (ptr = loaders; ptr->next; ptr = ptr->next)
- /*NOWORK*/;
- ptr->next = node;
- } else if (loaders == place) {
- /* If PLACE is the first loader, NODE goes first. */
- node->next = place;
- loaders = node;
- } else {
- /* Find the node immediately preceding PLACE. */
- for (ptr = loaders; ptr->next != place; ptr = ptr->next)
- /*NOWORK*/;
-
- if (ptr->next != place) {
- last_error = LT_DLSTRERROR(INVALID_LOADER);
- return 1;
- }
-
- /* Insert NODE between PTR and PLACE. */
- node->next = place;
- ptr->next = node;
- }
-
- return 0;
-}
-
-int
-lt_dlloader_remove (loader_name)
- const char *loader_name;
-{
- lt_dlloader_t *place = lt_dlloader_find (loader_name);
- lt_dlhandle handle;
- int result = 0;
-
- if (!place) {
- last_error = LT_DLSTRERROR(INVALID_LOADER);
- return 1;
- }
-
- /* Fail if there are any open modules which use this loader. */
- for (handle = handles; handle; handle = handle->next)
- if (handle->loader == place) {
- last_error = LT_DLSTRERROR(REMOVE_LOADER);
- return 1;
- }
-
- if (place == loaders)
- /* PLACE is the first loader in the list. */
- loaders = loaders->next;
- else {
- /* Find the loader before the one being removed. */
- lt_dlloader_t *prev;
- for (prev = loaders; prev->next; prev = prev->next)
- if (!strcmp (prev->next->loader_name, loader_name))
- break;
-
- place = prev->next;
- prev->next = prev->next->next;
- }
- if (place->dlloader_exit)
- result = place->dlloader_exit (place->dlloader_data);
- lt_dlfree (place);
-
- return result;
-}
-
-lt_dlloader_t *
-lt_dlloader_next (place)
- lt_dlloader_t *place;
-{
- return place ? place->next : loaders;
-}
-
-const char *
-lt_dlloader_name (place)
- lt_dlloader_t *place;
-{
- if (!place)
- last_error = LT_DLSTRERROR(INVALID_LOADER);
- return place ? place->loader_name : 0;
-}
-
-lt_dlloader_data_t *
-lt_dlloader_data (place)
- lt_dlloader_t *place;
-{
- if (!place)
- last_error = LT_DLSTRERROR(INVALID_LOADER);
- return place ? &(place->dlloader_data) : 0;
-}
-
-lt_dlloader_t *
-lt_dlloader_find (loader_name)
- const char *loader_name;
-{
- lt_dlloader_t *place = 0;
-
- for (place = loaders; place; place = place->next)
- if (strcmp (place->loader_name, loader_name) == 0)
- break;
-
- return place;
-}
-
-static const char **user_error_strings = 0;
-static int errorcode = LTDL_ERROR_MAX;
-
-int
-lt_dladderror (diagnostic)
- const char *diagnostic;
-{
- int index = errorcode - LTDL_ERROR_MAX;
- const char **temp = 0;
-
- /* realloc is not entirely portable, so simulate it using
- lt_dlmalloc and lt_dlfree. */
- temp = (const char **) lt_dlmalloc ((1+index) * sizeof(const char*));
- if (temp == 0) {
- last_error = LT_DLSTRERROR(NO_MEMORY);
- return -1;
- }
-
- /* Build the new vector in the memory addressed by temp. */
- temp[index] = diagnostic;
- while (--index >= 0)
- temp[index] = user_error_strings[index];
-
- lt_dlfree (user_error_strings);
- user_error_strings = temp;
- return errorcode++;
-}
-
-int
-lt_dlseterror (index)
- int index;
-{
- if (index >= errorcode || index < 0) {
- last_error = LT_DLSTRERROR(INVALID_ERRORCODE);
- return 1;
- }
-
- if (index < LTDL_ERROR_MAX)
- last_error = ltdl_error_strings[errorcode];
- else
- last_error = user_error_strings[errorcode - LTDL_ERROR_MAX];
-
- return 0;
-}
diff --git a/libjava/libltdl/ltdl.h b/libjava/libltdl/ltdl.h
deleted file mode 100644
index 666c785c8c1..00000000000
--- a/libjava/libltdl/ltdl.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/* ltdl.h -- generic dlopen functions
- Copyright (C) 1998-2000 Free Software Foundation, Inc.
- Originally by Thomas Tanner <tanner@ffii.org>
- This file is part of GNU Libtool.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free
-Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-*/
-
-/* Only include this header file once. */
-#ifndef _LTDL_H_
-#define _LTDL_H_ 1
-
-/* Canonicalise Windows and Cygwin recognition macros. */
-#ifdef __CYGWIN32__
-# ifndef __CYGWIN__
-# define __CYGWIN__ __CYGWIN32__
-# endif
-#endif
-#ifdef _WIN32
-# ifndef WIN32
-# define WIN32 _WIN32
-# endif
-#endif
-
-/* __BEGIN_DECLS should be used at the beginning of your declarations,
- so that C++ compilers don't mangle their names. Use __END_DECLS at
- the end of C declarations. */
-#undef __BEGIN_DECLS
-#undef __END_DECLS
-#ifdef __cplusplus
-# define __BEGIN_DECLS extern "C" {
-# define __END_DECLS }
-#else
-# define __BEGIN_DECLS /* empty */
-# define __END_DECLS /* empty */
-#endif
-
-/* LTDL_PARAMS is a macro used to wrap function prototypes, so that compilers
- that don't understand ANSI C prototypes still work, and ANSI C
- compilers can issue warnings about type mismatches. */
-#undef LTDL_PARAMS
-#undef lt_ptr_t
-#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus)
-# define LTDL_PARAMS(protos) protos
-# define lt_ptr_t void*
-#else
-# define LTDL_PARAMS(protos) ()
-# define lt_ptr_t char*
-#endif
-
-/* LTDL_STMT_START/END are used to create macros which expand to a
- a single compound statement in a portable way. */
-#undef LTDL_STMT_START
-#undef LTDL_STMT_END
-#if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus)
-# define LTDL_STMT_START (void)(
-# define LTDL_STMT_END )
-#else
-# if (defined (sun) || defined (__sun__))
-# define LTDL_STMT_START if (1)
-# define LTDL_STMT_END else (void)0
-# else
-# define LTDL_STMT_START do
-# define LTDL_STMT_END while (0)
-# endif
-#endif
-
-#ifdef WIN32
-# ifndef __CYGWIN__
-/* LTDL_DIRSEP_CHAR is accepted *in addition* to '/' as a directory
- separator when it is set. */
-# define LTDL_DIRSEP_CHAR '\\'
-# define LTDL_PATHSEP_CHAR ';'
-# endif
-#endif
-#ifndef LTDL_PATHSEP_CHAR
-# define LTDL_PATHSEP_CHAR ':'
-#endif
-
-/* DLL building support on win32 hosts; mostly to workaround their
- ridiculous implementation of data symbol exporting. */
-#ifndef LTDL_SCOPE
-# ifdef _WIN32
-# ifdef DLL_EXPORT /* defined by libtool (if required) */
-# define LTDL_SCOPE __declspec(dllexport)
-# endif
-# ifdef LIBLTDL_DLL_IMPORT /* define if linking with this dll */
-# define LTDL_SCOPE extern __declspec(dllimport)
-# endif
-# endif
-# ifndef LTDL_SCOPE /* static linking or !_WIN32 */
-# define LTDL_SCOPE extern
-# endif
-#endif
-
-#include <stdlib.h>
-
-/* Defining error strings alongside their symbolic names in a macro in
- this way allows us to expand the macro in different contexts with
- confidence that the enumeration of symbolic names will map correctly
- onto the table of error strings. */
-#define ltdl_error_table \
- LTDL_ERROR(UNKNOWN, "unknown error") \
- LTDL_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available")\
- LTDL_ERROR(INVALID_LOADER, "invalid loader") \
- LTDL_ERROR(INIT_LOADER, "loader initialization failed") \
- LTDL_ERROR(REMOVE_LOADER, "loader removal failed") \
- LTDL_ERROR(FILE_NOT_FOUND, "file not found") \
- LTDL_ERROR(DEPLIB_NOT_FOUND, "dependency library not found") \
- LTDL_ERROR(NO_SYMBOLS, "no symbols defined") \
- LTDL_ERROR(CANNOT_OPEN, "can't open the module") \
- LTDL_ERROR(CANNOT_CLOSE, "can't close the module") \
- LTDL_ERROR(SYMBOL_NOT_FOUND, "symbol not found") \
- LTDL_ERROR(NO_MEMORY, "not enough memory") \
- LTDL_ERROR(INVALID_HANDLE, "invalid module handle") \
- LTDL_ERROR(BUFFER_OVERFLOW, "internal buffer overflow") \
- LTDL_ERROR(INVALID_ERRORCODE, "invalid errorcode") \
- LTDL_ERROR(SHUTDOWN, "library already shutdown")
-
-/* Enumerate the symbolic error names. */
-#if defined(__STDC__) || defined(__cplusplus)
-# define LTDL_ERROR(name, diagnostic) LTDL_ERROR_##name,
-#else
-# define LTDL_ERROR(name, diagnostic) LTDL_ERROR_/**/name,
-#endif
-enum {
- ltdl_error_table
- LTDL_ERROR_MAX
-};
-#undef LTDL_ERROR
-
-/* An opaque handle for a successfully lt_dlopened module instance. */
-#ifdef _LTDL_COMPILE_
-typedef struct lt_dlhandle_t *lt_dlhandle;
-#else
-typedef lt_ptr_t lt_dlhandle;
-#endif
-
-/* A preopened symbol. Arrays of this type comprise the exported
- symbols for a dlpreopened module. */
-typedef struct {
- const char *name;
- lt_ptr_t address;
-} lt_dlsymlist;
-
-/* Read only information pertaining to a loaded module. */
-typedef struct {
- char *filename; /* file name */
- char *name; /* module name */
- int ref_count; /* number of times lt_dlopened minus
- number of times lt_dlclosed. */
-} lt_dlinfo;
-
-/* An opaque handle for a module loaded by a system call. This is only
- used internally by ltdl loaders, and by user module loaders. */
-typedef lt_ptr_t lt_module_t;
-
-/* An opaque handle for a module loader. */
-#ifdef _LTDL_COMPILE_
-typedef struct lt_dlloader_t lt_dlloader_t;
-#else
-typedef lt_ptr_t lt_dlloader_t;
-#endif
-
-typedef lt_ptr_t lt_dlloader_data_t;
-
-/* Function pointer types for creating user defined module loaders. */
-typedef lt_module_t lt_module_open_t LTDL_PARAMS((lt_dlloader_data_t loader_data, const char *filename));
-typedef int lt_module_close_t LTDL_PARAMS((lt_dlloader_data_t loader_data, lt_module_t handle));
-typedef lt_ptr_t lt_find_sym_t LTDL_PARAMS((lt_dlloader_data_t loader_data, lt_module_t handle, const char *symbol));
-typedef int lt_dlloader_exit_t LTDL_PARAMS((lt_dlloader_data_t loader_data));
-
-__BEGIN_DECLS
-/* Initialisation and finalisation functions for libltdl. */
-extern int lt_dlinit LTDL_PARAMS((void));
-extern int lt_dlexit LTDL_PARAMS((void));
-
-/* Module search path manipultation. */
-extern int lt_dladdsearchdir LTDL_PARAMS((const char *search_dir));
-extern int lt_dlsetsearchpath LTDL_PARAMS((const char *search_path));
-extern const char *lt_dlgetsearchpath LTDL_PARAMS((void));
-
-/* Portable libltdl versions of the system dlopen() API. */
-extern lt_dlhandle lt_dlopen LTDL_PARAMS((const char *filename));
-extern lt_dlhandle lt_dlopenext LTDL_PARAMS((const char *filename));
-extern lt_ptr_t lt_dlsym LTDL_PARAMS((lt_dlhandle handle, const char *name));
-extern const char *lt_dlerror LTDL_PARAMS((void));
-extern int lt_dlclose LTDL_PARAMS((lt_dlhandle handle));
-
-/* Support for preloaded modules through lt_dlopen() API. */
-extern int lt_dlpreload LTDL_PARAMS((const lt_dlsymlist *preloaded));
-extern int lt_dlpreload_default LTDL_PARAMS((const lt_dlsymlist *preloaded));
-
-#define LTDL_SET_PRELOADED_SYMBOLS() LTDL_STMT_START{ \
- extern const lt_dlsymlist lt_preloaded_symbols[]; \
- lt_dlpreload_default(lt_preloaded_symbols); \
- }LTDL_STMT_END
-
-/* Managing user data associated with a loaded modules. */
-extern const lt_dlinfo *lt_dlgetinfo LTDL_PARAMS((lt_dlhandle handle));
-extern int lt_dlforeach LTDL_PARAMS((
- int (*func)(lt_dlhandle handle, lt_ptr_t data), lt_ptr_t data));
-
-/* User module loader API. */
-struct lt_user_dlloader {
- const char *sym_prefix;
- lt_module_open_t *module_open;
- lt_module_close_t *module_close;
- lt_find_sym_t *find_sym;
- lt_dlloader_exit_t *dlloader_exit;
- lt_dlloader_data_t dlloader_data;
-};
-
-extern lt_dlloader_t *lt_dlloader_next LTDL_PARAMS((lt_dlloader_t *place));
-extern lt_dlloader_t *lt_dlloader_find LTDL_PARAMS((const char *loader_name));
-extern const char *lt_dlloader_name LTDL_PARAMS((lt_dlloader_t *place));
-extern lt_dlloader_data_t *lt_dlloader_data LTDL_PARAMS((lt_dlloader_t *place));
-extern lt_dlloader_t *lt_find_dlloader LTDL_PARAMS((const char *loader_name));
-extern int lt_dlloader_add LTDL_PARAMS((lt_dlloader_t *place, const struct lt_user_dlloader *dlloader, const char *loader_name));
-extern int lt_dlloader_remove LTDL_PARAMS((const char *loader_name));
-
-/* Integrated lt_dlerror() messages for user loaders. */
-extern int lt_dladderror LTDL_PARAMS((const char *diagnostic));
-extern int lt_dlseterror LTDL_PARAMS((int errorcode));
-
-/* Pointers to memory management functions to be used by libltdl. */
-LTDL_SCOPE lt_ptr_t (*lt_dlmalloc)LTDL_PARAMS((size_t size));
-LTDL_SCOPE void (*lt_dlfree)LTDL_PARAMS((lt_ptr_t ptr));
-
-__END_DECLS
-
-#endif /* !_LTDL_H_ */
diff --git a/libjava/libltdl/stamp-h.in b/libjava/libltdl/stamp-h.in
deleted file mode 100644
index 9788f70238c..00000000000
--- a/libjava/libltdl/stamp-h.in
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/libjava/libtool-version b/libjava/libtool-version
deleted file mode 100644
index 1d68c1f208f..00000000000
--- a/libjava/libtool-version
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is used to maintain libtool version info for libgcj. See
-# the libtool manual to understand the meaning of the fields. This is
-# a separate file so that version updates don't involve re-running
-# automake.
-# CURRENT:REVISION:AGE
-1:0:0
diff --git a/libjava/mauve-libgcj b/libjava/mauve-libgcj
deleted file mode 100644
index bdf807185f5..00000000000
--- a/libjava/mauve-libgcj
+++ /dev/null
@@ -1,25 +0,0 @@
-# Config file that tells mauve about the `libjava' tag.
-JDK1.0
-JDK1.1
-!java.applet
-!java.awt
-!java.beans
-java.lang.Character.classify12
-java.lang.String.hash
-# We support 1.2 for these 3 tests.
-java.lang.reflect.Modifier.toString12
-java.io.ObjectInputOutput.InputTest
-java.io.ObjectInputOutput.OutputTest
-java.io.ObjectStreamClass.Test
-java.math
-!java.rmi
-java.security
-java.sql
-java.text.FieldPosition.Test
-java.text.ParsePosition.Test
-java.text.SimpleDateFormat.getAndSet2DigitYearStart
-java.text.StringCharacterIterator.iter
-!java.text.ACIAttribute
-!java.text.AttributedCharacterIterator
-!java.text.resources
-!java.text.DateFormat
diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc
deleted file mode 100644
index 00857934e3e..00000000000
--- a/libjava/name-finder.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-// name-finder.cc - Convert addresses to names
-
-/* Copyright (C) 2000 Red Hat Inc
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/**
- * @author Andrew Haley <aph@cygnus.com>
- * @date Jan 6 2000
- */
-
-/* _Jv_name_finder is a class wrapper around a mechanism that can
- convert address of methods to their names and the names of files in
- which they appear.
-
- Right now, the only implementation of this involves running a copy
- of addr2line, but at some point it is worth building this
- functionality into libgcj, if only for embedded systems. */
-
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE 1
-#endif
-
-#include <config.h>
-
-#include <string.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Object.h>
-#include <java-threads.h>
-#include <java/lang/Throwable.h>
-#include <java/io/PrintStream.h>
-#include <java/io/PrintWriter.h>
-
-#include <sys/types.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <name-finder.h>
-
-/* Create a new name finder which will perform address lookups on an
- executable. */
-
-_Jv_name_finder::_Jv_name_finder (char *executable)
-{
-#if defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP)
- error = 0;
-
- char *argv[6];
- {
- int arg = 0;
-#ifdef __ia64__
- argv[arg++] = "addr2name.awk";
-#else
- argv[arg++] = "addr2line";
- argv[arg++] = "-C";
- argv[arg++] = "-f";
- argv[arg++] = "-e";
-#endif
- argv[arg++] = executable;
- argv[arg] = NULL;
- }
-
- error |= pipe (f_pipe) < 0;
- error |= pipe (b_pipe) < 0;
-
- if (error)
- return;
-
- pid = fork ();
- if (pid == 0)
- {
- close (f_pipe[1]);
- close (b_pipe[0]);
- dup2 (f_pipe[0], fileno (stdin));
- dup2 (b_pipe[1], fileno (stdout));
- execvp (argv[0], argv);
- _exit (127);
- }
-
- close (f_pipe [0]);
- close (b_pipe [1]);
-
- if (pid < 0)
- {
- error |= 1;
- return;
- }
-
- b_pipe_fd = fdopen (b_pipe[0], "r");
- error |= !b_pipe_fd;
-#endif
-}
-
-/* Convert a pointer to hex. */
-
-void
-_Jv_name_finder::toHex (void *p)
-{
- unsigned long long n = (unsigned long long)p;
- int digits = sizeof (void *) * 2;
-
- strcpy (hex, "0x");
- for (int i = digits - 1; i >= 0; i--)
- {
- int digit = n % 16;
-
- n /= 16;
- hex[i+2] = digit > 9 ? 'a' + digit - 10 : '0' + digit;
- }
- hex [digits+2] = 0;
-}
-
-/* Given a pointer to a function or method, try to convert it into a
- name and the appropriate line and source file. The caller passes
- the code pointer in p.
-
- Returns false if the lookup fails. Even if this happens, the field
- he will have been correctly filled in with the pointer. */
-
-bool
-_Jv_name_finder::lookup (void *p)
-{
- toHex (p);
-
-#if defined (HAVE_DLFCN_H) && defined (HAVE_DLADDR)
- {
- Dl_info dl_info;
-
- if (dladdr (p, &dl_info))
- {
- strncpy (file_name, dl_info.dli_fname, sizeof file_name);
- strncpy (method_name, dl_info.dli_sname, sizeof method_name);
- return true;
- }
- }
-#endif
-
-#if defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP)
- if (error)
- return false;
-
- error |= write (f_pipe[1], hex, strlen (hex)) < 0;
- if (error)
- return false;
- error |= write (f_pipe[1], "\n", 1) < 0;
- if (error)
- return false;
-
- error |= (fgets (method_name, sizeof method_name, b_pipe_fd) == NULL);
- if (error)
- return false;
- error |= (fgets (file_name, sizeof file_name, b_pipe_fd) == NULL);
- if (error)
- return false;
-
- char *newline = strchr (method_name, '\n');
- if (newline)
- *newline = 0;
- newline = strchr (file_name, '\n');
- if (newline)
- *newline = 0;
-
- return true;
-
-#else
- return false;
-#endif /* defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP) */
-}
diff --git a/libjava/no-threads.cc b/libjava/no-threads.cc
deleted file mode 100644
index d28891a5b44..00000000000
--- a/libjava/no-threads.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-// no-thread.cc - Implementation of `no threads' threads.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Thread.h>
-
-java::lang::Thread *_Jv_OnlyThread = NULL;
-
-void
-_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *,
- _Jv_ThreadStartFunc *meth)
-{
- // Don't use JvAssert, since we want this to fail even when compiled
- // without assertions.
- if (_Jv_OnlyThread)
- JvFail ("only thread already running");
- _Jv_OnlyThread = thread;
- (*meth) (thread);
-}
diff --git a/libjava/nogc.cc b/libjava/nogc.cc
deleted file mode 100644
index 10d4f80ed00..00000000000
--- a/libjava/nogc.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// nogc.cc - Code to implement no GC.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-// Total amount of memory allocated.
-static long total = 0;
-
-void *
-_Jv_AllocObj (jsize size)
-{
- total += size;
- return calloc (size, 1);
-}
-
-void *
-_Jv_AllocArray (jsize size)
-{
- total += size;
- return calloc (size, 1);
-}
-
-void *
-_Jv_AllocBytes (jsize size)
-{
- total += size;
- return calloc (size, 1);
-}
-
-void
-_Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc *)
-{
- // FIXME: should actually register so that finalizers can be run on
- // exit.
-}
-
-void
-_Jv_RunFinalizers (void)
-{
-}
-
-void
-_Jv_RunAllFinalizers (void)
-{
- // FIXME: should still run all finalizers.
-}
-
-void
-_Jv_RunGC (void)
-{
-}
-
-long
-_Jv_GCTotalMemory (void)
-{
- return total;
-}
-
-long
-_Jv_GCFreeMemory (void)
-{
- return 0;
-}
-
-void
-_Jv_GCSetInitialHeapSize (size_t size)
-{
-}
-
-void
-_Jv_GCSetMaximumHeapSize (size_t size)
-{
-}
-
-void
-_Jv_DisableGC (void)
-{
-}
-
-void
-_Jv_EnableGC (void)
-{
-}
-
-void
-_Jv_InitGC (void)
-{
-}
diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc
deleted file mode 100644
index e5a1668dac8..00000000000
--- a/libjava/posix-threads.cc
+++ /dev/null
@@ -1,412 +0,0 @@
-// posix-threads.cc - interface between libjava and POSIX threads.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-// TO DO:
-// * Document signal handling limitations
-
-#include <config.h>
-
-// If we're using the Boehm GC, then we need to override some of the
-// thread primitives. This is fairly gross.
-#ifdef HAVE_BOEHM_GC
-extern "C"
-{
-#include <gcconfig.h>
-#include <gc.h>
-};
-#endif /* HAVE_BOEHM_GC */
-
-#include <stdlib.h>
-#include <time.h>
-#include <signal.h>
-#include <errno.h>
-#include <limits.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Thread.h>
-#include <java/lang/System.h>
-#include <java/lang/Long.h>
-#include <java/lang/OutOfMemoryError.h>
-
-// This is used to implement thread startup.
-struct starter
-{
- _Jv_ThreadStartFunc *method;
- _Jv_Thread_t *data;
-};
-
-// This is the key used to map from the POSIX thread value back to the
-// Java object representing the thread. The key is global to all
-// threads, so it is ok to make it a global here.
-pthread_key_t _Jv_ThreadKey;
-
-// This is the key used to map from the POSIX thread value back to the
-// _Jv_Thread_t* representing the thread.
-pthread_key_t _Jv_ThreadDataKey;
-
-// We keep a count of all non-daemon threads which are running. When
-// this reaches zero, _Jv_ThreadWait returns.
-static pthread_mutex_t daemon_mutex;
-static pthread_cond_t daemon_cond;
-static int non_daemon_count;
-
-// The signal to use when interrupting a thread.
-#ifdef LINUX_THREADS
- // LinuxThreads (prior to glibc 2.1) usurps both SIGUSR1 and SIGUSR2.
-# define INTR SIGHUP
-#else /* LINUX_THREADS */
-# define INTR SIGUSR2
-#endif /* LINUX_THREADS */
-
-//
-// These are the flags that can appear in _Jv_Thread_t.
-//
-
-// Thread started.
-#define FLAG_START 0x01
-// Thread is daemon.
-#define FLAG_DAEMON 0x02
-
-
-
-// Wait for the condition variable "CV" to be notified.
-// Return values:
-// 0: the condition was notified, or the timeout expired.
-// _JV_NOT_OWNER: the thread does not own the mutex "MU".
-// _JV_INTERRUPTED: the thread was interrupted. Its interrupted flag is set.
-int
-_Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
- jlong millis, jint nanos)
-{
- pthread_t self = pthread_self();
- if (mu->owner != self)
- return _JV_NOT_OWNER;
-
- struct timespec ts;
- jlong m, startTime;
-
- if (millis > 0 || nanos > 0)
- {
- startTime = java::lang::System::currentTimeMillis();
- m = millis + startTime;
- ts.tv_sec = m / 1000;
- ts.tv_nsec = ((m % 1000) * 1000000) + nanos;
- }
-
- _Jv_Thread_t *current = _Jv_ThreadCurrentData ();
- java::lang::Thread *current_obj = _Jv_ThreadCurrent ();
-
- // Add this thread to the cv's wait set.
- current->next = NULL;
-
- if (cv->first == NULL)
- cv->first = current;
- else
- for (_Jv_Thread_t *t = cv->first;; t = t->next)
- {
- if (t->next == NULL)
- {
- t->next = current;
- break;
- }
- }
-
- pthread_mutex_lock (&current->wait_mutex);
-
- // Now that we hold the wait mutex, check if this thread has been
- // interrupted already.
- if (current_obj->interrupt_flag)
- {
- pthread_mutex_unlock (&current->wait_mutex);
- return _JV_INTERRUPTED;
- }
-
- // Record the current lock depth, so it can be restored when we re-aquire it.
- int count = mu->count;
-
- // Release the monitor mutex.
- mu->count = 0;
- mu->owner = 0;
- pthread_mutex_unlock (&mu->mutex);
-
- int r = 0;
- bool done_sleeping = false;
-
- while (! done_sleeping)
- {
- if (millis == 0 && nanos == 0)
- r = pthread_cond_wait (&current->wait_cond, &current->wait_mutex);
- else
- r = pthread_cond_timedwait (&current->wait_cond, &current->wait_mutex,
- &ts);
-
- // In older glibc's (prior to 2.1.3), the cond_wait functions may
- // spuriously wake up on a signal. Catch that here.
- if (r != EINTR)
- done_sleeping = true;
- }
-
- // Check for an interrupt *before* unlocking the wait mutex.
- jboolean interrupted = current_obj->interrupt_flag;
-
- pthread_mutex_unlock (&current->wait_mutex);
-
- // Reaquire the monitor mutex, and restore the lock count.
- pthread_mutex_lock (&mu->mutex);
- mu->owner = self;
- mu->count = count;
-
- // If we were interrupted, or if a timeout occured, remove ourself from
- // the cv wait list now. (If we were notified normally, notify() will have
- // already taken care of this)
- if (r == ETIMEDOUT || interrupted)
- {
- _Jv_Thread_t *prev = NULL;
- for (_Jv_Thread_t *t = cv->first; t != NULL; t = t->next)
- {
- if (t == current)
- {
- if (prev != NULL)
- prev->next = t->next;
- else
- cv->first = t->next;
- t->next = NULL;
- break;
- }
- prev = t;
- }
- if (interrupted)
- return _JV_INTERRUPTED;
- }
-
- return 0;
-}
-
-int
-_Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu)
-{
- if (_Jv_PthreadCheckMonitor (mu))
- return _JV_NOT_OWNER;
-
- _Jv_Thread_t *target;
- _Jv_Thread_t *prev = NULL;
-
- for (target = cv->first; target != NULL; target = target->next)
- {
- pthread_mutex_lock (&target->wait_mutex);
-
- if (target->thread_obj->interrupt_flag)
- {
- // Don't notify a thread that has already been interrupted.
- pthread_mutex_unlock (&target->wait_mutex);
- prev = target;
- continue;
- }
-
- pthread_cond_signal (&target->wait_cond);
- pthread_mutex_unlock (&target->wait_mutex);
-
- // Two concurrent notify() calls must not be delivered to the same
- // thread, so remove the target thread from the cv wait list now.
- if (prev == NULL)
- cv->first = target->next;
- else
- prev->next = target->next;
-
- target->next = NULL;
-
- break;
- }
-
- return 0;
-}
-
-int
-_Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu)
-{
- if (_Jv_PthreadCheckMonitor (mu))
- return _JV_NOT_OWNER;
-
- _Jv_Thread_t *target;
- _Jv_Thread_t *prev = NULL;
-
- for (target = cv->first; target != NULL; target = target->next)
- {
- pthread_mutex_lock (&target->wait_mutex);
- pthread_cond_signal (&target->wait_cond);
- pthread_mutex_unlock (&target->wait_mutex);
-
- if (prev != NULL)
- prev->next = NULL;
- prev = target;
- }
- if (prev != NULL)
- prev->next = NULL;
-
- cv->first = NULL;
-
- return 0;
-}
-
-void
-_Jv_ThreadInterrupt (_Jv_Thread_t *data)
-{
- pthread_mutex_lock (&data->wait_mutex);
-
- // Set the thread's interrupted flag *after* aquiring its wait_mutex. This
- // ensures that there are no races with the interrupt flag being set after
- // the waiting thread checks it and before pthread_cond_wait is entered.
- data->thread_obj->interrupt_flag = true;
-
- // Interrupt blocking system calls using a signal.
-// pthread_kill (data->thread, INTR);
-
- pthread_cond_signal (&data->wait_cond);
-
- pthread_mutex_unlock (&data->wait_mutex);
-}
-
-static void
-handle_intr (int)
-{
- // Do nothing.
-}
-
-void
-_Jv_InitThreads (void)
-{
- pthread_key_create (&_Jv_ThreadKey, NULL);
- pthread_key_create (&_Jv_ThreadDataKey, NULL);
- pthread_mutex_init (&daemon_mutex, NULL);
- pthread_cond_init (&daemon_cond, 0);
- non_daemon_count = 0;
-
- // Arrange for the interrupt signal to interrupt system calls.
- struct sigaction act;
- act.sa_handler = handle_intr;
- sigemptyset (&act.sa_mask);
- act.sa_flags = 0;
- sigaction (INTR, &act, NULL);
-}
-
-void
-_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *obj)
-{
- _Jv_Thread_t *info = new _Jv_Thread_t;
- info->flags = 0;
- info->thread_obj = obj;
-
- pthread_mutex_init (&info->wait_mutex, NULL);
- pthread_cond_init (&info->wait_cond, NULL);
-
- // FIXME register a finalizer for INFO here.
- // FIXME also must mark INFO somehow.
-
- *data = info;
-}
-
-void
-_Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
-{
- if (data->flags & FLAG_START)
- {
- struct sched_param param;
-
- param.sched_priority = prio;
- pthread_setschedparam (data->thread, SCHED_RR, &param);
- }
-}
-
-// This function is called when a thread is started. We don't arrange
-// to call the `run' method directly, because this function must
-// return a value.
-static void *
-really_start (void *x)
-{
- struct starter *info = (struct starter *) x;
-
- pthread_setspecific (_Jv_ThreadKey, info->data->thread_obj);
- pthread_setspecific (_Jv_ThreadDataKey, info->data);
-
- // glibc 2.1.3 doesn't set the value of `thread' until after start_routine
- // is called. Since it may need to be accessed from the new thread, work
- // around the potential race here by explicitly setting it again.
- info->data->thread = pthread_self ();
-
- info->method (info->data->thread_obj);
-
- if (! (info->data->flags & FLAG_DAEMON))
- {
- pthread_mutex_lock (&daemon_mutex);
- --non_daemon_count;
- if (! non_daemon_count)
- pthread_cond_signal (&daemon_cond);
- pthread_mutex_unlock (&daemon_mutex);
- }
-
-#ifndef LINUX_THREADS
- // Clean up. These calls do nothing on Linux.
- pthread_mutex_destroy (&info->data->wait_mutex);
- pthread_cond_destroy (&info->data->wait_cond);
-#endif /* ! LINUX_THREADS */
-
- return NULL;
-}
-
-void
-_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
- _Jv_ThreadStartFunc *meth)
-{
- struct sched_param param;
- pthread_attr_t attr;
- struct starter *info;
-
- if (data->flags & FLAG_START)
- return;
- data->flags |= FLAG_START;
-
- param.sched_priority = thread->getPriority();
-
- pthread_attr_init (&attr);
- pthread_attr_setschedparam (&attr, &param);
-
- // FIXME: handle marking the info object for GC.
- info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter));
- info->method = meth;
- info->data = data;
-
- if (! thread->isDaemon())
- {
- pthread_mutex_lock (&daemon_mutex);
- ++non_daemon_count;
- pthread_mutex_unlock (&daemon_mutex);
- }
- else
- data->flags |= FLAG_DAEMON;
- int r = pthread_create (&data->thread, &attr, really_start, (void *) info);
-
- pthread_attr_destroy (&attr);
-
- if (r)
- {
- const char* msg = "Cannot create additional threads";
- JvThrow (new java::lang::OutOfMemoryError (JvNewStringUTF (msg)));
- }
-}
-
-void
-_Jv_ThreadWait (void)
-{
- pthread_mutex_lock (&daemon_mutex);
- if (non_daemon_count)
- pthread_cond_wait (&daemon_cond, &daemon_mutex);
- pthread_mutex_unlock (&daemon_mutex);
-}
diff --git a/libjava/posix.cc b/libjava/posix.cc
deleted file mode 100644
index d470a644da3..00000000000
--- a/libjava/posix.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// posix.cc -- Helper functions for POSIX-flavored OSs.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include "posix.h"
-
-#include <errno.h>
-
-#if defined (ECOS)
-extern "C" unsigned long long _clock (void);
-#endif
-
-// gettimeofday implementation.
-void
-_Jv_gettimeofday (struct timeval *tv)
-{
-#if defined (HAVE_GETTIMEOFDAY)
- gettimeofday (tv, NULL);
-#elif defined (HAVE_TIME)
- tv->tv_sec = time (NULL);
- tv->tv_usec = 0;
-#elif defined (HAVE_FTIME)
- struct timeb t;
- ftime (&t);
- tv->tv_sec = t.time;
- tv->tv_usec = t.millitm * 1000;
-#elif defined (ECOS)
- // FIXME.
- tv->tv_sec = _clock () / 1000;
- tv->tv_usec = 0;
-#else
- // In the absence of any function, time remains forever fixed.
- tv->tv_sec = 23;
- tv->tv_usec = 0;
-#endif
-}
-
-// A wrapper for select() which ignores EINTR.
-int
-_Jv_select (int n, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds, struct timeval *timeout)
-{
-#ifdef HAVE_SELECT
- // If we have a timeout, compute the absolute ending time.
- struct timeval end, delay;
- if (timeout)
- {
- _Jv_gettimeofday (&end);
- end.tv_usec += timeout->tv_usec;
- if (end.tv_usec >= 1000000)
- {
- ++end.tv_sec;
- end.tv_usec -= 1000000;
- }
- end.tv_sec += timeout->tv_sec;
- delay = *timeout;
- }
- else
- {
- // Placate compiler.
- delay.tv_sec = delay.tv_usec = 0;
- }
-
- while (1)
- {
- int r = select (n, readfds, writefds, exceptfds,
- timeout ? &delay : NULL);
- if (r != -1 || errno != EINTR)
- return r;
-
- struct timeval after;
- if (timeout)
- {
- _Jv_gettimeofday (&after);
- // Now compute new timeout argument.
- delay.tv_usec = end.tv_usec - after.tv_usec;
- delay.tv_sec = end.tv_sec - after.tv_sec;
- if (delay.tv_usec < 0)
- {
- --delay.tv_sec;
- delay.tv_usec += 1000000;
- }
- if (delay.tv_sec < 0)
- {
- // We assume that the user wants a valid select() call
- // more than precise timing. So if we get a series of
- // EINTR we just keep trying with delay 0 until we get a
- // valid result.
- delay.tv_sec = 0;
- }
- }
- }
-#else /* HAVE_SELECT */
- return 0;
-#endif
-}
diff --git a/libjava/prims.cc b/libjava/prims.cc
deleted file mode 100644
index 92e449645df..00000000000
--- a/libjava/prims.cc
+++ /dev/null
@@ -1,1074 +0,0 @@
-// prims.cc - Code for core of runtime environment.
-
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#ifdef USE_WIN32_SIGNALLING
-#include <windows.h>
-#endif /* USE_WIN32_SIGNALLING */
-
-#ifdef USE_WINSOCK
-#undef __INSIDE_CYGWIN__
-#include <winsock.h>
-#endif /* USE_WINSOCK */
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <signal.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java-signal.h>
-#include <java-threads.h>
-
-#ifdef ENABLE_JVMPI
-#include <jvmpi.h>
-#endif
-
-#ifndef DISABLE_GETENV_PROPERTIES
-#include <ctype.h>
-#include <java-props.h>
-#define PROCESS_GCJ_PROPERTIES process_gcj_properties()
-#else
-#define PROCESS_GCJ_PROPERTIES
-#endif // DISABLE_GETENV_PROPERTIES
-
-#include <java/lang/Class.h>
-#include <java/lang/ClassLoader.h>
-#include <java/lang/Runtime.h>
-#include <java/lang/String.h>
-#include <java/lang/Thread.h>
-#include <java/lang/ThreadGroup.h>
-#include <gnu/gcj/runtime/FirstThread.h>
-#include <java/lang/ArrayIndexOutOfBoundsException.h>
-#include <java/lang/ArithmeticException.h>
-#include <java/lang/ClassFormatError.h>
-#include <java/lang/NegativeArraySizeException.h>
-#include <java/lang/NullPointerException.h>
-#include <java/lang/OutOfMemoryError.h>
-#include <java/lang/System.h>
-#include <java/lang/reflect/Modifier.h>
-#include <java/io/PrintStream.h>
-
-#ifdef USE_LTDL
-#include <ltdl.h>
-#endif
-
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-
-// We allocate a single OutOfMemoryError exception which we keep
-// around for use if we run out of memory.
-static java::lang::OutOfMemoryError *no_memory;
-
-// Largest representable size_t.
-#define SIZE_T_MAX ((size_t) (~ (size_t) 0))
-
-// Properties set at compile time.
-const char **_Jv_Compiler_Properties;
-
-// The JAR file to add to the beginning of java.class.path.
-const char *_Jv_Jar_Class_Path;
-
-#ifndef DISABLE_GETENV_PROPERTIES
-// Property key/value pairs.
-property_pair *_Jv_Environment_Properties;
-#endif
-
-// The name of this executable.
-static char * _Jv_execName;
-
-#ifdef ENABLE_JVMPI
-// Pointer to JVMPI notification functions.
-void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event);
-void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event);
-void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
-#endif
-
-
-extern "C" void _Jv_ThrowSignal (void *) __attribute ((noreturn));
-
-// Just like _Jv_Throw, but fill in the stack trace first. Although
-// this is declared extern in order that its name not be mangled, it
-// is not intended to be used outside this file.
-void
-_Jv_ThrowSignal (void *e)
-{
- java::lang::Throwable *throwable = (java::lang::Throwable *)e;
- throwable->fillInStackTrace ();
- _Jv_Throw (throwable);
-}
-
-#ifdef HANDLE_SEGV
-static java::lang::NullPointerException *nullp;
-
-SIGNAL_HANDLER (catch_segv)
-{
- MAKE_THROW_FRAME (nullp);
- _Jv_ThrowSignal (nullp);
-}
-#endif
-
-static java::lang::ArithmeticException *arithexception;
-
-#ifdef HANDLE_FPE
-SIGNAL_HANDLER (catch_fpe)
-{
-#ifdef HANDLE_DIVIDE_OVERFLOW
- HANDLE_DIVIDE_OVERFLOW;
-#else
- MAKE_THROW_FRAME (arithexception);
-#endif
- _Jv_ThrowSignal (arithexception);
-}
-#endif
-
-
-
-jboolean
-_Jv_equalUtf8Consts (Utf8Const* a, Utf8Const *b)
-{
- int len;
- _Jv_ushort *aptr, *bptr;
- if (a == b)
- return true;
- if (a->hash != b->hash)
- return false;
- len = a->length;
- if (b->length != len)
- return false;
- aptr = (_Jv_ushort *)a->data;
- bptr = (_Jv_ushort *)b->data;
- len = (len + 1) >> 1;
- while (--len >= 0)
- if (*aptr++ != *bptr++)
- return false;
- return true;
-}
-
-/* True iff A is equal to STR.
- HASH is STR->hashCode().
-*/
-
-jboolean
-_Jv_equal (Utf8Const* a, jstring str, jint hash)
-{
- if (a->hash != (_Jv_ushort) hash)
- return false;
- jint len = str->length();
- jint i = 0;
- jchar *sptr = _Jv_GetStringChars (str);
- unsigned char* ptr = (unsigned char*) a->data;
- unsigned char* limit = ptr + a->length;
- for (;; i++, sptr++)
- {
- int ch = UTF8_GET (ptr, limit);
- if (i == len)
- return ch < 0;
- if (ch != *sptr)
- return false;
- }
- return true;
-}
-
-/* Like _Jv_equal, but stop after N characters. */
-jboolean
-_Jv_equaln (Utf8Const *a, jstring str, jint n)
-{
- jint len = str->length();
- jint i = 0;
- jchar *sptr = _Jv_GetStringChars (str);
- unsigned char* ptr = (unsigned char*) a->data;
- unsigned char* limit = ptr + a->length;
- for (; n-- > 0; i++, sptr++)
- {
- int ch = UTF8_GET (ptr, limit);
- if (i == len)
- return ch < 0;
- if (ch != *sptr)
- return false;
- }
- return true;
-}
-
-/* Count the number of Unicode chars encoded in a given Ut8 string. */
-int
-_Jv_strLengthUtf8(char* str, int len)
-{
- unsigned char* ptr;
- unsigned char* limit;
- int str_length;
-
- ptr = (unsigned char*) str;
- limit = ptr + len;
- str_length = 0;
- for (; ptr < limit; str_length++) {
- if (UTF8_GET (ptr, limit) < 0) {
- return (-1);
- }
- }
- return (str_length);
-}
-
-/* Calculate a hash value for a string encoded in Utf8 format.
- * This returns the same hash value as specified or java.lang.String.hashCode.
- */
-static jint
-hashUtf8String (char* str, int len)
-{
- unsigned char* ptr = (unsigned char*) str;
- unsigned char* limit = ptr + len;
- jint hash = 0;
-
- for (; ptr < limit;)
- {
- int ch = UTF8_GET (ptr, limit);
- /* Updated specification from
- http://www.javasoft.com/docs/books/jls/clarify.html. */
- hash = (31 * hash) + ch;
- }
- return hash;
-}
-
-_Jv_Utf8Const *
-_Jv_makeUtf8Const (char* s, int len)
-{
- if (len < 0)
- len = strlen (s);
- Utf8Const* m = (Utf8Const*) _Jv_AllocBytes (sizeof(Utf8Const) + len + 1);
- if (! m)
- JvThrow (no_memory);
- memcpy (m->data, s, len);
- m->data[len] = 0;
- m->length = len;
- m->hash = hashUtf8String (s, len) & 0xFFFF;
- return (m);
-}
-
-_Jv_Utf8Const *
-_Jv_makeUtf8Const (jstring string)
-{
- jint hash = string->hashCode ();
- jint len = _Jv_GetStringUTFLength (string);
-
- Utf8Const* m = (Utf8Const*)
- _Jv_AllocBytesChecked (sizeof(Utf8Const) + len + 1);
-
- m->hash = hash;
- m->length = len;
-
- _Jv_GetStringUTFRegion (string, 0, string->length (), m->data);
- m->data[len] = 0;
-
- return m;
-}
-
-
-
-#ifdef DEBUG
-void
-_Jv_Abort (const char *function, const char *file, int line,
- const char *message)
-#else
-void
-_Jv_Abort (const char *, const char *, int, const char *message)
-#endif
-{
-#ifdef DEBUG
- fprintf (stderr,
- "libgcj failure: %s\n in function %s, file %s, line %d\n",
- message, function, file, line);
-#else
- java::io::PrintStream *err = java::lang::System::err;
- err->print(JvNewStringLatin1 ("libgcj failure: "));
- err->println(JvNewStringLatin1 (message));
- err->flush();
-#endif
- abort ();
-}
-
-static void
-fail_on_finalization (jobject)
-{
- JvFail ("object was finalized");
-}
-
-void
-_Jv_GCWatch (jobject obj)
-{
- _Jv_RegisterFinalizer (obj, fail_on_finalization);
-}
-
-void
-_Jv_ThrowBadArrayIndex(jint bad_index)
-{
- JvThrow (new java::lang::ArrayIndexOutOfBoundsException
- (java::lang::String::valueOf(bad_index)));
-}
-
-void
-_Jv_ThrowNullPointerException ()
-{
- throw new java::lang::NullPointerException ();
-}
-
-// Allocate some unscanned memory and throw an exception if no memory.
-void *
-_Jv_AllocBytesChecked (jsize size)
-{
- void *r = _Jv_AllocBytes (size);
- if (! r)
- _Jv_Throw (no_memory);
- return r;
-}
-
-// Allocate a new object of class C. SIZE is the size of the object
-// to allocate. You might think this is redundant, but it isn't; some
-// classes, such as String, aren't of fixed size.
-jobject
-_Jv_AllocObject (jclass c, jint size)
-{
- _Jv_InitClass (c);
-
- jobject obj = (jobject) _Jv_AllocObj (size);
- if (__builtin_expect (! obj, false))
- JvThrow (no_memory);
- *((_Jv_VTable **) obj) = c->vtable;
-
- // If this class has inherited finalize from Object, then don't
- // bother registering a finalizer. We know that finalize() is the
- // very first method after the dummy entry. If this turns out to be
- // unreliable, a more robust implementation can be written. Such an
- // implementation would look for Object.finalize in Object's method
- // table at startup, and then use that information to find the
- // appropriate index in the method vector.
- if (c->vtable->method[1] != ObjectClass.vtable->method[1])
- _Jv_RegisterFinalizer (obj, _Jv_FinalizeObject);
-
-#ifdef ENABLE_JVMPI
- // Service JVMPI request.
-
- if (__builtin_expect (_Jv_JVMPI_Notify_OBJECT_ALLOC != 0, false))
- {
- JVMPI_Event event;
-
- event.event_type = JVMPI_EVENT_OBJECT_ALLOC;
- event.env_id = NULL;
- event.u.obj_alloc.arena_id = 0;
- event.u.obj_alloc.class_id = (jobjectID) c;
- event.u.obj_alloc.is_array = 0;
- event.u.obj_alloc.size = size;
- event.u.obj_alloc.obj_id = (jobjectID) obj;
-
- _Jv_DisableGC ();
- (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (&event);
- _Jv_EnableGC ();
- }
-#endif
-
- return obj;
-}
-
-// Allocate a new array of Java objects. Each object is of type
-// `elementClass'. `init' is used to initialize each slot in the
-// array.
-jobjectArray
-_Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
-{
- if (__builtin_expect (count < 0, false))
- JvThrow (new java::lang::NegativeArraySizeException);
-
- JvAssert (! elementClass->isPrimitive ());
-
- jobjectArray obj = NULL;
- size_t size = (size_t) _Jv_GetArrayElementFromElementType (obj,
- elementClass);
-
- // Check for overflow.
- if (__builtin_expect ((size_t) count >
- (SIZE_T_MAX - size) / sizeof (jobject), false))
- JvThrow (no_memory);
-
- size += count * sizeof (jobject);
-
- // FIXME: second argument should be "current loader" //
- jclass clas = _Jv_FindArrayClass (elementClass, 0);
-
- obj = (jobjectArray) _Jv_AllocArray (size);
- if (__builtin_expect (! obj, false))
- JvThrow (no_memory);
- obj->length = count;
- jobject* ptr = elements(obj);
- // We know the allocator returns zeroed memory. So don't bother
- // zeroing it again.
- if (init)
- {
- while (--count >= 0)
- *ptr++ = init;
- }
- // Set the vtbl last to avoid problems if the GC happens during the
- // window in this function between the allocation and this
- // assignment.
- *((_Jv_VTable **) obj) = clas->vtable;
- return obj;
-}
-
-// Allocate a new array of primitives. ELTYPE is the type of the
-// element, COUNT is the size of the array.
-jobject
-_Jv_NewPrimArray (jclass eltype, jint count)
-{
- int elsize = eltype->size();
- if (__builtin_expect (count < 0, false))
- JvThrow (new java::lang::NegativeArraySizeException ());
-
- JvAssert (eltype->isPrimitive ());
- jobject dummy = NULL;
- size_t size = (size_t) _Jv_GetArrayElementFromElementType (dummy, eltype);
-
- // Check for overflow.
- if (__builtin_expect ((size_t) count >
- (SIZE_T_MAX - size) / elsize, false))
- JvThrow (no_memory);
-
- __JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count);
- if (__builtin_expect (! arr, false))
- JvThrow (no_memory);
- arr->length = count;
- // Note that we assume we are given zeroed memory by the allocator.
-
- jclass klass = _Jv_FindArrayClass (eltype, 0);
- // Set the vtbl last to avoid problems if the GC happens during the
- // window in this function between the allocation and this
- // assignment.
- *((_Jv_VTable **) arr) = klass->vtable;
- return arr;
-}
-
-jobject
-_Jv_NewArray (jint type, jint size)
-{
- switch (type)
- {
- case 4: return JvNewBooleanArray (size);
- case 5: return JvNewCharArray (size);
- case 6: return JvNewFloatArray (size);
- case 7: return JvNewDoubleArray (size);
- case 8: return JvNewByteArray (size);
- case 9: return JvNewShortArray (size);
- case 10: return JvNewIntArray (size);
- case 11: return JvNewLongArray (size);
- }
- JvFail ("newarray - bad type code");
- return NULL; // Placate compiler.
-}
-
-jobject
-_Jv_NewMultiArray (jclass type, jint dimensions, jint *sizes)
-{
- JvAssert (type->isArray());
- jclass element_type = type->getComponentType();
- jobject result;
- if (element_type->isPrimitive())
- result = _Jv_NewPrimArray (element_type, sizes[0]);
- else
- result = _Jv_NewObjectArray (sizes[0], element_type, NULL);
-
- if (dimensions > 1)
- {
- JvAssert (! element_type->isPrimitive());
- JvAssert (element_type->isArray());
- jobject *contents = elements ((jobjectArray) result);
- for (int i = 0; i < sizes[0]; ++i)
- contents[i] = _Jv_NewMultiArray (element_type, dimensions - 1,
- sizes + 1);
- }
-
- return result;
-}
-
-jobject
-_Jv_NewMultiArray (jclass array_type, jint dimensions, ...)
-{
- va_list args;
- jint sizes[dimensions];
- va_start (args, dimensions);
- for (int i = 0; i < dimensions; ++i)
- {
- jint size = va_arg (args, jint);
- sizes[i] = size;
- }
- va_end (args);
-
- return _Jv_NewMultiArray (array_type, dimensions, sizes);
-}
-
-
-
-class _Jv_PrimClass : public java::lang::Class
-{
-public:
- // FIXME: calling convention is weird. If we use the natural types
- // then the compiler will complain because they aren't Java types.
- _Jv_PrimClass (jobject cname, jbyte sig, jint len, jobject array_vtable)
- {
- using namespace java::lang::reflect;
-
- // We must initialize every field of the class. We do this in
- // the same order they are declared in Class.h.
- next = NULL;
- name = _Jv_makeUtf8Const ((char *) cname, -1);
- accflags = Modifier::PUBLIC | Modifier::FINAL;
- superclass = NULL;
- constants.size = 0;
- constants.tags = NULL;
- constants.data = NULL;
- methods = NULL;
- method_count = sig;
- vtable_method_count = 0;
- fields = NULL;
- size_in_bytes = len;
- field_count = 0;
- static_field_count = 0;
- vtable = JV_PRIMITIVE_VTABLE;
- interfaces = NULL;
- loader = NULL;
- interface_count = 0;
- state = JV_STATE_DONE;
- thread = NULL;
-
- // Note that we have to set `methods' to NULL.
- if (sig != 'V')
- _Jv_FindArrayClass (this, NULL, (_Jv_VTable *) array_vtable);
- }
-};
-
-// We use this to define both primitive classes and the vtables for
-// arrays of primitive classes. The latter are given names so that we
-// can refer to them from the compiler, allowing us to construct
-// arrays of primitives statically.
-#define DECLARE_PRIM_TYPE(NAME, SIG, LEN) \
- _Jv_ArrayVTable _Jv_##NAME##VTable; \
- _Jv_PrimClass _Jv_##NAME##Class((jobject) #NAME, (jbyte) SIG, (jint) LEN, \
- (jobject) &_Jv_##NAME##VTable)
-
-DECLARE_PRIM_TYPE(byte, 'B', 1);
-DECLARE_PRIM_TYPE(short, 'S', 2);
-DECLARE_PRIM_TYPE(int, 'I', 4);
-DECLARE_PRIM_TYPE(long, 'J', 8);
-DECLARE_PRIM_TYPE(boolean, 'Z', 1);
-DECLARE_PRIM_TYPE(char, 'C', 2);
-DECLARE_PRIM_TYPE(float, 'F', 4);
-DECLARE_PRIM_TYPE(double, 'D', 8);
-DECLARE_PRIM_TYPE(void, 'V', 0);
-
-jclass
-_Jv_FindClassFromSignature (char *sig, java::lang::ClassLoader *loader)
-{
- switch (*sig)
- {
- case 'B':
- return JvPrimClass (byte);
- case 'S':
- return JvPrimClass (short);
- case 'I':
- return JvPrimClass (int);
- case 'J':
- return JvPrimClass (long);
- case 'Z':
- return JvPrimClass (boolean);
- case 'C':
- return JvPrimClass (char);
- case 'F':
- return JvPrimClass (float);
- case 'D':
- return JvPrimClass (double);
- case 'V':
- return JvPrimClass (void);
- case 'L':
- {
- int i;
- for (i = 1; sig[i] && sig[i] != ';'; ++i)
- ;
- _Jv_Utf8Const *name = _Jv_makeUtf8Const (&sig[1], i - 1);
- return _Jv_FindClass (name, loader);
-
- }
- case '[':
- return _Jv_FindArrayClass (_Jv_FindClassFromSignature (&sig[1], loader),
- loader);
- }
- JvFail ("couldn't understand class signature");
- return NULL; // Placate compiler.
-}
-
-
-
-JArray<jstring> *
-JvConvertArgv (int argc, const char **argv)
-{
- if (argc < 0)
- argc = 0;
- jobjectArray ar = JvNewObjectArray(argc, &StringClass, NULL);
- jobject* ptr = elements(ar);
- for (int i = 0; i < argc; i++)
- {
- const char *arg = argv[i];
- // FIXME - should probably use JvNewStringUTF.
- *ptr++ = JvNewStringLatin1(arg, strlen(arg));
- }
- return (JArray<jstring>*) ar;
-}
-
-// FIXME: These variables are static so that they will be
-// automatically scanned by the Boehm collector. This is needed
-// because with qthreads the collector won't scan the initial stack --
-// it will only scan the qthreads stacks.
-
-// Command line arguments.
-static jobject arg_vec;
-
-// The primary thread.
-static java::lang::Thread *main_thread;
-
-char *
-_Jv_ThisExecutable (void)
-{
- return _Jv_execName;
-}
-
-void
-_Jv_ThisExecutable (const char *name)
-{
- if (name)
- {
- _Jv_execName = new char[strlen (name) + 1];
- strcpy (_Jv_execName, name);
- }
-}
-
-#ifdef USE_WIN32_SIGNALLING
-
-extern "C" int* win32_get_restart_frame (void *);
-
-LONG CALLBACK
-win32_exception_handler (LPEXCEPTION_POINTERS e)
-{
- int* setjmp_buf;
- if (e->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)
- setjmp_buf = win32_get_restart_frame (nullp);
- else if (e->ExceptionRecord->ExceptionCode == EXCEPTION_INT_DIVIDE_BY_ZERO)
- setjmp_buf = win32_get_restart_frame (arithexception);
- else
- return EXCEPTION_CONTINUE_SEARCH;
-
- e->ContextRecord->Ebp = setjmp_buf[0];
- // FIXME: Why does i386-signal.h increment the PC here, do we need to do it?
- e->ContextRecord->Eip = setjmp_buf[1];
- // FIXME: Is this the stack pointer? Do we need it?
- e->ContextRecord->Esp = setjmp_buf[2];
-
- return EXCEPTION_CONTINUE_EXECUTION;
-}
-
-#endif
-
-static void
-main_init ()
-{
- INIT_SEGV;
-#ifdef HANDLE_FPE
- INIT_FPE;
-#else
- arithexception = new java::lang::ArithmeticException
- (JvNewStringLatin1 ("/ by zero"));
-#endif
-
- no_memory = new java::lang::OutOfMemoryError;
-
-#ifdef USE_LTDL
- LTDL_SET_PRELOADED_SYMBOLS ();
-#endif
-
-#ifdef USE_WINSOCK
- // Initialise winsock for networking
- WSADATA data;
- if (WSAStartup (MAKEWORD (1, 1), &data))
- MessageBox (NULL, "Error initialising winsock library.", "Error", MB_OK | MB_ICONEXCLAMATION);
-#endif /* USE_WINSOCK */
-
-#ifdef USE_WIN32_SIGNALLING
- // Install exception handler
- SetUnhandledExceptionFilter (win32_exception_handler);
-#else
- // We only want this on POSIX systems.
- struct sigaction act;
- act.sa_handler = SIG_IGN;
- sigemptyset (&act.sa_mask);
- act.sa_flags = 0;
- sigaction (SIGPIPE, &act, NULL);
-#endif /* USE_WIN32_SIGNALLING */
-
- _Jv_JNI_Init ();
-}
-
-#ifndef DISABLE_GETENV_PROPERTIES
-
-static char *
-next_property_key (char *s, size_t *length)
-{
- size_t l = 0;
-
- JvAssert (s);
-
- // Skip over whitespace
- while (isspace (*s))
- s++;
-
- // If we've reached the end, return NULL. Also return NULL if for
- // some reason we've come across a malformed property string.
- if (*s == 0
- || *s == ':'
- || *s == '=')
- return NULL;
-
- // Determine the length of the property key.
- while (s[l] != 0
- && ! isspace (s[l])
- && s[l] != ':'
- && s[l] != '=')
- {
- if (s[l] == '\\'
- && s[l+1] != 0)
- l++;
- l++;
- }
-
- *length = l;
-
- return s;
-}
-
-static char *
-next_property_value (char *s, size_t *length)
-{
- size_t l = 0;
-
- JvAssert (s);
-
- while (isspace (*s))
- s++;
-
- if (*s == ':'
- || *s == '=')
- s++;
-
- while (isspace (*s))
- s++;
-
- // If we've reached the end, return NULL.
- if (*s == 0)
- return NULL;
-
- // Determine the length of the property value.
- while (s[l] != 0
- && ! isspace (s[l])
- && s[l] != ':'
- && s[l] != '=')
- {
- if (s[l] == '\\'
- && s[l+1] != 0)
- l += 2;
- else
- l++;
- }
-
- *length = l;
-
- return s;
-}
-
-static void
-process_gcj_properties ()
-{
- char *props = getenv("GCJ_PROPERTIES");
- char *p = props;
- size_t length;
- size_t property_count = 0;
-
- if (NULL == props)
- return;
-
- // Whip through props quickly in order to count the number of
- // property values.
- while (p && (p = next_property_key (p, &length)))
- {
- // Skip to the end of the key
- p += length;
-
- p = next_property_value (p, &length);
- if (p)
- p += length;
-
- property_count++;
- }
-
- // Allocate an array of property value/key pairs.
- _Jv_Environment_Properties =
- (property_pair *) malloc (sizeof(property_pair)
- * (property_count + 1));
-
- // Go through the properties again, initializing _Jv_Properties
- // along the way.
- p = props;
- property_count = 0;
- while (p && (p = next_property_key (p, &length)))
- {
- _Jv_Environment_Properties[property_count].key = p;
- _Jv_Environment_Properties[property_count].key_length = length;
-
- // Skip to the end of the key
- p += length;
-
- p = next_property_value (p, &length);
-
- _Jv_Environment_Properties[property_count].value = p;
- _Jv_Environment_Properties[property_count].value_length = length;
-
- if (p)
- p += length;
-
- property_count++;
- }
- memset ((void *) &_Jv_Environment_Properties[property_count],
- 0, sizeof (property_pair));
- {
- size_t i = 0;
-
- // Null terminate the strings.
- while (_Jv_Environment_Properties[i].key)
- {
- _Jv_Environment_Properties[i].key[_Jv_Environment_Properties[i].key_length] = 0;
- _Jv_Environment_Properties[i++].value[_Jv_Environment_Properties[i].value_length] = 0;
- }
- }
-}
-#endif // DISABLE_GETENV_PROPERTIES
-
-void
-JvRunMain (jclass klass, int argc, const char **argv)
-{
- PROCESS_GCJ_PROPERTIES;
-
- main_init ();
-#ifdef HAVE_PROC_SELF_EXE
- char exec_name[20];
- sprintf (exec_name, "/proc/%d/exe", getpid ());
- _Jv_ThisExecutable (exec_name);
-#else
- _Jv_ThisExecutable (argv[0]);
-#endif
-
- arg_vec = JvConvertArgv (argc - 1, argv + 1);
- main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec);
-
- main_thread->start();
- _Jv_ThreadWait ();
-
- int status = (int) java::lang::ThreadGroup::had_uncaught_exception;
-
- java::lang::Runtime::getRuntime ()->exit (status);
-}
-
-void
-_Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar)
-{
- jstring class_name;
- PROCESS_GCJ_PROPERTIES;
-
- main_init ();
-
-#ifdef HAVE_PROC_SELF_EXE
- char exec_name[20];
- sprintf (exec_name, "/proc/%d/exe", getpid ());
- _Jv_ThisExecutable (exec_name);
-#endif
-
- if (is_jar)
- {
- // name specifies a jar file. We must now extract the
- // Main-Class attribute from the jar's manifest file. This is
- // done by gnu.gcj.runtime.FirstThread.main.
- _Jv_Jar_Class_Path = strdup (name);
- arg_vec = JvConvertArgv (1, &_Jv_Jar_Class_Path);
-
- main_thread =
- new gnu::gcj::runtime::FirstThread (&_CL_Q43gnu3gcj7runtime11FirstThread,
- arg_vec);
- main_thread->start();
- _Jv_ThreadWait ();
-
- // FirstThread.main extracts the main class name and stores it
- // here.
- class_name = gnu::gcj::runtime::FirstThread::jarMainClassName;
-
- // We need a new ClassLoader because the classpath must be the
- // jar file only. The easiest way to do this is to lose our
- // reference to the previous classloader.
- java::lang::ClassLoader::system = NULL;
- }
- else
- class_name = JvNewStringLatin1 (name);
-
- arg_vec = JvConvertArgv (argc - 1, argv + 1);
-
- if (class_name)
- {
- main_thread = new gnu::gcj::runtime::FirstThread (class_name, arg_vec);
- main_thread->start();
- _Jv_ThreadWait ();
- }
-
- int status = (int) java::lang::ThreadGroup::had_uncaught_exception;
-
- java::lang::Runtime::getRuntime ()->exit (status);
-}
-
-
-
-// Parse a string and return a heap size.
-static size_t
-parse_heap_size (const char *spec)
-{
- char *end;
- unsigned long val = strtoul (spec, &end, 10);
- if (*end == 'k' || *end == 'K')
- val *= 1024;
- else if (*end == 'm' || *end == 'M')
- val *= 1048576;
- return (size_t) val;
-}
-
-// Set the initial heap size. This might be ignored by the GC layer.
-// This must be called before _Jv_RunMain.
-void
-_Jv_SetInitialHeapSize (const char *arg)
-{
- size_t size = parse_heap_size (arg);
- _Jv_GCSetInitialHeapSize (size);
-}
-
-// Set the maximum heap size. This might be ignored by the GC layer.
-// This must be called before _Jv_RunMain.
-void
-_Jv_SetMaximumHeapSize (const char *arg)
-{
- size_t size = parse_heap_size (arg);
- _Jv_GCSetMaximumHeapSize (size);
-}
-
-
-
-void *
-_Jv_Malloc (jsize size)
-{
- if (__builtin_expect (size == 0, false))
- size = 1;
- void *ptr = malloc ((size_t) size);
- if (__builtin_expect (ptr == NULL, false))
- JvThrow (no_memory);
- return ptr;
-}
-
-void *
-_Jv_Realloc (void *ptr, jsize size)
-{
- if (__builtin_expect (size == 0, false))
- size = 1;
- ptr = realloc (ptr, (size_t) size);
- if (__builtin_expect (ptr == NULL, false))
- JvThrow (no_memory);
- return ptr;
-}
-
-void *
-_Jv_MallocUnchecked (jsize size)
-{
- if (__builtin_expect (size == 0, false))
- size = 1;
- return malloc ((size_t) size);
-}
-
-void
-_Jv_Free (void* ptr)
-{
- return free (ptr);
-}
-
-
-
-// In theory, these routines can be #ifdef'd away on machines which
-// support divide overflow signals. However, we never know if some
-// code might have been compiled with "-fuse-divide-subroutine", so we
-// always include them in libgcj.
-
-jint
-_Jv_divI (jint dividend, jint divisor)
-{
- if (__builtin_expect (divisor == 0, false))
- _Jv_ThrowSignal (arithexception);
-
- if (dividend == (jint) 0x80000000L && divisor == -1)
- return dividend;
-
- return dividend / divisor;
-}
-
-jint
-_Jv_remI (jint dividend, jint divisor)
-{
- if (__builtin_expect (divisor == 0, false))
- _Jv_ThrowSignal (arithexception);
-
- if (dividend == (jint) 0x80000000L && divisor == -1)
- return 0;
-
- return dividend % divisor;
-}
-
-jlong
-_Jv_divJ (jlong dividend, jlong divisor)
-{
- if (__builtin_expect (divisor == 0, false))
- _Jv_ThrowSignal (arithexception);
-
- if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)
- return dividend;
-
- return dividend / divisor;
-}
-
-jlong
-_Jv_remJ (jlong dividend, jlong divisor)
-{
- if (__builtin_expect (divisor == 0, false))
- _Jv_ThrowSignal (arithexception);
-
- if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)
- return 0;
-
- return dividend % divisor;
-}
diff --git a/libjava/resolve.cc b/libjava/resolve.cc
deleted file mode 100644
index ab1fafb6c82..00000000000
--- a/libjava/resolve.cc
+++ /dev/null
@@ -1,1234 +0,0 @@
-// resolve.cc - Code for linking and resolving classes and pool entries.
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-#include <config.h>
-
-#include <java-interp.h>
-
-#include <jvm.h>
-#include <gcj/cni.h>
-#include <string.h>
-#include <java-cpool.h>
-#include <java/lang/Class.h>
-#include <java/lang/String.h>
-#include <java/lang/Thread.h>
-#include <java/lang/InternalError.h>
-#include <java/lang/VirtualMachineError.h>
-#include <java/lang/NoSuchFieldError.h>
-#include <java/lang/NoSuchMethodError.h>
-#include <java/lang/ClassFormatError.h>
-#include <java/lang/IllegalAccessError.h>
-#include <java/lang/AbstractMethodError.h>
-#include <java/lang/ClassNotFoundException.h>
-#include <java/lang/IncompatibleClassChangeError.h>
-#include <java/lang/reflect/Modifier.h>
-
-#ifdef INTERPRETER
-
-static void throw_internal_error (char *msg)
- __attribute__ ((__noreturn__));
-static void throw_class_format_error (jstring msg)
- __attribute__ ((__noreturn__));
-static void throw_class_format_error (char *msg)
- __attribute__ ((__noreturn__));
-
-#define ClassObject _CL_Q34java4lang6Object
-extern java::lang::Class ClassObject;
-#define ObjectClass _CL_Q34java4lang6Object
-extern java::lang::Class ObjectClass;
-
-
-static int get_alignment_from_class (jclass);
-
-static _Jv_ResolvedMethod*
-_Jv_BuildResolvedMethod (_Jv_Method*,
- jclass,
- jboolean,
- jint);
-
-
-// We need to know the name of a constructor.
-static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
-
-static void throw_incompatible_class_change_error (jstring msg)
-{
- JvThrow (new java::lang::IncompatibleClassChangeError (msg));
-}
-
-_Jv_word
-_Jv_ResolvePoolEntry (jclass klass, int index)
-{
- using namespace java::lang::reflect;
-
- _Jv_Constants *pool = &klass->constants;
-
- if ((pool->tags[index] & JV_CONSTANT_ResolvedFlag) != 0)
- return pool->data[index];
-
- switch (pool->tags[index]) {
- case JV_CONSTANT_Class:
- {
- _Jv_Utf8Const *name = pool->data[index].utf8;
-
- jclass found;
- if (name->data[0] == '[')
- found = _Jv_FindClassFromSignature (&name->data[0],
- klass->loader);
- else
- found = _Jv_FindClass (name, klass->loader);
-
- if (! found)
- {
- jstring str = _Jv_NewStringUTF (name->data);
- JvThrow (new java::lang::ClassNotFoundException (str));
- }
-
- if ((found->accflags & Modifier::PUBLIC) == Modifier::PUBLIC
- || (_Jv_ClassNameSamePackage (found->name,
- klass->name)))
- {
- pool->data[index].clazz = found;
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- else
- {
- JvThrow (new java::lang::IllegalAccessError (found->getName()));
- }
- }
- break;
-
- case JV_CONSTANT_String:
- {
- jstring str;
- str = _Jv_NewStringUtf8Const (pool->data[index].utf8);
- pool->data[index].o = str;
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- break;
-
-
- case JV_CONSTANT_Fieldref:
- {
- _Jv_ushort class_index, name_and_type_index;
- _Jv_loadIndexes (&pool->data[index],
- class_index,
- name_and_type_index);
- jclass owner = (_Jv_ResolvePoolEntry (klass, class_index)).clazz;
-
- if (owner != klass)
- _Jv_InitClass (owner);
-
- _Jv_ushort name_index, type_index;
- _Jv_loadIndexes (&pool->data[name_and_type_index],
- name_index,
- type_index);
-
- _Jv_Utf8Const *field_name = pool->data[name_index].utf8;
- _Jv_Utf8Const *field_type_name = pool->data[type_index].utf8;
-
- // FIXME: The implementation of this function
- // (_Jv_FindClassFromSignature) will generate an instance of
- // _Jv_Utf8Const for each call if the field type is a class name
- // (Lxx.yy.Z;). This may be too expensive to do for each and
- // every fieldref being resolved. For now, we fix the problem by
- // only doing it when we have a loader different from the class
- // declaring the field.
-
- jclass field_type = 0;
-
- if (owner->loader != klass->loader)
- field_type = _Jv_FindClassFromSignature (field_type_name->data,
- klass->loader);
-
- _Jv_Field* the_field = 0;
-
- for (jclass cls = owner; cls != 0; cls = cls->getSuperclass ())
- {
- for (int i = 0; i < cls->field_count; i++)
- {
- _Jv_Field *field = &cls->fields[i];
- if (! _Jv_equalUtf8Consts (field->name, field_name))
- continue;
-
- // now, check field access.
-
- if ( (cls == klass)
- || ((field->flags & Modifier::PUBLIC) != 0)
- || (((field->flags & Modifier::PROTECTED) != 0)
- && cls->isAssignableFrom (klass))
- || (((field->flags & Modifier::PRIVATE) == 0)
- && _Jv_ClassNameSamePackage (cls->name,
- klass->name)))
- {
- /* resove the field using the class' own loader
- if necessary */
-
- if (!field->isResolved ())
- _Jv_ResolveField (field, cls->loader);
-
- if (field_type != 0 && field->type != field_type)
- JvThrow
- (new java::lang::LinkageError
- (JvNewStringLatin1
- ("field type mismatch with different loaders")));
-
- the_field = field;
- goto end_of_field_search;
- }
- else
- {
- JvThrow (new java::lang::IllegalAccessError);
- }
- }
- }
-
- end_of_field_search:
- if (the_field == 0)
- {
- jstring msg = JvNewStringLatin1 ("field ");
- msg = msg->concat (owner->getName ());
- msg = msg->concat (JvNewStringLatin1("."));
- msg = msg->concat (_Jv_NewStringUTF (field_name->data));
- msg = msg->concat (JvNewStringLatin1(" was not found."));
- throw_incompatible_class_change_error (msg);
- }
-
- pool->data[index].field = the_field;
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- break;
-
- case JV_CONSTANT_Methodref:
- case JV_CONSTANT_InterfaceMethodref:
- {
- _Jv_ushort class_index, name_and_type_index;
- _Jv_loadIndexes (&pool->data[index],
- class_index,
- name_and_type_index);
- jclass owner = (_Jv_ResolvePoolEntry (klass, class_index)).clazz;
-
- if (owner != klass)
- _Jv_InitClass (owner);
-
- _Jv_ushort name_index, type_index;
- _Jv_loadIndexes (&pool->data[name_and_type_index],
- name_index,
- type_index);
-
- _Jv_Utf8Const *method_name = pool->data[name_index].utf8;
- _Jv_Utf8Const *method_signature = pool->data[type_index].utf8;
-
- int vtable_index = -1;
- _Jv_Method *the_method = 0;
- jclass found_class = 0;
-
- // First search the class itself.
- the_method = _Jv_SearchMethodInClass (owner, klass,
- method_name, method_signature);
-
- if (the_method != 0)
- {
- found_class = owner;
- goto end_of_method_search;
- }
-
- // If we are resolving an interface method, search the interface's
- // superinterfaces (A superinterface is not an interface's superclass -
- // a superinterface is implemented by the interface).
- if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref)
- {
- _Jv_ifaces ifaces;
- ifaces.count = 0;
- ifaces.len = 4;
- ifaces.list = (jclass *) _Jv_Malloc (ifaces.len * sizeof (jclass *));
-
- _Jv_GetInterfaces (owner, &ifaces);
-
- for (int i=0; i < ifaces.count; i++)
- {
- jclass cls = ifaces.list[i];
- the_method = _Jv_SearchMethodInClass (cls, klass, method_name,
- method_signature);
- if (the_method != 0)
- {
- found_class = cls;
- break;
- }
- }
-
- _Jv_Free (ifaces.list);
-
- if (the_method != 0)
- goto end_of_method_search;
- }
-
- // Finally, search superclasses.
- for (jclass cls = owner->getSuperclass (); cls != 0;
- cls = cls->getSuperclass ())
- {
- the_method = _Jv_SearchMethodInClass (cls, klass,
- method_name, method_signature);
- if (the_method != 0)
- {
- found_class = cls;
- break;
- }
- }
-
- end_of_method_search:
-
- // FIXME: if (cls->loader != klass->loader), then we
- // must actually check that the types of arguments
- // correspond. That is, for each argument type, and
- // the return type, doing _Jv_FindClassFromSignature
- // with either loader should produce the same result,
- // i.e., exactly the same jclass object. JVMS 5.4.3.3
-
- if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref)
- vtable_index = -1;
- else
- vtable_index = _Jv_DetermineVTableIndex
- (found_class, method_name, method_signature);
-
- if (vtable_index == 0)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("method not found"));
-
- if (the_method == 0)
- {
- jstring msg = JvNewStringLatin1 ("method ");
- msg = msg->concat (owner->getName ());
- msg = msg->concat (JvNewStringLatin1("."));
- msg = msg->concat (_Jv_NewStringUTF (method_name->data));
- msg = msg->concat (JvNewStringLatin1(" was not found."));
- JvThrow(new java::lang::NoSuchMethodError (msg));
- }
-
- pool->data[index].rmethod =
- _Jv_BuildResolvedMethod(the_method,
- found_class,
- (the_method->accflags & Modifier::STATIC) != 0,
- vtable_index);
- pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
- }
- break;
-
- }
-
- return pool->data[index];
-}
-
-// Find a method declared in the cls that is referenced from klass and
-// perform access checks.
-_Jv_Method *
-_Jv_SearchMethodInClass (jclass cls, jclass klass,
- _Jv_Utf8Const *method_name,
- _Jv_Utf8Const *method_signature)
-{
- using namespace java::lang::reflect;
-
- for (int i = 0; i < cls->method_count; i++)
- {
- _Jv_Method *method = &cls->methods[i];
- if ( (!_Jv_equalUtf8Consts (method->name,
- method_name))
- || (!_Jv_equalUtf8Consts (method->signature,
- method_signature)))
- continue;
-
- if (cls == klass
- || ((method->accflags & Modifier::PUBLIC) != 0)
- || (((method->accflags & Modifier::PROTECTED) != 0)
- && cls->isAssignableFrom (klass))
- || (((method->accflags & Modifier::PRIVATE) == 0)
- && _Jv_ClassNameSamePackage (cls->name,
- klass->name)))
- {
- return method;
- }
- else
- {
- JvThrow (new java::lang::IllegalAccessError);
- }
- }
- return 0;
-}
-
-void
-_Jv_ResolveField (_Jv_Field *field, java::lang::ClassLoader *loader)
-{
- if (! field->isResolved ())
- {
- _Jv_Utf8Const *sig = (_Jv_Utf8Const*)field->type;
- field->type = _Jv_FindClassFromSignature (sig->data, loader);
- field->flags &= ~_Jv_FIELD_UNRESOLVED_FLAG;
- }
-}
-
-/** FIXME: this is a terribly inefficient algorithm! It would improve
- things if compiled classes to know vtable offset, and _Jv_Method had
- a field for this.
-
- Returns 0 if this class does not declare the given method.
- Returns -1 if the given method does not appear in the vtable.
- i.e., it is static, private, final or a constructor.
- Otherwise, returns the vtable index. */
-int
-_Jv_DetermineVTableIndex (jclass klass,
- _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
-{
- using namespace java::lang::reflect;
-
- jclass super_class = klass->getSuperclass ();
-
- if (super_class != NULL)
- {
- int prev = _Jv_DetermineVTableIndex (super_class,
- name,
- signature);
- if (prev != 0)
- return prev;
- }
-
- /* at this point, we know that the super-class does not declare
- * the method. Otherwise, the above call would have found it, and
- * determined the result of this function (-1 or some positive
- * number).
- */
-
- _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
-
- /* now, if we do not declare this method, return zero */
- if (meth == NULL)
- return 0;
-
- /* so now, we know not only that the super class does not declare the
- * method, but we do! So, this is a first declaration of the method. */
-
- /* now, the checks for things that are declared in this class, but do
- * not go into the vtable. There are three cases.
- * 1) the method is static, private or final
- * 2) the class itself is final, or
- * 3) it is the method <init>
- */
-
- if ((meth->accflags & (Modifier::STATIC
- | Modifier::PRIVATE
- | Modifier::FINAL)) != 0
- || (klass->accflags & Modifier::FINAL) != 0
- || _Jv_equalUtf8Consts (name, init_name))
- return -1;
-
- /* reaching this point, we know for sure, that the method in question
- * will be in the vtable. The question is where. */
-
- /* the base offset, is where we will start assigning vtable
- * indexes for this class. It is 1 for base classes
- * (vtable->method[0] is unused), and for non-base classes it is the
- * number of entries in the super class' vtable plus 1. */
-
- int base_offset;
- if (super_class == 0)
- base_offset = 1;
- else
- base_offset = super_class->vtable_method_count+1;
-
- /* we will consider methods 0..this_method_index-1. And for each one,
- * determine if it is new (i.e., if it appears in the super class),
- * and if it should go in the vtable. If so, increment base_offset */
-
- int this_method_index = meth - (&klass->methods[0]);
-
- for (int i = 0; i < this_method_index; i++)
- {
- _Jv_Method *m = &klass->methods[i];
-
- /* fist some checks for things that surely do not go in the
- * vtable */
-
- if ((m->accflags & (Modifier::STATIC | Modifier::PRIVATE)) != 0)
- continue;
- if (_Jv_equalUtf8Consts (m->name, init_name))
- continue;
-
- /* Then, we need to know if this method appears in the
- superclass. (This is where this function gets expensive) */
- _Jv_Method *sm = _Jv_LookupDeclaredMethod (super_class,
- m->name,
- m->signature);
-
- /* if it was somehow declared in the superclass, skip this */
- if (sm != NULL)
- continue;
-
- /* but if it is final, and not declared in the super class,
- * then we also skip it */
- if ((m->accflags & Modifier::FINAL) != 0)
- continue;
-
- /* finally, we can assign the index of this method */
- /* m->vtable_index = base_offset */
- base_offset += 1;
- }
-
- return base_offset;
-}
-
-/* this is installed in place of abstract methods */
-static void
-_Jv_abstractMethodError ()
-{
- JvThrow (new java::lang::AbstractMethodError);
-}
-
-void
-_Jv_PrepareClass(jclass klass)
-{
- using namespace java::lang::reflect;
-
- /*
- * The job of this function is to: 1) assign storage to fields, and 2)
- * build the vtable. static fields are assigned real memory, instance
- * fields are assigned offsets.
- *
- * NOTE: we have a contract with the garbage collector here. Static
- * reference fields must not be resolved, until after they have storage
- * assigned which is the check used by the collector to see if it
- * should indirect the static field reference and mark the object
- * pointed to.
- *
- * Most fields are resolved lazily (i.e. have their class-type
- * assigned) when they are accessed the first time by calling as part
- * of _Jv_ResolveField, which is allways called after _Jv_PrepareClass.
- * Static fields with initializers are resolved as part of this
- * function, as are fields with primitive types.
- */
-
- if (! _Jv_IsInterpretedClass (klass))
- return;
-
- if (klass->state >= JV_STATE_PREPARED)
- return;
-
- // make sure super-class is linked. This involves taking a lock on
- // the super class, so we use the Java method resolveClass, which will
- // unlock it properly, should an exception happen.
-
- java::lang::ClassLoader::resolveClass0 (klass->superclass);
-
- _Jv_InterpClass *clz = (_Jv_InterpClass*)klass;
-
- /************ PART ONE: OBJECT LAYOUT ***************/
-
- int instance_size;
- int static_size;
-
- // java.lang.Object is never interpreted!
- instance_size = clz->superclass->size ();
- static_size = 0;
-
- for (int i = 0; i < clz->field_count; i++)
- {
- int field_size;
- int field_align;
-
- _Jv_Field *field = &clz->fields[i];
-
- if (! field->isRef ())
- {
- // it's safe to resolve the field here, since it's
- // a primitive class, which does not cause loading to happen.
- _Jv_ResolveField (field, clz->loader);
-
- field_size = field->type->size ();
- field_align = get_alignment_from_class (field->type);
- }
- else
- {
- field_size = sizeof (jobject);
- field_align = __alignof__ (jobject);
- }
-
-#ifndef COMPACT_FIELDS
- field->bsize = field_size;
-#endif
-
- if (field->flags & Modifier::STATIC)
- {
- /* this computes an offset into a region we'll allocate
- shortly, and then add this offset to the start address */
-
- static_size = ROUND (static_size, field_align);
- field->u.boffset = static_size;
- static_size += field_size;
- }
- else
- {
- instance_size = ROUND (instance_size, field_align);
- field->u.boffset = instance_size;
- instance_size += field_size;
- }
- }
-
- // set the instance size for the class
- clz->size_in_bytes = instance_size;
-
- // allocate static memory
- if (static_size != 0)
- {
- char *static_data = (char*)_Jv_AllocBytesChecked (static_size);
-
- memset (static_data, 0, static_size);
-
- for (int i = 0; i < clz->field_count; i++)
- {
- _Jv_Field *field = &clz->fields[i];
-
- if ((field->flags & Modifier::STATIC) != 0)
- {
- field->u.addr = static_data + field->u.boffset;
-
- if (clz->field_initializers[i] != 0)
- {
- _Jv_ResolveField (field, clz->loader);
- _Jv_InitField (0, clz, i);
- }
- }
- }
-
- // now we don't need the field_initializers anymore, so let the
- // collector get rid of it!
-
- clz->field_initializers = 0;
- }
-
- /************ PART TWO: VTABLE LAYOUT ***************/
-
- /* preparation: build the vtable stubs (even interfaces can)
- have code -- for static constructors. */
- for (int i = 0; i < clz->method_count; i++)
- {
- _Jv_MethodBase *imeth = clz->interpreted_methods[i];
-
- if ((clz->methods[i].accflags & Modifier::NATIVE) != 0)
- {
- // You might think we could use a virtual `ncode' method in
- // the _Jv_MethodBase and unify the native and non-native
- // cases. Well, we can't, because we don't allocate these
- // objects using `new', and thus they don't get a vtable.
- _Jv_JNIMethod *jnim = reinterpret_cast<_Jv_JNIMethod *> (imeth);
- clz->methods[i].ncode = jnim->ncode ();
- }
- else if (imeth != 0) // it could be abstract
- {
- _Jv_InterpMethod *im = reinterpret_cast<_Jv_InterpMethod *> (imeth);
- clz->methods[i].ncode = im->ncode ();
- }
- }
-
- if (clz->accflags & Modifier::INTERFACE)
- {
- clz->state = JV_STATE_PREPARED;
- clz->notifyAll ();
- return;
- }
-
- /* Now onto the actual job: vtable layout. First, count how many new
- methods we have */
- int new_method_count = 0;
-
- jclass super_class = clz->getSuperclass ();
-
- if (super_class == 0)
- throw_internal_error ("cannot handle interpreted base classes");
-
- for (int i = 0; i < clz->method_count; i++)
- {
- _Jv_Method *this_meth = &clz->methods[i];
-
- if ((this_meth->accflags & (Modifier::STATIC | Modifier::PRIVATE)) != 0
- || _Jv_equalUtf8Consts (this_meth->name, init_name))
- {
- /* skip this, it doesn't go in the vtable */
- continue;
- }
-
- _Jv_Method *orig_meth = _Jv_LookupDeclaredMethod (super_class,
- this_meth->name,
- this_meth->signature);
-
- if (orig_meth == 0)
- {
- // new methods that are final, also don't go in the vtable
- if ((this_meth->accflags & Modifier::FINAL) != 0)
- continue;
-
- new_method_count += 1;
- continue;
- }
-
- if ((orig_meth->accflags & (Modifier::STATIC
- | Modifier::PRIVATE
- | Modifier::FINAL)) != 0
- || ((orig_meth->accflags & Modifier::ABSTRACT) == 0
- && (this_meth->accflags & Modifier::ABSTRACT) != 0
- && (klass->accflags & Modifier::ABSTRACT) == 0))
- {
- clz->state = JV_STATE_ERROR;
- clz->notifyAll ();
- JvThrow (new java::lang::IncompatibleClassChangeError
- (clz->getName ()));
- }
-
- /* FIXME: At this point, if (loader != super_class->loader), we
- * need to "impose class loader constraints" for the types
- * involved in the signature of this method */
- }
-
- /* determine size */
- int vtable_count = (super_class->vtable_method_count) + new_method_count;
- clz->vtable_method_count = vtable_count;
-
- /* allocate vtable structure */
- _Jv_VTable *vtable = (_Jv_VTable*)
- _Jv_AllocBytesChecked (sizeof (_Jv_VTable)
- + (sizeof (void*) * (vtable_count)));
- vtable->clas = clz;
-
- {
- jclass effective_superclass = super_class;
-
- /* If super_class is abstract or an interface it has no vtable.
- We need to find a real one... */
- while (effective_superclass && effective_superclass->vtable == NULL)
- effective_superclass = effective_superclass->superclass;
-
- /* copy super class' vtable entries (index 0 goes unused). */
- if (effective_superclass && effective_superclass->vtable)
- memcpy ((void*)&vtable->method[1],
- (void*)&effective_superclass->vtable->method[1],
- sizeof (void*) * effective_superclass->vtable_method_count);
- }
-
- /* now, install our own vtable entries, reprise... */
- for (int i = 0; i < clz->method_count; i++)
- {
- _Jv_Method *this_meth = &clz->methods[i];
-
- int index = _Jv_DetermineVTableIndex (clz,
- this_meth->name,
- this_meth->signature);
-
- if (index == 0)
- throw_internal_error ("method now found in own class");
-
- if (index != -1)
- {
- if (index > clz->vtable_method_count+1)
- throw_internal_error ("vtable problem...");
-
- if (clz->interpreted_methods[i] == 0)
- vtable->method[index] = (void*)&_Jv_abstractMethodError;
- else
- vtable->method[index] = this_meth->ncode;
- }
- }
-
- /* finally, assign the vtable! */
- clz->vtable = vtable;
-
- /* wooha! we're done. */
- clz->state = JV_STATE_PREPARED;
- clz->notifyAll ();
-}
-
-/** Do static initialization for fields with a constant initializer */
-void
-_Jv_InitField (jobject obj, jclass klass, int index)
-{
- using namespace java::lang::reflect;
-
- if (obj != 0 && klass == 0)
- klass = obj->getClass ();
-
- if (!_Jv_IsInterpretedClass (klass))
- return;
-
- _Jv_InterpClass *clz = (_Jv_InterpClass*)klass;
-
- _Jv_Field * field = (&clz->fields[0]) + index;
-
- if (index > clz->field_count)
- throw_internal_error ("field out of range");
-
- int init = clz->field_initializers[index];
- if (init == 0)
- return;
-
- _Jv_Constants *pool = &clz->constants;
- int tag = pool->tags[init];
-
- if (! field->isResolved ())
- throw_internal_error ("initializing unresolved field");
-
- if (obj==0 && ((field->flags & Modifier::STATIC) == 0))
- throw_internal_error ("initializing non-static field with no object");
-
- void *addr = 0;
-
- if ((field->flags & Modifier::STATIC) != 0)
- addr = (void*) field->u.addr;
- else
- addr = (void*) (((char*)obj) + field->u.boffset);
-
- switch (tag)
- {
- case JV_CONSTANT_String:
- {
- _Jv_MonitorEnter (clz);
- jstring str;
- str = _Jv_NewStringUtf8Const (pool->data[init].utf8);
- pool->data[init].string = str;
- pool->tags[init] = JV_CONSTANT_ResolvedString;
- _Jv_MonitorExit (clz);
- }
- /* fall through */
-
- case JV_CONSTANT_ResolvedString:
- if (! (field->type == &StringClass || field->type == &ObjectClass))
- throw_class_format_error ("string initialiser to non-string field");
-
- *(jstring*)addr = pool->data[init].string;
- break;
-
- case JV_CONSTANT_Integer:
- {
- int value = pool->data[init].i;
-
- if (field->type == JvPrimClass (boolean))
- *(jboolean*)addr = (jboolean)value;
-
- else if (field->type == JvPrimClass (byte))
- *(jbyte*)addr = (jbyte)value;
-
- else if (field->type == JvPrimClass (char))
- *(jchar*)addr = (jchar)value;
-
- else if (field->type == JvPrimClass (short))
- *(jshort*)addr = (jshort)value;
-
- else if (field->type == JvPrimClass (int))
- *(jint*)addr = (jint)value;
-
- else
- throw_class_format_error ("erroneous field initializer");
- }
- break;
-
- case JV_CONSTANT_Long:
- if (field->type != JvPrimClass (long))
- throw_class_format_error ("erroneous field initializer");
-
- *(jlong*)addr = _Jv_loadLong (&pool->data[init]);
- break;
-
- case JV_CONSTANT_Float:
- if (field->type != JvPrimClass (float))
- throw_class_format_error ("erroneous field initializer");
-
- *(jfloat*)addr = pool->data[init].f;
- break;
-
- case JV_CONSTANT_Double:
- if (field->type != JvPrimClass (double))
- throw_class_format_error ("erroneous field initializer");
-
- *(jdouble*)addr = _Jv_loadDouble (&pool->data[init]);
- break;
-
- default:
- throw_class_format_error ("erroneous field initializer");
- }
-}
-
-static int
-get_alignment_from_class (jclass klass)
-{
- if (klass == JvPrimClass (byte))
- return __alignof__ (jbyte);
- else if (klass == JvPrimClass (short))
- return __alignof__ (jshort);
- else if (klass == JvPrimClass (int))
- return __alignof__ (jint);
- else if (klass == JvPrimClass (long))
- return __alignof__ (jlong);
- else if (klass == JvPrimClass (boolean))
- return __alignof__ (jboolean);
- else if (klass == JvPrimClass (char))
- return __alignof__ (jchar);
- else if (klass == JvPrimClass (float))
- return __alignof__ (jfloat);
- else if (klass == JvPrimClass (double))
- return __alignof__ (jdouble);
- else
- return __alignof__ (jobject);
-}
-
-
-inline static unsigned char*
-skip_one_type (unsigned char* ptr)
-{
- int ch = *ptr++;
-
- while (ch == '[')
- {
- ch = *ptr++;
- }
-
- if (ch == 'L')
- {
- do { ch = *ptr++; } while (ch != ';');
- }
-
- return ptr;
-}
-
-static ffi_type*
-get_ffi_type_from_signature (unsigned char* ptr)
-{
- switch (*ptr)
- {
- case 'L':
- case '[':
- return &ffi_type_pointer;
- break;
-
- case 'Z':
- // On some platforms a bool is a byte, on others an int.
- if (sizeof (jboolean) == sizeof (jbyte))
- return &ffi_type_sint8;
- else
- {
- JvAssert (sizeof (jbyte) == sizeof (jint));
- return &ffi_type_sint32;
- }
- break;
-
- case 'B':
- return &ffi_type_sint8;
- break;
-
- case 'C':
- return &ffi_type_uint16;
- break;
-
- case 'S':
- return &ffi_type_sint16;
- break;
-
- case 'I':
- return &ffi_type_sint32;
- break;
-
- case 'J':
- return &ffi_type_sint64;
- break;
-
- case 'F':
- return &ffi_type_float;
- break;
-
- case 'D':
- return &ffi_type_double;
- break;
-
- case 'V':
- return &ffi_type_void;
- break;
- }
-
- throw_internal_error ("unknown type in signature");
-}
-
-/* this function yields the number of actual arguments, that is, if the
- * function is non-static, then one is added to the number of elements
- * found in the signature */
-
-static int
-count_arguments (_Jv_Utf8Const *signature,
- jboolean staticp)
-{
- unsigned char *ptr = (unsigned char*) signature->data;
- int arg_count = staticp ? 0 : 1;
-
- /* first, count number of arguments */
-
- // skip '('
- ptr++;
-
- // count args
- while (*ptr != ')')
- {
- ptr = skip_one_type (ptr);
- arg_count += 1;
- }
-
- return arg_count;
-}
-
-/* This beast will build a cif, given the signature. Memory for
- * the cif itself and for the argument types must be allocated by the
- * caller.
- */
-
-static int
-init_cif (_Jv_Utf8Const* signature,
- int arg_count,
- jboolean staticp,
- ffi_cif *cif,
- ffi_type **arg_types,
- ffi_type **rtype_p)
-{
- unsigned char *ptr = (unsigned char*) signature->data;
-
- int arg_index = 0; // arg number
- int item_count = 0; // stack-item count
-
- // setup receiver
- if (!staticp)
- {
- arg_types[arg_index++] = &ffi_type_pointer;
- item_count += 1;
- }
-
- // skip '('
- ptr++;
-
- // assign arg types
- while (*ptr != ')')
- {
- arg_types[arg_index++] = get_ffi_type_from_signature (ptr);
-
- if (*ptr == 'J' || *ptr == 'D')
- item_count += 2;
- else
- item_count += 1;
-
- ptr = skip_one_type (ptr);
- }
-
- // skip ')'
- ptr++;
- ffi_type *rtype = get_ffi_type_from_signature (ptr);
-
- ptr = skip_one_type (ptr);
- if (ptr != (unsigned char*)signature->data + signature->length)
- throw_internal_error ("did not find end of signature");
-
- if (ffi_prep_cif (cif, FFI_DEFAULT_ABI,
- arg_count, rtype, arg_types) != FFI_OK)
- throw_internal_error ("ffi_prep_cif failed");
-
- if (rtype_p != NULL)
- *rtype_p = rtype;
-
- return item_count;
-}
-
-#if FFI_NATIVE_RAW_API
-# define FFI_PREP_RAW_CLOSURE ffi_prep_raw_closure
-# define FFI_RAW_SIZE ffi_raw_size
-#else
-# define FFI_PREP_RAW_CLOSURE ffi_prep_java_raw_closure
-# define FFI_RAW_SIZE ffi_java_raw_size
-#endif
-
-/* we put this one here, and not in interpret.cc because it
- * calls the utility routines count_arguments
- * which are static to this module. The following struct defines the
- * layout we use for the stubs, it's only used in the ncode method. */
-
-typedef struct {
- ffi_raw_closure closure;
- ffi_cif cif;
- ffi_type *arg_types[0];
-} ncode_closure;
-
-typedef void (*ffi_closure_fun) (ffi_cif*,void*,ffi_raw*,void*);
-
-void *
-_Jv_InterpMethod::ncode ()
-{
- using namespace java::lang::reflect;
-
- if (self->ncode != 0)
- return self->ncode;
-
- jboolean staticp = (self->accflags & Modifier::STATIC) != 0;
- int arg_count = count_arguments (self->signature, staticp);
-
- ncode_closure *closure =
- (ncode_closure*)_Jv_AllocBytesChecked (sizeof (ncode_closure)
- + arg_count * sizeof (ffi_type*));
-
- init_cif (self->signature,
- arg_count,
- staticp,
- &closure->cif,
- &closure->arg_types[0],
- NULL);
-
- ffi_closure_fun fun;
-
- args_raw_size = FFI_RAW_SIZE (&closure->cif);
-
- JvAssert ((self->accflags & Modifier::NATIVE) == 0);
-
- if ((self->accflags & Modifier::SYNCHRONIZED) != 0)
- {
- if (staticp)
- fun = (ffi_closure_fun)&_Jv_InterpMethod::run_synch_class;
- else
- fun = (ffi_closure_fun)&_Jv_InterpMethod::run_synch_object;
- }
- else
- {
- fun = (ffi_closure_fun)&_Jv_InterpMethod::run_normal;
- }
-
- FFI_PREP_RAW_CLOSURE (&closure->closure,
- &closure->cif,
- fun,
- (void*)this);
-
- self->ncode = (void*)closure;
- return self->ncode;
-}
-
-
-void *
-_Jv_JNIMethod::ncode ()
-{
- using namespace java::lang::reflect;
-
- if (self->ncode != 0)
- return self->ncode;
-
- jboolean staticp = (self->accflags & Modifier::STATIC) != 0;
- int arg_count = count_arguments (self->signature, staticp);
-
- ncode_closure *closure =
- (ncode_closure*)_Jv_AllocBytesChecked (sizeof (ncode_closure)
- + arg_count * sizeof (ffi_type*));
-
- ffi_type *rtype;
- init_cif (self->signature,
- arg_count,
- staticp,
- &closure->cif,
- &closure->arg_types[0],
- &rtype);
-
- ffi_closure_fun fun;
-
- args_raw_size = FFI_RAW_SIZE (&closure->cif);
-
- // Initialize the argument types and CIF that represent the actual
- // underlying JNI function.
- int extra_args = 1;
- if ((self->accflags & Modifier::STATIC))
- ++extra_args;
- jni_arg_types = (ffi_type **) _Jv_Malloc ((extra_args + arg_count)
- * sizeof (ffi_type *));
- int offset = 0;
- jni_arg_types[offset++] = &ffi_type_pointer;
- if ((self->accflags & Modifier::STATIC))
- jni_arg_types[offset++] = &ffi_type_pointer;
- memcpy (&jni_arg_types[offset], &closure->arg_types[0],
- arg_count * sizeof (ffi_type *));
-
- if (ffi_prep_cif (&jni_cif, FFI_DEFAULT_ABI,
- extra_args + arg_count, rtype,
- jni_arg_types) != FFI_OK)
- throw_internal_error ("ffi_prep_cif failed for JNI function");
-
- JvAssert ((self->accflags & Modifier::NATIVE) != 0);
-
- // FIXME: for now we assume that all native methods for
- // interpreted code use JNI.
- fun = (ffi_closure_fun) &_Jv_JNIMethod::call;
-
- FFI_PREP_RAW_CLOSURE (&closure->closure,
- &closure->cif,
- fun,
- (void*) this);
-
- self->ncode = (void *) closure;
- return self->ncode;
-}
-
-
-/* A _Jv_ResolvedMethod is what is put in the constant pool for a
- * MethodRef or InterfacemethodRef. */
-static _Jv_ResolvedMethod*
-_Jv_BuildResolvedMethod (_Jv_Method* method,
- jclass klass,
- jboolean staticp,
- jint vtable_index)
-{
- int arg_count = count_arguments (method->signature, staticp);
-
- _Jv_ResolvedMethod* result = (_Jv_ResolvedMethod*)
- _Jv_AllocBytesChecked (sizeof (_Jv_ResolvedMethod)
- + arg_count*sizeof (ffi_type*));
-
- result->stack_item_count
- = init_cif (method->signature,
- arg_count,
- staticp,
- &result->cif,
- &result->arg_types[0],
- NULL);
-
- result->vtable_index = vtable_index;
- result->method = method;
- result->klass = klass;
-
- return result;
-}
-
-
-static void
-throw_class_format_error (jstring msg)
-{
- if (msg == 0)
- JvThrow (new java::lang::ClassFormatError);
- else
- JvThrow (new java::lang::ClassFormatError (msg));
-}
-
-static void
-throw_class_format_error (char *msg)
-{
- throw_class_format_error (JvNewStringLatin1 (msg));
-}
-
-static void
-throw_internal_error (char *msg)
-{
- JvThrow
- (new java::lang::InternalError (JvNewStringLatin1 (msg)));
-}
-
-
-#endif /* INTERPRETER */
diff --git a/libjava/scripts/MakeDefaultMimeTypes.java b/libjava/scripts/MakeDefaultMimeTypes.java
deleted file mode 100644
index 49b67d675bd..00000000000
--- a/libjava/scripts/MakeDefaultMimeTypes.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-import gnu.gcj.io.MimeTypes;
-import java.io.IOException;
-import java.io.FileNotFoundException;
-import java.util.Hashtable;
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-
-public class MakeDefaultMimeTypes
-{
- private static void fatal (String message)
- {
- System.err.println ("MakeDefaultMimeTypes Error: " + message);
- System.exit (-1);
- }
-
- public static void main (String[] args)
- {
- Hashtable mime_table = new Hashtable ();
-
- if (args.length != 1)
- fatal ("missing mime type filename");
-
- try {
- MimeTypes.fillFromFile (mime_table, args[0]);
- } catch (FileNotFoundException ex) {
- fatal ("can't open " + args[0]);
- } catch (IOException ex) {
- fatal ("error reading " + args[0]);
- }
-
- System.out.println ("// Do not edit this file! Create a new version with MakeDefaultMimeTypes.\
-\
-/* Copyright (C) 2000 Free Software Foundation\
-\
- This file is part of libgcj.\
-\
-This software is copyrighted work licensed under the terms of the\
-Libgcj License. Please consult the file \"LIBGCJ_LICENSE\" for\
-details. */\
-\
-package gnu.gcj.io; \
-\
-public class DefaultMimeTypes\
-{\
- public static final String[] types = {");
-
- Enumeration keys = mime_table.keys();
- Enumeration values = mime_table.elements();
-
- // Prepend first element with open bracket
- StringBuffer result = new StringBuffer("");
-
- try
- {
- result.append(" \""
- + keys.nextElement().toString()
- + "\",\t\""
- + values.nextElement().toString()
- + "\"\n");
- }
- catch (NoSuchElementException ex)
- {
- }
-
- // Prepend subsequent elements with ", "
- try
- {
- while (true)
- result.append(" , \""
- + keys.nextElement().toString()
- + "\",\t\""
- + values.nextElement().toString()
- + "\"\n");
- }
- catch (NoSuchElementException ex)
- {
- }
-
- // Append last element with closing bracket
- result.append(" };\
-}\
-");
- System.out.println(result);
- }
-}
diff --git a/libjava/scripts/classes.pl b/libjava/scripts/classes.pl
deleted file mode 100644
index 9523823a313..00000000000
--- a/libjava/scripts/classes.pl
+++ /dev/null
@@ -1,119 +0,0 @@
-# classes.pl - A perl program to generate most of the contents of
-# javaprims.h automatically.
-
-# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
-#
-# This file is part of libjava.
-#
-# This software is copyrighted work licensed under the terms of the
-# Libjava License. Please consult the file "LIBJAVA_LICENSE" for
-# details.
-
-# Usage: cd <top-srcdir> ; perl classes.pl.
-# Can also be run from the `include' directory; this lets us
-# more easily insert the output into javaprims.h (which is where it goes).
-
-use DirHandle;
-
-if (-d 'java')
-{
- # Ok here.
-}
-elsif (-d '../java')
-{
- chdir ('..');
-}
-else
-{
- die "couldn't find java directory\n";
-}
-
-&scan ('java', 2);
-
-exit 0;
-
-sub scan
-{
- local ($dir, $indent) = @_;
- local (@subdirs) = ();
- local (%classes) = ();
-
- local ($d) = new DirHandle $dir;
- local (*JFILE);
- local ($name);
- if (defined $d)
- {
- while (defined ($name = $d->read))
- {
- next if $name eq 'CVS';
- next if $name eq '.';
- next if $name eq '..';
- if ($dir eq 'java'
- && $name ne 'lang'
- && $name ne 'util'
- && $name ne 'io')
- {
- # We only generate decls for java.lang, java.io, and
- # java.util.
- next;
- }
- if (-d ($dir . '/' . $name))
- {
- push (@subdirs, $name);
- next;
- }
- next unless $name =~ /\.java$/;
-
- open (FILE, "< $dir/$name");
- local ($outer, $classname);
- while (<FILE>)
- {
- # NOTE: we don't skip `/*' comments.
- s,//.*$,,;
- # For now assume that class names start with upper
- # case letter.
- next unless /\b(class|interface) ([A-Z][A-Za-z0-9]+)/;
- $classname = $2;
-
- # We assume the code is properly indented, so that we
- # can print inner classes properly.
- if (/^\s/)
- {
- die "no outer class for $classname in $dir/$name"
- unless $outer;
- $classes{$outer . "\$" . $classname} = 1;
- }
- else
- {
- $classes{$classname} = 1;
- $outer = $classname;
- }
- }
- close (FILE);
- }
-
- undef $d;
- }
-
- local ($spaces) = ' ' x $indent;
- local ($classname);
- ($classname = $dir) =~ s/^.*\///;
- print $spaces, "namespace ", $classname, "\n";
- print $spaces, "{\n";
-
- foreach (sort keys %classes)
- {
- print $spaces, " class ", $_, ";\n";
- }
- print "\n" if scalar @classes > 0 && scalar @subdirs > 0;
-
- local ($first) = 1;
- foreach (sort @subdirs)
- {
- print "\n" unless $first;
- $first = 0;
- &scan ("$dir/$_", $indent + 2);
- }
-
- print $spaces, "};\n";
-}
diff --git a/libjava/scripts/encodings.pl b/libjava/scripts/encodings.pl
deleted file mode 100644
index f2f649959ce..00000000000
--- a/libjava/scripts/encodings.pl
+++ /dev/null
@@ -1,62 +0,0 @@
-# encodings.pl - Download IANA text and compute alias list.
-# Assumes you are running this program from gnu/gcj/convert/.
-# Output suitable for direct inclusion in IOConverter.java.
-
-# Map IANA canonical names onto our canonical names.
-%map = (
- 'ISO_8859-1:1987' => '8859_1',
- 'UTF-8' => 'UTF8',
- 'Shift_JIS' => 'SJIS',
- 'Extended_UNIX_Code_Packed_Format_for_Japanese' => 'EUCJIS'
- );
-
-if ($ARGV[0] eq '')
-{
- $file = 'character-sets';
- if (! -f $file)
- {
- # Too painful to figure out how to get Perl to do it.
- system 'wget -o .wget-log http://www.isi.edu/in-notes/iana/assignments/character-sets';
- }
-}
-else
-{
- $file = $ARGV[0];
-}
-
-open (INPUT, "< $file") || die "couldn't open $file: $!";
-
-$body = 0;
-$current = '';
-while (<INPUT>)
-{
- chop;
- $body = 1 if /^Name:/;
- next unless $body;
-
- if (/^$/)
- {
- $current = '';
- next;
- }
-
- ($type, $name) = split (/\s+/);
- if ($type eq 'Name:')
- {
- $current = $map{$name};
- if ($current)
- {
- print " hash.put (\"$name\", \"$current\");\n";
- }
- }
- elsif ($type eq 'Alias:')
- {
- # The IANA list has some ugliness.
- if ($name ne '' && $name ne 'NONE' && $current)
- {
- print " hash.put (\"$name\", \"$current\");\n";
- }
- }
-}
-
-close (INPUT);
diff --git a/libjava/scripts/mime.types b/libjava/scripts/mime.types
deleted file mode 100644
index d6819023e83..00000000000
--- a/libjava/scripts/mime.types
+++ /dev/null
@@ -1,276 +0,0 @@
-# This is the default mime.types file from the Apache web server distribution
-
-# This file controls what Internet media types are sent to the client for
-# given file extension(s). Sending the correct media type to the client
-# is important so they know how to handle the content of the file.
-# Extra types can either be added here or by using an AddType directive
-# in your config files. For more information about Internet media types,
-# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type
-# registry is at <ftp://ftp.iana.org/in-notes/iana/assignments/media-types/>.
-
-# MIME type Extension
-application/EDI-Consent
-application/EDI-X12
-application/EDIFACT
-application/activemessage
-application/andrew-inset ez
-application/applefile
-application/atomicmail
-application/cals-1840
-application/commonground
-application/cybercash
-application/dca-rft
-application/dec-dx
-application/eshop
-application/hyperstudio
-application/iges
-application/mac-binhex40 hqx
-application/mac-compactpro cpt
-application/macwriteii
-application/marc
-application/mathematica
-application/msword doc
-application/news-message-id
-application/news-transmission
-application/octet-stream bin dms lha lzh exe class
-application/oda oda
-application/pdf pdf
-application/pgp-encrypted
-application/pgp-keys
-application/pgp-signature
-application/pkcs10
-application/pkcs7-mime
-application/pkcs7-signature
-application/postscript ai eps ps
-application/prs.alvestrand.titrax-sheet
-application/prs.cww
-application/prs.nprend
-application/remote-printing
-application/riscos
-application/rtf rtf
-application/set-payment
-application/set-payment-initiation
-application/set-registration
-application/set-registration-initiation
-application/sgml
-application/sgml-open-catalog
-application/slate
-application/smil smi smil
-application/vemmi
-application/vnd.3M.Post-it-Notes
-application/vnd.FloGraphIt
-application/vnd.acucobol
-application/vnd.anser-web-certificate-issue-initiation
-application/vnd.anser-web-funds-transfer-initiation
-application/vnd.audiograph
-application/vnd.businessobjects
-application/vnd.claymore
-application/vnd.comsocaller
-application/vnd.dna
-application/vnd.dxr
-application/vnd.ecdis-update
-application/vnd.ecowin.chart
-application/vnd.ecowin.filerequest
-application/vnd.ecowin.fileupdate
-application/vnd.ecowin.series
-application/vnd.ecowin.seriesrequest
-application/vnd.ecowin.seriesupdate
-application/vnd.enliven
-application/vnd.epson.salt
-application/vnd.fdf
-application/vnd.ffsns
-application/vnd.framemaker
-application/vnd.fujitsu.oasys
-application/vnd.fujitsu.oasys2
-application/vnd.fujitsu.oasys3
-application/vnd.fujitsu.oasysgp
-application/vnd.fujitsu.oasysprs
-application/vnd.fujixerox.docuworks
-application/vnd.hp-HPGL
-application/vnd.hp-PCL
-application/vnd.hp-PCLXL
-application/vnd.hp-hps
-application/vnd.ibm.MiniPay
-application/vnd.ibm.modcap
-application/vnd.intercon.formnet
-application/vnd.intertrust.digibox
-application/vnd.intertrust.nncp
-application/vnd.is-xpr
-application/vnd.japannet-directory-service
-application/vnd.japannet-jpnstore-wakeup
-application/vnd.japannet-payment-wakeup
-application/vnd.japannet-registration
-application/vnd.japannet-registration-wakeup
-application/vnd.japannet-setstore-wakeup
-application/vnd.japannet-verification
-application/vnd.japannet-verification-wakeup
-application/vnd.koan
-application/vnd.lotus-1-2-3
-application/vnd.lotus-approach
-application/vnd.lotus-freelance
-application/vnd.lotus-organizer
-application/vnd.lotus-screencam
-application/vnd.lotus-wordpro
-application/vnd.meridian-slingshot
-application/vnd.mif mif
-application/vnd.minisoft-hp3000-save
-application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.ms-artgalry
-application/vnd.ms-asf
-application/vnd.ms-excel
-application/vnd.ms-powerpoint ppt
-application/vnd.ms-project
-application/vnd.ms-tnef
-application/vnd.ms-works
-application/vnd.music-niff
-application/vnd.musician
-application/vnd.netfpx
-application/vnd.noblenet-directory
-application/vnd.noblenet-sealer
-application/vnd.noblenet-web
-application/vnd.novadigm.EDM
-application/vnd.novadigm.EDX
-application/vnd.novadigm.EXT
-application/vnd.osa.netdeploy
-application/vnd.powerbuilder6
-application/vnd.powerbuilder6-s
-application/vnd.rapid
-application/vnd.seemail
-application/vnd.shana.informed.formtemplate
-application/vnd.shana.informed.interchange
-application/vnd.shana.informed.package
-application/vnd.street-stream
-application/vnd.svd
-application/vnd.swiftview-ics
-application/vnd.truedoc
-application/vnd.visio
-application/vnd.webturbo
-application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf
-application/vnd.xara
-application/vnd.yellowriver-custom-menu
-application/wita
-application/wordperfect5.1
-application/x-bcpio bcpio
-application/x-cdlink vcd
-application/x-chess-pgn pgn
-application/x-compress
-application/x-cpio cpio
-application/x-csh csh
-application/x-director dcr dir dxr
-application/x-dvi dvi
-application/x-futuresplash spl
-application/x-gtar gtar
-application/x-gzip
-application/x-hdf hdf
-application/x-javascript js
-application/x-koan skp skd skt skm
-application/x-latex latex
-application/x-netcdf nc cdf
-# The standard is that rpm is audio/x-pn-realaudio-plugin... oh well...
-application/x-rpm rpm
-application/x-sh sh
-application/x-shar shar
-application/x-shockwave-flash swf
-application/x-stuffit sit
-application/x-sv4cpio sv4cpio
-application/x-sv4crc sv4crc
-application/x-tar tar
-application/x-tcl tcl
-application/x-tex tex
-application/x-texinfo texinfo texi
-application/x-troff t tr roff
-application/x-troff-man man
-application/x-troff-me me
-application/x-troff-ms ms
-application/x-ustar ustar
-application/x-wais-source src
-application/x400-bp
-application/xml
-application/zip zip
-audio/32kadpcm
-audio/basic au snd
-audio/midi mid midi kar
-audio/mpeg mpga mp2 mp3
-audio/vnd.qcelp
-audio/x-aiff aif aiff aifc
-audio/x-pn-realaudio ram rm
-audio/x-realaudio ra
-audio/x-wav wav
-chemical/x-pdb pdb xyz
-image/cgm
-image/g3fax
-image/gif gif
-image/ief ief
-image/jpeg jpeg jpg jpe
-image/naplps
-image/png png
-image/prs.btif
-image/tiff tiff tif
-image/vnd.dwg
-image/vnd.dxf
-image/vnd.fpx
-image/vnd.net-fpx
-image/vnd.svf
-image/vnd.xiff
-image/x-cmu-raster ras
-image/x-portable-anymap pnm
-image/x-portable-bitmap pbm
-image/x-portable-graymap pgm
-image/x-portable-pixmap ppm
-image/x-rgb rgb
-image/x-xbitmap xbm
-image/x-xpixmap xpm
-image/x-xwindowdump xwd
-message/delivery-status
-message/disposition-notification
-message/external-body
-message/http
-message/news
-message/partial
-message/rfc822
-model/iges igs iges
-model/mesh msh mesh silo
-model/vnd.dwf
-model/vrml wrl vrml
-multipart/alternative
-multipart/appledouble
-multipart/byteranges
-multipart/digest
-multipart/encrypted
-multipart/form-data
-multipart/header-set
-multipart/mixed
-multipart/parallel
-multipart/related
-multipart/report
-multipart/signed
-multipart/voice-message
-text/css css
-text/directory
-text/enriched
-text/html html htm
-text/plain asc txt
-text/prs.lines.tag
-text/rfc822-headers
-text/richtext rtx
-text/rtf rtf
-text/sgml sgml sgm
-text/tab-separated-values tsv
-text/uri-list
-text/vnd.abc
-text/vnd.flatland.3dml
-text/vnd.fmi.flexstor
-text/vnd.in3d.3dml
-text/vnd.in3d.spot
-text/vnd.latex-z
-text/x-setext etx
-text/xml xml
-video/mpeg mpeg mpg mpe
-video/quicktime qt mov
-video/vnd.motorola.video
-video/vnd.motorola.videop
-video/vnd.vivo
-video/x-msvideo avi
-video/x-sgi-movie movie
-x-conference/x-cooltalk ice
diff --git a/libjava/scripts/showval.java b/libjava/scripts/showval.java
deleted file mode 100644
index dca399f89f9..00000000000
--- a/libjava/scripts/showval.java
+++ /dev/null
@@ -1,41 +0,0 @@
-// Show a value given class name and constant name.
-
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-/* Written by Tom Tromey <tromey@redhat.com>. */
-
-// Use like this to print a `static final' value (integers only, not
-// strings yet):
-// java showval java.awt.geom.AffineTransform.TYPE_IDENTITY
-// Prints result like:
-// TYPE_IDENTITY = 0
-// In conjunction with a keyboard macro you can do a number of
-// constants very easily.
-
-import java.lang.reflect.*;
-
-public class showval
-{
- public static void main (String[] args)
- {
- int ch = args[0].lastIndexOf ('.');
- String className = args[0].substring (0, ch);
- String constName = args[0].substring (ch + 1);
- try
- {
- Class klass = Class.forName (className);
- Field field = klass.getField (constName);
- System.out.println (constName + " = " + field.getInt (null));
- }
- catch (Throwable _)
- {
- System.out.println (_);
- }
- }
-}
diff --git a/libjava/sysdep/ia64-frame.h b/libjava/sysdep/ia64-frame.h
deleted file mode 100644
index 7f07988f0a8..00000000000
--- a/libjava/sysdep/ia64-frame.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* Header file for unwinding stack frames for exception handling. */
-/* Compile this one with gcc. */
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
- Contributed by Jason Merrill <jason@cygnus.com>.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-
-/* Number of hardware registers known to the compiler.
- We have 128 general registers, 128 floating point registers, 64 predicate
- registers, 8 branch registers, and one frame pointer register. */
-
-/* ??? Should add ar.lc, ar.ec and probably also ar.pfs. */
-
-#define FIRST_PSEUDO_REGISTER 330
-
-#ifndef DWARF_FRAME_REGISTERS
-#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
-#endif
-
-typedef struct frame_state
-{
- void *cfa;
- void *eh_ptr;
- long cfa_offset;
- long args_size;
- long reg_or_offset[DWARF_FRAME_REGISTERS+1];
- unsigned short cfa_reg;
- unsigned short retaddr_column;
- char saved[DWARF_FRAME_REGISTERS+1];
-} frame_state;
-
-/* Values for 'saved' above. */
-#define REG_UNSAVED 0
-#define REG_SAVED_OFFSET 1
-#define REG_SAVED_REG 2
-
-/* The representation for an "object" to be searched for frame unwind info.
- For targets with named sections, one object is an executable or shared
- library; for other targets, one object is one translation unit.
-
- A copy of this structure declaration is printed by collect2.c;
- keep the copies synchronized! */
-
-struct object {
-#ifdef IA64_UNWIND_INFO
- void *pc_base; /* This field will be set by __do_frame_setup. */
-#endif
- void *pc_begin;
- void *pc_end;
- struct dwarf_fde *fde_begin;
- struct dwarf_fde **fde_array;
- size_t count;
- struct object *next;
-};
-
-/* Called from __throw to find the registers to restore for a given
- PC_TARGET. The caller should allocate a local variable of `struct
- frame_state' (declared in frame.h) and pass its address to STATE_IN.
- Returns NULL on failure, otherwise returns STATE_IN. */
-
-extern struct frame_state *__frame_state_for (void *, struct frame_state *);
-
-#ifdef IA64_UNWIND_INFO
-
-/* This is the information required for unwind records in an ia64
- object file. This is required by GAS and the compiler runtime. */
-
-/* These are the starting point masks for the various types of
- unwind records. To create a record of type R3 for instance, one
- starts by using the value UNW_R3 and or-ing in any other required values.
- These values are also unique (in context), so they can be used to identify
- the various record types as well. UNW_Bx and some UNW_Px do have the
- same value, but Px can only occur in a prologue context, and Bx in
- a body context. */
-
-#define UNW_R1 0x00
-#define UNW_R2 0x40
-#define UNW_R3 0x60
-#define UNW_P1 0x80
-#define UNW_P2 0xA0
-#define UNW_P3 0xB0
-#define UNW_P4 0xB8
-#define UNW_P5 0xB9
-#define UNW_P6 0xC0
-#define UNW_P7 0xE0
-#define UNW_P8 0xF0
-#define UNW_P9 0xF1
-#define UNW_P10 0xFF
-#define UNW_X1 0xF9
-#define UNW_X2 0xFA
-#define UNW_X3 0xFB
-#define UNW_X4 0xFC
-#define UNW_B1 0x80
-#define UNW_B2 0xC0
-#define UNW_B3 0xE0
-#define UNW_B4 0xF0
-
-/* These are all the various types of unwind records. */
-
-typedef enum
-{
- prologue, prologue_gr, body, mem_stack_f, mem_stack_v, psp_gr, psp_sprel,
- rp_when, rp_gr, rp_br, rp_psprel, rp_sprel, pfs_when, pfs_gr, pfs_psprel,
- pfs_sprel, preds_when, preds_gr, preds_psprel, preds_sprel,
- fr_mem, frgr_mem, gr_gr, gr_mem, br_mem, br_gr, spill_base, spill_mask,
- unat_when, unat_gr, unat_psprel, unat_sprel, lc_when, lc_gr, lc_psprel,
- lc_sprel, fpsr_when, fpsr_gr, fpsr_psprel, fpsr_sprel,
- priunat_when_gr, priunat_when_mem, priunat_gr, priunat_psprel,
- priunat_sprel, bsp_when, bsp_gr, bsp_psprel, bsp_sprel, bspstore_when,
- bspstore_gr, bspstore_psprel, bspstore_sprel, rnat_when, rnat_gr,
- rnat_psprel, rnat_sprel, epilogue, label_state, copy_state,
- spill_psprel, spill_sprel, spill_reg, spill_psprel_p, spill_sprel_p,
- spill_reg_p
-} unw_record_type;
-
-
-/* These structures declare the fields that can be used in each of the
- 4 record formats, R, P, B and X. */
-
-typedef struct unw_r_record
-{
- unsigned long rlen;
- unsigned short mask;
- unsigned short grsave;
-} unw_r_record;
-
-typedef struct unw_p_record
-{
- void *imask;
- unsigned long t;
- unsigned long size;
- unsigned long spoff;
- unsigned long br;
- unsigned long pspoff;
- unsigned short gr;
- unsigned short rmask;
- unsigned short grmask;
- unsigned long frmask;
- unsigned short brmask;
-} unw_p_record;
-
-typedef struct unw_b_record
-{
- unsigned long t;
- unsigned long label;
- unsigned short ecount;
-} unw_b_record;
-
-typedef struct unw_x_record
-{
- unsigned long t;
- unsigned long spoff;
- unsigned long pspoff;
- unsigned short reg;
- unsigned short treg;
- unsigned short qp;
- unsigned short xy; /* Value of the XY field.. */
-} unw_x_record;
-
-/* This structure is used to determine the specific record type and
- its fields. */
-typedef struct unwind_record
-{
- unw_record_type type;
- union {
- unw_r_record r;
- unw_p_record p;
- unw_b_record b;
- unw_x_record x;
- } record;
-} unwind_record;
-
-/* This structure represents the start of an unwind information pointer.
- 'unwind_descriptors' is the beginninng of the unwind descriptors, which
- use up 'length' bytes of storage. */
-
-typedef struct unwind_info_ptr
-{
- unsigned short version;
- unsigned short flags;
- unsigned int length;
- unsigned char unwind_descriptors[1];
-} unwind_info_ptr;
-
-
-#define IA64_UNW_LOC_TYPE_NONE 0
-#define IA64_UNW_LOC_TYPE_MEM 1
-#define IA64_UNW_LOC_TYPE_GR 2
-#define IA64_UNW_LOC_TYPE_FR 3
-#define IA64_UNW_LOC_TYPE_BR 4
-#define IA64_UNW_LOC_TYPE_SPOFF 5
-#define IA64_UNW_LOC_TYPE_PSPOFF 6
-#define IA64_UNW_LOC_TYPE_OFFSET 7
-#define IA64_UNW_LOC_TYPE_SPILLBASE 8
-
-typedef struct ia64_reg_loc
-{
- long when; /* PC relative offset from start of function. */
- union { /* In memory or another register? */
- void *mem;
- int regno;
- int offset;
- } l;
- short loc_type; /* Where to find value. */
- short reg_size;
-} ia64_reg_loc;
-
-/* Frame information record. */
-
-typedef struct ia64_frame_state
-{
- ia64_reg_loc gr[4]; /* gr4 to gr7. */
- ia64_reg_loc fr[20]; /* fr2 to fr5, fr16 to fr31. */
- ia64_reg_loc br[5]; /* br1 to br5. */
- ia64_reg_loc rp;
- ia64_reg_loc fpsr;
- ia64_reg_loc bsp;
- ia64_reg_loc bspstore;
- ia64_reg_loc rnat;
- ia64_reg_loc pfs;
- ia64_reg_loc unat;
- ia64_reg_loc lc;
- ia64_reg_loc pr;
- ia64_reg_loc priunat;
- ia64_reg_loc sp;
- ia64_reg_loc psp;
- ia64_reg_loc spill_base;
- void *my_sp;
- void *my_bsp;
-} ia64_frame_state;
-
-
-extern unwind_info_ptr *build_ia64_frame_state (unsigned char *, ia64_frame_state *,
- void *, void *);
-extern void *get_real_reg_value (ia64_reg_loc *);
-extern void *get_personality (unwind_info_ptr *);
-extern void *get_except_table (unwind_info_ptr *);
-extern void set_real_reg_value (ia64_reg_loc *, void *);
-void *calc_caller_bsp (long, unsigned char *);
-
-#endif /* IA64_UNWIND_INFO */
-
-/* Note the following routines are exported interfaces from libgcc; do not
- change these interfaces. Instead create new interfaces. Also note
- references to these functions may be made weak in files where they
- are referenced. */
-
-extern void __register_frame (void * );
-extern void __register_frame_table (void *);
-extern void __deregister_frame (void *);
-
-/* Called either from crtbegin.o or a static constructor to register the
- unwind info for an object or translation unit, respectively. */
-
-extern void __register_frame_info (void *, struct object *);
-
-/* Similar, but BEGIN is actually a pointer to a table of unwind entries
- for different translation units. Called from the file generated by
- collect2. */
-extern void __register_frame_info_table (void *, struct object *);
-
-/* Called from crtend.o to deregister the unwind info for an object. */
-
-extern void *__deregister_frame_info (void *);
-
-
diff --git a/libjava/sysdep/ia64.c b/libjava/sysdep/ia64.c
deleted file mode 100644
index f3c4761fd89..00000000000
--- a/libjava/sysdep/ia64.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-/* As a special exception, if you link this library with other files,
- some of which are compiled with GCC, to produce an executable,
- this library does not by itself cause the resulting executable
- to be covered by the GNU General Public License.
- This exception does not however invalidate any other reasons why
- the executable file might be covered by the GNU General Public License. */
-
-#include <stddef.h>
-#include <memory.h>
-
-#define IA64_UNWIND_INFO
-#include "ia64-frame.h"
-
-static int
-ia64_backtrace_helper (void **array, void *throw_pc,
- ia64_frame_state *throw_frame,
- ia64_frame_state *frame, void *bsp, int size)
-{
- void *pc = NULL;
- int frame_count = 0;
- unwind_info_ptr *info;
-
- asm volatile ("flushrs"); /* Make the local register stacks available. */
-
- /* Start at our stack frame, get our state. */
- info = build_ia64_frame_state (throw_pc, throw_frame, bsp, NULL);
-
- memcpy (frame, throw_frame, sizeof (*frame));
-
- while (info && frame_count < size)
- {
- pc = array[frame_count++] = get_real_reg_value (&frame->rp);
- --pc;
- bsp = calc_caller_bsp
- ((long)get_real_reg_value (&frame->pfs), frame->my_bsp);
- info = build_ia64_frame_state (pc, frame, bsp, NULL);
- if (frame->rp.loc_type == IA64_UNW_LOC_TYPE_NONE) /* We've finished. */
- break;
- }
-
- return frame_count;
-}
-
-int
-_Jv_ia64_backtrace (void **array, int size)
-{
- ia64_frame_state my_frame;
- ia64_frame_state originator; /* For the context handler is in. */
- void *bsp;
-
- /* Do any necessary initialization to access arbitrary stack frames.
- This forces gcc to save memory in our stack frame for saved
- registers. */
- __builtin_unwind_init ();
-
-label_ia64:
- bsp = __builtin_ia64_bsp ();
-
- return ia64_backtrace_helper (array, &&label_ia64, &my_frame,
- &originator, bsp, size);
-}
diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog
deleted file mode 100644
index 59339cfbfca..00000000000
--- a/libjava/testsuite/ChangeLog
+++ /dev/null
@@ -1,1006 +0,0 @@
-2000-08-31 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/abstr.xfail: New file.
- * libjava.compile/abstr.java: New file.
-
-2000-08-09 Tom Tromey <tromey@cygnus.com>
-
- From PR gcj/310:
- * libjava.compile/PR310.java: New file.
- * libjava.compile/PR310.xfail: New file.
-
-2000-07-30 Anthony Green <green@redhat.com>
-
- * libjava.compile/PR295.java: New file.
- See PR gcj/295.
-
-2000-07-11 Andrew Haley <aph@cygnus.com>
-
- * libjava.compile/static_init2.java: New file.
-
-2000-07-07 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/stringconst2.out: New file.
- * libjava.lang/stringconst2.java: New file.
-
-2000-06-23 Tom Tromey <tromey@cygnus.com>
-
- For PR gcj/260:
- * libjava.lang/PR260.out: New file.
- * libjava.lang/PR260.java: New file.
-
-2000-06-13 Warren Levy <warrenl@cygnus.com>
-
- Test for PR java.lang/258:
- * libjava.lang/Class_1.java: New file.
- * libjava.lang/Class_1.out: New file.
-
-2000-05-29 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.lang/PR242.java: New file. PR gcj/242.
-
-2000-05-23 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/PR238.java: New file. For PR gcj/238.
-
- * libjava.lang/stringconst.out: New file.
- * libjava.lang/stringconst.java: New file.
-
-2000-05-22 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.compile/PR232B.java: Additional PR gcj/232 test.
-
-2000-05-22 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/PR235.java: New file. For PR gcj/235.
-
-2000-05-21 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/PR234.java: New file. For PR gcj/234.
-
-2000-05-22 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test for PR gcj/232:
- * libjava.compile/PR232.java: New file.
-
-2000-05-18 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (bytecompile_file): Use exec, not system.
-
-2000-05-17 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/mauve.exp (test_mauve): Call `prune_warnings'.
- (test_mauve_sim): Likewise.
- (test_mauve): Redirect stderr in system call.
- (test_mauve_sim): Likewise.
- * lib/libjava.exp (test_libjava_from_source): Call
- `prune_warnings'.
- (test_libjava_from_javac): Likewise.
- (bytecompile_file): Redirect stderr in system call.
- * lib/libjava.exp (libjava_find_program): New proc.
- (find_jvscan): Use it.
- (find_gcjh): New proc.
-
- * libjava.compile/compile.exp: Use "", not $options.
-
-2000-05-16 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/instance.out: New file.
- * libjava.lang/instance.java: New file.
-
-2000-05-10 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.lang/StringBuffer_1.java: New file.
- * libjava.lang/StringBuffer_1.out: New file.
-
-2000-05-08 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test for PR gcj/224:
- * libjava.compile/PR224.java: New file.
- * libjava.compile/PR224.xfail: New file.
-
-2000-04-28 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test for PR gcj/218:
- * libjava.lang/PR218.java: New file.
- * libjava.lang/PR218.out: New file.
-
-2000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.compile/MethodFailure4.java: New file.
- * libjava.compile/MethodFailure4.out: New file.
-
-2000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.compile/block.java: New file.
- * libjava.compile/block.out: New file.
-
-2000-04-20 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/throwit.out: Fixed output to be correct.
-
- * libjava.jni/noclass.java (main): `find_it' throws an exception.
-
-2000-04-16 Anthony Green <green@redhat.com>
-
- * libjava.compile/PR209.java: New file.
-
-2000-04-16 Anthony Green <green@redhat.com>
-
- * libjava.compile/PR208.java: New file.
-
-2000-04-16 Anthony Green <green@redhat.com>
-
- * libjava.compile/PR207.java: New file.
- libjava.compile/PR207_A.java: New file.
- libjava.compile/PR206.java: New file.
- libjava.compile/PR206_A.java: New file.
-
-2000-04-14 Bryce McKinlay <bryce@albatross.co.nz>
-
- Additional test for PR gcj/148:
- * libjava.compile/assignment_2.java: New file.
-
-2000-03-28 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test case for PR libgcj/184:
- * libjava.lang/pr184.java: New file.
- * libjava.lang/pr184.out: New file.
-
-2000-03-27 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/test_long.out: New file.
- * libjava.lang/test_long.java: New file.
-
-2000-03-26 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Array_1.xfail: Removed.
-
-2000-03-23 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.lang/Thread_Wait.java: New file.
- * libjava.lang/Thread_Sleep.java: New file.
- * libjava.lang/Thread_Monitor.java: New file.
- * libjava.lang/Thread_Wait.out: New file.
- * libjava.lang/Thread_Sleep.out: New file.
- * libjava.lang/Thread_Monitor.out: New file.
- * libjava.lang/Thread_Interrupt.java: New file.
- * libjava.lang/Thread_Wait_2.java: New file.
- * libjava.lang/Thread_Wait_2.out: New file.
- * libjava.lang/Thread_Wait_Interrupt.java: New file.
- * libjava.lang/Thread_Wait_Interrupt.out: New file.
- * libjava.lang/Thread_Interrupt.out: New file.
- * libjava.lang/Thread_Join.java: New file.
- * libjava.lang/Thread_Join.out: New file.
- * libjava.lang/Thread_Alive.java: New file.
- * libjava.lang/Thread_Alive.out: New file.
-
-2000-03-22 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/iface.java: New file.
- * libjava.compile/static_3.java: New file.
- * libjava.compile/static_2.java: New file.
- * libjava.compile/static_1.xfail: New file.
- * libjava.compile/static_1.java: New file.
- * libjava.compile/redef6.xfail: New file.
- * libjava.compile/redef6.java: New file.
- * libjava.compile/redef5.xfail: New file.
- * libjava.compile/redef5.java: New file.
- * libjava.compile/redef4.xfail: New file.
- * libjava.compile/redef4.java: New file.
- * libjava.compile/redef3.xfail: New file.
- * libjava.compile/redef3.java: New file.
- * libjava.compile/redef2.xfail: New file.
- * libjava.compile/redef2.java: New file.
- * libjava.compile/redef1.xfail: New file.
- * libjava.compile/redef1.java: New file.
- * libjava.compile/not_a_redef.java: New file.
- * libjava.compile/inner_1.java: New file.
- * libjava.compile/static_init.xfail: New file.
- * libjava.compile/static_init.java: New file.
-
-2000-03-21 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test case for PR libgcj/179:
- * libjava.lang/pr179.java: New file.
- * libjava.lang/pr179.out: New file.
-
-2000-03-18 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/pr109.java: Added `println' at end.
-
-2000-03-15 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/pr176.java: New file, for PR gcj/176.
-
-2000-03-15 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.compile/pr172.java: Correct classname to match file name.
- * libjava.compile/pr174.java: ditto. Remove superfluous main()
- method.
- * libjava.compile/PR140.xfail: New file.
-
-2000-03-14 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/PR140.java: New file, for PR gcj/140.
-
- * libjava.compile/pr172.java: New file, for PR gcj/172.
-
- * libjava.compile/pr174.java: New file, for PR gcj/174.
-
-2000-03-07 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/PR162.java: Mention `PR162', not `Test', as class
- name.
-
-2000-03-07 Bryce McKinlay <bryce@albatross.co.nz>
-
- Test for PR gcj/163:
- * libjava.lang/PR163.java: New file.
- * libjava.lang/PR163.xfail: New file.
-
-2000-03-07 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (test_libjava_from_javac): Removed hack for
- interfaces. Fail if jv-scan reports a parse error.
-
- Test for PR gcj/162:
- * libjava.lang/PR162.out: New file.
- * libjava.lang/PR162.java: New file.
-
-2000-03-06 Tom Tromey <tromey@cygnus.com>
-
- Test for PR gcj/164:
- * libjava.compile/PR164.xfail: New file.
- * libjava.compile/PR164.java: New file.
-
-2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.compile/PR127.java: New file.
- * libjava.compile/PR127.xfail: New file.
- PR 127 test case from Joerg Brunsmann.
-
-2000-03-05 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (test_libjava): Document `shouldfail' token.
- (test_libjava_from_source): Handle `shouldfail' case.
- (test_libjava_from_javac): Likewise.
-
- Test for PR libgcj/124:
- * libjava.compile/PR124.java: New file.
- * libjava.compile/PR124.xfail: New file.
-
-2000-03-05 Anthony Green <green@redhat.com>
-
- * libjava.lang/PR141.java: New file.
- * libjava.lang/PR141.out: New file.
- For PR java.io/141.
-
-2000-03-05 Anthony Green <green@redhat.com>
-
- * libjava.compile/PR129_B.java: New file.
- * libjava.compile/support/PR129_A.java: New file.
- For PR gcj/129.
-
-2000-03-04 Anthony Green <green@redhat.com>
-
- * libjava.lang/PR160.java: New file.
- * libjava.lang/PR160.out: New file.
-
-2000-02-28 Mo DeJong <mdejong@cygnus.com>
-
- * libjava.compile/static_inner.java: New file.
-
-2000-02-23 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/noclass.c: New file.
- * libjava.jni/noclass.out: New file.
- * libjava.jni/noclass.java: New file.
-
-2000-02-18 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/register.java: New file.
- * libjava.jni/register.c: New file.
- * libjava.jni/register.out: New file.
-
-2000-02-16 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/calls.c: New file.
- * libjava.jni/calls.out: New file.
- * libjava.jni/calls.java: New file.
-
- * libjava.jni/throwit.java: New file.
- * libjava.jni/throwit.c: New file.
- * libjava.jni/throwit.out: New file.
-
-2000-02-15 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/findclass.java: New file
- * libjava.jni/findclass.c: New file
- * libjava.jni/findclass.out: New file
-
-2000-02-16 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.lang/InterfaceDispatch.java: New file.
- * libjava.lang/InterfaceDispatch.out: New file.
-
-2000-02-15 Tom Tromey <tromey@cygnus.com>
-
- * libjava.jni/virtual.java: New file.
- * libjava.jni/virtual.c: New file.
- * libjava.jni/virtual.out: New file.
- * libjava.jni/final_method.java: New file.
- * libjava.jni/final_method.c: New file.
- * libjava.jni/final_method.out: New file.
- * libjava.jni/overload.java: New file.
- * libjava.jni/overload.c: New file.
- * libjava.jni/overload.out: New file.
- * libjava.jni/simple_int.java: New file.
- * libjava.jni/simple_int.c: New file.
- * libjava.jni/simple_int.out: New file.
- * libjava.jni/invoke.out: New file.
- * libjava.jni/invoke.c: New file.
- * libjava.jni/invoke.java: New file.
-
-2000-02-12 Anthony Green <green@cygnus.com>
-
- * libjava.compile/comment.java: New file.
-
-2000-02-12 Anthony Green <green@cygnus.com>
-
- * libjava.compile/assignment.java: New file.
-
-2000-02-12 Anthony Green <green@cygnus.com>
-
- * libjava.compile/inner_data.java: New file.
-
-2000-02-12 Anthony Green <green@cygnus.com>
-
- * libjava.compile/inner_inherit.java: New file.
-
-2000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.lang/inner_interface.out: New file.
- * libjava.lang/inner_interface.java: New file.
- * libjava.lang/final_int.out: New file.
- * libjava.lang/final_int.java: New file.
- * libjava.lang/final_static_and_friend.out: New file.
- * libjava.lang/final_static_and_friend.java: New file.
-
-2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.lang/anonarray3.out: New file.
- * libjava.lang/anonarray3.java: New file.
-
-2000-02-09 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/inner_priv.java: New file.
-
-2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.lang/instinit2.out: New file.
- * libjava.lang/instinit2.java: New file.
- * libjava.lang/instinit.out: New file.
- * libjava.lang/instinit.java: New file.
- * libjava.lang/anonarray2.out: New file.
- * libjava.lang/anonarray2.java: New file.
- * libjava.lang/anonarray.out: New file.
- * libjava.lang/anonarray.java: New file.
- * libjava.lang/nested_with_ctor.out: New file.
- * libjava.lang/nested_with_ctor.java: New file.
- * libjava.lang/anfi.out: New file.
- * libjava.lang/anfi.java: New file.
- * libjava.lang/stub.out: New file.
- * libjava.lang/stub.java: New file.
-
-2000-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.lang/final_inner.java: New file.
- * libjava.lang/final_inner.out: Likewise.
-
-2000-01-20 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/BlankFinal.java: New file.
-
-2000-01-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
-
- * libjava.lang/anon.java, libjava.lang/anon2.java,
- libjava.lang/anon3.java, libjava.lang/anon4.java,
- libjava.lang/direct_read.java, libjava.lang/direct_write.java,
- libjava.lang/indirect.java, libjava.lang/indirect_read.java,
- libjava.lang/indirect_write.java, libjava.lang/inner1.java,
- libjava.lang/inner2.java, libjava.lang/inner3.java,
- libjava.lang/inner4.java, libjava.lang/inner_array.java,
- libjava.lang/multiple_finit.java,
- libjava.lang/private_direct_read.java,
- libjava.lang/private_direct_write.java,
- libjava.lang/private_indirect_read.java,
- libjava.lang/private_indirect_write.java,
- libjava.lang/search_outer.java, libjava.lang/tmi.java,
- libjava.lang/tp.java, libjava.lang/update_outer.java: New files.
-
-2000-01-18 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/inner_pub.java: New file.
-
-2000-01-16 Anthony Green <green@cygnus.com>
-
- * libjava.lang/pr133.out: New file.
- * libjava.lang/pr133.java: New file.
-
- * libjava.lang/pr100.xpo: New file.
- * libjava.lang/pr100.java: New file.
-
-2000-01-16 Anthony Green <green@cygnus.com>
-
- * libjava.lang/pr93.xpo: New file.
- * libjava.lang/pr93.java: New file.
-
-2000-01-16 Anthony Green <green@cygnus.com>
-
- * libjava.lang/lang.exp: Handle regexp matches correctly.
-
-2000-01-16 Anthony Green <green@cygnus.com>
-
- * libjava.lang/pr83.out: New file.
- * libjava.lang/pr83.java: New file.
-
- * libjava.lang/pr109.out: New file.
- * libjava.lang/pr109.java: New file.
-
-2000-01-11 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/klass.out: New file.
- * libjava.lang/klass.java: New file.
-
-1999-12-31 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/mauve.exp (mauve_compute_uses): Let user select
- specific tests to run.
-
-1999-10-19 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.compile/invokeinterface: New directory.
- * libjava.compile/invokeinterface/Test.java: New file. Test code for
- PR gcj/71 and PR gcj/72.
- * libjava.compile/invokeinterface/A.java: New file.
- * libjava.compile/invokeinterface/B.java: New file.
-
-1999-10-02 Anthony Green <green@cygnus.com>
-
- * libjava.compile/Case.xfail: Removed. This test should pass now.
-
- * libjava.compile/compile.exp: Copied from test.exp.
- * libjava.compile/test.exp: Removed.
-
- * libjava.lang/lang.exp: Copied from test.exp.
- * libjava.lang/test.exp: Removed.
-
-1999-10-01 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/PR56.out: New file.
- * libjava.lang/PR56.java: New file.
-
-1999-09-29 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/PR55.out: New file.
- * libjava.lang/PR55.java: New file.
-
-1999-08-25 Tom Tromey <tromey@cygnus.com>
-
- * libjava.toshiba/G19990304_01.out: New file.
- * libjava.toshiba/G19990304_01.java: New file.
-
- * libjava.lang/G19990310_01.out: New file.
- * libjava.lang/G19990310_01.java: New file.
-
-1999-08-17 Tom Tromey <tromey@cygnus.com>
-
- From Bryce McKinlay:
- * libjava.lang/Array_2.java: New file.
- * libjava.lang/Array_2.out: New file.
-
-1999-08-09 Anthony Green <green@cygnus.com>
-
- * libjava.lang/Primes.java: New file.
- * libjava.lang/Primes.out: New file.
-
-1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * lib/libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that
- defaults to javac, as Sun-javac compiler or compatible.
- (libjava_init): Get GCJ from environment if neither GCJ_UNDER_TEST
- nor TOOL_EXECUTABLE are set. Set `original_ld_library_path' from
- environment.
- (libjava_arguments): Prepend `.' and `$srcdir/$subdir' to
- CLASSPATH, for `support' sources. Search for libgcj.spec in
- `$objdir/..', by adding -B to GCJ_UNDER_TEST. Append
- original_ld_library_path to ld_library_path.
- * libjava.mauve/mauve.exp (test_mauve): Set `env(GCJ)' from
- GCJ_UNDER_TEST, calculated just like in libjava.exp.
-
-1999-07-14 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/G19990217_02.no-link: New file.
- * libjava.compile/test.exp: Look for `.no-link' file.
- * lib/libjava.exp (test_libjava_from_source): Added `no-link'
- option.
- (test_libjava_from_javac): Likewise. Also, handle package
- information from class name when creating class file name.
-
-1999-07-13 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/test.exp: New file.
- * libjava.lang/err9.out: New file.
- * libjava.lang/err9.java: New file.
- * libjava.lang/err8.out: New file.
- * libjava.lang/err8.java: New file.
- * libjava.lang/err7.out: New file.
- * libjava.lang/err7.java: New file.
- * libjava.lang/err6.out: New file.
- * libjava.lang/err6.java: New file.
- * libjava.lang/err5.out: New file.
- * libjava.lang/err5.java: New file.
- * libjava.lang/err4.out: New file.
- * libjava.lang/err4.java: New file.
- * libjava.lang/err3.out: New file.
- * libjava.lang/err3.java: New file.
- * libjava.lang/err2.out: New file.
- * libjava.lang/err2.java: New file.
- * libjava.lang/err13.out: New file.
- * libjava.lang/err13.java: New file.
- * libjava.lang/err12.out: New file.
- * libjava.lang/err12.java: New file.
- * libjava.lang/err11.out: New file.
- * libjava.lang/err11.java: New file.
- * libjava.lang/err10.out: New file.
- * libjava.lang/err10.java: New file.
- * libjava.lang/err1.out: New file.
- * libjava.lang/err1.java: New file.
- * libjava.lang/N19990310_5.out: New file.
- * libjava.lang/N19990310_5.java: New file.
- * libjava.lang/N19990310_4.out: New file.
- * libjava.lang/N19990310_4.java: New file.
- * libjava.lang/N19990310_3.out: New file.
- * libjava.lang/N19990310_3.java: New file.
- * libjava.lang/N19990310_02.out: New file.
- * libjava.lang/N19990310_02.java: New file.
- * libjava.lang/G19990303_02.out: New file.
- * libjava.lang/G19990303_02.java: New file.
- * libjava.lang/G19990303_01.out: New file.
- * libjava.lang/G19990303_01.java: New file.
- * libjava.lang/G19990302_02.out: New file.
- * libjava.lang/G19990302_02.java: New file.
- * libjava.lang/G19990301_01.out: New file.
- * libjava.lang/G19990301_01.java: New file.
-
- * libjava.compile/N19990317.java: New file.
- * libjava.compile/N19990310_01.java: New file.
- * libjava.compile/G19990225_01.java: New file.
- * libjava.compile/G19990217_02.java: New file.
- * libjava.compile/G19990217_01.java: New file.
- * libjava.compile/G19990210_3.java: New file.
- * libjava.compile/G19990210_2.java: New file.
- * libjava.compile/G19990210_1.java: New file.
-
-1999-07-06 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Final.xfail: Output fails, not exec.
-
- * libjava.lang/Final.xfail: New file.
- * libjava.compile/Case.xfail: New file.
- * libjava.compile/Where.xfail: New file.
- * libjava.compile/test.exp: Look for `.xfail' files.
- * libjava.lang/test.exp: Don't look for `.arg' files.
- Do look for `.xfail' files.
- * lib/libjava.exp (test_libjava_from_source): Changed meaning of
- `exec_args' argument. Handle `xfail-*' arguments.
- (test_libjava_from_javac): Likewise.
- (test_libjava): Likewise.
- (libjava_read_xfail): New proc.
-
-1999-07-05 Bryce McKinlay <bryce@albatross.co.nz>
-
- * libjava.lang/Final.java: Added.
- * libjava.lang/Final.out: Added.
-
-1999-07-02 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Finalize_1.out: Removed.
- * libjava.lang/Finalize_1.java: Removed.
-
- * libjava.lang/Thread_1.out: Updated.
- * libjava.lang/Thread_1.java: Don't run exit test.
-
-Thu Jul 1 16:22:19 1999 Anthony Green <green@cygnus.com>
-
- * libjava.mauve/mauve.exp: Don't stop counting test results
- prematurely.
-
-1999-06-25 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (test_libjava_from_javac): Fixed typo. Always
- make class_files a list.
-
- * lib/libjava.exp (test_libjava_from_javac): Prepend `$objdir/' to
- class file names.
-
-1999-06-24 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_arguments): If `libtool' not found in
- build tree, just use $GCJ_UNDER_TEST as compiler.
-
-1999-06-23 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_arguments): Handle -lzgcj.
-
-1999-05-24 Anthony Green <green@cygnus.com>
-
- * libjava.lang/Shazam.java: New file.
- libjava.lang/Shazam.out: New file.
-
-1999-05-12 Andrew Haley <aph@cygnus.com>
-
- * libjava.lang/Invoke_2.java: New file.
-
-1999-05-03 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_arguments): Don't use -nodefaultlibs.
- (libjava_find_lib): Add `-L' option to find the actual library.
-
- * libjava.mauve/mauve.exp (test_mauve): Pass `link' to
- libjava_arguments when linking.
- (test_mauve_sim): Likewise.
- * lib/libjava.exp (libjava_arguments): Run `libtool' to link.
- Don't use `-static'. Added `mode' argument. Use -nodefaultlibs
- when linking.
- (test_libjava_from_source): Mention why target_compile failed.
- Pass `link' to libjava_arguments when linking. Only do `xfails'
- for tests we would actually have run.
- (test_libjava_from_javac): Likewise.
- (libjava_find_lib): Return name of `.la' file.
-
-1999-04-26 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_find_lib): New proc.
- (libjava_arguments): Use it. Force static linking.
-
-Thu Apr 22 14:19:35 1999 Anthony Green <green@cygnus.com>
-
- * libjava.compile/OperatorBenchmark.java: New file.
-
-1999-04-09 Warren Levy <warrenl@cygnus.com>
-
- * libjava.mauve/mauve.exp (KEYS): Default to libgcj.
-
-1999-04-09 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/plusplus.java: New file.
- From MoT <Sebastien.Villemot@ens.fr>.
-
-1999-04-06 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/mauve.exp (test_mauve_sim): Reference
- mauve-libgcj.
- (test_mauve): Likewise.
-
-1999-03-30 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/mauve.exp: Renamed from test.exp. With the new
- name it is easier to run just the Mauve tests.
-
- * libjava.mauve/test.exp (test_mauve): Added gnu/testlet/config to
- list of files to link in.
- (test_mauve_sim): Likewise.
- * libjava.mauve/DejaGNUTestHarness.java (srcdir, tmpdir): New
- static variables.
- (DejaGNUTestHarness): Removed argument from constructor.
- (dejasrcdir): New static variable.
- (main): Set `dejasrcdir'.
- (getSourceDirectory): New method.
-
-1999-03-08 Tom Tromey <tromey@cygnus.com>
-
- * libjava.compile/perc.java: New file.
-
-1999-02-26 Tom Tromey <tromey@cygnus.com>
-
- * libjava.util/test.exp: Removed.
-
-1999-02-25 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/test.exp: Make sure current directory is correct
- after tests are run.
-
- * libjava.mauve/test.exp (test_mauve): Removed extra arg in call
- to bytecompile_file.
- (test_mauve_sim): Likewise.
-
-Thu Feb 25 09:21:03 1999 Anthony Green <green@cygnus.com>
-
- * libjava.compile/euc_comment1.java,
- libjava.compile/euc_comment2.java,
- libjava.compile/euc_comment3.java,
- libjava.compile/euc_comment1.java,
- libjava.compile/euc_comment2.java,
- libjava.compile/euc_comment3.java: New files.
-
- * libjava.compile/Case.java, libjava.compile/support/Case.java:
- New files.
-
-1999-02-24 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (find_jvscan): New proc.
- (bytecompile_file): Removed `srcfile_in' argument.
- (test_libjava_from_javac): Use `jv-scan' program to find name of
- `main' and name of all generated classes. Compile all generated
- classes, not just primary class. For no-exec tests, only try to
- build the .o, not the full executable.
-
-Wed Feb 24 11:22:32 1999 Anthony Green <green@hoser.cygnus.com>
-
- * libjava.compile/test.exp: Minor fix.
-
-1999-02-23 Anthony Green <green@cygnus.com>
-
- * libjava.compile/Where.java, libjava.compile/support/Waldo.java,
- libjava.compile/Twice.java, libjava.compile/Semi.java,
- libjava.compile/Statics.java, libjava.compile/test.exp,
- libjava.lang/Synch.java, libjava.lang/Synch.out: New files.
-
-1999-02-16 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AUTOMAKE_OPTIONS): Added no-installinfo.
-
-Wed Feb 17 19:53:51 1999 Warren Levy <warrenl@cygnus.com>
-
- * libjava.mauve/test.exp: modified file allows Mauve tests to
- run on JMR board; simplified script to use same procedure for
- all testing
-
-1999-02-10 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_arguments): Updated to track library
- renames.
-
-1999-02-07 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/slash.java: New file.
- * libjava.lang/slash.out: New file.
-
-Mon Feb 1 05:17:40 1999 Anthony Green <green@fencer.cygnus.com>
-
- * lib/libjava.exp: Test compiling from source as well as from
- bytecodes.
-
-1999-01-11 Tom Tromey <tromey@cygnus.com>
-
- * libjava.mauve/test.exp (mauve_compute_uses): Read classes file,
- not choices file.
-
- * libjava.mauve/test.exp (test_mauve): Added
- ResourceNotFoundException to list of harness files to compile.
- (test_mauve_sim): Likewise.
-
-1998-12-17 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Invoke_1.java: New file.
-
- * libjava.lang/Thread_1.java (Thread_1): Class now public.
- * libjava.lang/Array_1.java (Array_1): Class now public.
-
- * libjava.lang/Throw_1.out: New file.
- * libjava.lang/Throw_1.java: New file.
-
-1998-12-11 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (libjava_arguments): New proc.
- (test_libjava): Use it.
- (bytecompile_file): Added classpath argument.
- * libjava.mauve/test.exp: New file.
- * libjava.mauve/DejaGNUTestHarness.java: New file.
-
-1998-12-08 Tom Tromey <tromey@cygnus.com>
-
- * Various: removed all test files that migrated to Mauve.
-
-1998-12-07 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Array_1.java (main): Removed extraneous
- getSuperclass call.
-
-1998-11-23 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Finalize_1.java (main): Clear `f' before GC.
-
-1998-10-08 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Thread_1.out: Added missing line.
-
-Fri Oct 2 14:55:46 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Array_1.java: Changed so Cloneable test can run
- even if clone test itself fails.
-
- * libjava.lang/Array_1.java: Uncommented calls to getSuperclass.
- Added test to see if array implements Cloneable.
-
-Thu Oct 1 11:28:06 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Array_1.java: New file.
- * libjava.lang/Array_1.out: New file.
-
-Thu Oct 1 13:51:00 1998 Anthony Green <green@cygnus.com>
-
- * testsuite/lib/libjava.exp: Find qthreads library correctly.
-
-Tue Sep 29 16:36:43 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.util/Hashtable_1.java, libjava.util/Hashtable_1.out: Created.
-
-Tue Sep 29 00:40:26 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Thread_1.java (started): New field.
- (run): Set `started'. Handle all synchronization here.
- (Thread_1): Initialize `started'.
- (doit): Just start both threads and let them handle their own
- synchronization.
-
- * libjava.lang/Boolean_5.out: Changed to reflect the
- Boolean_5.java changes.
- * libjava.lang/Boolean_5.java: Don't replace the system
- properties, just augment them. Don't print the property object.
- * libjava.lang/Long_2.out: Changed to reflect Long_2.java
- changes.
- * libjava.lang/Long_2.java: Don't replace the system properties,
- just augment them. Don't print the property object.
- * libjava.lang/Integer_2.out: Changed to reflect Integer_2.java
- changes.
- * libjava.lang/Integer_2.java: Don't replace the system
- properties, just augment them. Don't print the property object.
-
-Sat Sep 26 15:57:39 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Thread_1.java (main): Catch InterruptedException.
-
-Tue Sep 22 13:45:58 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Thread_1.out: New file.
- * libjava.lang/Thread_1.java: New file.
-
-Mon Sep 21 14:20:08 1998 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (test_libjava): Use runtest_file_p to see if
- test should be short-circuited.
-
-Tue Sep 15 13:57:45 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Character_9.java: New file.
- * libjava.lang/Character_9.out: New file.
-
-Mon Sep 14 12:27:04 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Character_8.out: New file.
- * libjava.lang/Character_8.java: New file.
- * libjava.lang/Character_7.out: New file.
- * libjava.lang/Character_7.java: New file.
- * libjava.lang/Character_6.out: New file.
- * libjava.lang/Character_6.java: New file.
- * libjava.lang/Character_5.out: New file.
- * libjava.lang/Character_5.java: New file.
- * libjava.lang/Character_4.out: New file.
- * libjava.lang/Character_4.java: New file.
- * libjava.lang/Character_3.out: New file.
- * libjava.lang/Character_3.java: New file.
- * libjava.lang/Character_2.out: New file.
- * libjava.lang/Character_2.java: New file.
-
-Fri Sep 11 10:04:55 1998 Tom Tromey <tromey@cygnus.com>
-
- * libjava.lang/Character_1.out: New file.
- * libjava.lang/Character_1.java: New file.
-
-Fri Sep 18 14:43:59 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.lang/Long_1.java, libjava.lang/Long_1.out,
- libjava.lang/Long_2.java, libjava.lang/Long_2.out: Created.
-
-Fri Sep 18 12:43:52 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.lang/Integer_1.java, libjava.lang/Integer_1.out,
- libjava.lang/Integer_2.java, libjava.lang/Integer_2.out: Created.
-
- * libjava.lang/String_2.java, libjava.lang/String_2.out: Use JDK 1.2
- values for hashCode.
-
-Thu Sep 10 12:44:42 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.lang/String_1.java, libjava.lang/String_1.out,
- libjava.lang/String_2.java, libjava.lang/String_2.out,
- libjava.lang/String_3.java, libjava.lang/String_3.out,
- libjava.lang/String_4.java, libjava.lang/String_4.out,
- libjava.lang/String_5.java, libjava.lang/String_5.out,
- libjava.lang/String_6.java, libjava.lang/String_6.out,
- libjava.lang/String_7.java, libjava.lang/String_7.out,
- libjava.lang/String_8.java, libjava.lang/String_8.out,
- libjava.lang/String_9.java, libjava.lang/String_9.out: Created.
-
-Tue Sep 8 13:31:59 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.lang/Byte_1.java, libjava.lang/Byte_1.out,
- libjava.lang/Short_1.java, libjava.lang/Short_1.out: New files.
-
-Thu Sep 3 15:57:57 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.lang/Boolean_1.java, libjava.lang/Boolean_1.out,
- libjava.lang/Boolean_2.java, libjava.lang/Boolean_2.out,
- libjava.lang/Boolean_3.java, libjava.lang/Boolean_3.out,
- libjava.lang/Boolean_4.java, libjava.lang/Boolean_4.out,
- libjava.lang/Boolean_5.java, libjava.lang/Boolean_5.out: Created.
-
-Tue Sep 1 12:27:54 1998 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp (bytecompile_file): Don't throw error if byte
- compilation fails. Added `srcfile_in' argument. Changed return
- value.
- (test_libjava): Gracefully handle byte-compilation failure.
-
- * libjava.lang/System_15.java (main): Typo fix.
- (System_15): Choose correct class name.
- (X): Moved into System_15.
-
- * libjava.lang/System_1.java, libjava.lang/System_1.out,
- libjava.lang/System_10.java, libjava.lang/System_10.out,
- libjava.lang/System_11.java, libjava.lang/System_11.out,
- libjava.lang/System_12.java, libjava.lang/System_12.out,
- libjava.lang/System_13.java, libjava.lang/System_13.out,
- libjava.lang/System_14.java, libjava.lang/System_14.out,
- libjava.lang/System_15.java, libjava.lang/System_15.out,
- libjava.lang/System_2.java, libjava.lang/System_2.out,
- libjava.lang/System_3.java, libjava.lang/System_3.out,
- libjava.lang/System_4.java, libjava.lang/System_4.out,
- libjava.lang/System_5.java, libjava.lang/System_5.out,
- libjava.lang/System_6.java, libjava.lang/System_6.out,
- libjava.lang/System_7.java, libjava.lang/System_7.out,
- libjava.lang/System_8.java, libjava.lang/System_8.out,
- libjava.lang/System_9.java, libjava.lang/System_9.out: New files.
-
- * lib/libjava.exp (test_libjava): Only add -lgc or -lqthreads if
- library is actually found.
-
- * lib/libjava.exp (test_libjava): Look for qthreads.
-
-Mon Aug 31 17:49:21 1998 Warren Levy <warrenl@cygnus.com>
-
- * libjava.util/Random_1.java, libjava.util/Random_1.out,
- libjava.util/Random_2.java, libjava.util/Random_2.out,
- libjava.util/Random_3.java, libjava.util/Random_3.out,
- libjava.util/Random_4.java, libjava.util/Random_4.out,
- libjava.util/Random_5.java, libjava.util/Random_5.out,
- libjava.util/Random_6.java, libjava.util/Random_6.out,
- libjava.util/Random_7.java, libjava.util/Random_7.out,
- libjava.util/Random_8.java, libjava.util/Random_8.out,
- libjava.util/test.exp: Created.
-
-Mon Aug 31 16:37:19 1998 Tom Tromey <tromey@cygnus.com>
-
- * lib/libjava.exp: Changed gjavac to gcj everywhere.
-
-Wed Aug 26 12:20:10 1998 Anthony Green <green@cygnus.com>
-
- * Makefile.am (EXPECT,RUNTEST): Find expect and runtest
- correctly.
- * Makefile.in: Rebuild.
-
-Tue Aug 25 18:43:33 1998 Anthony Green <green@cygnus.com>
-
- * lib/libjava.exp: Fix CLASSPATH setting.
-
-Tue Aug 25 17:27:37 1998 Anthony Green <green@cygnus.com>
-
- * ChangeLog, lib/libjava.exp, config/default.exp,
- libjava.lang/Finalize_1.java, libjava.lang/Finalize_1.out,
- libjava.lang/Float_1.java, libjava.lang/Float_1.out
- libjava.lang/test.exp, Makefile.am, Makefile.in: Created.
-
diff --git a/libjava/testsuite/Makefile.am b/libjava/testsuite/Makefile.am
deleted file mode 100644
index e1d359d8f76..00000000000
--- a/libjava/testsuite/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-AUTOMAKE_OPTIONS = foreign dejagnu no-installinfo
-
-# Setup the testing framework, if you have one
-EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
- echo $(top_builddir)/../expect/expect ; \
- else echo expect ; fi`
-
-RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
- echo $(top_srcdir)/../dejagnu/runtest ; \
- else echo runtest; fi`
-
-RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
deleted file mode 100644
index 180ce65b451..00000000000
--- a/libjava/testsuite/Makefile.in
+++ /dev/null
@@ -1,274 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-AR = @AR@
-AS = @AS@
-CC = @CC@
-COMPPATH = @COMPPATH@
-CPP = @CPP@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DIRLTDL = @DIRLTDL@
-DIVIDESPEC = @DIVIDESPEC@
-DLLTOOL = @DLLTOOL@
-EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
-EXCEPTIONSPEC = @EXCEPTIONSPEC@
-EXEEXT = @EXEEXT@
-FORCELIBGCCSPEC = @FORCELIBGCCSPEC@
-GCDEPS = @GCDEPS@
-GCINCS = @GCINCS@
-GCLIBS = @GCLIBS@
-GCOBJS = @GCOBJS@
-GCSPEC = @GCSPEC@
-GCTESTSPEC = @GCTESTSPEC@
-INCLTDL = @INCLTDL@
-LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
-LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
-LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
-LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
-LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
-LIBLTDL = @LIBLTDL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-PERL = @PERL@
-RANLIB = @RANLIB@
-SYSDEP_SOURCES = @SYSDEP_SOURCES@
-SYSTEMSPEC = @SYSTEMSPEC@
-THREADDEPS = @THREADDEPS@
-THREADINCS = @THREADINCS@
-THREADLIBS = @THREADLIBS@
-THREADOBJS = @THREADOBJS@
-THREADSPEC = @THREADSPEC@
-VERSION = @VERSION@
-ZDEPS = @ZDEPS@
-ZINCS = @ZINCS@
-ZLIBS = @ZLIBS@
-ZLIBSPEC = @ZLIBSPEC@
-ZLIBTESTSPEC = @ZLIBTESTSPEC@
-here = @here@
-libgcj_basedir = @libgcj_basedir@
-
-AUTOMAKE_OPTIONS = foreign dejagnu no-installinfo
-
-# Setup the testing framework, if you have one
-EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
- echo $(top_builddir)/../expect/expect ; \
- else echo expect ; fi`
-
-
-RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
- echo $(top_srcdir)/../dejagnu/runtest ; \
- else echo runtest; fi`
-
-
-RUNTESTFLAGS = @AM_RUNTESTFLAGS@
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_HEADER = ../include/config.h
-CONFIG_CLEAN_FILES =
-DIST_COMMON = ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = testsuite
-
-distdir: $(DISTFILES)
- here=`cd $(top_builddir) && pwd`; \
- top_distdir=`cd $(top_distdir) && pwd`; \
- distdir=`cd $(distdir) && pwd`; \
- cd $(top_srcdir) \
- && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign testsuite/Makefile
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-
-DEJATOOL = $(PACKAGE)
-
-RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir
-
-check-DEJAGNU: site.exp
- srcdir=`cd $(srcdir) && pwd`; export srcdir; \
- EXPECT=$(EXPECT); export EXPECT; \
- runtest=$(RUNTEST); \
- if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
- $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
- else echo "WARNING: could not find \`runtest'" 1>&2; :;\
- fi
-site.exp: Makefile
- @echo 'Making a new site.exp file...'
- @test ! -f site.bak || rm -f site.bak
- @echo '## these variables are automatically generated by make ##' > $@-t
- @echo '# Do not edit here. If you wish to override these values' >> $@-t
- @echo '# edit the last section' >> $@-t
- @echo 'set tool $(DEJATOOL)' >> $@-t
- @echo 'set srcdir $(srcdir)' >> $@-t
- @echo 'set objdir' `pwd` >> $@-t
- @echo 'set host_alias $(host_alias)' >> $@-t
- @echo 'set host_triplet $(host_triplet)' >> $@-t
- @echo 'set target_alias $(target_alias)' >> $@-t
- @echo 'set target_triplet $(target_triplet)' >> $@-t
- @echo 'set build_alias $(build_alias)' >> $@-t
- @echo 'set build_triplet $(build_triplet)' >> $@-t
- @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t
- @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
- @test ! -f site.exp || mv site.exp site.bak
- @mv $@-t site.exp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-info-am install-info \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libjava/testsuite/config/default.exp b/libjava/testsuite/config/default.exp
deleted file mode 100644
index 90967cccc18..00000000000
--- a/libjava/testsuite/config/default.exp
+++ /dev/null
@@ -1 +0,0 @@
-load_lib "standard.exp"
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
deleted file mode 100644
index cf9b9a95ba2..00000000000
--- a/libjava/testsuite/lib/libjava.exp
+++ /dev/null
@@ -1,669 +0,0 @@
-# Copyright (C) 1998, 1999, 2000 Free Software Foundation
-
-load_lib "libgloss.exp"
-
-# GCJ_UNDER_TEST is the compiler under test.
-
-global tmpdir
-
-if ![info exists tmpdir] {
- set tmpdir "/tmp"
-}
-
-# Read an `xfail' file if it exists. Returns a list of xfail tokens.
-proc libjava_read_xfail {file} {
- if {! [file exists $file]} {
- return ""
- }
- set fd [open $file r]
- set tokens [string trim [read $fd]]
- close $fd
- return $tokens
-}
-
-# Find a particular executable. FIXME: this relies on DejaGnu
-# internals. These should probably be exposed in a better way.
-proc libjava_find_program {prog} {
- global tool_root_dir
-
- set file [lookfor_file $tool_root_dir $prog]
- if { $file == "" } {
- set file [lookfor_file $tool_root_dir gcc/$prog];
- }
- if {$file == ""} {
- set file $prog
- }
- return $file
-}
-
-# Find `jv-scan'.
-proc find_jvscan {} {
- return [libjava_find_program jv-scan]
-}
-
-# Find `gcjh'.
-proc find_gcjh {} {
- return [libjava_find_program gcjh]
-}
-
-proc bytecompile_file { file objdir {classpath {}} } {
- global env
- global SUN_JAVAC
- set dirname [file dirname $file]
-
- # If JDK doesn't run on your platform but some other
- # JDK-compatible javac does, you may set SUN_JAVAC to point to it.
- # One of the most important properties of a SUN_JAVAC is that it
- # must create class-files even for classes that have not been
- # specified in the command line, but that were needed to compile
- # those that have. For example, Pizza won't do it, but you can
- # use `kaffe sun.tools.javac.Main', if you have Sun's classes.zip
- # in the kaffe's default search path.
- if ![info exists SUN_JAVAC] {
- if [info exists env(SUN_JAVAC)] {
- set SUN_JAVAC $env(SUN_JAVAC)
- } else {
- set SUN_JAVAC "javac"
- }
- }
-
- catch {unset env(CLASSPATH)}
- if {$classpath != ""} then {
- set env(CLASSPATH) $classpath
- }
- if {[catch {
- set here [pwd]
- cd $dirname
- set q [eval exec "$SUN_JAVAC [list $file] -d $objdir 2>@ stdout"]
- cd $here
- # "return" a result
- set q $q
- } msg]} then {
- verbose "couldn't compile $file: $msg"
- set r 0
- } else {
- set r 1
- }
- return $r
-}
-
-set libjava_initialized 0
-
-#
-# Build the status wrapper library as needed.
-#
-proc libjava_init { args } {
- global wrapper_file;
- global wrap_compile_flags;
- global libjava_initialized
- global GCJ_UNDER_TEST
- global TOOL_EXECUTABLE
- global original_ld_library_path
- global env
-
- if { $libjava_initialized == 1 } { return; }
-
- if ![info exists GCJ_UNDER_TEST] {
- if [info exists TOOL_EXECUTABLE] {
- set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
- } else {
- if [info exists env(GCJ)] {
- set GCJ_UNDER_TEST $env(GCJ)
- } else {
- set GCJ_UNDER_TEST "[find_gcj]"
- }
- }
- }
-
- if [info exists env(LD_LIBRARY_PATH)] {
- set original_ld_library_path $env(LD_LIBRARY_PATH)
- } else {
- if [info exists env(SHLIB_PATH)] {
- set original_ld_library_path $env(SHLIB_PATH)
- } else {
- set original_ld_library_path ""
- }
- }
-
- set wrapper_file "";
- set wrap_compile_flags "";
- if [target_info exists needs_status_wrapper] {
- set result [build_wrapper "testglue.o"];
- if { $result != "" } {
- set wrapper_file [lindex $result 0];
- set wrap_compile_flags [lindex $result 1];
- } else {
- warning "Status wrapper failed to build."
- }
- }
-
- set libjava_initialized 1
-}
-
-# Find a library. We know where libtool puts the actual libraries,
-# and we look there. The implementation is fairly hacky. We can't
-# compile with -nodefaultlibs, because that will also eliminate the
-# system libraries we need. In order to have gcj still work, it must
-# find the appropriate libraries so we must add -L options for their
-# paths. However we can't simply use those libraries; we still need
-# libtool for linking.
-proc libjava_find_lib {dir name} {
- global base_dir
- set gp [get_multilibs]
- foreach sub {.libs _libs} {
- if {$gp != ""} {
- if {[file exists $gp/$dir/$sub/lib${name}.a]} then {
- return "$gp/$dir/lib${name}.la -L$gp/$dir/$sub"
- }
- }
- set lib [findfile $base_dir/../../$dir/$sub/lib${name}.a \
- "$base_dir/../../$dir/lib${name}.la -L$base_dir/../../$dir/$sub" \
- ""]
- if {$lib != ""} {
- return $lib
- }
- }
- return ""
-}
-
-# Compute arguments needed for compiler. MODE is a libtool mode:
-# either compile or link.
-proc libjava_arguments {{mode compile}} {
- global base_dir
- global LIBJAVA
- global LIBGC
- global LIBQTHREADS
- global LIBZ
- global srcdir subdir objdir
- global TOOL_OPTIONS
- global GCJ_UNDER_TEST
- global tmpdir
- global runtests
- global env
-
- if [info exists LIBJAVA] {
- set libjava $LIBJAVA;
- } else {
- set libjava [libjava_find_lib libjava gcj]
- }
-
- if [info exists LIBGC] {
- set libgc $LIBGC;
- } else {
- set libgc [libjava_find_lib boehm-gc gcjgc]
- }
-
- if [info exists LIBQTHREADS] {
- set libqthreads $LIBQTHREADS
- } else {
- set libqthreads [libjava_find_lib qthreads gcjcoop]
- }
-
- if [info exists LIBZ] {
- set libz $LIBZ
- } else {
- set libz [libjava_find_lib zlib zgcj]
- }
-
- # FIXME: there's no way to determine whether -lpthread is
- # required. We should get this info from configure, or it should
- # just be in the compiler driver.
-
- verbose "using LIBJAVA = $libjava" 2
- verbose "using LIBGC = $libgc" 2
- verbose "using LIBQTHREADS = $libqthreads" 2
- verbose "using LIBZ = $libz" 2
- set args ""
-
- # Basically we want to build up a colon separated path list from
- # the value of $libjava.
-
- # First strip away any -L arguments.
- regsub -all -- "-L" $libjava "" ld_library_path
-
- # Then remove any -lgcj argument.
- regsub -all -- " -lgcj.*" $ld_library_path "" ld_library_path
-
- # First strip away any -L arguments.
- regsub -all -- "-L" $libgc $ld_library_path ld_library_path
-
- # Then remove any -lgcjgc argument.
- regsub -all -- " -lgcjgc.*" $ld_library_path "" ld_library_path
-
- # That's enough to make things work for the normal case.
- # If we wanted to handle an arbitrary value of libjava,
- # then we'd have to do a lot more work.
-
- # Set variables the dynamic linker looks at.
- global original_ld_library_path
- setenv LD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path"
- setenv SHLIB_PATH "$ld_library_path:$original_ld_library_path"
-
- # Set the CLASSPATH environment variable
- verbose "CLASSPATH is .:$srcdir/$subdir:$objdir/..:$objdir/../libgcj.zip"
- global env
- set env(CLASSPATH) ".:$srcdir/$subdir:$objdir/..:$objdir/../libgcj.zip"
-
- global wrapper_file wrap_compile_flags;
- lappend args "additional_flags=$wrap_compile_flags";
- lappend args "libs=$wrapper_file";
- lappend args "libs=$libjava";
- lappend args "libs=$libgc";
- lappend args "libs=$libqthreads"
- lappend args "libs=$libz"
- lappend args debug
-
- if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
- lappend args "libs=${gluefile}"
- lappend args "ldflags=$wrap_flags"
- }
-
- if [info exists TOOL_OPTIONS] {
- lappend args "additional_flags=$TOOL_OPTIONS"
- }
-
- # Search for libtool. We need it to link.
- set found_compiler 0
- set d [absolute $objdir]
- foreach x {. .. ../.. ../../..} {
- if {[file exists $d/$x/libtool]} then {
- # We have to run silently to avoid DejaGNU lossage.
- lappend args \
- "compiler=$d/$x/libtool --silent --mode=$mode $GCJ_UNDER_TEST -B$objdir/../"
- set found_compiler 1
- break
- }
- }
- if {! $found_compiler} {
- # Append -B$objdir/../ so that we find libgcj.spec before it
- # is installed.
- lappend args "compiler=$GCJ_UNDER_TEST -B$objdir/../"
- }
-
- return $args
-}
-
-
-#
-# Run the test specified by srcfile and resultfile. compile_args and
-# exec_args are options telling this proc how to work.
-#
-proc test_libjava_from_source { options srcfile compile_args inpfile resultfile exec_args } {
- global base_dir
- global LIBJAVA
- global LIBGC
- global srcdir subdir objdir
- global TOOL_OPTIONS
- global GCJ_UNDER_TEST
- global tmpdir
- global runtests
-
- # Make opts into an array.
- set opts(_) x
- unset opts(_)
- foreach item $exec_args {
- set opts($item) x
- }
-
- set errname [file rootname [file tail $srcfile]]
- if {! [runtest_file_p $runtests $errname]} {
- return
- }
-
- if {[info exists opts(no-link)]} {
- set mode compile
- } else {
- set mode link
- }
- set args [libjava_arguments $mode]
- if {! [info exists opts(no-link)]} {
- # Add the --main flag
- lappend args "additional_flags=--main=[file rootname [file tail $srcfile]]"
- if { $compile_args != "" } {
- lappend args "additional_flags=$compile_args"
- }
- }
-
- regsub "^.*/(\[^/.\]+)\[.\]\[^/]*$" "$srcfile" "\\1" out
- set executable "${objdir}/$out"
- if {[info exists opts(no-link)]} {
- append executable ".o"
- set target object
- } else {
- set target executable
- }
- if { $compile_args != "" } {
- set errname "$errname $compile_args"
- }
-
- set x [prune_warnings \
- [target_compile $srcfile "$executable" $target $args]]
- if {[info exists opts(xfail-gcj)]} {
- setup_xfail *-*-*
- }
- if { $x != "" } {
- verbose "target_compile failed: $x" 2
-
- if {[info exists opts(shouldfail)]} {
- pass "$errname compilation from source"
- return
- }
-
- fail "$errname compilation from source"
- if {[info exists opts(xfail-gcj)] || ! [info exists opts(no-exec)]} {
- setup_xfail "*-*-*"
- fail "$errname execution from source compiled test"
- setup_xfail "*-*-*"
- fail "$errname output from source compiled test"
- }
- return
- }
- if {[info exists opts(shouldfail)]} {
- fail "$errname compilation from source"
- return
- }
- pass "$errname compilation from source"
-
- if {[info exists opts(no-exec)]
- || [info exists opts(no-link)]} {
- return
- }
-
- set result [libjava_load $executable "" "$inpfile"];
- set status [lindex $result 0];
- set output [lindex $result 1];
- if {[info exists opts(xfail-exec)]} then {
- setup_xfail *-*-*
- }
- $status "$errname execution from source compiled test"
- if { $status != "pass" } {
- setup_xfail "*-*-*"
- fail "$errname execution from source compiled test"
- return;
- }
-
- verbose "resultfile is $resultfile"
- set id [open $resultfile r];
- set expected ""
- append expected [read $id];
- regsub -all "\r" "$output" "" output;
- regsub "\n*$" $expected "" expected
- regsub "\n*$" $output "" output
- regsub "^\n*" $expected "" expected
- regsub "^\n*" $output "" output
- regsub -all "\[ \t\]\[ \t\]*" $expected " " expected
- regsub -all "\[ \t\]*\n\n*" $expected "\n" expected
- regsub -all "\[ \t\]\[ \t\]*" $output " " output
- regsub -all "\[ \t\]*\n\n*" $output "\n" output
- verbose "expected is $expected"
- verbose "actual is $output"
- set passed 0;
- if {$options == "regexp_match"} {
- if [regexp $expected $output] {
- set passed 1;
- }
- } else {
- if { $expected == $output } {
- set passed 1;
- }
- }
- if {[info exists opts(xfail-output)]} {
- setup_xfail *-*-*
- }
- if { $passed == 1 } {
- pass "$errname output from source compiled test"
- } else {
- clone_output "expected was $expected"
- clone_output "output was $output"
- fail "$errname output from source compiled test"
- }
- close $id;
-}
-
-#
-# Run the test specified by srcfile and resultfile. compile_args and
-# exec_args are options telling this proc how to work.
-#
-proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile exec_args } {
- global base_dir
- global LIBJAVA
- global LIBGC
- global srcdir subdir objdir
- global TOOL_OPTIONS
- global GCJ_UNDER_TEST
- global tmpdir
- global runtests
-
- # Make opts into an array.
- set opts(_) x
- unset opts(_)
- foreach item $exec_args {
- set opts($item) x
- }
-
- set errname [file rootname [file tail $srcfile]]
- if {! [runtest_file_p $runtests $errname]} {
- return
- }
-
- # bytecompile files with Sun's compiler for now.
- set bc_ok [bytecompile_file $srcfile $objdir]
- # FIXME: assumes we are using javac to compile to bytecode.
- # This is not always the case.
- if {[info exists opts(xfail-javac)]} {
- setup_xfail *-*-*
- }
- if {! $bc_ok} then {
- if {[info exists opts(shouldfail)]} {
- pass "$errname byte compilation"
- return
- }
- fail "$errname byte compilation"
- setup_xfail "*-*-*"
- fail "$errname compilation from bytecode"
- if {! [info exists opts(no-exec)]} {
- setup_xfail "*-*-*"
- fail "$errname execution from bytecode->native test"
- setup_xfail "*-*-*"
- fail "$errname output from bytecode->native test"
- }
- return
- }
- if {[info exists opts(shouldfail)]} {
- fail "$errname byte compilation"
- return
- }
- pass "$errname byte compilation"
-
- # Find name to use for --main, and name of all class files.
- set jvscan [find_jvscan]
- verbose "jvscan is $jvscan"
- set main_name [string trim \
- [prune_warnings \
- [target_compile $srcfile "" none \
- "compiler=$jvscan additional_flags=--print-main"]]]
- verbose "main name is $main_name"
- set class_out [string trim \
- [prune_warnings \
- [target_compile $srcfile "" none \
- "compiler=$jvscan additional_flags=--list-class"]]]
- verbose "class list is $class_out"
-
- if {[string match "*parse error*" $main_name]
- || [string match "*parse error*" $class_out]} {
- # Do the remaining fails.
- setup_xfail "*-*-*"
- fail "$errname compilation from bytecode"
- if {! [info exists opts(no-exec)]} {
- setup_xfail "*-*-*"
- fail "$errname execution from bytecode->native test"
- setup_xfail "*-*-*"
- fail "$errname output from bytecode->native test"
- }
- return
- }
-
- # Turn "a b" into "a.class b.class".
- # Also, turn "foo.bar" into "foo/bar.class".
- set class_files {}
- foreach file [split [string trim $class_out]] {
- set file [join [split $file .] /]
- lappend class_files $objdir/$file.class
- }
-
- # Usually it is an error for a test program not to have a `main'
- # method. However, for no-exec tests it is ok. Treat no-link
- # like no-exec here.
- if {[info exists opts(no-link)]} {
- set opts(no-exec) x
- }
- set largs {}
- if {$main_name == ""} {
- if {! [info exists opts(no-exec)]} {
- perror "No `main' given in program $errname"
- return
- } else {
- set type object
- set mode compile
- }
- } else {
- set type executable
- lappend largs "additional_flags=--main=$main_name"
- set executable "${objdir}/$main_name"
- set mode link
- }
-
- # Initial arguments.
- set args [libjava_arguments $mode]
- eval lappend args $largs
-
- if { $compile_args != "" } {
- lappend args "additional_flags=$compile_args"
- }
-
- if { $compile_args != "" } {
- set errname "$errname $compile_args"
- }
-
- verbose "compilation command = $args" 2
- # When compiling and not linking, we have to build each .o
- # separately. We do this because DejaGNU's target_compile won't
- # accept an empty "destfile" argument when the mode is "compile".
- if {$mode == "compile"} {
- foreach c_file $class_files {
- set executable [file rootname [file tail $c_file]].o
- set x [prune_warnings \
- [target_compile $c_file "$executable" $type $args]]
- if {$x != ""} {
- break
- }
- }
- } else {
- set x [prune_warnings \
- [target_compile $class_files "$executable" $type $args]]
- }
- if {[info exists opts(xfail-byte)]} {
- setup_xfail *-*-*
- }
- if { $x != "" } {
- verbose "target_compile failed: $x" 2
- fail "$errname compilation from bytecode"
- setup_xfail "*-*-*"
- if {! [info exists opts(no-exec)]} {
- fail "$errname execution from bytecode->native test"
- setup_xfail "*-*-*"
- fail "$errname output from bytecode->native test"
- }
- return;
- }
- pass "$errname compilation from bytecode"
-
- if {[info exists opts(no-exec)]} {
- return
- }
-
- set result [libjava_load $executable "" "$inpfile"];
- set status [lindex $result 0];
- set output [lindex $result 1];
- if {[info exists opts(xfail-exec)]} {
- setup_xfail *-*-*
- }
- $status "$errname execution from bytecode->native test"
- if { $status != "pass" } {
- setup_xfail "*-*-*"
- fail "$errname output from bytecode->native test"
- return;
- }
-
- verbose "resultfile is $resultfile"
- set id [open $resultfile r];
- set expected ""
- append expected [read $id];
- regsub -all "\r" "$output" "" output;
- regsub "\n*$" $expected "" expected
- regsub "\n*$" $output "" output
- regsub "^\n*" $expected "" expected
- regsub "^\n*" $output "" output
- regsub -all "\[ \t\]\[ \t\]*" $expected " " expected
- regsub -all "\[ \t\]*\n\n*" $expected "\n" expected
- regsub -all "\[ \t\]\[ \t\]*" $output " " output
- regsub -all "\[ \t\]*\n\n*" $output "\n" output
- verbose "expected is $expected"
- verbose "actual is $output"
- set passed 0;
- if {[info exists opts(xfail-output)]} {
- setup_xfail *-*-*
- }
- if {$options == "regexp_match"} {
- if [regexp $expected $output] {
- set passed 1;
- }
- } else {
- if { $expected == $output } {
- set passed 1;
- }
- }
- if { $passed == 1 } {
- pass "$errname output from bytecode->native test"
- } else {
- clone_output "expected was $expected"
- clone_output "output was $output"
- fail "$errname output from bytecode->native test"
- }
- close $id;
-}
-
-#
-# Run the test specified by srcfile and resultfile. compile_args and
-# exec_args are options telling this proc how to work.
-# `no-link' don't try to link the program
-# `no-exec' don't try to run the test
-# `xfail-gcj' compilation from source will fail
-# `xfail-javac' compilation with javac will fail
-# `xfail-gcjC' compilation with gcj -C will fail
-# `shouldfail' compilation from source is supposed to fail
-# This is different from xfail, which marks a known
-# failure that we just havne't fixed.
-# A compilation marked this way should fail with any
-# front end.
-# `xfail-byte' compilation from bytecode will fail
-# `xfail-exec' exec will fail
-# `xfail-output' output will be wrong
-#
-proc test_libjava { options srcfile compile_args inpfile resultfile exec_args } {
- test_libjava_from_source $options $srcfile $compile_args $inpfile $resultfile $exec_args
- test_libjava_from_javac $options $srcfile $compile_args $inpfile $resultfile $exec_args
- }
-
-#
-# libjava_version -- extract and print the version number of libjavap
-#
-proc default_libjava_version {} {
-}
-
-proc default_libjava_start { } {
-}
-
-# Local Variables:
-# tcl-indent-level:4
-# End:
diff --git a/libjava/testsuite/libjava.compile/BlankFinal.java b/libjava/testsuite/libjava.compile/BlankFinal.java
deleted file mode 100644
index be5bf8e9a0f..00000000000
--- a/libjava/testsuite/libjava.compile/BlankFinal.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Test to see if "blank final" variables work.
-// From Mo DeJong <mdejong@cygnus.com>
-
-public class BlankFinal {
- static final boolean cond;
-
- static {
- try
- {
- cond = true;
- }
- catch(Exception e) {
- // do nothing
- }
- }
-}
diff --git a/libjava/testsuite/libjava.compile/Case.java b/libjava/testsuite/libjava.compile/Case.java
deleted file mode 100644
index c5eb1d51947..00000000000
--- a/libjava/testsuite/libjava.compile/Case.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Simple compiler test.
-
-public class Case
-{
- public static int foo (int i, support.Case x)
- {
- switch (i)
- {
- case x.A:
- return 1;
- default:
- return 0;
- }
- }
-}
diff --git a/libjava/testsuite/libjava.compile/G19990210_1.java b/libjava/testsuite/libjava.compile/G19990210_1.java
deleted file mode 100644
index 9404f71f6ab..00000000000
--- a/libjava/testsuite/libjava.compile/G19990210_1.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : G19990210_1 */
-/* : */
-/* Cause : */
-/* : */
-/* Message : G19990210_1.java: In class `G19990210_1': */
-/* G19990210_1.java: In method `foo()': */
-/* G19990210_1.java:8: Unreachable statement. */
-/* return 0; */
-/* ^ */
-/* 1 error */
-/*-------------------------------------------------------------------------*/
-public class G19990210_1 {
- int foo() {
- try { ; } finally { ; }
- return 0;
- }
-}
diff --git a/libjava/testsuite/libjava.compile/G19990210_2.java b/libjava/testsuite/libjava.compile/G19990210_2.java
deleted file mode 100644
index 3ad7d28ba26..00000000000
--- a/libjava/testsuite/libjava.compile/G19990210_2.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : G19990210_2 */
-/* : */
-/* Cause : */
-/* : */
-/* Message : G19990210_2.java: In class `G19990210_2': */
-/* : G19990210_2.java: In method `foo()': */
-/* : G19990210_2.java:5: Missing return statement. */
-/* : } */
-/* : ^ */
-/* : 1 error */
-/*-------------------------------------------------------------------------*/
-public class G19990210_2 {
- public int foo () {
- return 1;
- ;
- }
-}
diff --git a/libjava/testsuite/libjava.compile/G19990210_3.java b/libjava/testsuite/libjava.compile/G19990210_3.java
deleted file mode 100644
index 36a56fdf81a..00000000000
--- a/libjava/testsuite/libjava.compile/G19990210_3.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : G19990210_3 */
-/* : */
-/* Cause : */
-/* : */
-/* Message : G19990210_3.java: In class `G19990210_3': */
-/* : G19990210_3.java: In method `foo()': */
-/* : G19990210_3.java:23: Invalid argument to `++'. */
-/* : o.i++; */
-/* : ^ */
-/* : 1 error */
-/*-------------------------------------------------------------------------*/
-public class G19990210_3 {
- static void foo() {
- bar o = new bar();
- synchronized(o) {
- o.i++;
- }
- }
-}
-class bar {
- static int i;
-}
diff --git a/libjava/testsuite/libjava.compile/G19990217_01.java b/libjava/testsuite/libjava.compile/G19990217_01.java
deleted file mode 100644
index 3697dbe230c..00000000000
--- a/libjava/testsuite/libjava.compile/G19990217_01.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : G19990217_01 */
-/* : */
-/* Cause : Compiler seems to run endlessly. */
-/* : */
-/* Message : No message. It's not stop to compile. */
-/*-------------------------------------------------------------------------*/
-
-public class G19990217_01 {
- int foo() {
- try {
- return 0;
- }
- finally { ; }
- }
-}
diff --git a/libjava/testsuite/libjava.compile/G19990217_02.java b/libjava/testsuite/libjava.compile/G19990217_02.java
deleted file mode 100644
index 8c290f23b06..00000000000
--- a/libjava/testsuite/libjava.compile/G19990217_02.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : G19990217_02 */
-/* : */
-/* Cause : */
-/* : */
-/* Message : Can't access class `foo.bar'. */
-/* : Only public classes and interfaces in other packages can be */
-/* : accessed. */
-/* : public class G19990217_02 extends bar { */
-/* : ^ */
-/*-------------------------------------------------------------------------*/
-package foo;
-public class G19990217_02 extends bar {
-}
-class bar {
-}
diff --git a/libjava/testsuite/libjava.compile/G19990217_02.no-link b/libjava/testsuite/libjava.compile/G19990217_02.no-link
deleted file mode 100644
index e69cdecc103..00000000000
--- a/libjava/testsuite/libjava.compile/G19990217_02.no-link
+++ /dev/null
@@ -1 +0,0 @@
-Don't link me
diff --git a/libjava/testsuite/libjava.compile/G19990225_01.java b/libjava/testsuite/libjava.compile/G19990225_01.java
deleted file mode 100644
index f20f473f83a..00000000000
--- a/libjava/testsuite/libjava.compile/G19990225_01.java
+++ /dev/null
@@ -1,7 +0,0 @@
-public class G19990225_01 {
- static int foo ;
- static {
- foo = 0;
- }
-}
-
diff --git a/libjava/testsuite/libjava.compile/MethodFailure4.java b/libjava/testsuite/libjava.compile/MethodFailure4.java
deleted file mode 100644
index bed3a0e1311..00000000000
--- a/libjava/testsuite/libjava.compile/MethodFailure4.java
+++ /dev/null
@@ -1,40 +0,0 @@
-import java.util.*;
-
-public class MethodFailure4 {
-
- public static String call(A obj) {
- return "A";
- }
- public static String call(I obj) {
- return "I";
- }
-
- interface I {}
- static class A {}
- static class B extends A implements I {}
- static class C extends B {}
-
-
- public static A getA() {
- return new A();
- }
-
- public static B getB() {
- return new B();
- }
-
- public static C getC() {
- return new C();
- }
-
- public static I getI() {
- return new C();
- }
-
- // this method invocation is ambiguous
-
- public static void main(String[] argv) {
- call( getC() );
- }
-
-}
diff --git a/libjava/testsuite/libjava.compile/MethodFailure4.xfail b/libjava/testsuite/libjava.compile/MethodFailure4.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/MethodFailure4.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/N19990310_01.java b/libjava/testsuite/libjava.compile/N19990310_01.java
deleted file mode 100644
index a9b9c192236..00000000000
--- a/libjava/testsuite/libjava.compile/N19990310_01.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* name : N19990310_01 */
-/* : */
-/* cause : When compare string with connected strings, error. */
-/* : */
-/* Message : Internal compiler error: program jc1 got */
-/* : fatal signal 11 */
-/*--------------------------------------------------------------------------*/
-
-public class N19990310_01 {
- public static void main(String[] args) {
-
- if ( "Hello" == ("Hel"+"lo") ) {
- }
-
- System.out.println("OK");
- }
-}
diff --git a/libjava/testsuite/libjava.compile/N19990317.java b/libjava/testsuite/libjava.compile/N19990317.java
deleted file mode 100644
index 669da3b824a..00000000000
--- a/libjava/testsuite/libjava.compile/N19990317.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* Name : N19990317.java */
-/* : */
-/* Cause : When initialize valiable whose name is equal to method */
-/* : return value, error. */
-/* : */
-/* Message : Internal compiler error: program jc1 got */
-/* : fatal signal 11 */
-/*--------------------------------------------------------------------------*/
-
-class Point {}
-
-public class N19990317 {
-
- Point func() {
- return null;
- }
-
- public static void main(String[] args) {
- int Point = 2;
- System.out.println("OK");
- }
-}
diff --git a/libjava/testsuite/libjava.compile/OperatorBenchmark.java b/libjava/testsuite/libjava.compile/OperatorBenchmark.java
deleted file mode 100644
index 03f660d848d..00000000000
--- a/libjava/testsuite/libjava.compile/OperatorBenchmark.java
+++ /dev/null
@@ -1,886 +0,0 @@
-
-/*
- * Copyright (c) 1996, 1997 by Doug Bell <dbell@shvn.com>. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- */
-
-
-// This file has been hacked to compile without the rest of the
-// benchmark code.
-
-class OperatorBenchmark {
-
- public int getSampleCount() { return 0; }
- public int getSampleMillis() { return 0; }
- public boolean go;
- public int useint[];
- public void startTest () { }
- public long finishTest () { return 0; }
- public void startTimer (boolean b) { }
- public void stopTimer (int a, int b) { }
- public void report (String s) { }
- public void println (String s) { }
-
- public int getTestTime () {
- return (int) (100 * getSampleCount() * getSampleMillis()) / 1000;
- }
-
- public int getRunningTime () {
- return (int) (1.1 * getTestTime());
- }
-
- public long runTest () {
- int dummy1 = 0, dummy2 = 0, dummy3 = 0; // occupy implicit index slots
- int cnt, ii;
- byte b1 = 1, b2 = 2, b3 = 3;
- short s1 = 1, s2 = 2, s3 = 3;
- int i1 = 1, i2 = 2, i3 = 3;
- long l1 = 1, l2 = 2, l3 = 3;
- float f1 = 1, f2 = 2, f3 = 3;
- double d1 = 1, d2 = 2, d3 = 3;
-
- startTest();
-
- println("--- byte operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1++;
- stopTimer(cnt, ii);
- }
- report("byte++");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 += b2;
- stopTimer(cnt, ii);
- }
- report("byte += byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 + b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte + byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 *= b2;
- stopTimer(cnt, ii);
- }
- report("byte *= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 * b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte * byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 *= 2;
- stopTimer(cnt, ii);
- }
- report("byte *= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 <<= 1;
- stopTimer(cnt, ii);
- }
- report("byte <<= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 %= b2;
- stopTimer(cnt, ii);
- }
- report("byte %= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 % b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte % byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 /= b2;
- stopTimer(cnt, ii);
- }
- report("byte /= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 / b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte / byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 /= 2;
- stopTimer(cnt, ii);
- }
- report("byte /= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 >>= 1;
- stopTimer(cnt, ii);
- }
- report("byte >>= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 >>= i2;
- stopTimer(cnt, ii);
- }
- report("byte >>= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 >> i3);
- stopTimer(cnt, ii);
- }
- report("byte = byte >> int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 |= b2;
- stopTimer(cnt, ii);
- }
- report("byte |= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 | b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte | byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 &= b2;
- stopTimer(cnt, ii);
- }
- report("byte &= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 & b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte & byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 ^= b2;
- stopTimer(cnt, ii);
- }
- report("byte ^= byte");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- b1 = (byte) (b2 ^ b3);
- stopTimer(cnt, ii);
- }
- report("byte = byte ^ byte");
-
-
- println("--- short operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1++;
- stopTimer(cnt, ii);
- }
- report("short++");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 += s2;
- stopTimer(cnt, ii);
- }
- report("short += short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 + s3);
- stopTimer(cnt, ii);
- }
- report("short = short + short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 *= s2;
- stopTimer(cnt, ii);
- }
- report("short *= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 * s3);
- stopTimer(cnt, ii);
- }
- report("short = short * short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 *= 2;
- stopTimer(cnt, ii);
- }
- report("short *= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 <<= 1;
- stopTimer(cnt, ii);
- }
- report("short <<= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 %= s2;
- stopTimer(cnt, ii);
- }
- report("short %= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 % s3);
- stopTimer(cnt, ii);
- }
- report("short = short % short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 /= s2;
- stopTimer(cnt, ii);
- }
- report("short /= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 / s3);
- stopTimer(cnt, ii);
- }
- report("short = short / short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 /= 2;
- stopTimer(cnt, ii);
- }
- report("short /= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 >>= 1;
- stopTimer(cnt, ii);
- }
- report("short >>= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 >>= i2;
- stopTimer(cnt, ii);
- }
- report("short >>= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 >> i3);
- stopTimer(cnt, ii);
- }
- report("short = short >> int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 |= s2;
- stopTimer(cnt, ii);
- }
- report("short |= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 | s3);
- stopTimer(cnt, ii);
- }
- report("short = short | short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 &= s2;
- stopTimer(cnt, ii);
- }
- report("short &= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 & s3);
- stopTimer(cnt, ii);
- }
- report("short = short & short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 ^= s2;
- stopTimer(cnt, ii);
- }
- report("short ^= short");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- s1 = (short) (s2 ^ s3);
- stopTimer(cnt, ii);
- }
- report("short = short ^ short");
-
-
- println("--- int operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1++;
- stopTimer(cnt, ii);
- }
- report("int++");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 += i2;
- stopTimer(cnt, ii);
- }
- report("int += int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = (i2 + i3);
- stopTimer(cnt, ii);
- }
- report("int = int + int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 *= i2;
- stopTimer(cnt, ii);
- }
- report("int *= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = (i2 * i3);
- stopTimer(cnt, ii);
- }
- report("int = int * int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 *= 2;
- stopTimer(cnt, ii);
- }
- report("int *= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 <<= 1;
- stopTimer(cnt, ii);
- }
- report("int <<= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 %= i2;
- stopTimer(cnt, ii);
- }
- report("int %= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = (i2 % i3);
- stopTimer(cnt, ii);
- }
- report("int = int % int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 /= i2;
- stopTimer(cnt, ii);
- }
- report("int /= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = (i2 / i3);
- stopTimer(cnt, ii);
- }
- report("int = int / int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 /= 2;
- stopTimer(cnt, ii);
- }
- report("int /= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 >>= 1;
- stopTimer(cnt, ii);
- }
- report("int >>= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 >>= i2;
- stopTimer(cnt, ii);
- }
- report("int >>= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = i2 >> i3;
- stopTimer(cnt, ii);
- }
- report("int = int >> int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 |= i2;
- stopTimer(cnt, ii);
- }
- report("int |= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = i2 | i3;
- stopTimer(cnt, ii);
- }
- report("int = int | int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 &= i2;
- stopTimer(cnt, ii);
- }
- report("int &= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = i2 & i3;
- stopTimer(cnt, ii);
- }
- report("int = int & int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 ^= i2;
- stopTimer(cnt, ii);
- }
- report("int ^= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- i1 = i2 ^ i3;
- stopTimer(cnt, ii);
- }
- report("int = int ^ int");
-
-
- println("--- long operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1++;
- stopTimer(cnt, ii);
- }
- report("long++");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 += l2;
- stopTimer(cnt, ii);
- }
- report("long += long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = (l2 + l3);
- stopTimer(cnt, ii);
- }
- report("long = long + long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 *= l2;
- stopTimer(cnt, ii);
- }
- report("long *= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = (l2 * l3);
- stopTimer(cnt, ii);
- }
- report("long = long * long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 *= 2;
- stopTimer(cnt, ii);
- }
- report("long *= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 <<= 1;
- stopTimer(cnt, ii);
- }
- report("long <<= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 %= l2;
- stopTimer(cnt, ii);
- }
- report("long %= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = (l2 % l3);
- stopTimer(cnt, ii);
- }
- report("long = long % long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 /= l2;
- stopTimer(cnt, ii);
- }
- report("long /= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = (l2 / l3);
- stopTimer(cnt, ii);
- }
- report("long = long / long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 /= 2;
- stopTimer(cnt, ii);
- }
- report("long /= 2");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 >>= 1;
- stopTimer(cnt, ii);
- }
- report("long >>= 1");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 >>= i2;
- stopTimer(cnt, ii);
- }
- report("long >>= int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = l2 >> i3;
- stopTimer(cnt, ii);
- }
- report("long = long >> int");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 |= l2;
- stopTimer(cnt, ii);
- }
- report("long |= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = l2 | l3;
- stopTimer(cnt, ii);
- }
- report("long = long | long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 &= l2;
- stopTimer(cnt, ii);
- }
- report("long &= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = l2 & l3;
- stopTimer(cnt, ii);
- }
- report("long = long & long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 ^= l2;
- stopTimer(cnt, ii);
- }
- report("long ^= long");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- l1 = l2 ^ l3;
- stopTimer(cnt, ii);
- }
- report("long = long ^ long");
-
-
- println("--- float operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 += f2;
- stopTimer(cnt, ii);
- }
- report("float += float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 = (float) (f2 + f3);
- stopTimer(cnt, ii);
- }
- report("float = float + float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 *= f2;
- stopTimer(cnt, ii);
- }
- report("float *= float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 = (float) (f2 * f3);
- stopTimer(cnt, ii);
- }
- report("float = float * float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 %= f2;
- stopTimer(cnt, ii);
- }
- report("float %= float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 = (float) (f2 % f3);
- stopTimer(cnt, ii);
- }
- report("float = float % float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 /= f2;
- stopTimer(cnt, ii);
- }
- report("float /= float");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- f1 = (float) (f2 / f3);
- stopTimer(cnt, ii);
- }
- report("float = float / float");
-
-
- println("--- double operators, local vars");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 += d2;
- stopTimer(cnt, ii);
- }
- report("double += double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 = (d2 + d3);
- stopTimer(cnt, ii);
- }
- report("double = double + double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 *= d2;
- stopTimer(cnt, ii);
- }
- report("double *= double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 = (d2 * d3);
- stopTimer(cnt, ii);
- }
- report("double = double * double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 %= d2;
- stopTimer(cnt, ii);
- }
- report("double %= double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 = (d2 % d3);
- stopTimer(cnt, ii);
- }
- report("double = double % double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 /= d2;
- stopTimer(cnt, ii);
- }
- report("double /= double");
-
- for (cnt = getSampleCount(); --cnt >= 0; ) {
- startTimer(true);
- for (ii = 0; go; ii++)
- d1 = (d2 / d3);
- stopTimer(cnt, ii);
- }
- report("double = double / double");
-
- useint[0] = dummy1; useint[1] = dummy2; useint[2] = dummy3;
- return finishTest();
- }
-} // class OperatorBenchmark
-
-// EOF
diff --git a/libjava/testsuite/libjava.compile/PR124.java b/libjava/testsuite/libjava.compile/PR124.java
deleted file mode 100644
index 2ec1fe9ea01..00000000000
--- a/libjava/testsuite/libjava.compile/PR124.java
+++ /dev/null
@@ -1,9 +0,0 @@
-import java.lang.reflect.*;
-
-public class PR124
-{
- public static void main (String[] args)
- {
- System.out.println (new InvocationTargetException ());
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR124.xfail b/libjava/testsuite/libjava.compile/PR124.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR124.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR127.java b/libjava/testsuite/libjava.compile/PR127.java
deleted file mode 100644
index 6a2e699a46b..00000000000
--- a/libjava/testsuite/libjava.compile/PR127.java
+++ /dev/null
@@ -1,11 +0,0 @@
-// Test case for PR127:
-// gcj dumps core on method invocation on a primitive type
-
-class PR127
-{
- void f()
- {
- int i;
- i.f();
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR127.xfail b/libjava/testsuite/libjava.compile/PR127.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR127.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR129_B.java b/libjava/testsuite/libjava.compile/PR129_B.java
deleted file mode 100644
index 238df999a27..00000000000
--- a/libjava/testsuite/libjava.compile/PR129_B.java
+++ /dev/null
@@ -1,9 +0,0 @@
-import support.PR129_A;
-
-public class PR129_B {
- public static void main ( String[] args ) {
- int length = PR129_A.strArr.length;
- System.out.println ( "Array length: " + length );
- }
-}
-
diff --git a/libjava/testsuite/libjava.compile/PR140.java b/libjava/testsuite/libjava.compile/PR140.java
deleted file mode 100644
index 0f59d6e1d68..00000000000
--- a/libjava/testsuite/libjava.compile/PR140.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class PR140 {
- public static void fill(int[] a) {
- for (int i = 0; i < a.length; i++) {
- a[i] = i;
- }
- }
- public static void main(String[] args) {
- int[] a = new int[3];
- fill(a);
- a.length = 3000;
- fill(a);
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR140.xfail b/libjava/testsuite/libjava.compile/PR140.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR140.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR163.java b/libjava/testsuite/libjava.compile/PR163.java
deleted file mode 100644
index 283c8ac1c9c..00000000000
--- a/libjava/testsuite/libjava.compile/PR163.java
+++ /dev/null
@@ -1,8 +0,0 @@
-// Test case for the PR gcj/163
-
-// Uninitalized final variables should not be permitted.
-
-class PR163
-{
- final int foo;
-}
diff --git a/libjava/testsuite/libjava.compile/PR163.xfail b/libjava/testsuite/libjava.compile/PR163.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR163.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR164.java b/libjava/testsuite/libjava.compile/PR164.java
deleted file mode 100644
index d3a288f1b51..00000000000
--- a/libjava/testsuite/libjava.compile/PR164.java
+++ /dev/null
@@ -1,6 +0,0 @@
-// Test from PR 164.
-
-class PR164
-{
- volatile final int foo = 8;
-}
diff --git a/libjava/testsuite/libjava.compile/PR164.xfail b/libjava/testsuite/libjava.compile/PR164.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR164.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR206.java b/libjava/testsuite/libjava.compile/PR206.java
deleted file mode 100644
index 018391271ad..00000000000
--- a/libjava/testsuite/libjava.compile/PR206.java
+++ /dev/null
@@ -1,7 +0,0 @@
-class PR206 {
-
- PR206 (String s)
- {
- support.PR206_A x;
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR207.java b/libjava/testsuite/libjava.compile/PR207.java
deleted file mode 100644
index 97b10f0aa27..00000000000
--- a/libjava/testsuite/libjava.compile/PR207.java
+++ /dev/null
@@ -1,6 +0,0 @@
-class PR207 {
- PR207 (String s)
- {
- System.out.println (s + support.PR207_A.hello());
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR208.java b/libjava/testsuite/libjava.compile/PR208.java
deleted file mode 100644
index 0b5f5371936..00000000000
--- a/libjava/testsuite/libjava.compile/PR208.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class PR208
-{
- public String toString ()
- {
- StringBuffer sb = new StringBuffer("");
-
- sb.append (new java.util.Date().getTime() / 1000);
-
- try {
- }
- catch (java.io.IOException e) {
- }
-
- return sb.toString();
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR209.java b/libjava/testsuite/libjava.compile/PR209.java
deleted file mode 100644
index d4539c6fa79..00000000000
--- a/libjava/testsuite/libjava.compile/PR209.java
+++ /dev/null
@@ -1,4 +0,0 @@
-public class PR209
-{
- public int i = java.sql.Types.TINYINT;
-}
diff --git a/libjava/testsuite/libjava.compile/PR224.java b/libjava/testsuite/libjava.compile/PR224.java
deleted file mode 100644
index eae4032e123..00000000000
--- a/libjava/testsuite/libjava.compile/PR224.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// File PrivateInnerInterface.java
-
-public class PR224 {
- private interface Inter {}
-}
-
-
-class PrivateInnerInterface_Test extends PR224 {
- void foo() {
- // Implement the interface with an innerclass
- Inter i = new Inter() { } ;
- }
-}
-
-// This should fail to compile because Inter is private in the superclass
-
diff --git a/libjava/testsuite/libjava.compile/PR224.xfail b/libjava/testsuite/libjava.compile/PR224.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR224.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/PR232.java b/libjava/testsuite/libjava.compile/PR232.java
deleted file mode 100644
index 516b0ed1f6c..00000000000
--- a/libjava/testsuite/libjava.compile/PR232.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Use of a "static final String" as a monitor causes ICE
-// in jc1 (20000520)
-//
-// Program received signal SIGSEGV, Segmentation fault.
-// put_decl_node (node=0x0) at ../../../gcc/java/lang.c:413
-// 413 if (TREE_CODE (node) == POINTER_TYPE)
-
-class PR232
-{
- static final String lock= "LOCK";
-
- void a()
- {
- synchronized(lock) {}
- }
-};
diff --git a/libjava/testsuite/libjava.compile/PR232B.java b/libjava/testsuite/libjava.compile/PR232B.java
deleted file mode 100644
index 0c126531d67..00000000000
--- a/libjava/testsuite/libjava.compile/PR232B.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// This triggers a failure when compiling from bytecode (only) with 20000519
-
-public class PR232B
-{
- private static Object lock = new Object();
- private static PR232B instance = null;
-
- public void a()
- {
- synchronized(lock)
- {
- instance = new PR232B();
- }
- }
-};
diff --git a/libjava/testsuite/libjava.compile/PR234.java b/libjava/testsuite/libjava.compile/PR234.java
deleted file mode 100644
index 61a11581f78..00000000000
--- a/libjava/testsuite/libjava.compile/PR234.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// PR234.java
-public class PR234 extends B implements I
-{
- public static void main(String args[])
- {
- PR234 x = new PR234();
- x.m();
- }
-}
-
-// B.java
-class B
-{
- public void m()
- {
- System.out.println ("yes");
- }
-}
-
-// I.java
-interface I
-{
- public void m();
-}
diff --git a/libjava/testsuite/libjava.compile/PR235.java b/libjava/testsuite/libjava.compile/PR235.java
deleted file mode 100644
index 46a727b2a67..00000000000
--- a/libjava/testsuite/libjava.compile/PR235.java
+++ /dev/null
@@ -1,7 +0,0 @@
-public class PR235
-{
- public static Class[] ConstructArgs =
- {
- Integer.TYPE
- };
-}
diff --git a/libjava/testsuite/libjava.compile/PR238.java b/libjava/testsuite/libjava.compile/PR238.java
deleted file mode 100644
index b876524ffdf..00000000000
--- a/libjava/testsuite/libjava.compile/PR238.java
+++ /dev/null
@@ -1,9 +0,0 @@
-public class PR238
-{
- void foo(A a)
- {
- a.toString();
- }
-
- class A {}
-}
diff --git a/libjava/testsuite/libjava.compile/PR295.java b/libjava/testsuite/libjava.compile/PR295.java
deleted file mode 100644
index d884a26d8c3..00000000000
--- a/libjava/testsuite/libjava.compile/PR295.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class PR295 {
- public class csemi {
- };
-
- public int foo;
-
- public interface isemi {
- };
-
- public int bar;
-}
diff --git a/libjava/testsuite/libjava.compile/PR310.java b/libjava/testsuite/libjava.compile/PR310.java
deleted file mode 100644
index a77f6a83e86..00000000000
--- a/libjava/testsuite/libjava.compile/PR310.java
+++ /dev/null
@@ -1,9 +0,0 @@
-public class PR310
-{
- void m (long l)
- {
- switch (l)
- {
- }
- }
-}
diff --git a/libjava/testsuite/libjava.compile/PR310.xfail b/libjava/testsuite/libjava.compile/PR310.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/PR310.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/Semi.java b/libjava/testsuite/libjava.compile/Semi.java
deleted file mode 100644
index 39b3edc84b8..00000000000
--- a/libjava/testsuite/libjava.compile/Semi.java
+++ /dev/null
@@ -1,8 +0,0 @@
-// Simple compiler test.
-
-public class Semi
-{
- Semi () { };
-}
-
-
diff --git a/libjava/testsuite/libjava.compile/Statics.java b/libjava/testsuite/libjava.compile/Statics.java
deleted file mode 100644
index b86a57c409e..00000000000
--- a/libjava/testsuite/libjava.compile/Statics.java
+++ /dev/null
@@ -1,7 +0,0 @@
-// Simple compiler test.
-
-public interface Statics {
-
- public static final int OwnerGrabButtonMask = 1<<24;
-
-}
diff --git a/libjava/testsuite/libjava.compile/Twice.java b/libjava/testsuite/libjava.compile/Twice.java
deleted file mode 100644
index d80760f4dd5..00000000000
--- a/libjava/testsuite/libjava.compile/Twice.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Simple compiler test.
-
-public class Twice
-{
- Twice (boolean q)
- {
- if (q)
- for (int p = 0; p < 10; p++);
- else
- for (int p = 0; p < 10; p++);
- }
-}
-
-
diff --git a/libjava/testsuite/libjava.compile/Where.java b/libjava/testsuite/libjava.compile/Where.java
deleted file mode 100644
index 08fcc78b1d6..00000000000
--- a/libjava/testsuite/libjava.compile/Where.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// Simple compiler test.
-
-public final class Where implements support.Waldo
-{
- int WhereIsWaldo ()
- {
- // The compiler should find 'here' in support.Waldo.
- return here;
- }
-}
-
-
diff --git a/libjava/testsuite/libjava.compile/Where.xfail b/libjava/testsuite/libjava.compile/Where.xfail
deleted file mode 100644
index 755ab8794df..00000000000
--- a/libjava/testsuite/libjava.compile/Where.xfail
+++ /dev/null
@@ -1 +0,0 @@
-xfail-gcj
diff --git a/libjava/testsuite/libjava.compile/abstr.java b/libjava/testsuite/libjava.compile/abstr.java
deleted file mode 100644
index f59db268bc3..00000000000
--- a/libjava/testsuite/libjava.compile/abstr.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// This fails to compile from bytecode for some versions of the compiler.
-
-interface foo
-{
- public void start ();
-}
-
-public abstract class abstr implements foo
-{
- public void doit ()
- {
- start ();
- }
-}
diff --git a/libjava/testsuite/libjava.compile/abstr.xfail b/libjava/testsuite/libjava.compile/abstr.xfail
deleted file mode 100644
index 76540afa49b..00000000000
--- a/libjava/testsuite/libjava.compile/abstr.xfail
+++ /dev/null
@@ -1 +0,0 @@
-no-link
diff --git a/libjava/testsuite/libjava.compile/assignment.java b/libjava/testsuite/libjava.compile/assignment.java
deleted file mode 100644
index ec05f73a503..00000000000
--- a/libjava/testsuite/libjava.compile/assignment.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// A definite assignment test.
-
-public class assignment
-{
- public static Byte foo ()
- {
- Byte b;
-
- while (true) {
- try {
- b = Byte.decode ("42");
- break;
- } catch (NumberFormatException ignored) {}
- }
-
- return b;
- }
-}
-
diff --git a/libjava/testsuite/libjava.compile/assignment_2.java b/libjava/testsuite/libjava.compile/assignment_2.java
deleted file mode 100644
index 38b58db76ee..00000000000
--- a/libjava/testsuite/libjava.compile/assignment_2.java
+++ /dev/null
@@ -1,32 +0,0 @@
-
-/**
- * assignment_2.java
- *
- *
- * Created: Thu Apr 13 16:48:40 2000
- *
- * @author Oliver Brandt
- * @version
- */
-
-public class assignment_2 {
- public assignment_2 ()
- {
- }
-
- public int foo ()
- {
- int result;
-
- try
- {
- result = 0;
- }
- finally
- {
- }
- return result;
-
- }
-
-}// test
diff --git a/libjava/testsuite/libjava.compile/block.java b/libjava/testsuite/libjava.compile/block.java
deleted file mode 100644
index 6bf99b13135..00000000000
--- a/libjava/testsuite/libjava.compile/block.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Class block
-// Generated on Thu Apr 20 15:03:23 PDT 2000
-// It is illegal to use modifiers for in-block (local) classes
-
-class block {
- public void foo ()
- {
- public class xxx {}
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `block'...");
- }
-}
diff --git a/libjava/testsuite/libjava.compile/block.xfail b/libjava/testsuite/libjava.compile/block.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/block.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/comment.java b/libjava/testsuite/libjava.compile/comment.java
deleted file mode 100644
index ebc5a974de0..00000000000
--- a/libjava/testsuite/libjava.compile/comment.java
+++ /dev/null
@@ -1,7 +0,0 @@
-public class comment
-{
- /***
- // This is supposed to be a comment.
- */
-}
-
diff --git a/libjava/testsuite/libjava.compile/compile.exp b/libjava/testsuite/libjava.compile/compile.exp
deleted file mode 100644
index 4a358a6d37d..00000000000
--- a/libjava/testsuite/libjava.compile/compile.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-global srcdir subdir
-
-catch "glob -nocomplain ${srcdir}/${subdir}/*.java" srcfiles
-verbose "srcfiles are $srcfiles"
-
-set prefix ""
-foreach x $srcfiles {
- set args [libjava_read_xfail [file rootname $x].xfail]
- if {[file exists [file rootname $x].no-link]} {
- lappend args no-link
- }
- lappend args no-exec
-
- test_libjava "" "$x" "" "" "" $args
- test_libjava "" "$x" "-O" "" "" $args
-}
-
-# Local Variables:
-# tcl-indent-level:4
-# End:
diff --git a/libjava/testsuite/libjava.compile/euc_comment1.java b/libjava/testsuite/libjava.compile/euc_comment1.java
deleted file mode 100644
index bb556236eac..00000000000
--- a/libjava/testsuite/libjava.compile/euc_comment1.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class euc_comment1 {
- public static void main(String[] args) {
- /* ÆþÎÏ */
- }
-}
diff --git a/libjava/testsuite/libjava.compile/euc_comment2.java b/libjava/testsuite/libjava.compile/euc_comment2.java
deleted file mode 100644
index 9a9426f8005..00000000000
--- a/libjava/testsuite/libjava.compile/euc_comment2.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class euc_comment2 {
- public static void main(String[] args) {
- // ÆþÎÏ
- }
-}
diff --git a/libjava/testsuite/libjava.compile/euc_comment3.java b/libjava/testsuite/libjava.compile/euc_comment3.java
deleted file mode 100644
index b0f35d09d34..00000000000
--- a/libjava/testsuite/libjava.compile/euc_comment3.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class euc_comment3 {
- public static void main(String[] args) {
- // ÆþÎÏ
- }
-}
diff --git a/libjava/testsuite/libjava.compile/iface.java b/libjava/testsuite/libjava.compile/iface.java
deleted file mode 100644
index 6a57fcf4bf7..00000000000
--- a/libjava/testsuite/libjava.compile/iface.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// Test for searching through interface extension.
-
-interface basei
-{
- public int method ();
-}
-
-interface basei2
-{
- public int confuse ();
-}
-
-interface derivedi extends basei, basei2
-{
- public void nothing ();
-}
-
-public class iface
-{
- public int try_it (derivedi x)
- {
- return x.method ();
- }
-}
diff --git a/libjava/testsuite/libjava.compile/inner_1.java b/libjava/testsuite/libjava.compile/inner_1.java
deleted file mode 100644
index d9a0210a928..00000000000
--- a/libjava/testsuite/libjava.compile/inner_1.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// inner class regression test.
-
-package bar.foo;
-
-class other {
- class foo {}
-}
-
-class inner_1 {
- static void bar () {
- inner_1 xxxx; // Refers to inner_1
- bar.foo.another xyz; // Refers to non inner another
- bar.foo.other.foo X; // OK to declare, inner class foo
- bar.foo.inner_1.t bar; // Inner class t
- inner_1.t foo; // Inner class t
- t foobar; // Inner class t
- other.foo zag; // Valid for declaration.
- t.ungah x;
- }
- void foo () {
- // z.t.u foo;
- t t1 = new t();
- t1.print ();
- new t().print();
- }
-
- class t {
- void print () {
- System.out.println ("This is `inner_1.t'");
- }
- class ungah {}
- }
-}
-
-class another {
-}
diff --git a/libjava/testsuite/libjava.compile/inner_data.java b/libjava/testsuite/libjava.compile/inner_data.java
deleted file mode 100644
index 63d4902f366..00000000000
--- a/libjava/testsuite/libjava.compile/inner_data.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Test referencing protected data from parent of inner class.
-
-import java.util.Random;
-
-public class inner_data
-{
- private class Randomer extends Random {
- public long xxx ()
- {
- return seed;
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.compile/inner_inherit.java b/libjava/testsuite/libjava.compile/inner_inherit.java
deleted file mode 100644
index 44ad6a96c22..00000000000
--- a/libjava/testsuite/libjava.compile/inner_inherit.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Test to insure that we can refer to methods inherited through an
-// inner class.
-
-public class inner_inherit
-{
- private class Agent extends Thread {
- }
-
- public void f ()
- {
- Agent a = new Agent();
- a.setDaemon(true);
- }
-}
diff --git a/libjava/testsuite/libjava.compile/inner_priv.java b/libjava/testsuite/libjava.compile/inner_priv.java
deleted file mode 100644
index 0601c68bff4..00000000000
--- a/libjava/testsuite/libjava.compile/inner_priv.java
+++ /dev/null
@@ -1,11 +0,0 @@
-// Test to ensure that private inner classes are ok.
-
-public class inner_priv
-{
- private class K
- {
- int z;
- }
-
- K foo;
-}
diff --git a/libjava/testsuite/libjava.compile/inner_pub.java b/libjava/testsuite/libjava.compile/inner_pub.java
deleted file mode 100644
index 616488fa484..00000000000
--- a/libjava/testsuite/libjava.compile/inner_pub.java
+++ /dev/null
@@ -1,11 +0,0 @@
-// Test to ensure that public inner classes work.
-
-public class inner_pub
-{
- public class really_inner
- {
- int z;
- }
-
- really_inner foo;
-}
diff --git a/libjava/testsuite/libjava.compile/invokeinterface/A.java b/libjava/testsuite/libjava.compile/invokeinterface/A.java
deleted file mode 100644
index a4167cde2f7..00000000000
--- a/libjava/testsuite/libjava.compile/invokeinterface/A.java
+++ /dev/null
@@ -1,4 +0,0 @@
-public interface A
-{
- public void a();
-}
diff --git a/libjava/testsuite/libjava.compile/invokeinterface/B.java b/libjava/testsuite/libjava.compile/invokeinterface/B.java
deleted file mode 100644
index 3661e096a91..00000000000
--- a/libjava/testsuite/libjava.compile/invokeinterface/B.java
+++ /dev/null
@@ -1,4 +0,0 @@
-public interface B extends A
-{
- public void b();
-}
diff --git a/libjava/testsuite/libjava.compile/invokeinterface/Test.java b/libjava/testsuite/libjava.compile/invokeinterface/Test.java
deleted file mode 100644
index 2fb793f7934..00000000000
--- a/libjava/testsuite/libjava.compile/invokeinterface/Test.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class Test implements B
-{
- public static void main(String args[])
- {
- Test t = new Test();
- B a = (B) t;
- a.a();
- }
-
- public void a()
- {
- System.out.println("A");
- }
-
- public void b()
- {
- System.out.println("B");
- }
-}
diff --git a/libjava/testsuite/libjava.compile/not_a_redef.java b/libjava/testsuite/libjava.compile/not_a_redef.java
deleted file mode 100644
index 7a2f55cb797..00000000000
--- a/libjava/testsuite/libjava.compile/not_a_redef.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// This is not a redef.
-
-class not_a_redef {
- class baz { class bar { class foo {}} class foo {}}
-}
diff --git a/libjava/testsuite/libjava.compile/perc.java b/libjava/testsuite/libjava.compile/perc.java
deleted file mode 100644
index 8dc2f6f01fb..00000000000
--- a/libjava/testsuite/libjava.compile/perc.java
+++ /dev/null
@@ -1,9 +0,0 @@
-// This generates code that `gcj -C' doesn't like.
-
-public class perc
-{
- public static void main (String[] args)
- {
- System.out.println (27.0 % 10.0);
- }
-}
diff --git a/libjava/testsuite/libjava.compile/plusplus.java b/libjava/testsuite/libjava.compile/plusplus.java
deleted file mode 100644
index b8e9bd9fcbb..00000000000
--- a/libjava/testsuite/libjava.compile/plusplus.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// Test from MoT <Sebastien.Villemot@ens.fr>.
-
-class plusplus {
- public static void main(String[] args)
- {
- int n = 5;
- int[] gnu = new int[10];
- gnu[n]++;
- }
-}
diff --git a/libjava/testsuite/libjava.compile/pr172.java b/libjava/testsuite/libjava.compile/pr172.java
deleted file mode 100644
index 4dc26d04e71..00000000000
--- a/libjava/testsuite/libjava.compile/pr172.java
+++ /dev/null
@@ -1,9 +0,0 @@
-// jc1 (2.96 20000313) says "`A_Inner' not found"
-
-public class pr172
-{
- class A_Inner
- {
- A_Inner (A_Inner i) {}
- }
-}
diff --git a/libjava/testsuite/libjava.compile/pr174.java b/libjava/testsuite/libjava.compile/pr174.java
deleted file mode 100644
index b819372ce7f..00000000000
--- a/libjava/testsuite/libjava.compile/pr174.java
+++ /dev/null
@@ -1,15 +0,0 @@
-class A
-{
-}
-
-public class pr174
-{
- public pr174()
- {
- A a = new A();
- }
-
- class A
- {
- }
-}
diff --git a/libjava/testsuite/libjava.compile/pr176.java b/libjava/testsuite/libjava.compile/pr176.java
deleted file mode 100644
index a52b5bbf808..00000000000
--- a/libjava/testsuite/libjava.compile/pr176.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// gcj (20000313) reports "Type `x' not found in the declaration of the
-// return type of method `getX'."
-
-public class pr176
-{
- class A
- {
- x getX()
- {
- return new x();
- }
-
- class x {}
- }
-}
diff --git a/libjava/testsuite/libjava.compile/redef1.java b/libjava/testsuite/libjava.compile/redef1.java
deleted file mode 100644
index a3e138a8c84..00000000000
--- a/libjava/testsuite/libjava.compile/redef1.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// A case of innerclass redefinition
-
-class redef1 {
- class redef1 {}
-}
diff --git a/libjava/testsuite/libjava.compile/redef1.xfail b/libjava/testsuite/libjava.compile/redef1.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef1.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/redef2.java b/libjava/testsuite/libjava.compile/redef2.java
deleted file mode 100644
index 9f8e5b85782..00000000000
--- a/libjava/testsuite/libjava.compile/redef2.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// A case of innerclass redefinition
-
-class redef2 {
- class foo {class redef2{}}
-}
diff --git a/libjava/testsuite/libjava.compile/redef2.xfail b/libjava/testsuite/libjava.compile/redef2.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef2.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/redef3.java b/libjava/testsuite/libjava.compile/redef3.java
deleted file mode 100644
index df638f1e34a..00000000000
--- a/libjava/testsuite/libjava.compile/redef3.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// A case of innerclass redefinition
-
-class redef3 {
- class foo { class bar {} class bar {}}
-}
diff --git a/libjava/testsuite/libjava.compile/redef3.xfail b/libjava/testsuite/libjava.compile/redef3.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef3.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/redef4.java b/libjava/testsuite/libjava.compile/redef4.java
deleted file mode 100644
index db4f4994466..00000000000
--- a/libjava/testsuite/libjava.compile/redef4.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// A case of innerclass redefinition
-
-class redef4 {
- class foo { class bar { class foo {}}}
-}
diff --git a/libjava/testsuite/libjava.compile/redef4.xfail b/libjava/testsuite/libjava.compile/redef4.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef4.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/redef5.java b/libjava/testsuite/libjava.compile/redef5.java
deleted file mode 100644
index 2698e0ff7a2..00000000000
--- a/libjava/testsuite/libjava.compile/redef5.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// Redefining and stuffing the redefined class with something
-
-class redef5 {
- class redef5 {void foobar() {}}
-}
diff --git a/libjava/testsuite/libjava.compile/redef5.xfail b/libjava/testsuite/libjava.compile/redef5.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef5.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/redef6.java b/libjava/testsuite/libjava.compile/redef6.java
deleted file mode 100644
index 1489d5e048d..00000000000
--- a/libjava/testsuite/libjava.compile/redef6.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package bar.foo;
-// Redefining and stuffing the redefined class with something
-
-class redef6 {
- class redef6 {int foo;}
-}
diff --git a/libjava/testsuite/libjava.compile/redef6.xfail b/libjava/testsuite/libjava.compile/redef6.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/redef6.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/sjis_comment1.java b/libjava/testsuite/libjava.compile/sjis_comment1.java
deleted file mode 100644
index 26132821960..00000000000
--- a/libjava/testsuite/libjava.compile/sjis_comment1.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class sjis_comment1 {
- public static void main(String[] args) {
- /* “ü—Í */
- }
-}
diff --git a/libjava/testsuite/libjava.compile/sjis_comment2.java b/libjava/testsuite/libjava.compile/sjis_comment2.java
deleted file mode 100644
index d4ae92f191b..00000000000
--- a/libjava/testsuite/libjava.compile/sjis_comment2.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class sjis_comment2 {
- public static void main(String[] args) {
- // “ü—Í
- }
-}
diff --git a/libjava/testsuite/libjava.compile/sjis_comment3.java b/libjava/testsuite/libjava.compile/sjis_comment3.java
deleted file mode 100644
index 7370c4e444d..00000000000
--- a/libjava/testsuite/libjava.compile/sjis_comment3.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class sjis_comment3 {
- public static void main(String[] args) {
- // “ü—Í
- }
-}
diff --git a/libjava/testsuite/libjava.compile/static_1.java b/libjava/testsuite/libjava.compile/static_1.java
deleted file mode 100644
index ff01a1ef98d..00000000000
--- a/libjava/testsuite/libjava.compile/static_1.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package bar.foo;
-
-class static_1 {
- class bar {
- // No Static members: methods, fields, inner classes.
- static int foo;
- static int xyzzy (){return 0;}
- static {}
- static class foo {}
- // No Member interface FIXME
- }
-}
diff --git a/libjava/testsuite/libjava.compile/static_1.xfail b/libjava/testsuite/libjava.compile/static_1.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/static_1.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/static_2.java b/libjava/testsuite/libjava.compile/static_2.java
deleted file mode 100644
index fdb5b99dac5..00000000000
--- a/libjava/testsuite/libjava.compile/static_2.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package bar.foo;
-
-class static_2 {
- static class koink {
- static int i;
- static void foo (){}
- static {}
- static class foo {}
- }
-}
diff --git a/libjava/testsuite/libjava.compile/static_3.java b/libjava/testsuite/libjava.compile/static_3.java
deleted file mode 100644
index 894e5799b1f..00000000000
--- a/libjava/testsuite/libjava.compile/static_3.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package bar.foo;
-
-class static_3 {
- static class zoink { static class zork {}}
-}
diff --git a/libjava/testsuite/libjava.compile/static_init.java b/libjava/testsuite/libjava.compile/static_init.java
deleted file mode 100644
index 2e77b5e4a82..00000000000
--- a/libjava/testsuite/libjava.compile/static_init.java
+++ /dev/null
@@ -1,4 +0,0 @@
-class static_init
-{
- native { }
-}
diff --git a/libjava/testsuite/libjava.compile/static_init.xfail b/libjava/testsuite/libjava.compile/static_init.xfail
deleted file mode 100644
index e3b083b1fa5..00000000000
--- a/libjava/testsuite/libjava.compile/static_init.xfail
+++ /dev/null
@@ -1 +0,0 @@
-shouldfail
diff --git a/libjava/testsuite/libjava.compile/static_init2.java b/libjava/testsuite/libjava.compile/static_init2.java
deleted file mode 100644
index 8cae968045b..00000000000
--- a/libjava/testsuite/libjava.compile/static_init2.java
+++ /dev/null
@@ -1,9 +0,0 @@
-class static_init2 {
- static final float two_to_the_30 =
- (float) (1L << 30);
-
- static float[] floatValues = {
- (float)1.0,
- (float)two_to_the_30,
- };
-}
diff --git a/libjava/testsuite/libjava.compile/static_inner.java b/libjava/testsuite/libjava.compile/static_inner.java
deleted file mode 100644
index ca0d99f4c8e..00000000000
--- a/libjava/testsuite/libjava.compile/static_inner.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// File Parent.java
-class Parent {
- public static class Kid {
- public Kid(int age) {
- this.age = age;
- }
-
- int age;
- }
-}
-
-// File NewParent.java
-public class static_inner extends Parent {
-
- public static void main(String[] argv) {
- Kid kid = new Kid(2);
- }
-
-}
diff --git a/libjava/testsuite/libjava.compile/support/Case.java b/libjava/testsuite/libjava.compile/support/Case.java
deleted file mode 100644
index 709b47aca5a..00000000000
--- a/libjava/testsuite/libjava.compile/support/Case.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package support;
-
-public class Case
-{
- public static final int A = 9;
-}
diff --git a/libjava/testsuite/libjava.compile/support/PR129_A.java b/libjava/testsuite/libjava.compile/support/PR129_A.java
deleted file mode 100644
index 643dad671b8..00000000000
--- a/libjava/testsuite/libjava.compile/support/PR129_A.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package support;
-
-public class PR129_A {
- public static String[] strArr = { "A", "B", "C" };
-}
-
diff --git a/libjava/testsuite/libjava.compile/support/PR206_A.java b/libjava/testsuite/libjava.compile/support/PR206_A.java
deleted file mode 100644
index dffd498286b..00000000000
--- a/libjava/testsuite/libjava.compile/support/PR206_A.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package support;
-
-public final class PR206_A {
- static
- {
- String s = System.getProperty ("soylent");
- }
-}
diff --git a/libjava/testsuite/libjava.compile/support/PR207_A.java b/libjava/testsuite/libjava.compile/support/PR207_A.java
deleted file mode 100644
index 1d465f5222e..00000000000
--- a/libjava/testsuite/libjava.compile/support/PR207_A.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package support;
-
-public final class PR207_A {
- static
- {
- String s = System.getProperty ("soylent");
- }
-
- public static String hello ()
- {
- return "green";
- }
-}
diff --git a/libjava/testsuite/libjava.compile/support/Waldo.java b/libjava/testsuite/libjava.compile/support/Waldo.java
deleted file mode 100644
index e28829d7af5..00000000000
--- a/libjava/testsuite/libjava.compile/support/Waldo.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package support;
-
-public interface Waldo {
-
- public static final int here = 9;
-
-}
diff --git a/libjava/testsuite/libjava.jni/calls.c b/libjava/testsuite/libjava.jni/calls.c
deleted file mode 100644
index c125941076a..00000000000
--- a/libjava/testsuite/libjava.jni/calls.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <stdio.h>
-#include <calls.h>
-
-jint
-Java_calls_docall (JNIEnv *env, jobject _this)
-{
- jmethodID method;
- jclass klass, super;
-
- jbyte b;
- jshort s;
- jchar c;
- jint i;
- jlong l;
- jfloat f;
- jdouble d;
-
- jvalue val;
-
- jint fails = 0;
-
- klass = (*env)->GetObjectClass (env, _this);
- super = (*env)->GetSuperclass (env, klass);
-
- method = (*env)->GetMethodID (env, klass, "byte_f", "()B");
- b = (*env)->CallByteMethod (env, _this, method);
- if (b != 23)
- ++fails;
-
- method = (*env)->GetMethodID (env, klass, "char_f", "(I)C");
- val.i = 10;
- c = (*env)->CallCharMethodV (env, _this, method, &val);
- if (c != ('a' + 10))
- ++fails;
-
- method = (*env)->GetMethodID (env, super, "int_f", "()I");
- i = (*env)->CallNonvirtualIntMethod (env, _this, super, method);
- if (i != 27)
- ++fails;
-
- i = (*env)->CallIntMethod (env, _this, method);
- if (i != 1023)
- ++fails;
-
- method = (*env)->GetStaticMethodID (env, klass, "long_f", "(J)J");
- l = (*env)->CallStaticLongMethod (env, klass, method, (jlong) 10);
- if (l != 2033)
- ++fails;
-
- method = (*env)->GetMethodID (env, klass, "void_f", "()V");
- (*env)->CallVoidMethod (env, _this, method);
-
- method = (*env)->GetStaticMethodID (env, klass, "short_f", "()S");
- s = (*env)->CallStaticShortMethod (env, klass, method);
- if (s != 2)
- ++fails;
-
- method = (*env)->GetMethodID (env, klass, "double_f", "()D");
- d = (*env)->CallDoubleMethod (env, _this, method);
- if (d != -1.0)
- ++fails;
-
- method = (*env)->GetMethodID (env, klass, "float_f", "()F");
- f = (*env)->CallFloatMethod (env, _this, method);
- if (f != 1.0)
- ++fails;
-
- return fails;
-}
diff --git a/libjava/testsuite/libjava.jni/calls.java b/libjava/testsuite/libjava.jni/calls.java
deleted file mode 100644
index b98017c0c13..00000000000
--- a/libjava/testsuite/libjava.jni/calls.java
+++ /dev/null
@@ -1,66 +0,0 @@
-// Test a bunch of different calls.
-
-class base
-{
- public int int_f ()
- {
- return 27;
- }
-}
-
-public class calls extends base
-{
- static
- {
- System.loadLibrary ("calls");
- }
-
- public native int docall ();
-
- public byte byte_f ()
- {
- return 23;
- }
-
- public char char_f (int z)
- {
- return (char) ('a' + z);
- }
-
- public int int_f ()
- {
- return 1023;
- }
-
- public static long long_f (long q)
- {
- return q + 2023;
- }
-
- public void void_f ()
- {
- System.out.println ("void");
- }
-
- public static short short_f ()
- {
- return 2;
- }
-
- public double double_f ()
- {
- return -1.0;
- }
-
- public float float_f ()
- {
- return (float) 1.0;
- }
-
- public static void main (String[] args)
- {
- calls c = new calls ();
- if (c.docall () != 0)
- System.out.println ("fail");
- }
-}
diff --git a/libjava/testsuite/libjava.jni/calls.out b/libjava/testsuite/libjava.jni/calls.out
deleted file mode 100644
index cbab1f6b63a..00000000000
--- a/libjava/testsuite/libjava.jni/calls.out
+++ /dev/null
@@ -1 +0,0 @@
-void
diff --git a/libjava/testsuite/libjava.jni/final_method.c b/libjava/testsuite/libjava.jni/final_method.c
deleted file mode 100644
index 82977374bcb..00000000000
--- a/libjava/testsuite/libjava.jni/final_method.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <final_method.h>
-
-jstring
-Java_final_1method_meth (JNIEnv *env, jobject thisv)
-{
- return (*env)->NewStringUTF (env, "zardoz has spoken");
-}
diff --git a/libjava/testsuite/libjava.jni/final_method.java b/libjava/testsuite/libjava.jni/final_method.java
deleted file mode 100644
index dcb684e0849..00000000000
--- a/libjava/testsuite/libjava.jni/final_method.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Minimal test a non-static final method.
-
-public class final_method
-{
- static
- {
- System.loadLibrary ("final_method");
- }
-
- public final native String meth ();
-
- public static void main (String[] args)
- {
- final_method fm = new final_method ();
- System.out.println (fm.meth ());
- }
-}
diff --git a/libjava/testsuite/libjava.jni/final_method.out b/libjava/testsuite/libjava.jni/final_method.out
deleted file mode 100644
index d93c9b5587e..00000000000
--- a/libjava/testsuite/libjava.jni/final_method.out
+++ /dev/null
@@ -1 +0,0 @@
-zardoz has spoken
diff --git a/libjava/testsuite/libjava.jni/findclass.c b/libjava/testsuite/libjava.jni/findclass.c
deleted file mode 100644
index 9a71508ab3f..00000000000
--- a/libjava/testsuite/libjava.jni/findclass.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <stdlib.h>
-
-#include <findclass.h>
-
-jclass
-Java_findclass_doit (JNIEnv *env, jclass klass, jstring name)
-{
- const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
- jclass k = (*env)->FindClass (env, buf);
- (*env)->ReleaseStringUTFChars (env, name, buf);
- return k;
-}
diff --git a/libjava/testsuite/libjava.jni/findclass.java b/libjava/testsuite/libjava.jni/findclass.java
deleted file mode 100644
index b857538e663..00000000000
--- a/libjava/testsuite/libjava.jni/findclass.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Test FindClass part of JNI.
-
-public class findclass
-{
- static
- {
- System.loadLibrary ("findclass");
- }
-
- public static native Class doit (String name);
-
- public static void main (String[] args)
- {
- System.out.println ("" + doit ("java/lang/String"));
- }
-}
diff --git a/libjava/testsuite/libjava.jni/findclass.out b/libjava/testsuite/libjava.jni/findclass.out
deleted file mode 100644
index 124026a2e98..00000000000
--- a/libjava/testsuite/libjava.jni/findclass.out
+++ /dev/null
@@ -1 +0,0 @@
-class java.lang.String
diff --git a/libjava/testsuite/libjava.jni/invoke.c b/libjava/testsuite/libjava.jni/invoke.c
deleted file mode 100644
index 35a446eae25..00000000000
--- a/libjava/testsuite/libjava.jni/invoke.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <invoke.h>
-
-jint
-Java_invoke_val (JNIEnv *env, jclass klass)
-{
- return 23;
-}
diff --git a/libjava/testsuite/libjava.jni/invoke.java b/libjava/testsuite/libjava.jni/invoke.java
deleted file mode 100644
index 91c9d374701..00000000000
--- a/libjava/testsuite/libjava.jni/invoke.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Test to make sure the minimal invocation works.
-
-public class invoke
-{
- public static native int val ();
-
- static
- {
- System.out.println ("trying...");
- System.loadLibrary ("invoke");
- System.out.println ("loaded");
- }
-
- public static void main (String[] args)
- {
- System.out.println (val ());
- }
-}
diff --git a/libjava/testsuite/libjava.jni/invoke.out b/libjava/testsuite/libjava.jni/invoke.out
deleted file mode 100644
index f59a6d2e495..00000000000
--- a/libjava/testsuite/libjava.jni/invoke.out
+++ /dev/null
@@ -1,3 +0,0 @@
-trying...
-loaded
-23
diff --git a/libjava/testsuite/libjava.jni/noclass.c b/libjava/testsuite/libjava.jni/noclass.c
deleted file mode 100644
index 5f2caf428ae..00000000000
--- a/libjava/testsuite/libjava.jni/noclass.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <noclass.h>
-
-void
-Java_noclass_find_1it (JNIEnv *env, jclass k)
-{
- /* We cause an exception by asking for a class we know does not
- exist. */
- k = (*env)->FindClass (env, "java/lang/Sarcophagus");
-}
diff --git a/libjava/testsuite/libjava.jni/noclass.java b/libjava/testsuite/libjava.jni/noclass.java
deleted file mode 100644
index 7e0b8c34cca..00000000000
--- a/libjava/testsuite/libjava.jni/noclass.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Test to make sure JNI implementation catches exceptions.
-
-public class noclass
-{
- static
- {
- System.loadLibrary ("noclass");
- }
-
- public static native void find_it ();
-
- public static void main (String[] args)
- {
- try
- {
- find_it ();
- }
- catch (Throwable _)
- {
- // If find_it() causes a crash, or doesn't throw an exception,
- // we won't be running this next line.
- System.out.println ("Ok");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.jni/noclass.out b/libjava/testsuite/libjava.jni/noclass.out
deleted file mode 100644
index 7326d960397..00000000000
--- a/libjava/testsuite/libjava.jni/noclass.out
+++ /dev/null
@@ -1 +0,0 @@
-Ok
diff --git a/libjava/testsuite/libjava.jni/overload.c b/libjava/testsuite/libjava.jni/overload.c
deleted file mode 100644
index d171fc3ac9b..00000000000
--- a/libjava/testsuite/libjava.jni/overload.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <overload.h>
-
-jint
-Java_overload_over__I (JNIEnv *env, jclass klass, jint val)
-{
- return val;
-}
-
-
-jint
-Java_overload_over__II (JNIEnv *env, jclass klass, jint one, jint two)
-{
- return one + two;
-}
-
-
diff --git a/libjava/testsuite/libjava.jni/overload.java b/libjava/testsuite/libjava.jni/overload.java
deleted file mode 100644
index c2e6037a50c..00000000000
--- a/libjava/testsuite/libjava.jni/overload.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Test to make sure overloaded functions with long names work.
-
-public class overload
-{
- static
- {
- System.loadLibrary ("overload");
- }
-
- public static native int over (int one);
- public static native int over (int one, int two);
-
- public static void main (String[] args)
- {
- System.out.println (over (1));
- System.out.println (over (1, 2));
- }
-}
diff --git a/libjava/testsuite/libjava.jni/overload.out b/libjava/testsuite/libjava.jni/overload.out
deleted file mode 100644
index 2b2f2e1b926..00000000000
--- a/libjava/testsuite/libjava.jni/overload.out
+++ /dev/null
@@ -1,2 +0,0 @@
-1
-3
diff --git a/libjava/testsuite/libjava.jni/register.c b/libjava/testsuite/libjava.jni/register.c
deleted file mode 100644
index 738182cf0f6..00000000000
--- a/libjava/testsuite/libjava.jni/register.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <stdlib.h>
-#include <assert.h>
-#include <register.h>
-
-static jint
-some_random_name (JNIEnv *env, jclass k, jint v)
-{
- return v - 1;
-}
-
-jint
-JNI_OnLoad (JavaVM *vm, void *nothing)
-{
- JNIEnv *env;
- JNINativeMethod meth;
- jclass k;
- jint r;
-
- r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2);
- assert (r == JNI_OK);
- k = (*env)->FindClass (env, "register");
- assert (k != NULL);
-
- meth.name = "doit";
- meth.signature = "(I)I";
- meth.fnPtr = some_random_name;
-
- r = (*env)->RegisterNatives (env, k, &meth, 1);
- assert (r == JNI_OK);
-
- return JNI_VERSION_1_2;
-}
diff --git a/libjava/testsuite/libjava.jni/register.java b/libjava/testsuite/libjava.jni/register.java
deleted file mode 100644
index 0c0cbf62891..00000000000
--- a/libjava/testsuite/libjava.jni/register.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// register.java - Test RegisterNatives.
-
-public class register
-{
- static
- {
- System.loadLibrary ("register");
- }
-
- public static native int doit (int z);
-
- public static void main (String[] args)
- {
- System.out.println (doit (24));
- }
-}
diff --git a/libjava/testsuite/libjava.jni/register.out b/libjava/testsuite/libjava.jni/register.out
deleted file mode 100644
index 409940768f2..00000000000
--- a/libjava/testsuite/libjava.jni/register.out
+++ /dev/null
@@ -1 +0,0 @@
-23
diff --git a/libjava/testsuite/libjava.jni/simple_int.c b/libjava/testsuite/libjava.jni/simple_int.c
deleted file mode 100644
index a86f2d2babd..00000000000
--- a/libjava/testsuite/libjava.jni/simple_int.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <simple_int.h>
-
-jint
-Java_simple_1int_nat (JNIEnv *env, jclass klass, jint val)
-{
- return 2 * val;
-}
diff --git a/libjava/testsuite/libjava.jni/simple_int.java b/libjava/testsuite/libjava.jni/simple_int.java
deleted file mode 100644
index 6306c4e9335..00000000000
--- a/libjava/testsuite/libjava.jni/simple_int.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Test a simple static function with an `int' argument.
-
-public class simple_int
-{
- public static native int nat (int z);
-
- static
- {
- System.loadLibrary ("simple_int");
- }
-
- public static void main (String[] args)
- {
- System.out.println (nat (23));
- }
-}
diff --git a/libjava/testsuite/libjava.jni/simple_int.out b/libjava/testsuite/libjava.jni/simple_int.out
deleted file mode 100644
index 9e5feb52569..00000000000
--- a/libjava/testsuite/libjava.jni/simple_int.out
+++ /dev/null
@@ -1 +0,0 @@
-46
diff --git a/libjava/testsuite/libjava.jni/throwit.c b/libjava/testsuite/libjava.jni/throwit.c
deleted file mode 100644
index 0b02459b464..00000000000
--- a/libjava/testsuite/libjava.jni/throwit.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <stdlib.h>
-#include <throwit.h>
-
-void
-Java_throwit_throwit (JNIEnv *env, jclass klass, jstring name,
- jboolean is_new)
-{
- const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
- jclass k = (*env)->FindClass (env, buf);
- (*env)->ReleaseStringUTFChars (env, name, buf);
-
- if (k == NULL || (*env)->ExceptionCheck (env))
- return;
-
- if (is_new)
- (*env)->ThrowNew (env, k, "the word is zardoz");
- else
- {
- jmethodID id = (*env)->GetMethodID (env, k, "<init>",
- "(Ljava.lang.String;)V");
- jstring z = (*env)->NewStringUTF (env, "zardoz is the word");
- jobject obj = (*env)->NewObject (env, k, id, z);
- (*env)->Throw (env, obj);
- }
-}
diff --git a/libjava/testsuite/libjava.jni/throwit.java b/libjava/testsuite/libjava.jni/throwit.java
deleted file mode 100644
index 459622d390f..00000000000
--- a/libjava/testsuite/libjava.jni/throwit.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Test to see if throw works.
-
-public class throwit
-{
- static
- {
- System.loadLibrary ("throwit");
- }
-
- public static native void throwit (String name, boolean is_new);
-
- public static void main (String[] args)
- {
- try
- {
- throwit ("java/lang/UnknownError", false);
- }
- catch (Throwable x)
- {
- System.out.println (x.getClass ());
- System.out.println (x.getMessage ());
- }
- try
- {
- throwit ("java/lang/Throwable", true);
- }
- catch (Throwable x)
- {
- System.out.println (x.getClass ());
- System.out.println (x.getMessage ());
- }
- }
-}
diff --git a/libjava/testsuite/libjava.jni/throwit.out b/libjava/testsuite/libjava.jni/throwit.out
deleted file mode 100644
index c50b7a9abbc..00000000000
--- a/libjava/testsuite/libjava.jni/throwit.out
+++ /dev/null
@@ -1,4 +0,0 @@
-class java.lang.UnknownError
-zardoz is the word
-class java.lang.Throwable
-the word is zardoz
diff --git a/libjava/testsuite/libjava.jni/virtual.c b/libjava/testsuite/libjava.jni/virtual.c
deleted file mode 100644
index bda837df102..00000000000
--- a/libjava/testsuite/libjava.jni/virtual.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <virtual.h>
-
-jboolean
-Java_virtual_equals (JNIEnv *env, jobject thisv, jobject other)
-{
- return JNI_FALSE;
-}
diff --git a/libjava/testsuite/libjava.jni/virtual.java b/libjava/testsuite/libjava.jni/virtual.java
deleted file mode 100644
index 496389ce5e3..00000000000
--- a/libjava/testsuite/libjava.jni/virtual.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Minimal test of a virtual method.
-
-public class virtual
-{
- static
- {
- System.loadLibrary ("virtual");
- }
-
- public native boolean equals (Object obj);
-
- public static void main (String[] args)
- {
- Object v = new virtual ();
- System.out.println (v.equals (v));
- }
-}
diff --git a/libjava/testsuite/libjava.jni/virtual.out b/libjava/testsuite/libjava.jni/virtual.out
deleted file mode 100644
index c508d5366f7..00000000000
--- a/libjava/testsuite/libjava.jni/virtual.out
+++ /dev/null
@@ -1 +0,0 @@
-false
diff --git a/libjava/testsuite/libjava.lang/Array_1.java b/libjava/testsuite/libjava.lang/Array_1.java
deleted file mode 100644
index 1fcf04eeb4d..00000000000
--- a/libjava/testsuite/libjava.lang/Array_1.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Test of array stuff. Technically this probably isn't in java.lang.
-
-public class Array_1
-{
- public static void main (String[] args)
- {
- int x[][] = { { 1, 2}, null };
-
- System.out.println(Cloneable.class.isInstance(x));
-
- // This example is from the Java Spec book.
- int y[][] = (int[][]) x.clone();
- System.out.println(x == y);
- System.out.println(x[0] == y[0] && x[1] == y[1]);
-
- System.out.println(x.getClass().getSuperclass());
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Array_1.out b/libjava/testsuite/libjava.lang/Array_1.out
deleted file mode 100644
index 3cc754d2ef9..00000000000
--- a/libjava/testsuite/libjava.lang/Array_1.out
+++ /dev/null
@@ -1,4 +0,0 @@
-true
-false
-true
-class java.lang.Object
diff --git a/libjava/testsuite/libjava.lang/Array_2.java b/libjava/testsuite/libjava.lang/Array_2.java
deleted file mode 100644
index b406c47d6df..00000000000
--- a/libjava/testsuite/libjava.lang/Array_2.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Test to make sure multidimensional arrays work.
-// From Bryce McKinlay
-
-public class Array_2
-{
- static final int a = 10, b = 15;
-
- public static void main(String args[])
- {
- int[][] foo = new int [a][b];
- System.out.println(foo.length);
- System.out.println(foo[a-1].length);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Array_2.out b/libjava/testsuite/libjava.lang/Array_2.out
deleted file mode 100644
index 349103a8769..00000000000
--- a/libjava/testsuite/libjava.lang/Array_2.out
+++ /dev/null
@@ -1,2 +0,0 @@
-10
-15
diff --git a/libjava/testsuite/libjava.lang/Class_1.java b/libjava/testsuite/libjava.lang/Class_1.java
deleted file mode 100644
index f2156ebff30..00000000000
--- a/libjava/testsuite/libjava.lang/Class_1.java
+++ /dev/null
@@ -1,49 +0,0 @@
-class C {}
-class D extends C implements I {}
-interface I {}
-interface J extends I {}
-
-public class Class_1
-{
- static void printIsAssignableFrom(Class a, Class b, boolean c)
- {
- // The field 'c' can be viewed to see the expected value.
- System.out.println(a.isAssignableFrom(b));
- }
-
- public static void main (String arg[])
- {
- System.out.println("Testing class `Class_1'...");
- printIsAssignableFrom(C.class, Object.class, false);
- printIsAssignableFrom(C.class, C.class, true);
- printIsAssignableFrom(C.class, D.class, true);
- printIsAssignableFrom(D.class, C.class, false);
-
- printIsAssignableFrom(Object.class, int[].class, true);
- printIsAssignableFrom(int[].class, int[].class, true);
- printIsAssignableFrom(C[].class, D.class, false);
- printIsAssignableFrom(C[].class, D[].class, true);
- // Known compiler limitation prevents next case from compiling.
- // printIsAssignableFrom(C[].class, C[][].class, false);
- System.out.println("printIsAssignableFrom(C[].class, C[][].class, false);" +
- " case uncompilable due to known compiler limitation.");
-
- printIsAssignableFrom(Object.class, I.class, true);
- printIsAssignableFrom(I.class, I.class, true);
- printIsAssignableFrom(D.class, I.class, false);
- printIsAssignableFrom(I.class, D.class, true);
-
- printIsAssignableFrom(D.class, J.class, false);
- printIsAssignableFrom(J.class, D.class, false);
-
- printIsAssignableFrom(I.class, J.class, true);
- printIsAssignableFrom(J.class, J.class, true);
- printIsAssignableFrom(J.class, I.class, false);
-
- // Returns true iff both Class objects are equal.
- printIsAssignableFrom(long.class, long.class, true);
-
- // Does not work for primitive types in general.
- printIsAssignableFrom(long.class, int.class, false);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Class_1.out b/libjava/testsuite/libjava.lang/Class_1.out
deleted file mode 100644
index 531b94f0625..00000000000
--- a/libjava/testsuite/libjava.lang/Class_1.out
+++ /dev/null
@@ -1,21 +0,0 @@
-Testing class `Class_1'...
-false
-true
-true
-false
-true
-true
-false
-true
-false
-true
-true
-false
-true
-false
-false
-true
-true
-false
-true
-false
diff --git a/libjava/testsuite/libjava.lang/Divide_1.java b/libjava/testsuite/libjava.lang/Divide_1.java
deleted file mode 100644
index d4e01939aa5..00000000000
--- a/libjava/testsuite/libjava.lang/Divide_1.java
+++ /dev/null
@@ -1,105 +0,0 @@
-public class Divide_1
-{
- static int b = Integer.parseInt ("-1");
- int b1 = Integer.parseInt ("-1");
- static int zero = Integer.parseInt ("0");
-
- void probe ()
- {
- try {
- int a = Integer.parseInt ("-80000000", 16);
- int c = a/b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("-80000000", 16);
- int c = a/-1;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("-80000000", 16);
- int c = a%b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("-80000000", 16);
- int c = a%b1;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("-80000000", 16);
- int c = a%-1;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("8000", 16);
- int b = Integer.parseInt ("0", 16);
- int c = a/b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- int a = Integer.parseInt ("8000", 16);
- int b = Integer.parseInt ("0", 16);
- int c = a%b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- long a = Long.parseLong ("-8000000000000000", 16);
- long c = a/b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- long a = Long.parseLong ("-8000000000000000", 16);
- long c = a%b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- long a = Long.parseLong ("8000", 16);
- long b = Long.parseLong ("0", 16);
- long c = a/b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
-
- try {
- long a = Long.parseLong ("8000", 16);
- long b = Long.parseLong ("0", 16);
- long c = a%b;
- System.out.println (c);
- } catch (Exception _) {
- System.out.println (_);
- }
- }
-
- public static void main (String[] args) {
- new Divide_1 ().probe ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Divide_1.out b/libjava/testsuite/libjava.lang/Divide_1.out
deleted file mode 100644
index 6e1f87ed4fc..00000000000
--- a/libjava/testsuite/libjava.lang/Divide_1.out
+++ /dev/null
@@ -1,11 +0,0 @@
--2147483648
--2147483648
-0
-0
-0
-java.lang.ArithmeticException: / by zero
-java.lang.ArithmeticException: / by zero
--9223372036854775808
-0
-java.lang.ArithmeticException: / by zero
-java.lang.ArithmeticException: / by zero
diff --git a/libjava/testsuite/libjava.lang/Final.java b/libjava/testsuite/libjava.lang/Final.java
deleted file mode 100644
index 1b22096c359..00000000000
--- a/libjava/testsuite/libjava.lang/Final.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public final class Final
-{
- public static void main(String args[])
- {
- Final f = null;
- try
- {
- f.doSomething();
- }
- catch (NullPointerException x)
- {
- System.out.println("NullPointerException - ok");
- }
- }
-
- void doSomething()
- {
- System.out.println("This should not happen");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Final.out b/libjava/testsuite/libjava.lang/Final.out
deleted file mode 100644
index 2e513123d7c..00000000000
--- a/libjava/testsuite/libjava.lang/Final.out
+++ /dev/null
@@ -1 +0,0 @@
-NullPointerException - ok
diff --git a/libjava/testsuite/libjava.lang/Final.xfail b/libjava/testsuite/libjava.lang/Final.xfail
deleted file mode 100644
index c999f8ee0ca..00000000000
--- a/libjava/testsuite/libjava.lang/Final.xfail
+++ /dev/null
@@ -1 +0,0 @@
-xfail-output
diff --git a/libjava/testsuite/libjava.lang/Float_1.java b/libjava/testsuite/libjava.lang/Float_1.java
deleted file mode 100644
index cb147ee8aca..00000000000
--- a/libjava/testsuite/libjava.lang/Float_1.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Date: 25 Aug 1998 16:04:00 -0000
-From: Andrew Haley <aph@pasanda.cygnus.co.uk>
-To: java-project@cygnus.com
-Subject: Help: vtable problem?
-
-My little program:
-
------------------------------------------------------------------------
-import java.lang.*;
-
- public class widget
- {
- public static void main (String argv[])
- {
- int test = Float.floatToIntBits((float)2.0);
- String s = Integer.toHexString(test);
-
- System.out.print (s+"\n");
- }
-
- }
------------------------------------------------------------------------
-prints out
-
-40000000
-
-with Sun's interpreter, but prints out
-
-true
-
-when compiled with gcj; PrintStream dispatches a string arg as a
-boolean rather than as a String. I've tried to rebuild everything.
-
-?
-
-Thanks,
-Andrew.
-
-*/
-
-public class Float_1
-{
- public static void main (String argv[])
- {
- int test = Float.floatToIntBits((float)2.0);
- String s = Integer.toHexString(test);
-
- System.out.print (s+"\n");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Float_1.out b/libjava/testsuite/libjava.lang/Float_1.out
deleted file mode 100644
index 52f3f6a7451..00000000000
--- a/libjava/testsuite/libjava.lang/Float_1.out
+++ /dev/null
@@ -1 +0,0 @@
-40000000
diff --git a/libjava/testsuite/libjava.lang/G19990301_01.java b/libjava/testsuite/libjava.lang/G19990301_01.java
deleted file mode 100644
index abd38cef4a2..00000000000
--- a/libjava/testsuite/libjava.lang/G19990301_01.java
+++ /dev/null
@@ -1,12 +0,0 @@
-public class G19990301_01 {
- public static void main(String args[]) {
- foo pd = new foo();
- System.out.println ("Pass 1");
- pd.s = "test";
- System.out.println ("Pass 2");
- }
-}
-class foo {
- static String s = "test";
-}
-
diff --git a/libjava/testsuite/libjava.lang/G19990301_01.out b/libjava/testsuite/libjava.lang/G19990301_01.out
deleted file mode 100644
index 337175ef706..00000000000
--- a/libjava/testsuite/libjava.lang/G19990301_01.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Pass 1
-Pass 2
diff --git a/libjava/testsuite/libjava.lang/G19990302_02.java b/libjava/testsuite/libjava.lang/G19990302_02.java
deleted file mode 100644
index ecf6f295ec9..00000000000
--- a/libjava/testsuite/libjava.lang/G19990302_02.java
+++ /dev/null
@@ -1,15 +0,0 @@
-public class G19990302_02 {
- public static void main(String args[]) {
- try {
- Object[] arrayObj = new String[3];
- String[] arrayStr = new String[3];
- System.out.println ("Pass 1");
- arrayObj[0] = arrayStr; // String object <-- String array object
- System.out.println ("Pass 2");
- } catch (ArrayStoreException e) {
- System.out.println ("ArrayStoreException");
- }
- System.out.println ("Pass 3");
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/G19990302_02.out b/libjava/testsuite/libjava.lang/G19990302_02.out
deleted file mode 100644
index c254b310e43..00000000000
--- a/libjava/testsuite/libjava.lang/G19990302_02.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Pass 1
-ArrayStoreException
-Pass 3
diff --git a/libjava/testsuite/libjava.lang/G19990303_01.java b/libjava/testsuite/libjava.lang/G19990303_01.java
deleted file mode 100644
index fc3ca55281c..00000000000
--- a/libjava/testsuite/libjava.lang/G19990303_01.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class G19990303_01
-{
- public static void main (String[] args)
- {
- try
- {
- Object[] ar = new String[3];
- String[] as = new String[3];
- System.out.println("1");
- ar[0] = as;
- System.out.println("2");
- }
- catch (Exception _)
- {
- System.out.println("X");
- }
- System.out.println("3");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/G19990303_01.out b/libjava/testsuite/libjava.lang/G19990303_01.out
deleted file mode 100644
index f081db642ff..00000000000
--- a/libjava/testsuite/libjava.lang/G19990303_01.out
+++ /dev/null
@@ -1,3 +0,0 @@
-1
-X
-3
diff --git a/libjava/testsuite/libjava.lang/G19990303_02.java b/libjava/testsuite/libjava.lang/G19990303_02.java
deleted file mode 100644
index 19c8e305e2a..00000000000
--- a/libjava/testsuite/libjava.lang/G19990303_02.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class G19990303_02
-{
- public static void main (String[] args)
- {
- int i = -1;
- try
- {
- System.out.println ("Pass 1");
- int[][][] arrayInt = new int[i][1][1];
- int ii = arrayInt[i - 1][0][0];
- System.out.println ("Pass 2");
- }
- catch (NegativeArraySizeException e)
- {
- System.out.println ("Pass NegativeArraySizeException");
- }
- System.out.println ("Pass 3");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/G19990303_02.out b/libjava/testsuite/libjava.lang/G19990303_02.out
deleted file mode 100644
index 940225527e5..00000000000
--- a/libjava/testsuite/libjava.lang/G19990303_02.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Pass 1
-Pass NegativeArraySizeException
-Pass 3
diff --git a/libjava/testsuite/libjava.lang/G19990304_01.java b/libjava/testsuite/libjava.lang/G19990304_01.java
deleted file mode 100644
index f937089e1c4..00000000000
--- a/libjava/testsuite/libjava.lang/G19990304_01.java
+++ /dev/null
@@ -1,18 +0,0 @@
-public class G19990304_01
-{
- public static void main (String[] args)
- {
- Object[] arrayObj = new String[3];
- String[] arrayStr = new String[3];
- try
- {
- System.out.println ("pass 1");
- arrayObj[0] = arrayStr;
- }
- catch (RuntimeException e)
- {
- System.out.println ("RuntimeException");
- }
- System.out.println ("pass 2");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/G19990304_01.out b/libjava/testsuite/libjava.lang/G19990304_01.out
deleted file mode 100644
index 6fe123eea2b..00000000000
--- a/libjava/testsuite/libjava.lang/G19990304_01.out
+++ /dev/null
@@ -1,3 +0,0 @@
-pass 1
-RuntimeException
-pass 2
diff --git a/libjava/testsuite/libjava.lang/G19990310_01.java b/libjava/testsuite/libjava.lang/G19990310_01.java
deleted file mode 100644
index 72caece57f4..00000000000
--- a/libjava/testsuite/libjava.lang/G19990310_01.java
+++ /dev/null
@@ -1,21 +0,0 @@
-public class G19990310_01
-{
- public static void main (String[] args)
- {
- int i = 0;
- try
- {
- System.out.println ("pass 1");
- i++;
- }
- finally
- {
- System.out.println ("pass 2");
- i++;
- }
- if (i == 2)
- System.out.println ("OK");
- else
- System.out.println ("NG i = " + i);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/G19990310_01.out b/libjava/testsuite/libjava.lang/G19990310_01.out
deleted file mode 100644
index 36a538b4a90..00000000000
--- a/libjava/testsuite/libjava.lang/G19990310_01.out
+++ /dev/null
@@ -1,3 +0,0 @@
-pass 1
-pass 2
-OK
diff --git a/libjava/testsuite/libjava.lang/InterfaceDispatch.java b/libjava/testsuite/libjava.lang/InterfaceDispatch.java
deleted file mode 100644
index 17f5c46946f..00000000000
--- a/libjava/testsuite/libjava.lang/InterfaceDispatch.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/* Test interface dispatch, type checking (instanceof), and casting. */
-
-interface IA
-{
- String a();
-}
-
-interface IB extends IA
-{
- String b();
-}
-
-interface IC extends IB
-{
- void c();
- int d();
- IB e(int i);
-}
-
-interface ID
-{
- String z();
- String a();
-}
-
-class CA
-{
- String a()
- {
- return "CA a()";
- }
-}
-
-class CB implements IB
-{
- public String a()
- {
- return "CB a()";
- }
-
- public String b()
- {
- return "CB b()";
- }
-}
-
-class CC extends CB
-{
- public int d()
- {
- return 99;
- }
-}
-
-class CD extends CC implements IC
-{
- public String a()
- {
- return "CD a()";
- }
-
- public void c()
- {
- System.out.println("CD c()");
- }
-
- public int d()
- {
- return 6;
- }
-
- public IB e(int i)
- {
- if (i == 1)
- return new CB();
- else
- return new CD();
- }
-}
-
-class CE extends CB implements IB, ID
-{
- public String a()
- {
- return ("CE a()");
- }
-
- public String b()
- {
- return ("CE b()");
- }
-
- public String z()
- {
- return("CE z()");
- }
-}
-
-
-public class InterfaceDispatch
-{
- public static void main(String args[])
- {
- new InterfaceDispatch();
- }
-
- public InterfaceDispatch()
- {
- /* _Jv_InstanceOf */
-
- /* Object instanceof CLASS */
- Object obj = new CA();
-
- if (obj instanceof CA)
- {
- System.out.println ("ok 1");
- }
- else
- {
- System.out.println ("FAIL 1");
- }
-
- obj = new CD();
-
- if (!(obj instanceof CA))
- {
- System.out.println ("ok 2a");
- }
- else
- {
- System.out.println ("FAIL 2a");
- }
-
- if (obj instanceof CB)
- {
- System.out.println ("ok 2b");
- }
- else
- {
- System.out.println ("FAIL 2b");
- }
-
-
- /* Object instanceof INTERFACE */
- obj = new CB();
-
- if (!(obj instanceof IC))
- {
- System.out.println("ok 3");
- }
- else
- {
- System.out.println ("FAIL 3");
- }
-
- if (obj instanceof IB)
- {
- System.out.println("ok 4");
- }
- else
- {
- System.out.println ("FAIL 4");
- }
-
- /* InterfaceRef instanceof INTERFACE */
-
- IA ia = new CB();
-
- if (ia instanceof IB)
- {
- System.out.println("ok 5");
- }
- else
- {
- System.out.println ("FAIL 5");
- }
-
-
- if (!(ia instanceof IC))
- {
- System.out.println("ok 6");
- }
- else
- {
- System.out.println ("FAIL 6");
- }
-
- /* InterfaceRef instanceof CLASS */
-
- if (ia instanceof CB)
- {
- System.out.println("ok 7");
- }
- else
- {
- System.out.println ("FAIL 7");
- }
-
-
- if (!(ia instanceof CD))
- {
- System.out.println("ok 8");
- }
- else
- {
- System.out.println ("FAIL 8");
- }
-
-
- /* _Jv_CheckCast */
- Object obj_ca = new CA();
- Object obj_cc = new CC();
-
- IA ia2;
-
- try
- {
- ia2 = (IA) obj_cc;
- System.out.println("ok 9");
- }
- catch (ClassCastException x)
- {
- System.out.println("FAIL 9");
- }
-
- CD cd;
-
- try
- {
- cd = (CD) obj_ca;
- System.out.println("FAIL 10");
- }
- catch (ClassCastException x)
- {
- System.out.println("ok 10");
- }
-
- IA ia3;
-
- try
- {
- ia3 = (IB) obj_ca;
- System.out.println("FAIL 11");
- }
- catch (ClassCastException x)
- {
- System.out.println("ok 11");
- }
-
- /* _Jv_LookupInterfaceMethod */
- Object obj_cb = new CB();
-
- IB ib = (IB) obj_cb;
- ib.b();
- if (ib.a().equalsIgnoreCase("CB a()"))
- System.out.println("ok 12");
- else
- System.out.println("FAIL 12");
-
- IC ic = new CD();
- if (ic.a().equalsIgnoreCase("CD a()"))
- System.out.println("ok 13");
- else
- System.out.println("FAIL 13");
-
- if (ic.d() == 6)
- System.out.println("ok 14");
- else
- System.out.println("FAIL 14");
-
- Object ce = new CE();
-
- ib = (IB) ce;
- ID id = (ID) ce;
-
- if (ib.b().equals("CE b()") && id.a().equals("CE a()"))
- System.out.println("ok 15");
- else
- System.out.println("FAIL 15");
-
- String t = ((ID)ce).z();
-
- if (t.equalsIgnoreCase("CE z()"))
- System.out.println("ok 16");
- else
- System.out.println("FAIL 16");
-
- /* Array types */
-
- Object[] obj_a = new CC[10];
- try
- {
- CB[] ca_a = (CB[]) obj_a;
- System.out.println("ok 17");
- }
- catch (ClassCastException x)
- {
- System.out.println("FAIL 17");
- }
-
- if (obj_a instanceof IB[])
- {
- System.out.println("ok 18");
- }
- else
- {
- System.out.println("FAIL 18");
- }
-
- IB[] ib_a = new CD[5];
- try
- {
- CD[] cd_a = (CD[]) ib_a;
- System.out.println("ok 19");
- }
- catch (ClassCastException x)
- {
- System.out.println("FAIL 19");
- }
-
- CA[] ca_a;
-
- try
- {
- ca_a = (CA[]) ib_a;
- System.out.println("FAIL 20");
- }
- catch (ClassCastException x)
- {
- System.out.println("ok 20");
- }
-
-
- /* Primitive types */
-
- short[] short_a = new short[100];
-
- try
- {
- obj = short_a;
- System.out.println("ok 21");
- }
- catch (ClassCastException x)
- {
- System.out.println("FAIL 21");
- }
-
- try
- {
- short[] short_b = (short[]) obj;
- System.out.println("ok 22");
- }
- catch (ClassCastException x)
- {
- System.out.println("FAIL 22");
- }
-
- int[] short_b;
-
- try
- {
- short_b = (int[]) obj;
- System.out.println("FAIL 23");
- }
- catch (ClassCastException x)
- {
- System.out.println("ok 23");
- }
-
- Object obj1 = new int[25];
-
- if (obj1 instanceof short[])
- {
- System.out.println("FAIL 24");
- }
- else
- {
- System.out.println("ok 24");
- }
-
- if (obj1 instanceof int[])
- {
- System.out.println("ok 25");
- }
- else
- {
- System.out.println("FAIL 25");
- }
-
- /* null assignment */
-
- CA obj_ca2 = null;
-
- if (obj_ca2 instanceof CA)
- {
- System.out.println("FAIL 26");
- }
- else
- {
- System.out.println("ok 26");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/InterfaceDispatch.out b/libjava/testsuite/libjava.lang/InterfaceDispatch.out
deleted file mode 100644
index 1582e3afa04..00000000000
--- a/libjava/testsuite/libjava.lang/InterfaceDispatch.out
+++ /dev/null
@@ -1,27 +0,0 @@
-ok 1
-ok 2a
-ok 2b
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-ok 8
-ok 9
-ok 10
-ok 11
-ok 12
-ok 13
-ok 14
-ok 15
-ok 16
-ok 17
-ok 18
-ok 19
-ok 20
-ok 21
-ok 22
-ok 23
-ok 24
-ok 25
-ok 26
diff --git a/libjava/testsuite/libjava.lang/Invoke_1.java b/libjava/testsuite/libjava.lang/Invoke_1.java
deleted file mode 100644
index bc4678301ce..00000000000
--- a/libjava/testsuite/libjava.lang/Invoke_1.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Test of failing method invocation.
-
-public class Invoke_1
-{
- public void call_me ()
- {
- System.out.println ("no");
- }
-
- public static Invoke_1 get_i ()
- {
- return null;
- }
-
- public static void main (String[] args)
- {
- Invoke_1 i = get_i ();
- try
- {
- i.call_me ();
- }
- catch (NullPointerException ok)
- {
- System.out.println ("ok");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Invoke_1.out b/libjava/testsuite/libjava.lang/Invoke_1.out
deleted file mode 100644
index 9766475a418..00000000000
--- a/libjava/testsuite/libjava.lang/Invoke_1.out
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/libjava/testsuite/libjava.lang/Invoke_2.java b/libjava/testsuite/libjava.lang/Invoke_2.java
deleted file mode 100644
index a2d1407b31b..00000000000
--- a/libjava/testsuite/libjava.lang/Invoke_2.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Invoke_2
-{
- static int s;
-
- public static void foo (int a, int b)
- {
- System.out.println(a + " " + b);
- }
-
- public static void main(String[] args) {
- foo (bar(), s);
- }
-
- public static int bar()
- {
- s = 33;
- return 99;
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/Invoke_2.out b/libjava/testsuite/libjava.lang/Invoke_2.out
deleted file mode 100644
index 39501553b7b..00000000000
--- a/libjava/testsuite/libjava.lang/Invoke_2.out
+++ /dev/null
@@ -1 +0,0 @@
-99 33
diff --git a/libjava/testsuite/libjava.lang/N19990310_02.java b/libjava/testsuite/libjava.lang/N19990310_02.java
deleted file mode 100644
index 0c5bd03e95f..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_02.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* Name : N19990310_02 */
-/* : */
-/* Cause : Array value calculation in for,while,do while loop is not */
-/* : correct */
-/* : */
-/* Message : NG:[3]-->[2] */
-/*--------------------------------------------------------------------------*/
-
-public class N19990310_02 {
- public static void main(String[] args) {
- int y[] = {2};
- for ( int i = 0; i < 1; i++ ) {
- y[i] += 1;
- if ( y[i] != 3 ) {
- System.out.println("NG:[3]-->[" +y[i]+ "]");
- }
- else
- System.out.println("OK");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/N19990310_02.out b/libjava/testsuite/libjava.lang/N19990310_02.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_02.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/N19990310_3.java b/libjava/testsuite/libjava.lang/N19990310_3.java
deleted file mode 100644
index b6dfac28749..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_3.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* Name : N19990310_3 */
-/* : */
-/* Cause : Evaluation order miss, when make integer array. */
-/* : */
-/* Message : NG:[4]-->[1] */
-/*--------------------------------------------------------------------------*/
-
-public class N19990310_3 {
- public static void main(String[] args) {
-
- int x = 4;
-
- int ary[][] = new int[x][x=1];
-
- if ( ary.length == 4 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG:[4]-->[" +ary.length+ "]");
- }
- }
-}
-
-
diff --git a/libjava/testsuite/libjava.lang/N19990310_3.out b/libjava/testsuite/libjava.lang/N19990310_3.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_3.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/N19990310_4.java b/libjava/testsuite/libjava.lang/N19990310_4.java
deleted file mode 100644
index ad89a505bc7..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_4.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* Name : N19990310_4.java */
-/* : */
-/* Cause : assignment operator makes error in char,byte,short variable */
-/* : */
-/* Message : In class `N19990310_4': */
-/* : In method `main(java.lang.String[])': */
-/* : Incompatible type for `='. Explicit cast needed to convert `*/
-/* : `int' to `char'. */
-/* : x += (x = 3); */
-/* : ^ */
-/* : 1 error */
-/*--------------------------------------------------------------------------*/
-
-public class N19990310_4 {
- public static void main(String[] args) {
- char x = 9;
-
- x += (x = 3);
- if ( x == 12 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/N19990310_4.out b/libjava/testsuite/libjava.lang/N19990310_4.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_4.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/N19990310_5.java b/libjava/testsuite/libjava.lang/N19990310_5.java
deleted file mode 100644
index 61ccc5b9f3a..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_5.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* Name : N19990310_5.java */
-/* : */
-/* Cause : A assignment operator makes error in char,byte,short array */
-/* : element */
-/* : */
-/* Message : In class `N19990310_5': */
-/* : In method `main(java.lang.String[])': */
-/* : Incompatible type for `='. Explicit cast needed to convert `*/
-/* : `int' to `char'. */
-/* : a[0] += (a[0] = 3); */
-/* : ^ */
-/* : 1 error */
-/*--------------------------------------------------------------------------*/
-
-public class N19990310_5 {
- public static void main(String[] args) {
- char[] a = {9};
- a[0] += (a[0] = 3);
-
- if ( a[0] == 12 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG");
- }
- }
-}
-
-
diff --git a/libjava/testsuite/libjava.lang/N19990310_5.out b/libjava/testsuite/libjava.lang/N19990310_5.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/N19990310_5.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/PR141.java b/libjava/testsuite/libjava.lang/PR141.java
deleted file mode 100644
index c3314f2af76..00000000000
--- a/libjava/testsuite/libjava.lang/PR141.java
+++ /dev/null
@@ -1,41 +0,0 @@
-import java.io.IOException;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
-
-public class PR141 {
- public static void test(String str) throws IOException {
- StringReader reader = new StringReader(str);
- StreamTokenizer st = new StreamTokenizer(reader);
- int t = 0;
-
- do {
- t = st.nextToken();
-
- switch (t) {
- case StreamTokenizer.TT_WORD:
- System.out.println("[TT_WORD]: " + st.sval);
- break;
- case StreamTokenizer.TT_NUMBER:
- System.out.println("[TT_NUMBER]: " + st.nval);
- break;
- case StreamTokenizer.TT_EOL:
- System.out.println("[TT_EOL]");
- break;
- case StreamTokenizer.TT_EOF:
- System.out.println("[TT_EOF]");
- break;
- default:
- System.out.println((char)t);
- break;
- }
- } while (t != StreamTokenizer.TT_EOF);
- }
-
- public static void main(String[] args) {
- try {
- test("(a).(b)");
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR141.out b/libjava/testsuite/libjava.lang/PR141.out
deleted file mode 100644
index 37cb87c6de2..00000000000
--- a/libjava/testsuite/libjava.lang/PR141.out
+++ /dev/null
@@ -1,8 +0,0 @@
-(
-[TT_WORD]: a
-)
-[TT_NUMBER]: 0.0
-(
-[TT_WORD]: b
-)
-[TT_EOF]
diff --git a/libjava/testsuite/libjava.lang/PR160.java b/libjava/testsuite/libjava.lang/PR160.java
deleted file mode 100644
index 77526ef5219..00000000000
--- a/libjava/testsuite/libjava.lang/PR160.java
+++ /dev/null
@@ -1,34 +0,0 @@
-public class PR160
-{
- static final int len = 100;
-
- public static void main(String args[])
- {
-
- double[] a = new double[len];
- double[] b = new double[len];
-
- for (int i = 0; i < len ; i++)
- {
- a[i] = 0.65;
- }
-
- System.arraycopy(a, 0, b, 0, len);
-
- boolean errors = false;
-
- for (int i = 0; i < len ; i++)
- {
- if (a[i] != b[i])
- {
- System.out.println("ERROR! " + a[i] + " != "
- + b[i] + " at index " + i);
- errors = true;
- }
- }
-
- if (!errors)
- System.out.println("ok");
-
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR160.out b/libjava/testsuite/libjava.lang/PR160.out
deleted file mode 100644
index 9766475a418..00000000000
--- a/libjava/testsuite/libjava.lang/PR160.out
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/libjava/testsuite/libjava.lang/PR162.java b/libjava/testsuite/libjava.lang/PR162.java
deleted file mode 100644
index ffabce0e091..00000000000
--- a/libjava/testsuite/libjava.lang/PR162.java
+++ /dev/null
@@ -1,29 +0,0 @@
-interface I
-{
- int i = 1, ii = PR162.out ("ii", 2);
-}
-
-interface J extends I
-{
- int j = PR162.out ("j", 3), jj = PR162.out ("jj", 4);
-}
-
-interface K extends J
-{
- int k = PR162.out ("k", 5);
-}
-
-public class PR162
-{
- public static void main (String[] args)
- {
- System.out.println (J.i);
- System.out.println (K.j);
- }
-
- public static int out (String s, int i)
- {
- System.out.println (s + "=" + i);
- return i;
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR162.out b/libjava/testsuite/libjava.lang/PR162.out
deleted file mode 100644
index 6510a2d5921..00000000000
--- a/libjava/testsuite/libjava.lang/PR162.out
+++ /dev/null
@@ -1,4 +0,0 @@
-1
-j=3
-jj=4
-3
diff --git a/libjava/testsuite/libjava.lang/PR218.java b/libjava/testsuite/libjava.lang/PR218.java
deleted file mode 100644
index 14486dfad0a..00000000000
--- a/libjava/testsuite/libjava.lang/PR218.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Bug in gcj 20000427: Java executables can abort trying to access a null
-// pointer in a leaf function.
-
-public class PR218
-{
- private int i = 5;
-
- public static void main(String[] args)
- {
- try
- {
- new PR218().foo(null);
- }
- catch (NullPointerException x)
- {
- System.out.println(x);
- }
- }
-
- void foo(PR218 e)
- {
- e.i += 4;
- };
-}
-
-// Expected output:
-//
-// java.lang.NullPointerException
diff --git a/libjava/testsuite/libjava.lang/PR218.out b/libjava/testsuite/libjava.lang/PR218.out
deleted file mode 100644
index 7a72d865c98..00000000000
--- a/libjava/testsuite/libjava.lang/PR218.out
+++ /dev/null
@@ -1 +0,0 @@
-java.lang.NullPointerException
diff --git a/libjava/testsuite/libjava.lang/PR242.java b/libjava/testsuite/libjava.lang/PR242.java
deleted file mode 100644
index 6f74b462082..00000000000
--- a/libjava/testsuite/libjava.lang/PR242.java
+++ /dev/null
@@ -1,36 +0,0 @@
-class Base
-{
- int someNum()
- {
- System.out.println ("ok");
- return 0;
- }
-}
-
-public class PR242 extends Base
-{
- public static void main(String args[])
- {
- new PR242();
- }
-
- PR242()
- {
- new Inner().a();
- }
-
- class Inner
- {
- public int dummy()
- {
- System.out.println ("wrong method called!!");
- return -1;
- }
-
- public void a()
- {
- System.out.println ("...");
- System.out.println (someNum());
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR242.out b/libjava/testsuite/libjava.lang/PR242.out
deleted file mode 100644
index 98b7db3968c..00000000000
--- a/libjava/testsuite/libjava.lang/PR242.out
+++ /dev/null
@@ -1,3 +0,0 @@
-...
-ok
-0
diff --git a/libjava/testsuite/libjava.lang/PR260.java b/libjava/testsuite/libjava.lang/PR260.java
deleted file mode 100644
index 7bd49eb90a9..00000000000
--- a/libjava/testsuite/libjava.lang/PR260.java
+++ /dev/null
@@ -1,15 +0,0 @@
-class A
-{
- static
- {
- System.out.println ("A initialized");
- }
-}
-
-public class PR260
-{
- public static void main(String args[])
- {
- Class klass = A.class;
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR260.out b/libjava/testsuite/libjava.lang/PR260.out
deleted file mode 100644
index cba223424e6..00000000000
--- a/libjava/testsuite/libjava.lang/PR260.out
+++ /dev/null
@@ -1 +0,0 @@
-A initialized
diff --git a/libjava/testsuite/libjava.lang/PR55.java b/libjava/testsuite/libjava.lang/PR55.java
deleted file mode 100644
index 66619bf2c51..00000000000
--- a/libjava/testsuite/libjava.lang/PR55.java
+++ /dev/null
@@ -1,9 +0,0 @@
-public class PR55 {
-
- // This demonstrates a bug in gcj
-
- public static void main(String[] argv){
- int i = 666;
- System.out.println("The number "+i+" is "+ (""+i).length() +" digits wide");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR55.out b/libjava/testsuite/libjava.lang/PR55.out
deleted file mode 100644
index 510a24206f5..00000000000
--- a/libjava/testsuite/libjava.lang/PR55.out
+++ /dev/null
@@ -1 +0,0 @@
-The number 666 is 3 digits wide
diff --git a/libjava/testsuite/libjava.lang/PR56.java b/libjava/testsuite/libjava.lang/PR56.java
deleted file mode 100644
index 27f7c3021cd..00000000000
--- a/libjava/testsuite/libjava.lang/PR56.java
+++ /dev/null
@@ -1,8 +0,0 @@
-public final class PR56 {
- public static void main(String[] args) {
- Object o = args;
- int[] a;
- if (!(o instanceof int[]) || (a = (int[])o).length != 2) {
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/PR56.out b/libjava/testsuite/libjava.lang/PR56.out
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/libjava/testsuite/libjava.lang/PR56.out
+++ /dev/null
diff --git a/libjava/testsuite/libjava.lang/Primes.java b/libjava/testsuite/libjava.lang/Primes.java
deleted file mode 100644
index d6e4336726a..00000000000
--- a/libjava/testsuite/libjava.lang/Primes.java
+++ /dev/null
@@ -1,213 +0,0 @@
-// Primes.java
-
-/** Copyright 1998
- * Roedy Green
- * Canadian Mind Products
- * 5317 Barker Avenue
- * Burnaby, BC Canada V5H 2N6
- * tel: (604) 435-3016
- * mailto:roedy@mindprod.com
- * http://mindprod.com
- */
-// May be freely distributed for any purpose but military
-
-import java.util.BitSet;
-
-/**
- * @author Roedy Green
- * @version 1.10 1998 November 10
- * Calculate primes using Eratostheses Sieve.
- * Tell if a given number is prime.
- * Find a prime just below a given number.
- * Find a prime just above a given number.
- */
-
-/*
- * version 1.1 1998 November 10 - new address and phone.
- */
-class Primes
- {
-
- /**
- * constructors
- */
- Primes()
- {
- ensureCapacity(1000);
- }
-
- /**
- * @param capacity - largest number you will be asking if prime.
- * If give too small a number, it will automatically grow by
- * recomputing the sieve array.
- */
- Primes (int capacity)
- {
- ensureCapacity(capacity);
- }
-
- /**
- * @param candidate - is this a prime?
- */
- public boolean isPrime(int candidate)
- {
- ensureCapacity(candidate);
- if (candidate < 3) return candidate != 0;
- if (candidate % 2 == 0 ) return false;
- return !b.get(candidate/2);
- }
-
- /**
- * @return first prime higher than candidate
- */
- public int above(int candidate)
- {
- do
- {
- // see what we can find in the existing sieve
- for (int i=candidate+1; i<= sieveCapacity; i++)
- {
- if (isPrime(i)) return i;
- }
- // Keep building ever bigger sieves till we succeed.
- // The next prime P' is between P+2 and P^2 - 2.
- // However that is a rather pessimistic upper bound.
- // Ideally some theorem would tell us how big we need to build
- // to find one.
- ensureCapacity(Math.max(candidate*2, sieveCapacity*2));
- } // end do
- while (true);
- } // end above
-
- /**
- * @param return first prime less than candidate
- */
- public int below (int candidate)
- {
- for (candidate--; candidate > 0; candidate--)
- {
- if (isPrime(candidate)) return candidate;
- }
- // candidate was 1 or 0 or -ve
- return 0;
- }
-
- /**
- * calc all primes in the range 1..n,
- * not the first n primes.
- * @param n, highest candidate, not necessarily prime.
- * @return list of primes 1..n in an array
- */
- public final int[] getPrimes(int n)
- {
- // calculate the primes
- ensureCapacity(n);
-
- // pass 1: count primes
- int countPrimes = 0;
- for (int i = 0; i <= n; i++)
- {
- if (isPrime(i)) countPrimes++;
- }
-
- // pass 2: construct array of primes
- int [] primes = new int[countPrimes];
- countPrimes = 0;
- for (int i = 0; i <= n; i++)
- {
- if (isPrime(i)) primes[countPrimes++] = i;
- }
- return primes;
- } // end getPrimes
-
- /**
- * calculate the sieve, bit map of all primes 0..n
- * @param n highest number evalutated by the sieve, not necessarily prime.
- */
- private final void sieve ( int n )
- {
- // Presume BitSet b set is big enough for our purposes.
- // Presume all even numbers are already marked composite, effectively.
- // Presume all odd numbers are already marked prime (0 in bit map).
- int last = (int)(Math.sqrt(n))+1;
- for (int candidate = 3; candidate <= last; candidate += 2)
- {
- // only look at odd numbers
- if (!b.get(candidate/2) /* if candidate is prime */)
- {
- // Our candidate is prime.
- // Only bother to mark multiples of primes. Others already done.
- // no need to mark even multiples, already done
- int incr = candidate*2;
- for ( int multiple = candidate + incr; multiple < n; multiple += incr)
- {
- b.set(multiple/2); // mark multiple as composite
- } // end for multiple
- } // end if
- } // end for candidate
- // at this point our sieve b is correct, except for 0..2
- } // end sieve
-
- /**
- * Ensure have a sieve to tackle primes as big as n.
- * If we don't allocate a sieve big enough and calculate it.
- * @param n - ensure sieve big enough to evaluate n for primality.
- */
- private void ensureCapacity (int n)
- {
- if ( n > sieveCapacity )
- {
- b = new BitSet((n+1)/2);
- // starts out all 0, presume all numbers prime
- sieveCapacity = n;
- sieve(n);
- }
- // otherwise existing sieve is fine
- } // end ensureCapacity
-
- private int sieveCapacity;
- // biggest number we have computed in our sieve.
- // our BitSet array is indexed 0..N (odd only)
-
- private BitSet b; /* true for each odd number if is composite */
-
- /**
- * Demonstrate and test the methods
- */
- public static void main (String[] args)
- {
- // print primes 1..101
- Primes calc = new Primes(106);
- int[] primes = calc.getPrimes(101);
- for (int i=0; i<primes.length; i++)
- {
- System.out.println(primes[i]);
- }
-
- // demonstrate isPrime, above, below
- System.out.println(calc.isPrime(149));
- System.out.println(calc.below(149));
- System.out.println(calc.above(149));
-
- // print all the primes just greater than powers of 2
- calc = new Primes(10000000);
- for (int pow=8; pow < 10000000; pow*=2)
- System.out.println(calc.above(pow));
-
- // Validate that isPrime works by comparing it with brute force
- for (int i=3; i<=151; i++)
- {
- boolean prime = true;
- for (int j=2; j<i; j++)
- {
- if (i % j == 0 )
- {
- prime = false;
- break;
- }
- } // end for j
- if ( calc.isPrime(i) != prime ) System.out.println(i + " oops");
- } // end for i
-
- } // end main
-} // end Primes
diff --git a/libjava/testsuite/libjava.lang/Primes.out b/libjava/testsuite/libjava.lang/Primes.out
deleted file mode 100644
index 279398b6233..00000000000
--- a/libjava/testsuite/libjava.lang/Primes.out
+++ /dev/null
@@ -1,51 +0,0 @@
-1
-2
-3
-5
-7
-11
-13
-17
-19
-23
-29
-31
-37
-41
-43
-47
-53
-59
-61
-67
-71
-73
-79
-83
-89
-97
-101
-true
-139
-151
-11
-17
-37
-67
-131
-257
-521
-1031
-2053
-4099
-8209
-16411
-32771
-65537
-131101
-262147
-524309
-1048583
-2097169
-4194319
-8388617
diff --git a/libjava/testsuite/libjava.lang/Shazam.java b/libjava/testsuite/libjava.lang/Shazam.java
deleted file mode 100644
index d3defc0652c..00000000000
--- a/libjava/testsuite/libjava.lang/Shazam.java
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.io.*;
-
-public class Shazam {
-
- private static String shazam ()
- {
- try {
- return "shazam";
- } finally {
- System.out.println ("The next line should say \"shazam\"");
- }
- }
-
- public static void main (String[] args)
- {
- System.out.println (shazam ());
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Shazam.out b/libjava/testsuite/libjava.lang/Shazam.out
deleted file mode 100644
index 42cc30d7239..00000000000
--- a/libjava/testsuite/libjava.lang/Shazam.out
+++ /dev/null
@@ -1,2 +0,0 @@
-The next line should say "shazam"
-shazam
diff --git a/libjava/testsuite/libjava.lang/StringBuffer_1.java b/libjava/testsuite/libjava.lang/StringBuffer_1.java
deleted file mode 100644
index 14291225976..00000000000
--- a/libjava/testsuite/libjava.lang/StringBuffer_1.java
+++ /dev/null
@@ -1,124 +0,0 @@
-// Test StringBuffer.replace(), reverse(), insert(String), append(String),
-// and delete().
-
-public class StringBuffer_1
-{
- public static void main(String args[])
- {
- StringBuffer sb = new StringBuffer("45");
- sb.insert(0, "123");
- sb.append("89");
- sb.insert(5, "6");
- sb.insert(6, '7');
- System.out.println (sb);
-
- sb.delete (3, 99);
-
- String foo = sb.toString();
-
- System.out.println (foo);
- sb.reverse();
- System.out.println (foo);
-
- System.out.println (sb);
- sb = new StringBuffer("1234");
- System.out.println(sb.reverse());
-
- sb = new StringBuffer("123456789");
- sb.append ("0");
- System.out.println(sb);
-
- sb.replace (2, 99, "foo");
- System.out.println (sb);
-
- sb = new StringBuffer("123456789");
- sb.replace (1, 1, "XX");
- System.out.println (sb);
-
- sb = new StringBuffer("123456789");
- sb.replace (0, 2, "XX");
- System.out.println (sb);
-
- sb = new StringBuffer("123456789");
- sb.replace (5, 9, "54321");
- System.out.println (sb);
-
- sb = new StringBuffer("123456789");
-
- sb.delete (1,4);
- System.out.println (sb);
-
- // Test bounds checks
- try
- {
- sb.insert (-2, "x");
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.insert (96, "x");
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.delete (-2, 2);
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.delete (96, 418);
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.delete (4, 2);
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.replace (-2, 2, "54321");
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.replace (4, 2, "54321");
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
-
- try
- {
- sb.replace (12, 18, "54321");
- }
- catch (StringIndexOutOfBoundsException x)
- {
- System.out.println (x.getClass());
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/StringBuffer_1.out b/libjava/testsuite/libjava.lang/StringBuffer_1.out
deleted file mode 100644
index cdc78ff0be7..00000000000
--- a/libjava/testsuite/libjava.lang/StringBuffer_1.out
+++ /dev/null
@@ -1,19 +0,0 @@
-123456789
-123
-123
-321
-4321
-1234567890
-12foo
-1XX23456789
-XX3456789
-1234554321
-156789
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
-class java.lang.StringIndexOutOfBoundsException
diff --git a/libjava/testsuite/libjava.lang/Synch.java b/libjava/testsuite/libjava.lang/Synch.java
deleted file mode 100644
index 15e2d26b4a5..00000000000
--- a/libjava/testsuite/libjava.lang/Synch.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class Synch
-{
- public synchronized void s()
- {
- // This call to notify() isn't supposed to cause a
- // java.lang.IllegalMonitorStateException.
- notify ();
- }
-
- public static void main (String[] args)
- {
- (new Synch()).s();
- System.out.println ("Ok");
- }
-}
-
-
diff --git a/libjava/testsuite/libjava.lang/Synch.out b/libjava/testsuite/libjava.lang/Synch.out
deleted file mode 100644
index 7326d960397..00000000000
--- a/libjava/testsuite/libjava.lang/Synch.out
+++ /dev/null
@@ -1 +0,0 @@
-Ok
diff --git a/libjava/testsuite/libjava.lang/Thread_1.java b/libjava/testsuite/libjava.lang/Thread_1.java
deleted file mode 100644
index 42f8c840000..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_1.java
+++ /dev/null
@@ -1,184 +0,0 @@
-// Various thread tests.
-
-public class Thread_1 extends Thread
-{
- // The group for the workers.
- static ThreadGroup subgroup;
-
- // Which piece of test code to try.
- static int test_case;
-
- // Names of the tests.
- static final int JOIN_GOOD = 0;
- static final int JOIN_TIMEOUT = 1;
- static final int JOIN_INTERRUPTED = 2;
- static final int THREAD_EXIT = 3;
-
- // True if this is normal; false if daemon.
- boolean normal;
- // The other thread in the test.
- Thread_1 other;
- // True when the thread has entered run().
- boolean started;
-
- public void run ()
- {
- try
- {
- if (normal)
- {
- System.out.println ("test " + test_case);
- // Tell the main thread to start the daemon thread.
- synchronized (this)
- {
- started = true;
- notify ();
- }
- // Now wait for daemon to start.
- synchronized (other)
- {
- while (! other.started)
- other.wait ();
- }
- switch (test_case)
- {
- case JOIN_GOOD:
- other.join ();
- System.out.println ("joined");
- break;
- case JOIN_TIMEOUT:
- other.join (10);
- System.out.println (other.isAlive());
- other.join ();
- break;
- case JOIN_INTERRUPTED:
- other.join ();
- System.out.println ("joined");
- break;
- case THREAD_EXIT:
- // Nothing.
- break;
-
- default:
- System.out.println ("failure");
- break;
- }
- }
- else
- {
- // Let the normal thread start first.
- synchronized (other)
- {
- while (! other.started)
- other.wait();
- }
- // Tell normal thread that we've started.
- synchronized (this)
- {
- started = true;
- notify ();
- }
- switch (test_case)
- {
- case JOIN_GOOD:
- System.out.println ("daemon done");
- break;
- case JOIN_TIMEOUT:
- sleep (50);
- break;
- case JOIN_INTERRUPTED:
- other.interrupt ();
- break;
- case THREAD_EXIT:
- // Wait for a while. However, don't wait indefinitely
- // -- we want this thread to terminate so that the
- // process won't hang if there is a bug.
- sleep (10000);
- System.out.println ("daemon still alive");
- break;
-
- default:
- System.out.println ("failure");
- break;
- }
- }
- }
- catch (InterruptedException e)
- {
- System.out.println ("interrupted");
- }
- }
-
- public void setOther (Thread_1 x)
- {
- other = x;
- }
-
- Thread_1 (String name, boolean x)
- {
- super (subgroup, name);
- normal = x;
- started = false;
- setDaemon (! normal);
- }
-
- // Run a single test.
- static Thread_1 doit (int what)
- {
- // FIXME: we used to just use the same threads each time. That
- // didn't work -- must debug.
- Thread_1 dt = new Thread_1 ("daemon", false);
- Thread_1 nt = new Thread_1 ("normal", true);
-
- dt.setOther(nt);
- nt.setOther(dt);
-
- test_case = what;
- try
- {
- nt.start();
- dt.start();
-
- // Don't wait for the threads if we're doing the exit test.
- if (what != THREAD_EXIT)
- {
- nt.join ();
- dt.join ();
- }
- }
- catch (InterruptedException e)
- {
- System.out.println ("caught bad exception");
- }
-
- return dt;
- }
-
- public static void main (String[] args)
- {
- subgroup = new ThreadGroup ("sub");
-
- doit (JOIN_GOOD);
-
- System.out.println ("active count = " + subgroup.activeCount ());
-
- Thread_1 dt = doit (JOIN_TIMEOUT);
- // Make sure that joining a dead thread works.
- System.out.println ("still alive: " + dt.isAlive ());
- try
- {
- dt.join ();
- }
- catch (InterruptedException e)
- {
- System.out.println ("exception caught");
- }
-
- doit (JOIN_INTERRUPTED);
-
- // Note: this test has a race conditoin. So we don't run it any
- // more.
- // This test must come last.
- // doit (THREAD_EXIT);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_1.out b/libjava/testsuite/libjava.lang/Thread_1.out
deleted file mode 100644
index 78ac58a843b..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_1.out
+++ /dev/null
@@ -1,9 +0,0 @@
-test 0
-daemon done
-joined
-active count = 2
-test 1
-true
-still alive: false
-test 2
-interrupted
diff --git a/libjava/testsuite/libjava.lang/Thread_Alive.java b/libjava/testsuite/libjava.lang/Thread_Alive.java
deleted file mode 100644
index d97ea25c5d3..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Alive.java
+++ /dev/null
@@ -1,47 +0,0 @@
-// Test the status of the isAlive() flag before, during, and after thread
-// execution. Check that thread's threadgroup is null after thread exits.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-public class Thread_Alive implements Runnable
-{
- public static void main(String args[]) throws InterruptedException
- {
- Thread_Alive ta = new Thread_Alive();
- Thread t = new Thread(ta);
- System.out.println(t.isAlive());
- t.start();
- System.out.println(t.isAlive());
-
- Thread.sleep(100);
-
- synchronized (ta)
- {
- ta.notifyAll();
- }
-
- t.join();
- System.out.println(t.isAlive());
-
- try
- {
- t.start();
- System.out.println("Error: dead thread can be restarted.");
- }
- catch (IllegalThreadStateException x)
- {
- System.out.println ("ok");
- }
-
- System.out.println(t.getThreadGroup());
- }
-
- public synchronized void run()
- {
- try
- {
- wait();
- }
- catch (InterruptedException x) {}
- }
-
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Alive.out b/libjava/testsuite/libjava.lang/Thread_Alive.out
deleted file mode 100644
index 1d1790d9207..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Alive.out
+++ /dev/null
@@ -1,5 +0,0 @@
-false
-true
-false
-ok
-null
diff --git a/libjava/testsuite/libjava.lang/Thread_Interrupt.java b/libjava/testsuite/libjava.lang/Thread_Interrupt.java
deleted file mode 100644
index 5412549e713..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Interrupt.java
+++ /dev/null
@@ -1,134 +0,0 @@
-// Test interrupt() behaviour on a thread in wait(), sleep(), and spinning
-// in a loop.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-class Waiter extends Thread
-{
- public synchronized void run()
- {
- System.out.println ("wait()");
- try
- {
- wait();
- System.out.println("Error: wait() completed normally.");
- }
- catch (InterruptedException x)
- {
- if (isInterrupted() || interrupted())
- System.out.println("Error: interrupt flag is still set.");
-
- }
- System.out.println("interrupted - ok");
- }
-}
-
-class Sleeper extends Thread
-{
- public void run()
- {
- System.out.println ("sleep()");
- try
- {
- sleep(2000);
- System.out.println("Error: sleep() completed normally.");
- }
- catch (InterruptedException x)
- {
- if (isInterrupted() || interrupted())
- System.out.println("Error: interrupt flag is still set.");
-
- System.out.println("interrupted - ok");
- }
- }
-}
-
-class Looper extends Thread
-{
- public void run()
- {
- System.out.println ("Busy waiting");
-
- int count = 0;
- for (int i=0; i < 1000000; i++)
- {
- Thread.yield();
- count += 5;
- if (isInterrupted ())
- break;
- }
- synchronized (this)
- {
- if (interrupted ())
- {
- System.out.println ("interrupted - ok");
- if (isInterrupted () || interrupted ())
- System.out.println("Error: interrupt flag is still set.");
- }
- else
- System.out.println ("Error: Busy wait was not interrupted.");
- }
- }
-}
-
-class Joiner extends Thread
-{
- public void run()
- {
- System.out.println("join()");
- try
- {
- join(2000);
- System.out.println("Error: join() completed normally??!");
- }
- catch (InterruptedException x)
- {
- if (isInterrupted() || interrupted())
- System.out.println("Error: interrupt flag is still set.");
-
- System.out.println("interrupted - ok");
- }
-
- }
-}
-
-public class Thread_Interrupt
-{
- public static void main(String args[])
- {
- Waiter w = new Waiter();
- w.start ();
- sleep_and_interrupt (w);
-
- Sleeper s = new Sleeper();
- s.start ();
- sleep_and_interrupt (s);
-
- Looper l = new Looper ();
- l.start ();
- sleep_and_interrupt (l);
-
- Joiner j = new Joiner ();
- j.start ();
- sleep_and_interrupt (j);
- }
-
- public static void sleep_and_interrupt(Thread t)
- {
- try
- {
- Thread.sleep (250);
- t.interrupt ();
- long t1 = System.currentTimeMillis();
- t.join (5000);
- long time = System.currentTimeMillis() - t1;
- if (time > 2900)
- {
- System.out.println ("Error: join() from main thread timed out");
- }
- }
- catch (InterruptedException x)
- {
- System.out.println("Error: main thread interrupted.");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Interrupt.out b/libjava/testsuite/libjava.lang/Thread_Interrupt.out
deleted file mode 100644
index b3a5c3100b4..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Interrupt.out
+++ /dev/null
@@ -1,8 +0,0 @@
-wait()
-interrupted - ok
-sleep()
-interrupted - ok
-Busy waiting
-interrupted - ok
-join()
-interrupted - ok
diff --git a/libjava/testsuite/libjava.lang/Thread_Join.java b/libjava/testsuite/libjava.lang/Thread_Join.java
deleted file mode 100644
index 711b05cf0f8..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Join.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// Many threads join a single thread.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-class Sleeper implements Runnable
-{
- int num = -1;
-
- public Sleeper(int num)
- {
- this.num = num;
- }
-
- public void run()
- {
- System.out.println("sleeping");
- try
- {
- Thread.sleep(500);
- }
- catch (InterruptedException x)
- {
- System.out.println("sleep() interrupted");
- }
- System.out.println("done");
- }
-}
-
-class Joiner implements Runnable
-{
- Thread join_target;
-
- public Joiner(Thread t)
- {
- this.join_target = t;
- }
-
- public void run()
- {
- try
- {
- long start = System.currentTimeMillis();
- join_target.join(2000);
- if ((System.currentTimeMillis() - start) > 1900)
- System.out.println("Error: Join timed out");
- else
- System.out.println("ok");
- }
- catch (InterruptedException x)
- {
- System.out.println("join() interrupted");
- }
- }
-
-}
-
-public class Thread_Join
-{
- public static void main(String[] args)
- {
- Thread primary = new Thread(new Sleeper(1));
- primary.start();
- for (int i=0; i < 10; i++)
- {
- Thread t = new Thread(new Joiner(primary));
- t.start();
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Join.out b/libjava/testsuite/libjava.lang/Thread_Join.out
deleted file mode 100644
index ac72ef3f942..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Join.out
+++ /dev/null
@@ -1,12 +0,0 @@
-sleeping
-done
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
diff --git a/libjava/testsuite/libjava.lang/Thread_Monitor.java b/libjava/testsuite/libjava.lang/Thread_Monitor.java
deleted file mode 100644
index f1ffa674c37..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Monitor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-// Test that monitor locks work and are recursive.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-class T implements Runnable
-{
- public int count = 0;
- Counter c;
-
- public T (Counter c)
- {
- this.c = c;
- }
-
- public void run()
- {
- while (true)
- {
- // NOTE: double-synchronization here.
- synchronized (c)
- {
- if (c.getCount() <= 100000)
- count++;
- else
- break;
- }
- }
- }
-}
-
-class Counter
-{
- int i = 0;
- public synchronized int getCount ()
- {
- return ++i;
- }
-}
-
-public class Thread_Monitor
-{
- public static void main(String args[])
- {
- Counter c = new Counter();
- T t1 = new T(c);
- T t2 = new T(c);
-
- Thread th1 = new Thread(t1);
- Thread th2 = new Thread(t2);
- th1.start();
- th2.start();
- try
- {
- th1.join();
- th2.join();
- }
- catch (InterruptedException x)
- {
- System.out.println("failed: Interrupted");
- }
- if (t1.count + t2.count == 100000)
- System.out.println ("ok");
- else
- System.out.println ("failed: total count incorrect");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Monitor.out b/libjava/testsuite/libjava.lang/Thread_Monitor.out
deleted file mode 100644
index 9766475a418..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Monitor.out
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/libjava/testsuite/libjava.lang/Thread_Sleep.java b/libjava/testsuite/libjava.lang/Thread_Sleep.java
deleted file mode 100644
index e7f4a81532c..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Sleep.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// Test that Thread.sleep() works.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-public class Thread_Sleep
-{
- public static void main(String args[])
- {
- try
- {
- long start = System.currentTimeMillis();
- System.out.println("sleeping");
- Thread.sleep(1000);
- long end = System.currentTimeMillis();
- if ((end - start) > 1100 || (end - start) < 990)
- System.out.println ("failed");
- else
- System.out.println("ok");
- }
- catch (InterruptedException x)
- {
- System.out.println("error: Thread interrupted.");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Sleep.out b/libjava/testsuite/libjava.lang/Thread_Sleep.out
deleted file mode 100644
index 1622a213afa..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Sleep.out
+++ /dev/null
@@ -1,2 +0,0 @@
-sleeping
-ok
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait.java b/libjava/testsuite/libjava.lang/Thread_Wait.java
deleted file mode 100644
index 5ca12ed5d4b..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// Test basic thread creation and wait/notify functionality.
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-public class Thread_Wait implements Runnable
-{
- public static void main(String args[])
- {
- new Thread_Wait();
- }
-
- public Thread_Wait()
- {
- System.out.println("creating thread");
- Thread t = new Thread(this);
- t.start();
-
- try
- {
- Thread.sleep(100);
- }
- catch (Exception x)
- {
- System.out.println("exception occured: " + x);
- }
-
- synchronized (this)
- {
- System.out.println("notifying other thread");
- notify();
- }
- }
-
- public void run()
- {
- System.out.println ("new thread running");
- synchronized (this)
- {
- try
- {
- wait();
- }
- catch (Exception x)
- {
- System.out.println("exception occured: " + x);
- }
- }
- System.out.println ("thread notified okay");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait.out b/libjava/testsuite/libjava.lang/Thread_Wait.out
deleted file mode 100644
index 09cbb785c04..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait.out
+++ /dev/null
@@ -1,4 +0,0 @@
-creating thread
-new thread running
-notifying other thread
-thread notified okay
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait_2.java b/libjava/testsuite/libjava.lang/Thread_Wait_2.java
deleted file mode 100644
index a03cb943812..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait_2.java
+++ /dev/null
@@ -1,144 +0,0 @@
-// Create many threads waiting on a monitor. Interrupt some of them. Do the
-// others wake up correctly with notify() and/or notifyAll()?
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-import java.util.Vector;
-
-class Waiter extends Thread
-{
- Object monitor;
- int thread_num;
- boolean interrupted = false;
- boolean notified = false;
-
- Waiter (Object monitor, int thread_num)
- {
- this.monitor = monitor;
- this.thread_num = thread_num;
- }
-
- public void run()
- {
- synchronized (monitor)
- {
- try
- {
- monitor.wait();
- notified = true;
- }
- catch (InterruptedException x)
- {
- interrupted = true;
- }
- }
-
- }
-}
-
-public class Thread_Wait_2
-{
- static Vector threads;
- static Object monitor = new Object();
-
- static final int NUM_THREADS = 10;
-
- public static void main(String args[])
- {
-
-
- try
- {
- makeThreads ();
-
- Thread.sleep(250);
-
- // Interrupt a few threads...
- Waiter i1 = (Waiter) threads.elementAt(3);
- Waiter i2 = (Waiter) threads.elementAt(4);
- Waiter i3 = (Waiter) threads.elementAt(9);
- i1.interrupt();
- i2.interrupt();
- i3.interrupt();
-
- // Call notify the exact number of times required to wake the remaining
- // threads.
- synchronized (monitor)
- {
- for (int i=0; i < NUM_THREADS -3 ; i++)
- {
- monitor.notify ();
- }
- }
-
- joinAll();
- printStatus();
-
- // Repeat all the above, but use notifyAll() instead.
- makeThreads();
-
- Thread.sleep(250);
-
- // Interrupt a few threads...
- i1 = (Waiter) threads.elementAt(0);
- i2 = (Waiter) threads.elementAt(1);
- i3 = (Waiter) threads.elementAt(9);
- i1.interrupt();
- i2.interrupt();
- i3.interrupt();
-
- // Call notifyAll to wake the remaining threads.
- synchronized (monitor)
- {
- monitor.notifyAll ();
- }
-
- joinAll();
- printStatus();
-
- }
- catch (InterruptedException x)
- {
- System.out.println (x);
- }
-
-
- }
-
- static void makeThreads()
- {
- threads = new Vector(NUM_THREADS);
-
- for (int i=0; i < NUM_THREADS; i++)
- {
- Waiter w = new Waiter(monitor, i);
- w.start();
- threads.addElement(w);
- }
- }
-
- static void joinAll()
- {
- try
- {
- for (int i=0; i < threads.size(); i++)
- {
- Thread t = (Thread) threads.elementAt(i);
- t.join();
- }
- }
- catch (InterruptedException x) {}
- }
-
- static void printStatus()
- {
- for (int i=0; i < threads.size(); i++)
- {
- Waiter w = (Waiter) threads.elementAt(i);
- if (w.interrupted)
- System.out.println (i + " interrupted.");
- if (w.notified)
- System.out.println (i + " notified.");
- }
- }
-
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait_2.out b/libjava/testsuite/libjava.lang/Thread_Wait_2.out
deleted file mode 100644
index 4a71f07f900..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait_2.out
+++ /dev/null
@@ -1,20 +0,0 @@
-0 notified.
-1 notified.
-2 notified.
-3 interrupted.
-4 interrupted.
-5 notified.
-6 notified.
-7 notified.
-8 notified.
-9 interrupted.
-0 interrupted.
-1 interrupted.
-2 notified.
-3 notified.
-4 notified.
-5 notified.
-6 notified.
-7 notified.
-8 notified.
-9 interrupted.
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java b/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java
deleted file mode 100644
index be7b5551614..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// Create two threads waiting on a monitor. Interrupt one of them. Does the
-// other wake up correctly?
-// Origin: Bryce McKinlay <bryce@albatross.co.nz>
-
-class Waiter extends Thread
-{
- Object monitor;
- int thread_num;
- boolean interrupted = false;
- boolean notified = false;
-
- Waiter (Object monitor, int thread_num)
- {
- this.monitor = monitor;
- this.thread_num = thread_num;
- }
-
- public void run()
- {
- synchronized (monitor)
- {
- System.out.println ("Thread waiting.");
- try
- {
- long start = System.currentTimeMillis();
- monitor.wait(1000);
- long time = System.currentTimeMillis() - start;
- if (time > 990)
- System.out.println ("Error: wait on thread " + thread_num
- + " timed out.");
- else
- notified = true;
- }
- catch (InterruptedException x)
- {
- interrupted = true;
- }
- }
-
- }
-}
-
-public class Thread_Wait_Interrupt
-{
- public static void main(String args[])
- {
- Object monitor = new Object();
- Waiter w1 = new Waiter(monitor, 1);
- Waiter w2 = new Waiter(monitor, 2);
- w1.start();
- w2.start();
- try
- {
- Thread.sleep(250);
-
- synchronized (monitor)
- {
- w1.interrupt();
- monitor.notify();
- }
-
- w1.join();
- w2.join();
- System.out.println("join ok");
- System.out.println("Thread 1 " +
- (w1.interrupted ? "interrupted ok" : "error"));
- System.out.println("Thread 2 " +
- (w2.notified ? "notified ok" : "error"));
-
- }
- catch (InterruptedException x)
- {
- System.out.println (x);
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out b/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out
deleted file mode 100644
index 4f3b1667814..00000000000
--- a/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out
+++ /dev/null
@@ -1,5 +0,0 @@
-Thread waiting.
-Thread waiting.
-join ok
-Thread 1 interrupted ok
-Thread 2 notified ok
diff --git a/libjava/testsuite/libjava.lang/Throw_1.java b/libjava/testsuite/libjava.lang/Throw_1.java
deleted file mode 100644
index 4a0780aec06..00000000000
--- a/libjava/testsuite/libjava.lang/Throw_1.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Some tests of `throw'.
-
-public class Throw_1
-{
- public static Throwable get ()
- {
- return null;
- }
-
- public static void main (String[] args)
- {
- Throwable t = get ();
- try
- {
- throw t;
- }
- catch (NullPointerException y)
- {
- }
- catch (Throwable x)
- {
- System.out.println ("no");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/Throw_1.out b/libjava/testsuite/libjava.lang/Throw_1.out
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/libjava/testsuite/libjava.lang/Throw_1.out
+++ /dev/null
diff --git a/libjava/testsuite/libjava.lang/anfi.java b/libjava/testsuite/libjava.lang/anfi.java
deleted file mode 100644
index d9e7de75286..00000000000
--- a/libjava/testsuite/libjava.lang/anfi.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Class anfi
-// Generated on Sat Jan 29 16:06:33 PST 2000
-// Anonymous with access to outer context locals
-
-class anfi {
-
- itf foo (final String s, final int i) {
- return new itf () {
- String buff = s+" "+i;
- public void setString (String s) { buff = s+" "+i; }
- public String getString () { return buff; }
- };
- }
-
- void test () {
- itf x = foo ("Hello", 123);
- System.out.println (x.getString ());
- x.setString ("Frinkahedron");
- System.out.println (x.getString ());
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `anfi'...");
- new anfi().test();
- }
-}
-
-interface itf {
- void setString (String s);
- String getString();
- String buff = null;
-}
diff --git a/libjava/testsuite/libjava.lang/anfi.out b/libjava/testsuite/libjava.lang/anfi.out
deleted file mode 100644
index 52ac97cf992..00000000000
--- a/libjava/testsuite/libjava.lang/anfi.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Testing class `anfi'...
-Hello 123
-Frinkahedron 123
diff --git a/libjava/testsuite/libjava.lang/anon.java b/libjava/testsuite/libjava.lang/anon.java
deleted file mode 100644
index c24b4f0a2ba..00000000000
--- a/libjava/testsuite/libjava.lang/anon.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// Class anon
-// Generated on Wed Dec 29 10:07:09 PST 1999
-//
-
-
-interface itf {int count = 0;void setCount (int i);int getCount ();}
-
-class anon {
-
- int count = 34;
-
- class x implements itf {
- int count = 3;
- public void setCount (int j) { }
- public int getCount () { return count*3; }
- }
-
-
- itf foo () {
- class y implements itf {
- int count = 3;
- public void setCount (int j) { count = j; }
- public int getCount () { return count+1; }
- }
- return new y ();
- }
-
- itf bar () {
- return new itf () {
- // The class defined right here will implement `itf'
- int count = 5;
- public void setCount (int j) { count = j; }
- public int getCount () { return count+1; }
- } ;
- }
-
- void test () {
- itf a = foo ();
- itf b = bar ();
- x c = this.new x ();
- System.out.println (a.getCount ());
- System.out.println (b.getCount ());
- System.out.println (c.getCount ());
- System.out.println (this.count);
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `anon'...");
- new anon ().test ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/anon.out b/libjava/testsuite/libjava.lang/anon.out
deleted file mode 100644
index 3b397bbe5aa..00000000000
--- a/libjava/testsuite/libjava.lang/anon.out
+++ /dev/null
@@ -1,5 +0,0 @@
-Testing class `anon'...
-4
-6
-9
-34
diff --git a/libjava/testsuite/libjava.lang/anon2.java b/libjava/testsuite/libjava.lang/anon2.java
deleted file mode 100644
index a14eef88e05..00000000000
--- a/libjava/testsuite/libjava.lang/anon2.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// Class anon2
-// Generated on Wed Dec 29 10:07:09 PST 1999
-//
-
-
-class anon2 {
-
- int count = 34;
- int field;
-
- anon2 () { System.out.println ("anon2()"); }
-
- anon2 (foobar x) {
- System.out.println ("Yikes!"+x.zoink());
- }
-
- anon2 foo () {
- class y extends anon2 {
- int count = 3;
- public void setCount (int j) { count = j; }
- public int getCount () { return count+1; }
- y (int i) { System.out.println ("y(int)"); }
- }
- return new y (3);
- }
-
- anon2 bar () {
- foobar xyz = new foobar ();
- return new anon2 (xyz) {
- int count = 5;
- public void setCount (int j) { field = 3; count = j; }
- public int getCount () { return count+1; }
- } ;
- }
-
- void test () {
- anon2 b = bar ();
- anon2 c = foo ();
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `anon2'...");
- new anon2 ().test ();
- }
-}
-
-class foobar {
- public String zoink() { return " zoinked"; }
-}
diff --git a/libjava/testsuite/libjava.lang/anon2.out b/libjava/testsuite/libjava.lang/anon2.out
deleted file mode 100644
index 2a125749190..00000000000
--- a/libjava/testsuite/libjava.lang/anon2.out
+++ /dev/null
@@ -1,5 +0,0 @@
-Testing class `anon2'...
-anon2()
-Yikes! zoinked
-anon2()
-y(int)
diff --git a/libjava/testsuite/libjava.lang/anon3.java b/libjava/testsuite/libjava.lang/anon3.java
deleted file mode 100644
index 0af8804d801..00000000000
--- a/libjava/testsuite/libjava.lang/anon3.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Class anon3
-// Generated on Wed Dec 29 10:07:09 PST 1999
-//
-
-
-class anon3 {
-
- itf bar () {
- return new itf () {
- int count = 5;
- public void setCount (int j) { count = 3; }
- public int getCount () { return count; }
- } ;
- }
-
- void test () {
- itf x = bar ();
- System.out.println (x.getCount ());
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `anon3'...");
- new anon3 ().test ();
- }
-}
-
-interface itf { void setCount (int j); int getCount(); int count = 0; }
diff --git a/libjava/testsuite/libjava.lang/anon3.out b/libjava/testsuite/libjava.lang/anon3.out
deleted file mode 100644
index 2e59ff3c4ac..00000000000
--- a/libjava/testsuite/libjava.lang/anon3.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `annon3'...
-5
diff --git a/libjava/testsuite/libjava.lang/anon4.java b/libjava/testsuite/libjava.lang/anon4.java
deleted file mode 100644
index 4fd5262272e..00000000000
--- a/libjava/testsuite/libjava.lang/anon4.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Class anon4
-// Generated on Wed Dec 29 10:07:09 PST 1999
-//
-
-
-class anon4 {
-
- private int field = 3;
-
- itf bar () {
- return new itf () {
- int count = 5;
- public void setCount (int j) { count = 3+field; }
- public int getCount () { return count+field; }
- } ;
- }
-
- void test () {
- itf x = bar ();
- System.out.println (x.getCount ());
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `anon4'...");
- new anon4 ().test ();
- }
-}
-
-interface itf { void setCount (int j); int getCount(); int count = 0; }
diff --git a/libjava/testsuite/libjava.lang/anon4.out b/libjava/testsuite/libjava.lang/anon4.out
deleted file mode 100644
index ff8b8916e98..00000000000
--- a/libjava/testsuite/libjava.lang/anon4.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `anon4'...
-8
diff --git a/libjava/testsuite/libjava.lang/anonarray.java b/libjava/testsuite/libjava.lang/anonarray.java
deleted file mode 100644
index 8239c51f932..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Class anonarray
-// Generated on Tue Feb 1 16:11:29 PST 2000
-// Simple anonymous array, of primitive types.
-
-class anonarray {
-
- static void foo (int [][] x) {
- for (int i = 0; i < x.length; i++)
- {
- for (int j = 0; j < x[i].length; j++)
- System.out.print (x[i][j]);
- System.out.println();
- }
- }
-
- public static void main (String[] arg)
- {
- foo (new int[][] {{2,3},{5,7}});
- System.out.println ((new int [][] {{11,13},{17,19}}).length);
- System.out.println ((new int [][] {{23,29},{31,37}})[0][1]);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/anonarray.out b/libjava/testsuite/libjava.lang/anonarray.out
deleted file mode 100644
index 4ad3f56ef2f..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray.out
+++ /dev/null
@@ -1,4 +0,0 @@
-23
-57
-2
-29
diff --git a/libjava/testsuite/libjava.lang/anonarray2.java b/libjava/testsuite/libjava.lang/anonarray2.java
deleted file mode 100644
index 46df5e71130..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray2.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Class anonarray2
-// Generated on Tue Feb 1 21:14:06 PST 2000
-// Anonymous array, with a non primitive type.
-
-class anonarray2 {
-
- static void foo (String [][] x) {
- for (int i = 0; i < x.length; i++)
- {
- for (int j = 0; j < x[i].length; j++)
- System.out.print (x[i][j]);
- System.out.println();
- }
- }
-
- public static void main (String[] arg)
- {
- foo (new String[][] {{"2","3"},{"5","7"}});
- System.out.println ((new String [][] {{"11","13"},{"17","19"}}).length);
- System.out.println ((new String [][] {{"23","29"},{"31","37"}})[0][1]);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/anonarray2.out b/libjava/testsuite/libjava.lang/anonarray2.out
deleted file mode 100644
index 4ad3f56ef2f..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray2.out
+++ /dev/null
@@ -1,4 +0,0 @@
-23
-57
-2
-29
diff --git a/libjava/testsuite/libjava.lang/anonarray3.java b/libjava/testsuite/libjava.lang/anonarray3.java
deleted file mode 100644
index 264365b1359..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray3.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// Class anonarray3
-// Generated on Tue Feb 8 19:18:10 PST 2000
-//
-
-class anonarray3 {
- private static final int[] foo (int x) {
- return new int[] { x+1 };
- }
- public static void main (String[] arg)
- {
- System.out.println (foo (34)[0]);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/anonarray3.out b/libjava/testsuite/libjava.lang/anonarray3.out
deleted file mode 100644
index 8f92bfdd497..00000000000
--- a/libjava/testsuite/libjava.lang/anonarray3.out
+++ /dev/null
@@ -1 +0,0 @@
-35
diff --git a/libjava/testsuite/libjava.lang/direct_read.java b/libjava/testsuite/libjava.lang/direct_read.java
deleted file mode 100644
index 57342849353..00000000000
--- a/libjava/testsuite/libjava.lang/direct_read.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Class direct_read
-// Generated on Sat Nov 13 23:26:34 UTC 1999
-//
-
-class direct_read {
-
- int foo;
-
- class direct_read_inner {
- void test () {
- int x = foo;
- System.out.println ("x="+x);
- }
- }
-
- void foo ()
- {
- foo = 670;
- direct_read_inner inn = this.new direct_read_inner ();
- inn.test ();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `direct_read'...");
- new direct_read().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/direct_read.out b/libjava/testsuite/libjava.lang/direct_read.out
deleted file mode 100644
index f8f3c647521..00000000000
--- a/libjava/testsuite/libjava.lang/direct_read.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `direct_read'...
-x=670
diff --git a/libjava/testsuite/libjava.lang/direct_write.java b/libjava/testsuite/libjava.lang/direct_write.java
deleted file mode 100644
index 2745f8601c8..00000000000
--- a/libjava/testsuite/libjava.lang/direct_write.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Class direct_write
-// Generated on Mon Nov 15 17:10:56 UTC 1999
-//
-
-class direct_write {
-
- int foo;
-
- class direct_write_inner {
- void test () {
- foo = 670;
- }
- }
-
- void foo ()
- {
- foo = 650;
- direct_write_inner inn = this.new direct_write_inner ();
- inn.test ();
- System.out.println ("foo="+foo);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `direct_write'...");
- new direct_write().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/direct_write.out b/libjava/testsuite/libjava.lang/direct_write.out
deleted file mode 100644
index b4ff636ee97..00000000000
--- a/libjava/testsuite/libjava.lang/direct_write.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `direct_write'...
-foo=670
diff --git a/libjava/testsuite/libjava.lang/err1.java b/libjava/testsuite/libjava.lang/err1.java
deleted file mode 100644
index 7530252c86f..00000000000
--- a/libjava/testsuite/libjava.lang/err1.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*-------------------------------------------------------------------------*/
-/* File name : err1.java */
-/* : */
-/* Cause : When I make class-type Object. */
-/* : */
-/* Message : Internal compiler error: program jc1 got */
-/* : fatal signal 11 */
-/*-------------------------------------------------------------------------*/
-
-class A {
- int counter = 100;
-}
-
-public class err1 {
- public static void main(String[] args) {
- A array[] = new A[10]; //err
- array[0] = new A();
-
- if ( array[0].counter == 100 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG:[100]-->[" +array[0].counter+ "]");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/err1.out b/libjava/testsuite/libjava.lang/err1.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err1.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err10.java b/libjava/testsuite/libjava.lang/err10.java
deleted file mode 100644
index afdb4e05504..00000000000
--- a/libjava/testsuite/libjava.lang/err10.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err10.java */
-/* : */
-/* Cause : Operator >>> doesn't work correctly when value is negative. */
-/* : */
-/* Message : NG : a = -2 */
-/*--------------------------------------------------------------------------*/
-
-public class err10 {
- public static void main(String[] args) {
- int a = -3;
-
- a = a>>>1;
-
- if ( a == 2147483646 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG:[2147483646]-->[" +a+ "]");
- }
-
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err10.out b/libjava/testsuite/libjava.lang/err10.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err10.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err11.java b/libjava/testsuite/libjava.lang/err11.java
deleted file mode 100644
index 7b1d0c7f14e..00000000000
--- a/libjava/testsuite/libjava.lang/err11.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err11.java */
-/* : */
-/* Cause : If I declare both array which have more than 10 element */
-/* : and switch statement, make error. */
-/* : */
-/* Message : err11.java:1: Missing class name. */
-/* : public class err11 */
-/* : ^ */
-/* : err11.java:1: Class or interface declaration expected. */
-/* : public class err11 */
-/* : ^ */
-/* : 2 errors */
-/*--------------------------------------------------------------------------*/
-
-public class err11
-{
- public static void main(String args[])
- {
- int i;
- short ary1[] = {12,23,34,45,56,67,78,89,90,111};
-
- for(i=0; i<10; i++) {
- switch(ary1[i]) {
- case 111 : System.out.println("OK");
- default : break;
- }
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/err11.out b/libjava/testsuite/libjava.lang/err11.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err11.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err12.java b/libjava/testsuite/libjava.lang/err12.java
deleted file mode 100644
index 9631b3de6af..00000000000
--- a/libjava/testsuite/libjava.lang/err12.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err12.java */
-/* : */
-/* Cause : Cast negative floating point to char makes error */
-/* : */
-/* Message : Internal compiler error in functi on convert_move */
-/*--------------------------------------------------------------------------*/
-
-public class err12 {
- public static void main(String[] args){
- char x1, x2;
-
- float y = -10000f;
-
- x1 = (char)y; // err
- x2 = (char)-10000f; // ok
-
- if ( x1 == x2 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG");
- System.out.println("x1:[65520]-->[" +(x1-0)+"]");
- System.out.println("x2:[65520]-->[" +(x2-0)+"]");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err12.out b/libjava/testsuite/libjava.lang/err12.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err12.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err13.java b/libjava/testsuite/libjava.lang/err13.java
deleted file mode 100644
index d946d610488..00000000000
--- a/libjava/testsuite/libjava.lang/err13.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err13.java */
-/* : */
-/* Cause : Conversion from zero to String type is not correct. */
-/* : */
-/* Message : NG : test */
-/*--------------------------------------------------------------------------*/
-
-public class err13 {
- public static void main(String[] args) {
- String s = "test";
- s += 0;
-
- if ( s.equals("test0") ) {
- System.out.println("OK");
- } else {
- System.out.println("NG : " +s);
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err13.out b/libjava/testsuite/libjava.lang/err13.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err13.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err2.java b/libjava/testsuite/libjava.lang/err2.java
deleted file mode 100644
index deeddf633e9..00000000000
--- a/libjava/testsuite/libjava.lang/err2.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err2.java */
-/* : */
-/* Cause : Operator "+=" error in char,byte,short type */
-/* : */
-/* Message : err2.java: In class `err2': */
-/* : err2.java: In method `main(java.lang.String[])': */
-/* : err2.java:22: Incompatible type for `='. Explicit cast */
-/* : needed to convert `int' to `byte'. */
-/* : a %= b; */
-/* : ^ */
-/* : 1 error */
-/*--------------------------------------------------------------------------*/
-
-public class err2 {
- public static void main(String[] args) {
- byte a = -16;
- byte b = 10;
-
- a %= b;
-
- if ( a == -6 ) {
- System.out.println("OK");
- } else {
- System.out.println("a = " +a);
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/err2.out b/libjava/testsuite/libjava.lang/err2.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err2.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err3.java b/libjava/testsuite/libjava.lang/err3.java
deleted file mode 100644
index 17535b8500f..00000000000
--- a/libjava/testsuite/libjava.lang/err3.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err3.java */
-/* : */
-/* Cause : Evaluation sequence of the formula which used */
-/* : the substitution operator is not performed correctly. */
-/* : */
-/* Message : NG1:[27]-->[9] */
-/* : NG2:[27]-->[9] */
-/* : */
-/* Note : JLS 15.6 Evaluation Order (p305) */
-/* S15.6.1 Evaluate Left-Hand Operand First */
-/* : A formula should be evaluated to 9*3 instead of 3*3. */
-/*--------------------------------------------------------------------------*/
-
-public class err3 {
- public static void main(String[] args) {
- int x = 9;
- x *= (x = 3);
- if ( x == 27 ) {
- System.out.println("OK1");
- } else {
- System.out.println("NG1:[27]-->["+x+"]");
- }
-
- int y = 9;
- y = y * (y = 3);
- if ( y == 27 ) {
- System.out.println("OK2");
- } else {
- System.out.println("NG2:[27]-->["+y+"]");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err3.out b/libjava/testsuite/libjava.lang/err3.out
deleted file mode 100644
index dfa480ce6e5..00000000000
--- a/libjava/testsuite/libjava.lang/err3.out
+++ /dev/null
@@ -1,2 +0,0 @@
-OK1
-OK2
diff --git a/libjava/testsuite/libjava.lang/err4.java b/libjava/testsuite/libjava.lang/err4.java
deleted file mode 100644
index ad908e27531..00000000000
--- a/libjava/testsuite/libjava.lang/err4.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* file_name : err4.java */
-/* : */
-/* Cause : Evaluation of the array which used the substitution */
-/* : operator is not performed correctly. */
-/* : */
-/* Message : NG1:[27}-->[9.0] */
-/* : NG1:[27}-->[9.0] */
-/*--------------------------------------------------------------------------*/
-
-public class err4 {
- public static void main(String[] args) {
-
- // TEST1
- float []a = {9f};
- a[0] *= (a[0] = 3f);
-
- if ( a[0] == 27 ) {
- System.out.println("OK1");
- } else {
- System.out.println("NG1:[27}-->["+a[0]+"]");
- }
-
- //TEST2
- float [] b = {9f};
- b[0] = (float)(b[0] * (b[0] = 3f));
- if ( b[0] == 27 ) {
- System.out.println("OK1");
- } else {
- System.out.println("NG1:[27}-->["+b[0]+"]");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err4.out b/libjava/testsuite/libjava.lang/err4.out
deleted file mode 100644
index f6e108f6d0c..00000000000
--- a/libjava/testsuite/libjava.lang/err4.out
+++ /dev/null
@@ -1,2 +0,0 @@
-OK1
-OK1
diff --git a/libjava/testsuite/libjava.lang/err5.java b/libjava/testsuite/libjava.lang/err5.java
deleted file mode 100644
index f9e95b63504..00000000000
--- a/libjava/testsuite/libjava.lang/err5.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* file_name : err5.java */
-/* : */
-/* Cause : Evaluation order of method argument is not correct. */
-/* : */
-/* Message : NG */
-/* : a:[1]-->[2] */
-/* : b:[3]-->[3] */
-/* : c:[2]-->[2] */
-/* : */
-/* Note : JLS 15.6 Evaluation Order */
-/* S15.6.4 Argument Lists are Evaluated Left-to-Right(p309) */
-/* [Each argument expression appears to be fully evaluated */
-/* before any part of any argument expression to its right.] */
-/*--------------------------------------------------------------------------*/
-
-public class err5 {
- public static void main(String[] args) {
- int x = 1;
-
- err5 obj = new err5();
- obj.print(x, x = 3, x = 2);
- }
-
- void print(int a, int b, int c) {
- if ( a == 1 && b == 3 && c == 2 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG");
- System.out.println("a:[1]-->["+a+"]");
- System.out.println("b:[3]-->["+b+"]");
- System.out.println("c:[2]-->["+c+"]");
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/err5.out b/libjava/testsuite/libjava.lang/err5.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err5.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err6.java b/libjava/testsuite/libjava.lang/err6.java
deleted file mode 100644
index 4b06c6caa7a..00000000000
--- a/libjava/testsuite/libjava.lang/err6.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err6.java */
-/* : */
-/* Cause : Array evaluation order */
-/* : */
-/* Message : NG:[1]-->[4] */
-/* : */
-/* Note : JLS 15.9 Array Creation Expressions (p315--) */
-/* : p318 line3 */
-/* :[Each dimension expression is fully evaluated */
-/* : before any part of any dimension expression to its right.] */
-/*--------------------------------------------------------------------------*/
-
-public class err6 {
- public static void main(String[] args) {
- int[] x = { 10, 11, 12, 1, 14 };
- int[] y = { 1, 2, 3, 4, 5, 6 };
-
- if ( x[(x=y)[2]] == 1 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG:[1]-->[" +x[(x=y)[2]]+ "]");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err6.out b/libjava/testsuite/libjava.lang/err6.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err6.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err7.java b/libjava/testsuite/libjava.lang/err7.java
deleted file mode 100644
index 11f4e8d0b18..00000000000
--- a/libjava/testsuite/libjava.lang/err7.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err7.java */
-/* : */
-/* Cause : When exists both array (more than 10 elements) and */
-/* "for" or "while" or "do while" statement , error. */
-/* : */
-/* Message : /var/tmp/cc1oQM8i.s: Assembler messages: */
-/* : /var/tmp/cc1oQM8i.s:243: Fatal error: Symbol $L2 already def*/
-/* : fined. */
-/*--------------------------------------------------------------------------*/
-
-public class err7 {
- public static void main(String[] args) {
- int[] ary = {0,1,2,3,4,5,6,7,8,9};
-
- while ( true ) {
- break;
- }
-
- System.out.println("OK");
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err7.out b/libjava/testsuite/libjava.lang/err7.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err7.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err8.java b/libjava/testsuite/libjava.lang/err8.java
deleted file mode 100644
index 220b2ac4fad..00000000000
--- a/libjava/testsuite/libjava.lang/err8.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err8.java */
-/* : */
-/* Cause : When "do while" statement has only "break", error. */
-/* : */
-/* Message : err8.java: In class `err8': xxxxxx */
-/* : err8.java: In method `main(java.lang.String[])': */
-/* : err8.java:20: Unreachable statement. */
-/* : } while (true) ; */
-/* : ^ */
-/* : 1 error */
-/*--------------------------------------------------------------------------*/
-
-public class err8 {
- public static void main(String[] args) {
- do {
- break;
- } while (true) ;
-
- System.out.println("OK");
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err8.out b/libjava/testsuite/libjava.lang/err8.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err8.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/err9.java b/libjava/testsuite/libjava.lang/err9.java
deleted file mode 100644
index a6edd71980e..00000000000
--- a/libjava/testsuite/libjava.lang/err9.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*--------------------------------------------------------------------------*/
-/* File name : err9.java */
-/* : */
-/* Cause : When I use "labeled continue" in "for"statement, error */
-/* : */
-/* Message : In class `err9': */
-/* : In method `main(java.lang.String[])': */
-/* : 22: `continue' must be in loop. */
-/* : continue movehere; */
-/* : ^ */
-/* : 1 error */
-/*--------------------------------------------------------------------------*/
-
-public class err9 {
- public static void main(String[] args) {
- int y = 0;
-
- movehere: for ( int x = 0; x < 10; x++ ) {
- if ( x > 2 ) {
- continue movehere;
- }
- y++;
- }
-
- if ( y == 3 ) {
- System.out.println("OK");
- } else {
- System.out.println("NG:[3]-->[" +y+ "]");
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/err9.out b/libjava/testsuite/libjava.lang/err9.out
deleted file mode 100644
index d86bac9de59..00000000000
--- a/libjava/testsuite/libjava.lang/err9.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/libjava/testsuite/libjava.lang/final_inner.java b/libjava/testsuite/libjava.lang/final_inner.java
deleted file mode 100644
index 40905b1fa7e..00000000000
--- a/libjava/testsuite/libjava.lang/final_inner.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Class final_inner
-// Generated on Tue Jan 18 13:35:19 PST 2000
-//
-
-class final_inner {
-
- void foo (final String s, final int i) {
- class bar {
- void printI () { System.out.println (s+i); }
- }
- new bar ().printI ();
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `final_inner'...");
- new final_inner ().foo ("The Number ", 666);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/final_inner.out b/libjava/testsuite/libjava.lang/final_inner.out
deleted file mode 100644
index 8ac46cfcc82..00000000000
--- a/libjava/testsuite/libjava.lang/final_inner.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `final_inner'...
-The Number 666
diff --git a/libjava/testsuite/libjava.lang/final_int.java b/libjava/testsuite/libjava.lang/final_int.java
deleted file mode 100644
index e225c7b2822..00000000000
--- a/libjava/testsuite/libjava.lang/final_int.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Class final_int
-// Generated on Sat Feb 12 01:27:46 PST 2000
-
-class final_int {
-
- final int x = 30;
-
- class foo {
- int bar () {
- return x;
- }
- }
- void bar () {
- int x = this.new foo ().bar ();
- System.out.println (x);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `final_int'...");
- new final_int().bar ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/final_int.out b/libjava/testsuite/libjava.lang/final_int.out
deleted file mode 100644
index a7cbe2c9a41..00000000000
--- a/libjava/testsuite/libjava.lang/final_int.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `final_int'...
-30
diff --git a/libjava/testsuite/libjava.lang/final_static_and_friend.java b/libjava/testsuite/libjava.lang/final_static_and_friend.java
deleted file mode 100644
index b5ca6100db6..00000000000
--- a/libjava/testsuite/libjava.lang/final_static_and_friend.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Class final_static_and_friend
-// Generated on Sat Feb 12 01:58:38 PST 2000
-
-class final_static_and_friend {
- final int a = 34;
- static int b = 34;
- int c = 34;
- void foo ()
- {
- System.out.println (a+b+c);
- }
- public static void main (String[] arg)
- {
- new final_static_and_friend ().foo ();
- }
-
-}
diff --git a/libjava/testsuite/libjava.lang/final_static_and_friend.out b/libjava/testsuite/libjava.lang/final_static_and_friend.out
deleted file mode 100644
index 257e563266b..00000000000
--- a/libjava/testsuite/libjava.lang/final_static_and_friend.out
+++ /dev/null
@@ -1 +0,0 @@
-102
diff --git a/libjava/testsuite/libjava.lang/indirect.java b/libjava/testsuite/libjava.lang/indirect.java
deleted file mode 100644
index 22bdebc5bb8..00000000000
--- a/libjava/testsuite/libjava.lang/indirect.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Class indirect
-// Generated on Tue Nov 16 15:53:14 UTC 1999
-// Several indirection to enclosing class
-
-class indirect {
-
- private int foo;
-
- class indirect_inner {
- class other {
- class inner {
- void test () {
- int x = foo;
- System.out.println ("x="+foo);
- foo = 671;
- }
- }
- }
-
- }
- void foo ()
- {
- foo = 670;
- indirect_inner inn = this.new indirect_inner ();
- this.new indirect_inner().new other().new inner ().test ();
- System.out.println ("foo="+foo);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `indirect'...");
- new indirect().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/indirect.out b/libjava/testsuite/libjava.lang/indirect.out
deleted file mode 100644
index 7eb96f765a3..00000000000
--- a/libjava/testsuite/libjava.lang/indirect.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Testing class `indirect'...
-x=670
-foo=671
diff --git a/libjava/testsuite/libjava.lang/indirect_read.java b/libjava/testsuite/libjava.lang/indirect_read.java
deleted file mode 100644
index 48c53a8d015..00000000000
--- a/libjava/testsuite/libjava.lang/indirect_read.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Class indirect_read
-// Generated on Mon Nov 15 17:20:40 UTC 1999
-//
-
-class indirect_read {
-
- int foo;
-
- class indirect_read_inner {
- void test () {
- }
-
- class other {
- void testx () {
- int x = foo;
- System.out.println ("x="+x);
- }
- }
-
- }
- void foo ()
- {
- foo = 670;
- indirect_read_inner inn = this.new indirect_read_inner ();
- indirect_read_inner.other o = inn.new other ();
- o.testx ();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `indirect_read'...");
- new indirect_read().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/indirect_read.out b/libjava/testsuite/libjava.lang/indirect_read.out
deleted file mode 100644
index bf9d42ad7f8..00000000000
--- a/libjava/testsuite/libjava.lang/indirect_read.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `indirect_read'...
-x=670
diff --git a/libjava/testsuite/libjava.lang/indirect_write.java b/libjava/testsuite/libjava.lang/indirect_write.java
deleted file mode 100644
index 2f2bb74435d..00000000000
--- a/libjava/testsuite/libjava.lang/indirect_write.java
+++ /dev/null
@@ -1,32 +0,0 @@
-// Class indirect_write
-// Generated on Tue Nov 16 15:01:24 UTC 1999
-//
-
-class indirect_write {
-
- int foo;
-
- class indirect_write_inner {
- void test () {
- }
-
- class other {
- void testx () {
- foo = 670;
- }
- }
-
- }
- void foo ()
- {
- indirect_write_inner inn = this.new indirect_write_inner ();
- indirect_write_inner.other x = inn.new other ();
- x.testx();
- System.out.println ("foo="+foo);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `indirect_write'...");
- new indirect_write().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/indirect_write.out b/libjava/testsuite/libjava.lang/indirect_write.out
deleted file mode 100644
index 92b293337b3..00000000000
--- a/libjava/testsuite/libjava.lang/indirect_write.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `indirect_write'...
-foo=670
diff --git a/libjava/testsuite/libjava.lang/inner1.java b/libjava/testsuite/libjava.lang/inner1.java
deleted file mode 100644
index 820edf8026c..00000000000
--- a/libjava/testsuite/libjava.lang/inner1.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Class inner1
-// Generated on Thu Nov 4 16:35:03 PST 1999
-//
-
-class inner1 {
- int i;
- void foo () {
- inner1.z x1 = new z();
- inner1.z.y x = x1.new y();
- x.bar ();
- x.print();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner1'...");
- new inner1 ().foo();
- }
- class z {
- int j;
- void foo () {
- inner1.this.i = 3;
- }
- class y {
- int k;
- void bar () {
- inner1.this.i = 3;
- z.this.j = 4;
- y.this.k = 34;
- }
- void print () {
- System.out.println ("i="+i+", j="+j+", k="+k);
- }
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/inner1.out b/libjava/testsuite/libjava.lang/inner1.out
deleted file mode 100644
index d1f9ac81551..00000000000
--- a/libjava/testsuite/libjava.lang/inner1.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `inner1'...
-i=3, j=4, k=34
diff --git a/libjava/testsuite/libjava.lang/inner2.java b/libjava/testsuite/libjava.lang/inner2.java
deleted file mode 100644
index 8ecb6f5f7ed..00000000000
--- a/libjava/testsuite/libjava.lang/inner2.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Class inner2
-// Generated on Mon Dec 6 14:32:34 PST 1999
-//
-
-class inner2 {
- int foo = 1999;
- void foo ()
- {
- inner2.this.foo = 666;
- System.out.println (inner2.this.foo);
- }
- void print () {System.out.println (foo);}
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner2'...");
- new inner2().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/inner2.out b/libjava/testsuite/libjava.lang/inner2.out
deleted file mode 100644
index cd24c8659d7..00000000000
--- a/libjava/testsuite/libjava.lang/inner2.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `inner2'...
-666
diff --git a/libjava/testsuite/libjava.lang/inner3.java b/libjava/testsuite/libjava.lang/inner3.java
deleted file mode 100644
index e1cf9da376c..00000000000
--- a/libjava/testsuite/libjava.lang/inner3.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// Class inner3
-// Generated on Tue Dec 7 11:37:43 PST 1999
-//
-
-class inner3 {
- int bar;
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner3'...");
- new inner3().bar ();
- }
- void bar () {
- t xx = this.new t ();
- xx.bar ();
- }
- void foo () { bar = 3; }
- class t {
- void bar () {
- inner3.this.foo ();
- System.out.println (inner3.this.bar);
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/inner3.out b/libjava/testsuite/libjava.lang/inner3.out
deleted file mode 100644
index a7ce991dee1..00000000000
--- a/libjava/testsuite/libjava.lang/inner3.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `inner3'...
-3
diff --git a/libjava/testsuite/libjava.lang/inner4.java b/libjava/testsuite/libjava.lang/inner4.java
deleted file mode 100644
index 983e668dc16..00000000000
--- a/libjava/testsuite/libjava.lang/inner4.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// Class inner4
-// Generated on Tue Dec 7 11:43:48 PST 1999
-//
-
-class inner4 {
- static private int xyz () { return 3; }
- private String f;
-
- String p () {
- return "public String p()";
- }
-
- private String pp (int x, byte y, char c) {
- return "private String pp("+x+", "+y+", "+c+")";
- }
-
- void foo () {
- t xxx = this.new t();
- xxx.bar ();
- pp (3, (byte)34, 'C');
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner4'...");
- new inner4().foo();
- }
- class t {
- void bar () {
- System.out.println (p ());
- System.out.println (pp (3, (byte)34, 'C'));
- System.out.println (xyz ());
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/inner4.out b/libjava/testsuite/libjava.lang/inner4.out
deleted file mode 100644
index db879b58f00..00000000000
--- a/libjava/testsuite/libjava.lang/inner4.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Testing class `inner4'...
-public String p()
-private String pp(3, 34, C)
-3
diff --git a/libjava/testsuite/libjava.lang/inner_array.java b/libjava/testsuite/libjava.lang/inner_array.java
deleted file mode 100644
index 69f31f026c5..00000000000
--- a/libjava/testsuite/libjava.lang/inner_array.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Class inner_array
-// Generated on Fri Nov 19 13:19:47 PST 1999
-//
-
-class inner_array {
-
- private int[] foo;
-
- class array_inner {
- void test () {
- int x = foo[2];
- System.out.println ("x="+x);
- foo [1] = 34;
- foo [1]++;
- }
- }
- void foo ()
- {
- foo = new int [3];
- foo[2]=670;
- array_inner inn = this.new array_inner ();
- inn.test ();
- System.out.println ("foo[1]="+foo[1]);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner_array'...");
- new inner_array().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/inner_array.out b/libjava/testsuite/libjava.lang/inner_array.out
deleted file mode 100644
index 88b92874a56..00000000000
--- a/libjava/testsuite/libjava.lang/inner_array.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Testing class `inner_array'...
-x=670
-foo[1]=35
diff --git a/libjava/testsuite/libjava.lang/inner_interface.java b/libjava/testsuite/libjava.lang/inner_interface.java
deleted file mode 100644
index b1e6789a99e..00000000000
--- a/libjava/testsuite/libjava.lang/inner_interface.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Class inner_interface
-// Generated on Fri Feb 11 16:29:04 PST 2000
-// Simple inner interface example.
-
-class inner_interface {
- interface bar {
- static final int field = 14022000;
- public void inner_interface ();
- }
-
- class baz implements inner_interface.bar {
- public void inner_interface ()
- {
- System.out.println ("This is baz.inner_interface "+field);
- }
- }
-
- void x () {
- this.new baz ().inner_interface ();
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `inner_interface'...");
- new inner_interface ().x();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/inner_interface.out b/libjava/testsuite/libjava.lang/inner_interface.out
deleted file mode 100644
index 0c977d54a48..00000000000
--- a/libjava/testsuite/libjava.lang/inner_interface.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `inner_interface'...
-This is baz.inner_interface 14022000
diff --git a/libjava/testsuite/libjava.lang/instance.java b/libjava/testsuite/libjava.lang/instance.java
deleted file mode 100644
index a509cb3857c..00000000000
--- a/libjava/testsuite/libjava.lang/instance.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// instance.java -- test the `instanceof' operator.
-
-import java.util.EventListener;
-
-public class instance implements EventListener
-{
- public static void main (String[] args)
- {
- Object x1 = new instance ();
- EventListener x2 = new instance ();
- IllegalArgumentException iae
- = new IllegalArgumentException ("any random class");
- String x3 = "zardoz";
- Object x4 = "zardoz";
-
- // Test simple object stuff
- System.out.println (x1 instanceof Object);
- System.out.println (x1 instanceof IllegalArgumentException);
- System.out.println (x1 instanceof EventListener);
- System.out.println (x1 instanceof String);
- System.out.println ("=");
-
- // Test with value which is an interface.
- System.out.println (x2 instanceof Object);
- System.out.println (x2 instanceof IllegalArgumentException);
- System.out.println (x2 instanceof EventListener);
- System.out.println ("=");
-
- // Test with value which is a final class.
- System.out.println (x3 instanceof Object);
- System.out.println (x3 instanceof String);
- System.out.println ("=");
-
- // Test with value which is a random class.
- System.out.println (iae instanceof Object);
- System.out.println (iae instanceof IllegalArgumentException);
- System.out.println (iae instanceof EventListener);
- System.out.println ("=");
-
- // Test with value which is a final class, but not known
- // statically.
- System.out.println (x4 instanceof Object);
- System.out.println (x4 instanceof IllegalArgumentException);
- System.out.println (x4 instanceof EventListener);
- System.out.println (x4 instanceof String);
- System.out.println (x4 instanceof int[]);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/instance.out b/libjava/testsuite/libjava.lang/instance.out
deleted file mode 100644
index 03988156063..00000000000
--- a/libjava/testsuite/libjava.lang/instance.out
+++ /dev/null
@@ -1,21 +0,0 @@
-true
-false
-true
-false
-=
-true
-false
-true
-=
-true
-true
-=
-true
-true
-false
-=
-true
-false
-false
-true
-false
diff --git a/libjava/testsuite/libjava.lang/instinit.java b/libjava/testsuite/libjava.lang/instinit.java
deleted file mode 100644
index 9a02b6699bc..00000000000
--- a/libjava/testsuite/libjava.lang/instinit.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Class instinit
-// Generated on Wed Feb 2 12:31:16 PST 2000
-// Simple instance initializer test case.
-
-class instinit extends foo {
-
- String buffer = "No Oink! Oink!";
-
- /* Instance initializer */
- {
- System.out.println ("Oinking...");
- }
- {
- buffer = "Oink! Oink!";
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `instinit'...");
- System.out.println (new instinit ().buffer);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/instinit.out b/libjava/testsuite/libjava.lang/instinit.out
deleted file mode 100644
index 503af0fd626..00000000000
--- a/libjava/testsuite/libjava.lang/instinit.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Testing class `instinit'...
-Plain old boring foo
-Oinking...
-Oink! Oink!
diff --git a/libjava/testsuite/libjava.lang/instinit2.java b/libjava/testsuite/libjava.lang/instinit2.java
deleted file mode 100644
index 4acb157fa64..00000000000
--- a/libjava/testsuite/libjava.lang/instinit2.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// Class ii2
-// Generated on Wed Feb 2 17:52:49 PST 2000
-// The instance initializer throws a checked exception. This is OK
-// since the constructors declares it in its `throws' clause -- at
-// least that's what the specs are saying.
-
-class ii2 {
-
- String buffer = "Oink Oink!";
-
- {
- System.out.println ("Checking the oink...");
- if (buffer != null)
- throw new Exception ("It just oinked");
- }
-
- ii2 () throws Exception
- {
- System.out.println ("Ctor");
- }
-
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `ii2'...");
- try {
- System.out.println (new ii2 ().buffer);
- } catch (Exception e) {
- System.out.println (e.toString());
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/instinit2.out b/libjava/testsuite/libjava.lang/instinit2.out
deleted file mode 100644
index 01efac10d7e..00000000000
--- a/libjava/testsuite/libjava.lang/instinit2.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Testing class `instinit2'...
-Ctor
-Checking the oink...
-java.lang.Exception: It just oinked
diff --git a/libjava/testsuite/libjava.lang/klass.java b/libjava/testsuite/libjava.lang/klass.java
deleted file mode 100644
index 1578e6f4240..00000000000
--- a/libjava/testsuite/libjava.lang/klass.java
+++ /dev/null
@@ -1,10 +0,0 @@
-public class klass
-{
- public static void main (String[] args)
- {
- Class ic1 = Integer.TYPE;
- int[] foo = new int[3];
- Class ic2 = foo.getClass().getComponentType();
- System.out.println(ic1.equals(ic2));
- }
-}
diff --git a/libjava/testsuite/libjava.lang/klass.out b/libjava/testsuite/libjava.lang/klass.out
deleted file mode 100644
index 27ba77ddaf6..00000000000
--- a/libjava/testsuite/libjava.lang/klass.out
+++ /dev/null
@@ -1 +0,0 @@
-true
diff --git a/libjava/testsuite/libjava.lang/lang.exp b/libjava/testsuite/libjava.lang/lang.exp
deleted file mode 100644
index c0b8570403f..00000000000
--- a/libjava/testsuite/libjava.lang/lang.exp
+++ /dev/null
@@ -1,35 +0,0 @@
-global srcdir subdir
-
-catch "glob -nocomplain ${srcdir}/${subdir}/*.out" srcfiles
-verbose "srcfiles are $srcfiles"
-
-set prefix ""
-foreach x $srcfiles {
- regsub "\\.out$" $x "" prefix
- set bname [file tail $prefix]
-
- if [file exists $srcdir/$subdir/${bname}.xpo] {
- set resfile "$srcdir/$subdir/${bname}.xpo"
- set options "regexp_match"
- } else {
- set resfile "${prefix}.out"
- set options ""
- }
-
- if [file exists ${prefix}.inp] {
- set inpfile ${prefix}.inp
- } else {
- set inpfile ""
- }
-
- set args [libjava_read_xfail $srcdir/$subdir/$bname.xfail]
-
- verbose "inpfile is $inpfile"
-
- test_libjava $options "${prefix}.java" "" $inpfile $resfile $args
- test_libjava $options "${prefix}.java" "-O" $inpfile $resfile $args
-}
-
-# Local Variables:
-# tcl-indent-level:4
-# End:
diff --git a/libjava/testsuite/libjava.lang/multiple_finit.java b/libjava/testsuite/libjava.lang/multiple_finit.java
deleted file mode 100644
index a05ecb38132..00000000000
--- a/libjava/testsuite/libjava.lang/multiple_finit.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Class multiple_finit
-// Generated on Mon Jan 3 20:07:18 PST 2000
-//
-
-class multiple_finit {
-
- int foo = 99;
-
- class multiple_finit_inner {
- int inner = 34;
- void test () {
- System.out.println (inner);
- System.out.println (foo);
- }
- }
- void foo (String s)
- {
- multiple_finit_inner inn = this.new multiple_finit_inner ();
- inn.test ();
- System.out.println (foo);
- }
- void testx () { }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `multiple_finit'...");
- new multiple_finit().foo ("");
- }
-}
diff --git a/libjava/testsuite/libjava.lang/multiple_finit.out b/libjava/testsuite/libjava.lang/multiple_finit.out
deleted file mode 100644
index 65ee05ff140..00000000000
--- a/libjava/testsuite/libjava.lang/multiple_finit.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Testing class `multiple_finit'...
-34
-99
-99
diff --git a/libjava/testsuite/libjava.lang/nested_with_ctor.java b/libjava/testsuite/libjava.lang/nested_with_ctor.java
deleted file mode 100644
index 4560dc3993f..00000000000
--- a/libjava/testsuite/libjava.lang/nested_with_ctor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Class nested_with_ctor
-// Generated on Mon Jan 31 18:31:47 PST 2000
-// The nested class contains explicit constructors. Their argument
-// lists should be augmented with the alias initializer values when
-// the ctors are seen declared (as opposed to generated.)
-
-class nested_with_ctor {
-
- void fct(final String s, final int i)
- {
- class nested {
- String buffer = s+i;
- String getString () { return buffer; }
- nested (int i) { buffer = "(int)"+i; }
- nested () {}
- }
- nested x = new nested ();
- System.out.println (x.getString ());
- nested y = new nested (123);
- System.out.println (y.getString ());
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `nested_with_ctor'...");
- new nested_with_ctor ().fct ("Yikes!", 321);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/nested_with_ctor.out b/libjava/testsuite/libjava.lang/nested_with_ctor.out
deleted file mode 100644
index d130f1f8893..00000000000
--- a/libjava/testsuite/libjava.lang/nested_with_ctor.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Testing class `nested_with_ctor'...
-Yikes!321
-(int)123
diff --git a/libjava/testsuite/libjava.lang/pr100.java b/libjava/testsuite/libjava.lang/pr100.java
deleted file mode 100644
index a9f3685cf4a..00000000000
--- a/libjava/testsuite/libjava.lang/pr100.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// PR 100
-
-// Second call to hashcode causes SEGV when dynamically linking.
-
-public class pr100
-{
- public static void main(String[] args) {
- pr100 ht = new pr100();
-
- System.err.println(ht.hashCode());
- System.err.println(ht.getClass().hashCode());
- }
-}
diff --git a/libjava/testsuite/libjava.lang/pr100.xpo b/libjava/testsuite/libjava.lang/pr100.xpo
deleted file mode 100644
index d87ea2e8889..00000000000
--- a/libjava/testsuite/libjava.lang/pr100.xpo
+++ /dev/null
@@ -1,2 +0,0 @@
-[0-9]+
-[0-9]+
diff --git a/libjava/testsuite/libjava.lang/pr109.java b/libjava/testsuite/libjava.lang/pr109.java
deleted file mode 100644
index 17c4b2301bb..00000000000
--- a/libjava/testsuite/libjava.lang/pr109.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// PR 109
-
-// Running the test code produces the output "0" instead of the
-// expected "01234".
-
-// The break statement exits both for-loops (not just the innermost
-// one) if the (single statement) body of the outer for-loop is not
-// enclosed in braces. Affects more deeply nested loops in the same
-// way.
-
-public class pr109
-{
- public static void main (String argv[])
- {
- int i, j;
-
- for (i = 0; i < 5; i++)
- for (j = 0; j < 2; j++)
- {
- if (j == 1)
- break;
- System.out.print (i);
- }
-
- // We print a newline here because otherwise the DejaGNU log
- // file is screwed up.
- System.out.println ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/pr109.out b/libjava/testsuite/libjava.lang/pr109.out
deleted file mode 100644
index 3521a84d083..00000000000
--- a/libjava/testsuite/libjava.lang/pr109.out
+++ /dev/null
@@ -1 +0,0 @@
-01234
diff --git a/libjava/testsuite/libjava.lang/pr133.java b/libjava/testsuite/libjava.lang/pr133.java
deleted file mode 100644
index 42009f4c851..00000000000
--- a/libjava/testsuite/libjava.lang/pr133.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// PR 133
-
-// System.exit(0) appears to hang the program.
-
-public class pr133 {
- public static void main(String argv[])
- {
- String name;
-
- if (argv.length == 0) {
- name = "Rocket J. Squirrel";
- } else {
- name = argv[0];
- }
-
- new pr133(name).identifySelf();
- System.out.println("goodbye");
-
- System.exit(0);
- }
-
- public pr133 (String name)
- {
- v_name = name;
- }
-
- public void identifySelf()
- {
- System.out.println("This is a pr133 instance named " + v_name);
- System.out.println("Leaving identifySelf()...");
- }
-
- private String v_name;
-}
diff --git a/libjava/testsuite/libjava.lang/pr133.out b/libjava/testsuite/libjava.lang/pr133.out
deleted file mode 100644
index 52098d8075a..00000000000
--- a/libjava/testsuite/libjava.lang/pr133.out
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a pr133 instance named Rocket J. Squirrel
-Leaving identifySelf()...
-goodbye
diff --git a/libjava/testsuite/libjava.lang/pr179.java b/libjava/testsuite/libjava.lang/pr179.java
deleted file mode 100644
index ec99efc1a79..00000000000
--- a/libjava/testsuite/libjava.lang/pr179.java
+++ /dev/null
@@ -1,61 +0,0 @@
-// Extended regression test for the PR 179.
-//
-// This tests the ".class" language syntax, initialization behaviour for
-// Class.isInstance() and Class.isAssignableFrom(), and isAssignableFrom()
-// functionality in the event that an interface argument that is not
-// implemented by any loaded class is given.
-//
-// Bryce McKinlay <bryce@albatross.co.nz>
-
-class A
-{
- static
- {
- System.out.println("A initialized");
- }
-}
-
-interface IA {}
-
-class B implements IA
-{
- static
- {
- System.out.println("B initialized");
- }
-}
-
-class C
-{
- static
- {
- System.out.println("C initialized");
- }
-}
-
-interface IB {}
-
-public class pr179
-{
- public static void main(String[] args)
- {
- System.out.println (A.class.isAssignableFrom (Object.class));
- System.out.println (IB.class.isAssignableFrom (B.class));
- System.out.println (IA.class.isAssignableFrom (B.class));
- A a = new A();
- System.out.println (C.class.isInstance (a));
- C c = new C();
- System.out.println (C.class.isInstance (c));
- }
-}
-
-/* Expected Output:
-A initialized
-false
-B initialized
-false
-true
-C initialized
-false
-true
-*/
diff --git a/libjava/testsuite/libjava.lang/pr179.out b/libjava/testsuite/libjava.lang/pr179.out
deleted file mode 100644
index 3a63ad6a52e..00000000000
--- a/libjava/testsuite/libjava.lang/pr179.out
+++ /dev/null
@@ -1,8 +0,0 @@
-A initialized
-false
-B initialized
-false
-true
-C initialized
-false
-true
diff --git a/libjava/testsuite/libjava.lang/pr184.java b/libjava/testsuite/libjava.lang/pr184.java
deleted file mode 100644
index 42175b38e9d..00000000000
--- a/libjava/testsuite/libjava.lang/pr184.java
+++ /dev/null
@@ -1,22 +0,0 @@
-public class pr184
-{
- public static void main(String[] args)
- {
- pr184 n = null;
- try
- {
- n.foo();
- }
- catch (NullPointerException x)
- {
- System.out.println(x);
- }
- }
-
- int x = 2;
-
- final int foo()
- {
- return x;
- };
-}
diff --git a/libjava/testsuite/libjava.lang/pr184.out b/libjava/testsuite/libjava.lang/pr184.out
deleted file mode 100644
index 7a72d865c98..00000000000
--- a/libjava/testsuite/libjava.lang/pr184.out
+++ /dev/null
@@ -1 +0,0 @@
-java.lang.NullPointerException
diff --git a/libjava/testsuite/libjava.lang/pr83.java b/libjava/testsuite/libjava.lang/pr83.java
deleted file mode 100644
index b209aff28b4..00000000000
--- a/libjava/testsuite/libjava.lang/pr83.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// PR 83
-
-/*
- * test that caught null pointers exceptions in finalizers work correctly
- * and that local variables are accessible in null pointer exception handlers.
- */
-import java.io.*;
-
-public class pr83 {
-
- static String s;
-
- public static void main(String[] args) {
- System.out.println(tryfinally() + s);
- }
-
- public static String tryfinally() {
- String yuck = null;
- String local_s = null;
-
- try {
- return "This is ";
- } finally {
- try {
- local_s = "Perfect";
- /* trigger null pointer exception */
- String x = yuck.toLowerCase();
- } catch (Exception _) {
- /*
- * when the null pointer exception is caught, we must still
- * be able to access local_s.
- * Our return address for the finally clause must also still
- * be intact.
- */
- s = local_s;
- }
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/pr83.out b/libjava/testsuite/libjava.lang/pr83.out
deleted file mode 100644
index 6a87582a8dc..00000000000
--- a/libjava/testsuite/libjava.lang/pr83.out
+++ /dev/null
@@ -1 +0,0 @@
-This is Perfect
diff --git a/libjava/testsuite/libjava.lang/private_direct_read.java b/libjava/testsuite/libjava.lang/private_direct_read.java
deleted file mode 100644
index 46d8fc3004b..00000000000
--- a/libjava/testsuite/libjava.lang/private_direct_read.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// Class private_direct_read
-// Generated on Tue Nov 16 15:04:13 UTC 1999
-//
-
-class private_direct_read {
-
- private int foo;
-
- class private_direct_read_inner {
- void test () {
- int x = foo;
- System.out.println ("x="+x);
- }
- }
- void foo ()
- {
- foo = 670;
- private_direct_read_inner inn = this.new private_direct_read_inner ();
- inn.test ();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `private_direct_read'...");
- new private_direct_read().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/private_direct_read.out b/libjava/testsuite/libjava.lang/private_direct_read.out
deleted file mode 100644
index 11d665d6120..00000000000
--- a/libjava/testsuite/libjava.lang/private_direct_read.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `private_direct_read'...
-x=670
diff --git a/libjava/testsuite/libjava.lang/private_direct_write.java b/libjava/testsuite/libjava.lang/private_direct_write.java
deleted file mode 100644
index 3c7a887f461..00000000000
--- a/libjava/testsuite/libjava.lang/private_direct_write.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Class private_direct_write
-// Generated on Tue Nov 16 15:05:54 UTC 1999
-//
-
-class private_direct_write {
-
- private int foo;
-
- class private_direct_write_inner {
- void test () {
- foo = 670;
- }
- }
- void foo ()
- {
- private_direct_write_inner inn = this.new private_direct_write_inner ();
- inn.test ();
- System.out.println ("foo="+foo);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `private_direct_write'...");
- new private_direct_write().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/private_indirect_read.java b/libjava/testsuite/libjava.lang/private_indirect_read.java
deleted file mode 100644
index 9a37bfdac11..00000000000
--- a/libjava/testsuite/libjava.lang/private_indirect_read.java
+++ /dev/null
@@ -1,32 +0,0 @@
-// Class private_indirect_read
-// Generated on Tue Nov 16 15:34:56 UTC 1999
-//
-
-class private_indirect_read {
-
- private int foo;
-
- class private_indirect_read_inner {
- void test () {
- }
- class other {
- void testx () {
- int x = foo;
- System.out.println ("x="+x);
- }
- }
-
- }
- void foo ()
- {
- foo=670;
- private_indirect_read_inner inn = this.new private_indirect_read_inner ();
- private_indirect_read_inner.other o = inn.new other ();
- o.testx();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `private_indirect_read'...");
- new private_indirect_read().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/private_indirect_write.java b/libjava/testsuite/libjava.lang/private_indirect_write.java
deleted file mode 100644
index f706b20c9a5..00000000000
--- a/libjava/testsuite/libjava.lang/private_indirect_write.java
+++ /dev/null
@@ -1,32 +0,0 @@
-// Class private_indirect_write
-// Generated on Tue Nov 16 15:44:49 UTC 1999
-//
-
-class private_indirect_write {
-
- private int foo;
-
- class private_indirect_write_inner {
- void test () {
- }
-
- class other {
- void test () {
- foo = 670;
- }
- }
-
- }
- void foo ()
- {
- private_indirect_write_inner inn = this.new private_indirect_write_inner ();
- private_indirect_write_inner.other x = inn.new other ();
- x.test ();
- System.out.println ("foo="+foo);
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `private_indirect_write'...");
- new private_indirect_write().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/search_outer.java b/libjava/testsuite/libjava.lang/search_outer.java
deleted file mode 100644
index 66567df8b6d..00000000000
--- a/libjava/testsuite/libjava.lang/search_outer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Class search_outer.java
-// Generated on Thu Nov 18 18:40:43 UTC 1999
-//
-
-class search_outer {
-
- private int foo;
-
- class search_outer_inner {
- void test () {
- foo++;
- System.out.println ("foo="+foo);
- foo += 3;
- System.out.println ("foo="+foo);
- }
- }
- void foo ()
- {
- foo = 3;
- search_outer_inner inn = this.new search_outer_inner ();
- inn.test ();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `search_outer'...");
- new search_outer().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/search_outer.out b/libjava/testsuite/libjava.lang/search_outer.out
deleted file mode 100644
index df2862d680b..00000000000
--- a/libjava/testsuite/libjava.lang/search_outer.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Testing class `search_outer'...
-foo=4
-foo=7
diff --git a/libjava/testsuite/libjava.lang/stringconst.java b/libjava/testsuite/libjava.lang/stringconst.java
deleted file mode 100644
index 62857494317..00000000000
--- a/libjava/testsuite/libjava.lang/stringconst.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// A reference to a String shouldn't cause an interface to be
-// initialized.
-
-interface I
-{
- String z = "zardoz";
- int q = stringconst.out ("q", 0);
-}
-
-public class stringconst
-{
- public static int out (String s, int i)
- {
- System.out.println (s + "=" + i);
- return i;
- }
-
- public static void main (String[] args)
- {
- System.out.println (I.z);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/stringconst.out b/libjava/testsuite/libjava.lang/stringconst.out
deleted file mode 100644
index 1f0ac89bf77..00000000000
--- a/libjava/testsuite/libjava.lang/stringconst.out
+++ /dev/null
@@ -1 +0,0 @@
-zardoz
diff --git a/libjava/testsuite/libjava.lang/stringconst2.java b/libjava/testsuite/libjava.lang/stringconst2.java
deleted file mode 100644
index f33ee9c5b3e..00000000000
--- a/libjava/testsuite/libjava.lang/stringconst2.java
+++ /dev/null
@@ -1,21 +0,0 @@
-// Test to make sure a string constant is correctly initialized.
-
-import java.lang.reflect.*;
-
-public class stringconst2
-{
- public static final String q = "zardoz";
-
- public static void main (String[] args)
- {
- try
- {
- Class k = Class.forName ("stringconst2");
- Field f = k.getField ("q");
- System.out.println (f.get (null));
- }
- catch (Throwable _)
- {
- }
- }
-}
diff --git a/libjava/testsuite/libjava.lang/stringconst2.out b/libjava/testsuite/libjava.lang/stringconst2.out
deleted file mode 100644
index 1f0ac89bf77..00000000000
--- a/libjava/testsuite/libjava.lang/stringconst2.out
+++ /dev/null
@@ -1 +0,0 @@
-zardoz
diff --git a/libjava/testsuite/libjava.lang/stub.java b/libjava/testsuite/libjava.lang/stub.java
deleted file mode 100644
index dfda004b3b1..00000000000
--- a/libjava/testsuite/libjava.lang/stub.java
+++ /dev/null
@@ -1,101 +0,0 @@
-// Class stub
-// Generated on Fri Feb 4 20:23:47 PST 2000
-// A somewhat thorough test of function invocator generated stubs.
-
-class stub {
-
- String ok;
-
- void OK () {System.out.println (ok);}
- void OK (int i) {System.out.println (ok+" "+i);}
- static void testOK () {System.out.println ("OK");}
- static void testOK (int i) {System.out.println ("OK "+i); }
-
- // STATIC PRIVATE R_VALUE ARGS
- // No No No No
- void t1 () {OK();}
- // Yes No No No
- static void t2 () {testOK();}
- // No Yes No No
- private void t3 () {OK();}
- // Yes Yes No No
- static private void t4 () {testOK();}
- // No No Yes No
- int t5 () {return 5;}
- // Yes No Yes No
- static int t6 () {return 6;}
- // No Yes Yes No
- private int t7 () {return 7;}
- // Yes Yes Yes No
- static private int t8 () {return 8;}
-
- // No No No Yes
- void t9 (int i) {OK(i);}
- // Yes No No Yes
- static void t10 (int i) {testOK(i);}
- // No Yes No Yes
- private void t11 (int i) {OK(i);}
- // Yes Yes No Yes
- static private void t12 (int i) {testOK(i);}
- // No No Yes Yes
- int t13 (int i) {return i*2;}
- // Yes No Yes Yes
- static int t14 (int i) {return i*3;}
- // No Yes Yes Yes
- private int t15 (int i) {return i*4;}
- // Yes Yes Yes Yes
- static private int t16 (int i) {return i*5;}
-
- void foo ()
- {
- this.new bar ().test ();
- }
- class bar {
- void test () {
- ok = "OK";
- t1 ();
- t2 ();
- t3 ();
- t4 ();
- System.out.println (t5());
- System.out.println (t6());
- System.out.println (t7());
- System.out.println (t8());
- t9 (9);
- t10 (10);
- t11 (11);
- t12 (12);
- System.out.println (t13(13));
- System.out.println (t14(14));
- System.out.println (t15(15));
- System.out.println (t16(16));
- this.new baz ().test ();
- }
- class baz {
- void test () {
- ok = "OKOK";
- t1 ();
- t2 ();
- t3 ();
- t4 ();
- System.out.println (t5());
- System.out.println (t6());
- System.out.println (t7());
- System.out.println (t8());
- t9 (9);
- t10 (10);
- t11 (11);
- t12 (12);
- System.out.println (t13(13));
- System.out.println (t14(14));
- System.out.println (t15(15));
- System.out.println (t16(16));
- }
- }
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `stub'...");
- new stub ().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/stub.out b/libjava/testsuite/libjava.lang/stub.out
deleted file mode 100644
index 90937c6da95..00000000000
--- a/libjava/testsuite/libjava.lang/stub.out
+++ /dev/null
@@ -1,33 +0,0 @@
-Testing class `stub'...
-OK
-OK
-OK
-OK
-5
-6
-7
-8
-OK 9
-OK 10
-OK 11
-OK 12
-26
-42
-60
-80
-OKOK
-OK
-OKOK
-OK
-5
-6
-7
-8
-OKOK 9
-OK 10
-OKOK 11
-OK 12
-26
-42
-60
-80
diff --git a/libjava/testsuite/libjava.lang/test_long.java b/libjava/testsuite/libjava.lang/test_long.java
deleted file mode 100644
index 3e876ac34e3..00000000000
--- a/libjava/testsuite/libjava.lang/test_long.java
+++ /dev/null
@@ -1,13 +0,0 @@
-class test_long {
-
- public static void main (String[] arg)
- {
- long a, b, c, d, e;
- e = 234L;
- d = 0x8888888888888888L;
- a = 0x0123456789ABCDEFL;
- b = 0xFEDCBA9876543210L;
- c = 0xF096A5B4C3B2E187L;
- System.out.println (a+" "+b+" "+c+" "+d+" "+e);
- }
-}
diff --git a/libjava/testsuite/libjava.lang/test_long.out b/libjava/testsuite/libjava.lang/test_long.out
deleted file mode 100644
index 1f10f0cf806..00000000000
--- a/libjava/testsuite/libjava.lang/test_long.out
+++ /dev/null
@@ -1 +0,0 @@
-81985529216486895 -81985529216486896 -1110518062304271993 -8608480567731124088 234
diff --git a/libjava/testsuite/libjava.lang/tmi.java b/libjava/testsuite/libjava.lang/tmi.java
deleted file mode 100644
index be2395a965b..00000000000
--- a/libjava/testsuite/libjava.lang/tmi.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// Class t
-// Generated on Thu Nov 4 16:35:03 PST 1999
-//
-
-class tmi {
- int i;
- void foo () {
- tmi.z x1 = new z();
- tmi.z.y x = x1.new y();
- x.bar ();
- x.print();
- tmi.this.i = 666;
- x.print();
- tmi.this.print();
- }
- void print () {
- System.out.println ("tmi.print()");
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `tmi'...");
- new tmi ().foo();
- }
- class z {
- int j;
- void foo () {
- tmi.this.i = 3;
- }
- class y {
- int k;
- void bar () {
- tmi.this.i = 3;
- tmi.this.print ();
- z.this.j = 4;
- y.this.k = 34;
- }
- void print () {
- System.out.println ("i="+i+", j="+j+", k="+k);
- }
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/tmi.out b/libjava/testsuite/libjava.lang/tmi.out
deleted file mode 100644
index 7c87756fd00..00000000000
--- a/libjava/testsuite/libjava.lang/tmi.out
+++ /dev/null
@@ -1,5 +0,0 @@
-Testing class `tmi'...
-tmi.print()
-i=3, j=4, k=34
-i=666, j=4, k=34
-tmi.print()
diff --git a/libjava/testsuite/libjava.lang/tp.java b/libjava/testsuite/libjava.lang/tp.java
deleted file mode 100644
index b6d9fbec48f..00000000000
--- a/libjava/testsuite/libjava.lang/tp.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Class tp
-// Generated on Thu Nov 4 16:35:03 PST 1999
-//
-
-class tp {
- private int i;
- void foo () {
- tp.z x1 = new z();
- tp.z.y x = x1.new y();
- x.bar ();
- x.print();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `tp'...");
- new tp ().foo();
- }
- class z {
- private int j;
- void foo () {
- tp.this.i = 3;
- }
- class y {
- private int k;
- void bar () {
- tp.this.i = 3;
- z.this.j = 4;
- y.this.k = 34;
- }
- void print () {
- System.out.println ("i="+i+", j="+j+", k="+k);
- }
- }
- }
-}
-
diff --git a/libjava/testsuite/libjava.lang/tp.out b/libjava/testsuite/libjava.lang/tp.out
deleted file mode 100644
index f89aac653d9..00000000000
--- a/libjava/testsuite/libjava.lang/tp.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `tp'...
-i=3, j=4, k=34
diff --git a/libjava/testsuite/libjava.lang/update_outer.java b/libjava/testsuite/libjava.lang/update_outer.java
deleted file mode 100644
index b2e84370395..00000000000
--- a/libjava/testsuite/libjava.lang/update_outer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Class update_outer
-// Generated on Thu Nov 18 21:37:21 UTC 1999
-//
-
-class update_outer {
-
- private String foo;
-
- class update_outer_inner {
- void test () {
- foo += " M$";
- System.out.println ("foo=`"+foo+"'");
- }
-
-
- }
- void foo ()
- {
- foo = "780";
- update_outer_inner inn = this.new update_outer_inner ();
- inn.test ();
- }
- public static void main (String[] arg)
- {
- System.out.println ("Testing class `update_outer'...");
- new update_outer().foo ();
- }
-}
diff --git a/libjava/testsuite/libjava.lang/update_outer.out b/libjava/testsuite/libjava.lang/update_outer.out
deleted file mode 100644
index cff7c5d5b3d..00000000000
--- a/libjava/testsuite/libjava.lang/update_outer.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing class `update_outer'...
-foo=`780 M$'
diff --git a/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java b/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java
deleted file mode 100644
index 91817e6fa1d..00000000000
--- a/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 1998, 1999 Free Software Foundation
-
-// Written by Tom Tromey <tromey@cygnus.com>
-
-import gnu.testlet.*;
-
-public class DejaGNUTestHarness extends SimpleTestHarness
-{
- static String dejasrcdir;
-
- public String getSourceDirectory ()
- {
- return dejasrcdir;
- }
-
- private DejaGNUTestHarness ()
- {
- super (/* verbose */ true, /* debug */ false);
- }
-
- public static void main (String[] args)
- {
- dejasrcdir = args.length > 0 ? args[0] : "";
- DejaGNUTestHarness harness = new DejaGNUTestHarness ();
- // This might seem weird, given that we check args.length above.
- // However, in some cases the expect code rewrites this runtest
- // invocation to have an explicit name for the test to run.
- harness.runtest (args[1]);
- System.exit(harness.done());
- }
-}
diff --git a/libjava/testsuite/libjava.mauve/mauve.exp b/libjava/testsuite/libjava.mauve/mauve.exp
deleted file mode 100644
index 04f637a747d..00000000000
--- a/libjava/testsuite/libjava.mauve/mauve.exp
+++ /dev/null
@@ -1,389 +0,0 @@
-# Copyright (C) 1998, 1999, 2000 Free Software Foundation.
-# Written by Tom Tromey <tromey@cygnus.com>.
-# Incorporate Mauve into libjava's DejaGNU test suite framework.
-
-# FIXME: should be able to compile from source as well as from .class.
-
-
-# Compute list of files to compile. Returns list of all files
-# representing classes that must be tested. Result parameter `uses'
-# maps source file names onto list of objects required for link.
-proc mauve_compute_uses {aName} {
- upvar $aName uses
- global env runtests
-
- set fd [open classes r]
- set line [read $fd]
- close $fd
-
- foreach item [split $line] {
- if {$item == ""} then {
- continue
- }
- set item [join [split $item .] /].java
-
- # User might have specified "mauve.exp=something.java".
- if {! [runtest_file_p $runtests $item]} {
- continue
- }
-
- # Look for Uses line in source file.
- set fd [open $env(MAUVEDIR)/$item r]
- set ufiles [list $item]
- set dir [file dirname $item]
- while {[gets $fd sline] != -1} {
- if {[regsub -- {^// Uses:} $sline {} sline]} then {
- foreach uf [split $sline] {
- if {$uf != ""} then {
- lappend ufiles $dir/$uf
- }
- }
- }
- }
- close $fd
-
- set uses($item) {}
- foreach file $ufiles {
- set file [file rootname $file].o
- lappend uses($item) $file
- }
- }
-
- return [lsort [array names uses]]
-}
-
-# Run all the Mauve tests.
-proc test_mauve {} {
- global srcdir objdir subdir env
-
- if {! [info exists env(MAUVEDIR)]} then {
- verbose "MAUVEDIR not set; not running Mauve tests"
- return
- }
-
- # Run in subdir so we don't overwrite our own Makefile.
- catch {system "rm -rf mauve-build"}
- file mkdir mauve-build
- # Some weirdness to set srcdir correctly.
- set here [pwd]
- cd $srcdir
- set full_srcdir [pwd]
- cd $here/mauve-build
-
- global env
- global GCJ_UNDER_TEST
- global TOOL_EXECUTABLE
-
- if ![info exists GCJ_UNDER_TEST] {
- if [info exists TOOL_EXECUTABLE] {
- set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
- } else {
- if [info exists env(GCJ)] {
- set GCJ_UNDER_TEST env(GCJ)
- } else {
- set GCJ_UNDER_TEST "[find_gcj]"
- }
- }
- }
-
- # Append -B and -I so that libgcj.spec and libgcj.zip are found
- # before they're installed.
- set env(GCJ) "$GCJ_UNDER_TEST -B$objdir/../ -I$objdir/../libgcj.zip"
-
- if {[catch {
- system "$env(MAUVEDIR)/configure --with-gcj 2>@ stdout"
- } msg]} then {
- fail "Mauve configure"
- verbose "configure failed with $msg"
- return
- }
- pass "Mauve configure"
-
- # Copy appropriate tags file locally.
- set fd [open $full_srcdir/../mauve-libgcj r]
- set c [read $fd]
- close $fd
- set fd [open mauve-libgcj w]
- puts -nonewline $fd $c
- close $fd
-
- if {[catch {
- system "make KEYS=libgcj classes.stamp 2>&1"
- } msg]} then {
- fail "Mauve build"
- verbose "build failed with $msg"
- return
- }
- pass "Mauve build"
-
- set srcfile $full_srcdir/$subdir/DejaGNUTestHarness.java
- if {! [bytecompile_file $srcfile [pwd] $env(MAUVEDIR):[pwd]]} then {
- fail "Compile DejaGNUTestHarness.java"
- return
- }
- pass "Compile DejaGNUTestHarness.java"
-
- # Compute list of files to test, and also all files to build.
- set choices [mauve_compute_uses uses]
-
- # Compute flags to use to do the build.
- set compile_args [libjava_arguments]
- set link_args [concat [libjava_arguments link] \
- [list "additional_flags=--main=DejaGNUTestHarness"]]
-
- set ok 1
- set objlist {}
- foreach base {DejaGNUTestHarness gnu/testlet/SimpleTestHarness gnu/testlet/TestHarness gnu/testlet/Testlet gnu/testlet/ResourceNotFoundException gnu/testlet/config} {
- set file $base.class
- set obj $base.o
- set x [prune_warnings \
- [target_compile [pwd]/$file $obj object $compile_args]]
- if {$x != ""} then {
- fail "Compile $obj"
- set ok 0
- } else {
- pass "Compile $obj"
- }
- lappend objlist $obj
- }
- if {! $ok} then {
- return
- }
-
- set Executable DejaGNUTestHarness
- foreach file $choices {
- # Turn `java/lang/Foo.java' into `java.lang.Foo'.
- set class [file rootname $file]
- regsub -all -- / $class . class
-
- set ok 1
- foreach obj $uses($file) {
- if {! [file exists $obj]} then {
- verbose "compiling $obj for test of $class"
- set srcfile [file rootname $obj].class
- set x [prune_warnings \
- [target_compile [pwd]/$srcfile $obj object $compile_args]]
- if {$x != ""} then {
- fail "Compile $obj for $class"
- set ok 0
- break
- }
- pass "Compile $obj for $class"
- }
- }
- if {! $ok} then {
- continue
- }
-
- set x [prune_warnings [target_compile [concat $uses($file) $objlist] \
- $Executable executable $link_args]]
- if {$x != ""} then {
- fail "Link for $class"
- continue
- }
- pass "Link for $class"
-
- set result [libjava_load [pwd]/DejaGNUTestHarness \
- "$env(MAUVEDIR) $class" ""]
-
- # Test for an exception thrown in the test harness itself. This
- # isn't enough to test for all faults in the test harness, but
- # it's better than nothing.
- set output [lindex $result 1];
- if [regexp "Exception: " $output] then {
- fail $output
- continue
- }
-
- pass "Execute for $class"
-
- # Extract pass/failure info from output.
- foreach line [split [lindex $result 1] \n] {
- if {[regexp -- {^(PASS|FAIL): (.*)$} $line ignore what msg]} then {
- if {$what == "PASS"} then {
- pass $msg
- } else {
- fail $msg
- }
- }
- }
- }
-}
-
-# Run all the Mauve tests in a sim environment. In this case, the
-# program cannot use argv[] because there's no way to pass in the
-# command line, so tha name of the class to test is substituted by
-# patching the source of the DejaGNUTestHarness.
-proc test_mauve_sim {} {
- global srcdir subdir env
-
- if {! [info exists env(MAUVEDIR)]} then {
- verbose "MAUVEDIR not set; not running Mauve tests"
- return
- }
-
- # Run in subdir so we don't overwrite our own Makefile.
- catch {system "rm -rf mauve-build"}
- file mkdir mauve-build
- # Some weirdness to set srcdir correctly.
- set here [pwd]
- cd $srcdir
- set full_srcdir [pwd]
- cd $here/mauve-build
-
- if {[catch {
- system "$env(MAUVEDIR)/configure --with-gcj 2>&1"
- } msg]} then {
- fail "Mauve configure"
- verbose "configure failed with $msg"
- return
- }
- pass "Mauve configure"
-
- # Copy appropriate tags file locally.
- set fd [open $full_srcdir/../mauve-libgcj r]
- set c [read $fd]
- close $fd
- set fd [open mauve-libgcj w]
- puts -nonewline $fd $c
- close $fd
-
- if {[catch {
- system "make KEYS=libgcj classes.stamp 2>&1"
- } msg]} then {
- fail "Mauve build"
- verbose "build failed with $msg"
- return
- }
- pass "Mauve build"
-
- # Compute list of files to test, and also all files to build.
- set choices [mauve_compute_uses uses]
-
- # Compute flags to use to do the build.
- set compile_args [libjava_arguments]
- set link_args [concat [libjava_arguments link] \
- [list "additional_flags=--main=DejaGNUTestHarness"]]
-
- set ok 1
- set objlist {}
- foreach base {gnu/testlet/SimpleTestHarness gnu/testlet/TestHarness \
- gnu/testlet/Testlet gnu/testlet/ResourceNotFoundException \
- gnu/testlet/config} {
- set file $base.class
- set obj $base.o
- set x [prune_warnings \
- [target_compile [pwd]/$file $obj object $compile_args]]
- if {$x != ""} then {
- fail "Compile $obj"
- set ok 0
- } else {
- pass "Compile $obj"
- }
- lappend objlist $obj
- }
- if {! $ok} then {
- return
- }
-
- lappend objlist gnu/testlet/DejaGNUTestHarness.o
-
- set Executable DejaGNUTestHarness
- foreach file $choices {
- # Turn `java/lang/Foo.java' into `java.lang.Foo'.
-
- set class [file rootname $file]
- regsub -all -- / $class . class
-
- set ok 1
- foreach obj $uses($file) {
- if {! [file exists $obj]} then {
- verbose "compiling $obj for test of $class"
- set srcfile [file rootname $obj].class
- set x [prune_warnings \
- [target_compile [pwd]/$srcfile $obj object $compile_args]]
- if {$x != ""} then {
- fail "Compile $obj for $class"
- set ok 0
- break
- }
- pass "Compile $obj for $class"
- }
- }
- if {! $ok} then {
- continue
- }
-
- set infile $full_srcdir/$subdir/DejaGNUTestHarness.java
- set srcfile DejaGNUTestHarness.java
- set f [open $infile r]
- set d [open gnu/testlet/$srcfile w]
- while {[gets $f line] >= 0} {
- if [regexp {harness\.runtest \(args\[1\]\)} $line] then {
- regsub {args\[1\]} $line "\"$class\"" out
- } else {
- set out $line
- }
- puts $d $out
- }
- close $f
- close $d
-
- if {! [bytecompile_file [pwd]/gnu/testlet/$srcfile [pwd]/gnu/testlet \
- $env(MAUVEDIR):[pwd]]} then {
- fail "Compile DejaGNUTestHarness.java"
- return
- }
-
- set x [prune_warnings \
- [target_compile gnu/testlet/DejaGNUTestHarness.class \
- gnu/testlet/DejaGNUTestHarness.o object $compile_args]]
- if {$x != ""} then {
- fail "Compile DejaGNUTestHarness.java"
- continue
- }
-
- set x [prune_warnings [target_compile [concat $uses($file) $objlist] \
- $Executable executable $link_args]]
- if {$x != ""} then {
- fail "Link for $class"
- continue
- }
- pass "Link for $class"
-
- set result [libjava_load [pwd]/DejaGNUTestHarness \
- "$env(MAUVEDIR) $class" ""]
-
- # Test for an exception thrown in the test harness itself. This
- # isn't enough to test for all faults in the test harness, but
- # it's better than nothing.
- set output [lindex $result 1];
- if [regexp "Exception: " $output] then {
- fail $output
- continue
- }
-
- pass "Execute for $class"
-
- # Extract pass/failure info from output.
- foreach line [split [lindex $result 1] \n] {
- if {[regexp -- {^(PASS|FAIL): (.*)$} $line ignore what msg]} then {
- if {$what == "PASS"} then {
- pass $msg
- } else {
- fail $msg
- }
- }
- }
- }
-}
-
-# The test_mauve* procs will change the current directory. It's
-# simpler to fix this up here than to keep track of this in the procs.
-set here [pwd]
-if { [board_info target exists is_simulator] } {
- test_mauve_sim
-} else {
- test_mauve
-}
-cd $here
diff --git a/libjava/win32-threads.cc b/libjava/win32-threads.cc
deleted file mode 100644
index 8da274f1a34..00000000000
--- a/libjava/win32-threads.cc
+++ /dev/null
@@ -1,247 +0,0 @@
-// win32-threads.cc - interface between libjava and Win32 threads.
-
-/* Copyright (C) 1998, 1999 Red Hat, Inc.
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-// If we're using the Boehm GC, then we need to override some of the
-// thread primitives. This is fairly gross.
-#ifdef HAVE_BOEHM_GC
-extern "C"
-{
-#include <boehm-config.h>
-#include <gc.h>
-};
-#endif /* HAVE_BOEHM_GC */
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/lang/Thread.h>
-#include <java/lang/System.h>
-
-#include <errno.h>
-
-#ifndef ETIMEDOUT
-#define ETIMEDOUT 116
-#endif
-
-// This is used to implement thread startup.
-struct starter
-{
- _Jv_ThreadStartFunc *method;
- java::lang::Thread *object;
- _Jv_Thread_t *data;
-};
-
-// Controls access to the variable below
-static HANDLE daemon_mutex;
-static HANDLE daemon_cond;
-// Number of non-daemon threads - _Jv_ThreadWait returns when this is 0
-static int non_daemon_count;
-
-// TLS key get Java object representing the thread
-DWORD _Jv_ThreadKey;
-// TLS key to get _Jv_Thread_t* representing the thread
-DWORD _Jv_ThreadDataKey;
-
-//
-// These are the flags that can appear in _Jv_Thread_t.
-//
-
-// Thread started.
-#define FLAG_START 0x01
-// Thread is daemon.
-#define FLAG_DAEMON 0x02
-
-//
-// Condition variables.
-//
-
-int
-_Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos)
-{
- DWORD time;
- DWORD rval;
-
- // FIXME: check for mutex ownership?
-
- _Jv_MutexUnlock (mu);
-
- if((millis == 0) && (nanos > 0))
- time = 1;
- else if(millis == 0)
- time = INFINITE;
- else
- time = millis;
-
- rval = WaitForSingleObject (*cv, time);
- _Jv_MutexLock (mu);
-
- if (rval == WAIT_FAILED)
- return _JV_NOT_OWNER; // FIXME?
- else
- return 0;
-}
-
-//
-// Mutexes.
-//
-
-int
-_Jv_MutexLock (_Jv_Mutex_t *mu)
-{
- DWORD rval;
-
- // FIXME: Are Win32 mutexs recursive? Should we use critical section objects
- rval = WaitForSingleObject (*mu, INFINITE);
-
- if (rval == WAIT_FAILED)
- return GetLastError (); // FIXME: Map to errno?
- else if (rval == WAIT_TIMEOUT)
- return ETIMEDOUT;
- else
- return 0;
-}
-
-//
-// Threads.
-//
-
-void
-_Jv_InitThreads (void)
-{
- _Jv_ThreadKey = TlsAlloc();
- _Jv_ThreadDataKey = TlsAlloc();
- daemon_mutex = CreateMutex(NULL, 0, NULL);
- daemon_cond = CreateEvent(NULL, 0, 0, NULL);
- non_daemon_count = 0;
-}
-
-void
-_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *)
-{
- _Jv_Thread_t *info = new _Jv_Thread_t;
- info->flags = 0;
-
- // FIXME register a finalizer for INFO here.
- // FIXME also must mark INFO somehow.
-
- *data = info;
-}
-
-void
-_Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
-{
- int actual = THREAD_PRIORITY_NORMAL;
-
- if (data->flags & FLAG_START)
- {
- switch (prio)
- {
- case 10:
- actual = THREAD_PRIORITY_TIME_CRITICAL;
- break;
- case 9:
- actual = THREAD_PRIORITY_HIGHEST;
- break;
- case 8:
- case 7:
- actual = THREAD_PRIORITY_ABOVE_NORMAL;
- break;
- case 6:
- case 5:
- actual = THREAD_PRIORITY_NORMAL;
- break;
- case 4:
- case 3:
- actual = THREAD_PRIORITY_BELOW_NORMAL;
- break;
- case 2:
- actual = THREAD_PRIORITY_LOWEST;
- break;
- case 1:
- actual = THREAD_PRIORITY_IDLE;
- break;
- }
- SetThreadPriority(data->handle, actual);
- }
-}
-
-// This function is called when a thread is started. We don't arrange
-// to call the `run' method directly, because this function must
-// return a value.
-static DWORD __stdcall
-really_start (void* x)
-{
- struct starter *info = (struct starter *) x;
-
- TlsSetValue (_Jv_ThreadKey, info->object);
- TlsSetValue (_Jv_ThreadDataKey, info->data);
- info->method (info->object);
-
- if (! (info->data->flags & FLAG_DAEMON))
- {
- WaitForSingleObject (daemon_mutex, INFINITE);
- non_daemon_count--;
- if (! non_daemon_count)
- PulseEvent (daemon_cond);
- ReleaseMutex (daemon_mutex);
- }
-
- return 0;
-}
-
-void
-_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStartFunc *meth)
-{
- DWORD id;
- struct starter *info;
-
- // Do nothing if thread has already started
- if (data->flags & FLAG_START)
- return;
- data->flags |= FLAG_START;
-
- // FIXME: handle marking the info object for GC.
- info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter));
- info->method = meth;
- info->object = thread;
- info->data = data;
-
- if (! thread->isDaemon ())
- {
- WaitForSingleObject (daemon_mutex, INFINITE);
- non_daemon_count++;
- ReleaseMutex (daemon_mutex);
- }
- else
- data->flags |= FLAG_DAEMON;
-
- HANDLE h = CreateThread(NULL, 0, really_start, info, 0, &id);
- _Jv_ThreadSetPriority(data, thread->getPriority());
-
- //if (!h)
- //JvThrow ();
-}
-
-void
-_Jv_ThreadWait (void)
-{
- WaitForSingleObject(daemon_mutex, INFINITE);
- if(non_daemon_count)
- SignalObjectAndWait(daemon_mutex, daemon_cond, INFINITE, 0);
- ReleaseMutex(daemon_mutex);
-}
-
-void
-_Jv_ThreadInterrupt (_Jv_Thread_t *data)
-{
- MessageBox(NULL, "Unimplemented", "win32-threads.cc:_Jv_ThreadInterrupt", MB_OK);
- // FIXME:
-}